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

· 简介

 

一、概述

1. 要求:

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

2. 最终效果:

《数字栅格地图矢量化及三维显示教程》 图1 矢量化结果
《数字栅格地图矢量化及三维显示教程》 图2 三维显示结果

3. 阅读本教程注意事项

请务必阅读此部分内容,谢谢!

ArcGIS是一款非常优秀的软件,它包含了十分丰富的GIS理论知识,每项操作背后都有着完整的知识体系支撑,是GIS应用于研究、工程的成熟平台。与这样优秀的软件打交道,对学习巩固GIS知识,是大有裨益的。

所谓“授人以鱼不如授人以渔”,博主查阅了数本地图学教材和十余篇博客文章,在各个操作步骤中添加了相关的补充知识,软件操作技巧,以及个人对于此项工作的一些理解和体会,希望读者阅读后不仅知道怎么操作,还要懂得为什么这么操作,以及这么操作背后蕴含的地图学知识

博主写这篇教程的目的,不是单纯地让读者依葫芦画瓢,而是希望不同水平的读者(尤其是刚接触GIS & ArcGIS的小鲜肉们)能带着目的性去进行每一步操作,从而完成“是什么→为什么→怎么做”的思考流程。各位读者切勿比着教程,看一步做一步,只求结果,而放弃思考的能力。

 

· 操作步骤

 

二、新建数据

1. 新建.mxd和GDB

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

《数字栅格地图矢量化及三维显示教程》 图3 新建空白地图文档

注:地图文档建议使用相对路径储存模式,便于多人分工合作。

单击菜单栏,【文件】→【地图文档属性】,勾选【存储数据源的相对路径名】。

《数字栅格地图矢量化及三维显示教程》  图4-1 地图文档属性
《数字栅格地图矢量化及三维显示教程》  图4-2 存储数据源的相对路径名
《数字栅格地图矢量化及三维显示教程》 图5 新建文件地理数据库

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

2. 设置数据框坐标系

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

《数字栅格地图矢量化及三维显示教程》 图6 数据框属性

如何获知地图文档(mxd)数据框应采用哪种坐标系?

(1)坐标系、比例尺、经度范围、纬度范围

查看地图图面可知。

(2)投影方式

国家基本比例尺地图1:100万比例尺采用兰勃特(Lambert)投影方式,

1:50万~1:2.5万比例尺采用高斯-克吕格(Gauss Kruger)6度分带投影方式,

1:1万~1:500采用高斯-克吕格3度分带投影方式。

(3)带号

根据经度计算带号方法:

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

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

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

博主使用的地形图是1954年北京坐标系,1:5万比例尺,经度跨度109°00′E~109°15′E,纬度跨度36°00′N~36°15′N。由这些图面信息可知,该地形图采用的是高斯-克吕格6度分带投影方式,位于北半球第19带,故数据框坐标系选择“投影坐标系→Gauss Kruger→Beijing 1954→Beijing_1954_GK_Zone_19N”,如图所示。

《数字栅格地图矢量化及三维显示教程》 图7 选择数据框坐标系

注:

① 查看带号的方法详见 三、地理配准 5.读图获取方里网或经纬网交点坐标 部分。

② GK_CM代表3度分带,GK_ZONE代表6度分带;19N代表北半球第19带,19代表南半球第19带。

3. 创建要素类

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

    点要素:山顶点(字段名:高程[浮点型])

    线要素:等高线(字段名:高程[浮点型])

    面要素:水系

                  居民地

                  底图(字段名:高程[浮点型]),即大地水准面,海拔高程系统的起算面,高程设置为0。

步骤:

(1)右单击要创建新要素类的地理数据库,选择【新建】→【要素类】。

《数字栅格地图矢量化及三维显示教程》 图8 新建要素类

(2)设置名称、别名、要素类型(很重要)

《数字栅格地图矢量化及三维显示教程》 图9 设置要素类参数

(3)设置要素类坐标系。

《数字栅格地图矢量化及三维显示教程》 图10 设置要素类坐标系

(4)添加高程字段(此前几步操作保持默认设置即可),类型为浮点型。点击【完成】。

《数字栅格地图矢量化及三维显示教程》 图11 添加高程字段

(5)按上述操作创建山顶点、底图要素类。

注:① 要素类的坐标系需和数据框坐标系一致。如不一致将会弹出地理坐标系警告。

《数字栅格地图矢量化及三维显示教程》 图12 地理坐标系警告

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

 

三、地理配准

1.导入地形图

左键长按目录窗格中的待配准的地形图,拖拽至数据框中;或点击工具条中的【添加数据】按钮《数字栅格地图矢量化及三维显示教程》 ,选择待配准地图,添加到数据框中。

《数字栅格地图矢量化及三维显示教程》 图13 导入地形图

如提示创建金字塔,点【确定】。

《数字栅格地图矢量化及三维显示教程》 图14 创建金字塔

2. 打开地理配准工具条

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

 

《数字栅格地图矢量化及三维显示教程》 图15-1 工具栏空白处
《数字栅格地图矢量化及三维显示教程》 图15-2 勾选地理配准

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

《数字栅格地图矢量化及三维显示教程》 图16 选择地形图

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

《数字栅格地图矢量化及三维显示教程》 图17 取消勾选自动校正

注:

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

② 如图像超出显示范围,可通过以下两种方式找到图像所在位置:

a. 右单击某图层,选择【缩放至图层】;

《数字栅格地图矢量化及三维显示教程》 图18 缩放至图层

b. 点击【地理配准】→【适应显示范围】。

《数字栅格地图矢量化及三维显示教程》 图19 适应显示范围

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

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

《数字栅格地图矢量化及三维显示教程》 图20 方里网和经纬网交点

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

其中Y坐标前两位数——19,表示该地形图位于6度分带的第19带;

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

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

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

注:

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

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

② 某个分带的方里网坐标系仅限于该分带范围内使用(如确定某点的坐标、计算点间距离),不同分带的坐标进行比较和计算毫无意义(如不能说第20分带Y坐标为20xxxxxx的点,比第19分带Y坐标为19xxxxxx的点,在水平距离上差100万m),因为Y坐标前两位为带号,且Y轴为中央经线向西偏移500Km所得。即使多个分带均为同一个投影坐标系,但是各个分带使用的是各自互相独立的“小坐标系”,故不同分带的坐标之间毫无关系。博主当时做这项工作时在这儿纠结了许久,现将自己的一点心得记录下来,望能对各位读者有所帮助。

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

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

《数字栅格地图矢量化及三维显示教程》 图13 添加控制点按钮

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

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

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

《数字栅格地图矢量化及三维显示教程》 图22 添加控制点并输入坐标

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

7. 查看残差及修正

控制点添加完成后,点击地理配准工具条的【查看链接表】《数字栅格地图矢量化及三维显示教程》 按钮。

《数字栅格地图矢量化及三维显示教程》 图23 查看链接表

变换方式选择【一阶多项式】。

《数字栅格地图矢量化及三维显示教程》 图24 再选择一次一阶多项式

注:

① 虽然链接表刚打开变换方式默认显示为一阶多项式,但只是显示,实际并没有进行任何变换,所以残差一开始均为n/a,需要选择一遍一阶多项式,才会执行变换。

② 残差标准:一般的,残差大于1的控制点应删除。考虑到纸质地形图扫描后的变形问题,对于该幅地图各控制点残差和RMS总误差控制在5以内,且越小越好。

③ 点击链接表左上角的【保存】按钮《数字栅格地图矢量化及三维显示教程》 ,可将当前的控制点保存为文件,以后再配准该图时可直接打开链接表,点击【加载】按钮《数字栅格地图矢量化及三维显示教程》 即可加载保存的控制点。

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

8. 校正及另存为

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

《数字栅格地图矢量化及三维显示教程》 图25 更新显示

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

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

《数字栅格地图矢量化及三维显示教程》 图26 配准结果默认保存到地理数据库
《数字栅格地图矢量化及三维显示教程》 图27 保存栅格数据集失败

解决方法:

① 点击【浏览】图标

《数字栅格地图矢量化及三维显示教程》 图28 点击浏览图标

② 点击【向上一级】图标

《数字栅格地图矢量化及三维显示教程》 图19 点击向上一级图标

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

《数字栅格地图矢量化及三维显示教程》 图30 选择一个文件夹

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

《数字栅格地图矢量化及三维显示教程》 图31 保存为TIFF格式

 

四、创建地理要素

注:

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

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

1. 线要素:等高线

方法一:ArcScan矢量化追踪

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

1)图像二值化

图像的二值化,就是选择一个灰度阈值,灰度值高于该阈值的像素点,一律将灰度值设置为255(白);灰度值低于该阈值的像素点,一律将灰度值设置为0(黑)的操作。每个像素非黑既白,整幅图像只有两种颜色两种灰度值,故称作二值化。

(1)单波段数字栅格图像:使用重分类工具

注:博主使用的是多波段数字栅格图像,不使用该方法,但希望读者能不跳过这部分。

单波段数字栅格图像指在某一波段范围内工作的传感器获取的数字栅格图像。单波段数字栅格图像均为灰度图像。

举个形象的例子,早期的黑白电视只有一支电子枪,每个像素点只能显示一个波段,所以显示出的画面是灰度图像(虽然它叫黑白电视,但是主要显示的是灰色);后来的彩色电视有三支电子枪,每个像素点能显示三个波段(红绿蓝三原色),将这三个波段组合在一起,就形成了彩色图像。

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

《数字栅格地图矢量化及三维显示教程》 图32 选择重分类工具

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

《数字栅格地图矢量化及三维显示教程》 图33 设置重分类参数

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

《数字栅格地图矢量化及三维显示教程》 图34 设置重分类类别

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

《数字栅格地图矢量化及三维显示教程》 图35 设置新值

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

《数字栅格地图矢量化及三维显示教程》 图36 更改色带

④ 对于多波段数字栅格图像,ArcGIS中的重分类工具会默认对第一个波段执行操作。下图是对该图像执行重分类后的结果,放大可见只显示了原图上黑色的内容,土黄色的等高线没有显示出,效果较差,故不采用这种方法。

《数字栅格地图矢量化及三维显示教程》 图37 重分类效果

 

(2)多波段栅格图像:使用某一波段直接二值化

① 分别加载各个波段的图像,选择最与原图接近最为清晰的一幅。

点击配准后导出的tif图像名前的【+】,展开波段列表,Band1、2、3分别代表R、G、B波段。

鼠标左键按住波段,将其拖放至地图框中即可加载。

《数字栅格地图矢量化及三维显示教程》 图38 加载单波段图像

读图可知,Band3(蓝色波段)最与原图接近,等高线最为清晰,故对于该幅数字栅格图像,选用蓝色波段进行二值化。

《数字栅格地图矢量化及三维显示教程》 图39 各波段单独显示效果

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

《数字栅格地图矢量化及三维显示教程》 图40 提示无直方图

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

《数字栅格地图矢量化及三维显示教程》 图41 计算统计数据

③ 继续执行第②步操作,类别设置为2,色带如图设置,点击确定。

《数字栅格地图矢量化及三维显示教程》 图42 蓝色波段二值化

④ 观察二值化效果,发现50m等高距的粗线效果较好,但10m等高距的细线断断续续,说明默认阈值(177)不合适,需要微调。

《数字栅格地图矢量化及三维显示教程》 图43 蓝色波段二值化效果

⑤ 按照步骤②打开符号系统,点击分类。

《数字栅格地图矢量化及三维显示教程》 图44 点击分类

手动修改第一个中断值的数值(第二个保持默认最大值即可),逐步找到一个效果最好的值,对于该幅图像的蓝色波段,博主认为190效果最好。

《数字栅格地图矢量化及三维显示教程》 图45 手动修改中断值
《数字栅格地图矢量化及三维显示教程》 图46 修改中断值后二值化效果

2)ArcScan配置(准备工作)

注:本文所有操作均是按照该工作所有真实步骤整理编写,确保能按照本教程顺利完成该工作。如在该步骤发现自己的软件界面与本文中不符(ArcScan不能使用、不显示捕捉窗口、捕捉环境中没有栅格……),请自行检查是否完全依照本文内容进行操作以及软件是否安装正确,授权是否完整。

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

注:建议所有扩展模块都勾选。

《数字栅格地图矢量化及三维显示教程》 图47-1 激活ArcScan模块_1
《数字栅格地图矢量化及三维显示教程》 图47-2 激活ArcScan模块_2

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

《数字栅格地图矢量化及三维显示教程》 图48 加载编辑器和ArcScan工具条

(3)捕捉设置

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

《数字栅格地图矢量化及三维显示教程》 图49-1 编辑器选项
《数字栅格地图矢量化及三维显示教程》 图49-2 使用经典捕捉

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

《数字栅格地图矢量化及三维显示教程》 图50-1 不使用经典捕捉
《数字栅格地图矢量化及三维显示教程》 图50-2 使用经典捕捉

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

③ 如图所示勾选。

《数字栅格地图矢量化及三维显示教程》 图51 捕捉设置

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

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

3)开始编辑

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

《数字栅格地图矢量化及三维显示教程》 图52 创建要素

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

《数字栅格地图矢量化及三维显示教程》 图52 选择构造工具

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

注:如ArcScan工具条是灰色,请逐条检查是否满足ArcScan使用前提:

① ArcScan扩展模块必须激活

② ArcMap中添加了至少一个栅格数据层和至少一个对应的矢量数据层

③ 栅格数据要进行二值化处理

④ 编辑器必须启动

《数字栅格地图矢量化及三维显示教程》 图54 矢量化追踪

4)一些小技巧

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

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

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

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

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

《数字栅格地图矢量化及三维显示教程》 图55 只显示彩色图层

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

《数字栅格地图矢量化及三维显示教程》 图56-1 等高线在注记处断开
《数字栅格地图矢量化及三维显示教程》 图56-2 手动追踪连接

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

《数字栅格地图矢量化及三维显示教程》 图57 箭头沿等高线走向

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

 

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

1)在内容列表中右单击二值化图层,选择【缩放至图层】。因导出的地图即是地图框中所见的内容,所以要让整幅图像地图框中。

2)在ArcMap中图层管理器只勾选二值化图层,选择菜单栏,【文件】→【导出地图】,保存类型设置为TIFF,分辨率设置大于等于【1000dpi】(保证图像精细度),格式选择为【8位灰度】,点击【确定】导出图像。

《数字栅格地图矢量化及三维显示教程》 图58-1 分辨率≥1000dpi
《数字栅格地图矢量化及三维显示教程》 图58-2 导出为8位灰度图像

注:R2V只能加载1,4,8位的图像,默认颜色模式为24位真彩色,不能加载,会提示下图错误,并且不能设置图像阈值。

《数字栅格地图矢量化及三维显示教程》 图59 R2V报错

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

《数字栅格地图矢量化及三维显示教程》 图60 R2V加载图像

4)选择菜单栏,【图像】→【设置图像阈值】,低阈值保持默认0即可,高阈值需设置大于0的任意值(如果高阈值也是0,则该阈值确定的像素集合为空集,没有任何像素被选中)。

《数字栅格地图矢量化及三维显示教程》 图61 设置阈值

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

注:按F2/F3可以鼠标光标为中心,放大/缩小图像。

《数字栅格地图矢量化及三维显示教程》 图62-1 线段编辑工具
《数字栅格地图矢量化及三维显示教程》 图62-2 线段矢量化

6)导出矢量文件

当全部等高线矢量化完成后,点击菜单栏【文件】→【输出矢量】,保存类型选择【ArcView(*.shp)】,点击保存,导出等高线矢量文件。

《数字栅格地图矢量化及三维显示教程》 图63 导出矢量文件

 

方法三:使用SuperMap矢量化

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

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

 

2. 点要素

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

《数字栅格地图矢量化及三维显示教程》 图64 创建点要素标题

 

3. 面要素

1)水系、居民地

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

《数字栅格地图矢量化及三维显示教程》 图65 创建水系、居民地

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

2)底图

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

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

《数字栅格地图矢量化及三维显示教程》 图66 创建底图

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

 

五、矢量化结果处理

1. 分工及合图

1)分工

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

《数字栅格地图矢量化及三维显示教程》 图67 创建分工线

2)合图

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

《数字栅格地图矢量化及三维显示教程》 图68-1 加载数据

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

《数字栅格地图矢量化及三维显示教程》 图51-2 选择待加载数据

(3)观察分工线两侧等高线,如有重叠部分,使用编辑器工具条中的【分割工具】分割,选中多余部分右单击选择【删除】或按【Delete键】删除。

《数字栅格地图矢量化及三维显示教程》 图69-1 分割工具
《数字栅格地图矢量化及三维显示教程》 图69-2 删除多余部分

(4)使用【编辑折点】工具,将所有接茬处分离的等高线拼接。

《数字栅格地图矢量化及三维显示教程》 图70 编辑折点工具

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

《数字栅格地图矢量化及三维显示教程》 图71 合并工具

2. 创建拓扑并修改错误

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

《数字栅格地图矢量化及三维显示教程》 图72 新建要素数据集

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

《数字栅格地图矢量化及三维显示教程》 图73-1 导入要素类

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

《数字栅格地图矢量化及三维显示教程》 图73-2 设置输入输出要素类

3)创建拓扑

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

《数字栅格地图矢量化及三维显示教程》 图74 新建拓扑

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

《数字栅格地图矢量化及三维显示教程》 图75 拓扑规则

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

《数字栅格地图矢量化及三维显示教程》 图76 验证拓扑

(4)修复拓扑错误并验证

(1)右单击菜单栏空白处,加载【编辑器】和【拓扑】工具条。

(2)点击【编辑器】→【开始编辑】,选择等高线_Topology要素类(即导入拓扑要素数据集中的要素类)。

(3)缩放至某几个拓扑错误粗,点击拓扑工具条中的【错误检查器】按钮,选择【显示所有规则中的错误】,点击【立即搜索】,查看可见范围内的拓扑错误。

《数字栅格地图矢量化及三维显示教程》 图77 拓扑错误检查器

(4)根据拓扑错误类型选择相应的工具,常用工具为拓扑工具条中的【拓扑编辑工具】、【修复拓扑错误工具】和编辑器工具条中的【编辑折点】、【整型要素工具】、【分割工具】。

下面列出几种常见错误的处理方法:

① 等高线自身相交。可用修复拓扑错误工具在错误节点上右单击,选择分割,然后使用编辑器选中分割出的多余部分,删除。

② 两条或多条等高线互相相交。可用编辑折点工具将相交处折点拖动并分离开,也可用整形要素工具绕过相交处重新绘制该处等高线。

③ 等高线有伪结点。说明一条等高线中间有断裂,可用编辑折点工具将断裂处两端折点拖动合并,也可用整形要素工具重新绘制断裂处等高线。内图框一周的等高线端点也会提示该错误,可不予修复。

(5)重新验证拓扑。

每修复一次可见范围内的拓扑错误,点击拓扑工具条【验证当前范围中的拓扑】按钮,如错误消失,说明修复完成,可进行下一处的修复;如仍有错误,说明修复不正确,仍需修复。

5)导出修复后的等高线要素类

右单击地理数据库,选择【导入】→【要素类(单个)】,设置输入输出要素类,点击【确定】导入。

《数字栅格地图矢量化及三维显示教程》 图78 导出修复后的等高线要素类

3.等高线平滑

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

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

《数字栅格地图矢量化及三维显示教程》 图79 平滑线工具

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

《数字栅格地图矢量化及三维显示教程》 图80 平滑线参数设置

(3)平滑后效果

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

《数字栅格地图矢量化及三维显示教程》 图81 平滑操作结果

 

六、赋属性值

1. 线要素

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

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

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

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

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

《数字栅格地图矢量化及三维显示教程》 图82-1 导出要素类

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

注:导出shp文件时输出路径不可选择GDB,应选择文件夹。

《数字栅格地图矢量化及三维显示教程》 图82-2 选择输出路径

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

《数字栅格地图矢量化及三维显示教程》 图60-3 选择保存类型

2)将 .shp导入R2V:

打开R2V,加载在四 1. 方法二中生成的8位灰度图,点击菜单栏【文件】→【输入矢量】,选择 shp文件,点击【打开】加载。

《数字栅格地图矢量化及三维显示教程》 图83 R2V导入shp

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

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

《数字栅格地图矢量化及三维显示教程》 图84-1 选择等高线标注工具

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

《数字栅格地图矢量化及三维显示教程》 图84-2 选择多条等高线

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

《数字栅格地图矢量化及三维显示教程》 图84-3 设置高程初始值和增加值

2. 点要素

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

3. 面要素

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

 

七、生成TIN

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

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

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

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

《数字栅格地图矢量化及三维显示教程》 图85 选择创建TIN工具

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

《数字栅格地图矢量化及三维显示教程》 图86-1 创建地表TIN

2. 底图生成地底TIN

输入要素类选择【底图】,创建方法同上,不再赘述。

《数字栅格地图矢量化及三维显示教程》 图86-2 创建地底TIN

 

八、在两个TIN间拉伸

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

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

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

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

《数字栅格地图矢量化及三维显示教程》 图87 选择在两个TIN间拉伸工具

 

2. 设置拉伸参数

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

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

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

《数字栅格地图矢量化及三维显示教程》 图88 设置TIN拉伸参数
《数字栅格地图矢量化及三维显示教程》 图89 官方帮助文档

 

九、地表TIN转DEM

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

1. 选择TIN转栅格工具

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

《数字栅格地图矢量化及三维显示教程》 图90 选择TIN转栅格工具

2. 设置转换参数

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

《数字栅格地图矢量化及三维显示教程》 图91 设置TIN转栅格参数

 

十、三维显示

1. 获取遥感影像

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

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

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

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

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

《数字栅格地图矢量化及三维显示教程》 图92 91卫图助手设置参数

2. 配准遥感影像

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

《数字栅格地图矢量化及三维显示教程》 图93 遥感影像和地形图不能完全吻合

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

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

《数字栅格地图矢量化及三维显示教程》 图94 选择遥感影像为待配准图像

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

《数字栅格地图矢量化及三维显示教程》 图95 创建一对控制点

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

《数字栅格地图矢量化及三维显示教程》 图96 遥感图像与地形图完全吻合

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

《数字栅格地图矢量化及三维显示教程》 图97 另存校正后遥感图像

3. ArcScene三维显示

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

《数字栅格地图矢量化及三维显示教程》 图98 新建空白Scene

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

《数字栅格地图矢量化及三维显示教程》 图99 设置场景坐标系

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

《数字栅格地图矢量化及三维显示教程》 图100 ArcScene加载要素

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

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

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

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

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

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

《数字栅格地图矢量化及三维显示教程》 图102 垂直夸大系数设置为相等

合理设置拉伸系数后显示效果较好。

《数字栅格地图矢量化及三维显示教程》 图103 三维显示最终效果

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

 

· 卖点情怀

 

十一、写在最后

全文共11263字,123张配图,感谢各位读者的认真阅读。

博主在做这项工作时苦于网络上没有一套系统的教程,只能各处查阅零零散散的资料、教程,走了不少弯路。于2018年4月整理书写此教程,不仅步骤完整详实,还加入了相关的地图学知识,软件操作技巧,以及个人对于此项工作的一些理解和体会,望能对广大GISer在矢量化及三维展示栅格地形图时能有所帮助。

后根据多位读者的建议,修正了一些错误,修改了概念模糊以及语句不通之处,增加了更多的操作细节以及配图,于2019年5月发布第二版。

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

 

主要参考书籍:

牟乃夏,刘文宝,王海银,等.2012.ArcGIS 10地理信息系统教程——从初学到精通.北京:测绘出版社

袁勘省.2014.现代地图学教程(第二版).北京:科学出版社

    原文作者:Locker97
    原文地址: https://blog.csdn.net/qq_33042605/article/details/79997119
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