Systemy Informacji Przestrzennej

Adam Inglot
Adiunkt w Katedrze Geodezji
Wydział Inżynierii Lądowej i Środowiska, Politechnika Gdańska
adam.inglot@pg.edu.pl

2022-09-07, aktualizacja 2023-11-20

© ainglot.pl, 2022. Udostępnianie i wykorzystanie zgodnie z licencją Creative Commons Attribution 4.0 International license (CC BY 4.0).
Projekt strony zapożyczony za zgodą autora - Paulo Raposo

CC By 4.0

Relacje topologiczne

Relacje topologiczne pojawiły się już przy omawianiu tematu selekcji. Jako pierwsi relacje topologiczne zaproponowali Egenhofer i Herring, był to model dziewięciu przecięć topologicznych DE-9IM [1]. Na rysunku poniżej przedstawiony jest model przecięć topologicznych DE-9IM dla obiektów powierzchniowych, oznaczenia te przedstawiają: O° - wnętrze obiektu, ∂O - granica obiektu, $O^{-}$ - zewnętrze obiektu - wszystko poza obiektem. Symbolem ∅ oznacza zbiór pusty, natomiast zastosowanie negacji ¬∅ oznacza że w wyniku przecięcia przestrzennego otrzymujemy elementy wspólne.

image

image

Przeanalizujmy relacje zawierania jednego obiektu w drugim, zapisujemy to w formie zapytania przestrzennego: Czy $O_{1}$ zawiera $O_{2}$? Spełnienie tego warunku jest przedstawione na rysunku poniżej.

image

W macierzy Egenhofera otrzymujemy odpowiedzi boolowskie (T - true, F - false) na to zapytanie, macierz DE-9IM będzie przyjmować formę jak w poniższej tabeli, oznacza to że tam gdzie mamy zbiór pusty - ∅, będziemy mieć False, a gdzie mamy ¬∅ to dostaniemy odpowiedź True.

$O°_2$$\partial O_2$$O^{-}_2$
$O°_1$TTT
$\partial O_1$FFT
$O^{-}_1$FFT

Dzięki DE-9IM możemy przeprowadzać zapytania przestrzenne (wykorzystywaliśmy przy selekcji), sprawdzać błędy topologiczne (przedstawione na ćwiczeniach poniżej), wiele narzędzi do analizy danych wektorowych wykorzystuje relacje topologiczne. Relacje topologiczne zostały wpisane w standardy GIS - tabela poniżej [2].

image

Jak już wspomniano, wiele narzędzi GIS zostało zbudowanych na relacjach przestrzennych, zarówno w QGIS jak i ArcGIS. W tym ćwiczeniu zapoznamy się z narzędziami do wykrywania błędów topologicznych. W ArcGISPro błędy topologiczne można sprawdzić stosując zestaw danych topologicznych w którym podawane są reguły pomiędzy obiektami w warstwie. Przeprowadzimy konwersje danych w oparciu o rozporządzenie w sprawie baz danych obiektów topograficznych oraz mapy zasadniczej. Sprawdź relacje topologiczne pomiędzy obiektami w danej warstwie. Dla wyznaczonego zakresu pozyskaj obiekty: "KTCR02 - chodnik", "OBOP02_01 - drzewo liściaste", "SUPG01 - przewód gazowy".

image image image

1. Uruchom ArcGIS Pro, nowy projekt RelacjeTopologiczne.

Pobierz dane BDOT500 (wystawione na eNauczaniu) i umieść w projekcie GDA. Dane pozyskane z Powiatowego Ośrodka Dokumentacji Geodezyjnej i Kartograficznej (PODGiK) w Gdańsku, wykorzystamy do zapoznania się z narzędziami do kontroli relacji topologicznych. Do pracy wybierzemy trzy klasy obiektów: chodnik, drzewo liściaste oraz przewód gazowy. Dla tych warstw określimy relacje topologiczne które chcemy sprawdzić.

2. Dodaj geobazę DBOT500GDA do folderu w którym jest projekt.

image

Z warstwy liniowej, która znajduje się w geobazie DBOT500GDA, wybierzemy trzy klasy obiektów i zapiszemy do nowych warstw. Przeprowadzimy to za pomocą narzędzi konwersji: Feature To Line oraz Feature To Point. Narzędzia te konwertują obiekty wskazanej warstwy do nowej warstwy której wymiar jest równy lub mniejszy. Co to znaczy? W przypadku narzędzia Feature To Line możemy wprowadzić warstwę poligonów lub linii, a w wyniku dostaniemy warstwę liniową. Nie możemy wprowadzić do tego narzędzia warstwy punktowej, wymiar warstwy punktowej to DIM=0 a warstwy liniowej DIM=1, w narzędziach ArcGIS inne narzędzie służy do generowania linii za pomocą warstwy punktowej - Points To Line.

Podczas konwersji danych należy pamiętać aby umieścić dane w zestawie danych. Czynność ta jest w tym momencie wymagana na potrzeby budowania narzędzi do kontroli topologicznej. Mówiąc inaczej, chcąc zbudować warstwę kontroli relacji topologicznych wybranych warstw, warstwy te muszą być umieszczone nie tylko w tej samej geobazie ale w tym samym zestawie danych.

Do pracy nad weryfikacją i poprawą danych użyjemy ortofotomapy, której data wykonania jest najbliższa dacie zawartej w bazie (wygenerowania danych ze zbioru PODGiK). Ponieważ nie mamy żadnych dostępnych opracowań geodezyjnych (operatów) zawierających informacje dzięki którym wykonamy aktualizację, przeprowadzimy to przy użyciu ortofotomapy o wysokiej rozdzielczości.

3. Wprowadź dane do projektu KTCR02_chodnik, OBOP02_01_drzewa_lisciaste, SUPG_01_przewod_gazowy i Zakres.

image

4. Sprawdź jak jest data zawarta w zbiorze danych - pole DocUpdate w tabeli atrybutowej.

image

5. Pobierz ortofotomapę której data wykonania jest najbliższa 2015-09-28 i dodaj do projektu.

image

Do pracy nad danymi możemy nadać transparentność warstwie poligonowej, wykonamy to podobnie jak we wcześniejszych ćwiczeniach - przechodząc do menu głównego, we właściwościach Appearance. Można również wykonać to w symbolizacji warstwy Color Properties, a następnie ustawiając wartość Transparency.

6. Jeżeli chcesz żeby warstwa Zakres była częściowo przeźroczysta, przejdź w menu głównym do Feature Layer, a następnie w Layer transparency podaj w % przeźroczystość.

image

W tym momencie możemy przejść do budowy warstwy relacji topologicznych. Jak już zostało to wspomniane, budowa warstwy relacji topologicznych może być wykonana w zestawie danych. Przechodząc do zestawu danych, uruchamiamy kreatora budowy relacji topologicznych - Create Topology Wizard. W kreatorze mamy trzy karty. Pierwsza kara służy do określenia: nazwy warstwy, dokładności współrzędnych X i Y oraz wskazaniu jakie warstwy (w obrębie zestawu danych) mają brać udział w budowaniu relacji topologicznych. Wybrane warstwy będą dostępne w kolejnej karcie, jednak trzeba pamiętać że wybrane warstwy nie będą dostępne w do budowy kolejnej warstwy relacji topologicznej - mówiąc inaczej - dane mogę być wykorzystane tylko w jednej warstwie relacji topologicznej jednocześnie. Druga karta stanowi główną część narzędzia, w tej karcie ustawiamy jakie relacje mają być sprawdzane. W zależności od badanej warstwy, odpowiednie relacje będą dostępne. Na temat relacji przestrzennych można dowiedzieć się więcej na stronach internetowych dokumentacji oprogramowania ArcGIS Pro. W naszych rozważaniach skupimy się na warstwie liniowej, w odniesieniu do relacji wzajemnej pomiędzy obiektami tej warstwy. Przypiszemy relacje z poniższej listy. Ostatnia, trzecia karta, stanowi podsumowanie wybranych ustawień. 1. Must Not Self Overlap 2. Must Not Self Intersect 3. Must Not Intersect Or Touch Interior 4. Must Not Have Dangles 5. Must Not Have Pseudo Nodes

7. W Catalog przejdź do zestawu danych DBOT500GDA/Dane2000str6, PPM na ten zestaw danych, następnie New/Topology.

image

8. W oknie Create Topology Wizard zaznacz warstwę chodników, przejdź dalej Next.

image

9. Następna część kreatora dotyczy ustawiania reguł, dodamy 5 reguł topologicznych wskazanych wcześniej.

image

10. Ostatnie okno to podsumowanie zaznaczonych opcji, zakończ Finish.

image

Ustalone zostały relacje w obrębie warstwy KTCR02 - chodnik. Przed dodaniem warstwy relacji topologicznych do projektu należy wykonać walidacje - Validate Topology. Warstwa którą przygotowaliśmy nie jest automatycznie sprawdzana pod względem błędów, to znaczy ze relacje dopiero zostaną sprawdzone gdy wykonamy walidacje. Przeprowadzanie walidacji wykonujemy również w trakcie poprawiania błędów. Co to znaczy? Przygotowaliśmy warstwę relacji topologicznych w celu sprawdzenia błędów pomiędzy obiektami, kolejnym krokiem będzie weryfikacja a następnie poprawa tam gdzie błąd stanowi faktyczną nieprawidłowo wykonaną geometrie obiektu lub brak obiektu.

11. W Catalog PPM na zbiór danych topologicznych i wybierz Validate.

image

12. Dodaj warstwę relacji topologicznych do projektu.

image

13. Dodana warstwa przedstawiona jest w symbolizacji domyślnej.

image

Uruchomimy teraz panel narzędzi do obsługi przeglądania błędów topologicznych. Okno Error Inspector pomaga w wyszukiwaniu i przeglądaniu błędów wyznaczonych poprzez reguły topologiczne. W panelu mamy dostęp do elementu listy błędów oraz okna podglądu lokalizacji błędu. Jest to wygodne narzędzie do sprawdzania błędów topologicznych.

14. Uruchom okno Error Inspector w menu głównym Edit.

image

15. Do sprawdzenia i poprawienia jest 65 błędów wynikających z niepoprawnych relacji topologicznych.

image

W pracy nad dużą liczbą relacji topologicznych warto korzystać z filtracji i sprawdzać, rozwiązywać błędy w danej kategorii. Wybierając daną kategorie błędów w filtracji, przechodzimy do przeglądania danego typu relacji w tabeli jak i w oknie projektu.

16. Wybierz możliwość filtracji zgodnie z wybraną regułą. Zaznacz . Must Not Intersect ..

image

Wybrana kategoria, relacja - ... Must Not Intersect ... - dotyczy powielonych odcinków w warstwie. Nie ma uzasadnienia przechowywania odcinków o tej samej geometrii w jednej warstwie, jest to sytuacja niepożądana i chcemy zmienić dane. Narzędzia topologii wskazują gdzie jest błąd, natomiast poprawić dane możemy narzędziami edycji lub narzędziami danych wektorowych znajdujących się w oknie Geoprocessing. W tym przypadku musimy wskazać odpowiedni obiekt z powielonych linii i usunąć go.

17. Przejdź do pierwszego błędu używając zbliżenia - PPM w zaznaczonym miejscu rysunek poniżej i Zoom To.

image

18. Wybierz narzędzi selekcji poprzez wskazanie.

image

19. Następnie wskaż linie i wybierz jedną z nich do usunięcia, wynik działania widoczny na rysunkach poniżej.

image

image

20. Analogicznie postępuj w przypadku podobnych błędów. Zapisz edycje i wykonaj walidację warstwy relacji topologicznych.

21. Przejdź do kolejnej grupy błędów - . Must Not Have Dangles ., podobnie jak na rysunku 21.

Kolejny rodzaj błędu w relacjach topologicznych, który sprawdzimy to ... Must Not Have Dangles .... Jest to problem "wiszących węzłów". Problem ten jest nieco bardziej złożony niż wcześniejsza kontrola błędu topologicznego, dlatego że, nie w każdym przypadku wiszący węzeł jest błędem. Poligon który dodaliśmy (warstwa Zakres) stanowi obszar naszych prac, czyli co jest poza tym obszarem nie stanowi elementu naszego zainteresowania w tym ćwiczeniu. Uwaga ta jest ważna gdyż część węzłów wiszących znajduje się na granicy opracowania i te węzły nie stanowią błędu (oczywiście, warto byłoby upewnić czy te węzły sykają się z granicą opracowania - ale pominiemy ten etap). Interesują nas węzły w obrębie obszaru opracowania.

22. Dorysuj brakujące odcinki chodnika na podstawie ortofotomapy.

image

23. Dorysowany element usuwa błąd "wiszących węzłów" jednak otrzymujemy inne, błąd "pseudo węzeł".

image

Na czym polega błąd w relacji topologicznej Must Not Have Pseudo Nodes. Nie jest to błąd wynikający stricte z relacji topologicznych, ale z liczby odcinków w węźle[3]. Przedstawmy tę informacje głębiej. Geometrycznie węzeł to punkt, w przypadku linii - punkt końcowy lub początkowy. Jeżeli w węźle danej linii styka się tylko jeden węzeł z pozostałych linii w warstwie, to nie ma uzasadnienia geometrycznego na przechowywanie tych dwóch linii jako osobne obiekty. Ważne jest tu zaznaczenie że chodzi o geometrię obiektu, ponieważ różne atrybuty pomiędzy tymi obiektami stanowią powód utrzymania tej sytuacji. Dodatkowo, tego typu błędy na ogół nie stanowią problemów w dalszych analizach.

24. Aby usunąć ten błąd, należy wybrać obie linie, a następnie połączyć narzędziem Merge z Edit.

image

25. W oknie Merge wybierz obiekt z uzupełnionymi atrybutami (ten z mniejszym numerem ID), zatwierdź Merge. Błąd zostanie usunięty. Postępuj analogicznie w pozostałych sytuacjach.

image

26. Zapisz edycję oraz wykonaj walidację.

Jeżeli nie potrzebujemy lub uznaliśmy że któraś z relacji topologicznych jest niepotrzebna, możemy ją usunąć we właściwościach warstwy relacji topologicznych. Dostępna jest również możliwość zamiany relacji w tym oknie.

27. Przejdź do właściwości (Properties) zestawu danych topologicznych w Catalog.

image

28. Usuń relacje Must Not Have Pseudo Nodes ..

image

29. Relacje Must Not Intersect Or Touch Interior zamień na Must Not Intersect, zatwierdź OK.

image

30. Kontynuuj poprawianie błędów typu Must Not Have Dangles.

Po sprawdzeni, poprawieniu lub zaakceptowaniu błędów wskazanych w warstwie relacji topologicznej, przechodzimy do błędów których nie jesteśmy wstanie wskazać poprzez relacje. Jednym z tego typu błędów jest widoczny na rysunku poniżej. Bak jest linii separującej jezdnie od chodnika (zaznaczone czerwoną linią). image

31. Dorysuj brakujące elementy i usuń niepotrzebne.

image

image

32. Przekształć warstwę liniową na poligonową, użyj do tego narzędzia Feature To Polygon.

image

33. zwróć uwagę czy selekcja jest wyczyszczona, wykonaj - Run.

34. Usuń elementy które nie są chodnikiem.

image

35. Przeprowadź topologię warstwy SUPG_01 - przewód gazowy biorąc pod uwagę następujące relacje:

  1. Must Not Self Overlap
  2. Must Not Self Intersect
  3. Must Not Intersect Or Touch Interior
  4. Must Not Have Dangles
  5. Must Not Have Pseudo Nodes

36. Po poprawieniu danych zapisz dane jako SUPG_01. Możesz wykonać to w Catalog - PPM i Rename, pamiętaj aby wcześniej zapisać edycję danych.

37. Zamknij i zapisz ArcGIS Pro.

Używane skróty:

[1] Max J Egenhofer, John Herring. Categorizing binary topological relations between regions, lines, and points in geographic databases, 9(94-1):76, 1990.
[2] J Herring. Opengis implementation standard for geographic information-simple feature access-part 1: Common architecture. OGC Document, 4(21):122–127, 2011.
[3] Polskie Towarzystwo Informacji Przestrzennej. Internetowy leksykon geomatyczny, 2006.

Autor: Adam Inglot, mail: adam.inglot@pg.edu.pl