练习 3b:转换数据和使用可视化程序
转换器是一个 FME Workbench 对象,用于执行要素或方案的特定重建。它是一个可视对象,可以将其添加到工作空间画布,并在源阅读器和编写器要素类型之间建立连接,或连接到其他转换器。
本练习通过将 FME 转换器添加到在“练习 3a:空间 ETL 入门”中创建的空间 ETL 工具来向您介绍使用 FME 转换器的基础知识。您将创建一个用于转换 MGE 宗地数据的空间 ETL 工具,使用测试子句计算新要素,然后生成输出(失败要素或通过要素)。最后,您将使用可视化程序 检查工作空间的输出,而无需生成数据。完成本练习时您会将工作空间导出为自定义格式。
使用 FME Workbench 执行以下任务:
- 添加 AreaBuilder 转换器,从 LOT_LINES 源要素类型创建面。
- 添加 PointOnAreaOverlayer 转换器,将 LOT_POINTS 要素叠加在面要素上并合并这些要素的属性。
- 添加 Tester 转换器,评估并计数每个面要素内的点要素。
- 将工作空间的输出重定向到可视化程序 并检查工作空间的输出。
- 将工作空间导出为自定义格式。
启动 ArcMap
- 启动 ArcMap。
- 单击标准 工具条上的目录窗口按钮 。
-
在位置文本框中输入 C:\arcgis\ArcTutor\Data Interoperability\parcels\,然后按 ENTER 键。
该位置已添加到目录树。
复制并重命名空间 ETL 工具
- 右键单击导入 MGE 宗地工具,然后单击快捷菜单上的复制。
- 右键单击“宗地”工具箱,然后单击快捷菜单上的粘贴。
- 右键单击导入 MGE 宗地(2) 工具,单击快捷菜单上的重命名,然后输入自定义宗地。
- 右键单击自定义宗地工具,然后单击编辑。
将启动 Workbench。
添加 AreaBuilder 转换器
AreaBuilder 转换器通过构成闭合形状的线来创建具有正确拓扑的面要素。
将 AreaBuilder 转换器连接到 LOT_LINES GeometryFilter。
- 确认转换器库 可用。要从主菜单打开“转换器”窗口,可单击视图 > 窗口 > 转换器库。
- 在转换器 窗口的搜索文本框中输入 areabuilder,然后按 ENTER 键。
-
双击 AreaBuilder。
AreaBuilder 转换器已添加到画布。
-
单击连接 LOT_LINES GeometryFilter 和 LOT_LINES 目标要素的线,然后按 DELETE 键。
GeometryFilter 与 LOT_LINES 编写器要素类型断开连接。
- 在 LOT_LINES GeometryFilter 上,单击 LINE 属性输出旁的黄色箭头,然后将该箭头拖动到 AreaBuilder 输入旁的红色箭头。
GeometryFilter 输出连接到 AreaBuilder 输入,箭头变为绿色。
添加 PointOnAreaOverlayer 转换器
PointOnAreaOverlayer 转换器可将点要素叠加在区域要素上并合并这些要素的属性。因此,每个面要素会从包含在其边界内的点要素获取属性。不替换同名属性。
将 PointOnAreaOverlayer 转换器连接到 LOT_LINES AreaBuilder 转换器和 LOT_POINTS GeometryFilter。
- 在转换器 窗口的搜索文本框中输入 PointOnArea,然后按 ENTER 键。
-
双击 PointOnAreaOverlayer。
PointOnAreaOverlayer 转换器已添加到画布。
- 在 AreaBuilder 转换器上,单击 AREA 属性输出旁的黄色箭头,然后将该箭头拖动到 PointOnAreaOverlayer AREA 输入旁的红色箭头。
AreaBuilder AREA 属性输出连接到 PointOnAreaOverlayer AREA 输入,箭头变为绿色。
- 单击属性按钮并查看参数。
将打开 PointOnAreaOverlayer 参数 对话框。
叠加计数属性可计算每个面中包含的点要素的数目。这对于验证数据并将要素发送到单独的输出以便进一步处理非常有用。在下一部分中,您将连接 Tester 转换器,以相应计算此数目和直接输出。
- 单击确定。
将关闭 PointOnAreaOverlayer 参数 对话框。
-
单击连接 LOT_POINTS GeometryFilter 和 LOT_POINTS 编写器要素类型的线,然后按 DELETE 键。
GeometryFilter 与此编写器要素类型断开连接。
- 在 LOT_POINTS GeometryFilter 上,单击 POINT 输出旁的黄色箭头,然后将该箭头拖动到 PointOnAreaOverlayer POINT 输入旁的红色箭头。
GeometryFilter POINT 输出连接到 PointOnAreaOverlayer POINT 输入,箭头变为绿色。
组织画布布局
当连接器开始彼此重叠时,您可以对工作空间进行调整,以便使用起来更为方便。
- 要调整画布布局,单击工具 > 自动布局,然后在画布上拖动对象,与下图类似:
替代方法是右键单击连接器线,然后单击快捷菜单上的在链接上插入折点并添加一个或多个折点,然后拖动每个折点,以便围绕其他转换器排列连接器。
添加 Tester 转换器
Tester 转换器可评估要素上的一个或多个测试,然后根据测试结果安排要素。
将 Tester 转换器连接到 PointOnAreaOverlayer 转换器。添加测试子句,用于评估 PointOnAreaOverlayer 转换器生成的叠加计数属性。将包含一个点要素的面要素发送到 PASSED 输出,将所有其他要素发送到 FAILED 输出。
- 在转换器 窗口的搜索文本框中输入 Tester,然后按 ENTER 键。
-
双击 Tester。
Tester 转换器已添加到画布。
- 将 PointOnAreaOverlayer AREA 输出连接到 Tester INPUT。
- 单击 Tester 转换器上的属性按钮。
将打开 Tester 参数 对话框。
- 双击左值字段中的第一个单元格,再单击向下箭头,然后选择 _overlaps。
- 双击运算符字段中的第一个单元格,再单击箭头,然后选择 =。
- 单击右值字段中的第一个单元格,然后输入 1。
- 单击确定。
将关闭 Tester 参数 对话框。
重新配置 LOT_LINES 编写器要素类型
将 LOT_LINES 编写器要素类型重命名为 problem_polys 并对其进行配置,以生成未通过 Tester 转换器中所定义的测试子句的面要素。此外,添加一个名为 num_points 的用户属性来存储 _overlap 值。
- 将 Tester 转换器上的 FAILED 输出连接到 LOT_LINES 目标要素上的 INPUT。
- 单击 LOT_LINES 目标要素上的属性按钮。
将打开要素类型属性 对话框。
- 单击常规选项卡。
- 在要素类型名称文本框中输入 problem_polys。
- 单击允许的几何箭头并选择 geodb_polyline。
- 单击用户属性选项卡。
- 选择所有属性,然后按 DELETE 键。
不需要 LOT_LINES 属性。
- 单击属性名称字段中的第一个空单元格并输入 num_points。
num_points 属性用于存储 Tester 转换器生成的 _overlay 属性值。此值代表每个失败要素的重叠点的数量。
- 单击数据类型箭头并选择整型。
- 单击确定。
将关闭要素类型属性 对话框。
- 展开 Tester 转换器,将 _overlay 输出连接到 problem_polys 要素类型上的 num_points。
Tester 转换器和要素类型连接应与下图类似:
重新配置 LOT_POINTS 编写器要素类型
将 LOT_POINTS 编写器要素类型重命名为 parcels 并对其进行配置,以生成通过在 Tester 转换器中定义的测试子句的面要素。
- 将 Tester 转换器上的 PASSED 输出连接到 LOT_POINTS 目标要素上的 INPUT。
- 单击 LOT_POINTS 目标要素上的属性按钮。
将打开要素类型属性 对话框。
- 单击常规选项卡。
- 在要素类型名称文本框中输入 parcels。
- 单击允许的几何箭头并选择 geodb_polyline。
- 单击用户属性选项卡。
- 仅选择名称以 igds_ 开头的属性,然后按 DELETE 键。
igds_ 属性是 FME 阅读器创建的符号名称,用于简化从 IGDS 源元素类型到 FME 要素类型的转换。不需要将其包括在目标要素中。
- 单击确定。
将关闭要素类型属性 对话框。
Tester 转换器和编写器连接应与以下类似:
使用可视化程序验证工作空间的输出
可视化程序 是内存中的查看器,允许您检查工作空间的输出,而无需生成数据或者覆盖现有数据。
将工作空间的输出重定向到可视化程序并验证结果。
-
在导航器 窗口中,展开工具参数,右键单击目标重定向,然后在快捷菜单中单击编辑参数。
将打开编辑参数 对话框。
- 单击目标重定向箭头并选择重定向到可视化程序。
- 单击确定。
将关闭编辑参数 对话框。
-
在主菜单上,单击文件 > 运行转换。
将启动可视化程序。
- 展开视图空间 中的数据集。
- 单击工具条上的识别工具,选择要素,然后研究信息 窗口中显示的属性值。
- 退出可视化程序。
- 在 Workbench 菜单上,单击文件 > 保存。
将空间 ETL 工具保存为自定义格式
自定义格式是一种转换工作空间,它从 FME Workbench 导出为格式并在 FME 阅读器库中使用。它将保存为外部 .fds 文件并可导入到其他桌面上的阅读器库。
创建自定义格式会将格式添加到 FME 阅读器库。创建之后,随后使用库时,您可以在 FME Workbench 中编辑格式或从列表中删除格式。删除自定义格式会从桌面移除 .fds 文件。
-
在 Workbench 菜单上,单击文件 > 导出为自定义格式。
将打开设置自定义格式名称和描述 对话框。
- 在新自定义格式名称文本框中输入 Custom_parcels。
- 在新自定义格式描述文本框中输入教程练习 3b:转换数据。
- 单击确定。
默认情况下,会为自定义格式 (.fds) 启动另一个 Workbench 会话。在此工作空间中不执行任何操作。
- 单击文件 > 退出关闭自定义格式工作空间。
- 单击文件 > 退出关闭转换工作空间。
当您下次打开 FME Workbench 或创建新互操作连接时,该自定义格式会在 FME 中显示为一个选项。
本练习已完成。
继续下一个练习:练习 3c:使用源属性分隔数据。