[ArcGIS] 空间分析(八) 水文分析

理论基础:https://blog.csdn.net/summer_dew/article/details/82974108


基于DEM地表水文分析的主要内容是利用水文分析工具提取水流方向、汇流累积量、水流长度、河流网络、河网分级,以及流域分隔等

无洼地DEM生成

  • 背景
    DEM是比较光滑的地形表面的模拟,但是由于DEM误差及一些真实地形(如喀斯特地貌)的存在,使得DEM表面存在着一些凹陷的区域
  • 原因
    在进行水流方向计算时,由于这些区域的存在,往往得到不合理的甚至错误的水流方向
  • 结论:进行洼地填充
    因此,在进行水流方向的计算之前,应首先对原始的DEM数据进行洼地填充,得到无洼地的DEM

洼地填充:先利用水流方向数据计算出DEM数据中的洼地区域,并计算其洼地深度,然后,依据这些洼地深度设定填充阈值进行洼地填充

水流方向提取

  • 是什么
    水流方向:水流离开此格网时的指向
  • 实现思路
    ArcGIS中,水流方向采用D8算法,即通过计算中心栅格与邻域栅格的最大距离权落差来确定。
    距离权落差是指中心栅格与邻域栅格的高程差除以两栅格间的距离,栅格间的距离与方向有关。

操作:[Spatial Analyst 工具]–>[水文分析]–>[流向]

  • [“强制所有边缘像元向外流动”]:在DEM数据边缘的栅格的水流方向全部是流出DEM数据区域
  • [“输入下降率栅格数据”]:下降率栅格是指栅格在其水流方向上与其临近的栅格之间的高程差与距离的比值。反映了在整个区域中最大坡降的分布情况

洼地计算

得出dem中的洼地深度数据图

  • 背景
    洼地区域是水流方向不合理的地方,可以通过水流方向来判断哪些地方是洼地,然后对洼地进行填充。
    但是,并不是所有的洼地都是由于数据的误差造成的,有很多洼地是地表形态的真实反映。

  • 结论:设置阈值
    在进行洼地填充之前,必须计算洼地深度,判断哪些地区是由于数据误差造成的洼地而哪些地区又是真实的地表形态,然后在洼地填充的过程中,设置合理的填充阈值

  • 操作步骤
    操作流程图

    1. 洼地提取
      说明:输入流向数据,提取出洼地
      操作:[Spatial Analyst 工具]–>[水文分析]–>[汇]

    2. 洼地深度计算
      (1)计算洼地的贡献区域(哪些区域的水会流进洼地)
      操作:[Spatial Analyst 工具]–>[水文分析]–>[分水岭]
      说明:输入流向数据洼地(栅格数据或要素倾泻点数据),计算洼地的贡献区域(哪些区域的水会流进洼地)
      参数:[倾泻点字段] 选 Value
      (2)计算每个洼地所形成的贡献区域的最低高程
      操作:[Spatial Analyst 工具]–>[区域分析]–>[分区统计],计算出最小值栅格
      (3)计算每个洼地贡献区域出口的最低高程,即洼地出水口高程
      操作:[Spatial Analyst 工具]–>[区域分析]–>[区域填充]
      (5)计算洼地深度
      操作:[Spatial Analyst 工具]–>[地图代数]–>[栅格计算器]
      公式:sinkdep = (“zonalmax” - “zonalmin”)

  • 结果:得到洼地深度图sinkdep

通过以上步骤(洼地提取),可以了解原始的DEM上是否存在着洼地。
如果没有洼地存在,原始DEM数据就可以直接用来进行河网生成、流域分隔等。
而洼地深度的计算又为在填充洼地时设置填充阈值提供了很好的参考。

洼地填充

洼地填充是无洼地DEM生成的最后一个步骤
根据洼地深度图,设置合理的阈值,对dem进行洼地填充

【阈值设置】填充洼地时要求设置一个阈值,大于这个阈值的洼地才会被填充掉

  1. 默认情况都为全部填充
  2. 若有特殊要求,你考察过每个地方的洼地在现实中就是如此–>研究要求要将此地保留–>根据此地来设置阈值

操作:[Spatial Analyst 工具]–>[水文分析]–>[填洼]

  • [表面栅格数据]:dem
  • [Z限制]:设置阈值,>这个阈值的地方将作为真实地形保留。默认是所有洼地区域都将被填平

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

汇流累积量

这里写图片描述

  • 是什么
    在地表径流模拟过程中,汇流累积量是基于水流方向数据计算得到的。
  • 基本思想
    以规则格网表示的数字地面高程模型每点处有一个单位的水量,按照自然水流从高处流往低处的自然规律,根据区域地形的水流方向数据计算每点处所流过的水量数值,便得到了该区域的汇流累积量

操作:[Spatial Analyst 工具]–>[水文分析]–>[流量]

  • [流向栅格数据]:无洼地dem生成的流向数据
  • [权重栅格数据]:权重数据一般考虑到降水、土壤以及植被等对径流影响的因素分布而得到的,对每一个栅格赋权重能更详细模拟该区域的地表特征。默认为1

