本章导读:利用 ArcHydro Tools 工具结合矢量河流修正 DEM 数据后,再重新对水文要素进行提取,能够很好的将原有的水文数据与衍生的水文要素有效的结合起来,从而能够更进一步的进行分析和应用。本章基于上一章节提取的河流成果,结合其他的水利要素进行数据模型的构建和分析。BY 李远祥
水利行业中,几乎所有的涉水业务都是沿河流展开。而河流本身是具备流向属性、连通属性,所有的水利事件都离不开河流的上下游关系。
在 ArcGIS 平台下,要更好的使用水利数据来实现分析和应用,可以在 GDB 下去构建 ArcHydro 数据模型。
关于 ArcHydro 本身,不在本章节中进行详细的介绍,它实际上有 ArcHydro Tools 和 ArcHydro Data Model 两部分组成。而 ArcHydro Tools 本身是为 ArcHydro Data Model 的构建提供非常多的基础工具。
下图是 ArcHydro 的结构示意图
ArcHydro 数据模型由水文地理要素集、流域要素集、河槽要素集、几何网络要素集和时间序列对象集五大部分组成。数据模型一般与技术实现关系不是很大,但如果要非常完美的诠释 ArcHydro 数据模型的精髓,那么只能通过 ArcGIS 的 Geodatabase 数据模型以及 ArcGIS 软件结合使用。
ArcHydro 数据模型是一个可伸缩的数据模型,根据现实数据的丰富程度以及功能需求,可以适当的进行删减。但其核心的结构部分则是 ArcGIS 的关系类和几何网络结构。
Geodatabase (简称 GDB)是面向对象的地理数据库,它允许模拟实际的对象进行数据建模。例如河流,在 Geodatabase 里面就是对象要素,水库、堤坝等也属于对象要素范畴。堤坝与河流存在一定的关系,一般描述是某个河段的堤坝,这类似于依附关系就是 GDB 里面的关系类。河流的流向、交汇点以及连通关系,构成了一个可追溯的上下游网络,这就是 GDB 里面的几何网络结构。
关于 ArcHydro 数据模型的构建,一般情况下不会将数据模型中所有的部分都加入到模型当中。例如如果不考虑水情,那就没必要引入时序;没有人工渠道的,也没必要将引水的渠道加进去;至于流域本身,如果不考虑河流对应的流域面上的相关要素,甚至连流域都可以去除;其他的水利要素和地理要素,根据实际的情况适当的加入。唯一不能简化的就河流网络,毕竟河流网络是整个水利数据的核心部分。
将 ArcHydro 数据模型简化,更有利于使用现有的数据来构建最有效的模型,将贴合需求的数据模型快速推向应用。最有效的简化方式是通过 ArcHydro Tools 和测绘河流,重新提取更加全面的带有正确流向河流,并且构建基于河流的几何网络。利用关系类将水利要素与河流建立关联关系,建立水利要素之间的关联关系等。
ArcHydro 中的河流不一定是通过 DEM 重新提取的,如果河流本身的流向没有问题,那么可以直接参与河流几何网络的构建,利用 ArcHydro Tools 去做,只不过是减少整个检查流向的工作量。
水利要素的关联关系,一般是需要熟悉水利行业的从业人员去定义。例如最简单的就是水利要素与河流之间的关联,水位站与水库之间的关系等,这些都是现实时间中的水利要素的关系,只不过在数据模型上需要做一些 IT 技术上的实现而已。
ArcGIS 中的关联关系有两种,一种是空间关联,另一种是属性关联。在 ArcHydro 数据模型中,使用的关系类就是属性关联,需要每一个水利要素都具有一个唯一的 HydroID。这个 ID 字段的名称是可以自定义的,例如河流对象,具有一个名为 ID 的字段,而排污口、水电站等则除了自身的一个 ID 字段之外,还需要增加一个“RiverID” 字段,用于表示他们依附在什么哪个河段上。同理,例如水位站有一个 ID 字段,它还需要一个名为 ReservoirID 的字段去代表他对应的水库。在 ArcHydro 数据模型设计的时候,每一个水利要素的 ID ,就是所谓的 HydroID 。通过这种传统的二维表格的模式,实际上也表现出来水利要素之间的关系,到最后这些关系在 GIS 表达层面上会自动回归到地图的表达。
下面以取水口和河流为例子,建立其关联关系。首先数据上必须具备所谓的 HydroID,以及关联要素的 ID 字段。
通过 ArcMap 在 Geodatabase 中建立他们的关联关系(shapefile格式是不能建立复杂的数据模型的),如下图所示
给关系类名称,并选择源表和目标表。【源】一般为主体对象,例如河流和水库;【目标】一般为依附在主体上的要素,例如取水口和水文站等。并建立起他们的关系。
关系类中有简单(对等)关系和复杂关系。通过界面上的描述可以清晰的知道他们的区别。简单关系说白了就是只建立其联系,而不受主体对象的控制。复杂关系则会使主体对象控制依附对象,例如河流和取水口建立了复杂关系,删除了河流要素,则依附在河流的取水口则会随着河流的删除自动删除掉,而不需要另外操作去删除取水口。复杂关系更加接近实际情况,并能确保数据的完整性和准确性。
接下来是消息传递和对应关系。消息传递可以理解为作用在水利要素的触发事件的传递;对应关系对象之间的关系结构,如一个河段可能存在多个取水口,这就是一对多关系。
再接下来就是关联的绑定,通过要素之间的HydroID 进行实际的关联。如下图,用河流的 ID 字段与取水口的 RiverID 字段进行绑定。
操作完成后,会在 GDB 中出现对应的关系类图标。
而关联之后的结果就是在查找河流的时候,会找到与河流关联的所有水利要素。如下图,使用 ArcMap 的点选工具查看属性,会在属性面板中出现关联的对象,并可以展开查看其属性。
ArcHydro 数据模型大部分的精力都会集中在研究水利要素的关系,而非技术实现上。真正要将数据模型放到实际应用中,必须要非常准确描述各种水利要素的关系。这必须是水文从业人员直接参与到该项工作中。
使用几何网络,可以非常有效的建立起河流的流向、节点和连通关系,并有效的进行河流的上下游追溯。结合水利要素的关联关系,可以在河流追溯的结果上检索出与之关联的水利要素。
在 ArcGIS 中,提供了几何网络数据结构、几何网络分析工具条和工具箱等。
几何网络是整个 ArcHydro 数据模型的核心部分,所有与河流相关的分析都可以基于几何网络进行。
几何网络的创建,河流要素必须存放在 GDB 的 FeatureDataset 中,在创建的时候必须先选择 DataSet 才可以创建。如下图所示
通过向导的方式,可以快速的构建河流的几何网络。
在构建的过程中选择要参与到几何网络中的水利要素
通过简单的几个步骤,就可以创建完成河流的几何网络。
几何网络构建完成后,需要使用工具箱的【设置流向】工具设置河流的流向。如下图所示:
流向的选项有四个,分别是与数字化方向一致、与数字化方向相反、使用源和汇以及重设流向。建议采用第一个选项【与数字化方向一致】。因为通过地形提取的河流其数字化方向就是与流向一致的。
为了验证河流的几何网络是否生成成功,通过【几何网络分析】工具,查看其流向,如果流向均为正确显示,则说明河流的几何网络已经构建成功。如下图所示:
河流的上下游分析都是基于几何网络结构,使用【几何网络分析】工具进行分析。但是,结合 ArcHydro 数据模型,可以赋予上下游分析更多的贴心的功能。以下是上下游分析的几个步骤:
为了方便对其他的水利要素进行查找,在分析之前先设置好分析的环境,将分析出来的结果以“选中”的方式呈现。这样非常便于将分析的结果进行二次分析。
以查找河段下游所有的取水口为例,选择某一河段的某一位置(可以认为该位置检测水质,发现存在一定的异常,需要关闭掉下游影响到的取水口),对该河段的下游进行分析。其步骤如下:
由于将计算的结果以选中的形式展示,在图上可以看到位于该事故点的所有下游的河段均是选中状态,可以在【属性表】中切换到选择的要素进行查看。如下图所示:
切换到选中的河段,并不是为了查看河段的信息,而是利用这些被选择的河流进行二次分析应用。由于整个区域已经建立了简单的 ArcHydro 数据模型,水利要素与河流的关联关系已经建立,在【属性表】的顶部,可以切换到这些被选中的河流他们关联的要素,这就非常方便的通过关系类查找到他们关联的水利要素。如下图,通过河流与取水口的关系类,直接在属性表中进行切换,就可以得到这些下游河段关联的取水口要素了。
通过水文分析衍生出来的水文要素,其最终目的还是回到实际的分析应用中。结合 ArcHydro 数据模型,利用关系类、几何网络结构等,能够快速和便捷的完成一系列水利分析应用。
更多的GIS主流和非主流技术,可以持续关注CSDN的GIS制图乐园,以及微信公众号【GIS制图乐园】。BY 李远祥