ArcGIS水文分析实战教程(2)ArcGIS水文分析工具的基本原理
作为成熟的GIS软件,ArcGIS提供了相当不错了水文分析工具。包括在spatial扩展中提供的水文分析工具集和地下水分析工具;如果还关注ArcGIS周边,还能发现美国还有一个团队在一直维护ArcHydro工具集。ArcGIS软件在地表水分析方面的研究成果还是相当不错的,目前已经非常成熟;地下水分析方面还处于起步阶段,只提供少有的几个工具;而ArcHydro则是免费的专业级别的水文分析工具集合。
本章节主要介绍ArcMap中原生的水文工具集,力求让广大读者了解其运作原理。了解原理之后才能制定其分析流程。 BY 李远祥
了解ArcGIS水文分析工具
ArcGIS在其ArcToolBox中提供了水文分析工具集,其作用主要是模拟地表水形成径流的过程,并利用这一模拟过程实现河流、出水口以及流域的提取。由于水文分析工具集在spatial工具箱中,因此要运行它,必须具备spatial扩展授权。
水文分析工具集提供总计11个工具,如下图
相对于ArcHydro上百个工具,原生的水文分析工具显得相对少了点,但每一个工具都非常的实用。它的所有的分析都是基于数字高程模型(DEM)和D8单流向算法进行的,因此,了解DEM和D8算法是相当重要的。
了解DEM数据
对GIS人员来说,DEM是常见的数据格式了。但对水文分析人员,不一定都了解。DEM是一种连续的栅格的,每一个栅格代表一个矩形范围,而每个栅格用不同的灰度值表示其高程值。如下图
从元数据信息可以看到该DEM的像元大小是3030,也就是每一个栅格的格子代表实际面积为30 30 见方。如果加上上面的行数和列数788 768 ,那么可以计算出该区域的总面积为30 30 788 768 (平方米)。这就是DEM元数据信息中所包含的重要信息。
在利用DEM做河流提取和流域提取时,要限制最小区域的集水区(即形成河流的最小汇水面积),那就需要通过DEM的元数据信息进行换算栅格的格子数。例如最小的流域为9平方公里,那么换算成该数据的栅格数据为9000000/30/30 = 10000(格子数)。这会在后面流量分析中提及到。
D8单流向算法
前面提及到ArcGIS水文分析的两个重要的基础,一是使用DEM进行分析,二是分析的基础算法为D8单流向算法。
D8算法是假定雨水降落在地形中某一个格子上,改格子的水流将会流向周围8个格子地形最低的格子中。如果多个像元格子的最大下降方向都相同,则会扩大相邻像元范围,直到找到最陡下降方向为止。如图所示
这样编码的好处自然是通过数学的方式,让计算机可以非常快的使用二进制进行索引,加快大区域的流量累计统计。
所以,D8 算法又称作单流向算法。其特点就计算速度快,能够很好的反应出地形对地表径流形成的作用。但其弊端也是显而易见。因为水流只流向一个方向,是单线传递,一旦遇到某一洼地的时候,周边的水流都会集中向该洼地流入,导致断流现象,而现实中由于水会向多个方位不定向的流动,是不会轻易导致断流的。如果要避免这种情况发生,就需要对地形中的洼地进行填平,确保水流也能从该洼地流出。这就是为什么水文分析工具中出现了一些与水文分析完全没有关系的一个工具--填洼 。
从D8算法可以看出,ArcGIS的水文分析工具是依赖无凹陷的DEM地形的,所以在分析之前都必须对DEM数据进行检查。【汇】工具和【填洼】工具就是为了分析前查找和填平洼地而生的,在使用水文分析之前必须要使用这两个工具对DEM进行处理。
单流向算法影响限制了ArcGIS水文分析工具的使用。尤其是地势平坦的地区和人工干预比较多的城市区域,基本上不适用。因为地势平坦导致水流无法沿某一方向流动而形成径流。
另一种情况是事实上的断流形成,如存在地表水流汇流入地下水系的情况。一旦出现流入地下暗河,D8算法就完全失效。因此,在喀斯特地貌中同样也不适用。
D8算法是完全不考虑降雨的多少、土壤渗透率、植被吸水以及水流挡阻等水文过程,它只是假定有无限的降雨并最终汇聚水流形成径流,并通过汇流范围来定义最终的河流。因此,它只是一个径流汇成河流的定性分析(尽管流量计算看起来是有定量因子),并不能通过其流量算法去做水文的预报。
关于流量
ArcGIS水文分析中的流量并不是指水文监测中的实际流量,它只是流向分析结果的一个栅格累计计算。流量栅格中每一个像元记录的是流向栅格中流向该点的栅格数量的总和。如下图所示
从原理上可以看出,如果将流量上栅格上的某一点作为出水口,那么,所有流向该点的像元的集合便构成了一个最小的集水区域。所以,如果要针对分析区域进行小流域的划分,那么前提条件便是要得到流向和流量栅格,并且要根据栅格像元的大小计算最小的积水区域,而这个区域的计算则需要将面积换算为栅格的数量。
换算的方法在前面DEM介绍部分已经说明清楚,读者可以往上翻页再次浏览。ArcGIS的官方文档是不会对这些换算的方法进行说明,因为它面向的是偏计算机专业的人员,水文专业人员可能会对此比较难以理解。
工具中的水文学术语
在ArcGIS水文分析工具11个分析工具中,只有河流链接、河网分级、分水岭、河流长度 这几个才是直接对接水文学术语。
河流连接
ArcGIS官方帮助写得相当羞涩难懂,其工具解释如下
向各交汇点之间的栅格线状网络的各部分分配唯一值。
基本上单看帮助说明,不管是GIS人员还是水文专业人员都不知道所云。再看其插图,基本上可以看出其具体作用,就是针对一定流量的径流进行交互连接。如下图所示
河网分级
河网分析是根据水系的连接情况进行等级划分。ArcGIS的这个工具基本上可以跟水文学能够完全对接。但它只支持水文学上最常用的两种分级模式--斯特拉勒(STRAHLER)和施里夫(SHREVE)分级方法。
这里的分级方法与传统的地理学河流分级不一样。地理学上大江大河定义为一级,如长江、黄河、珠江这些定义为一级河流;西江属于珠江的一个大支流,定义为二级河流,如此类推。这只是方便水利主管单位对流域进行管理去定义的,在水文分析中这种定义方式没有太大的使用价值。
在水文学上主要使用以下几种分级模式
格雷夫利厄斯(Gravelius)分级法
格雷夫利厄斯(Gravelius)分级法有点类似中国传统的河流分级定义,水系中最大的主流为1级,直接汇入1级河流的水系为2级,依次类推直到分级完成。霍顿(Horton)分级法
霍顿(Horton)分级法将最小的没有分支的水系定义为1级,只接纳1级河流的水系定义为2级,只接纳2级河流的水系定义为3级,如此类推直到定义完成。斯特拉勒(STRAHLER)分级法
斯特拉勒(STRAHLER)分级法,没有支流汇入的水系定义为1级别,两个相同级别的水系汇入某一河流时,河流等级增加1级;如果等级不同,则以最大等级的河流相同。依次分级完成所有定义。施里夫(SHREVE)分级法
施里夫(SHREVE)分级法有点类似累计分级,将没有支流的水系定义为1级,多个支流汇入,将其级别相加作为汇入河流的级别。如此类推直到分级完成。沙伊达格分级法
沙伊达格分级法是施里夫分级法的一个变种,分级方式与施里夫方法一致,只是将没有支流的河流定义为2级,这样所有的河流级别都是偶数。
以下是各种河网分级的示意图
格雷夫利厄斯分级法:水系中河流越小,级数就越大,难以区分水系中的主流和支流,同样为1级的河流可能相差较大。
霍顿分级法:2级以上的河流均可以一直延伸到河源,但实际上它们的最上游都只具有1级河流的特征。
斯持拉勒法:不可能像霍顿分级法一样将2级以上河流都一直延伸到河源,因而总是将能通过全流域水量和泥沙量的河流作为水系中最高级的河流的。斯持拉勒法主要不足是不能反映流域内河流级愈高,通过的水量和泥沙量也愈大的事实。
施里夫和沙伊达格分级法:很好弥补了上述分级方法的缺陷,非常适合在数值上进行计算。
为什么ArcGIS只保留斯特拉勒(STRAHLER)和施里夫(SHREVE)两种分级方法。笔者认为如果单从统计方面来说,施里夫(SHREVE)方法是最优,毕竟其推导有点类似汇流的计算,在水文流量和泥沙量的一些模拟上应该有比较大的参考价值。
斯特拉勒(STRAHLER)分级方法,一些研究水文的大师级人马认为它是根据水系形态与水文要素综合分析引导出来的,可以作为寻求水系地貌的基础。
ArcGIS是根据流向和流量栅格来计算地表径流(非河流),而河网分级工具并不是对已有的河流进行分析,而是针对具有一定流量的地表径流进行分级,分级之后再作为地表径流转为真正河流的基础。所以,笔者认为,如果是希望通过DEM去提取水系,那么采用斯特拉勒(STRAHLER)分级方法作为依据;如果是希望寻找河网链与流量、泥沙量的关系,推荐使用施里夫分级方法。
分水岭
ArcGIS的分水岭实际上就是水文学上的分水线围闭而成的面。引申出来的就是集水区、流域。分水岭是可以嵌套的,例如大的分水岭嵌套若干个小分水岭,也就是大流域里面包含了如果个小流域。
下图是ArcGIS软件对分水岭组成的说明,这并不是水文学上的分水线定义。
水流长度
水流长度工具的主要用途是计算给定盆地内最长水流的长度。这个跟水文学上的定义可以对上。
本章总结
本章主要是针对ArcGIS中的水文分析工具的一些基本原理和方法,对应水文学的一些相关原理进行论述。希望能通过一些简单的对照,能够帮助GIS和水文分析人员增强对行业和工具理解,能够在后续的分析工作更加精准的设置工具的参数,正确使用工具来辅助分析决策。