GIS基础软件及操作(七)

wshunli
2016-01-14 / 1 评论 / 1,034 阅读 / 正在检测是否收录...

练习七、地形分析

地形分析:TIN及DEM的生成及应用

  1. 加深对TIN建立过程的原理、方法的认识;
  2. 熟练掌握ArcGIS中建立DEM、TIN的技术方法;
  3. 结合实际,掌握应用DEM解决地学空间分析问题的能力。
  1. 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。

  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】工具栏中选择【创建剖面图】工具,得到该线段所在区域的剖面图:

0

评论 (1)

取消
  1. 头像
    Anonymous
    Android Oreo · Google Chrome

    大佬,你好,1.3(1)里面slopecode是怎么来的啊?数据库是自己按上面的属性分类形成的,还是作业文件夹里自带的,我按报告里的做怎么都找不到slopecode呢,求指点。我没有这个数据库,按你的报告做生成的slopecode是1-8不是1-5,tin分好五类了。

    回复