Упражнение 3b: Преобразование данных и использование Визуализатора

Уровень сложности: Расширенный Требования к данным: ArcGIS Tutorial Data for Desktop Путь к данным: C:\arcgis\ArcTutor\Data Interoperability\ Задача: Изучение основ преобразования объектов и атрибутов в FME Workbench и использование визуализатора для проверки результатов.

Трансформер – это объект FME Workbench, который выполняет определенную перестройку структуры объектов или схемы. Это – визуальный объект, который вы добавляете в рабочую область и соединяете со считывающими устройствами исходных данных (source readers) и типами объектов записывающих устройств (редакторов) или с другими трансформерами.

В этом упражнении вы освоите основы применения FME-трансформеров (FME transformers), добавляя их в инструмент spatial ETL, который вы создали в Упражнении 3а "Приступая к работе с инструментом spatial ETL". Вы создадите инструмент spatial ETL, который преобразует данные участка MGE, произведет оценку новых объектов в соответствии с тестовыми условиями и сгенерирует результат в виде объектов, прошедших (passed) или не прошедших (failed) это тестирование. Наконец, вы рассмотрите полученную рабочую область, не создавая новых данных, с помощью Визуализатора (Visualizer). В завершение этого упражнения вы экспортируете рабочую область как пользовательский формат.

С помощью FME Workbench вы выполните следующие задачи:

Запустите ArcMap

Предварительное условие:

Дополнительный модуль Data Interoperability должен быть включен.

Прежде, чем начать выполнять это упражнение, вы должны завершить предыдущее Упражнение 3a: Приступая к работе с пространственными инструментами ETL.

Шаги:
  1. Запустите ArcMap.
  2. Щелкните окно Каталога. Каталог на панели инструментов Стандартные (Standard).
  3. В текстовом поле Местоположение (Location) введите C:\arcgis\ArcTutor\Data Interoperability\parcels\ и нажмите ENTER.

    Местоположение будет добавлено в дерево Каталога.

    Окно каталога

Скопируйте и переименуйте инструмент spatial ETL

Шаги:
  1. Правой кнопкой мыши щелкните по инструменту Import MGE Parcel и выберите команду Копировать (Copy) в открывшемся контекстном меню.
  2. Правой кнопкой мыши щелкните набор инструментов Parcels и выберите в контекстном меню команду Вставить (Paste).
  3. Щелкните правой кнопкой мыши инструмент Import MGE Parcel (2), выберите в контекстном меню команду Переименовать (Rename), а затем введите Custom Parcels.
  4. Щелкните правой кнопкой мыши инструмент Custom Parcels и выберите Редактировать (Edit).

    Запустится Workbench.

Добавьте трансформер AreaBuilder

Трансформер AreaBuilder создает топологически корректные полигональные объекты из линий, образующих замкнутые формы.

Соедините трансформер AreaBuilder с LOT_LINES GeometryFilter.

Шаги:
  1. Убедитесь, что Галерея трансформера (Transformer Gallery) доступна.
    Чтобы открыть окно Трансформеры (Transformers) из главного меню, щелкните Просмотр (View) > Окна (Windows) > Галерея Трансформер (Transformer Gallery).

    Просмотр окна Трансформеры (Transformers)

  2. В текстовом поле Поиск (Search) окна Трансформеры (Transformers) введите areabuilder и нажмите клавишу ВВОД (ENTER).
  3. Дважды щелкните элемент AreaBuilder.

    Трансформер AreaBuilder будет добавлен в рабочую область.

  4. Щелкните по линии, которая соединяет LOT_LINES GeometryFilter и объект-адресат LOT_LINES, затем нажмите Удалить (DELETE).

    The GeometryFilter будет отсоединен от типа объектов редактора LOT_LINES.

  5. На элементе LOT_LINES GeometryFilter щелкните на желтой стрелке рядом с выходом атрибута LINE и перетащите ее на красную стрелку рядом с входом AreaBuilder.

    Теперь выход GeometryFilter соединен с входом AreaBuilder, и обе стрелки должны стать зеленого цвета.

    Добавление трансформера AreaBuilder

Добавьте трансформер PointOnAreaOverlayer

Трансформер PointOnAreaOverlayer накладывает точечные объекты на площадные объекты и объединяет их атрибуты. В результате каждый полигональный объект получает атрибуты от точечного объекта, располагающегося в пределах границ этого полигона. Одноименные атрибуты не замещаются.

Соедините трансформер PointOnAreaOverlayer с трансформером LOT_LINES AreaBuilder и с LOT_POINTS GeometryFilter.

Шаги:
  1. В поле поиска в окне Трансформеры (Transformers) введите PointOnArea и нажмите ENTER.
  2. Дважды щелкните PointOnAreaOverlayer.

    Трансформер PointOnAreaOverlayer будет добавлен в рабочую область.

  3. На трансформере AreaBuilder щелкните на желтой стрелке рядом с выходом атрибута AREA и перетащите ее на красную стрелку рядом с входом PointOnAreaOverlayer AREA.

    Теперь выход атрибута AreaBuilder AREA соединен с входом PointOnAreaOverlayer AREA, и обе стрелки должны стать зеленого цвета.

    Добавление трансформера PointOnAreaOverlayer

  4. Щелкните кнопку Свойства (Properties) для просмотра параметров.

    Откроется диалоговое окно Параметры PointOnAreaOverlayer (PointOnAreaOverlayer Parameters) .

    Атрибут вычисления перекрытия

    Атрибут вычисления перекрытия (Overlap Count Attribute) вычисляет количество точечных объектов, содержащихся в каждом отдельном полигоне. Это необходимо для того, чтобы отделить объекты с разными полученными результатами для последующей обработки этих результатов. В следующем разделе вы подключите трансформер Tester и рассчитаете это количество.

  5. Щелкните ОК.

    Диалоговое окно Параметры PointOnAreaOverlayer (PointOnAreaOverlayer Parameters) закроется.

  6. Щелкните по линии, которая соединяет LOT_POINTS GeometryFilter и тип объектов редактора LOT_POINTS, после чего нажмите DELETE.

    The GeometryFilter будет отсоединен от типа объектов редактора.

  7. На элементе LOT_POINTS GeometryFilter щелкните желтую стрелку рядом с выходом POINT и перетащите линию на красную стрелку рядом с входом PointOnAreaOverlayer.

    Теперь выход POINT GeometryFilter соединен с входом POINT PointOnAreaOverlayer, и обе стрелки должны стать зеленого цвета.

Организация компоновки рабочей области

По мере того, как соединители начинают пересекаться, можно организовать рабочую область так, чтобы с ней было легче работать.

  • Чтобы организовать компоновку рабочей области, щелкните Инструменты (Tools) > Автокомпоновка (Auto Layout) и перетащите объекты в рабочую область, как показано на следующем рисунке:

Организация компоновки

ПодсказкаПодсказка:

В качестве альтернативы можно щелкнуть правой кнопкой мыши линию соединителя, в контекстном меню выбрать Вставить вершину на связи (Insert Vertex on link) и добавить одну или более вершин, после чего перетащить каждую из вершин так, чтобы она направляла соединитель вокруг других трансформеров.

Добавление трансформера Tester

Трансформер Tester производит одно или более тестирований объекта и направляет этот объект в соответствии с результатами этого тестирования.

Соединение трансформера Tester с трансформером PointOnAreaOverlayer. Добавление условия тестирования, определяющего атрибут вычисления перекрытия, генерируемый трансформером PointOnAreaOverlayer. Отделение полигональных объектов, в которых содержится один точечный объект (PASSED), от всех остальных полигональных объектов (FAILED).

Шаги:
  1. В текстовом поле Поиск (Search) окна Трансформеры (Transformers) введите Tester и щелкните Найти (Find).
  2. Щелкните дважды Tester.

    Трансформер Tester будет добавлен в рабочую область.

  3. Соедините выход AREA PointOnAreaOverlayer с Входом (INPUT) Tester.

    Добавление трансформера Tester

  4. Щелкните кнопку Свойства (Properties) на трансформере Tester.

    Откроется диалоговое окно Параметры Tester (Tester Parameters) .

    Определение условий тестирования

  5. Дважды щелкните поле Значение слева (Left Value), щелкните на стрелке вниз и выберите из списка _overlaps (перекрытия).
  6. Дважды щелкните на первой ячейке поля Op., нажмите стрелку и выберите =.
  7. Щелкните первую ячейку поля Значение справа (Right Value) и введите 1.
  8. Щелкните ОК.

    Диалоговое окно Параметры Tester (Tester Parameters) закроется.

Реконфигурация типа объектов редактора LOT_LINES (LOT_LINES writer)

Переименуйте тип объектов редактора LOT_LINES (LOT_LINES writer) в problem_polys и настройте его так, чтобы он генерировал полигональные объекты, не соответствующие условиям тестирования, заданным вами в трансформере Tester. Также, добавьте пользовательский атрибут под именем num_points для сохранения значений _overlap (перекрытия).

Шаги:
  1. Соедините результат FAILED на трансформере Tester с INPUT на целевом объекте LOT_LINES .
  2. Щелкните кнопку Свойства (Properties) на целевом объекте LOT_LINES.

    Откроется диалоговое окно Свойства типов объектов (Feature Type Properties).

    Настройка типа объектов problem_polys

  3. Щелкните закладку Общие (General).
  4. В текстовом поле Имя типа объектов (Feature Type Name) введите problem_polys.
  5. Щелкните стрелку Разрешенные геометрии (Allowed Geometries) и выберите geodb_polyline.
  6. Щелкните вкладку Пользовательские атрибуты (User Attributes) .
    Добавление пользовательского атрибута
  7. Выберите все атрибуты и нажмите DELETE.

    Атрибуты LOT_LINES не нужны.

  8. Щелкните первую пустую ячейку в поле Имя атрибута (Attribute Name) и введите num_points.

    Атрибут num_points используется для хранения значений атрибутов _overlay, сгенерированных трансформером Tester. Это значение представляет количество перекрывающихся точек для каждого объекта, не прошедшего отбор (группа объектов FAILED - прим. переводчика).

  9. Щелкните стрелку у списка Тип данных (Data Type) и выберите в списке integer (целые числа).
  10. Щелкните ОК.

    Диалоговое окно Свойства типов объектов (Feature Type Properties) закроется.

  11. Разверните трансформер Tester и подсоедините выход _overlay к num_points на типе объектов problem_polys.

    Соединения трансформера Tester и типов объектов должны выглядеть примерно следующим образом:

    Соединение трансформера Tester с типом объектов problem_polys

Реконфигурация типа объектов редактора LOT_POINTS (LOT_POINTS writer)

Переименуйте тип объектов редактора LOT_POINTS в parcels и настройте его так, чтобы он генерировал полигональные объекты, соответствующие условиям тестирования, заданным вами в трансформере Tester.

Шаги:
  1. Соедините результат PASSED на трансформере Tester с INPUT на целевом объекте LOT_LINES .
  2. Щелкните кнопку Свойства (Properties) на целевом объекте LOT_POINTS.

    Откроется диалоговое окно Свойства типов объектов (Feature Type Properties) .

    Настройка типа объектов parcels

  3. Щелкните закладку Общие (General).
  4. В окне для текста Имя типа объектов (Feature Type Name) введите parcels.
  5. Щелкните стрелку Разрешенные геометрии (Allowed Geometries) и выберите geodb_polyline.
  6. Щелкните вкладку Пользовательские атрибуты (User Attributes).
    Удаление ненужных атрибутов
  7. Выберите только те атрибуты, имена которых начинаются с igds_, и нажмите DELETE.

    Атрибуты igds_ это - символические имена, созданные FME-ридером (FME reader) для упрощения трансляции типов исходных элементов IGDS в типы объектов FME. Их не надо включать с целевыми объектами.

  8. Щелкните ОК.

    Диалоговое окно Свойства типов объектов (Feature Type Properties) закроется.

    Соединения трансформера Tester и типов объектов редактора должны выглядеть примерно так:
    Соединение трансформера Tester с типом объектов parcels

