Панды начинающий здесь. У меня есть набор координат позиций кораблей и набор координат отрезков, которые составляют маршрут корабля. Я хотел бы знать, какая точка на маршруте является самой близкой к кораблю. Затем я использую эту точку для вычисления общего расстояния от местоположения корабля до следующей точки и от следующей до конца набора. Есть похожий вопрос, но это немного другие проблемы: похожие вопросы здесь и здесь .
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