Tengo un marco de datos de coordenadas X, Y que representan puntos a lo largo de los caminos tomados por varias entidades diferentes. Pseudo-datos aquí, pero es más o menos de la forma:
entity_id lat lon time
1001 34.5 14.2 4:55 pm
1001 34.7 14.5 4:58 pm
1001 35.0 14.6 5.03 pm
1002 27.1 19.2 2:01 pm
1002 27.4 19.3 2:08 pm
1002 27.4 19.9 2:09 pm
Lo que me gustaría hacer es agrupar estos puntos entity_id
y luego organizarlos secuencialmente a tiempo para crear un LineString
objeto para cada uno entity_id
. La salida será de varias líneas / rutas, cada una correspondiente a un entity_id
.
Puedo hacer esto recorriendo cada entity_id
uno de los puntos entity_id
y usando las instrucciones proporcionadas aquí , pero ¿hay alguna forma más rápida / eficiente de hacer esto aprovechando GeoPandas o Shapely, tal vez con groupby
?
fuente
df.groupby('entity_id', as_index=False).agg({'geometry': lambda x: ...})