Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
jak policzyć sumy częściowe
12-04-2011, 00:20,
#1
jak policzyć sumy częściowe
witam,
jak można policzyć sumę wartości grupy (wielu grup) rekordów?
Przykład: jest kilka typów działek (budowlane, rolne....) chciałbym je pogrupować i policzyć sumy powierzchni każdej z grup. Huh
w bazie Postgresa można napisać SQL-a w operatorem GROUP, ale potrzebuję to zrobić na zwykłych plikach SHP,

Z góry dziękuję.
12-04-2011, 01:12,
#2
RE: jak policzyć sumy częściowe
Zaimportować do postgresa :-) Albo SpatiaLite, jeśli nie masz pod ręką serwera. Albo otworzyć DBFa w arkuszu kalkulacyjnym. Albo w kalkulatorze pól dostawić kolumnę z powierzchnią dla wybranych obiektów i tak dla każdego typu po kolei. Tyle mi przychodzi po nocy do głowy.
15-04-2011, 16:49,
#3
RE: jak policzyć sumy częściowe
Właściwie grupowanie rekordów jest w QGIS obecne przy klasyfikowaniu elementów wg dowolnego pola (zakładka Właściwości warstwy / Styl). Tam, gdy należy zgrupować (pokazać w odpowiednim stylu) obiekty wg dowolnego atrybutu wystarczy go wybrać. Można nawet pokazywać liczebności każdej klasy (grupy).

Może dało by się w Quantum wstawić formant pt. "zaawansowane zapytanie", w którym użytkownik mógłby "z ręki" wpisać dowolne zapytanie SQL choćby dla pojedynczej warstwy. Póki co można tylko podać warunek WHERE a sortowanie robić ręczne dla jednego atrybutu.

Wydaje mi się, że wyskakiwanie z programu do bazy Postgresa, lub obliczanie czegoś na zewnątrz, jest jego mankamentem. Nie narzekam, zwracam tylko uwagę, że można by użytkownikowi dać narzędzie SQL posiadające szerokie możliwości.
18-04-2011, 12:32,
#4
RE: jak policzyć sumy częściowe
Można zadać dowolne zapytanie SQL do PostGISa lub SpatiaLite za pomocą jednej z kilku dostępnych wtyczek (RT SQL Layer, PgQuery, QSpatiaLite itp). Aktualnie kolega zaczyna prace nad stworzeniem wspólnego menedżera do wszystkich baz danych. Do pozostałych źródeł danych z pewnością prędzej czy później też się pojawi, po prostu ktoś musi napisać Smile
26-04-2011, 20:55,
#5
RE: jak policzyć sumy częściowe
Napisałem wtyczkę 'Statystyki grupowe', która zapewne będzie użyteczna we wspomnianych sytuacjach. Działa podobnie jak Wektor/Narzędzia analizy/Podstawowe statystyki, z tym, że potrafi wykonać obliczenia dla poszczególnych grup obiektów na warstwie.
Jest to pierwsza wersja tej wtyczki, więc wiele jeszcze jest do poprawienia, ale nadaje się już do użycia. Trzeba tylko pamiętać, aby do analiz wybierać warstwy wektorowe, a jako pola z wartościami do obliczeń tylko pola numeryczne. W następnych wersjach inne możliwości będą zablokowane.

Wtyczkę można pobrać stąd. Pliki należy rozpakować do katalogu z wtyczkami i uruchomić ponownie QGISa.

Wszelkie uwagi mile widziane.
26-04-2011, 21:12,
#6
RE: jak policzyć sumy częściowe
A nie lepiej powiesić w repozytorium jako eksperymentalną? Smile
28-04-2011, 22:13,
#7
RE: jak policzyć sumy częściowe
Lepiej w repozytorium Smile

http://www.rayo.strefa.pl/RayoRepository.xml


Jakie są zasady umieszczania wtyczek w głównym repozytorium?
28-04-2011, 23:45,
#8
RE: jak policzyć sumy częściowe
(28-04-2011, 22:13)Rayo napisał(a): Jakie są zasady umieszczania wtyczek w głównym repozytorium?

Po pierwsze, nie szkodzić Smile Nie ma specjalnych zasad, repozytorium jest otwarte. Ewentualna moderacja jest wsteczna, choć na razie nie była potrzebna. Ważne, żeby po uploadzie testowo sobie zainstalować i sprawdzić, czy wszystko gra, bo czasem ludzie wieszają np. uszkodzone zipy, a nade wszystko błędnie wypełniają nr wersji (wyższy od tego w __init__.py) i to potem instalator ciągle pokazuje rzekomo dostępną aktualizację.

Za kilka miesięcy będziemy migrować do całkowicie nowego repozytorium: http://plugins.qgis.org/plugins/ i tu już będzie znacznie więcej automatycznych testów i wstępna moderacja też będzie Smile
05-05-2011, 22:21,
#9
RE: jak policzyć sumy częściowe
W ciągu ostatnich dni wprowadziłem wiele poprawek do wtyczki Statystyki Grupowe i w zasadzie ma ona już całą planowaną funkcjonalność. W związku z tym otrzymała nr wersji 1.0.0 Smile

Wtyczka umożliwia zgrupowanie obiektów z danej warstwy według dowolnego parametru (np. typów działek z przykładu Tomsika) i obliczenie dla każdej grupy liczebności, sumy, średniej, wartości min i maks dowolnego parametru liczbowego. Parametrem tym może być także geometria obiektu: długość dla linii i obwód lub powierzchnia dla poligonów. W związku z tym nie ma konieczności eksportowania i uaktualniania kolumn geometrii obiektów.

Wtyczka jest dostępna w repozytorium. Adres w jednym z poprzednich postów.
06-05-2011, 12:50,
#10
RE: jak policzyć sumy częściowe
Super! Smile Gdybyś chciał się podzielić z całym światem, to w kilku wtyczkach jest przykład, jak zrobić system tłumaczeń. Np. w TableManagerze 0.3.4:

1. te kilka linijek w metodzie __init__ w tableManager_plugin.py

2. napisy (angielskie!) opakowujesz w funkcję tr(napis), ewentualnie QCoreApplication.translate(kontekst, napis)

3. zawartość katalogu i18n: programem pylupdate4 zbierasz napisy z plików zadeklarowanych w .pro i tworzysz pliki .ts, które potem programem linguist tłumaczysz i kompilujesz do .qm


Skocz do: