基于FME的空间数据处理实现
2020-10-21
来源:榕意旅游网
维普资讯 http://www.cqvip.com 118 四川测绘第30卷第3期2007年6月 基于FME的空间数据处理实现 熊登亮,贵仁义,赵俊三,潘邦龙 (1.昆明理工大学国土资源工程学院,云南昆明650093) [摘 要]本文提出了空间数据处理的几个关键点,引入了Feature Manipulation Engine(以下简称FME)基于 语义的数据转换处理软件,通过应用实例,介绍了如何在FME中实现各种空间数据处理,利用FME Plug—in (SDK)开发新的数据格式插件,及利用FME Object调用管道来开发集成的数据批处理程序,为空间数据处 理提供了一个很好的思路。 [关键词]FME;语义转换;MAPGIS明码格式;坐标系;管道 [中图分类号]P208 [文献标识码]A [文章编号]1001—8379(2007)03—0118一o4 IMPLEMENTATION OF SPATIAL DATA OPERATION BASED ON FME XIONG Deng—liang,GUI Ren—yi,ZHAO Jun—san,PAN Bang—long (Faculty of Land Resource Engineering,Kunming University of Science and Technology.Kunming 650093,China) Abstract:In this paper,the key issues in data operation were discussed firstly,then introduced the data transformation operation s0lh旧 一FME,based on it,the implementation of spatial data operation was mainly introduced,and al- SO expounded how tO use FME Plug—in(SDK)and FME object Ot devdop new data format in program.In the end, hte paper provided a good example for spatial data operation. Key words:FME;Semantic transformation;MAPGIS format;Coordinate system;Pipeline 1 引言 系中,要作多种的坐标系变换。 近年来,随着国家信息化建设的迅速发展,空 3)目的数据格式:在由多源的数据转换到目标 间数据的应用越来越广泛,随之的数据加工也变得 GIS中时,要防止空间数据信息的丢失,以及保留 多样和复杂,比如数据的格式转换、坐标系转换、 要素的制图符号表现,各类要素需要重新分层。 拓扑处理、图层叠加、要素及图层的提取、属性操 4)数据组织方式:地图要素要分层分幅分几何 作、数据的转移、数据整合等…,各项繁杂的数据 类型,数据文件按分层放置在不同目录下,最终以 加工常常会使空间数据中的一些信息丢失,或者加 地图库方式在目标GIS下调用。由于各地区大比例 工后必须在目标CAD或GIS系统中对数据进行再 尺数据分幅规则不同,图号命名规则不同,地图数 处理,才能得以应用 】。怎样在数据加工过程中减 据还要作坐标转换处理,所以要整合不同地区的数 少信息的丢失,提高空间数据处理的速度和质量, 据要统一分幅统一图号命名规则。 减少空间数据处理的工作量,是数据加工的关键 5)拓扑要求:在空间数据加工处理过程中要求 点。本文通过实例,具体介绍了如何利用FME及 保持原来的拓扑关系或根据目标GIS的要求重建拓 其附带的开发组件,高效地进行一系列的数据转换 扑关系,如何保持转换后拓扑关系的正确性,往往 处理。 需要作一定的技术处理。 2 空间数据处理的关键点 6)多比例尺数据结构:在一些系统中,比如土 在空间数据加工处理过程中,经常会遇到以下 地管理信息系统,往往需要用到不同比例尺数据, 一些问题: 比如1:500、1:1000、1:2000,或者是小比例尺 1)数据多源:大比例尺数据源多来自各县市的 数据1:10000、1:50000等,多种比例尺的数据要 基础测绘单位,由于各地的测绘状况不同,数据源 放在一个DBS地图数据库中,所以不同比例尺的数 表现出多样性,数据格式不同、坐标系不同、数据 据要有个很好的文件命名规则。 质量参差不齐,往往需要根据实际应用GIS系统的 要解决好以上这些问题,有许多不同的实现方 要求,转换成统一格式。 法,但从实际应用效果来看都不太理想-3 J。本人尝 2)坐标系多样:大比例尺地图一般都是各地 试应用国外强大的空间数据转换处理软件FME,通 的地方坐标系,投影中央经线不同,平移量不同, 过开发新的数据格式插件,将CAD数据转换为国内 最终我们要把同一个地区的数据统一到同样的坐标 MAPGIS要求的格式,取得了比较理想的结果,在 维普资讯 http://www.cqvip.com 四川测绘第3O卷第3期2007年6月 下文中详细地介绍了实现过程。 3 FME空间数据转换原理一语义转换 3.1 FME简介 FME(Feature Manipulate Engineering,简称 FME)Suite是加拿大Safe Software公司推出的空间 数据转换处理系统,该系统基于OpenGIS组织提出 的新的数据转换理念“语义转换”,通过提供在转 换过程中重新构造数据的功能,实现了超过100种 不同空间数据格式(模型)之间的转换,为进行快 速、高质量、多需求的数据转换应用提供了高效、 可靠的手段。 3.2 FME空间数据转换的原理一语义转换 FME语义转换属于数据格式转换的范畴,但有 别于传统的数据格式转换。语义转换是通过在转换 过程中重新构造数据,利用语义文件映射提取源数 据的不同层面和内容,来满足最终用户或系统的需 求。FME语义转换利用可重新定义输人或输出数据 的引擎(基于强大的数据模型),来保持内部一致 性和可扩展性。输人、输出格式或系统的数据模型 映射到该引擎,不再需要满足最低公用标准的要 求,改变了传统格式转换应用程序对各自系统的种 种限制要求。FME空间数据转换采用语义映射文件 (Semantic mapping file)来控制整个转换的流程。 基于FME平台的语义转换流程,如图1。 图中的语义映射文件数据库实际上是空间数据 宿主软件的要素编码对照表,而语义映射文件,是 数据转换需遵循的一系列规则,在数据转换过程 中,由这些规则驱动所有的FME模数操作。FME 语义映射文件拥有自己的宏变量和函数。通过编 制语义映射文件,用户可以灵活地控制诸如几何数 据变换和坐标系统变换等复杂的数据转换操作。语 义映射文件可以重复使用,并可以进行批量处理, 从而为大批量的数据转换提供了诸多方便。 4基于FME的空间数据转换应用 4.1 编写MAPGIS明码格式插件 FME虽已支持上百种的格式,但是还没有加人 国产的各GIS软件的数据格式,本人利用FME提供 的FME Plug—in(SDK)开发包,用C++语言编 写了MAPGIS明码格式插件,这样MAPGIS明码格 式就可以与FME提供的其它格式相互转换,并且 可以在转换过程中执行FME所提供的处理功能。 我们在加人了MAPGIS明码格式后,在FME的For- mats Gallery对话框中可以看到我们加人的格式及其 ll9 相关的信息。 4.2自定义坐标系转换 根据FME坐标系定义的格式,可以添加定义自 己的地球椭球、投影坐标系通常在实际应用中,我 们遇到所使用的大比例尺数据源都是各地区的地方 坐标系,在FME的自定义坐标文件中,加人新的坐 标系,这样在FME的转换过程中可以实现不同坐标 系之间的转换,这个转换可以用管道的形式实现, 也可以直接配置源数据及目标数据的坐标系来实 现。 以下是我们定义的昆明市的统一的自定义投影 坐标系,它采用Gauss--Kruge投影方式,Krasovsky 1940椭球,投影中央经线102.5度,投影中央纬线 0度,东平移500000米,北平移0米。 定义格式如下: COORDINATE—SYSTEM—DEF Beijing一昆明 地区统一投影一102.5\ DESC—NM”Beijing一昆明地区统一投影一 102.5”\ EL NAME KRASOV\ PROJ TM\ UNrr ME rER\ PARM1 102.5\ ORG—LA1’0.0\ MAP—SCL 1.0| SCL_RED 0.9996| X—OFF 500000.000\ Y OFF 0.00 图1 FME语义转换流程 我们把上面定义的坐标写在FME安装目录下的 l_ocalCoordSysDefs.fme文件里,就可以使用了。图2 显示的是在数据处理过程中我们调用Reprojector转 换功能,在Reprojector中配置源坐标系及目标坐标 系,在配置时可以在Coordinate System Gallery对话 框中选择已定义过的坐标系,可以看到我们定义的 昆明地区的坐标系已经在列表中了。 维普资讯 http://www.cqvip.com l2O 四川测绘第30卷第3期2007年6月 图2 FME中自定义坐标系的实现 4.3连接数据库 某一编码的要素在MAPGIS中对应它的符号、 颜色,我们把要素编码与它在MAPGIS中的符号、 和它所在的数据层了;如果要求点、线、面分在不 同的层,还可以再加一个几何类型的分类GEOME— TRYFILTER,在filname赋值中也加入相应的几何 信息。 附带的符号参数、颜色等作成数据库的一个对应关 系,通过Joiner转换功能来关联数据库,将关联到 的符号信息传递给目标格式MAPGIS明码的固定所 有字段,来控制生成的要素的符号,例如,我们将 要素关联到数据库表中的“主线型”字段信息传递 给属性“MapgisAscii—linetype”,转出的要素线型 4.5文件命名规则 由于许多数据项目中,一个地区的数据往往涉 及到多个比例尺的数据,数据按分类及几何特征分 为若干个层,所有这些数据又要在同一个地图库中 整合 J,文件命名规则变得很重要了,我们针对管 就是符号库中相应的线型,经过这样转换的数据其 符号表现信息会保留,不需要再到MAPGIS中进行 修改,大大减少了工作量。 4.4数据重新分幅 对数据作完坐标转换后,需要按分幅的规则重 新分幅,可以利用Tiler转换功能,它从数据的最小 道项目的数据要求规定了文件命名规则: “一文件名称构成:①比例尺代码+②图号+ ”+③图层名+文件格式后缀 说明:①比例尺代码:由一位大写字符标识, 如1:2000标识为“I”,1:10000标识为“G”② 图号构成:由六位数字表示,前三位为图幅所在的 坐标处开始,以用户设置的行高度(Row Height)、 列宽度(Column Width)将数据切割成分片的数据, 并将切割后的要素所在的行列号分别放在属性rOW、 column中,例如1:2000比例尺50%50分幅的地 图分幅间距是1000米,我们设置它的行、列间距 行号标识,后三位为列号标识③图层名:为数据要 求的分层名称。我们在4.4中按这个规则来给要素 设置其文件名属性字段filename,对于基于目录的 数据输出格式,可以直接按这个字段分类,并将它 作为输出文件的名称。在目标要素类型属性对话框 中,将Fanout Feature Type选中,在Fanout attribute 为1000,由于数据的边界不是刚好在分幅线处,所 以要加入一个数据原点共同参与切割;再用Fea— tureTypeExtractor来提取要素所在的要素类,存在字 段FeatureType里,在这里它的值就是我们的数据分 层名称了;然后利用AttributeCreator创建一个名为 iflename的字段,并赋值“I@Value(rOW)@Value (column)一@Value(FeatureType)”,这样就可以 根据要素的fdename属性值来确定它所在的图幅号 中选择字段filename,输出将按filename值进行分 类,并生成到一批文件中。 4.6转换批处理 由于前面我们写的MAPGIS明码格式的插件是 基于文件的,4.5中所提到的批量转换方法不能使 用,我们利用FME提供的FME Object,在Visual Studio.NET中用C#语言开发了数据转换的批处理 维普资讯 http://www.cqvip.com 121 警 ,的FME管道文件,在程序中互横调用 其 喜 tmerlp “‘ ,黧釜 暑羞 日一 :mses_n文 调用管道的语句 IFMEOPipeline peune;ul1).siorL CreatePipeline("test"f mePipeLine.AddFactori。 es L pip(e. .FileN帅e);//“ ’ e №e是 IFMEOFeature 写 tnl d ere.u 件:mses.si 0n.CreateFeature(); IFMEOFeatureYector fmeFe ector:’… ‘ mses. r();tFeatureVectoCrea ...1 fmeReader Read(t.me l ̄eature)) ^:。r . ea【uI ,, rhi(.。脚。un。.P眦 sFeature(fereFeature). fmh。i unl fme.P仙 nipeLine ∽ GetOu e抛陀(fmeFea.w e( ・ 【pu eam fmeFeaVector.Append(fmeFeatu陀); /将处理后的要素写出到要素集fmeFeaV。 个 茎 "’’ 要属性 善 刑 图4 转换后MapGIS格式 4。 MAPGIs明码格式文件中’ IFMEOWriter fmeWriter Dire“则l 只是FIdE g2 ̄中的一部分,实际操 on. Createwriter i瑚 。。。 ’ …… AS CI1(“M AP GI SrD e teWriS ngC0uectn11ii0n 0玎S t new s ngC0uec. n。w “ ~一 eamr ec 磺 fm eWriter.Write(InFeatureVec L 叭 ㈤);’ 的解 遇 情况在 妻 用 器 Te ster黜 删 蒜FLengthCalculator 计ilt算er ̄属Co or情di芯na刚te-坐标根取C篡 Hp L原 ye—I/tl2 ̄ 耄 翟 箬 孺姜 萼 萋 釜 一 …,, 过点击和拖拉操作方便地完成这些她埋。 惹 嚣 兰 孟 嚣 "1- 款件提供了很多的数据格式转换、丰富的 同 _ 差 釜 在 主点设定釜 荽 衰理中具有其优越性’器 也司以根琚衍 呙,省 主 奏 的结果对比。 妻和 篙 羹 茹 羹 岔 5 。问 不中转出的 明码格式文1午,悬日 仅 MAPGIS ,面、。, 有什么损失,图形要素之l目保持j止硼刚州 八 维普资讯 http://www.cqvip.com 四川测绘第30卷第3期2007年6月 129 图4 MapGIS向Geodatabase转换的语义映射 参考文献 [1] 张建军,张静波.MapGIS6。1向ArcGIS8.1的数据 转换[J]。微机发展,2003,(11):14一l6. [2] 党安荣.ArcGIS 8 Desktop地理信息系统应用指南 [M].北京:清华大学出版社,2003. [3] FME WhitePaper.SAFE公司技术资料. [4] [5] (美)朗利等.地理信息系统(下卷):管理与应用 (第二版)[M].北京:电子工业出版社,2004. 曾巧玲等.利用FME实现GIS与CAD的语义转换 [J].计算机工程与应用,2005,(13):214—217. [收稿日期]2006一o4一l9 [作者简介]潘邦龙(1976一),男,昆明理工大学国土资 源工程学院在读硕士研究生;所学专业:地图学与地理信息 系统;研究方向:GIS/LIS技术应用与开发。 (上接第121页) 据格式的插件,编写更为灵活的应用程序。通过应 用FME软件,基于语义的转换减少了信息的丢失, 可以在FME中完成几乎所有的数据处理,数据处 (2):168—170. [4] (FME技术白皮书》[S],北京世纪安图数码科技发 展有限责任公司,2003. S的空问数 [5] 任海军,李见为,文俊浩.基于OpenGI据转换系统设计与实现[J].计算机工程与应用, 2004,40(26):171—173. 理后不需要在目标软件GIS中作额外的修改,从而 大大提高了空间数据处理、转换的效率,减少了工 作量,保证了项目顺利进行。 参考文献 刘春,刘大杰.GIS的应用及研究热点探讨[J].现 代测绘,2003,26(3):7一l0. [2] 周海平,雷昕.基于FME的多元空间数据共享方式 探讨[J].国土资源信息化,2003,(4):32—34. [3] 何孝莹,宋伟冬,杨楠.空间数据在不同平台问转 换的方法[J].辽宁工程技术大学学报2004,23 [收稿日期]2006—05—17 [作者简介]熊登亮(1978一),男,硕士研究生,专业: 地图制图学与地理信息工程。研究方向:3s关键技术集成 与应用,空间数据处理。