Упражнение 3b: Преобразование данных и использование Визуализатора
Трансформер – это объект FME Workbench, который выполняет определенную перестройку структуры объектов или схемы. Это – визуальный объект, который вы добавляете в рабочую область и соединяете со считывающими устройствами исходных данных (source readers) и типами объектов записывающих устройств (редакторов) или с другими трансформерами.
В этом упражнении вы освоите основы применения FME-трансформеров (FME transformers), добавляя их в инструмент spatial ETL, который вы создали в Упражнении 3а "Приступая к работе с инструментом spatial ETL". Вы создадите инструмент spatial ETL, который преобразует данные участка MGE, произведет оценку новых объектов в соответствии с тестовыми условиями и сгенерирует результат в виде объектов, прошедших (passed) или не прошедших (failed) это тестирование. Наконец, вы рассмотрите полученную рабочую область, не создавая новых данных, с помощью Визуализатора (Visualizer). В завершение этого упражнения вы экспортируете рабочую область как пользовательский формат.
С помощью FME Workbench вы выполните следующие задачи:
- Добавите трансформер AreaBuilder для создания полигонов из типа исходных объектов LOT_LINES.
- Добавите трансформер PointOnAreaOverlayer для наложения объектов LOT_POINTS на полигональные объекты и объединения их атрибутов.
- Добавите трансформер Tester для оценки и подсчета точечных объектов внутри каждого полигонального объекта.
- Перенаправите выходные данные рабочей области в Визуализатор (Visualizer) и изучите полученный результат.
- Экспортируете рабочую область как пользовательский формат.
Запустите ArcMap
Дополнительный модуль Data Interoperability должен быть включен.
Прежде, чем начать выполнять это упражнение, вы должны завершить предыдущее Упражнение 3a: Приступая к работе с пространственными инструментами ETL.
- Запустите ArcMap.
-
Щелкните окно Каталога.
на панели инструментов Стандартные (Standard).
-
В текстовом поле Местоположение (Location) введите C:\arcgis\ArcTutor\Data Interoperability\parcels\ и нажмите ENTER.
Местоположение будет добавлено в дерево Каталога.
Скопируйте и переименуйте инструмент spatial ETL
- Правой кнопкой мыши щелкните по инструменту Import MGE Parcel и выберите команду Копировать (Copy) в открывшемся контекстном меню.
- Правой кнопкой мыши щелкните набор инструментов Parcels и выберите в контекстном меню команду Вставить (Paste).
- Щелкните правой кнопкой мыши инструмент Import MGE Parcel (2), выберите в контекстном меню команду Переименовать (Rename), а затем введите Custom Parcels.
- Щелкните правой кнопкой мыши инструмент Custom Parcels и выберите Редактировать (Edit).
Запустится Workbench.
Добавьте трансформер AreaBuilder
Трансформер AreaBuilder создает топологически корректные полигональные объекты из линий, образующих замкнутые формы.
Соедините трансформер AreaBuilder с LOT_LINES GeometryFilter.
- Убедитесь, что Галерея трансформера (Transformer Gallery) доступна.Чтобы открыть окно Трансформеры (Transformers) из главного меню, щелкните Просмотр (View) > Окна (Windows) > Галерея Трансформер (Transformer Gallery).
- В текстовом поле Поиск (Search) окна Трансформеры (Transformers) введите areabuilder и нажмите клавишу ВВОД (ENTER).
-
Дважды щелкните элемент AreaBuilder.
Трансформер AreaBuilder будет добавлен в рабочую область.
-
Щелкните по линии, которая соединяет LOT_LINES GeometryFilter и объект-адресат LOT_LINES, затем нажмите Удалить (DELETE).
The GeometryFilter будет отсоединен от типа объектов редактора LOT_LINES.
- На элементе LOT_LINES GeometryFilter щелкните на желтой стрелке рядом с выходом атрибута LINE и перетащите ее на красную стрелку рядом с входом AreaBuilder.
Теперь выход GeometryFilter соединен с входом AreaBuilder, и обе стрелки должны стать зеленого цвета.
Добавьте трансформер PointOnAreaOverlayer
Трансформер PointOnAreaOverlayer накладывает точечные объекты на площадные объекты и объединяет их атрибуты. В результате каждый полигональный объект получает атрибуты от точечного объекта, располагающегося в пределах границ этого полигона. Одноименные атрибуты не замещаются.
Соедините трансформер PointOnAreaOverlayer с трансформером LOT_LINES AreaBuilder и с LOT_POINTS GeometryFilter.
- В поле поиска в окне Трансформеры (Transformers) введите PointOnArea и нажмите ENTER.
-
Дважды щелкните PointOnAreaOverlayer.
Трансформер PointOnAreaOverlayer будет добавлен в рабочую область.
- На трансформере AreaBuilder щелкните на желтой стрелке рядом с выходом атрибута AREA и перетащите ее на красную стрелку рядом с входом PointOnAreaOverlayer AREA.
Теперь выход атрибута AreaBuilder AREA соединен с входом PointOnAreaOverlayer AREA, и обе стрелки должны стать зеленого цвета.
- Щелкните кнопку Свойства (Properties) для просмотра параметров.
Откроется диалоговое окно Параметры PointOnAreaOverlayer (PointOnAreaOverlayer Parameters) .
Атрибут вычисления перекрытия (Overlap Count Attribute) вычисляет количество точечных объектов, содержащихся в каждом отдельном полигоне. Это необходимо для того, чтобы отделить объекты с разными полученными результатами для последующей обработки этих результатов. В следующем разделе вы подключите трансформер Tester и рассчитаете это количество.
- Щелкните ОК.
Диалоговое окно Параметры PointOnAreaOverlayer (PointOnAreaOverlayer Parameters) закроется.
-
Щелкните по линии, которая соединяет LOT_POINTS GeometryFilter и тип объектов редактора LOT_POINTS, после чего нажмите DELETE.
The GeometryFilter будет отсоединен от типа объектов редактора.
- На элементе LOT_POINTS GeometryFilter щелкните желтую стрелку рядом с выходом POINT и перетащите линию на красную стрелку рядом с входом PointOnAreaOverlayer.
Теперь выход POINT GeometryFilter соединен с входом POINT PointOnAreaOverlayer, и обе стрелки должны стать зеленого цвета.
Организация компоновки рабочей области
По мере того, как соединители начинают пересекаться, можно организовать рабочую область так, чтобы с ней было легче работать.
- Чтобы организовать компоновку рабочей области, щелкните Инструменты (Tools) > Автокомпоновка (Auto Layout) и перетащите объекты в рабочую область, как показано на следующем рисунке:
![]() |

В качестве альтернативы можно щелкнуть правой кнопкой мыши линию соединителя, в контекстном меню выбрать Вставить вершину на связи (Insert Vertex on link) и добавить одну или более вершин, после чего перетащить каждую из вершин так, чтобы она направляла соединитель вокруг других трансформеров.
Добавление трансформера Tester
Трансформер Tester производит одно или более тестирований объекта и направляет этот объект в соответствии с результатами этого тестирования.
Соединение трансформера Tester с трансформером PointOnAreaOverlayer. Добавление условия тестирования, определяющего атрибут вычисления перекрытия, генерируемый трансформером PointOnAreaOverlayer. Отделение полигональных объектов, в которых содержится один точечный объект (PASSED), от всех остальных полигональных объектов (FAILED).
- В текстовом поле Поиск (Search) окна Трансформеры (Transformers) введите Tester и щелкните Найти (Find).
-
Щелкните дважды Tester.
Трансформер Tester будет добавлен в рабочую область.
- Соедините выход AREA PointOnAreaOverlayer с Входом (INPUT) Tester.
- Щелкните кнопку Свойства (Properties) на трансформере Tester.
Откроется диалоговое окно Параметры Tester (Tester Parameters) .
- Дважды щелкните поле Значение слева (Left Value), щелкните на стрелке вниз и выберите из списка _overlaps (перекрытия).
- Дважды щелкните на первой ячейке поля Op., нажмите стрелку и выберите =.
- Щелкните первую ячейку поля Значение справа (Right Value) и введите 1.
- Щелкните ОК.
Диалоговое окно Параметры Tester (Tester Parameters) закроется.
Реконфигурация типа объектов редактора LOT_LINES (LOT_LINES writer)
Переименуйте тип объектов редактора LOT_LINES (LOT_LINES writer) в problem_polys и настройте его так, чтобы он генерировал полигональные объекты, не соответствующие условиям тестирования, заданным вами в трансформере Tester. Также, добавьте пользовательский атрибут под именем num_points для сохранения значений _overlap (перекрытия).
- Соедините результат FAILED на трансформере Tester с INPUT на целевом объекте LOT_LINES .
- Щелкните кнопку Свойства (Properties) на целевом объекте LOT_LINES.
Откроется диалоговое окно Свойства типов объектов (Feature Type Properties).
- Щелкните закладку Общие (General).
- В текстовом поле Имя типа объектов (Feature Type Name) введите problem_polys.
- Щелкните стрелку Разрешенные геометрии (Allowed Geometries) и выберите geodb_polyline.
- Щелкните вкладку Пользовательские атрибуты (User Attributes) .
- Выберите все атрибуты и нажмите DELETE.
Атрибуты LOT_LINES не нужны.
- Щелкните первую пустую ячейку в поле Имя атрибута (Attribute Name) и введите num_points.
Атрибут num_points используется для хранения значений атрибутов _overlay, сгенерированных трансформером Tester. Это значение представляет количество перекрывающихся точек для каждого объекта, не прошедшего отбор (группа объектов FAILED - прим. переводчика).
- Щелкните стрелку у списка Тип данных (Data Type) и выберите в списке integer (целые числа).
- Щелкните ОК.
Диалоговое окно Свойства типов объектов (Feature Type Properties) закроется.
- Разверните трансформер Tester и подсоедините выход _overlay к num_points на типе объектов problem_polys.
Соединения трансформера Tester и типов объектов должны выглядеть примерно следующим образом:
Реконфигурация типа объектов редактора LOT_POINTS (LOT_POINTS writer)
Переименуйте тип объектов редактора LOT_POINTS в parcels и настройте его так, чтобы он генерировал полигональные объекты, соответствующие условиям тестирования, заданным вами в трансформере Tester.
- Соедините результат PASSED на трансформере Tester с INPUT на целевом объекте LOT_LINES .
- Щелкните кнопку Свойства (Properties) на целевом объекте LOT_POINTS.
Откроется диалоговое окно Свойства типов объектов (Feature Type Properties) .
- Щелкните закладку Общие (General).
- В окне для текста Имя типа объектов (Feature Type Name) введите parcels.
- Щелкните стрелку Разрешенные геометрии (Allowed Geometries) и выберите geodb_polyline.
- Щелкните вкладку Пользовательские атрибуты (User Attributes).
- Выберите только те атрибуты, имена которых начинаются с igds_, и нажмите DELETE.
Атрибуты igds_ это - символические имена, созданные FME-ридером (FME reader) для упрощения трансляции типов исходных элементов IGDS в типы объектов FME. Их не надо включать с целевыми объектами.
- Щелкните ОК.
Диалоговое окно Свойства типов объектов (Feature Type Properties) закроется.
Соединения трансформера Tester и типов объектов редактора должны выглядеть примерно так:
Проверьте состояние рабочей области Визуализатором (Visualizer).
Визуализатор (Visualizer) это - вьюер "в памяти", благодаря которому вы имеете возможность наблюдать происходящее в рабочей области, не генерируя новых данных и не перезаписывая существующие данные.
Перенаправите выходные данные рабочей области в Визуализатор (Visualizer) и изучите полученный результат.
-
В окне Навигатор (Navigator) разверните Параметры инструментов (Tool Parameters), правой кнопкой мыши щелкните Перенаправить в... (Destination Redirect) и в контекстном меню выберите пункт Изменить параметр (Edit Parameter).
Откроется диалоговое окно Изменить параметр (Edit Parameter).
- Щелкните стрелку Перенаправить в... (Destination Redirect) и выберите Перенаправить в Визуализатор (Redirect to Visualizer).
- Щелкните ОК.
Диалоговое окно Изменить параметр (Edit Parameter) закроется.
-
В главном меню щелкните Файл (File) > Запустить трансляцию (Run Translation).
Визуализатор (Visualizer) включится.
- Разверните наборы данных в Viewspace.
- На панели инструментов щелкните инструмент Идентифицировать (Identify), выберите объекты и изучите их атрибутивные значения, отображенные в окне Информация (Information).
- Выйдите из Визуализатора (Visualizer).
- В меню Workbench щелкните Файл (File) > Сохранить (Save).
Сохранение инструмента spatial ETL (spatial ETL) как пользовательского формата
Пользовательский формат – это переходная рабочая область, экспортированная из FME Workbench как формат, которая используется в Галерее FME-ридера (FME reader gallery). Он сохраняется во внешнем файле .fds и может быть импортирован в галереи ридеров на другие компьютеры.
Созданный пользовательский формат будет добавлен в Галерею FME-ридера (FME Reader Gallery). Созданный пользовательский формат в дальнейшем можно редактировать в FME Workbench или вовсе удалить его из списка. При удалении пользовательского формата файл .fds будет удален из вашего компьютера.
-
В меню Workbench щелкните Файл (File) > Экспортировать как пользовательский формат (Export as Custom Format).
Откроется диалоговое окно Назначить имя и описание пользовательского формата (Set Custom Format Name and Description).
- В текстовом поле Имя нового пользовательского формата (New Custom Format Name) введите Custom_parcels.
- В текстовом поле Описание нового пользовательского формата (New Custom Format Description) введите Упражнение 3b руководства пользователя: преобразование данных (Tutorial exercise : transforming data).
- Щелкните ОК.
По умолчанию второй сеанс Workbench начнется для пользовательского формата (.fds). В этой рабочей области не нужно ничего делать.
- Щелкните Файл (File) > Выход (Exit), чтобы закрыть рабочую область этого пользовательского формата.
- Щелкните Файл (File) > Выход (Exit), чтобы закрыть рабочую область преобразования.
Пользовательский формат появится как опция в галерее FME-ридера (FME reader), когда в следующий раз вы откроете FME Workbench или создадите новое подключение interoperability.
![]() |
На этом выполнение упражнения заканчивается.
Переходите к следующему упражнению: Упражнение 3c: Использование исходных атрибутов для сортировки данных.