基于6s的Sentinel影像大气校正研究

(整期优先)网络出版时间:2023-10-13
/ 2

基于6s的Sentinel影像大气校正研究

张瑞利1 赵少楠2

(中煤航测遥感集团有限公司,陕西 西安 710199)

摘要:Sentinel影像的高分辨率和海量数据为应用提供了广阔的空间。然而,由于大气散射和吸收对遥感图像质量的影响,遥感图像在实际应用中经常受到大气干扰。基于此,该文提出了一种基于Python的Sentinel影像大气校正方法。首先,采用6S模型对大气参数进行反演,然后对影像进行辐射校正。校正后影像光谱曲线与地面实测光谱曲线的变化趋势一致,具有较高的拟合度。模型大气校正的结果具有较强的相关性和较高的精度。实验结果表明,该方法能够有效地降低Sentinel影像的大气干扰,提高遥感图像的质量和信度。

关键词:Sentinel影像,大气校正,6S模型,Python

1.引言

Sentinel影像的高分辨率、广覆盖范围和丰富的信息量使其成为遥感领域的研究热点[1]。然而,由于大气散射和吸收对遥感图像质量的影响,Sentinel影像在实际应用中经常受到大气干扰。因此,在Sentinel影像的处理过程中,如何减少大气干扰,提高图像的质量和信度成为了一个重要的问题和挑战。

遥感影像大气校正是一种重要的遥感数据处理方法[2],主要用于去除由大气介质对遥感图像所产生的影响。这些影响包括大气散射、吸收和反射等,会导致遥感影像中的亮度和色彩变化,从而对遥感数据的定量分析和应用造成不利影响。因此,通过大气校正,可以使遥感数据更加准确,从而提高数据的应用价值。

目前,常见的遥感影像大气校正方法主要包括:6S模型法、DOS模型法、MODIS气溶胶算法和FLAASH方法等[3]。其中,6S模型法是最为广泛应用的一种方法[5],主要基于一个称为“6SSecond Simulation of the Satellite Signal in the Solar Spectrum)”的大气辐射传输模型,并结合遥感数据进行模拟计算和校正。此外,也有基于深度学习和卷积神经网络等技术的遥感影像大气校正方法[4]

无论采用何种方法,遥感影像大气校正都需要考虑地表反射率、大气上升层、气溶胶、大气水汽、地表高程、光谱特性等因素的影响。因此,大气校正是遥感数据处理和应用的重要一环,对于提高遥感数据的质量和应用水平具有重要意义。

2.Sentinel影像大气校正方法

2.1 6S大气辐射传输模型

6S是一种用于模拟遥感卫星数据的工具,它可以模拟太阳辐射穿过大气层、地表反射和卫星接收器接收的过程。在大气校正中,6S模型主要用于反演大气参数,如水汽含量、气溶胶光学厚度等,以减少大气的影响。

6S可以对不同的气体、云层、地表和地形等因素进行模拟,并计算出各种卫星传感器所观测到的辐射量,进而进行大气校正。6S模型是一个用于计算可见光到近红外(400-2500nm)波段的辐射传输和反射的大气模型,被广泛应用于遥感领域。在Sentinel-2影像大气校正中,通过6S模型对大气的传输和反射效应进行建模,然后利用建模结果对原始图像进行校正,从而得到表观反射率和地表大气校正后的图像。

2.2 Sentinel影像的大气校正流程

Sentinel-2影像的大气校正流程包括以下步骤:

1)获取卫星观测的数据

2)基于6S模型反演大气参数

3)进行相对辐射校正

4)进行绝对辐射校正

5)保存校正后的影像数据

3.3 Python编程实现

为了实现Sentinel影像的大气校正,本文基于Python编写了相关程序。其中,主要包括以下几个部分:

1.安装6S模型,并设置参数:使用Python中的os子模块安装6S模型,然后使用subprocess子模块调用6S模型。

2.构建大气参数文件(气象文件):使用6S模型生成大气参数文件,输出为6S可读取的大气参数文件。

3.读取Sentinel-2影像数据:使用Python中的GDAL库读取Sentinel-2影像数据,导出reflecances数组,表示待校正影像的反射率。

4.进行6S大气校正:使用subprocess子模块调用6S模型,对待校正影像进行6S大气校正,输出为校正后的影像数据。

cmd = "sixs -s 1 -f ex.inp -a atm.dat"

subprocess.call(cmd, shell=True)

scale_factor = 1.0 / 1e4

with open("ex.inp", "w") as f:

    f.write("0\n")

    f.write("1\n")

    f.write("{}\n".format(reflecances.shape[1]))

    f.write("{}\n".format(reflecances.shape[0]))

    for row in reflecances:

        for pix in row:

            f.write("{}\n".format(pix * scale_factor))

os.system(cmd)

5.读取6S大气校正后的影像数据:使用GDAL库读取6S大气校正后的影像数据,导出6S校正后的反射率数组。

6.可选:输出6S模型计算的大气参数,以及校正系数。这个步骤可以帮助理解大气校正的过程。

通过以上步骤,我们就可以使用Python实现基于6S模型的Sentinel-2影像的大气校正方法。

3 实验结果与分析

为了验证本文提出的Sentinel影像大气校正方法的有效性,本文对不同场景的Sentinel-2影像进行了实验,比较了校正前后的影像质量。实验结果表明,本文提出的Sentinel影像大气校正方法能够有效地降低大气干扰,提高遥感图像的质量和信度。

4 结论

本文提出了一种基于Python的Sentinel影像大气校正方法。该方法采用6S模型进行大气参数反演,实现相对辐射校正和绝对辐射校正,去除Sentinel影像的大气干扰。实验结果表明,该方法能够有效地提高Sentinel影像的质量和信度,为Sentinel影像的应用提供了重要的支持。

参考文献:

[1]穆超,刘振宇,孟丹 基于Sentinel-2卫星数据的内陆湖泊水体大气校正[J]. 测绘通报 2021,0(9):9-14

[2]苏伟,张明政,蒋坤萍,朱德海,黄健熙, 王鹏新Sentinel-2卫星影像的大气校正方法[J] 光学学报,2018,38(1):0128001

[3]赵越,曾群,陈晓玲 HJ-1A/1B卫星CCD影像的鄱阳湖6S大气校正研究[J] 《华中师范大学学报(自然科学版)》2012,46(6):757

[4]商子健,金建文,许振峰, 高分一号多光谱影像6S大气校正研究[J] 《无线电工程-被引量:2021,51(8):757705-710

[5]侯旭洲,易维宁,乔延利,等. 基于6S模型的遥感图像大气校正方法[J]. 大气与环境光学学报,2015,10(1):63-68