您的位置 首页 > 数码极客

‘如何替换gis中的属性表’gis属性表查找与替换…

目前GIS数据应用非常广泛,包括制作电子地图、地图整饰、浏览查询、数字城市建设等等。而城市基础地理信息数据是GIS数据的主要来源,将多种类的地理信息数据进行分类整合,转入到GIS空间数据库中,并在统一系统平台上进行管理[1]。在整个GIS系统建设过程中,数据采集和维护占据了大部分的费用和工作,由于CAD强大的图形编辑和处理功能,很多生产单位都选用CAD作为数字成图的工具,所以大多数城市的基础地理信息数据都以AutoCAD的数据格式存储,而土地管理、测绘部门大多选用GIS的技术进行数据处理。为了更加有效地对数据进行管理,需要进行大量的数据迁移和数据转换工作,将单个文件形式的数据转入到GIS平台中。由于GIS软件的数据格式和CAD数据格式不相同,在数据转换中会存在着转换后数据内容的丢失或者属性信息不一致的情况,降低了数据的利用率。如何最大程度地实现数据的共享以及数据格式的无损转换,成为目前GIS数据建设的一个重要问题。

数据转换质量的评定标准一般包括以下3个方面:① 数据转换前后图形数据的一致性;② 数据转换前后属性数据的一致性,并按照GIS要求增加相应的属性结构和数据内容;③ 转换后数据的分层、编码、符号的显示等在GIS数据中必须得到相应的体现。CAD到GIS数据转换的方法主要有3种:① 采用数据处理软件实现,如FME,FME支持多种数据格式间的转换,它的核心是通过强大的中间格式的语义转换进行运作的;② 采用软件自带的数据转换模块实现,如ArcGIS可以直接将*.dwg格式数据导出为shapefile文件,由于数据格式的差异,转换后的数据并不能满足用户的需求[2];③ 采用编程的方法实现,当数据量大时可以采用编程的方法简化操作,但程序开发量大。

随着“数字城市”建设在国内的普及,多种类的城市基础地理信息数据作为“数字城市”建设的基础数据,需要整合在一个GIS平台进行管理[3]。本文结合某市“数字城市”地理空间框架建设的实际情况,深入探讨CAD到ArcGIS的数据属性匹配和转换实现过程。

1、 基于MicroStration和FME的CAD到ArcGIS的数据转换

MicroStation (简称MS) 是美国Bentley System公司所研发的一套可执行于多种软硬件平台的通用电脑辅助绘图及设计软件。MS可以直接读写*.dwg文件,而不需要任何转换,*.dwg成为MS自己的数据格式之一。而MS最有特色的就是它提供了MS与数据库的接口 (Access、SQLServer、Oracle等),非图形要素的特征数据可以以外挂数据库的形式存在,这样就可以根据GIS数据的要求直接在数据库中增加属性结构和内容,而对于一些不需要的图形要素 (如围墙短线) 可以直接在数据库属性表中把它定义为GIS不对应要素。因此借助MS数据格式作为CAD到ArcGIS数据转换的中间桥梁,实现各图形要素与属性信息的自动匹配。又考虑到最终转换的ArcGIS数据格式要将多种类的地理信息进行整合分类,所以结合FME数据转换机制,最终实现MS数据到ArcGIS数据的转换。图 1为CAD到ArcGIS数据转换的流程图。

图 1 数据转换流程图

1) CAD到MS数据的转换。将所有的基础数据以及工作空间文件、用户配置文件、菜单文件放在自定义目录下。

2) MS图形数据与数据库属性数据的匹配。将CAD数据和GIS数据的编码名称对照表以及图形数据的属性信息存储在数据库中,并利用MDL二次开发实现图形数据与属性数据的自动匹配。

3) 利用FME实现MS数据到GIS数据的转换。编写FME语义映射文件,根据对照表中一一对应的关系,将MS数据转换为GIS数据。

2、 CAD到MS数据的转换以及属性数据的匹配

2.1 CAD和MS数据格式分析

CAD中每一种图形要素对应唯一的cass编码和名称,一般图形要素不直接存储属性信息,而是以扩展实体数据的形式存储,以层来区分每一类专题要素;而MS中图形要素并没有编码,主要是以不同层色来区分各类图形要素。CAD数据中点状要素主要是以块的形式存储,线状要素以线型表示;MS数据中点状要素以单元或者共享单元表示,线状要素也是以线型表示。但是CAD和MS都有自己的字体库和线型库。

2.2 CAD到MS数据转换

2.2.1 基础数据准备

