Arcgis操作 第九章 水文分析 - 图文

更新时间:2023-11-24 03:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第九章 水文分析

水文分析是DEM数据应用的一个重要方面。利用DEM生成的集水流域和水流网络,成为大多数地表水文分析模型的主要输入数据。表面水文分析模型研究与地表水流有关的各种自然现象例如洪水水位及泛滥情况,划定受污染源影响的地区,预测当某一地区的地貌改变时对整个地区将造成的影响等。

基于DEM地表水文分析的主要内容是利用水文分析工具提取地表水流径流模型的水流方向、汇流累积量、水流长度、河流网络(包括河流网络的分级等)以及对研究区的流域进行分割等。通过对这些基本水文因子的提取和分析,可再现水流的流动过程,最终完成水文分析过程。

本章主要介绍ArcGIS水文分析模块的应用。ArcGIS提供的水文分析模块主要用来建立地表水的运动模型,辅助分析地表水流从哪里产生以及要流向何处,再现水流的流动过程。同时,通过水文分析工具的应用,有助于了解排水系统和地表水流过程的一些基本概念和关键过程。

ArcGIS将水文分析中的地表水流过程集合到ArcToolbox里,如图11.1所示。主要包括水流的地表模拟过程中的水流方向确定、洼地填平、水流累计矩阵的生成、沟谷网络的生成以及流域的分割等。 本章1至5节主要是依据水文分析中的水文因子的提取过程对ArcGIS中的水文分析工具逐一介绍。文中所用的DEM数据在光盘中chp11文件夹下的tutor文件夹里面,每个计算过程以及每一节所产生的数据存放在tutor文件夹的result文件

图11.1 ArcToolBox中的 夹里面,文件名与书中所命名相同,读者可以利用该数据进行

水文分析模块 参照练习。本章最后一节还提供了三个水文分析应用的实例。

9.1 无洼地DEM生成

DEM一般被认为是比较光滑的地形表面的模拟,但是由于内插的原因以及一些真实地

形(如喀斯特地貌)的存在,使得DEM表面存在着一些凹陷的区域。这些区域在进行地表水流模拟时,由于低高程栅格的存在,使得在进行水流流向计算时在该区域得到不合理的或错误的水流方向。因此,在进行水流方向的计算之前,应该首先对原始DEM数据进行洼地填充,得到无洼地的DEM。

洼地填充的基本过程是先利用水流方向数据计算出DEM数据中的洼地区域,然后计算出这些的洼地区域的洼地深度,最后以这些洼地深度为参考而设定填充阈值进行洼地填充。

9.1.1 水流方向提取

水流方向是指水流离开每一个栅格单元时的指向。在ArcGIS中通过将中心栅格的8个邻域栅格编码,水流方向便可由其中的某一值来确定,

图11.2 水流流向编码

栅格方向编码如图11.2所示。

例如:如果中心栅格的水流流向左边,则其水流方向被赋值为16。输出的方向值以2的幂值指定是因为存在栅格水流方向不能确定的情况,此时需将数个方向值相加,这样在后续处理中从相加结果便可以确定相加时中心栅格的邻域栅格状况。

水流的流向是通过计算中心栅格与邻域栅格的最大距离权落差来确定。距离权落差是指中心栅格与邻域栅格的高程差除以两栅格间的距离,栅格间的距离与方向有关,如果邻域栅格对中心栅格的方向值为2、8、32、128,则栅格间的距离为2倍的栅格大小,否则距离为1。

ArcGIS中的水流方向是利用D8算法(最大距离权落差)来计算水流方向的。具体计算步骤如下:

1. 在ArcMap中单击ArcToolbox图标,启动ArcToolbox;

2. 展开Spatial Analysis Tools工具箱,打开Hydrology工具集; 3. 双击Flow Direction工具,弹出(如图

11.3所示)水流方向(Flow Direction)计算对话框; (1) Input surface data文本框中选择输入的

DEM数据:dem。 (2) 在Output flow direction raster文本框中

命名计算出来的水流方向文件名为flowdir,并选择保存路径; (3) 若选中Force all edge cells to flow

outward(Optional)前的复选框,指所有图11.3 水流方向Flow Direction计算对话框 在DEM数据边缘的栅格的水流方向全

部是流出DEM数据区域。默认为不选择。这一步为可选步骤; (4) 输出drop raster。drop raster是该栅格在其水流方向上与其临近的栅格之间的高程差与

距离的比值,以百分比的形式记录,它反映了在整个区域中最大坡降的分布情况。这一步为可选步骤; (5) 单击OK按钮,完成操作。按钮,完成操作。计算出的水流方向数据结果如图11.4所

示。

图11.4 利用Flow Direction工具计算出来的水流方向图

9.1.2 洼地计算

洼地区域是水流方向不合理的地方,可以通过水流方向来判断哪些地方是洼地,然后对洼地填充。但是,并不是所有的洼地区域都是由于数据的误差造成的,有很多洼地是地表形态的真实反映。因此,在进行洼地填充之前,必须计算洼地深度,判断哪些地区是由于数据误差造成的洼地而哪些地区又是真实的地表形态,然后在洼地填充的过程中,设置合理的填充阈值。 1. 洼地提取 (1) 双击Hydrology工具集中的Sink工具,

弹出洼地计算对话框,如图11.5所示; (2) 在Input flow direction raster文本框中,

选择水流方向数据flowdir; (3) 在Output raster文本框中,选择存放的

路径以及重新命名输出文件为sink;

图11.5 洼地计算对话框

(4) 单击OK按钮,完成操作。计算结果如图11.6所示,深色的区域是洼地。

图11.6 计算出来的洼地区域

2. 洼地深度计算 (1) 双击Hydrology工具集中的Watershed工具,弹出流域计算对话框,如图11.7所示,

它用来计算洼地的贡献区域; (2) 在Input flow direction raster文本框中

选择水流方向数据flowdir,在Input raster or feature pour point文本框中选择洼地数据sink,在pour point field文本框中选择value; (3) 在Output raster文本框中设置输出数

据的名称为watershsink; (4) 单击OK按钮,完成操作。计算出的

洼地贡献区域如图11.8所示;

图11.7 洼地贡献区域计算对话窗口(watershed)

图11.8 计算出来的洼地贡献区域

(5) 计算每个洼地所形成的贡献区域的最低高程;

1) 打开Spatial Analysis Tools工具箱中Zonal工具集,双击Zonal Statistic工具,弹出

如图11.9所示的分区统计对话框; 2) 在Input raster or feature zonal data

文本框中,选择洼地贡献区域数据watershsink;

3) 在Input value raster文本框中选择

dem作为value raster;

4) 在Output raster文本框中将输出数

据文件命名为zonalmin,存放路径保持不变;

5) 在统计类型选择的下拉菜单中选

择最小值(MINIMUM)作为统计类型;

图11.9 分区统计对话框

6) 单击OK按钮,完成操作。 (6) 计算每个洼地贡献区域出口的最低高程即洼地出水口高程;

1) 打开Spatial Analysis Tools工具箱中Zonal工具集,双击Zonal Fill工具,弹出如图

11.10所示的Zone Fill对话框;

2) 在Input zone raster文本框中选择watershsink,在Input weight raster文本框中选择

dem,在Output raster文本框中将输出数据命名改为zonalmax; 3) 单击OK按钮,完成操作。 (7) 计算洼地深度。

1) 在ArcMap中加载Spatial Analyst模块,单击Spatial Analyst模块的下拉箭头,单击

Raster Calculator命令,弹出Raster Calculator对话框,如图11.11所示;

图11.10 洼地贡献区域边缘最低高程计算对话框

图11.11 洼地深度计算对话框

2) 在文本框里面输入sinkdep = ( [zonalmax] - [zonalmin]),然后单击evaluate按钮进行

计算。 对于以上(5)、(6)步的计算,可以利用Spatial Analysis Tools工具箱中的Map Algebra工具集的Multi Map Output工具。如图11.12所示。

对于第(5)步,在文本框中输入:E:\\chp11\\tutor\\result\\zonalmin = zonalmin (E:\\chp11\\tutor\\result\\watershsink, E:\\chp11\\tutor \\dem);

对于第(6)步,在文本框中输入:E:\\chp11\\tutor\\result\\zonalmax = zonalfill (E:\\chp11\\tutor\\result \\watershsink, E:\\chp11\\tutor \\dem);

图11.12 map algebra计算对话框

经过以上七步的运算,就可到所有洼地贡献区域的洼地深度,如图11.13所示。通过对研究区地形的分析,可以确定出哪些洼地区域是由数据误差而产生,哪些洼地区域又是真实的反映地表形态,从而根据洼地深度来设置合理的填充阈值。

图11.13 计算出的洼地深度图

9.1.3 洼地填充

洼地填充是无洼地DEM生成的最后一个步骤。通过洼地提取之后,可以了解原始的DEM上是否存在着洼地,如果没有存在洼地,原始DEM数据就可以直接用来进行河网生成、流域分割等。而洼地深度的计算又为在填充洼地时设置填充阈值提供了很好的参考。 1. 双击Hydrology工具集中的Fill工具,弹出如图11.14所示的洼地填充对话框; 2. 在Input surface raster文本框中,选择

需要进行洼地填充的原始DEM数据; 3. 在Output surface raster文本框中设置

输出文件名为filldem;

4. 在Z limit文本框中输入阈值,在洼地

填充过程中,那些洼地深度大于阈值的地方将作为真实地形保留,不予填充;系统默认情况是不设阈值,即所有的洼地区域都将被填平。 图11.14 洼地填充对话框 5. 单击OK按钮,完成操作。计算后的

无洼地DEM如图11.15所示。

图11.15 经过洼地填充生成的无洼地DEM

当一个洼地区域被填平之后,这个区域与附近区域再进行洼地计算,可能还会形成新的洼地。因此,洼地填充是一个不断反复的过程,直到所有的洼地都被填平,新的洼地不再产生为止。

9.2 汇流累积量

在地表径流模拟过程中,汇流累积量是基于水流方向数据计算得到的。汇流累积量的基本思想是认为以规则格网表示的数字地面高程模型每点处有一个单位的水量,按照自然水流从高处流往低处的自然规律,根据区域地形的水流方向数据计算每点处所流过的水量数值,便得到了该区域的汇流累积量。由水流方向数据到汇流累积量计算的过程如图11.16所示。 1. 基于无洼地DEM的水流方向的计算。计算过程同上一节水流方向的计算一样,使用的

水流方向数据 汇流累积数据

图11.16 汇流累积量的计算

DEM数据是无洼地DEM。将生成的水流方向文件命名为fdirfill; 2. 在得到水流方向之后,可以利用水流方

向数据计算汇流累积量。双击Hydrology工具集中的Fill Accumulation工具,打开汇流累积量计算对话框。如图11.17所示; (1) 在Input flow direction raster文本框中,

图11.17 汇流累积量计算对话框

选择由无洼地DEM生成的水流方向栅格数据fdirfill; (2) 在Output accumulation raster文本框中输出数据命名为flowacc; (3) 在Input weight raster文本框中输入权重数据,权重数据一般是考虑到降水、土壤以及

植被等对径流影响的因素分布不平衡而得到的,对每一个栅格赋权重能更详细模拟该区域的地表特征。如果无权重数据,系统默认所有的栅格的权重为1; (4) 单击OK按钮,完成操作。结果如图11.18所示。

图11.18 通过计算生成的汇流累积量数据

9.3水流长度

水流长度通常是指在地面上一点沿水流方向到其流向起点(或终点)间的最大地面距离在水平面上的投影长度。水流长度直接影响地面径流的速度,从而影响对地面土壤的侵蚀力。因此,水流长度的提取和分析在水土保持工作中有很重要的意义。目前,在ArcGIS中水流长度的提取方式主要有两种:顺流计算和溯流计算。顺流计算是计算地面上每一点沿水流方向到该点所在流域出水口的最大地面距离的水平投影;溯流计算是计算地面上每一点沿水流方向到其流向起点的最大地面距离的水平投影。

