练习 3b:转换数据和使用可视化程序

复杂程度:高级 数据要求:ArcGIS Tutorial Data for Desktop 数据路径: C:\arcgis\ArcTutor\Data Interoperability\ 目标: 学习在 FME Workbench 中转换要素和属性并使用可视化程序验证输出的基础知识。

转换器是一个 FME Workbench 对象,用于执行要素或方案的特定重建。它是一个可视对象,可以将其添加到工作空间画布,并在源阅读器和编写器要素类型之间建立连接,或连接到其他转换器。

本练习通过将 FME 转换器添加到在“练习 3a:空间 ETL 入门”中创建的空间 ETL 工具来向您介绍使用 FME 转换器的基础知识。您将创建一个用于转换 MGE 宗地数据的空间 ETL 工具,使用测试子句计算新要素,然后生成输出(失败要素或通过要素)。最后,您将使用可视化程序 检查工作空间的输出,而无需生成数据。完成本练习时您会将工作空间导出为自定义格式。

使用 FME Workbench 执行以下任务:

启动 ArcMap

先决条件:

必须已启用 Data Interoperability 扩展模块。

在开始本练习之前,您必须已完成上一个练习,即练习 3a:空间 ETL 入门

步骤:
  1. 启动 ArcMap。
  2. 单击标准 工具条上的目录窗口按钮 目录
  3. 位置文本框中输入 C:\arcgis\ArcTutor\Data Interoperability\parcels\,然后按 ENTER 键。

    该位置已添加到目录树。

    目录窗口

复制并重命名空间 ETL 工具

步骤:
  1. 右键单击导入 MGE 宗地工具,然后单击快捷菜单上的复制
  2. 右键单击“宗地”工具箱,然后单击快捷菜单上的粘贴
  3. 右键单击导入 MGE 宗地(2) 工具,单击快捷菜单上的重命名,然后输入自定义宗地
  4. 右键单击自定义宗地工具,然后单击编辑

    将启动 Workbench

添加 AreaBuilder 转换器

AreaBuilder 转换器通过构成闭合形状的线来创建具有正确拓扑的面要素。

将 AreaBuilder 转换器连接到 LOT_LINES GeometryFilter。

步骤:
  1. 确认转换器库 可用。
    要从主菜单打开“转换器”窗口,可单击视图 > 窗口 > 转换器库

    查看转换器窗口

  2. 转换器 窗口的搜索文本框中输入 areabuilder,然后按 ENTER 键。
  3. 双击 AreaBuilder

    AreaBuilder 转换器已添加到画布。

  4. 单击连接 LOT_LINES GeometryFilter 和 LOT_LINES 目标要素的线,然后按 DELETE 键。

    GeometryFilter 与 LOT_LINES 编写器要素类型断开连接。

  5. 在 LOT_LINES GeometryFilter 上,单击 LINE 属性输出旁的黄色箭头,然后将该箭头拖动到 AreaBuilder 输入旁的红色箭头。

    GeometryFilter 输出连接到 AreaBuilder 输入,箭头变为绿色。

    添加 AreaBuilder 转换器

添加 PointOnAreaOverlayer 转换器

PointOnAreaOverlayer 转换器可将点要素叠加在区域要素上并合并这些要素的属性。因此,每个面要素会从包含在其边界内的点要素获取属性。不替换同名属性。

将 PointOnAreaOverlayer 转换器连接到 LOT_LINES AreaBuilder 转换器和 LOT_POINTS GeometryFilter。

