Landsat8的辐射定标与大气校正

本文介绍了如何在ENVI软件中处理Landsat8影像,包括辐射定标、OLI传感器的多光谱大气校正(对热红外波段的处理疑问),计算研究区高程,使用SAS和URBAN模型进行大气校正,并展示了处理后的植被特征变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开影像

在文件夹中找到xxx_MTL.txt文件,拖到ENVI中
在这里插入图片描述
在这里插入图片描述
此处可能会出现无法打开的问题,参考该文章(ENVI无法打开Landsat8的头文件问题和解决
在这里插入图片描述

辐射定标

在这里插入图片描述
在这里插入图片描述
此处我先处理热红外波段
在这里插入图片描述
在这里插入图片描述
OLI传感器下的波段也用同样的方法定标
在这里插入图片描述

大气校正

OLI多光谱需要进行大气校正,热红外好像不需要做?(此处有疑惑)
在这里插入图片描述

计算区域高程

在这里插入图片描述进行重投影
在这里插入图片描述在这里插入图片描述

计算研究区高程

在这里插入图片描述
在这里插入图片描述计算研究区高程在这里插入图片描述

在这里插入图片描述
在这里插入图片描述记住这个MEAN,我的是515,这就是我研究区的平均高程

大气校正

在这里插入图片描述
设置各种参数,其中有些参数会自动获取,下面介绍需要修改的部分在这里插入图片描述
输入输出文件位置,高程
在这里插入图片描述
我的研究区纬度40,11月,选择SAS
在这里插入图片描述选择SAS为大气模型表

在这里插入图片描述气溶胶模型为URBAN

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后点击APPLY开始运行
运行完毕之后,从Data Manager中打开校正完的数据
在这里插入图片描述

查看处理结果

在这里插入图片描述
在这里插入图片描述在植被的可见光波段有明显的两峰夹一谷等特征,说明处理成功
在这里插入图片描述

Python实现Landsat大气校正可以利用遥感图像处理库,如GDAL和Rasterio等。以下是一个基本的Python代码示例,用于实现Landsat 8大气校正: 1. 导入所需的库和模块: ```python import numpy as np import rasterio from rasterio import plot from rasterio.warp import calculate_default_transform, reproject, Resampling ``` 2. 定义校正函数: ```python def atmospheric_correction(input_path, output_path): with rasterio.open(input_path) as src: # 读取波段数据 red = src.read(4) green = src.read(3) blue = src.read(2) nir = src.read(5) # 获取元数据 transform, width, height = calculate_default_transform(src.crs, 'EPSG:4326', src.width, src.height, *src.bounds) # 创建新的校正后图像 dst_profile = src.profile dst_profile.update({'crs': 'EPSG:4326', 'transform': transform, 'width': width, 'height': height}) # 大气校正公式 A = np.array([[0.3561, 0.3972, 0.3904, 0.6966], [-0.3344, -0.3544, -0.4556, 0.6966], [0.2626, 0.2141, 0.0926, 0.6830]]) # 校正计算 red_corr = (red*A[0, 0] + green*A[0, 1] + blue*A[0, 2] + nir*A[0, 3]) green_corr = (red*A[1, 0] + green*A[1, 1] + blue*A[1, 2] + nir*A[1, 3]) blue_corr = (red*A[2, 0] + green*A[2, 1] + blue*A[2, 2] + nir*A[2, 3]) # 保存校正后图像 with rasterio.open(output_path, 'w', **dst_profile) as dst: dst.write(red_corr, 1) dst.write(green_corr, 2) dst.write(blue_corr, 3) ``` 3. 调用校正函数进行图像校正: ```python input_path = 'input_image.tif' output_path = 'output_image.tif' atmospheric_correction(input_path, output_path) ``` 在上述代码中,我们首先使用[`rasterio.open()`](https://rasterio.readthedocs.io/en/latest/api/rasterio.open.html)打开输入图像,然后使用[`read()`](https://rasterio.readthedocs.io/en/latest/api/rasterio.io.html#rasterio.io.DatasetReader.read)读取红、绿、蓝和近红外波段的数据。接下来,使用[`calculate_default_transform()`](https://rasterio.readthedocs.io/en/latest/api/rasterio.warp.html#rasterio.warp.calculate_default_transform)函数计算出输出图像的投影和变换信息。 然后,我们创建一个新的输出图像,并将大气校正公式应用于每个波段。最后,使用[`rasterio.open()`](https://rasterio.readthedocs.io/en/latest/api/rasterio.open.html)并结合[`write()`](https://rasterio.readthedocs.io/en/latest/api/rasterio.io.html#rasterio.io.DatasetWriter.write)方法将校正后的波段写入输出图像。 以上就是利用Python实现Landsat大气校正的基本代码示例。需要注意的是,校正公式中的参数值可以根据具体情况进行调整。此外,还可以通过其他方法来进一步改进校正效果,如大气遥感模型、气溶胶光谱等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海绵波波107

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值