4 votos

Declaración condicional (CASE-WHEN) en QGIS para el aspecto de la pendiente

Después de procesar un MDE con una máscara para obtener los valores de aspecto de algunos polígonos, me gustaría crear un nuevo campo clasificando esos valores como N, NE, E, SE, S, SW, W, NW.

He escrito esto pero no consigo lo que busco:

CASE
WHEN  "Aspect"  < 22.5  THEN  'N'
WHEN  (22.5 >= "Aspect" AND "Aspect" < 67.5) THEN  'NE'
WHEN  (67.5 >= "Aspect" AND "Aspect" < 112.5) THEN  'E'
WHEN  (112.5 >= "Aspect" AND "Aspect" < 157.5) THEN  'SE'
WHEN  (157.5 >= "Aspect" AND "Aspect" < 202.5) THEN  'S'
WHEN  (202.5 >= "Aspect" AND "Aspect" < 247.5) THEN  'SW'
WHEN  (247.5 >= "Aspect" AND "Aspect" < 292.5) THEN  'W'
WHEN  (292.5 >= "Aspect" AND "Aspect" < 337.5) THEN  'NW'
WHEN  "Aspect"  >= 337.5  THEN  'N'
END

¿Es posible hacerlo utilizando CASE-WHEN, o es mejor utilizar otro tipo de condicional?

No sé cómo escribir rangos usando sentencias condicionales sin obtener un error excepto de esta manera.

7voto

Sushant23 Puntos 329

Si el raster de Aspecto se ha convertido en polígono o si tiene un shapefile con el nombre de campo "Aspecto" en la tabla de atributos y necesita poner la definición de texto, entonces casi lo ha conseguido, pero necesita poner "Aspecto" antes de >= no después:

CASE
WHEN  "Aspect" < 22.5  THEN  'N'
WHEN  ("Aspect" >= 22.5 AND "Aspect" < 67.5) THEN  'NE'
WHEN  ("Aspect" >= 67.5 AND "Aspect" < 112.5) THEN  'E'
WHEN  ("Aspect" >= 112.5  AND "Aspect" < 157.5) THEN  'SE'
WHEN  ("Aspect" >= 157.5  AND "Aspect" < 202.5) THEN  'S'
WHEN  ("Aspect" >= 202.5  AND "Aspect" < 247.5) THEN  'SW'
WHEN  ("Aspect" >= 247.5  AND "Aspect" < 292.5) THEN  'W'
WHEN  ("Aspect" >= 292.5  AND "Aspect" < 337.5) THEN  'NW'
WHEN  "Aspect"  >= 337.5  THEN  'N'
END

Este es el resultado:

enter image description here

Pero si desea añadir un campo a un dato raster, entonces no puede porque QGIS no soporta añadir una tabla de atributos a un dato raster.

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