PolSARpro v5.1.3 處理Sentinel-1A SLC數據


(碼字和截圖不易,請尊重作者原創勞動,轉載請註明來源,謝謝!)

PolSARpro軟件簡介

PolSARpro是由法國雷恩第一大學(Université de Rennes 1)電子和電信學院教授Eric Pottier1等人帶頭開發的專門用於PolSAR(極化合成孔徑雷達)、Pol-InSAR(極化干涉合成孔徑雷達)、Pol-TomoSAR(極化層析合成孔徑雷達)科學研究與教學的免費開源處理軟件。自2003年開始研發,經過衆多頂尖SAR研究機構15年多的研發歷程,漸漸成爲處理極化SAR領域功能最強大的免費開源軟件。

準備工作

  1. 提前安裝好PolSARpro V5.1 系列版本軟件(最新版本爲PolSARpro V6.0, 可以到這個網址下載:https://www.ietr.fr/polsarpro-bio/ )及其相關軟件(包括歐空局SNAP、Google Earth、GIMP、ImageMagick Display);
    由於PolSARpro官網(https://earth.esa.int/web/polsarpro/home)這段時間暫時不能下載PolSARpro V5.1.3軟件了。鑑於此,這裏附上PolSARpro V5.1.3百度雲盤完整的安裝包(該安裝包來自於我本科畢業論文指導老師,在此表示感謝):
    網址:https://pan.baidu.com/s/1HpDAES_o222KAOrW1NUW1g 密碼:47u8
    安裝教程可以參考本文最後提供的PolSARpro教程
  2. 下載某一Sentinel 1A/1B C波段雙極化SLC數據(許多網站都可以免費下載,推薦從歐空局哥白尼數據開放獲取中心下載,);
    網上有許多關於Sentinel 1A/1B數據的帖子,百度一搜就有,不用多說;
    注意PolSARpro只能讀取處理SAR的SLC(Single Looking Complex)數據
    本文所用數據集:
    S1A_IW_SLC__1SDV_20180505T095436_20180505T095503_021768_025901_91B7.SAFE
衛星 波段 數據等級 極化方式 獲取時間
Sentinel 1A C SLC VH/VV 2018/05/05

見百度雲盤網址(也可以自行下載,別的數據也可以):
鏈接:https://pan.baidu.com/s/1TJMd564aNiTzRIcNS7BTdg 密碼:6hp5

數據預處理

讀取Sentinel 1A數據

首先,啓動PolSARpro,其初始打開頁面如下圖所示,在後面的操作中請注意觀察菜單欄(下圖紅色框部分)的變化。
圖1

選擇環境

三種環境(如下圖所示)設置:PolSAR對應單時相的數據集(即同種數據源單一數據集);Pol-InSAR對應雙時相的數據集(即同種數據源兩個數據集);Pol-TomSAR對應多時相的數據集(即同種數據源多個數據集,數量大於2);
本文爲PolSAR應用,選擇第一種環境。

圖2
進入下圖頁面,請觀察紅色框部分,左邊出現了一個大寫字母“S”,這個是什麼意思呢,實際上這是 Single Data Set(Pol-SAR) 的首字母;若選擇第二種環境,這個字母顯示爲“D”; 若選擇第三種環境,這個字母顯示爲“M”;
在這裏插入圖片描述

選擇主輸入文件夾

對於Sentinel-1A而言,這個主文件夾指的是 .SAFE文件夾 (即存放數據的 最淺父目錄 ,打開其他類型的SAR數據如ALOS-1、2等,也是要選擇最淺父目錄,目錄選得不對PolSARpro將不能識別數據),通常下載的Sentinel-1A解壓後的下一層目錄。在後面的每一步,有什麼問題都可以點擊最後一行的 黃色“?”框 ,查看幫助說明,不過這個幫助文檔還不完善,並且是英文的,需要有一定的極化SAR和英文基礎知識才能看懂。
圖4
選好後點擊“Save&Exit”,會彈出一個Warning(見下圖):其大意是沒有發現數據,問是否需要改變目錄,這時選擇“No”;
圖5
這時會看到菜單欄的“Import””欄目點亮了,選擇Spaceborne Sensors(星載傳感器)—>Sentinel-1(哨兵-1)—>Unzipped Data Product(解壓數據產品),如下圖所示:
圖6
進入如下頁面,注意觀測圖中紅色框部分,可以看到部分頭文件信息:

Mission(衛星名稱):S1A(表明這是Sentinel-1A而不是1B);Acquisition(獲取模式):IW(Interferometric Wide,干涉寬幅模式);Product(產品類型):SLC(Single Look Complex,單視複數據);Polarisation(極化方式):PP2(Partial Polarisation 2,部分極化之意,這裏的數據是VH/VV方式);Swath(條帶):1;
圖7
談到Sentinel-1的Swath(條帶),需要多說一下,Sentinel-1的一個數據集由3個Swath(條帶)組成,每個Swath(條帶)又由9個burst帶(脈衝帶)構成。PolSARpro V5.1.3只能逐個Swath(條帶)處理,若想整個處理或者細分到具體的burst帶(脈衝帶)處理,可以使用歐空局的SNAP軟件進行處理。

設置讀取參數

這裏選擇“Swath 2”,處理包含上海市崇明區長興島的數據,點擊“OK”;會生成一個文件夾IW2;
圖8
點擊 Google Earth 圖標,可以在Google Earth觀察數據範圍,同時請觀察紅色框部分,並做好相應的數字記錄,後面 多視處理 要用:依次爲Azimut Pixel Spacing(方位向像素間距):13.95m,Range Pixel Spacing距離向像素間距:2.32m和入射角(Incidence Angle):39.27° ;Input Data File左邊的“Co Pol”、“X Pol”分別爲同極化(即VV或HH)、交叉極化(HV或VH)之意;還有最後的 行數和列數:13545,25139 ;記錄好後,點擊“OK”,會出現一個Advice,提示我們處理數據前要提取數據,點擊“OK”進入下一步。

Google Earth顯示的範圍如下:

圖9

提取協方差C2矩陣,並做多視處理

接下來提取數據:
圖10
提取協方差C2矩陣,並做多視處理

多視的目的是爲了獲得近似正方形的像素(方位向、距離向)、減弱相干斑等噪聲的處理,此外,還可以壓縮數據量,不足的是分辨率(距離向的)會被犧牲掉(降低)。多視處理操作有時不一定需要做的,要做的話,要結合實際情況來做。

本文距離向和方位向的視數:

距離向的地面分辨率計算公式如下式所示:
Ground Range Resolution=Range Pixel Spacingsin(Incidence Angle) \text {Ground Range Resolution}=\frac{\text {Range Pixel Spacing}}{sin(\text{Incidence Angle})}
Ground Range Resolution爲距離向的地面分辨率,Range Pixel Spacing爲單視斜矩像素間距;Incidence Angle爲入射角;

距離向:地面分辨率Ground Range Resolution = 2.32 m / sin(39.27°) ≈ 3.67 m,視數爲4,可以得到3.67m×4=14.68m的地距分辨率。
方位向:要得到近似14.68m的分辨率,視數爲1,方位向多視後的分辨率爲13.95m。

實際上歐空局在將IW模式獲取的SLC級數據轉化爲的GRDH(20m×20m)級數據時,多視處理視數(方位向X距離向)取得是:1×5;
參見歐空局的GRDH數據說明: https://sentinel.esa.int/web/sentinel/technical-guides/sentinel-1-sar/products-algorithms/level-1-algorithms/ground-range-detected/iw

多視視數計算原理可以參考SARscape中SAR數據的多視處理_ENVI-IDL技術殿堂_新浪博客
http://blog.sina.com.cn/s/blog_764b1e9d0102xc5x.html
包括ENVI官方演示的多視處理視數(方位向X距離向)也是:1×5;可能這是爲了和歐空局的處理對應。不過,多視處理視數(方位向X距離向)爲1×5或1×4都影響不大,因爲後面製圖往往還會重採樣。

這裏的多視處理視數(方位向X距離向)也取:1×5(也可以選擇1×4,影響不大),對應的地距分辨率爲18.35m,如下圖所示(見最下面紅色框所示):
圖11
那麼爲何上面特別標出一個小紅框?這是爲了告訴你:PolSARpro軟件讀取Sentinel 1系列數據是通過歐空局(ESA)的 SNAP軟件 實現的, 其處理流程是:S1 TOPS Split—> Apply Orbit File—>Complex Calibration—> Deburst(也就是說使用SNAP軟件也可以提取協方差矩陣C2);實際上,不光這個操作是藉助SNAP軟件實現的,還有許多操作也是這樣,比如後面的地理編碼操作。這也是PolSARpro讓你一起裝SNAP軟件的原因。

點擊“OK”,開始提取數據。

在這裏一定要保持耐心,因爲Sentinel 1A的數據量太大了,處理要一定的時間,甚至你的電腦可能不會響應,你以爲出錯了,實際不然,操作並沒有問題的,你只需要 耐心 等下就好(具體時間與電腦配置有關,像我的垃圾電腦處理,就需要半小時左右)

圖12
GIMP2 軟件 會啓動生成並先彈出一個mask文件,不過不要出現這個文件就以爲結束了,還需要等待。 耐心,耐心,保持耐心!

讀取完成後會出現兩個圖像,mask_valid_pixels圖像(掩膜文件)和RGB1假彩色圖像,可以把這兩個圖像關掉。

圖13
可以看下生成的文件夾C2中的文件:
圖14
可以看到對應的 二進制文件(.bin文件)、對應的頭文件(.hdr文件)、掩膜文件、RGB文件,C11爲實數數據(C11.bin),C12有虛部(C12_imag.bin)和實部數據(C12_real.bin),C22爲實數數據(C22.bin)。

爲何沒有C21的相關文件,這是因爲協方差矩陣爲復對稱矩陣C21=C12,只需保留C12就夠了,這樣可以節省數據存儲量,包括PolSARPro選擇二進制.bin文件來存儲數據也是爲了節省數據存儲量,並且可以更快地讀取、寫入數據,這點比ENVI、SNAP等軟件是一個優勢。

地理編碼

下面進行地理編碼(想一想,爲何沒有 輻射定標 操作?這是因爲PolSARpro在讀入數據時已做輻射定標處理了)。在這裏,地理編碼要在極化濾波之前,因爲極化濾波之後參數文件(.xml文件)會消失,不能再做地理編碼。

選擇Utilities—>SNAP-S1 TBX—>Geocode [C2] matrix。

目前PolSARpro僅支持對協方差C2和T3處理,要得到其它極化矩陣或矩陣元素,可以通過極化矩陣轉換實現(Convert菜單欄),在這裏我們又見到了 SNAP S1 TBX工具箱。

圖15

地理編碼的參數設置

選擇SENTINEL-1,點箭頭所指的打開文件夾圖標,選擇metadata.xml文件,其它參數保持默認。觀察到下面的紅色框部分,可以看到距離向間距變爲了18.32615m,與計算的18.35m有些出入,這是因爲在計算單視距離向地面分辨率時只保留了兩位小數,四捨五入引起的;輸入的多視數爲:1×5,後面地理編碼的重採樣後的 像素間距爲18.32615m(紅色數字,你可以改爲近似的正整數20m,這裏不改了,因爲改的話,重採樣要費時些),輸出視數爲1×1;

數據重採樣方法爲雙線性插值法(Bilinear),所使用的DEM爲SRTM(SNAP軟件默認的DEM數據來源), DEM重採樣方法也是雙向性插值法(Bilinear)。

圖16
點擊“OK”,進行地理編碼,會生成 IW2_SNAP\C2文件夾;由於採用的二進制文件,會發現PolSARPro做地理編碼比SNAP快許多(相同數據下),不過仍然需要 耐心 等待一下。

地理編碼後會同樣會生成兩個圖像: mask_valid_pixels圖像(掩膜文件)和RGB假彩色圖像,如下圖所示:
圖17
看下生成的 文件夾(IW2_SNAP\C2) :相比前一個C2文件夾,其主要多了一個帶有座標信息config_mapinfo.txt文件,此外,還有PauliRGB圖像的相關文件。
圖18

極化濾波

下面對協方差矩陣C2元素進行極化濾波:
選擇:Process—>Polarimetric Speckle Filter—>Lee Refined Filter

Lee Refined Filter,即改進型Lee濾波或叫精緻型Lee濾波,選擇這個濾波器的原因是其可以在相除相干斑的影響下較好地保留極化信息,一般情況下,做極化分解所用的濾波器都是這個。

圖19

濾波器參數設置

Lee Refined濾波器按默認設置就好,這裏的濾波窗口爲7×7,見最下面的小紅框數字。

同時觀察上面紅色框行數(10098)和列數(7722),幾何校正(地理編碼)後的行列數發生了明顯變化,其中列數約爲原列數的 1/4(若沒有幾何校正應該爲1/5) ,原行列數爲(13545,25139);會新生成文件夾 IW2_SNAP_Lee\C2

點擊“Run”,進行極化濾波;
圖20
極化濾波完成後,GIMP2 軟件會啓動並生成mask_valid_pixels圖像(掩膜文件),但是沒有RGB假彩色圖像。

不過,不用擔心,我們可以再生成一個RGB圖像用於顯示濾波效果。
選擇:Display—>Create RGB File—>RGB Color Composition 1—>Run
圖21
生成的RGB1圖像如下圖所示(可以和前面的PauliRGB【在文件夾IW2_SNAP\C2文件夾中,這裏不展示了】對比一下,看下濾波效果,肯定有差異的,請認真觀察):
圖22

極化分解

把剛生成的mask文件和RGB1文件等窗口關掉,以便進行下個操作:雙極化數據 H-α\alpha極化分解。雙極化數據目前僅支持這一種分解,其它的分解都是基於全極化數據的進行的。

選擇:Process—>H/A/Alpha Decomposition—>Decomposition Parameters

圖23

極化分解參數設置

按照下圖設置好參數,需要勾選後面的BMP,以便生成可以打開的BMP圖件(二進制文件無法直接打開)瀏覽效果(你也可以選擇其它的參數,這裏是爲了節省時間的,沒有選擇全部參數,但最後一行紅色框中的Shannon Entropy(香農熵)不要選,否則GIMP軟件會出錯),最後的行列窗口大小均設置爲1即可。

圖24
點擊“Run”;極化分解完成後會生成一系列的BMP文件,其物理意義見下表:

I1_db I2_db entropy alpha anisotropy
特徵值λ1(分貝值) 特徵值λ2(分貝值) 極化熵H 平均散射角α 反熵A

圖25

無監督分類

把前面生成的BMP圖像等打開窗口關掉。進行下一步操作:雙極化數據的H-α平面無監督分類。

選擇Process–>Polarimetric Segmentation—>H/A/Alpha Classification

圖26

H-α 平面無監督分類

按照下圖所示設置好H-α平面無監督分類相關的參數,點擊“Run”,接下來又是一番等待,保持 耐心

圖27
分類結束,GIMP會彈出5個BMP文件,如下圖所示(其中H_alpha_class爲無監督分類結果文件):

圖28
把前4個BMP文件關掉,以便查看無監督的分類類別。點擊下圖的Edit,查看無監督分類類別:
圖29
類別如下圖所示(只有1-9類色標被點亮,說明無監督分類結果最多隻有九類,這種類別圖例不好看,可以在ArcGIS中設置類別圖例)
圖30

延伸

監督分類

當然了,雙極化數據也可以做監督分類的。不過,從理論上說,雙極化數據的分類精度一般要低於全極化數據。下圖展示了Wishart監督分類器(Wishart分佈極大似然法),(這個分類過程和操作描述起來比較麻煩,不再敘述了;另外PolSARpro中有些監督分類器,雙極化數據用不了)的結果,有興趣的話可以參考後文提供的Eric Pottier教授利用PolSARpro處理ALOS-2教程文檔。(左圖爲訓練樣本集 [ 綠色:水體;紅色:建築;藍色:植被;黃色:耕地 ],右圖爲分類結果,這裏僅是簡單的嘗試,精度就不要計較了)
圖31
Eric Pottier教授利用PolSARpro處理ALOS-2教程文檔:
百度雲盤:
鏈接:https://pan.baidu.com/s/1iePwxkLOu1VQ0OoSm6sykQ 密碼:it6z

後語

寫這篇博客的初衷是因爲:(1)前段時間有人問我用PolSARpro處理Sentinel-1數據的問題,並且問的人不少,希望本文可以回答其中一些疑問,當然,我也沒有完全弄懂;
(2)網上目前關於PolSARpro的教程很少,並且多數很舊了,不利於PorSAR領域研究者學習和探索。(3)感覺自己學了PolSAR知識一年多了,應該有點交代,寫點東西出來。

這篇博客算是一個基本的針對PolSARpro軟件處理Sentinel 1 SLC數據較爲詳細的教程,當然,其中也有個人從事PolSAR研究一年多的一些思考和看法。回想剛開始接觸PolSAR畢設方向時,也是不容易,基本上是靠自己研究和探索出來的(當然,我本科論文指導老師也給了我許多幫助,提供了一些基礎而且重要的資料、數據和軟件),不過想來,也應該有不少人像我這樣的。希望這篇博客可以幫助你加深對PolSAR一些基本知識的理解和PolSARpro軟件的基礎操作水平,以便更好地從事極化SAR研究。PolSAR、Pol-InSAR、Pol-TomSAR還有許多方向值得深入研究的,希望各位PolSARers努力!

參考文獻

[1] Jong-Sen Lee, Eric Pottier, 洪文, 李洋, et al. 極化雷達成像基礎與應用 : Polarimetric radar imaging from basics to applications[M]. 電子工業出版社, 2013.
[2] DidierMassonnet, Jean-ClaudeSouyris, 馬森耐特, et al. 合成孔徑雷達成像[M]. 電子工業出版社, 2015.
[3] 吳永輝. 極化SAR圖像分類技術研究[D]. 國防科學技術大學, 2007.


  1. Eric Pottier教授是《極化雷達成像基礎與應用》一書的作者之一,也是H-A-α\alpha分解(The Cloude-Pottier Decomposition)理論的提出者之一,極化SAR研究領域的頂級專家之一。 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章