6S大气校正新方法

本文实现目标:利用python py6s package实现更加便捷的6S大气校正

首先,简单叙述6s大气校正原理

6s模型里需要输入一系列的与模拟成像日期大气情况的参数,这些参数主要包括:几何参数、气溶胶光学厚度、水蒸汽、臭氧、高程等,同时,这些参数的输入都以查找表这一简单直观的方式获取。最后生成一个线性大气校正公式,逐一得到每波段每像素的6s大气校正后的地表反射率值。

1.几何参数igeom:
如果需要使用6s校正高分辨率卫星影像,一般设置igeom = 0,
同时需要用户自定义输入各必须的几何参数:

solar_z =             # 太阳天顶角 = 90° - 太阳高程角
solar_a =             # 太阳方位角
view_z =              # 卫星天顶角,如果影像为垂直90度观测,则view_z = 0,view_a = 0,但是大部分情况会有一些角度。
view_a =              # 卫星方位角month =               # 影像成像月份
day =                 # 影像成像具体天

2.大气模式idatm:
(一共有7种内置的大气模式,从0-6,无大气吸收,热带,中纬度夏季,中纬度冬季,亚寒带夏季,亚寒带冬季以及美国标准62大气模式)
我们可以通过影像中心点的经纬度坐标+影像成像月份两个信息共同判断:

# 大气模式类型
if sLatitude > -15 and sLatitude <= 15:s.atmos_profile = AtmosProfile.PredefinedType(AtmosProfile.Tropical)if sLatitude > 15 and sLatitude <= 45:if s.geometry.month > 4 and s.geometry.month <= 9:s.atmos_profile = AtmosProfile.PredefinedType(AtmosProfile.MidlatitudeSummer)else:s.atmos_profile = AtmosProfile.PredefinedType(AtmosProfile.MidlatitudeWinter)if sLatitude > 45 and sLatitude <= 60:if s.geometry.month > 4 and s.geometry.month <= 9:s.atmos_profile = AtmosProfile.PredefinedType(AtmosProfile.SubarcticSummer)else:s.atmos_profile = AtmosProfile.PredefinedType(AtmosProfile.SubarcticWinter)

3.选择气溶胶模式iaer:
(一共有7种内置的气溶胶模式,从0-7,0-无气溶胶模式,1-大陆型,2-海洋型,3-城市型,5-沙漠背景的shettle模型,6-生物燃烧模型,7-平流层模型)

aero_profile = AeroProfile.PredefinedType(AeroProfile.Continental)
# ***这里注意下,是AeroProfile.PredefinedType而不是AtmosProfile.PredefinedType***

4.设置 550nm气溶胶光学厚度,根据日期从MODIS的月度气溶胶产品中获取。
6S模型中可以通过定义两种值的其中之一来确定,可见度v:visibility或者气溶胶光学厚度aot550;然而需要注意py6s中目前只能使用气溶胶光学厚度aot550参数来定义。
该值可以通过查询研究区最邻近站点对应日期的550nm对应的值;
查询网址:

https://aeronet.gsfc.nasa.gov/cgi-bin/type_piece_of_map_opera_v2_new

aot550 = aot

5.输入目标海拔的高度,可使用研究区四个角上的经纬度值确定一个矢量研究区范围,用该范围掩膜DEM值,得到该研究区的平均高程值:

# 通过研究去区的范围去求DEM高度。
pointUL = dict()
pointDR = dict()
pointUL["lat"] = point1lat
pointUL["lon"] = point1lon
pointDR["lat"] = point4lat
pointDR["lon"] = point2lon
meanDEM = (MeanDEM(pointUL, pointDR)) * 0.001    # MeanDEM()为自定义计算高程的函数

6.传感器Xpp高度的输入,xpp= -1000 表明传感器为星载传感器,xpp=0 表明传感器在地面上-100;由此可以看出,6S模型也可以对无人机等传感器获得的影像进行大气校正。

# 研究区海拔、卫星传感器轨道高度
s.altitudes = Altitudes()
s.altitudes.set_target_custom_altitude(meanDEM)
s.altitudes.set_sensor_satellite_level()        # 选择卫星传感器

7.光谱条件iwave的输入,其中6S内置了很多传感器的光谱条件,如MODIS,TM,AVHRR,SPOT,NOAA等。然而高分辨率商业卫星影像都需要自定义光谱条件。其中光谱响应函数的计算是以2.5nm为间隔, 一般官方提供的光谱响应函数文件的光谱间隔为10nm, 需要自己插值制作为2.5nm间隔。当然还有一个便捷的途径,从ENVI软件里自带的许多光谱响应函数文件.sli中得到,注意ENVI中的光谱间隔为1nm,因此反而需要将间隔增大2.5倍!!!
经过本渣渣艰难的摸索,光谱响应函数是影像你的6S大气校正是否正确的最关键因素,需要特别小心,一种检验方法,可以与ENVI中的Flaash大气校正结果相互印证
还需要注意的是,有的朋友每个波段最后得到的参数完全一样,那代表你的结果一定有问题,可以先从你的光谱响应矩阵入手检查!!

待校正的影像数据类型、存储方式的要求、单位、缩放尺度

1.存储方式的要求:
从6s大气校正的过程来看,影像的存储格式并没有要求,可以是TIL、XML、DAT、HDF等栅格影像的存储方式;相反重要的是获取存储6s所需参数的头文件信息。

