亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Lucene的林地圖斑矢量數(shù)據(jù)查詢方法與流程

文檔序號(hào):12364105閱讀:1207來(lái)源:國(guó)知局
一種基于Lucene的林地圖斑矢量數(shù)據(jù)查詢方法與流程

本發(fā)明涉及林地圖斑矢量數(shù)據(jù)查詢方法,尤其涉及一種基于Lucene的林地圖斑矢量數(shù)據(jù)查詢方法。



背景技術(shù):

林地?cái)?shù)據(jù)反映了森林資源現(xiàn)狀和變化情況,是制定我國(guó)生態(tài)建設(shè)管理決策的重要依據(jù)。自上世紀(jì)70年代我國(guó)建立了三級(jí)森林資源監(jiān)測(cè)管理調(diào)查體系以來(lái),獲得了大量森林資源的可靠數(shù)據(jù),為我國(guó)林地資源監(jiān)管做出了重要貢獻(xiàn)。而隨著國(guó)家林業(yè)局全國(guó)林地“一張圖”系統(tǒng)的推進(jìn),林地落界數(shù)據(jù)匯總工作的完成,其中僅林地落界專題圖數(shù)據(jù)就達(dá)6738.88萬(wàn)條。

而目前對(duì)于林地圖斑數(shù)據(jù)的查詢大多是基于關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行檢索,但關(guān)系型數(shù)據(jù)庫(kù)在對(duì)大量林地?cái)?shù)據(jù)建立全字段索引與空間索引時(shí)效率比較低,且應(yīng)考慮到不同時(shí)期、不同地域所獲得的林地?cái)?shù)據(jù)其結(jié)構(gòu)往往不同,這時(shí)傳統(tǒng)的基于關(guān)系型數(shù)據(jù)庫(kù)的查詢方法往往不能勝任。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供了一種基于Lucene的林地圖斑矢量數(shù)據(jù)查詢方法。

所述方法包括如下步驟:

1)、確定網(wǎng)格大?。焊鶕?jù)輸入的數(shù)據(jù)范圍及網(wǎng)格階數(shù),計(jì)算網(wǎng)格大?。?/p>

2)、對(duì)林地圖斑矢量數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換:對(duì)于輸入的林地圖斑矢量文件,采用OGR接口注冊(cè)相應(yīng)矢量驅(qū)動(dòng),讀取矢量文件的每一圖層,并記錄圖層中每一圖斑要素的屬性信息,以及將所述圖斑要素的空間信息以眾所周知的文件WKT格式記錄;

3)、對(duì)格式轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行網(wǎng)格劃分:對(duì)于獲得的WKT格式的圖斑數(shù)據(jù)t,計(jì)算所述數(shù)據(jù)t的空間范圍,從而確定所述數(shù)據(jù)t的網(wǎng)格范圍,對(duì)于網(wǎng)格范圍內(nèi)的每一個(gè)網(wǎng)格,將所述網(wǎng)格與所述圖斑數(shù)據(jù)t求交,獲得相交多邊形i,將圖斑數(shù)據(jù)t的多個(gè)屬性賦給相交多邊形i, 并為相交多邊形i新建字段以保存所在網(wǎng)格號(hào)及原圖斑數(shù)據(jù)t的WKT格式的空間信息;

4)、對(duì)于網(wǎng)格劃分后的數(shù)據(jù)建立全文索引:對(duì)于網(wǎng)格劃分所得的相交多邊形i,計(jì)算

該相交多邊形i的最小外包矩形mbr;采用Lucene類庫(kù)對(duì)相交多邊形i的多個(gè)屬性信息及最小外包矩形建立索引,并將索引保存至對(duì)應(yīng)的網(wǎng)格所確定的目錄中;

5)、按查詢條件返回相應(yīng)數(shù)據(jù):對(duì)于輸入的查詢條件,根據(jù)其中的空間信息條件先判斷其搜索網(wǎng)格范圍,獲取相應(yīng)目錄下的索引,進(jìn)而采用Lucene類庫(kù)根據(jù)輸入條件查詢相應(yīng)索引,過(guò)濾重復(fù)數(shù)據(jù)后返回符合結(jié)果。

所述的步驟1)具體為:

1.1)、獲取輸入的數(shù)據(jù)范圍:

經(jīng)度范圍:[lng,lng],緯度范圍:[lat,lat],

其中,lng表示經(jīng)度的起點(diǎn),lng表示經(jīng)度的終點(diǎn),lat表示緯度的起點(diǎn),lat表示緯度的終點(diǎn);

1.2)、獲取輸入的網(wǎng)格階數(shù)z;

1.3)、計(jì)算網(wǎng)格的長(zhǎng)度dlng與寬度dlat

所述的步驟2)具體為:

2.1)、使用OGR接口,注冊(cè)矢量格式驅(qū)動(dòng);

2.2)、打開(kāi)林地專題圖數(shù)據(jù)源;

2.3)、對(duì)于每一個(gè)矢量文件,遍歷所述矢量文件的每一個(gè)圖層的信息;

2.4)、對(duì)于每一個(gè)圖層,遍歷所述每一個(gè)圖層的每一個(gè)圖斑要素的信息;

2.5)、獲取圖斑要素的多個(gè)屬性信息及空間信息;

2.6)、以“圖斑ID_屬性1的信息_…_屬性n的信息_WKT格式空間信息”的格式記錄每一圖斑要素信息,其中n表示屬性的數(shù)量。

所述的步驟3)具體為:

3.1)、對(duì)于記錄的圖斑數(shù)據(jù)t,獲取其空間范圍:

經(jīng)度范圍:[lngmin,lngmax];緯度范圍:[latmin,latmax];

其中,lngmin表示經(jīng)度范圍的最小值,lngmax表示經(jīng)度范圍的最大值,latmin表示緯度范圍的最小值,latmax表示緯度范圍的最大值;

3.2)、確定圖斑數(shù)據(jù)t的網(wǎng)格行列號(hào)范圍:

其中,colmin表示列號(hào)的最小值,colmax表示列號(hào)的最大值,rowmin表示行號(hào)的最小值,rowmax表示行號(hào)的最大值;

3.3)、對(duì)于行列號(hào)(col,row)所確定的網(wǎng)格,計(jì)算該網(wǎng)格邊界為:

gminlng=lng+col×dlng

gmaxlng=lng+(col+1)×dlng;

gminlat=lat+row×dlat;

gmaxlat=lat+(row+1)×dlat;

其中,col表示列號(hào),row表示行號(hào),gminlng表示網(wǎng)格的最小經(jīng)度值,gmaxlng表示網(wǎng)格的最大經(jīng)度值,gminlat表示網(wǎng)格的最小緯度值,gmaxlat表示網(wǎng)格的最大緯度值;

3.4)、根據(jù)gminlng、gmaxlng、gminlat、gmaxlat建立網(wǎng)格多邊形grid,并與圖斑t求交,得到相交多邊形i;

3.5)、以“圖斑數(shù)據(jù)t的ID_圖斑數(shù)據(jù)t屬性1的信息_…_圖斑數(shù)據(jù)t屬性m的信息_圖斑數(shù)據(jù)t的WKT格式空間信息_相交多邊形i的網(wǎng)格號(hào)_相交多邊形i的WKT格式空間信息”的 格式記錄相交多邊形i的信息,其中m表示圖斑數(shù)據(jù)t的屬性的數(shù)量。

所述的步驟4)具體為:

4.1)、對(duì)于相交多邊形i,獲取其最小外包矩形mbr;

4.2)、采用Lucene類庫(kù),創(chuàng)建IndexWriter對(duì)象,并將該IndexWriter對(duì)象指向由格網(wǎng)號(hào)(col,row)確定的目錄;

4.3)、采用Lucene類庫(kù),創(chuàng)建文檔Document對(duì)象,并將相交多邊形i的多個(gè)屬性信息建立索引后加入該文檔Document對(duì)象,并采用Lucene中的Spatial類對(duì)最小外包矩形mbr的空間信息建立索引后加入該文檔Document對(duì)象;

4.4)、采用Lucene類庫(kù),將該文檔Document對(duì)象加入IndexWriter,執(zhí)行IndexWriter后將其關(guān)閉。

所述的步驟5)具體為:

5.1)、獲取輸入的查詢條件中的空間范圍:

經(jīng)度范圍:[slngmin,slngmax],緯度范圍:[slatmin,slatmax],

其中,slngmin表示查詢條件中的空間范圍的最小經(jīng)度值,slngmax表示查詢條件中的空間范圍的最大經(jīng)度值,slatmin表示查詢條件中的空間范圍的最小緯度值,slatmax表示查詢條件中的空間范圍的最大緯度值;

5.2)、計(jì)算其對(duì)應(yīng)的網(wǎng)格號(hào)范圍:

列號(hào)范圍:[scolmin,scolmax],行號(hào)范圍:[srowmin,srowmax],

其中,scolmin表示列號(hào)的最小值,scolmax表示列號(hào)的最大值,srowmin表示行號(hào)的最小值,srowmax表示行號(hào)的最大值;

5.3)、根據(jù)行列號(hào)(scol,srow)獲取相應(yīng)目錄下的索引;

5.4)、根據(jù)查詢條件中的空間信息,采用Lucene中的Spatial類對(duì)于所獲索引進(jìn)行過(guò)濾;

5.5)、根據(jù)查詢條件中的非空間信息,采用Lucene類庫(kù)對(duì)于過(guò)濾后的索引進(jìn)行查詢;

5.6)、根據(jù)所得查詢結(jié)果中的圖斑ID信息進(jìn)行去除重復(fù),返回去重后的記錄。

本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果:

(1)、利用Lucene對(duì)于林地圖斑矢量數(shù)據(jù)的屬性信息及空間信息建立索引,實(shí)現(xiàn)了對(duì)于林地圖斑數(shù)據(jù)的全文檢索;

(2)、在采用Lucene建立索引之前對(duì)數(shù)據(jù)進(jìn)行網(wǎng)格劃分,相當(dāng)于在Lucene索引之前建立了網(wǎng)格索引,提高了查詢效率。

附圖說(shuō)明

圖1是本發(fā)明中基于Lucene的林地圖斑矢量數(shù)據(jù)查詢方法的流程圖。

圖2是本發(fā)明中確定網(wǎng)格大小的流程圖。

圖3是本發(fā)明中林地圖斑矢量數(shù)據(jù)格式轉(zhuǎn)換的流程圖。

圖4是本發(fā)明中對(duì)格式轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行網(wǎng)格劃分的流程圖。

圖5是本發(fā)明中對(duì)網(wǎng)格劃分后的數(shù)據(jù)建立全文索引的流程圖。

圖6是本發(fā)明中按查詢條件返回相應(yīng)數(shù)據(jù)的流程。

具體實(shí)施方式

以下通過(guò)具體實(shí)施方式,并結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。

圖1示例性是本發(fā)明中基于Lucene的林地圖斑矢量數(shù)據(jù)查詢方法的流程圖,該方法具體包括如下步驟:

1)、確定網(wǎng)格大?。焊鶕?jù)輸入的數(shù)據(jù)范圍及網(wǎng)格階數(shù),計(jì)算網(wǎng)格大小;

2)、對(duì)林地圖斑矢量數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換:對(duì)于輸入的林地圖斑矢量文件,采用OGR接口注冊(cè)相應(yīng)矢量驅(qū)動(dòng),讀取矢量文件的每一圖層,并記錄圖層中每一圖斑要素的屬性信息,以及將所述圖斑要素的空間信息以眾所周知的文件WKT格式記錄;

3)、對(duì)格式轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行網(wǎng)格劃分:對(duì)于獲得的WKT格式的圖斑數(shù)據(jù)t,計(jì)算所述數(shù)據(jù)t的空間范圍,從而確定所述數(shù)據(jù)t的網(wǎng)格范圍,對(duì)于網(wǎng)格范圍內(nèi)的每一個(gè)網(wǎng)格,將所述網(wǎng)格與所述圖斑數(shù)據(jù)t求交,獲得相交多邊形i,將圖斑數(shù)據(jù)t的多個(gè)屬性賦給相交多邊形i,并為相交多邊形i新建字段以保存所在網(wǎng)格號(hào)及原圖斑數(shù)據(jù)t的WKT格式的空間信息;

4)、對(duì)于網(wǎng)格劃分后的數(shù)據(jù)建立全文索引:對(duì)于網(wǎng)格劃分所得的相交多邊形i,計(jì)算該相 交多邊形i的最小外包矩形mbr;采用Lucene類庫(kù)對(duì)相交多邊形i的多個(gè)屬性信息及最小外包矩形建立索引,并將索引保存至對(duì)應(yīng)的網(wǎng)格所確定的目錄中;

