Operador de consultas. Filtrando atributos en QGIS

El filtrado y selección de atributos es una operación muy común y poderosa en PostgreSQL que muchas veces nos pasa desapercibida en QGIS. Gracias a la herramienta de filtro de QGIS, podemos seleccionar aquellos elementos de una capa que deseemos, lo cual resulta de gran interés a la hora de trabajar con grandes archivos de datos.

Pero filtrar atributos, no es algo exclusivo de la tabla de atributos, también se puede utilizar a la hora de aplicar una simbología o una etiqueta especifica en aquellos elementos que deseemos.

A continuación, veremos algunos ejemplos. Puedes descargarte los datos que vamos a utilizar de la página del IGN. En este caso utilizaremos datos de la Región de Murcia, pero podrías descargar los que quisieras.

IGN
Centro de descargas (CNIG). Descarga de datos poblacionales.

Una vez descargados los datos, extrae los archivos shapefile de la carpeta comprimida y carga en QGIS el archivo SHP que se llama «areapoblacion_s.shp».

A continuación haz clic derecho sobre la capa y pincha en «mostrar números de objetos espaciales». Verás que aparece un número a la derecha del nombre de la capa que se corresponde con el total de campos de la tabla de atributos.

tabla de atributos
Tabla de atributos de la capa «areapoblación». A la derecha del nombre de la capa, podemos ver el total de campos.

Constructor de consultas

Vamos ahora a filtrar datos usando el constructor de consultas de QGIS. Antes, vamos a duplicar la capa para ver las diferencias. Haz clic derecho en la capa y después en duplicar. En la capa duplicada, vuelve a hacer clic derecho y pincha en «mostrar números de objetos espaciales» y nuevamente clic derecho y «filtrar» para abrir el constructor de consultas.

constructor consultas
Constructor de consultas

El constructor de consultas se compone de distintas partes. En la parte superior, tenemos los campos de la tabla de atributos y sus valores. En la parte central, disponemos de los operadores mas comunes. En la ventana inferior, es donde escribiremos nuestra consulta. En esta versión de QGIS (3.16) podemos también guardar y cargar consultas.

Vamos a realizar una consulta que nos muestre únicamente campos donde el número de edificios sea superior a 500. La consulta sería: «numedif» > 500

Escribe la consulta en la parte inferior. Puedes hacer doble clic en el campo «numedif» y después hacer clic en «>» para que se vaya rellenando la consulta. Después escribe «500» o busca el valor en la ventana de valores. Finalmente haz clic en «probar» para asegurarte que todo ha ido bien. Si el resultado de la consulta es satisfactorio, haz clic en aceptar.

constructor consultas SQL
Consulta para encontrar aquellos campos con mas de 500 edificios

Hemos pasado de tener mas de 60.000 elementos a tener solamente 158, los que nos interesaban. Opcionalmente, cambia la simbología de la capa (por ejemplo para que tenga un color rojo) y ponla para que se muestre en primer lugar y así apreciar los cambios.

capas
Capa filtrada superpuesta

Pero, ¿Qué ocurre si queremos aplicar mas de un filtro simultáneamente?. A continuación vamos a filtrar los datos no solo por el numero de edificios sino también por el área de los polígonos. Queremos conocer las áreas con mas de 500 edificios y más de 500.000 metros cuadrado. Vuelve a abrir el constructor de consultas y construye la siguiente consulta:

«numedif» > 500 AND «area» > 500000

constructor consultas 2
Consulta para encontrar zonas con mas de 500 edificios y área superior a 500.000 metros cuadrados.

Observa ahora la siguiente consulta. Aparte de los filtros ya utilizados, queremos encontrar aquellas áreas que pertenecen a Cartagena o Alhama de Murcia y que además, cumples con los requisitos anteriores. Para ello construye la siguiente consulta:

«numedif» > 500 AND «area» > 500000 AND («nombre» = ‘Cartagena’ OR «nombre» = ‘Alhama de Murcia’)

constructor consultas operador OR

Puedes pinchar en el campo «nombre» y en la parte de la derecha, escribir los valores de ese campo para encontrarlos más rápidamente. Tras hacer clic en probar, ahora tendremos solamente dos resultados, uno para Alhama y otro para Cartagena.

Observa los paréntesis. Al utilizar el operador «OR» después de otras consultas con el operador «AND» es importante que utilicemos los paréntesis, si no, podemos obtener resultados erróneos.

Quizás te haya llamado la atención que la parte entre paréntesis ocupa la mitad de la consulta, ya que se repita la parte «nombre» dos veces. Imagina que tuvieras que realizar la consulta para 10 áreas y tuvieras que escribir el campo «nombre» 10 veces. Quedaría una consulta muy larga. Para evitar esto, vamos a usar el operador «IN». La misma consulta de antes quedaría como:

«numedif» > 500 AND «area» > 500000 AND «nombre» IN (‘Cartagena’, ‘Alhama de Murcia’)

constructor consultas operador IN
Usando el operador «IN»

Si por el contrario quisiéramos mostrar todos los campos salvo aquellos que pertenecen a Cartagena y Alhama de Murcia, usaríamos el operador «NOT IN».

«numedif» > 500 AND «area» > 500000 AND «nombre» NOT IN (‘Cartagena’, ‘Alhama de Murcia’)

Si ahora exportamos la capa en la que hemos aplicado las consultas, podríamos guardar únicamente aquellos elementos que se encuentran filtrados. Del mismo modo, si ejecutamos algún algoritmo en dichas capas, los cambios sólo ocurren en los datos filtrados.

Operador de consultas para la simbología

Estas consultas nos sirven también no solo para la tabla de atributos si no también para el etiquetado de datos o incluso la simbología. Veamos un ejemplo para la simbología. Imagina que quieres mostrar todos las áreas que pertenecen a Murcia, Lorca y Cartagena en color verde y el resto sin color.

Para ello, simplemente dirígete a la ventana de propiedades de la capa y luego a simbología. En la parte superior haz clic en «categorizado» y después haz clic en el símbolo de épsilon para abrir el diálogo de expresiones. Copia la siguiente consulta:

simbologia
Diálogo de consultas desde la ventana de simbología

Después ha clic en «clasificar» y selecciona los colores que desees. El valor 1 corresponde para «True» es decir, aquellas zonas donde la consulta se vuelve verdadera y por tanto asignamos color verde:

Seleccionando los colores verdes para Lorca, Murcia y Cartagena.

Al volver al canvas de QGIS, obtendremos algo como lo que se muestra a continuación:

simbologia canvas qgis
Simbología generada a partir de expresión SQL.

Como ves, las expresiones SQL que podemos usar en el constructor de consultas, resultan tremendamente útiles. Nos ayudan a organizar nuestros datos e incluso crear simbología. Para mas información sobre el constructor de consultas, visita el siguiente enlace de QGIS.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s