CN109325086B - 一种离散地理数据归档管理方法 - Google Patents

一种离散地理数据归档管理方法 Download PDF

Info

Publication number
CN109325086B
CN109325086B CN201810910212.1A CN201810910212A CN109325086B CN 109325086 B CN109325086 B CN 109325086B CN 201810910212 A CN201810910212 A CN 201810910212A CN 109325086 B CN109325086 B CN 109325086B
Authority
CN
China
Prior art keywords
data
precision
node
describes
geographic
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
Application number
CN201810910212.1A
Other languages
English (en)
Other versions
CN109325086A (zh
Inventor
李彭伟
李亚钊
王玉珠
郭婉
梁新媛
刘玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 28 Research Institute
Original Assignee
CETC 28 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 28 Research Institute filed Critical CETC 28 Research Institute
Priority to CN201810910212.1A priority Critical patent/CN109325086B/zh
Publication of CN109325086A publication Critical patent/CN109325086A/zh
Application granted granted Critical
Publication of CN109325086B publication Critical patent/CN109325086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种离散地理数据归档管理方法,包括如下步骤:1、对离散的小数据或文件按统一编码;2、根据统一编码设计高效的检索树,便于快速的查询;3、利用大文件内存映射技术实现快速的读写访问,本发明有效地实现了离散小数据或文件的高效访问以及存储控制。

Description

一种离散地理数据归档管理方法
技术领域
本发明涉及数据归档管理技术领域,具体地说是一种离散地理数据归档管理方法。
背景技术
在当前各种地理信息系统与仿真平台中,广泛的依赖各类地理数据,如描述地貌的影像数据、描述地形的高程数据以及矢量数据等,该类数据在实际使用过程中都是基于区域产生的,很容易产生大量离散的小数据,计算机在处理该类离散的数据时存在存储零碎、读写复杂、效率低下等问题。
发明内容
针对现有离散地理数据使用中存在的问题,本发明公开了一种高效的离散地理数据归档管理方法,该方法基于大量离散的地理数据所包含的位置与精度信息,首先构建全球唯一编码,进而建立高效的索引访问机制,最后利用内存文件映射技术实现了高效的数据实时读写,该方法解决了离散的地理数据使用过程中遇到的存储难、读写复杂、访问效率低下的问题。
本发明公开了种离散地理数据归档管理方法,包括以下步骤:
S1:对离散的地理数据进行空间编码,编码规则根据经纬度栅格和数据精度;
S2:建立四叉树索引机制,利用索引缓存与下标访问方法命中任意一个地理数据的编码,以获取编码内的数据信息;
S3:在得到的数据信息的基础上,利用大文件映射方法,实现数据的读写访问控制;
其中,数据精度可由符合数据特色的信息替代。
所述S1中标准化后的地理数据结构表达为GeoDataStruct:
GeoDataStructi={Lng,Lat,Precision}
其中,GeoDataStructi表示第i个地理数据,Lng表示该数据的地理经度,Lat表示该数据的地理纬度。
所述四叉树索引机制,由根节点和往下裂变的子节点构成,具体包括以下步骤:
S2-1:从全球范围将地球分为东西两个半球,得到两个节点区域:
东半球节点SpacialNodeEast={Precision=0,0°≤Lng≤180°,-90°≤Lat≤90°}
西半球节点SpacialNodewest={Precision=0,-180°≤Lng≤0°,-90°≤Lat≤90°}
东西半球节点自上而下以四叉树的方式裂变,得到子节点;
S2-2:定义描述每个索引节点的数据结构GeoCacheIndex:
GeoCacheIndex={Precision,DataState,CacheID,DataLength,DataAddr,Index,Row,Col,Level,IndexOfParent,IndexOfChildLT,IndexOfChildRT,IndexOfChildLB,Inde xOfChildRB}
其中,Precision描述数据的精度,DataState描述数据的状态,CacheID描述对应的归档文件号,DataLength描述数据长度,DataAddr表示数据地址,Index描述节点索引号,Row为基于纬度计算得出的行号,Col为基于经度计算得出的列号,Level为根据Precision计算得出的层号,IndexOfParent描述父节点索引号,IndexOfChildLT描述左上角孩子节点索引号,IndexOfChildRT描述右上角节点索引号,IndexOfChildLB描述左下角孩子节点索引号,IndexOfChildRB描述右下角孩子节点索引号;
S2-3:建立一个GeoCacheIndex数组TreeNodes,数组初始时所有数据状态为空,随着四叉树的建立该数组逐步填充;
S2-4:根据新到的数据请求,根据其经纬度选择相应的半球节点向下遍历,节点不存在时则创建,记当前TreeNodes的数组游标为Flag,新建树节点TreeNode。
所述S3中的大文件映射方法具体为:创建一块固定大小的内存块,利用虚拟内存读取整个大文件,再从中取出对应的数据映射到实际内存中,将地理数据GeoData写入到该内存,记录地址到TreeNode.DataAddr中,记录数据长度到TreeNode.DataLength中。
有益效果:本发明与现有技术相比,本发明公开的离散地理数据归档化管理方法的优点在于:
1、根据地理数据包含的区域位置与精度信息进行全球唯一编码,便于对数据的身份认证;
2、基于四叉树的索引机制在工程实践过程中加以优化,利用索引缓存技术与数组下标直接命中法较好的解决了100万个数组的遍历与访问;
3、利用大文件映射技术对离散的地理数据进行归档化管理,形成一份大的文件,提升了总体的访问效率与存储能力,便于数据安全保密与整体迁移升级。
附图说明
图1是本发明的工作流程图;
图2是本发明的四叉场景树构建示意图;
图3是本发明的索引树节点创建示意图;
图4是本发明的离散小文件映射到归档大文件示意图。
具体实施方式
下面结合附图和实施例进一步阐述本发明。
如图1所示,本发明公开了一种高效的离散地理数据归档化管理方法,包括如下步骤:
S1:分析并读入离散地理数据所包含的所处区域位置与数据精度信息,构建全球唯一的地理编码;
记标准化后的地理数据结构表达为GeoDataStruct:
GeoDataStructi={Lng,Lat,Precision}
其中,GeoDataStructi表示第i个地理数据,Lng表示该数据的地理经度,Lat表示该数据的地理纬度,Precision在本发明中表述为数据精度,但在具体事件中也可设置为数据类型、数据来源等信息,主要用于建立符合数据特色的全球唯一编码。
S2:构建基于四叉树的索引机制,并在该机制的具体实践中利用索引缓存与下标访问方法,使得算法能在0.01秒内快速的命中任意一个地理数据的编码,进而获得该编码内数据的详细信息;
四叉树索引机制,其由根节点和往下裂变的子节点构成,该机制能快速的实现地理数据的命中访问,四叉树构建过程如下:
首先,从全球范围将地球分为东西两个半球,得到如下两个节点区域:
东半球节点SpacialNodeEast={Precision=0,0°≤Lng≤180°,-90°≤Lat≤90°}
西半球节点SpacialNodewest={Precision=0,-180°≤Lng≤0°,-90°≤Lat≤90°}
上述公式意义表述为在基础层,东半球经度范围为0到180度,纬度范围为-90到90度,西半球经度范围为-180到0度,纬度为-90度到90度。
随着Precision的增大,各节点自上而下以四叉树的方式裂变。即子节点的经纬度范围是上一层节点的1/4,见四叉场景树构建示意图。
其次,定义描述每个索引节点的数据结构GeoCacheIndex:
GeoCacheIndex={Precision,DataState,CacheID,DataLength,DataAddr,Index,Row,Col,Level,IndexOfParent,IndexOfChildLT,IndexOfChildRT,IndexOfChildLB,Inde xOfChildRB}
其中,Precision描述数据的精度,DataState描述数据的状态(存在、不存在、未知三种状态),CacheID描述对应的归档文件号,DataLength描述数据长度,DataAddr表示数据地址,Index描述节点索引号,Row为基于纬度计算得出的行号,Col为基于经度计算得出的列号,Level为根据Precision计算得出的层号,IndexOfParent描述父节点索引号,IndexOfChildLT描述左上角孩子节点索引号,IndexOfChildRT描述右上角节点索引号,IndexOfChildLB描述左下角孩子节点索引号,IndexOfChildRB描述右下角孩子节点索引号。
其次,建立一个长度为1024*100的GeoCacheIndex数组TreeNodes[1024*100],初始时所有数据状态为空,随着四叉树的建立该数组逐步填充。
根据新到的数据请求,根据其经纬度位置选择相应的半球节点向下遍历,节点不存在时则创建,记当前TreeNodes的数组游标为Flag(Flag初始为0,实际值为1024*100减去当前数据容量,如经过建立东西半球节点则Flag为2),新建树节点TreeNode。
假设某地理数据GeoData的经纬度范围在东半球,数据精度比根节点更加精细,则根据精细程度向下建立N层新的节点,N的计算过程根据Precision的应用场景决定,本案例中N=512/Precision。本案例中N为2,则首先找到EastRootTreeNode,再根据其范围决定具体在哪个孩子节点中,假设在左下角孩子节点中,则EastRootTreeNode.IndexOfChildID=TreeNode.Index,后续再为TreeNode创建相应的孩子节点,同时修改TreeNode的孩子节点索引,具体详见图3。
S3:基于数据编码信息,利用大文件内存映射技术,可以快速的实现数据的读写与访问控制,其读写速度均控制在50毫秒之内,在写数据时,通过建立本地大文件的方法,将离散的数据写入大文件,在本实施例中将单个大文件大小设置为512M。
首先根据TreeNode的CacheID访问到相应的归档文件,其中会使用到大文件映射技术,其原理是:创建一块固定大小的内存块,大小与具体的地理数据类型有关,本案例中取为10M,利用虚拟内存读取整个大文件,再从中取出对应的数据映射到实际内存中,将GeoData写入到该内存,记录地址到TreeNode.DataAddr中,记录数据长度到TreeNode.DataLength中,具体详见图4。

Claims (2)

1.一种离散地理数据归档管理方法,其特征在于:包括以下步骤:
S1:对离散的地理数据进行空间编码,编码规则根据经纬度栅格和数据精度;
S2:建立四叉树索引机制,利用索引缓存与下标访问方法命中任意一个地理数据的编码,以获取编码内的数据信息;
S3:在得到的数据信息的基础上,利用大文件映射方法,实现数据的读写访问控制;
其中,数据精度可由符合数据特色的信息替代;
所述S1中标准化后的地理数据结构表达为GeoDataStruct:
GeoDataStructi={Lng,Lat,Precision}
其中,GeoDataStructi表示第i个地理数据,Lng表示该数据的地理经度,Lat表示该数据的地理纬度,Precision表示数据的精度;
所述四叉树索引机制,由根节点和往下裂变的子节点构成,具体包括以下步骤:
S2-1:从全球范围将地球分为东西两个半球,得到两个节点区域:
东半球节点SpacialNodeEast={Precision=0,0°≤Lng≤180°,-90°≤Lat≤90°}
西半球节点SpacialNodewest={Precision=0,-180°≤Lng≤0°,-90°≤Lat≤90°}
东西半球节点自上而下以四叉树的方式裂变,得到子节点;
S2-2:定义描述每个索引节点的数据结构GeoCacheIndex:
GeoCacheIndex={Precision,DataState,CacheID,DataLength,DataAddr,Index,Row,Col,Level,IndexOfParent,IndexOfChildLT,IndexOfChildRT,IndexOfChildLB,IndexOfChildRB}
其中,Precision描述数据的精度,DataState描述数据的状态,CacheID描述对应的归档文件号,DataLength描述数据长度,DataAddr表示数据地址,Index描述节点索引号,Row为基于纬度计算得出的行号,Col为基于经度计算得出的列号,Level为根据Precision计算得出的层号,IndexOfParent描述父节点索引号,IndexOfChildLT描述左上角孩子节点索引号,IndexOfChildRT描述右上角节点索引号,IndexOfChildLB描述左下角孩子节点索引号,IndexOfChildRB描述右下角孩子节点索引号;
S2-3:建立一个GeoCacheIndex数组TreeNodes,数组初始时所有数据状态为空,随着四叉树的建立该数组逐步填充;
S2-4:根据新到的数据请求,根据其经纬度位置选择相应的半球节点向下遍历,节点不存在时则创建,记当前TreeNodes的数组游标为Flag,新建树节点TreeNode。
2.根据权利要求1所述的一种离散地理数据归档管理方法,其特征在于:所述S3中的大文件映射方法具体为:创建一块固定大小的内存块,利用虚拟内存读取整个大文件,再从中取出对应的数据映射到实际内存中,将地理数据GeoData写入到该内存,记录地址到TreeNode.DataAddr中,记录数据长度到TreeNode.DataLength中。
CN201810910212.1A 2018-08-10 2018-08-10 一种离散地理数据归档管理方法 Active CN109325086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810910212.1A CN109325086B (zh) 2018-08-10 2018-08-10 一种离散地理数据归档管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810910212.1A CN109325086B (zh) 2018-08-10 2018-08-10 一种离散地理数据归档管理方法

Publications (2)

Publication Number Publication Date
CN109325086A CN109325086A (zh) 2019-02-12
CN109325086B true CN109325086B (zh) 2021-01-26

Family

ID=65263409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810910212.1A Active CN109325086B (zh) 2018-08-10 2018-08-10 一种离散地理数据归档管理方法

Country Status (1)

Country Link
CN (1) CN109325086B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750708A (zh) * 2013-12-27 2015-07-01 华为技术有限公司 一种时空数据的索引建立方法、查询方法、装置及设备
CN106933833A (zh) * 2015-12-30 2017-07-07 中国科学院沈阳自动化研究所 一种基于空间索引技术的位置信息快速查询方法
CN106991149A (zh) * 2017-03-28 2017-07-28 桂林电子科技大学 一种融合编码和多版本数据的海量空间对象存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2589931B1 (en) * 2011-11-07 2016-06-29 Elektrobit Automotive GmbH Technique for structuring navigation data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750708A (zh) * 2013-12-27 2015-07-01 华为技术有限公司 一种时空数据的索引建立方法、查询方法、装置及设备
CN106933833A (zh) * 2015-12-30 2017-07-07 中国科学院沈阳自动化研究所 一种基于空间索引技术的位置信息快速查询方法
CN106991149A (zh) * 2017-03-28 2017-07-28 桂林电子科技大学 一种融合编码和多版本数据的海量空间对象存储方法

Also Published As

Publication number Publication date
CN109325086A (zh) 2019-02-12

Similar Documents

Publication Publication Date Title
EP1429263B1 (en) Method for organizing map data
CN104252489B (zh) 一种根据经纬度数据快速获得位置文字描述信息的方法
CN105630968A (zh) 面向Cassandra的分布式可扩展四叉树索引机制及基于该机制的查询方法
CN105138560A (zh) 基于多级空间索引技术的分布式空间矢量数据管理方法
CN113946700A (zh) 一种时空索引构建方法、装置、计算机设备及存储介质
CN110909093B (zh) 智慧地标控制网的构建方法及装置
JP2022024065A (ja) マルチ解像度画像システム
CN111291016A (zh) 一种海量遥感影像数据分层混合存储与索引方法
CN111475597B (zh) 非刚性网格编码、空间对象唯一标识、查询方法及装置
CN111723096B (zh) 一种集成GeoHash和Quadtree的空间数据索引方法
CN109614454B (zh) 一种基于mpi的矢量大数据并行空间叠置分析方法
CN113269870B (zh) 一种基于三维剖分网格的多分辨率数字地形集成方法
CN111552694A (zh) 一种自适应地理空间网格索引方法
CN108920499A (zh) 一种面向周期性检索的时空轨迹索引与检索方法
CN106991149B (zh) 一种融合编码和多版本数据的海量空间对象存储方法
CN108205562A (zh) 地理信息系统的定位数据存储、检索方法及其装置
CN102663028A (zh) 一种适用于全球数字高程模型和遥感影像数据快速空间索引的方法
CN115687675A (zh) 一种机载矢量地图数据处理方法
CN110533764B (zh) 面向建筑群的分形四叉树纹理组织方法
CN113326343B (zh) 基于多级网格和文件索引的路网数据存储方法及系统
CN114398459A (zh) 一种面向船舶定位数据的时空网格与树融合的存储方法
CN109325086B (zh) 一种离散地理数据归档管理方法
CN110475204B (zh) 一种地理围栏逆地址解析方法、装置及设备
CN109827585B (zh) 一种快速填补栅格地图中凹形区域的方法
CN115408382B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No.1 Lingshan South Road, Qixia District, Nanjing City, Jiangsu Province 210046

Applicant after: THE 28TH RESEARCH INSTITUTE OF CHINA ELECTRONICS TECHNOLOGY Group Corp.

Address before: 210000 No. 1 East Garden Street, Qinhuai District, Jiangsu, Nanjing

Applicant before: THE 28TH RESEARCH INSTITUTE OF CHINA ELECTRONICS TECHNOLOGY Group Corp.

GR01 Patent grant
GR01 Patent grant