我是python的新手,正在尝试了解基本的问题说明。我有一个起点和终点纬度和经度坐标列表。我想计算两者之间的飞行距离。我的csv看起来像:
ID. Origin. Destination Origin_Lat Origin_long. Dest_Lat Dest_long
“来源和目的地”列包含IATA代码(机场指定代码)。
有人可以建议我如何进行同样的操作。
先谢谢了。
答案 0 :(得分:-1)
首先使用map函数获取纬度,原点和目的地的经度。 然后使用lambda函数在两列上应用Haversine公式。
def haversine(lon1, lat1, lon2, lat2):
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
km = 6367 * c
return km
Pandas: calculate haversine distance within each group of rows