Skip to main content

Pokrywanie się poligonu z poligonem

By 6 listopada, 201920 maja, 2020Jak to działa w FME? / Tips & Tricks FME
polygon

W tym ćwiczeniu używając funkcji AreaOnAreaOverlayer stworzymy połączenie między nakładającymi się poligonami. Funkcji AreaOnAreaOverlayer używa się zazwyczaj do znalezienia części wspólnych, różnic między poligonami, porównania kilku zestawów danych, lub obliczeń powierzchni na podstawie pokrywania się zestawów.

Dane

Będziemy pracować na dwóch zestawach danych w formacie shapefile. Jeden z osiedlami, który można pobrać ze strony Systemu Informacji Przestrzennej Wrocławia. Drugi z budynkami pochodzi z Open Street Map i jego członków.

Wykonanie

Uruchomienie FME Workbench i stworzenie skryptu

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

WSPÓLNE CECHY OBIEKTÓW
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 budynkami 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 je odczyta 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.
Analiza przestrzenna

  • W kolejnym kroku dodajmy funkcję AreaOnAreaOverlayer, która wykonuje operację nałożenia się obszarów. Przecinany jest każdy obszar z każdym. Wynikowe wspólne obszary zawierają wszystkie atrybuty z obiektów oryginalnych, oraz atrybut _overlaps, który liczy z iloma obiektami nałożył się ten obszar. Najmniejsza wartość atrybutu to 1, ponieważ z założenia każdy obszar przecina sam siebie.
  • 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ł.
Selekcja budynków

  • Użyjemy funkcji Tester, aby przefiltrować obiekty i wybrać tylko to, które są potencjalnymi budynkami leżącymi wewnątrz osiedli Wrocławia.
  • Dodajmy funkcję Tester i wejdźmy w jej ustawienia. Ustawmy, że atrybut NAZWAOSIEDLI (pochodzący z danych o osiedlach) i fclass (atrybut budynków) mają wartość. Kryterium ustawmy na AND. Dzięki temu będziemy mieli pewność, że znalezione obiekty to budynki pokrywające się z którymś z osiedli.
  • Po funkcji Tester dodajmy wyjścia na Przeglądarkę, nadajmy im nazwy.
Uruchomienie skryptu

Wejście danych

poligony poligony1

Wyjście danych

poligony poligony1
Dla przypomnienia, przytoczymy wszystkie użyte funkcje

  • Reprojector – Wykonuje transformację miedzyukładową geometrii obiektów.
  • AreaOnAreaOverlayer – Wykonuje operację nałożenia się obszarów. Przecinany jest obszar każdy z każdym. Wynikowe wspólne obszary zawierają wszystkie atrybuty z obiektów oryginalnych
  • Tester – Wykonuje jedno lub kilka wyrażeń logicznych na atrybutach obiektów.

Chcesz dowiedzieć się więcej na temat analizy danych przestrzennych za pomocą FME?

 

Napisz do nas