好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

FME高级培训手册-3.动态工作空间.doc

19页
  • 卖家[上传人]:枫**
  • 文档编号:485121695
  • 上传时间:2023-07-09
  • 文档格式:DOC
  • 文档大小:922KB
  • / 19 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • FME高级培训手册 SAFE SOFTWARE目录动态 Workspace 2为什么要创建动态 workspace ? 2什么可以设成动态的? 2动态 workspace 简介 3动态 workspace 3用动态 workspace 分发数据 5传统 workspace 5动态数据分发 7仓U建动态 workspace 7选择数据源要素类别 8改变动态目标数据结构 9数据结构读取(Schema Readers) 10配置 Schema Reader. 11高级动态数据结构专题 11通用输出(Gen eric Writer ) 12通用输出格式 12添加通用输出模块 12高级通用输出模块配置 14回顾 15从中学到了些什么? 15# / 15FME高级培训手册 SAFE SOFTWARE动态 Workspace动态工作空间(workspace)为数据转换提供了极大的灵活性,并最大限度的降低了工作空间的 后期维护为什么要创建动态 workspace?传统的FME工作空间很大程度上受到数据源和目标数据集数据结构( schema)的束缚很多情 况下,这种制约正是我们所需要的。

      但是在有些情况下,工作空间需要独立于数据源和目标数 据集的数据结构动态工作空间打破了对数据源和目标数据集数据结构的束缚,常用于以下情况:对所有的数据进行简单的数据转换(如剪切、坐标系转换) ,不论数据结构如何;数据源的数据结构未知或没有严格定义;特殊的数据转换;目标数据格式可能不同;需要对工作空间进行长期维护通常来说,使用 FME Workbench进行数据转换是非常简单的,但是在长期的维护过程中,要不 断地对它们进行更新就变得很繁琐这是因为,一旦向数据源中添加了要素或属性,就必须要 对工作空间进行编辑但是有些时候,数据所有者并没有通知你,数据结构改变了什么可以设成动态的?在FME工作空间中,有许多部分都可以设置成动态的,如下:数据结构:数据源要素类型( Source Feature Types)可以从数据源中读取(read)任意一组要素类别由 Merge Filter 实现数据结构:目标要素类型( Destination Feature Types)可以从数据源中读取(read)任意一组要素类别,并且输出( write )对应的一组要素类别 由 Dynamic mode 实现数据结构:属性(Attributes )可以在源要素类别上读取任意一组属性,并且以相同的数据结构输出( write )由 Dynamic mode 实现数据格式可以输出(write )任意格式,而不需添加多个写模块( writer)由 Generic Writer 实现动态workspace简介这一部分介绍动态工作空间的基本内容。

      下面创建一个简单的工作空间,将 Map Info TAB数据集加载到Autodesk SDF数据库中如果数据源中添加了新的属性,工作空间要能够更新已有的SDF 表你要用一个新的 Map info TAB Zo ning表来更新In teropolisDatabase SDF数据库,并且用新的带有 一个附加属性 maintenance-ID的Mapinfo TAB数据来更新已有的 CityParks表另外,你还需要 剪切数据集,使之与已有的 Autodesk SDF的数据范围相匹配 Cmf-a-.M'JKU ..ISDF3?] J'B GauCMF LTEREAAutodesk SDF 数据库(目标数据集)中需要添加一个新的表,你就必要完成这个任务,传统工作空间的处理流程如下图所示:# / 15FME高级培训手册 SAFE SOFTWARE3.峙(Mpm NtHn伊 for AjytftrtpH H rrto 平 区MM $«时申9>Help-jII^Z1ICanal□ Overwrrtf file2. 在Destination的Setting,下方,取消选择Overwrite file选项,确保不删除已经存在的 SDF数据库一一除非你想添加数据库。

      你新添加的workspace就会有一个源要素类型定义和 一个目标要素类型定义圈 ,”斗 乂)垃阿($0即 討|编辑目标要素类别定义属性,并且在Parameters标签下设置:Overwrite Table: Yes这样就能确保当更新 SDF数据库中存在 的表时,任意新属性都会添加到 SDF结构中I? XiRairerneier MgmeParameter ValueD阳ul\ 自曲电聞色怕伯d identity columi PRIMARYINDEXWirter ModeLNHERIT_FROM_WRITER■ EGeomelry Colunnn NameGeomelryOvarwrite Table1 VGeneral & User AttributeE A Famal: Athributes 3& Parameters4. 在Source Dataset菜单中选择AddDataset添加数据集:C:\FMEData\Resources\UC2009_Dy namic'l nteropolis Updates'CityExtents.gml,你将 使用它进行剪切操作5. 添加Clipper函数,如下图所示将其进行连接。

      这个工作空间要比前面介绍的传统工作空间简单一些J:圍 ^fC. INFOIlEQipp&f0 OLTSSDE *6. 运行工作空间,更新数据库 C:\FMEData\Data\DemoData\InteropolisDatabase.sdf,在 FMEUniversal Viewer中检查运行结果Zoning表已经添加到数据库中, 并且CityParks表也被更新了,增加了 maintenance_ID属性在下一节,你将会看到动态工作空间如何工作的详细介绍 / 15FME高级培训手册 SAFE SOFTWARE用动态workspace分发数据在这部分中,你会更加详细地了解传统工作空间与动态工作空间的比较它们有各自的优势, 但是要了解哪一种方式更适合特定的情况,就能更好地帮助你创建和维护 FME项目传统 workspaceWorkspace 一般的流程配置如下图所示 这个例子是将 InteropolisDatabase.sdf数据库转换成Autodesk AutoCAD 3D Object 数据在上图中你会发现函数有重复的,许多是相同的,包含非常相似的参数也有许多并列的流程(pipeline) 如 Waterlines和Roads。

      另一个突出的问题是,如果数据源 SDF数据库添加了另外一个表,例如 Zoing表,那么需要采取一系列步骤来更新这个工作空间:导入源要素类型定义添加一个新的转换过程(大部分用剪切和粘贴)添加一个新的目标要素类型定义确保属性正确映射(AttributeCopier)如果要用新属性更新一些 SDF表,需要用一些相似的步骤来更新要素类型从长远来说,这需要一些精力使工作空间相对目标数据库保持更新SchemaMapper函数能帮助减少工作空间的重复性工作,使工作空间的长期维护工作变得容易 很多这是因为结构影射是由电子表格或数据库表外部驱动的,查看下面工作空间:这种工作空间的设计方式叫做"集中工作流( central workflow ) ”所有要素都会经过一组通用的函数 在这个例子里就是一些 SchemaMappers但是对工作空间的长期维护仍然十分繁琐为了 Zoning和CityParks,你需要更新这个工作空间,除了地一部分的 SDF数据库,还必须进行以下操作:更新模式映像电子表格导入或更新源要素类型用新的目标要素类型名更新 AttributeFilter添加新的目标要素类型或更新现有的1. 打开工作空间Example02 Begin.fmw并运行2.检查运行结果(在查看结果时,确信你使用的是 取器一一否则,你看不到对象数据属性)Autodesk AutoCAD Map 3D Object Data 读3.4.ClwyPark?Muni cip aJ 衣 a dJ 七 riE rp.o a.d.E r ima r ySoI e z-:1 zidarj'A-z u*e检查工作空间,查看采用何种操作来添加 要素类别Zones (之前加载到如果你有时间,更新工作空间。

      就可以使用新的模式映像电子表格SDF数据库),更新CityParksSchemaMapping02.csv工作空间Example02 Complete.fmw展示了最终结果,并且带有注记,记述了更新工作空间需要 的步骤使用 SchemaMapper确实使工作空间的维护变得简单了接下来创建一个根本不需要 任何维护的工作空间动态数据分发下面使用第一节里用的动态工作空间功能,来创建一个比上一个更灵活,更容易维护的工作空 间你将会体验创建一个动态工作空间的所有步骤,尽管最终结果是一个使用 SchemaMapping02.csv定义的结构映射的工作空间,但是仍然具有动态工作空间的优点仓U建动态 workspace你要做的不是修改工作空间 Example 02 Complete.fmw,而是要从头做起,在适当时候,从原始工作空间中复制 SchemaMapper函数到新工作空间中1. 打开一个新的 workbench (仍然开启 Example 02 Complete.fmw)2. 如右图所示,填写 New Workspace对话框,确认在勾选框 Dynamic Workflow 一栏打勾3.选择 Source Format Settings 检查 RemoveSchema Qualifier.这会删除结构中的SDF用户名。

      4.在同一个设置下, 选择Table List,选择要读 取的SDF表格使用源/目标要素类别定义, 你就能创建一个非常简单的工作空间Sounx Format: Autodesk M^pGulde Enterprise SDF v 口Dataset: MEDataVDataVDemoDataUhter&polisDatabase^df] Q +|DestinationFormat; Autode^t AutoCAD Map 3D Object Data “ (Z~]Settings...Im part Feature Type Definitions5 .运行工作空间,使用 FME Un iversal ViewerDynamic workflowOK , €iir*wl来检查结果(确定在查看结果时,使用的是Autodesk AutoCAD Map 3D Object Data reader 否则,你就看不到对象数据属性),你已经读取了 SDF数据表中的所有表格,在 AutoCAD Map 3D输出文件中就会有读取数据记录What happe ned un der the covers?通过设置 Dynamic Workflow , FME。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.