ArcGIS地形图配准并生成三维模型(附练习数据下载)
01 前言
由于这个是第9届全国大学生 GIS 技能大赛上午的试题,都是一些很重要的基本操作,但是综合性要求还是比较高,小编默认练习这个试题的都是大佬啦,所以我会把一些要注意的东西给点一下,大概操作步骤是给出了,但是没有像之前的文章一样一个点击就给出一个步骤图,毕竟一些简单的步骤各位小伙伴也是熟记于心,放出来也是画蛇添足,让大家不厌其烦。
02 数据说明
topo_map.jpg:雷尼尔山国家公园的扫描地形图。雷尼尔山国家公园位于美国华盛顿州,
地理坐标系是 WGS1984,投影是 UTM 分度带投影(后面矢量化需要用到哦)。雷尼尔山国家公园的经度范围在 西经 121 度-西经 122 度之间(确定投影坐标系带号)。扫描图上的高程值单位是英尺,1英尺=0.3048米(高程字段转换单位)。
03 分析要求
扫描图上的横线和竖线是方里格网,间隔是 2km,左上角的交叉点坐标值(596000,5194000), 请创建一份正确的扫描地形图数据,命名为“TopoMap”并且附上RMS误差表。
解答:
首先我们打开数据,查看坐标系,UTM10度带,符合该公园的经度位置,因为UTM带号是东经180°自西向东开始计算的。接下来我们右键菜单栏空白处加载地理配准(适合给栅格数据添加空间参考),不是空间校正(给矢量数据进行空间位置变换)哦,这两个工具界面不仅很像,功能也大同小异,初学者容易混淆。
我们点击
越往后面会发现坐标原始值越接近我们即将要输入的配准坐标值,这是因为前面的配准点对整个图像起到了整体空间位置改变。添加完成后,点击地理配准下拉框【校正】,对地图进行校正和导出,记得在名称中输入:TopoMap哦。
我们可以看到左下角中的坐标值显示和题目要求一样了:
这时候我们点击地理配准工具条上面的
点击左上角的按钮导出该误差表即可。
请对地图进行数字化工作,绘制冰川区域、等高线、高程点和河流数据,具体要求如下:
1)冰川区域和河流不需要额外添加属性字段;
解答:
我们在目录下面创建一个文件夹“SHL”,然后右键该文件夹选择新建选择“Shapefile”,在打开的界面将相关参数设置如下:
(要素名称设置为相关矢量化对象,比如“冰川”、“等高线”、“河流”等,方便后面区分,要素类型根据矢量化对象选择相应的点线面即可)
这时候内容列表出现了这个图层“Bingchuan”,但是是空的,我们打开编辑器开始编辑,点击创建要素按钮
矢量化虽然简单,但是很考验耐心和细心(小编多次半途而废!!!!!),面要素的矢量化要求第一个控制点和最后一个控制点重合,每一个闭合面都会在属性表中生成一行数据,点和线要素的矢量化则相对简单。
冰川矢量化结果
河流矢量化结果
2)等高线只需要绘制计曲线(即加粗的等高线),高程点和等高线都要添加高程值属性字段;
等高线的矢量化也是在“SLH”文件夹中先创建一个空白的线数据,矢量化完后在属性表里面添加一个双精度字段(注意:每一条等高线都要一气呵成,不能成线了继续在线的终点上矢量化,这样即使看着是一条线,其实是由两条线构成的,后面添加字段会麻烦),用来存放计曲线高程(两条计曲线之间是400英尺),一个一个输进去咯(确实麻烦)记住哈,扫描图上面的是英尺单位,我们要在数值的基础上面使用字段计算器乘以0.3048变成米单位哦,因为后面创建的DEM数据高程单位要求为米:
等高线矢量化结果
高程点也是一样创建一个空白的点数据后矢量化就行了,也需添加高程值属性字段(一个一个输入后记得乘以0.3048哦)。
高程点矢量化结果
1) 创建 DEM栅格数据,分辨率为20米,像元值代表高程(米)。
解答:
创建TIN,点击【3D Analyst工具】|【数据管理】|【TIN】|【创建TIN】,相关系数设置如下:
在“Height Field”选中表示高程的字段即可,后面的“SF Type”会根据你的数据类型自动选择哦,得到结果图层如下所示:
接下来点击【3D Analyst】|【转换】|【由TIN转出】|【TIN转栅格】将其转换成栅格数据,但是整个转换过程中没用对栅格大小进行设置,为此还要进行重采样,【数据管理工具】—【栅格】—【栅格处理】—【重采样】,将栅格数据分辨率调整为20米大小。
2) 使用创建好的矢量和栅格数据,重新制作地形图。
①要求和扫描图尽可能一致,请仔细观察地图。
②没有矢量化的露营点、首曲线、步道等矢量信息不需要体现;
解答:
要求和原始扫描图尽可能一致,所以先要求颜色差不多,还要线条粗细大小差不多,我们可以看到冰川内外范围的等高线颜色是不一样的,为此我们要使用冰川和等高线做一次相交,将相交出来的等高线(在冰川范围内的等高线)叠加到最顶层,右键属性设置颜色即可。其他的图层颜色和线条大小都对照着扫描图像进行符号化,高程点和等高线也根据扫描图设置合适的标注即可,这些操作小编就不一一介绍了,相信各位小伙伴也信手拈来。
③山峰、冰川和河流的名字需要在地图上显示出来。
难点:
通过观察扫描图可以知道,这个名字不是直接标注出来的,需要自己插入文本框进行编辑才行。我们在扫描图上面对照这文字的位置插入文本框。添加“绘图”工具箱,插入文本编辑字体样式、大小、间距、颜色后(有些英文字母要有多个空格哦),由于我们插入的文本框是水平的,但是扫描图上的标注大多数都是倾斜的,为此我们点击
④不需要排版出图,请您直接将地图截图放入提交的步骤文档当中。
解答:
我们要将图层按照点线面叠加起来,这样后面的图层才会最大限度地减少被遮挡要素,从下往上:高程栅格—冰川—等高线—冰川上面的等高线—河流—高程点
1) 请创建如下图所示的三维模型。请仔细观察,完全还原。
2) 示例图中我们看到的表面是遥感影像,本试题请使用扫描地形图代替
我们打开ArcScene,将之前【TIN转栅格】的输出数据加载进来,我们右键属性,选择【基本高度】,勾选【浮动在自定义表面】后点击确定即可,这时候图层已经根据高程被拉伸了三维模型的顶算是做好了,但是还要一个底来加持。
接下来选择【3D Analyst工具】—【转换】—【由栅格转出】—【栅格范围】,输出要素类型选择线。
右键刚才输出的栅格范围线数据,在拉伸选项卡中勾选“拉伸图层要素”,“拉伸值”:1000,“拉伸方式”选择:将其用作要素的拉伸数值,整个意思就是将所有线要素拉长到海拔1000米的水平面,最后点击确定。
三维模型结果如下图所示:
本篇文章到此就介绍咯,欢迎各位大佬批评指正,有什么更好的处理方法或者建议都可以评论留言的哦!
- END -