Проверьте состояние рабочей области Визуализатором (Visualizer).

Визуализатор (Visualizer) это - вьюер "в памяти", благодаря которому вы имеете возможность наблюдать происходящее в рабочей области, не генерируя новых данных и не перезаписывая существующие данные.

Перенаправите выходные данные рабочей области в Визуализатор (Visualizer) и изучите полученный результат.

Шаги:
  1. В окне Навигатор (Navigator) разверните Параметры инструментов (Tool Parameters), правой кнопкой мыши щелкните Перенаправить в... (Destination Redirect) и в контекстном меню выберите пункт Изменить параметр (Edit Parameter).

    Откроется диалоговое окно Изменить параметр (Edit Parameter).

    Перенаправление полученных результатов в Визуализатор (Visualizer)

  2. Щелкните стрелку Перенаправить в... (Destination Redirect) и выберите Перенаправить в Визуализатор (Redirect to Visualizer).
  3. Щелкните ОК.

    Диалоговое окно Изменить параметр (Edit Parameter) закроется.

  4. В главном меню щелкните Файл (File) > Запустить трансляцию (Run Translation).

    Визуализатор (Visualizer) включится.

    Проверка полученных результатов Визуализатором

  5. Разверните наборы данных в Viewspace.
  6. На панели инструментов щелкните инструмент Идентифицировать (Identify), выберите объекты и изучите их атрибутивные значения, отображенные в окне Информация (Information).
  7. Обратите внимание, что рабочая область создает полигоны из линейных элементов, сохраненных в файлах MicroStation DGN (.par) и получает атрибуты точечных объектов, сохраненные в базе данных parcels_attr.mdb. Также обратите внимание на то, что трансформер Tester направил объекты, не прошедшие условия теста, в тип объектов problem_polys.
  8. Выйдите из Визуализатора (Visualizer).
  9. В меню Workbench щелкните Файл (File) > Сохранить (Save).

Сохранение инструмента spatial ETL (spatial ETL) как пользовательского формата

Пользовательский формат – это переходная рабочая область, экспортированная из FME Workbench как формат, которая используется в Галерее FME-ридера (FME reader gallery). Он сохраняется во внешнем файле .fds и может быть импортирован в галереи ридеров на другие компьютеры.

Созданный пользовательский формат будет добавлен в Галерею FME-ридера (FME Reader Gallery). Созданный пользовательский формат в дальнейшем можно редактировать в FME Workbench или вовсе удалить его из списка. При удалении пользовательского формата файл .fds будет удален из вашего компьютера.

Шаги:
  1. В меню Workbench щелкните Файл (File) > Экспортировать как пользовательский формат (Export as Custom Format).

    Откроется диалоговое окно Назначить имя и описание пользовательского формата (Set Custom Format Name and Description).

    Экспорт пользовательского формата

  2. В текстовом поле Имя нового пользовательского формата (New Custom Format Name) введите Custom_parcels.
  3. В текстовом поле Описание нового пользовательского формата (New Custom Format Description) введите Упражнение 3b руководства пользователя: преобразование данных (Tutorial exercise : transforming data).
  4. Щелкните ОК.

    По умолчанию второй сеанс Workbench начнется для пользовательского формата (.fds). В этой рабочей области не нужно ничего делать.

  5. Щелкните Файл (File) > Выход (Exit), чтобы закрыть рабочую область этого пользовательского формата.
  6. Щелкните Файл (File) > Выход (Exit), чтобы закрыть рабочую область преобразования.

Пользовательский формат появится как опция в галерее FME-ридера (FME reader), когда в следующий раз вы откроете FME Workbench или создадите новое подключение interoperability.

На этом выполнение упражнения заканчивается.

Переходите к следующему упражнению: Упражнение 3c: Использование исходных атрибутов для сортировки данных.

Связанные темы

9/11/2013