练习七、地形分析
地形分析:TIN及DEM的生成及应用
- 加深对TIN建立过程的原理、方法的认识;
- 熟练掌握ArcGIS中建立DEM、TIN的技术方法;
- 结合实际,掌握应用DEM解决地学空间分析问题的能力。
-
TIN 及DEM 生成
矢量数据:
- 高程点Elevpt_Clip.shp
- 高程Elev_Clip.shp
- 边界Boundary.shp
- 洱海Erhai.shp
本章的大部分练习都会用到三维分析扩展模块,要使用“三维分析模块”首先在ArcMap中执行菜单命令【自定义】>【扩展模块】,在扩展模块管理窗口中,勾选【3D Analyst】。然后在ArcMap工具栏的空白区域点右键,在出现的右键菜单中找到【3D Analyst】项,点击该项,在ArcMap中显示三维分析工具栏。
1.1由高程点、等高线矢量数据生成TIN转为DEM
(1) 在ArcMap中新建一个地图文档,添加矢量数据:Elevpt_Clip、Elev_Clip、Boundary、Erhai;
(2) 在ArcToolbox中双击【3D Analyst工具】>【TIN管理】>【创建TIN】,打开【创建TIN】对话框;
(3) 在对话框中添加上述4个图层,参数设置如下图(注意:在构建Erhai图层时,SF_type参数需要设置为“硬替换”):
【创建TIN】对话框中的参数说明:
height_field:高程字段,用于提供要素的高程值。当图层中无高度属性时,可选“<None>”,但至少要保证有一个图层属性表中有高程值。
SF_type:表面要素类型字段,用于定义如何将要素几何添加到三角形中。
tag_field:标签字段,用于指定在TIN中用做标签值的要素类型属性字段。
“SF_type”字段取值类型说明:
离散多点:是TIN网中的结点,主要决定表面的形状,在表面变化程度较大的区域包括较多的离散点,表面变化程度较小的区域包括较少的离散点。
断裂线:主要用来表示自然要素(如山脊线、河流)或人工要素(如道路),分为硬断线和软断线。
硬断线:用来表示坡度的不连续性,如河流和道路可以作为硬断裂线包括在TIN中;
软断线:用于向TIN添加边,以捕获不会改变表面局部坡度的线状要素,研究区域边界可作为软断裂线包括在TIN中。
(1) 在图层控制中,仅打开【ErHai】和【Tin】两个图层,同时关闭图层【Tin】的“边类型”,可得到如下的效果:
(2) 在ArcToolbox中双击【3D Analyst工具】>【由TIN转出】>【TIN转栅格】,打开【TIN转栅格】对话框,在对话框中设置相关参数(如下图所示):
需要保存在个人数据库中。
(3) 确定后得到一个栅格数据图层【tinGrid】,其中每个栅格单元表示50m*50m的区域,如下图所示。
1.2 TIN的显示
(1) 在图层控制中,仅打开【Tin】图层,编辑图层的属性,在属性对话框中,点击【符号系统】选项页,将【边类型】和【高程】前面的勾去掉,点击【添加】按钮,如下图所示:
(2) 在【添加渲染器】对话框中,将【具有相同符号的边】和【具有相同符号的节点】添加到TIN的显示列表中,如下图所示:
(3) 点击确定,将【Tin】图层局部放大,认真理解TIN的存储模式及显示方式,如下图所示:
1.3将TIN转换为坡度多边形
(1) 新建地图文档,加载图层【Tin】,参考上一步操作,将【具有分级色带的表面坡度】项添加到TIN的显示列表中;
(2) 在上面的对话框中,选中【坡度(度)】,将【分类】中的【类】指定为“5”,点击【分类】按钮,在下面的对框中,将【分类】中的【方法】指定为“手动”,在【中断值】列表中依次输入坡度中断值:8、15、25、35、90,如下图所示:
点击【确定】后关闭图层属性对话框,图层【Tin】将根据指定的渲染方式进行渲染,效果如下图所示:
(3) 在ArcToolbox中双击【3D Analyst工具】>【表面三角化】>【表面坡度】,打开【表面坡度】对话框,按下图所示指定各参数(注意:需要在【类明细表】中选取数据库SlopeCode.mdb):
得到多边形图层【tinSlope】,它表示研究区内各类坡度的分布状况,结果是矢量格式,打开其属性表可以看到属性字段【SlopeCode】的取值为1、2、3、4、5。
查看矢量图层:tinSlopef中要素属性表,其中属性字段【SlopeCode】1、2、3、4、5分别表示坡度范围(0-8)、(8-15)、(15-25)、(25-35)、(35-90)。
1.4合并破碎多边形
(1) 新建地图文档,加载上一步生成的坡度多边形图层【tinSlope】,打开属性表,添加一个字段Area(类型为Double);
(1) 通过【计算几何】操作,计算各个多边形的面积:
(2) 执行菜单命令【选择】>【按属性选择】,打开【按属性选择】对话框,将面积小于等于10000平方米的多边形选择出来,被选中的多边形以高亮方式显示:
(3) 双击ArcToolBox中的【数据管理工具】>【制图综合】>【消除】,打开【消除】对话框,将面积小于等于10000平方米的多边形合并到周围面积最大的多边形中。
原始多边形
合并后的多边形
将地图适当放大,比较原始图层【tinSlope】与合并后的图层【tinSlope_Eliminate】。
Eliminate(合并破碎多边形)操作原理
1.5 TIN转换为坡向多边形
参照1.3节中的操作步骤,可得到坡向多边形图层【tinAspect】:
得到的坡向多边形中属性AspectCode的数值(-1,1,2,3,4,5,6,7,8,9)分别表示当前图斑的坡向(平坦、北、东北、东、东南、南、西南、西、西北、北),其中1,9是相同的可以合并为1。
-
DEM的应用
2.1坡度Slope
(1) 新建地图文档,加载1.1节第6步中得到的栅格数据【tinGrid】;
(2) 双击ArcToolBox中的【Spatial Analyst工具】>【表面分析】>【坡度】,打开【坡度】对话框,参照下图指定各参数:
(3) 得到坡度栅格Slope_TinGrid,栅格单元的值在【 0 -90 】 度间变化:
(4) 右键点击图层【Slope_TinGrid】,执行【属性命令】,设置图层【符号】,重新调整坡度分级(参考1.3节中第2步进行分类):
2.2坡向Aspect
(1) 新建地图文档,加载1.1节第6步中得到的栅格数据【tinGrid】;
(2) 双击ArcToolBox中的【Spatial Analyst工具】>【表面分析】>【坡向】, 打开【坡向】对话框,参照下图指定各参数:
(3) 得到坡向栅格【AspectTinGrid】:
2.3提取等高线
(1) 新建地图文档,加载栅格数据【tinGrid】;
(2) 双击ArcToolBox中的【3D Analyst工具】>【栅格表面】>【等值线】,打开【等值线】对话框,参照下图指定各参数:
(3) 生成等高线矢量图层【Contour_TinGrid】:
2.4计算地形表面的阴影图
(1) 新建地图文档,加载栅格数据【tinGrid】;
(2) 双击ArcToolBox中的【3D Analyst工具】>【栅格表面】>【山体阴影】,打开【山体阴影】对话框,参照下图指定各参数:
(3) 生成地表阴影栅格:【ShadowTinGrid】:
(4) 关闭除【TinGrid】和【ShadowTinGrid】以外的所有图层,并将【TinGrid】置于【ShadowTinGrid】之上,右键点击【TinGrid】,在出现的右键菜单中执行【属性】,在【图层属性】对话框中,参照下图所示设置【符号系统】选项页中颜色:
(5) 打开工具栏【效果】,如下图所示,设置栅格图层【TinGrid】的透明度为40%左右,以便部分透出下层的山体阴影效果。
2.5通视分析
(1) 新建地图文档,加载栅格数据【tinGrid】;
(2) 打开【3DAnalyst】工具栏,从工具栏选择【创建通视线】工具:
(3) 在出现的【通视线】对话框中输入【观察点偏移】和【目标偏移】,即距地面的距离,如图:
在地图显示区中从某点A沿不同方向绘制多条直线,可以得到观察点A到不同目标点的通视性:
绿色线段表示可视的部分,红色线段表示不可见部分
2.6视域分析
(1) 新建地图文档,加载栅格数据【tinGrid】和矢量数据【移动基站.shp】;
(2) 双击ArcToolBox中的【3D Analyst工具】>【可见性】>【视域】,打开【视域】对话框,参照下图指定各参数:
(3) 生成可视区栅格【View_TinGrid】,其中绿色表示现有发射基站信息已覆盖的区域,淡红色表示无法接收到手机信号的区域。
2.7地形剖面
(1) 新建地图文档,加载栅格数据【tinGrid】;
(2) 打开【3DAnalyst】工具栏,从工具栏选择【线插值】工具,跟踪一条线段,这条线段可以从【tinGrid】中得到高程值:
(3) 从【3DAnalyst】工具栏中选择【创建剖面图】工具,得到该线段所在区域的剖面图:
大佬,你好,1.3(1)里面slopecode是怎么来的啊?数据库是自己按上面的属性分类形成的,还是作业文件夹里自带的,我按报告里的做怎么都找不到slopecode呢,求指点。我没有这个数据库,按你的报告做生成的slopecode是1-8不是1-5,tin分好五类了。