El Blog colaborativo sobre Geotecnologías, GIS y Mapas para la comunidad GEO
  • Política de cookies
  • Más información
  • Contacto
geomapik
  • Proyecto
  • Contacto
Sin resultados
Ver todos los resultados
geomapik

Librería GeoPandas de Python: qué es y para qué sirve

Raúl Estévez por Raúl Estévez
22 septiembre, 2021
en Análisis GIS, Spatial Data Science
Home Spatial Data Science
2.1k
Vistas
CompartirTwitter

Nadie puede negar la evidencia: GeoPandas es cada vez más utilizada dentro del ecosistema GIS y no es nada raro. Se trata de una librería de Python muy popular dentro del sector geoespacial al trabajar con Python.

GeoPandas dota a Python de acceso a una serie de funcionalidades realmente útiles para realizar análisis geoespacial, gestionar geoinformación y crear salidas cartográficas de nuestros datos geográficos.

En este artículo pretendemos realizar una pequeña introducción a esta fantástica librería, tratando de resumir qué es Geopandas y qué operaciones podemos realizar con ella.

¿Qué es Geopandas?

GeoPandas es una de las librerías geoespaciales más completas de Python. Podríamos decir que es sencilla a la vez que compleja.

Decimos sencilla por la facilidad de uso y el poco esfuerzo que supone habituarse a trabajar con ella una vez se comprenden sus principales conceptos. Asimismo, es relativamente compleja debido a la cantidad de opciones y operaciones que permite cubrir en solitario o en combinación con otras librerías.

GeoPandas para Python análisis GIS logo
Logo de la librería GeoPandas para Python. Fuente: web oficial del proyecto

Su origen se remonta a 2013 como proyecto, producto de una Conferencia de Scipy, y ha sido mantenida hasta día de hoy por una larga lista de contribuidores.

En el sitio oficial de Geopandas la definen como:

Un proyecto open source cuyo objetivo es facilitar el trabajo con datos geoespaciales.

Fuente: web oficial de GeoPandas

GeoPandas se basa en la librería Pandas de Python, adaptando varias de sus clases para dar soporte a datos con geometrías asociadas.

Además de Pandas, GeoPandas también se sustenta sobre la librería Shapely que permite llevar a cabo operaciones geoespaciales con las geometrías asociadas a esos datos.

¿Qué podemos realizar con Geopandas?

Podemos resumir las utilidades de GeoPandas en los siguientes puntos:

  • Leer datos geoespaciales de archivos en múltiples formatos
  • Escribir datos geoespaciales en archivos de múltiples formatos.
  • Calcular y obtener indicadores geométricos como áreas, distancias, coordenadas, centroides, puntos sobre superfície, perímetro, generar buffers, uniones, transformar geometrías, etc…
  • Generar vistas de mapas sencillas personalizando su aspecto.
  • Realizar análisis espacial, es decir, estudiar las relaciones espaciales entre distintas geometrías.
  • Asignar proyecciones a datos o reproyectar los datos a otro SRC
  • Joins espaciales entre distintos orígenes de datos
  • Tareas de geocodificación

Así pues, podríamos decir que GeoPandas viene a ser una especie de «navaja suiza» dentro del ecosistema de librerías GIS de Python.

Resulta tremendamente útil, más aún si la combinamos con otras librerías que nos permitan, por ejemplo, conectar a bases de datos, realizar visualizaciones avanzadas, ejecutar APIs, etc…

Supone una base imprescindible para manipular datos geoespaciales sin la necesidad de disponer de un GIS de escritorio (excepto lógicamente para geoprocesos complejos, tratamiento de formatos no soportados o para la edición de datos, entre muchos otros) o sin almacenar nuestros datos en una base de datos como PostGIS.

Principales conceptos de GeoPandas

Como punto de inicio es imprescindible conocer la forma en que trabaja Geopandas y sus principales estructuras de datos.

GeoPandas trabaja con dos clases heredadas y adaptadas de Pandas, la librería de la que proviene: GeoSeries y GeoDataFrame, equivalentes a las Series y DataFrame de Pandas.

GeoSeries

GeoSeries se define de la siguiente manera:

Un elemento vectorial formado por una o múltiples formas geométricas que corresponden a una única observación.

Fuente: web oficial de GeoPandas

Es decir, se trata de la definición geométrica de un objeto, ya esté compuesto por una única geometrías o varias que no necesariamente deben ser iguales.

En este sentido, GeoPandas acepta tres tipos de geometrías:

  • Puntos (y multipuntos)
  • Líneas (y multilíneas)
  • Polígonos (y multipolígonos)

A partir de la definición geométrica podremos ejecutar operaciones de análisis espacial en Python utilizando los métodos que habilita GeoSeries.

Puedes revisar todos los métodos que habilita GeoSeries en este enlace.

GeoDataFrame

GeoDataFrame, en cambio, se define como:

Una estructura de datos tabular que contiene una columna con un objeto Geoseries que contiene la geometría.

Fuente: web oficial de GeoPandas

Por hacer un paralelismo con un archivo GIS, podríamos decir que GeoSeries es la geometría de una capa, que define dónde y cómo se sitúa un elemento cuyos atributos quedan recogidos en el conjunto del GeoDataFrame.

En un GeoDataFrame, la columna que contiene la geometría mediante la GeoSeries tiene unas características especiales propias.

Un punto muy importante a tener en cuenta es que un GeoDataFrame puede tener múltiples columnas de geometría. Es decir, podremos definir un objeto mediante sus atributos alfanuméricos acompañado de múltiples geometrías válidas asociadas al mismo.

GeoPandas que es GeoDataFrame GeoSeries
Esquema estructura de datos GeoDataFrame y GeoSeries. Fuente: elaboración propia a partir de documentación oficial de GeoPandas.

Supongamos que tenemos un GeoDataFrame con todos los edificios de un barrio. Pues bien, podríamos tener 3 columnas cada una con un tipo de geometría distinto: una podría definir el polígono que ocupa, otra el perímetro y otra columna definiría la ubicación del portal de acceso al edificio.

No obstante, sólo puede «activarse» una de las columnas geométricas a la vez. Las demás pierden, en cierto modo, el status de GeoSeries dentro del contexto de ese GeoDataFrame para pasar a ser tratadas como una columna más…

El método encargado de definir qué columna pasa a representar la geometría «oficial» en cada momento es GeoDataFrame.setGeometry().

Otro punto importante es que GeoDataFrame nos habilita para poder empezar a leer y escribir datos, crear mapas con Geopandas, indexar datos, etc.

Más información acerca de los métodos y funcionalidades de GeoDataFrame aquí.

Cómo instalar la librería Geopandas y primeros pasos

Para instalar GeoPandas podemos hacerlo mediante conda o bien utilizando pip.

Tal y como describen en la documentación oficial, la forma de hacerlo con conda es mediante el siguiente comando:

conda install -c conda-forge geopandas

Si por el contrario queremos hacerlo con pip:

pip install geopandas

O bien directamente desde el repo de GitHub con la última versión de desarrollo:

pip install git+git://github.com/geopandas/geopandas.git

Si tienes problemas con su instalación puedes consultar este enlace.

Además de las dependencias mencionadas anteriormente en este post, GeoPandas cuenta también con otras dependencias como Numpy, Fiona o PyProj, además de ciertas librerías de bajo nivel como GEOS, GDAL o PROJ.

Más información sobre dependencias aquí.

Antes de entrar a ejecutar GeoPandas es recomendable familiarizarse con los principales conceptos de pandas y shapely, así como con las características de los formatos de archivo GIS vectorial más habituales.

Dejamos asimismo el enlace a la documentación extendida de su API para consultarla en detalle.

Etiquetas: Análisis de datosAnálisis geoespacialGeopandasGISProgramaciónPythonSistemas de Información GeográficaSpatial Data Science
Compartir69Tweet43
Post anterior

ogr2ogr para importar datos a PostGIS: Shapefile, Geopackage y GeoJSON

Post siguiente

