Windows7 64位环境6sv2.1大气传输模型修改源码添加国产高分卫星GF-1 GF-2光谱响应支持
下面开始添加国产卫星光谱响应的支持:
以下主要参考文章“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光谱响应支持的更多相关文章
- 64位下Hook NtOpenProcess的实现进程保护 + 源码 (升级篇 )
64位下Hook NtOpenProcess的实现进程保护 + 源码 (升级篇 ) [PS: 如果在64位系统下,出现调用测试demo,返回false的情况下,请修改Hook Dll的代码] glhH ...
- Windows7 64位环境下Python-igraph环境配置
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 其实配置很简单,但是网上的几个都不咋靠谱.而且我本身对这个软件挺感兴趣.igraph是一个网络 ...
- 64位centos 下编译 hadoop 2.6.0 源码
64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...
- ubuntu14.04 64位系统下编译3.13.11内核源码
该过程一共分为四步: 1.下载内核:我下载的是3.13.11这个版本的内核! 2.解压内核:我将其解压/home/jello/Downloads/linux-3.13.11目录下!下文将会基于此目录编 ...
- Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)
Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...
- 装numpy 环境:python3.4+ windows7 +64位系统
机器学习实战python 因为图像处理的原因,初步学习机器学习,选用语言python,参考书籍<机器学习实战> 环境:python3.4+ windows7 +64位系统 首先,今天解决的 ...
- Windows7 64位安装配置Apache2.4+PHP5.4+MySQL5.5+Xdebug
PHP更新已经到了5.4.7了,之前是用PHPstudy安装的PHP5.2.13版本,今天有空,就把之前的集成安装卸载了.换上了新一代PHP,记录一下.. 环境:Windows7 64位(内部版本76 ...
- Windows7 64位机上Emgu CV2.4.2安装与配置
Windows7 64位机上Emgu CV2.4.2安装与配置 分类: Emgu CV 2012-11-28 17:22 92 ...
- PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验
PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验 一.问题现象及解决方法 现象: 1.PL/SQL 无法登录64位数据库 2.在PL/SQL ...
随机推荐
- JQuery实现 图片上传
用到的文件,我都已经打包好了,自行下载: https://files.cnblogs.com/files/lguow/lib.rar 核心代码如下: <input type="hidd ...
- 老司机带路:《axios从入门到开车 嘀嘀~~》
前言:axios vue.axios 跨域.axios.js.axios get.axios post.axios中文文档 之前当vue更新到2.0之后,作者就宣告不再对vue-resource更新, ...
- 漫画:什么是HTTPS?
什么是HTTP协议? HTTP协议全称Hyper Text Transfer Protocol,翻译过来就是超文本传输协议,位于TCP/IP四层模型当中的应用层. HTTP协议通过请求/响应的方式,在 ...
- [SQL]LeetCode185. 部门工资前三高的员工 | Department Top Three Salaries
SQL 架构 Create table If Not Exists Employee (Id ), Salary int, DepartmentId int) Create table If Not ...
- [SQL]LeetCode197. 上升的温度 | Rising Temperature
SQL架构 Create table If Not Exists Weather (Id int, RecordDate date, Temperature int) Truncate table W ...
- [Swift]LeetCode304. 二维区域和检索 - 矩阵不可变 | Range Sum Query 2D - Immutable
Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper lef ...
- [SQL]LeetCode595. 大的国家 | Big Countries
SQL架构 Create table If Not Exists World (name varchar(), continent varchar(), area int, population in ...
- [Swift]LeetCode836. 矩形重叠 | Rectangle Overlap
A rectangle is represented as a list [x1, y1, x2, y2], where (x1, y1) are the coordinates of its bot ...
- [Swift]LeetCode976. 三角形的最大周长 | Largest Perimeter Triangle
Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero area, ...
- 为什么大一先要学C语言(面向过程)再学C++或JAVA(面向对象)?
面向对象和面向过程各有千秋 一.面向过程与面向对象对比 面向过程:强调的是每一个功能的步骤,有很多很多方法组成,这些方法相互调用,完成需求. 面向对象:强调的是对象,然后由对象去调用功能. 面向过程 ...