数字栅格地图矢量化及三维显示教程

· 简介

一、概述

1. 要求:

对等高线地形图扫描件在ArcMap中进行地理配准、地理要素矢量化、拓扑检查、等高线平滑、附高程值、生成TIN、在TIN间拉伸操作,在ArcScene中进行叠加遥感影像、浮动于自定义表面操作,最终得到一幅三维地形图。

2. 最终效果:


图1 矢量化结果


图2 三维显示结果


· 操作步骤

二、新建数据

1. 新建.mxd和GDB

打开ArcMap,新建空白地图文档和文件地理数据库。


图3 新建空白地图文档

注:地图文档建议使用相对路径储存模式,便于多人分工合作。单击菜单栏,【文件】→【地图文档属性】,勾选【存储数据源的相对路径名】。


图4 新建文件地理数据库

注:不要新建个人地理数据库,因个人地理数据库最大容量为2GB,进行后面空间分析操作时缓存或结果文件的容量可能会超出容量,导致空间分析操作失败。

2. 添加数据框属性

单击工具栏中【视图】→【数据框属性】,根据地形图的投影方式、比例尺大小和经纬度选择对应的投影坐标系。

国家基本比例尺地图1:100万比例尺采用兰勃特(Lambert)投影方式,1:50万~1:2.5万比例尺采用高斯-克吕格(Gauss Kruger)6度分带投影方式,1:1万~1:500采用高斯-克吕格3度投影方式。

根据经度计算带号方法:

6度分带带号 = [ ( 经度 + 6 ) / 6 ]

3度分带带号 = [ ( 经度 + 1.5 ) / 3 ]

注:[ x ] 代表取数x的整数部分。

博主使用的地形图是1954年北京坐标系,1:5万,经度109°00′E~109°15′E,纬度36°00′~36°15′。由上述可知数据框坐标系选择“投影坐标系→Gauss Kruger→Beijing 1954→Beijing_1954_GK_Zone_19N”,如图5所示。

注:GK_CM代表3度分带,GK_ZONE代表6度分带;19N代表北纬19带(19代表南纬19带)。


图5 选择数据框坐标系

3. 创建要素类

由地形图中的地物可知,至少要创建如下要素类:

    点要素:山顶点(属性:高程[浮点型])

    线要素:等高线(属性:高程[浮点型])

    面要素:水系、居民地、底图(属性:高程[浮点型])

注:

① 要素类的投影坐标系需和数据框坐标系一致。


图6 设置要素类投影坐标系

② 高程字段属性数据类型为浮点型。


图7 设置高程属性字段

③ 水系、居民地要素类不需要设置属性字段。


三、地理配准

1. 打开地理配准工具条

右单击工具栏空白处,勾选【地理配准】。


图8 勾选地理配准

2. 选择需要配准的地形图


图9 选择地形图

3. 取消勾选【自动校正】


图10 取消勾选自动校正

注:【自动校正】默认启用,每输入一个控制点的坐标或经纬度后,系统会自动计算匹配结果,图像会自动移动至该控制点的位置,有时会超出显示范围,需要多次寻找图像,较为繁琐。不勾选【自动校正】,图像在输入控制点时不会发生位移,所有控制点输入完成后,单击【更新地理配准】统一进行更新。

4. 读图获取方里网或经纬网交点坐标

将待配准的图像添加至图层,提示创建金字塔,点【确定】。


图11 创建金字塔

放大图像,查看外图廓和内图廓,查看方里网和经纬网。


图12 方里网和经纬网交点

读图可知,红色框内为方里网交点,其通用坐标为X=4005000,Y=19 321000。

其中19表示该地形图位于6度分带的第19带;

321表示该点横坐标,即距纵坐标轴(中央经线向西位移500Km所得)321Km;

4005表示该点纵坐标,即距横坐标轴(赤道)4005Km。

蓝色框内为经纬网交点,经度为109°00′E,纬度为36°00′N。

注:

在1:1万~1:20万比例尺的地形图上,经纬线只以图廓线的形式直接表现出来,并在图角处注出相应度数,图面上没有经纬网,故无法在图面上精确选取控制点,不宜采取输入经纬度DMS的配准方式,宜采取输入XY坐标的配准方式。

