ArcGIS实验Ex18利用水文分析方法提取山脊山谷线.docx
《ArcGIS实验Ex18利用水文分析方法提取山脊山谷线.docx》由会员分享,可在线阅读,更多相关《ArcGIS实验Ex18利用水文分析方法提取山脊山谷线.docx(18页珍藏版)》请在冰豆网上搜索。
ArcGIS实验Ex18利用水文分析方法提取山脊山谷线
第十一章水文分析
练习1:
利用水文分析方法提取山脊、山谷线
山脊线、山谷线是地形特征线,它们对地形、地貌具有一定的控制作用。
它们与山顶点、谷底点以及鞍部点等一起构成了地形及其起伏变化的骨架结构。
因此在数字地形分析中,山脊线和山谷线以及地形特征点等的提取和分析是很有必要的。
二、目的
理解基于DEM结合水文分析的方法提取出研究区域的山脊线和山谷线的原理;掌握水流方向、汇流累积量的提取方法以及它们的提取原理;能将水文分析的方法和其它的空间分析方法相结合以解决应用问题。
三、要求
1、利用水文分析思想和工具提取研究区域的山脊线;
2、利用水文分析思想和工具提取研究区域的山谷线。
四、数据
一幅25m分辨率的黄土地貌DEM数据,数据的区域大概有140km2。
数据存于⋯/ChP11/Ex1中,请将其拷贝到E:
/ChP11/Ex1。
结果数据保存在⋯/ChP11/Ex1/Result中。
五、算法思想
对于水文物理过程研究而言,由于山脊、山谷分别表示分水性与汇水性,山脊线和山谷线的提取实质上也是分水线与汇水线的提取。
因此,对于山脊线和山谷线就可以利用水文分析的方法进行提取。
基于DEM的这种地形表面流水物理模拟分析的原理是:
对于山脊线而言,由于它同时也是分水线,那么对于分水线上的那些栅格,由于分水线的性质是水流的起源点,通过地表径流模拟计算之后这些栅格的水流方向都应该只具有流出方向而不存在流入方向,也就是其栅格的汇流累积量为零。
通过对零值的汇流累积值的栅格的提取,就可以得到分水线,也就得到了山脊线;对于山谷线而言,由于其具有汇水的性质,那么对于山谷线的提取,可以利用反地形的特点,即是利用一个较大的数值减去原始的DEM数据,而得到了与原始地形完全相
反的地形数据,也就是原始的DEM中的山脊变成负地形的山谷,而原始DEM中的山谷在负地形中就变成了山脊,那么,山谷线的提取就可以在负地形中利用提取山脊线的方法进行提取。
六、操作步骤
1、正负地形的提取
(1)启动ArcToolbox,展开AnalysisTools工具箱,打开hydrology工具集。
在图层管理器中加载研究区域的原始DEM数据。
(2)加载SpatialAnalyst模块,点击SpatialAnalyst模块的下拉箭头,点击neighborhoodstatistics菜单工具,利用邻域分析的方法以11×11的窗口计算平均值,如图1。
分析结果命名为meandem,如图2所示。
图1用邻域分析的方法以11×11的窗口计算平均值
图2DEM数据的平均值
(3)点击spatialanalyst中的rastercalculator菜单工具,对原始DEM数据与邻域分
析之后的数据meandem做减法运算,并将运算结果重分为两级,分级界线为0,那么大于0的
区域在原始DEM上就是正地形区域,小于0的区域在原始DEM上就是负地形区域。
(图3)
图3RasterCalculator
菜单工具
图4正负地形区域
(4)对上一步得到的二值化数据进行两次重分类,如图5。
一次将正地形区域属性值赋
值为1,负地形区域属性赋值为0,命名为zhengdixing;另一次将正地形区域属性值赋值为0,
负地形区域属性赋值为1,命名为fudixing。
分别如图6、图7所示。
图5重分类
图6正地形区域(图中深色区域)图7正地形区域(图中深色区域)
2、山脊线的提取:
(1)在ArcMap中加载研究区域的原始DEM数据。
(2)洼地填充:
双击hydrology工具集中的fill工具,进行原始DEM的洼地点填充。
在Inputsurfaceraster文本框中选择原始DEM数据dem,将输出数据命名为filldem,因为选
图9
洼地点填充的结果
(3)基于无洼地的水流方向的计算:
双击hydrology工具集中的flowdirection工具,在Inputsurfaceraster文本框中选择填充过的无洼地DEM数据filldem,将输出的水流方向
(4)
数据命名为flowdirfill,如图10、11。
图11水流方向的计算结果
(5)汇流累积量的计算:
双击hydrology工具集中的flowaccumulation工具。
选择
flowdirfill作为输入的水流方向数据;输出数据命名为flowacc1
图13汇流累积量的计算结果
(6)汇流累积量零值的提取:
加载SpatialAnalyst模块,点击SpatialAnalyst模块的下拉箭头,然后单击rastercalculator菜单,打开栅格计算对话框,在文本框中填写汇流累积量零值的提取公式:
facc0=(flowacc=0),然后点击evaluate进行计算。
计算结果
为所有的汇流累积量为0的栅格。
(6)在ArcMap中打开facc0,发现所提取出的栅格很乱,有很多的地方并不是山脊线的位置,因此应对这个数据进行处理。
处理过程可以利用邻域分析的方法,对提取出的汇流累积量等于零值的数据进行3×3邻域分析进行光滑处理,处理后的数据如图16所示。
图16对提取出的数据进行3×3邻域分析进行光滑处理
(7)单击spatialanalyst模块中的surferanalyst中的countline和hillshade菜单命
令,分别生成原始DEM的等值线图ctour(图17)和晕渲图hillshade(图18)。
图17生成原始DEM的等值线图ctour
(8)打开neiborfacc0数据属性信息,进行重新分类,将分类级别设置为两类,不断调整分界数据大小,并以由DEM生成的等值线图和晕渲图为辅助判断数据。
在neiborfacc0中,
属性值越接近于1的栅格越有可能是山脊线,这里确定的分界阈值为0.5541,如图19、20。
(9)
将进行过二值化的neiborfacc0进行重分类为reneibor,将属性值接近1的那一类的
图19neiborfacc0数据进行重新分类
图20重分类的结果
(10)将重分类过后的neiborfacc0数据与正地形数据zhengdixing利用spatialanalyst菜单下的rastercalculator进行相乘运算,这样就消除了那些存在在负地形区域中的错误的山脊线,结果如图22所示。
3、山谷线的提取
(1)在ArcMap中加载原始DEM数据。
(2)加载SpatialAnalyst模块,点击SpatialAnalyst模块的下拉箭头,点击optionsrastercalculator菜单工具,打开栅格计算对话框;在文本框中填写反地形的计算公式:
fandem=Abs(dem-2000),点击evaluate进行计算。
计算结果与原始DEM地形完全相反的反
地形数据,如图24所示。
(3)反地形计算完毕之后,山谷线的提取就和山脊线的提取步骤一样的,直到最终利用重分类的方法将重新分级的邻域分析后的结果二值化为止。
在这里,是不需要对反地形DEM进行洼地填充的。
计算过程中的数据名称分别为:
水流方向数据为flowdirfan(图25),汇流累积数据为flowacc2(图26),零值汇流累积量提取数据为flowacc0fan(图27),对flowacc0fan进行均值3×3邻域分析后的结果数据为nbfacc0fan(图28),并将其分级改为两
级,分级阈值为0.65677,结果如图29所示,初次得到山谷线如图30。
图25水流方向数据
图26汇流累积数据
图28行均值3×3邻域分析后的结果数据
图29重分类将结果分为两级
calculator进行相乘运算,这样就消除了那些存在在负地形区域中的错误的山脊线,如图31。
然后将计算结果进行重分类,所有属性不为1的栅格属性值赋为NODATA,如图32。
就得到了
新的山谷线,比初次的山谷线更为细化,如图33、34所示。
图31存在在负地形区域中错误的山脊线(绿色部分)
图32重分类将错误的山脊线消除
图33初次得到的山谷线(左)与消除错误后的山谷线(右)对比
图34计算出的研究区域的山谷线
图中深色区域,背景为该区域的晕渲图)
七、遇到问题及解决方法
1、遇到问题:
在ArcMap中打开facc0,发现所提取出的栅格很乱,有很多的地方并不是山脊线的位置,因此应对这个数据进行处理。
如何处理?
解决方法:
将重分类过后的数据与负地形数据fudixing利用spatialanalyst菜单下的rastercalculator进行相乘运算,这样就消除了那些存在在负地形区域中的错误的山脊线。
然后将计算结果进行重分类,所有属性不为1的栅格属性值赋为NODATA,如图32。
就得到了新的山谷线,比初次的山谷线更为细化。
2、遇到问题:
打开neiborfacc0数据的属性信息,进行重新分类,将分类级别设置为两类,不断的调整分界数据大小,并以由DEM生成的等值线图和晕渲图为辅助判断数据。
怎么做?
解决方法:
在neiborfacc0中,属性值越接近于1的栅格越有可能是山脊线的位置,打开Classification对话框,不断的调整分界数据大小(如左图中的红圈部分),直到生成的数
0.5541。
据清晰度达到最高,这里最终确定的分界阈值为