Użycie buforów do analiz przestrzennych

By Wrzesień 9, 2019 Blog
analiza przestrzenna fme

Podczas wykonywania analiz przestrzennych częstym etapem jest ustalenie czy jeden obiekt znajduje się w określonej odległości od drugiego, na przykład czy straż pożarna jest w odpowiedniej odległości od budynków przemysłowych. W tej sytuacji najłatwiejszym rozwiązaniem jest stworzenie bufora o żądanym promieniu i sprawdzenie, które obiekty leżą w nim, a które poza nim. W tym ćwiczeniu sprawdzimy ile punktów opisujących infrastrukturę transportową miasta Wrocław leży w promieniu 10 metrów od dróg i właśnie użyjemy do tego buforów.

Dane

  • Będziemy pracować na dwóch zestawach danych w formacie SHAPE, jeden z poliliniami opisującymi sieć dróg, a drugi z punktami opisującymi infrastrukturę transportową miasta.
  • Dane dotyczą Warszawy i pochodzą z Open Street Map i jego członków. Przy analizach przestrzennych trzeba pilnować, aby dane były w jednym układzie współrzędnych. W innym przypadku najczęściej wyjdą złe wyniki.
  • W tym ćwiczeniu dane pochodzą z jednego źródła i są w tym samym układzie współrzędnych, więc nie trzeba ich transformować.

Wykonanie

  • Uruchomienie FME Workbench i stworzenie skryptu
  • Włączmy FME Workbench i stwórzmy nowy skrypt
Wybieranie danych za pomocą maski1
Dodanie danych wejściowych

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

Użycie buforów do analiz przestrzennych2
Użycie buforów do analiz przestrzennych3
Dodanie pierwszej funkcji Tester

  • Obiekty reprezentujące drogi mają atrybut, który dzieli drogi na kategorię, na przykład podstawowa, główna. Użyjmy funkcji Tester, aby odrzucić niektóre kategorie (takie jak ścieżka rowerowa, piesza i inne)
Użycie buforów do analiz przestrzennych4
Dodanie funkcji Bufferer

  • W następnym kroku dodajmy funkcję Bufferer i wejdźmy w jej ustawienia. Ustawmy promień bufora (Buffer Amount) na 10 i zaakceptujmy. Jednostki są zawsze takie jak jednostki układu współrzędnych, czyli w tej sytuacji są to metry.
Dodanie funkcji SpatialFilter

  • Teraz dodajmy funkcję SpatialFilter, dzięki której znajdziemy punkty znajdujące się w buforze. Ma ona dwa porty wejściowe – Candidate i Filter. Każdy obiekt filtrowany (Candidate) jest geometrycznie analizowany względem obiektów filtrujących (Filter). Do portu wejściowego Candidate podłączmy wejście danych z punktami reprezentującymi transport, a do portu Filter obiekty reprezentujące drogi, które przeszły pozytywnie przez funkcję Tester.
  • Ustawienia funkcji zostawmy domyślnie, możemy nawet ich nie otwierać. Do portu Passed funkcji SpatialFilter, oraz Buffered funkcji Buffer dodajmy wyjścia na przeglądarkę.
Uruchomienie skryptu
Użycie buforów do analiz przestrzennych5

Wejście danych:

Użycie buforów do analiz przestrzennych6

Wyjście danych:

Użycie buforów do analiz przestrzennych7

Jako wynik uzyskaliśmy punkty opisujące infrastrukturę transportową, które znajdują się w odległości 10 metrów i mniejszej od sieci dróg. Analizy takie jak te mogą być bardzo przydatne przy wyszukiwaniu zależności przestrzennych.

Dla przypomnienia, przytoczymy ponownie wszystkie użyte funkcje, potrzebne do wykoania zadania

  • Tester – Wykonuje jedno lub kilka wyrażeń logicznych na atrybutach obiektów.
  • Bufferer – Zastępuje geometrię obiektów obszarem bufora, gdzie każdy punkt na jego obwodzie znajduje się w zadanej odległości od geometrii oryginalnej.
  • 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.

Opisywana funkcja ma swoje zastosowanie w architekturze, ale nie tylko. Chcesz pozać gdzie jeszcze może ona zostać wykorzystana?

Napisz do nas