Arcgis操作 第九章 水文分析Word格式文档下载.docx
《Arcgis操作 第九章 水文分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Arcgis操作 第九章 水文分析Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
输出的方向值以2的幂值指定是因为存在栅格水流方向不能确定的情况,此时需将数个方向值相加,这样在后续处理中从相加结果便可以确定相加时中心栅格的邻域栅格状况。
水流的流向是通过计算中心栅格与邻域栅格的最大距离权落差来确定。
距离权落差是指中心栅格与邻域栅格的高程差除以两栅格间的距离,栅格间的距离与方向有关,如果邻域栅格对中心栅格的方向值为2、8、32、128,则栅格间的距离为
倍的栅格大小,否则距离为1。
ArcGIS中的水流方向是利用D8算法(最大距离权落差)来计算水流方向的。
具体计算步骤如下:
1.在ArcMap中单击ArcToolbox图标,启动ArcToolbox;
2.展开SpatialAnalysisTools工具箱,打开Hydrology工具集;
3.
图11.3水流方向FlowDirection计算对话框
双击FlowDirection工具,弹出(如图11.3所示)水流方向(FlowDirection)计算对话框;
(1)Inputsurfacedata文本框中选择输入的DEM数据:
dem。
(2)在Outputflowdirectionraster文本框中命名计算出来的水流方向文件名为flowdir,并选择保存路径;
(3)若选中Forcealledgecellstoflowoutward(Optional)前的复选框,指所有在DEM数据边缘的栅格的水流方向全部是流出DEM数据区域。
默认为不选择。
这一步为可选步骤;
(4)输出dropraster。
dropraster是该栅格在其水流方向上与其临近的栅格之间的高程差与距离的比值,以百分比的形式记录,它反映了在整个区域中最大坡降的分布情况。
(5)单击OK按钮,完成操作。
按钮,完成操作。
计算出的水流方向数据结果如图11.4所示。
图11.4利用FlowDirection工具计算出来的水流方向图
9.1.2洼地计算
洼地区域是水流方向不合理的地方,可以通过水流方向来判断哪些地方是洼地,然后对洼地填充。
但是,并不是所有的洼地区域都是由于数据的误差造成的,有很多洼地是地表形态的真实反映。
因此,在进行洼地填充之前,必须计算洼地深度,判断哪些地区是由于数据误差造成的洼地而哪些地区又是真实的地表形态,然后在洼地填充的过程中,设置合理的填充阈值。
1.
图11.5洼地计算对话框
洼地提取
(1)双击Hydrology工具集中的Sink工具,弹出洼地计算对话框,如图11.5所示;
(2)在Inputflowdirectionraster文本框中,选择水流方向数据flowdir;
(3)在Outputraster文本框中,选择存放的路径以及重新命名输出文件为sink;
(4)
图11.6计算出来的洼地区域
单击OK按钮,完成操作。
计算结果如图11.6所示,深色的区域是洼地。
2.洼地深度计算
(1)双击Hydrology工具集中的Watershed工具,弹出流域计算对话框,如图11.7所示,它用来计算洼地的贡献区域;
(2)
在Inputflowdirectionraster文本框中选择水流方向数据flowdir,在Inputrasterorfeaturepourpoint文本框中选择洼地数据sink,在pourpointfield文本框中选择value;
(3)在Outputraster文本框中设置输出数据的名称为watershsink;
(4)单击OK按钮,完成操作。
计算出的洼地贡献区域如图11.8所示;
(5)
图11.8计算出来的洼地贡献区域
计算每个洼地所形成的贡献区域的最低高程;
1)
打开SpatialAnalysisTools工具箱中Zonal工具集,双击ZonalStatistic工具,弹出如图11.9所示的分区统计对话框;
2)在Inputrasterorfeaturezonaldata文本框中,选择洼地贡献区域数据watershsink;
3)在Inputvalueraster文本框中选择dem作为valueraster;
4)在Outputraster文本框中将输出数据文件命名为zonalmin,存放路径保持不变;
5)在统计类型选择的下拉菜单中选择最小值(MINIMUM)作为统计类型;
6)单击OK按钮,完成操作。
(6)计算每个洼地贡献区域出口的最低高程即洼地出水口高程;
1)打开SpatialAnalysisTools工具箱中Zonal工具集,双击ZonalFill工具,弹出如图11.10所示的ZoneFill对话框;
2)在Inputzoneraster文本框中选择watershsink,在Inputweightraster文本框中选择dem,在Outputraster文本框中将输出数据命名改为zonalmax;
3)单击OK按钮,完成操作。
(7)计算洼地深度。
在ArcMap中加载SpatialAnalyst模块,单击SpatialAnalyst模块的下拉箭头,单击RasterCalculator命令,弹出RasterCalculator对话框,如图11.11所示;
2)在文本框里面输入sinkdep=([zonalmax]-[zonalmin]),然后单击evaluate按钮进行计算。
对于以上(5)、(6)步的计算,可以利用SpatialAnalysisTools工具箱中的MapAlgebra工具集的MultiMapOutput工具。
如图11.12所示。
对于第(5)步,在文本框中输入:
E:
\chp11\tutor\result\zonalmin=zonalmin(E:
\chp11\tutor\result\watershsink,E:
\chp11\tutor\dem);
图11.12mapalgebra计算对话框
对于第(6)步,在文本框中输入:
\chp11\tutor\result\zonalmax=zonalfill(E:
\chp11\tutor\result\watershsink,E:
经过以上七步的运算,就可到所有洼地贡献区域的洼地深度,如图11.13所示。
通过对研究区地形的分析,可以确定出哪些洼地区域是由数据误差而产生,哪些洼地区域又是真实的反映地表形态,从而根据洼地深度来设置合理的填充阈值。
图11.13计算出的洼地深度图
9.1.3洼地填充
洼地填充是无洼地DEM生成的最后一个步骤。
通过洼地提取之后,可以了解原始的DEM上是否存在着洼地,如果没有存在洼地,原始DEM数据就可以直接用来进行河网生成、流域分割等。
而洼地深度的计算又为在填充洼地时设置填充阈值提供了很好的参考。
1.双击Hydrology工具集中的Fill工具,弹出如图11.14所示的洼地填充对话框;
2.
在Inputsurfaceraster文本框中,选择需要进行洼地填充的原始DEM数据;
3.在Outputsurfaceraster文本框中设置输出文件名为filldem;
4.在Zlimit文本框中输入阈值,在洼地填充过程中,那些洼地深度大于阈值的地方将作为真实地形保留,不予填充;
系统默认情况是不设阈值,即所有的洼地区域都将被填平。
5.单击OK按钮,完成操作。
计算后的无洼地DEM如图11.15所示。
图11.15经过洼地填充生成的无洼地DEM
当一个洼地区域被填平之后,这个区域与附近区域再进行洼地计算,可能还会形成新的洼地。
因此,洼地填充是一个不断反复的过程,直到所有的洼地都被填平,新的洼地不再产生为止。
9.2汇流累积量
图11.16汇流累积量的计算
水流方向数据
汇流累积数据
在地表径流模拟过程中,汇流累积量是基于水流方向数据计算得到的。
汇流累积量的基本思想是认为以规则格网表示的数字地面高程模型每点处有一个单位的水量,按照自然水流从高处流往低处的自然规律,根据区域地形的水流方向数据计算每点处所流过的水量数值,便得到了该区域的汇流累积量。
由水流方向数据到汇流累积量计算的过程如图11.16所示。
1.基于无洼地DEM的水流方向的计算。
计算过程同上一节水流方向的计算一样,使用的DEM数据是无洼地DEM。
将生成的水流方向文件命名为fdirfill;
在得到水流方向之后,可以利用水流方向数据计算汇流累积量。
双击Hydrology工具集中的FillAccumulation工具,打开汇流累积量计算对话框。
如图11.17所示;
(1)在Inputflowdirectionraster文本框中,选择由无洼地DEM生成的水流方向栅格数据fdirfill;
(2)在Outputaccumulationraster文本框中输出数据命名为flowacc;
(3)在Inputweightraster文本框中输入权重数据,权重数据一般是考虑到降水、土壤以及植被等对径流影响的因素分布不平衡而得到的,对每一个栅格赋权重能更详细模拟该区域的地表特征。
如果无权重数据,系统默认所有的栅格的权重为1;
图11.18通过计算生成的汇流累积量数据
结果如图11.18所示。
9.3水流长度
水流长度通常是指在地面上一点沿水流方向到其流向起点(或终点)间的最大地面距离在水平面上的投影长度。
水流长度直接影响地面径流的速度,从而影响对地面土壤的侵蚀力。
因此,水流长度的提取和分析在水土保持工作中有很重要的意义。
目前,在ArcGIS中水流长度的提取方式主要有两种:
顺流计算和溯流计算。
顺流计算是计算地面上每一点沿水流方向到该点所在流域出水口的最大地面距离的水平投影;
溯流计算是计算地面上每一点沿水流方向到其流向起点的最大地面距离的水平投影。
图11.19flowlength的计算窗口
ArcGIS中水流长度的提取操作如下:
1.双击Hydrology工具集中的FlowLength工具,弹出计算水流长度的对话框,如图11.19所示;
2.在Inputflowdirectionraster文本框中选择基于无洼地DEM提取出的水流方向数据fdirfill;
3.在Outputraster文本框中命名输出的水流长度栅格数据文件名称。
分别进行顺流计算和溯流计算,输出的数据文件分别命名为Flowlendown和Flowlenup;
4.计算方向可以选择Downstream(顺流计算)或Upstream(朔流计算);
5.输入权重数据。
顺流计算时,结果表示沿着水流方向到下游流域出水口中最长距离所流经的栅格数;
溯流计算时,结果表示沿着水流方向到上游栅格的最长的距离的栅格数;
6.当设置完成后,单击OK按钮,完成操作。
两种方向计算出的结果如图11.20和图11.21所示。
图11.20顺流方向上的水流长度
图11.21逆流方向上的水流长度
9.4河网的提取
基于DEM的水文分析,其中一个内容就是要得到地表的水流网络。
目前常用的河网提取方法是地表径流漫流模型:
首先在无洼地DEM上利用最大坡降法得到每一个栅格的水流方向;
然后利用水流方向栅格数据计算出每一个栅格在水流方向上累积的栅格数,即汇流累积量。
假设每一个栅格携带一份水流,那么栅格的汇流累积量就代表着该栅格的水流量。
基于上述思想,当汇流量达到一定值的时候,就会产生地表水流,所有汇流量大于临界值的栅格就是潜在的水流路径,由这些水流路径构成的网络,就是河网。
9.4.1河网的生成
1.河网的生成是基于汇流累积量数据的,其计算步骤见11.2节,这里用11.2节计算的汇流累计栅格数据flowacc作为基础数据;
2.设定阈值。
不同级别的沟谷对应不同的阈值,不同研究区域相同级别的沟谷对应的阈值也是不同的。
所以,在设定阈值时,应通过不断的实验和利用现有地形图等其它资料辅助检验的方法来确定合适的阈值;
图11.22栅格河网转换成矢量河网对话框
栅格河网的形成。
利用MapAlgebra工具集中的MultiMapOutput工具中的Con命令或者Setnull命令进行有条件的查询可得到栅格河网。
其思想是利用所设定的阈值对整个区域分析并生成一个新的栅格图层,其中汇流量大于设定阈值的栅格的属性值设定为1,而小于或等于设定阈值的栅格的属性值设定为无数据。
栅格河网的生成也可以利用ArcMap中的SpatialAnalysis分析模块下的RasterCalculator计算。
将计算出来的栅格河网命名为streamnet;
4.栅格河网矢量化。
在Hydrology工具集中双击StreamtoFeature工具,如图11.22所示;
在Inputstreamraster文本框中,选择streamnet;
在Inputflowdirectionraster文本框中,输入由无洼地计算出来的水流方向数据fdirfill;
在Outputpolylinefeatures文本框中将输出的数据命名为streamfea。
生成的矢量数据如图11.23所示。
图11.23栅格河网转换成的矢量河网框
9.4.2StreamLink的生成
图11.24Streamlink示意图
弧段
结点
Streamlink记录河网中一些节点之间的连接信息,主要记录河网的结构信息。
如图11.24所示,Streamlink的每条弧段连接着两个作为出水点或汇合点的结点,或者连接着作为出水点的结点和河网起始点。
因此通过提取Streamlink可以得到每一个河网弧段的起始点和终止点。
同样,也可以得到该汇水区域的出水点。
这些出水点对于水量、水土流失等研究具有重要意义。
出水口点的确定,为进一步的流域分割做好了准备。
操作如下:
1.在ArcMap里加载水流方向数据fdirfill和栅格河网数据streamnet;
2.双击Hydrology工具集中的StreamLink工具,弹出如图11.25所示的streamlink计算的对话框。
在Inputstreamraster文本框中选择streamnet,在Inputflowdirectionraster文本框中选择fdirfill。
在Outputraster文本框中将输出数据命名为StreamLink。
3.单击OK按钮,完成操作。
图11.26StreamLink的属性框
图11.25StreamLink计算对话框
Streamlink的生成将栅格河网分成不包含汇合点的栅格河网片段,并对片断进行记录,其属性表中除了记录该片段的ID号之外,还记录着每个片段所包含的栅格个数。
如图11.26所示。
9.4.3河网分级的生成
河网分级是对一个线性的河流网络以数字标识的形式划分级别。
在地貌学中,对河流的分级是根据河流的流量、形态等因素进行。
不同级别的河网所代表的汇流累积量不同,级别越高,汇流累积量越大,一般是主流,而那些级别较低的河网则是支流。
这对于研究水流的运动、汇流模式,及水土保持等具有重要的意义。
在ArcGIS的水文分析中,提供两种常用的河网分级方法:
Strahler分级和Shreve分级。
如图11.27所示,Strahler分级是将所有河网弧段中没有支流河网弧段分为第1级,两个1级河网弧段汇流成的河网弧段为第2级,如此下去分别为第3级,第4级,……,一直到河网出水口。
在这种分级中,当且仅当同级别的两条河网弧段汇流成一条河网弧段时,该弧段级别才会增加,对于那些低级弧段汇入高级弧段的情况,高级弧段的级别不会改变;
Shreve分级的第1级河网的定义与Strahler分级是相同的,所不同的是以后的分级,两条1级河网弧段汇流而成的河网弧段为2级河网弧段,那么对于以后更高级别的河网弧段,其级别的定义是由其汇入河网弧段的级别之和,如图所示,当一条3级河网弧段和一条4级河网弧段汇流而成的新的河网弧段的级别为7,这种河网分级到最后出水口的位置时,其河网的级别数刚好是该河网中所有的1级河网弧段的个数。
在ArcGIS中对河网分级的步骤如下:
图11.28河网的Strahler分级结果
图11.29河网的Shreve分级结果
双击Hydrology工具集中的StreamOrder工具,弹出StreamOrder对话框。
分别用Strahler分级和Shreve分级对河网进行分级,将输出数据分别命名为Streamostr和Streamoshr;
计算出的两种河网分级分别结果如图11.28和图11.29所示。
对于streamlink和streamorder计算出的栅格数据同样可以利用Hydrology工具集中的streamtofeature工具将其转化成矢量数据便于进一步的研究和分析。
9.5流域的分割
流域(watershed)又称集水区域,是指流经其中的水流和其它物质从一个公共的出水口排出从而形成的一个集中的排水区域,如图11.30所示。
也可以用流域盆地(basin)、集水盆地(catchment)或水流区域(contributingarea)等来描述流域。
Watershed数据显示了区域内每个流域汇水面积的大小。
汇水面积是指从某个出水口(或点)流出的河流的总面积。
出水口(或点)即流域内水流的出口,是整个流域的最低处。
流域间的分界线即为分水岭。
分水线包围的区域称为一条河流或水系的流域,流域分水线所包围的区域面积就是流域面积。
图11.30集水区域
集水区域边界
分水岭
水流网络
集水区域出口
子集水区域
9.5.1流域盆地的确定
流域盆地是由分水岭分割而成的汇水区域,是通过对水流方向数据的分析确定出所有相互连接并处于同一流域盆地的栅格。
首先要确定分析窗口边缘的出水口的位置,所有的流域盆地的出水口均处于分析窗口的边缘。
流域盆地集水区的确定是找出所有流入出水口的上游栅格的位置。
在ArcGIS中,流域盆地的计算的操作如下:
图11.31流域盆地计算的对话框
双击Hydrology工具集中的Basin工具,打开流域盆地计算的对话框。
如图11.31所示。
2.输入水流方向数据fdirfill,设置输出数据文件名为basin。
在ArcMap中加载上一节计算出的矢量河网数据在以及刚得到的basin数据,如图11.32所示。
所有流域盆地的出口都在研究区域的边界上,利用流域盆地分析,可将感兴趣的流域划分出来。
9.5.2汇水区出水口的确定
在水文分析中,通常需要基于更小的流域单元进行分析,这样就需要进行流域的分割。
流域的分割首先要确定小级别流域的出水口的位置,可以通过SpatialAnalysisTools工具箱下的Hydrology工具集中的SnapPourPoint的工具来寻找。
它的思想是利用一个记录着潜在但并不准确的小级别流域的出水口的位置的数据层,在该点位置上在以指定距离在汇流累积量的数据层上搜索那些具有较高汇流累积量栅格点的位置,这些搜索到的栅格点就是小级别的流域的出水点。
也可以利用已有的出水点的矢量数据。
如果没有出水点的栅格或矢量数据,可以用已生成的streamlink数据作为汇水区的出水口数据。
因为streamlink数据中隐含着河网中每一条河网弧段的联结信息,包括弧段的起点和终点等,而弧段的终点可以看作是该汇水区域的出水口所在位置。
9.5.3集水流域的生成
对于一个小集水流域的生成,思想如下:
先确定出水点,即该集水区的最低点,然后结合水流方向数据,分析搜索出该出水点上游所有流过该出水口的栅格,直到搜索到流域的边界,即分水岭的位置。
1.首先在ArcMap中打开水流方向数据fdirfill和流域出口点数据streamlink;
2.双击Hydrology工具集中的Watershed工具,打开集水区域(贡献区域)计算的对话框。
分别在水流方向数据和出水口数据的文本框中选择fdirfill和streamlink数据,设置输出数据文件名为watershed。
图11.33集水区域的计算结果
结果如图11.33所示,为了更好的表现流域的分割效果,在此窗口中还加载了流域盆地和矢量河网的数据。
可以看出:
通过streamlink作为流域的出水口数据所得到的集水区域是每一条河网弧段的集水区域,也就是要研究的最小沟谷的集水区域。
9.6实例与练习
9.6.1利用水文分析方法提取山脊、山谷线
1.背景:
作为地形特征线