Skip to main content

Wykorzystaj FME do pracy z otwartymi danymi – Case Study

By 8 lipca, 2020Case studies
otwarte dane FME

Nowelizacja Prawa geodezyjnego i kartograficznego oraz wejście w życie ustawy „Tarcza antykryzysowa 4.0.” sprawiły, że mamy obecnie do dyspozycji więcej otwartych danych.

Na co dzień często korzystamy z różnych danych statystycznych, geograficznych itd. Pochodzą one z wielu źródeł i są zapisane w różnych formatach, obsługiwanych jedynie przez wybrane systemy. Korzystanie z nich nastręcza niekiedy problemów – czasami konieczne jest złożenie wniosku o ich udostępnienie. Bywa, że nie obejdzie się bez opłaty dla odpowiedniej instytucji. Są to zazwyczaj dane specjalistyczne, wykorzystywane do analiz geoprzestrzennych lub opracowywania produktów GISowych. Na szczęście spora część danych udostępniana jest na otwartych darmowych licencjach.  

Skąd pobierać otwarte dane?

W Polsce część danych od dawna jest udostępniana bezpłatnie. Pochodzą one m.in. od samorządów (województw, powiatów, gmin), służby geodezyjnej i kartograficznej czy Głównego Urzędu Statystycznego. Ilościowy przyrost otwartych danych zawdzięczamy wspomnianej już wyżej nowelizacji prawa, służącemu m.in. przeciwdziałaniu i zwalczaniu COVID-19, innych chorób zakaźnych oraz wywołanych nimi sytuacji kryzysowych. Dzięki m.in. Tarczy Antykryzysowej nieodpłatnie udostępniane są ortofotomapy oraz punkty podstawowej osnowy geodezyjnej. W najbliższym czasie uwolnione zostaną również takie dane jak:

  • Dane topograficzne z Bazy Danych Obiektów Topograficznych (BDOT10k)
  • Dane pomiarowe LIDAR
  • Numeryczny Model Terenu

W jaki sposób pobierać otwarte dane?

Większość serwisów z otwartymi danymi umożliwia ich pobranie w sposób klasyczny – jako wybór zbioru danych oraz obszaru zainteresowania, a następnie pobranie paczki, gdzie dane mogą być zapisane w różnych formatach. Jednak coraz częściej wykorzystuje się API tych serwisów.
Oba podejścia mają swoje wady i zalety. Z pierwszej metody warto skorzystać, jeżeli dane pobierane są jednorazowo i dla określonego obszaru, a także jeśli mamy możliwość ich archiwizowania. Podejście wykorzystujące API jest bardziej uniwersalne – w jednym zapytaniu możemy pobrać dane dla kilku różnych obszarów, bez konieczności ich trwałego zapisywania na naszych komputerach.

Jakie programy umożliwiają pracę z otwartymi danymi?

Nie ma znaczenia, z którego serwisu otwartych danych skorzystamy, w jaki sposób je pobierzemy, w jakim formacie są one zapisane. Dzięki wykorzystaniu platformy FME możliwe jest zarówno wczytanie danych zapisanych lokalnie, w dowolnym formacie, jak również bezpośrednie pobieranie danych z serwisów, właśnie w oparciu o udostępniane API. W dalszej części artykułu przedstawimy, w jaki sposób wykorzystać FME do bezpośredniego pobierania otwartych danych – ortofotomap oraz danych ewidencyjnych.

Ortofotomapa – jak pobrać automatycznie większą partię danych

24 czerwca Główny Urząd Geodezji i Kartografii poinformował, że wszyscy zainteresowani mogą nieodpłatnie oraz bez limitów pobierać dane z podstawowej osnowy geodezyjnej oraz ortofotomapy. Ortofotomapa to kartograficzne opracowanie wybranego obszaru, wykonywane przy użyciu zdjęć przetworzonych w określonym układzie współrzędnych, pozyskanych na przykład ze zdjęć lotniczych lub drona.
Skorzystajmy zatem z danych rastrowych. Po wejściu na Geoportal i po wyborze warstw “Dane do pobrania” oraz “Ortofotomapa” – mamy dwie możliwości selekcji danych: według kryterium aktualności oraz kryterium rozdzielczości przestrzennej piksela. Zobaczymy wtedy skorowidz w podziale na sekcje map z odpowiednim godłem. Podczas selekcji mamy możliwość obejrzenia wszystkich dostępnych ortofotomap z danego punktu, a w zasadzie “bbox-a” wyszukującego dane:
Każda część danych ma szczegółowy opis techniczny danego zobrazowania oraz najważniejszą funkcjonalność, czyli link do pobrania danych. Początek zapytania URL jest stały, natomiast dalsze odwołanie się do konkretnego repozytorium jest zmienne, zależne m.in godła, daty rejestracji itp.:
O ile początek i godło mapy nie powinny stwarzać problemu, o tyle wewnętrzna składnia reszty repozytorium sprawia, że dokładny link do pobrania wyświetla się dopiero po wyselekcjonowaniu poszczególnych zobrazowań. Na szczęście zapytanie, które pozwala na zebranie wszystkich danych w jedno okienko, jest na wyciągnięcie ręki. Przy analizie sekcji “Network” w systemie kontroli źródeł (przycisk F12 w przeglądarce), możemy odnaleźć “zapytanie-request” odnoszące się do GetFeatureInfo serwisu wystawionego na PZGIK. Tutaj znajduje się przykład.
Główny trzon zapytania tkwi w odpowiednim odwołaniu do warstw (skorowidz arkuszy map) oraz zapytania przestrzennego – “bbox-a”. Może nam się wydawać, że przy selekcji arkusza na Geoportalu zaznaczamy punkt, jednak algorytm przerabia go na prostokąt lub kwadrat, względem którego wykonuje zapytanie przestrzenne. W efekcie otrzymujemy okno z drzewkiem odpowiedzi.
Powyższa funkcjonalność może być zaimplementowana do platformy FME. Dzięki temu możemy przyspieszyć automatyczne ściąganie interesujących nas danych Polski według konkretnych parametrów, nie tylko pod względem aktualności i rozdzielczości przestrzennej.
W przygotowanym do tego celu skrypcie zostały przygotowane następujące opcje:

  • Wybór własnego “bbox-a”, czyli zapytania przestrzennego, który należy do współrzędnych prostokąta/kwadratu zapytania w układzie 1992 (EPSG:2180) w formacie – “y_min,x_min,y-max,x_max”. Jeśli wartość pozostanie pusta, skrypt odwoła się do danych przykładowych z poniższego opisu.
  • Wykorzystanie przykładowej listy zapytań przestrzennych, które zostały wygenerowane z siatki podziału arkuszów NMT/Ortofotomap, a w zasadzie centroid poszczególnych sekcji.
  • Skrypt daje jednoczesną możliwość wyboru roku/aktualności ortofotomapy oraz rozdzielczości.
W przygotowanym do tego celu skrypcie zostały przygotowane następujące opcje:
Sercem skryptu są dwa zapytania HTTPCaller, które w pierwszym kroku odwołują się do selekcji imitującej zapytanie w Geoportalu, a w drugim do bezpośredniego pobrania danych, wykorzystując link z repozytorium opendata.geoportal.gov.pl.

Dodatkowym aspektem jest odpowiednie złożenie zapytania z wykorzystaniem StringConcatenatora: 

Po otrzymaniu wyniku należy jeszcze odpowiednio wyszukać interesujące nas atrybuty z wykorzystaniem reguł wyrażeń regularnych oraz wyczyszczeniem atrybutów. Do tego celu StringSearcher oraz AttributeCreator z AttributeTrimmer będą najlepsze.
Na koniec wyselekcjonowane ortofotomapy są zapisywane w miejscu pliku .fmw w formacie TIFF, wraz z dokładnym opisem atrybutów, możliwych do znalezienia na geoportalu. Dane opisowe zachowywane są w formacie CSV.
Skrypt otwiera sporo możliwości. Po jakimś czasie używania można zauważyć tam na przykład łatwość implementacji dodatkowych parametrów, jak konkretne godło, rodzaj kompozycji barwnej czy dokładny numer zgłoszonej pracy. Równie łatwo można z “boxa” ściągnąć całość archiwalnych, dostępnych danych bez filtracji. Wystarczy usunąć “Tester” odpowiedzialny za parametryzację lub zmodyfikować kod. Polecam przetestowanie, czy podobny sposób nada się do ściągnięcia innych dostępnych danych z Geoportalu, np. BDOT10k.

Skrypt FME wraz z danymi dostępny jest w sekcji “Do pobrania”

Ewidencja Gruntów i Budynków – czy już teraz można automatycznie pobierać dane ewidencyjne? 

W chwili, kiedy piszemy ten artykuł, nie ma jeszcze w pełni otwartego zbioru danych o ewidencji gruntów i budynków, opartego na podobnych zasadach co pobieranie ortofotomap. Nie oznacza to, że są niedostępne. W tej części artykułu przedstawiamy możliwość integracji FME z:

Wszystkie wymienione serwisy/usługi posiadają jakąś otwartą formę udostępniania oraz pobierania danych. Oczywiście mają pewne ograniczenia – w przypadku ULDK tzw. harvesting jest niedozwolony Po pewnej liczbie wysłanych zapytań z jednego IP usługa zostanie zablokowana na kilkanaście godzin. Ale kilka tysięcy zapytań nie stanowi problemu. Tak samo jest w przypadku funkcji “GetFeatureInfo“ dla KIEG-u. KIEG oraz KIUT pozwala m.in. na pobranie “kafelka” danych z ewidencją, gdzie mamy do wyboru kilkanaście warstw:
ULDK to serwis z dokładną lokalizacją działek ewidencyjnych względem kilku kryteriów:

  • Dokładny identyfikator działki
  • Numer działki oraz obrębu
  • Współrzędne

Wynikiem zapytania może być geometria w formacie WKB lub WKT oraz atrybuty opisowe:

Łatwo można użyć takiego zapytania, wykorzystując HTTPCaller-a do pobrania interesujących nas danych.
Na skorzystanie z tych serwisów pozwala także platforma FME. W przygotowanym skrypcie znajduje się scenariusz, gdzie pobieramy z pomocą WMS-u “kafelek” danych z ewidencją gruntów i budynków. Następnie staramy się wyekstrahować geometrie działek z pomocą map algebry. Na koniec centroidy powstałych działek posłużą nam do odpytania serwisu ULDK. Dzięki temu dostaniemy dokładne geometrie działek wraz z atrybutami opisowymi, takimi jak TERYT, numer działki czy dokładna lokalizacja względem podziału administracyjnego.
Badany obszar najpierw jest wyodrębniony z danych Państwowego Rejestru Granic oraz tymczasowo zapisany w miejscu lokalizacji skryptu.
Tego typu dane metodami map algebry można podzielić na budynki oraz działki. Dane nie będą w pełni poprawne, ale mogą być doskonałym wsadem dla serwisu ULDK. Wynik części skryptu “CZY MOŻNA COŚ Z TEGO WYKRZESAĆ – MAPA ALGEBRA” wraz centroidami wygląda następująco:
Ostatecznie współrzędne centroid trafiają do ULDK przy użyciu HTTPCaller-a:
Odpowiedź od strony serwisu należy jeszcze podzielić według deliminatorów oraz wyodrębnić geometrie z atrybutu. W przypadku WKB należy pamiętać o zmianie formatu pola z UTF-8 na format binarny. Wynik odzwierciedla dokładne założenie przedstawione wyżej: dokładne geometrie działek wraz z atrybutami opisowymi dla badanego obszaru.

Skrypt FME dostępny w sekcji „Do pobrania”.

Otwarte dane – co przyniesie przyszłość?

Następne nowelizacje prawa dotyczące udostępniania danych są wyłącznie kwestią czasu. To, w jaki sposób zostaną przekazane do wglądu, również nie stanowi problemu. Dzięki FME mamy pewność, że będziemy w stanie wykorzystać praktycznie każde wykorzystane API czy serwis. Nawet, gdy dane są udostępnione tylko częściowo, możemy obejść powierzchowne problemy i cieszyć się efektem, co pokazują powyższe przykłady.

Czas na Ciebie !

Jeśli chcesz wykorzystać otwarte dane w swoich projektach, ale nie wiesz, jak to zrobić w FME – skontaktuj się z nami, chętnie pomożemy!