Blog GIS Support


Wprowadzenie do GRASS GIS

GRASS. Czyli Ten, Od Którego Się Wszystko Zaczęło w świecie wolnego oprogramowania GIS. Jedni uciekają przed nim gdzie pieprz rośnie, uznając za niezwykle trudnego do opanowania. Inni – nie wyobrażają sobie pracy bez niego. Jaki GRASS jest naprawdę?

Program powstał w 1982, czyli przyszłym roku skończy 30 lat istnienia! Dla porównania, pierwsza wersja Windows – jeszcze nie jako samodzielny system, ale nakładka na DOS – została opublikowana trzy lata później. Skąd w ogóle wziął się ten pakiet?

Otóż GRASS, tak jak system GPS czy koncepcja sieci Internet, wywodzi się z amerykańskiej armii. Rozwijany przez Construction Engineering Research Laboratory służył głównie celom planowania przestrzennego (za Wikipedią). W 1995 roku armia przestała się nim interesować i system „poszedł do cywila”, a konkretnie – zainteresowali się nim naukowcy z Baylor University. Wkrótce stał się programem typu open source, udostępnianym na licencji GNU GPL, a dzięki jego modułowej budowie liczba funkcji zaczęła szybko rosnąć, uwzględniając najnowsze odkrycia w dziedzinie GIS. Pomimo sędziwego, jak na program komputerowy wieku jest wciąż rozwijany, a jego najnowsza wersja stabilna nosi numer 6.4 i została opublikowana we wrześniu 2010.

Do czego dziś może przydać się GRASS? Nie ma co ukrywać: trzon programu niewiele się zmienił od początków jego istnienia, a archaiczny model danych (o którym za chwilę) znacznie utrudnia używanie systemu. Jednak spośród dostępnych darmowych programów GIS jedynie GRASS jest prawdziwym kombajnem, umożliwiającym wykonywanie zaawansowanych analiz i modeli przestrzennych. Analizy sieciowe, struktury krajobrazu, tworzenie powierzchni kosztów, modelowanie hydrodynamiczne – to wszystko dla GRASSa jest przysłowiowy „pikuś”. Wiele modułów zostało stworzonych przez naukowców i jest niezwykle przydatnych w pracy naukowej właśnie.

Gdzie więc tkwi haczyk? W modelu danych, który powinien dostać etykietkę „Zabytek techniki”. Jest on podobny do – wywodzącego się zresztą z tych samych czasów – starego ARC/INFO Workstation (nie mylić z współczesnym ArcInfo!) z wektorami „Coverage” i rastrami „GRID”. Do zapisania choćby jednej warstwy potrzebna jest GRASSowi cała struktura katalogów, która przedstawia się następująco:

GISDBASE – nadrzędny katalog, w którym trzymane są wszystkie dane GRASS. Może być specjalnie wydzielony lub nie,na przykład w systemie Linux może to być /home/nazwa_użytkownika.

Lokacja (LOCATION) – jest to katalog zawierający dane o takim samym zasięgu, układzie współrzędnych i – w przypadku rastrów – rozdzielczości. Wszelkie dane, które mają się znaleźć w lokacji, muszą być transformowane do jednego układu! Nie ma tutaj możliwości transformacji „w locie”, tak jak w przypadku współczesnych programów GIS. Rozdzielczość rastra musi być ustawiona według tej warstwy, która ma piksel najmniejszy. Powoduje to, że chcąc używać jednocześnie ortofotomapy lotniczej (piksel 25 cm) oraz modelu wysokości SRTM (piksel 90 m) – musimy zapisać ten drugi zupełnie bezproduktywnie z 25-centymetrową rozdzielczością…

MAPSET – jest podzbiorem lokacji, opisywany jako „kolekcja map dla jednego terytorium lub projektu”. Innymi słowy jest to jakiś wyodrębniony zestaw warstw, znajdujących się w jednej lokacji (a więc o tym samym zasięgu, układzie i rozdzielczości). Możemy też osobnych MAPSETów nie używać i trzymać wszystkie dane w jednym, domyślnie tworzonym „PERMANENT”.

Paskudne, nieprawdaż? Na pocieszenie dodam, że zupełnie jak w przypadku ARC/INFO Coverage – wektory zapisywane są w modelu topologicznym, co jest zupełnie niemożliwe w przypadku plików Shapefile. Czyli każda granica np. działki jest zapisywana tylko raz, nie ma problemu z nieprzylegającymi czy nakładającymi się poligonami i tak dalej. Sam import, a następnie eksport z GRASSa pozwala pozbyć się problemów z topologią w naszych danych.

O tym, jak używać GRASSa w praktyce i do czego może się on przydać – w następnych wpisach!

Do poczytania:

http://grass.fbk.eu/ – oficjalna strona projektu

http://www.wgug.org/ – Wrocławska Grupa Użytkowników GRASS

Tagi:
Różne oblicza GRASS GIS

Jeśli zdecydujemy się wykorzystać GRASS w praktyce, możemy to zrobić na kilka sposobów. Pakiet ten – w odróżnieniu od większości dostępnego oprogramowania GIS – posiada bowiem kilka interfejsów. Każdy z nich ma swoją specyfikę, swoje wady i zalety.

Jeśli wpiszemy w oknie terminala komendę „grass”, zostaniemy najpierw poproszeni o wybór lokacji i mapsetu (o nich mowa była w poprzednim wpisie). W tym miejscu można też utworzyć nową lokację, jeśli jeszcze nie mamy żadnej – definiując jedynie układ współrzędnych. Na określenie zasięgu i rozdzielczości rastra będzie jeszcze czas. Następnie ujrzymy trzy okienka…

Najbardziej rzucającym się w oczy jest „Menadżer warstw GRASS GIS”. To swoiste centrum dowodzenia – tutaj dodajemy warstwy do wyświetlenia i wybieramy funkcje analiz przestrzennych. Drugie okienko – to „GRASS GIS Map Display” (nie ma to jak niekompletne tłumaczenie…), które służy do wizualizacji, pomiarów odległości/powierzchni, generowania profili itd. Można tu dostrzec pewne podobieństwo do znanego i lubianego (albo przeklinanego) GIMP’a, który również lubuje się w mnożeniu okien… A całość prezentuje się tak:

grassgis

Omawiany interfejs nosi nazwę wxPython GUI. Zastępuje on poprzednią wersję, eliminując kilka poważnych minusów (na przykład zlikwidowano przycisk „odśwież” w oknie wizualizacji, który trzeba było kliknąć po każdej zmianie w Menadżerze – okropność!), ale nie jest jeszcze w 100% gotowy. Stąd też różne komunikaty o błędach, pojawiające się… no właśnie – gdzie?

W konsoli.

Tak – konsola GRASS, ta żywa skamielina, wciąż jest dostępna. Powróćmy na chwilę do okna terminala…

Konsola GRASS

I ukaże się naszym oczom oryginalny interfejs GRASSa, towarzyszący mu od samego początku. Czarne tło, białe litery i tak dalej. W konsoli tej możemy wpisywać komendy odpowiadające poszczególnym funkcjom analizy. Po co w ogóle zaprzątać sobie tym głowę?

  • bo czasami można szybciej wpisać komendę, niż grzebać w menu lub
  • napisać skrypt, który zautomatyzuje nasze działania.

No bo kto by chciał np. powtarzać tą samą operację dla wielu warstw? Kilka arkuszy mapy można jeszcze od biedy przerobić w ten sposób. A jakby tak trafiła nam się długa seria czasowa danych z satelity o krótkim czasie rewizyty? Siąść i płakać, albo właśnie napisać skrypt. Do tego celu potrzebna jest właśnie znajomość składni komend GRASS.

wxPython i konsola to jednak nie wszystko. Można jeszcze podpiąć GRASS do Quantum GIS. Wówczas praca z pakietem staje się znacznie łatwiejsza, bo po zaimportowaniu danych do lokacji można korzystać z niego zupełnie jak z ArcToolbox – wystarczy kliknąć ikonę „Narzędzia GRASS”, a pojawi się coś do złudzenia przypominającego właśnie Toolboxa. W porównaniu do ArcGIS 10 nawet lepsze, bo z możliwością wyszukiwania funkcji 🙂 Obecnie każda wersja QGIS posiada wbudowaną obsługę GRASS. Niestety, jest i poważna wada takiego rozwiązania: brak niektórych funkcji i parametrów. Wówczas pozostaje otworzyć konsolę (Narzędzia GRASS -> shell) i wpisać pożądaną komendę, lub użyć wxPython.

I tak oto pokrótce prezentują się możliwości skorzystania z dobrodziejstw GRASS GIS. Najłatwiejszy wydaje się sposób ostatni, jednak trzeba pamiętać o jego ograniczeniach. Tak czy siak, składnię warto znać – albo przynajmniej mieć dokumentację pod ręką. Przyda się  w najmniej oczekiwanym momencie!

Tagi:
Kalibracja map Messtischblatt w QGIS

Stare mapy może i nie zastąpią wehikułu czasu, ale i tak ich przydatność jest ogromna. Poszukiwanie śladów dawnych fabryk, kolei, fortyfikacji, grodzisk ukrytych w lesie czy też zmian w użytkowaniu i pokryciu terenu 😉 – wszystko to wymaga posiadania archiwalnej mapy. Na szczęście w dobie internetu nie trzeba już szukać ich w bibliotekach i ryzykować zniszczenia zabytku – na ogół wszystko, co trzeba, znajduje się już w sieci. Jest jednak pewne „ale”…

Zwykle wraz z mapą na różnych serwerach dostępne są pliki kalibracyjne z rozszerzeniem .map. Jakość tej kalibracji jest lepsza lub gorsza, zawsze jednak będzie działać jedynie z OziExplorerem. Użycie takiego pliku w standardowym programie GIS skończy się porażką, bo jak większość neogeograficznych wynalazków jest zgodny jedynie sam ze sobą. Pozostaje więc zabrać się za kalibracje samemu.

Tym razem zajmę się niemieckimi mapami Messtischblatt w skali 1:25 000, pokrywającymi tereny włączone do Polski po II wojnie światowej. Pozyskać je można np. ze strony Archiwum Map Zachodniej Polski. Ich kalibracja jest o tyle łatwiejsza od obejmujących tereny II RP map WIG, że parametry odwzorowania, są na 100% pewne – mało tego, znajdują się w bazie EPSG!

W Messtischblattach zastosowano odwzorowanie zwane w krajach anglosaskich Transverse Mercator, a u nas – Gaussa-Krügera. Za model Ziemi posłużyła elipsoida Bessela. Terytorium III Rzeszy podzielono na 6 stref odwzorowawczych o szerokości 3 stopni, przy czym dla obszaru dzisiejszej Polski są to strefy 5 i 6. Granica pomiędzy nimi przebiega wzdłuż południka 16,44 E (w układzie WGS84). Dla strefy 5 mamy gotową definicję, którą można przywołać kodem EPSG: 31469. Tereny położone dalej na wschód wymagają wpisania własnej definicji strefy 6:

+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs

Czasami zdarza się arkusz leżący w dwóch strefach. Poznamy to po załamaniu siatki oraz napisie „Ostgrenze des Gitterstreifes 15 | Westgrenze des Gitterstreifens 18” nad ramką. Wówczas oczywiście należy używać wyłącznie punktów kalibracyjnych w obrębie jednej strefy.

I tym sposobem możemy zabierać się za kalibrację, korzystając z oryginalnej siatki topograficznej. W QGIS służy do tego narzędzie Georeferencer, umieszczone w menu Raster (może być konieczne wcześniejsze włączenie w Zarządzaj wtyczkami). Pracę zaczynamy od wczytania surowego skanu – służy do tego ikona Wczytaj skan. Następnie należy powiększyć obraz tak, by zobaczyć ramkę i móc odczytać współrzędne. Nowe punkty wpasowania dodajemy ikoną Dodaj punkt , pojawi się okno z możliwością wpisania współrzędnych lub pobrania ich z istniejącej mapy:

Wprowadzanie punktów GCP

I tak do skutku, to znaczy – do wpisania odpowiedniej liczby punktów wpasowania. Pamiętać należy przy tym, że współrzędne siatki podane są w kilometrach – należy więc dopisać do nich na końcu 000. Jeśli mapa jest w dobrym stanie i prawidłowo zeskanowana, to właściwie wystarczą 4 punkty, dobrze jednak jest mieć ich więcej. Na koniec należy ustawić parametry transformacji:

Ustawienia transformacji

W większości przypadków wystarczy wielomian 1 stopnia, dla zniszczonych map trzeba użyć stopnia wyższego. Ustawiamy układ współrzędnych (strefa 5 – z kodu EPSG, strefa 6 – wklejając definicję), plik wyjściowy…

Teraz można by już uruchomić kalibrację, ale na wszelki wypadek zapiszmy punkty wpasowania – żeby nie zaczynać od początku w razie padnięcia QGISa.

Na zakończenie warto otrzymany raster transformować do jakiegoś współczesnego układu (opcja Raster – Zmień odwzorowanie) oraz odchudzić paletę kolorów (Raster – RGB na PCT) – wszak oryginał drukowano w 3 kolorach i absolutnie nie ma sensu marnować miejsca na zapis 24-bitowy.

Tagi: ,
„OpenLayers 2.10 Beginners Guide” Erik Hazzard

OpenLayers 2.10 Beginners Guide – dla wszystkich, którzy chcą zacząć przygodę z WebGIS. Więcej o OpenLayers.

Tagi:
„PostGIS in Action” Regina O. Obe, Leo S. Hsu

PostGIS in action” Jedyna książka od PostGIS, która rodziła się w bólach od jakiegoś czasu, w końcu ujrzała światło dzienne. Napisana bardzo przystępnym językiem. Recenzja (po angielsku) znajduje się tutaj.

Tagi:
WMS, Web Map Service. Co to jest? Jak tego używać?

Jest to usługa przeglądania danych przestrzennych przez sieć Internet.

a teraz po ludzku…:)

Zbiory danych przestrzennych np. ortofotomapy, mają tę wadę, że zajmują mnóstwo pamięci (ważą tysiące gigabajtów). Przechowywane są na „centralnych serwerach”. Żeby wyświetlić ortofotomapę na swoim monitorze, trzeba ją fizycznie przesłać z serwera do komputera. Gdyby przesyłać je w oryginalnej formie, zajęłoby to wieki, przeciążyło serwery, łącza i nie miałoby większego sensu.

I w tym momencie używamy WMS. (Poniższy rysunek czytamy od prawej do lewej i z powrotem)

Czytaj całość

Tagi: ,
Value Tool

W większości aplikacji GIS mamy dostępne narzędzie do sprawdzania wartości pikseli rastra. QGIS nie jest wyjątkiem i został w taką funkcję wyposażony – nazywa się „Informacje o obiekcie”. Niestety posiada ono dwie wady: by odczytać wartość innego piksela, należy każdorazowo kliknąć, ponadto pokazywane są informacje jedynie o warstwie aktywnej.

Problemy te rozwiązuje instalacja wtyczki autorstwa Ghislaina Picarda z repozytorium QGIS Contributed o nazwie Value Tool.

Po uaktywnieniu wtyczki (menu Widok – Panele – Value Tool), pod drzewem warstw pojawi się panel informacyjny. Jeśli tylko zaznaczona jest opcja Active – w panelu zobaczymy wartość piksela, na którym aktualnie znajduje się kursor myszki.

Możliwe jest również śledzenie wartości w rastrach wielokanałowych.

Czasem od poznania konkretnych wartości ważniejsze są relacje między kanałami – wówczas warto kliknąć opcję Graph.

Wtyczka posiada również możliwość odczytu wartości pikseli ze wszystkich wczytanych rastrów, nie tylko warstwy aktywnej.

Tagi:
Co to są wtyczki QGIS

QGIS QGIS nam się rozrasta… Jak w prawie każdej aplikacji open source, która jest tworzona przez społeczność, podstawową metodą dodawania nowych funkcjonalności są tzw. wtyczki (od angielskiego plugins). Wtyczki to nic innego jak napisane w odpowiedni sposób fragmenty kodu, które są umieszczone gdzieś w sieci. Można je łatwo pobrać i zainstalować rozszerzając funkcjonalność oprogramowania.

Jest to główna zaleta otwartego oprogramowania. Jednak z czasem, system wtyczek może stać się uciążliwy. Obecnie dla QGIS funkcjonuje ok. 700 wtyczek. Od bardzo prostych do całych zestawów narzędzi powstałych w celu wykonywania bardzo specyficznych analiz. Ich liczba gwałtownie wzrasta, więc użytkownicy mają coraz większe problemy z „ogarnięciem” ich zbioru. Ten wpis ma na celu usystematyzowanie wiedzy na temat wtyczek do QGIS.

QGIS – ogarnianie wtyczek.

Po zainstalowaniu QGIS w pasku menu znajduje się menu rozwijalne „Wtyczki”, z którego mamy możliwość obsługi wtyczek:

Na początku listy znajdują się najważniejsze pole, czyli „Zarządzaj wtyczkami”. Dalej jest konsola Pythona (to dla tych co znają Pythona i QGIS API i chcą obsługiwać QGIS z linii komend) i lista zainstalowanych oraz aktywnych wtyczek. Klikamy „Zarządzaj wtyczkami”:

Widzimy okno instalatora wtyczek. Każda linia to jedna wtyczka. Najważniejsze informacje to nazwa, wersja wtyczki oraz krótka informacja o niej… Skąd te wtyczki? Gdzie one fizycznie się znajdują? Każdy programista, który napisał wtyczkę umieszcza je w swoim repozytorium, czyli miejscu, które QGIS sprawdza za każdym razem przed uruchomieniem instalatora w poszukiwaniu nowości. Wystarczy podświetlić „wybrankę” i kliknąć „Zainstaluj”. W zdecydowanej większości przypadków wtyczka bez problemów się zainstaluje i będzie gotowa do użycia. Czasem trzeba doinstalować dodatkowe biblioteki, o czym instalator nas poinformuje. Jak tego dokonać? W przypadku używania instalatora OSGEO4W bardzo prosto – uruchomić instalator i zaznaczyć brakujące biblioteki do instalacji. W innym przypadku biblioteki trzeba ściągnąć na własną rękę i wrzucić do odpowiedniego katalogu na dysku.

Instalator wtyczek składa się z pięciu zakładek. Polecam odwiedzić zakładkę „Ustawienia”:

Proponuję odznaczyć opcję „Pokazuj wtyczki eksperymentalne” i „Pokazuj wtyczki niezalecane”. Co to oznacza? Poprzez instalatora będzie można zainstalować wtyczki, które uzyskały status oficjalnych i na 99% działają w sposób stabilny. Pozostałe wtyczki mogą powodować błędy w aplikacji i ich instalacja odbywa się już na własne ryzyko użytkownika.

Jeżeli już zainstalowaliśmy wtyczkę to możemy ją w dowolnej chwili dezaktywować lub aktywować na liście zainstalowanych wtyczek.

A teraz najważniejsze i to co sprawia najwięcej problemów…

Skąd brać informację o wtyczkach???

Co zrobić jeżeli nie ma helpa? Jak je wyszukiwać? Skąd mamy pewność jak i czy działają??? Niestety… jedyną informacją na temat tego co dana wtyczka robi jest krótki opis, który można przeczytać w instalatorze. Poza tym niekiedy autorzy publikują helpy do wtyczek na swoich stronach internetowych. Wtedy trzeba szukać w Google (po prostu przekleić nazwę wtyczki do wyszukiwarki, nacisnąć enter i liczyć na szczęście…). Wszyscy (developerzy QGIS także) wiedzą, że jest to mało wydajne, nieporęczne, a w skrajnych przypadkach frustrujące. Aby ułatwić życie użytkownikom twórcy QGIS stworzyli tzw. repozytorium wtyczek, które dostępne jest na stronie https://plugins.qgis.org. Dostępne są tam opisy większości wtyczek co znacznie ułatwia pracę oraz oszczędza czas potrzebny na szukanie jakichkolwiek informacji.

QGIS – Jak dodać kolumny ze współrzędnymi punktów XY?

Co jakiś czas na forach pojawia się pytanie o to czy i w jaki sposób można dodać współrzędne punktów. Otóż w bardzo prosty sposób można tego dokonać w QGIS.

Należy wybrać Wetor -> Narzędzia geometrii -> Eksportuj/dodaj kolumny geometrii

W nowo utworzonym pliku *.shp zostaną dodane dwie kolumny, w których zostaną zapisane współrzędne XY każdego punktu.

Także w oprogramowaniu ArcGIS jest to prosta operacja na danych.

Przedwojenny Lublin w 3D


Przykładem tego jak w interesujący sposób można połączyć najnowszą technologię i archiwalne materiały jest dzieło „Ośrodka Brama Grodzka – Teatr NN” z Lublina. Ośrodek jest samorządową instytucją kultury działającą na rzecz ochrony dziedzictwa kulturowego i edukacji.

To co przygotowali to wirtualna makieta przedwojennego Lublina, po której możemy spacerować ulicami dawnego Podzamcza i Starego Miasta. Właśnie tak wyglądał Lublin przed II wojną światową. Projekt został wykonany na mapie z 1928 r., przy wykorzystaniu rysunków budynków i całych ulic oraz zdjęć pochodzących głównie z okresu 1929 – 1939 r., wykonanych przez inspekcję budowlaną, która prężnie działała w Lublinie w tamtym okresie. Efektem prac zespołu jest makieta, na którą składa się ponad 600 obiektów.
Źródło: mmlublin.pl

Czytaj całość

Tagi:

GIS SUPPORT sp. z o.o.


SZKOLIMY

z QGIS oraz innego otwartego oprogramowania GIS.

zobacz ofertę szkoleń


WSPIERAMY

świadczymy komercyjne wsparcie dla oprogramowania open source GIS w Polsce. Wdrażamy i pomagamy w migracji na otwarte oprogramowanie

dowiedz się więcej


PROGRAMUJEMY

mamy bardzo duże doświadczenie w tworzeniu aplikacji GIS oraz geoportali w oparciu o komponenty open source GIS

dowiedz się więcej