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数据文件组织结构
下载并解压Sentinel-1 IW SLC(或GRD)级产品数据的压缩包,进入解压后的文件夹,可以看到如下的文件组织结构:与下图是一一对应的:
它包括:
- 一个manifest.safe文件(元数据文件,本质上是一个.xml文件);
- 测量数据的子文件夹measurement,存放的是真正影像数据(.tif格式的文件);
- 一个包含KML和HTML预览文件的预览子文件夹preview(存放的是与预览图有关的文件);
- 一个注释子文件夹annotation(存放是卫星拍摄以及定标时的相关数据说明等元数据);
- 包含XML模式的支持子文件夹support(对.xml文件的扩展支持文件)
- 此外还有一个关于数据质量的说明文件。
或者参考欧空局官网SAFE(Standard Archive Format for Europe, 欧洲标准存档格式)的介绍。
快速预览数据
利用preview子文件夹下product-preview.html文件(可以用浏览器打开), 可以快速看到该影像数据的预览图以及文件组织结构:
如果你点击某个图中蓝色标记链接,会自动跳转到该文件,很方便查看该文件内容。
数据源
本文用的数据是刚好覆盖上海市全境(指陆地区域)的两幅2019年8月22日Sentinel-1B(IW SLC,干涉宽幅模式斜距单视复数)卫星影像:
S1B_IW_SLC__1SDV_20190822T095402_20190822T095429_017697_0214B5_658C.SAFE
S1B_IW_SLC__1SDV_20190822T095426_20190822T095453_017697_0214B5_5B01.SAFE
如下图所示:
SNAP对Sentinel-1A或Sentinel-1B数据的预处理功能是比较成熟,这里选择的是Sentinel-1B, 因为有人反映处理Sentinel-1B有时会遇到问题。不过,我觉得这种可能性很低,如果你遵循较规范的处理流程的话。
预处理
(注,博主笔记本电脑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影像通道介绍
导入Sentinel-1B IW SLC影像后,展开其下方的文件(点击文件夹名前面的“+”号),再把Bands文件夹展开,如下图:
其中,文件夹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菜单栏下。
如果你对TOPSAR 技术感兴趣的话,可以找下这方面的论文。详见欧空局Sentinel-1卫星IW拍摄模式介绍。
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字母表明该波段是虚拟波段,也就是导入影像后临时计算存在运行内存的波段)。
大概一年前多,有人问我“i_IW1_VH”中的字母i表示什么意思,我当时在研究PolSARpro的结果图像,该软件用i表示复数虚部(imaginary的前缀),我错把这个移到SNAP软件上,实际上不是。这点可以通过将鼠标移动到高通道上提示的信息得到确认:
但是,你可以还是很好奇,为什么是这样表示?
卫星上的检波器一般都是平方律检波器,使用它可以得到与波的功率(瞬时能量)成正比。之所以称为平方律检波器,是因为波自身的瞬时电压本身是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_20190822T095426_20190822T095453_017697_0214B5_5B01
为例来演示。可以关闭另一个数据集。分步处理,会产生许多临时的文件,所以最好选择一个容量更大的文件夹来保存数据。
(菜单栏Optical指的光学卫星影像的操作,Radar指的是雷达卫星影像的操作,Sentinel-1的处理基本上全在Radar菜单下面)
选择:Radar—>Apply Orbit File。Sentinel-1元数据也是有轨道相关参数的。这一步,背后是将元数据.xml的描述轨道的参数值(例如星历数据等)用更精确的轨道文件(精确的轨道文件通常需要影像产生两周后才能计算得到,可以在Sentinel-1质量控制报告网址下载,但是SNAP中是直接从欧空局Sentinel-1轨道文件服务器下载的)替换掉。如果你想手动下载,可以可以ENVI官方下载Sentinel-1卫星精密轨道数据的博客。
(I/O Parameters参数面板一般默认即可,当然,你可能需要修改输出的目录路径,默认得到的数据集名会添加上后缀“_Orb”,表示已做轨道校正)
对于InSAR或是多时相SAR应用等,轨道数据不准确,将会给后续数据处理带来不少误差。严格来说,对于一幅SAR影像用于SAR分类目的处理,这个步骤不是必须的,也就是这个轨道没有得到修改,分类不会有明显的影响,但是,如果可以做的更好,还是要做一下。
点击Run,大概需要几分钟的时间(取决于你的网速和电脑配置)。
这个步骤对原始的影像是没有任何影响的,修改的是元数据xml文件。
辐射定标
选择:Radar — > Radiometric —> Calibrate,打开辐射定标的参数面板:
(注意在I/O Parameters面板的源数据集选择上一步轨道校正的结果,当然你可以修改输出的目录,通常默认就可)
第二个参数面板比较重要,对于极化SAR处理而言,其辐射定标是复定标,分别对复数的实部和虚部进行定标。
(极化SAR处理必须选择复定标)
这里,不会探讨后向散射系数sigma0(σ 0 \sigma_0σ0),gamma0(γ 0 \gamma_0γ0)和beta0(β 0 \beta_0β0)的区别,后两者是在σ 0 \sigma_0σ0上做了一点修正后得到,具体的修正可以参考微波或者雷达遥感的教材。这三者由对复数的振幅(或强度)定标后得到。对于极化SAR的定标而言,这样会丢失相位信息,最终得不到散射矩阵S的元素。
确认无误,点击Run即可。因为通道多(双极化,实、虚部等),数据量大可能需要耗费一定时间(博主花了50多分钟)。需要耐心等候。完成后,可以看到Bands子文件夹下保留原来的复数数据组织形式(原始数据集1一样)。
这个步骤之后,最好关闭SNAP,重新导入复定标后的数据进行操作,因为前一步会耗费较大的内存,SNAP是Java代码写的,Java的垃圾回收机制,经常不会马上回收内存,会导致后面的速度变慢甚至失败。关闭重新导入是最有效最快的释放内存的方法。另外,前一个步骤的文件(包括后面分步骤的操作得到的结果),也可以删掉,避免占据大量的磁盘空间。
Deburst
这个操作去除的是Sentinel-1 IW SLC影像带有burst带(脉冲带)的暗带部分(黑色背景,无信号部分),效果就是合并所有burst带有效信号部分,也就是说包括IW1,IW2,IW3子带全都会被合并起来。
原始影像中,相邻的burst带会有一个细小的黑色暗带,对应的是连续发射脉冲信号的无信号部分(T − t p T-t_pT−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:
确认无误,点击Run,接着便是漫长的等待,约耗费了5小时(数据量很大约14G)。由于C2是复共轭对称矩阵,只需记录C11(实数), C12(复数,分实部和虚部存储)和C22(实数)元素即可。如下图左侧方框所示:影像效果不明显,但是SAR的相干斑现象比较明显(许多地方表现出亮的斑点)。后面经过多视和极化滤波会还会许多。
多视
(注意多视一定要放在生成极化矩阵C2之后。先做多视再做生成极化矩阵C2,得到的结果是错误的)
多视的作用,在我的第一篇PolSARpro的博客有提到。除了消除或减弱相干斑噪声,多视,大大减少了后续数据量。
具体操作:Radar—>Multilooking:
(I/O参数面板保持默认即可,注意选择上一步生成的C2数据集)
Processing Parameters参数面板:
(SNAP自动计算多视的参数,无特殊需求,保持默认即可)。多视视数计算在我的PolSARpro第一篇博客中有详细介绍。
(默认,斜距向视数为4, 方位向视数为1,GR Square Pixel指像素地面正方形范围之意,更多参数说明查看Help帮助)
确认无误,点击Run即可,大概耗费约4小时,数据量约变为上一步数据量的总视数(n=4x1)倒数1/n(这里1/4)。打开RGB图看下效果(影像范围覆盖了全境,背景很少):
检验之前的距离向和方位向的判断(其中,斜距向视数为4, 方位向视数为1):
这证实,我们的判断是正确的。实际,多数SAR影像沿行方向(左右或者说东西向)是斜距向,列方向(上下或者说南北向)是方位向。
升降轨左右视判断
有经验的SAR专家,看着SAR影像就可以判断出SAR卫星在拍摄影像时的情况,究竟是升轨还是降轨?左视还是右视?
一般地可以通过SAR的几何畸变判断的,如透视收缩,叠掩等,但这是需要当地的地形地物有一定的认识以及对SAR成像以及几何畸变理论的理解。
这里,提供的一种较简单判断的方法。
记住,上北下南左西右东。
首先,我们知道,降轨指的是卫星从北(地球北极)往南(地球南极)运动,升轨指的是卫星从南(地球南极)往北(地球北极)运动;左视指的是卫星拍摄方向为左边(指的是卫星前进方向的左边),右视卫星拍摄方向为右边(卫星前进方向的右边)。下图是升轨左视的情况:
其次,我们需要知道,SAR影像,方位向(Azimuth)为飞行方向,斜距向(Slant range)为卫星的拍摄方向(垂直于飞行方向)。下图是降轨左视的情况:
升降轨判断:
考虑顺轨相邻两幅影像的情况(可以视为两行像素),升轨的时候,卫星先拍摄的是下面一幅影像(南边的),再到上面一幅影像(北边的),也就是下面的地物像素点先记录,最终效果是记录的影像与实际地物上下颠倒;降轨的情况正好相反,卫星先拍摄的是上面一幅影像(北边的),再到下面一幅影像(南边的),和地物正好对应。
其次,我们知道SAR影像记录的先记录的是(斜距上)距离卫星更近地物点成像的像素(距离短的先接收到)。若是卫星拍的是西边,东边(我们理解的右边)的先记录,西边(我们理解的右边)的后记录,与影像实际地物左右相反;若是卫星拍的是东边,西边(我们理解的左边)的先记录,东边(我们理解的右边)的后记录,与影像实际地物左右分布一致。
(左右视沿卫星前进方向来区分,而不是我们常认为左右方向)两者结合就可以得出结论:
示意图见下:
升轨左视
降轨左视
升轨右视
降轨右视的情况:
我们利用多视操作后的影像和导航图里面的实际地物来判断:
(影像崇明岛跑到了上方[原来在下面],海还在右边[左右没有倒置])
影像上下倒置,说明这是升轨右视拍摄的影像。我们可以通过查看影像的元数据,来确认我们的判断:
地形校正
有一些SAR软件(例如PolSARpro)将地形校正校正功能命名为地理编码,可以接受,但是更严格来说,这是不严谨的,地形校正除了地理编码(赋予影像实际坐标信息)外,还会做地形辐射校正。这是搞SAR需要区分的地方之一。
操作:Radar—>Geometric—>Terrain Correction—> Range-Doppler Terrain Correction(距离多普勒法地形校正):
(这一步需要联网,因为需要下载DEM数据,否则可能会报错(尽管允许使用外部的DEM,但是这很容易出错))
I/O参数面板:
Processing Parameters参数面板:
(要注意去掉默认勾选的Mask out选项,否则会将无DEM的区域掩膜掉,更多的参数介绍请看Help)
确认无误后,点击Run,大概需要1个小时多,可得到结果(下图为C2矩阵的假彩色合成图,可以看到和左下方的导航图实际情况一致):
由于影像是WGS84坐标系,我们可以加上欧空局自带的NASA world map底图(导航图的底图)看看,验证一下其地形校正的效果(也可以导出为kmz格式到Google Earth Pro中,这个耗时比较长,而且导出的数据比较大,很可能Google Earth Pro打不开,不建议做)。
观察图中岸边以及河道的三个红色圈,可以看到地形校正(尽管world map底图分辨率较)是以底图相吻合的,地形校正是成功的!
导出为PolSARpro格式
PolSARpro和SNAP同为欧空局组织开发的软件,同源同宗,关系密切,自然可以转换,PolSARprod的数据格式有些独特,将Sentinel-1 的极化矩阵数据导出,还需要做一些修改,PolSARpro才能识别。
(一定要做在SNAP中做地形校正之后才导出到PolSARpro,在之前的话,导出到PolSARpro,在PolSARpro中无法在做地理编码,因为一些元数据丢失了)
操作: File—>Export—>SAR Formats—>PolSARPro
使用默认的方式(按默认文件名)导出数据(这里保存在PolSArpro_test文件夹中):
导出后的文件夹名,修改为C2
修改为C2(因为PolSARpro按极化矩阵识别数据):
进入该重命名为C2的文件夹,把config.txt文件中的PolType的“dual”修改为“pp2”。pp2表示第二种部分(双极化)极化,即VH和VV。
打开PolSARpro V6.0或者PolSARpro V5.1.3,导入C2文件夹数据集:
确认后,点击Save&Exit。
PolSARpro自动识别C2数据集(数据量比较大,需要等待一下):
读取成功后,PolSARpro会为之创建掩膜图像:
创建一个RGB图,显示一下:结果(生成的RGB图有点不一样,因为RGB合成方式的差异以及没有分贝化,不过,不重要,这只是检查PolSARpro是否成功识别数据而已):
如果想利用PolSARpro进行后续处理,请看我之前写的两篇PolSARpro处理的博客:
PolSARpro v5.1.3 处理Sentinel-1A SLC数据
PolSARpro v6.0之Sentinel-1A Wishart与SVM监督分类
回看PolSARpro的预处理
观测中间那个框,上面注有其操作流程:
S1 TOPS Split —>Apply Orbit File —> Complex Calibration—>Deburst
(这分别对应SNAP中的S1 TOPS Split ,Apply Orbit File, Calibration, S1 TOPS Deburst操作,)
Terrain observation by progressive scans( TOPS)是一种成像技术,TOPS和TOPSAR两个词在文献可以混用,一般都是指这种成像技术。
事实上,利用SNAP中的TOPS操作可以实现Sentinel影像的裁剪和镶嵌操作。而且这种效果比普通的栅格镶嵌和裁剪要更好,这种TOPS处理方式就像铺地砖一样。
TOPSAR Split操作
即S1 TOPS Split操作(Split, 分割之意),这个操作是用来选择一副Sentinel-1 SLC影像的子带(即9个burst)或者某几个burst带。实际上,可以认为这是一种裁剪操作
我们利用上面演示原始的一景做演示:S1B_IW_SLC__1SDV_20190822T095402_20190822T095429_017697_0214B5_658C.SAFE
这里把崇明岛区域分割出来。
具体操作:Radar—>Sentinel-1 TOPS—>S-1 TOPS Split:
(这里打开的是原始数据压缩包,没有经过任何预处理)
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才可以用这个操作)。可以认为这是一种拼接工具。合并的数据集需要有交集(或者相邻)。
按照Apply Orbit File—>Calibration—>S1 TOPS Deburst的步骤处理。
这里是使用流程图工具进行预处理。流程图工具使用介绍,请看博客04-SNAP处理Sentinel-2 L2A级数据(二)波段叠加那步流程图创建过程。
创建的流程图(流程图的节点均在Radar菜单栏下找,位置是对应的)如下:
(因为用到轨道校正,所以需要联网)
需要注意的Calibration操作,需要选择复定标:
其它节点(Apply-Orbit-File,TOPSAR-Deburst)的参数保持默认即可。上述的两个子带IW2,IW1分割后的数据集均使用该流程图处理, 为后面的TOPSAR merge做准备。
具体操作:Radar—>Sentinel-1 TOPS—>S-1 TOPS Merge
ProductSet-Reader参数面板:
(注意选择的为上述deburst后的数据集,否则会报错)
TOPSAR-Merge面板参数保持默认:
确认无误后点击Run即可,大约需要1小时多,取决于你的数据量大小。
结果(可以看到IW1和IW2确认镶嵌起来,并且看不出拼接痕迹):
镶嵌
上面讨论的是一景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
确认各个操作参数无误后,点击Run,等待1个小时多即可,很快(尽管两景影像加起来有近14G的数据量)。我们利用镶嵌后并经过地形校正后的C2数据集,生成一个RGB图看看效果(加上了底world map图):
Perfect! 流程图高效地完成了预处理操作。
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处理交流群:665903216(这个群已满人),欧空SNAP处理交流群(二):1102493346。
抱歉,又写的太多了。祝好!
参考文献
[1] 欧空局Sentinel-1 SAR User Guide网址:https://sentinel.esa.int/web/sentinel/user-guides/sentinel-1-sar
[2] 刘保坤,禹卫东.ScanSAR与TOPSAR的对比研究[J].中国科学院研究生院学报,2011,28(03):360-365.
[3] lain H. Woodhouse著;董晓龙,徐星欧,徐曦煜译. 微波遥感导论[M]. 北京:科学出版社, 2014, 3.
[4] 微波遥感-3.2侧视雷达图像的几何特征
[5] sentinel-1-slc-polarimetric-decomposition:https://forum.step.esa.int/t/sentinel-1-slc-polarimetric-decomposition/3071