Как найти расстояние (в футах) между двумя соседними точками в наборе данных траектории GPS? - PullRequest
0 голосов
/ 02 июня 2019

Мне нужно найти расстояние между двумя GPS-траекториями из набора данных США 101, который полностью покрывает расстояние 2000 футов.

"Vehicle ID","Frame ID","Total Frames","Global Time","Local X","Local Y","Global X","Global Y","V_Len","V_Width","V_Class","V_Vel","V_Acc","Lane_ID","Pre_Veh","Fol_Veh","Spacing","Headway"

2,13,437,1118846980200,16.467,35.381,6451137.641,1873344.962,14.5,4.9,2,40.00,0.00,2,0,0,0.00,0.00
2,14,437,1118846980300,16.447,39.381,6451140.329,1873342.000,14.5,4.9,2,40.00,0.00,2,0,0,0.00,0.00
2,15,437,1118846980400,16.426,43.381,6451143.018,1873339.038,14.5,4.9,2,40.00,0.00,2,0,0,0.00,0.00
2,16,437,1118846980500,16.405,47.380,6451145.706,1873336.077,14.5,4.9,2,40.00,0.00,2,0,0,0.00,0.00
2,17,437,1118846980600,16.385,51.381,6451148.395,1873333.115,14.5,4.9,2,40.00,0.00,2,0,0,0.00,0.00

Но когда я пытаюсь найти расстояние между двумя соседними точками одного и того жетранспортное средство, его протяженность более 20 км.

import math
def distance(origin, destination):
lat1, lon1 = origin
lat2, lon2 = destination
radius = 3959 * 5280 # km
dlat = math.radians(lat2-lat1)
dlon = math.radians(lon2-lon1)
a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) \
    * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = radius * c
return d
lat1 = 16.467; lat2 = 16.447; long1 = 35.381; long2 = 39.381;
print( distance((lat1, long1), (lat2, long2)) )

Можете ли вы помочь мне найти расстояние между двумя смежными траекториями? Мне нужно разделить набор данных на подразделы, покрывающие расстояние 200 футов каждый ..

1 Ответ

0 голосов
/ 02 июня 2019

Вы уверены, что эти координаты широта и долгота?

Я не знаком с набором данных, который вы используете. Однако, если я не ошибаюсь, это это так. И документация ясно говорит о Local X (мой курсив):

Боковая (X) координата переднего центра транспортного средства в футах относительно самого левого края секции в направлении движения.

(и что-то похожее для Local Y).

...