Forum QGIS
FieldPyculator - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: FieldPyculator (/thread-885.html)



FieldPyculator - randyX - 13-02-2013

Witam,

Chciałbym korzystając z wtyczki "field Pyculator" wyliczyć wartości dla konkretnej kolumny na podstawie warunków typu:

jeżeli [kolumna1] > 2000 i dodatkowo [kolumna2]= 'konkretnytekst' to wpisz wartość "xxx" do [kolumna3]

tak w zarysie mniej więcej to wygląda.

najszerszy opis tej wtyczki jaki znalazłem
http://gis-lab.info/qa/fieldpyculator.html#.D0.9F.D0.BE.D0.BB.D1.83.D1.87.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B8_.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0

ale nawet jak przetłumaczyć stronę na inne języki to obrazki i tak mają cyrylicę, więc nawet nie umiem nic z tego wywnioskować i pokombinować gdyż nie znam rosyjskiego... Confused

byłbym wdzięczny za jakiekolwiek wskazówki.


RE: FieldPyculator - Rayo - 14-02-2013

(13-02-2013, 15:48)randyX napisał(a): jeżeli [kolumna1] > 2000 i dodatkowo [kolumna2]= 'konkretnytekst' to wpisz wartość "xxx" do [kolumna3]

Wtyczki nie znam, ale powyższe da się zrobić bezpośrednio w tabeli atrybutów.
Najpierw w kreatorze zapytań wybierasz obiekty zapytaniem
"kolumna1" > 2000 and "kolumna2" = 'konkretnytekst'
Następnie kalkulatorem pól wpisujesz zaznaczonym obiektom wartość 'xxx' w kolumnie3.

Problem będzie, gdy masz dużo takich warunków. Wtedy trzeba się trochę naklikać.


RE: FieldPyculator - randyX - 14-02-2013

(14-02-2013, 08:05)Rayo napisał(a): Problem będzie, gdy masz dużo takich warunków. Wtedy trzeba się trochę naklikać.

Właśnie niestety taki mam problem..
próbowałem zdefiniować parę zmiennych w zależności od konkretnych warunków a potem jedną formułką uzupełniłbym zylion wierszy w konkretnej kolumnie ale niestety, albo składnia nie siedzi, albo z czymś innym problem.. Undecided

ale generalnie wtyczkę polecam, bo wygląda na to, że można wiele zdziałać dzięki niej.


RE: FieldPyculator - Rayo - 14-02-2013

Zerknąłem jeszcze do kalkulatora pól w QGIS 1.9 i znalazłem tam funkcję sterującą CASE i CASE ELSE (w grupie Conditionals). Za jej pomocą powinno się dać zrobić to, czego potrzebujesz.

CASE WHEN "kolumna1" > 2000 and "kolumna2" = 'konkretnytekst' THEN 'xxx' END

Dla innych warunków można dodać CASE ELSE


RE: FieldPyculator - randyX - 14-02-2013

(14-02-2013, 08:45)Rayo napisał(a): Zerknąłem jeszcze do kalkulatora pól w QGIS 1.9 i znalazłem tam funkcję sterującą CASE i CASE ELSE (w grupie Conditionals). Za jej pomocą powinno się dać zrobić to, czego potrzebujesz.

CASE WHEN "kolumna1" > 2000 and "kolumna2" = 'konkretnytekst' THEN 'xxx' END

Dla innych warunków można dodać CASE ELSE

Dzięki RayoWink
sprawdziłem i CASE faktycznie działa.

w moim przypadku:

CASE WHEN "rok_budowy" > 2002 AND "rok_budowy" <> 'b.d' THEN 'XXX' ELSE 'brak' END