为了账号安全,请及时绑定邮箱和手机立即绑定

计算列中 GPS 坐标之间的距离

计算列中 GPS 坐标之间的距离

慕村9548890 2023-09-19 14:36:04
我使用 geopy distance.distance 函数来计算 gpx 文件中每个纬度和经度点之间的距离,如下所示:lat lon alt time0   44.565335   -123.312517 85.314  2020-09-07 14:00:011   44.565336   -123.312528 85.311  2020-09-07 14:00:022   44.565335   -123.312551 85.302  2020-09-07 14:00:033   44.565332   -123.312591 85.287  2020-09-07 14:00:044   44.565331   -123.312637 85.270  2020-09-07 14:00:05我正在使用此代码,它为纬度和经度创建新列,其中行向下移动,然后我可以使用 apply 来计算每个列的距离。这是可行的,但我想知道是否有一种方法可以做到这一点,而无需为移位的数据创建额外的列。def calcDistance(row):    return distance.distance((row.lat_shift,row.lon_shift),(row.lat,row.lon)).milesGPS_df['lat_shift']=GPS_df['lat'].shift()GPS_df['lon_shift']=GPS_df['lon'].shift()GPS_df['lat_shift'][0]=GPS_df['lat'][0]GPS_df['lon_shift'][0]=GPS_df['lon'][0]GPS_df['dist']= GPS_df.apply(calcDistance,axis=1)
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

代码是高效的。一种选择是在获得距离后删除新列。

GPS_df = GPS_df.drop(columns=['lat_shift', 'lon_shift'])


查看完整回答
反对 回复 2023-09-19
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信