專利名稱:一種基于集群的遙感數據集實時渲染服務的制作方法
技術領域:
本發明涉及集群計算技術和遙感數據可視化技術,具體地說,涉及遙感數據集的集群化瓦片數據渲染技術。本發明適用于全球范圍海量遙感數據的實時渲染服務。
背景技術:
多源遙感數據的疊加渲染一般包括數據金字塔構建、瓦片畫布創建、數據讀取、順序疊加繪制等技術過程。其中金字塔構建技術已運用得十分普遍,例如ESRI公司的ArcSDE,武漢大學的GeoImageDB,超圖軟件的SuperMap等都實現了影像的金字塔構建技術,提高了數據的抽取效率。然而,全球范圍內的數據渲染涉及到多重數據源、多波段數據的抽取和疊加繪制、數據源更新及交互操作等問題,在很大程度上限制了渲染的實時性 和實效性。目前的大多數系統采用了預先渲染和建立全球數據瓦片索引體系等策略,如Google地球、Skyline軟件等,這些產品在顯著提高瓦片調度效率和具備良好用戶體驗的同時,在數據更新的時效性和用戶操作的專業化程度上存在著不足。相關的參考資料包括 ArcSDE-The Universal Spatial Server for ARC/INFO, An ESRI White Paper, April1999 ;Fang Tao,Li Deren,Gong Jianya,Pi Minghong,Development and Implementationof Multiresolution and Seamless Image Database System GeoImageDB, Journal ofWuhan Technical University of Surveying and Mapping,24(3), 1999 ;http://earth,google, com/ ;http://www. skylineglobe. com 等。為了實現大規模全球真實遙感數據實時可視化服務,需要由集群計算環境支撐,具體涉及了集群管理技術、任務調度技術、分布式文件系統等關鍵技術。現有的主流技術,集群管理軟件如OSCAR、ROCKS、Perceus、xCAT等,任務調度技術如LoadLeveler、Gearman>Hadoop> Control Tower、LVS等,分布式文件系統如MapReduce、Lustre等,都提供了集群計算環境的解決方案。但是,渲染計算任務具有大網絡吞吐量、細計算粒度等特點,很難找到一種完全適合的技術方案。相關的參考資料包括http://www. rocksclusters. org ;http://xcat. sourceforge. net/ ;http://hadoop. apache, org/ 等。客戶端和集群節點之間的渲染瓦片請求和瓦片數據回復需要通過網絡傳輸,要求有快速、穩定的網絡響應和特定的消息處理機制。MPI提供了標準化的網絡通信機制,但是對于細粒度和快速響應的計算任務支持度不夠。相關的參考資料包括http://www.open-mpi. org ;http://www. mcs. anl. gov/research/pro jects/mpich2/ 等。除了分布式文件存儲外,還需通過數據庫系統建立遙感數據的元數據索引以及相應的空間索引,從而能在用戶請求渲染瓦片時,快速地檢索到對應的數據存儲位置,并確定最優的計算節點。目前支持或部分支持OGR標準的數據庫包括Oracle、MySQL、PostgreSQL等。相關的參考資料包括http://www. oracle, com ;http://www. mysql. com/ ;http://www.postgresql. org/。基于集群的全球范圍遙感數據渲染服務系統同時涉及了多數據集的聯合查詢、細計算粒度劃分、快速網絡響應等內容,目前可見文獻/專利中相互獨立的研究較多,而從系統整體的角度提出解決方案的還未出現。
發明內容
本發明的目的是提供一種針對海量多源遙感數據集進行集群化快速渲染的系統性解決方案,特別是面向海量的遙感數據和不同類型的數據集,解決數據的分布式組織存儲問題、多數據集的聯合查詢問題和多模式并行計算問題。本發明的基本思路為首先部署適合海量遙感數據實時渲染系統的集群環境,由“計算-數據”聯合一體的若干節點和一個中心服務器組成,中心服務器同時部署保存所有進入集群的遙感數據元信息;客戶端的瓦片渲染請求通過網絡通道發往中心服務器時,后者進行SQL查詢和后處理,得到該瓦片范圍內的最上層所需渲染數據列表,確定渲染順序,并根據這些數據的存儲位置確定最優的節點;節點渲染時,讀取各個數據文件,并載入瓦片所在范圍、層級的數據,逐一疊加渲染到畫布上,發回給中心服務器;最后由中心服務器返回結果。本發明的技術方案提供了一種基于集群的遙感數據集實時渲染系統,具體包含以·下的實施步驟I)構建集群環境,架設若干計算和存儲一體的節點,每個節點包括一臺多核工作站,并掛載存儲磁盤陣列,節點間用高速局域網絡連接;部署一臺多核服務器,安裝關系型數據庫,通過局域網絡與各個節點連接;2)遙感數據進入集群后,將作為一個整體被放置于一個節點的存儲陣列中(或以冗余的方式放在多個節點中),同時提取其元信息,存儲到服務器的數據庫中,作為數據查詢條件;3)對于一個瓦片,按照視點的層級、空間的位置、瓦片的大小三種指標,確定其唯一的編號,它所表不的空間范圍也是確定的;4)瓦片渲染請求由客戶端通過網絡發給中心服務器,前者建立優先級機制并維護請求隊列,后者則以多線程的方式并行處理每個瓦片渲染請求;5)服務器通過支持空間索引的數據庫,在所有數據集中查找出該空間范圍內的數據,再執行數據篩選算法,根據數據集類型、時間等規則對數據進行排序,并剔除被覆蓋在下層的數據,即獲得了需要渲染的經過排序的數據列表及其對應的存儲位置信息;6)依據已經生成的數據列表,選取列表中數據分布最多的那個節點作為計算節點(“計算-數據” 一體化),并將渲染任務分配到該節點;7)計算節點中一個瓦片的渲染過程為創建畫布,按照數據列表自底向上的順序,依次讀取瓦片范圍內的數據塊,將沒有數據的部分置為透明,渲染到畫布中;8)將渲染好的瓦片數據傳回中心服務器,通過中心服務器返回給客戶端;9)步驟4) 8)完成了單個瓦片的渲染,將不同的渲染任務分布到各個節點中進行計算,同時以多線程的方式進行服務端的查詢操作和節點端的渲染計算,即實現了集群化的并行渲染過程,對外提供實時的渲染服務。上述步驟的特征在于>步驟I)、步驟2)部署了一個計算與數據一體化的集群環境,數據作為一個整體進行存儲,不同數據分散存儲在各個存儲節點(同時也是計算節點)中,由中心服務器的關系型數據庫統一管理其元信息;實現快速數據查詢的同時,便于將計算任務分配到數據所在的節點,對于數據密集型的渲染任務,大大減少了計算時數據的網絡吞吐量。>步驟4)對于瓦片請求建立優先級緩存機制,優先處理最需要得到的瓦片渲染請求并隨時剔除已廢棄的請求,提高了實時性。>步驟5)的數據篩選算法,篩選出了最上層用戶能看到的數據列表,剔除了大部分被覆蓋在下層的數據,避免渲染時無用的數據讀取和繪制操作,節省了計算量和數據吞吐量。>步驟5)、步驟6)的數據查詢、數據篩選、確定節點過程對于每個瓦片是獨立的操作,在服務端以多線程的方式實現任務級并行化;同樣,步驟7)的渲染過程也在計算節點端實現了并行化;結合步驟9)所述的整體過程,即為本發明的渲染流程集群實現方式,體 現了細粒度任務劃分、“計算-數據” 一體化和“集群+多核”的多模式并行計算特征。本發明與現有技術相比具有如下特點(I)由于計算和數據綁定,并進行以數據為牽引的計算任務調度,能夠有效避免由于頻繁的數據網絡吞吐而造成的網絡擁堵,充分發揮存儲和計算的效率和性能;(2)數據的元信息集中存放,實現了快速查詢、定位和篩選;(3)多線程的數據查詢和“集群+多核”的渲染計算模式,形成了有效且獨特的并行化實時渲染流程。
圖I計算和存儲綁定的集群結構圖2數據的元信息字段內容圖3本發明的全球范圍瓦片劃分及編號方式其中,圖3-(1)表示第0級全球范圍瓦片劃分及編號,圖3-(2)表示第I級全球范圍瓦片劃分及編號;圖4遙感數據集并行渲染流程圖5渲染請求優先級定義圖6瓦片請求隊列緩存維護流程圖7數據篩選示意8渲染效果圖
具體實施例方式圖I是本發明所使用的集群環境拓撲結構中心服務器安裝MySQL數據庫,管理集群中遙感數據的元信息,通過普通以太網(百兆)與集群節點連接;每個集群節點由一個計算刀片和一個磁盤存儲陣列組成,節點間由高速以太網(千兆)相連。對于系統中的每個遙感數據,其元信息所包括的內容(見圖2)有數據集類型、數據名稱、獲取時間、數據的有效空間范圍、存儲節點、路徑。前四項用于查詢瓦片空間范圍內的數據,后兩項用于解析數據對應的存儲位置及路徑。其中,“數據集類型”標識了不同的數據類型,例如0rthorLandsatTM5表示TM5的正射影像數據集;“數據名稱”是該數據在系統中的唯一標識;“獲取時間”是指該數據的拍攝時間數據的有效空間范圍”是指該數據的有效影像的經緯度坐標范圍,用多邊形表示并存儲于數據庫的空間字段中;“存儲節點”指該數據所在存儲節點的編號;“路徑”是指該數據的存儲路徑。在遙感數據入庫時,會按照其空間范圍分區歸類存儲于節點中,例如按照經度范圍(-180° 180° )劃分為8個區域,同一區域范圍內的數據都將被存放在同一個節點中。這樣的策略能盡量保證在渲染計算時,所需要訪問的數據存放在本地磁盤中,減少網絡
吞吐量。圖3示意了本發明所使用的瓦片劃分方式,所使用的瓦片尺寸為256像素X256像素,具體劃分方式如下①將全球按照經緯度投影(經度范圍-180° 180°,緯度范圍-90° 90° )劃分為2行4列的8個瓦片,作為第0級(見圖3-(1)),即視覺上的最頂層;用一個3維向量(X,Y,D)對每個瓦片進行編號,X表示瓦片的列號,Y表示瓦片的行號,D表示瓦片的層級;例如(2,1,0)表示第2列,第I行,第0級的瓦片,而根據第0級劃分規則,可計算出該瓦片的地理范圍為(經度0° 90°,緯度-90° 0° )。②按照四叉樹的原則向下劃分第I級瓦片,即第0級中的一個瓦片對應第I級中表示相同地理范圍的4個瓦片(見圖3-(2)),例如第0級的(2,1,0)瓦片對應于第I級的(4,2,I)、(5,2,I)、(4,3,I)、(5,3,I)四個瓦片;一般地,若某瓦片編號為(x,y,d),則其對應的下一級的4個瓦片編號分別為
權利要求
1.一種基于集群的遙感數據集實時渲染服務系統,其特征在于包含以下幾個實施步驟 步驟I:構建集群環境,架設若干計算和存儲一體的節點,每個節點包括一臺多核工作站,并掛載存儲磁盤陣列,節點間用高速局域網絡連接;部署一臺多核服務器,安裝支持空間檢索的關系型數據庫,通過局域網絡與各個節點連接; 步驟2 :遙感數據錄入集群時,將作為一個整體存儲于單個節點的存儲陣列中,或以冗余的方式存儲在多個節點中,同時提取其元信息,存儲到服務器的關系數據庫中,作為數據查詢條件; 步驟3 :對于所要渲染的瓦片,按照視點層級、空間位置、瓦片大小三種指標,確定其唯一的編號,它所表不的空間范圍也是確定的; 步驟4:瓦片渲染請求由客戶端通過網絡發送給中心服務器,前者建立優先級機制并維護請求隊列,后者以多線程的方式并行處理每個瓦片渲染請求; 步驟5:服務器通過支持空間索引的數據庫,在所有數據集中查找出該空間范圍內的數據列表,根據數據集類型、時間等規則對其排序,再執行數據篩選算法,剔除被覆蓋在下層的數據,獲得需要渲染的最上層數據列表及其對應的存儲位置信息; 步驟6 :依據已經生成的數據列表,選取列表中數據分布最多的那個節點作為計算節點,將渲染任務分配到該節點; 步驟7 :計算節點中一個瓦片的渲染過程為創建畫布,按照數據列表自底向上的順序,依次讀取瓦片范圍內的數據塊,將沒有數據的部分置為透明,渲染到畫布中; 步驟8 :將渲染好的瓦片數據傳回中心服務器,通過中心服務器返回給客戶端; 步驟9 :步驟4 8完成了單個瓦片的渲染,將不同的渲染任務分布到各個節點中進行計算,同時以多線程的方式進行服務端的查詢操作和節點端的渲染計算,即實現了集群化的并行渲染過程,對外提供實時的渲染服務。
2.根據權利要求I所述的集群環境,其特征為計算與數據的一體化部署,不同數據分散存儲在各個存儲節點(同時也是計算節點)中,由中心服務器的關系型數據庫統一管理其元信息;實現快速數據查詢的同時,便于將計算任務分配到數據所在的節點,對于數據密集型的渲染任務,大大減少了計算時數據的網絡吞吐量。
3.根據權利要求I所述的瓦片請求處理機制,其特征為客戶端建立優先級緩存,優先處理最需要得到的瓦片渲染請求并隨時剔除已廢棄的請求,提高了實時性;中心服務器通過數據篩選算法,篩選出最上層用戶能看到的數據列表,剔除大部分被覆蓋在下層的數據,避免渲染時無用的數據讀取和繪制操作,節省了計算量和數據吞吐量。
4.根據權利要求I所述的并行計算,其特征為中心服務器的數據查詢、數據篩選、選擇節點過程對于每個瓦片是獨立的操作,在服務端以多線程的方式實現任務級并行化;同樣,節點的渲染過程也實現了任務級并行化;結合多節點渲染的整體過程,構成了本發明的集群化渲染流程實現方式,體現了細粒度任務劃分、“計算-數據” 一體化和“集群+多核”的多模式并行計算特征。
全文摘要
本發明提供一種針對多源遙感數據集進行集群化快速渲染的系統性解決方案,特別是面向海量的遙感數據和不同類型的數據集,解決數據的分布式組織存儲問題和多數據集的聯合查詢問題。首先部署適合海量遙感數據實時渲染系統的集群環境,由“計算-數據”一體的若干節點和中心服務器組成;客戶端的瓦片渲染請求通過網絡通道發往中心服務器,后者進行查詢、篩選和后處理,得到該瓦片范圍內的可見數據列表,并根據其存儲位置確定最優的節點;節點讀取各個數據對應的瓦片塊,逐一疊加渲染到畫布上,并發回給中心服務器;最后由中心服務器向客戶端返回結果。本發明適用于二/三維地表渲染的紋理和地形瓦片生產、大規模遙感數據管理中的可視化等大規模應用領域。
文檔編號G06T15/00GK102722549SQ20121016782
公開日2012年10月10日 申請日期2012年5月28日 優先權日2012年5月28日
發明者周亞男, 李紅旮, 沈占鋒, 胡曉東, 郜麗靜, 駱劍承 申請人:中國科學院遙感應用研究所