Bazy danych - GIS Support


Konwersja danych OpenStreetMap do formatów GIS

Po pobraniu części lub całości danych stajemy przed kolejnym problemem: jak ich użyć w środowisku GIS? Ze względu na specyficzny model danych, są one dla większości standardowych narzędzi zupełnie niestrawne. Istnieje szereg konwerterów, z których omówię trzy: wtyczkę QGIS, osm2pgsql oraz Imposm.

[important]Poniżej opiszę sposoby konwersji danych,które są zoptymalizowane pod kątem wizualizacji. Innych narzędzi trzeba będzie użyć w celu zbudowania topologii sieci, albo stworzenia bazy punktów adresowych.[/important]

 1. OpenStreetMap Plugin

Jest to standardowo instalowana wtyczka do QGIS – wystarczy ją włączyć.

Oprócz pobierania danych z API, posiada również funkcję wczytywania plików .osm pozyskanych innymi sposobami. Dużą wadą tego rozwiązania jest ograniczenie liczby dostępnych kolumn atrybutów do 9 predefiniowanych – wobec mnogości tagów jest to o wiele za mało, oraz brak obsługi plików skompresowanych bzip2. Po wczytaniu do widoku QGIS powstaną 3 warstwy – po jednej na obiekty punktowe, liniowe i powierzchniowe. Następnie można je zamienić na pliki Shapefile, przez klik prawym klawiszem myszy i „Zapisz jako…”.

2. Osm2pgsql

Konwerter ten służy do importu danych OSM do bazy PostGIS. Umożliwia import plików .osm, .pbf i .osm.bzip2, a także aktualizację bazy przy pomocy diffów. W systemie Linux można go zainstalować z pakietów (w Ubuntu znajduje się w standardowym repozytorium), bądź skompilować ze źródeł. Dla Windows najnowszą wersję trzeba skompilować samemu, natomiast starsze są dostępne jako jeden z elementów pakietu Hotosm.

Narzędzie obsługuje się z linii komend. Dostępnych jest wiele parametrów, których lista wyświetli się po wykonaniu komendy osm2pgsql -h. Baza danych tworzona przez osm2pgsql składa się z trzech tabel przestrzennych: planet_osm_point, planet_osm_line i planet_osm_polygon. Liczba kolumn, tworzonych na podstawie kluczy tagów, jest zależna od użytkownika – ustala się ją za pomocą pliku .style (można stworzyć swój od zera lub edytować domyślny default.style, w Ubuntu zlokalizowany jest w katalogu /usr/share/osm2pgsql).

Import danych może zostać dokonany w trybie standardowym – wówczas wszystkie dane OSM zostaną załadowane do pamięci RAM, lub w tzw. slim mode. Istotą tego drugiego jest utworzenie tymczasowych, nieprzestrzennych tabel, służących jako magazyn. Umożliwia to przetwarzanie plików większych niż rozmiar RAMu.

Baza utworzona przez osm2pgsql jest wyjątkowo mało przyjazna w korzystaniu, głównie za sprawą ogromnej liczby kolumn. Nowe wersje pozwalają nieco ograniczyć ten problem, korzystając z zapisu wszystkich tagów w jednej kolumnie typu hstore. Schemat podziału danych na trzy tabele jest sztywny – jedyne, na co mamy wpływ, to ilość kolumn. Głównym zadaniem tego narzędzia jest przygotowanie bazy dla wizualizacji za pomocą biblioteki Mapnik.

3. Imposm

Jest to projekt rozwijany przez firmę Omniscale. Istnieją dwie wersje, 2 napisana w języku Python i 3 napisana w Go. W odróżnieniu od osm2pgsql użytkownik ma znacznie większy wpływ na schemat bazy danych: ilość, nazwy, zawartość, typ geometrii tabel są w pełni konfigurowalne. Możliwe jest skupienie wartości tagów z różnych kluczy (np. pokrycie terenu z kluczy landuse, natural, man_made, leisure, waterway) w jednej kolumnie „type“, co bardzo ułatwia wizualizację, a także ograniczenie importowanych wartości – pomocne przy tworzeniu map tematycznych.

Ponadto, konwerter ten umożliwia automatyczne tworzenie tabel o zgeneralizowanej geometrii (za pomocą funkcji ST_Simplify z PostGIS) dla map w małych skalach i widoków łączących różne dane, np. wszystkie kategorie dróg razem.

Imposm również jest obsługiwany z linii komend. Podstawowe polecenia to:

–read – wczytuje dane OSM z pliku (XML albo PBF) i umieszcza w tymczasowej bazie,

-write – zapisuje dane z bazy tymczasowej do PostGIS, zostaną umieszczone w tabelach z przedrostkiem osm-new  w przypadku Imposm2 lub w schemacie „import” dla Imposm3.

–deploy-production-tables – przenosi dane z tabel przejściowych do tabel produkcyjnych.

Imposm 2 nie umożliwia przyrostowej aktualizacji danych, natomiast Imposm 3 – tak.

Tagi: , ,
OpenStreetMap – jak pobrać dane?

Dane OpenStreetMap są dostępne dla każdego do pobrania. Jednak nie każdy wie, że istnieje kilka różnych sposobów na ich pozyskanie z sieci. Każdy z nich ma swój zakres zastosowania, głównie w zależności od tego, jak dużo danych potrzebujemy oraz pożądanego formatu: oryginalny XML, binarny PBF, czy też dane przetworzone do postaci Shapefile.

1. API

Jest to najważniejsza usługa głównego serwera bazy danych, umożliwiająca zarówno odczyt jak i zapis. Jego głównym zadaniem jest dostarczanie małych porcji danych w celu ich edycji i wysłania zmian na serwer. Jest zatem usługą najsilniej obciążoną i obowiązują ją ostre limity: największy dopuszczalny obszar może mieć 0,25 stopnia kwadratowego lub 5 milionów elementów (nodes, ways i relations), w zależności od tego, co jest mniejsze. API nadaje się więc do doraźnego pobierania danych dla najmniejszych obszarów – najwyżej jednej gminy, a w przypadku miast z dużą ilością szczegółów – nawet osiedla.

Z API możemy skorzystać na następujące sposoby:

  1. poprzez zakładkę „Export” na stronie www.openstreetmap.org, wybierając opcję „OpenStreetMap XML”,
  2. wykorzystując wtyczkę OpenStreetMap do QGIS i podając zakres w układzie WGS84 i formacie stopnie.dziesiąte stopnia,
  3. poprzez bezpośrednie wysłanie zapytania do serwera (np. używając narzędzia wget) w następującej składni
    http://api.openstreetmap.org/api/0.6/map?bbox=<left>,<bottom>,<right>,<top>

BBOX podajemy w następującej kolejności: zachodnia, południowa, wschodnia, północna granica  obszaru i formacie stopnie.dziesiąte stopnia. Wynik otrzymamy zawsze w postaci nieskompresowanego XML.

 2. Overpass API

Ta usługa korzysta z kopii bazy danych, udostępnionej tylko do odczytu. Overpass API udostępnia własny język zapytań, który umożliwia filtrowanie danych według zadanych kryteriów atrybutowych lub przestrzennych. Z tego API można skorzystać za pośrednictwem serwisu http://overpass-turbo.eu lub wtyczki do QGIS o nazwie „QuickOSM”.

3. Geofabrik.de (planet extracts)

Niemiecka firma Geofabrik udostępnia za darmo do ściągnięcia większe fragmenty danych OSM. Dostępne są w trzech postaciach: binarnym formacie PBF, XML spakowanego kompresorem bzip2, albo też przekonwertowanej do formatu Shapefile. Dostępne są pakiety dla krajów, kontynentów i pojedynczych stanów USA. Ale uwaga – dane nie są precyzyjnie wymaskowane wzdłuż granic, zdarzają sie drobne fragmenty z krajów sąsiednich. Odpowiednie dane o granicach państwowych zwykle znajdują się w OSM, więc wystarczy po ściągnięciu i konwersji użyć odpowiedniego zapytania przestrzennego, by tę wadę usunąć.

Dane w formacie SHP, w odróżnieniu od oryginalnego XML, są gotowe do użycia w środowisku GIS. Zostały one podzielone na osobne warstwy tematyczne , oraz co bardzo ważne – najistotniejsze atrybuty skupione zostały w jednej kolumnie „fclass”. Dzięki temu można użyć ich w programach nie posiadających opcji wizualizacji opartej na regułach (rule-based rendering), koniecznej do wykorzystania wielu kolumn. Do tych danych dostępna jest szczegółowa dokumentacja w języku niemieckim i angielskim.

Adres do strony pobierania: http://download.geofabrik.de/osm/

4. Planet.osm

Jest to zrzut całej zawartości bazy OSM. Można go pobrać z http://planet.openstreetmap.org, aktualnie zajmuje 36 GB w formacie binarnym. Import tak dużej bazy wymaga już mocnej maszyny. Aby ułatwić aktualizację posiadanej bazy o takich rozmiarach, publikowane są tzw. diffy – zestawy zmian. Dostępne są zestawy generowane co minutę, godzinę, dzień i tydzień. Ale uwaga – nie wszystkie konwertery obsługują aktualizację tą metodą.

Tagi: , ,
O co chodzi w OpenStreetMap?

Konieczność posiadania podkładu mapowego jest często sporym problemem w działaniach GIS-owych, szczególnie jeśli niezbędne są prawa do publikacji. Ceny takich podkładów, szczególnie wektorowych, mogą być barierą nie do przeskoczenia dla niskobudżetowych projektów. Skoro mamy już wolne oprogramowanie, dlaczego miałoby nie być wolnych map? Przy obecnym stanie techniki zbieranie danych przestało wszak wymagać specjalnych umiejętności i drogiego sprzętu. Dlatego możliwe stało się powstanie takich projektów, jak OpenStreetMap. Poniżej postaram się opisać najważniejsze zasady funkcjonowania i korzystania z zasobów OSM.

Czytaj całość

Tagi: , ,
Dlaczego warto zaprzyjaźnić się ze słoniem?

Kto w pionierskich czasach powszechnego dostępu do Internetu w Polsce próbował tworzyć własną stronę internetową (na przykład w kultowym edytorze Pajączek), pamięta zapewne, że każdą z podstron zapisywało się w oddzielnym pliku .html. Na prostej stronie nie stanowiło to specjalnego problemu, ale jak trzeba było dokonać aktualizacji większego serwisu i żadnego takiego pliku nie pominąć – było już gorzej. Ciężko również wyobrazić sobie, jak w takim systemie mogłyby funkcjonować rzeczy tak dziś oczywiste: system komentarzy czy forum.

Współcześnie sprawa ma się zupełnie inaczej: kod html jest generowany dynamicznie, według szablonu, z jednego źródła, któremu na imię baza danych.
Czytaj całość

Tagi: ,

Szkolenia GIS i QGIS

Szkolenia podstawowe i dedykowane w formie zdalnej oraz stacjjonarnej

Zobacz ofertę szkoleń