切圖工具優化的幾點總結


文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

1.背景

        自影像金字塔技術產生並被OGC作為WMTS規范起,各大互聯網公司以及GIS商業軟件均利用WMTS服務來進行地圖的瀏覽和共享服務。所謂影像金字塔技術,即將原始影像按一定規則生成的由細到粗不同分辨率的影像集。金字塔的底部是圖像的高分辨率表示,也就是原始圖像,而頂部是低分辨率的近似。最底層的分辨率最高,並且數據量最大,隨着層數的增加,其分辨率逐漸降低,數據量也按比例減少。

      

        基於商業或開源軟件雖然可以實現影像金字塔的建立,但是當面對頻繁更新的全球尺度影像時,基於影像發布人工切圖的工作流程進行實施,無疑是一個巨大的工作量。針對這個現實問題,對影像切圖優化做了一系列改進,這里做一個總結。

2. 自動化切圖流程設計

 

        流程描述:在影像產品生產后基於FTP上傳工具進行上傳。服務端實時監控新產品的存入,當檢測到新數據存放時則進行自動化切圖。切圖參數根據項目實際需求進行預設。當金字塔建立完畢,數據會被自動拷貝至所設置的存放地,實現產品存儲的高可擴。產品的元數據包括產品的時間、類型、范圍、波段、存放地址等均會自動入庫以便於影像管理。地理服務端基於影像金字塔自動進行服務發布共享。整個金字塔建立和發布流程無需人工干預。

3. 基於內存切分平滑采樣

        自動化流程中最核心的一步即是影像金子塔建立。其效率、穩定性、切片重采樣效果直接影響到平台的性能。多數商業軟件的影像金字塔建立存在耗時過長、操作繁瑣、切片模糊、切片邊緣鋸齒等問題。方案針對這類問題,在目前內存越來越便宜,GPU成本不斷降低的背景下,設計了一種基於內存切分平滑采樣的金字塔技術。

        內存切分技術:將影像一次讀入內存,在內存中運用切分算法將影像流進行切塊,最后分塊寫入外盤中。方案的瓶頸主要存在於內存的大小以及數據的讀取和輸出。其效率基本與文件的復制拷貝一致,是一種可以飛速提升效率的方案。

        平滑重采樣技術:由於影像是一種柵格數據,當地圖級別足夠大時則會出現馬賽克現象。仔細觀察不少商業軟件進行的切圖均會出現這類問題。方案中在進行切圖時會自動檢測切片邊界像元,使相鄰切片之間的像元間進行三次卷積重采樣,實現邊界過渡數據之間的融合平滑,減少鋸齒現象。

4. 金字塔切片算法設計

        金字塔核心思想及將一張完整的影像按照重采樣和切分的思想進行數據緩存,當前端展示時根據展示范圍和分辨率將對應的切片獲取進行拼接展示。所以金字塔切片算法的核心即在切片原點、切片大小、切片分辨率三個方面。

假設切圖原點為(X0,Y0),切圖大小為tilesize,切圖分辨率為resolution。

 

        其流程描述為:依據resolution,將地圖進行重采樣至該分辨率。而此時瓦片的實際地理大小為tilegeosize=(tilesize*resolution),依據tilegeosize將此時重采樣后的地圖進行切分。每個切片的命名規則為切片的左上角坐標與切圖原點和瓦片地理長度之間的運算,即

        col  = floor((x0 - x)/( tileSize*resolution))

        row = floor((y0 - y)/( tileSize*resolution))

5. 前端展示切片拼接算法設計

        前端切片展示是切片算法的逆向,即屏幕坐標與地理坐標之間的轉換、地理坐標與瓦片行列號之間的轉換。同時為了解決前端地圖平移時瓦片請求頻發觸發問題,還需進行超出屏幕可視范圍的瓦片預存取方案。其示意圖如下:

 

 

                     -----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

                                                                           如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                              

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM