Criando declaração condicional na calculadora de campo QGIS

15

Pesquisei algumas das outras perguntas e respostas sobre esse tópico, no entanto, nenhuma abordou o que estou procurando fazer.

Eu tenho um grande conjunto de dados e gostaria de procurar um campo por valores acima de um determinado valor (neste caso, 20) e, se o valor for maior que 20, gostaria de retornar um valor 1 em outro campo, caso contrário retorne um valor 0.

Eu tentei escrever algo sem sorte.

Estou usando o QGIS 2.8.

user35127
fonte
Estou tentando descobrir esse expresso no Qgis, mas ele não tem resultados. Caso WHEN "A" = '1' e "LENGHT" <= 1 e depois "C" = '4' FIM DO ERRO OUTRO
giss

Respostas:

29

O caminho fácil

A maneira mais simples de fazer isso é criar um novo campo com a expressão

"cat" > 20

Essa expressão será avaliada como um booleano True / False, que será representado como um número inteiro 1 ou 0.

Campos virtuais

Você também pode criar um campo virtual, que retornará automaticamente um valor atualizado caso os valores sejam catalterados (por exemplo, você edita a camada). Lembre-se de que os valores dos campos virtuais não serão salvos no conjunto de dados e são visíveis apenas dentro deste projeto QGIS.

Mais que booleano

Se você tiver mais do que um simples "maior que", precisará usar

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

Acabei de testar isso: você pode usar a condição várias vezes:

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

....

elmo
fonte
4

Algo assim talvez:

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

Calculadora de campo

Joseph
fonte