
摘要:高分三號是我國C波段多極化合成孔徑雷達衛星,形成三星組網星座。PolSARpro是歐空局支持下的一款SAR影像處理的開源軟件。為了便于使用該軟件來處理高分三號數據,提出了一種根據PolSARpro軟件的數據格式要求進行分布式并行轉換算法,該算法內層采用OpenMP按極化方式并行計算,中間層采用MapReduce按景并行處理,外層采用MPI按任務分布式計算,最終實現將高分三號極化數據快速精確轉化為復數散射矩陣S2數據格式,并且通過KingMapV10.0平臺實現了算法并在實際數據中進行測試,驗證了算法的高效性、可行性和正確性。
關鍵詞:高分三號復數散射矩陣合成孔徑雷達并行計算分布式計算
中圖法分類號:P237
DistributedParallelConversionAlgorithmofGF-3DataBasedonMPI,MapReduceandOpenMPHybridProgramming
SHIChao1*CAIYuanhao2CHENChao1YAOShulin2CHENYun2
1.HulunbeirBigDataCenter,Hulunbeir,InnerMongoliaAutonomousRegion,021000China;
2.HulunbeirSmartCityDevelopmentResearchInstitute,Hulunbeir,InnerMongoliaAutonomousRegion,021000China
Abstract:Gaofen-3istheC-bandmulti-polarizationSARsatelliteinChina,andnetworkedaconstellationof3satellites.PolSARproisanopensourcesoftwareforSARimageprocessingsupportedbyESA.InordertoprocessGF-3dataconveniently,thispaperproposesadistributedparallelconversionalgorithmaccordingtothedataformatrequirementsofitssoftware,internallayerbasedonOpenMPbypolarization,intermediatelayerbasedonMapReducebyScene,andexternallayerbasedonMPIbytask,whichcanquicklyandaccuratelyconvertGF-3polarizationdataintocomplexsinclairmatrixdataformat.ThealgorithmisimplementedonKingMapV10.0platformandtestedinrealdata,whichverifiestheefficiency,feasibilityandcorrectnessofthealgorithm.
KeyWords:GF-3;Complexsinclairmatrix;Syntheticapertureradar;Parallelcomputing;Distributedcomputing
2022年4月7日,我國成功發射高分三號03星,中國海陸監視監測迎來“三星組網”時代[1],滿足海陸觀測快速重訪需求,為多極化SAR衛星數據業務化應用提供支撐。高分三號在海洋和陸地監視監測中具有全天候和全天時的特點,是我國實施陸地環境資源監測、海洋開發和防災減災的重要技術支撐[2-4]。PolSARpro是由法國雷恩第一大學電子和電信學院教授EricPOTTIER等領銜開發的免費用于極化科學研究與教學開源處理軟件[5]。為了便于利用PolSARpro開源軟件處理高分三號數據,需要根據其軟件的數據格式要求進行快速的轉換。當前PolSARpro軟件(官網上最新版本是v6.0.4)已集成了高分三號數據的導入處理[6],但數據轉換效率相對較低。陳云等人[7-9]雖然給出了較高效的分布式并行轉換算法,但性能相對還是偏低。陳云[10]采用QTConcurrent并行框架實現,在單機環境下有更好的性能表現,但未實現分布式并行計算。因此,本文首先通過公式推導進而簡化得到中間參數,給出了基于MPI、MapReduce和OpenMP混合編程的分布式多重并行轉換算法;其次通過實際高分三號數據,驗證算法的高效性、可行性和正確性;最后通過試驗性能對比分析,表明本文方法可以相對更高效地解決上述問題。
1算法原理
本文主要針對高分三號L1A數據產品進行數據轉換處理。該數據產品主要包括RPC文件、TIFF文件和影像元信息文件等,TIFF文件按BIP像元格式保存,其實部和虛部都是按16bit通道存儲。
由于獲取的GF-3衛星SAR數據為L1A級單視復圖像,在應用前需要進行數據預處理。由GF-3衛星L1A級數據獲取后向散射系數的定標公式[11]如下。
式(1)中:單位為dB,是雷達后向散射系數;在L1A影像中,其中,,為1A級數據產品實部,為1A級數據產品虛部,為該景影像量化前的最大值,該參數可通過元數據文件字段獲取。是該景影像的雷達散射的定標系數,該系數可通過L1A影像元數據文件獲取CalibrationConst字段。
根據PolSARpro軟件的復數散射矩陣數據S2數據格式要求,以及根據文獻7中的公式推導優化,記:
記:,為linear形式的實部后向散射系數;其中,單位為dB。
記:,為linear形式的虛部后向散射系數;其中,單位為dB。
則有:
具體算法主要流程設計如下文所述。
2算法設計
本文算法外層分布式并行處理過程采用MPI,中間層并行處理過程采用QtConcurrent并行計算框架,內層并行處理過程采用OpenMP進行混合編程實現。
2.1分布式并行開發環境的安裝部署
(1)建OpenMP并行計算開發環境,具體配置過程參考文獻8相關內容。
(2)搭建MapReduce并行計算開發環境。先安裝好QT5軟件;接著在VS2015開發環境中創建的QT工程中配置好項目屬性:配置屬性->C/C++->常規->附加包含目錄中加入QTConcurrent頭文件目錄,鏈接器->常規->附加庫目錄中加入QT5的lib庫目錄,鏈接器->輸入->附加依賴項中加入Qt5Concurrent.lib;最后在源碼中添加<QtConcurrentRun>和<QtConcurrentMap>等頭文件。
(3)搭建MSMPI分布式并行計算開發環境。先安裝好msmpi軟件環境;然后在上述開發環境中繼續配置好項目屬性:配置屬性->VC++目錄->包含目錄中添加MSMPI頭文件目錄,64位環境配置為$(MSMPI_INC);$(MSMPI_INC)\x64,在VC++目錄->庫目錄中添加MSMPI庫目錄,64位環境配置為$(MSMPI_LIB64),鏈接器->輸入->附加依賴項中添加msmpi.lib;最后在源碼中添加<mpi.h>頭文件。
2.2分布式并行環境主要處理流程
(1)MPI進程通過調用函數MPI_Comm_size來確定一個分布式環境中通信域中的進程總數N。
(2)MPI進程通過調用函數MPI_Comm_rank來確定它在通信域中的序號ID。并使用進程的序號來決定它負責處理任務中高分三號數據集的哪些景。
(3)MPI調度進程獲取所有高分三號數據待處理任務列表GF3_TaskList。
(4)MPI調度進程從GF3_TaskList中列表中獲取高分三號數據集GF3_DataList,通過MPI_Isend函數把該數據派發給某個MPI處理進程。
(5)MPI處理進程通過MPI_Irecv函數收到高分三號數據集GF3_DataList后,中間層采用調用QtConcurrent::map并行框架實現多景高分三號影像數據的處理,輸入參數為高分三號數據列表GF3_DataList,以及每景高分三號數據的Convert并行轉換函數。
(6)在Convert并行轉換函數中,最內層進一步采用OpenMP按HH、HV、VH和VV等極化方式進行并行處理。
(7)采用QFuture的waitForFinished等待方法,直至MPI進程中所有高分三號數據都處理完成。
(8)當MPI處理進程處理完成后,通過MPI_Isend函數把處理結束信息返回給MPI調度進程。
(9)重復上述步驟(4)到步驟(8)過程,每輪并行處理N景高分三號數據,直至所有高分三號數據都處理完成。
注意:通常高分三號原始數據為.tar.gz壓縮包,使用前如未解壓應先解壓。
3算法實例
采用地理信息系統開發平臺KingMapV10.0進行驗證,平臺通過C/C++語言實現。平臺的運行環境如下。
計算機配置:操作系統采用MicrosoftWin11專業版;內存為LPDDR4x16.0GB,3733MHz;CPU為11thGenIntel(R)Core(TM)i5-11300H@3.10GHz,四核,8線程;內置固態硬盤為512GB,M.2接口;外置移動固態硬盤為2TB,Type-C接口;顯卡為Intel(R)Iris(R)XeGraphics集成顯卡,128M。
為了方便對比測試,不妨在上述電腦上配置兩臺相同配置的虛擬機,具體如下:操作系統為MicrosoftWindows7旗艦版;內存為6.0GB,LPDDR4x;CPU為11thGenIntel(R)Core(TM)i5-11300H@3.10GHz,3核;硬盤大小為120GB;集成顯卡。
算法程序以高分三號4景全極化條帶1數據(數據列表如表1所示)進行轉換,經驗證本文算法轉換后的數據結果與PolSARpro軟件生成的結果一致,表明算法真實可靠。不同的算法以及不同的運行策略下的性能結果如表2所示。
運行效率分析:采用同樣配置的雙機環境下,基于MSMPI和OpenMP混合編程方法處理4景共花費約12.15s,而本文采用基于MSMPI、MapReduce和OpenMP混合編程方法也同樣處理4景共耗時約10.75s,因此雙機分布式環境下,引入MapReduce框架節約了1.40s。同時,隨著數據量的增大,性能受數據存取影響較大,受存儲設備限制,數據存取時間比較剛性,難以隨著并行化程度提升而明顯提升。
每景數據的大小可能不一,因此針對每景的處理時間代價也不一樣,而通過融入MapReduce并行計算框架,在分布式環境下,最終轉換完成時實現整體上時間花費更少,從而達到更好的性能。
雖然在分布式環境下提升了性能,但由于數據大小不一,轉換時間各不相同,數據存在傾斜情況,因此,在分布式環境下,有待針對數據的傾斜情況進一步完善動態調度機制,以期達到分布式環境下每臺服務器的負載均衡。
由于受數據存取和計算能力的限制,因此性能達到一定程度后反而出現性能下降情況,因此在實際應用過程中需要進一步進行算法調優。
本文算法涉及分布式環境下的并行式轉換多時相高分三號影像數據集時更具優勢。
4結語
本文通過簡化計算公式,提出了一種基于MPI、MapReduce和OpenMP混合編程的高分三號復數散射矩陣數據分布式多重并行轉換算法。該算法已在地理信息系統開發平臺KingMapV10.0上編程實現并采用實際數據進行測試,驗證了算法的高效性、可靠性、準確性和易擴展性。當然,本文也存在不足之處,有待支持不同成像模式的多種極化方式數據,將在另文討論。
參考文獻
[1]張蕾.數說“太空全能神探”[EB/OL].(2022-04-08)[2024-01-17].https://news.gmw.cn/2022-04/08/content_35642673.htm.
[2]張慶君.高分三號衛星總體設計與關鍵技術[J].測繪學報,2017,46(3):269-277.
[3]國家國防科技工業局重大專項工程中心,國家航天局對地觀測與數據中心.2018中國高分衛星應用國家報告(標準規范卷)[M].北京:國防科工局重大專項工程中心,2018.
[4]國家國防科技工業局重大專項工程中心,國家航天局對地觀測與數據中心.2018中國高分衛星應用國家報告(共性產品卷)[M].北京:國防科工局重大專項工程中心,2018.
[5]ESA.PolSARpro[EB/OL].(2024-01-17)[2024-01-17].https://earth.esa.int/web/polsarpro/home.
[6]POTTIERE.PolSARprov6.0(BiomassEdition)Software[EB/OL].(2023-07-01)[2024-01-17].https://ietr-lab.univ-rennes1.fr/polsarpro-bio/.
[7]陳云,鞠佳衡,林偉木,等.一種高分三號復數散射矩陣數據快速轉換算法[J].測繪與空間地理信息,2022,45(3):50-52.
[8]陳云.基于OpenMP的高分三號數據并行轉換算法[J].測繪與空間地理信息,2022,45(6):85-86,91,95.
[9]陳云.基于MPI和OpenMP混合編程的高分三號數據分布式并行轉換算法[J].測繪與空間地理信息,2024,47(2):43-45,49.
[10]陳云.基于MapReduce的VCT3.0多圖層面間接線并行構建算法[J].測繪地理信息,2022,47(3):157-160.
[11]國防科工局重大專項工程中心,中國資源衛星應用中心.高分三號衛星地面系統用戶手冊[Z].北京:中國資源衛星應用中心,2017:1-39.