熊猫初学者在这里。我有一组船舶位置坐标和一组构成船舶路线的线段坐标。我想知道路线上哪一点最靠近船。然后,我使用该点来计算从船舶位置到下一个点以及下一个点直到集合结束的总距离。有一个类似的问题,但它们是稍有不同的问题:similar questions here和here。
SHIP LAT SHIP LNG
40.77110 14.0301
40.77110 14.0501
ROUTE 1 LAT ROUTE 1 LNG
40.74556 13.93871
40.74477 13.94019
40.75093 13.94584
40.76589 13.99974
40.77114 14.01122
40.77109 14.0301
40.76585 14.02673
我已经实现了我想要的,而无需使用熊猫并将其应用于数据框。
for segment in segments:
proximity = min(haversine(lng,lat, point[0], point[1]) for point in segment)
print('proximity point')
print(proximity)
for point in segment:
if haversine(lng,lat, point[0], point[1]) == proximity:
closest_point = point
point_index = segment.index(point)
print('closest point')
print(point_index)
total_distance = proximity
i = point_index
last_index = len(segment)-1
while i < last_index:
seg_distance = haversine(segment[i][0], segment[i][1], segment[i+1][0], segment[i+1][1])
print('segment distance')
print(seg_distance)
total_distance += seg_distance
i += 1