Crear declaración condicional en la calculadora de campo QGIS

15

He buscado algunas de las otras preguntas y respuestas sobre este tema, sin embargo, ninguna ha abordado lo que estoy buscando hacer.

Tengo un conjunto de datos grande y me gustaría buscar en un campo cualquier valor por encima de una cierta cantidad (en este caso 20) y si el valor es mayor que 20, me gustaría devolver un valor de 1 en otro campo, de lo contrario devuelve un valor de 0.

He intentado escribir algo sin suerte.

Estoy usando QGIS 2.8.

usuario35127
fuente
Estoy tratando de resolver este expreso en Qgis pero no tiene resultados. Caso CUANDO "A" = '1' y "LONGITUD" <= 1 y luego "C" = '4' FIN DE ERROR
ANTERIOR

Respuestas:

29

La manera fácil

La forma más sencilla de hacer esto es crear un nuevo campo con la expresión

"cat" > 20

Esta expresión evaluará a un verdadero / falso booleano que se representará como un entero 1 o 0.

Campos virtuales

También puede crear un campo virtual, que devolverá automáticamente un valor actualizado en caso de que los valores catcambien (por ejemplo, edite la capa). Recuerde que los valores de los campos virtuales no se guardarán en el conjunto de datos y solo son visibles dentro de este proyecto QGIS.

Más que booleano

Si tiene más que un simple "mayor que", debe usar

CASE 
  WHEN "cat" > 100 THEN 2
  WHEN "cat" > 10 THEN 1
  ELSE 0
END
Matthias Kuhn
fuente
6

Acabo de probar esto: puede usar la condición varias veces:

WHEN    cat =   1   THEN    205
WHEN    cat =   2   THEN    215
WHEN    cat =   3   THEN    225
WHEN    cat =   4   THEN    235
...

....

elmo
fuente
4

Algo como esto quizás:

case 
when "FIELD" > 20 then 1
else 0 
end

Calculadora de campo

José
fuente