Ho un frame di dati geopandas di un gruppo di linestring che hanno alcuni dati associati a ciascun vertice / punto:
Point_x = (Lat, Lon, Time, ID, Data1, Data2, Data3)
I punti vengono convertiti in linestring in base all'ID e ordinati in base al tempo.
Voglio interrompere le stringhe di linea dove nel punto in cui si verificano alcune condizioni. In questo momento è quando la distanza tra i punti è maggiore di un valore. In futuro potrebbe essere dove una funzione dei campi Dati ha un certo valore. Ad esempio, dividere una stringa lineare quando la velocità supera 5 km / h.
Il problema attuale è che alcune tracce sono formate da punti che hanno ID duplicati, quindi il linestring salta avanti e indietro su enormi distanze e voglio che una soglia interrompa queste linee.
Qualche idea sul modo corretto di strutturare questo o librerie / metodi che potrebbero essere utili?
Il dataframe ha oltre 150k tracce con molti punti per traccia, quindi l'efficienza sarebbe buona.
Ecco un esempio delle tracce 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...
Ecco un esempio dai punti DF. Ci sono 18 colonne tra cui Datetime, Point (Lon, Lat), Speed, Size etc etc:
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
EDIT: Ho cercato di essere un po 'più chiaro.
gd.head()
sarebbe benvenuta.