Creazione dell'istruzione condizionale nel calcolatore di campo QGIS


15

Ho cercato alcune delle altre domande e risposte su questo argomento, tuttavia, nessuno ha affrontato ciò che sto cercando di fare.

Ho un set di dati di grandi dimensioni e vorrei cercare in un campo eventuali valori superiori a un determinato importo (in questo caso 20) e se il valore è maggiore di 20, vorrei restituire un valore 1 in un altro campo, altrimenti restituisce un valore di 0.

Ho provato a scrivere qualcosa senza fortuna.

Sto usando QGIS 2.8.


Sto cercando di capire questo espresso in Qgis ma non ha risultati. Caso QUANDO "A" = '1' e "LENGHT" <= 1 quindi "C" = '4' ELSE ERROR END
giss

Risposte:


29

Il modo semplice

Il modo più semplice per farlo è creare un nuovo campo con l'espressione

"cat" > 20

Questa espressione verrà valutata come un vero / falso booleano che verrà rappresentato come un numero intero 1 o 0.

Campi virtuali

Puoi anche creare un campo virtuale, che restituirà automaticamente un valore aggiornato nel caso in cui i valori catcambino (ad es. Modifichi il livello). Ricorda che i valori dei campi virtuali non verranno salvati nel set di dati e sono visibili solo all'interno di questo progetto QGIS.

Più che booleano

Se hai più di un semplice "maggiore di", devi usarlo

CASE 
  WHEN "cat" > 100 THEN 2
  WHEN "cat" > 10 THEN 1
  ELSE 0
END

6

Ho appena provato questo: è possibile utilizzare la condizione più volte:

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

....


4

Qualcosa del genere forse:

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

Field Calculator

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.