ArcGIS中水流长度的提取操作如下: 1. 双击Hydrology工具集中的Flow

Length工具,弹出计算水流长度的对话框,如图11.19所示;

2. 在Input flow direction raster文本框中

选择基于无洼地DEM提取出的水流方向数据fdirfill;

3. 在Output raster文本框中命名输出的水

流长度栅格数据文件名称。分别进行顺流计算和溯流计算,输出的数据文件分别命名为Flowlendown和Flowlenup; 图11.19 flow length的计算窗口 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. 设定阈值。不同级别的沟谷对应不同的阈值,不同研究区域相同级别的沟谷对应的阈值

也是不同的。所以,在设定阈值时,应通过不断的实验和利用现有地形图等其它资料辅助检验的方法来确定合适的阈值; 3. 栅格河网的形成。利用Map Algebra工具集中的Multi Map Output工具中的Con命令或

者Setnull命令进行有条件的查询可得到栅格河网。其思想是利用所设定的阈值对整个区域分析并生成一个新的栅格图层,其中汇流量大于设定阈值的栅格的属性值设定为1,而小于或等于设定阈值的栅格的属性值设定为无数据。栅格河网的生成也可以利用ArcMap中的Spatial Analysis分析模块下的Raster Calculator计算。将计算出来的栅格河网命名为streamnet;

4. 栅格河网矢量化。在Hydrology工具集

中双击Stream to Feature工具,如图11.22所示;在Input stream raster文本框中,选择streamnet;在Input flow

图11.22 栅格河网转换成矢量河网对话框

direction raster文本框中,输入由无洼地计算出来的水流方向数据fdirfill;在Output polyline features 文本框中将输出的数据命名为streamfea。生成的矢量数据如图11.23所示。

图11.23 栅格河网转换成的矢量河网框

9.4.2 Stream Link的生成

Stream link记录河网中一些节点之间的连接信息,主要记录河网的结构信息。如图11.24所示,Stream link的每条弧段连接着两个作为出水点或汇合点的结点,或者连接着作为出水点的结点和河网起始点。 因此通过提取Stream link可以得到每一个河网弧段的起始点和终止点。同样,也可以得到该

结点 汇水区域的出水点。这些出水点对于水量、水土弧段 流失等研究具有重要意义。出水口点的确定,为

图11.24 Stream link示意图

进一步的流域分割做好了准备。操作如下:

1. 在ArcMap里加载水流方向数据fdirfill和栅格河网数据streamnet; 2. 双击Hydrology工具集中的Stream Link工具,弹出如图11.25所示的stream link计算的

对话框。在Input stream raster文本框中选择streamnet,在Input flow direction raster文本框中选择fdirfill。在Output raster文本框中将输出数据命名为StreamLink。

3. 单击OK按钮,完成操作。 Stream link的生成将栅格河网分成不包含汇合点的栅格河网片段,并对片断进行记录,其属性表中除了记录该片段的ID号之外,还记录着每个片段所包含的栅格个数。如图11.26所示。

图11.25 StreamLink计算对话框 图11.26 StreamLink的属性框

9.4.3 河网分级的生成

河网分级是对一个线性的河流网络以数字标识的形式划分级别。在地貌学中,对河流的分级是根据河流的流量、形态等因素进行。不同级别的河网所代表的汇流累积量不同,级别越高,汇流累积量越大,一般是主流,而那些级别较低的河网则是支流。这对于研究水流的运动、汇流模式,及水土保持等具有重要的意义。

在ArcGIS的水文分析中,提供两种常用的河网分级方法:Strahler分级和Shreve分级。如图11.27所示, Strahler分级是将所有河网弧段中没有支流河网弧段分为第1级,两个1级河网弧段汇流成的河网弧段为第2级,如此下去分别为第3级,第4级,……,一直到河网出水口。在这种分级中,当且仅当同级别的两条河网弧段汇流成一条河网弧段时,该弧段级别才会增加,对于那些低级弧段汇入高级弧段的情况,高级弧段的级别不会改变;Shreve分级的第1级河网的定义与Strahler分级是相同的,所不同的是以后的分级,两条1级河网

