CN112612784B - 河水流域计算单元自动划分方法、装置和计算机设备 - Google Patents
河水流域计算单元自动划分方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN112612784B CN112612784B CN202011238116.0A CN202011238116A CN112612784B CN 112612784 B CN112612784 B CN 112612784B CN 202011238116 A CN202011238116 A CN 202011238116A CN 112612784 B CN112612784 B CN 112612784B
- Authority
- CN
- China
- Prior art keywords
- river basin
- river
- computing unit
- basin
- outlet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013507 mapping Methods 0.000 claims description 32
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 238000011144 upstream manufacturing Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 20
- 238000000638 solvent extraction Methods 0.000 claims description 13
- 101000781939 Homo sapiens WSC domain-containing protein 1 Proteins 0.000 description 22
- 102100036579 WSC domain-containing protein 1 Human genes 0.000 description 22
- 101000781608 Homo sapiens WSC domain-containing protein 2 Proteins 0.000 description 20
- 102100036847 WSC domain-containing protein 2 Human genes 0.000 description 20
- 238000012545 processing Methods 0.000 description 19
- 230000001174 ascending effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/26—Government or public services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Primary Health Care (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种河水流域计算单元自动划分方法、装置、计算机设备和存储介质。所述方法包括:通过获取到的河水流域信息得到的河水流域计算单元划分标准及计算单元划分标准的优先级,对河水流域信息进行遍历,将每条河水流域划分到其对应的计算单元中,最终实现对河水流域的自动划分,达到提高划分河水流域的准确性和高效性的目的。
Description
技术领域
本申请涉及水文学技术领域,特别是涉及一种河水流域计算单元自动划分方法、装置、计算机设备和存储介质。
背景技术
随着水文学技术的发展,出现了水文建模技术,即根据河水流域划分计算单元的技术,该划分的准确性会直接影响计算效率的高低,而且针对台风影响大范围区域洪水建模,根据统一规则自动划分计算单元,可避免人为操作上的划分误差,节省大量返工手续,提升水文建模的效率。
但是由于河水流域拓扑结构的复杂性,局部区域的计算单元划分一般通过人工划分,这样会降低划分的准确性和高效性。
发明内容
基于此,有必要针对上述技术问题,提供一种能够划分河水流域的河水流域计算单元自动划分方法、装置、计算机设备和存储介质。
一种河水流域计算单元自动划分方法,所述方法包括:
获取河水流域编号及对应的河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识;
获取计算单元划分标准及所述计算单元划分标准的优先级;
按照计算单元划分标准及所述计算单元划分标准的优先级,对所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
在其中一个实施例中,所述方法还包括:
根据河水流域编号和所述河水流域信息,构建所述河水流域编号与所述河水流域信息的映射关系,并记录在第一哈希表里。
在其中一个实施例中,所述方法还包括:
根据所述河水流域出口编号,构建所述河水流域出口编号与所述河水流域编号的映射关系,并记录在第二哈希表里。
在其中一个实施例中,计算单元划分标准包括:
是否属于海岸线;
是否属于同一所述河水流域出口编号对应的河水流域出口节点;
是否属于水库;
所述计算单元面积总和是否在指定范围内;
所述计算单元划分标准的优先级包括:
第一优先级:是否属于海岸线;
第二优先级:是否属于同一所述河水流域出口编号对应的河水流域出口节点;
第三优先级:是否属于水库;
第四优先级:所述计算单元面积总和是否在指定范围内。
在其中一个实施例中,对所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号包括:
根据广度优先遍历算法,按照所述计算单元划分标准的优先级由高到低的顺序,对所有所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
在其中一个实施例中,所述根据广度优先遍历算法,按照所述计算单元划分标准的优先级由高到低的顺序,对所有所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号,包括:
针对每一条河水流域,获取所述河水流域分类码标识,根据所述河水流域分类码标识确定是否属于海岸线,若是,则按海岸线单独划分,并存储至对应计算单元中;若不是,再根据所述河水流域分类码标识确定是否属于水库,若是,则按水库单独划分,并存储至对应计算单元中;若不属于水库,则获取河水流域出口编号,将所述河水流域的河水流域编号划分至与所述河水流域出口编号对应的计算单元集群;
针对每一个河水流域出口编号,从所述河水流域出口编号对应的第一个河水流域开始遍历,并判断所述第一个河水流域面是否达到面积阈值,如果没达到,则继续按顺序遍历所述河水流域的上游河水流域集合和下游河水流域集合,并将被遍历过的河水流域面积依次累加进第一个河水流域所在的计算单元中,直到所述计算单元面积达到所述面积阈值;
当所述计算单元面积达到面积阈值,则将遍历的所述河水流域编号所对应的河水流域信息存储至所述河水流域出口编号对应的计算单元集群中的同一计算单元。
在其中一个实施例中,所述广度优先遍历算法的遍历过程包括:
对于同一所述河水流域出口编号的多个河水流域,如果其中一个已经被划分到计算单元中,其他河水流域则被划分到相同计算单元中。
一种河水流域计算单元自动划分装置,所述装置包括:
第一获取模块,用于获取河水流域编号及对应的河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识;
第二获取模块,用于获取计算单元划分标准及所述计算单元划分标准的优先级;
划分模块,用于按照计算单元划分标准及所述计算单元划分标准的优先级,对所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取河水流域编号及对应的河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识;
获取计算单元划分标准及所述计算单元划分标准的优先级;
按照计算单元划分标准及所述计算单元划分标准的优先级,对所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取河水流域编号及对应的河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识;
获取计算单元划分标准及所述计算单元划分标准的优先级;
按照计算单元划分标准及所述计算单元划分标准的优先级,对所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
上述河水流域计算单元自动划分方法、装置、计算机设备和存储介质,通过获取到的河水流域信息得到的河水流域计算单元划分标准及计算单元划分标准的优先级,对河水流域信息进行遍历,将每条河水流域划分到其对应的计算单元中,最终实现对河水流域的自动划分,达到提高划分河水流域的准确性和高效性的目的。
附图说明
图1为一个实施例中河水流域计算单元自动划分方法的应用环境图;
图2为一个实施例中河水流域计算单元自动划分方法的流程示意图;
图3为一个实施例中河水流域计算单元自动划分广度优先算法示意图;
图4为另一个实施例中河水流域计算单元自动划分方法的流程示意图;
图5为一个实施例中河水流域计算单元自动划分装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的河水流域计算单元自动划分方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行交互,对河水流域信息进行数据处理,实现自动划分。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种河水流域计算单元自动划分方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,获取河水流域编号及对应的河水流域信息;该河水流域信息包括:河水流域的上游入口编号、河水流域的下游出口编号、河水流域出口编号、河水流域的流域面积和河水流域分类码标识。
具体地,首先获取河水流域编号及对应的河水流域信息,该河水流域信息用于为后续自动划分河水流域提供信息支撑,每条河水流域信息中包含该河水流域的上游入口编号、下游出口编号、河水流域出口的编号、该河水流域的面积以及河水流域的分类码标识。其中,河水流域上游入口编号用于表征流入所述河水流域的河水流域,河水流域下游出口编号用于表征所述河水流域流出的河水流域,所述的编号用于唯一标识对应河水流域,编号形式可以为字母与数字的组合形式,例如,河水流域上游入口编号可以是:WHF6200114000000,其中字母和数字的组合可以是根据河水流域信息自行定义,编号形式包含但不限于示例形式。河水流域出口的编号,作为河水流域出口的唯一标识,一个河水流域出口编号可对应多条河水流域,河水流域出口编号的形式同样为字母与数字的组合形式,例如河水流域出口编号可以是:QMA0000A04B00000,编号形式包含但不限于示例形式;河水流域面积也是自动划分河水流域的一个参数,用于计算计算单元中河水流域的面积总和;河水流域分类码标识用于判断河水流域是否是海岸线,或者河水流域是否是水库。
步骤204,获取计算单元划分标准及计算单元划分标准的优先级。
具体地,在实现自动划分河水流域的时候,需要依据计算单元的划分标准,并按照划分标准的优先级由高到低依次对河水流域进行划分,因此参考手动划分的历史经验,对计算单元划分标准及计算单元划分标准的优先级进行获取。如果在按照优先级划分时出现了矛盾,那么优先选择优先级较高的划分标准对河水流域进行划分,例如,如果在划分过程中,第二优先级和第四优先级不能同时满足,满足了第四优先级的内容就会不满足第二优先级的内容,满足了第二优先级的内容就会不满足第四优先级的内容,那么选择第二优先级的划分标准进行划分,无需再去考虑第四优先级。
步骤206,按照计算单元划分标准及计算单元划分标准的优先级,对河水流域信息进行遍历处理,确定属于同一计算单元的河水流域编号。
具体地,在实现自动划分河水流域的时候,需要依据计算单元的划分标准,并按照划分标准的优先级由高到低依次对河水流域进行划分,需要对河水流域信息进行遍历处理,即每条河水流域都要从最高的优先级开始进行判断,并根据该最高优先级对应的划分标准,进行第一次划分,在经过第一次划分之后,再按照次优先级对应的划分标准再次进行划分,以此类推,直到进行完最后一次划分,该河水流域则被划分到其对应的计算单元中,确定了属于同一计算单元的河水流域编号完成对该河水流域的自动划分,其他河水流域同样依照该规则进行遍历处理,依次划分,最终实现对所有河水流域的自动划分。
上述河水流域计算单元自动划分方法中,通过获取到的河水流域信息得到的河水流域计算单元划分标准及计算单元划分标准的优先级,对河水流域信息进行遍历,将每条河水流域划分到其对应的计算单元中,最终实现对河水流域的自动划分,达到提高划分河水流域的准确性和高效性的目的。
在一个实施例中,河水流域计算单元自动划分方法还包括:
根据河水流域编号和河水流域信息,构建河水流域编号与河水流域信息的映射关系,并记录在第一哈希表里。
其中,哈希表是根据关键码值(键值)而直接进行访问的数据结构。也就是说,它通过键值及其映射的内容,可以对表中一个位置的信息来访问记录,以加快查找的速度。
具体地,由于在遍历河水流域实现对河水流域的自动划分时,需要根据河水流域编号,对河水流域信息进行查询调用,因此,建立了可以表征河水流域编号与河水流域信息的映射关系的第一哈希表,其中河水流域编号作为该哈希表的键值,河水流域编号对应的河水流域信息作为该键值对应的列表中的值。第一哈希表的建立使得在查询河水流域信息时效率更高。
在一个实施例中,河水流域计算单元自动划分方法还包括:
根据河水流域出口编号,构建河水流域出口编号与河水流域编号的映射关系,并记录在第二哈希表里。
具体地,由于在划分河水流域的时候,需要依据河水流域出口编号进行相应划分,因此需要知道河水流域编号以及该编号对应的河水流域编号,所以建立了可以表征河水流域出口编号与河水流域编号的映射关系的第二哈希表,其中河水流域出口编号作为该哈希表的键值,河水流域编号作为该键值对应的列表中的值,即可以通过河水流域出口编号,查询到该编号对应的河水流域编号,也就是说,可以知道该河水流域出口编号对应包含哪些河水流域。第二哈希表的建立使得在查询调用同一河水流域出口编号对应哪些河水流域编号时的效率更高。
在一个实施例中,计算单元划分标准包括:
是否属于海岸线;
是否属于同一所述河水流域出口编号对应的河水流域出口节点;
是否属于水库;
计算单元面积总和是否在指定范围内;
计算单元划分标准的优先级包括:
第一优先级:是否属于海岸线;
第二优先级:是否属于同一所述河水流域出口编号对应的河水流域出口节点;
第三优先级:是否属于水库;
第四优先级:所述计算单元面积总和是否在指定范围内。
具体地,根据人工划分经验,对河水流域评定出4条划分标准,分别是是否属于海岸线;是否属于同一所述河水流域出口编号对应的河水流域出口节点;是否属于水库;计算单元面积总和是否在指定范围内。在划分河水流域时,根据河水流域划分标准,并按照优先级的高低对河水流域依次进行划分,第一优先级为最高优先级,第二、第三、第四优先级的优先程度依次降低。河水流域划分标准中,是否属于海岸线可以通过河水流域信息中的河水流域分类码标识进行判断,将属于海岸线的河水流域划分到一起;针对第二优先级的划分标准,是否属于同一河水流域出口编号对应的河水流域出口节点,可以依据已经建立的第二哈希表进行判断,在第二哈希表中针对每个河水流域出口编号所包含的河水流域进行后续的划分,其中,同一出口节点会对应一条或多条河水流域;是否属于水库同样通过河水流域信息中的河水流域分类码标识进行判断,将属于水库的河水流域划分到一起;最后再对已经划分到一起的河水流域进行面积计算,为了后期数据处理时可以并行计算,尽量保证每个计算单元的面积和都在同样范围内,不会出现一个计算单元的面积过大而另一计算单元面积过小这种差距较大的情况,因此,将计算单元的面积控制在指定范围内,方便并行计算,该指定范围可为120-200平方千米,并且尽量将计算单元面及控制在预设值,该预设值可为120-200中任意值,以该预设值为160平方千米为例进行说明,如果计算单元面积不是整数160平方千米的时候,选择与160平方千米的差更小的情况,例如,如果计算单元的累加面积达到了158平方千米,这时候如果再累加一条河水流域面积,而计算单元的总面积则达到了165平方千米,前者与160平方千米的差要小于后者与160平方千米的差,所以,划分时将累计面积为158平方千米所对应的河水流域划分到同一个计算单元中。针对面积进行划分结束后,就完成了对河水流域的自动划分,即可以确定属于同一计算单元的所有河水流域编号。按照计算单元划分标准及计算单元划分标准的优先级对河水流域进行划分,使得划分准确性更高。
在一个实施例中,对河水流域信息进行遍历处理,确定属于同一计算单元的河水流域编号包括:
根据广度优先遍历算法,按照所述计算单元划分标准的优先级由高到低的顺序,对所有河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
具体地,在广度优先遍历算法对河水流域进行遍历的时候,按照计算单元划分标准的优先级,依次对河水流域进行判断和划分,先根据河水流域分类码标识判断河水流域是否属于海岸线,如果属于海岸线则直接划分至对应计算单元,并对该计算单元进行命名,同时存储至以计算单元名称为键值的哈希表中,当再遍历到属于海岸线的河水流域时,直接将其存入哈希表中该名称对应的计算单元中;如果不属于海岸线,再判断该河水流域是否为水库,如果是,则将其直接划分至对应计算单元,并对该计算单元进行命名,同样存储至以计算单元名称为键值的哈希表中,当再遍历到属于水库的河水流域时,直接将其存入哈希表中该名称对应的计算单元中;如果不属于水库,再判断河水流域是否属于同一河水流域出口编号对应的河水流域出口节点,遍历河水流域出口编号对应的河水流域出口节点的河水流域,并依次累加所遍历过的河水流域面积,当累加的河水流域面积到160平方千米,则将所累加的河水流域划分至同一计算单元中,最终完成遍历,同时也完成了对河水流域的自动划分。
在一个实施例中,根据广度优先遍历算法,按照计算单元划分标准的优先级由高到低的顺序,对所有河水流域信息进行遍历处理,确定属于同一计算单元的河水流域编号,包括:
针对每一条河水流域,获取河水流域分类码标识,根据河水流域分类码标识确定是否属于海岸线,若是,则按海岸线单独划分,并存储至对应计算单元中;若不是,再根据河水流域分类码标识确定是否属于水库,若是,则按水库单独划分,并存储至对应计算单元中;若不属于水库,则获取河水流域出口编号,将河水流域的河水流域编号划分至与河水流域出口编号对应的计算单元集群;
针对每一个河水流域出口编号,从河水流域出口编号对应的第一个河水流域开始遍历,并判断第一个河水流域面是否达到面积阈值,如果没达到,则继续按顺序遍历河水流域的上游河水流域集合和下游河水流域集合,并将被遍历过的河水流域面积依次累加进第一个河水流域所在的计算单元中,直到所述计算单元面积达到所述面积阈值;
当计算单元面积达到面积阈值,则将遍历的所述河水流域编号所对应的河水流域信息存储至所述河水流域出口编号对应的计算单元集群中的同一计算单元。
具体地,广度优先遍历算法在处理过程中,首先要依次获取每一条所述河水流域信息,根据计算单元划分标准及所述计算单元划分标准的优先级,依次对获取到的每一条所述河水流域进行遍历划分,划分结束后,将每一条河水流域信息存储至对应的所述计算单元中。
如图3所示,当判断河水流域已经不属于海岸线和水库后,广度优先算法对河水流域信息进行遍历处理实现划分的遍历过程如下:
(1)从出口节点对应的第一个河水流域开始,假设初始被访问的河水流域是WSCD1,面积为S1,将其放入队列(Queue)中。
(2)由于S1小于160平方千米,按照广度优先搜索,遍历其上游入口河水流域WSCD2、WSCD3和WSCD4,以及下游出口河水流域WSCD5,将WSCD2~WSCD5放入队列,并累计计算单元面积。
(3)若累计计算面积仍然不足160平方千米,按照队列的先进先出原则,访问河水流域WSCD2。
(4)遍历WSCD2的上游河水流域WSCD6和WSCD7,并将WSCD6~WSCD7放入队列,并累计计算单元面积。由于其出口河水流域WSCD2已被访问过,故不放入队列。
(5)若累计计算面积依然不满足160平方千米,再继续依次访问WSCD3和WSCD4,并将WSCD3的上游河水流域WSCD8和WSCD9放入队列,并累计计算单元面积。由于WSCD4无上游节点(入口标识为-1),且WSCD3和WSCD4的出口河水流域WSCD1已被访问过,故不放入队列。
(6)将队列里的数据依次访问完毕,累计计算单元面积也满足了160平方千米,则实现河水流域的广度优先遍历算法。
在一个实施例中,广度优先遍历算法的遍历过程还包括:
对于同一所述河水流域出口编号的多个河水流域,如果其中一个已经被划分到计算单元中,其他河水流域则被划分到相同计算单元中。
具体地,广度优先遍历算法在处理过程中,首先要依次获取每一条所述河水流域信息,根据计算单元划分标准及所述计算单元划分标准的优先级,依次对获取到的每一条所述河水流域进行划分,划分结束后,将每一条河水流域信息存储至对应的所述计算单元中。其中,计算单元的命名是根据河水流域的前缀名称并借助计数器升序基数实现的。例如,有些河水流域的前缀名相同,但是需要被划分到不同的计算单元,如:河水流域名是WSCD1、WSCD2、WSCD3、WSCD4,被划分到两个计算单元WSCD_1和WSCD_2中,其中,计算单元WSCD_1包含河水流域WSCD1、WSCD2;计算单元WSCD_2包含河水流域WSCD4。因此,通过构建以计算单元名称为键值的计算单元名称哈希表,以便于利用升序计数器,对计算单元的名称做升序标注。但是,如果WSCD1、WSDC2、WSCD3为同一河水流域出口编号对应的河水流域,其中WSCD1、WSDC2已经被划分到WSCD_1这个计算单元中,而此时WSCD_1的计算单元面及也已经满足160平方千米,那么,由于WSCD3与已经被划分了的WSCD1和WSCD2为同一河水流域出口,因此直接将WSCD3划分至WSCD1和WSCD2所在的计算单元WSCD_1中,无需再去针对计算单元面积对WSCD3进行判断,因为,同一河水流域出口的优先级要高于计算单元面积的优先级。综上,针对同一个出口节点对应的河水流域,如果其中一条河水流域已经确定计算单元名称,那么其余的不进行后续的遍历操作,直接划分到同一计算单元中。
在一个实施例中,如图4所示,根据河水流域信息,将数据进行加载,根据河水流域信息构建出用于表征河水流域编号与河水流域信息之间映射关系的第一哈希表、用于表征河水流域出口编号与河水流域编号之间的映射关系的第二哈希表,以及以计算单元名称为键值的计算单元名称哈希表,并对上述数据信息进行数据处理,接着根据河水流域划分标准及划分标准的优先级,对河水流域进行划分,首先对海岸线单独划分,判断河水流域是否属于海岸线,如果不属于海岸线,接着根据河水流域出口编号对应的河水流域出口节点进行宽度优先遍历,再针对同一个出口节点对应的河水流域,用已确定的计算单元名称对未标注的河水流域进行划分,最后根据统计出的每个计算单元的面积进行划分,最终实现河水流域的自动划分,即确定属于同一计算单元的河水流域编号。
本实施例中,通过获取到的河水流域划分规则和划分规则优先级,采用广度优先遍历算法对河水流域进行遍历操作,进而完成对河水流域的自动划分,使得河水流域的划分更加清晰准确,能够达到提高河水流域自动划分的准确性和高效性的目的。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种河水流域计算单元自动划分装置,包括:第一获取模块502、第二获取模块504和划分模块506,其中:
第一获取模块502,用于获取河水流域编号及对应的河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识。
第二获取模块504,用于获取计算单元划分标准及所述计算单元划分标准的优先级。
划分模块506,用于按照计算单元划分标准及所述计算单元划分标准的优先级,对所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
在一个实施例中,在第一获取模块502中:
根据河水流域编号和河水流域信息,构建河水流域编号与河水流域信息的映射关系,并记录在第一哈希表里。
其中,哈希表是根据关键码值(键值)而直接进行访问的数据结构。也就是说,它通过键值及其映射的内容,可以对表中一个位置的信息来访问记录,以加快查找的速度。
具体地,由于在遍历河水流域实现对河水流域的自动划分时,需要根据河水流域编号,对河水流域信息进行查询调用,因此,建立了可以表征河水流域编号与河水流域信息的映射关系的第一哈希表,其中河水流域编号作为该哈希表的键值,河水流域编号对应的河水流域信息作为该键值对应的列表中的值。第一哈希表的建立使得在查询河水流域信息时效率更高。
在一个实施例中,在第一获取模块502中:
根据河水流域出口编号,构建河水流域出口编号与河水流域编号的映射关系,并记录在第二哈希表里。
具体地,由于在划分河水流域的时候,需要依据河水流域出口编号进行相应划分,因此需要知道河水流域编号以及该编号对应的河水流域编号,所以建立了可以表征河水流域出口编号与河水流域编号的映射关系的第二哈希表,其中河水流域出口编号作为该哈希表的键值,河水流域编号作为该键值对应的列表中的值,即可以通过河水流域出口编号,查询到该编号对应的河水流域编号,也就是说,可以知道该河水流域出口编号对应包含哪些河水流域。第二哈希表的建立使得在查询调用同一河水流域出口编号对应哪些河水流域编号时的效率更高。
在一个实施例中,第二获取模块504中的计算单元划分标准包括:
是否属于海岸线;
是否属于同一所述河水流域出口编号对应的河水流域出口节点;
是否属于水库;
计算单元面积总和是否在指定范围内;
计算单元划分标准的优先级包括:
第一优先级:是否属于海岸线;
第二优先级:是否属于同一所述河水流域出口编号对应的河水流域出口节点;
第三优先级:是否属于水库;
第四优先级:所述计算单元面积总和是否在指定范围内。
具体地,根据人工划分经验,对河水流域评定出4条划分标准,分别是是否属于海岸线;是否属于同一所述河水流域出口编号对应的河水流域出口节点;是否属于水库;计算单元面积总和是否在指定范围内。在划分河水流域时,根据河水流域划分标准,并按照优先级的高低对河水流域依次进行划分,第一优先级为最高优先级,第二、第三、第四优先级的优先程度依次降低。河水流域划分标准中,是否属于海岸线可以通过河水流域信息中的河水流域分类码标识进行判断,将属于海岸线的河水流域划分到一起;针对第二优先级的划分标准,是否属于同一河水流域出口编号对应的河水流域出口节点,可以依据已经建立的第二哈希表进行判断,在第二哈希表中针对每个河水流域出口编号所包含的河水流域进行后续的划分,其中,同一出口节点会对应一条或多条河水流域;是否属于水库同样通过河水流域信息中的河水流域分类码标识进行判断,将属于水库的河水流域划分到一起;最后再对已经划分到一起的河水流域进行面积计算,为了后期数据处理时可以并行计算,尽量保证每个计算单元的面积和都在同样范围内,不会出现一个计算单元的面积过大而另一计算单元面积过小这种差距较大的情况,因此,将计算单元的面积控制在指定范围内,方便并行计算,该指定范围可为120-200平方千米,并且尽量将计算单元面及控制在预设值,该预设值可为120-200中任意值,以该预设值为160平方千米为例进行说明,如果计算单元面积不是整数160平方千米的时候,选择与160平方千米的差更小的情况,例如,如果计算单元的累加面积达到了158平方千米,这时候如果再累加一条河水流域面积,而计算单元的总面积则达到了165平方千米,前者与160平方千米的差要小于后者与160平方千米的差,所以,划分时将累计面积为158平方千米所对应的河水流域划分到同一个计算单元中。针对面积进行划分结束后,就完成了对河水流域的自动划分,即可以确定属于同一计算单元的所有河水流域编号。按照计算单元划分标准及计算单元划分标准的优先级对河水流域进行划分,使得划分准确性更高。
在一个实施例中,划分模块506中,对所述河水流域信息进行遍历处理,确定属于同一计算单元的河水流域编号包括:
根据广度优先遍历算法,按照所述计算单元划分标准的优先级由高到低的顺序,对所有河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
具体地,在广度优先遍历算法对河水流域进行遍历的时候,按照计算单元划分标准的优先级,依次对河水流域进行判断和划分,先根据河水流域分类码标识判断河水流域是否属于海岸线,如果属于海岸线则直接划分至对应计算单元,并对该计算单元进行命名,同时存储至以计算单元名称为键值的哈希表中,当再遍历到属于海岸线的河水流域时,直接将其存入哈希表中该名称对应的计算单元中;如果不属于海岸线,再判断该河水流域是否为水库,如果是,则将其直接划分至对应计算单元,并对该计算单元进行命名,同样存储至以计算单元名称为键值的哈希表中,当再遍历到属于水库的河水流域时,直接将其存入哈希表中该名称对应的计算单元中;如果不属于水库,再判断河水流域是否属于同一河水流域出口编号对应的河水流域出口节点,遍历河水流域出口编号对应的河水流域出口节点的河水流域,并依次累加所遍历过的河水流域面积,当累加的河水流域面积到160平方千米,则将所累加的河水流域划分至同一计算单元中,最终完成遍历,同时也完成了对河水流域的自动划分。
在一个实施例中,根据广度优先遍历算法,按照计算单元划分标准的优先级由高到低的顺序,对所有河水流域信息进行遍历处理,确定属于同一计算单元的河水流域编号,包括:
针对每一条河水流域,获取河水流域分类码标识,根据河水流域分类码标识确定是否属于海岸线,若是,则按海岸线单独划分,并存储至对应计算单元中;若不是,再根据河水流域分类码标识确定是否属于水库,若是,则按水库单独划分,并存储至对应计算单元中;若不属于水库,则获取河水流域出口编号,将河水流域的河水流域编号划分至与河水流域出口编号对应的计算单元集群;
针对每一个河水流域出口编号,从河水流域出口编号对应的第一个河水流域开始遍历,并判断第一个河水流域面是否达到面积阈值,如果没达到,则继续按顺序遍历河水流域的上游河水流域集合和下游河水流域集合,并将被遍历过的河水流域面积依次累加进第一个河水流域所在的计算单元中,直到所述计算单元面积达到所述面积阈值;
当计算单元面积达到面积阈值,则将遍历的所述河水流域编号所对应的河水流域信息存储至所述河水流域出口编号对应的计算单元集群中的同一计算单元。
具体地,广度优先遍历算法在处理过程中,首先要依次获取每一条所述河水流域信息,根据计算单元划分标准及所述计算单元划分标准的优先级,依次对获取到的每一条所述河水流域进行遍历划分,划分结束后,将每一条河水流域信息存储至对应的所述计算单元中。
如图3所示,当判断河水流域已经不属于海岸线和水库后,广度优先算法对河水流域信息进行遍历处理实现划分的遍历过程如下:
(1)从出口节点对应的第一个河水流域开始,假设初始被访问的河水流域是WSCD1,面积为S1,将其放入队列(Queue)中。
(2)由于S1小于160平方千米,按照广度优先搜索,遍历其上游入口河水流域WSCD2、WSCD3和WSCD4,以及下游出口河水流域WSCD5,将WSCD2~WSCD5放入队列,并累计计算单元面积。
(3)若累计计算面积仍然不足160平方千米,按照队列的先进先出原则,访问河水流域WSCD2。
(4)遍历WSCD2的上游河水流域WSCD6和WSCD7,并将WSCD6~WSCD7放入队列,并累计计算单元面积。由于其出口河水流域WSCD2已被访问过,故不放入队列。
(5)若累计计算面积依然不满足160平方千米,再继续依次访问WSCD3和WSCD4,并将WSCD3的上游河水流域WSCD8和WSCD9放入队列,并累计计算单元面积。由于WSCD4无上游节点(入口标识为-1),且WSCD3和WSCD4的出口河水流域WSCD1已被访问过,故不放入队列。
(6)将队列里的数据依次访问完毕,累计计算单元面积也满足了160平方千米,则实现河水流域的广度优先遍历算法。
在一个实施例中,划分模块506中广度优先遍历算法的遍历过程包括:
对于同一所述河水流域出口编号的多个河水流域,如果其中一个已经被划分到计算单元中,其他河水流域则被划分到相同计算单元中。
具体地,广度优先遍历算法在处理过程中,首先要依次获取每一条所述河水流域信息,根据计算单元划分标准及所述计算单元划分标准的优先级,依次对获取到的每一条所述河水流域进行划分,划分结束后,将每一条河水流域信息存储至对应的所述计算单元中。其中,计算单元的命名是根据河水流域的前缀名称并借助计数器升序基数实现的。例如,有些河水流域的前缀名相同,但是需要被划分到不同的计算单元,如:河水流域名是WSCD1、WSCD2、WSCD3、WSCD4,被划分到两个计算单元WSCD_1和WSCD_2中,其中,计算单元WSCD_1包含河水流域WSCD1、WSCD2;计算单元WSCD_2包含河水流域WSCD4。因此,通过构建以计算单元名称为键值的计算单元名称哈希表,以便于利用升序计数器,对计算单元的名称做升序标注。但是,如果WSCD1、WSDC2、WSCD3为同一河水流域出口编号对应的河水流域,其中WSCD1、WSDC2已经被划分到WSCD_1这个计算单元中,而此时WSCD_1的计算单元面及也已经满足160平方千米,那么,由于WSCD3与已经被划分了的WSCD1和WSCD2为同一河水流域出口,因此直接将WSCD3划分至WSCD1和WSCD2所在的计算单元WSCD_1中,无需再去针对计算单元面积对WSCD3进行判断,因为,同一河水流域出口的优先级要高于计算单元面积的优先级。综上,针对同一个出口节点对应的河水流域,如果其中一条河水流域已经确定计算单元名称,那么其余的不进行后续的遍历操作,直接划分到同一计算单元中。
关于河水流域计算单元自动划分装置的具体限定可以参见上文中对于河水流域计算单元自动划分方法的限定,在此不再赘述。上述河水流域计算单元自动划分装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储河水流域信息数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种河水流域计算单元自动划分方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取河水流域编号及对应的河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识;
获取计算单元划分标准及所述计算单元划分标准的优先级;
按照计算单元划分标准及所述计算单元划分标准的优先级,对所述河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。
在一个实施例中,处理器执行计算机程序时,河水流域计算单元自动划分方法还包括:根据河水流域编号和河水流域信息,构建河水流域编号与河水流域信息的映射关系,并记录在第一哈希表里。其中,哈希表是根据关键码值(键值)而直接进行访问的数据结构。也就是说,它通过键值及其映射的内容,可以对表中一个位置的信息来访问记录,以加快查找的速度。具体地,由于在遍历河水流域实现对河水流域的自动划分时,需要根据河水流域编号,对河水流域信息进行查询调用,因此,建立了可以表征河水流域编号与河水流域信息的映射关系的第一哈希表,其中河水流域编号作为该哈希表的键值,河水流域编号对应的河水流域信息作为该键值对应的列表中的值。第一哈希表的建立使得在查询河水流域信息时效率更高。
在一个实施例中,处理器执行计算机程序时,河水流域计算单元自动划分方法还包括:根据河水流域出口编号,构建河水流域出口编号与河水流域编号的映射关系,并记录在第二哈希表里。具体地,由于在划分河水流域的时候,需要依据河水流域出口编号进行相应划分,因此需要知道河水流域编号以及该编号对应的河水流域编号,所以建立了可以表征河水流域出口编号与河水流域编号的映射关系的第二哈希表,其中河水流域出口编号作为该哈希表的键值,河水流域编号作为该键值对应的列表中的值,即可以通过河水流域出口编号,查询到该编号对应的河水流域编号,也就是说,可以知道该河水流域出口编号对应包含哪些河水流域。第二哈希表的建立使得在查询调用同一河水流域出口编号对应哪些河水流域编号时的效率更高。
在一个实施例中,处理器执行计算机程序时的计算单元划分标准包括:是否属于海岸线;是否属于同一所述河水流域出口编号对应的河水流域出口节点;是否属于水库;计算单元面积总和是否在指定范围内;计算单元划分标准的优先级包括:第一优先级:是否属于海岸线;第二优先级:是否属于同一所述河水流域出口编号对应的河水流域出口节点;第三优先级:是否属于水库;第四优先级:所述计算单元面积总和是否在指定范围内。具体地,根据人工划分经验,对河水流域评定出4条划分标准,分别是是否属于海岸线;是否属于同一所述河水流域出口编号对应的河水流域出口节点;是否属于水库;计算单元面积总和是否在指定范围内。在划分河水流域时,根据河水流域划分标准,并按照优先级的高低对河水流域依次进行划分,第一优先级为最高优先级,第二、第三、第四优先级的优先程度依次降低。河水流域划分标准中,是否属于海岸线可以通过河水流域信息中的河水流域分类码标识进行判断,将属于海岸线的河水流域划分到一起;针对第二优先级的划分标准,是否属于同一河水流域出口编号对应的河水流域出口节点,可以依据已经建立的第二哈希表进行判断,在第二哈希表中针对每个河水流域出口编号所包含的河水流域进行后续的划分,其中,同一出口节点会对应一条或多条河水流域;是否属于水库同样通过河水流域信息中的河水流域分类码标识进行判断,将属于水库的河水流域划分到一起;最后再对已经划分到一起的河水流域进行面积计算,为了后期数据处理时可以并行计算,尽量保证每个计算单元的面积和都在同样范围内,不会出现一个计算单元的面积过大而另一计算单元面积过小这种差距较大的情况,因此,将计算单元的面积控制在指定范围内,方便并行计算,该指定范围可为120-200平方千米,并且尽量将计算单元面及控制在预设值,该预设值可为120-200中任意值,以该预设值为160平方千米为例进行说明,如果计算单元面积不是整数160平方千米的时候,选择与160平方千米的差更小的情况,例如,如果计算单元的累加面积达到了158平方千米,这时候如果再累加一条河水流域面积,而计算单元的总面积则达到了165平方千米,前者与160平方千米的差要小于后者与160平方千米的差,所以,划分时将累计面积为158平方千米所对应的河水流域划分到同一个计算单元中。针对面积进行划分结束后,就完成了对河水流域的自动划分,即可以确定属于同一计算单元的所有河水流域编号。按照计算单元划分标准及计算单元划分标准的优先级对河水流域进行划分,使得划分准确性更高。
在一个实施例中,处理器执行计算机程序时,对河水流域信息进行遍历处理,确定属于同一计算单元的河水流域编号包括:根据广度优先遍历算法,按照所述计算单元划分标准的优先级由高到低的顺序,对所有河水流域信息进行遍历处理,确定属于同一所述计算单元的河水流域编号。具体地,在广度优先遍历算法对河水流域进行遍历的时候,按照计算单元划分标准的优先级,依次对河水流域进行判断和划分,先根据河水流域分类码标识判断河水流域是否属于海岸线,如果属于海岸线则直接划分至对应计算单元,并对该计算单元进行命名,同时存储至以计算单元名称为键值的哈希表中,当再遍历到属于海岸线的河水流域时,直接将其存入哈希表中该名称对应的计算单元中;如果不属于海岸线,再判断该河水流域是否为水库,如果是,则将其直接划分至对应计算单元,并对该计算单元进行命名,同样存储至以计算单元名称为键值的哈希表中,当再遍历到属于水库的河水流域时,直接将其存入哈希表中该名称对应的计算单元中;如果不属于水库,再判断河水流域是否属于同一河水流域出口编号对应的河水流域出口节点,遍历河水流域出口编号对应的河水流域出口节点的河水流域,并依次累加所遍历过的河水流域面积,当累加的河水流域面积到160平方千米,则将所累加的河水流域划分至同一计算单元中,最终完成遍历,同时也完成了对河水流域的自动划分。
在一个实施例中,处理器执行计算机程序时根据广度优先遍历算法,按照计算单元划分标准的优先级由高到低的顺序,对所有河水流域信息进行遍历处理,确定属于同一计算单元的河水流域编号,包括:针对每一条河水流域,获取河水流域分类码标识,根据河水流域分类码标识确定是否属于海岸线,若是,则按海岸线单独划分,并存储至对应计算单元中;若不是,再根据河水流域分类码标识确定是否属于水库,若是,则按水库单独划分,并存储至对应计算单元中;若不属于水库,则获取河水流域出口编号,将河水流域的河水流域编号划分至与河水流域出口编号对应的计算单元集群;针对每一个河水流域出口编号,从河水流域出口编号对应的第一个河水流域开始遍历,并判断第一个河水流域面是否达到面积阈值,如果没达到,则继续按顺序遍历河水流域的上游河水流域集合和下游河水流域集合,并将被遍历过的河水流域面积依次累加进第一个河水流域所在的计算单元中,直到所述计算单元面积达到所述面积阈值;当计算单元面积达到面积阈值,则将遍历的所述河水流域编号所对应的河水流域信息存储至所述河水流域出口编号对应的计算单元集群中的同一计算单元。具体地,广度优先遍历算法在处理过程中,首先要依次获取每一条所述河水流域信息,根据计算单元划分标准及所述计算单元划分标准的优先级,依次对获取到的每一条所述河水流域进行遍历划分,划分结束后,将每一条河水流域信息存储至对应的所述计算单元中。
在一个实施例中,处理器执行计算机程序时的广度优先遍历算法的遍历过程包括:对于同一所述河水流域出口编号的多个河水流域,如果其中一个已经被划分到计算单元中,其他河水流域则被划分到相同计算单元中。具体地,广度优先遍历算法在处理过程中,首先要依次获取每一条所述河水流域信息,根据计算单元划分标准及所述计算单元划分标准的优先级,依次对获取到的每一条所述河水流域进行划分,划分结束后,将每一条河水流域信息存储至对应的所述计算单元中。其中,计算单元的命名是根据河水流域的前缀名称并借助计数器升序基数实现的。例如,有些河水流域的前缀名相同,但是需要被划分到不同的计算单元,如:河水流域名是WSCD1、WSCD2、WSCD3、WSCD4,被划分到两个计算单元WSCD_1和WSCD_2中,其中,计算单元WSCD_1包含河水流域WSCD1、WSCD2;计算单元WSCD_2包含河水流域WSCD4。因此,通过构建以计算单元名称为键值的计算单元名称哈希表,以便于利用升序计数器,对计算单元的名称做升序标注。但是,如果WSCD1、WSDC2、WSCD3为同一河水流域出口编号对应的河水流域,其中WSCD1、WSDC2已经被划分到WSCD_1这个计算单元中,而此时WSCD_1的计算单元面及也已经满足160平方千米,那么,由于WSCD3与已经被划分了的WSCD1和WSCD2为同一河水流域出口,因此直接将WSCD3划分至WSCD1和WSCD2所在的计算单元WSCD_1中,无需再去针对计算单元面积对WSCD3进行判断,因为,同一河水流域出口的优先级要高于计算单元面积的优先级。综上,针对同一个出口节点对应的河水流域,如果其中一条河水流域已经确定计算单元名称,那么其余的不进行后续的遍历操作,直接划分到同一计算单元中。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种河水流域计算单元自动划分方法,其特征在于,所述方法包括:
获取河水流域编号及对应的河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识;
获取计算单元划分标准及所述计算单元划分标准的优先级;
根据河水流域编号和所述河水流域信息,构建所述河水流域编号与所述河水流域信息的映射关系,并记录在第一哈希表里;所述河水流域编号作为所述第一哈希表的键值,所述河水流域编号对应的所述河水流域信息作为所述键值对应的列表中的值;
针对每一条河水流域,获取所述河水流域分类码标识,根据所述河水流域分类码标识确定是否属于海岸线,若是,则按海岸线单独划分,并存储至对应计算单元中;若不是,再根据所述河水流域分类码标识确定是否属于水库,若是,则按水库单独划分,并存储至对应计算单元中;若不属于水库,则获取河水流域出口编号,将所述河水流域的河水流域编号划分至与所述河水流域出口编号对应的计算单元集群;
针对每一个河水流域出口编号,从所述河水流域出口编号对应的第一个河水流域开始遍历,并判断所述第一个河水流域面是否达到面积阈值,如果没达到,则继续按顺序遍历所述河水流域的上游河水流域集合和下游河水流域集合,并将被遍历过的河水流域面积依次累加进第一个河水流域所在的计算单元中,直到所述计算单元面积达到所述面积阈值;
当所述计算单元面积达到面积阈值,则将遍历的所述河水流域编号所对应的河水流域信息存储至所述河水流域出口编号对应的计算单元集群中的同一计算单元;
若在所述计算单元按照优先级划分时出现矛盾,选择优先级高的划分标准对河水流域进行划分。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述河水流域出口编号,构建所述河水流域出口编号与所述河水流域编号的映射关系,并记录在第二哈希表里。
3.根据权利要求1所述的方法,其特征在于,所述计算单元划分标准包括:
是否属于海岸线;
是否属于同一河水流域出口编号对应的河水流域出口节点;
是否属于水库;
计算单元面积总和是否在指定范围内;
计算单元划分标准的优先级包括:
第一优先级:是否属于海岸线;
第二优先级:是否属于同一河水流域出口编号对应的河水流域出口节点;
第三优先级:是否属于水库;
第四优先级:计算单元面积总和是否在指定范围内。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于同一所述河水流域出口编号的多个河水流域,如果其中一个已经被划分到计算单元中,其他河水流域则被划分到相同计算单元中。
5.一种河水流域计算单元自动划分装置,其特征在于,所述装置包括:
第一获取模块,用于获取河水流域信息;所述河水流域信息包括:所述河水流域的上游入口、所述河水流域的下游出口、河水流域出口编号、河水流域的流域面积和河水流域分类码标识;
第二获取模块,用于获取计算单元划分标准及所述计算单元划分标准的优先级;
所述第一获取模块,还用于根据河水流域编号和所述河水流域信息,构建所述河水流域编号与所述河水流域信息的映射关系,并记录在第一哈希表里;所述河水流域编号作为所述第一哈希表的键值,所述河水流域编号对应的所述河水流域信息作为所述键值对应的列表中的值;
划分模块,用于针对每一条河水流域,获取所述河水流域分类码标识,根据所述河水流域分类码标识确定是否属于海岸线,若是,则按海岸线单独划分,并存储至对应计算单元中;若不是,再根据所述河水流域分类码标识确定是否属于水库,若是,则按水库单独划分,并存储至对应计算单元中;若不属于水库,则获取河水流域出口编号,将所述河水流域的河水流域编号划分至与所述河水流域出口编号对应的计算单元集群;
针对每一个河水流域出口编号,从所述河水流域出口编号对应的第一个河水流域开始遍历,并判断所述第一个河水流域面是否达到面积阈值,如果没达到,则继续按顺序遍历所述河水流域的上游河水流域集合和下游河水流域集合,并将被遍历过的河水流域面积依次累加进第一个河水流域所在的计算单元中,直到所述计算单元面积达到所述面积阈值;
当所述计算单元面积达到面积阈值,则将遍历的所述河水流域编号所对应的河水流域信息存储至所述河水流域出口编号对应的计算单元集群中的同一计算单元;
若在所述计算单元按照优先级划分时出现矛盾,所述计算单元选择优先级高的划分标准对河水流域进行划分。
6.根据权利要求5所述装置,其特征在于,所述第一获取模块,还用于根据所述河水流域出口编号,构建所述河水流域出口编号与所述河水流域编号的映射关系,并记录在第二哈希表里。
7.根据权利要求5所述装置,其特征在于,所述第二获取模块中的计算单元划分标准包括:
是否属于海岸线;
是否属于同一河水流域出口编号对应的河水流域出口节点;
是否属于水库;
计算单元面积总和是否在指定范围内;
计算单元划分标准的优先级包括:
第一优先级:是否属于海岸线;
第二优先级:是否属于同一河水流域出口编号对应的河水流域出口节点;
第三优先级:是否属于水库;
第四优先级:计算单元面积总和是否在指定范围内。
8.根据权利要求5所述装置,其特征在于,所述划分模块中广度优先遍历算法的遍历过程包括:对于同一所述河水流域出口编号的多个河水流域,如果其中一个已经被划分到计算单元中,其他河水流域则被划分到相同计算单元中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011238116.0A CN112612784B (zh) | 2020-11-09 | 2020-11-09 | 河水流域计算单元自动划分方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011238116.0A CN112612784B (zh) | 2020-11-09 | 2020-11-09 | 河水流域计算单元自动划分方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612784A CN112612784A (zh) | 2021-04-06 |
CN112612784B true CN112612784B (zh) | 2024-08-06 |
Family
ID=75224594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011238116.0A Active CN112612784B (zh) | 2020-11-09 | 2020-11-09 | 河水流域计算单元自动划分方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612784B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312608B (zh) * | 2023-08-14 | 2024-06-04 | 河海大学 | 一种基于深度优先搜索的河网节点简并方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897529A (zh) * | 2017-03-02 | 2017-06-27 | 中国水利水电科学研究院 | 基于污水管网拓扑关系的子流域汇流演算顺序计算方法 |
CN108647900A (zh) * | 2018-05-18 | 2018-10-12 | 北京科技大学 | 一种应用于水文模拟领域的区域划分方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4403007B2 (ja) * | 2004-04-26 | 2010-01-20 | 独立行政法人科学技術振興機構 | 河川区間検索方法、河川区間検索プログラム及び河川区間検索プログラムを記録した記録媒体 |
CN103092572B (zh) * | 2013-01-11 | 2015-07-29 | 中国科学院地理科学与资源研究所 | 一种集群环境下分布式水文模拟的并行化方法 |
CN105138722A (zh) * | 2015-07-14 | 2015-12-09 | 南京师范大学 | 基于数字河湖网络的平原河网区流域集水单元划分方法 |
CN108664647B (zh) * | 2018-05-17 | 2021-07-06 | 生态环境部环境规划院 | 一种集成水环境模型的流域精细化管理系统 |
CN109033605B (zh) * | 2018-07-18 | 2020-10-23 | 华中科技大学 | 一种基于多阶段划分和多单位线选择的流域汇流模拟方法 |
CN110717251B (zh) * | 2019-09-19 | 2020-11-24 | 中国水利水电科学研究院 | 一种考虑多要素的分布式水文模型子流域划分方法 |
CN111508044B (zh) * | 2020-04-24 | 2020-12-08 | 中国水利水电科学研究院 | 一种面向gis流域综合治理的控制单元划分方法 |
-
2020
- 2020-11-09 CN CN202011238116.0A patent/CN112612784B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897529A (zh) * | 2017-03-02 | 2017-06-27 | 中国水利水电科学研究院 | 基于污水管网拓扑关系的子流域汇流演算顺序计算方法 |
CN108647900A (zh) * | 2018-05-18 | 2018-10-12 | 北京科技大学 | 一种应用于水文模拟领域的区域划分方法 |
Non-Patent Citations (1)
Title |
---|
面向大尺度区域分布式水文模型的子流域划分方法改进;刘欢等;工程科学与技术;第51卷(第1期);第36-44页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112612784A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112287182B (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
CN107015985B (zh) | 一种数据存储与获取方法及装置 | |
CN110489405B (zh) | 数据处理的方法、装置和服务器 | |
CN111814664B (zh) | 识别图纸中标注的方法、装置、计算机设备及存储介质 | |
JP2015512551A (ja) | ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
CN111522968A (zh) | 知识图谱融合方法及装置 | |
CN105468644B (zh) | 一种用于在数据库中进行查询的方法与设备 | |
CN112612784B (zh) | 河水流域计算单元自动划分方法、装置和计算机设备 | |
CN114168318A (zh) | 存储释放模型的训练方法、存储释放方法及设备 | |
CN105701128A (zh) | 一种查询语句的优化方法和装置 | |
CN104268243A (zh) | 一种位置数据处理方法及装置 | |
CN113468384B (zh) | 网络情报源信息的处理方法、装置、存储介质及处理器 | |
CN109189343B (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
CN111414528B (zh) | 确定设备标识的方法、装置、存储介质及电子设备 | |
CN113568877B (zh) | 一种文件合并方法、装置、电子设备及存储介质 | |
CN113779322B (zh) | 用于图检索的方法、装置、设备以及计算机可读存储介质 | |
CN116304212A (zh) | 一种数据处理系统、方法、设备及存储介质 | |
CN116386894A (zh) | 一种信息溯源方法、装置、存储介质及电子设备 | |
CN112269947B (zh) | 空间文本数据的缓存方法、装置、电子设备及存储介质 | |
CN113392130B (zh) | 数据处理方法、装置及设备 | |
CN114064927A (zh) | 地址图谱构建方法、装置、计算机设备及可读存储介质 | |
CN114817209A (zh) | 监控规则的处理方法和装置、处理器及电子设备 | |
CN106557469A (zh) | 一种处理数据仓库中数据的方法及装置 | |
CN115793994B (zh) | 分布式环境下本地缓存的分组数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |