Qgis ciągle się rozwija i oferuje nowe narzędzia w tym również do czytania i przetwarzania w sposób nieco bardziej zaawansowany plików GML. Odpowiadając na potrzebę wczytywania danych GML w sposób umożliwiający przekazanie relacji zawartych w schematach danych XSD powstała wtyczka Qgis GML Application Schema Toolbox umożliwiająca takie czytanie danych GML. Wtyczkę możecie doinstalować poprzez menu Qgis Wtyczki > Zarządzaj wtyczkami.
Spróbujmy użyć wtyczki do wczytania darmowych danych BDOO ze strony Codgik. Do testów posłużą dane BDOO z województwa pomorskiego, które możecie znaleźć na stronie codgik zakładka darmowe dane lub bezpośrednio tutaj. (dostęp 11.04.2017)
Wtyczka umożliwia wczytanie tylko pojedynczej warstwy więc spróbujemy wczytać warstwę PTWP_A za pomocą ustawień wczytujących model relacyjny. (obrazek poniżej)
Próba wczytania danych kończy się niepowodzeniem, a konkretnie wyjątkiem Pythona wyglądającym jak poniżej:
Można by było nie mając większej wiedzy technicznej uznać że wtyczka nie nadaje się do czytania „polskich” GML. Tyle, że wtyczka działa prawidłowo. W czym więc problem ?
Problem jak zwykle leży po stronie dostawcy danych GML, w tym przypadku GUGiK/CODGiK, którzy nie potrafią wytworzyć poprawnych technicznie plików GML zgodnych ze specyfikacją.
Otóż jakiś czas temu zmieniono nazwy katalogu zawierającego schematy XSD z BDOT10kGML na XSD w danych BDOO. Problem polega na tym że GUGiK poprawiając niektóre dane i zmieniając nazwę katalogu ze schematami nie zaktualizował ścieżek do tego katalogu w nagłówkach plików XML w znaczniku schemaLocation. Nadal wskazuje on na katalog, którego już nie ma czyli BDOT10kGML.
I tylko taki z pozoru drobny błąd wystarczy żeby dane GML nie dawały się już wczytać w niektórych bardziej zaawansowanych programach. Oczywiście ludzie nie mający wiedzy o GML nie będą w stanie poprawić tego błędu i mogą mieć mylne przeświadczenie że to wina Qgisa lub wtyczki.
Pełen raport błędów plików BDOO w GML dla wszystkich województw znajdziecie tutaj. (dostęp 11.04.2017)
Zmieniając ścieżkę na prawidłową czyli zamieniając w nagłówku xml BDOT10kGML na XSD w miejscu pokazanym poniżej
wtyczka zadziała i pokaże dane połączone w sposób relacyjny w Qgis.
Dane i schematy z którymi się stykam w Polsce przeważnie nie spełniają standardów w zakresie ich wytworzenia więc takich problemów będzie coraz więcej wraz ze wzrostem ilości narzędzi, które w sposób bardziej zaawansowany przetwarzają dane GML a które bazują na światowych standardach które w Polsce nie są przestrzegane.
Jeśli chcecie wiedzieć więcej o tym i rozwiązywaniu problemów z wczytywaniem i przetwarzaniem danych GML zapraszam na szkolenia.