我国的1:50万~1:100万地形图,在图面上直接绘出经纬线网,内图廓上也有供加密经纬线网的加密分划短线,两种配准方式均可采用。

5. 选取控制点并输入坐标

在地理配准工具条上,点击【添加控制点】按钮。


图13 添加控制点按钮

精确找到一个方里网交点,点击【左键】添加控制点,点击【右键】,选择【输入X和Y】,输入对应的坐标。

注:高斯投影平面直角坐标系的横轴为Y轴,纵轴为X轴;ArcGIS中为便于应用计算机算法,采用的是和算法中相同的数学平面直角坐标系,即笛卡尔坐标系,横轴为X轴,纵轴为Y轴

所以在ArcGIS中输入坐标时需要将高斯坐标系的X/Y坐标互换。


图14 添加控制点并输入坐标

同理,在图面其他位置添加控制点,个数不少于4个,满幅均匀选取。

6. 查看残差及修正

控制点添加完成后,点击地理配准工具条的【查看链接表】按钮,变换方式选择【一阶多项式】(默认为一阶多项式,此时残差均为0,需要重新再选择一遍一阶多项式),查看残差。各控制点残差和RMS总误差控制在5以内,且越小越好。

如残差超限,应删除该控制点并重新选取控制点。

时间有限,博主并没有精确选取控制点,导致残差过大,结果仅供参考


图15 查看残差

7. 校正及另存为

点击【地理配准】→【更新显示】,相当于“预览”配准后的结果。


图16 更新显示

如更新显示后效果正常,点击【校正】保存地理配准结果。

需注意的是,配准结果默认保存到地理数据库中,但地理数据库不能储存TIFF格式文件,会提示“保存栅格数据集失败”。

     

图17 配准结果默认保存到地理数据库

解决方法:① 点击【浏览】图标


图18 点击浏览

② 点击【向上一级】图标


图19 点击向上一级

③ 选择一个文件夹,点击【添加】,建议选择地理数据库所在的文件夹,方便查找。


图20 选择一个文件夹

此时即可保存为TIFF格式,重采样类型建议选择【双三次卷积】,采样效果最好,点击【保存】,将配准好的图保存为TIFF格式。


图21 保存为TIFF格式

四、创建地理要素

注:

① 如需多人分工,以上步骤由一人完成,再将配准后的地形图和地理数据库交于其他人即可,保证配准结果的一致性,避免合图时出现偏差。

② 分工技巧写在 五、矢量化结果处理 1. 分工及合图 部分,请跳转查看。

1. 线要素:等高线

方法一:ArcScan矢量化追踪

ArcScan可对二值化的栅格图像进行追踪,实现交互式(半自动)矢量化或全自动矢量化,实际上是对编辑器→创建要素功能的增强。由于博主使用的地形图要素密集、种类繁多、图面复杂,全自动矢量化效果很差,故使用半自动矢量化。

1)图像二值化

图像的二值化,就是将图像上的像素点的灰度值设置为0255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。

(1)传统方法:使用重分类工具

① 打开ArcToolbox工具箱,选择【Spatial Analyst工具】→【重分类】→【重分类】。


图22 选择重分类工具

② 输入栅格选择配准后输出的.tif文件,重分类字段保持默认,设置输出栅格名称及储存位置,点击【分类】。


图23 设置重分类参数

类别设置为【2】,点击【确定】。


图24 设置重分类类别

新值设置为【0】和【1】。


图25 设置新值

③ 右单击重分类生成的图层→属性→符号系统→已分类→色带,更改为图中样式。


图26 更改色带

④ 放大可知重分类二值化后只显示了较粗的线,等高线没有显示出,需要调整重分类的中断值,过于繁琐,不建议采用该方法。


图27 重分类效果

(2)特殊方法:使用蓝色波段直接二值化

① 直接将配准后的.tif文件的Band_3(蓝色波段)拖入ArcMap内容列表中(经实验该幅地形图蓝色波段二值化效果最好)。

     

图28 直接加载蓝色波段

② 右单击蓝色波段,选择【属性】→【符号系统】→【已分类】,会提示下图错误。


图29 提示无直方图

打开ArcToolbox工具箱,双击打开【数据管理工具】→【栅格】→【栅格属性】→【计算统计数据】,输入栅格数据集选择配准后图层(TIFF格式),点击确定。


图30 计算统计数据

③ 继续右单击蓝色波段,选择【属性】→【符号系统】→【已分类】,类别设置为2,色带如图设置。


图31 蓝色波段二值化

④ 二值化后效果较好,等高线均能较清晰显示。


图32 蓝色波段二值化效果

2)ArcScan配置(准备工作)

(1)激活ArcScan模块:单击菜单栏【自定义】→【扩展模块】→勾选ArcScan。


图33-1 激活ArcScan模块_1


图33-2 激活ArcScan模块_2

(2)加载【编辑器】和【ArcScan】工具条:右单击【工具栏】空白处→勾选【ArcScan】和【编辑器】。


图34 加载编辑器和ArcScan工具条

(3)捕捉设置

① 单击编辑器工具栏中【编辑器】→【选项】,在【常规】选项卡中勾选【使用经典捕捉】。


图35-1 编辑器选项


图35-2 使用经典捕捉

如不使用经典捕捉,编辑器→捕捉里第一个选项为捕捉工具条;使用经典捕捉为捕捉窗口。

图36-1 不使用经典捕捉


图36-2 使用经典捕捉

② 单击编辑器工具栏中【编辑器】→【开始编辑】,单击【捕捉】→【捕捉窗口】。

③ 如图所示勾选。


图37 捕捉设置

捕捉等高线端点,方便万一矢量化过程中断,继续矢量化同一根,避免出现伪结点错误。

捕捉栅格中心线和交点,利于保证半自动矢量化的精度

3)开始编辑

① 单击编辑器工具栏【创建要素】图标。


图38 创建要素

② 选择【等高线】图层,构造工具选择【线】。


图39 选择构造工具

③ 点击ArcScan工具条的【矢量化追踪】图标,开始追踪。


图40 矢量化追踪

4)Tips

① 定期按【F2】保存编辑内容,退出软件时记得保存mxd。

② 矢量化追踪时按【C】键(英文输入法下)或按下(非滚动)【鼠标滚轮】,可以将【十字丝】切换成【平移】工具,方便移动图层。

③ 矢量化追踪时按住【S】键可以更改为【手动追踪】,适合等高线复杂和等高线与方里网或文字注记重叠处。

④ 矢量化时按【F8】键可打开【流编辑模式】,适合等高线曲率较大处。

⑤ 矢量化时可不显示二值化图层,只显示彩色图层,更清晰直观。


图41 显示彩色图层

⑥ 矢量化追踪遇到等高值注记或其他等高线断开处,按住【S】键切换到手动追踪进行连接后继续矢量化。

     

                         图42-1 等高线在注记处断开                                                           图42-2 手动追踪连接

⑦ 尽量让矢量化追踪指示箭头沿等高线走向,出错较少。


图43 箭头沿等高线走向

⑧ 在等高线曲率大的部分小幅度前进,曲率小的部分可大幅度前进。

方法二:使用R2V半自动矢量化

1)在ArcMap中图层管理器只勾选配准好的TIFF格式图像,选择菜单栏,【文件】→【导出地图】,分辨率设置大于等于【1000dpi】,格式选择为【8位灰度】,点击【确定】导出图像。

注:R2V只能加载1,4,8位的图像,彩色TIFF是RGB色彩模式,为24位,不能加载,会提示下图错误。


图44-1 R2V报错

 

图44-2 分辨率≥1000dp


图44-3 导出为8位灰度图像

2)打开R2V,选择菜单栏,【打开】→【打开图像或方案】,加载TIFF格式的8位灰度地形图


图45 R2V加载图像

3)选择菜单栏,【图像】→【设置图像阈值】,不同地形图阈值设置不同。


图46 设置阈值

4)使用线段编辑工具矢量化,操作类似于ArcScan追踪矢量化。


图47-1 线段编辑工具


图47-2 线段矢量化

方法三:使用SuperMap矢量化

http://blog.sina.com.cn/s/blog_80a9926b0101gghm.html

此篇博客叙述得很详细,在此不再赘述。

2. 点要素

单击编辑器工具栏中【编辑器】→【开始编辑】,单击【创建要素图标】,选择【山顶点】要素类,构造工具选择【点】,在地形图上对应的山顶点上点击即可创建。


图48 创建点要素

3. 面要素

1)水系、居民地

单击编辑器工具栏中【编辑器】→【开始编辑】,单击【创建要素图标】,选择对应的要素类,构造工具选择【面】,在地形图上沿对应地物的【边缘】勾勒出轮廓即可。

注:河流在现实中有宽度,且博主使用的地形图不属于小比例尺,故该地形图上的河流不能归于线要素。

2)底图

等高线、山顶点、水系、居民地均位于地表,但一副完整的三维地形图不应只有地表,还应有“地底”。这里的“地底”实际上是平均海平面,对于该图来说即1956年黄海高程坐标系基准面。

单击编辑器工具栏中【编辑器】→【开始编辑】,单击【创建要素图标】,选择【底图】要素类,构造工具选择【面】,在地形图内图廓4个角点(即经纬网角点)上依次点击,勾勒出底图面。


49 创建底图

至此,创建地理要素完成。

五、矢量化结果处理

1. 分工及合图

1)分工

如需多人合作,需在创建地理要素之前分工,建议在配准后的地形图上创建【分工线】线要素,设置醒目颜色,线宽适当调大,捕捉窗口中设置捕捉【分工线-边】。可避免等高线绘制区域重叠,减少不必要的劳动,便于合图。


图50 创建分工线

2)合图

(1)合并所有人员的等高线数据

① 在目录窗口中,右单击一个要素类,选择【加载】→【加载数据】。


图51-1 加载数据

② 点击【浏览】图标依次选择待加载要素类,点击【添加】按钮将要素类添加至加载框中,所有参数保持默认,连点【下一步】按钮,最后点击【完成】按钮,将所有的等高线数据加载到一个要素类中。


图51-2 选择待加载数据

③ 观察分工线两侧等高线,如有重叠部分,使用编辑器工具条中的【分割工具】分割,选中多余部分右单击选择【删除】或按【Delete键】删除。拼接等高线时,可使用【编辑折点】工具或【整形要素工具】,将所有接茬处相分离的等高线拼接。

④ 把属于同一等高线的线段,合并成一根线要素,做到图面中间不要有线段端点。即每一条等高线,是一个完整的、中间没有断点的线要素

2. 创建拓扑并修改错误

1)新建要素数据集:右单击地理数据库,选择【新建】→【要素数据集】,空间坐标系与要素类坐标系一致。


图52 新建要素数据集

2)导入要素类:右单击要素数据集,选择【导入】→【要素类(单个)】。


图53-1 导入要素类

设置输入输出要素类,点击【确定】导入。


图53-2 设置输入输出要素类

3)创建拓扑

(1)右单击要素数据集,选择【新建】→【拓扑】。


图54 新建拓扑

(2)拓扑规则设置为【不能相交】和【不能有伪结点】。


图55 拓扑规则

(3)新建拓扑并验证,红色处为拓扑错误,需改正。


图56 验证拓扑

(4)显示编辑器和拓扑工具条,点击【编辑器】→【开始编辑】,选择等高线要素。点击拓扑工具条中的【错误检查器】按钮,查看拓扑错误,使用拓扑工具条中的【拓扑编辑工具】、【修复拓扑错误工具】按钮和编辑器工具条中的【编辑折点】、【整型要素工具】、【分割工具】按钮修复拓扑错误,后使用拓扑工具条中的【验证当前范围内的拓扑】按钮验证是否已修复。

3. 等高线平滑

半自动和手动矢量化出的等高线是折线,而现实中地物边缘不像折线那样尖锐,拐点尖锐的等高线生成的三维地形图观感欠佳,所以需要进行平滑处理。

(1)打开ArcToolbox工具箱,选择【制图工具】→【制图综合】→【平滑线】。


图57 平滑线工具

(2)设置输入要素和输出要素类,平滑容差需要根据矢量化的精细程度和等高线的等高距反复调试,点击【确定】进行平滑操作。


图58 平滑线参数设置

(3)平滑后效果

平滑容差博主设置的是50m,效果较好,图中黑线是平滑前,红线是平滑后。


图59 平滑操作结果

六、赋属性值

1. 线要素

方法一:通过属性表手动赋值

打开编辑器工具栏中的【编辑器】→【开始编辑】,右单击目录窗口中的等高线要素类,选择【打开属性表】,右单击每一条字段,选择【缩放至】,查看高程值,然后手动录入。

方法二:通过R2V等高线标注工具标注

① 在ArcMap中将等高线要素类导出成 .shp文件:

在目录窗口中右单击等高线要素类,选择【数据】→【导出数据】。


图60-1 导出要素类

点击【浏览】图标,选择输出路径。


图60-2 选择输出路径

选择保存类型,点击【确定】保存。


图60-3 选择保存类型

② 将 .shp导入R2V:

打开R2V,加载8位灰度图,选择菜单栏,【文件】→【输入矢量】,选择 .shp文件,点击【打开】加载。


图61 R2V导入shp

③ 使用【等高线标注】工具为等高线批量附属性值:

先点击工具栏【线段编辑】按钮(蓝色框内),再点击【等高线标注】按钮(红色框内)。


图62-1 选择等高线标注工具

按住【鼠标左键】用光标横穿多条等高线以选中等高线。


图62-2 选择多条等高线

设置高程初始值和增加值,注意上一步横穿等高线的方向,如从高处向低处横穿,增加值为负。


图62-3 设置高程初始值和增加值

2. 点要素

山顶点赋高程值使用手动录入属性表方法即可,不再赘述。

3. 面要素

底图的高程值在属性表中手动录入为0

七、生成TIN

TIN(Triangulated Irregular Network)为不规则三角网的缩写,当仅已知空间中几个点的坐标,试图求算其他点的坐标时,可采用生成TIN的方式进行插值,将已知坐标的点设为三角形的顶点,通过插值函数,可由已知的顶点坐标推算出三角形区域内任一点的坐标。

我们矢量化等高线山顶点并赋以高程值,但是只有线上的点和山顶点的高程是准确已知的,等高线间大片区域的高程值只是介于两条等高线之间,但不能被准确获知。此时我们需要以已知准确高程的等高线和山顶点为基础,生成TIN,用空间插值的方法,解算出等高线间区域内点的近似高程值。换句话来说,就是用TIN来近似模拟出地表结构,TIN的精度越高,就越逼近真实地表。

1. 等高线和山顶点生成地表TIN

(1)打开ArcToolbox,选择【3D Analyst工具】→【数据管理】→【TIN】→【创建TIN】。


图63 选择创建TIN工具

(2)输入要素类选择【等高线_平滑】和【山顶点】,再选择输出TIN的名称及位置,坐标系保持默认,点击【确定】生成地表TIN。


图64-1 创建地表TIN

2. 底图生成地底TIN

创建方法同上,不再赘述。


图64-2 创建地底TIN

八、在两个TIN间拉伸

“地表”和“地底”已经得到了,中间夹的“地壳”如何表示呢?

使用TIN拉伸工具,可在两个TIN之间拉伸得到多面体,模拟出“地壳”。

1. 选择在两个TIN间拉伸工具

打开ArcToolbox,选择【3D Analyst工具】→【表面三角化】→【在两个TIN间拉伸】。


图65 选择在两个TIN间拉伸工具

2. 设置拉伸参数

选择输入TIN和输入要素类,设置输出要素类的名称及位置,点击【确定】。

注:输入要素类尽量选择面要素,拉伸出的结果更美观。

因等高线和山顶点分别是线要素和点要素,故选择底图作为输入要素类。


图66 设置TIN拉伸参数

九、地表TIN转DEM

TIN属于矢量数据,虽然质量好、精度高,但数据结构较复杂,对设备的负载较大,进行三维展示时不流畅;而DEM属于栅格数据,结构简单,对设备负载小,进行三维展示时效率很高。仅用于展示的三维地形图并不需要太高的精度,故采用DEM储存高程数据比TIN更合适。

1. 选择TIN转栅格工具

打开ArcToolbox,选择【3D Analyst工具】→【转换】→【由TIN转出】→【TIN转栅格】。


图67 选择TIN转栅格工具

2. 设置转换参数

设置输入TIN和输出栅格的名称及位置,点击【确定】。


图68 设置TIN转栅格参数

十、三维显示

1. 获取遥感影像

下载遥感影像的方法有很多种,博主使用的是“91卫图助手”这款软件。

(1)先将旧图幅号换算至新图幅号,在软件中搜索图幅号对应的遥感影像,双击蓝色区域下载,选择[影像级别]和[存储目录];

(2)点击【导出设置】,选择坐标投影为[北京54坐标系高斯投影],勾选[背景透明];

(3)点击【参数设置】,分带方式选择[6度分带],勾选[横坐标加投影带号19];

(4)点击【确定】,下载。


图69 91卫图助手设置参数

2. 配准遥感影像

由于存在配准误差,下载的遥感影像一般不能和地形图正好吻合,或多或少会出现一些偏差,需要通过地理配准来与地形图吻合。


图70 遥感影像和地形图不能完全吻合

注:91卫图助手如未获取授权,不能将数据导出为北京54坐标系,会导致遥感影像与地形图有很大的偏差。可先将遥感影像的坐标系转换成北京54坐标系,在第(2)步创建控制点时分别将遥感影像和地形图缩放至图层,以添加控制点。最后校正所得结果一致。

(1)打开地理配准工具条,在下拉菜单中遥感影像为待配准图像。


图71 选择遥感影像为待配准图像

(2)选择【添加控制点】工具,先在待配准的【遥感影像】的角点上点击第一次,此时十字丝为绿色;然后在已配准的【地形图】对应内图廓角点上点击第二次,此时十字丝为红色,一对控制点创建完成。


图72 创建一对控制点

(3)以上述方法,分别在遥感影像和地形图的4个角点上分别创建4对控制点,点击【编辑器】→【更新显示】,此时遥感影像应基本与地形图内图廓完全吻合。


图73 遥感图像与地形图完全吻合

(4)点击【编辑器】→【校正】,重采样类型选择【双三次卷积】,选择输出位置,点击【保存】另存校正后的遥感影像。


图74 另存校正后遥感图像

3. ArcScene三维显示

(1)打开ArcScene,新建空白Scene,默认地理数据库选择新建地图文档时创建的地理数据库。


图75 新建空白Scene

(2)选择菜单栏,【视图】→【场景属性】→【坐标系】,选择与之前ArcMap相同的坐标系。


图76 设置场景坐标系

(3)将【遥感影像】、【水系】、【居民地】、【拉伸】、【等高线_DEM】加载进ArcScene窗口。


图77 ArcScene加载要素

(4)设置在自定义表面浮动和垂直夸大系数。

右单击【遥感影像】,选择【属性】→【基本高度】,选择在【自定义表面浮动】,参数设置为【等高线_DEM】;垂直夸大系数根据实际情况调整。


图78 设置在自定义表面上浮动

(5)同理,设置【水系】、【居民地】、【拉伸】要素类在等高线_DEM表面浮动,分别设置垂直夸大系数。

注:建议垂直夸大系数 拉伸<遥感影像<水系=居民地,博主分别设置的为5.05、5.30、5.35、5.35。

如都设置相同,拉伸要素会有部分穿透遥感影像,水系的居民地会有部分陷入遥感影像,显示效果较差,如下图所示。


图79 垂直夸大系数设置为相等

至此,数字栅格地图矢量化及三维显示全部完成。


· 卖点情怀

十一、写在最后

全文共8181字,95张配图,感谢各位读者的认真阅读。博主在做这项工作时苦于网络上没有一套系统的教程,只能各处查阅资料、教程,走了不少弯路。现用五天时间,特整理书写此教程,不仅步骤完整详实,还加入了个人对于此项工作的一些理解和体会,望能对广大GISer在矢量化及三维展示栅格地形图时能有所帮助。

然则博主只是一位普通一本GIS专业的普通学生,水平着实有限,错误与不妥之处肯定在所难免,万望各位GIS前辈、高人不吝斧正,学生不胜感激!

个人邮箱:[email protected]

猜你喜欢

转载自blog.csdn.net/qq_33042605/article/details/79997119
今日推荐