23/05/2021
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.

¿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:
- Consola de Python integrada en QGIS : Accede a través de Complementos > Consola de Python . Escribe y ejecuta tu código directamente.
- Entorno de Desarrollo Integrado (IDE) : Utiliza IDEs como PyCharm, PyDev o Eclipse. Requiere importar el módulo
qgisy 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:

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.
