4 votos

Media del área de los polígonos dentro de otra capa de polígonos

Tengo las siguientes capas :

  • Sectores (polígonos limitados por las líneas negras)
  • Casas (polígonos en azul claro)

He creado el atributo área en la tabla Casas. También he creado un atributo que representa el centroide de la geometría.

Me gustaría calcular la superficie media de las Casas situadas en cada sector y añadirla como atributo de la tabla Sectores. Una casa se considera "en el sector" si su centroide está en el sector (para evitar problemas con casas en 2 sectores diferentes).

No sé cómo hacer esta operación de "agrupar por" y no he encontrado respuestas buscando en esta pila.

ScreenShoot in QGIS, two layers

6voto

ghotan Puntos 29

Prueba esta expresión en tu Sectors tabla de atributos de la capa:

aggregate(layer := 'Houses', 
          aggregate:= 'mean', 
          expression:= "area", 
          filter:= within(centroid($geometry), geometry()))

Una salida de prueba rápida (campo "ave") a continuación:

enter image description here

3voto

Val P Puntos 451

Puede calcular la superficie media de las casas utilizando la calculadora de campos para crear un nuevo campo en el archivo Sectores capa.

Utilice esta expresión

(to_string(array_sum(aggregate(
 layer:= 'Houses',
 aggregate:='array_agg',
 expression:=$area,
 filter:=contains(geometry(), $geometry)))))
  /
(aggregate(
layer:='Houses', 
aggregate:='count', 
expression:=$id, 
filter:=intersects(geometry(), ($geometry))))

La primera parte de la expresión calcula la suma de todos los Casas zonas dentro de cada sector. La segunda parte calcula el número de Casas dentro del sector. Una simple división del primer número por el segundo le dará la información solicitada

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