Znajdowanie poligonów położonych w konkretnej odległości od zaznaczonego obiektu

By Maj 15, 2019 Blog
fme_obiekty

W tym ćwiczeniu znajdziemy najbliższych sąsiadów, czyli obiekty położone w określonej przez nas odległości od zaznaczonego obiektu. Użyjemy do tego funkcji NeighborFinder, która najczęściej jest używana do identyfikowania najbliższych obiektów, lub obiektów znajdujących się w konkretnej odległości, lub pod konkretnym kątem.

Dane

Będziemy pracować na zestawie danych w formacie SHAPE z budynkami, który pochodzi z Open Street Map i jego członków.

Wykonanie

1 ) Uruchomienie FME Workbench i stworzenie skryptu

  • Włączmy FME Workbench i stwórzmy nowy skrypt
Wybieranie danych za pomocą maski1

2) Dodanie danych wejściowych

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

Znajdowanie poligonów położonych w konkretnej odległości2

3) Dodanie pierwszej funkcji Tester

Za adapterem czytającym dodajmy funkcję Tester i wejdźmy w jej ustawienia. Jako lewą wartość wybierzmy atrybut „name”, operator równa się, a prawą wartość ustawmy na „Wyższa Szkoła Handlowa” i „Biblioteka Uniwersytecka”. Upewnijmy się, że kryterium (Pass Criteria) jest ustawione na „lub” (or). Dzięki temu test przejdą dwa budynki, w których znajdują się te instytucje.

W celu uporządkowania skryptu możemy przesunąć port Failed do góry – po następnym kroku będziemy mieć czytelny skrypt. Aby to zrobić należy kliknąć prawym przyciskiem myszki na  port Failed i wybrać opcję Move up. Dodajmy również wyjście na przeglądarkę do portu Passed.

Znajdowanie poligonów położonych w konkretnej odległości3

4) Dodanie funkcji NeighborFinder

Dodajmy funkcję NeighborFinder. Ma ona dwa porty wejściowe – bazę (Base), oraz kandydatów (Candidate). Funkcja dla każdego obiektu bazowego sprawdza czy jest kandydat, dla którego spełniony jest warunek. Warunek określamy na przykład jako maksymalną odległość od bazy. Do portu wejściowego Candidate podłączmy te obiekty, które pozytywnie przeszły test, a do portu Base resztę obiektów.

Wejdźmy w ustawienia funkcji NeighborFinder i ustawmy maksymalną odległość na 200 metrów. Ustawmy również, że poligony chcemy traktować jako powierzchnie (Treat Polygon As: Areas). Zaakceptujmy i podłączmy wyjścia na przeglądarkę.

Uruchomienie skryptu

Znajdowanie poligonów położonych w konkretnej odległości4

Wejście danych: 

Znajdowanie poligonów położonych w konkretnej odległości5

Wyjście danych:

Znajdowanie poligonów położonych w konkretnej odległości6

Użyte funkcje:

  • Tester – Wykonuje jedno lub kilka wyrażeń logicznych na atrybutach obiektów.
  • NeighborFinder – Znajduje najbliższe obiekty w podanej odległości od obiektu bazowego.