1 1 2 2 2 3 3 7 1 1 2 1 2 2 4 1 1 1 1 1 3 1 1 1 1 2 Strahler分级

Shreve分级

图11.27 Strahler分级和Shreve分级示意图

弧段汇流而成的河网弧段为2级河网弧段,那么对于以后更高级别的河网弧段,其级别的定义是由其汇入河网弧段的级别之和,如图所示,当一条3级河网弧段和一条4级河网弧段汇流而成的新的河网弧段的级别为7,这种河网分级到最后出水口的位置时,其河网的级别数刚好是该河网中所有的1级河网弧段的个数。

在ArcGIS中对河网分级的步骤如下:

1. 在ArcMap里加载水流方向数据fdirfill和栅格河网数据streamnet; 2. 双击Hydrology工具集中的Stream Order工具,弹出Stream Order对话框。在Input stream

raster文本框中选择streamnet,在Input flow direction raster文本框中选择fdirfill。分别用Strahler分级和Shreve分级对河网进行分级,将输出数据分别命名为Streamostr和Streamoshr;

3. 单击OK按钮,完成操作。计算出的两种河网分级分别结果如图11.28和图11.29所示。

对于stream link和stream order计算出的栅格数据同样可以利用Hydrology工具集中的stream to feature工具将其转化成矢量数据便于进一步的研究和分析。

图11.28 河网的Strahler分级结果 图11.29 河网的Shreve分级结果

9.5流域的分割

流域(watershed)又称集水区域,是指流经其中的水流和其它物质从一个公共的出水口排出从而形成的一个集中的排水区域,如图11.30所示。也可以用流域盆地(basin)、集水盆地(catchment)或水流区域(contributing area)等来描述流域。Watershed数据显示了区域内每个流域汇水面积的大小。汇水面积是指从某个出水口(或点)流出的河流的总面积。出水口(或点)即流域内水流的出口,是整个流域的最低处。流域间的分界线即为分水岭。分水线包围的区域称为一条河流或水系的流域,流域分水线所包围的区域面积就是流域面积。

集水区域边界 集水区域出口 分水岭 子集水区域 水流网络 图11.30 集水区域 9.5.1 流域盆地的确定

流域盆地是由分水岭分割而成的汇水区域,是通过对水流方向数据的分析确定出所有相互连接并处于同一流域盆地的栅格。首先要确定分析窗口边缘的出水口的位置,所有的流域盆地的出水口均处于分析窗口的边缘。流域盆地集水区的确定是找出所有流入出水口的上游栅格的位置。 在ArcGIS中,流域盆地的计算的操作如下:

1. 双击Hydrology工具集中的Basin工具,打开流域盆地计算的对话框。如图11.31所示。 2. 输入水流方向数据fdirfill,设置输出数

据文件名为basin。

3. 单击OK按钮,完成操作。

在ArcMap中加载上一节计算出的矢量河网数据在以及刚得到的basin数据,如图11.32所示。所有流域盆地的出口都在研究区域的边界上,利用流域盆地分析,可将感兴图11.31 流域盆地计算的对话框 趣的流域划分出来。

图11.32 计算出的流域盆地(线状图形为矢量河网数据)

9.5.2 汇水区出水口的确定

在水文分析中,通常需要基于更小的流域单元进行分析,这样就需要进行流域的分割。流域的分割首先要确定小级别流域的出水口的位置,可以通过Spatial Analysis Tools工具箱下的Hydrology工具集中的Snap Pour Point的工具来寻找。它的思想是利用一个记录着潜在但并不准确的小级别流域的出水口的位置的数据层,在该点位置上在以指定距离在汇流累积量的数据层上搜索那些具有较高汇流累积量栅格点的位置,这些搜索到的栅格点就是小级别的流域的出水点。也可以利用已有的出水点的矢量数据。 如果没有出水点的栅格或矢量数据,可以用已生成的stream link数据作为汇水区的出水口数据。因为stream link数据中隐含着河网中每一条河网弧段的联结信息,包括弧段的起点和终点等,而弧段的终点可以看作是该汇水区域的出水口所在位置。

