文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/前端
自影像金字塔技術產生並被OGC做爲WMTS規範起,各大互聯網公司以及GIS商業軟件均利用WMTS服務來進行地圖的瀏覽和共享服務。所謂影像金字塔技術,即將原始影像按必定規則生成的由細到粗不一樣分辨率的影像集。金字塔的底部是圖像的高分辨率表示,也就是原始圖像,而頂部是低分辨率的近似。最底層的分辨率最高,而且數據量最大,隨着層數的增長,其分辨率逐漸下降,數據量也按比例減小。算法
基於商業或開源軟件雖然能夠實現影像金字塔的創建,可是當面對頻繁更新的全球尺度影像時,基於影像發佈人工切圖的工做流程進行實施,無疑是一個巨大的工做量。針對這個現實問題,對影像切圖優化作了一系列改進,這裏作一個總結。緩存
流程描述:在影像產品生產後基於FTP上傳工具進行上傳。服務端實時監控新產品的存入,當檢測到新數據存放時則進行自動化切圖。切圖參數根據項目實際需求進行預設。當金字塔創建完畢,數據會被自動拷貝至所設置的存放地,實現產品存儲的高可擴。產品的元數據包括產品的時間、類型、範圍、波段、存放地址等均會自動入庫以便於影像管理。地理服務端基於影像金字塔自動進行服務發佈共享。整個金字塔創建和發佈流程無需人工干預。微信
自動化流程中最核心的一步便是影像金子塔創建。其效率、穩定性、切片重採樣效果直接影響到平臺的性能。多數商業軟件的影像金字塔創建存在耗時過長、操做繁瑣、切片模糊、切片邊緣鋸齒等問題。方案針對這類問題,在目前內存愈來愈便宜,GPU成本不斷下降的背景下,設計了一種基於內存切分平滑採樣的金字塔技術。工具
內存切分技術:將影像一次讀入內存,在內存中運用切分算法將影像流進行切塊,最後分塊寫入外盤中。方案的瓶頸主要存在於內存的大小以及數據的讀取和輸出。其效率基本與文件的複製拷貝一致,是一種能夠飛速提高效率的方案。性能
平滑重採樣技術:因爲影像是一種柵格數據,當地圖級別足夠大時則會出現馬賽克現象。仔細觀察很多商業軟件進行的切圖均會出現這類問題。方案中在進行切圖時會自動檢測切片邊界像元,使相鄰切片之間的像元間進行三次卷積重採樣,實現邊界過渡數據之間的融合平滑,減小鋸齒現象。優化
金字塔核心思想及將一張完整的影像按照重採樣和切分的思想進行數據緩存,當前端展現時根據展現範圍和分辨率將對應的切片獲取進行拼接展現。因此金字塔切片算法的核心即在切片原點、切片大小、切片分辨率三個方面。spa
假設切圖原點爲(X0,Y0),切圖大小爲tilesize,切圖分辨率爲resolution。設計
其流程描述爲:依據resolution,將地圖進行重採樣至該分辨率。而此時瓦片的實際地理大小爲tilegeosize=(tilesize*resolution),依據tilegeosize將此時重採樣後的地圖進行切分。每一個切片的命名規則爲切片的左上角座標與切圖原點和瓦片地理長度之間的運算,即3d
col = floor((x0 - x)/( tileSize*resolution))
row = floor((y0 - y)/( tileSize*resolution))
前端切片展現是切片算法的逆向,即屏幕座標與地理座標之間的轉換、地理座標與瓦片行列號之間的轉換。同時爲了解決前端地圖平移時瓦片請求頻發觸發問題,還需進行超出屏幕可視範圍的瓦片預存取方案。其示意圖以下:
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
若是您以爲本文確實幫助了您,能夠微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^