簡體   English   中英

計算列中gps坐標之間的距離

[英]Calculating distance between gps coordinates in columns

我正在使用 geopy distance.distance 函數來計算 gpx 文件中每個緯度和經度點之間的距離,如下所示:

lat lon alt time
0   44.565335   -123.312517 85.314  2020-09-07 14:00:01
1   44.565336   -123.312528 85.311  2020-09-07 14:00:02
2   44.565335   -123.312551 85.302  2020-09-07 14:00:03
3   44.565332   -123.312591 85.287  2020-09-07 14:00:04
4   44.565331   -123.312637 85.270  2020-09-07 14:00:05

我正在使用此代碼為 lat 和 lon 創建新列,其中行向下移動,然后我可以使用 apply 來計算每個的距離。 這有效,但我想知道是否有辦法在不為移位數據創建額外列的情況下做到這一點。

def calcDistance(row):
    return distance.distance((row.lat_shift,row.lon_shift),(row.lat,row.lon)).miles

GPS_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)

該代碼是有效的。 一種選擇是在獲得距離后刪除新列。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM