Blog GIS Support - Strona 18 z 24 - GIS Support


GPS Tracker

GPS trackerNa stronie wtyczki GPS Tracker udostępniliśmy jej nową wersję. Główną zmianą jest wprowadzenie kompatybilności z aplikacją QGIS w wersji 3.0 i nowszych. Dzięki temu można korzystać najnowszych funkcjonalności usprawniających pracę w tym programie m.in. przyspieszone renderowanie danych wektorowych (a w najbliższej wersji również renderowanie warstw z wykorzystaniem procesorów wielordzeniowych) czy zaawansowaną stylizację i etykietowanie warstw. Ponadto wprowadzono mechanizm pozwalający odzyskać zebrane dane w przypadku awarii QGIS oraz możliwość dostosowania odległości dla automatycznego pomiaru.

Wszystkich zainteresowanych zapraszamy do ściągnięcia i wykorzystywania tego narzędzia w swojej pracy.

Wtyczka GPS Tracker jest efektem współpracy Agencji Restrukturyzacji i Modernizacji Rolnictwa oraz firmy GIS Support Sp. z o.o. Narzędzie to wspomaga pracę z odbiornikiem GPS w aplikacji QGIS poprzez rozszerzenie funkcjonalności związanych ze zbieraniem informacji w terenie. GPS Tracker Plugin jest udostępniony na licencji zgodnie z warunkami GNU General Public License Version 3.


arimr-logo

Tagi: ,
Use case – mapa akustyczna łodzi

Opis: Urząd Miasta Łodzi w ramach projektu pn. „Mapa akustyczna miasta Łodzi” pozyskał i przygotował dane niezbędne do realizacji mapy akustycznej. DHV Hydroprojekt dokonała niezbędnych obliczeń oraz stworzyła mapę akustyczną, którą zamierzano przedstawić w postaci interaktywnej mapy.

Problem: Wykonanie geoportalu prezentującego w przejrzysty sposób dane akustyczne wraz z panelem administracyjnym pozwalającym na zarządzanie treścią mapy bez potrzeby programowania.

Rozwiązanie: GIS Support stworzył portal, umożliwiający mieszkańcom przeglądanie informacji dotyczących miasta i poziomu hałasu w różnych skalach, z wykorzystaniem interaktywnego portalu mapowego. Portal mapowy integruje w sobie rozwiązania firmy ESRI (ArcSDE i ArcGIS Server 10.1) z rozwiązaniami mapowymi firmy GIS Support. Umożliwia on między innymi generowanie wydruków dla wybranych wycinków mapy w raz z legendą, przeglądanie kilkunastu warstw tematycznych, identyfikacje obiektów na mapie, odczyt atrybutów obiektów na mapie. Portal mapowy posiada system CMS do zarządzania treścią strony www oraz interaktywnej mapy.

Use case – Acoustic map of Łódź

Description: Within the framework of the project called ‘Acoustic map of Łódź’, the city of Łódź obtained and prepared all data necessary to make an acoustic map. DHV Hydroprojekt provided all necessary calculations and made an acoustic map which was to be presented in the form of an interactive map.

Problem: The development of a geosite which would clearly present all acoustic data together with an administration panel allowing to manage the content of the map without programming.

Solution: GIS Support has developed a site allowing all residents to view information about the city and noise levels in different scales, using an interactive site. Such site combines solutions developed by ESRI (ArcSDE and ArcGIS Server 10.1) with mapping solutions of GIS Support. It enables, among others, to generate prints of selected sections of the map together with the legend, view several theme sections, identify objects, and read about attributes of the objects on the map. The site has CMS used to manage the content of the website and the interactive map.

QGIS 2.2 Valmiera

Najnowsza, stabilna wersja QGIS, oznaczona numerem 2.2, została oficjalnie udostępniona wszystkim użytkownikom. A co się stało z QGIS 2.1? (poprzednia oficjalna wersja miała numer 2.0). Zaszły pewne zmiany: od teraz, wersje mające numer kończący się na liczby nieparzyste oznaczają teraz niestabilne wydania rozwojowe, natomiast liczby parzyste określają oficjalne, stabilne wersje. Dodatkowo kolejne wydania 2.x będą udostępniane regularnie co 4 miesiące. Więcej szczegółów, w tym daty kolejnych wydań, można znaleźć na oficjalnej stronie projektu. Należy podkreślić, że daty dotyczą jedynie kodu źródłowego. Binarne wersje instalacyjne powinny się pojawiać w ciągu kilku dni od ogłoszenia nowej wersji. W momencie pisania niniejszego artykułu QGIS 2.2 dostępny jest już poprzez instalator OSGeo4W.

Dzięki dodaniu możliwości upraszczania obiektów w locie wyświetlanie warstw wektorowych jest teraz zauważalnie szybsze. Im bardziej skomplikowana jest warstwa tym przyspieszenie renderowania jest większe. Opcję generalizacji można ustawić dla całego projektu jak również dla pojedynczych warstw. Należy jednak pamiętać, że przy ustawieniu wyższych progów upraszczania mogą pojawić się artefakty jak, np. dziury pomiędzy poligonami.

Dzięki złączeniom tabel QGIS umożliwia definiowanie relacji wiele do jednego. W QGIS 2.2 dodane zostało narzędzie do tworzenie relacji jeden do wielu. Dokładny opis tej funkcjonalności (w języku angielskim) można znaleźć na blogu Matthiasa Kuhna.

Po raz kolejny sporo nowości można znaleźć w kompozytorze wydruków. Każdy element kompozytora można teraz obrócić o dowolny kąt. Przy zapisywaniu kompozycji do pliku graficznego możliwe jest wygenerowanie pliku wpasowania, dzięki czemu utworzony obraz można wczytać jako raster z zachowaną georeferencją. Narzędzie Atlas zostało rozbudowane m.in. o możliwość podglądu wszystkich stron przed wygenerowaniem pliku wynikowego.

Usprawnieniu uległa także symbolizacja warstw. Możliwe jest teraz odwrócenie kolejności w palecie kolorów bez konieczności tworzenia nowej palety. Ciekawe efekty można uzyskać dzięki nowym opcjom dostępnym przy wypełnieniu obiektów gradientem barw. Więcej szczegółów można znaleźć pod tym adresem. Symbolizacja Wartość unikalna i Symbol stopniowy pozwalają kategoryzować dane na podstawie wyrażeń zdefiniowanych przez użytkownika. Pozwala to klasyfikować atrybuty na podstawie więcej niż jednej kolumny lub zdefiniowanych formuł.

Powyżej opisane zostały wybrane funkcje dodane w QGIS 2.2. Pełniejszy opis można znaleźć w formie wizualnej pod tym adresem.

Tagi:
Use case – GPS Tracker

Opis: Podczas wykonywania terenowych pomiarów powierzchni pól uprawnych, zgłoszonych do dopłat unijnych dla rolników, ARiMR stosuje się odbiorniki GPS. Podczas pomiarów różnymi odbiornikami pojawiają się potrzeby wyświetlania pomiarów już w terenie na komputerach mobilnych, zwiększania jakości pomiarów oraz obróbki danych in situ.

Problem: Agencja Restrukturyzacji i Modernizacji Rolnictwa podczas kontroli obszarowych metodą ‘terenową’ oraz ‘foto’ potrzebuje sprawnego narzędzia automatyzującego pomiary terenowe z wykorzystaniem GPS, procesy obliczeń geodezyjnych oraz narzędzie zwiększające dokładność pomiarów GPS i przystosowane do specyfiki pracy inspektorów terenowych w środowisku Quantum GIS Desktop 2.1.

Rozwiązanie: Stworzyliśmy wtyczkę do QGIS: GPS Tracker, umożliwiającą sterowanie pomiarem GPS z poziomu komputera w czasie rzeczywistym. Wtyczka dostosowana jest do większości odbiorników GPS na rynku. Narzędzie dostarczone w formie wtyczki Python do programu Quantum GIS Desktop, między innymi automatyzuje proces pomiarów, umożliwia uśrednianie pomiarów GPS w celu zwiększenia dokładności, realizację obliczeń geodezyjnych w oparciu o punkty pomiarowe metodą “wcięcia w przód”, obróbkę danych w terenie. Narzędzie przystosowane jest również do obsługi poprzez mobilne komputery z dotykowym wyświetlaczem.

Quantum GIS. Tworzenie i analiza map. Bartłomiej Iwańczak.

