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

[TEMPLATE] walkability #24

Open lupacheco1 opened 1 year ago

lupacheco1 commented 1 year ago

Dentro de la dimensión de mobility & transport, el primer y más relevante template es el que por el momento llamaremos walkability. Voy a ir actualizando a medida que vayamos definiendo, pero esto es lo que charlamos el otro día.

SIMULATION FRAME City Machinery-02 EXPLORE RESULTS City Machinery-03 EXPLORE ZONES City Machinery-04 EXPLORE IMPACT City Machinery-05

PyMap commented 1 year ago

Sobre el cálculo del shortest path

Para obtener el id y las coordenadas de los nodos de orígen y destino se me ocurren dos alternativas:

  1. Usando el toolkit de kepler para dibujar geometrías.

Con la capa de nodos ya cargada, se podría dibujar un rectángulo que contenga a los nodos de origen y destino. Algo así:

nodo_origen = gpd.sjoin(rectangulo_dibujado, nodo_origen, predicate = 'within')
nodo_detino = gpd.sjoin(rectangulo_dibujado, nodo_destino, predicate = 'within')

... y con ambos objetos se podría calcular el camino más corto como se detalla en el siguiente link: https://github.com/CEEU-lab/urban_connector/blob/main/urban_connector/dashboard.py#L136-L141

  1. Obteniendo las coordenadas a partir de un click del usuario en el mapa con st_folium.

Para obtener la (lat,lon) de un punto cliqueado en un mapa de folium, urban connector usa st_folium. De esta manera y de esta.

Así, se pueden crear objetos de python con la latitud y longitud de un punto cliqueado en el mapa. Esa información se podría usar para calcular el camino más corto como se mostró en 1.

El resultado de esto debería ser algo así image

PyMap commented 1 year ago

Sobre el simulation frame, me parece que en la explicación que hace @lupacheco1 hay un mapa que debería ir directamente en resultados. Me parece que el simulation frame debería servir para definir una zona de análisis donde se clipee el callejero a ser analizado. Ahí es recién donde se va a mostrar el resultado del índice en results. En simulation frame e podrían setar un par de orígenes y destinos con alguno de los mecanismos que mencioné arriba. En el mapa que se muestre en results se podrían mostrar el shortest path calculado a partir de esos pares O-D (registrados en la tablita del usuario).

Lo que estaría faltando es alguna métrica para comparar el camino más corto contra el más caminable? Podría ser la diferencia en tiempo de viaje entre un path y el otro (cc @fabridiana @lupacheco1 @NMonnerSans )?

PyMap commented 1 year ago

Sobre explore zones, creo que se podrían comparar el índice de caminabilidad entre la zona de acción y la zona de referencia. Acá, en la zona de acción el usuario no "cambió" nada. Simplemente agregó puntos O-D para los cuales calcular el camino más corto y, ese camino, compararlo con el índice de caminabilidad.

NO se evalúa ninguna intervención, por eso los gráficos T0 Vs T1 no aplican (es decir, no hay gráficos para comprar algo antes y después de alguna modificación)

PyMap commented 1 year ago

Sobre explore impact, me parece que habría que repensar la métrica. El enfoque del template es más individual, por ahí sería mejor algo como ¿cuántos minutos de caminata está ganando o perdiendo entre una opción y otra (el índice de caminabilidad y el camino más corto)? @lupacheco1

PyMap commented 1 year ago

@lupacheco1 estos son los pensamientos que se me generan sobre el simulation frame

image

PyMap commented 1 year ago

Sobre la seccion de resultados, habíamos dicho que se podría incluir:

  1. Una tablita que sintetice qué valor tiene cada uno de los componentes del índice de caminabilidad para la zona de accion
  2. Esa tablita podria estar acompañada de un grafico de densidad (curvas) donde el eje x sea la distancia en minutos y el y la cantidad de manzanas o parcelas. Habría que ver si también incluimos alguna referencia adicional (como el promedio de distancia a cada una de las ammenities en toda la ciudad). Esto último, para ver cuan lejos o cerca está la zona de acción de dicha referencia.

(cc @lupacheco1 )

PyMap commented 1 year ago

La seccion de resultados podría ser algo así @lupacheco1

image

Esto supondría que el usuario puede decidir en cuánto podría mejorar cada uno de los atributos que componen el índice. Por ejemplo, decidir que va a mejorar el street greenery en un 5%.

Otra cosa que el usuario podría hacer en el simulation frame es "abrir calles". Esto se podría lograr permitiéndole agregar nuevos nodos a la red desde el Kepler. El impacto que podría tener esto es el de generar nuevos caminos mas cortos.