W tym ćwiczeniu zajmiemy się obliczeniem powierzchni i obwodu poligonów reprezentujących osiedla Wrocławia. Następnie posortujemy obiekty po powierzchni i policzymy średnią powierzchnię.
Dane
Będziemy pracować na danych w formacie SHAPE, które reprezentują osiedla we Wrocławiu i pochodzą ze strony Systemu Informacji Przestrzennej Wrocławia.
Wykonanie
Włączmy FME Workbench i otwórzmy nowy skrypt
Dodajmy dane wejściowe, jako format wybierzmy Esri Shapefile i wskażmy położenie danych na dysku.
- Dodajmy funkcję AreaCalculator i wejdźmy w jej ustawienia. Nadajmy nazwę atrybutowi przechowującemu powierzchnie oraz uzupełnijmy pole mówiące o mnożniku (Multiplier). Powierzchnia wyliczana jest w jednostce kwadratowej zgodnej z jednostką współrzędnych w danych źródłowych. Można ją sprawdzić w Data Inspectorze po wczytaniu danego zbioru danych.
- W tym przypadku będą to metry kwadratowe, więc użyjemy mnożnika do przeliczenia ich na kilometry kwadratowe.
- Dodajmy funkcję LengthCalculator i wejdźmy w jej ustawienia. Tak samo jak dla powierzchni przeliczmy metry na kilometry używając mnożnika oraz wpiszmy nazwę atrybutu. Dzięki temu uzyskamy atrybut mówiący o obwodzie obiektu w kilometrach.
- Funkcja StatisticCalculator może być użyta do obliczenia różnych statystyk opisujących zbiór danych. Wejdźmy w ustawienia funkcji. Wybierzmy, że atrybut, który ma być analizowany to POWIERZCHNIA[km^2].
- Poniżej jest długa lista współczynników, które funkcja może nam policzyć. Jeśli któryś nie jest nam potrzebny to należy usunąć proponowaną nazwę atrybutu i zostawić ją pustą. To spowoduje, że dany współczynnik nie zostanie policzony. My potrzebujemy atrybuty mówiące o minimum, maximum, sumie i średniej.
- Funkcja StatisticCalculator ma 3 porty wyjściowe – streszczenie (Summary), komplet (Complete), skumulowany (Cumulative). Streszczenie to tabela, w której nie ma obiektów, ale są tylko statystyki, komplet to wszystkie obiekty ze statystykami wpisanymi do atrybutów, na przykład każdy obiekt będzie miał atrybut _min i dla wszystkich ta wartość będzie identyczna. Skumulowany będzie zawierał wszystkie obiekty, ale wartości atrybutów statystycznych będą się różnić.
- W kolejnym kroku zaokrąglimy wartości atrybutów do 2 miejsc po przecinku. Większa dokładność nie jest nam potrzebna. Dodajmy funkcję AttributeRounder i wejdźmy w jej ustawienia. Wszystkie atrybuty opisujące geometrię obiektów zaznaczmy do zaokrąglenia, a w pole z liczbą miejsc dziesiętnych (Decimal Places) wpiszmy 2.
- W kolejnym kroku posortujmy obiekty malejąco, numerycznie po powierzchni. Dodajmy funkcję Sorter i wejdźmy w jej ustawienia.
Wejście danych
Wyjście danych
Jako wynik mamy obiekty z policzoną powierzchnią i obwodem, ich statystyki i są one posortowane od największego do najmniejszego. Może to być dobry początek do wykonywania kolejnych analiz.
- Tester – Wykonuje jedno lub kilka wyrażeń logicznych na atrybutach obiektów.
- 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.