imagesKilka miesięcy temu nakładem wydawnictwa Helion ukazała się ciekawa książka autorstwa Bartłomieja Iwańczaka : „Quantum GIS. Tworzenie i analiza map”. Muszę powiedzieć, że po pierwszym przekartkowaniu byłem dość zaskoczony nietypową formą graficzną książki. Wydaje się, że rycin, strzałek i śródtytułów jest więcej niż tekstu, ale już po przeczytaniu kilku stron okazało się, że jest to niezwykle przejrzysta forma do przedstawienia tematu.

Jest to książka bardzo ważna i potrzebna. Dlaczego? Bo zasypuje przepaść pomiędzy typowymi książkami o GIS a podręcznikami lub dokumentacjami do oprogramowania. „Quantum GIS. Tworzenie i analiza map” jest przeznaczona dla osób, którzy o GIS, a przez to i QGIS wiedzą nic, a chcieliby zaznajomić się z tą tematyką, nie tylko w teorii, ale i w praktyce. Dzięki tej książce mogą to zrobić szybko i bezboleśnie. Nieocenionym atutem tej książki jest ograniczenie teorii do niezbędnego minimum, z nastawieniem na praktykę. Dzięki temu osoba, która nie miała pojęcia o GIS,  już po kilku godzinach pracy z książką, może pochwalić się własną mapą. Nieocenione jest to, że książka nie straszy. Częstym błędem jest przedstawianie multum możliwości użycia, bez pokazania ich w praktyce, przez co potencjalnemu użytkownikowi GIS wydaje się, że musi być to bardzo skomplikowana materia, gdzie zanim zobaczy się efekty, potrzebne są dziesiątki godzin zgłębiania tajników geografii i informatyki.

Książkę można polecić wszystkim na początek przygody z GIS. Teraz nie ma już usprawiedliwienia, że nie ma dobrej książki po polsku dla początkujących.

Dziękujemy Autorowi za przekazanie egzemplarza:)

Tagi: ,
Tworzenie skryptów Pythona w QGIS za pomocą narzędzi geoprocesingu

Wtyczka Processing (do wersji QGIS 1.8 SEXTANTE) zawiera wiele pomocnych narzędzi usprawniających pracę z danymi przestrzennymi w QGIS. Jednym z nich jest mechanizm pozwalający na tworzenie i uruchamianie przez użytkowników skryptów napisanych w języku programowania Python. Dzięki temu aby dodać nową funkcjonalność nie trzeba tworzyć nowej wtyczki, a przy tym martwić się o zbudowanie interfejsu, właściwe wypełnienie metadanych itp. Skrypty traktowane są przez Processing w ten sam sposób jak pozostałe algorytmy. Można je więc uruchomić w oknie dialogowym lub w trybie wsadowym jak również wykorzystać w graficznym modelarzu. Co więcej, w skryptach można wykorzystać już istniejące algorytmy.

Edytor skryptu

Aby stworzyć nowy skrypt należy w oknie Narzędzia geoprocessingu rozwinąć pozycję Scripts ->Tools i podwójnie kliknąć na Create new script. Zostanie wyświetlony edytor skryptu. Posiada on kilka funkcji ułatwiających pisanie kodu źródłowego jak kolorowanie i autouzupełnianie składni, zwijanie/rozwijanie bloków kodu czy numerowanie linii. W górnej części okna dostępne są przyciski umożliwiające m.in. zapis zmian, edycję pomocy czy uruchomienie skryptu.

edytor

Tworzenie skryptu

Definiowanie danych wejściowych

Na początku kodu można określić nazwę grupy, w której będzie wyświetlany skrypt w oknie Narzędzi geoprocessingu:

[code lang=”python”]##Nazwa grupy=group[/code]

Jeśli sami nie określimy grupy to skrypt zostanie przypisany do grupy User scripts.

Następnie należy określić pola do wprowadzania przez użytkownika niezbędnych parametrów. Każdy parametr określa się w jednej linii zaczynającej się znakami ##, następnie należy podać jego nazwę, typ danych oraz, w niektórych przypadkach, opcje:

[code lang=”python”]##nazwa_zmiennej=typ_danych [opcje][/code]

Nazwy zmiennych nie powinny zawierać spacji – zamiast niej należy wpisać podkreślnik – wtyczka automatycznie zamieni go w spację. Nie należy również korzystać ze znaków specjalnych, w tym polskich znaków diakrytycznych. Opcje pozwalają m.in. na ustawienie domyślnych wartości lub typu geometrii warstwy wektorowej, w większości przypadków nie są one jednak wymagane. Należy je oddzielić od typu danych pojedynczą spacją. Aktualnie dostępne są następujące typy danych:

  1. raster – pole wyboru umożliwiające wybór jednej z wczytanych do QGIS warstw rastrowych lub wskazanie pliku na dysku;
  2. vector – jw. z tym że dotyczy warstw wektorowych. Domyślnie dostępne są wszystkie rodzaje warstw, jednak istnieje możliwość określenia rodzaju geometrii poprzez ustawienie odpowiedniej opcji: point, line, polygon. Przykładowo w celu ograniczenia wyboru użytkownika do warstw punktowych należy wpisać:
    [code lang=”python” gutter=”false”]##warstwa_punktowa=vector point[/code]
  3. table – pole wyboru z tabelami, wyświetlane są warstwy wektorowe jak i tabele nieprzestrzenne (pliki CSV, excel);
  4. field – pole wyboru z polami z tabeli atrybutów danej warstwy wektorowej lub tabeli. Warstwę określa się poprzez podanie jej nazwy jako opcji np.:
    [code lang=”python”]##warstwa=vector
    ##pole_tabeli=field warstwa[/code]
  5. multiple raster i multiple vector – umożliwiają jednoczesny wybór więcej niż jednej warstwy;
  6. selection – pole wyboru ze zdefiniowanymi elementami, kolejne pozycje należy rozdzielić średnikiem:
    [code lang=”python” gutter=”false”]##typ_dzialki=selection budowlana;rolnicza;woda powierzchniowa;nieznany[/code]
  7. 
    

    selection

  8. boolean – wybór wartości logicznej prawda/fałsz (tak/nie);
  9. number – wartość liczbowa, jako opcję można podać wartość domyślną np.:
    [code lang=”python” gutter=”false”]##liczba=number 4
    ##liczba_rzeczywista=number 2.5[/code]

    Liczby rzeczywiste należy podawać z kropką;

  10. string – dowolny łańcuch znaków, podobnie jak przy liczbie można określić wartość domyślną;
  11. extent – zakres geograficzny (Xmin, Xmax, Ymin, Ymax);
  12. crs – wybór układu współrzędnych, domyślnym układem jest WGS 84, ale można to zmienić ustawiając opcję parametru np.:
    [code lang=”python” gutter=”false”]##uklad=crs EPSG:2180[/code]
  13. file – wybór dowolnego pliku z dysku;
  14. folder – jw. ale wybór katalogu;

Tak przedstawiają się powyższe kontrolki w oknie skryptu:

cale_okno - Kopia

Określanie danych wyjściowych

Dane wyjściowe określa się w taki samo sposób jak wejściowe. Jako typ danych należy podać output, natomiast jako opcję należy wpisać wybrany rodzaj:

  1. output raster – warstwa rastrowa;
  2. output vector – warstwa wektorowa;
  3. output table – tabela;
  4. output html – format HTML;
  5. output file – plik;
  6. output number – liczba;
  7. output string – łańcuch znaków.

[code lang=”python”]##warstwa_wyjsciowa=output vector
##liczba_iteracji=output number[/code]

Skrypt może mieć określonych wiele danych wyjściowych. Wartości przyjmowane przez zmienne wyjściowe to, w zależności od ich rodzaju, ścieżka dostępu do pliku (1-5), liczba (6) lub łańcuch znaków (7).

Funkcje pomocnicze

Dostęp do parametrów określonych przez użytkownika odbywa się poprzez odwołanie do zmiennej za pomocą zdefiniowanej na początku nazwy (stąd zakaz korzystania w nazwach zmiennych ze spacji i znaków specjalnych). Część danych jak liczby czy łańcuchy znaków są określone wprost tzn. w formie podanej w oknie skryptu. Aby mieć dostęp do pozostałych można skorzystać z dodatkowych funkcji udostępnianych przez wtyczkę Processing które ułatwiają pracę z danymi wejściowymi:

  • getObject(str) – zwraca klasę reprezentującą w QGIS warstwę (QgsVectorLayer lub QgsRasterLayer), jako parametr może przyjmować warstwę wskazaną przez użytkownika;
  • features(layer) – zwraca iterator po obiektach danej warstwy;
    [notice]Jeśliw opcjach Geoprocesingu zaznaczona jest opcja Use only selected features to zostaną zwrócone tylko zaznaczone obiekty. Jeśli nie ma zaznaczenia to iteracja odbędzie się po wszystkich obiektach.[/notice]
  • values(layer, field1, field2, …) – zwraca słownik, w którym kluczem jest nazwa pola z tabeli atrybutów, a wartość to lista wszystkich wartości z tego pola (obsługuje tylko wartości numeryczne!);
  • uniqueValues(layer, field) – zwraca listę unikalnych wartości z pola w tabeli atrybutów.

Poniższy przykład pozwala zapisać do pliku tekstowego unikalne wartości z tabeli atrybutów warstwy wektorowej:

[code lang=”python”]##input=vector
##pole=field input
##plik=output file
wektor = processing.getObject(input)
wartosci = processing.uniqueValues(wektor, pole)
f = open(plik, 'w’)
try:
for wartosc in wartosci:
f.write(’%s\n’ % str(wartosc))
finally:
f.close()
[/code]

  1. Zdefiniowanie warstwy wejściowej. Zmienna input przechowuje ścieżkę dostępu do warstwy.
  2. Wybór przez użytkownika pola z tabeli atrybutów wybranej warstwy.
  3. Plik, do którego zostaną zapisane dane.
  4. Pobranie wskaźnika do warstwy wejściowej (klasa QgsVectorLayer).
  5. Pobranie unikalnych wartości z wybranego pola tabeli atrybutów.
  6. Otwarcie pliku do zapisu.
  7. Zabezpieczenie przed błędem w trakcie zapisu.
  8. Iteracja po pobranych wartościach.
  9. Zapis wartości do pliku, dane konwertowane są do łańcucha znaków.
  10. Po zakończeniu…
  11. … zamknięcie pliku.

Drugą grupą funkcji pomocniczych są funkcje pozwalające tworzyć nowe warstwy rastrowe, wektorowe i tabele. Znajdują się one w module processing.core.

  • VectorWriter(warstwa_wyjsciowa,kodowanie_znakow,pola,typ_geometrii,uklad_wspolrzednych)
  • RasterWriter(warstwa_wyjsciowa, minX, minY, maxX, maxY, rozmiar_komorki, liczba_kanalow, uklad_wspolrzednych)
  • TableWriter(tabela_wyjsciowa,kodowanie_znakow,pola)

[code lang=”python”]##input=vector
##output=output vector
from processing.core.VectorWriter import VectorWriter
vectorLayer = processing.getObject(input)
writer = VectorWriter(output, vectorLayer.dataProvider().encoding(), vectorLayer.pendingFields(),vectorLayer.wkbType(), vectorLayer.crs())
features = processing.features(vectorLayer)
for feat in features:
writer.addFeature(feat)
del writer[/code]

  1. Zdefiniowanie warstwy wejściowej.
  2. Definicja warstwy wyjściowej, zmienna output również przechowuje ścieżkę do pliku.
  3. Import klasy VectorWriter do stworzenia nowej warstwy na dysku.
  4. vectorLayer przechowuje instancję klasy QgsVectorLayer.
  5. Stworzenie pliku na dysku, większość parametrów pobrana jest z warstwy wejściowej.
  6. Stworzenie iteratora po obiektach warstwy.
  7. Pętla po obiektach warstwy.
  8. Dodanie obiektu do nowej warstwy.
  9. Zamknięcie pliku nowej warstwy.

Wykorzystanie istniejących algorytmów

Istnieje również możliwość wykorzystania dostępnych algorytmów wtyczki Processing. W tym celu należy wywołać funkcję runalg z odpowiednimi parametrami:

[code lang=”python”]##input_raster=raster
##input_wektor=vector
##warstwa_wyjsciowa=output vector

wektor = processing.getObject(input_wektor)
raster = processing.getObject(input_raster)
processing.runalg(’qgis:pointsfromlines’, raster, wektor, warstwa_wyjsciowa)[/code]

W powyższym przykładzie zmienne raster i wektor to odpowiednio instancje klas QgsRasterLayer i QgsVectorLayer uzyskane dzięki funkcji getObject.
W jaki sposób można uzyskać informacje o algorytmach? I w tym przypadku z pomocą przychodzi wtyczka Processing. Najprościej jest z nich korzystać za pomocą Konsoli Pythona QGIS.
Funkcja alglist wyświetla wszystkie dostępne algorytmy:

[code lang=”python”]>>> processing.alglist()
Add autoincremental field—————>qgis:addautoincrementalfield
Add field to attributes table———–>qgis:addfieldtoattributestable
Advanced Python field calculator——–>qgis:advancedpythonfieldcalculator
Basic statistics for numeric fields—–>qgis:basicstatisticsfornumericfields
Basic statistics for text fields——–>qgis:basicstatisticsfortextfields
Clip————————————>qgis:clip
…[/code]

Po lewej stronie wyświetlany jest krótki opis algorytmu, a po prawej stronie jego nazwa, którą należy użyć jako pierwszy parametr funkcji runlag. Możliwe jest ograniczenie wyników poprzez podanie tekstu (fragmentu nazwy lub opisu) jako parametru funkcji alglist() np.:

[code lang=”python”]>>> processing.alglist(’buffer’)
Fixed distance buffer——————->qgis:fixeddistancebuffer
Variable distance buffer—————->qgis:variabledistancebuffer
Grid buffer—————————–>saga:gridbuffer
Grid proximity buffer——————->saga:gridproximitybuffer
…[/code]

Aby uzyskać szczegółowe informacje odnośnie konkretnego algorytmu należy skorzystać z funkcji alghelp np.:

[code lang=”python”]>>> processing.alghelp(’qgis:fixeddistancebuffer’)
ALGORITHM: Fixed distance buffer
INPUT
DISTANCE
SEGMENTS
DISSOLVE
OUTPUT [/code]

Funkcja ta wyświetla opis algorytmu oraz jego parametry. Jeśli algorytm ma parametry typu <ParameterSelection>, czyli wybór z góry określonych opcji, dodatkowo na końcu znajduje się spis dostępnych wartości.

[code lang=”python”]&gt;&gt;&gt; processing.alghelp(&quot;saga:slopeaspectcurvature&quot;)
ALGORITHM: Slope, aspect, curvature
ELEVATION
METHOD
SLOPE
ASPECT
CURV
HCURV
VCURV

METHOD(Method)
0 – [0] Maximum Slope (Travis et al. 1975)
1 – [1] Maximum Triangle Slope (Tarboton 1997)
2 – [2] Least Squares Fitted Plane (Horn 1981, Costa-Cabral &amp; Burgess 1996)
3 – [3] Fit 2.Degree Polynom (Bauer, Rohdenburg, Bork 1985)
4 – [4] Fit 2.Degree Polynom (Heerdegen &amp; Beran 1982)
5 – [5] Fit 2.Degree Polynom (Zevenbergen &amp; Thorne 1987)
6 – [6] Fit 3.Degree Polynom (Haralick 1983)[/code]

Opcje te można wylistować również funkcją algoptions(nazwa_algorytmu). Aby je ustawić należy podać numer danej opcji według kolejności:

[code lang=”python” gutter=”false”]processing.runlag(&quot;saga:slopeaspectcurvature&quot;, raster, 1, nachylenie, …)[/code]

W powyższym przykładzie zostanie użyta metoda Maximum Triangle Slope.

Informacje o postępie algorytmu

W trakcie działania skryptu może zdarzyć się, że chcemy wyświetlić dodatkowe informacje o aktualnym postępie pracy. Jest to szczególnie przydatne przy czasochłonnych operacjach. Z pomocą przychodzi moduł progress, który udostępnia metody pozwalające ustawić procentowe zaawansowanie obliczeń lub opis aktualnych działań:

  • progress.setPercentage(i) – pozwala ustawić wartość paska postępu w dolnej części okna, parametr i powinien mieć wartość od 0 do 100;
  • progress.setInfo(tekst, error=False) – wyświetla podany komunikat w oknie Log. Jeśli drugi argument zostanie ustawiony na True to wyświetlony tekst będzie miał kolor czerwony (przydatne przy informowaniu o błędach);
  • progress.setText(tekst) – jw. ale dodatkowo tekst pojawia się nad paskiem postępu;
  • progress.setCommand(tekst) – wyświetla komunikat w oknie Log w formacie tekstu o stałej szerokości znaków;
  • progress.setDebugInfo(tekst) – wyświetla komunikat w oknie Log w kolorze niebieskim;
  • progress.setConsoleInfo(tekst) – jw. ale w kolorze jasnoszarym.

[notice]Funkcje setCommand, setDebugInfo i setConsoleInfo wyświetlą informacje w oknie tylko jeśli w opcjach Geoprocesingu zaznaczona jest opcja Show extra info in Log panel. Są one pomocne głównie przy tworzeniu skryptu, w ostatecznej wersji należy używać setInfo lub setText.[/notice]

Przykładowe użycie powyższych funkcji:

[code lang=”python”]from time import sleep
progress.setInfo(’setInfo(tekst)’)
progress.setInfo(’setInfo(tekst, True)’, True)
progress.setCommand(’setCommand(tekst)’)
progress.setDebugInfo(’setDebugInfo(tekst)’)
progress.setConsoleInfo(’setConsoleInfo(tekst)’)
for i in range(10):
progress.setPercentage(i*10)
progress.setText(’setPercentage: %d’ % (i*10))
sleep(0.5)[/code]

log_window

Przerywanie działania skryptu

Jeżeli po uruchomieniu algorytmu wystąpi krytyczny błąd uniemożliwiający dalsze działanie należy go przerwać. W tym celu można wykorzystać klasę GeoAlgorithmExecutionException, która pozwala przerwać działanie skryptu oraz wyświetlić odpowiedni komunikat:

[code lang=”python”]##dzielnik=number 0
from processing.core.GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
if dzielnik == 0:
raise GeoAlgorithmExecutionException(u’Dzielenie przez zero!’)

[/code]

error_log

Edytor pomocy

help_editor

Edytor pomocy pozwala przygotować opis algorytmu i jego parametrów. Można go wywołać przyciskiem edithelp. W górnej części wyświetlony jest podgląd pomocy. Poniżej, z lewej strony znajduje się lista elementów do edycji. Dostępne pozycje:

  • Algorithm description – ogólny opis skryptu;
  • Input parameters – opis poszczególnych parametrów;
  • Output – opis danych wyjściowych;
  • Algorithm created by – autor skryptu;
  • Algorithm help written by – autor pomocy.

Po wybraniu pozycji w prawej części okna można wpisać treść pomocy dla danego elementu. Pliki pomocy mają taką samą nazwę jak skrypt, ale mają rozszerzenie .help.


Stworzone skrypty widoczne są w oknie Narzędzia geoprocessingu pod pozycją Scripts . Po zapisaniu można je używać jak pozostałe algorytmy lub wykorzystać w graficznym modelarzu lub innym skrypcie.

narzedzia_geoprocessingu_skrypty

Domyślnie przechowywane one są w katalogu konfiguracyjnym QGIS /.qgis2/processing/scripts/. Ścieżkę tą można zmienić w opcjach geoprocesingu. Można je kopiować i przenosić na inne komputery jak zwykłe pliki.

skrypty_pliki

Tagi: ,
Rozwój bazy wiedzy GIS Support

Analiza statystyk naszej strony www wyraźnie wskazuje, że dział Baza wiedzy cieszy się niezwykłą popularnością (głównie wśród studentów i urzędników). Te same sygnały docierają do nas podczas spotkań na konferencjach. Niestety ze względu na zmianę formy działalności oraz dużą ilością pracy, nie mamy czasu na jej rozwój i pisanie nowych artykułów.

W związku z tym zmieniamy formułę funkcjonowania bazy wiedzy. Zapraszamy studentów i wszystkich zainteresowanych do współpracy w publikowaniu artykułów open source GIS, w szczególności:

  • opis lub aktualizacja opisu wtyczek QGIS,
  • opis działań krok po kroku w QGIS,
  • wszystkiego co związane jest z OpenStreetMap,
  • podstawy GIS,
  • analizy przestrzenne

Jesteśmy również zainteresowani zupełnie nowymi, nie opisanymi dotąd obszarami wiedzy.

Każdy zainteresowany dostanie konto do logowania się na stronie oraz możliwość tworzenia szkiców. Szkic po zaakceptowaniu, pojawi się w bazie wiedzy opatrzony imieniem i nazwiskiem, adresem e-mail oraz notką o autorze. Jest to dobra okazja do zaprezentowania swojej wiedzy i zainteresowań w praktycznym zastosowaniu GIS. Wszystkich zainteresowanych prosimy o kontakt drogą e-mailową.

Tagi: , ,
Analiza funkcjonalności oprogramowania QuantumGIS w zakresie analiz przestrzennych na przykładzie danych topograficznych. Katarzyna Kisielińska

Praca magisterska Pani Katarzyny Kisielińskiej, napisana pod kierunkiem dr. inż. Pawła Kowalskiego w Zakładzie Kartografii na Wydziale Geodezji i Kartografii Politechniki Warszawskiej.

Praca magisterska ma swoją charakterystykę i nie czyta jej się jak thrillera od deski do deski, ale w przypadku magisterki Pani Kisielińskiej nie o to chodzi. Jest to pierwsza od dawna publikacja, dostępna za darmo, po polsku, która porusza tematykę QGIS.

Polecamy ją każdemu, kto już trochę zna QGIS i chcę poczytać o jego możliwościach w zakresie analiz przestrzennych. Dużą wartością dodaną jest porównanie podstawowych możliwości analitycznych z QGIS i ArcGIS.

Praca do pobrania ze strony Katedry lub z naszego serwera.

Tagi: , ,
QGIS 2.0 wydany!

splash_qgis2.0

Po wielu miesiącach wytężonej pracy wydana została nowa wersja QGIS oznaczona numerem 2.0 i nazwą Dufour. Przynosi ona wiele zmian dla użytkowników, zarówno w istniejących dotychczas funkcjonalnościach jak i nowych narzędziach ułatwiających pracę z danymi przestrzennymi. Należy zaznaczyć że aplikacja zmieniła swoja nazwę, od wersji 2.0 Quantum GIS został przemianowany na QGIS.

Najważniejsza zmiana nie jest widoczna dla użytkownika od razu po uruchomieniu aplikacji. Jej efektem jest to, że wtyczki z wcześniejszych wersji oprogramowania nie działają w nowej wersji. Jest to związane ze znacznymi zmianami w API, które jest teraz bardziej przejrzyste i logiczne dla programistów. Na szczęście większość wtyczek została już przepisana i jest dostępna przez (również zaprojektowany od nowa) menedżer wtyczek, a liczba kompatybilnych rozszerzeń sukcesywnie rośnie.

Interfejs użytkownika został odświeżony. Zmieniono wygląd większości ikon, zakładki w oknach dialogowych zostały zastąpione przez listę wyświetlaną z lewej strony danego okna, udoskonalono konsolę Pythona i narzędzie do etykietowania obiektów. Zarządzanie stylami warstw wektorowych odbywa się teraz z pomocą rozwijanej listy, a nie kolejnych okien dialogowych. Również obsługa warstw rastrowych została gruntownie przebudowana. Wtyczkę SEXTANTE zintegrowano z QGIS i przemianowano na Processing (przetłumaczone w polskiej wersji na Narzędzia). Narzędzia geoprocessingu można teraz wywołać z poziomu konsoli, która jest wywoływana poprzez kombinację klawiszy Ctrl+Alt+M.

Wśród nowych funkcjonalności chyba najefektowniejszą jest dodanie możliwości przenikania się warstw (tzw. blend mode), przykłady wykorzystania można znaleźć pod tymi adresami:

Nowa wtyczka Kontrola topologii pozwala na sprawdzanie wzajemnych zależności pomiędzy obiektami lub warstwami co pozwala na odnalezienie i ewentualne usunięcie błędów geometrycznych. Dodano natywne sterowniki pozwalające na bezpośrednią obsługę baz danych Oracle i usługi Web Coverage Service.

Zmiany nie ominęły również kompozytora wydruków. Dzięki integracji wtyczki Atlas można generować serie wydruków w oparciu o wybraną warstwę, dodano prowadnice i przyciąganie do obiektów ułatwiające odpowiednie rozmieszczenie kompozycji czy wsparcie dla wielokolumnowych legend. Kompozytor pozwala od teraz tworzyć również wielostronicowe dokumenty.

Razem z wydaniem nowej wersji QGIS odświeżona została strona główna projektu http://qgis.org/.

Powyżej przedstawiono jedynie część zmian jakie wprowadzono w QGSI 2.0. W serwisie Flickr dostępne są galerie zrzutów ekranowych przedstawiające QGIS 2.0 w akcji (QGIS i przykładowe mapy – linki z oficjalnego polskiego bloga projektu).

Najnowszą wersję można ściągnąć z tej strony. Dostępna jest wersja 32 i 64 bitowa. Dla systemów Windows jest ona również dostępna przez instalator OSGeo4W.

Tagi:

Szkolenia GIS i QGIS

Szkolenia podstawowe i dedykowane w formie zdalnej oraz stacjjonarnej

Zobacz ofertę szkoleń