比赛间隔 (lat/long) 和时间 Python
Match interval (lat/long) and time in Python
我目前正在从事一个项目,其中有两个数据集。我已经能够编写一个程序来匹配时间戳和 lat/long 位置上两个数据集之间的记录。
示例:数据集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}
下面是我到目前为止的匹配代码,它是精确匹配 lat/long + 分钟和秒。如果我想为此引入一个时间间隔,假设匹配接近 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 distance between the two points,然后更改您的逻辑以查找距离小于一定距离的点(而不是查看单独的纬度和经度坐标)。
编辑: 看起来是个不错的小解决方案。
编辑:您可能想要取差值的绝对值。
我目前正在从事一个项目,其中有两个数据集。我已经能够编写一个程序来匹配时间戳和 lat/long 位置上两个数据集之间的记录。
示例:数据集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}
下面是我到目前为止的匹配代码,它是精确匹配 lat/long + 分钟和秒。如果我想为此引入一个时间间隔,假设匹配接近 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 distance between the two points,然后更改您的逻辑以查找距离小于一定距离的点(而不是查看单独的纬度和经度坐标)。
编辑:
编辑:您可能想要取差值的绝对值。