PyQGIS se trata de una librería de Python que se utiliza para tratar datos geográficos. Esta librería es compatible con el conocido software QGIS. El saber escribir scripts nos da muchísima versatilidad a la hora de ejecutar los programas, ya que podemos automatizar todas esas tareas que tenemos que realizar varias veces de la misma forma.

Una vez que se tiene mas soltura a la hora de generar estos scripts de automatización, podemos crear plugins mas complejos (tal y como se conocen los complementos que tiene el programa).

Para empezar a crear scripts para QGIS, son necesarias dos cosas:

  • Tener conocimientos de GIS (saber qué es una capa, un ráster, un geoproceso…)
  • Tener conocimiento de algún lenguaje de programación. Preferiblemente Python, pero si estás acostumbrado a programar, conocer cualquier lenguaje hará que sea mucho mas fácil entrar en el mundo de Python

Y, una vez que cumplo estos dos requisitos, ¿Cómo empiezo? Pues bien, abriendo el programa QGIS, podemos abrir la consola de Python para, desde ahí, ir lanzando nuestros scripts.

python

Con esto, en la parte inferior nos aparece la consola de Python:

python

En la barra inferior se pueden ir escribiendo comandos para realizar procesos.

Carga de shapefile

En el siguiente ejemplo, cargaremos una pequeña capa de municipios. Para ello, en primer lugar, se definirá la variable “layer”:

layer = QgsVectorLayer(r’C:datosinundacionesmunicipipios.shp’, ‘Capa municipios’)

  1. El primer parámetro (r’C:datosinundacionesmunicipipios.shp’) se corresponde a la ruta en la que se encuentra el fichero.
  2. La segunda variable (‘Capa municipios’) se corresponde al nombre que querremos que aparezca en el apartado de capas de QGIS.

Una vez que se tiene definida la capa, procederemos a cargarla en el proyecto. Para ello utilizamos la siguiente sentencia:

QgsProject.instance().addMapLayer(layer)

El resultado que obtenemos es el siguiente:

shapefile

Selección por atributos

En el siguiente paso, se va a proceder a seleccionar uno de los municipios por un campo del shapefile. En este caso se utilizará un campo cuyos valores son únicos, el código INE (“COD_INE”). Para ello, se va a utilizar el siguiente comando:

layer.selectByExpression(» «COD_INE»  =  ‘08065’ «)

  • layer es la variable que teníamos definida que indica cuál es nuestra capa
  • “selectByExpression” es una función propia de las capas con la que seleccionaremos una entidad o conjunto de entidades que cumplan una condición dada
  • » «COD_INE»  =  ‘08065’ «: condición que debe cumplir la entidad para que se seleccione

python

Como se decía anteriormente, conocer algún lenguaje de programación nos da mucha ventaja a la hora de automatizar todas esas tareas repetitivas que se producen en muchos momentos cuando trabajamos con Sistemas de Información Geográfica.

Iria Ordás García es docente del curso online Programación en QGIS con Python (PyQGIS)