一種基於內存資料庫Redis的土地利用矢量數據存儲方法
2023-12-08 20:46:16
一種基於內存資料庫Redis的土地利用矢量數據存儲方法
【專利摘要】本發明公開了一種基於內存資料庫Redis的土地利用矢量數據存儲方法,該方法採用內存資料庫Redis存儲土地利用矢量數據,設計點、線、面三種不同類型的矢量數據統一的存儲結構,實現土地利用矢量數據在內存資料庫中的存儲。根據空間對象的不同,點、線要素空間特徵數據分別設計存儲格式,面要素的空間特徵數據根據邊界是否可由線要素組成分為直接坐標描述和間接坐標描述兩類。本發明在土地利用領域具有重要的實際應用價值,可改變目前磁碟資料庫管理土地利用數據時因I/O開銷而產生的效率不高的現狀,成功地將土地利用矢量數據直接存儲於內存中,可以對數據進行高效的管理和查詢,應用前景較廣。
【專利說明】一種基於內存資料庫Redis的土地利用矢量數據存儲方法
【技術領域】
[0001 ] 本發明涉及GIS (地理信息系統)的矢量數據存儲【技術領域】,尤其涉及一種基於內存資料庫Redis的土地利用矢量數據存儲方法。
【背景技術】
[0002]自2009年10月31日完成第二次全國土地調查後,全國各地每年進行土地變更調查,並將當年數據與上年數據進行比較,生成增量更新數據並對上年數據進行變更,以保持調查成果的現勢性。國土部要求第二次全國土地調查成果實行管理信息化、網絡化,建立和完善土地調查制度、統計制度和登記制度,實現土地資源信息的社會化服務,滿足經濟和社會的發展需求。目前土地利用現狀數據大多採用對象-關係資料庫這一類型磁碟資料庫(Disk Resident Database, DRDB)同時管理圖形數據和屬性數據。然而土地利用現狀數據複雜度高、數據量大、變化速度快,Oracle, SQL Server等磁碟資料庫對數據的查詢與管理需要頻繁地訪問磁碟,大量的I/O操作所消耗的時間成為制約空間數據實時查詢與管理效率的一個重要因素。
[0003]隨著傳統的磁碟資料庫管理土地利用現狀數據時凸顯出其在實時性和高效性等方面較為薄弱的能力,尋求實時性較高的資料庫產品管理土地利用現狀數據變得十分有意義。硬體技術的發展,內存容量不斷增加,64位處理器等有利條件的出現使得計算機內存容量迅速增長。同時內存價格的下跌也為大容量內存的普及奠定了基礎。大容量內存的出現使整個資料庫全部或者大部分數據常駐內存成為可能,這種資料庫被稱之為內存資料庫(Main Memory Database, MMDB)。內存資料庫系統中命令的執行並不會產生I/O操作,執行中的命令所需的數據集存儲於內存中,而硬碟中的數據只是內存中數據的一個備份。因此利用沒有I/O開銷的內存資料庫管理土地利用矢量數據將提高管理和查詢數據的效率。
[0004]目前,Redis提供用戶字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set or zset)等多種鍵值數據類型來滿足不同的存儲要求。(I)字符串類型,是Redis最基本的數據類型,也是其他四種數據類型的基礎。(2)散列類型存儲字符串類型的欄位(field)和值的映射表,因此能夠存儲鍵的多個屬性數據。(3)列表類型每個子元素都是字符串類型的雙向鍊表。(4)集合類型是不重複的字符串類型數據的無序集合。(5)有序集合類型是在集合類型的基礎上,對每一個元素都關聯一個分數,根據分數對元素進行排序。
【發明內容】
[0005]本發明的目的是克服磁碟資料庫管理空間數據效率不高和內存資料庫未提供空間數據管理模塊等不足,針對土地利用矢量數據這一類空間數據提供一種基於內存資料庫Redis的土地利用矢量數據存儲方法。
[0006]基於內存資料庫Redis的土地利用矢量數據存儲方法包括如下步驟:
[0007]I)基於內存資料庫Redis設計土地利用矢量數據的資料庫結構,採用空間資料庫、空間數據集、圖層和要素四級組織,其中空間資料庫、空間數據集和圖層三級分別存儲相關元數據;
[0008]2)設計土地利用矢量數據存儲方法,點、線、面三種不同類型的矢量數據採用統一的存儲結構,採用hash類型數據結構存儲矢量要素,其中key為矢量要素對應的唯一標示,通過該描述可訪問該矢量要素,field為欄位名,包括集合類型、幾何特徵、屬性特徵1、屬性特徵2……等欄位,value為欄位值,存儲欄位對應值;
[0009]3)點要素空間特徵數據採取統一的存儲格式,直接採用坐標值描述;
[0010]4)線要素空間特徵數據採取統一的存儲格式,線要素的空間特徵用點數和有序的坐標串描述,具體採用「點數即坐標串」形式存儲;
[0011]5)面要素的空間特徵數據根據邊界是否可由線要素組成分為直接坐標描述和間接坐標描述兩類。直接坐標描述類似點要素和線要素的描述方式,直接用坐標值表示,間接坐標描述是指利用構成面要素邊界的線要素唯一標示,即其唯一的key值描述。
[0012]所述的步驟I)為:空間資料庫由空間數據集組成。空間數據集按縣級行政區劃存儲劃分,由圖層組成,土地利用矢量要素根據專題特徵不同存儲於圖層中,空間資料庫元數據包括空間資料庫信息、空間數據集列表和圖層欄位結構,空間數據集元數據包括空間數據集信息、最小外包矩形最小坐標、圖層列表和空間參考,圖層元數據包括圖層名稱和圖層信息。其中空間資料庫信息、圖層欄位結構、空間數據集信息、最小外包矩形最小坐標、空間參考和圖層信息採用hash類型數據結構進行存儲,空間數據集名稱和圖層名稱採用列表類型數據結構進行存儲。
[0013]所述的步驟2)為:土地利用矢量採用hash類型數據結構存儲矢量要素,Key為空間要素對應的唯一標示,通過該描述可訪問該空間要素,命名規則為「空間資料庫名:空間數據集名:圖層名:要素ID」,其中key為矢量要素對應的唯一標示,通過該描述可訪問該矢量要素,field為欄位名,包括集合類型、幾何特徵、屬性特徵1、屬性特徵2……等欄位,value為欄位值,存儲欄位對應值。
[0014]所述的步驟5)為:面要素的空間特徵數據根據邊界是否可由線要素組成分為直接坐標描述和間接坐標描述兩類,直接坐標描述直接用坐標值表示,具體採用「環數即環I點數即環I坐標串,環2點數即環2坐標串,……」形式存儲,間接坐標描述是指利用構成面要素邊界的線要素唯一標示,即其唯一的key值描述,具體採用採用「環數即環I線要素數即環I線要素ID串,環2線要素數即環2線要素ID串,……」形式存儲,土地利用面要素層中,地類圖斑、宗地和行政區可分別用地類界線、界址線和行政區界線進行間接描述,其他面要素層則採用直接坐標描述方式。
[0015]本發明實現了土地利用矢量數據在內存資料庫中的存儲,消除了 I/O操作,提高了土地利用矢量數據的管理和查詢效率,克服了磁碟資料庫管理和存儲土地利用矢量數據時效率不高的問題。
【專利附圖】
【附圖說明】
[0016]圖1是基於Redis的土地利用矢量資料庫結構示意圖;
[0017]圖2是本發明的面要素例示意圖。
【具體實施方式】
[0018]基於內存資料庫Redis的土地利用矢量數據存儲方法包括如下步驟:
[0019]I)基於內存資料庫Redis設計土地利用矢量數據的資料庫結構,採用空間資料庫、空間數據集、圖層和要素四級組織,其中空間資料庫、空間數據集和圖層三級分別存儲相關元數據;
[0020]2)設計土地利用矢量數據存儲方法,點、線、面三種不同類型的矢量數據採用統一的存儲結構,採用hash類型數據結構存儲矢量要素,其中key為矢量要素對應的唯一標示,通過該描述可訪問該矢量要素,field為欄位名,包括集合類型、幾何特徵、屬性特徵1、屬性特徵2……等欄位,value為欄位值,存儲欄位對應值;
[0021]3)點要素空間特徵數據採取統一的存儲格式,直接採用坐標值描述;
[0022]4)線要素空間特徵數據採取統一的存儲格式,線要素的空間特徵用點數和有序的坐標串描述,具體採用「點數即坐標串」形式存儲;
[0023]5)面要素的空間特徵數據根據邊界是否可由線要素組成分為直接坐標描述和間接坐標描述兩類。直接坐標描述類似點要素和線要素的描述方式,直接用坐標值表示,間接坐標描述是指利用構成面要素邊界的線要素唯一標示,即其唯一的key值描述。
[0024]所述的步驟I)為:空間資料庫由空間數據集組成。空間數據集按縣級行政區劃存儲劃分,由圖層組成,土地利用矢量要素根據專題特徵不同存儲於圖層中,空間資料庫元數據包括空間資料庫信息、空間數據集列表和圖層欄位結構,空間數據集元數據包括空間數據集信息、最小外包矩形最小坐標、圖層列表和空間參考,圖層元數據包括圖層名稱和圖層信息。其中空間資料庫信息、圖層欄位結構、空間數據集信息、最小外包矩形最小坐標、空間參考和圖層信息採用hash類型數據結構進行存儲,空間數據集名稱和圖層名稱採用列表類型數據結構進行存儲。
[0025]所述的步驟2)為:土地利用矢量採用hash類型數據結構存儲矢量要素,Key為空間要素對應的唯一標示,通過該描述可訪問該空間要素,命名規則為「空間資料庫名:空間數據集名:圖層名:要素ID」,其中key為矢量要素對應的唯一標示,通過該描述可訪問該矢量要素,field為欄位名,包括集合類型、幾何特徵、屬性特徵1、屬性特徵2……等欄位,value為欄位值,存儲欄位對應值。
[0026]所述的步驟5)為:面要素的空間特徵數據根據邊界是否可由線要素組成分為直接坐標描述和間接坐標描述兩類,直接坐標描述直接用坐標值表示,具體採用「環數即環I點數即環I坐標串,環2點數即環2坐標串,……」形式存儲,間接坐標描述是指利用構成面要素邊界的線要素唯一標示,即其唯一的key值描述,具體採用採用「環數即環I線要素數即環I線要素ID串,環2線要素數即環2線要素ID串,……」形式存儲,土地利用面要素層中,地類圖斑、宗地和行政區可分別用地類界線、界址線和行政區界線進行間接描述,其他面要素層則採用直接坐標描述方式。
[0027]土地利用矢量資料庫按空間資料庫、空間數據集、圖層和要素四級組織,空間資料庫、空間數據集和圖層三級分別存儲相關元數據。建立土地利用矢量資料庫後,土地利用矢量數據按照不同的行政區劃存儲,每個行政區劃建立一個空間數據集,空間數據集內則按照《土地利用資料庫標準》(TD/T 1016-2007)對矢量數據進行分圖層存儲要素。內存資料庫除存儲土地利用矢量數據外,也需要與存儲空間資料庫、空間數據集和圖層等相關的元數據。基於Redis的土地利用矢量資料庫的結構如圖1所示。
[0028]根據元數據信息分為兩類,信息類包括空間資料庫信息、圖層欄位結構、空間數據集信息、MBR最小坐標、空間參考和圖層信息,列表類包括空間數據集列表和圖層列表。信息類元數據採用採用hash類型數據結構進行存儲,其存儲結構示意如表I所示。Key為存儲信息名稱,Field為需存儲信息的欄位名,Value為需存儲信息的值。
[0029]表I
[0030]
KeyFieldValue
_Fl__Vl_
Name_F2__V2_
[0031]空間數據集名稱和圖層名稱是獨一無二的和無序的,因此列表類元數據選用集合類型數據結構存儲,其存儲結構示意如表2所示。Key為列表名稱,Value為該列表下所有元素名稱。
[0032]表2
[0033]
KeyValue
_LI_
ListNameLz!.■....
[0034]土地利用矢量資料庫中的空間實體根據專題分為19個圖層進行存儲,這19個圖層包括點要素層6個,線要素層5個,面要素層8個。本發明主要關注三對線與面之間的關係,即行政區的邊界是行政區界線,宗地的邊界是界址線,地類圖斑的邊界是地類界線,這就意味著行政區、宗地和地類圖斑三個面要素圖層可不再通過坐標點來描述其空間位置,而是可以通過其邊界對應的線要素來描述。
[0035]空間要素包含空間特徵數據、時間特徵數據和專題特徵數據(後兩者一般合稱屬性特徵數據)幾大類信息。空間特徵數據是描述空間對象的空間位置、幾何特徵及與相鄰空間對象的拓撲關係等信息。時間特徵數據和專題特徵數據則因不涉及空間信息一般作相同處理,時間特徵數據主要描述空間對象數據獲取時間或者更新時間,專題特徵數據則描述的是空間對象的各種性質,如所有權、要素類別、人口或者植被類型等。
[0036]在基於Redis的土地利用矢量資料庫中,空間要素存儲空間特徵數據和屬性特徵數據外,還將存儲空間要素的幾何類型,本文將採用hash類型數據結構存儲空間要素,其中key為空間要素對應的唯一標示,通過該描述可訪問該空間要素,根據Redis常用的命名規則,命名規則為「空間資料庫名:空間數據集名:圖層名:要素ID」,通過這種命名方式可直觀的獲取要素資料庫,縣級庫和圖層歸屬信息等。Field是欄位名,首先存儲幾何類型和空間特徵數據,然後依次存儲要素的屬性欄位,Value則存儲該空間要素空間特徵數據和屬性特徵數據具體的值,存儲結構如表3所示。
[0037]表3
[0038]
【權利要求】
1.一種基於內存資料庫Redis的土地利用矢量數據存儲方法,其特徵在於包括如下步驟: 1)基於內存資料庫Redis設計土地利用矢量數據的資料庫結構,採用空間資料庫、空間數據集、圖層和要素四級組織,其中空間資料庫、空間數據集和圖層三級分別存儲相關元數據; 2)設計土地利用矢量數據存儲方法,點、線、面三種不同類型的矢量數據採用統一的存儲結構,採用hash類型數據結構存儲矢量要素,其中key為矢量要素對應的唯一標示,通過該描述可訪問該矢量要素,field為欄位名,包括集合類型、幾何特徵、屬性特徵1、屬性特徵2……等欄位,value為欄位值,存儲欄位對應值; 3)點要素空間特徵數據採取統一的存儲格式,直接採用坐標值描述; 4)線要素空間特徵數據採取統一的存儲格式,線要素的空間特徵用點數和有序的坐標串描述,具體採用「點數即坐標串」形式存儲; 5)面要素的空間特徵數據根據邊界是否可由線要素組成分為直接坐標描述和間接坐標描述兩類,直接坐標描述類似點要素和線要素的描述方式,直接用坐標值表示,間接坐標描述是指利用構成面要素邊界的線要素唯一標示,即其唯一的key值描述。
2.根據權利要求1所述的一種基於內存資料庫Redis的土地利用矢量數據存儲方法,其特徵在於所述的步驟I)為:空間資料庫由空間數據集組成,空間數據集按縣級行政區劃存儲劃分,由圖層組成,土地利用矢量要素根據專題特徵不同存儲於圖層中,空間資料庫元數據包括空間資料庫信息、空間數據集列表和圖層欄位結構,空間數據集元數據包括空間數據集信息、最小外包矩形最小坐標、圖層列表和空間參考,圖層元數據包括圖層名稱和圖層信息,其中空間資料庫信息、圖層欄位結構、空間數據集信息、最小外包矩形最小坐標、空間參考和圖層信息採用hash類型數據結構進行存儲,空間數據集名稱和圖層名稱採用列表類型數據結構進行存儲。
3.根據權利要求1所述的一種基於內存資料庫Redis的土地利用矢量數據存儲方法,其特徵在於所述的步驟2)為:土地利用矢量採用hash類型數據結構存儲矢量要素,Key為空間要素對應的唯一標示,通過該描述可訪問該空間要素,命名規則為「空間資料庫名:空間數據集名:圖層名:要素ID」,其中key為矢量要素對應的唯一標示,通過該描述可訪問該矢量要素,field為欄位名,包括集合類型、幾何特徵、屬性特徵1、屬性特徵2……等欄位,value為欄位值,存儲欄位對應值。
4.根據權利要求1所述的一種基於內存資料庫Redis的土地利用矢量數據存儲方法,其特徵在於所述的步驟5)為:面要素的空間特徵數據根據邊界是否可由線要素組成分為直接坐標描述和間接坐標描述兩類,直接坐標描述直接用坐標值表示,具體採用「環數即環I點數即環I坐標串,環2點數即環2坐標串,……」形式存儲,間接坐標描述是指利用構成面要素邊界的線要素唯一標示,即其唯一的key值描述,具體採用採用「環數即環I線要素數即環I線要素ID串,環2線要素數即環2線要素ID串,……」形式存儲,土地利用面要素層中,地類圖斑、宗地和行政區可分別用地類界線、界址線和行政區界線進行間接描述,其他面要素層則採用直接坐標描述方式。
【文檔編號】G06F17/30GK104182472SQ201410366200
【公開日】2014年12月3日 申請日期:2014年7月29日 優先權日:2014年7月29日
【發明者】劉仁義, 張豐, 杜震洪, 戚將輝, 靳鳳營 申請人:浙江大學