Skip to main content

Obliczanie powierzchni i obwodu poligonów

By 16 września, 201920 maja, 2020Jak to działa w FME? / Tips & Tricks FME
poligony_fme

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

Uruchomienie FME Workbench i stworzenie skryptu

Włączmy FME Workbench i otwórzmy nowy skrypt

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.

obwody1
Obliczenie powierzchni obiektów

  • 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.
obwody1
Obliczenie obwodu obiektów

  • 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.
obwody1
Obliczenie statystyk

  • 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ć.
obwody1
Zaokrąglenie wartości atrybutów

  • 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.
obwody1
Posortowanie obiektów

  • W kolejnym kroku posortujmy obiekty malejąco, numerycznie po powierzchni. Dodajmy funkcję Sorter i wejdźmy w jej ustawienia.
obwody1
Uruchomienie skryptu
obwody1

Wejście danych

obwody1

Wyjście danych

obwody1

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.

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

  • 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.

Chcesz dowiedzieć się więcej na temat, metod wyliczania powierzchni za pomocą FME?

 

Napisz do nas