转载:http://blog.sina.com.cn/s/blog_678716330102v8g8.html

6S的源码是用FORTRAN来写的,想要对6S有所了解,还是要有一定的FORTRAN基础。由于作者是法国人,有很多变量缩写也是以法文为缩写的,不要望文生义。

第一节 6S简介

所谓6S是SECOND SIMULATION OF THE SATELLITE SIGNAL IN THE SOLAR SPECTRUM的简写,直译的意思就是“太阳光谱的卫星信号二次模拟”。其前身为法国里尔科技大学大气光学实验室开发的5S(SIMULATION OF THE SATELLITE SIGNAL IN THESOLAR SPECTRUM)大气辐射传输模型。在遥感观测的太阳-目标-传感器这种模式中,无论是使用卫星或是飞机,获取数据的过程中都不可避免的受到大气的影响。6S就是为了模拟这种地气系统中的太阳辐射,计算卫星入瞳处的辐射能量。通过这种模拟,我们就可以知道大气对太阳辐射的影响大小,由此来进行大气校正。

注:我的理解,6S是遥感用于对地气系统进行模拟的正演用的软件,而不是用于“大气校正”的软件,只不过正演结果往往被用于大气校正。当然也不仅仅是输出“表观辐亮度”这个正演结果,还有正演过程中所得到的有关大气一系列量。

6S假定晴空无云的条件下,并考虑了水汽、CO2、O3和O2等的吸收、分子和气溶胶的散射以及非均一地面和双向反射率的问题。相比与5S,6S可以模拟机载观测、设置目标高程、解释BRDF作用和临近效应,增加了新的吸收气体的计算(CO、N2O、CH4),对于瑞利和气溶胶散射的计算由于使用了逐级散射(successive order of scattering)方法,精度有了显著提升,并且光谱积分的步长从5nm改进到2.5nm。6S所能处理的光谱区间为0.25微米至4微米,低于0.25或高于4的都无法运算。缺点是对球形大气和limb (临边)观测不能处理。

目前国内大部分使用的都是1997年发布的标量版本,版本号一般为6SV4,在2005年Vermote等人又发布了一个矢量版本,版本号一般为6sV-1.0。相对于标量版本,矢量又做了很多改进,最明显的就是可以对于偏振进行处理。在本文中,主要介绍标量版本的使用,如果有时间,后续会再介绍矢量版本。

最后在后面说下,很多人都以为6S是一个软件,直接将图像输入,设置一些参数之后就可以获得大气校正过的影像了。其实这是一个完全错误的想法,原始的6S只是一个是使用Fortran写出来的一堆代码而已,而且也不能读取影像。可能大家使用的时候都是使用别人生成的EXE程序,在DOS界面里对各种参数进行输入。之前本人使用MFC写了一个6S的输入图形界面,可以点我下载。

第二节 6S使用

6S需要9个输入参数,对于这些参数都是必须仔细了解的,使用起来才能保证不会出错。学习都是一个由浅及深的过程,要努力做到知其然更知其所以然,通过对6S的学习能做到对辐射传输的公式以及推导有一个完善的了解,那么才是真正掌握了6S的使用。对于各参数下面将会一一介绍。

第一步需要输入的为几何参数igeom,其中有8情况,当选择igeom=0时,需要手动输入太阳高度角、方位角,卫星高度角、方位角以及影像获取月份与日期。剩下的7种为内置的一些卫星参数,如AVHRR、TM、GOES等,大部分都是需要输入日期,行列号等。

第二步为大气模式idatm的选择,6S里内置了0-6共其中大气模式,依次为无大气吸收,热带,中纬度夏季,中纬度冬季,亚寒带夏季,亚寒带冬季以及美国标准62大气模式,或者选择自定义大气廓线,选择7的话,需要输入海拔,压强,温度,水汽浓度,臭氧浓度。选择8需要输入水汽与臭氧浓度,大气廓线使用美国62。

第三步为选择气溶胶模式iaer,内置了7中标准气溶胶模式,为0-无气溶胶模式,1-大陆型,2-海洋型,3-城市型,5-沙漠背景的shettle模型,6-生物燃烧模型,7-平流层模型。或者自定义自己的气溶胶模式,当iaer=4时,需要输入各组分的百分比:粉状尘,水溶性物质,海洋性物质,煤烟。8为最多四种模型联合运算的一个正态分布模型。9为改进型的一种伽马分布模型。10为Junge谱幂分布模型。11为选择太阳光度计的测量值进行计算,12为读取已经设定好的参数进行计算。一般情况下如果不想做气溶胶的模式研究,就直接用刚开始介绍的7个标准模式。

第四步为气溶胶浓度,关于这个由两种输入方式,气溶胶光学厚度taer55或者可见度v。可见度v的单位为千米,如选择光学厚度taer55,可见度v的值就为0,taer55为550纳米处的气溶胶光学厚度。在气溶胶模式iaer中如果选择无气溶胶,可见度v的值就要为-1。其中气溶胶光学厚度与可见度有一个公式可以转换,为了快速计算,也可以使用4.8除光学厚度得到可见度,但这只是一个约值。

第五步为目标海拔高度xps的计算,如果xps>=0,那么表示目标在水平面上。xps<0表明你知道地面的高程,所以输入具体的值,不过前面加个负号。

第六步为传感器Xpp高度的输入,xpp=-1000 表明传感器为星载传感器,xpp=0 表明传感器在地面上。-100

第七步为光谱条件iwave的输入,其中6S内置了很多传感器的光谱条件,如MODIS,TM,AVHRR,SPOT,NOAA等。也可以使用自定义的光谱条件。其中光谱响应函数的计算是以2.5微米为间隔。

iinf=(wlinf-.25)/0.0025+1.5 为起始光谱值

isup=(wlsup-.25)/0.0025+1.5 为结束光谱值

由于6S所支持的光谱区间为0.25-4,代入上式iinf=(0.25-.25)/0.0025+1.5 =1.5=1,isup=(4-.25)/0.0025+1.5=1501.5=1501。所以6S所能处理的所有光谱曲线就位1-1501条。以TM数据蓝光波段为例,其光谱范围为0.430-0.560,代入上式可以得到iinf=(0.430-.25)/0.0025+1.5=73,isup=(0.56-.25)/0.0025+1.5=125,在TM的光谱响应曲线的就可以看做前72个数值为0,后1376个也为0值。

在6S之中,计算各种参数的时候,尤其是在计算光谱响应的起始与结束值时,定义的为整型,但计算结果可能会为一个小数,这就要考虑截断了,FORTRAN中并没有使用四舍五入的情况,而是直接取整。

对于6S没有内置的一些光谱响应也就可以自己按照这个规则来写一个Fortran文件。

第八步为地表特性的选择,这是一个比较复杂的选项,可以选择地面作为朗伯体或者各向异性来构建BRDF。下图为6S中给出的选择路径。

inhomo选择0代表地表是考虑地面为朗伯体,选择1代表地表各向异性。如果inhomo=0进入第二步的选择,再次选择0表明没有方向效应的影响,然后输入roe(表面反射比)。选择1表明有方向效应的影响,然后选择内置的一些BRDF模型来进行计算。如果inhomo=1,那么接着输入igrou1(roc)(目标的反射)、igrou2(roe)(周围环境反射)、radius r(表面半径)。

最后一步为选择rapp大气校正模型,如果rapp<-1那么就不进行大气改正,这就为遥感之中的正演,即为通过地表反射率来求得表观反射率。如果rapp>0 程序将重新赋值表观反射率,使用输入的这个辐射亮度值进行表观反射率的转换。当-1

上面的介绍,其实还是很抽象的,想要了解6S,就必须自己动手去做。

