|2020-08-19|
GIS, Mapy, Software
Kolejne dane uwolnione. Jak je pobrać z FME?
Choć od 31 lipca dane BDOT10k, NMT, NMPT i ALS są dostępne za darmo na Geoportalu, ich pobieranie może okazać się czasochłonne i kłopotliwe. Jak problem ten rozwiązuje oprogramowanie FME, wyjaśniają specjaliści z firmy Globema.
Jak już wspominaliśmy w poprzednim artykule, w związku ze zmianami w Prawie geodezyjnym i kartograficznym Główny Urząd Geodezji i Kartografii został zobligowany do uwolnienia części danych z Państwowego Zasobu Geodezyjnego i Kartograficznego. Dostęp do nich to ułatwienie i spora oszczędność dla wielu instytucji i firm: głównie z branży geodezyjnej i geoinformatycznej. Kontynuujemy zatem cykl o wykorzystaniu FME do pobierania uwalnianych danych – dziś przedstawimy rozwiązanie, które pozwoli na pobranie danych bezpośrednio z BDOT10k oraz NMT i NMPT.
Jakie dane uwolniono?
Na „pierwszy ogień” poszły ortofotomapy. Pod koniec lipca udostępniono:
- dane z Bazy Danych Obiektów Topograficznych (BDOT10k),
- numeryczne modele terenu (NMT) oraz numeryczne modele pokrycia terenu (NMPT),
- chmury punktów z lotniczego skanowania laserowego
Wszystkie te dane dostępne są na Geoportalu. Niestety, w niektórych przypadkach pobranie danych dla większego obszaru wymaga sporej liczby kliknięć lub pobierania pojedynczych arkuszy. Bywa to uciążliwe i czasochłonne.
FME idealnym narzędziem do pobierania uwalnianych danych
Po uwolnieniu przez GUGIK ortofotomap dla całego terytorium kraju, stworzyliśmy w FME skrypty, które umożliwiają pobieranie tych danych bezpośrednio z Geoportalu. Dzięki nim, bazując na API serwisu, można m.in. pobrać dowolną liczbę arkuszy ortofotomap dla wybranego i zdefiniowanego obszaru. O szczegółach tego rozwiązania możecie przeczytać w naszym poprzednim case study. Skrypt do pobrania znajduje się tutaj.
Jak wykorzystać FME do pobierania uwalnianych danych? Oto nasz pomysł na pobranie danych bezpośrednio z BDOT10k oraz NMT i NMPT.
BDOT10k z pomocą FME – to proste!
Struktura zapytania z bazy obiektów topograficznych bazuje na jednostkach podziału terytorialnego – powiatach. Dane dla każdego z powiatów przygotowane są w oddzielnej paczce. Warto wspomnieć, że wybór danego powiatu nie opiera się na jego nazwie, ale na kodzie TERYT – każdy z powiatów ma unikatowy kod. Przykładowe zapytanie, które umożliwi pobranie danych, wygląda następująco:
https://integracja.gugik.gov.pl/PRG/pobierz.php?bdot10k&teryt=1405
Łatwo zauważyć, że jedyną zmienną w zapytaniu będzie wspomniany numer TERYT. Na szczęście nie musisz pamiętać 380 kodów dla każdego powiatu lub miast na prawach powiatu. Pełna lista znajduje się na stronie Bazy Teryt, skąd można pobrać plik CSV z kompletem wszystkich kodów – pomocny w automatycznym tworzeniu parametrów, bez konieczności ręcznego wpisywania danych.
Struktura CSV z numerami TERYT podzielona jest na 4 kolumny. W naszym skrypcie korzystać będziemy z kolumn „WOJ.” oraz „POW”. Dla wartości 1-9, w obu kolumnach, należy dodać “0”, aby połączony numer był czterocyfrowy. Tak połączone dane możemy dodać do nowej komórki, tym samym tworząc dokładną wartość kodu TERYT dla każdego powiatu. W skrypcie dane zostały zaimportowane jako parametry „Choice with Alias”. Na dalszym etapie zmienną wystarczy dodać do odpowiedniego zapytania z użyciem HTTPCallera. Skrypt pozwala pobrać dane dla dowolnej liczby powiatów.
Dane ściągnięte! Teraz wystarczy odpowiednio je pogrupować według klasyfikacji BDOT10k. Skrypt ma możliwość automatycznego wyświetlenia tylko interesujących nas klas, jak również pełnej klasyfikacji obiektów. Konfiguracja jest dowolna - sami decydujemy, z jakich danych chcemy skorzystać. Przy użyciu opcji „WSZYSTKIE OBIEKTY” nie należy zaznaczać innych. W przeciwnym wypadku dane się zduplikują.
Końcowy fragment skryptu – czyli „serce” selekcji danych BDOT10k do poziomu 1.
Czas na analizę danych z BDOT10k dla dowolnego obszaru kraju. Poza możliwością szybkiej i automatycznej selekcji, FME pozwala również na dalsze prace z tego typu danymi (ale to już historia na następny artykuł).
Skrypt można pobrać stąd.
NMT i NMPT – ilościowe pobieranie za pomocą FME
Repozytorium danych NMT oraz NMPT na Geoportalu wystawione jest w podobny sposób jak dane dotyczące ortofotomap. Powierzchnia całego kraju została podzielona względem siatki podziału na arkusze w skali 1:5000. Każdy arkusz ma odnośnik URL do ściągnięcia danych wraz z opisem technicznym. URL ma stały początek, a reszta zapytania zależy od godła np.:
https://opendata.geoportal.gov.pl/NumDaneWys/NMT/3960/3960_143308_N-34-127-D-c-2-3.asc
Najpierw będziemy imitować selekcję poszczególnych sekcji NMT oraz NMPT w Geoportalu, a później wykorzystamy pozyskany link URL.
Do dyspozycji mamy dwa formaty pobrania danych:
- ARC/INFO ASCII GRID
- ASCII XYZ GRID
Oba formaty są wspierane przez FME – będziemy zatem dalej je przetwarzać za pomocą FME.
Wróćmy jednak do pobierania danych – linkowany powyżej skrypt ma możliwość wyboru danych w podziale na gminy, które wystarczy wybrać z listy. Dane zamieszczone są w postaci cache’ów, pobranych z oficjalnych danych GUGIK-u. Oczywiście pozostawiliśmy wybór własnego BOX-a dowolnego obszaru, ale wydaje nam się, że słownik umożliwi wybór każdego obszaru Polski.
Następnie wybierane są arkusze, które mają imitować zapytanie do Geoportalu. W dalszej części odbywa się już standardowe pobranie danych w postaci linku URL, opisu technicznego oraz zapisu danych.
Na koniec skrypt automatycznie zaczytuje dane w formacie ARCINFO ASCII GRID z możliwością wykonywania dalszych analiz.
Otwarte dane z Geoportalu – co dalej?
Z pewnością Geoportal wkrótce udostępni kolejne porcje otwartych danych – niecierpliwie na nie czekamy i po raz kolejny chętnie pokażemy, jakim wsparciem może być FME. A może także masz pomysł na wykorzystanie FME do pracy z otwartymi danymi?
Źródło: Globema
|