下面开始添加国产卫星光谱响应的支持:

以下主要参考文章“6S大气传输模型修改源码添加、自定义卫星光谱响应(以HJ-1B CCD为例)”网址:http://blog.csdn.net/sam92/article/details/50390556

我是在Windows7 64位系统下做的。6sv2.1版本,还是有很多注意问题的。

添加GF-1与GF-2传感器光谱响应支持,从中国资源卫星网站上下载。

1. 修改main.f

解压压缩包之后,找到main.f打开。 可以发现首先出现与传感器有关的代码是在第363行的nsat变量:

nsat保存了传感器波段名称字符串,会显示在输出结果的传感器名称上。所以我们要在nsat的末尾加上我们自己的传感器:

GF1 PMS1

GF1 PMS2

GF1 WFV1

GF1 WFV2

GF1 WFV3

GF1 WFV4

GF2 PMS1

GF2 PMS2

SPOT5 HRG

我加了8个字符串。注意保持字符串长度和之前的字符串长度一致(包含空格17个字符),看到代码292行:

这里是nsat的定义,nsat(200)*17改为nsat(209)*17。

接下来,看到代码大约1319行,关于spectral conditions的说明,可以添加传感器的说明,添加编号(200-240),

这个编号是索引依据,大约1407行左右:

这个注释说明了不同传感器输入对应应该goto哪一个语句,把自己的传感器加进去。如果输入是200-225,则goto 165编号的GF1行。如果输入是226-235,则goto 166编号GF2的行。如果输入是236-240,则goto 167编号SPOT5的行。注意检查一下goto的编号是否已经存在了。 
这只是修改了注释,接下来修改代码。就在注释下方编号18的goto,观察一下就是与注释相对应的,我们把自己的传感器加在下方:

然后就是写编号为165、166、167的代码行了,在编号164的下方,稍微修改一下函数名就好,注意括号里的(iwave-199),而不是(iwave-200),这是保证输入参数波段号从1开始。

对mian.f的修改完成!

GF1波段26个,编号200-225

GF2波段10个,编号226-235

SPOT5波段5个,编号236-240

