python大气校正_Python 处理遥感图像:光谱辐射定标、大气校正和计算反射率

本文介绍了使用Python进行遥感图像处理,包括光谱辐射定标、大气校正和反射率计算的步骤。通过自定义函数实现了遥感器的辐射校准,并详细展示了大气校正的Chavez模型以及反射率的计算公式,提供了相应的Python代码示例。
摘要由CSDN通过智能技术生成

唔,最近在做作业的时候,一些实验内容涉及到了用ENVI处理遥感图像,然后自己手动操作软件一遍遍的输入各种参数神马的感觉挺无聊。。。。然后决定自己用python里面的opencv库写个脚本批处理图像反射率的计算试试~

核心步骤就是 遥感影像光谱辐射定标 →大气校正→计算反射率这三步了

①、遥感影像的光谱辐射定标

由遥感器的灵敏度特征引起的辐射畸变主要由其光学系统或光电转换系统的特征形成的,光电转换系统的灵敏性特征通常很重复,其校正一般是通过定期的地面测定值进行的。

遥感器光谱辐射定标时采用以下转换算式:

遥感器各波段偏移与增益值从论文找了找后,找到这么一张表~

那么这么个函数就能定标咯:

def computL(gain,Dn,bias):

return (gain*Dn+bias)

②、遥感影像的大气校正

任何一种依赖大气物理模型的大气校正方法都需要先进行遥感器的辐射校准。

公式是这个咯(Chavez P S,Jr. Image -Based Atmospheric Correction Revisited and Improved Photogrammetric Engineering and Remote Sensing, 1996,62,1025 -1036)

其中:Lhazel——大气层光谱辐射值;LI,min——遥感器每一波段最小光谱辐射值;LI,1%——反射率为1%的黑体辐射值。

关于LI,min和LI,1%的计算公式就省略了啊,感兴趣的同学可以自己去查

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的可以对遥感图像进行大气校正Python代码,需要使用numpy、matplotlib、gdal和spectral库: ```python import numpy as np import matplotlib.pyplot as plt import gdal import spectral # 加载遥感图像 img_path = 'path/to/image.tif' img = gdal.Open(img_path) # 将图像转换为numpy数组 img_data = img.ReadAsArray() # 获取图像波段数和尺寸 n_bands, height, width = img_data.shape # 定义大气光谱 atmospheric_spectrum = np.array([0.1, 0.06, 0.04]) # 计算大气光谱在每个波段的平均反射率 atm_reflectance = np.mean(img_data[:, :1000, :1000], axis=(1,2)) # 计算每个波段的大气光照度 atm_irradiance = atmospheric_spectrum / atm_reflectance # 将每个波段的大气光照度扩展到整个图像大小 atm_irradiance = np.expand_dims(atm_irradiance, axis=(1,2)) atm_irradiance = np.repeat(atm_irradiance, height, axis=1) atm_irradiance = np.repeat(atm_irradiance, width, axis=2) # 进行大气校正 corrected_data = np.zeros_like(img_data, dtype=float) for i in range(n_bands): corrected_data[i,:,:] = (img_data[i,:,:] - atmospheric_spectrum[i]) / atm_irradiance[i,:,:] # 显示原始图像和校正后的图像 plt.subplot(1,2,1) plt.imshow(img_data[0,:,:], cmap='gray') plt.title('Original Image') plt.subplot(1,2,2) plt.imshow(corrected_data[0,:,:], cmap='gray') plt.title('Corrected Image') plt.show() ``` 在这个例子中,我们假设遥感图像是一个名为`image.tif`的GeoTIFF文件,并且包含三个波段(红、绿和蓝)。我们首先将图像读取为numpy数组,然后计算大气光照度,最后进行大气校正,生成一个校正后的图像。最后,我们使用matplotlib库显示原始图像和校正后的图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值