目录
DLG-数字线划地图,是在测绘、地理信息行业经常接触到的数据,既包括空间信息也包括属性信息;dwg地形图则是测绘常用的数据格式,可以客观信息的表达现状地形地物特征。当我们拥有DLG数据时,却又需要dwg地形图时,则需要将DLG数据转换为dwg地形图数据,而直接导出为dwg则无法还原地图符号。下面运用FME软件,带来一个将DLG数据转换成dwg地形图,并完美还原地物符号的方法。这里准备了等高线、高程点、楼梯、井盖等地貌地物的DLG数据来演示转换为地形图的过程。首先来看看最终的转换效果及原始数据情况。关注薇信工众号:“GIS工具乐园”,回复“FME”,获取模板下载链接。
本示例工具基于FME2020.2开发,使用前请自行安装FME2020.2及以上版本的FME软件
☛ FME系列视频教程推荐 ☚
一、转换效果
1.转换后的dwg成果数据
从下图可以看到转换后的地形图准确还原地貌地物符号样式,包括符号、线型、等高线高程值、CASS码等均实现还原,关注微行公众号:“GIS工具乐园”,持续更新开发技巧分享哦。
转换后的CAD地形图成果
2.原始DLG数据
原始DLG数据包括等高线、高程点、台阶、井盖等
DLG示例数据
二、实现思路
1.技术难点
众所周知,利用fme软件可以轻松将矢量数据导出为dwg数据,但是因为地形图具有丰富的地图符号表达,而DLG数据并不存储dwg地形图的地图符号表达信息。因此要准确还原地形图的地貌地物符号样式,关键在于设置要素的地图符号表达参数,但是地形图的地貌地物类型数量巨大,如果一个个的研究其参数并设置,虽然能最终实现目的,但耗时巨大,不符合利用FME省时省力的初衷。
2.解决方案
既然实现地形图地图符号的还原关键在于正确设置地图符号表达参数,那么就可以先从dwg中获取到相关参数,再挂接到DLG数据中。经研究,CASS软件的图板菜单中,包含的绝大部分的地形图图例符号(如果遇到没有的地物符号,画一个补充上去即可),可作为符号模板库,下图便是CASS的图板菜单局部(也包含了一些小编补充绘制的符号)。
CASS图板菜单(局部)
地图符号表达参数的来源解决了,那么就需要将符号模板库中的信息与DLG数据关联起来,DLG数据中的唯一标识是GB码,而符号模板库的地物唯一标识是CASS码,因此我们需要制作了一个GB码与CASS码的对照关系表,以便将DLG数据与符号模板库进行挂接关联,下图展示的是小编为本次演示数据制作的一个编码对照表。
编码对照表
3.FME工具实现总体流程
读取DLG数据后,首先通过GB码挂接编码对照表为DLG数据赋予CASS码,然后通过CASS码与符号模板库进行挂接为DLG数据赋予地形图符号表达参数,最后输出dwg数据
三、实现过程
1.数据读取及预处理
分别调用读模板读取DLG、编码对照表和符号模板库dwg,同时对符号模板库的要素提取CASS码并根据CASS码去重。
不知道CASS码怎么提取的同学,可以看之前的CASS码提取专题博客,链接:FME提取dwg扩展属性的通用方法,以提取CASS码为例,手把手详细版
2.挂接编码对照表
DLG数据通过GB码与编码对照表进行挂接,为DLG数据获取CASS码。
DLG数据挂接CASS码
3.挂接符号模板库
DLG数据通过CASS码与符号模板库进行挂接,为DLG数据获取地貌地物符号样式。
DLG数据挂接符号参数
4.某些特例数据单独处理
在DLG向dwg数据转换的过程中,有些类型的数据挂接上符号样式后,直接输出dwg即可,例如本示例中的井盖和台阶;而另外一些类型的数据则需要进行专门的处理才行,例如本示例中的高程点、等高线,因为符号模板库中附带的高程值、高程点注记等参数与DLG中的不相同,因此需要重设高程值、等高线注记内容等相关参数。
(1)高程点、等高线的高程值设置
使用3DForcer转换器,设置等高线、高程点的高程值,详情如下图所示
高程值设置
(2)高程点的注记内容参数设置
使用CoordinateExtractor转换器保留高程点的坐标,然后使用PythonCaller转换器设置高程点注记内容参数设置到fme_attrib_info{}列表中,详情如下图所示
高程点注记参数设置
5.dwg输出设置
dwg输出时需将符号模板库dwg设置为模板文件,只有这样才能正确还原地物符号,详情如下图所示
CAD输出设置
6.在CASS中进行图形重构
下图是使用FME转换输出的初始成果dwg,可以看到等高线、高程点以及井盖均实现的符号还原,高程值也正确,但是台阶并没有还原正确。
初步成果
台阶是一个典型的由复杂图形组成的地物,在DLG入库过程中,通常使用其骨架线进行入库,因此在还原转换成dwg中也将其转换为台阶骨架线,那么要如何才能还原成台阶的样式呢?只需要将FME转换输出的初始成果dwg在CASS软件中打开,并执行“regen”和“recass”命令进行重构实体即可。下面是CASS命令的执行过程以及最终成果dwg截图。
CASS重构实体
最终成果dwg
7.FME模板工具总体流程图
总体流程
四、总结说明
1.在使用FME进行DLG转dwg过程中,大部分要素挂接了符号样式直接输出dwg即可实现地物样式的还原,另一部分需要对某些参数设置修改,例如等高线、高程点,还有部分复杂要素在输出dwg后,使用CASS软件进行重构图形。
2.此处以向地形图的转换为例,当然其他的例如规划图或者其他数据向dwg的转换也可参照此法操作,只需制作一个符号模板库dwg,然后通过某些信息将dwg中的符号模板与矢量数据建立关联即可。
3.本文以等高线、高程点、井盖以及台阶等几类经典要素为例对使用FME进行DLG向CAD地形图数据的无损转换进行了介绍,对于更多的例如等高线、高程点之类的需进行参数补充设置的要素,各位同学可自行参照本文示例进行研究试验,毕竟实践出真知~