5)、按查詢條件返回相應(yīng)數(shù)據(jù):對(duì)于輸入的查詢條件,根據(jù)其中的空間信息條件先判斷其搜索網(wǎng)格范圍,獲取相應(yīng)目錄下的索引,進(jìn)而采用Lucene類庫(kù)根據(jù)輸入條件查詢相應(yīng)索引,過(guò)濾重復(fù)數(shù)據(jù)后返回符合結(jié)果。

圖2示例性示出了本發(fā)明中確定網(wǎng)格大小的流程圖,具體為:

獲取輸入的數(shù)據(jù)范圍:

經(jīng)度范圍:[lng,lng],緯度范圍:[lat,lat],

其中,lng表示經(jīng)度的起點(diǎn),lng表示經(jīng)度的終點(diǎn),lat表示緯度的起點(diǎn),lat表示緯度的終點(diǎn);

獲取輸入的網(wǎng)格階數(shù)z;

計(jì)算網(wǎng)格的長(zhǎng)度dlng與寬度dlat

圖3示例性示出了本發(fā)明中林地圖斑矢量數(shù)據(jù)格式轉(zhuǎn)換的流程圖。具體為:

使用OGR接口,注冊(cè)矢量格式驅(qū)動(dòng);

打開(kāi)林地專題圖數(shù)據(jù)源;

對(duì)于每一個(gè)矢量文件,遍歷所述矢量文件的每一個(gè)圖層的信息;

對(duì)于每一個(gè)圖層,遍歷所述每一個(gè)圖層的每一個(gè)圖斑要素的信息;

獲取圖斑要素的多個(gè)屬性信息及空間信息;

以“圖斑ID_屬性1的信息_…_屬性n的信息_WKT格式空間信息”的格式記錄每一圖斑要素信息,其中n表示屬性的數(shù)量。

圖4示例性示出了本發(fā)明中對(duì)格式轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行網(wǎng)格劃分的流程圖。具體為:對(duì)于記錄的圖斑數(shù)據(jù)t,獲取其空間范圍:

經(jīng)度范圍:[lngmin,lngmax];緯度范圍:[latmin,latmax];其中,lngmin表示經(jīng)度范圍的最小值,lngmax表示經(jīng)度范圍的最大值,latmin表示緯度范圍的最小值,latmax表示緯度范圍的最大值;

確定圖斑數(shù)據(jù)t的網(wǎng)格行列號(hào)范圍:

其中,colmin表示列號(hào)的最小值,colmax表示列號(hào)的最大值,rowmin表示行號(hào)的最小值,rowmax表示行號(hào)的最大值;

對(duì)于行列號(hào)(col,row)所確定的網(wǎng)格,計(jì)算該網(wǎng)格邊界為:

gminlng=lng+col×dlng;

gmaxlng=lng+(col+1)×dlng

gminlat=lat+row×dlat;

gmaxlat=lat+(row+1)×dlat

其中,col表示列號(hào),row表示行號(hào),gminlng表示網(wǎng)格的最小經(jīng)度值,gmaxlng表示網(wǎng)格的最大經(jīng)度值,gminlat表示網(wǎng)格的最小緯度值,gmaxlat表示網(wǎng)格的最大緯度值;根據(jù)gminlng、gmaxlng、gminlat、gmaxlat建立網(wǎng)格多邊形grid,并與圖斑t求交,得到相交多邊形i;以“圖斑數(shù)據(jù)t的ID_圖斑數(shù)據(jù)t屬性1的信息_…_圖斑數(shù)據(jù)t屬性m的信息_圖斑數(shù)據(jù)t的WKT格式空間信息_相交多邊形i的網(wǎng)格號(hào)_相交多邊形i的WKT格式空間信息”的格式記錄相交多邊形i的信息,其中m表示圖斑數(shù)據(jù)t的屬性的數(shù)量。

圖5示例性示出了本發(fā)明中對(duì)網(wǎng)格劃分后的數(shù)據(jù)建立全文索引的流程圖。具體為:

對(duì)于相交多邊形i,獲取其最小外包矩形mbr;

采用Lucene類庫(kù),創(chuàng)建IndexWriter對(duì)象,并將該IndexWriter對(duì)象指向由格網(wǎng)號(hào)(col,row) 確定的目錄;

采用Lucene類庫(kù),創(chuàng)建文檔Document對(duì)象,并將相交多邊形i的多個(gè)屬性信息建立索引后加入該文檔Document對(duì)象,并采用Lucene中的Spatial類對(duì)最小外包矩形mbr的空間信息建立索引后加入該文檔Document對(duì)象;

