鬼佬大哥大
  • / 10
  • 下載費用:30 金幣  

一種非規則格網數據的快速存儲與查詢方法.pdf

摘要
申請專利號:

CN201510500451.6

申請日:

2015.08.14

公開號:

CN105205095A

公開日:

2015.12.30

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 17/30申請日:20150814|||公開
IPC分類號: G06F17/30 主分類號: G06F17/30
申請人: 中國地質大學(武漢)
發明人: 余翔宇
地址: 430074 湖北省武漢市洪山區魯磨路388號
優先權:
專利代理機構: 湖北武漢永嘉專利代理有限公司 42102 代理人: 唐萬榮
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510500451.6

授權公告號:

||||||

法律狀態公告日:

2019.03.26|||2016.01.27|||2015.12.30

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開了一種非規則格網數據的快速存儲與查詢方法,該方法包括以下步驟:1)格網大數據分布式存儲步驟;2)非規則格網數據加載步驟;3)非規則格網數據查詢步驟;4)格網數據的拼接步驟;5)數據導出步驟。本發明通過分布式的存儲方式提高了數據查詢的效率,在本發明方法的基礎上可實現對格網大數據的方便有效管理。

權利要求書

權利要求書
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坐標序列換算成正常加載情況下(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坐標方向上的序列索引值,按照最初的數據加載順序將數據導出。

2.  根據權利要求1所述的方法,其特征在于,所述步驟1.2)中采用非關系數據庫對分離后的格網數據進行存儲。

說明書

說明書一種非規則格網數據的快速存儲與查詢方法
技術領域
本發明涉及數據存儲技術,尤其涉及一種非規則格網數據的快速存儲與查詢方法。
背景技術
在地球信息科學技術中,地球探測數據一般以格網形式的文件進行存儲。由于文件很大,用戶通常難以進行查詢和提取。而應用傳統的數據庫(特別是關系數據庫)技術進行管理又不可避免的陷入大表問題,即隨著數據量的不斷增長數據越來越難以管理。在地球物理探測數據中,常會使用非規則格網數據。即格網的單元大小不一致,因此難以使用類似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坐標方向上的序列索引值,按照最初的數據加載順序將數據導出。
應當理解的是,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,而所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。

關 鍵 詞:
一種 規則 數據 快速 存儲 查詢 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種非規則格網數據的快速存儲與查詢方法.pdf
鏈接地址:http://www.wwszu.club/p-6405565.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大