CN105205095B - 一种非规则格网数据的快速存储与查询方法 - Google Patents
一种非规则格网数据的快速存储与查询方法 Download PDFInfo
- Publication number
- CN105205095B CN105205095B CN201510500451.6A CN201510500451A CN105205095B CN 105205095 B CN105205095 B CN 105205095B CN 201510500451 A CN201510500451 A CN 201510500451A CN 105205095 B CN105205095 B CN 105205095B
- Authority
- CN
- China
- Prior art keywords
- xsize
- ysize
- grid
- data
- sequence
- 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.)
- Expired - Fee Related
Links
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种非规则格网数据的快速存储与查询方法,该方法包括以下步骤:1)格网大数据分布式存储步骤;2)非规则格网数据加载步骤;3)非规则格网数据查询步骤;4)格网数据的拼接步骤;5)数据导出步骤。本发明通过分布式的存储方式提高了数据查询的效率,在本发明方法的基础上可实现对格网大数据的方便有效管理。
Description
技术领域
本发明涉及数据存储技术,尤其涉及一种非规则格网数据的快速存储与查询方法。
背景技术
在地球信息科学技术中,地球探测数据一般以格网形式的文件进行存储。由于文件很大,用户通常难以进行查询和提取。而应用传统的数据库(特别是关系数据库)技术进行管理又不可避免的陷入大表问题,即随着数据量的不断增长数据越来越难以管理。在地球物理探测数据中,常会使用非规则格网数据。即格网的单元大小不一致,因此难以使用类似grd的标准格网文件格式进行存储,只能使用(x-y-z-data)的形式一行行的将数据记录下来。此外,对于三维非规则格网,数据的记录顺序也比较灵活,有些采用沿Z方向的XY平面逐层记录;有些采用沿Y方向的XZ剖面逐层记录。如何存储和管理非规则格网数据是一个亟待解决的难题。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种非规则格网数据的快速存储与查询方法。
本发明解决其技术问题所采用的技术方案是:一种非规则格网数据的快速存储与查询方法,包括以下步骤:
1)格网大数据分布式存储步骤
1.1)将格网数据分离为格网元数据与格网属性数据;
非规则格网元数据内容包括:[格网ID、格网范围、XYZ方向坐标序列、数据加载顺序标识];
其中,
格网ID由格网产生时间及其类型编码生成,XYZ方向坐标序列记录了格网在X,Y,Z方向上的投影坐标;
格网属性数据内容包括:[数据ID、数据值单位描述、属性值];
其中,
数据ID由格网ID值与数据在格网中的加载顺序/索引组合而成;
1.2)对分离后的格网数据分布式存储;
2)非规则格网数据加载步骤
2.1)根据数据加载顺序标识对非规则格网数据进行预读取,判断出非规则格网数据的加载顺序;
2.2)检测相邻两行格网数据记录的x、y、z分量,记录发生变化的位置分量和对应的分量坐标序列;
2.3)遍历所有数据,完成数据的加载,并得到整个非规则格网的范围;
3)非规则格网数据查询步骤;
3.1)获取用户在屏幕视图坐标系中需查询数据的XY坐标;
3.2)根据该非规则格网的XY坐标序列换算成正常加载情况下(x-y-z顺序)的待查询数据在格网中的索引值;
3.3)根据非规则格网数据自身的加载顺序来换算成真实的数据索引值:
若加载顺序为x_y_z,真实的数据索引值为i;
若加载顺序为x_z_y,真实的数据索引值为(((i%(xSize*ySize))/xSize)*(xSize*zSize)+(i/(xSize*ySize))*xSize+i%xSize;
若加载顺序为y_x_z,真实的数据索引值为(i%xSize)*(ySize*xSize)+(i/(ySize*xSize))*ySize+(i%(ySize*xSize))/xSize;
若加载顺序为y_z_x,真实的数据索引值为(i%xSize)*(ySize*zSize)+(i/(xSize*ySize))*ySize+(i%(ySize*xSize))/xSize;
若加载顺序为z_x_y,真实的数据索引值为((i%(xSize*ySize))/xSize)*(xSize*zSize)+(i%xSize)*zSize+i/(xSize*ySize);
若加载顺序为z_y_x,真实的数据索引值为(i%xSize)*(zSize*ySize)+((i%(xSize*ySize))/xSize)*zSize+i/(xSize*ySize);
其中,%为取余数运算符;
i为数据加载顺序为x-y-z时的数据索引值,xSize,ySize,zSize分别代表三个坐标方向上的坐标序列个数)
4)格网数据的拼接步骤
4.1)确定拼接后的目标格网的格网范围;
4.2)选择待拼接格网
4.3)确定拼接边缘;
4.4)完成格网拼接;
5)数据导出步骤
5.1)分别确定XYZ坐标方向上的序列索引值
若最初的加载顺序为x_y_z,XYZ坐标序列索引值为xi=i%xSize;yi=(i%(xSize*ySize))/xSize;zi=i/(xSize*ySize);
若最初的加载顺序为x_z_y,XYZ坐标序列索引值为xi=i%xSize;yi=i/(xSize*zSize);zi=(i%(xSize*zSize))/xSize;
若最初的加载顺序为y_x_z,XYZ坐标序列索引值为xi=(i%(ySize*xSize))/ySize;yi=i%ySize;zi=i/(ySize*xSize);
若最初的加载顺序为y_z_x,XYZ坐标序列索引值为xi=i/(ySize*zSize);yi=i%ySize;zi=(i%(ySize*zSize))/ySize;
若最初的加载顺序为z_x_y,XYZ坐标序列索引值为xi=(i%(zSize*xSize))/zSize;yi=i/(zSize*xSize);zi=i%zSize;
若最初的加载顺序为z_y_x,XYZ坐标序列索引值为xi=i/(zSize*ySize);yi=(i%(zSize*ySize))/zSize;zi=i%zSize;
其中,i为数据索引值;xi,yi,zi分别对应于三个坐标方向上的序列索引值;xSize,ySize,zSize为它们在XYZ三个方向上的坐标序列个数;
5.2)根据确定的XYZ坐标方向上的序列索引值,按照最初的数据加载顺序将数据导出。
本发明产生的有益效果是:本发明通过分布式的存储方式提高了数据查询的效率,在本发明基础上可实现对格网大数据的方便有效管理。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的格网大数据分布式存储方法示意图;
图2是本发明实施例的非规则格网数据的非规则格网数据的加载方法流程图;
图3是本发明实施例的格网大数据拼接实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
一种非规则格网数据的快速存储与查询方法,包括以下步骤:
1)格网大数据分布式存储步骤,本发明中对格网大数据进行解析与存储方法见图1;
1.1)将格网数据分离为格网元数据与格网属性数据;
非规则格网元数据内容包括:[格网ID、格网范围、XYZ方向坐标序列、数据加载顺序标识];
其中,
格网ID由格网产生时间及其类型编码生成,XYZ方向坐标序列记录了格网在X,Y,Z方向上的投影坐标;格网范围则针对XY平面范围,分为经纬度和80大地坐标两种方式来进行记录,Z方向以米为单位进行记录。
格网属性数据内容包括:[数据ID、数据值单位描述、属性值];
其中,
数据ID由格网ID值与数据在格网中的加载顺序/索引组合而成;数据值单位描述采用2个字符来表示一种用户定好的计量单位标识;
1.2)对分离后的数据分布式存储;
这些信息由于模式不确定,适合采用Nosql进行组织(如MongoDB)。
2)非规则格网数据加载步骤
2.1)根据数据加载顺序标识对非规则格网数据进行预读取,判断出非规则格网数据的加载顺序;
2.2)检测相邻两行格网数据记录的x、y、z分量,记录发生变化的位置分量和对应的分量坐标序列;
2.3)遍历所有数据,完成数据的加载,并得到整个非规则格网的范围;
非规则格网数据的加载方法参加图2。图2主要以二维非规则格网的数据加载为例,如果对于三维非规则格网,则需要一直检测到第三个位置分量发生变化为止。以二叉排序树将提取出的XYZ坐标序列值进行存储,既可以防止坐标值的重复又可以快速得到XYZ坐标序列值的范围即得到整个非规则格网的范围。
3)非规则格网数据查询步骤;
3.1)获取用户在屏幕视图坐标系中需查询数据的XY坐标;
3.2)根据该非规则格网的XY坐标序列换算成正常加载情况下(x-y-z顺序)的待查询数据在格网中的索引值;
3.3)根据非规则格网数据自身的加载顺序来换算成真实的数据索引值:
若加载顺序为x_y_z,真实的数据索引值为i;
若加载顺序为x_z_y,真实的数据索引值为(((i%(xSize*ySize))/xSize)*(xSize*zSize)+(i/(xSize*ySize))*xSize+i%xSize;
若加载顺序为y_x_z,真实的数据索引值为(i%xSize)*(ySize*xSize)+(i/(ySize*xSize))*ySize+(i%(ySize*xSize))/xSize;
若加载顺序为y_z_x,真实的数据索引值为(i%xSize)*(ySize*zSize)+(i/(xSize*ySize))*ySize+(i%(ySize*xSize))/xSize;
若加载顺序为z_x_y,真实的数据索引值为((i%(xSize*ySize))/xSize)*(xSize*zSize)+(i%xSize)*zSize+i/(xSize*ySize);
若加载顺序为z_y_x,真实的数据索引值为(i%xSize)*(zSize*ySize)+((i%(xSize*ySize))/xSize)*zSize+i/(xSize*ySize);
其中,
i为数据加载顺序为x-y-z时的数据索引值,xSize,ySize,zSize分别代表三个坐标方向上的坐标序列个数)
4)格网数据的拼接步骤,格网数据的拼接实现参见图3
4.1)确定拼接后的目标格网的格网范围;
4.2)选择待拼接格网
4.3)确定拼接边缘;
4.4)完成格网拼接;
5)数据导出步骤
5.1)分别确定XYZ坐标方向上的序列索引值
若最初的加载顺序为x_y_z,XYZ坐标序列索引值为xi=i%xSize;yi=(i%(xSize*ySize))/xSize;zi=i/(xSize*ySize);
若最初的加载顺序为x_z_y,XYZ坐标序列索引值为xi=i%xSize;yi=i/(xSize*zSize);zi=(i%(xSize*zSize))/xSize;
若最初的加载顺序为y_x_z,XYZ坐标序列索引值为xi=(i%(ySize*xSize))/ySize;yi=i%ySize;zi=i/(ySize*xSize);
若最初的加载顺序为y_z_x,XYZ坐标序列索引值为xi=i/(ySize*zSize);yi=i%ySize;zi=(i%(ySize*zSize))/ySize;
若最初的加载顺序为z_x_y,XYZ坐标序列索引值为xi=(i%(zSize*xSize))/zSize;yi=i/(zSize*xSize);zi=i%zSize;
若最初的加载顺序为z_y_x,XYZ坐标序列索引值为xi=i/(zSize*ySize);yi=(i%(zSize*ySize))/zSize;zi=i%zSize;
其中,i为数据索引值;xi,yi,zi分别对应于三个坐标方向上的序列索引值;xSize,ySize,zSize为它们在XYZ三个方向上的坐标序列个数;
5.2)根据确定的XYZ坐标方向上的序列索引值,按照最初的数据加载顺序将数据导出。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (2)
1.一种非规则格网数据的快速存储与查询方法,其特征在于,包括以下步骤:
1)格网大数据分布式存储步骤
1.1)将格网数据分离为格网元数据与格网属性数据;
非规则格网元数据内容包括:格网ID、格网范围、XYZ方向坐标序列、数据加载顺序标识;
其中,
格网ID由格网产生时间及其类型编码生成,XYZ方向坐标序列记录了格网在X,Y,Z方向上的投影坐标;
格网属性数据内容包括:数据ID、数据值单位描述、属性值;
其中,
数据ID由格网ID值与数据在格网中的加载顺序/索引组合而成;
1.2)对分离后的格网数据分布式存储;
2)非规则格网数据加载步骤;
2.1)根据数据加载顺序标识对非规则格网数据进行预读取,判断出非规则格网数据的加载顺序;
2.2)检测相邻两行格网数据记录的x、y、z分量,记录发生变化的位置分量和对应的分量坐标序列;
2.3)遍历所有数据,完成数据的加载,并得到整个非规则格网的范围;
3)非规则格网数据查询步骤;
3.1)获取用户在屏幕视图坐标系中需查询数据的XY坐标;
3.2)根据该非规则格网的XY坐标序列换算成正常加载情况下的待查询数据在格网中的索引值;
3.3)根据非规则格网数据自身的加载顺序来换算成真实的数据索引值:
若加载顺序为x_y_z,真实的数据索引值为i;
若加载顺序为x_z_y,真实的数据索引值为(((i%(xSize*ySize))/xSize)*(xSize*zSize)+(i/(xSize*ySize))*xSize+i%xSize;
若加载顺序为y_x_z,真实的数据索引值为(i%xSize)*(ySize*xSize)+(i/(ySize*xSize))*ySize+(i%(ySize*xSize))/xSize;
若加载顺序为y_z_x,真实的数据索引值为(i%xSize)*(ySize*zSize)+(i/(xSize*ySize))*ySize+(i%(ySize*xSize))/xSize;
若加载顺序为z_x_y,真实的数据索引值为((i%(xSize*ySize))/xSize)*(xSize*zSize)+(i%xSize)*zSize+i/(xSize*ySize);
若加载顺序为z_y_x,真实的数据索引值为(i%xSize)*(zSize*ySize)+((i%(xSize*ySize))/xSize)*zSize+i/(xSize*ySize);
其中,
i为数据加载顺序为x-y-z时的数据索引值,xSize,ySize,zSize分别代表三个坐标方向上的坐标序列个数;
4)格网数据的拼接步骤
4.1)确定拼接后的目标格网的格网范围;
4.2)选择待拼接格网
4.3)确定拼接边缘;
4.4)完成格网拼接;
5)数据导出步骤
5.1)分别确定XYZ坐标方向上的序列索引值
若最初的加载顺序为x_y_z,XYZ坐标序列索引值为xi=i%xSize;yi=(i%(xSize*ySize))/xSize;zi=i/(xSize*ySize);
若最初的加载顺序为x_z_y,XYZ坐标序列索引值为xi=i%xSize;yi=i/(xSize*zSize);zi=(i%(xSize*zSize))/xSize;
若最初的加载顺序为y_x_z,XYZ坐标序列索引值为xi=(i%(ySize*xSize))/ySize;yi=i%ySize;zi=i/(ySize*xSize);
若最初的加载顺序为y_z_x,XYZ坐标序列索引值为xi=i/(ySize*zSize);yi=i%ySize;zi=(i%(ySize*zSize))/ySize;
若最初的加载顺序为z_x_y,XYZ坐标序列索引值为xi=(i%(zSize*xSize))/zSize;yi=i/(zSize*xSize);zi=i%zSize;
若最初的加载顺序为z_y_x,XYZ坐标序列索引值为xi=i/(zSize*ySize);yi=(i%(zSize*ySize))/zSize;zi=i%zSize;
其中,i为数据索引值;xi,yi,zi分别对应于三个坐标方向上的序列索引值;xSize,ySize,zSize为它们在XYZ三个方向上的坐标序列个数;
5.2)根据确定的XYZ坐标方向上的序列索引值,按照最初的数据加载顺序将数据导出。
2.根据权利要求1所述的方法,其特征在于,所述步骤1.2)中采用非关系数据库对分离后的格网数据进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510500451.6A CN105205095B (zh) | 2015-08-14 | 2015-08-14 | 一种非规则格网数据的快速存储与查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510500451.6A CN105205095B (zh) | 2015-08-14 | 2015-08-14 | 一种非规则格网数据的快速存储与查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105205095A CN105205095A (zh) | 2015-12-30 |
CN105205095B true CN105205095B (zh) | 2019-03-26 |
Family
ID=54952779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510500451.6A Expired - Fee Related CN105205095B (zh) | 2015-08-14 | 2015-08-14 | 一种非规则格网数据的快速存储与查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105205095B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213760B (zh) * | 2018-08-02 | 2021-10-22 | 南瑞集团有限公司 | 非关系数据存储的高负载业务存储及检索方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141999A (zh) * | 2010-02-02 | 2011-08-03 | 武汉大学 | 一种基于虚拟节点的tin-dem储存方法 |
CN104008147A (zh) * | 2014-05-12 | 2014-08-27 | 中国矿业大学(北京) | 三维地质结构模型多体索引构建方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080228783A1 (en) * | 2007-03-14 | 2008-09-18 | Dawn Moffat | Data Partitioning Systems |
JP6032467B2 (ja) * | 2012-06-18 | 2016-11-30 | 株式会社日立製作所 | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム |
-
2015
- 2015-08-14 CN CN201510500451.6A patent/CN105205095B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141999A (zh) * | 2010-02-02 | 2011-08-03 | 武汉大学 | 一种基于虚拟节点的tin-dem储存方法 |
CN104008147A (zh) * | 2014-05-12 | 2014-08-27 | 中国矿业大学(北京) | 三维地质结构模型多体索引构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105205095A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9098591B2 (en) | Spatio-temporal data management system, spatio-temporal data management method, and machine-readable storage medium thereof | |
CN112115198B (zh) | 一种城市遥感智能服务平台 | |
CN105046328A (zh) | 一种三维可视化桥梁病害信息采集管理系统及方法 | |
CN104268083B (zh) | 软件自动化测试方法和装置 | |
CN110750590B (zh) | 管线三维可视化平台自动生成方法 | |
CN103177103A (zh) | 一种三维地理信息系统管理平台 | |
CN105843982B (zh) | 用于可编程逻辑器件的位流生成方法、装置及设计系统 | |
US20170186225A1 (en) | Method and apparatus for generating a composite indexable linear data structure to permit selection of map elements based on linear elements | |
CN103617168A (zh) | 一种通用的元数据校验及导出方法 | |
CN104462539A (zh) | 一种勘探原始资料的三维可视化管理方法 | |
CN105205095B (zh) | 一种非规则格网数据的快速存储与查询方法 | |
CN106202237B (zh) | 一种产业项目区域地图绘制方法及其系统 | |
CN104636401A (zh) | 一种scada系统数据回滚的方法及装置 | |
CN110310278A (zh) | 基于余量切割法的滑动窗口扫描方法 | |
CN111581217B (zh) | 数据检测方法、装置、计算机设备和存储介质 | |
CN104881425A (zh) | 一种WebGIS地图优化分级加载数万级摄像头的方法 | |
CN108614836A (zh) | 一种基于Hbase的时空数据管理方法 | |
CN103136782B (zh) | 一种三维模型地图动态渲染方法及装置 | |
CN105335459A (zh) | 基于xbrl智能报告平台的合并报表数据抽取方法 | |
US20190370954A1 (en) | Measurement information integrating device and program | |
CN105653565A (zh) | 一种数据核查方法和数据核查装置 | |
CN105183942B (zh) | 一种新型地震目录持久化及可视化方法 | |
CN105786990B (zh) | 数据库数据存储和快速查询的方法及装置 | |
US20150364118A1 (en) | Attribute based map marker clustering | |
CN114925153A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190326 Termination date: 20190814 |
|
CF01 | Termination of patent right due to non-payment of annual fee |