4 votos

Suma del área de varios atributos en QGIS

Tengo un shapefile que contiene huellas de edificios con múltiples direcciones con diferentes funciones (con cada una un área utilizable). Me gustaría calcular la suma de la superficie útil, por edificio "id" por el mismo "function" como tal:

id

función

zona

1

wo

10

1

wi

2

2

wo

50

1

wo

10

calcular la suma (área) cuando el mismo id y la misma función

id

función

zona

1

wo

20

1

wi

2

2

wo

50

He intentado utilizar la siguiente expresión:

sum(expression [,group_by] [,filter])

Pero el group_by() sólo es posible una vez (por ejemplo, para agrupar los "id" ).

¿Cómo podemos calcular la suma de las dos características sólo cuando éstas tienen el mismo "id" ¿y la misma función?

6voto

chhh Puntos 1154

Utilice una combinación de los dos campos como concat: "id" || "function" para la group_by() parte de la expresión:

sum("area", "id" || "function")

4voto

ARUNBALAN NV Puntos 101

También existe la posibilidad de utilizar un "Capa virtual" a través de Layer > Add Layer > Add/Edit Virtual Layer... .

Supongamos que existe una capa puntual denominada "test" con su tabla de atributos, véase la imagen siguiente.

input

Con la siguiente consulta, es posible calcular la suma de las características sólo cuando éstas tienen el mismo "id" y lo mismo "function" así como deshacerse de los duplicados.

SELECT
    SUM(value) AS sumvalue,
    COUNT(*) AS numgrouped,
    "id" || "function" AS grouped,
    geometry AS geom
FROM
    "test"
GROUP BY
    "id", "function"

La capa de puntos de salida con una nueva tabla de atributos tendrá el siguiente aspecto

result

Por último, pero no por ello menos importante, ten en cuenta que:

  • el número de características en el resultado final será menor (raramente el mismo) que en el shapefile original
  • agrupar los valores de las características sin tener en cuenta sus geometrías no es lo mismo que agrupar los valores de las características conservando sus geometrías

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X