地形流域的提取划分方法、装置、电子设备和存储介质转让专利

申请号 : CN202311444079.2

文献号 : CN117171287B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李想王宇翔朱爽郭迎林殷攀赵林波张晓东

申请人 : 航天宏图信息技术股份有限公司

摘要 :

本申请提供了一种地形流域的提取划分方法、装置、电子设备和存储介质,涉及栅格数据处理技术领域,该方法包括:基于进行填洼处理后生成的填洼后的高程数据进行流向处理,得到流向栅格数据;根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格数据;其中,预先配置的下游流量贡献标志用于表征当前像元是否对其下游像元产生流向贡献;根据流向栅格数据和水流累积栅格数据提取出水点,并基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域。本申请避免重复统计,使得流量统计结果更准确;并且可以在没有实测的出水点位置也能完成流域划分。

权利要求 :

1.一种地形流域的提取划分方法,其特征在于,所述方法包括:

基于进行填洼处理后生成的填洼后的高程数据进行流向处理,得到流向栅格数据;

根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格数据;其中,所述预先配置的下游流量贡献标志用于表征当前像元是否对其下游像元产生流向贡献;

根据流向栅格数据和水流累积栅格数据提取目标出水点,并基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域;

根据流向栅格数据和水流累积栅格数据提取目标出水点,包括:

根据预设的流域边长确定滑动窗口边长,对所述水流累积栅格数据进行最大值焦点统计,得到焦点统计结果;将所述焦点统计结果与所述水流累积栅格数据一致的像元确定为初始候选出水点;根据预设流量阈值对所述初始候选出水点进行约束,确定目标候选出水点;将所述目标候选出水点为具有多个流向的出水点,和/或,所述目标候选出水点为栅格边界上向外流的出水点确定为目标出水点。

2.根据权利要求1所述的地形流域的提取划分方法,其特征在于,根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格,包括:初始化一个与流向栅格数据行列数相同的全0矩阵为初始水流累积栅格;

按照预设顺序在所述初始水流累积栅格选择像元,并基于选择的当前像元的初始流量值确定支流起点;

初始化所述支流起点所对应的预先配置的下游流量贡献标志为第一标识,并初始化当前像元的流量值;

对于每个支流,根据所述流向栅格数据确定当前支流所对应的当前像元的下游像元;

基于所述下游流量贡献标志进行下游像元的交汇点判断,如果所述下游像元为交汇点,则不产生新的水流流量贡献,如果所述下游像元为非交汇点,则依次按照水流流向对下游像元进行水流流量累计,直至当前支流结束。

3.根据权利要求2所述的地形流域的提取划分方法,其特征在于,基于所述下游流量贡献标志进行下游像元的交汇点判断,包括:当所述支流为首次计算的第一支流时,所述第一支流中不存在交汇点;

当所述支流为非首次计算的第二支流时,根据所述第二支流中当前像元的下游像元的水流流量累计值进行下游像元的交汇点判断,如果所述水流流量累计值非0和/或所述水流流量累计值为累计后的流量值,则确定所述下游像元为交汇点。

4.根据权利要求3所述的地形流域的提取划分方法,其特征在于,所述方法还包括:判断支流已累积像元集合中是否存在当前支流中当前像元的下游像元;

若存在,则确定当前支流形成环流,停止对当前支流进行水流累计。

5.根据权利要求1所述的地形流域的提取划分方法,其特征在于,基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域,包括:初始化一个与流向栅格尺寸相同的初始流域栅格数据;

基于所述目标出水点进行流向溯源,遍历所有的出水点直至溯源完成,将目标汇入同一出水点的栅格像元划分为同属一个地形流域。

6.根据权利要求1所述的地形流域的提取划分方法,其特征在于,所述方法还包括:基于预设阈值对所述水流累积栅格进行二值化和矢量处理,生成水网;

基于所述水网和所述地形流域进行流域分析,以确定所述地形流域上的水流状态。

7.一种地形流域的提取划分装置,其特征在于,所述装置包括:

流向处理模块,用于基于进行填洼处理后生成的填洼后的高程数据进行流向处理,得到流向栅格数据;

水流累计处理模块,用于根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格数据;其中,所述预先配置的下游流量贡献标志用于表征当前像元是否对其下游像元产生流向贡献;

流域划分模块,用于根据流向栅格数据和水流累积栅格数据提取出水点,并基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域;

所述流域划分模块,还用于根据预设的流域边长确定滑动窗口边长,对所述水流累积栅格数据进行最大值焦点统计,得到焦点统计结果;将所述焦点统计结果与所述水流累积栅格数据一致的像元确定为初始候选出水点;根据预设流量阈值对所述初始候选出水点进行约束,确定目标候选出水点;将所述目标候选出水点为具有多个流向的出水点,和/或,所述目标候选出水点为栅格边界上向外流的出水点确定为目标出水点。

8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至6任一项所述的地形流域的提取划分方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至6任一项所述的地形流域的提取划分方法。

说明书 :

地形流域的提取划分方法、装置、电子设备和存储介质

技术领域

[0001] 本申请涉及栅格数据处理技术领域,尤其是涉及一种地形流域的提取划分方法、装置、电子设备和存储介质。

背景技术

[0002] 流域分析需要根据高程数据生产填洼数据、流向栅格数据、水流累积栅格数据三种数据进行分析。相关技术中,在进行水流累计栅格数据生产时,现有的算法主要有两种:1)汇流累积矩阵法:除流向矩阵外还需借助汇入数矩阵,在迭代时对汇入数矩阵多次遍历有大量无效搜索使算法处理效率降低,因此该方法不适用数据量较大的情况,计算效率较低;2)直接计算法:不需要借助流向矩阵以外的数据,直接以每一像元为支流起点寻找下游所有点进行汇流量计算。然而,用于生成汇水区的出水点数据一般都是实测数据直接引入计算,但在没有实测数据的情况下难以生成汇水区(流域)。

发明内容

