CN101630366B - 大量分块地形数据的动态淹没区提取方法、装置及系统 - Google Patents
大量分块地形数据的动态淹没区提取方法、装置及系统 Download PDFInfo
- Publication number
- CN101630366B CN101630366B CN2009100902067A CN200910090206A CN101630366B CN 101630366 B CN101630366 B CN 101630366B CN 2009100902067 A CN2009100902067 A CN 2009100902067A CN 200910090206 A CN200910090206 A CN 200910090206A CN 101630366 B CN101630366 B CN 101630366B
- Authority
- CN
- China
- Prior art keywords
- flooding area
- data
- piecemeal
- terrain
- border
- 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
Images
Landscapes
- Instructional Devices (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种大量分块地形数据的动态淹没区提取方法、装置及系统。该方法运行于数据处理装置中,包括:扫描分块地形数据集,为分块地形数据集建立对应的地理空间网格索引表;根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;该移动窗口遍历该索引表,通过该索引表提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据;从该淹没区数据中提取矢量形式的淹没区边界。本发明根据海平面变化高度,提取被淹没区域。可适应不同内存资源,支持对大数据量以分块形式存储和管理的地形数据,形成代表淹没区的地理多边形。
Description
技术领域
本发明涉及地球科学计算领域,特别是涉及大数据量分块地形数据的动态淹没区提取方法、装置及其系统。
背景技术
数字高程模型(Digital elevation model,DEM)是重要的地表参数数据,但由于地表的连续复杂变化,导致DEM数据量较大,而且随着区域范围的增大和分辨率的精细而成几何倍数增长。例如,全球1km DEM的数据量为1.7G(GeoTiff文件格式),而90m DEM的数据量大约为400G。大数据量DEM在存储、处理和分析上均存在困难,根据地理范围将DEM分块存储,是解决大数据量DEM存储的有效方法,不仅避免了单个栅格数据文件的容量限制(如GeoTIFF的4G限制),而且为根据实际需要加载特定区域DEM提供基础。然而,地理分块使空间相邻的地形单元分拆到不同数据集中,从而对基于DEM的分析带来困难,尤其是涉及相邻空间拓扑关系判读的分析。现有DEM在尺度和地理区域上仍然非常有限,在地理范围较大的区域进行分析的过程中,涉及的DEM往往来自不同来源,且使用不同的分块方式,从而更增加了实施空间分析的难度,如:公里网格分块、Landsat行列分块等不同分块方法。
随着全球变化形式的加剧,海平面变化日益受到广泛重视。而需要根据海平面的变化情况,快速准确地提取其对沿海地区的影响,提取变化区域(被淹没或新出现区域)对研究和理解海平面变化的影响具有重要价值。
然而淹没区判断条件较为复杂,不仅依赖于高程,即是否低于海平面,而且还取决于周围的地形,即拓扑关系,如内陆低地等特殊区域。
传统的淹没区提取方法只能够适用于单个DEM文件,且采用高内存消耗的算法。对于大区域范围的高精度DEM,由于其参与处理的数据量巨大,对于内存资源的要求较高。根据上面的分析,海平面淹没区分析的开展,需要基于研究区与周围较大地理范围内的地形情况,涉及的DEM数据量更大,因而传统的高内存消耗方法难以适用。此外,传统的高内存消耗方法不但受限于计算机有限的内存资源,而且不适用于分块存储的DEM数据。
故而,一种能够适应不同的内存资源条件,或者能够控制对内存资源的需求,并能够针对大数据量分块存储的地形数据进行处理,提取其淹没区的方法,为科研和产业中亟待解决的问题。
发明内容
本发明所要解决的技术问题在于提供一种大量分块地形数据的动态淹没区提取方法、装置及其系统,用于解决适应于不同的内存资源条件,降低磁盘IO次数,针对大数据量且以数据分块形式存储和管理的地形数据提取被淹没区域的问题。
本发明进一步解决了,针对以多种不同分块形式存储的地形数据集进行分析的问题。
本发明进一步解决了,形成代表淹没区的优化矢量形式的地理多边形进行显示的问题。
为了实现上述目的,本发明提供了一种大量分块地形数据的动态淹没区提取方法,运行于数据处理装置中,用于对以不同分块形式存储的分块地形数据集进行分析,包括:
扫描分块地形数据集,为分块地形数据集建立对应的地理空间网格索引表;
根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;
该移动窗口遍历该索引表,通过该索引表提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据;
从该淹没区数据中提取矢量形式的淹没区边界。
为了实现上述目的,本发明还提供了一种大量分块地形数据的动态淹没区提取系统,设置于数据处理装置中,用于对以不同分块形式存储的分块地形数据集进行分析,包括:
索引表设立模块,用于扫描分块地形数据集,为分块地形数据集建立对应的地理空间网格索引表;
移动窗口设定模块,用于根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;
淹没区计算模块,利用该移动窗口遍历该索引表,通过该索引表中提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据;
淹没区边界提取模块,用于从该淹没区数据中提取矢量形式的淹没区边界。
本发明还公开了一种大量分块地形数据的动态淹没区提取装置,包括数据处理模块,输入模块、输出模块、内存模块、数据存储模块,数据存储模块中存储有以不同分块形式存储的分块地形数据集,该数据处理模块中包括:
索引表设立模块,用于扫描数据存储模块中的数据集,并为数据集建立对应的地理空间网格索引表;
移动窗口设定模块,用于根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;
淹没区计算模块,利用该移动窗口遍历该索引表,通过该索引表中提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据;
淹没区边界提取模块,用于从该淹没区数据中提取矢量形式的淹没区边界。
与现有技术相比,本发明的有益技术效果在于:
(1)通过地理空间网格化索引方法,能够支持数据量大(远超过可用计算机内存容量)且以数据分块形式存储和管理的地形数据;
(2)通过控制“移动窗口”的大小,能够使该方法适应于不同内存资源条件的软硬件环境;
(3)通过优化的边界矢量化提取方法,能够从本发明的分析结果中提取矢量化的淹没区域,而且通过指定的角度阈值,能够在保证区域关键形状的前提下,消除淹没区域多边形的冗余节点,得到代表淹没区域的优化形状。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1所示为本发明的大量分块地形数据的动态淹没区提取装置的结构示意图;
图1A所示为本发明的大量分块地形数据的动态淹没区提取方法的流程图;
图1B是本发明的大量地理空间网格索引表示意图;
图2、图2A、图2B、图2C、图3、图3A、图3B、图3C所示为本发明的大量分块地形数据的动态淹没区提取方法的流程图;
图4所示为本发明的大量分块地形数据的动态淹没区提取系统的结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步更详细的描述。
本发明公开了一种大量分块地形数据的动态淹没区提取方法、装置及系统。其针对现有技术中的数据量巨大且以多种不同分块形式存储和管理的地形数据进行处理,在处理中可适应不同数据处理装置所具备的不同内存资源条件,增强兼容性。更进一步的,对于提取出的动态淹没区,还可生成地理区域多边形。更进一步的,还可以明确且优化的形式呈现出淹没区的地理范围。
本发明可应用于一服务器主机或其他数据处理装置中,如图1所示为服务器主机的结构示意图。服务器10包括数据处理模块11、内存模块12、数据存储模块13、输入模块14、输出模块15、网络连接模块16。
数据存储模块13中存储有以分块形式存储和管理的分块地形数据集。该数据集记录了DEM数据,具备较大的数据量。该数据存储模块13还可存储多种不同分块形式的分块地形数据集。
如图1A所示为本发明的大量分块地形数据的动态淹没区提取方法运行于数据处理装置11中的流程图。
步骤101,扫描分块地形数据集,为分块地形数据集建立对应的地理空间网格索引表。
在该步骤中,数据处理装置11扫描遍历存储于数据存储模块13中的分块地形数据集,分析所有分块地形数据集,建立与数据集对应的地理空间网格索引表。
请参见图1B所示为地理空间网格索引表的示意图。其中,分块地形数据集以栅格数据集的形式存在。地理空间网格索引表以地理空间网格的形式进行组织。
地理空间网格索引表包括多个网格单元,每个网格单元用于对应记载一个分块地形数据集的参数,每个分块地形数据集记录了一定地理空间范围内的地形单元数据,也就是说,每个数据集包括多个地形单元格数据。而每个网格单元在索引表中的位置则取决于该数据集在地理空间中的实际范围,即,每个网格单元依照对应数据集的空间位置而排列。索引表中的每个网格单元与对应的数据集具有关联关系。同时,索引表支持存在空间范围重叠的数据集(见图1B中C3),以支持不同分区方案和部分重叠的分区方案,也就是说,不同网格单元在空间上有可能被一个以上数据集所覆盖。
每个网格单元记录对应的数据集的参数和分析过程中需要用到的标识位。
网格单元针对分块地形数据集记录以下参数:
a1)空间范围(Extent):即,该分块地形数据集在地理空间中覆盖的范围,其空间范围坐标以矩形方式表示,包括:“左下”和“右上”两个坐标对,以及数据集的空间坐标参考信息;
a2)单元格大小(CellSize):数据集中每个地形单元格在横向和纵向的大小;
a3)空值的标识(NoData):空值的标识方式,如:-9999;
a4)网格单元所对应的数据集代码,即数据集引用信息。
分析过程中需要用到的标识位包括:
b1)完全排除标识位(Excluded):整个数据集不参与计算;
b2)完全包含标识位(Included):整个数据集已被完全包含在计算结果中;
b3)暂时挂起标识位(Suspended):暂时不参与分析过程;
b4)新增淹没地形单元格数(AddedNum):最后一次计算过程中新增的淹没区的地形单元格数量。
本发明中利用该索引表作为移动窗口提取数据集中的数据的中介(详见后述),以准确的定位需要从数据集中提取的信息。
基于地理空间网络,索引表记录了来自不同分块方案的数据集的基本信息,为基于多种不同分区方案的大数据量分块DEM开展淹没区迭代分析、减少IO次数、控制资源消耗等方面提供了基础。
步骤102,根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小。
本发明利用移动窗口对数据集进行提取淹没区的处理,基于索引表搜索满足条件的数据集,提取数据集中的地形单元格数据,以进行后续分析。利用移动窗口进行数据处理是本领域的现有技术。而移动窗口的大小需与内存资源相适应,才能保证运行的稳定性与高效率。
在本发明中,移动窗口的大小可根据该数据处理装置的软硬件环境进行设定。移动窗口的大小与最大内存使用量呈2次方正比,而与磁盘的IO次数成2次方反比。增加移动窗口的大小,可以提高运行速度,但同时增加内存的使用量;相反,减小移动窗口,降低了内存的使用量,但由于IO次数的提高,使运行速度降低。因此,用户在该步骤,根据系统运行的软硬件环境,根据需求,设定移动窗口大小。即,利用输入模块14输入移动窗口大小的设定参数,并传送至数据处理模块11,对移动窗口的大小进行控制。
除用户通过输入模块14手动处理外,还可通过一预先存储的对照表而自动设定移动窗口的大小,即,预先存储每一内存条件所对应的最佳移动窗口大小,或,一最佳范围,在服务器10开机检测阶段对内存模块12进行初始化时,即获知该内存模块的参数,并根据该内存模块的参数而自动设定移动窗口的大小。
由于本发明的移动窗口的大小可调节,进而可调节内存使用量和磁盘IO次数,已与数据处理装置当前具备的软硬件条件相匹配,以提高运行的稳定性,同时还可兼容于多种数据处理装置。
步骤103,该移动窗口遍历该索引表,通过该索引表中提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据。
步骤104,从该淹没区数据中提取矢量形式的淹没区边界。
如图2所示,是本发明的大量分块地形数据的动态淹没区提取方法流程图。步骤103具体包括如下步骤:
步骤1031,该移动窗口遍历该索引表,通过索引表得到移动窗口对应覆盖的分块地形数据集的数据,根据该分块地形数据集之中的地形单元格的高程值、地形类型、周围地形,并根据海平面高度变化值,初始化提取海岸带邻近淹没区。
步骤1032,该移动窗口从多个不同起点沿不同方向,分别遍历该索引表,利用海岸带邻近淹没区,迭代计算淹没区数据。
在一个实例中,步骤1031可通过如下具体实现过程实现(如图2A所示):
步骤1,用户通过输入模块14输入一海平面高度变化值。
步骤2,设定初始移动窗口位置。
设定初始移动窗口位置为全部索引范围的西北角,但并不限于西北角。也可以以其他角作为起始点,但分析方向根据起始点的选择而变化,即以起始点所在空间范围的反方向作为分析方向。
步骤3,根据该索引表提取当前移动窗口覆盖的数据集。
即,移动窗口首先确定其所覆盖的索引表的网格单元,通过网格单元中的数据集引用信息,定位实际数据集,从数据集中提取数据,即被移动窗口覆盖的地形单元格的数据。
步骤4,读取地形单元格数据,填充移动窗口的对应单元。
移动窗口包括多个单元(单元的数目依赖于移动窗口的大小和分块地形数据集的数据分辨率),根据每个单元中心点的地理空间位置,在当前移动窗口所提取到的数据集中,提取位于每个单元中心点的地形单元格的数据,也就是地形高程。
提取过程中顺序分析所提取的数据集是否包括该单元中心点位置的数据,如不包括则转至下一个数据集,直至找到能够提供该位置地形高程的数据集,如找不到满足条件的数据集,则标识该单元为空值,在下面的分析中忽略该单元。
由于索引表包括了数据集的相关参数,故而可保证快速、准确定位需要提取的数据集,进而减少处理过程中的数据量和处理量。
步骤5,分析读取的各个地形单元格数据,从中提取海岸带邻近淹没区,提取方法为依次判断所读取的各个地形单元格数据是否同时满足:
a.当前地形单元格是陆地地形单元;
b.高程小于海平面变化后的高程值(海平面原始高程值+海平面高度变化值);
c.在相邻8个地形单元中存在水域单元。
地形单元格的高程值、地形类型均为数据集中存储的地形高程数据。该地形类型包括陆地地形单元、水域单元等。
本步骤中,依照上述方式,依次判断所读取的各个地形单元格,是否为海岸带邻近淹没区。
条件a、b代表当前的地形单元格是陆地且在海平面变化后将被淹没,条件c用于排除内陆低地的地形单元。
步骤6,记录分析结果。
对于移动窗口单元的分析结果将写回提供高程信息的数据集单元格,也就是记录在DEM数据中。
本发明中,移动窗口的分析结果具备两个不同级别,不同级别的分析结果的存储位置不同。数据集级别的分析结果记录在地理空间网格索引表中,单元格级别的分析结果记录在DEM数据集的单元格中。步骤6所得到的分析结果是针对每个地形单元格的数据,故而存储至分块地形数据集的单元格中。
在本发明中,存储于数据存储单元中的是原始DEM数据的拷贝,以避免分析结果破坏原有DEM数据的缺陷。
步骤7,将完全是水域的数据集和海拔完全高于海平面变化高度(原始海平面高程值+海平面高度变化值)的数据集的“完全排除标识位”设定为true。
步骤8,如窗口位置为整个索引的东南角,则结束计算,否则向东顺序移动“移动窗口”至size-1(“size”为窗口大小)位置,如移动至超出空间范围则南移size-1位置,同时在纬向移至最西位置,然后跳至步骤3,循环执行上述步骤。
通过在一个方向上的一次遍历,得到了海岸带邻近淹没区的数据,作为后续判断淹没区的基础。
步骤1032可通过如下具体实现过程实现,如图2B、图2C所示:
顺序以“东南”、“西北”、“东北”、“西南”的方向进行分析遍历。
第一个分析方向取决于选择起始点位置。即,第一个分析方向是起始点位置的反方向。起始点位置在索引范围的西北角,则以“东南”方向作为分析方向。
分析方向的顺序并不限于所列顺序,但对角方向会取得比较好的效果。即,“东南”方向分析完毕后,进行“西北”方向的分析。步骤1032包括:
步骤A,清零索引表中各数据集的“新增淹没地形单元格数”标志位。
步骤B,在一移动方向上,计算淹没区数据,包括:
1)根据当前移动方向的反方向设定初始移动窗口的位置;
如向“东南”方向移动则设置初始移动窗口在索引范围的西北角;
2)根据地理空间网格索引表提取当前移动窗口覆盖的数据集,但跳过“完全排除标识符”为true或“暂时挂起标识位”为true或“完全包含标识位”为true的数据集;
3)读取地形单元格数据,填充移动窗口的对应单元;
该步骤具体实现方法参照前述步骤4;
4)分析各地形单元格,判断是否为淹没区,判断方法为同时满足:
a.当前地形单元格是陆地地形单元;
b.高程小于海平面变化后的高程值;
c.在移动方向反方向的2个地形单元格中存在淹没区或海岸带邻近淹没区。
本步骤中,依照上述方式,依次判断所读取的每个地形单元格,是否属于淹没区。
条件a、b代表当前的地形单元格是陆地且在海平面变化后将被淹没,条件c用于排除内陆低地的地形单元,并且基于淹没区将是一连贯区域的特点,提高确认淹没区的准确度。
5)将一数据集在步骤4)中新添加的淹没区的单元格个数添加到该数据集的“新增淹没地形单元格数”标志位中,如新增地形单元格数大于0,则修改位于当前移动窗口覆盖范围内,且“暂时挂起标识位”为true的数据集的“暂时挂起标识位”为false,并将该数据集加入当前窗口的分析队列;设定被完全淹没(高程值小于海平面变化后的高程值)的数据集的“完全包含标识位”为true。
在该步骤中,只要移动窗口当前覆盖的区域内存在新增的淹没区,则将移动窗口当前覆盖的暂时挂起的数据集重新进行如步骤4)所述的分析处理,以提高淹没区分析的准确性。
6)记录淹没区分析结果;
淹没区分析结果是单元格级别的数据,故而存储至分块地形数据集的单元格中。
7)如未到达当前移动方向的终点,则根据当前移动方向移动“移动窗口”,然后跳至步骤2),如果达到当前移动方向的终点,执行步骤C。
即,如果当前的移动方向为“东南”方向,则当窗口位置位于整个索引的东南角,结束计算,否则向东顺序移动“移动窗口”至size-1(“size”为窗口大小)位置,如移动至超出空间范围则南移size-1位置,同时在纬向移至最西位置,然后跳至步骤2),循环执行上述步骤。
步骤C,设置所有“新增淹没地形单元格数”标志位为0的数据集的“暂时挂起标识位”为true。
步骤D,判断索引表中的所有网格单元是否均具有“完全排除标识位”或“完全包含标识位”或“暂时挂起标识位”(均为true),如果是,结束分析,如果不是,判断所有移动方向是否遍历结束,如果否,设定下一移动方向,执行步骤A,如果是,结束。
通过上述迭代计算的方法,可得到更加精准的淹没区数据。
步骤104进一步包括如下步骤(如图3所示):
步骤201,在淹没区数据中提取所有边界点,形成边界点序列;
步骤202,利用该边界点序列生成边界多边形;
步骤203,从边界多边形中提取淹没区孤岛,形成矢量形式的淹没区边界。
该步骤201的主要实现步骤在于:
通过地理空间网格索引表提取当前移动窗口覆盖的数据集的地形单元数据;
通过判断当前地形单元格是淹没区的地形单元格且相邻地形单元格中存在非淹没区的地形单元格,则确定当前地形单元格是淹没边界地形单元;
将淹没边界地形单元加入边界点序列。
在一个实施例中,步骤201进一步包括具体的提取步骤如下(如图3A所示):
步骤301,设定初始移动窗口位置。
例如为索引范围的西北角,则移动方向为“东南”方向;
步骤302,根据索引表提取当前移动窗口覆盖的数据集,跳过“完全排除标识符”为true或“完全包含标识位”为true的数据集。
步骤303,将提取的数据对应填充移动窗口。
步骤304,分析各地形单元格,判断是否为淹没边界地形单元。
判断方法为同时满足:a.当前地形单元格为淹没区的地形单元;b.相邻的8个地形单元格中存在非淹没区的地形单元格。
该步骤中,依次分析所提取的各个地形单元格,以确认其是否为淹没边界地形单元。
步骤305,将淹没边界地形单元格加入边界点序列。
加入边界点序列的具体数据包括:该地形单元格的地理坐标(该地形单元格中心点)和所属数据集代码加入边界点序列。
步骤306,如未到达当前移动方向的终点,则根据当前移动方向移动“移动窗口”,然后跳至步骤302,如果到达当前移动方向的终点,执行步骤202。
根据当前移动方向移动的方式可参照步骤8的方式实现。
该步骤提取出了淹没区的边界的节点,为后续显示边界步骤的基础。
步骤202的主要实现步骤在于:
从该边界点序列中取出头部的边界点,基于该边界点采用深度优先的方法不断搜索相邻点,形成树状节点关系图;
从根节点开始,计算每个分支的地理空间长度,选择最长的路径形成该边界多边形;
根据每个节点与相邻两个节点的角度,消除该边界多边形中的冗余节点。
在一个实施例中,步骤202进一步包括具体的实现步骤如下(如图3B所示):
步骤401,从序列中取出队列头部的边界点,采用深度优先的方法从队列中搜索并取出该点的相邻点,以及相邻点的相邻点,直至找不到相邻点,形成一个树状的节点关系图。重复该步骤,形成下一个树状节点关系图,直至队列为空。
步骤402,从每个树状节点关系图形成多边形边界。
在一个实施例中,该步骤的具体做法为:从根节点开始,计算每个分支的地理空间长度(即计算每个叶节点经过树状结构到达根节点经过的距离总和),选择最长的路径形成多边形边界。
步骤403,根据角度阈值,优化多边形节点序列,消除全部冗余节点,执行步骤203。
在一个实施例中,该步骤的具体做法为:计算每个节点与相邻两个节点形成的角度,计算与180度的角度差,判断:
|180-A|<=a(A为角度,a为角度阈值)
如满足该条件则剔除该节点。重复直至所有节点均满足该条件。
步骤203的主要实现步骤在于:
按照面积排序所有边界多边形,形成从大到小的多边形队列;
获取所有边界多边形之间的拓扑包含关系;
将被包含的小区域的边界多边形嵌入大区域的边界多边形,形成大区域边界多边形中的淹没区孤岛,形成淹没区边界。
该步骤实现了优化的边界矢量化提取,能够从分析结果中提取矢量化的淹没区域,而且通过指定的角度阈值,能够在保证区域关键形状的前提下,消除淹没区域多边形的冗余节点,得到代表淹没区域的优化形状。所得到的淹没区边界为地理空间数据形式,其可以输出至后续分析处理模块,作为该分析处理过程的初始信息,也可通过绘制为具体边界图形的方式,利用输出模块15进行视觉化的呈现。根据数据绘制图形为本领域的公知技术,在此不赘述。
在一个实施例中,步骤203进一步包括具体的实现步骤如下(如图3C所示):
步骤501,创建一个空的多边形集合;
步骤502,按照面积,对所有多边形进行排序,形成从大到小的多边形队列;
步骤503,从队列中取出一多边形(多边形A),与集合中的多边形进行拓扑关系分析;
即,如多边形A被集合中某个多边形(多边形B)完全空间包含,则将多边形A内嵌到多边形B中,形成多边形B所代表区域的淹没区孤岛;如没有在集合中找到与多边形A存在拓扑包含关系的多边形,将当前多边形A加入集合。
拓扑关系分析为GIS技术中的成熟的技术,在此不赘述。
步骤504,判断队列是否为空,如果否,执行步骤503,如果是,将多边形集合进行输出。
通过上述步骤可得到优化的矢量形式的淹没区边界,能够得到在一整片淹没区中存在的高出海平面的地区,使得淹没区边界的数据更加精确。同时,可利用输出模块15向用户呈现该矢量形式的淹没区边界,即,将淹没区边界的数据绘制为视觉化的边界图形。或者,将淹没区边界的数据输出至后续分析处理模块,作为该分析处理过程的初始信息。
所得到的矢量形式的淹没区边界,还可通过网络连接模块16传输至其他数据处理装置进行远程显示。
本发明进一步公开了一种大量分块地形数据的动态淹没区提取系统。该系统设置于服务器10的数据处理模块11中,如图4所示,为其结构示意图。
大量分块地形数据的动态淹没区提取系统600用于对数据存储模块13中以分块形式存储的分块地形数据集进行分析。
其中包括索引表设立模块601,用于扫描分块地形数据集,建立与分块地形数据集对应的地理空间网格索引表;
移动窗口设定模块602,用于根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;
其包括两种实施方式,一种为根据该数据处理装置的内存资源,接收来自输入模块14的设定参数,该设定参数设定了用于分析该分块地形数据集的移动窗口的大小;另一种为根据预先存储的对照表,根据该数据处理装置的内存资源,自动获取移动窗口的大小。
淹没区计算模块603,利用该移动窗口遍历该索引表,通过该索引表中提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据;
淹没区边界提取模块604,用于从该淹没区数据中提取矢量形式的淹没区边界。
该索引表以网格的形式实现,该网格中的每个网格单元对应一个分块地形数据集,每个网格单元在该网格中的位置对应于该分块地形数据集的地理空间范围,每个网格单元记录该分块地形数据集的参数和分析过程中用到的标识位。
所应用到的参数与标识位参见对方法部分的说明。
淹没区计算模块603进一步包括:一初始化模块6031以及一迭代计算模块6032。
初始化模块6031用于具体实现步骤1-8。
迭代计算模块6032用于具体实现步骤A-D。
其中,该初始化模块6031用于供该移动窗口根据所覆盖的该分块地形数据集之中的地形单元格的高程值、地形类型、周围地形,并根据海平面高度变化值,初始化提取海岸带邻近淹没区;
该迭代计算模块6032用于供该移动窗口从多个不同起点沿不同方向,分别遍历该索引表,利用海岸带邻近淹没区,迭代计算淹没区数据。
淹没区边界提取模块604进一步包括:一边界点提取模块6041,一边界多边形生成模块6042,一淹没区孤岛提取模块6043。
该边界点提取模块6041用于在淹没区数据中提取所有边界点,形成边界点序列;
该边界多边形生成模块6042用于利用该边界点序列生成边界多边形;
该淹没区孤岛提取模块6043用于从边界多边形中提取淹没区孤岛。
所述该边界点提取模块6041用于通过地理空间网格索引表提取当前移动窗口覆盖的数据集的地形单元格数据;通过判断当前地形单元格是否是淹没区的地形单元格且相邻地形单元格中存在非淹没区的地形单元格,确定是否是淹没边界地形单元;将淹没边界地形单元加入边界点序列。
所述该边界点提取模块6041还具体用于执行步骤301-306。
所述边界多边形生成模块6042用于从该边界点序列中取出头部的边界点,基于该边界点采用深度优先的方法不断搜索相邻点,形成树状节点关系图;从根节点开始,计算每个分支的地理空间长度,选择最长的路径形成该边界多边形;根据每个节点与相邻两个节点的角度,消除该边界多边形中的冗余节点。
所述该边界点提取模块6042还具体用于执行步骤401-403。
该淹没区孤岛提取模块6043用于按照面积排序所有边界多边形,形成从大到小的多边形队列;获取所有边界多边形之间的拓扑包含关系;将被包含的小区域的边界多边形嵌入大区域的边界多边形,形成大区域边界多边形中的淹没区孤岛,形成淹没区边界。
该淹没区孤岛提取模块6043还具体用于执行步骤501-504。
(1)通过地理空间网格化索引方法,能够支持数据量大(远超过内存容量)且以数据分块形式存储和管理的地形数据;
(2)通过控制“移动窗口”的大小,能够使该方法适应于不同内存资源条件的软硬件环境;
(3)通过优化的边界矢量化提取方法,能够从本发明的分析结果中提取矢量化的淹没区域,而且通过指定的角度阈值,能够在保证区域关键形状的前提下,消除淹没区域多边形的冗余节点,得到代表淹没区域的优化形状。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (20)
1.一种大量分块地形数据的动态淹没区提取方法,运行于数据处理装置中,用于对以不同分块形式存储的分块地形数据集进行分析,其特征在于,包括如下步骤:
扫描分块地形数据集,为分块地形数据集建立对应的地理空间网格索引表;
根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;
该移动窗口遍历该索引表,通过该索引表提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据输入的海平面高度变化值,计算淹没区数据;
从该淹没区数据中提取矢量形式的淹没区边界。
2.根据权利要求1所述的大量分块地形数据的动态淹没区提取方法,其特征在于,为分块地形数据集建立对应的地理空间网格索引表的步骤包括:
该索引表以空间网格的形式实现,该索引表中的每个网格单元对应一个分块地形数据集,每个网格单元在该索引表中的位置对应于该分块地形数据集的地理空间范围,每个网格单元记录该分块地形数据集的参数和分析过程中用到的标识位。
3.根据权利要求2所述的大量分块地形数据的动态淹没区提取方法,其特征在于,所述计算淹没区数据的步骤进一步包括:
该移动窗口根据该分块地形数据集之中的地形单元格的高程值、地形类型、周围地形,并根据海平面高度变化值,初始化提取海岸带邻近淹没区;
该移动窗口从多个不同起点沿不同方向,分别遍历该索引表,根据该海岸带邻近淹没区,迭代计算淹没区数据。
4.根据权利要求3所述的大量分块地形数据的动态淹没区提取方法,其特征在于,
该参数包括:空间范围、单元格大小和空值的标识;
该标识位包括:完全排除标识位、完全包含标识位、暂时挂起标识位和新增淹没地形单元格数。
5.根据权利要求4所述的大量分块地形数据的动态淹没区提取方法,其 特征在于,所述初始化提取海岸带邻近淹没区的步骤包括:
设定初始移动窗口的起始位置;
根据该索引表提取当前移动窗口覆盖的分块地形数据集;
读取该分块地形数据集中的地形单元格数据;
分析每个地形单元格数据,判断是否同时满足以下条件:是陆地地形单元,高程值小于海平面变化后高程值,相邻地形单元格中存在水域单元;
如果满足,判断为海岸带邻近淹没区,记录分析结果,并移动窗口位置,重新提取当前所覆盖的分块地形数据集进行计算,直至遍历结束。
6.根据权利要求5所述的大量分块地形数据的动态淹没区提取方法,其特征在于,所述初始化提取海岸带邻近淹没区的步骤还包括:
将完全是水域的地形单元和高程值完全高于海平面变化后的高程值的数据集的完全排除标识位设定为true。
7.根据权利要求6所述的大量分块地形数据的动态淹没区提取方法,其特征在于,该移动窗口从多个不同起点沿不同方向,分别遍历该索引表,根据该海岸带邻近淹没区,迭代计算淹没区数据的步骤中,每次迭代均包括以下步骤:
清零各数据集的新增淹没地形单元格数标识位;
根据该分块地形数据集之中的每个地形单元格的高程值、地形类型、周围地形,并根据海平面高度变化值,计算该地形单元格是否为淹没区,记录计算结果,根据计算结果填写标识位;
设置高程值小于海平面变化后的高程值的数据集的完全包含标识位为true;
设置所有新增淹没地形单元格数标识位为0的数据集的暂时挂起标识位为true;
当索引表中的每个网格单元的完全排除标识位、完全包含标识位、暂时挂起标识位中之一的值为true时,结束。
8.根据权利要求7所述的大量分块地形数据的动态淹没区提取方法,其特征在于,该计算该地形单元格是否为淹没区的步骤包括:
判断每个地形单元格是否同时满足以下条件:是陆地地形单元,高程小于海平面变化后高程值,在移动方向的反方向的两个地形单元格中存在淹没区或者海岸带邻近淹没区,如果满足,判断为淹没区。
9.根据权利要求8所述的大量分块地形数据的动态淹没区提取方法,其特征在于,该计算该地形单元格是否为淹没区,记录计算结果,根据计算结果填写标识位的步骤还包括:
将新添加的判断为淹没区的地形单元格个数添加到该数据集的新增淹没地形单元格数标识位中;
如新增地形单元格数大于0,修改位于当前移动窗口覆盖范围内,且暂时挂起标识位为true的数据集的暂时挂起标识位为false,并将该数据集加入当前窗口的分析队列。
10.根据权利要求1所述的大量分块地形数据的动态淹没区提取方法,其特征在于,从该淹没区数据中提取矢量形式的淹没区边界的步骤包括:
在淹没区数据中提取所有边界点,形成边界点序列;
利用该边界点序列生成边界多边形;
从边界多边形中提取淹没区孤岛。
11.根据权利要求10所述的大量分块地形数据的动态淹没区提取方法,其特征在于,在淹没区数据中提取所有边界点,形成边界点序列的步骤包括:
通过地理空间网格索引表提取当前移动窗口覆盖的数据集的地形单元格数据;
通过判断每个地形单元格是否是淹没区的地形单元格且相邻地形单元中存在非淹没区的地形单元格,确定是否是淹没边界地形单元;
将淹没边界地形单元加入边界点序列。
12.根据权利要求10所述的大量分块地形数据的动态淹没区提取方法,其特征在于,所述利用该边界点序列生成边界多边形的步骤包括:
从该边界点序列中取出头部的边界点,基于该边界点采用深度优先的方法不断搜索相邻点,形成树状节点关系图;
从根节点开始,计算每个分支的地理空间长度,选择最长的路径形成该边界多边形;
根据每个节点与相邻两个节点的角度,消除该边界多边形中的冗余节点。
13.根据权利要求10、11或12所述的大量分块地形数据的动态淹没区提取方法,其特征在于,所述从边界多边形中提取淹没区孤岛的步骤包括:
按照面积排序所有边界多边形,形成从大到小的多边形队列;
获取所有边界多边形之间的拓扑包含关系;
将被包含的小区域的边界多边形嵌入大区域的边界多边形,形成大区域边界多边形中的淹没区孤岛,形成矢量形式的淹没区边界。
14.一种大量分块地形数据的动态淹没区提取系统,设置于数据处理装置中,用于对以不同分块形式存储的分块地形数据集进行分析,其特征在于,包括:
索引表设立模块,用于扫描分块地形数据集,为该分块地形数据集建立对应的地理空间网格索引表;
移动窗口设定模块,用于根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;
淹没区计算模块,利用该移动窗口遍历该索引表,通过该索引表中提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据;
淹没区边界提取模块,用于从该淹没区数据中提取矢量形式的淹没区边界。
15.如权利要求14所述的系统,其特征在于,所述淹没区计算模块包括一初始化模块以及一迭代计算模块;
该初始化模块用于供该移动窗口根据该分块地形数据集之中的地形单元格的高程值、地形类型、周围地形,并根据海平面高度变化值,初始化提取海岸带邻近淹没区;
该迭代计算模块用于供该移动窗口从多个不同起点沿不同方向,分别遍历该索引表,根据该海岸带邻近淹没区,迭代计算淹没区数据。
16.如权利要求14或15所述的系统,其特征在于,该淹没区边界提取模块还包括一边界点提取模块,一边界多边形生成模块,一淹没区孤岛提取模块;
该边界点提取模块用于在淹没区数据中提取所有边界点,形成边界点序列;
该边界多边形生成模块用于利用该边界点序列生成边界多边形;
该淹没区孤岛提取模块用于从边界多边形中提取淹没区孤岛。
17.如权利要求16所述的系统,其特征在于,所述该边界点提取模块用于通过地理空间网格索引表提取当前移动窗口覆盖的数据集的地形单元格数 据;通过判断当前地形单元格是否是淹没区的地形单元格且相邻地形单元格中存在非淹没区的地形单元格,确定是否是淹没边界地形单元;将淹没边界地形单元加入边界点序列。
18.如权利要求16所述的系统,其特征在于,所述边界多边形生成模块用于从该边界点序列中取出头部的边界点,基于该边界点采用深度优先的方法不断搜索相邻点,形成树状节点关系图;从根节点开始,计算每个分支的地理空间长度,选择最长的路径形成该边界多边形;根据每个节点与相邻两个节点的角度,消除该边界多边形中的冗余节点。
19.如权利要求16所述的系统,其特征在于,该淹没区孤岛提取模块用于按照面积排序所有边界多边形,形成从大到小的多边形队列;获取所有边界多边形之间的拓扑包含关系;将被包含的小区域的边界多边形嵌入大区域的边界多边形,形成大区域边界多边形中的淹没区孤岛,形成淹没区边界。
20.一种大量分块地形数据的动态淹没区提取装置,其特征在于,包括数据处理模块,输入模块、输出模块、内存模块、数据存储模块,数据存储模块中存储有以不同分块形式存储的分块地形数据集,该数据处理模块中包括:
索引表设立模块,用于扫描数据存储模块中的数据集,并为数据集建立对应的地理空间网格索引表;
移动窗口设定模块,用于根据该数据处理装置的内存资源,设定用于分析该分块地形数据集的移动窗口的大小;
淹没区计算模块,利用该移动窗口遍历该索引表,通过该索引表中提取空间范围与移动窗口覆盖的空间范围重叠的分块地形数据集的数据,并根据用户输入的海平面高度变化值,计算淹没区数据;
淹没区边界提取模块,用于从该淹没区数据中提取矢量形式的淹没区边界。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100902067A CN101630366B (zh) | 2009-07-31 | 2009-07-31 | 大量分块地形数据的动态淹没区提取方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100902067A CN101630366B (zh) | 2009-07-31 | 2009-07-31 | 大量分块地形数据的动态淹没区提取方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101630366A CN101630366A (zh) | 2010-01-20 |
CN101630366B true CN101630366B (zh) | 2011-07-27 |
Family
ID=41575469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100902067A Active CN101630366B (zh) | 2009-07-31 | 2009-07-31 | 大量分块地形数据的动态淹没区提取方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101630366B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436463B (zh) * | 2011-08-31 | 2013-05-01 | 航天恒星科技有限公司 | 一种导航数据转换中内存管理的方法 |
CN102298640B (zh) * | 2011-09-14 | 2013-07-10 | 清华大学 | 一种地图显示数据预处理方法 |
CN103256914B (zh) * | 2012-12-27 | 2015-11-18 | 北京地拓科技发展有限公司 | 一种基于dem计算淤地坝淹没面积的方法及系统 |
CN103684942B (zh) * | 2013-12-03 | 2016-09-21 | 天津市普迅电力信息技术有限公司 | 一种拓扑网络的两级分块方法 |
CN106875486B (zh) * | 2017-02-22 | 2020-04-07 | 哈尔滨工程大学 | 一种基于节点信息量统计的多波束地形分块方法 |
CN108809944B (zh) * | 2018-05-15 | 2021-03-19 | 北京维艾思气象信息科技有限公司 | 一种交通气象平台数据传输方法及传输系统 |
CN110075520B (zh) * | 2019-04-24 | 2020-05-01 | 苏州亿歌网络科技有限公司 | 在游戏地图中快捷搜索资源的方法、系统及装置 |
CN110083673B (zh) * | 2019-04-30 | 2020-12-15 | 河海大学 | 一种基于高程散点的河道或堤防智能搜索方法 |
CN111259527B (zh) * | 2020-01-10 | 2023-06-30 | 深圳震有科技股份有限公司 | 基于gis系统的淹没分析方法、智能终端及存储介质 |
CN114723914B (zh) * | 2022-03-15 | 2023-01-24 | 长江水利委员会水文局 | 一种grid型dem生成与组织方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398943A (zh) * | 2008-10-08 | 2009-04-01 | 河海大学 | 基于双层规则化的渠道地面网格模型表示方法 |
CN101441779A (zh) * | 2008-12-26 | 2009-05-27 | 南京师范大学 | 一种海量数字化地形的快速动态绘制方法 |
-
2009
- 2009-07-31 CN CN2009100902067A patent/CN101630366B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398943A (zh) * | 2008-10-08 | 2009-04-01 | 河海大学 | 基于双层规则化的渠道地面网格模型表示方法 |
CN101441779A (zh) * | 2008-12-26 | 2009-05-27 | 南京师范大学 | 一种海量数字化地形的快速动态绘制方法 |
Non-Patent Citations (1)
Title |
---|
刘伟,王德强,赵德鹏.基于数据库的多分辨率地形索引结构的研究.《计算机工程》.2006,第32卷(第22期),31-33. * |
Also Published As
Publication number | Publication date |
---|---|
CN101630366A (zh) | 2010-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101630366B (zh) | 大量分块地形数据的动态淹没区提取方法、装置及系统 | |
Douglas | Experiments to locate ridges and channels to create a new type of digital elevation model | |
CN106845074B (zh) | 建立六边形格网模型的方法、洪水推演模拟方法及其系统 | |
CN111291776B (zh) | 基于众源轨迹数据的航道信息提取方法 | |
CN107918953B (zh) | 基于三维空间的激光扫描电力线点云的提取方法及装置 | |
CN102057368B (zh) | 利用最大连续场在三维体积模型中分布性质 | |
CN102496187B (zh) | 一种基于三角形网格的追踪等值线至边界及断层的方法 | |
CN110046213B (zh) | 一种顾及路径失真纠正与交叉跨越纠正的电力选线方法 | |
CN103886216B (zh) | 一种基于地质矢量信息的多点地质统计方法 | |
CN107092978B (zh) | 一种面向虚拟地球的最短路径分层规划方法 | |
CN108364331A (zh) | 一种等值线生成方法、系统和存储介质 | |
CN115077556A (zh) | 一种基于多维度地图的无人车野战路径规划方法 | |
WO2019019653A1 (zh) | 对地形边界进行提取的设备和方法 | |
CN107391745A (zh) | 大规模空间数据分级快速索引方法和装置 | |
CN113326343B (zh) | 基于多级网格和文件索引的路网数据存储方法及系统 | |
CN113865589A (zh) | 一种基于地形坡度的长距离快速路径规划方法 | |
Jones et al. | The implicit triangulated irregular network and multiscale spatial databases | |
CN110033459B (zh) | 顾及地物完整性的大规模点云快速分块方法 | |
CN110135103B (zh) | 一种采用水流模拟城市自然通风潜力的方法和系统 | |
CN109543278B (zh) | 土地利用变化模拟方法及系统 | |
US11988522B2 (en) | Method, data processing apparatus and computer program product for generating map data | |
CN113570712B (zh) | 一种基于gcn的3d建模优化方法 | |
CN114565730A (zh) | 地图矢量样本的处理方法、设备和计算机可读存储介质 | |
CN113554750A (zh) | 基于gis的喀斯特槽谷顺逆向坡自动识别方法 | |
CN117523063B (zh) | 基于三维空间的高性能射线追踪仿真的渲染方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Feng Min Inventor after: Zhu Yunqiang Inventor after: Song Jia Inventor after: Liao Shunbao Inventor before: Feng Min Inventor before: Song Jia Inventor before: Liao Shunbao Inventor before: Yang Yaping |
|
COR | Change of bibliographic data |
Free format text: CORRECT: INVENTOR; FROM: FENG MIN SONG JIA LIAO SHUNBAO YANG YAPING TO: FENG MIN ZHU YUNQIANG SONG JIA LIAO SHUNBAO |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |