SNAP处理Sentinel-1 IW SLC数据(极化SAR预处理)
(码字不易,转载请注明来源!谢谢!)
前言
网上有一些关于SNAP处理Sentinel-1 数据的例子,但是处理的数据基本是都是GRDH级的数据,很少处理SLC级的数据(有些是针对InSAR应用进行处理的)。现阶段多数人处理Sentinel系列数据大都是利用ENVI等软件进行的,然而ENVI等处理软件都是商业软件,尽管可以使用激活成功教程版或免费申请使用,但是总是有点限制,或是功能受限或是时长受限,总之,使用起来也是不便。本篇文章是为了填补这个空白而创作,一方面是为了促进SNAP软件和免费Sentinel系卫星的使用,另一面也是为了答复一些朋友的疑问。
这里的处理是针对PolSAR分类而进行,探讨的是利用SNAP对Sentinel-1 卫星数据双极化处理操作。
记得在去年GIS大会程晓教授说过1999年在北极(还是南极)科研考察时遇到海面结冰现象,需要寻找一条破冰道路(还是不结冰的路线),当时,加拿大航空局免费提供了几景Radarsat-1 SAR卫星影像(那时候,一景SAR影像比现在贵得多相对购买力而言),好事啊,但是,非常遗憾,当时居然没有人懂得处理与分析该SAR影像,相当于这几景SAR影像全废了(至少当时没有发挥其作用)。现在已经过去了20年,我国也有自己的SAR卫星(高分3号,GF-3),尽管还有不少问题。毫无疑问,SAR(星载也好,机载也好)是非常重要的,无论对于军用(许多隐形飞机携带的就是高精度机载SAR)还是民用,至少敌对势力在研究这个,你就不能不能不研究这个。虽然有些感概,但更希望这样的事情可以避免。搞SAR前景是美好的(至少国家是需要的),但现阶段是艰苦的,还在追逐西方的脚步。
希望本文能给各位带了一些收获!
基本认识
在博主第一篇博客中是利用PolSARpro进行处理的,本质上说,PolSARpro是通过调用SNAP(早期是通过ASF的MapReady)来对Sentinel-1卫星进行预处理的,当然,它们都是欧空局授权开发的软件,仅仅针对的重点不同,PolSAR封装了许多极化SAR相关函数(多于1500个),SNAP仅能实现一些比较基本的极化SAR处理,就是常见的几种极化分解,Freeman,H-A- α \alpha α等极化分解,没有办法深入进行PolInSAR/PolTomoSAR处理。
Sentinel-1数据产品模式简介
网上已有介绍,不再重复赘述,请看有道云笔记哨兵1号(Sentinel-1)数据的介绍,
欧空局官网也有对Sentinel-1数据产品模式介绍。
Sentinel-1数据文件名命名规则
网上也已有介绍,不再重复赘述,请看博客Sentinel 1文件名命名规则的讲解或者参考欧空局官网关于Sentinel-1数据命名规则的介绍。
Sentinel-1数据文件组织结构
- 一个manifest.safe文件(元数据文件,本质上是一个.xml文件);
- 测量数据的子文件夹measurement,存放的是真正影像数据(.tif格式的文件);
- 一个包含KML和HTML预览文件的预览子文件夹preview(存放的是与预览图有关的文件);
- 一个注释子文件夹annotation(存放是卫星拍摄以及定标时的相关数据说明等元数据);
- 包含XML模式的支持子文件夹support(对.xml文件的扩展支持文件)
- 此外还有一个关于数据质量的说明文件。
或者参考欧空局官网SAFE(Standard Archive Format for Europe, 欧洲标准存档格式)的介绍。
快速预览数据
数据源
预处理
(注,博主笔记本电脑windows10系统,i7, 运行内存16G,应该是足够处理两景数据集的)
导入影像
在SNAP导入Sentinel-1影像,有2种方式:
- 拖动方式:
可以将Sentinel-1影像数据压缩包(.zip)直接拖入SNAP的左侧的Product Explorer窗口,稍后SNAP会自动导入该压缩包里面的数据。(可以按Ctrl键选择多个,并一次拖动多个);

可以将解压后Sentinel-1影像数据的.SAFE后缀文件夹直接拖入SNAP的Product Explorer窗口,稍后SNAP会自动导入该文件夹里面的数据(可以按Ctrl键选择多个,并一次拖动多个); - 利用SNAP的菜单栏功能:File—>Open Product
在弹出窗口中选择Sentinel-1影像数据压缩包(可以按Ctrl键选择多个,并一次拖动多个);

在弹出窗口中选择Sentinel-1影像数据解压后.SAFE文件夹下的manifest.safe文件(一次只能选择一次)。
显然,拖动方式更方便一些。
SLC影像通道介绍
其中,文件夹Metadata存放是影像的元数据文件;文件夹Vector Data 存放的是矢量数据(如大头针pin标记点,控制点,还可以添加ROI等矢量数据);文件夹Tie-Point Grid存放的是与地理编码有关的网格数据(如经纬度,入射角等信息);文件夹Quicklooks存放是Quicklook图(快视图);Bands存放是SAR的极化通道(波段)数据。
IW模式SLC数据名及构成的解释
SLC(Single Look Complex,单视复数),SAR影像是比较复杂的,SAR影像比光学影像有许多优点,其中,SAR影像可以携带相位和极化信息,这是SAR影像区别于光学影像的重要特性,使得SAR影像有许多有别于光学影像的应用。
Sentinel-1发射的电磁波属于微波的C波段频段范围。电磁波(可见光也是一种电磁波)是横波,极化信息只有横波才能携带。波的方程表示可以由频率,振幅,相位确定三角函数和复数表示,复数表示更加简洁一些。(这段话希望勾起你学过的数学复变函数学以及物理电磁学,深入理解建议看相应的参考书或者SAR或微波遥感的教材)。
Sentinel-1 SAR IW SLC数据包含3个子带(IW1,IW2, IW3),在一个IW产品中总共有三个(单极化)或六个(双极化)极化通道图像。每个子带又由9个burst带(脉冲带)构成。
IW 模式 TOPSAR(Terrain Observation with Progressive Scans SAR )成像技术来拍摄3个子带,该技术可以获得和ScanSAR成像技术一样的分辨率和拍摄范围,但是获得影像质量更高,影像噪声更易处理。后面,我将SNAP对这种TOPSAR技术得到的IW影像的预处理称为TOPSAR预处理,TOPSAR预处理的操作都在SNAP的Radar—>Sentinel TOPS菜单栏下。
Bands波段说明:
i_IW1_VH:IW1子带VH极化通道实部,字母i表示in_phase(同相, 波的实部),IW1表示第1个子带,VH表示VH通道,H极化通道发射,V极化通道接收;
q_IW1_VH:IW1子带VH极化通道虚部,字母q表示quadrature(正交分量, 波的虚部),IW1表示第1个子带,VH表示VH通道,H极化通道发射,V极化通道接收;
Intensity_IW1_VH:IW1子带VH极化通道强度,Intensity表示强度,IW1表示第1个子带,VH表示VH通道,H极化通道发射,V极化通道接收(“Intensity_IW1_VH”最前面的V字母表明该波段是虚拟波段,也就是导入影像后临时计算存在运行内存的波段)。
卫星上的检波器一般都是平方律检波器,使用它可以得到与波的功率(瞬时能量)成正比。之所以称为平方律检波器,是因为波自身的瞬时电压本身是 E ( t ) E(t) E(t)振幅, 但检波器的输出电压是 E 2 ( t ) E^2(t) E2(t)—-波的功率。
SAR测量系统是相干测量系统,既测量入射电磁波辐射振幅,又测量其相位。相干测量系统的戏法是进行两次功率测量:当信号与某种参考信号混合,进行一次测量,然后将同样的信号与同第一种信号之间存在 π / 2 ( 9 0 ° ) \pi/2(90^{\degree}) π/2(90°)相位差的另一种参考信号混合后,再进行测量。
将接受到的信号与两个相差为 π / 2 \pi/2 π/2的信号混合,转为同相(in_phase,I, 波的实部)和正交(quadrature,Q,波的虚部)分量(就像复平面上的虚轴可以由实轴旋转 π / 2 ( 9 0 ° ) \pi/2(90^{\degree}) π/2(90°)得到)。I和Q通道的信息组成了相干系统的原始数据(复数数据)。SNAP这样的表示遵循雷达信号处理的表达规范,从信号处理方面可以清楚地区分开。
说了那么多,下面,终于可以进入正题了。接下来,将对其中一个数据集的预处理操作进行较详细的分步骤介绍和分析,结合另一个数据使用TOPSAR操作和流程图功能处理。
轨道校正
(这步需要联网,因为需要下载精确轨道数据,否则可能报错)
这里以数据集S1B_IW_SLC__1SDV_T095426_T095453_017697_0214B5_5B01
为例来演示。可以关闭另一个数据集。分步处理,会产生许多临时的文件,所以最好选择一个容量更大的文件夹来保存数据。
(菜单栏Optical指的光学卫星影像的操作,Radar指的是雷达卫星影像的操作,Sentinel-1的处理基本上全在Radar菜单下面)
这个步骤对原始的影像是没有任何影响的,修改的是元数据xml文件。
辐射定标
这里,不会探讨后向散射系数sigma0( σ 0 \sigma_0 σ0),gamma0( γ 0 \gamma_0 γ0)和beta0( β 0 \beta_0 β0)的区别,后两者是在 σ 0 \sigma_0 σ0上做了一点修正后得到,具体的修正可以参考微波或者雷达遥感的教材。这三者由对复数的振幅(或强度)定标后得到。对于极化SAR的定标而言,这样会丢失相位信息,最终得不到散射矩阵S的元素。
Deburst
原始影像中,相邻的burst带会有一个细小的黑色暗带,对应的是连续发射脉冲信号的无信号部分( T − t p T-t_p T−tp),脉冲信号示意图如下:


(由于数据量(14G左右,很恐怖)比较大,需要耗费较长的时间,博主耗费了近4小时)
操作如下:Radar—>Sentinel-1 TOPS —> S-1 TOPS Deburst:
(I/O参数面板确认源数据集,保持默认即可)

Processing Parameter参数面板保持默认就行,处理全部的极化通道:

点击Run即可,接着便是漫长的等待。完成后打开i_VH通道的效果。

可以看到影像主要呈现在中间位置,上下两边的背景很大,这主要是因为距离向(分辨率为2.3米)和方位向(分辨率约为14米),像素表示不是方形区域导致,很容易知道沿行方向为距离(斜距)向,沿列方向为方位向(因为swath子带IW1,IW2, IW3是沿行方向拼接起来的,当然也可以从这个方面看出(不计背景区域),沿行方向像素数较多,表明这个方向分辨率高,距离向分辨率高,因此这是斜距向,沿列方向,像素数较少表明这个方向分辨率高低,so,这是方位向):

还有一个信息可以帮助我们检验这个判断,影像的大小(在多视的时候,我们对比一下他的影像大小变化),显然影像宽度像素数多(列数多):

成极化矩阵C2
(由于上一步耗费较多的运行内存,建议关闭SNAP重新导入deburst后的数据集来进行后面的步骤)
由于Sentinel-1 卫星最多只有双极化通道,这里的只能生成C2协方差矩阵。

Processing Parameters参数面板选择C2:

多视
(注意多视一定要放在生成极化矩阵C2之后。先做多视再做生成极化矩阵C2,得到的结果是错误的)
多视的作用,在我的第一篇PolSARpro的博客有提到。除了消除或减弱相干斑噪声,多视,大大减少了后续数据量。
这证实,我们的判断是正确的。实际,多数SAR影像沿行方向(左右或者说东西向)是斜距向,列方向(上下或者说南北向)是方位向。
升降轨左右视判断
记住,上北下南左西右东。
其次,我们知道SAR影像记录的先记录的是(斜距上)距离卫星更近地物点成像的像素(距离短的先接收到)。若是卫星拍的是西边,东边(我们理解的右边)的先记录,西边(我们理解的右边)的后记录,与影像实际地物左右相反;若是卫星拍的是东边,西边(我们理解的左边)的先记录,东边(我们理解的右边)的后记录,与影像实际地物左右分布一致。
地形校正
有一些SAR软件(例如PolSARpro)将地形校正校正功能命名为地理编码,可以接受,但是更严格来说,这是不严谨的,地形校正除了地理编码(赋予影像实际坐标信息)外,还会做地形辐射校正。这是搞SAR需要区分的地方之一。
导出为PolSARpro格式
PolSARpro和SNAP同为欧空局组织开发的软件,同源同宗,关系密切,自然可以转换,PolSARprod的数据格式有些独特,将Sentinel-1 的极化矩阵数据导出,还需要做一些修改,PolSARpro才能识别。
(一定要做在SNAP中做地形校正之后才导出到PolSARpro,在之前的话,导出到PolSARpro,在PolSARpro中无法在做地理编码,因为一些元数据丢失了)
修改一
导出后的文件夹名,修改为C2

修改为C2(因为PolSARpro按极化矩阵识别数据):

修改二
回看PolSARpro的预处理
事实上,利用SNAP中的TOPS操作可以实现Sentinel影像的裁剪和镶嵌操作。而且这种效果比普通的栅格镶嵌和裁剪要更好,这种TOPS处理方式就像铺地砖一样。
TOPSAR Split操作
即S1 TOPS Split操作(Split, 分割之意),这个操作是用来选择一副Sentinel-1 SLC影像的子带(即9个burst)或者某几个burst带。实际上,可以认为这是一种裁剪操作
我们利用上面演示原始的一景做演示:S1B_IW_SLC__1SDV_T095402_T095429_017697_0214B5_658C.SAFE
Processing Parameters参数面板:

点击一下放大到研究区全图的放大镜图标(在底图上按住鼠标滚动可以进一步控制底图的缩放),这里选择的是子条带IW2的编号为2-5burst带影像。