水流长度

  • 是什么
    水流长度是指在地面上一点沿水流方向到其流向起点(或终点)间的最大地面距离在水平面上的投影长度

  • 意义
    水流长度直接影响地面径流的速度,从而影响对地面土壤的侵蚀力。因此水流长度的提取和分析在水土保持工作中有很重要的意义。

  • 计算思路

    • 顺流计算:计算地面上每一点沿水流方向到该点所在流域出水口的最大地面距离的水平投影
    • 溯流计算:计算地面上每一点沿水流方向到其起点的最大地面距离的水平投影

操作:[Spatial Analyst 工具]–>[水文分析]–>[水流长度]

  • [流向栅格数据]:无洼地的dem生成的流向数据fdirfill
  • [测量方向]:DOWNSTREAM顺流计算,UPSTREAM溯流计算
  • [输入权重栅格数据]:降水、土壤以及植被等对径流影响的因素分布而得到的

河网的提取

河网的生成

四个部分:

  1. 基础数据:汇流累积栅格数据flowacc
  2. 设置阈值:不同级别的沟谷对应不同的阈值,不同研究区域相同级别的沟谷对应的阈值也不尽相同。所以,在设定阈值时,应通过不断的实验和利用现有地形图等其他资料辅助检验的方法来确定合适的阈值
  3. 栅格河网的形成
    操作:[Spatial Analyst 工具]–>[地图代数]–>[栅格计算器]
    思路:利用所设定的阈值对整个区域分析并生成一个新的栅格图,其中汇流量>阈值的栅格设定为1,而≤阈值的栅格设定为无数据
    输出:streamnet
  4. 栅格河网矢量化
    操作:[Spatial Analyst 工具]–>[水文分析]–>[栅格河网矢量化]
    • [河流栅格数据]:streamnet
    • [流向栅格数据]:fdirfill(无洼地dem生成的水流方向数据)

【阈值的设置】以实验目的为导向
【思考】通过不同的阈值,可以提取出不同级别的汇流网络

  1. 阈值设置的越小–>河谷网就提取的越少–>很小支的很窄的河流都会被提取出来
  2. 阈值设置的越大–>提取的河谷网就会越多–>只能提取到规模较大的河谷

Stream link的生成

  • 是什么
    Stream Link记录河网中结点之间的连接信息,它主要记录河网的结构信息
    Stream Link的每条弧段连接着两个作为出水点或汇合点的结点,或者连接着作为出水点的结点和河网起始点

  • 意义
    通过提取Stream link可以得到每一个河网弧段的起始点和终止点。同样,也可以得到该汇水区域的出水点。
    这些出水点对于水量、水土流失等研究具有重要意义,而且出水口点的确定,为进一步的流域分割做好了准备

操作:[Spatial Analyst 工具]–>[水文分析]–>[河流连接]

  • [河流栅格数]:streamnet(河网)
  • [流向栅格数据]:fdirfill(无洼地dem生成的水流方向数据)

结果:
Stream link将栅格河网分成不包含汇合点的栅格河网片段,并对片段进行记录,其属性表记录者每个片段所包含的栅格个数

河网分级的生成

操作:[Spatial Analyst 工具]–>[水文分析]–>[河网分级]

  • [河流栅格数据]:streamnet
  • [流向栅格数据]:fdirfill
  • 两种分级方法:Strahler、Shreve

这里写图片描述

流域的分割

流域:集水区域,是指流经其中的水流和其他物质从一个公共的出水口排除从而形成的一个集中的排水区域
可以用流域盆地(basin)、集水盆地(catchment)或水流区域(contributing area)等来描述流。watershed数据显示了每个流域汇水面积的大小。

**出水口(或点)**即流域内水流的出口,是整个流域的最低处。

分水岭:流域间的分界线即为分水岭

分水线包围的区域称为一条河流或水系的流域,流域分水线所围成的区域面积就是流域面积

流域盆地的确定

流域盆地是由分水岭分隔而成的汇水区域,可利用水流方向确定出所有相互连接并处于同一流域盆地的栅格区域

思路:①确定分析窗口边缘出水口的位置,所有流域盆地的出水口均处于分析窗口的边缘 ②其次,找出所有流入出水口的上游栅格的位置,即流域盆地集水区

步骤:
操作:[Spatial Anayst 工具]–>[水文分析]–>[盆域分析]
参数:流向栅格数据fdirfill
输出:basin流域盆地

汇水区出水口的确定

在水文分析中,经常基于更小的流域单元进行分析,因而需要对流域进行分割。
流域的分割首先要确定小级别流域的出水口的位置

操作:[Spatial Analyst 工具]–>[水文分析]–>[捕捉倾泻点]
思维:以记录着潜在但并不准确的小级别流域出水口位置的点数据为基础,搜索该点一定范围内汇流累积量较高的栅格点,这些栅格点就是小级别的流域的出水点。

如果没有出水点的栅格或矢量数据,可利用已生成的stream link数据作为汇水区的出水点。
因为stream link数据中隐含着每一条河网弧段的连接信息(包括弧段的起点和终点等),而弧段的终点可以看作是该汇水区域的出水口所在位置。

集水流域的生成

输入:水流方向数据fdirfill、流域出水口数据streamlink
操作:[Spatial Analyst 工具]–>[水文分析]–>[分水岭]
思路:先确定出水点,即该集水区的最低点,然后结合水流方向,分析搜索出该点出水点上游所有流过该出水口的栅格,一直搜索到流域的边界,即分水岭的位置为止。

隔壁优秀文章:http://blog.csdn.net/kikitamoon/article/details/7908058

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页