一種柵格數(shù)據(jù)切片生成的方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及地理信息領域,具體涉及一種柵格數(shù)據(jù)切片生成的方法及系統(tǒng)。
【背景技術】
[0002]地圖瓦片是一種多分辨率層次模型,從瓦片金字塔的底層到頂層,分辨率越來越低,但表示的地理范圍不變。常見的谷歌地圖瓦片就是一種典型的地圖瓦片,其表示的范圍是經(jīng)度-180度到180度,瑋度-85度到85度的范圍,采用的是Web墨卡托地圖投影。凡是采用谷歌地圖瓦片的切片模型的在線地圖,都可以看成是谷歌地圖瓦片的一個實例。中國地區(qū)的谷歌地圖瓦片有21個級別。任意一個級別表示的地理范圍是一致的,第O級只有一張256X256大小的地圖切片,第I級的行列瓦片數(shù)均是第O級的兩倍,因此有四張256X256大小的切片,依次類推。第20級擁有1048576X1048576張切片,數(shù)量非常龐大。如果需要存儲這么多切片,并且一張切片的平均大小按照15KB來計算,則需要15360TB的存儲空間。這么龐大的數(shù)據(jù)量,生成一次是需要很長時間的。但為了網(wǎng)絡地圖發(fā)布的需要,花費較長時間生成切片又是值得的。目前在常見的網(wǎng)絡地圖發(fā)布服務商中,只有谷歌地圖的切片數(shù)據(jù)是最豐富最完整最全面的。谷歌地圖的最大切片級別往往比其他服務商的切片級別高上很多,例如在中國地區(qū),它比百度地圖提供的影像地圖服務就要高上兩個級別。一個級別是4倍的數(shù)據(jù)量,兩個級別就是16倍的數(shù)據(jù)量。級別的提升,意味著生成時間和存儲量的提高。在現(xiàn)今科學日益發(fā)達,計算機技術更加先進的時代,信息的及時更新是很重要的。如果地圖數(shù)據(jù)更新周期太長,則反映不了現(xiàn)今的一些地理數(shù)據(jù)變化。而衛(wèi)星影像數(shù)據(jù),包括航拍的數(shù)據(jù)處理和更新時間并不長,很有可能很快就有局部甚至全部更新地圖瓦片的需求。因此,高效率、高穩(wěn)定性、高準確度和高數(shù)據(jù)容量的地圖瓦片生成機制是很有必要的?,F(xiàn)今常用的地圖瓦片生成技術,已知的就是按照順序對單個圖片出圖,或者是按照數(shù)據(jù)劃分來使用服務器集群來對地圖區(qū)域出圖。但是這些技術沒有充分利用計算機性能;或者是配置麻煩,需要專業(yè)的知識來操作;或者雖然是利用了服務器集群來計算,但沒有充分發(fā)揮出服務器的性能以及集群計算的優(yōu)勢;或者是數(shù)據(jù)劃分和更新沒有統(tǒng)一的機制,需要利用人工來指定數(shù)據(jù)的配置和進行監(jiān)控。
【發(fā)明內容】
[0003]本發(fā)明所要解決的技術問題是提供一種具有性能優(yōu)良、更加方便快捷、支持數(shù)據(jù)量更大的柵格數(shù)據(jù)切片生成方法及系統(tǒng)。
[0004]本發(fā)明解決上述技術問題的技術方案如下:一種柵格數(shù)據(jù)切片生成的方法,包括以下步驟,
[0005]SI,設置切片參數(shù);
[0006]S2,遍歷切片參數(shù)中的源數(shù)據(jù)文件夾集合,從中篩選出切片任務所需要的數(shù)據(jù),并根據(jù)任務所需要的數(shù)據(jù)建立R樹索引;
[0007]S3,按照切片任務所需要的數(shù)據(jù)來確定單次柵格數(shù)據(jù)切片任務所需要覆蓋的地理范圍;
[0008]S4,根據(jù)單次柵格數(shù)據(jù)切片任務覆蓋的地理范圍和R樹索引循環(huán)進行切片任務,生成柵格數(shù)據(jù)切片。
[0009]在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
[0010]進一步,在步驟S2中所述切片任務所需要的數(shù)據(jù)包括文件的相對路徑、文件表示的地理范圍、分辨率大?。?br>[0011]所述R樹索引建立的方法為,首先將篩選出數(shù)據(jù)的文件的相對路徑、文件表示的地理范圍和分辨率的大小信息存儲起來形成一個文件信息數(shù)組,并統(tǒng)計所有文件的地理范圍的并集,然后將文件信息數(shù)組中的地理范圍與所有文件信息數(shù)組中的地理范圍建立R樹索引。
[0012]進一步,在步驟S3中,確定單次柵格數(shù)據(jù)切片任務所需覆蓋的地理范圍的方法為,根據(jù)篩選的任務切片所需要的數(shù)據(jù)中的文件表示的地理范圍數(shù)據(jù)和最大級別的柵格數(shù)據(jù)的分辨率來確定單次柵格數(shù)據(jù)切片任務所需覆蓋的地理范圍。
[0013]進一步,在步驟S4中,循環(huán)進行切片任務生成柵格數(shù)據(jù)切片的方法包括以下步驟,
[0014]S41,根據(jù)單次柵格數(shù)據(jù)切片任務覆蓋的地理范圍查詢R樹索引,找出用于本次任務切片的數(shù)據(jù)文件;
[0015]S42,將本次任務切片的數(shù)據(jù)文件與當前需要覆蓋的地理范圍進行求交,得到需要讀取的文件數(shù)據(jù)范圍;
[0016]S43,對需要讀取的文件數(shù)據(jù)范圍進行兩兩求差,得到每個文件讀取數(shù)據(jù)范圍的結果;
[0017]S44,對每個文件讀取數(shù)據(jù)范圍的結果進行分割形成矩形區(qū)域數(shù)據(jù),并為每個矩形區(qū)域數(shù)據(jù)分配數(shù)據(jù)內存塊;
[0018]S45,根據(jù)讀取任務讀取指定范圍的矩形區(qū)域中的數(shù)據(jù),并將讀取的數(shù)據(jù)存儲在相對應的數(shù)據(jù)內存塊P中,并將數(shù)據(jù)內存塊P的地址存儲在預先分配的且存儲有最大級別的切片數(shù)據(jù)結果的數(shù)據(jù)內存M中;
[0019]S46,使用并行的方法,以行為單位通過讀取數(shù)據(jù)內存M中的數(shù)據(jù)經(jīng)過投影轉換的方法讀取數(shù)據(jù)內存P中的數(shù)據(jù);
[0020]S47,在數(shù)據(jù)內存M完成數(shù)據(jù)讀取任務后,刪除數(shù)據(jù)內存塊P中讀取過的相對應內存數(shù)據(jù),并開始生成數(shù)據(jù)內存M中最大級別的柵格數(shù)據(jù)切片;
[0021 ] S48,根據(jù)數(shù)據(jù)內存M中的數(shù)據(jù)和數(shù)據(jù)內存塊P中沒有讀取過的內存循環(huán)生成下一級的柵格數(shù)據(jù)切片。
[0022]進一步,在步驟S43中,對需要讀取的文件數(shù)據(jù)范圍進行兩兩求差的方法為,使用最高分辨率的數(shù)據(jù)文件范圍依次減去低分辨率數(shù)據(jù)文件范圍,得到每個文件讀取數(shù)據(jù)范圍的結果。
[0023]進一步,在步驟S45中,指定范圍的矩形區(qū)域中數(shù)據(jù)的讀取是以隊列的方式加入到讀取任務中來的。
[0024]進一步,在步驟S46中,通過讀取數(shù)據(jù)內存M中的數(shù)據(jù)經(jīng)過投影轉換的方法讀取數(shù)據(jù)內存P中的數(shù)據(jù)的方法為,通過查找數(shù)據(jù)內存M中的柵格點,再計算柵格點投影到數(shù)據(jù)內存塊P中的相對坐標,根據(jù)相對坐標讀取數(shù)據(jù)內存塊P中的數(shù)據(jù);若設定的輸出切片的投影和當前使用的數(shù)據(jù)文件投影相同,則無需進行投影轉換。
[0025]進一步,還包括柵格數(shù)據(jù)切片壓縮,所述柵格數(shù)據(jù)切片壓縮的方法為將需要壓縮的柵格數(shù)據(jù)切片的內存的地址傳入到數(shù)據(jù)壓縮線程進行壓縮處理。
[0026]進一步,還包括柵格數(shù)據(jù)切片的寫入,將柵格數(shù)據(jù)切片內存的地址傳入到寫入線程隊列中,由寫入線程負責寫入。
[0027]本發(fā)明的有益效果是:本發(fā)明一種柵格數(shù)據(jù)切片生成的方法,充分利用了多核計算機的優(yōu)勢,采用自動通信的方式進行協(xié)商,厘清任務,無需人工再去配置,并且自動計算好任務模型,充分發(fā)揮局域網(wǎng)并行計算的優(yōu)勢;同時本發(fā)明還對數(shù)據(jù)劃分和更新有一套統(tǒng)一的機制,無需人工對數(shù)據(jù)配置和監(jiān)控。運用發(fā)明的方法,能夠高效、穩(wěn)定、準確地進行大數(shù)據(jù)容量的柵格地圖瓦片生成;而即使是矢量地圖瓦片,只要是運用本發(fā)明所述的思想,也能夠同樣高效、穩(wěn)定、準確地生成地圖瓦片。
[