MS可以直接读写*.dwg文件,但数据还是存在差异,为了数据可以在MS中正确的显示,需要将字体库、种子文件、数据库 (线型已在数据库中定义好) 这些基础数据放在自定义的目录下[4]。

2.2.2 用户及界面制作

为了相关应用程序的发布,需要利用MS提供的建立用户界面的工具,创建工作空间文件、用户配置文件、菜单文件,并将这些文件与相关的MDL应用程序放到自定义的目录下。这样使用者就可以以该用户进入MS,并可以直接将*.dwg数据另存为*.dgn格式的数据,不需要其他转换。

2.2.3 面状要素的构面

在整个数据转换的过程中,最终转换的ArcGIS数据的图形要素是以点、线、面形式存储;而原CAD数据都是以点、线或者点、线组合表示地物。因此需要在MicroStration Geographics中对需要构面的要素 (如房屋、植被、水系等) 先生成面心点,再生成多边形的方法进行构面处理。由于面状要素并没有属性,因此需要将每一类面状要素分层存储,并且层名必须跟关系对照表中“Dgn构面层”字段中的层名一一对应,以达到数据转换中属性挂接的目的。

2.3 MS图形要素与属性的自动匹配

2.3.1 MS系统数据库结构分析

MicroStration/Geographics平台的DLG数据主要分为图形要素和非图形要素数据,而非图形要素的特征数据一般存储在专用的数据库管理系统中,这种开放式的数据结构为“图形管理数据”的GIS数据管理理念开辟一个新的方向[5, 6]。

一个MicroStration Geographics工程的数据库系统中包含了多个系统数据表,用户可以根据自己的需要添加其他属性表。系统数据表结构如图 2所示。

图 2 系统数据库结构图

其中Cassimport表是自定义属性表,表中主要存储CAD和GIS的编码和名称,表结构如表 1所示;Mscatalog是元表,在数据连接成功后,Mscatalog表会自动生成,主要描述在工程中所有用到的表;在整个系统数据库中,Feature表中的数据至关重要,各图形要素的属性信息 (如要素名称、要素代码、要素图层、线型等) 都必须在Feature表中先定义好,其结构如表 2所示;所有的属性表中必须包含mslink这一字段,mslink是图形要素与属性数据的接口。

表 1 Cassimport表结构

表 2 Feature表结构

2.3.2 数据库的连接和属性数据的匹配

在MS图形中,图形要素通过ODBC数据接口与外部关系数据库 (如Access等) 进行连接[7],可以采用两种方式实现MS图形要素与Access数据库的联系及操作,一种是交互命令方式,一种是应用程序方式,这里主要讨论应用程序方式。

利用MDL开发应用程序。MS提供了自己的开发语言MDL,MDL采用标准C或C++程序设计语言,有丰富的函数库。借助MS数据格式作为CAD到GIS数据转换的中间桥梁,在将dwg格式的数据保存为dgn格式的数据时,dgn数据保持了dwg数据原有的属性,而dwg格式数据是通过图形的扩展数据Xdata来存储属性数据的[8, 9]。因此就可以通过程序来分析和处理dwg的Xdata属性,将dwg的Xdata属性转成ODBC连接,实现图形要素与属性数据的匹配,属性自动匹配的过程如图 3所示。

具体步骤为:① 数据库连接;② 读取Cassimport编码对照表,分别选mslink、fcode、fname、casscode、assname字段;③ 关闭数据库;④ 读图形要素的Xdata属性信息,直到获取图形要素的DwgXata_string属性,图形要素的cass编码存储在这里;⑤ 根据Xdata添加ODBC连接:当获取的StrFcode (cass编码) 和CurMslink分别与对照表中的casscode、mslink相等,循环结束。

3、 基于FME的MS到GIS数据转换

3.1 FME简介

FME是加拿大Safe Software公司采用无缝的数据转换方案,基于OpenGIS组织提出的新的数据转换理念 (语义转换) 的空间数据处理系统。FME提供基于层次的数据模型,不仅能实现数据的转换,并且能最大限度地保留数据表达的空间信息,通过FME语义映射文件,数据都能找到各自的映射关系,转换后的数据具有良好的数据组织和逻辑关系[10]。FME支持多种空间数据的转换,它提供了丰富的函数库和转换器,使用者可以根据需求调用相关的函数和转换器对图形要素和属性信息进行处理。

3.2 MS数据分析

转换后的MS数据图形信息与CAD保持一致,并且最大限度地保留了CAD原有的属性信息,MS图形要素与存储在外部的属性数据匹配后,每一种要素对应一个分类代码和名称,并且有唯一的mslink键值;经过属性匹配的MS数据将CAD中一些不需要在ArcGIS数据中表示的图形要素直接转化为cass不对应的要素 (如围墙短线),这些图形要素可以直接删除。

3.3 基于FME数据的转换

3.3.1 对照表的编写

AutoCAD图形对象并不直接存储属性数据,而是通过图形的扩展数据Xdata来存储属性数据,CAD的各图形要素都是通过将每一类地理要素放到不同的层进行区分。而ArcGIS的属性数据都是以属性表的形式直接存储在图形对象中,ArcGIS数据的存储是以点、线、面、注记形式存在,不同类型的地理要素分在不同的层,因此需要对多种类的地理信息数据进行重新整合转入相应的图层。

从AutoCAD到ArcGIS的数据转换过程中,MS数据格式作为中间桥梁,根据FME转换的属性匹配的基本要求,从MS数据到ArcGIS数据需要制定一定的对应关系,也就是建立MS数据到ArcGIS要素编码之间的关系对照表。对照表在原来Feature表的基础上增加了“Dgn构面层”和“实用库层”两个字段,面数据通过“Dgn构面层”字段与对照表进行连接,所有的图形要素根据“实用库层”字段转入不同的图层,对照表的结构如表 3所示,通过字段mslink实现图形与属性的一一对应。

3.3.2 FME映射文件设计和转化的实现

利用FME Workbench来建立自己的映射文件模板,新建一个数据源为MicroStration,目标数据格式为Esri Geodatabase (MDB) 的工作空间,自定义数据转换。利用FME提供的各种函数和转换器设置相应的参数对数据进行检查、属性的提取和赋值、拓扑重建及分类输出[11, 12]。在利用FME映射文件进行数据转换时,为了给MS各图形要素匹配正确的属性接口,需要对关系对照表中的属性信息进行读取,将属性信息写入到ArcGIS数据文件中。

1) 数据的预处理。在数据转换之前,必须对数据进行质量检查,保证图形数据拓扑关系、属性的正确性和完整性。对于植被、水系、道路等面状地物,由于有些地物存在共用边界,或者地物中存在岛的情况需要人为判断。而对于有向点要素需要对角度值进行提取,因为有向点的符号化需要根据角度值旋转相应的角度。

2) 转换的实现。FME提供了丰富的函数和转换器,可以根据自己的需要调用相应的函数和转换器来修改映射文件。利用FeatureMerger函数点线数据和面数据分别通过“mslink字段”和“Dgn构面层”字段连接对照表,再根据对照表中“实用库层”字段所定义的要素所属的图层转入ArcGIS相应图层。

对于面状要素,要判断居民地、植被、水系等注记点是否在面内,需要进行PointOnAreaOverlayer操作,对于一些极微小的面可以通过AreaCalculator和Tester过滤到面积小于容差值的面。对于有向点,需要提取其角度值作为属性写入ArcGIS数据中,则可以通过AngleConverter实现,图形要素可以通过GeometryFilter操作按图形类型分类输出,利用AttributeFilter根据实用库层字段中的属性值区分输出到相应的图层,面数据处理过滤微小面部分流程如图 4所示。

图 4 去除微小面处理

判断微小面的参数设置如下:

3.3.3 转换实例

利用文中所阐述的方法,将CAD数据进行转换,属性信息的转换和匹配作为本文重点介绍的部分,转换后的ArcGIS不仅提取了CAD数据的扩展属性信息,并根据需要增加了相应的GIS属性,为后期数据的接边融合、更新维护提供方便。图 5(a)和图 5(b)是转换前后的CAD与ArcGIS对比图,从图上可以看出转换后的数据在图形显示、几何空间要素之间的关系、显示风格上都保持了一致,并且保证了属性的对应关系。

图 5 转换前后数据对比

4 、结束语

在AutoCAD到ArcGIS的数据转换过程中,借助MS数据格式作为中间桥梁,是因为MS能直接读写dwg文件,并且能最大限度地保留dwg文件原有的属性信息,而MS又提供了与数据库的接口。其中最主要的是根据需要制定与之相对应的数据库属性表以及MS数据到GIS数据的对照表实现图形要素与属性数据的自动匹配。FME强大的OpenGIS转换功能还可以解决许多其他数据格式的地理图形数据到GIS数据的转换,为实现数据共享和地理空间数据互操作提供了一种新的思路和方法。数据转换并不是简单的格式转换,其中涉及到很多的属性匹配、拓扑关系等繁杂的问题,用户需要根据自己的需求选择适当的方法。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何替换gis中的属性表,gis属性表查找与替换,gis属性表替换不了,gis如何按属性选择”边界阅读