【发布时间】:2020-06-24 15:00:46
【问题描述】:
我有高频率的 gps 数据,我想每 50 米下采样一次,即每 50 米保持 gps 纬度和经度,并在点之间丢弃。我在互联网上找到了一个python代码,它基本上计算了两点之间的距离。但我不确定如何从 csv 中读取 lat 和 long 值并将其输入函数并计算距离。如果距离达到 50 米,我只需保存 gps 坐标。到目前为止,我有以下 python 代码
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2):
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
r = 6371 # Radius of earth in kilometers. Use 3956 for miles
return c * r
x1 = 52.19421607
x2 = 52.20000327
y1 = -1.484984011
y2 = -1.48533465
result = haversine(x1,y1,x2,y2) #need to give input from a csv
#if result is greater than 50m , save the coordinates
print(result)
我该如何解决这个问题?任何方向都将不胜感激。
【问题讨论】:
标签: python pandas gps haversine downsampling