專利名稱:一種基于分布式的海量遙感影像快速建立金字塔算法的制作方法
技術領域:
本發(fā)明涉及地理信息與信息技術的交叉領域,尤其涉及一種應用于“國家空間數(shù)據(jù)基礎設施”建設中的基于分布式的海量遙感影像快速創(chuàng)建金字塔算法。
背景技術:
作為國家空間數(shù)據(jù)框架中的重要基礎數(shù)據(jù),遙感影像為國土規(guī)劃、測繪遙感、軍事交通、水利水電、農林環(huán)保等應用中提供基礎影像信息服務,因此在“國家空間數(shù)據(jù)基礎設施”建設中的重要性也日益增強。其中,近年來我國發(fā)射的北斗衛(wèi)星導航定位系統(tǒng)可提供全天候、二十四小時的即時定位服務。其定位精度可達到數(shù)十納秒的同步精度。而作為氣象衛(wèi)星的風云系列三號衛(wèi)星發(fā)回的利用中分辨率光譜成像儀制作的250米分辨率多通道真彩色合成圖,可以清晰的監(jiān)測到大霧、冰凌、積雪、水體、火情等環(huán)境和災害信息,并能提供其具體位置、范圍及面積。這些遙感影像在帶給我們清晰可見的地物目標的同時,它的數(shù)據(jù)量也成幾何增長,從幾十兆、幾百兆增長到甚至幾十GB??梢哉f,各種航空航天成像遙感平臺所產生的遙感數(shù)據(jù)正在“如同下雨一樣向地面?zhèn)魉汀?。遙感數(shù)據(jù)的有效組織是高效的遙感數(shù)據(jù)訪問及應用的基礎。采用“分層分塊”策略的瓦片金字塔不但大大縮短了數(shù)據(jù)訪問時間而且能夠表示多分辨率數(shù)據(jù),是海量遙感數(shù)據(jù)組織的理想結構。因此金字塔生成的快慢決定著數(shù)據(jù)更新的能力。傳統(tǒng)金字塔的構造方法是采用了細節(jié)層次技術(Level Of Detail,L0D),將原始分辨率大數(shù)據(jù)量的影像作為金字塔的最底層,通過對原始影像采用特定的重采樣方法,建立一系列范圍相同但是詳盡度和分辨率不同的影像。隨著金字塔的層數(shù)增加,影像的分辨率逐漸降低。對于同一層的影像,為了提高影像的顯示速度,對影像進行分塊,顯示時只訪問可見區(qū)域的數(shù)據(jù)。但是傳統(tǒng)方法的構造過程基于單機環(huán)境,受限于單核單CPU的計算能力,只能處理少量遙感影像文件。當遙感影像文件數(shù)量成幾何增長,數(shù)目達到上百上千時,由于大量的 I/O操作使得生成金字塔的性能很低。實驗證明,當遙感影像文件的大小達到百兆以上時, 整個金字塔的創(chuàng)建過程將耗時數(shù)小時或者數(shù)十個小時,本發(fā)明提出的算法正是克服了以上缺陷。
發(fā)明內容
為了克服上述不足之處,本發(fā)明的主要目的旨在提供一種基于數(shù)據(jù)分布式存儲, 為海量遙感影像文件建立金字塔的并行算法,利用基于PC集群的數(shù)據(jù)分布存儲以及并行計算能力,提高海量遙感影像金字塔生成的速度,并在和傳統(tǒng)方法生成后的金字塔進行比較后得出本發(fā)明,通過N*M宮格劃分,金字塔創(chuàng)建任務分配及調度和金字塔創(chuàng)建,通過正確劃分宮格和計算宮格信息,達到加快金字塔的創(chuàng)建速度,保證金字塔創(chuàng)建準確性的一種基于分布式的海量遙感影像快速建立金字塔算法。
本發(fā)明需要解決的技術問題為要解決如何進行N*M宮格劃分,金字塔創(chuàng)建任務分配及調度和金字塔創(chuàng)建問題,要解決如何正確劃分宮格和計算宮格信息問題,要解決影像塊文件跨宮格而造成的“黑邊”等有關技術問題。本發(fā)明解決其技術問題所采用的技術方案是海量遙感影像快速建立金字塔算法包括傳統(tǒng)金字塔的構造方法,該方法是對傳統(tǒng)金字塔算法的改進,利用分布式數(shù)據(jù)存儲和并行計算能力,通過控制節(jié)點和計算節(jié)點之間的通信傳遞金字塔創(chuàng)建任務和原始影像塊文件列表,用控制節(jié)點來指導計算節(jié)點的金字塔創(chuàng)建,實現(xiàn)海量遙感影像快速建立金字塔算法,包括三部分N*M宮格劃分,金字塔創(chuàng)建任務分配及調度,和金字塔創(chuàng)建,其中N*M宮格劃分在N*M宮格劃分中涉及到“邏輯區(qū)域影像”、“子圖”、區(qū)域影像、影像塊及瓦片,上述“邏輯區(qū)域影像”、“子圖”為邏輯概念,而非物理存在,區(qū)域影像、影像塊和瓦片是真實的物理存在,按照地理空間順序排列而成,覆蓋一定地理范圍的瓦片集合稱為“子圖”,其記錄子圖的圖幅大小、左上角頂點的經緯度位置的元數(shù)據(jù)信息,按照地理空間順序排列而成,覆蓋一定地理范圍的“子圖”集合稱為“邏輯區(qū)域影像”,是由影像塊組成的區(qū)域影像的邏輯表示,“邏輯區(qū)域影像”記錄了區(qū)域影像的圖幅大小、左上角頂點的經緯度位置的元數(shù)據(jù)信息,以上五者邏輯包含關系為區(qū)域影像包含子圖,子圖包含影像塊,影像塊包含瓦片,利用宮格劃分方法,將遙感數(shù)據(jù)均勻的分配到各個計算節(jié)點,將金字塔的創(chuàng)建劃分成各項任務并行執(zhí)行且并行計算,來實現(xiàn)正確劃分宮格和計算宮格信息,N*M宮格劃分在控制節(jié)點上執(zhí)行;金字塔創(chuàng)建任務分配及調度根據(jù)N*M宮格劃分參數(shù)為每個宮格生成對應的邏輯子任務,并將這些子任務加入任務隊列,同時控制節(jié)點啟動監(jiān)控程序,監(jiān)控作業(yè)的狀態(tài),任務調度采用“FIFO”先進先出模式,計算節(jié)點以PULL的方式積極向控制節(jié)點發(fā)送任務計劃請求,從任務隊列中取出任務計劃并執(zhí)行,在執(zhí)行成功后,計算節(jié)點向控制節(jié)點提交狀態(tài)信息,控制節(jié)點作為任務調度模塊,讀取任務配置參數(shù)生成金字塔創(chuàng)建的大作業(yè),金字塔創(chuàng)建任務分配及調度在控制節(jié)點上執(zhí)行;金字塔創(chuàng)建根據(jù)接收到的任務計劃,包括宮格信息和影像塊集合,將分布存儲在該計算節(jié)點的“子圖”,作為金字塔的輸入文件并計算節(jié)點,按金字塔創(chuàng)建方法來創(chuàng)建金字塔,各個計算節(jié)點根據(jù)收到的宮格信息,同分布存儲在該節(jié)點的“子圖”一起作為輸入文件,并行地創(chuàng)建金字塔的0層,計算節(jié)點以指定金字塔的層數(shù)作為循環(huán)控制條件,上層金字塔文件作為輸入,采用4個像素點提取1個像素點寫入下層金字塔文件的做法,得到金字塔的下層,金字塔創(chuàng)建在計算節(jié)點上執(zhí)行;海量遙感影像快速建立金字塔算法的具體工作步驟是步驟1 開始準備就緒基于PC集群的數(shù)據(jù)分布存儲;步驟2:輸入初始參數(shù)在控制節(jié)點指定金字塔創(chuàng)建的相關參數(shù),包括宮格矩陣的行數(shù)N、宮格矩陣的列數(shù)M,源文件的磁盤路徑,金字塔的目標路徑,金字塔層數(shù),瓦片的寬和高;如果判斷模塊的金字塔層數(shù)< 0,則進入異常結束模塊,如果判斷模塊的金字塔層數(shù)非< 0,則進入源文件存在的判斷模塊?如果判斷模塊的源文件存在,則進入瓦片寬> 0的判斷模塊?如果判斷模塊的源文件不存在,則進入異常結束模塊;如果判斷模塊的瓦片寬> 0,則進入瓦片高> 0的判斷模塊?如果判斷模塊的瓦片寬非> 0,則進入異常結束模塊;如果判斷模塊的瓦片高>0,則進入計算“邏輯區(qū)域”模塊,如果判斷模塊的瓦片高非>0,則進入異常結束模塊;步驟3 計算“邏輯區(qū)域”控制節(jié)點根據(jù)源文件的磁盤路徑,獲取源文件列表,并計算源文件影像塊對應的邏輯區(qū)域影像;執(zhí)行完計算“邏輯區(qū)域”模塊后,則進入判斷模塊的宮格矩陣列M > 0 ;如果判斷模塊的宮格矩陣列M > 0,則進入宮格矩陣行N > 0的判斷模塊?如果判斷模塊的宮格矩陣列M非> 0,則進入異常結束模塊;如果判斷模塊的宮格矩陣行N > 0,則進入劃分“邏輯區(qū)域”成N*M宮格,如果判斷模塊的宮格矩陣行N非> 0,則進入異常結束模塊;步驟4 劃分“邏輯區(qū)域”成N*M宮格N*M劃分宮格控制節(jié)點按照“宮格中的瓦片是完整的遙感文件”以及“等分矩陣瓦片數(shù)”的規(guī)則劃分邏輯區(qū)域影像成N*M個不等大小的宮格,則每個宮格對應區(qū)域影像的一部分——子圖,屬于同一個子圖的影像塊將分配到同一個計算節(jié)點中;a).計算瓦片個數(shù)按照瓦片指定的寬、高,計算邏輯區(qū)域影像所能切割得到的瓦片個數(shù)Nnm^Mnum, 其中Nnum表示縱向每列瓦片個數(shù),Mnum表示橫向每行瓦片個數(shù);b).等分瓦片個數(shù)等分瓦片個數(shù)Nnum*Mnum到N*M個宮格中,其中N為宮格矩陣的行數(shù),M為宮格矩陣的列數(shù),記宮格[i,j]分別為宮格在矩陣中行號和列號,除了最后一行和最后一列的宮格之外,其他宮格的瓦片數(shù)均為(NnUm/N)*(MnUm/M),其中,處于矩陣最后一行的宮格其瓦umlM),而處于矩陣最后一列的宮格其瓦片個數(shù)c).計算子圖的經緯度坐標根據(jù)每個宮格包含的瓦片數(shù),瓦片寬、高和邏輯區(qū)域影像左上角的頂點經緯度坐標,計算得到所有宮格對應子圖的左上角頂點和右下角頂點經緯度坐標;d).計算宮格子圖對應的影像塊文件列表根據(jù)步驟c的左上角和右下角頂點的經緯度坐標生成經緯度坐標矩形,同所有待創(chuàng)建金字塔的影像塊文件的經緯度坐標外包矩形相比較,包含在該矩形內及與該矩形相交的影像塊都屬于該宮格;e).封裝宮格信息將步驟b到d中的瓦片個數(shù)、瓦片寬和高、宮格左上角和右下角頂點的經緯度坐標,宮格所屬影像塊文件列表封裝成宮格信息,用于金字塔的創(chuàng)建,并完成從控制節(jié)點傳遞到計算節(jié)點的創(chuàng)建任務;
8
步驟5 循環(huán)計算每個宮格的子圖執(zhí)行完劃分“邏輯區(qū)域”成N*M宮格模塊后,則進入循環(huán)計算每個宮格的子圖模塊;步驟6:分配創(chuàng)建任務執(zhí)行完循環(huán)計算每個宮格的子圖模塊后,則進入分配創(chuàng)建任務模塊,分配創(chuàng)建任務模塊并行地創(chuàng)建金字塔A、創(chuàng)建金字塔B…及創(chuàng)建金字塔N,并進行并行計算;步驟7 創(chuàng)建金字塔失敗個數(shù)> 0 ?執(zhí)行完分配創(chuàng)建任務模塊后,則進入判斷模塊的創(chuàng)建金字塔失敗個數(shù)> 0 ;如果判斷模塊的創(chuàng)建金字塔失敗個數(shù)> 0,則進入異常結束模塊,如果判斷模塊的創(chuàng)建金字塔失敗個數(shù)非> 0,則進入成功結束模塊;步驟8 成功結束當判斷模塊的創(chuàng)建金字塔失敗個數(shù)非> 0,則成功結束。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的分布式是由以太網連接的一個控制節(jié)點和多個計算節(jié)點所組成的集群。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的區(qū)域影像是航空平臺和衛(wèi)星平臺上的遙感器,利用遙感技術所獲得關于至少一個區(qū)域的高分辨率像片。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的影像塊是為了符合瀏覽窗口尺寸和加快瀏覽速度,采用地理信息工具在保證原有分辨率的前提下,將區(qū)域影像剪裁成至少一個相對區(qū)域影像來說小尺寸的遙感像片。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的邏輯區(qū)域影像是區(qū)域影像的邏輯表示,其記錄區(qū)域影像的圖幅大小、左上角頂點的經緯度位置、仿射地理變換矩陣的元數(shù)據(jù)信息。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的子圖是邏輯區(qū)域影像中根據(jù)N*M宮格劃分規(guī)則劃分后落入在宮格的瓦片集合,子圖的寬是宮格的寬度,子圖的高是宮格的高度。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的宮格信息是宮格在宮格矩陣中的編號,該宮格對應的子圖的地理坐標、該宮格對應的子圖的圖幅大小、該宮格所包含的瓦片數(shù)、該宮格所包含的瓦片寬和高、該宮格最后一行的瓦片高、該宮格最后一列的瓦片寬及宮格對應子圖所包含的影像塊列表。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的邏輯區(qū)域、子圖、影像塊及瓦片之間的具體關系為一邏輯區(qū)域包含子圖的影像塊為子圖A、子圖B、子圖C和子圖D,其中子圖B的影像塊集合包含B1、B2、B3以及與子圖相交的影像塊,而影像塊Bl又包含至少一瓦片集合。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的N*M宮格劃分和計算子圖時,對于宮格[i,j]的具體工作步驟是步驟1 判斷宮格[i,j]在宮格矩陣最后一列?如果判斷模塊的宮格[i,j]不在宮格矩陣最后一列,則進入第一路的每行瓦片數(shù) =邏輯區(qū)域每行瓦片數(shù)/M模塊,如果判斷模塊的宮格[i,j]在宮格矩陣最后一列,則進入第二路的每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% M模塊;第一路先執(zhí)行每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)/M模塊,執(zhí)行完每行瓦片數(shù)= 邏輯區(qū)域每行瓦片數(shù)/M模塊后,則進入最后一行瓦片的寬=輸入的瓦片寬模塊;第二路先執(zhí)行每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% M模塊,執(zhí)行完每行瓦片數(shù)= 邏輯區(qū)域每行瓦片數(shù)% M模塊后,則進入最后一行瓦片的寬=剩余寬模塊;步驟2 判斷宮格[i,j]在宮格矩陣最后一行?執(zhí)行完最后一行瓦片的寬=輸入的瓦片寬模塊后,則進入判斷模塊宮格[i,j]在
宮格矩陣最后一行?執(zhí)行完最后一行瓦片的寬=剩余寬模塊后,則進入判斷模塊宮格[i,j]在宮格矩陣最后一行?如果判斷模塊的宮格[i,j]不在宮格矩陣最后一行,則進入第一路的每列瓦片數(shù) =邏輯區(qū)域每列瓦片數(shù)/N模塊,如果判斷模塊的宮格[i,j]在宮格矩陣最后一行,則進入第二路的每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)% N模塊;第一路先執(zhí)行每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)/N模塊,執(zhí)行完每列瓦片數(shù)= 邏輯區(qū)域每列瓦片數(shù)/N模塊后,則進入最后一列瓦片的高=輸入的瓦片高模塊;第二路先執(zhí)行每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)% N模塊,執(zhí)行完每列瓦片數(shù)= 邏輯區(qū)域每列瓦片數(shù)% N模塊后,則進入最后一列瓦片的高=剩余高模塊;步驟3 計算子圖的左上角頂點地理坐標第一路執(zhí)行完最后一列瓦片的高=輸入的瓦片高模塊后,則進入計算子圖的左上角頂點地理坐標模塊;第二路執(zhí)行完最后一列瓦片的高=剩余高模塊后,則進入計算子圖的左上角頂點地理坐標模塊;步驟4 計算子圖的右下角頂點地理坐標執(zhí)行完計算子圖的左上角頂點地理坐標模塊后,則進入計算子圖的右下角頂點地理坐標。本發(fā)明的有益效果是本發(fā)明利用基于PC集群的數(shù)據(jù)分布存儲以及并行計算能力,提高海量遙感影像金字塔生成的速度,有別于傳統(tǒng)的傳統(tǒng)金字塔的構造方法;N*M宮格劃分是本專利特色之處,考慮到在傳統(tǒng)金字塔創(chuàng)建算法中同層瓦片在創(chuàng)建時沒有嚴格的先后順序依賴關系,繼而找到改進傳統(tǒng)金字塔創(chuàng)建算法的可能性。利用分布式并行計算能力和大規(guī)模分布式數(shù)據(jù)存儲,N*M宮格劃分將原金字塔創(chuàng)建算法改進成分布式并行算法,將創(chuàng)建的大作業(yè)割裂成若干個小任務分配到各個計算節(jié)點進行計算,從而大大提高了算法的執(zhí)行效率;各個計算節(jié)點避免了因為影像塊文件跨宮格而造成的“黑邊”問題,可以并行地創(chuàng)建金字塔,達到加快金字塔的創(chuàng)建速度,并保證了金字塔創(chuàng)建的準確性。
下面結合附圖和實施例對本發(fā)明進一步說明。附圖1是本發(fā)明海量遙感影像快速建立金字塔算法結構的方框示意圖;附圖2是本發(fā)明邏輯區(qū)域、子圖、影像塊和瓦片關系示意圖;附圖3是本發(fā)明N*M宮格劃分和計算子圖時,對于宮格[i,j]的工作流程附圖4是本發(fā)明集群與單機算法效率比較示意圖;附圖5是本發(fā)明在8,16,32GB的數(shù)據(jù)量下,節(jié)點數(shù)不同的算法效率比較示意圖;附圖中標號說明1-開始;41-邏輯區(qū)域;2-輸入初始參數(shù);411-子圖A ;21-金字塔層數(shù)<0 412-子圖8;22-源文件存在?4121-影像塊81;23-瓦片寬>0 413-子圖〇;對-瓦片高>0 414-子圖0;3-計算“邏輯區(qū)域”;31-宮格矩陣列M > 0 ?32-宮格矩陣行N > 0 ?4-劃分“邏輯區(qū)域”成N*M宮格;5-循環(huán)計算每個宮格的子圖;6-分配創(chuàng)建任務;61-創(chuàng)建金字塔八;62-創(chuàng)建金字塔B ;7-創(chuàng)建金字塔失敗個數(shù)> 0 ?8-成功結束;9-異常結束;10-宮格[i,j]在宮格矩陣最后一列?101-每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)/M ;1011-最后一行瓦片的寬=輸入的瓦片寬;102-每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% M ;1021-最后一行瓦片的寬=剩余寬;11-宮格[i,j]在宮格矩陣最后一行?111-每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)/N ;1111-最后一列瓦片的高=輸入的瓦片高;112-每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)% N ;1121-最后一列瓦片的高=剩余高;12-計算子圖的左上角頂點地理坐標;13-計算子圖的右下角頂點地理坐標;
具體實施例方式請參閱附圖1、2、3、4、5所示,一種基于分布式的海量遙感影像快速建立金字塔算 法包括傳統(tǒng)金字塔的構造方法,該方法是對傳統(tǒng)金字塔算法的改進,利用分布式數(shù)據(jù)存儲 和并行計算能力,通過控制節(jié)點和計算節(jié)點之間的通信傳遞金字塔創(chuàng)建任務和原始影像塊 文件列表,用控制節(jié)點來指導計算節(jié)點的金字塔創(chuàng)建,實現(xiàn)海量遙感影像快速建立金字塔 算法,包括三部分N*M宮格劃分,金字塔創(chuàng)建任務分配及調度,和金字塔創(chuàng)建,其中
N*M宮格劃分在N*M宮格劃分中涉及到“邏輯區(qū)域影像”、“子圖”、區(qū)域影像、影像塊及瓦片,上述“邏輯區(qū)域影像”、“子圖”為邏輯概念,而非物理存在,區(qū)域影像、影像塊和瓦片是真實的物理存在,按照地理空間順序排列而成,覆蓋一定地理范圍的瓦片集合稱為“子圖”,其記錄子圖的圖幅大小、左上角頂點的經緯度位置的元數(shù)據(jù)信息,按照地理空間順序排列而成,覆蓋一定地理范圍的“子圖”集合稱為“邏輯區(qū)域影像”,是由影像塊組成的區(qū)域影像的邏輯表示,“邏輯區(qū)域影像”記錄了區(qū)域影像的圖幅大小、左上角頂點的經緯度位置的元數(shù)據(jù)信息,以上五者邏輯包含關系為區(qū)域影像包含子圖,子圖包含影像塊,影像塊包含瓦片,利用宮格劃分方法,將遙感數(shù)據(jù)均勻的分配到各個計算節(jié)點,將金字塔的創(chuàng)建劃分成各項任務并行執(zhí)行且并行計算,來實現(xiàn)正確劃分宮格和計算宮格信息,N*M宮格劃分在控制節(jié)點上執(zhí)行;金字塔創(chuàng)建任務分配及調度根據(jù)N*M宮格劃分參數(shù)為每個宮格生成對應的邏輯子任務,并將這些子任務加入任務隊列,同時控制節(jié)點啟動監(jiān)控程序,監(jiān)控作業(yè)的狀態(tài),任務調度采用“FIFO”先進先出模式,計算節(jié)點以PULL的方式積極向控制節(jié)點發(fā)送任務計劃請求,從任務隊列中取出任務計劃并執(zhí)行,在執(zhí)行成功后,計算節(jié)點向控制節(jié)點提交狀態(tài)信息,控制節(jié)點作為任務調度模塊,讀取任務配置參數(shù)生成金字塔創(chuàng)建的大作業(yè),金字塔創(chuàng)建任務分配及調度在控制節(jié)點上執(zhí)行;金字塔創(chuàng)建根據(jù)接收到的任務計劃,包括宮格信息和影像塊集合,將分布存儲在該計算節(jié)點的“子圖”,作為金字塔的輸入文件并計算節(jié)點,按金字塔創(chuàng)建方法來創(chuàng)建金字塔,各個計算節(jié)點根據(jù)收到的宮格信息,同分布存儲在該節(jié)點的“子圖”一起作為輸入文件,并行地創(chuàng)建金字塔的0層,計算節(jié)點以指定金字塔的層數(shù)作為循環(huán)控制條件,上層金字塔文件作為輸入,采用4個像素點提取1個像素點寫入下層金字塔文件的做法,得到金字塔的下層,金字塔創(chuàng)建在計算節(jié)點上執(zhí)行;海量遙感影像快速建立金字塔算法的具體工作步驟是步驟1:開始1準備就緒基于PC集群的數(shù)據(jù)分布存儲;步驟2:輸入初始參數(shù)2在控制節(jié)點指定金字塔創(chuàng)建的相關參數(shù),包括宮格矩陣的行數(shù)N、宮格矩陣的列數(shù)M,源文件的磁盤路徑,金字塔的目標路徑,金字塔層數(shù),瓦片的寬和高;如果判斷模塊的金字塔層數(shù)< 0 21,則進入異常結束9模塊,如果判斷模塊的金字塔層數(shù)非< 0 21,則進入源文件存在22的判斷模塊?如果判斷模塊的源文件存在22,則進入瓦片寬> 0 23的判斷模塊?如果判斷模塊的源文件不存在22,則進入異常結束9模塊;如果判斷模塊的瓦片寬> 0 23,則進入瓦片高> 0 M的判斷模塊?如果判斷模塊的瓦片寬非> 0 23,則進入異常結束9模塊;如果判斷模塊的瓦片高> 0 24,則進入計算“邏輯區(qū)域” 3模塊,如果判斷模塊的瓦片高非> 0 24,則進入異常結束9模塊;步驟3 計算“邏輯區(qū)域” 3控制節(jié)點根據(jù)源文件的磁盤路徑,獲取源文件列表,并計算源文件影像塊對應的邏輯區(qū)域影像;
執(zhí)行完計算“邏輯區(qū)域” 3模塊后,則進入判斷模塊的宮格矩陣列M >0 31 ;如果判斷模塊的宮格矩陣列M > 0 31,則進入宮格矩陣行N > 032的判斷模塊? 如果判斷模塊的宮格矩陣列M非> 0 31,則進入異常結束9模塊;如果判斷模塊的宮格矩陣行N > 0 32,則進入劃分“邏輯區(qū)域”成N*M宮格4,如果判斷模塊的宮格矩陣行N非> 0 32,則進入異常結束9模塊;步驟4 劃分“邏輯區(qū)域”成N*M宮格4N*M劃分宮格控制節(jié)點按照“宮格中的瓦片是完整的遙感文件”以及“等分矩陣瓦片數(shù)”的規(guī)則劃分邏輯區(qū)域影像成N*M個不等大小的宮格,則每個宮格對應區(qū)域影像的一部分——子圖,屬于同一個子圖的影像塊將分配到同一個計算節(jié)點中;a).計算瓦片個數(shù)按照瓦片指定的寬、高,計算邏輯區(qū)域影像所能切割得到的瓦片個數(shù)Nnm^Mnum, 其中Nnum表示縱向每列瓦片個數(shù),Mnum表示橫向每行瓦片個數(shù);b).等分瓦片個數(shù)等分瓦片個數(shù)Nnum*Mnum到N*M個宮格中,其中N為宮格矩陣的行數(shù),M為宮格矩陣的列數(shù),記宮格[i,j]分別為宮格在矩陣中行號和列號,除了最后一行和最后一列的宮格之外,其他宮格的瓦片數(shù)均為(NnUm/N)*(MnUm/M),其中,處于矩陣最后一行的宮格其瓦
umlM),而處于矩陣最后一列的宮格其瓦片個數(shù)c).計算子圖的經緯度坐標根據(jù)每個宮格包含的瓦片數(shù),瓦片寬、高和邏輯區(qū)域影像左上角的頂點經緯度坐標,計算得到所有宮格對應子圖的左上角頂點和右下角頂點經緯度坐標;d).計算宮格子圖對應的影像塊文件列表根據(jù)步驟c的左上角和右下角頂點的經緯度坐標生成經緯度坐標矩形,同所有待創(chuàng)建金字塔的影像塊文件的經緯度坐標外包矩形相比較,包含在該矩形內及與該矩形相交的影像塊都屬于該宮格;e).封裝宮格信息將步驟b到d中的瓦片個數(shù)、瓦片寬和高、宮格左上角和右下角頂點的經緯度坐標,宮格所屬影像塊文件列表封裝成宮格信息,用于金字塔的創(chuàng)建,并完成從控制節(jié)點傳遞到計算節(jié)點的創(chuàng)建任務;步驟5 循環(huán)計算每個宮格的子圖5執(zhí)行完劃分“邏輯區(qū)域”成N*M宮格4模塊后,則進入循環(huán)計算每個宮格的子圖5 模塊;步驟6:分配創(chuàng)建任務6執(zhí)行完循環(huán)計算每個宮格的子圖5模塊后,則進入分配創(chuàng)建任務6模塊,分配創(chuàng)建任務6模塊并行地創(chuàng)建金字塔A 61、創(chuàng)建金字塔B 62等…及創(chuàng)建金字塔N,并進行并行計算;步驟7 創(chuàng)建金字塔失敗個數(shù)> 0 7 ?
13
執(zhí)行完分配創(chuàng)建任務6模塊后,則進入判斷模塊的創(chuàng)建金字塔失敗個數(shù)> 0 7 ;如果判斷模塊的創(chuàng)建金字塔失敗個數(shù)> 0 7,則進入異常結束9模塊,如果判斷模塊的創(chuàng)建金字塔失敗個數(shù)非> 0 7,則進入成功結束8模塊;步驟8:成功結束8當判斷模塊的創(chuàng)建金字塔失敗個數(shù)非> 0 7,則成功結束8。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的分布式是由以太網連接的一個控制節(jié)點和多個計算節(jié)點所組成的集群。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的區(qū)域影像是航空平臺和衛(wèi)星平臺上的遙感器,利用遙感技術所獲得關于至少一個區(qū)域的高分辨率像片。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的影像塊是為了符合瀏覽窗口尺寸和加快瀏覽速度,采用地理信息工具在保證原有分辨率的前提下,將區(qū)域影像剪裁成至少一個相對區(qū)域影像來說小尺寸的遙感像片。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的邏輯區(qū)域影像是區(qū)域影像的邏輯表示,其記錄區(qū)域影像的圖幅大小、左上角頂點的經緯度位置、仿射地理變換矩陣的元數(shù)據(jù)信息。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的子圖是邏輯區(qū)域影像中根據(jù)N*M宮格劃分規(guī)則劃分后落入在宮格的瓦片集合,子圖的寬是宮格的寬度,子圖的高是宮格的高度。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的宮格信息是宮格在宮格矩陣中的編號,該宮格對應的子圖的地理坐標、該宮格對應的子圖的圖幅大小、該宮格所包含的瓦片數(shù)、該宮格所包含的瓦片寬和高、該宮格最后一行的瓦片高、該宮格最后一列的瓦片寬及宮格對應子圖所包含的影像塊列表。進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的邏輯區(qū)域、子圖、影像塊及瓦片之間的具體關系為一邏輯區(qū)域41包含子圖的影像塊為子圖A 411、子圖B 412、子圖C 413和子圖 D 414,其中子圖B 412的影像塊集合包含B1、B2、B3等…以及與子圖相交的影像塊,而影像塊Bl 4121又包含至少一瓦片集合。請參閱附圖3所示,進一步的,所述的一種基于分布式的海量遙感影像快速建立金字塔算法的N*M宮格劃分和計算子圖時,對于宮格[i,j]的具體工作步驟是步驟1 判斷宮格[i,j]在宮格矩陣最后一列10 ?如果判斷模塊的宮格[i,j]不在宮格矩陣最后一列,則進入第一路的每行瓦片數(shù) =邏輯區(qū)域每行瓦片數(shù)/M 101模塊,如果判斷模塊的宮格[i,j]在宮格矩陣最后一列,則進入第二路的每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% M 102模塊;第一路先執(zhí)行每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)/M 101模塊,執(zhí)行完每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)/M 101模塊后,則進入最后一行瓦片的寬=輸入的瓦片寬1011 模塊;第二路先執(zhí)行每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% M 102模塊,執(zhí)行完每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% Μ 102模塊后,則進入最后一行瓦片的寬=剩余寬1021模塊;
步驟2 判斷宮格[i,j]在宮格矩陣最后一行11 ?執(zhí)行完最后一行瓦片的寬=輸入的瓦片寬1011模塊后,則進入判斷模塊宮格[i, j]在宮格矩陣最后一行11 ?執(zhí)行完最后一行瓦片的寬=剩余寬1021模塊后,則進入判斷模塊宮格[i,j]在宮格矩陣最后一行11 ?如果判斷模塊的宮格[i,j]不在宮格矩陣最后一行,則進入第一路的每列瓦片數(shù) =邏輯區(qū)域每列瓦片數(shù)/N 111模塊,如果判斷模塊的宮格[i,j]在宮格矩陣最后一行,則進入第二路的每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)% N 112模塊;第一路先執(zhí)行每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)/N 111模塊,執(zhí)行完每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)/N 111模塊后,則進入最后一列瓦片的高=輸入的瓦片高1111 模塊;第二路先執(zhí)行每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)% N 112模塊,執(zhí)行完每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)%附12模塊后,則進入最后一列瓦片的高=剩余高1121模塊;步驟3 計算子圖的左上角頂點地理坐標12第一路執(zhí)行完最后一列瓦片的高=輸入的瓦片高1111模塊后,則進入計算子圖的左上角頂點地理坐標12模塊;第二路執(zhí)行完最后一列瓦片的高=剩余高112 1模塊后,則進入計算子圖的左上角頂點地理坐標12模塊;步驟4 計算子圖的右下角頂點地理坐標13執(zhí)行完計算子圖的左上角頂點地理坐標12模塊后,則進入計算子圖的右下角頂點地理坐標13。本發(fā)明的技術特征為本發(fā)明提供了一種基于數(shù)據(jù)分布式存儲,為海量遙感影像文件建立金字塔的并行算法,包括N*M宮格劃分,金字塔創(chuàng)建任務分配及調度,金字塔創(chuàng)建。其中,N*M宮格劃分是指控制節(jié)點首先按照“宮格中的瓦片是完整的遙感文件”以及“等分矩陣瓦片數(shù)”的規(guī)則將“邏輯區(qū)域影像”劃分成N*M個瓦片個數(shù)大致相等的宮格,則每個宮格對應“邏輯區(qū)域影像”中的一部分——“子圖”。地理范圍上包含于或與“子圖” 相交的影像塊文件都將屬于同一個“子圖”。這樣的做法體現(xiàn)了數(shù)據(jù)分布存儲和并行計算的特點,為海量遙感影像的快速建立金字塔提供了可能。本發(fā)明中的“遙感數(shù)據(jù)”是指太陽輻射經過大氣層到達地面后被地物反射后再次穿過大氣層,被遙感傳感器接收的輻射能量,并由傳感器將這部分能量的特征傳送回地面接受,其被傳送回地面的能量特征數(shù)據(jù)被稱為遙感數(shù)據(jù)。其中,N*M宮格劃分的規(guī)則是“宮格中的瓦片是完整的遙感文件”以及“等分矩陣瓦片數(shù)”。本發(fā)明的創(chuàng)新之一就是,利用這種宮格劃分方法,將遙感數(shù)據(jù)均勻的分配到各個計算節(jié)點,可以將金字塔的創(chuàng)建劃分成若干任務并行執(zhí)行,利用了并行計算縮短創(chuàng)建時間。 N*M宮格劃分規(guī)則具體表示為1)每個宮格的行和列上都有完整的瓦片,而瓦片的一部分,記宮格寬為cell_w, 宮格高為cell_h,宮格行數(shù)為r,列數(shù)為c,瓦片的平均寬為tile_w,平均高為tile_h,其關系如下所示
cell_w = c*tile_w①cell_h = r*tile_h2)等分矩陣瓦片數(shù),即按照瓦片指定的寬、高,計算邏輯區(qū)域影像所能切割得到的瓦片個數(shù)Nnum*Mnum均勻的分配到N*M個宮格中,記i,j分別為宮格在矩陣中行號和列號, m為宮格每行應包含的瓦片個數(shù),η為宮格每列應包含的瓦片個數(shù),則每個宮格中包含的瓦片數(shù)可以表示為
Γ π . Tvr Nnum . ΛΓ ΛΓ Nnum /ΛΓ αι Φ N,η =- / = N,η = Nnum--* IjV-I
NN 、 '②
Γ π . ι Mnum . , . . . Mnum ,, , Λι Φ Μ, m =-, / =M,m =Mnum--* (Μ -1)
MM 、 )3)在等分瓦片到宮格時,因“邏輯區(qū)域影像”圖幅大小常??赡懿皇侵付ㄍ咂笮〉恼麛?shù)倍,因此會造成最后一行瓦片的高度和最后一列的瓦片寬度不足指定大小,即“邊角剩余”。在這里為了后續(xù)說明的方便,記最后一行瓦片的高度為“剩余高”,最后一列的瓦片寬度為“剩余寬”。“剩余高”和“剩余寬”需要在進行Ν*Μ宮格劃分時特別為位于矩陣最后一行和最后一列的宮格指明,記指定瓦片寬《,指定瓦片高h,剩余寬W’,剩余高h’,每個宮格最后一行瓦片的高為last_h,每個宮格最后一列瓦片的寬為last_w,則每個宮格(i,j) 中瓦片的圖幅大小可表示為i φ N, last_h = h ;i = N, last_h = h'③j φ Μ, last_w = w ; j =M, last_w = w'本發(fā)明中的“邊角剩余”是指在對“邏輯區(qū)域影像”進行瓦片切割時,“邏輯區(qū)域影像”出現(xiàn)最后一行的瓦片高度小于用戶指定的瓦片高度或者最后一列的瓦片寬度小于用戶指定的瓦片寬度的情況,記“邏輯區(qū)域影像”的圖幅高度為H,寬度為W,可表示為如下0 < h' < h ④0 < w' < w ⑤在本發(fā)明中將“邏輯區(qū)域影像”出現(xiàn)最后一行的瓦片高度小于用戶指定的瓦片高度的情況,稱作“邊角下剩余”,即如公式⑷所示。在本發(fā)明中將“邏輯區(qū)域影像”出現(xiàn)最后一列的瓦片寬度小于用戶指定的瓦片寬度的情況,稱作“邊角右剩余”,即如公式(5)所示。本發(fā)明中的“黑邊”是指為熒幕中顯示的內容除了正常影像之外,兩側或四周多出來的未顯示區(qū)域,因是黑色,故稱之為“黑邊”。黑邊的產生是由于原始影像與用戶指定的尺寸規(guī)格不同,在轉換后造成的。本發(fā)明中的“宮格信息”是指宮格對應的子圖的“瓦片切割情況”、子圖覆蓋的地理范圍,子圖對應的影像塊文件列表的描述信息。本發(fā)明中的“瓦片切割情況”是指“邏輯區(qū)域影像”經過N*M宮格劃分規(guī)則后分到該宮格中的瓦片個數(shù)n*m(見公式⑵),瓦片的寬w和高h,最后一行瓦片的高last_h和最后一列瓦片的寬last_w(見公式(3))。本發(fā)明中的“子圖覆蓋的地理范圍”是指根據(jù)“邏輯區(qū)域影像”左上角頂點的經緯
16度坐標和經緯度坐標系中的單位象元寬及單位象元高,瓦片的寬W、高h,宮格包含的瓦片個數(shù)n*m,和宮格的行列號(j,i),計算宮格對應子圖的左上角和右下角經緯度坐標。記“邏輯區(qū)域影像”左上角頂點的經緯度坐標為(ULX,ULY),單位象元寬為scaleX,單位象元高為 scaleY,子圖的左上角經緯度坐標為(ulx,uly),右下角經緯度坐標為(rlx,rly)
權利要求
1. 一種基于分布式的海量遙感影像快速建立金字塔算法,包括傳統(tǒng)金字塔的構造方法,其特征在于該方法是對傳統(tǒng)金字塔算法的改進,利用分布式數(shù)據(jù)存儲和并行計算能力,通過控制節(jié)點和計算節(jié)點之間的通信傳遞金字塔創(chuàng)建任務和原始影像塊文件列表,用控制節(jié)點來指導計算節(jié)點的金字塔創(chuàng)建,實現(xiàn)海量遙感影像快速建立金字塔算法,包括三部分N*M宮格劃分,金字塔創(chuàng)建任務分配及調度,和金字塔創(chuàng)建,其中N*M宮格劃分在N*M宮格劃分中涉及到“邏輯區(qū)域影像”、“子圖”、區(qū)域影像、影像塊及瓦片,上述“邏輯區(qū)域影像”、“子圖”為邏輯概念,而非物理存在,區(qū)域影像、影像塊和瓦片是真實的物理存在,按照地理空間順序排列而成,覆蓋一定地理范圍的瓦片集合稱為“子圖”, 其記錄子圖的圖幅大小、左上角頂點的經緯度位置的元數(shù)據(jù)信息,按照地理空間順序排列而成,覆蓋一定地理范圍的“子圖”集合稱為“邏輯區(qū)域影像”,是由影像塊組成的區(qū)域影像的邏輯表示,“邏輯區(qū)域影像”記錄了區(qū)域影像的圖幅大小、左上角頂點的經緯度位置的元數(shù)據(jù)信息,以上五者邏輯包含關系為區(qū)域影像包含子圖,子圖包含影像塊,影像塊包含瓦片,利用宮格劃分方法,將遙感數(shù)據(jù)均勻的分配到各個計算節(jié)點,將金字塔的創(chuàng)建劃分成各項任務并行執(zhí)行且并行計算,來實現(xiàn)正確劃分宮格和計算宮格信息,N*M宮格劃分在控制節(jié)點上執(zhí)行;金字塔創(chuàng)建任務分配及調度根據(jù)N*M宮格劃分參數(shù)為每個宮格生成對應的邏輯子任務,并將這些子任務加入任務隊列,同時控制節(jié)點啟動監(jiān)控程序,監(jiān)控作業(yè)的狀態(tài),任務調度采用“FIFO”先進先出模式,計算節(jié)點以PULL的方式積極向控制節(jié)點發(fā)送任務計劃請求, 從任務隊列中取出任務計劃并執(zhí)行,在執(zhí)行成功后,計算節(jié)點向控制節(jié)點提交狀態(tài)信息,控制節(jié)點作為任務調度模塊,讀取任務配置參數(shù)生成金字塔創(chuàng)建的大作業(yè),金字塔創(chuàng)建任務分配及調度在控制節(jié)點上執(zhí)行;金字塔創(chuàng)建根據(jù)接收到的任務計劃,包括宮格信息和影像塊集合,將分布存儲在該計算節(jié)點的“子圖”,作為金字塔的輸入文件并計算節(jié)點,按金字塔創(chuàng)建方法來創(chuàng)建金字塔, 各個計算節(jié)點根據(jù)收到的宮格信息,同分布存儲在該節(jié)點的“子圖”一起作為輸入文件,并行地創(chuàng)建金字塔的0層,計算節(jié)點以指定金字塔的層數(shù)作為循環(huán)控制條件,上層金字塔文件作為輸入,采用4個像素點提取1個像素點寫入下層金字塔文件的做法,得到金字塔的下層,金字塔創(chuàng)建在計算節(jié)點上執(zhí)行;海量遙感影像快速建立金字塔算法的具體工作步驟是 步驟1 開始(1)準備就緒基于PC集群的數(shù)據(jù)分布存儲; 步驟2 輸入初始參數(shù)O)在控制節(jié)點指定金字塔創(chuàng)建的相關參數(shù),包括宮格矩陣的行數(shù)N、宮格矩陣的列數(shù)M, 源文件的磁盤路徑,金字塔的目標路徑,金字塔層數(shù),瓦片的寬和高;如果判斷模塊的金字塔層數(shù)<0(21),則進入異常結束(9)模塊,如果判斷模塊的金字塔層數(shù)非<0(21),則進入源文件存在02)的判斷模塊?如果判斷模塊的源文件存在(22),則進入瓦片寬>0Q3)的判斷模塊?如果判斷模塊的源文件不存在(22),則進入異常結束(9)模塊;如果判斷模塊的瓦片寬>0(23),則進入瓦片高>004)的判斷模塊?如果判斷模塊的瓦片寬非> O (23),則進入異常結束(9)模塊;如果判斷模塊的瓦片高> O(M),則進入計算“邏輯區(qū)域”(3)模塊,如果判斷模塊的瓦片高非> O(M),則進入異常結束(9)模塊; 步驟3:計算“邏輯區(qū)域”(3)控制節(jié)點根據(jù)源文件的磁盤路徑,獲取源文件列表,并計算源文件影像塊對應的邏輯區(qū)域影像;執(zhí)行完計算“邏輯區(qū)域”(3)模塊后,則進入判斷模塊的宮格矩陣列M >0(31); 如果判斷模塊的宮格矩陣列M >0(31),則進入宮格矩陣行N >0(32)的判斷模塊?如果判斷模塊的宮格矩陣列M非> 0 (31),則進入異常結束(9)模塊;如果判斷模塊的宮格矩陣行N > 0 (32),則進入劃分“邏輯區(qū)域”成N*M宮格(4),如果判斷模塊的宮格矩陣行N非> 0 (32),則進入異常結束(9)模塊; 步驟4 劃分“邏輯區(qū)域”成N*M宮格N*M劃分宮格控制節(jié)點按照“宮格中的瓦片是完整的遙感文件”以及“等分矩陣瓦片數(shù)”的規(guī)則劃分邏輯區(qū)域影像成N*M個不等大小的宮格,則每個宮格對應區(qū)域影像的一部分——子圖,屬于同一個子圖的影像塊將分配到同一個計算節(jié)點中;a).計算瓦片個數(shù)按照瓦片指定的寬、高,計算邏輯區(qū)域影像所能切割得到的瓦片個數(shù)NnUm*MnUm,其中 Nnum表示縱向每列瓦片個數(shù),Mnum表示橫向每行瓦片個數(shù);b).等分瓦片個數(shù)等分瓦片個數(shù)Nnum*Mnum到N*M個宮格中,其中N為宮格矩陣的行數(shù),M為宮格矩陣的列數(shù),記宮格[i,j]分別為宮格在矩陣中行號和列號,除了最后一行和最后一列的宮格之外,其他宮格的瓦片數(shù)均為(NnUm/N)*(MnUm/M),其中,處于矩陣最后一行的宮格其瓦片個數(shù)應為^Nnum - * (N - l)j * (Mnum/Μ),而處于矩陣最后一列的宮格其瓦片個數(shù)應為(Nnum / N) * ^Mnum - mu^1 *{m - l)j ;c).計算子圖的經緯度坐標根據(jù)每個宮格包含的瓦片數(shù),瓦片寬、高和邏輯區(qū)域影像左上角的頂點經緯度坐標,計算得到所有宮格對應子圖的左上角頂點和右下角頂點經緯度坐標;d).計算宮格子圖對應的影像塊文件列表根據(jù)步驟c的左上角和右下角頂點的經緯度坐標生成經緯度坐標矩形,同所有待創(chuàng)建金字塔的影像塊文件的經緯度坐標外包矩形相比較,包含在該矩形內及與該矩形相交的影像塊都屬于該宮格;e).封裝宮格信息將步驟b到d中的瓦片個數(shù)、瓦片寬和高、宮格左上角和右下角頂點的經緯度坐標,宮格所屬影像塊文件列表封裝成宮格信息,用于金字塔的創(chuàng)建,并完成從控制節(jié)點傳遞到計算節(jié)點的創(chuàng)建任務;步驟5 循環(huán)計算每個宮格的子圖(5)執(zhí)行完劃分“邏輯區(qū)域”成N*M宮格(4)模塊后,則進入循環(huán)計算每個宮格的子圖(5) 模塊;步驟6 分配創(chuàng)建任務(6)執(zhí)行完循環(huán)計算每個宮格的子圖( 模塊后,則進入分配創(chuàng)建任務(6)模塊,分配創(chuàng)建任務(6)模塊并行地創(chuàng)建金字塔A(61)、創(chuàng)建金字塔B(6》…及創(chuàng)建金字塔N,并進行并行計算;步驟7 創(chuàng)建金字塔失敗個數(shù)> 0(7) ?執(zhí)行完分配創(chuàng)建任務(6)模塊后,則進入判斷模塊的創(chuàng)建金字塔失敗個數(shù)>0(7);如果判斷模塊的創(chuàng)建金字塔失敗個數(shù)>0(7),則進入異常結束(9)模塊,如果判斷模塊的創(chuàng)建金字塔失敗個數(shù)非> 0(7),則進入成功結束(8)模塊;步驟8:成功結束(8)當判斷模塊的創(chuàng)建金字塔失敗個數(shù)非> 0(7),則成功結束(8)。
2.根據(jù)權利要求1所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的分布式是由以太網連接的一個控制節(jié)點和多個計算節(jié)點所組成的集群。
3.根據(jù)權利要求1所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的區(qū)域影像是航空平臺和衛(wèi)星平臺上的遙感器,利用遙感技術所獲得關于至少一個區(qū)域的高分辨率像片。
4.根據(jù)權利要求1、3所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的影像塊是為了符合瀏覽窗口尺寸和加快瀏覽速度,采用地理信息工具在保證原有分辨率的前提下,將區(qū)域影像剪裁成至少一個相對區(qū)域影像來說小尺寸的遙感像片。
5.根據(jù)權利要求1所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的邏輯區(qū)域影像是區(qū)域影像的邏輯表示,其記錄區(qū)域影像的圖幅大小、左上角頂點的經緯度位置、仿射地理變換矩陣的元數(shù)據(jù)信息。
6.根據(jù)權利要求1、5所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的子圖是邏輯區(qū)域影像中根據(jù)N*M宮格劃分規(guī)則劃分后落入在宮格的瓦片集合,子圖的寬是宮格的寬度,子圖的高是宮格的高度。
7.根據(jù)權利要求1所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的宮格信息是宮格在宮格矩陣中的編號,該宮格對應的子圖的地理坐標、該宮格對應的子圖的圖幅大小、該宮格所包含的瓦片數(shù)、該宮格所包含的瓦片寬和高、該宮格最后一行的瓦片高、該宮格最后一列的瓦片寬及宮格對應子圖所包含的影像塊列表。
8.根據(jù)權利要求1所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的邏輯區(qū)域、子圖、影像塊及瓦片之間的具體關系為一邏輯區(qū)域Gl)包含子圖的影像塊為子圖AG11)、子圖^412)、子圖((413)和子圖 D(414),其中子圖B(4U)的影像塊集合包含B1、B2、B3以及與子圖相交的影像塊,而影像塊BK4121)又包含至少一瓦片集合。
9.根據(jù)權利要求1所述的一種基于分布式的海量遙感影像快速建立金字塔算法,其特征在于所述的N*M宮格劃分和計算子圖時,對于宮格[i,j]的具體工作步驟是步驟1 判斷宮格[i,j]在宮格矩陣最后一列(10) ?如果判斷模塊的宮格[i,j]不在宮格矩陣最后一列,則進入第一路的每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)/M(IOl)模塊,如果判斷模塊的宮格[i,j]在宮格矩陣最后一列,則進入第二路的每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% M(102)模塊;第一路先執(zhí)行每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)/M(IOl)模塊,執(zhí)行完每行瓦片數(shù)= 邏輯區(qū)域每行瓦片數(shù)/M(IOl)模塊后,則進入最后一行瓦片的寬=輸入的瓦片寬(1011)模塊;第二路先執(zhí)行每行瓦片數(shù)=邏輯區(qū)域每行瓦片數(shù)% M(102)模塊,執(zhí)行完每行瓦片數(shù) =邏輯區(qū)域每行瓦片數(shù)%M(102)模塊后,則進入最后一行瓦片的寬=剩余寬(1021)模塊;步驟2 判斷宮格[i,j]在宮格矩陣最后一行(11) ?執(zhí)行完最后一行瓦片的寬=輸入的瓦片寬(1011)模塊后,則進入判斷模塊宮格[i,j] 在宮格矩陣最后一行(11) ?執(zhí)行完最后一行瓦片的寬=剩余寬(1021)模塊后,則進入判斷模塊宮格[i,j]在宮格矩陣最后一行(11) ?如果判斷模塊的宮格[i,j]不在宮格矩陣最后一行,則進入第一路的每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)/N(Ill)模塊,如果判斷模塊的宮格[i,j]在宮格矩陣最后一行,則進入第二路的每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)% N(112)模塊;第一路先執(zhí)行每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)/N(Ill)模塊,執(zhí)行完每列瓦片數(shù)= 邏輯區(qū)域每列瓦片數(shù)/N(Ill)模塊后,則進入最后一列瓦片的高=輸入的瓦片高(1111)模塊;第二路先執(zhí)行每列瓦片數(shù)=邏輯區(qū)域每列瓦片數(shù)% N(112)模塊,執(zhí)行完每列瓦片數(shù) =邏輯區(qū)域每列瓦片數(shù)% N(112)模塊后,則進入最后一列瓦片的高=剩余高(1121)模塊;步驟3 計算子圖的左上角頂點地理坐標(12)第一路執(zhí)行完最后一列瓦片的高=輸入的瓦片高(1111)模塊后,則進入計算子圖的左上角頂點地理坐標(1 模塊;第二路執(zhí)行完最后一列瓦片的高=剩余高(1121)模塊后,則進入計算子圖的左上角頂點地理坐標(1 模塊;步驟4:計算子圖的右下角頂點地理坐標(13)執(zhí)行完計算子圖的左上角頂點地理坐標(12)模塊后,則進入計算子圖的右下角頂點地理坐標(13)。
全文摘要
一種涉及地理信息與信息技術的交叉領域,尤其涉及一種應用于“國家空間數(shù)據(jù)基礎設施”建設中的一種基于分布式的海量遙感影像快速建立金字塔算法。該方法利用基于PC集群的數(shù)據(jù)分布存儲以及并行計算能力,通過N*M宮格劃分,金字塔創(chuàng)建任務分配及調度和金字塔創(chuàng)建,通過正確劃分宮格和計算宮格信息,通過控制節(jié)點和計算節(jié)點之間的通信傳遞任務,實現(xiàn)海量遙感影像快速建立金字塔算法,該方法主要解決如何進行N*M宮格劃分等有關技術問題。本發(fā)明的優(yōu)點是基于數(shù)據(jù)分布存儲以及并行計算能力,提高海量遙感影像金字塔生成的速度,解決了影像塊文件跨宮格而造成的“黑邊”問題,達到加快金字塔的創(chuàng)建速度,并保證了金字塔創(chuàng)建的準確性。
文檔編號G06F17/30GK102446208SQ20111025812
公開日2012年5月9日 申請日期2011年9月2日 優(yōu)先權日2011年9月2日
發(fā)明者呂振華, 吳健平, 李波, 胡俊, 趙慧, 陳逸, 高崢, 黃飛鵬 申請人:華東師范大學