[0003] 本申请的目的在于提供一种地形流域的提取划分方法、装置、电子设备和存储介质,通过引入当前像元是否对其下游产生新的流量贡献标志,交汇点之后的下游所有像元不再对其下游产生新的流量贡献,下游所有像元只累积交汇点之前的流量值,该标志的引入及时停止流量增加,避免重复统计,使得流量统计结果更准确;无需其他新数据的情况下,直接从高程数据及处理其得出的流向及水流累积栅格中提取出水点,使得没有实测的出水点位置也能完成流域划分。
[0004] 第一方面,本发明提供一种地形流域的提取划分方法,方法包括:基于进行填洼处理后生成的填洼后的高程数据进行流向处理,得到流向栅格数据;根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格数据;其中,预先配置的下游流量贡献标志用于表征当前像元是否对其下游像元产生流向贡献;根据流向栅格数据和水流累积栅格数据提取出水点,并基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域。
[0005] 在可选的实施方式中,根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格,包括:初始化一个与流向栅格数据行列数相同的全0矩阵为初始水流累积栅格;按照预设顺序在初始水流累积栅格选择像元,并基于选择的当前像元的初始流量值确定支流起点;初始化支流起点所对应的预先配置的下游流量贡献标志为第一标识,并初始化当前像元的流量值;对于每个支流,根据流向栅格数据确定当前支流所对应的当前像元的下游像元;基于下游流量贡献标志进行下游像元的交汇点判断,如果下游像元为交汇点,则不产生新的水流流量贡献,如果下游像元为非交汇点,则依次按照水流流向对下游像元进行水流流量累计,直至当前支流结束。
[0006] 在可选的实施方式中,基于下游流量贡献标志进行下游像元的交汇点判断,包括:当支流为首次计算的第一支流时,第一支流中不存在交汇点;当支流为非首次计算的第二支流时,根据第二支流中当前像元的下游像元的水流流量累计值进行下游像元的交汇点判断,如果水流流量累计值非0和/或水流流量累计值为累计后的流量值,则确定下游像元为交汇点。
[0007] 在可选的实施方式中,方法还包括:判断支流已累积像元集合中是否存在当前支流中当前像元的下游像元;若存在,则确定当前支流形成环流,停止对当前支流进行水流累计。
[0008] 在可选的实施方式中,根据流向栅格数据和水流累积栅格数据提取目标出水点,包括:根据预设的流域边长确定滑动窗口边长,对水流累积栅格数据进行最大值焦点统计,得到焦点统计结果;将焦点统计结果与水流累积栅格数据一致的像元确定为初始候选出水点;根据预设流量阈值对初始候选出水点进行约束,确定目标候选出水点;将目标候选出水点为具有多个流向的出水点,和/或,目标候选出水点为栅格边界上向外流的出水点确定为目标出水点。
[0009] 在可选的实施方式中,基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域,包括:初始化一个与流向栅格尺寸相同的初始流域栅格数据;基于目标出水点进行流向溯源,遍历所有的出水点直至溯源完成,将目标汇入同一出水点的栅格像元划分为同属一个地形流域。
[0010] 在可选的实施方式中,方法还包括:基于预设阈值对水流累积栅格进行二值化和矢量处理,生成水网;基于水网和地形流域进行流域分析,以确定地形流域上的水流状态。
[0011] 第二方面,本发明提供一种地形流域的提取划分装置,装置包括:流向处理模块,用于基于进行填洼处理后生成的填洼后的高程数据进行流向处理,得到流向栅格数据;水流累计处理模块,用于根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格数据;其中,预先配置的下游流量贡献标志用于表征当前像元是否对其下游像元产生流向贡献;流域划分模块,用于根据流向栅格数据和水流累积栅格数据提取出水点,并基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域。
[0012] 第三方面,本发明提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现前述实施方式任一项的地形流域的提取划分方法。
[0013] 第四方面,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现前述实施方式任一项的地形流域的提取划分方法。
[0014] 本申请提供的地形流域的提取划分方法、装置、电子设备和存储介质,在进行水流累计栅格数据计算时,引入当前像元是否对其下游产生新的下游流量贡献标志,通过该下游流量贡献标志进行水流流量累计,针对交汇点之后的下游所有像元不再对其下游产生新的流量贡献,下游所有像元只累积交汇点之前的流量值,该标志的引入及时停止流量增加,避免重复统计,使得流量统计结果更准确。

附图说明

[0015] 为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016] 图1为本申请实施例提供的一种地形流域的提取划分方法的流程图;
[0017] 图2为本申请实施例提供的一种流向栅格示意图;
[0018] 图3为本申请实施例提供的一种具体的水流累计栅格生产流程示意图;
[0019] 图4为本申请实施例提供的一种第一条支流水流累积示意图;
[0020] 图5为本申请实施例提供的一种第二条支流水流累积示意图;
[0021] 图6为本申请实施例提供的一种水流累积栅格示意图;
[0022] 图7为本申请实施例提供的一种出水点提取的流程图;
[0023] 图8为本申请实施例提供的一种流域划分的流程图;
[0024] 图9为本申请实施例提供的一种地形流域的提取划分装置的结构图;
[0025] 图10为本申请实施例提供的一种电子设备的结构图。

具体实施方式

