Skip to main content

Naprawianie błędów topologicznych w FME

By 5 sierpnia, 201920 maja, 2020Jak to działa w FME? / Tips & Tricks FME

Z tego artykułu dowiesz się, jak używać FME do wykrywania błędów topologicznych z użyciem funkcji SpatialFilter, oraz jak je naprawić funkcją AnchoredSnapper.

Część pierwsza – znajdowanie topologicznych błędów obiektów liniowych

Dane

Będziemy pracować na pliku SHAPE z trasami rowerowymi z Wrocławia, które można pobrać stąd.

Wykonanie
Uruchomienie FME Workbench i stworzenie skryptu.

WSPÓLNE CECHY OBIEKTÓW

Dodanie danych wejściowych

Dodajmy dane wejściowe, jako format wybierzmy Esri Shapefile i wskażmy położenie danych na dysku.

BŁĘDY TOPOLOGICZNE

Dodanie funkcji SpatialFilter

Dodajmy do skryptu funkcję SpatialFilter i podłączmy TrasyRowerowe do obu portów wejściowych – filtrującego (Filter), oraz filtrowanego (Candidate). W tej funkcji każdy obiekt filtrowany (Candidate) jest geometrycznie analizowany względem obiektów filtrujących (Filter). W tym przypadku wszystkie obiekty będą analizowane względem wszystkich obiektów.

BŁĘDY TOPOLOGICZNE

Wejdźmy w ustawienia funkcji dwukrotnie klikając w funkcję lub klikając w ikonę koła zębatego. Kliknijmy w wybór predykatu przestrzennej relacji (Spatial Predicates to Test) i wybierzmy, że obiekt filtrujący ma dotykać obiekt filtrowany (Filter Touches Candidate). Oznacza to, że końce linii muszą się stykać.

BŁĘDY TOPOLOGICZNE

Resztę parametrów zostawmy domyślnie.

Dodanie wyjścia do Przeglądarki

Kliknijmy prawym przyciskiem myszy na wyjściowy port z obiektami, które pozytywnie przeszły przez filtr (Passed) i dodajmy wyjście na Przeglądarkę. Kliknijmy w ikonę z kołem zębatym, aby zmienić nazwę na „Połączone”. Analogicznie zróbmy z portem wyjściowym Failed, tylko nadajmy nazwę „Odłączone”.

Uruchomienie skryptu

BŁĘDY TOPOLOGICZNE

Wejście danych

BŁĘDY TOPOLOGICZNE

Wyjście danych

BŁĘDY TOPOLOGICZNE

Część druga – naprawianie błędów topologii

Dodanie funkcji AnchoredSnapper

Chcemy poprawić błędy topologiczne wynikające z niespójności sieci tras rowerowych. Zrobimy to funkcją AnchoredSnapper, która dociąga geometrię obiektów do nieruchomych obiektów referencyjnych. Ma ona dwa porty wejściowe – obiekty referencyjne, nieruchome (Anchored), oraz te które będą do nich dociągane (Candidate).
Dodajmy funkcję AnchoredSnapper.
Obiekty, które są podłączone do sieci będą tymi referencyjnymi, do nich będziemy dociągać te niepodłączone. Do portu wejściowego Anchor podłączmy więc obiekty z portu wyjściowego Passed funkcji SpatialFilter, a do portu Candidate te z portu Failed.
Wejdźmy w ustawienia funkcji AnchoredSnapper i ustawmy typ snapowania na Vertex Snapping, czyli dociąganie nie tylko do punktów końcowych, ale do wszystkich werteksów.
Ustawmy odległość dociągania na 5. Ta odległość jest mierzona w jednostkach mapy, w tej sytuacji są to metry. Resztę parametrów zostawmy domyślnie.

BŁĘDY TOPOLOGICZNE

Uruchomienie skryptu

Dodajmy wyjścia na Przeglądarkę z funkcji AnchoredSnapper (na przykład przez kliknięcie prawym przyciskiem w funkcję i wybranie Connect Inspectors). Uruchamiamy skrypt.

BŁĘDY TOPOLOGICZNE
BŁĘDY TOPOLOGICZNE

Dla przypomnienia, przytoczymy wszystkie użyte funkcje

  • SpatialFilter – Filtruje obiekty w oparciu o relacje przestrzenne. Każdy filtrowany obiekt CANDIDATE jest geometrycznie analizowany względem obiektów filtrujących FILTER i zadanego predykatu przestrzennej relacji.
  • AnchoredSnapper – Zakotwiczone dociąganie. Dociąga geometrię obiektów do nieruchomych obiektów referencyjnych uwzględniając określoną tolerancję działania.

Pracujesz z dużą ilością danych geograficznych i masz problem z ustaleniem i naprawieniem błędów topologicznych? Skontaktuj się z nami – pokażemy Ci, jak FME może wesprzeć Twoje działania.

 

Napisz do nas