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”,它是键字段。如果你看一下electricity.cable的情况报告,这是一个必填字段。
状态属性是一个枚举列表可能值:
电压属性是一个枚举列表可能值:
当装载状态或电压的属性,你需要确保这些强制性枚举值中的一个设定。
注意源模式如何与目标架构:
AutoCAD的来源 | 目标上的Smallworld | 行动 |
ID | ID | 比赛FME设有Smallworld的对象 |
长度 | - | 没有更新,因为它是一个计算字段 |
作为。。而被知道 | 作为。。而被知道 | |
状态 | 状态 | 确保值匹配枚举值 |
电压 | 电压 | |
几何名称 | 中心线 |
在这个例子中没有太多的模式映射参与。在大多数情况下,你需要添加一些FME架构映射变压器如AttributeManager,AttributeCreator,AttributeRenamer,AttributeValueMapper,或SchemaMapper。
需要注意的是,Smallworld的几何形状有一个名字:中心线
4)选择Smallworld的目的地替换
在专业 - Smallworld核心应用程序,单击文件>版本打开版本管理应用程序。
在版本管理应用程序,添加了新的“另类”,如果它不存在:
数据集 | 替代的名称 |
电力 | fme_training |
在替代双击使它成为当前的选择。
5)生成工作区
打开FME工作台和启动选项卡上,选择生成工作空间的选项。
阅读器格式: | 欧特克的AutoCAD RealDWG DWG / DXF |
读者数据集: | electric-networkproposed.dwg |
读者坐标系统: | OSGB-GPS-2015 |
参数>集团3520 | 属性方案 |
参数>展开块到实体: | 取消选中 |
作家格式: | Smallworld的4/5 |
作家坐标。系统: | OSGB-GPS-2015 |
参数>服务: | FME |
参数>替代: | | fme_training |
(请务必使用|符号作为替代第一个字符)
如果没有选择此展开块成实体,FME将只读取该块的插入点,而不会读取块定义。这通常是你想要的装载CAD数据到GIS的时候。
在生成工作区对话框,放在一个对勾“导入功能类型定义”复选框。单击确定。
点击好
6)从进口的Smallworld作家特征类型
将出现“导入作家特征类型”对话框。进入传统的Smallworld连接参数。
点击参数按钮,然后选择:
点击好关闭导入功能类型对话框。
7)选择AutoCAD图层
选择特征类型对话框打开。这是AutoCAD的层选择。选择electricity_cable和好,以产生工作区。
最好是使用时添加了Smallworld的作家导入作家特征类型选项。该架构的Smallworld通常将读者的模式不同,正确的模式只能通过显式导入Smallworld的功能型架构来获得。
8)保存工作区
在本地保存工作区在
9)连接Reader和Writer特征类型
连接electricity_cable读卡器功能型新electricity.cable作家特征类型。
展开为读者和作家的属性列表。
请注意:本FME的Smallworld 5作家处理以完全不同的方式来的Smallworld 4的Smallworld几何形状。的工作空间的Smallworld的4个版本都将被附加在本文以供参考的底部。几何类型不再暴露属性和不再使用sworld_geometry {}列表中的属性。旧的工作空间仍然在Smallworld的5.1兼容。
10)过滤建议电缆
你只需要插入建议电缆。添加测试变压器,以保持“建议”电缆。
11)设置几何形状名称
在数据检查,我们注意到电缆对象具有几何形状的名字“中心线”。您需要设置FME几何形状的名称相匹配的Smallworld的几何列的名称。
添加GeometryPropertySetter您的测试和设置后:
属性设置 | 几何名称 |
几何名称 | 中心线 |
在GeometryPropertySetter参数对话框中单击确定。
您的工作空间应该是这样的:
13)保存并运行
保存工作区。运行转换。
Smallworld核心应用 - 在专业检查更新的数据。所提出的线缆已经沿着橡树大道补充道。您可能需要选择查看 - 刷新。
在Smallworld的GIS,打开资源管理器的Smallworld。打开文件夹电力,电网和选择电缆。
问题?
最常见的数据加载错误没有正确加载的Smallworld的几何形状。
在资源管理器中的Smallworld,如果几何列没有被标记或长度是0.0,那么你有可能没有正确的GeometryPropertySetter设置几何图形的名字。根据作家菜单,设置“重定向到检测中的应用”,然后重新运行工作空间。检查在数据检查的结果,以确保几何名称正确配置。
14)清理
在下一节中,你要重新加载数据。在资源管理器中的Smallworld版本管理器,选择“fme_training”替代,通过检查点双击,然后选择回滚到检查点回滚到“开始”检查点。或在Smallworld的浏览器中选择你刚插入的橡树大道LV记录,并将其删除,并提交删除。这会给你一个全新的开始。
在这一点上,你让FME默认数据库插入操作。如果我们想更新现有的有线电视功能,我们就需要使用更新操作。该fme_db_operation格式属性是用来做更新。FME使用的Smallworld的作家“fme_db_operation”属性功能,以指定每个功能的数据库操作。该fme_db_operation属性可以设置为:
我们要讨论的fme_db_operation属性更详细地在本教程系列后面的文章。
在接下来的步骤中,你要设置“known_as”属性“连接器”的值,如果它在AutoCAD的数据集为空值。
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安全亚搏在线软件公司法律