一種基于消息傳遞接口的遙感影像金字塔并行構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于地理信息處理技術(shù)領(lǐng)域,設(shè)及一種地理信息系統(tǒng)中大規(guī)模遙感影像金 字塔的構(gòu)建方法。
【背景技術(shù)】
[0002] 隨著遙感數(shù)據(jù)獲取技術(shù)的快速發(fā)展,遙感影像的空間和時(shí)間分辨率都大幅度地提 高,單幅遙感影像文件的數(shù)據(jù)量也急劇增加。對(duì)于大規(guī)模遙感影像進(jìn)行快速顯示和服務(wù)發(fā) 布時(shí),通過(guò)預(yù)先構(gòu)建金字塔是提高可視化和服務(wù)性能的有效手段,但大數(shù)據(jù)量為金字塔的 構(gòu)建效率帶來(lái)了巨大挑戰(zhàn)。傳統(tǒng)串行的方式由于構(gòu)建時(shí)間很長(zhǎng),已無(wú)法與數(shù)據(jù)獲取的速度 相匹配,遠(yuǎn)遠(yuǎn)不能滿足實(shí)際應(yīng)用需求。如何對(duì)大數(shù)據(jù)量遙感影像快速構(gòu)建金字塔成為一個(gè) 亟待解決的問(wèn)題。在此背景下,采用多處理器、多節(jié)點(diǎn)的集群計(jì)算環(huán)境和并行處理機(jī)制構(gòu)建 金字塔成為必然趨勢(shì)。
[0003] 金字塔結(jié)構(gòu)用于實(shí)現(xiàn)遙感影像的多分辨率組織。簡(jiǎn)單來(lái)說(shuō),金字塔結(jié)構(gòu)就是由原 始遙感影像開(kāi)始,建立起一系列不同分辨率的遙感影像,不同分辨率的遙感影像對(duì)應(yīng)不同 的金字塔級(jí)。同時(shí),金字塔也是遙感影像的一種有損壓縮方式。構(gòu)建金字塔W后,可W改善 遙感影像顯示性能,當(dāng)用戶需要對(duì)遙感影像進(jìn)行不同分辨率地放大、縮小或平移時(shí),通過(guò)選 擇一個(gè)與用戶視圖相近分辨率的數(shù)據(jù)進(jìn)行可視化,從而系統(tǒng)只需進(jìn)行少量的計(jì)算和查詢就 可W返回結(jié)果,不需要進(jìn)行逐級(jí)采樣計(jì)算,大大減少數(shù)據(jù)顯示時(shí)間。
[0004] 并行構(gòu)建金字塔主要有兩種思路。一種是基于GPU (Graphic Processing化it,圖 形處理單元)進(jìn)行并行加速,利用GPU的計(jì)算能力加快金字塔的構(gòu)建速度,該種方法與GPU 硬件能力相關(guān),會(huì)提高系統(tǒng)架構(gòu)的成本;另一種是利用分布式集群系統(tǒng),將大規(guī)模遙感影像 文件的金字塔構(gòu)建任務(wù)劃分為多個(gè)子任務(wù),在多個(gè)分布式節(jié)點(diǎn)上同時(shí)進(jìn)行。該種方法擴(kuò)展 性較好,可W充分利用分布式并行環(huán)境來(lái)處理大規(guī)模數(shù)據(jù),但需要將遙感影像分布存儲(chǔ)在 多個(gè)節(jié)點(diǎn)。目前,利用共享外存的高性能集群,基于MPI (Message Passing Inte計(jì)ace,消 息傳遞接口)進(jìn)行大規(guī)模遙感影像金字塔的并行構(gòu)建研究較少。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的提供一種基于新思路的遙感影像金字塔并行構(gòu)建方法。本發(fā)明不需 利用GPU,而是利用共享外存的高性能集群,實(shí)現(xiàn)對(duì)遙感影像并行重采樣,然后將重采樣結(jié) 果并行寫入到文件系統(tǒng)中,形成遙感影像金字塔。
[0006] 本發(fā)明的技術(shù)解決方案為;一種基于消息傳遞接口的遙感影像金字塔并行構(gòu)建方 法,金字塔級(jí)數(shù)越大分辨率越低。步驟如下:
[0007] 第一步;設(shè)置金字塔級(jí)數(shù)和進(jìn)程個(gè)數(shù)
[000引根據(jù)實(shí)際需要設(shè)定金字塔級(jí)數(shù)和進(jìn)程個(gè)數(shù),并設(shè)定零號(hào)進(jìn)程作為主進(jìn)程;
[0009] 第二步;讀取遙感影像的元數(shù)據(jù)信息
[0010] 主進(jìn)程讀取遙感影像的元數(shù)據(jù)信息。
[0011] 第s步:創(chuàng)建金字塔文件
[0012] 主進(jìn)程根據(jù)設(shè)定的金字塔級(jí)數(shù)和遙感影像的元數(shù)據(jù)信息計(jì)算待創(chuàng)建的金字塔 文件大小,如果金字塔文件不超過(guò)4GB,則創(chuàng)建GeoTIFF(Georeferenced Tagged Image File化rmat,地理參考標(biāo)簽影像文件格式)格式的金字塔文件,該金字塔文件只包含相應(yīng) 的元數(shù)據(jù)信息;如果金字塔文件大小超過(guò)4GB,貝ij包I建BigTIFF炬ig Tagged Image File 化rmat,大規(guī)模標(biāo)簽影像文件格式)格式的金字塔文件,該金字塔文件同樣只包含相應(yīng)的 元數(shù)據(jù)信息。
[0013] 對(duì)遙感影像的每一個(gè)波段進(jìn)行下述處理,即包括第四步至第走步的處理:
[0014] 第四步:數(shù)據(jù)劃分
[0015] 主進(jìn)程根據(jù)元數(shù)據(jù)信息,按照行劃分的方式對(duì)遙感影像的當(dāng)前處理波段數(shù)據(jù)根據(jù) 數(shù)據(jù)量平均劃分給各個(gè)進(jìn)程,并通知各個(gè)進(jìn)程讀取各自劃分到的數(shù)據(jù)。
[0016] 第五步:讀取數(shù)據(jù)
[0017] 各個(gè)進(jìn)程根據(jù)各自劃分到的數(shù)據(jù)情況,計(jì)算在原始遙感影像文件中的數(shù)據(jù)偏移, 將所要處理的遙感影像數(shù)據(jù)讀入內(nèi)存,各個(gè)進(jìn)程讀取數(shù)據(jù)的過(guò)程并行地進(jìn)行。
[0018] 設(shè)當(dāng)前金字塔級(jí)數(shù)為0級(jí),然后進(jìn)行下述步驟:
[0019] 第六步運(yùn)采樣
[0020] 各個(gè)進(jìn)程采用重采樣算法對(duì)所要處理的遙感影像數(shù)據(jù)進(jìn)行當(dāng)前金字塔級(jí)數(shù)對(duì)應(yīng) 粒度的重采樣,將重采樣后的結(jié)果緩存在內(nèi)存中,準(zhǔn)備寫入到金字塔文件,各個(gè)進(jìn)程重采樣 操作并行地進(jìn)行。
[0021] 第走步;并行寫出結(jié)果
[0022] 各個(gè)進(jìn)程計(jì)算第六步緩存在內(nèi)存中的重采樣結(jié)果在金字塔文件中放置的偏移量, 將內(nèi)存中的重采樣后的結(jié)果并行寫入金字塔文件。
[0023] 將當(dāng)前金字塔級(jí)數(shù)加1,如果當(dāng)前金字塔級(jí)數(shù)小于設(shè)定金字塔級(jí)數(shù),則返回第六 步;如果當(dāng)前金字塔級(jí)數(shù)不小于設(shè)定金字塔級(jí)數(shù),則結(jié)束當(dāng)前處理波段的處理。
[0024] 本發(fā)明的有益效果是:
[0025] (1)本發(fā)明所生成的遙感影像金字塔文件與地理空間數(shù)據(jù)抽象庫(kù) GDAL(Geospatial Data Abstract Library,地理數(shù)據(jù)抽象庫(kù))生成的金字塔文件格式一 致,GDAL是一種被廣泛應(yīng)用的金字塔構(gòu)建工具,其創(chuàng)建的金字塔文件能夠被當(dāng)前絕大多數(shù) 地理信息系統(tǒng)軟件直接使用,可W無(wú)縫集成到各種地理信息應(yīng)用中。
[0026] (2)本發(fā)明構(gòu)建金字塔效率高。除了在主進(jìn)程創(chuàng)建金字塔文件時(shí),各個(gè)進(jìn)程需要等 待外,在重采樣和數(shù)據(jù)并行讀寫過(guò)程中,各個(gè)進(jìn)程完全并行。而且,由于創(chuàng)建的金字塔文件 中只包含數(shù)據(jù)量很小的元數(shù)據(jù)信息,進(jìn)程等待時(shí)間相對(duì)于金字塔構(gòu)建時(shí)間較少。
[0027] (3)本發(fā)明數(shù)據(jù)寫出效率高。各個(gè)進(jìn)程在重采樣完成后,并行寫出重采樣結(jié)果數(shù) 據(jù),提高了數(shù)據(jù)寫出效率。
【附圖說(shuō)明】
[002引圖1是本發(fā)明的流程不意圖;
[0029] 圖2是本發(fā)明并行構(gòu)建金字塔時(shí)數(shù)據(jù)劃分和重采樣的示意圖;
[0030] 圖3是GDAL算法與本發(fā)明方法對(duì)不同類型遙感影像構(gòu)建金字塔的性能對(duì)比;
[0031] 圖4是本發(fā)明方法構(gòu)建金字塔時(shí)執(zhí)行時(shí)間隨處理進(jìn)程數(shù)目變化情況。
【具體實(shí)施方式】
[0032] 結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
[0033] 圖1為本發(fā)明流程示意圖。假設(shè)設(shè)定N個(gè)進(jìn)程參與金字塔并行構(gòu)建,分別為 Pu,Pi,…,Pw_i,其中P。為零號(hào)進(jìn)程作為主進(jìn)程。輸入?yún)?shù)除進(jìn)程個(gè)數(shù)N W外,還有金字塔級(jí) 數(shù)K,即最后輸出為包含L。,Li,…,Lk_i級(jí)金字塔數(shù)據(jù)的文件。主進(jìn)程從輸入遙感影像文件 F中讀取元數(shù)據(jù)信息(包括波段數(shù)、行數(shù)、列數(shù)、數(shù)據(jù)類型、多波段數(shù)據(jù)分布方式、顏色表信 息)。假設(shè)元數(shù)據(jù)信息的大小為M字節(jié),遙感影像文件F中除去元數(shù)據(jù)信息后遙感影像數(shù)據(jù) 大小為D字節(jié),金字塔文件大小則為M+進(jìn),1 D/22兮節(jié)。主進(jìn)程P。根據(jù)金字塔級(jí)數(shù),設(shè)置金