步骤:
  1. 转换器 窗口的搜索文本框中输入 PointOnArea,然后按 ENTER 键。
  2. 双击 PointOnAreaOverlayer

    PointOnAreaOverlayer 转换器已添加到画布。

  3. 在 AreaBuilder 转换器上,单击 AREA 属性输出旁的黄色箭头,然后将该箭头拖动到 PointOnAreaOverlayer AREA 输入旁的红色箭头。

    AreaBuilder AREA 属性输出连接到 PointOnAreaOverlayer AREA 输入,箭头变为绿色。

    添加 PointOnAreaOverlayer 转换器

  4. 单击属性按钮并查看参数。

    将打开 PointOnAreaOverlayer 参数 对话框。

    叠加计数属性

    叠加计数属性可计算每个面中包含的点要素的数目。这对于验证数据并将要素发送到单独的输出以便进一步处理非常有用。在下一部分中,您将连接 Tester 转换器,以相应计算此数目和直接输出。

  5. 单击确定

    将关闭 PointOnAreaOverlayer 参数 对话框。

  6. 单击连接 LOT_POINTS GeometryFilter 和 LOT_POINTS 编写器要素类型的线,然后按 DELETE 键。

    GeometryFilter 与此编写器要素类型断开连接。

  7. 在 LOT_POINTS GeometryFilter 上,单击 POINT 输出旁的黄色箭头,然后将该箭头拖动到 PointOnAreaOverlayer POINT 输入旁的红色箭头。

    GeometryFilter POINT 输出连接到 PointOnAreaOverlayer POINT 输入,箭头变为绿色。

组织画布布局

当连接器开始彼此重叠时,您可以对工作空间进行调整,以便使用起来更为方便。

  • 要调整画布布局,单击工具 > 自动布局,然后在画布上拖动对象,与下图类似:

调整布局

提示提示:

替代方法是右键单击连接器线,然后单击快捷菜单上的在链接上插入折点并添加一个或多个折点,然后拖动每个折点,以便围绕其他转换器排列连接器。

添加 Tester 转换器

Tester 转换器可评估要素上的一个或多个测试,然后根据测试结果安排要素。

将 Tester 转换器连接到 PointOnAreaOverlayer 转换器。添加测试子句,用于评估 PointOnAreaOverlayer 转换器生成的叠加计数属性。将包含一个点要素的面要素发送到 PASSED 输出,将所有其他要素发送到 FAILED 输出。

步骤:
  1. 转换器 窗口的搜索文本框中输入 Tester,然后按 ENTER 键。
  2. 双击 Tester

    Tester 转换器已添加到画布。

  3. 将 PointOnAreaOverlayer AREA 输出连接到 Tester INPUT

    添加 Tester 转换器

  4. 单击 Tester 转换器上的属性按钮。

    将打开 Tester 参数 对话框。

    定义测试子句

  5. 双击左值字段中的第一个单元格,再单击向下箭头,然后选择 _overlaps
  6. 双击运算符字段中的第一个单元格,再单击箭头,然后选择 =
  7. 单击右值字段中的第一个单元格,然后输入 1
  8. 单击确定

    将关闭 Tester 参数 对话框。

重新配置 LOT_LINES 编写器要素类型

将 LOT_LINES 编写器要素类型重命名为 problem_polys 并对其进行配置,以生成未通过 Tester 转换器中所定义的测试子句的面要素。此外,添加一个名为 num_points 的用户属性来存储 _overlap 值。

步骤:
  1. 将 Tester 转换器上的 FAILED 输出连接到 LOT_LINES 目标要素上的 INPUT。
  2. 单击 LOT_LINES 目标要素上的属性按钮。

    将打开要素类型属性 对话框。

    配置 problem_polys 要素类型

  3. 单击常规选项卡。
  4. 要素类型名称文本框中输入 problem_polys
  5. 单击允许的几何箭头并选择 geodb_polyline
  6. 单击用户属性选项卡。
    添加用户属性
  7. 选择所有属性,然后按 DELETE 键。

    不需要 LOT_LINES 属性。

  8. 单击属性名称字段中的第一个空单元格并输入 num_points

    num_points 属性用于存储 Tester 转换器生成的 _overlay 属性值。此值代表每个失败要素的重叠点的数量。

  9. 单击数据类型箭头并选择整型
  10. 单击确定

    将关闭要素类型属性 对话框。

  11. 展开 Tester 转换器,将 _overlay 输出连接到 problem_polys 要素类型上的 num_points。

    Tester 转换器和要素类型连接应与下图类似:

    将 Tester 连接到 problem_polys 要素类型