2.输入的数据类型:
首先如果你手里拿到的是一景高分辨率卫星影像的原始数据格式–DN值,你需要进行辐射定标;
一个非常重要的直击灵魂的问题:使用6S模型进行大气校正的输入影像是辐射定标后的表观辐亮度值还是表观反射率值??
补充答案:需要的是没有经过任何尺度放大或者缩小的表观辐亮度,因此,根据自己的原始文件进行判断。如果手里的文件是DN值,根据官方提供的Gain和Bias值定标;如果手里的文件是TOA数据,则需要根据TOA与TOR的转换公式计算得到!!

2.1计算表观辐亮度值()的公式:

Radiance=gain*DN+offset

每个波段对应的gain和offset值,都可以通过影像的头文件中对应名查询到。

2.2计算表观反射率(Top of Atmosphere Reflectance)的公式:

ρ=π*L*d2/(ESUN*cos(θ))
rad = toa/ ρ

其中ρ为表观反射率,L为表观辐亮度,d为日地距离,ESUN为太阳平均辐射强度,θ为太阳高度角。

…还有些没写完,最近忙着做实验,空了补充

❤❤如果这篇文章对你有所帮助,希望大家不吝啬给我一个鼓励的赞~~❤❤

6S大气校正原理、实现方法相关推荐

  1. 实习一:6S大气校正

    ********************************************************************************************* 以下内容只用 ...

  2. 6S大气校正模型说明

    title: 6S大气校正 date: 2018-04-13 categories: 遥感图像处理 tags: 大气校正 6S辐射传输模型 6S(Second Simulation of Satell ...

  3. FY3D MERSI2 6S大气校正

    前言 终于在6S源码里添加了MERSI2 650.865nm波段的响应函数.网上的博客已经写的很详细了,需要注意的是更改源码的时候最好在编译器里进行更改.我一开始是在NotepadC++里更改的,然后 ...

  4. 6S大气校正模型源码

    转载:http://blog.sina.com.cn/s/blog_678716330102v8g8.html 6S的源码是用FORTRAN来写的,想要对6S有所了解,还是要有一定的FORTRAN基础 ...

  5. 高分影像批处理第二回——辐射定标与大气校正

    辐射定标 遥感影像的辐射定标就是将传感器接收的无效的DN(digital number)值转化为我们所需要的辐射亮度值或者大气表观反射率.要达到这个目的,我们需要知道传感器的增益和偏移值.高分影像的g ...

  6. 基于6s模型的遥感影像大气校正方法

    目的:针对光学遥感影像(Landsat-8.Sentinel-2.GF-1.GF-2)的大气校正自动化实现方法,大多数是使用ENVI的FLASSH模块进行大气校正,虽然现在ENVI提供了FLASSH模 ...

  7. python 大气校正_基于6s模型的遥感影像大气校正方法

    基于6s模型的遥感影像大气校正工程化实现 目的:针对光学遥感影像(Landsat-8.Sentinel-2.GF-1.GF-2)的大气校正自动化实现方法,大多数是使用ENVI的FLASSH模块进行大气 ...

  8. 基于6S模型的国产卫星数据大气校正

    本文只讲干货,不讲客套话,不讲没有由头的技术细节.目的只为将6S模型用于国产卫星大气校正. 6S模型介绍 首先来讲为什么要进行大气校正,讲讲必要性.首先,只有定量化需求才会用到大气校正,当然为了满足项 ...

  9. 大气校正6S与FLAASH计算与对比

    (1)FLAASH大气校正 大气校正的目的是消除大气和光照等因素对地物反射的影响,获得地物反射率和辐射率.地表温度等真实物理模型参数,用来消除大气中水蒸气.氧气.二氧化碳.甲烷和臭氧对地物反射的影响, ...

最新文章

  1. pyinstaller打包pyqt文件(转)
  2. django的ajax_get请求
  3. Windows性能分析器概述(三)
  4. java 管理后台前台分离_系统前台后台是否应该分离(包括部署)
  5. windows下python安装gmpy2_安装Python模块gmpy2中的问题解决
  6. Java教程:Java String字符串和整型int的相互转换
  7. Mysql你应该要懂索引知识
  8. python软件下载中文版-PyCharm中文版
  9. Oracle Webcenter Portal Framework应用程序功能–页面和页面层次结构
  10. Windows2008计算机设置,Windows Server 2008 R2 个人使用优化设置
  11. 简单利用字典破解zip文件口令
  12. 电影影视网站对接微信公众号 日引流500+的实例教学
  13. 网站流量日志数据分析系统(模块开发----数据仓库设计)
  14. JAVA学习代码——验证手机号码是否正确
  15. java数据结构运动会分数统计,数据结构实验报告(运动会分数统计系)..doc
  16. 【springboot maven 本地包依赖】
  17. 分类导航(更新时间:2019.1.18)
  18. Rocket之消息发送
  19. 导出word如何默认打开为页面视图
  20. android上传文件至服务器(android端+服务器端)

热门文章

  1. 区块链 10 年低谷与荣光
  2. Hadoop HA namenode宕机环境恢复
  3. C语言编辑个人信息,十万火急:用c语言打印个人信息,怎么着?
  4. 刘云浩博士报告_年青人 追梦的感觉
  5. GB18030与GBK、GB2312字节对照
  6. php开发圣经,php 求学路 之走入“圣经”
  7. 商标45类分类表明细表_2017商标分类表第45类商标明细
  8. 读论文 CVPR_2017_Scene-Text-Detection Method Robust against Orientation and Discontiguous Components of
  9. 第52篇 Android Studio实现生命数字游戏(七)ListView与适配器
  10. rsync忽略文件或目录