Uso de la función espacial aggregate en QGIS

Uso de la función espacial aggregate en QGIS

Uso de la función espacial aggregate en QGIS

10. espacial aggregate en QGIS.

La función espacial aggregate de QGIS es útil para múltiples tareas. En este tutorial, veremos un par de ejemplos de cómo utilizarla a la hora de mantener actualizada la información de un determinado territorio. Para ello vamos a utilizar una serie de capas de información y realizaremos diferentes operaciones espaciales a partir de expresiones, que nos van a permitir establecer las relaciones entre dichas capas y obtener datos de unas sobre las otras.

Tomaremos como base cuatro capas de información básicas con diferentes geometrías:

  • Entidades de población representadas mediante geometría de punto.
  • Entidades colectivas representadas mediante geometría de polígonos.
  • Carreteras representadas mediante líneas.
  • Edificios representados mediante polígonos.
1. espacial aggregate en QGIS.

Dentro de los atributos de los que disponemos en las capas utilizadas (cartografía utilizada: serie BTN25 del Instituto Geográfico Nacional. BTN25 2020 CC-BY 4.0 ign.es), vamos a plantear una serie de supuestos en los que aplicar cálculos espaciales para la caracterización de los elementos contenidos en cada una de las capas.

1. Asignación de la entidad colectiva a cada edificio

La capa de edificios tiene un conjunto de atributos que no permiten identificar la entidad colectiva a la que pertenece cada uno de los elementos.

2. espacial aggregate en QGIS.

Mediante la función de aggregate, asignaremos el valor del campo “etiqueta” de la capa entidades colectivas a cada uno de los edificios.

CURSO QGIS

NIVEL INICIACIÓN E INTERMEDIO

3. espacial aggregate en QGIS.

La función aggregate devuelve un valor calculado usando objetos de otra capa, dependiendo de la operación escogida.

Sintaxis

aggregate(layer,aggregate,expression[,filter][,concatenator=”][,order_by])

Los apartados entre corchetes son opcionales.

Argumentos

Layer: El nombre o la ID de una capa

Una función matemática de las siguientes opciones para calcular. Las opciones son:

  • layer: El nombre o la ID de una capa
  • aggregate: Una función matemática de las siguientes opciones para calcular. Las opciones son:
    • count: cuenta el número de elementos.
    • count_distinct: cuenta el número de elementos diferentes.
    • count_missing: cuenta el número de elementos nulos.
    • min: valor mínimo.
    • max: valor máximo.
    • sum: suma de un campo numérico.
    • mean: media de un campo numérico.
    • median: mediana de un campo numérico.
    • stdev: desviación estándar de un campo numérico.
    • range: rango de valores de un campo numérico.
    • minority: valor menos frecuente de un campo.
    • majority: valor más frecuente de un campo.
    • q1: primer cuantil.
    • q3: tercer cuantil.
    • iqr: rango intercuantil.
    • min_length: longitud mínima de una cadena.
    • max_length: longitud mínima de una cadena.
    • concatenate: concatena cadenas de texto con un carácter.
    • concatenate_unique: une valore únicos con un carácter.
    • collect: crea una geometría multiparte con la agregación de elementos.
    • array_agg: crea un conjunto de datos de una lista.
  • expression: sub expresión o nombre de campo a agregar.
  • filter: Expresión de filtrado opcional para limitar los objetos usados para calcular el agregado. Los campos y geometrías son de los objetos de la capa unida. Se puede acceder al objeto de origen con la variable @parent.
  • concatenator: Cadena opcional a usar para unir valores para el agregado ‘concatenar’.
  • order_by: Expresión de filtrado que permite ordenar los valores de agregado.

Para añadir la entidad colectiva a cada uno de los edificios, utilizaremos la calculadora de campos de QGIS con la que añadiremos un nuevo atributo que llamaremos entidad_colectiva, utilizando la siguiente expresión:

aggregate(layer:=’entidad_colectiva’,aggregate:=’concatenate’,expression:=”etiqueta”,filter:=intersects($geometry,geometry(@parent)),concatenator:=’-‘)

4. espacial aggregate en QGIS.

El comentario de la sintaxis de dicha consulta nos permite identificar cada uno de los componentes de la misma:

  • layer:=’entidad_colectiva’ La capa de entidades colectivas de la que obtendremos el dato buscado.
  • aggregate:=’concatenate’ La concatenación de valores en el caso de que un edificio esté en más de una entidad colectiva
  • expression:=”etiqueta” Campo de la capa de entidades colectivas de la obtendremos el nombre
  • filter:=intersects($geometry,geometry(@parent)) Operación de intersección que realiza el filtro
  • concatenator:=’-‘ Carácter que utilizamos para la concatenación, en este caso un guión.

El resultado para cada uno de los edificios será un campo nuevo que tendrá la concatenación de las entidades colectivas con las que intersecta:

5. espacial aggregate en QGIS.
6. espacial aggregate en QGIS.
2. Número de edificios que se encuentran en cada entidad colectiva

Como proceso inverso podemos calcular el número de edificios que se encuentran en cada una de las entidades colectivas, de forma que, variando la expresión utilizada en el caso anterior, podemos utilizar las mismas capas en orden inverso, para “contar” el número de edificios que intersectan con cada entidad colectiva. La expresión en este caso a utilizar es:

aggregate(layer:=’edificios’,aggregate:=’count’,expression:=”etiqueta”,filter:=intersects($geometry,geometry(@parent)),concatenator:=’-‘)

Si nos fijamos en la expresión, en este caso la capa que utilizamos para el cálculo es la capa de edificios, y la función de agregación no es un concatenate, sino un count. Utilizando la calculadora de campos en este caso, crearemos un nuevo atributo en la capa de entidades colectivas que se llama num_edificios, y que será de tipo numérico.

7. espacial aggregate en QGIS.

Si etiquetamos el resultado de la operación:

8. espacial aggregate en QGIS.

Debemos tener en cuenta, que en los casos en los que un edificio se encuentre en más de una entidad colectiva, éste se contará en cada una de ellas.

Estas operaciones de cálculo que hemos realizado para todo el conjunto de geometrías de ambas capas, tendríamos que realizarlo de nuevo en el caso de que algunas de las capas tuviesen una modificación, como podría ser añadir nuevos elementos o editar sus geometrías. Para evitar tener que estar pendientes de hacerlo, podemos configurar las propiedades de los campos de las capas, de forma que cualquier modificación ejecute las expresiones de forma automática al guardar las ediciones en el apartado de valores predeterminados. Este tipo de operaciones funcionarán tanto desde QGIS en el trabajo de oficina, como usando el proyecto desde la aplicación de toma de datos en campo QFIELD.

9. espacial aggregate en QGIS.

Imasgal 2021.