[0026] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0027] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0028] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0029] 本申请实施例提供了一种地形流域的提取划分方法,参见图1所示,该方法主要包括以下步骤S110至步骤S130:
[0030] 步骤S110,基于进行填洼处理后生成的填洼后的高程数据进行流向处理,得到流向栅格数据;
[0031] 步骤S120,根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格数据;其中,预先配置的下游流量贡献标志用于表征当前像元是否对其下游像元产生流向贡献;
[0032] 步骤S130,根据流向栅格数据和水流累积栅格数据提取出水点,并基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域。
[0033] 以下针对本申请实施例提供的地形流域的提取划分方法的具体实施进行详细说明。
[0034] 在前述步骤S110之前,可以预先生产填洼栅格数据。在一种实施方式中,可以首先获取高程栅格和填洼限制值,通过遍历所有高程栅格,将其中的中心栅格与邻域栅格的高程值之差最大值小于零且绝对值小于填洼限制值的中心栅格确定为洼地,将中心栅格与邻域栅格的高程值之差最大值所在栅格的值赋给中心栅格,得到填洼后的高程数据。
[0035] 在得到填洼处理后生成的填洼后的高程数据之后,上述步骤S110在具体实施时,可以使用D8算法,将像元最大下降处确定为水流方向。例如,水流方向可以表示为:向右为1,右下2,下4,左下8,左16,左上32,上64,右上128。若一个像元具有多个流向其流向值为多个流向之和,例如像元流向右和右下则其流向为1+2=3。多流向像元无法直接应用到水流累积栅格计算中,可查看当前像元每一流向的下游像元的流向,以下游像元的流向不流回当前像元的流向为实际流向。
[0036] 进一步,上述步骤S120在根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格的具体实施时,可以包括以下步骤:
[0037] 步骤1,初始化一个与流向栅格数据行列数相同的全0矩阵为初始水流累积栅格;
[0038] 步骤2,按照预设顺序在初始水流累积栅格选择像元,并基于选择的当前像元的初始流量值确定支流起点;
[0039] 步骤3,初始化支流起点所对应的预先配置的下游流量贡献标志为第一标识,并初始化当前像元的流量值;
[0040] 步骤4,对于每个支流,根据流向栅格数据确定当前支流所对应的当前像元的下游像元;
[0041] 步骤5,基于下游流量贡献标志进行下游像元的交汇点判断,如果下游像元为交汇点,则不产生新的水流流量贡献,如果下游像元为非交汇点,则依次按照水流流向对下游像元进行水流流量累计,直至当前支流结束。
[0042] 在一种实施方式中,基于下游流量贡献标志进行下游像元的交汇点判断,包括:
[0043] 当支流为首次计算的第一支流时,第一支流中不存在交汇点;
[0044] 当支流为非首次计算的第二支流时,根据第二支流中当前像元的下游像元的水流流量累计值进行下游像元的交汇点判断,如果水流流量累计值非0和/或水流流量累计值为累计后的流量值,则确定下游像元为交汇点。
[0045] 在可选的实施方式中,方法还包括:
[0046] 判断支流已累积像元集合中是否存在当前支流中当前像元的下游像元;
[0047] 若存在,则确定当前支流形成环流,停止对当前支流进行水流累计。
[0048] 为便于理解,首先参见图2所示的流向栅格示意图,其中流向示意图用于表示整体栅格数据中每个像元所对应的流向方向指示,流向栅格数据用于通过数据进行流向表征。
[0049] 进一步,在进行水流累计栅格生产时,可以根据流向栅格,将汇入下游像元的其他栅格的水流累计量赋予该下游像元,通过改进递归算法计算累积流量。图3示出了一种具体的水流累积栅格生产流程:
[0050] (1)初始化一个与流向栅格行列数相同的全0矩阵为水流累积栅格初始栅格;
[0051] (2)按栅格存储顺序取像元。若当前像元流量值为0,认为其是一个支流的起点g0,进入步骤(3),否则按照栅格存储顺序处理下一栅格。
[0052] (3)初始化当前像元是否对其下游产生新的流量贡献标志flag为true,初始化流量值value为0,定义一个存储当前像元为起点的支流已累积像元的集合Grids,该集合也即支流已累积像元集合。此时开始计算新支流水流累积,令g1=g0。
[0053] (4)将当前像元g1(row,col)放入Grids,提取当前像元对应的流向,根据流向确定下游像元:
[0054] ① 流向为1,下游像元为右侧像元,即g2(row,col+1),若g2坐标超出流向数据栅格矩阵范围,返回(2)处理下一个支流;
[0055] ② 流向为2,下游像元为右下像元,即g2(row+1,col+1),后续同上;
[0056] ③ 流向为4,下游像元为下方像元,即g2(row+1,col),后续同上;
[0057] ④ 流向为8,下游像元为左下像元,即g2(row+1,col‑1),后续同上;
[0058] ⑤ 流向为16,下游像元为左侧像元,即g2(row,col‑1),后续同上;
[0059] ⑥ 流向为32,下游像元为左上像元,即g2(row‑1,col‑1),后续同上;
[0060] ⑦ 流向为64,下游像元为上方像元,即g2(row‑1,col),后续同上;
[0061] ⑧ 流向为128,下游像元为右上方像元,即g2(row‑1,col+1),后续同上;
[0062] ⑨ 其他情况直接返回(2)处理下一支流。
[0063] (5)判断Grids是否包含下游像元,不包含继续步骤(6);若包含代表当前支流形成环流不需要再累积新的贡献,返回(2)处理下一个支流。
[0064] (6)如果flag为真,value=value+1,g2流量不为0,代表g2为交汇点,且已被其他支流累积过流量,其自身对其下游像元的流量贡献已被累积,不再对其下游产生新贡献,flag置为false,g2流量=g2流量+value;若flag为假,当前像元为交汇点对其下游不产生新的流量贡献,g2流量=g2流量+value。
[0065] (7)令g1=g2,重复(4)‑(6)步骤,递归计算下游点的累积流量。
[0066] (8)直到所有像元都作为支流起点被统计过,输出水流累积栅格。
[0067] 根据前述图2所示的水流流向数据,以第一条支流和第二条支流为例具体的累积过程见图4‑图5。图4为第一条支流的累积过程,其不涉及交汇点,每一栅格都对其下游产生流量贡献,当g2点坐标超出流量矩阵范围(如图4.e),转到图5进行下一条支流流量累积,方法与第一条支流相似,但涉及交汇点流量计算(如图5.d)。最终的水流累积栅格参见图6所示。
[0068] 上述水流累计栅格数据生产过程的方式,在不考虑环流的情况下,当出现某支流最终流向支流起点或已累积像元的情况,就会造成流量累积无法停止,陷入死循环,本实施例中流量累积栅格生产时,引入存储像元为起点的支流已累积像元的集合,通过判断下游栅格是否在之前遍历过,若遍历过就不再寻找下游,避免产生死循环和重复计算。
[0069] 并且,如果交汇点下游的像元若已经过流量统计,当另一支流汇入该交汇点后的水流路径已被累积,引入当前像元是否对其下游产生新的流量贡献标志,交汇点之后的下游所有像元不再对其下游产生新的流量贡献,下游所有像元只累积交汇点之前的流量值,该标志的引入及时停止流量增加,避免重复统计,使得流量统计结果更准确。
[0070] 在进行水流累计栅格数据确定之后,为了便于对后续的流域分析进行更清晰的展示,在一种实施方式中,可以对水流累积栅格采用某阈值进行二值化,再导出成矢量,便能生成水网。进而基于水网和地形流域进行流域分析,以确定地形流域上的水流状态。
[0071] 进一步,上述步骤S130根据流向栅格数据和水流累积栅格数据提取目标出水点,在具体实施时,可以包括以下步骤2.1)至步骤2.4):
[0072] 步骤2.1),根据预设的流域边长确定滑动窗口边长,对水流累积栅格数据进行最大值焦点统计,得到焦点统计结果;
[0073] 步骤2.2),将焦点统计结果与水流累积栅格数据一致的像元确定为初始候选出水点;
[0074] 步骤2.3),根据预设流量阈值对初始候选出水点进行约束,确定目标候选出水点;
[0075] 步骤2.4),将目标候选出水点为具有多个流向的出水点,和/或,目标候选出水点为栅格边界上向外流的出水点确定为目标出水点。
[0076] 在一种具体的实施方式中,一个流域的水将从出水点流出,由此可推断出水点水流累积量较大,且一般是多个支流的交汇点。一般会根据流域的大小及流量阈值确定出水口。参见图7所示,具体流程如下:
[0077] (1)以流域边长为滑动窗口边长,对水流累积栅格进行最大值焦点统计;
[0078] (2)焦点统计结果与原始水流累积栅格做差,值为0的为候选出水点;
[0079] (3)筛选出(2)中候选点中流量大于阈值的点为候选出水点;
[0080] (4)结合流向栅格,找出(3)中具有多个流向的点为候选出水点;
[0081] (5)根据流向矩阵找出栅格边界中向外流的点为候选出水点;
[0082] (6)将满足(4)和/或(5)的候选出水点确定为目标出水点。
[0083] 进一步,在进行流域划分时,基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域,具体实施手段可以包括以下步骤:
[0084] 步骤3.1),初始化一个与流向栅格尺寸相同的初始流域栅格数据;
[0085] 步骤3.2),基于目标出水点进行流向溯源,遍历所有的出水点直至溯源完成,将目标汇入一出水点的栅格像元划分为同属一个地形流域。
[0086] 流向同一出水点的栅格被划分到同一流域,采用出水点溯源的办法找出所有出水点对应汇入的像元,流程如图8,具体算法实现方法如下:
[0087] (1)初始化一个流向栅格大小的全0矩阵为流域初始栅格数据;
[0088] (2)从出水点数据集中获取一个出水点开始寻找一个流域,流域标志数字为value(非0正整数,每个流域数值不同);
[0089] (3)建立下一层需要溯源的像元集合Grids1,在本层溯源像元集Grids0种进行遍历:
[0090] 1)设当前遍历像元为p1(row,col):
[0091] 2)右侧的像元p2(row,col+1)的流向为16,且其流域标志为0,将p2放入Grids1,p2的流域像元值设为value。
[0092] 3)右下像元p3(row+1,col+1)的流向为32,且其流域标志为0,将p3放入Grids1,p3的流域像元值设为value。
[0093] 4)下方像元p4(row+1,col)的流向为64,且其流域标志为0,将p4放入Grids1,p4的流域像元值设为value。
[0094] 5)左下像元p5(row+1,col‑1)的流向为128,且其流域标志为0,将p5放入Grids1,p5的流域像元值设为value。
[0095] 6)左侧像元p6(row,col‑1)流向为1,且其流域标志为0,将p6放入Grids1,p6的流域像元值设为value。
[0096] 7)左上像元p7(row‑1,col‑1)流向为2,且其流域标志为0,将p7放入Grids1,p7的流域像元值设为value。
[0097] 8)上方像元p8(row‑1,col)流向为4,且其流域标志为0,将p8放入Grids1,p8的流域栅格值设为value。
[0098] 9)右上方栅格g2(row‑1,col+1)流向为8,且其流域标志为0,将p9放入Grids1,p9的流域像元值设为value。
[0099] (4)Grids1不为空,返回(3)本层溯源栅格集Grid0的数据成为Grids1;Grids1为空,返回(2)对下一出水点进行溯源标记下一流域。
[0100] 直至遍历完所有出水口完成溯源为止,输出流域划分栅格。
[0101] 综上,根据出水点流量较大、有多条汇流等特点,在不需要其他新数据的情况下,直接从高程数据及处理其得出的流向及水流累积栅格中提取出水点,使得没有实测的出水点位置也能完成流域划分,解决了现有技术中需要实测数据才可进行汇水区划分的技术问题。
[0102] 基于上述方法实施例,本申请实施例还提供一种地形流域的提取划分装置,参见图9所示,该装置包括以下部分:
[0103] 流向处理模块910,用于基于进行填洼处理后生成的填洼后的高程数据进行流向处理,得到流向栅格数据;
[0104] 水流累计处理模块920,用于根据流向栅格数据和预先配置的下游流量贡献标志对每个支流进行水流累计处理,得到水流累计栅格数据;其中,预先配置的下游流量贡献标志用于表征当前像元是否对其下游像元产生流向贡献;
[0105] 流域划分模块930,用于根据流向栅格数据和水流累积栅格数据提取出水点,并基于出水点溯源将目标汇入同一出水点的栅格像元划分为同属一个地形流域。
[0106] 在可选的实施方式中,上述水流累计处理模块920,还用于:
[0107] 初始化一个与流向栅格数据行列数相同的全0矩阵为初始水流累积栅格;
[0108] 按照预设顺序在初始水流累积栅格选择像元,并基于选择的当前像元的初始流量值确定支流起点;
[0109] 初始化支流起点所对应的预先配置的下游流量贡献标志为第一标识,并初始化当前像元的流量值;
[0110] 对于每个支流,根据流向栅格数据确定当前支流所对应的当前像元的下游像元;
[0111] 基于下游流量贡献标志进行下游像元的交汇点判断,如果下游像元为交汇点,则不产生新的水流流量贡献,如果下游像元为非交汇点,则依次按照水流流向对下游像元进行水流流量累计,直至当前支流结束。
[0112] 在可选的实施方式中,上述水流累计处理模块920,还用于:
[0113] 当支流为首次计算的第一支流时,第一支流中不存在交汇点;
[0114] 当支流为非首次计算的第二支流时,根据第二支流中当前像元的下游像元的水流流量累计值进行下游像元的交汇点判断,如果水流流量累计值非0和/或水流流量累计值为累计后的流量值,则确定下游像元为交汇点。
[0115] 在可选的实施方式中,上述装置还包括,下游像元判断模块,用于:
[0116] 判断支流已累积像元集合中是否存在当前支流中当前像元的下游像元;
[0117] 若存在,则确定当前支流形成环流,停止对当前支流进行水流累计。
[0118] 在可选的实施方式中,上述流域划分模块930,还用于:
[0119] 根据预设的流域边长确定滑动窗口边长,对水流累积栅格数据进行最大值焦点统计,得到焦点统计结果;
[0120] 将焦点统计结果与水流累积栅格数据一致的像元确定为初始候选出水点;
[0121] 根据预设流量阈值对初始候选出水点进行约束,确定目标候选出水点;
[0122] 将目标候选出水点为具有多个流向的出水点,和/或,目标候选出水点为栅格边界上向外流的出水点确定为目标出水点。
[0123] 在可选的实施方式中,上述流域划分模块930,还用于:
[0124] 初始化一个与流向栅格尺寸相同的初始流域栅格数据;
[0125] 基于目标出水点进行流向溯源,遍历所有的出水点直至溯源完成,将目标汇入同一出水点的栅格像元划分为同属一个地形流域。
[0126] 在可选的实施方式中,上述装置还包括,流域分析模块,用于:
[0127] 基于预设阈值对水流累积栅格进行二值化和矢量处理,生成水网;
[0128] 基于水网和地形流域进行流域分析,以确定地形流域上的水流状态。
[0129] 本申请实施例提供的地形流域的提取划分装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,地形流域的提取划分装置的实施例部分未提及之处,可参考前述地形流域的提取划分方法实施例中相应内容。
[0130] 本申请实施例还提供了一种电子设备,如图10所示,为该电子设备的结构示意图,其中,该电子设备包括处理器101和存储器100,该存储器100存储有能够被该处理器101执行的计算机可执行指令,该处理器101执行该计算机可执行指令以实现上述任一项地形流域的提取划分方法。
[0131] 在图10示出的实施方式中,该电子设备还包括总线102和通信接口103,其中,处理器101、通信接口103和存储器100通过总线102连接。
[0132] 其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry  Standard 
Architecture,扩展工业标准结构)总线等。所述总线102可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0133] 处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器
101读取存储器中的信息,结合其硬件完成前述实施例的地形流域的提取划分方法的步骤。
[0134] 本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述地形流域的提取划分方法,具体实现可参见前述方法实施例,在此不再赘述。
[0135] 本申请实施例所提供的地形流域的提取划分方法、装置、电子设备和存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0136] 除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
[0137] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0138] 在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0139] 最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。