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.


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

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
...


4

Może coś takiego:

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

Kalkulator polowy

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.