2. 制作传感器文件(SPOT5.f

下面制作传感器光谱响应文件。新建一个文件,取名为SPOT5.f,注意文件名和上一步call的函数名一致。 内容拿MODIS.f全部复制粘贴过来。

由于SPOT5有5个波段,所以定义sr需要5行,下面定义每一个波段上的光谱响应了。用excel很简单就能把光谱响应函数的光谱间隔差值到了2.5nm。

一行一行解释,首先注释行说明了起始波长和终止波长,下面是具体每一个波长上光谱响应值。注意每一行是1501列的,这个不能修改。因为6s中光谱范围是0.25-4um,间隔为0.0025um,所以有(4-0.25)/0.0025+1=1501个波长。7行的数据中第一项92*0说明这一行数据前92个数为0;最后一项1343 * 0说明最后1343个数为0。中间有66个光谱响应值,一共是92+1343+66=1501个波段。具体计算方法是:假定光谱响应的范围是(a,b),则前面的0计算方法是(a-250)/2.5,中间非零的计算方法是(b-a)/2.5+1;后面的0是(4000-b)/2.5。

按照上面的方法继续完成剩余的3个波段,最后需要修改各个波段的上下限:

3. 修改makefile

最后要修改一下makefile,很简单,打开makefile,在那一长串的字符最后加上我们的 GF1.o、GF2.o、SPOT5.o就OK了:

编译 即可

如果编译成功的话,就可以运行6s程序了,

output中可以看到我们自己加入的传感器波段名  以及大气校正的结果。

添加光谱响应还是很有比较的,比如实验结果表明,GF2的两个PMS传感器波段2的差异还是很小的,但与TM的对应波段还是有差距的,大气校正过程不建议近似替代。

Windows7 64位环境6sv2.1大气传输模型修改源码添加国产高分卫星GF-1 GF-2光谱响应支持的更多相关文章

  1. 64位下Hook NtOpenProcess的实现进程保护 + 源码 (升级篇 )

    64位下Hook NtOpenProcess的实现进程保护 + 源码 (升级篇 ) [PS: 如果在64位系统下,出现调用测试demo,返回false的情况下,请修改Hook Dll的代码] glhH ...

  2. Windows7 64位环境下Python-igraph环境配置

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 其实配置很简单,但是网上的几个都不咋靠谱.而且我本身对这个软件挺感兴趣.igraph是一个网络 ...

  3. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...

  4. ubuntu14.04 64位系统下编译3.13.11内核源码

    该过程一共分为四步: 1.下载内核:我下载的是3.13.11这个版本的内核! 2.解压内核:我将其解压/home/jello/Downloads/linux-3.13.11目录下!下文将会基于此目录编 ...

  5. Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

    Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...

  6. 装numpy 环境:python3.4+ windows7 +64位系统

    机器学习实战python 因为图像处理的原因,初步学习机器学习,选用语言python,参考书籍<机器学习实战> 环境:python3.4+ windows7 +64位系统 首先,今天解决的 ...

  7. Windows7 64位安装配置Apache2.4+PHP5.4+MySQL5.5+Xdebug

    PHP更新已经到了5.4.7了,之前是用PHPstudy安装的PHP5.2.13版本,今天有空,就把之前的集成安装卸载了.换上了新一代PHP,记录一下.. 环境:Windows7 64位(内部版本76 ...

  8. Windows7 64位机上Emgu CV2.4.2安装与配置

    Windows7 64位机上Emgu CV2.4.2安装与配置         分类:             Emgu CV              2012-11-28 17:22     92 ...

  9. PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验

    PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验 一.问题现象及解决方法 现象: 1.PL/SQL 无法登录64位数据库 2.在PL/SQL ...

随机推荐

  1. 【分享】【原创开源应用第4期】给ili9488,RA8875类显示屏的emWin底层增加DMA加速方案

    说明:1.emWin底层中最重要的一个优化就是16bpp绘制,特此为其增加DMA加速,已经支持RA8875和ili9488.2.使用中务必将emWin任务设置为除了空闲任务,统计任务以外的最低优先级, ...

  2. [Swift]LeetCode659. 分割数组为连续子序列 | Split Array into Consecutive Subsequences

    You are given an integer array sorted in ascending order (may contain duplicates), you need to split ...

  3. [Swift]LeetCode763. 划分字母区间 | Partition Labels

    A string S of lowercase letters is given. We want to partition this string into as many parts as pos ...

  4. python之zipfile

    1 简述 zip文件是一个常用的归档和与压缩标准. zipfile模块提供了创建.读取.写入.添加及列出zip文件的工具. zipfile里有2个非常常用的class,分别是Zipfile和ZipIn ...

  5. 被BAT疯抢的工程师,都是怎么拿到50万年薪Offer的?

    许多工程师换工作常会出现这种情况:工作能力和潜力都不错,却在面试时无法充分地表现自己,铩羽而归.据拉勾数据调研显示,约有80%的工程师简历通不过初筛,进入终面的不到5% . 技术面试到底应该如何准备? ...

  6. Pycharm、IDEA等汉化教程

    本汉化教程对jetbrains全系列可用:IDEA.Pycharm.WebStorm.phpstorm.AndroidStudio.GoLand.RubyMine.CLion 此汉化无副作用,绝对安全 ...

  7. Docker 下载镜像

    文章首发个人网站: https://www.exception.site/docker/docker-pull-image 本文中,我们将需要学习 Docker 如何下载镜像? 一.前言 大家都知道, ...

  8. CDN边缘节点容器调度实践(上)

    又拍云容器云是基于 Docker 的分布式计算资源网,节点分散在全国各地及海外,提供电信.联通.移动和多线网络,融合微服务.DevOps 理念,满足精益开发.运维一体化,大幅降低分布式计算资源构建复杂 ...

  9. Java接口的实例应用:致敬我的偶像——何塞·穆里尼奥

    文/沉默王二 曹操在<短歌行>中为杜康酒打过一个价值一亿个亿的广告——“何以解忧,唯有杜康”,我替曹操感到惋惜的是他本人并不会收到这笔不菲的代言费.想一想,要是三国时期的明星人物们有这个代 ...

  10. webdav 概览

    webdav 概览 WebDav(Web Distributed Authoring and Versioning) 是一个控制远端Web资源的协议,它基于HTTP1.1.它的定义在RFC 4918( ...