Curso pyqgis: domina la programación en sistemas de información geográfica

23/05/2021

Valoración: 3.90 (959 votos)

Este completo curso te guiará en el aprendizaje de PyQGIS, la librería Python para QGIS, desde cero. Aprenderás a automatizar tareas, crear complementos y mucho más.

Índice de Contenido

¿Qué es PyQGIS?

PyQGIS es la librería de QGIS que permite ejecutar código Python. Desde la versión 0.9 (septiembre 2007), QGIS integra soporte para scripts Python, destacando por su facilidad de uso y la popularidad de Python en el ámbito GIS.

¿Para qué sirve PyQGIS?

Las posibilidades con PyQGIS son vastas. Automatiza tareas repetitivas, realiza geoprocesamiento complejo, crea y gestiona capas y tablas, genera nuevas geometrías, exporta mapas a PDF y mucho más. Una de sus grandes ventajas es la capacidad de crear complementos (plugins) para QGIS, expandiendo sus funcionalidades de forma sencilla.

Con PyQGIS puedes:

  • Automatizar tareas GIS : Listar registros, realizar análisis espaciales, etc.
  • Crear plugins para QGIS : Desarrolla extensiones personalizadas para QGIS, aprovechando la sencillez de Python.
  • Desarrollar aplicaciones GIS personalizadas : Crea aplicaciones interactivas con interfaces gráficas (GUI) utilizando el módulo qgis.gui .

Ventajas de usar PyQGIS

PyQGIS ofrece numerosas ventajas:

  • Ahorro de tiempo y aumento de precisión : Automatiza procesos manuales, reduciendo errores.
  • Generación eficiente de informes e inventarios : Crea reportes actualizados sobre tus datos GIS.
  • Gestión de grandes volúmenes de datos : Gestiona eficazmente información GIS a gran escala.

Cómo ejecutar código PyQGIS

Existen dos formas principales de ejecutar código PyQGIS:

  1. Consola de Python integrada en QGIS : Accede a través de Complementos > Consola de Python . Escribe y ejecuta tu código directamente.
  2. Entorno de Desarrollo Integrado (IDE) : Utiliza IDEs como PyCharm, PyDev o Eclipse. Requiere importar el módulo qgis y configurar la ruta de QGIS.

Ejemplos Prácticos con PyQGIS

Añadir una capa vectorial (Shapefile)

Añade una capa vectorial .shp a QGIS con este sencillo script:

layer = QgsVectorLayer(r"C:/Temp/cities.shp","cities")list(layer.getFeatures())QgsProject.instance().addMapLayer(layer)

Este código instancia QgsVectorLayer, especificando la ruta, nombre y proveedor ( ogrpara .shp). Luego, addMapLayer()añade la capa al proyecto QGIS.

Añadir un GeoPackage

Para añadir un GeoPackage, necesitas especificar el nombre de la capa dentro del archivo:

gpkg_layer = QgsVectorLayer(r"C:/Temp/cities.gpkg|layername=cities", "cities", "ogr")QgsProject.instance().addMapLayer(gpkg_layer)

Añadir todas las capas de un GeoPackage

fileName = "sample.gpkg"layer = QgsVectorLayer(fileName,"test","ogr")subLayers = layer.dataProvider().subLayers()for subLayer in subLayers: name = subLayer.split('!!::!!')[1] uri = "%s|layername=%s" % (fileName, name,) sub_vlayer = QgsVectorLayer(uri, name, 'ogr') QgsProject.instance().addMapLayer(sub_vlayer)

Añadir una capa PostGIS

Este ejemplo añade un feature (polígono de España) desde una base de datos PostGIS:

curso pyqgis - Qué es PyQGIS

from qgis.core import uri = QgsDataSourceUri()uri.setConnection("localhost", "5432", "world", "postgres", "postgres")uri.setDataSource("public", "countries", "geom", "name = pain'")layer = QgsVectorLayer(uri.uri(), "countries", "postgres")QgsProject.instance().addMapLayer(layer)

Recuerda ajustar los parámetros de conexión a tu base de datos.

Consultas Frecuentes sobre PyQGIS

Pregunta Respuesta
¿Qué IDEs son recomendables para PyQGIS? PyCharm, PyDev y Eclipse son opciones populares.
¿Cómo manejo errores en scripts PyQGIS? Utiliza bloques try...except para gestionar excepciones.
¿Dónde encuentro documentación de PyQGIS? Consulta la documentación oficial de QGIS y la documentación de la API de PyQGIS.
¿Existen ejemplos de código PyQGIS? Busca ejemplos en repositorios como GitHub y en foros de QGIS.

Tabla Comparativa de Métodos de Conexión

Tipo de Datos Función Ejemplo
Shapefile QgsVectorLayer() layer = QgsVectorLayer(r"C:/ruta/archivo.shp", "nombre", "ogr")
GeoPackage QgsVectorLayer() layer = QgsVectorLayer(r"C:/ruta/archivo.gpkg|layername=nombre_capa", "nombre", "ogr")
PostGIS QgsDataSourceUri() Ver ejemplo anterior.

Recursos Adicionales

Para seguir aprendiendo, explora la documentación oficial de QGIS y busca tutoriales y ejemplos en línea. La comunidad QGIS es activa y ofrece gran apoyo.

Si quieres conocer otros artículos parecidos a Curso pyqgis: domina la programación en sistemas de información geográfica puedes visitar la categoría Curso.

Subir