Infrastruktura informacji przestrzennej po polsku. Część 2 – Dane EMUiA Geo-Systemu

Po pierwszym wpisie dostępnym tutaj w którym opisałem trudy związane z pozyskaniem prawidłowego schematu XSD dla danych EMUiA pora na analizę i przetworzenie zawartości plików z wszystkich gmin rejestru EMUiA  udostępnianych przez Geo-System.

W celu przetworzenia danych EMUiA dla całej Polski  od Geo-Systemu użyłem całości danych dostępnych na stronie http://danepubliczne.punktyadresowe.pl/ dostęp 04.02.2017r.

Celem przetworzenia było uzyskanie jednej ciągłej warstwy ze wszystkich gmin zawierającej punkty adresowe, ulice, miejscowości w bazie spatialite. Dane z tej bazy możliwe są do odczytu w Qgis poprzez dodanie warstwy wektorowej.

Baza jest dostępna do pobrania tutaj.

Proszę o zapoznanie się z poniższymi uwagami dotyczącymi przetworzenia tych danych i  z opisem tabel które tam występują.

  1. Walidacja schematem danych XSD

Kontrola przed importem polegała na sprawdzeniu poprawności plików gml za pomocą schematu XSD który udało się uzyskać w części pierwszej. Więcej o zasadach takiej kontroli możesz przeczytać tutaj. Do kontroli walidacji użyłem oprogramowania napisanego samodzielnie w .NET ze względu na pewne dodatkowe funkcje, których standardowe walidatory nie posiadają.

Dostępne są również darmowe walidatory XML danych z zewnętrznymi przestrzeniami nazw umożliwiające walidację każdych danych z zasobu na podstawie poprawnego schematu XSD z którymi możesz zapoznać się tutaj.

Wszystkie pliki Geo-Systemu przeszły walidację za pomocą schematu XSD pozytywnie więc nie ma sensu zamieszczać raportu z kontroli.

2.Analiza spójności wewnętrznej plików – wiązanie xlink.

Analiza polegała na sprawdzeniu obecności elementów do których odwołują się wiązania wewnętrzne określone w atrybutach xlink:href do innych elementów w pliku GML. Przykładem może być odwołanie się punktu adresowego do ulicy do której należy. Wynik kontroli wskazuje na odwołania w plikach do obiektów których nie ma – jest to błąd uniemożliwiający wczytanie tych danych do niektórych bardziej zaawansowanych systemów. Ze względu na niezgodne ze specyfikacją xlink zapisy atrybutów xlink:href narzucone przez dokumentację GUGiK kontrola została wykonana za pomocą dedykowanego programu, który specjalnie w tym celu napisałem. Wyniki dostępne są tutaj w spakowanym pliku zip zawierającym wynik dla każdego pliku txt gminy. Problem dotyczy głównie elementów nie posiadających grafiki tj. jednostek administracyjnych więc dla zwykłego użytkownika nie będzie widoczny i mocno uciążliwy.

3. Analiza miejscowości w GML – błędy geometrii 

W trakcie analizy danych stwierdziłem błędy w zapisie geometrii miejscowości w GML które są niezgodne ze specyfikacją GML.  Skutkiem takiej sytuacji jest brak możliwości przeczytania danych w niektórych systemach lub błędna geometria w przypadku np. Qgis czy SAGA GIS gdzie błędne dane wyświetlają się jako 2.5D.

 

 

 

 

 

W udostępnionych przeze mnie danych została wyeksportowana poprawiona wersja uwzględniająca poprawki do oryginalnych GML Geo-Systemu która umożliwia prawidłowe czytanie danych geometrii GML – [warstwa miejscowosci]. Nie wpływa to jednak na zmianę współrzędnych punktów załamania miejscowości w danych EMUiA. Dla porządku dodałem oryginalny zapis danych z miejscowości pobranych z Geo-Systemu w bazie spatialite [warstwa miejscowosci_oryg]

Dane miejscowości zawierają błędy topologii geometrii. Dane w pliku spatialite który wytworzyłem nie zawiera poprawy tych błędów ze względu na to, że zmieniłbym dane źródłowe niekiedy w sposób bardzo istotny.

4. Analiza warstwy ulic – różna geometria danych w GML

Dane geometrii ulic zawierają w przypadku niektórych gmin place w postaci obiektów poligonowych w innych są to elementy liniowe . Istnieją również różne typy obiekty dla ulic w niektórych przypadkach są to obiekty typu MultiCurve w innych LineString. W ramach eksportu ujednoliciłem geometrię ulic zamieniając wszystkie dane ulic w tym placów na obiekty typu MultilineString. Postać poligonowa placów zamieniona na linie nie ma znaczenia dla czytania danych a niektóre gminy już to robią same z siebie.

W obiektach poligonowych placów występuje nadmierna segmentacja danych w postaci podzielenia obiektów liniami nie występującymi ani na WMS ortofotomapy Geoportalu ani na  Openstreetmap. Prawdopodobnie jest to błąd wydawania danych.

Dane ulic zawierają błędy topologii geometrii. Dane w pliku spatialite który wytworzyłem nie zawiera poprawy tych błędów ze względu na to, że zmieniłbym dane źródłowe niekiedy w sposób bardzo istotny.

Analiza wiązań wskazuje że w przypadku występowania wielu elementów ulicy o tej samej nazwie  z których każda na różny gml:id punkt adresowy nie jest przypisany do najbliższego punktowi elementu ulicy tylko do prawdopodobnie pierwszego który występuje w bazie IMPA z daną nazwą ulicy. Nie ma to jednak znaczenia użytkowego dla normalnego użytkownika, a robiący zaawansowane analizy na pewno poradzą sobie z przepisaniem relacji do najbliższego elementu. 😉

Konsekwencją tego faktu jest występowanie w danych obiektów w ulicach do których nie referują żadne punkty co można obejrzeć w pliku spatialite na warstwie [ulice_bez_relacji]

Oczywiście udostępnione dane wytworzone są na dzień 04.02.2017r. więc jeśli potrzebujecie mieć dane aktualne zapraszam do pobrania danych ze strony http://danepubliczne.punktyadresowe.pl/ i przetworzenia danych do postaci jaka wam odpowiada samodzielnie.

Dziękuję firmie Geo-System za udostępnienie danych gmin, które prowadzą dane w systemie IMPA w Internecie w sposób który pozwala na powszechny dostęp do tych danych.