李向陽,盧 遙
(1.河南省基礎地理信息中心,河南鄭州 450003;2.國家測繪產(chǎn)品質量檢驗測試中心,北京 100830)
衛(wèi)星影像數(shù)據(jù)是一種以柵格形式存在的數(shù)據(jù),其最明顯的特點是數(shù)據(jù)量大,往往比計算機硬件可以顯示的數(shù)據(jù)量大一個或多個數(shù)量級[1]。因此在設計衛(wèi)星影像數(shù)據(jù)庫時,需要將其存放在操作系統(tǒng)文件中,并在數(shù)據(jù)庫中定義其外部文件的指針[2-4];同時采用影像數(shù)據(jù)分塊的方法,將大影像數(shù)據(jù)切分為多個小影像——瓦片,并在數(shù)據(jù)庫中建立分塊索引表,以提高數(shù)據(jù)的查詢和提取速度[5-7];此外,為進一步提高影像的實時縮放與顯示速度,快速獲取不同分辨率的影像信息,可根據(jù)不同顯示要求調用不同分辨率的原始影像[8,9]。因此,針對海量遙感影像空間數(shù)據(jù),如何采用高效的空間索引技術,快速提取最適宜的影像范圍和顯示分辨率的影像數(shù)據(jù)塊,達到既不影響用戶視覺效果又減少實際調入內存數(shù)據(jù)量的目的,從而滿足用戶需要顯示范圍的實際需求,是亟待解決的技術難點。
本文對柵格地圖切分技術的規(guī)則、參數(shù)選擇及相關算法進行了深入的研究,提出利用地圖切片技術對地圖投影轉換、屏幕坐標與大地坐標轉化的解決方案,并對地圖切分參數(shù)的選擇原則、地圖切分算法、地圖切分規(guī)則等方面進行了研究。在柵格地圖切分技術基礎上,采用Google Maps API設計出基于Microsoft Visual Studio 2008平臺的柵格地圖的切分程序,實現(xiàn)了基于Google Maps的遙感影像數(shù)據(jù)的整合與地圖縮放快速瀏覽功能。
瓦片是指將固定范圍內的某一比例尺地圖按照指定的尺寸(通常為128×128或256×256像素)切分成若干行與列的正方形柵格圖片。切圖后得到的正方形柵格圖片,被形象地稱為“瓦片”。瓦片技術也叫切片技術,是指將某一比例尺的地圖提前分成若干個小單元??蛻舳嗽L問時,可直接獲取所需的小單元然后拼接成地圖,服務器無需動態(tài)創(chuàng)建一幅大的圖形送到客戶端,這極大地提高了反映速度。
由于空間數(shù)據(jù)庫是服務器、中間件、客戶端3級分層架構,因此數(shù)據(jù)的請求與發(fā)送都需要以網(wǎng)絡數(shù)據(jù)包通訊的方式傳送。通過瓦片技術將地圖分割成9×5方塊,客戶端發(fā)送數(shù)據(jù)請求時,通過空間分析算法可計算出客戶端請求視圖的覆蓋范圍,這樣只需將20個瓦片切塊的封裝網(wǎng)絡數(shù)據(jù)包發(fā)送至客戶端,減小了網(wǎng)絡數(shù)據(jù)包的大小。而客戶端每收到一個瓦片數(shù)據(jù)包即可顯示瓦片覆蓋區(qū)域的數(shù)據(jù),無需等待所有瓦片傳輸完即可顯示地圖,從而大大提高了用戶體驗。
地圖預切分就是在柵格地圖發(fā)布之前將整幅圖像劃分成離散的比例,即事先對服務器端部分要素(集)按照影像金字塔模型進行小尺寸的切片分級和緩存,每種比例的地圖根據(jù)切分規(guī)則分成若干個大小相等且互不重疊的塊,稱為地圖的切片或瓦片(Tile)??蛻舳丝芍苯永梅旨壍撵o態(tài)的圖切片組來代替地圖的動態(tài)生成。分塊的大小由用戶決定,可以是2的任意整數(shù)冪,而且大小要適中,行列尺寸一般采用128×128或256×256。分塊時,需要確定單個塊的數(shù)據(jù)量與塊的總個數(shù)之間的平衡關系,即要兼顧圖像局部的相關程度、網(wǎng)絡傳輸情況等。然后對切片按一定的規(guī)則進行命名和存儲,并建立切片名稱與地圖坐標的映射關系。
為保證一組柵格數(shù)據(jù)能夠相互疊合發(fā)布,必須選用統(tǒng)一的切圖參數(shù)對地圖進行切分,切圖參數(shù)的設定應遵循以下規(guī)則:
(1)按坐標投影對柵格地圖進行分組,每組地圖必須定義統(tǒng)一的切圖參數(shù)。
(2)地圖范圍的選取要兼顧同組其他柵格地圖的范圍,建立統(tǒng)一的地圖切圖范圍,以便將柵格地圖切片在同一坐標范圍內疊加發(fā)布。
(3)同組地圖縮放級數(shù)與各級比例尺要統(tǒng)一定義。
(4)地圖切片大小一般應選用256×256像素,如果地圖切片粒度過小,會增加系統(tǒng)的管理難度;反之,如果粒度太大,會造成網(wǎng)絡傳輸速度過慢,達不到地圖切分和緩存的目的。
地圖切分不僅使服務器端將圖像能夠分塊傳輸,而且還可使客戶器端進行無縫合成。因此,在地圖切分之前必須預先定義一組標準的地圖切分參數(shù)(簡稱切圖參數(shù)),使得切圖參數(shù)既能保證地圖切分過程的一致性,也能保證地圖切分后的地圖切片信息描述的完整性。切圖參數(shù)是柵格數(shù)據(jù)發(fā)布中坐標映射、地圖顯示、地圖服務的核心參數(shù),包括柵格地圖范圍、地圖縮放級數(shù)、比例尺或分辨率、地圖切片大小、圖片格式、坐標系統(tǒng)共6項參數(shù)。
切圖參數(shù)確定了屏幕坐標與大地坐標之間的對應關系(見圖1),從而可以計算屏幕參數(shù)與地圖切片之間的對應關系。
圖1 屏幕坐標與大地坐標對應關系
1.5.1 切圖參數(shù)表示
在實施切圖之前,確定以下切圖參數(shù)。
切圖原點:通常選取圖像的左上角大地坐標,記為(geoOrgX,geoOrgY),與之相對應的屏幕坐標原點以(winOrgX,winOrgY)表示;
縮放級別數(shù)目:以n表示,起始為0;
各級別的比例尺及分辨率,第n級比例尺以ZoomLevel[n]表示,分辨率以 Resolutions[n]表示;
地圖切圖范圍:以 minX,minY,maxX,maxY表示;地圖切片的大小:通常為256×256像素,以TileSize表示;地圖切片對應的大地坐標長度:在第n級比例下,地圖切片的大地長度表示為geoTileSize[n];
地圖切片命名:在第n級比例下,第row行第col列的地圖切片命名為:Tile[row,col,n];行列(row,col)的起始下標為 0。
1.5.2 地圖切片的大地坐標長度計算
在第n級比例下,地圖切片的大地坐標長度為:
1.5.3 地圖切片的坐標計算
在第n級比例下,地圖切片Tile(row,col,n)的左上角坐標(geoTileLeft,geoTileTop)和右下角坐標(geoTileRight,geoTileBottom)分別為:
1.5.4 屏幕像素坐標與大地坐標換算
已知屏幕像素坐標為(pixelX,pixelY),則與之相對應的大地坐標(geoX,geoY)為:
反之,已知大地坐標為(geoX,geoY),則與之相對應的屏幕坐標(pixelX,pixelY)為:
在上述所述理論、方法和算法的基礎上,本文通過實例對“松花江小河東至大崗段”的影像數(shù)據(jù)進行了切分和發(fā)布。
地圖切分過程主要分為地圖坐標參數(shù)配準和轉換、地圖重采樣分級、地圖切片生成共3個步驟。
2.1.1 坐標系統(tǒng)配準和轉換
為使不同的地圖數(shù)據(jù)得以集成和發(fā)布,在地圖預先生成前應將地圖的地理坐標系和投影方式進行統(tǒng)一,轉換到地圖發(fā)布所用的地理坐標系統(tǒng)。通常使用GIS工具對柵格圖像進行坐標配準和坐標轉換,并獲取地圖范圍參數(shù)和坐標系統(tǒng)參數(shù)。
2.1.2 地圖重采樣分級
按照切圖分級的比例尺或分辨率,對柵格地圖進行重采樣,生成一組離散的比例地圖。
2.1.3 地圖切片生成
根據(jù)Tile(row,col,n)的坐標范圍,在整幅地圖中剪裁輸出該范圍的圖片。切圖程序可以使用柵格圖像的屏幕像素坐標進行切分,從圖像的左上角開始,依次按行列直接剪切Tile Size大小的圖片,這種方法常用于基于圖像處理軟件的切圖程序。也可以使用柵格圖像的大地坐標對圖像進行切分,同樣從左上角開始,依次按行列計算地圖切片的大地坐標范圍,并剪切出該范圍的地圖切片。分別對各級比例的地圖進行切圖,從而生成金字塔結構的地圖切片。
根據(jù)上述切圖步驟,基于Microsoft Visual Studio 2008平臺,使用獨自開發(fā)的程序對“松花江小河東至大崗段”影像數(shù)據(jù)進行了切分,切分結果如圖2~5所示。
Google Maps API是Google公司提供的用以調用Google Maps服務的接口。網(wǎng)絡前端的開發(fā)人員通過調用這些API,可以將Google Maps方便地嵌入自己的網(wǎng)頁,并據(jù)此進行快速的二次開發(fā),從而為自己的網(wǎng)站創(chuàng)建功能強大的地圖應用程序。Google Maps API的功能分為2部分:一是地圖的顯示功能,如GMap2,GPoint,GIcon,GLatLng 等;另一部分為 API的擴展功能,比如想開發(fā)自己的控件、標注和地圖類型等,可使用類或函數(shù)包括 GControl,GMapPane,GMapType,GOverlay 等[10-13]。將切分好的“松花江小河東至大崗段”影像數(shù)據(jù)整合到Google Maps平臺進行發(fā)布,結果如圖6所示。
對地圖進行放大后,結果如圖7所示。
圖2 第11級切分結果
圖3 第12級切分結果
圖4 第13級切分結果
圖5 第14級切分結果
圖6 松花江小河東至大崗段
圖7 松花江小河東至大崗段
本文在深入分析研究柵格數(shù)據(jù)的結構、表示方法、編碼和壓縮的基礎上,針對海量柵格數(shù)據(jù)難以處理的技術難點,提出以犧牲存儲空間來提高處理速度、對遙感柵格數(shù)據(jù)構建影像金字塔的技術路線,并對柵格地圖切分規(guī)則、切分算法和切分參數(shù)的設定進行了深入研究,設計了柵格地圖切分的技術流程,并編程實現(xiàn)了柵格地圖的切分。最后基于Google Maps平臺成功實現(xiàn)了遙感柵格數(shù)據(jù)的發(fā)布,為海量遙感數(shù)據(jù)的應用和發(fā)布提供了經(jīng)驗和借鑒。
[1]李德仁,周月琴,金為銑.攝影測量與遙感概論[M].北京:測繪出版社,2001.
[2]盧小平,鄧安健,盧遙,等.基于結構上下文分類后小面元的后續(xù)處理方法[J].遙感信息,2009(6):47-50.
[3]李毅.山西省水利電子沙盤系統(tǒng)柵格影像處理機制的擴展與完善[J].山西水利科技,2010(3):83-85.
[4]黃夢龍.柵格地圖投影變換實驗系統(tǒng)的設計與實現(xiàn)[D].武漢:武漢大學,2005.
[5]劉鎮(zhèn).遙感影像瓦片金字塔模型[J].科技創(chuàng)新導報,2008(6):199-200.
[6]鄭群英,周曉光,欒柱曉.影像金字塔增量更新方法[J].地理空間信息,2009(5):38-41.
[7]盧小平,馬劍,盧遙,等.多源遙感數(shù)據(jù)融合在礦區(qū)土地覆蓋分類中的應用[J].河南理工大學學報:自然科學版,2010(3):56-60.
[8]盧小平,田繼輝,張劍偉,等.多尺度DEM數(shù)據(jù)的組織與管理方法研究[J].測繪通報,2010(6):12-15.
[9]薛水晶,盧小平,李英成,等.金字塔多級索引遙感影像數(shù)據(jù)服務的設計與實現(xiàn)[J].測繪通報,2011(5):29-32.
[10]李學東.基于WEB的地學數(shù)據(jù)集成與發(fā)布技術研究[D].北京:中國地質大學,2009.
[11]劉德風.基于Ajax的數(shù)字校園柵格地圖發(fā)布與查詢優(yōu)化技術研究[D].北京:北京建筑工程學院,2010.
[12]鄧雪清.柵格型空間數(shù)據(jù)服務體系結構與算法研究[D].鄭州:中國人民解放軍信息工程大學,2003.
[13]巫細波,胡偉平.Google Maps運行機制以及應用研究[J].華南師范大學學報:自然科學版,2009(2):106-110.