繁体   English   中英

Python 中的匹配间隔(纬度/经度)和时间

[英]Match interval (lat/long) and time in 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有另一条记录,它接近纬度/经度和时间戳的数字。

示例数据集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)

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

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

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

您可以为纬度和经度设置不同的阈值。 对于非常远的点,另一种可能是必要的方法是计算两点之间的Haversine距离,然后更改逻辑以查找小于一定距离的点(而不是查看单个纬度和经度坐标) .

编辑: isclose看起来像一个漂亮的小解决方案。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM