python - Python中的匹配间隔(纬度/经度)和时间
问题描述
我目前正在从事一个有两个数据集的项目。我已经能够编写一个程序来匹配两个数据集之间关于时间戳和纬度/经度位置的记录。
示例:数据集A
{"LATITUDE": 29.83,
"LONGITUDE": 106.73,
"MINUTE": 0,
"SECOND": 2,
"MONTH": 10,
"WIND_DIRECTION": 219,
"WIND_SPEED": 3.0,
"YEAR": 2019}
示例:数据集2
{"LATITUDE": 29.83,
"LONGITUDE": 106.73,
"MINUTE": 0,
"SECOND": 2,
"MONTH": 10,
"WIND_SPEED": 3.0,
"YEAR": 2019},
现在,假设我有另一条记录dataset2
,它接近 lat/long 和时间戳的数字。
示例数据集2a
{"LATITUDE": 30.83,
"LONGITUDE": 107.73,
"MINUTE": 0,
"SECOND": 4,
"MONTH": 10,
"WIND_SPEED": 3.0,
"YEAR": 2019}
以下是我迄今为止的匹配代码,它匹配精确的纬度/经度+分钟和秒。如果我想为此引入一个间隔,比如说在接近 1 分钟的时间和 lat/long 的秒数上匹配 1 - 2 个整数。我将如何实施这一点?
if (z['latitude'] == True and z['longitude'] == True) and z['minute'] == True:
trueMatches += 1
dict3 = {**dictA , **dictB}
list.append(dict3)
print(dict3)
它不必遵循我的代码,但我正在匹配列表中的字典。任何通用方法都会有所帮助。
解决方案
不完全确定您的代码的其余部分看起来像比较纬度和经度,但您可以创建中间变量latDiff
和longDiff
. 然后只需更改您的逻辑以查看这些是否小于阈值(diffThresh
):
if (latDiff < diffThresh and longDiff < diffThresh):
# Do something cool here!
您可以有不同的纬度和经度阈值。另一种方法,对于非常远的点来说可能是必要的,是计算两点之间的Haversine距离,然后改变你的逻辑来寻找小于一定距离的点(而不是查看单独的纬度和经度坐标) .
编辑:isclose看起来像是一个漂亮的小解决方案。
编辑:您可能想要获取差异的绝对值。
推荐阅读
- github - 如何使用 Github Search API 按标签搜索?
- openmp - 如何处理 travis 上的“clang:错误:不支持的选项'-fopenmp'”?
- android - 在 Retrofit 2 请求期间加载动画
- c# - 在 Python 中将十六进制转换为整数 - 相当于 C# 中的 ToInt64
- apache-beam - APACHE BEAM GROUP KEY 数据
- python - 如何识别 var 名称中使用的关键字的含义
- powerbi - Power BI、Power Query - 遍历列表并在每个步骤中添加文本(针对每个步骤)
- ios - Ktor 客户端 IOS 和自签名证书
- python - 使用python从xhr请求中获取数据
- azure - Azure ServiceBus JMS 事务支持不清楚