PolSARpro v5.1.3 处理Sentinel-1A SLC数据

PolSARpro v5.1.3 处理Sentinel-1A SLC数据

  • PolSARpro软件简介
    • 准备工作
  • 数据预处理
    • 读取Sentinel 1A数据
      • 选择环境
      • 选择主输入文件夹
      • 设置读取参数
      • 提取协方差C2矩阵,并做多视处理
    • 地理编码
      • 地理编码的参数设置
    • 极化滤波
      • 滤波器参数设置
  • 极化分解
    • 极化分解参数设置
  • 无监督分类
    • H-α 平面无监督分类
  • 延伸
    • 监督分类
  • 后语
  • 参考文献

(码字和截图不易,请尊重作者原创劳动,转载请注明来源,谢谢!)

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,其初始打开页面如下图所示,在后面的操作中请注意观察菜单栏(下图红色框部分)的变化。

选择环境

三种环境(如下图所示)设置:PolSAR对应单时相的数据集(即同种数据源单一数据集);Pol-InSAR对应双时相的数据集(即同种数据源两个数据集);Pol-TomSAR对应多时相的数据集(即同种数据源多个数据集,数量大于2);
本文为PolSAR应用,选择第一种环境。

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第1张图片
进入下图页面,请观察红色框部分,左边出现了一个大写字母“S”,这个是什么意思呢,实际上这是 Single Data Set(Pol-SAR) 的首字母;若选择第二种环境,这个字母显示为“D”; 若选择第三种环境,这个字母显示为“M”;

选择主输入文件夹

对于Sentinel-1A而言,这个主文件夹指的是 .SAFE文件夹 (即存放数据的 最浅父目录 ,打开其他类型的SAR数据如ALOS-1、2等,也是要选择最浅父目录,目录选得不对PolSARpro将不能识别数据),通常下载的Sentinel-1A解压后的下一层目录。在后面的每一步,有什么问题都可以点击最后一行的 黄色“?”框 ,查看帮助说明,不过这个帮助文档还不完善,并且是英文的,需要有一定的极化SAR和英文基础知识才能看懂。
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第2张图片
选好后点击“Save&Exit”,会弹出一个Warning(见下图):其大意是没有发现数据,问是否需要改变目录,这时选择“No”;
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第3张图片
这时会看到菜单栏的“Import””栏目点亮了,选择Spaceborne Sensors(星载传感器)—>Sentinel-1(哨兵-1)—>Unzipped Data Product(解压数据产品),如下图所示:

进入如下页面,注意观测图中红色框部分,可以看到部分头文件信息:

Mission(卫星名称):S1A(表明这是Sentinel-1A而不是1B);Acquisition(获取模式):IW(Interferometric Wide,干涉宽幅模式);Product(产品类型):SLC(Single Look Complex,单视复数据);Polarisation(极化方式):PP2(Partial Polarisation 2,部分极化之意,这里的数据是VH/VV方式);Swath(条带):1;
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第4张图片
谈到Sentinel-1的Swath(条带),需要多说一下,Sentinel-1的一个数据集由3个Swath(条带)组成,每个Swath(条带)又由9个burst带(脉冲带)构成。PolSARpro V5.1.3只能逐个Swath(条带)处理,若想整个处理或者细分到具体的burst带(脉冲带)处理,可以使用欧空局的SNAP软件进行处理。

设置读取参数

这里选择“Swath 2”,处理包含上海市崇明区长兴岛的数据,点击“OK”;会生成一个文件夹IW2;
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第5张图片
点击 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显示的范围如下:

提取协方差C2矩阵,并做多视处理

接下来提取数据:
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第6张图片
提取协方差C2矩阵,并做多视处理

多视的目的是为了获得近似正方形的像素(方位向、距离向)、减弱相干斑等噪声的处理,此外,还可以压缩数据量,不足的是分辨率(距离向的)会被牺牲掉(降低)。多视处理操作有时不一定需要做的,要做的话,要结合实际情况来做。

本文距离向和方位向的视数:

距离向的地面分辨率计算公式如下式所示:
Ground Range Resolution = Range Pixel Spacing s i n ( Incidence Angle ) \text {Ground Range Resolution}=\frac{\text {Range Pixel Spacing}}{sin(\text{Incidence Angle})} Ground Range Resolution=sin(Incidence Angle)Range Pixel Spacing
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,如下图所示(见最下面红色框所示):

那么为何上面特别标出一个小红框?这是为了告诉你:PolSARpro软件读取Sentinel 1系列数据是通过欧空局(ESA)的 SNAP软件 实现的, 其处理流程是:S1 TOPS Split—> Apply Orbit File—>Complex Calibration—> Deburst(也就是说使用SNAP软件也可以提取协方差矩阵C2);实际上,不光这个操作是借助SNAP软件实现的,还有许多操作也是这样,比如后面的地理编码操作。这也是PolSARpro让你一起装SNAP软件的原因。

点击“OK”,开始提取数据。

在这里一定要保持耐心,因为Sentinel 1A的数据量太大了,处理要一定的时间,甚至你的电脑可能不会响应,你以为出错了,实际不然,操作并没有问题的,你只需要 耐心 等下就好(具体时间与电脑配置有关,像我的垃圾电脑处理,就需要半小时左右)

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第7张图片
GIMP2 软件 会启动生成并先弹出一个mask文件,不过不要出现这个文件就以为结束了,还需要等待。 耐心,耐心,保持耐心!

读取完成后会出现两个图像,mask_valid_pixels图像(掩膜文件)和RGB1假彩色图像,可以把这两个图像关掉。

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第8张图片
可以看下生成的文件夹C2中的文件:
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第9张图片
可以看到对应的 二进制文件(.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工具箱。

地理编码的参数设置

选择SENTINEL-1,点箭头所指的打开文件夹图标,选择metadata.xml文件,其它参数保持默认。观察到下面的红色框部分,可以看到距离向间距变为了18.32615m,与计算的18.35m有些出入,这是因为在计算单视距离向地面分辨率时只保留了两位小数,四舍五入引起的;输入的多视数为:1×5,后面地理编码的重采样后的 像素间距为18.32615m(红色数字,你可以改为近似的正整数20m,这里不改了,因为改的话,重采样要费时些),输出视数为1×1;

数据重采样方法为双线性插值法(Bilinear),所使用的DEM为SRTM(SNAP软件默认的DEM数据来源), DEM重采样方法也是双向性插值法(Bilinear)。

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第10张图片
点击“OK”,进行地理编码,会生成 IW2_SNAP\C2文件夹;由于采用的二进制文件,会发现PolSARPro做地理编码比SNAP快许多(相同数据下),不过仍然需要 耐心 等待一下。

地理编码后会同样会生成两个图像: mask_valid_pixels图像(掩膜文件)和RGB假彩色图像,如下图所示:
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第11张图片
看下生成的 文件夹(IW2_SNAP\C2) :相比前一个C2文件夹,其主要多了一个带有坐标信息config_mapinfo.txt文件,此外,还有PauliRGB图像的相关文件。
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第12张图片

极化滤波

下面对协方差矩阵C2元素进行极化滤波:
选择:Process—>Polarimetric Speckle Filter—>Lee Refined Filter

Lee Refined Filter,即改进型Lee滤波或叫精致型Lee滤波,选择这个滤波器的原因是其可以在相除相干斑的影响下较好地保留极化信息,一般情况下,做极化分解所用的滤波器都是这个。

滤波器参数设置

Lee Refined滤波器按默认设置就好,这里的滤波窗口为7×7,见最下面的小红框数字。

同时观察上面红色框行数(10098)和列数(7722),几何校正(地理编码)后的行列数发生了明显变化,其中列数约为原列数的 1/4(若没有几何校正应该为1/5) ,原行列数为(13545,25139);会新生成文件夹 IW2_SNAP_Lee\C2

点击“Run”,进行极化滤波;
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第13张图片
极化滤波完成后,GIMP2 软件会启动并生成mask_valid_pixels图像(掩膜文件),但是没有RGB假彩色图像。

不过,不用担心,我们可以再生成一个RGB图像用于显示滤波效果。
选择:Display—>Create RGB File—>RGB Color Composition 1—>Run
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第14张图片
生成的RGB1图像如下图所示(可以和前面的PauliRGB【在文件夹IW2_SNAP\C2文件夹中,这里不展示了】对比一下,看下滤波效果,肯定有差异的,请认真观察):
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第15张图片

极化分解

把刚生成的mask文件和RGB1文件等窗口关掉,以便进行下个操作:双极化数据 H- α \alpha α极化分解。双极化数据目前仅支持这一种分解,其它的分解都是基于全极化数据的进行的。

选择:Process—>H/A/Alpha Decomposition—>Decomposition Parameters

极化分解参数设置

按照下图设置好参数,需要勾选后面的BMP,以便生成可以打开的BMP图件(二进制文件无法直接打开)浏览效果(你也可以选择其它的参数,这里是为了节省时间的,没有选择全部参数,但最后一行红色框中的Shannon Entropy(香农熵)不要选,否则GIMP软件会出错),最后的行列窗口大小均设置为1即可。

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第16张图片
点击“Run”;极化分解完成后会生成一系列的BMP文件,其物理意义见下表:

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

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第17张图片

无监督分类

把前面生成的BMP图像等打开窗口关掉。进行下一步操作:双极化数据的H-α平面无监督分类。

选择Process–>Polarimetric Segmentation—>H/A/Alpha Classification

H-α 平面无监督分类

按照下图所示设置好H-α平面无监督分类相关的参数,点击“Run”,接下来又是一番等待,保持 耐心

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第18张图片
分类结束,GIMP会弹出5个BMP文件,如下图所示(其中H_alpha_class为无监督分类结果文件):

PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第19张图片
把前4个BMP文件关掉,以便查看无监督的分类类别。点击下图的Edit,查看无监督分类类别:
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第20张图片
类别如下图所示(只有1-9类色标被点亮,说明无监督分类结果最多只有九类,这种类别图例不好看,可以在ArcGIS中设置类别图例)
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第21张图片

延伸

监督分类

当然了,双极化数据也可以做监督分类的。不过,从理论上说,双极化数据的分类精度一般要低于全极化数据。下图展示了Wishart监督分类器(Wishart分布极大似然法),(这个分类过程和操作描述起来比较麻烦,不再叙述了;另外PolSARpro中有些监督分类器,双极化数据用不了)的结果,有兴趣的话可以参考后文提供的Eric Pottier教授利用PolSARpro处理ALOS-2教程文档。(左图为训练样本集 [ 绿色:水体;红色:建筑;蓝色:植被;黄色:耕地 ],右图为分类结果,这里仅是简单的尝试,精度就不要计较了)
PolSARpro v5.1.3 处理Sentinel-1A SLC数据_第22张图片
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研究领域的顶级专家之一。 ↩︎

你可能感兴趣的:(PolSAR,POlSARpro,Sentinel,1A,地物分类,PolSAR)