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ą.
- 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.