魏域君
(1.中铁第一勘察设计院集团有限公司,陕西 西安 710043;2.轨道交通工程信息化国家重点实验室,陕西 西安 710043)
GIS 数据主要指ArcGIS 软件处理和产生的地理信息数据,主要格式有shapefile、Raster、Geodatabase等。GIS 数据为外业测绘和内业处理最常用的数据形式[1],主要用于测绘成果如影像地图、数字线划图、高程模型的展示,空间分析,成果采集等。在工程勘察设计工作中,CAD 数据是最常用的数据格式,CAD 数据主要由AutoCAD 产生和处理,侧重于几何图形的表达与可视化展示[2],可以极大的提高工程设计的效率[3]。因此,GIS 数据到CAD 数据的转换方法具有一定的研究价值。
在工程设计工作中,GIS 数据到CAD 数据的转换主要是指将shapefile 数据格式的数字线划图转换为CAD 文件格式,常规的转换方式是利用ArcGIS 软件进行转换,这种转换结果存在若干缺点,比如不同图层的点、线、面没有独立的颜色和形状,注记元素存在缺失,导致转换后的CAD 文件看起来比较杂乱,不利于设计工作的开展[4]。本研究基于FME 软件进行GIS数据到CAD 数据的转换,发现转换效果相比基于ArcGIS 软件的转换效果更加高效、可靠、转换方式更容易定制。
GIS 数据到CAD 数据的转换主要涉及图形转换与注记添加。本研究分别利用ArcGIS Pro 软件和FME Workbench 软件进行转换,并对两种转换方法生成的结果进行对比。
ArcGIS Pro 软件转换方法如下:在ArcGIS Pro软件中加载需要转换的GIS 数据,右键点击GIS 数据图层,点击【label】以显示各个地理元素的注记,在【Geoprocessing】工具栏中选择【Conversion Tools】,然后选择【To CAD】->【Export To CAD】, 选择输入的shapefile 数据,选择转换的CAD 数据存储路径,设置好CAD 数据格式即可完成转换。
本研究将转换后的CAD 数据放置到AutoCAD 软件中进行分析发现,虽然ArcGIS Pro 能够将GIS 数据转换为CAD 数据,但是对于地理元素的可视化不灵活,无法为不同地理元素指定专门的图形符号进行可视化,只能对不同几何类型(点、线、面)指定不同的图形符号。另外,ArcGIS Pro 只能将转换后的注记单独放在一个图层,无法将地理要素与对应注记放在同一图层,割裂了图形元素与注记之间的联系。
要进行shapefile 文件到CAD文件的转换,首先需要建立shapefile 文件的读模块和CAD 文件的写模块,在CAD 数据中为了直观显示,通常每个地理元素都有特定的表示符号,因此在转换过程中需要在AutoCAD 中制作转换需要的符号库模板。
符号库模板制作后,便可在读写模块之间添加转换器,转换器也叫变换器,是连接读模块和写模块的桥梁[5],可以根据转换的需要设置对应的转换器,本研究使用的转换器包括风格转换器、坐标提取器、节点添加器和文本添加器。其中GIS 数据的图形转换由风格转换器实现,CAD 数据中各个图形元素的注记添加由文本添加器实现,坐标提取器和节点添加器主要是为文本添加器设置添加注记的位置。基于FME 的转换流程见图1。
图1 基于FME 的转换流程
1.2.1 shape 文件读取
FME 创建转换空间后,首先需要读取需要转换的shapefile 文件,数据读取操作通过配置“读模块”实现。FME 支持超过270 多种GIS 和CAD 数据格式的读取,本研究在“读模块”中选择Esri Shapefile 数据格式,坐标系选择读取的shapefile 文件的坐标系即可。
1.2.2 建立符号映射
将GIS 数据转换为CAD 数据时,需要顾及符号化的语义级无损转换问题[5],通过建立AutoCAD 符号库,建立GIS 符号与CAD 符号的映射关系,实现符号的转换。因此,在利用FME 进行转换之前,需要准备地理元素的符号库,只有在创建完成符号库后,才能借助风格转换器将各个地理元素(也称为图层)用规定的图形符号进行表示。符号库模板由AutoCAD 软件制作,由于映射是通过属性映射表实现,因此在符号库制作过程中还需要指定地理要素的编码。
为了方便符号映射,本研究在GIS 数据和CAD数据中都以《GB/T 13923-2006 基础地理信息要素分类与代码》为标准对地理元素进行编码,在转换过程中,FME 将会根据编码值进行符号的一对一转换。
在为地理元素设置图形符号时,需要遵守一定规范。不同类型的要素,表示方式也不同。点状要素由单个符号表示;线状要素由线型和线颜色表示;面状要素由线型、颜色和填充颜色表示。本研究制作的模板库中部分地理元素的符号见表1。
表1 地理信息要素符号
本研究使用的符号库模板见图2。
图2 本研究制作的符号库模板
1.2.3 风格转换器
在建立符号映射关系后,可通过风格转换器(DWGStyler),完成GIS 数据和CAD 数据在符号系统上的无缝转换,实现可视化效果上的无损转换[5]。本研究将风格转换器的【DWG/DXF Template File】选项设置为转换使用的模板文件,即1.2 中制作的符号库模板,【Block Name】选项中的LAYER 即为地理元素编码属性值。
1.2.4 坐标提取器
正如前文所述,坐标提取器(CoordinateExtractor) 和节点添加器(VertexCreator)是设置注记添加的位置,坐标提取器为每个图形元素设置了唯一的空间坐标,以便后续节点添加器在此位置添加节点,并将注记放置在此节点上。
在坐标提取器的界面中通过设置Coordinate index 来指定提取的坐标,Coordinate index 指要提取坐标元素的图形节点索引。当指定index 之后,提取坐标的x、y、z 值会作为属性添加到属性表中。
1.2.5 节点提取器
节点添加器(VertexCreator)的作用为设置节点,本研究在坐标提取器提取出的坐标处添加节点,节点坐标值设置为1.2.4 节坐标提取器提取的x、y、z 值。
1.2.6 文本添加器
添加节点添加器之后,利用文本添加器在节点位置上添加注记,此步骤比较简单,只需要设置注记的名称、大小、旋转方向即可。
1.2.7 CAD 文件写出
添加转换器之后,需要将最终转换的CAD 数据导出,数据写出操作通过配置“写模块”实现。本研究在“写模块”中选择“Autodesk AutoCAD DWG/DXF”数据格式,对“写模块”进行参数配置,配置的参数包括坐标系设置、AutoCAD 软件版本、导出数据存储路径等。
本研究以陕西宝鸡市眉县的部分调绘成果(见图3)作为试验数据。转换模型根据第一节介绍的转换方法进行制作,制作的模型见图4。本研究利用FME 将shapefile 格式的调绘成果转为CAD 格式,并与ArcGIS 转换的结果进行对比分析。
图3 转换前的调绘成果
图4 转换模型
基于FME 的转换结果见图5,本研究同时利用ArcGIS 对调绘成果进行数据转换,转换结果见图6。
虽然FME 和ArcGIS 都能实现GIS 数据到CAD 数据的转换,但是两种方式转换的效果有所差别,接下来本研究将从图形和属性两个方面来对比两种转换方式的差别。
如1.2.3 所述,FME 可以通过风格转换器(DWGStyler)将转换后的地理元素用CAD 符号库中预先定义的符号进行表示,因此转换结果可直接用于CAD 制图项目中。而ArcGIS 只能按照要素的几何类型进行符号设置,将所有的点要素、线要素和面要素分别用同一种符号来表示。如图5 和图6所示,内部道路和机耕路虽然同为线要素,基于FME 的转换结果中可分别用短划线和长划线来表示,而基于ArcGIS 的转换结果只能都用实线来表示。因此,基于FME 的转换方式在图形转换结果上优于基于ArcGIS 的转换方式。
图5 基于FME 的转换成果
图6 基于ArcGIS 的转换成果
FME 和ArcGIS 都可以完成GIS数据和CAD 数据的属性转换,并可以将特定属性指定为CAD 数据的图层名。然而,FME 在注记转换方面更加灵活,可以将不同要素的注记与对应图形要素放置在同一图层,方便管理。而ArcGIS 只能将点注记(point Anno)、线注记(polylineAnno)和面注记(polygonAnno)分别放在同一图层,使得转换结果中割裂了注记与对应图形要素。因此,基于FME 的转换方式在属性转换结果上同样优于基于ArcGIS 的转换方式。
综上,基于FME 的转换方式无论是在图形转换还是属性转换方面都优于基于ArcGIS 的转换方式。
本研究探讨了基于FME 的GIS 数据到CAD 数据转换方法,介绍了转换模型的构建,转换模型由读模块、风格转换器、坐标提取器、文本添加器、写模块等模块组成。并与基于ArcGIS 的转换方法进行对比,基于FME 的转换方法在图形转换和属性转换方面都优于ArcGIS,为实现GIS 数据到CAD 数据的转换提供了思路和技术支持。
致谢:论文在实验阶段得到了相关机构的支持和帮助,作者在此感谢加拿大Safe Software 公司提供FME 免费试用版(30 天内免费),感谢美国ESRI 公司提供ArcGIS Pro 免费试用版(21 天免费)。
注释
1 https://www.safe.com/fme/trial/,本研究所用的FME软件是试用版,论文实验在30 免费试用期内完成。