Determinación de la homogeneidad de los techos planos según el modelo de superficie digital / capa de pendiente utilizando QGIS

Pregunta:

Para la ciudad de Berlín, tengo un modelo de elevación digital como un dataset ráster 1×1 de lo que conté las pendientes y tengo datos de shapefile que contienen los contornos de los edificios. Mi objetivo es encontrar techos bajos preferiblemente con poco fraccionamiento.

Por lo tanto, eliminé todos los valores de píxeles con una pendiente superior a 3 grados. Un ejemplo del resultado se ve en la imagen. Ahora me gustaría evaluar la "calidad" de los techos, de modo que donde la mayor parte del área de píxeles planos está "conectada" como es el caso del techo del edificio de la derecha en el ejemplo frente al techo más destruido de la izquierda. . Como resultado, me gustaría clasificar los techos en poca / media / mucha destrucción.

¿Cómo abordo esto usando QGIS?

ingrese la descripción de la imagen aquí

Respuesta:

Puede ejecutar "Píxeles de trama a polígonos" para convertir su trama en una capa vectorial:

ingrese la descripción de la imagen aquí

Asegúrese de que sus edificios tengan una identificación única, luego ejecute "Intersección" con sus edificios:

! [ingrese la descripción de la imagen aquí

Entonces, su tabla de atributos contiene el valor de la pendiente en grados y la identificación del edificio. Ahora agregue un nuevo campo, contando las celdas que contiene cada edificio count("buildingid","buildingid") :

ingrese la descripción de la imagen aquí

Y agregue un nuevo campo contando las celdas inferiores a 3 grados count("buildingid","buildingid","value"<3) :

ingrese la descripción de la imagen aquí

Ahora puede calcular el porcentaje de cada edificio, donde la pendiente es inferior a 3 grados y utilizarlo como indicador.


Alternativa:

Agregue un nuevo campo a su capa de intersección, que contenga un indicador si el valor es menor que 3 o no if("value"<3,1,0) :

ingrese la descripción de la imagen aquí

Ahora disuelva la capa por este nuevo campo, así como por el ID del edificio:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Ahora ejecute "Multipart to singlepart" para obtener áreas individuales. Puedes borrar el campo "valor" ahora, para no confundirte, ya no es válido.

Ahora puede calcular las áreas, el porcentaje de área, contar el número de áreas "aisladas" para cada edificio, hacer un análisis de vecinos o lo que mejor se adapte a su caso de uso.

O cree un índice, teniendo en cuenta algunas cosas, como por ejemplo:

(
-- percentage of areas smaller 3 per building
sum($area,"buildingid","smaller3"=1) * 100 / sum($area,"buildingid")

*

-- number of areas smaller 3
count("buildingid","buildingid","smaller3"=1)
)
-
(
-- percentage of areas greater 3 per building
sum($area,"buildingid","smaller3"=0) * 100 / sum($area,"buildingid")

*

-- number of areas greater 3
count("buildingid","buildingid","smaller3"=0)
)

Lo que, por ejemplo, haría retroceder algo como esto: tenga en cuenta que este índice es solo una idea, ¡depende de usted cómo le gustaría determinar qué áreas son buenas para usted y cuáles no!

ingrese la descripción de la imagen aquí

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım