02 - GeoPandas - Análisis de Densidad Poblacional en Bogotá
HTML-код
- Опубликовано: 15 сен 2024
- #Python #Programacion #GeoPandas #GIS #SIG #Geografia
📋 Índice del video en la descripción para que puedas navegar entre los temas
🌎 🐼 En el video pasado hablamos de GeoPandas, ahora les traigo un sencillo ejercicio para analizar la densidad poblacional en Bogotá. Con ayuda de Python 🐍, hicimos la lectura de un GeoDataFrame, ejecutamos comandos como join, plots y visualizamos el mapa de densidad de Bogotá.
El ejercicio, flujo de trabajo y resultados es netamente académico, la finalidad es entender más conceptos y herramientas de GeoPandas y no pretende reemplazar ningún resultado de estudios formales.
----------------------------------------------------------------------
Puedes descargar el código y los datos usados en el video aquí 👇
💻 Código: github.com/Ing...
📁 Datos: drive.google.c...
----------------------------------------------------------------------
Índice del Video:
0:00:03 Introducción
0:01:13 Inicio del ejercicio
0:01:51 Importar geopandas
0:02:09 Lectura y visualización de datos
0:08:32 Join Espacial
0:13:30 Query
0:15:29 Group By
0:20:38 Mapa de densidad de Bogotá
0:23:48 Resumen
----------------------------------------------------------------------
🌐 Sígueme:
Linkedin: / ingjuanmasuarez
Github: github.com/Ing...
X: x.com/IngJuanM...
Threads: www.threads.ne...
Trabajos de Grado: udistrital.aca...
¡Hola Juan Manuel, gracias por el contenido!. Soy geógrafa, saludos desde México. Recién me suscribí a tu canal y estoy aprendiendo mucho con esta lista de reproducción.
Hola Karina, muchas gracias por tu apoyo y comentario 😊. Me encanta que mi contenido atraviese fronteras y llegue a tan bellos país. Gracias! 😎🥳
Excelente tu video.
Muchas gracias por tu comentario Julián 😎
Un lujo de clases, muchas gracias por los videos, me ayuda bastante para la maestría.
Mil gracias Hernan! Que bonito saber que el material sirve en muchos niveles educativos 💪
Valiosa información. Muchas gracias por el video, profesor.
Gracias a ti Dozma 🎉
Genial Juan Ma estoy empezando a trabajar desde Python y tu canal me ayuda bastante
Hola Fabio! Que bueno, excelente! Me alegra un montón que el material te sea de ayuda 😊. Por acá siempre bienvenido.
Muy buen aporte, muy didáctico. Me sirvió bastante para migrar de entorno gráfico a código.
Excelente! 🎉. Gracias a ti por tu comentario y compartir tu aprendizaje 😊
Excelente videos Juan. Muchas gracias!!!
Gracias por tu comentario 😊. Que bueno que los videos sean de utilidad, poco a poco seguiré subiendo más contenido
Consulta Juan Manuel: No termino de entender para que utilizamos la grilla de hexagonos si el resultado final es un plot de todos los centroides
Hola Martín 😀. Tienes razón, la grilla se hubiera podido evitar ya que el resultado era posible obtenerlo solo con los centroides. Fue más que todo por mostrar el join y la visualización de dos datas en el mismo plot, pero para el resultado era innecesario.
Gracias
Gracias a ti 🎉
Una consulta, cómo puedo hacer esto mismo pero en vez de manzanas, con localidades? Perdón si la pregunta es básica, pero estoy aprendiendo hace muy poco
Hola Sebastian, gracias por tu apoyo al canal y tu pregunta. Básica o no, es super importante para aprender 😎.
Hay varias cosas a tener en cuenta:
1. Obtención de datos: localidades: Desde la página del IGAC o el IDECA puedes encontrar las localidades, normalmente lo puedes descargar en formato SHAPE y es un dato con geometría poligonal (a diferencia del que usé en el video que eran puntos)
2. Tratamiento de datos: Para tener una visualización de la densidad poblacional por localidades, las localidades deben tener el atributo de densidad, o en su defecto la población y el área para calcular la densidad. En caso de no contar con ningún atributo de estos, tocaría calcular el área y buscar fuentes diferentes de población para "transferir" la población a cada poligono de la localidad.
3. Visualización: Cuando la localidad ya tenga el valor de la densidad población, haces la visualización aplicando una simbología que identifique donde hay mas o menos densidad.
Espero que la información te haya orientado y aclarado las dudas. Gracias 😊🎉
Ing. me llamo jose. soy de formosa, argentina. estoy aprendiendo con vos, jupiter notebook con geopandas. tengo esperanza de hacer los 11 tutoriales. gracias por brindar tus conocimientos. estaremos en contacto.
Hola Cesar, muchas gracias por tu comentario 😊. Me alegra que los videos lleguen cada vez más lejos y puedan apoyar a más personas. De GeoPandas son 6 videos, de Python si son 11. Espero que te sirva y lo aproveches. Poco a poco seguiré subiendo material.
Para visualizar los hexágonos con mayor población de mayor a menor:
agregados_poblacion_manzanas = grilla_manzanas_poblacion.groupby('ID')['DENSIDAD_P'].agg(['sum'])
agregados_poblacion_manzanas_sorted = agregados_poblacion_manzanas.sort_values('sum', ascending=False)
display(agregados_poblacion_manzanas_sorted)
agregados_poblacion_manzanas.plot()
🤯 Genial German! Excelente aporte, te agradezco mucho
muchas gracias por tus comentarios. AHORA , en este practico , llego hasta a la linea [25], y quiero generar un esquema de simbolizacion, y copio el mismo codigo que tu escribes y me tira error:
el codigo es (join.plot(column="DENSIDAD_P",scheme= "QUANTILES", k=3, figsize=(20,12),legend=True ) ,
y me sale este warning :
ModuleNotFoundError Traceback (most recent call last)
File ~\anaconda3\lib\site-packages\geopandas\plotting.py:747, in plot_dataframe(df, column, cmap, color, ax, cax, categorical, legend, scheme, k, vmin, vmax, markersize, figsize, legend_kwds, categories, classification_kwds, missing_kwds, aspect, **style_kwds)
746 try:
--> 747 import mapclassify
749 except ImportError:
ModuleNotFoundError: No module named 'mapclassify'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last)
Input In [27], in ()
----> 1 join.plot(column="DENSIDAD_P",scheme= "QUANTILES", k=3, figsize=(20,12),legend=True )
File ~\anaconda3\lib\site-packages\geopandas\plotting.py:963, in GeoplotAccessor.__call__(self, *args, **kwargs)
961 kind = kwargs.pop("kind", "geo")
962 if kind == "geo":
--> 963 return plot_dataframe(data, *args, **kwargs)
964 if kind in self._pandas_kinds:
965 # Access pandas plots
966 return PlotAccessor(data)(kind=kind, **kwargs)
File ~\anaconda3\lib\site-packages\geopandas\plotting.py:750, in plot_dataframe(df, column, cmap, color, ax, cax, categorical, legend, scheme, k, vmin, vmax, markersize, figsize, legend_kwds, categories, classification_kwds, missing_kwds, aspect, **style_kwds)
747 import mapclassify
749 except ImportError:
--> 750 raise ImportError(mc_err)
752 if Version(mapclassify.__version__) < Version("2.4.0"):
753 raise ImportError(mc_err)
ImportError: The 'mapclassify' package (>= 2.4.0) is required to use the 'scheme' keyword.
COMO DEBO SOLUCINAR ESTE PROBLEMA?
Hola Cesar, gracias por tu mensaje. Según el error, es probable que el problema sea de versión de matplotlib. Intenta actualizar y tener las versiones más actualizadas de estos paquetes a ver si eso ayuda a solucionar el error.
@@GeoCositasParaDummies Hola, en este mismo paso me sucede que se queda y nunca da respuesta ni error. Me sucede con el archivo que hice mientras seguía el video y también con el tuyo, descargándolo y corriéndolo. Alguna idea? Gracias!