重新配置 LOT_POINTS 编写器要素类型

将 LOT_POINTS 编写器要素类型重命名为 parcels 并对其进行配置,以生成通过在 Tester 转换器中定义的测试子句的面要素。

步骤:
  1. 将 Tester 转换器上的 PASSED 输出连接到 LOT_POINTS 目标要素上的 INPUT。
  2. 单击 LOT_POINTS 目标要素上的属性按钮。

    将打开要素类型属性 对话框。

    配置 parcels 要素类型

  3. 单击常规选项卡。
  4. 要素类型名称文本框中输入 parcels
  5. 单击允许的几何箭头并选择 geodb_polyline
  6. 单击用户属性选项卡。
    删除不需要的属性
  7. 仅选择名称以 igds_ 开头的属性,然后按 DELETE 键。

    igds_ 属性是 FME 阅读器创建的符号名称,用于简化从 IGDS 源元素类型到 FME 要素类型的转换。不需要将其包括在目标要素中。

  8. 单击确定

    将关闭要素类型属性 对话框。

    Tester 转换器和编写器连接应与以下类似:
    将 Tester 连接到 parcels 要素类型

使用可视化程序验证工作空间的输出

可视化程序 是内存中的查看器,允许您检查工作空间的输出,而无需生成数据或者覆盖现有数据。

将工作空间的输出重定向到可视化程序并验证结果。

步骤:
  1. 导航器 窗口中,展开工具参数,右键单击目标重定向,然后在快捷菜单中单击编辑参数

    将打开编辑参数 对话框。

    将输出重定向到可视化程序

  2. 单击目标重定向箭头并选择重定向到可视化程序
  3. 单击确定

    将关闭编辑参数 对话框。

  4. 在主菜单上,单击文件 > 运行转换

    将启动可视化程序

    使用可视化程序验证输出

  5. 展开视图空间 中的数据集。
  6. 单击工具条上的识别工具,选择要素,然后研究信息 窗口中显示的属性值。
  7. 您会观察到,工作空间基于存储在 MicroStation DGN (.par) 文件中的线要素创建面并获取 parcels_attr.mdb 数据库中所存储的点要素属性。此外,您还会观察到 Tester 转换器将未通过测试子句的要素发送到 problem_polys 要素类型。
  8. 退出可视化程序
  9. 在 Workbench 菜单上,单击文件 > 保存

将空间 ETL 工具保存为自定义格式

自定义格式是一种转换工作空间,它从 FME Workbench 导出为格式并在 FME 阅读器库中使用。它将保存为外部 .fds 文件并可导入到其他桌面上的阅读器库。

创建自定义格式会将格式添加到 FME 阅读器库。创建之后,随后使用库时,您可以在 FME Workbench 中编辑格式或从列表中删除格式。删除自定义格式会从桌面移除 .fds 文件。

步骤:
  1. Workbench 菜单上,单击文件 > 导出为自定义格式

    将打开设置自定义格式名称和描述 对话框。

    导出为自定义格式

  2. 新自定义格式名称文本框中输入 Custom_parcels
  3. 新自定义格式描述文本框中输入教程练习 3b:转换数据
  4. 单击确定

    默认情况下,会为自定义格式 (.fds) 启动另一个 Workbench 会话。在此工作空间中不执行任何操作。

  5. 单击文件 > 退出关闭自定义格式工作空间。
  6. 单击文件 > 退出关闭转换工作空间。

当您下次打开 FME Workbench 或创建新互操作连接时,该自定义格式会在 FME 中显示为一个选项。

本练习已完成。

继续下一个练习:练习 3c:使用源属性分隔数据

相关主题

9/15/2013