本章导读:流向分析是ArcGIS水文分析工具的基础,属于GIS技术方面的术语;流量统计则是水文分析用作划分流域、河流等级的指标,属于水文行业术语。在利用ArcGIS软件做水文分析的过程中,几乎全过程都用到流向和流量的栅格数据,因此,本章单独对流向和流量进行详细的解读。如果是GIS专业的人员,千万不要跳过这个章节,不然面对其他分析工具的时候用到的一些水文术语将会无所适从。 BY 李远祥
###流向分析
ArcGIS水分分析工具的流向分析是基于D8单流向算法,如果分析使用的DEM存在凹陷点,就会产生汇,导致径流断流从而影响了分析结果。在前面章节《ArcGIS水文分析实战教程(2)ArcGIS水文分析工具的基本原理》中又介绍过D8算法,而《ArcGIS水文分析实战教程(4)地形预处理》章节中笔者也较少过如何创建无凹陷点得DEM数据,在使用流向分析工具之前可以先行阅读。
首先流向分析要使用填洼过的数据,确保DEM数据没有凹陷点。如果数据准备妥当,直接使用水文分析工具箱中的【流向】工具进行分析。
【流向】分析工具很简单,输入一个无凹陷点的DEM,输出结果就是流向栅格。之前也提及过,流向栅格数据是以2的n次方来标记8个方向的,在没有汇的情况下,其数值一定是2的n次方。ArcGIS软件经历了非常多个版本的迭代更新,已经很人性化了,在默认情况下会自动的给定流向栅格8个方位不同的颜色进行渲染。下图利用的就是使用无凹陷点DEM进行流向分析产生的结果:
从图上可以看到其8个方位的流向,但这个图不是给人看的,主要是给计算机进行识别的。
如果流向中出现的不是【1,2,4,8,16,32,64,128】这样的值,而是一个连续像元值的结果,其实质是产生了8个方向以外的数值,如下图所示:
那么在参与进行计算的DEM肯定还存在汇,所以要是遇到上图的这种流向的表达方式,就一定要对DEM做填洼操作,不然整个分析结果都会存在错误。
这是一个鲜为人知的小技巧,可以在分析的过程中就清楚DEM数据是否满足分析条件;同时也可以给分析人员做个提醒,判断分析出错在哪个环节。
###流量统计
笔者将这个步骤称作【流量统计】而不是【流量分析】是有它特殊的意义的。在ArcGIS软件中,这个流量栅格并不是水文学意义上的河流流量,与水文站实测的数据是两个完全不同意义的名词。这里的流量指的是有多少个格子的水流汇流到某一点上,是一个空间范围概念。如果要转换为水文学上的术语,以水文站为例,那就是该水文站对应的上游集水区面积。
ArcGIS的流量统计是需要流向栅格进行参考的,其统计原理如下图
其实际原理是累计每个流向栅格的总数。
工具调用非常简单,输入流向分析结果的栅格数据,设置好输出的流量统计栅格就行了。如下图所示
工具里面还有一个【输入权重栅格数据】的可选项,后续笔者会对此说明
其结果也是一个栅格数据,只不过这个栅格数据每一个像元值记录的是流向栅格中有多少个像元的水流流经该像元点。如下图所示:
参照这个结果的图例,可以直接从图中读取到一些信息。这个流量统计栅格亮白色代表的是流量越大,其中最大一点共有309111个像元向其汇入。按照前面章节获取该原始DEM数据的元数据信息可以知道,该数据为像元大小为30*30,那么流量最大点的汇入栅格面积就是30 * 30 *309111 平方米。
按照默认的显示方式去表达流量是没有任何意义的。流量统计的实际意义在于在一定流量值时会产生地表径流,在径流达到一定值是成为常规的河流,这才是水文分析要研究的对象。所以,在流量统计之后,必须要对统计的栅格数据进行重分类和筛选。栅格重分类和条件函数均可以实现对流量统计数据进行定义划分。
虽然ArcGIS软件中水文分析工具只有11个,但结合其他分析工具就可以无限延伸了。如果是水文工作者,不能光知道这11个工具,不然很多分析都无法实现。
【重分类】工具非常强大,在spatial扩展和3D扩展都带这一工具,它是统计学与GIS结合非常友好的一个工具。只要涉及到数据统计模型,基本上可以跟重分类扯上关系。
重分类工具使用不困难,困难的是它的指标是如何制定的,这就要看研究对象的特性了。例如水文分析研究的对象是小流域,那么怎么定义?按照面积定义还是按照蓄积量来定义还是别的定义方式,这真的跟行业和研究对象密不可分。
针对本章例子数据,如果研究的对象是汇水面积超过9平方公里的河流,那么就要根据数据的特性计算这9平方公里的蓄积栅格数是多少。这个换算并不难,按照平方公里与平方米的转化,9平方公里=9000000平方米。
9平方公里的蓄积栅格数=9000000/(30 * 30)=10000
也就是说地表径流能够汇聚成河流的最小蓄积栅格为10000,这样在重分类工具里面基本上可以划分为两类,1类是小于10000栅格数,一类是大于等于10000的栅格数,如下图分类
执行的结果分类两类,如下图
这样基本上可以满足达到一定蓄积量时生成的河流。
但【重分类】工具有一个不足的地方,就是在结果栅格中会保留所有的值。然后后续要提取出矢量的河流,那么重分类之后还需要对结果进行提取处理,相对来说比较麻烦。但是它集成了比较多统计学上的分析函数,在分类的时候可以比较科学。
针对流量进行河流的定义,ArcGIS工具对栅格处理还提供了一个更好的工具,可以剔除掉不符好条件的栅格像元,那就是【条件函数】。【条件函数】有点像【筛选】工具,只不过一个是针对栅格数据,一个是针对矢量数据进行过滤,它是针对输入栅格的每个输入像元执行 if/else 条件评估。例如该例子要提取出蓄积量大于10000的流量像元,使用【条件函数】可以如下操作
计算结果如下图
这个结果表面上看起来跟原来的流量统计结果类似,但留意图例部分,其最低值已经发生了变化,也就是说已经剔除掉小于10000像元值的栅格了。如果在显示设置上将其随意分为两类以上,均可以看到栅格像元的组成的河流与前面重分类的河流是温和的,如下图
由此可见,流量蓄积栅格的划分对于水文研究是非常重要的,它决定了河流的源头,从源头开始起算。后续再配合出水口数据就可以定义出研究的流域了。
在流量统计的时候有一个参数叫做权重栅格,这个参数对于水文研究是非常重要的,但它却是一个可选项,如下图所示
一般情况下如果只是希望通过DEM数据提取河流,这个参数设不设关系不是十分大,特别是研究大江大河。如果是测绘或者纯GIS分析人员,基本上会将其无视掉。但作为水文从业者,这基本上可以确定是必填的参数。
笔者发现某度上关于利用GIS做水文分析的检索结果,几乎没有对权重栅格进行过论述,估计是写这些文档的人都是GIS或GIS相关人员,不懂水文专业,所以都忽视该参数。
为什么会有权重栅格?这还是要从D8算法和流量统计工具计算方式说起。流量的统计都是基于流向像元数据进行累加统计,而流向栅格是基于D8算法计算出来的,原则上只考虑单个方向的汇水过程,而没有考虑其他的如降雨、渗透等水文现象。也就是说,在默认情况下,流向栅格流出的水量都是一致的,流量统计计算的只是流向栅格累计的个数。如果换成现实模拟,那就是说每一个30 * 30 区域汇入河流的水量都是一致的。
这显然是不符合实际情况。按照水文过程,实地中每一处的蓄积(跟降雨量、下渗、植被吸水都有关系)对河流的贡献是不一样的,不能一刀切。例如同等降雨强度下,相同单位面积的草地流出的水量肯定比裸地要少得多,这就需要一个权重值来衡量多少水量蓄积才能达到河流形成。
那么这个权重栅格可以是什么内容?
这个栅格可以是以下几种:
关于权重参数的选择,笔者认为如果研究区域比较大,还涉及到降水与地形有关的情况,那么首选需要考虑将降雨等值面考虑进去;如果研究区域比较小,基本上都落在同一个雨量等值面或者雨量差别不大,那就不用雨量,而采用渗透率,也就是说可以通过地貌去换算。当然,如果有非常成熟的计算模型去换算有效降雨转化(降雨转化为径流的有效值),那就更好了。
不管上述采用的是什么样的权重参数,计算出来的都不是真实的流量,而是一个相对流量值。只能反映出区域与流量关系,而不是具体流量值。
为了进一步查看其权重栅格对流量的影响,笔者特意将同一区域的土地利用图层加载进去,
由于权重栅格不能使用字段值,所以在使用的时候必须将其对应的某些字段值根据一定的方式转为像元值,不然它会按照默认的VALUE字段进行计算。由于landuse数据做了分类,VALUE是1-7 ,差别还是挺大的,计算后可以通过像元统计,发现其最大像元值和标准差变化都很大,这也说明权重栅格对蓄积流量有一个非常大得影响。
流量分析和流量统计看似是一个非常简单的操作过程,但在水文分析过程中是占非常大的比重,因为它需要在这个阶段对水文研究对象进行划定和分类,水文学和GIS结合部分基本上都会在流量统计这一环节进行交错应用。所以,水文分析是否正确,分析是否科学合理,全在流量统计方面体现出来。 BY 李远祥