6S大气校正模型源码相关推荐

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

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

  2. 6S大气传输模型修改源码添加、自定义CASI传感器光谱响应

    6S大气传输模型编译以及修改源码添加.自定义CASI传感器光谱响应 在利用6S模型进行CASI影像数据的大气纠正时,发现6S模型中没有对应的光谱响应函数,又不想自己整个输进去,就查资料对源码进行了修改 ...

  3. 6S大气传输模型修改源码添加、自定义卫星光谱响应(以HJ-1B CCD为例)

    6S大气传输模型修改源码添加.自定义卫星光谱响应(以HJ-1B CCD为例) 最近要做国产卫星的大气校正,打算用6s模型模拟气溶胶的查找表,但是发现6s模型中没有国产卫星的相应光谱响应函数,只能在输入 ...

  4. FY3D MERSI2 6S大气校正

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

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

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

  6. 6S大气校正原理、实现方法

    6S大气校正新方法 本文实现目标:利用python py6s package实现更加便捷的6S大气校正 首先,简单叙述6s大气校正原理 6s模型里需要输入一系列的与模拟成像日期大气情况的参数,这些参数 ...

  7. IOCP 网络通讯模型源码解读

    From: http://hi.baidu.com/tsingsing/item/1aa5062fa27791fa50fd87b7 以前写服务器的时候用的是iocp,最近偶然发现windows的 网络 ...

  8. bert模型简介、transformers中bert模型源码阅读、分类任务实战和难点总结

    bert模型简介.transformers中bert模型源码阅读.分类任务实战和难点总结:https://blog.csdn.net/HUSTHY/article/details/105882989 ...

  9. Threejs渲染obj+mtl模型源码,3D工厂模型

    1,介绍 Threejs实现引入工厂模型,加载obj+mtl模型源码下载,可用于学习研究,二次开发 2,部分代码 // 创建一个场景,它将包含我们所有的元素,如物体,相机和灯光. var scene ...

最新文章

  1. 学了编译原理能否用 Java 写一个编译器或解释器?
  2. python代码统计字符串中大写字符、小写字符、特殊字符以及数值字符出现的次数
  3. LeetCode Interleaving String(动态规划)
  4. logincontroller.java_使用HuTool工具类,实现登录验证码
  5. HWS计划 decryption 寒假逆向生涯(17/100)
  6. C语言再学习 -- 创建excel文件
  7. 服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志
  8. PowerShell3.0入门视频(由Jeffrey Snover和Jason Helmick主讲)
  9. ORACLE不完全恢复的几种情况
  10. 免费ftp网站服务器软件,免费ftp服务器软件,免费ftp服务器软件有哪些呢?好用推荐...
  11. 新买的手机一直没有更新系统,是不是新买的手机原装系统最好用啊?
  12. 超强的软件工具箱!100+个电脑必备工具 盘姬工具箱分享给大家
  13. 超微晶磁芯在开关电源中的应用
  14. 关于*.md文件打开的问题及图片丢失
  15. MQTT学习笔记(4)报文分析之PUBLISH
  16. 使用Python画小猪佩奇(turtle库)
  17. 怎样更改Windows10的网卡MAC地址
  18. 差钱吗?周杰伦线上演唱会没关打赏惹争议,看看同时直播的腾格尔
  19. 有衬线字体和无衬线字体。
  20. 解决在ceph对象网关中使用s3fs报错“unable to access MOUNTPOINT /s3: Transport endpoint is not connected”

热门文章

  1. SQLSERVER EXPRESS 安装失败 code1645
  2. 基于echarts 24种数据可视化展示,填充数据就可用,动手能力强的还可以DIY(演示地址+下载地址)
  3. 常见的数据可视化方式
  4. Spring Cloud 升级之路 - 2020.0.x - 1. 背景知识、需求描述与公共依赖
  5. 带你走进Linux内核安全新世界
  6. u盘插linux电脑不好使,u盘插电脑没反应怎么办的几种真正解决方式
  7. kali内开启键盘背光
  8. VOS3000怎样给对接网关设置按主叫号码计费
  9. C#发送邮件(阿里企业邮箱示例 包括各个类型的服务器及端口配置)
  10. BilSTM 实体识别_NLP-入门实体命名识别(NER)+Bilstm-CRF模型原理Pytorch代码详解——最全攻略