Tworzenie instrukcji warunkowej w kalkulatorze polowym QGIS

15

Sprawdziłem niektóre inne pytania i odpowiedzi na ten temat, jednak żadne nie dotyczyło tego, co chcę zrobić.

Mam duży zestaw danych i chciałbym przeszukać jedno pole w celu znalezienia wartości przekraczających określoną wartość (w tym przypadku 20), a jeśli wartość jest większa niż 20, chciałbym zwrócić wartość 1 w innym polu, w przeciwnym razie zwraca wartość 0.

Próbowałem napisać coś bez powodzenia.

Używam QGIS 2.8.

użytkownik35127
źródło
Próbuję rozgryźć ten ekspres w Qgis, ale nie ma wyników. Przypadek KIEDY „A” = „1” i „DŁUGOŚĆ” <= 1, a następnie „C” = „4” BŁĄD KOŃCA
giss

Odpowiedzi:

29

Łatwa droga

Najprostszym sposobem na to jest utworzenie nowego pola z wyrażeniem

"cat" > 20

To wyrażenie będzie miało wartość logiczną Prawda / Fałsz, która będzie reprezentowana jako liczba całkowita 1 lub 0.

Pola wirtualne

Możesz także utworzyć wirtualne pole, które automatycznie zwróci zaktualizowaną wartość na wypadek, gdyby wartości w cat (np. Edycja warstwy). Pamiętaj, że wartości pól wirtualnych nie zostaną zapisane w zbiorze danych i są widoczne tylko w tym projekcie QGIS.

Więcej niż boolean

Jeśli masz coś więcej niż proste „większe niż”, musisz użyć

CASE 
  WHEN "cat" > 100 THEN 2
  WHEN "cat" > 10 THEN 1
  ELSE 0
END
Matthias Kuhn
źródło
6

Właśnie przetestowałem to: Możesz użyć warunku kilka razy:

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

Elmo
źródło
4

Może coś takiego:

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

Kalkulator polowy

Joseph
źródło