Membuat Pernyataan Bersyarat dalam Kalkulator Bidang QGIS

15

Saya telah melihat beberapa Tanya Jawab lain tentang topik ini, namun, tidak ada yang membahas apa yang ingin saya lakukan.

Saya memiliki kumpulan data besar dan saya ingin mencari satu bidang untuk setiap nilai lebih dari jumlah tertentu (dalam kasus ini 20) dan jika nilainya lebih besar dari 20, saya ingin mengembalikan nilai 1 di bidang lain, jika tidak mengembalikan nilai 0.

Saya telah mencoba menulis sesuatu tanpa hasil.

Saya menggunakan QGIS 2.8.

pengguna35127
sumber
Saya mencoba mencari tahu ekspres ini di Qgis tetapi tidak ada hasilnya. Kasus KAPAN "A" = '1' dan "LENGHT" <= 1 lalu "C" = '4' ELSE ERROR END END
giss

Jawaban:

29

Cara mudah

Cara paling sederhana untuk melakukan ini adalah membuat bidang baru dengan ekspresi

"cat" > 20

Ekspresi ini akan mengevaluasi ke boolean Benar / Salah yang akan direpresentasikan sebagai bilangan bulat 1 atau 0.

Bidang Virtual

Anda juga dapat membuat bidang virtual, yang secara otomatis akan mengembalikan nilai yang diperbarui seandainya nilai dalam catperubahan (misalnya Anda mengedit lapisan). Ingat bahwa nilai-nilai bidang virtual tidak akan disimpan dalam dataset dan hanya terlihat di dalam proyek QGIS ini.

Lebih dari boolean

Jika Anda memiliki lebih dari sekadar "lebih besar dari", Anda perlu menggunakannya

CASE 
  WHEN "cat" > 100 THEN 2
  WHEN "cat" > 10 THEN 1
  ELSE 0
END
Matthias Kuhn
sumber
6

Saya baru saja menguji ini: Anda dapat menggunakan kondisi ini beberapa kali:

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

....

Elmo
sumber
4

Sesuatu seperti ini mungkin:

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

Kalkulator Bidang

Yusuf
sumber