Création d'une instruction conditionnelle dans QGIS Field Calculator


15

J'ai consulté certaines des autres questions et réponses sur ce sujet, cependant, aucune n'a abordé ce que je cherche à faire.

J'ai un grand ensemble de données et je voudrais rechercher dans un champ des valeurs supérieures à un certain montant (dans ce cas 20) et si la valeur est supérieure à 20, je voudrais retourner une valeur de 1 dans un autre champ, sinon renvoie une valeur de 0.

J'ai essayé d'écrire quelque chose sans succès.

J'utilise QGIS 2.8.


J'essaie de comprendre cet express dans Qgis mais cela n'a pas de résultats. Case WHEN "A" = '1' and "LENGHT" <= 1 then "C" = '4' ELSE ERROR END
giss

Réponses:


29

La manière simple

La façon la plus simple de le faire est de créer un nouveau champ avec l'expression

"cat" > 20

Cette expression sera évaluée en un booléen True / False qui sera représenté par un entier 1 ou 0.

Champs virtuels

Vous pouvez également créer un champ virtuel, qui renverra automatiquement une valeur mise à jour en cas de catmodification des valeurs (par exemple, vous modifiez la couche). N'oubliez pas que les valeurs des champs virtuels ne seront pas enregistrées dans l'ensemble de données et ne sont visibles qu'à l'intérieur de ce projet QGIS.

Plus que booléen

Si vous avez plus qu'un simple "supérieur à", vous devez utiliser

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

6

Je viens de tester ceci: vous pouvez utiliser la condition plusieurs fois:

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

....


4

Quelque chose comme ça peut-être:

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

Calculatrice de champ

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.