El futuro de los GIS y el sector geoespacial según OpenAI

Raúl Estévez

Raúl Estévez

Post siguiente
El futuro de los GIS según OpenAI

El futuro de los GIS y el sector geoespacial según OpenAI

Overture Maps. ¿Rival para Google Maps?

Overture Maps ¿una nueva plataforma de mapas con datos abiertos?

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Posts Recomendados

Geoinformática, geotecnologías y GIS en la era de los datos

Geoinformática, geotecnologías y GIS en la era de los datos

30 noviembre, 2018
1.8k
cómo descargar datos OpenStreetMap QGIS

Descargar datos de OpenStreetMap en QGIS

24 enero, 2020
1.8k
Geotecnologías GIS Mapas Cartografía Digital

Geotecnologías, GIS y Mapas

Información, recursos de aprendizaje y novedades del sector GEO para los usuarios especializados en el manejo de la información geográfica, su análisis y su representación.

Posts Nuevos

Overture Maps. ¿Rival para Google Maps?

Overture Maps ¿una nueva plataforma de mapas con datos abiertos?

19 diciembre, 2022
155
El futuro de los GIS según OpenAI

El futuro de los GIS y el sector geoespacial según OpenAI

9 diciembre, 2022
151
GeoPandas librería geoespacial para Python

Librería GeoPandas de Python: qué es y para qué sirve

22 septiembre, 2021
2.1k
ogr2ogr-postgis-geopackage-shapefile

ogr2ogr para importar datos a PostGIS: Shapefile, Geopackage y GeoJSON

20 septiembre, 2021
1.8k
que es la geoestadistica

¿Qué es la Geoestadística? Análisis geoestadístico con R, ArcGIS y QGIS

8 mayo, 2020
9.3k
Geotecnologías GIS Mapas Cartografía Digital

El blog colaborativo sobre Geotecnologías, GIS y Mapas para la comunidad GEO

Información, recursos de aprendizaje y novedades del sector GEO para los usuarios especializados en el manejo de la información geográfica, su análisis y su representación.

Todo reunido en un blog colaborativo y abierto. ¿Te animas a colaborar con geomapik?

Categorías

  • Análisis GIS
  • Desarrollo GIS
  • Novedades GIS
  • Recursos GIS
  • Spatial Data Science
  • Tutoriales
  • Uncategorized
  • Webmapping
Sin resultados
Ver todos los resultados
Novedades GIS

Overture Maps ¿una nueva plataforma de mapas con datos abiertos?

19 diciembre, 2022
155
Novedades GIS

El futuro de los GIS y el sector geoespacial según OpenAI

9 diciembre, 2022
151
Spatial Data Science

Librería GeoPandas de Python: qué es y para qué sirve

22 septiembre, 2021
2.1k
Spatial Data Science

ogr2ogr para importar datos a PostGIS: Shapefile, Geopackage y GeoJSON

20 septiembre, 2021
1.8k

Etiquetas

Análisis (15) Análisis de datos (5) aprender GIS (5) ArcGIS (5) Bases de Datos Espaciales (5) Cartografía (28) Data Analysis (4) Data Science (4) Datos (9) Desarrollo GIS (16) Diseño cartográfico (6) ESRI (3) GDAL (2) geoestadística (2) Geoinformática (7) Geopandas (2) Geotecnología (4) GIS (41) Javascript (4) Jupyter Notebook (3) Linux (2) Mapas (19) Matplotlib (2) MDT (3) Medio Ambiente (2) OGC (2) OpenStreetMap (3) pgAdmin (2) plugins (7) PostGIS (7) PostgreSQL (6) Programación (14) Python (8) QGIS (25) R (5) ráster (2) Sistemas de Información Geográfica (33) SQL (6) Tutorial (12) visor de mapas (3) visualización (3) Webmapping (11) WKT (2) WMS (2) WMTS (2)

© 2018 geomapik - Geotecnologías, GIS y Mapas

Sin resultados
Ver todos los resultados
  • Proyecto
  • Contacto

© 2018 geomapik - Geotecnologías, GIS y Mapas

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies