Blog GIS Support


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: ,
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:
QGIS Browser

Lada dzień ma oficjalnie pojawić się QuantumGIS 1.7.0, a w internecie można już znaleźć developerską wersję oznaczoną 1.8.0 Testując tą wersję zauważyłem, że zespół rozwojowy QGIS’a szykuje zupełną nowością… QGIS Browser

Jak sama nazwa wskazuje będzie to przeglądarka danych GIS. Dzięki niej w szybki i prosty sposób będziemy mogli przeglądać wszystkie pliki danych przestrzennych w systemie, jak również wszystkie WMS skonfigurowane w QGIS.
Czytaj całość

Tagi: ,
QGIS 1.7.0 Konwersja plików wektorowych między formatami. (SHP, KML, GPX i inne)

QGIS Dawno, dawno temu pisałem o konwersji pomiędzy KML i SHP w QGIS. Jednak były to czasy QGIS 1.3.0 – sporo od tamtego czasu się zmieniło. Przede wszystkim jest znacznie prościej. Czytelnicy najczęściej pytają i szukają informacji o konwersji między trzema popularnymi formatami: Shapefile, KML i GPX. Konwersje we wszystkie strony można wykonać wedle poniższej instrukcji

Konwersje pomiędzy formatami w QGIS.

1. Wczytujemy dowolny plik wektorowy obsługiwany przez QGIS do projektu, klikamy prawym przyciskiem myszy na nazwie warstwy  i wybieramy „Zapisz jako…”

Konwersja KML do SHP

2. Następnie pokazuje się okno dialogowe:

kml2shp2

Z listy rozwijalnej Format, wybieramy interesujący nas format, wybieramy nazwę i miejsce na dysku, kodowanie (więcej o kodowaniu tutaj Najlepiej zostawić UTF-8) oraz układ współrzędnych (w przypadku pliku GPX i KML należy wybrać układ WGS 84 – EPSG:4326. Co prawda nawet jak wybierzemy coś innego to QGIS zapisze nam to w WGS84, ale nie testowałem tego za bardzo, więc lepiej nie ryzykować). SHAPEFILE możemy zapisać w jakim układzie potrzebujemy… Pola w ramce opcje nie są obowiązkowe i trzeba je wypełnić tylko  przypadku pracy z plikami SpatiaLite

3. Klikamy OK. To tyle.

GPS + QGIS. Na przykładzie GARMIN 60CSX oraz QGIS [v. 1.7.0]

Skąd pomysł na ten artykuł? Odbiorniki GPS są coraz powszechniejsze. Na szlaku coraz częściej spotykam ludzi, którzy mają odbiorniki na ramieniu lub przytwierdzone do kierownicy roweru. Jest to fajny gadżet, który pozwala odnaleźć się w terenie i z którym trudniej zgubić się w lesie.

Dodatkowo można nim zbierać dane geograficzne: punkty i linie. Jaka jest dokładność takich danych? Do pomiarów geodezyjnych takie odbiorniki się nie przydadzą, ale do  innych zastosowań  – owszem. Dość powiedzieć, że w większości na podstawie danych z tych urządzeń powstał OpenStreetMap. Za pomocą zwykłego turystycznego odbiornika zbierałem kiedyś dane o sieci dróg w gminie (innych danych nie było). Po prostu jeździłem samochodem po wszystkich drogach z włączonym odbiornikiem. Zebrane w ten sposób dane znakomicie nadawały się do zastosowań kartograficznych…

Dużo ludzi ma problemy z transferem danych z odbiornika do komputera i odwrotnie. Mam nadzieję, że ten wpis pomoże.

Używam Garmina 60CSX. Model stary, ale jary. Od dłuższego czasu na rynku funkcjonuje jego następca (seria Garmin GPSmap 62), ale jeszcze nie miałem okazji się nim bawić. Garminy są bardzo popularne na rynku outdoorowych odbiorników. Dlaczego? To temat na osobny wpis, ale na pewno ilość darmowych map do pobrania z sieci, możliwość tworzenia własnych map oraz spora grupa aktywnych użytkowników ma w tym swój udział. Nie mam telefonu, tabletu ani innego urządzenia z wbudowanym GPS, więc o nich w ogóle nie będę pisał. Nie wiem jaka jest dokładność ich lokalizacji, jakie są możliwości zbierania śladu, komunikacji z komputerem itp… Do rzeczy.

Zbieranie danych

Punkty, czyli waypointy.

Tu nie ma dużej filozofii. Będąc w terenie wciskamy przycisk na obudowie: „Mark” i punkt zapisuje się w pamięci. Możemy nadać mu nazwę, przypisać ikonę, a nawet dokonać modyfikacji we współrzędnych i w wysokości. Większość modeli obsługuje waypointy w ten sam sposób. Tak zapisany punkt wędruje do pamięci wewnętrznej.

Tracki, czyli linie

Tu już sprawa nie jest taka prosta, bowiem są dwie możliwości. Po wejściu w menu główne (przycisnąć 2x menu), w górnym lewym rogu pokaże się ikona „Tracks” (lub jej polskie tłumaczenie w zależności od wersji oprogramowania). Po podświetleniu ikony i po naciśnięciu „Enter” przechodzimy do menu „Tracks”. Pierwszy obrazek z trójki po lewej. Jeżeli uaktywnimy „on” odbiornik zaczyna rejestrować ślad i zapisywać go w swojej wewnętrznej pamięci. Od tej pory jest to ślad aktywny Pasek pokazuje ile jeszcze tej pamięci pozostało. W moim odbiorniku pamięci wystarcza na 10 000 punktów. Zakładając punktowanie co 15 sekund wychodzi kilka dni marszu. I tu jest problem! Co zrobić, kiedy miejsce zaczyna się kończyć lub zbieramy ślad co sekundę? Można zapisać ślad aktywny (opcja „save”). Wtedy nadajemy śladowi nazwę i wędruje on do wewnętrznej pamięci. Przychodzimy do domu, zgrywamy ślad i… tragedia. Ślad jest totalnie zgeneralizowany. Z tylko sobie wiadomych przyczyn odbiornik zapisując ślad zmniejsza jego objętość do 500 punktów (czyli dwudziestokrotnie). Z tym już nic nie da się zrobić.

Ale! Jest rozwiązanie. W opcjach zapisu klikamy „Data card setup” i dalej „Log track to data card”. Dzięki temu ślad będzie zapisywany dwutorowo – w pamięci wewnętrznej i na karcie pamięci. W tym wypadku ogranicza nas tylko pojemność pamięci na karcie. Nawet jeżeli GPS będzie wskazywał, że ślad zajmuje już 99% wydzielonej pamięci wewnętrznej to na karcie ślad będzie się dalej zapisywał. Jak odczytać tak zapisany ślad? Wystarczy podłączyć odbiornik poprzez kabel USB do komputera i wybrać menu-> setup -> interface -> USB mass storage. Garmin zacznie zachowywać się jak zwykła pamięć zewnętrzna (np. pendrive) i w przypadku systemu Windows będzie można do niego dotrzeć poprzez Mój komputer -> dysk (D,E, F – zależy od konfiguracji). W katalogu Garmin znajdować się będą „czyste” pliki GPX, które można otworzyć w każdym obsługującym je oprogramowaniu (choćby Google Earth). Będą to pojedyncze pliki o nazwie powiązanej z datą. Plik z dzisiaj będzie się nazywał 20110518.gpx. W pliku znajdują się wszystkie ślady zarejestrowane danego dnia. Bez ograniczeń wielkości pliku, bez generalizacji.

Routes, czyli nie wiadomo co.

Nie przypominam sobie, żebym kiedykolwiek używał tego typu danych. Teoretycznie za ich pomocą można wyznaczyć sobie trasę… ale w praktyce mają wąskie zastosowanie i nie znam nikogo, kto by ich używał.

Transfer danych z odbiornika do QGIS

Waypointy.

Skoro już zapisaliśmy interesujące punkty za pomocą waypointów to ściągnijmy je teraz na dysk i zróbmy z nich coś pożytecznego. Zakładam, że QGIS jest włączony. Do wersji 1.7.0 wtyczka „Narzędzie GPS” jest dodawana automatycznie. Wystarczy więc podłączyć odbiornik do komputera poprzez kabel usb, wejść we wtyczki -> GPS -> narzędzie GPS -> przejść do zakładki „Pobierz z GPS” i wypełnić podobnie jak na rysunku poniżej.

Po kliknięciu OK w odpowiednim miejscu na dysku utworzy się plik GPX a do projektu zostaną wczytane wszystkie punkty. Korzystając z możliwości QGIS można przekonwertować je do dowolnego formatu (np. SHP) i wykorzystać do pożądanych celów. Tabela atrybutów powstałej warstwy zawierać będzie wszelkie dane, jakie przypisane były punktowi w pamięci wewnętrznej.

Tracki

W przypadku śladu aktywnego i zapisanego w pamięci wewnętrznej odbiornika, należy postąpić podobnie jak w przypadku waypointów. Jedyną różnicą jest wybór innego typu obiektu (w polskim tłumaczeniu będą to ślady). Jeżeli zapisywaliśmy ślady na karcie pamięci. Podłączamy odbiornik w trybie pamięci masowej i pobieramy gotowe pliki GPX. Otwieramy je w QGIS i działamy.

Transfer z QGIS do odbiornika.

Waypointy

1) Tworzymy plik GPX.

Jeżeli mamy gotowy (np. dostaliśmy e-mailem od znajomego) – przechodzimy do punktu 2.

Możemy go utworzyć konwertując SHP (lub jakikolwiek inny) klikając prawym klawiszem na nazwie pliku wczytanego do QGIS i wybierając „zapisz jako…” Wybieramy GPX i zapisujemy. Możemy także stworzyć pusty plik GPX i przekopiować do niego punkty z pliku SHP. Sposobów jest wiele.

2) Ponieważ wtyczka GPS widzi tylko pliki wczytane do projektu przez nią samą, najlepiej otworzyć nowy projekt QGIS i wczytać utworzony przed chwilą plik ponownie, ale za pomocą wtyczki GPS. Wybieramy zakładkę „Wczytaj plik GPX”, zaznaczmy, że interesują nas waypointy (punkty nawigacyjne) i klikamy OK.

(uwaga!!! Aby wysłać plik GPX do odbiornika plik musi być wczytany również poprzez wtyczkę – zakładka „Wczytaj plik GPX”. Nie wiem czemu wtyczka nie widzi plików GPX wczytanych tradycyjnie poprzez „wczytaj warstwę wektorową”.)

3) Plik zostanie wczytany do QGIS. Można go obejrzeć w oknie mapy. Następnie wybieramy zakładkę: „Prześlij do GPS”: Jeżeli przed chwilą wczytana warstwa jest jedyną, która aktualnie jest w projekcie – zostanie automatycznie załadowana do wysłania. Klikamy OK.

Wysłane. Teraz w odbiorniku mamy waypointy.

Tracki (ślady)

Tu sytuacja wygląda bardzo podobnie. Wczytujemy plik jako ślad i wysyłamy do odbiornika. Należy pamiętać, że ślad zostanie zapisany w pamięci wewnętrznej . Zobaczymy go na liście zapisanych śladów. Poniższe ćwiczenie pokazuje jak to wykonać krok po kroku.

Ćwiczenie:

1. Za pomocą QGIS tworzymy nową warstwę GPX

2. Edytujemy track

3. Wysyłamy go do odbiornika

4. Wyświetlamy ślad w odbiorniku.

Do dzieła

1. Wtyczki -> GPS -> Utwórz nową warstwę GPX. Wybieramy nazwę i miejsce zapisu na dysku. Ja wybrałem geostrona.gpx na pulpicie

2. Edytujemy track. Mając zaznaczoną warstwę geostrona, tracks, klikamy na niebieski ołówek i „edytuj linię”, dwie ikonki dalej na prawo. Możemy zdigitalizować jakąś drogę z zeskanowanej mapy… (mapa musi być w układzie wgs84). Ja postanowiłem się pobawić…

Plik, który jest wpisany do projektu i ma nazwę „tracks” to zapis mojej wycieczki rowerowej. Wczytałem go do QGIS aby mieć odniesienie i automatycznie ustawić okno mapy na interesujący mnie region. Utworzyłam dwa ślady (dlatego na obrazku zamieściłem tabelę atrybutów). Jest to o tyle istotne, że obydwa zostaną wyeksportowane i zapisane jako osobne ślady w odbiorniku.

3. Wysyłamy do Garmina

4. Ślady wyeksportowane, zapisane i wyświetlone na mapie.

Podsumowanie

Ja więcej od odbiornika nie potrzebuje. Oczywiście są specyficzne potrzeby, których ten wpis nie zawiera. Na potrzeby zawodów sportowych (np. paralotniarskich) potrzebny jest aktywny ślad. Tak zwany G-record, który daje gwarancję, że nikt nie majstrował przy pliku GPX i pochodzi on prosto z urządzenia. Ale paralotniarze (i inni sportowcy) mają swój soft, który im wszytko z odbiornika pobiera i sprawdza co trzeba.

Zrzuty wykonane za pomocą programu Garmin xImage.

GIS SUPPORT sp. z o.o.


SZKOLIMY

z QGIS oraz innego otwartego oprogramowania GIS.

zobacz ofertę szkoleń