9.5.3 集水流域的生成

对于一个小集水流域的生成,思想如下:先确定出水点,即该集水区的最低点,然后结合水流方向数据,分析搜索出该出水点上游所有流过该出水口的栅格,直到搜索到流域的边界,即分水岭的位置。

1. 首先在ArcMap中打开水流方向数据fdirfill和流域出口点数据streamlink;

2. 双击Hydrology工具集中的Watershed工具,打开集水区域(贡献区域)计算的对话框。

分别在水流方向数据和出水口数据的文本框中选择fdirfill和streamlink数据,设置输出数据文件名为watershed。

3. 单击OK按钮,完成操作。结果如图11.33所示,为了更好的表现流域的分割效果,在

此窗口中还加载了流域盆地和矢量河网的数据。可以看出:通过streamlink作为流域的出水口数据所得到的集水区域是每一条河网弧段的集水区域,也就是要研究的最小沟谷的集水区域。

图11.33 集水区域的计算结果

9.6实例与练习

9.6.1利用水文分析方法提取山脊、山谷线

1. 背景:作为地形特征线的山脊线、山谷线对地形、地貌具有一定的控制作用。它们与山

顶点、谷底点以及鞍部点等一起构成了地形及其起伏变化的骨架结构。同时由于山脊线具有分水性,山谷线具有合水性特征使得它们在工程应用方面具有特殊的意义。因此在数字地形分析中,山脊线和山谷线的提取和分析是具有很大应用价值的。

2. 目的:了解基于DEM的水文分析方法提取出山脊线和山谷线的原理;掌握水流方向、

汇流累积量的提取原理及方法;能够利用水文分析的方法与其它空间分析方法相结合以解决实际应用问题。 3. 要求: (1) 利用水文分析思想和工具提取研究区域的山脊线; (2) 利用水文分析思想和工具提取研究区域的山谷线。

4. 数据:一幅25m分辨率的黄土地貌DEM数据,区域面积大约有140 km2。数据存放于

随书光盘…/ChP11/Ex1目录中。 5. 算法思想: 山脊线和山谷线的提取实质上也是分水线与汇水线的提取。因此,可以利用水文分

析的方法进行提取。 对于山脊线而言,由于它同时也是分水线,而分水线的性质即为水流的起源点。所

以,通过地表径流模拟计算之后,这些栅格的水流方向都应该只具有流出方向而不存在

流入方向,也就是其栅格的汇流累积量为零。通过对零值的汇流累积值的栅格的提取,就可以得到分水线,即山脊线;对于山谷线而言,可以利用反地形的特点,即利用一个较大的数值减去原始的DEM数据,得到与原始地形完全相反的地形数据,使得原始的DEM中的山脊变成反地形的山谷,而原始DEM中的山谷在反地形中就变成了山脊,再利用山脊线的提取方法就可以实现山谷线的提取。但是这种方法会出现提取出的山脊和山谷位置有些偏差,可以利用正、负地形来加以纠正。

基于DEM利用水文分析的方法提取山脊线和山谷的技术流程如图11.34所示。

反地形DEM 水流方向数据 汇流累计量 求交 负地形 原始DEM 邻域分析 求均值后的DEM 正地形 求交 无洼地DEM 水流方向数据 汇流累计量 山脊线 山谷线 图11.34 山脊线和山谷线的提取流程图

6. 操作步骤 (1) 正负地形的提取

1) 启动ArcToolbox,展开Analysis Tools工具箱,打开Hydrology工具集。在ArcMap

中加载研究区域的原始DEM数据,如图11.35所示; 2) 加载Spatial Analyst模块,单击Spatial Analyst模块的下拉箭头,单击Neighborhood

Statistics菜单工具,利用邻域分析的方法以11×11的窗口计算平均值。计算结果命名为meandem;

3) 单击Spatial Analyst中的Raster Calculator菜单工具,对原始DEM数据与邻域分析

之后的数据meandem做减法运算,并将运算结果重分为两级,分级界线为0,则大于0的区域在原始DEM上就是正地形区域,小于0的区域在原始DEM上就是负地形区域。

图11.36正地形区域(图中深色区域) 图11.37负地形区域(图中深色区域)

图11.35 研究区域的DEM数据

4) 对上一步得到的二值化数据进行两次重分类,一次将正地形区域属性值赋值为1,

负地形区域属性赋值为0,命名为zhengdixing;另一次将正地形区域属性值赋值为0,负地形区域属性赋值为1,命名为fudixing。结果分别如图11.36、图11.37所示。

(2) 山脊线的提取

1) 在ArcMap中加载研究区域的原始DEM数据,如图11.35所示;

2) 洼地填充:双击Hydrology工具集中的Fill工具,进行原始DEM的洼地点填充。

在Input surface raster文本框中选择原始DEM数据dem,将输出数据命名为filldem,因为选择的是将所有洼地全部填充,所以Z limit为默认值;

3) 基于无洼地的水流方向的计算:双击Hydrology工具集中的Flow Direction工具,

在Input surface raster文本框中选择填充过的无洼地DEM数据filldem,将输出的水流方向数据命名为flowdirfill;

4) 汇流累积量的计算:双击Hydrology工具集中的Flow Accumulation工具。选择

flowdirfill作为输入的水流方向数据;输出数据命名为flowacc1;

5) 汇流累积量为零值的提取:加载Spatial Analyst模块,单击Spatial Analyst模块的

下拉箭头,单击Raster Calculator菜单,打开栅格计算对话框,在文本框中填写汇流累积量为零值的提取公式:facc0 = (flowacc = 0),然后单击evaluate进行计算; 6) 在ArcMap中打开facc0,会发现有很多的地方并不是山脊线,因此需对此数据做

如下处理:利用邻域分析的方法,对facc0进行3×3邻域分析,求均值,使数据变得光滑,处理后的数据命名为neiborfacc0;

7) 单击Spatial Analyst模块中的Surfer Analyst中的Countline和Hillshade菜单命令,

分别生成原始DEM的等值线图ctour和晕渲图hillshade。

8) 在neiborfacc0数据上单击右键,单击Properties命令,进行重新分级,将数据分为

两级,这时需要不断调整分级临界点,并以等值线图和晕渲图作为辅助判断。属性值越接近于1的栅格越有可能是山脊线的位置,最终确定的分界阈值为0.5541; 9) 将进行过二值化的neiborfacc0进行重分类为reneibor,将属性值接近1的那一类的

属性值赋值为1,其余的赋值为0。

10)利用Spatial Analyst菜单下的Raster Calculator将重分类过后的neiborfacc0数据与

正地形数据zhengdixing相乘,就消除了那些存在于负地形区域中的错误的山脊线。然后将计算结果进行重分类,所有属性不为1的栅格属性值赋为NO DATA。就得到了山脊线,如图11.38所示。

图11.38 计算出的研究区域的山脊线

(图中深色区域为山脊线,背景为该区域的晕渲图)

(3) 山谷线的提取

1) 在ArcMap中加载原始DEM数据,如图11.35所示;

2) 加载Spatial Analyst模块,单击Spatial Analyst模块的下拉箭头,单击Raster

Calculator菜单工具,打开栅格计算对话框;在文本框中填写反地形的计算公式:fandem =Abs (dem-2000),单击evaluate按钮进行计算。得到与原始DEM地形完全相反的反地形数据,如图11.39所示。反地形计算完毕之后,山谷线的提取就和山脊线的提取步骤一样的,直到最终利用重分类的方法将重新分级的邻域分析后的结果二值化为止。这里不需要对反地形DEM进行洼地填充。计算过程中的数据名称分别为:水流方向数据为flowdirfan,汇流累积数据为flowacc2,零值汇流累积量提取数据为flowacc0fan,对flowacc0fan进行3×3邻域分析求均值后的结果数据为nbfacc0fan,并将其分级改为两级,分级阈值为0.65677。

本文来源:https://www.bwwdw.com/article/kt9t.html

Top