W tym ćwiczeniu używając funkcji PointOnAreaOverlayer stworzymy połączenie przestrzenne między nakładającymi się punktami i poligonami. Funkcji PointOnAreaOverlayer można użyć do sprawdzenia ile punktów jest w danym poligonie, lub znalezienia w którym poligonie leży dany punkt.
Dane
Będziemy pracować na dwóch zestawach danych w formacie shapefile. Jeden z osiedlami Wrocławia, który można pobrać ze strony Systemu Informacji Przestrzennej Wrocławia. Drugi pochodzi z Open Street Map i jego członków i zawiera dane punktowe o transporcie.
Wykonanie
1 ) Uruchomienie FME Workbench i stworzenie skryptu
- Włączmy FME Workbench i stwórzmy nowy skrypt
2) Dodanie danych wejściowych
Dodajmy dane wejściowe, jako format wybierzmy Esri Shapefile i wskażmy położenie danych na dysku.
3) Zmiana układu współrzędnych
- Dane pochodzą z dwóch różnych źródeł i mają różne układy współrzędnych. Zmienimy układ współrzędnych warstwy z transportem z globalnego układu WGS-84 na Polski układ lokalny 2000 pas 6.
- Dodajmy funkcję Reprojector i wejdźmy w jej ustawienia.
- Pole ze źródłowym układem współrzędnych (Source Coordinate System) możemy zostawić puste – FME sam odczyta układ z danych .
W polu z wynikowym układem współrzędnych (Destination Coordinate System) wejdźmy w więcej układów współrzędnych (More Coord Systems…) i wyszukajmy układ 2000 pas 6 wpisując na przykład identyfikujący go jednoznacznie kod EPSG – 2177.
4) Analiza przestrzenna
- W kolejnym kroku dodajmy funkcję PointOnAreaOverlayer, która Wykonuje operację nałożenia punktów na obszary. Przecinany jest każdy obszar z każdym punktem.
Wynikowe obiekty zawierają wszystkie atrybuty z obiektów oryginalnych, oraz atrybut _overlaps, który liczy z iloma obiektami się przecięły. - Wejdźmy w ustawienia funkcji i zmieńmy tryb akumulacji atrybutów (Attribute Accumulation -> Accumulation Mode) na łączenie przychodzących atrybutów (Merge Incoming Attributes). Dzięki temu każdy obiekt będzie miał dopisane atrybuty wszystkich obiektów, z którymi się przecinał.
5) Selekcja punktów
- Użyjemy funkcji Tester, aby przefiltrować obiekty i wybrać tylko te, które są punktami leżącymi wewnątrz osiedli Wrocławia.
- Dodajmy funkcję Tester i podłączmy ją do portu wyjściowego z punktami (Point) funkcji Wejdźmy w jej ustawienia i ustawmy, że atrybut _overlaps musi się równać 1. Dzięki temu wyselekcjonujemy tylko te punkty, które pokryły się z którymś z osiedli Wrocławia. Do portu wyjściowego z obiektami, które pozytywnie przeszły test (Passed) dodajmy wyjście na przeglądarkę i zmieńmy jej nazwę.
6) Uruchomienie skryptu
Wejście Danych
Wyjście Danych
Użyte funkcje:
- Reprojector – Wykonuje transformację miedzyukładową geometrii obiektów.
- PointOnAreaOverlayer – Wykonuje operację nałożenia punktów na obszary.
- Tester – Wykonuje jedno lub kilka wyrażeń logicznych na atrybutach obiektów.