ENVI/IDL实现HJ卫星气溶胶反演

55 篇文章 6 订阅

       之前基于modis反演过气溶胶,也利用ENVI for ArcGIS Server成功在线部署,在线体验地址:http://tm.arcgisonline.cn/2013/0416/550.html。这次利用环境卫星反演气溶胶,使用了查找插值,因此不同于modis的气溶胶反演结果,气溶胶值不仅限于查找表中的值了,每个像元一个对应的气溶胶值,而且对反演结果进行了空值填补和滤波处理。



图1 HJ卫星气溶胶反演流程图

详细功能模块介绍:

1、 HJ卫星波段合成和辐射定标

利用IDL编写的HJ卫星扩展工具,很容易的实现了数据的波段和成和辐射定标功能。


图2  辐射定标

2、 辐亮度转换为表观反射率

利用IDL实现福亮度到表观反射率的转换,转换所需要的参数例如卫星ID、传感器ID、太阳高度角、影像拍摄时间都是从HJ星数据自带的XML文件中读取的。很明显,影像像元值已经由辐射定标后的福亮度转换为了表观反射率。


图3 辐射亮度转换为表观反射率公式

 


图4 福亮度转换为表观反射率

3、 裁剪和重采样处理

为了更精确的反演气溶胶,经过试验当影像分辨率达到300*300的时候反演出来的气溶胶效果最好;为了更快的进行气溶胶反演,对影像进行裁剪。


图5 裁剪和重采样

4、 云检测

 HJ卫星的云检测是通过阈值实现的,研究表明(Acker-man等,2010),在红光波段卫星观测到的云的反射率一般大于0.2,因此我们可以利用0.2这个阈值来去除云。

图6 云检测

5、 暗像元判断

NDVI的值在[-1 ~1]之间,对陆地表面上的主要覆盖而言,云、水和雪等在可见光波段的反射比在红外波段的反射强,其NDVI为负值,因此也将被判为非暗像元被筛选出来,不参与AOD的计算;而有植被覆盖时NDVI>0,且其值随着覆盖度的增大而增大,因而可以用来识别暗像元。通过监测产品和地面同步观测数据的验证对比,同时考虑大气影响,将NDVI的闭值设为0.3。如下图所示,白色区域为暗像元区。


图7 暗像元区域

6、 角度文件(太阳和卫星天顶角、方位角)

HJ星的XML文件中有一个中心点的太阳高度角和太阳方位角,在txt文件中有每一个像元的观测天顶角和观测方位角。但是对于气溶胶反演来说,一景数据用一个太阳天顶角和方位角还是会影响精度的,因此通过读取txt文件中的观测天顶角和观测方位角和xml中的参数来计算每一个像元的太阳天顶角和太阳方位角,然后将得到的四个角度数据插值成为一个包涵四个波段的ENVI文件。

以上所有的功能都是利用IDL实现的。


图8 太阳天顶角

7、 查找表

HJ星的查找表功能是利用IDL调用6S辐射传输模型实现的,该查找表是考虑了所有的角度,因此适用于各个地区,也可以建立针对每一景图像建立一个查找表。查找表内容分为7项,分别为:辐射传输方程参数 P0 、 T、S、太阳天顶角、卫星天顶角、相对方位角、气溶胶值。


图9 环境卫星查找表

8、 气溶胶反演

气溶胶反演程序是利用IDL实现暗像元掩膜,查找查找表,插值查找表,气溶胶逐像元反演,高度校正、输出反演结果功能。没有做过任何处理的反演结果如下图所示。


图10 气溶胶反演结果

9、 反演后处理

气溶胶反演出之后,非暗像元去是没有气溶胶值的,因此要进行空值填补,为了更好的显示,去除由于噪声影响而出现的小斑点,做了滤波处理,最终显示效果如下图所示。

图11 反演后处理

10、    叠加重庆市行政区划界限

图中比较红的地方气溶胶值较大,这个地方是因为遥感影像上有薄云导致的,从反演结果上可以看出,自右下角向左上角递增的趋势,重庆市市区基本也是和整个趋势,红色区域可不做参考。


图12 叠加重庆行政矢量图

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
IDL是一种交互式的数据分析和可视化工具,可以用它来实现基于直方图的辐射校正和暗像元的大气校正。 首先,我们需要获取图像的直方图。可以使用IDL中的histogram函数来计算直方图。例如,假设我们有一个名为img的图像: ``` hist = histogram(img, n_bins=256, min=0, max=255) ``` 这将计算img的256个bin的直方图,并将其存储在hist数组中。 接下来,我们需要计算辐射校正因子。根据直方图的形状,我们可以选择一个参考bin,然后根据该参考bin和图像的平均值计算辐射校正因子。例如,假设我们选择的参考bin是100: ``` ref_bin = 100 radiance_scale = mean(hist) / hist[ref_bin] ``` 然后,我们可以使用radiance_scale对图像进行辐射校正: ``` radiance_corrected = img * radiance_scale ``` 接下来,我们需要进行暗像元的大气校正。我们可以使用IDL中的dark_object_subtract函数来计算暗像元。例如,假设我们有一个名为radiance_corrected的图像: ``` dark_object = dark_object_subtract(radiance_corrected, method='simple', kernel_size=25) ``` 这将计算一个大小为25的核,然后在radiance_corrected图像中找到最暗的像素,并使用该像素的值作为暗像元。然后,我们可以使用暗像元的值对图像进行大气校正: ``` atmospheric_corrected = (radiance_corrected - dark_object) / dark_object ``` 这样,我们就实现了基于直方图的辐射校正和暗像元的大气校正。需要注意的是,这只是一个简单的示例,具体的实现可能会因数据的不同而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值