span8
span4
欢迎来到FME的《小世界5》教程。本文将介绍如何将数据导入Smallworld 5数据库,包括如何导入一个简单的几何对象。
FME不能在Smallworld数据库中创建新对象。只能加载到现有对象中。这意味着在导入时,FME Smallworld writer数据模式必须精确地匹配现有的Smallworld对象模式。这包括确保您知道哪些字段和几何图形是必需的,还确保您加载了有效的枚举列表(域)值。获取将接收导入数据的Smallworld对象的描述性案例报告非常有用。
在开始任何数据导入之前,最好在FME数据检查器中检查源数据集和Smallworld对象,以全面了解数据模式
Smallworld数据库中的电缆对象具有单一的中心线几何形状。您将从AutoCAD 3D地图数据集中为剑桥数据库的一个新分部导入一些建议的电缆。首先,检查目标Smallworld对象和源AutoCAD数据集。
1)检查源数据集
下载electric-networkproposed.dwg数据集。
打开FME数据检查器。点击文件>打开数据集:
使用FME数据检查器,打开源代码electric_networkProposed.dwg使用AutoCAD RealDWG阅读器。在参数上,设置AttributeSchema。
请注意: FME 2017 32bit不再支持AutoCAD 3D对象。AutoCAD 3d对象只在FME 2017的64位FME上可用。
AutoCAD文件electricity_cable层有一个状态属性“In service”和“Proposed”。您将只导入“建议”电缆,因为“在用”电缆已经存在于剑桥数据库中。
在本例中,由于在与.dwg文件相同的目录中有.prj文件,因此可以确定AutoCAD绘图的坐标系统- OSGB-GPS-2015(米)
2)比较Smallworld中的电缆和FME数据检查器
使用Smallworld应用程序管理器,打开Professional - Smallworld核心应用程序并检查Cambridge sample数据库。
在FME数据检查器中。点击文件>打开数据集:
读者 | Smallworld的4/5 |
读者数据集: | 本地主机:30000 |
读者坐标系统: | OSGB-GPS-2015 |
参数>服务: | FMENOFACTORY |
参数>表格列表: | electricity.cable |
比较电缆的微观世界和FME表示。
在FME中,线缆几何图形由单个几何图形(中心线)表示——在“Union Lane LV”中是一个多段路径几何图形。
3)检查目标模式
在小型GIS中,使用编辑器来检查电力。电缆对象模式。注意,sys_id字段名为“id”,它是键字段。如果你看一个电力的案例报告。这是一个强制性的领域。
Status属性是一个可能值的枚举列表:
电压属性是一个可能值的枚举列表:
在加载Status或Voltages属性时,需要确保设置了其中一个强制枚举值。
请注意源模式与目标模式之间的关系:
AutoCAD的来源 | 目标上的Smallworld | 行动 |
ID | ID | 比赛FME功能与Smallworld的对象 |
长度 | - | 没有更新,因为它是一个计算字段 |
作为。。而被知道 | 作为。。而被知道 | |
状态 | 状态 | 确保值匹配枚举值 |
电压 | 电压 | |
几何名称 | 中心线 |
在本例中没有涉及太多的模式映射。在大多数情况下,您需要添加一些FME模式映射转换器,如AttributeManager、AttributeCreator、AttributeRenamer、AttributeValueMapper或SchemaMapper。
请注意,Smallworld几何图形有一个名称:中心线
4)选择Smallworld的目的地替换
在Professional - Smallworld核心应用程序中,单击文件>版本以打开版本管理应用程序。
在版本管理应用程序,添加一个新的'替代',如果它还不存在:
数据集 | 替代的名称 |
电力 | fme_training |
双击可选项使其成为当前可选项。
5)生成工作区
打开FME工作台并在Start选项卡上选择Generate Workspace选项。
阅读器格式: | 欧特克的AutoCAD RealDWG DWG / DXF |
读者数据集: | electric-networkproposed.dwg |
读者坐标系统: | OSGB-GPS-2015 |
参数>集团3520 | 属性模式 |
参数>展开块到实体: | 取消选中 |
作家格式: | Smallworld的4/5 |
作家坐标。系统: | OSGB-GPS-2015 |
参数>服务: | FME |
参数>替代: | | fme_training |
(请务必使用|符号作为替代第一个字符)
当您将扩展块取消到实体中时,FME将只读取该块的插入点,而不读取块定义。当您将CAD数据加载到GIS中时,这通常是您想要的。
在“生成工作区”对话框中,在“导入功能类型定义”复选框。单击OK。
点击好
6)从进口的Smallworld作家特征类型
将出现“Import Writer Feature Types”对话框。输入通常的Smallworld连接参数。
点击参数按钮,选择:
点击好要关闭“导入功能类型”对话框。
7)选择AutoCAD图层
将打开“选择功能类型”对话框。这是AutoCAD层选择。选择electricity_cable和好,以生成工作区。
明智的做法是,无论何时添加了一个Smallworld写入器,都应该使用Import写入器功能类型选项。Smallworld模式通常与reader模式不同,正确的模式只能通过显式导入Smallworld特性类型模式来获得。
8)保存工作区
在本地保存工作区
9)连接Reader和Writer特征类型
将electricity_cable阅读器功能类型连接到新电源。有线作家的特点类型。
展开阅读器和写入器的属性列表。
请注意当前位置:FME Smallworld 5编写器处理Smallworld几何图形的方式与Smallworld 4完全不同。Smallworld 4版本的工作空间都附在本文的底部以供参考。几何类型不再作为属性公开,也不再使用sworld_geometry{}列表属性。旧的工作空间在Smallworld 5.1中仍然兼容。
10)过滤建议电缆
你只需要插入建议的电缆。添加一个测试变压器来保留“建议的”电缆。
11)设置几何形状名称
在数据检查器中,我们注意到cable对象有一个几何名称“中心线”。您需要设置FME几何图形的名称来匹配Smallworld几何列的名称。
添加一个几何属性设置后,您的测试和设置:
属性设置 | 几何名称 |
几何名称 | 中心线 |
在GeometryPropertySetter参数对话框中单击OK。
你的工作空间应该是这样的:
13)保存并运行
保存工作空间。运行转换。
在Professional - Smallworld核心应用程序中检查更新的数据。拟议中的电缆已沿橡树大道铺设。您可能必须选择View - Refresh。
在Smallworld GIS中,打开Smallworld Explorer。打开文件夹电力,电力网络和选择电缆。
问题?
最常见的数据加载错误是没有正确加载Smallworld几何图形。
在Smallworld Explorer中,如果几何列没有被标记,或者长度是0.0,那么您可能没有在GeometryPropertySetter中正确设置几何名称。在Writers菜单下,设置“重定向到检查应用程序”并重新运行工作区。在数据检查器中检查结果,以确保几何名称配置正确。
14)清理
在下一节中,您将重新加载数据。在Smallworld Explorer版本管理器中,选择“fme_training”选项,通过双击检查点并选择“rollback to checkpoint”来回滚到“begin”检查点。或者在Smallworld explorer中选择刚刚插入和删除的所有Oak Tree Avenue LV记录并提交删除操作。这会给你一个全新的开始。
此时,让FME默认执行数据库插入操作。如果我们想要更新现有的有线电视功能,我们需要使用更新操作。fme_db_operation格式属性用于执行更新。FME在Smallworld writer特性上使用' fme_db_operation '属性来指定每个特性的数据库操作。fme_db_operation属性可以设置为:
我们将在本教程系列的后续文章中更详细地讨论fme_db_operation属性。
在接下来的步骤中,如果在AutoCAD数据集中“known_as”属性的值为空,则将其设置为“connector”。
1)编辑工作区
继续编辑工作空间,或者打开工作空间smallworld4a-complete.fmwt。
这个部分完成的工作空间是:smallworld4b-complete.fmwt。
2)修改测试仪
您不需要更新已命名的线缆,如“Union Lane LV”或“Lower Milton Rd LV”,以便您可以过滤掉它们。打开测试器属性并添加测试:
known_as属性是空字符串
3)条件测试加入AttributeCreator
在测试人员和GeometryPropertySetter之间插入一个AttributeCreator转换器。现在向AttributeCreator添加几个条件表达式。要在AttributeCreator中创建条件表达式,请使用属性值列上的菜单并选择条件值…
第一个条件表达式将设置作为。。而被知道属性:
如果known_as是" attribute is empty sting "则输出值为" connector "
然后设置fme_db_operation属性:
如果status = " In service ",则输出值为UPDATE;如果status = " Proposed ",则输出值为INSERT
(记住FME对于属性名和属性值都是区分大小写的)
工作空间现在看起来像这样:
4)测试工作流亚搏在线
在创建更复杂的工作流时,最好在尝试将数据加载到数据库之前尝亚搏在线试并测试它们。在workbench中,在writer菜单上,设置重定向到Inspection应用程序。
然后运行工作区,检查工作区连接器上的特性计数,并在FME数据检查器中检查结果。您应该看到所有的电缆,除了那些值为“known_as”的电缆。所有“known_as”值应该是“connector”或“Oak Tree Avenue LV”。“在用”电缆应该有一个fme_db_operation =更新。“建议的”电缆应该具有fme_db_operation = INSERT。
5)保存并运行
在工作台中,在writer菜单上,取消对Inspection应用程序的重定向。保存工作空间。运行转换。
在专业的Smallworld核心GIS应用中查看更新的数据。
您已经将一些线缆加载到fme_training备选方案中,并更新了一些现有线缆。
FME Smallworld 5编写器处理Smallworld几何图形的方式与Smallword 4完全不同。几何类型不再作为属性公开,也不再使用sworld_geometry{}列表属性。好消息是:你的旧工作空间在FME 2017 / Smallworld 5中仍然兼容。
附件是2015/2016版的工作空间供参考。
©2019安全亚搏在线软件公司法律