比赛间隔 (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)

它不必遵循我的代码,但我在列表中匹配字典。任何通用方法都会有所帮助。

不完全确定比较经纬度的其余代码是什么样的,但您可以创建中间变量 latDifflongDiff。然后只需更改您的逻辑以查看它们是否小于阈值 (diffThresh):

if (latDiff < diffThresh and longDiff < diffThresh):
    # Do something cool here!

您可以为纬度和经度设置不同的阈值。另一种方法(对于距离很远的点可能是必要的)是计算 Haversine distance between the two points,然后更改您的逻辑以查找距离小于一定距离的点(而不是查看单独的纬度和经度坐标)。

编辑: 看起来是个不错的小解决方案。

编辑:您可能想要取差值的绝对值。