本章导读:ArcGIS水文分析模块提供了3个工具用做河网提取。GIS和测绘专业人员没法理解,用做水文分析连DEM数据都能拿到了(精度较高的DEM数据在我国都属于涉密数据),难道就无法拿到精度较低的线状河流数据?利用DEM数据来生成河流网络,除了必定的工做量以外,结果还可能不如实测的河流精度高,这样作有点画蛇添足了。笔者认为这刚好反映出行业的差距。水文分析更多的是关心河流的连接关系,河流与流域之间的关系,而非精确的图形和空间位置。本章内容在操做上属于简单类型,笔者会更多的从水文分析角度去解释分析结果。 BY 李远祥node
ArcGIS水文分析工具箱提供了【河流连接】、【河网分级】、【栅格河流矢量化】3个工具用做河流提取和分级定义。以下图所示程序员
河流提取的全过程为 建立无凹陷点DEM-->流向分析-->流量统计-->定义地表最小的地表径流-->河流连接-->栅格河流矢量化 。微信
关于建立无凹陷点DEM能够参考《ArcGIS水文分析实战教程(3)DEM数据准备》、《ArcGIS水文分析实战教程(4)地形预处理》内容;流向分析、流量统计和定义最小的地表径流,在《ArcGIS水文分析实战教程(5)细说流向与流量》多了详细的解读。网络
在上一章中讲到的针对流量栅格进行了条件函数的定义,河网的形状大概就出来了。但这个数据表达的只是一系列大于必定蓄积栅格的像元点,原则上它也只是离散点,尽管看起来像连续的河流。以下图函数
能够从图例中看到这个结果的像元值范围从10000-309111 . 【河网连接】工具就是利用统计后的栅格数据与流向数据,链接一个像元点,利用流向判断出不一样的河流,并把像元点链接成线。说白了就是将像元点串起来并作了不一样线段的划分。下图是河流连接的示意图工具
这个示意图是从ArcGIS软件中截取出来的,通常的水文从业都能看懂,但这个图不够专业,显然是出自于程序员之手。笔者在第二章《ArcGIS水文分析实战教程(2)ArcGIS水文分析工具的基本原理》曾经引用过相关的示意图,下图就是水文学上常见的河流链spa
从两张图对比可见,水文学上的分类要比ArcGIS上的更加细致,光是连接便分为外链和内链,没有河流汇入的连接是外链,有其余水系汇入的河流为内链;交互点也分为河源、节点和出口,分别对应外链的起点、内链的起点、树状河网的最低点。.net
这么说来,是否是说ArcGIS软件的河网连接就不够专业呢?其实并非这样的!由于在水文学上连接是为了反映出河流之间的关系,最终是为河流分级服务的。而ArcGIS还提供了河流分级工具,很好的对应水文分析的要求。code
【河流连接】分析须要的是执行过条件函数后的流量统计栅格,也就是说筛选过流量的栅格数据,而且须要流向栅格进行参考。以下图blog
从分析结果能够看到,连接以后离散的像元会被串联起来,造成独立的河流。以下图所示,河网已经被串联成27条河流,但仍然使用栅格的形式表示。
若是不关注河流的分级,只用做河流线体的提取(测绘专业的人就喜欢这么干),直接使用【栅格河网矢量化】工具进行矢量河流数据的生成。以下图
这里要求的【河流栅格数据】,最低限度就是执行过河流连接的结果,固然也能够是【河流分级】以后的结果。
下图是生成的矢量河流结果
矢量河流会生成一些特殊的字段做为标记,例如arcid字段,记录的是元素网格的id,grid_code记录的是河流的惟一Id,由于在河网连接的时候已经对蓄积像元进行了计算,并肯定了栅格河流,而from_node和to_node就是记录河段从哪一个流量栅格流向下一个流量栅格。因此,若是将grid_code相同的河段所有选择,那它就是一个完整的连接(有多是外链也有多是内链)
若是不考虑分级的状况生成惟一的河流,那么可使用【融合】工具对上面的矢量河流线要素进行融合,以下图设置
最终结果就是合并为原来的27条河流,以下图
在水文学上,河流连接不是为了提取矢量河流,而是为河流分级作准备。水文学更多的是关注河流之间的关系、河流与流域的关系,而非河流自己的图形;即使关注的是单个河流的几何图形,但通常也会跟高程带上关系,例如河流比降。因此,河流连接以后,通常就是对河流进行分级了。
前面部分说起过ArcGIS的河流连接与水文学的连接的一些差别,但由于最终提供了河网分级功能,因此在连接部分并无影响。
水文学上的河网分级在第二章《ArcGIS水文分析实战教程(2)ArcGIS水文分析工具的基本原理》的时候已经作了详细的论述,经常使用的有霍顿分级、斯特拉勒分级、施里夫分级、沙依达格分级。经过下图能够重温一下其分级的基本原理
各类分级的方法这里再也不详细论述。ArcGIS河网分级工具中之包含两种分级方法,斯特拉勒分级和施里夫分级,而分析工具中默认使用的是斯特拉勒分级法。
霍顿分级法:2级以上的河流都可以一直延伸到河源,但实际上它们的最上游都只具备1级河流的特征。
斯持拉勒法:不可能像霍顿分级法同样将2级以上河流都一直延伸到河源,于是老是将能经过全流域水量和泥沙量的河流做为水系中最高级的河流的。斯持拉勒法主要不足是不能反映流域内河流级愈高,经过的水量和泥沙量也愈大的事实。
施里夫和沙伊达格分级法:很好弥补了上述分级方法的缺陷,很是适合在数值上进行计算。
下图是使用河流连接的结果数据进行输入,结合流向栅格去作斯持拉勒河网分级
最终的结果是生成了一个三级分级,用红绿蓝三种颜色表示分级结果,以下图所示
ArcGIS的帮助提示说的很是的含糊,在【河流栅格数据】中没有具体说明是那一步骤生成的河流栅格,因此上面的例子就直接使用河网连接后的结果数据。后来笔者思考了一下,由于这个分级工具仍是须要流向栅格,【河流连接】工具也是须要流向栅格做为参数,那是否是意味着这两个工具是个平行的工具,而不是一个顺序的工具。为此笔者还特地作了一个尝试,使用条件函数过滤后的流量数据做为河流参与分析。
使用条件函数过滤后的流量数据做为河流参与分析的结果跟想象中的同样,经过查看图形和两个属性表,发现是彻底一致的。若是使用减法工具,两个栅格结果相减,结果确定就是彻底为nodata了。以下图
使用这个工具还有一些须要注意的地方,若是输入河流栅格数据和输入流向栅格数据是从同一DEM数据获取,则河网分级的输出质量会更高。若是河流栅格数据是从栅格化的河流数据集获取(即河流原来是矢量数据,为了参与分级,先经过工具将矢量河流进行栅格化),则输出可能不可用,由于各像元的流向与河流像元的位置不对应。
对河网分级后的栅格数据进行矢量化,使用【栅格河流矢量化】工具,以下图
其结果更加让人满意,由于除了转化为矢量河流以外,还会自动的建立了河流连接。下图能够经过属性表看到生成的27条河流,跟前面所说的河流连接工具的结果是同样的。
因此,从这个操做中能够获得一个重要的启示。若是要进行河流连接的分析,最好是在【河网分级】以后进行。
GIS对栅格计算的支持远没有对矢量数据的多,因此大多数状况下都须要将栅格数据转换为矢量数据进行分析。虽然ArcGIS提供了栅格转矢量的工具,如【栅格转线】、【栅格转面】等。但做为水文分析的话,在栅格河流转换为矢量河流时,远没有使用【栅格河流矢量化】效果那么好。
从下面这张图能够看出【栅格河流矢量化】的特色
利用分级后的河网能够作什么?最直接的方式就是绘制河流的分级显示图。利用grid_code做为标注显示等级,使用【惟一值渲染】用不一样大小的符号显示河流,这样就能够很直观的反应出河网关系。下图是使用斯持拉勒分级的河网分级图
若是还须要特殊的表达和分析,后期还能够制做河网的逻辑示意图,笔者会在后续的章节中介绍河网的逻辑示意图。
除此以外,还能够经过河网生成河口出水口。这个很是简单,由于矢量河流已经生成好了,并且是带数字化方向的。
数字化方向指的是线图形在生成的时候从起点到终点的方向。
河网中的每一条河流其流向都是与数字化方向相同的。若是使用箭头符号去表示其流向,能够很直观的看出来。以下图设置
而后将河网叠加两次,进行观察,经过其树状结构能够对比数字化方向与流向的关系
正式由于有这一规则,那么就可使用【要素折点转点】工具来捕捉其线段的终点,那这个终点就是河口的位置了。这个工具在【数据管理】--【要素】--【要素折点转点】,执行时点类型选择【end】,以下图所示
这样提取出来的就是河口的位置。这个点在水文分析中又称之为“出水口”或“倾泻点”。以下图所示:
这就是提取流域面的时候一个很是重的参数了。
河流提取与河网分级就软件操做层面是相对简答的,结合ArcGIS其余的一些分析工具,能够计算出更多的水文因子。本章尚未涉及到河网分级后如何进行更多的水文分析,河网分级属于水文分析的前提准备。只有涉及到流量监测(水文学上的流量监测)和洪峰计算时,经过其分级结合数学模型能够去推算洪峰来临时间。
若是读者对水文分析感兴趣的话,能够持续关注CSDN的GIS制图乐园,以及微信公众号【GIS制图乐园】。BY 李远祥