确认无误点击Run即可。结果如下:
我们发现子条带IW1也有覆盖了部分崇明岛区域,我们再利用S1 TOPS Split从数据集1(原始数据集)中将IW1的2-5burst带分离出来,为后面演示S1 TOPS Merge操作做准备(注意修改一下默认的数据集名,避免覆盖)。

TOPSAR merge操作
TOPSAR merge操作是一种合并操作,是S1 TOPS Split(分割)的反操作,可以将原先的TOPS Split提取的数据集S1 TOPS Deburst后合并起来(经过S1 TOPS split分割的数据集必须经过S1 TOPS Deburst才可以用这个操作)。可以认为这是一种拼接工具。合并的数据集需要有交集(或者相邻)。
S1 TOPS Split 数据集预处理
TOPSAR Merge
镶嵌
上面讨论的是一景Sentinel-1 SLC影像,但实际有时我们的处理范围比这幅影像的范围大得多。之下来的这个操作,可以实现将两幅(或者多个)Sentinel-1 SLC影像预处理。
TOPSAR Assembly操作
TOPSAR Assembly操作(assembly,组装之意)是将同一天顺轨的两个(或者多个)Sentinel-1影像组装起来,这个组装可以认为是一种镶嵌,这个镶嵌比普通的栅格镶嵌和SNAP中的SAR Masaic效果要好, 组装起来的数据,拼接边界上看不出拼接线。但是这个操作在SNAP V6.0中一定要在地理编码前面(否则会出错,据说SNAP7.0已经修复这个bug,但我没有测试过)。如果要拼接(镶嵌),一般这个步骤放最开始的步骤。
流程图处理
这里使用流程读入上述两幅原始Sentinel-1 SLC影像,并实现极化SAR的预处理,最终得到覆盖上海市全境的地形校正后的C2矩阵数据集。
使用流程处理大大加快了处理时间,处理两幅Sentinel-1B 影像(压缩包,约7个G),整个处理仅需70分钟左右,可见流程图处理的效率之高(其原因是避免了每步的生成的大影像数据的磁盘读写操作),并且还节省了大量的存储空间。如果你熟悉了每步操作的参数,中间过程的产生的文件(多是影像)不重要,强烈推荐你使用流程图工具或者SNAP命令行工具gpt处理。
当然,流程图的缺点也是明显的,主要是丢失中间过程的文件,而且一步出错,后面全错。SAR的新手还是建议分步跑过一遍处理流程,熟悉每步操作的参数,意义,结果,后面遇到问题才容易分析出来。
每个节点的参数设置(特别注意Calibration,Polarimetric-Matrices,Terrain- Correction两个节点的参数,其它的参数基本上保持默认即可):(Read,Read2读入的是原始数据集,Write需要保存为自己的文件名)
Read

Read2

TOPS Assembly

Apply Orbit File

Calibration

TOPSAR Deburst

Polarimatric Matrices

Multilook

Terrain Correction

Write

TOPSAR Assembly合并起来的数据集,可以继续使用 TOPS split, TOPS merge工具进行分割,合并操作。这意味着我们利用S1 TOPS Assembly, TOPS split, TOPS merge可以获取覆盖我们研究范围最小burst集数据。这样,可以减少我们数据量,并且可以避免一些常规栅格裁剪,镶嵌,掩膜处理时边界问题。
后语
这篇博客应该可以加深你对SAR图像以及SNAP中的SAR预处理操作的理解,我希望你知道每个预处理步骤的意义,为什么要做,如何做,结果是什么,有什么需要注意的地方,预处理的顺序为何是这样的,可以交换顺序否。你应该知道SNAP的设计应该根据SAR成像及其预处理理论设计,这是有别于别的遥感处理软件的特别之处。
虽然这篇博客仅仅讨论了极化SAR的预处理操作,后续的极化滤波,分类等没有提及到,但SNAP中是可以直接做的,当然SNAP的功能不止这些,SNAP有些功能缺少,但是目前的功能足够你做些东西。记住,SNAP可以原生态地支持Sentinel卫星数据的处理,欧空局后面还会对其功能进行完善。
下篇博客,介绍一下SNAP中Sentinel-1 GRD级数据的预处理。虽然前面介绍花了不少笔墨介绍Sentinel-2 光学影像在SNAP中的处理,但是实际SNAP对Sentinel-1的处理功能更齐全一些。博客早期是搞极化SAR,相对而言,对SAR遥感的熟悉程度优于光学遥感。
最后,如果你对欧空局遥感软件处理软件SNAP及其snappy开发处理感兴趣,可以加入博主创建的欧空局SNAP处理交流群:(这个群已满人),欧空SNAP处理交流群(二):。
抱歉,又写的太多了。祝好!
参考文献
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228736.html原文链接:https://javaforall.net
