Skip to main content

Kolejne dane uwolnione – pobierz je za pomocą FME!

By 12 sierpnia, 202017 sierpnia, 2020Case studies
numeryczna mapa terenu fme

Jak już wspominaliśmy w poprzednim artykule, Główny Urząd Geodezji i Kartografii został zobligowany do uwolnienia części danych z Państwowego Zasobu Geodezyjnego i Kartograficznego w związku ze zmianami w prawie geodezyjnym i kartograficznym. Dostęp do danych to spore ułatwienie oraz źródło oszczędności dla wielu firm i instytucji, które na co dzień z nich korzystają. To głównie firmy geodezyjne, geoinformatyczne, ale również wszystkie te, które choćby minimalnie wykorzystują dane przestrzenne.

Które dane uwolniono?

Jako jedne z pierwszych uwolnione został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 wielu kliknięć lub pobierania pojedynczych arkuszy, co może być uciążliwe i czasochłonne.

FME idealnym narzędziem do pobierania uwalnianych danych!

Po uwolnieniu przez GUGIK ortofotomap dla terytorium całego kraju, rozpoczęliśmy cykl tworzenia skryptów w FME, 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 ortofotomapy dla wybranego i zdefiniowanego obszaru zainteresowania. O szczegółach tego rozwiązania możecie przeczytać w naszym Case Study.
FME jest doskonałym narzędziem dla takich rozwiązań – wypróbuj skrypt i przekonaj się sam!
Kontynuujemy zatem cykl o wykorzystaniu FME do pobierania uwalnianych danych. Dziś przedstawimy rozwiązanie, które pozwoli pobrać dane bezpośrednio z BDOT10k oraz NMT i NMPT.

BDOT10k z pomocą FME – jakie to proste!

Struktura zapytania z bazy obiektów topograficznych opiera się 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 umożliwiające 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 trzeba pamiętać 380 kodów dla każdego powiatu czy znać wszystkich miast na prawach powiatu. Pełna lista znajduje się na stronie Bazy Teryt – można stamtąd pobrać plik CSV z kompletem kodów. Jest on bardzo pomocny w automatycznym tworzeniu parametrów, bez konieczności ręcznego wpisywania danych.
Struktura CSV z numerami TERYT jest podzielona na 4 kolumny. W naszym skrypcie korzystać będziemy z kolumny “WOJ” oraz “POW”. Dla wartości 1-9, w obu kolumnach, należy dodać “0”, aby połączony numer z dwóch kolumn był czterocyfrowy. Tak połączone dane możemy dodać do nowej komórki, tym samym doprowadzając do dokładnej wartości kodu TERYT dla każdego powiatu. W skrypcie dane zostały zaimportowane jako parametry “Choice with Alias”. W kolejnym etapie zmienną wystarczy dodać do odpowiedniego zapytania z użyciem HTTPCallera. Skrypt pozwala na pobranie danych dla dowolnej liczby powiatów.

Dane ściągnięte! Teraz wystarczy je odpowiednio 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 na dalsze prace z tego typu danymi (ale to już historia na oddzielny artykuł!). Skrypt można pobrać z sekcji “Materiały do pobrania”.

NMT i NMPT – ilościowe pobieranie z pomocą FME

Repozytorium danych NMT i NMPT na Geoportalu wystawione jest w podobny sposób jak dane dotyczące ortofotomap. Powierzchnia kraju została podzielona względem siatki podziału na arkusze w skali 1:5000. Każdy arkusz otrzymał własny 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
Podobnie jak w poprzednim artykule – takie dane możemy ściągnąć automatycznie przy pomocy FME. Najpierw będziemy imitować selekcję w Geoportalu poszczególnych sekcji NMT oraz NMPT, 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, a więc możemy przetwarzać je dalej, korzystając właśnie z FME. Wróćmy jednak do pobierania danych. Dołączony do artykułu skrypt pomoże wybrać dane w podziale na gminy – wystarczy wybrać je z listy. Dane zamieszczone są w postaci cache’ów, pobranych z oficjalnych danych z GUGIK-u. Oczywiście pozostawiliśmy wybór własnego boxa z dowolnego obszaru, ale wydaje nam się, że słownik umożliwi wybór każdego obszaru Polski.

Następnie wybieramy 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. To jeszcze lepiej pokazuje interdyscyplinarność FME.

Skrypt jest dostępny również w sekcji: “Materiały do pobrania”.

Otwarte dane z Geoportalu – co dalej?

Z pewnością nie jest to jeszcze koniec udostępniania otwartych danych w Geoportalu – czekamy na następne odsłony, aby pokazać po raz kolejny, jak ogromnym wsparciem może być FME. To idealne narzędzie do pobierania danych udostępnianych w Internecie i nie tylko!
Czy masz pomysł na wykorzystanie FME do pracy z otwartymi danymi? Jeśli tak: