Sortowanie danych w FME

By 29 stycznia, 201920 maja, 2020Zrób to sam
fme_sortowanie_danych

Dane tabelaryczne w FME można sortować na wiele sposobów. Między innymi w FME Inspector, oraz w FME Workbench używając funkcji Sorter, która jest podobna do polecenia SQL ORDER BY. Sortowanie w Przeglądarce nie zmienia kolejności obiektów w danych, tylko uporządkowanie w widoku tabeli. Natomiast w FME Workbench możemy dane posortować, zapisać je w tej kolejności w tabeli.

Dane

Będziemy pracować na Esri Geodatabase (File Geodb Open API), czyli plikowej geobazie, w której znajdują się poligony reprezentujące  granice osiedli Wrocławia. Plik SHAPE z granicami osiedli Wrocławia można pobrać ze strony stąd.

Część 1 – Sortowanie danych w Przeglądarce

W Przeglądarce posortujemy dane rosnąco i malejąco, alfabetycznie lub numerycznie.

Rosnące Sortowanie kolumn
W widoku tabeli kliknijmy prawy przyciskiem myszki na atrybut NAZWAOSIED i wybierzmy sortowanie alfabetyczne rosnące (Sort Alphabetical Ascending).

W widoku tabeli kliknijmy prawym przyciskiem myszki na atrybut OBJECTID i wybierzmy sortowanie numeryczne rosnące (Sort Numeric Ascending).

Malejące sortowanie kolumn

W widoku tabeli kliknijmy prawym przyciskiem myszki na atrybut NAZWAOSIED i wybierzmy sortowanie alfabetyczne malejące (Sort Alphabetical Descending).

W widoku tabeli kliknijmy prawym przyciskiem myszki na atrybut OBJECTID i wybierzmy sortowanie numeryczne malejące (Sort Numeric Descending).

Czyszczenie sortowania

Kliknijmy prawym przyciskiem myszki na którykolwiek nagłówek kolumny i wybierzmy czyszczenie sortowania (Clear All Sorting). To spowoduje usunięcie całego sortowania, a obiekty w tabeli danych wrócą do oryginalnej kolejności.

Część 2 – Sortowanie danych z użyciem funkcji Sorter

W tej części w FME Workbench posortujemy osiedla Wrocławia alfabetycznie rosnąco, czyli od A do Z.

Uruchomienie FME Workbench i generowanie skryptu

Włączmy FME Workbench i wybierzmy opcję Generate Workspace.

Ustawienie parametrów danych wejściowych

W generatorze skryptów wybierzmy Esri Geodatabase (File Geodb Open API) jako format i wskażmy położenie na dysku bazy z osiedlami Wrocławia.

Ustawienie parametrów danych wyjściowych

Format danych wyjściowych również ustawimy na geobazę plikową z osiedlami. Użyjemy tej samej bazy, ponieważ będziemy ją aktualizować.

Określenie wykonywanej operacji (Feature Operation) i obsługi tabel (Table Handling)

Mamy już wygenerowany skrypt, więc teraz klikając w ikonkę koła zębatego wejdźmy w ustawienia adaptera zapisującego. Zmieńmy nazwę tabeli na GraniceOsiedli_posortowane. W sekcji dotyczącej tabeli ustawmy operację (Feature Operation) na wstaw (Insert), oraz upewnijmy się, że jeśli taka tabela już istnieje to zostanie ona usunięta i powstanie nowa tabela (Table Handling -> Drop and Create).

Jeśli chcesz dowiedzieć się więcej o opcjach obchodzenia się z tabelami (Table Handling), zapraszamy do przeczytania naszego artykułu o bazach danych.

Aktualizacja atrybutów

Przejdź do sekcji atrybuty użytkownika (User Attributes) i ustaw definicję atrybutów (Attribute Definition) na automatyczną. Dzięki temu program automatycznie definiuje listę atrybutów na podstawie danych wejściowych i zmian, które wprowadzamy w skrypcie (na przykład zmiana nazwy, usunięcie).

Dodanie funkcji Sorter

Do skryptu dodajmy funkcję Sorter, oraz wejdźmy w ustawienia funkcji klikając w ikonę koła zębatego. W sekcji sortowanie (Sort By) kliknijmy w puste pole i wybierzmy atrybut NAZWAOSIED, ponieważ po nim będziemy sortować. Sposób sortowania ustawmy na Alfabetyczny (Alphabetic) i porządek (Order) na rosnący (Ascending).

Uruchomienie skryptu

Po uruchomieniu skryptu tabele zostały posortowane w wybrany przez nas sposób. Wynik obejrzymy przez kliknięcie w adapter zapisujący i w ikonę lupki, co otworzy Przeglądarkę.

Wynik:

Użyte Funkcje:

Sorter – Sortuje obiekty względem określonych wartości atrybutów, oraz zgodnie z określonymi zasadami.