Skip to main content

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

By 15 maja, 201920 maja, 2020Jak to działa w FME? / Tips & Tricks FME
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

2) Dodanie danych wejściowych

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

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.

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

Wejście danych: 

Wyjście danych:

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.