QGIS Alan Hesaplayıcısında Koşullu Deyim Oluşturma


15

Bu konuyla ilgili diğer soru ve cevapları aradım, ancak hiçbiri ne yapmak istediğimi ele almadı.

Büyük bir veri kümesi var ve belirli bir miktar (bu durumda 20) üzerinde herhangi bir değer için bir alan aramak istiyorum ve değer 20'den büyükse, başka bir alanda 1 değerini döndürmek istiyorum, aksi takdirde 0 değerini döndürür.

Şanssız bir şey yazmaya çalıştım.

QGIS 2.8 kullanıyorum.


Qgis'te bu ifadeyi anlamaya çalışıyorum ama sonuçları yok. Vaka "A" = '1' ve "UZUNLUK" <= 1 sonra "C" = '4' BAŞKA HATA END
giss

Yanıtlar:


29

Kolay yol

Bunu yapmanın en basit yolu, ifadeyle yeni bir alan oluşturmaktır

"cat" > 20

Bu ifade, 1 veya 0 tamsayı olarak temsil edilecek bir boolean True / False değerini değerlendirecektir.

Sanal Alanlar

Ayrıca, değerlerin catdeğişmesi durumunda otomatik olarak güncellenmiş bir değer döndürecek bir sanal alan da oluşturabilirsiniz (örneğin, katmanı düzenlersiniz). Sanal alanların değerlerinin veri kümesine kaydedilmeyeceğini ve yalnızca bu QGIS projesinde görülebileceğini unutmayın.

Boole'den daha fazlası

Basit bir "büyüktür" den daha fazlasına sahipseniz,

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

6

Bunu sadece test ettim: Durumu birkaç kez kullanabilirsiniz:

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

....


4

Belki böyle bir şey:

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

Saha Hesaplayıcı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.