CEEU-lab / city_modeller

Urban dynamics performance assessment with data-driven modelling templates
GNU General Public License v3.0
0 stars 0 forks source link

Funcionalidades para el análisis de movilidad urbana (grafos II) #31

Open PyMap opened 1 year ago

PyMap commented 1 year ago

Al día de hoy, la app ya carga grafos desde OSMNx y calcula isócronas policéntricas (a varios puntos)

A continuación listo algunas funcionalidad que todavía nos podrían interesar incluir en el módulo streets network

Plotear nodos

Para plotear nodos con folium, está esto. Esa función de ploteo yo ya la empecé a usar y a adaptar acá.

Conectividad

Para ver qué lugares están mejor conectados, podríamos llevar esto al directorio streets_network. Estas funciones devuelven un primer panorama del grado de conectividad de la red (grado de un nodo, centralidad de intermediación, etc)

Una buena idea acá sería poder considerar otras métricas de impedancia. Por ejemplo, podríamos usar el Green View Index. Otra capa que se podría usar es el mapa del delito. Serían opciones limitadas para pesar los nodos. El desafío de esto es determinar cómo asignarle el GVI y la cantidad de delitos a los ejes o nodos de la red.

Inicialmente, se podría hacer:

# util func
edge_attr = gpd.spatial_join(Point_Gdf, LineString, predicate=within)

ó

# util func
buffer = Point_Gdf.buffer(dist)
node_attr = gpd.spatial_join(Point_Gdf, buffer, predicate=within)
stats_node_attr = node_attr.groupby('id_node')['GVI','Delitos'].agg(['mean','std','max','min'])

Para sumarizar el resultado de un join entre dos geometrías, leer más acá

Accesibilidad a un único punto dentro de la red

Para estimar isócronas a un único par de coordenadas, se puede usar esto. Esta función no sólo estima tiempos de viaje, también plotea. Hay que ver si nos sirve todo o sólo la parte de calcular los tiempos de viajes sobre el grafo.