[发明专利]一种流域河网结构的提取及存储方法有效
申请号: | 201811132396.X | 申请日: | 2018-09-27 |
公开(公告)号: | CN109271472B | 公开(公告)日: | 2021-12-31 |
发明(设计)人: | 王志兴;温州;程玉珍;戴春胜;张勇;朱颖斌;卢玉海;王大宇;管功勋;丁昌春;王天祎;于勇军 | 申请(专利权)人: | 黑龙江省水利水电勘测设计研究院 |
主分类号: | G06F16/29 | 分类号: | G06F16/29;G06F16/22 |
代理公司: | 北京凯特来知识产权代理有限公司 11260 | 代理人: | 郑立明;陈亮 |
地址: | 150080 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 流域 河网 结构 提取 存储 方法 | ||
1.一种流域河网结构的提取及存储方法,其特征在于,所述方法包括:
步骤1、对流域栅格流向数据进行首次遍历,基于栅格流向获取与每个栅格单元直接相连的上游紧邻栅格Ui和下游紧邻栅格D,并存储当前栅格的上、下游紧邻栅格信息;其中,Ui表示当前栅格的第i个上游紧邻栅格,单流向河网中下游紧邻栅格有且仅有1个,以D表示;
步骤2、对所述流域栅格流向数据进行第二次遍历,以提取并在分层多叉树内存储流域河网拓扑结构,并在遍历伊始选取流域内任一栅格作为遍历的起始栅格,以之作为待处理的当前栅格C;
步骤3、根据步骤1存储的当前栅格C的下游紧邻栅格信息,定位到当前栅格的下游紧邻栅格D;
步骤4、判断步骤3定位到的下游紧邻栅格D是否位于流域出口,如果不是,则选取该下游紧邻栅格D作为新的当前栅格,并返回步骤3进行迭代处理;如果是,则将流域出口栅格信息存储于分层多叉树的第1层,并选定分层多叉树的第1层作为当前处理层LC,之后进入步骤5;
步骤5、选中当前处理层LC中一个未被处理过的栅格作为当前处理栅格,判断该当前处理栅格是否为源头栅格,如果不是则进入步骤6,如果是则进入步骤7;
步骤6、根据步骤1存储的当前栅格的上游紧邻栅格信息,获取当前栅格的各个上游紧邻栅格Ui,并将各个上游紧邻栅格Ui存储于分层多叉树数据存储结构的下一层LN内,之后进入步骤7;其中,若当前处理层LC的层号为n,则下一层LN的层号为n+1;
步骤7、判断当前处理层LC内的所有栅格是否全部判断完毕,如果不是,则返回步骤5继续处理;如果是,则进入步骤8;
步骤8、判断分层多叉树的下一层LN内是否存在未处理的栅格,如果是则将分层多叉树的下一层LN设为当前处理层,返回步骤5迭代处理;如果不是,则完成流域河网数据的提取及存储。
2.根据权利要求1所述流域河网结构的提取及存储方法,其特征在于,在步骤1中,所述基于栅格流向获取与每个栅格单元直接相连的上游紧邻栅格Ui和下游紧邻栅格D的过程具体为:
基于当前栅格及其周围栅格的流向数据,找到周围相邻栅格中流向指向该栅格的上游紧邻栅格Ui,以及该栅格流向所指向的下游紧邻栅格D。
3.根据权利要求1所述流域河网结构的提取及存储方法,其特征在于,在步骤1中,所述存储当前栅格的上、下游紧邻栅格信息的过程具体为:
以面向对象的程序语言定义栅格单元类,以栅格单元类内的上游紧邻栅格指针数组存储遍历过程搜索到的所有上游紧邻栅格Ui,并以栅格单元类内的下游栅格指针存储当前栅格流向所指向的下游紧邻栅格D。
4.根据权利要求1所述流域河网结构的提取及存储方法,其特征在于,在步骤6中,所述将各个上游紧邻栅格Ui存储于分层多叉树数据存储结构的下一层LN内的过程具体为:
以面向对象的程序语言定义分层多叉树类,以所述分层多叉树类成员函数判断是否存在下一层LN,若已存在LN,则将流向直接指向当前栅格的上游紧邻栅格Ui加入到LN层内,若尚无LN层存在,则以多层分叉树类的成员函数新增一个栅格层,并将流向直接指向当前栅格的上游紧邻栅格Ui加入到LN层内,实现以分层多叉树便捷存储河网结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于黑龙江省水利水电勘测设计研究院,未经黑龙江省水利水电勘测设计研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811132396.X/1.html,转载请声明来源钻瓜专利网。