Tutorial de Generación y Automatización de Planos Espaciales con Python - GeoPandas

Screen Shot 2018-03-07 at 3.40.28 PM.png

GeoPandas es la implementación geoespacial de la librería de Python llamada Pandas, esta librería está enfocado en el cálculo masivo bajo el enfoque de "Big Data". GeoPandas permite el uso de los tipos de datos de Pandas para las operaciones espaciales de tipos geométricos de SIG (puntos, líneas y polígonos). La librería GeoPandas es la combinación de un set de datos geoespaciales en Python como Shapely, Fiona junto con los paquetes más conocidos y robustos como Numpy y Matplotlib.

Para usuarios normales de Sistemas de Información Geográfica (SIG), la librería GeoPandas genera un nuevo panorama en la manera de interacción con datos espaciales debido al uso de una variedad de filtros, listados, indexados y transformación de datos en menos tiempo y con menos requerimientos computacionales. Este tutorial muestra parte del procedimiento de manejo de datos espaciales con GeoPandas junto con opciones de representación para la generación de planos.

Usted puede visitar la página oficial de GeoPandas en: geopandas.org

 

Tutorial

 

Datos de entrada

Usted puede descargar los datos de entrada de este enlace.

 

Código en Python

Este es el código en Python para el gráfico final:

%matplotlib inline
import geopandas as gpd
guayapol = gpd.read_file('shp/Guayaqui_Poligonos.shp')
guayalin = gpd.read_file('shp/Guayaqui_Lineas.shp')

#highway
primary = guayalin[guayalin['highway']=='primary']
secondary = guayalin[guayalin['highway']=='secondary']
residential = guayalin[guayalin['highway']=='residential']
#parks
parks = guayapol[guayapol['leisure']=='park']
#rivers
rivers = guayalin[guayalin['waterway']!='']

bounds = list(residential.dissolve(by='highway').bounds.ix['residential'])

import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12,12))
ax.set_xlim([bounds[0], bounds[2]])
ax.set_ylim([bounds[1], bounds[3]])
ax.set_aspect('equal')
primary.plot(ax=ax, edgecolor='deepskyblue', label='Primary')
secondary.plot(ax=ax, edgecolor='dodgerblue', label ='Secondary')
residential.plot(ax=ax, edgecolor='steelblue', label ='Residential')
rivers.plot(ax=ax, edgecolor='cornflowerblue', label ='Rivers', linewidth=5)
parks.plot(ax=ax, color='lawngreen',edgecolor='limegreen')

ax.grid(which='major', alpha=0.5)

plt.legend(loc='center left', title= 'Layers', bbox_to_anchor=(1, 0.5), frameon=False)
plt.show()
Smiley face

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

Posted on March 8, 2018 and filed under TutorialQGIS.