15 librerías de Python para GIS

Librerías de python para GIS

Python es un lenguaje de programación muy versátil y extendido con el que es posible realizar análisis espacial y de datos. Es un lenguaje que extiende enormemente las capacidades de un GIS.

Cuenta con más de 300.000 proyectos. Estas librerías hacen que Python sea muy útil cuando necesitamos conseguir un fin específico: desde lo tradicional como desarrollo web o procesamiento de textos, hasta lo último como inteligencia artificial. Un técnico o un analista SIG podría usar la biblioteca GeoPy para ayudarle en su trabajo con la geocodificación de direcciones. Además, Python es muy empleado en aprendizaje automático (machine learning) y deep learning como ya vimos en esta entrada.

Por lo tanto, utilizar librerías de Python es una buena solución cuando trabajamos con GIS.

En esta entrada vamos a ver las librerías de Python para GIS más populares, ordenadas alfabéticamente.

1. ArcPy

El uso de Python en ArcGIS nos puede proporcionar una serie de ventajas en nuestro trabajo diario, ya que con ArcPy podemos utilizar las herramientas que vemos en las ToolBoxes en modo de código Python, que además podremos enriquecer con bucles, condiciones, parámetros, etc. ArcPy es fácil de utilizar, fácil de aprender y está bien documentado.

La ArcPy representa un conjunto de elementos propios de ArcGIS que completan la biblioteca de Python, dando con ello acceso desde la programación al manejo y explotación de información espacial.

2. Cartopy

Cartopy se ha diseñado para el procesamiento de datos geoespaciales con el fin de producir mapas y otros análisis de datos geoespaciales. Hace uso de las poderosas bibliotecas PROJ, NumPy y Shapely e incluye una interfaz  construida sobre Matplotlib para la creación de mapas con calidad de publicación.

Las características clave de cartopy son sus definiciones de proyección orientadas a objetos y su capacidad para transformar puntos, líneas, vectores, polígonos e imágenes entre esas proyecciones.

En esta entrada tienes un pequeño tutorial con la descarga, instalación y creación de primeros mapas.

Night time shading for 1999-12-31 12:00:00

3. Folium

Leaflet es una librería JavaScript que nos permite publicar mapas en la web de forma rápida y eficaz. La unión de Leaflet y Python llega de la mano de Folium. Mediante Folium podemos manipular los datos en Python y visualizar los resultados en Leaflet.

Dos alternativas a Folium sos ipyleaflet o Leafmap.

4. GDAL/OGR

GDAL significa Geospatial Data Abstraction Library.

Se trata de un conjunto de herramientas para tratamiento de datos Geoespaciales. Es libre y de código abierto. GDAL lee y escribe datos raster y OGR lee y escribe datos vectoriales.

Es capaz de leer/escribir más de 200 formatos y protocolos. En esta entrada te contamos más sobre GDAL.

Las utilidades de python GDAL se incluyen con GDAL. Si has instalado GDAL, ya los tienes.

5. Geemap

Geemap es una librería de Python para mapas interactivos con Google Earth Engine (GEE). Durante los últimos años, GEE se ha vuelto muy popular en la comunidad geoespacial y ha potenciado numerosas aplicaciones ambientales a escala local, regional y global.

GEE proporciona las API de JavaScript y Python para realizar solicitudes computacionales a los servidores de Earth Engine. En comparación con la documentación completa y el IDE interactivo (es decir, el editor de código de JavaScript de GEE) de la API de JavaScript de GEE, la API de Python de GEE tiene relativamente poca documentación y una funcionalidad limitada para visualizar los resultados de forma interactiva. Se basa en ipyleaflet e ipywidgets, y permite a los usuarios analizar y visualizar conjuntos de datos de Earth Engine de forma interactiva dentro de un entorno basado en Jupyter.

El módulo de conversión automatizado de JavaScript a Python, del paquete geemap, puede reducir en gran medida el tiempo necesario para convertir scripts de JavaScript existentes a scripts de Python.

6. GeoPandas

GeoPandas es una de las más completas librerías de Python para GIS. De código abierto, nos permite trabajar con datos vectoriales. Como su nombre indica, extiende la popular librería de ciencia de datos pandas, al agregar soporte para datos geoespaciales.

librerías de Python para GIS

¿Qué podemos hacer con GeoPandas?

  • Leer y escribir datos espaciales de múltiples formatos.
  • Exportar datos a múltiples formatos.
  • Visualizar datos.
  • Medir áreas y distancias.
  • Crear nuevas geometrías como polígonos envolventes, buffer u obtener centroides.
  • También podemos analizar relaciones espaciales de diferentes geometrías.
  • Trabajar con proyecciones.
  • Realizar geocodificación (con geopy, como vimos en este artículo).
  • Agregar índices espaciales para acelerar las consultas y análisis espaciales.
  • Hacer mapas.

7. GeoPy

Una de las mejores librerías de python para acceder a servicios de geocodificación es GeoPy.

GeoPy facilita a desarrolladores de Python localizar las coordenadas de direcciones, ciudades, países y puntos de referencia en todo el mundo mediante geocodificadores de terceros y otras fuentes de datos. En esta entrada te contamos más sobre ella.

8. LiDAR

La librería de Python LiDAR, tiene como objetivo analizar datos topográficos de alta resolución, como los DEM derivados de los datos de detección y alcance de la luz (LiDAR). Incluye herramientas para suavizar, filtrar y extraer propiedades topológicas de datos de modelos digitales de elevación (DEM).

9. Matplotlib

Matplotlib es una librería de Python para trabajar con GIS. Es una biblioteca completa para crear visualizaciones estáticas, animadas e interactivas en Python. Los estadísticos usan esta biblioteca para visualizar datos. Cuando trabajamos con miles de puntos de datos, a veces lo mejor que podemos hacer es dibujarlo todo. Matplotlib traza gráficos, tablas y mapas. Incluso con big data, es interesante para procesar números.

grid and contour (200 points, 20000 grid points), tricontour (200 points)

10. NumPy NumPy logo.

La librería NumPy puede utilizar la tabla de atributos de nuestras capas y colocarla como una matriz estructurada. Una vez que está en una matriz estructurada, es mucho más rápido realizar cualquier operación matemática. Una de las mejores cosas de esto es cómo puede trabajar con otras bibliotecas de Python como SciPy para operaciones estadísticas pesadas.

NumPy trae el poder computacional de lenguajes como C y Fortran a Python, un lenguaje mucho más fácil de aprender y usar. Con este poder viene la simplicidad: utilizar NumPy suele ser más limpio y elegante.

SciPy SciPy logo. A blue circle with a snake in the shape of the letter 'S'.

SciPy proporciona algoritmos para la optimización, integración, interpolación, problemas de valores propios, ecuaciones algebraicas, ecuaciones diferenciales, estadísticas y muchas otras clases de problemas.

Esta librería amplía NumPy proporcionando herramientas adicionales para la computación de matrices y proporciona estructuras de datos especializadas, como matrices dispersas y árboles k-dimensionales.

11. PyProj

El objetivo principal de la librería PyProj es trabajar con sistemas de referencia espacial. Esta librería nos permite proyectar y transformar coordenadas utilizando una variedad de sistemas de referencia geográfica.

Logo

PyProj también puede realizar cálculos geodésicos y de distancias para cualquier datum.

12. PyQGIS

PyQGIS es la librería de QGIS para ejecutar código Python. Si quieres saber un poco más sobre PyQGIS te recomendamos comenzar por nuestro artículo PyQGIS para novatos: primeros pasos con python en QGIS.

Con PyQGIS podemos automatizar tareas GIS: listar el numero de registros de las capas, realizar geoprocesamiento, añadir y borrar elementos de una capa o tabla, crear geometrías nuevas o exportar un mapa a PDF. También podemos crear complementos de QGIS (plugins) o ejecutar aplicaciones personalizadas.

Podemos utilizar Python en el entorno de QGIS de 7 maneras diferentes.

13. PySAL

PySAL es una librería de Python que nos da la posibilidad de la realizar distintos tipos de análisis espacial, así como realizar ciencia de datos espaciales.

14. Rasterio

Los Sistemas de Información Geográfica utilizan GeoTIFF y otros formatos para organizar y almacenar conjuntos de datos ráster (tanto imágenes satelitales como modelos de terreno).  Rasterio lee y escribe estos formatos y proporciona una API de Python basada en matrices Numpy N-dimensionales y GeoJSON.

15. whitebox

El paquete de Python whitebox se basa en WhiteboxTools, una plataforma avanzada de análisis de datos geoespaciales desarrollada por el Prof. John Lindsay en el Grupo de Investigación de Geomorfometría e Hidrogeomática de la Universidad de Guelph. WhiteboxTools se puede utilizar para realizar operaciones comunes de análisis de sistemas de información geográfica (SIG)

WhiteboxTools se puede utilizar para realizar operaciones comunes de análisis de sistemas de información geográfica (GIS).

Y hasta aquí nuestro repaso a las librerías de Python para GIS. Solo queremos recordarte que Python es un lenguaje que se solicita en prácticamente la mitad de las ofertas de empleo.

Si quieres aprender a trabajar con librerías de python para GIS como NumPy, GeoPandas, Matplotlib, cartopy o rasterio, ahora puedes inscribirte a nuestro curso online de Análisis Geoespacial con Python.