采用Lucene類庫(kù),將該文檔Document對(duì)象加入IndexWriter,執(zhí)行IndexWriter后將其關(guān)閉。

圖6示出了本發(fā)明中按查詢條件返回相應(yīng)數(shù)據(jù)的流程。具體為:

獲取輸入的查詢條件中的空間范圍:

經(jīng)度范圍:[slngmin,slngmax],緯度范圍:[slatmin,slatmax],

其中,slngmin表示查詢條件中的空間范圍的最小經(jīng)度值,slngmax表示查詢條件中的空間范圍的最大經(jīng)度值,slatmin表示查詢條件中的空間范圍的最小緯度值,slatmax表示查詢條件中的空間范圍的最大緯度值;

計(jì)算其對(duì)應(yīng)的網(wǎng)格號(hào)范圍:

列號(hào)范圍:[scolmin,scolmax],行號(hào)范圍:[srowmin,srowmax],

其中,scolmin表示列號(hào)的最小值,scolmax表示列號(hào)的最大值,srowmin表示行號(hào)的最小值,srowmax表示行號(hào)的最大值;

根據(jù)行列號(hào)(scol,srow)獲取相應(yīng)目錄下的索引;

根據(jù)查詢條件中的空間信息,采用Lucene中的Spatial類對(duì)于所獲索引進(jìn)行過(guò)濾;

根據(jù)查詢條件中的非空間信息,采用Lucene類庫(kù)對(duì)于過(guò)濾后的索引進(jìn)行查詢;

根據(jù)所得查詢結(jié)果中的圖斑ID信息進(jìn)行去除重復(fù),返回去重后的記錄。

在此給出根據(jù)本發(fā)明的基于Lucene的林地圖斑矢量數(shù)據(jù)查詢方法的具體實(shí)施例,具體如下:

1、確定網(wǎng)格大?。?/p>

根據(jù)輸入的數(shù)據(jù)范圍:

lng=117.798,lng=118.665,lat=25.828,lat=26.442,

及網(wǎng)格階數(shù):z=10,計(jì)算網(wǎng)格大?。篸lng=0.0867;dlat=0.0614。

2、對(duì)林地圖斑矢量數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換:

對(duì)于輸入的林地圖斑矢量文件yx.shp,采用OGR接口注冊(cè)相應(yīng)矢量驅(qū)動(dòng),讀取矢量文件的每一圖層,并記錄圖層中每一圖斑要素的屬性信息,輸出的部分要素信息如表1所示:

表1

3、對(duì)于輸出的每一行要素,做如下操作進(jìn)行網(wǎng)格劃分:

對(duì)于獲得的每一行圖斑數(shù)據(jù)t,計(jì)算t的空間范圍,從而確定其網(wǎng)格范圍,對(duì)于范圍內(nèi)的每一個(gè)網(wǎng)格,將其與該林地圖斑數(shù)據(jù)t求交,獲得相交多邊形i,將圖斑數(shù)據(jù)t的各屬性賦給相交多邊形i,并為相交的多邊形i新建字段以保存所在網(wǎng)格號(hào)及原圖斑數(shù)據(jù)t的WKT格式的空間信息,輸出部分信息表2所示:

表2

4、對(duì)于網(wǎng)格劃分后的每一行數(shù)據(jù)建立全文索引:

對(duì)于網(wǎng)格劃分所得的多邊形i,計(jì)算其最小外包矩形mbr;采用Lucene類庫(kù)對(duì)于多邊形i的各屬性信息及最小外包矩形建立索引,并將索引保存至對(duì)應(yīng)的網(wǎng)格所確定的目錄中;

5、對(duì)于輸入的查詢條件中的空間范圍:

slngmin=117.963,slngmax=118.083,slatmin=25.852,slatmax=25.908;

計(jì)算其對(duì)應(yīng)的網(wǎng)格號(hào)范圍:

scolmin=1,scolmax=3,srowmin=0,srowmax=1;

獲取1-0、1-1、2-0、2-1、3-0、3-1目錄下的索引,使用Lucene查詢索引,返回結(jié)果如表3所示。

表3

以上列舉的僅是本發(fā)明的最佳具體實(shí)施例。顯然,本發(fā)明不限于以上實(shí)施例,還可以有許多變形。本領(lǐng)域的普通技術(shù)人員能從本發(fā)明公開(kāi)的內(nèi)容直接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認(rèn)為是本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1