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()