利用ENVI5.3 读取哨兵2 号(Sentinel-2)L1C 数据
已有 6316 次阅读 2017-11-11 14:35 |个人分类:雷达数据处理|系统分类:科研笔记
2016 年 12 月 6 号,欧空局修改了哨兵 2 号(S2)数据的命名规则,这导致 ENVI 5.3 仅能
打开此前获取的 S2 数据,而之后的数据仅能在 ENVI 最新版 5.4 中打开,参见:
https://yceo.yale.edu/faq-page/16#t16n556。当然,欧空局发布的哨兵系列卫星数据处理
SNAP(Sentinal application platform),可以完美支持 S2 的读取和后期处
平台
理,SNAP 下载地址:http://step.esa.int/main/download/。对于熟悉和喜欢 ENVI 软件,又
没有 Money 升级到最新版的,这无疑是个蛋疼的事情。那么如何解决呢?
其实,稍微看下 S2 的 1C 级数据介绍(参见:
https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi),就可以发现它的数据组
织结构(https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi/data-formats),
S2 的 13 个波段数据,都以 JP2 的格式保存在 Granule 文件夹下,如
GRANULE/L1C_T50SLJ_A011941_20171005T031513/IMG_DATA,外层的.safe 和.xml 文件
只是这些数据文件的说明和索引。ENVI 可以读取 JP2 数据,那么问题就变成了,如何把不
同的波段的数据有机地整合在一起变成一个多波段数据。
ENVI5.3 中的工具 Layer stacking(Raster Managerment/Layer stacking),可以完成这个
工作,具体参见 ENVI 帮助。这里需要说明的是,S2 的数据文件已经定义了投影坐标系,但
是在 Layer Stacking 不能读取 JP2 格式数据的坐标信息,所以在这一步之前,需要把 S2 中
JP2 格式的数据,转化为 ENVI 标准格式,然后 Layer Stacking 就可以发现坐标信息了。
Layer Stacking 只是把不同波段数据(行列需要一致)整合在一起,后续还需要在头文件中
添加各波段数据的波段、半波宽等说明信息,S2 数据的波段信息参见,
https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument。附件
txt 是 S2 数据导出的头文件信息(这里仅 4 个 10m 分辨率波段),也可根据此文件设置自
己的头文件信息。
ENVI 扩展工具:Sentinel-2 L1C 辐射率数据定标工具
Sentinel-2 L1C 是经过几何精校正的大气表观反射率产品,可通过欧空局
(https://scihub.copernicus.eu/dhus/#/home)免费下载。使用 ENVI 中的 Radiometric
Calibration 工具定标为辐射率(Radiance)目前版本存在问题,定标结果不正确,故特此
编写 Sentinel-2 L1C 辐射率定标工具。本工具能正确的将 Sentinel-2 L1C 数据定标为 10
米 4 波段、20 米 9 波段和 60 米 11 波段的辐射率(Radiance)数据,之后可以利用 FLAASH
工具进行大气校正。
一、 基本原理
Sentinel-2 L1C 是大气表观反射率产品,辐射亮度值(
)与大气表观
反射率(
)存在如公式(1)的数学关系,进而可由公式(2)求得
。
其中:
:大气表观反射率
:辐射率,单位:
d:日地距离,单位:天文单位,即太阳和地球之间的平均距离
:太阳辐照度,单位:
:太阳高度角,单位:度
本工具基于公式 2 将大气表观反射数据转为辐射率数据。
二、下载安装
有以下两种安装方式,推荐使用 App Store for ENVI 安装该扩展工具。
ENVI App Store 安装
(1)下载安装和使用说明:
http://blog.sina.com.cn/s/blog_764b1e9d0102xl5j.html 。
(2)在 App Store for ENVI 找到 Sentinel-2 L1C 辐射率定标工具,点击 Install App
进行安装。
手动安装
(1)
下载工具包:http://pan.baidu.com/s/1jHNRAS2 密码:
kgr7
(2)
压缩包中的文件分别拷贝到对应的文件夹中。
.sav 文件拷贝到:…/extensions
. task 文件拷贝到:…/custom_code
该工具直接使用了 ENVI 的 OpenRaster 函数打开哨兵 2 数据,由于哨兵 2 数
据的格式有多次更改,使用该工具处理相应的哨兵 2 数据的前提为 ENVI 能
打开待处理的哨兵 2 数据。ENVI5.3.1 和 ENVI5.4 有相应的补丁,参考:
http://blog.sina.com.cn/s/blog_764b1e9d0102y279.html。
如果是 ENVI5.4.1 版本,则支持所有格式的哨兵 2 数据。
三、 使用说明
(1)
在 ToolBox 中,启动/Extensions/Radiance Sentinel-2 L1C,如
下图所示。下面为每个参数的详细说明:
图.1 Sentinel-2 L1C 辐射率定标参数面板
Input Sentinel-2 XML:Sentinel-2 L1C xml 文件,2017 年发布的 xml 文件为
MTD_MSIL1C.xml。
Sentinel-2 L1C 辐射率定标工具提供三种辐射率定标方案:
1)Output Four 10m Bands:10m 四个波段定标,即 B2、B3、B4、B8。
2)Output Nine 20m Bands:20m 九个波段定标,即 B2、B3、B4、B5、B6、B7、B8A、
B11、B12。
3)Output Eleven 60m Bands:60m 十一个波段定标,即 B1、B2、B3、B4、B5、B6、
B7、B8A、B9、B11、B12。
注*:B8 与 B8A 中心波长接近,B8A 比 B8 波宽窄,而且但对于 2)3)方案若保留
B8 则无法进行气溶胶反演(Aerosol Retrieval),故保留 B8A。
Scale Factor:缩放系数。默认值 0.1,即乘以 0.1,则输出单位为,与 FLAASH
要求输入的量纲相同。
Resample Method:重采样方法,默认为 Bilinear。
注*:
高分辨率数据重采样为低分辨率数据时不推荐使用 Nearest Neighbor。
重采样只作用于方案 2)3),方案 1)无需重采样。
Enter Suffix:输出影像的后缀。输出影像名称为 S2X_ML1C_YYYY-MM-DD_
Zm_Suffix.dat。
其中:
A 星,则 X=A;B 星则 X=B
YYYY-MM-DD 为影像拍摄日期
Z 为输出影像空间分辨率,根据输出选项,Z 为 10、20 或者 30
Suffix 为输入的后缀,默认为 Radiance
以示例数据为例,按照默认参数,则输出的 4 波段 10m 分辨率影像名称为:
S2A_ML1C_2017-03-14_10m_Radiance.dat。
Output Directory:输出文件路径。选择文件夹即可,不必设置文件名称。
Display Result:是否在 ENVI 中显示辐射率影像。
(2)
选择相应参数,单击 OK 执行定标处理。
附:Sentinel-2 数据介绍
Sentinel-2 包括 A、B 两颗卫星(简称以下 S2A,S2B),其传感器性能相同。
Sentinel-2 影像基本参数和产品级别如下。
基本参数
波段名称
中心波长
(nm)
496.6
560.0
664.5
835.1
703.9
740.2
782.5
864.8
1613.7
2202.4
443.9
945.0
1373.5
B2
B3
B4
B8
B5
B6
B7
B8A
B11
B12
B1
B9
B10
表 1. Sentinel-2 波段设置
S2A
S2B
半高宽(nm)
中心波长
(nm)
空间分辨率
半高宽(nm)
(m)
98
45
38
145
19
18
28
33
143
242
27
26
75
492.1
559.0
665.0
833.0
703.8
739.1
779.7
864
1610.4
2185.7
442.3
943.2
1376.9
98
46
39
133
74.5
18
28
32
141
238
45
27
76
10
20
60
产品级别
Level-0: 原始数据。
Level-1A:包含元信息的几何粗校正产品。
Level-1B:辐射率产品,嵌入经 GCP 优化的几何模型但未进行相应的几何校正。
Level-1C:经正射校正和亚像元级几何精校正后的大气表观反射率产品。
注:目前国内用户仅能下载 Level-1C 数据。
entinel-2 L1C 数据 FLAASH 大气校正
FLAASH 输入数据为 Sentinel-2 L1C 辐射率定标工具
(http://blog.sina.com.cn/s/blog_764b1e9d0102y7g4.html)的输出结果。其中 4 个波段
和 9 个波段的 FLAASH 大气校正方法同常规多光谱数据类似, 9 波段 20 米的大气校正与
landast8 类似,具体可参考:
FLAASH 设置详解: http://blog.sina.com.cn/s/blog_764b1e9d0102v59e.html
获
取
区
域
平
均
高
程:
http://blog.sina.com.cn/s/blog_764b1e9d0101drqg.html
常见错误及解决方法:http://blog.sina.com.cn/s/blog_764b1e9d0100pvrk.html
以下仅介绍 11 个波段的 60m Sentinel-2 数据 FLAASH 大气校正关键参数设置。
启动/Radiometric Correction/Atmospheric Correction Module/FLAASH Atmospheric
Correctio 工具。
一、基本参数设置
选择辐射亮度值后,在 Radiance Scale Factors 对话框中,选择第二项,设
置
Single
scale
factor
为
1
。
图. FLAASH 基本参数面板
Sensor Type:选择 UNKNOW-MSI
注*:若选 Sentinel-2,则不能进行水汽反演(Water Retrieval),因为
Sentinel2 达不到 FLAASH 要求的光谱分辨率(15nm),但是强制进行水
汽反演会获得更好的大气校正效果。
Sensor Altitude:786 km
Water Retrieval:默认为 No,此处改为 Yes