У меня есть геопанда с фреймом данных из ряда строк, у которого есть некоторые данные, связанные с каждой вершиной / точкой:
Point_x = (Lat, Lon, Time, ID, Data1, Data2, Data3)
Точки преобразуются в линейные линии на основе идентификатора и упорядочены по времени.
Я хочу разорвать линии подкладки в том месте, где выполняются некоторые условия. Прямо сейчас, когда расстояние между точками больше некоторого значения. В будущем это может произойти, когда функция полей данных будет иметь какое-то значение. Например, разделить линейную строку, когда скорость пересекает 5 км / ч.
В настоящее время проблема заключается в том, что некоторые треки сформированы из точек, которые имеют одинаковые идентификаторы, поэтому линейная линия прыгает вперед и назад на огромные расстояния, и я хочу, чтобы порог нарушил эти линии.
Любые идеи о том, как правильно структурировать это или библиотеки / методы, которые могут быть полезны?
В фрейме данных содержится более 150 тыс. Треков, в каждом из которых много точек, поэтому эффективность была бы хорошей.
Вот пример треков DF:
ID geometry
204235000 LINESTRING (37.62001 -28.99535, 37.62015 -28.9...
205400000 LINESTRING (3.807816666666666 -18.083181666666...
207138000 LINESTRING (22.73206 -34.97915833333333, 22.73...
209016000 LINESTRING (8.447673333333331 -23.522783333333...
Вот образец из точек DF. Есть 18 столбцов, включая Datetime, Point (Lon, Lat), Speed, Size и т. Д .:
Index Heading Latitude Longitude ID
20 92.8 -35.946802 13.089695 210725000
21 93.5 -35.946912 13.091808 210725000
22 95.4 -35.965520 13.497698 210725000
23 94.7 -35.965803 13.501898 210725000
24 94.9 -35.965987 13.504573 210725000
РЕДАКТИРОВАТЬ: пытался быть немного яснее.
gd.head()
будет приветствоваться.Ответы:
Я еще не использовал shape / геопанду, поэтому могу предоставить только псевдокод:
Функция расстояния должна быть чем-то, что ваши библиотеки уже предлагают, или вам придется реализовать ее самостоятельно (приятель Пифагор поможет вам).
Оттуда можно повысить эффективность по мере необходимости, но это должно стать хорошей отправной точкой.
источник