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

PolSARpro v5.1.3 处理Sentinel-1A SLC数据PolSARproV.5.1处理Sentinel1A数据PolSARpro软件简介准备工作PolSARpro读取Sentinel1A数据PolSARpro软件简介PolSARpro是由法国雷恩第一大学(UniversitédeRennes1)电子和电信学院教授EricPottier1等人带头开发的专门用于PolSAR(极化合成孔径雷达)、Pol-InSAR(极化干涉合成孔径雷…

大家好,又见面了,我是你们的朋友全栈君。

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

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 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,如下图所示(见最下面红色框所示):
图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研究领域的顶级专家之一。 ↩︎

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162760.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • C语言小游戏——贪吃蛇—-小白专用

    C语言小游戏——贪吃蛇—-小白专用C语言贪吃蛇小游戏个人小白,后期也做了一些改进,附原视频地址(点击即可)废话在后面直接上程序该程序在VS2019上可完美运行。#include<stdio.h>#include<stdlib.h>#include<Windows.h>#include<time.h>#include<conio.h>constexprautomaphigh=28,mapwide=84;structvirus{ intx;

  • windows如何在局域网下共享文件(传输文件、修改文件)

    windows如何在局域网下共享文件(传输文件、修改文件)前些天在了解Git版本控制的时候,看到了“局域网下可以共享文件(阅读or修改)”。发现自己之前都没了解过这个,虽然用着GitHub却对其来源的变化不甚了解。于是就动手操作了一下windows如何在局域网下共享文件。对,还有一些局域网下的传输软件。但我还没有去了解,所以在这里先不说了。什么是局域网局域网(LocalAreaNetwork,LAN),又称内网。指覆盖局部区域(如办公室…

  • 堆排序算法——C/C++

    堆排序算法——C/C++堆排序1、算法思想堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、实现原理要实现从小到大的排序,就要建立大顶堆,即父节点比子节点都要大。2.1、初始化数组,创建大顶堆。大顶堆的创建从下往上比较,不能直接用无序数组从根节点比较,否则有的不符合大顶堆的定义。…

  • php轻博客社区视频教程,轻博客主题 – SEO极致优化的ZBLOG轻博客主题

    php轻博客社区视频教程,轻博客主题 – SEO极致优化的ZBLOG轻博客主题zblog自适应轻博客主题,简洁、轻巧、极致优化~QQ群:457320274(问题反馈以及其他链接交换等)交流社区:https://www.bxiu.net/(有问题可以求助交流)更新记录:2021.02.22v2.8更新内容:1、新增分类自定义标题;(默认分类标题是分类名-副标题,输入自定义后则显示自定义标题,详情看分类编辑页)。2021.02.20v2.7更新内容:1、调整列…

  • js中join方法

    js中join方法js中的join方法join方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。大白话:join方法可以用符不同的分隔符来构建这个字串。join方法值接受一个参数,即用作分隔符的字符串,然后返回所有数组项的字符串。vararr=["red","yellow","blue"];vararray=[];下面开始调用join方法1a…

  • 如何telnet端口_telnet查看端口是否开放

    如何telnet端口_telnet查看端口是否开放cmd中,命令:talnetIP或域名端口号若提示:‘telnet’不是内部或外部命令,也不是可运行的程序或批处理文件。按次地址进行调整https://jingyan.baidu.com/article/3d69c551531986f0ce02d774.html转载于:https://www.cnblogs.com/mjbenkyo/p/8029535.html…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号