爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 19505|回复: 30

RTTOV使用心得

[复制链接]

新浪微博达人勋

发表于 2019-3-30 22:36:04 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 暮雪千山 于 2019-3-31 09:40 编辑

最近折腾了下RTTOV,稍微有点心得,打算开个帖子分享下,就当学习笔记了。。之前一直在用MODTRAN,以及4A,但是这两个都是逐线计算的模型,速度上比较慢。。相比之下,RTTOV快了不要太多,很适合做业务。。以下内容可能不一定完全正确,欢迎批评指正。

RTTOV的安装基本是按照https://www.jianshu.com/p/1c2a771a2eca  还有https://www.jianshu.com/p/ba81ce2ca81e来的。 不过中途 HDF5安装的时候出了点问题:、Fatal Error: cant open module file 'hdf5.mod' for reading
家园里面有人给出了解决方法,http://bbs.06climate.com/forum.php?mod=viewthread&tid=67060 可以参考这个帖子解决。如果没有这个问题可以跳过。。

以下是自学RTTOV的历程。。
【1】RTTOV的手册
RTTOV的使用,搜了好久都没找到啥像样的中文帮助文档,所以只能翻翻RTTOV自带的手册。建议使用RTTOV之前先把他自带的手册多看几遍吧,帮助还是挺大的。。RTTOV可以借助f2py用python调用RTTOV的函数执行模拟,有熟悉python的可以到附件下载我从Git上下的别人的代码。
【2】RTTOV自带的示例代码
  RTTOV的调用是这样的,在rttov/src/test/文件夹里面存的都是示例代码的F90代码,不懂FORTRAN也没关系放心打开没那么吓人,,首先打开example_fwd.F90这个文件,这是一个最简单的调用RTTOV模拟晴空的例子。  
  上面example_fwd.F90 里面有以下几个的步骤:
   a. 读取系数文件.每个传感器都有对应的系数文件,这是根据逐线计算模型模拟的结果,拟合得到的系数。系数文件存储在rttov/rtcoef_rttov12文件夹里面。
   b. 设置RTTOV options。比如是否考虑太阳辐射,是否插值廓线,是否考虑云层,是否考虑某些气体等等。。
   c. 读取廓线文件(气压,温度,湿度,地表温度,地表2m的温度和气压【很重要的哦】,传感器的观测几何,太阳的观测几何等)
   d.设置地表发射率(红外),反射率(短波)
   e.调用RTTOV的函数,rttov_direct,运行RTTOV。
   f.运行结果输出(各波段的亮温度,透过率,辐射等)
上面的example_fwd.F90只是一个简单的例子,我们自己可以根据这个例子,修改修改就成了自己的了。。但是!!修改后的例子,只是改了个代码,还需要进行编译。。在rttov/src/test/有个Makefile_eaxmples,修改这个文件,然后利用 make -f Makefile_examples来编译你修改或者新建的文件,这个被编译的文件在rttov/bin/文件夹下可以找到相应的exe、、如何调用这个exe呢?很简单,rttov/rttov_test/文件夹下面很多.sh脚本,打开run_example_fwd.sh,里面的代码设置了传感器系数的名字,路径,模拟的传感器通道,等等,最关键的一句代码就是 $BIN_DIR/example_fwd.exe<<EOF以及下面的传入参数,这个就是脚本调用exe,执行模拟的关键代码。。至于下面的部分,主要是跟参考文件对比的代码可以删了,毕竟我们不需要跟参考数据比较。。

总结一下:RTTOV的例子代码以源代码某*.F90的形式存储在rttov/src/test/文件夹下面,同一个文件夹下还有相应的makefile文件,负责编译这些F90源码得到某.exe。而在rttov/rttov_test/ 是脚本文件,负责传入参数并调用编译后的某.exe,某.exe的作用就是调用RTTOV执行模拟(模拟内容主要在F90代码里面自定义),并输出结果。

RTTOV虽然是快速辐射传输模型,但是精度也还是挺高的,贴一张RTTOV模拟的AHI透过率和modtran的对比图:
QQ截图20190330222330.jpg

目前遇到的一些需要注意的小问题:
1,关于朗伯地表设置:The option of Lambertian reflection is now possible in the MW and the IR. To invoke Lambertian reflection set the opts%rt_all%do_lambertian flag to true. 对我来说这是一个挺重要的设置 Orz
2,廓线的层数问题,以及近地面参数的设置。。另外RTTOV好像不需要设置温度,湿度对应的高度,只需要输入对应的气压,所以设置2m的气压很重要。。

rttovPythonScripts-master.zip

91.1 KB, 下载次数: 86, 下载积分: 金钱 -5

【输入输出等等的介绍】NWPSAF-MO-DS-029_Prod_Spec_RTTOV12.pdf

74.65 KB, 下载次数: 97, 下载积分: 金钱 -5

【用户手册】users_guide_rttov12_v1.2.pdf

38.76 MB, 下载次数: 155, 下载积分: 金钱 -5

rttov-quick-start.pdf

191.93 KB, 下载次数: 43, 下载积分: 金钱 -5

rttov-wrapper.pdf

605.15 KB, 下载次数: 39, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-4-10 19:02:03 | 显示全部楼层
啊不是不是,我这还没完成.exe的生成,就是在make那一步之后在命令行里它不是就让填这些文件名吗,enter the name of ......, 我也很奇怪来着,这些文件应该是之后在.sh脚本里设置啊,请问您是 make -f Makefile_examples 之后就直接生成.exe了?
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

发表于 2019-4-1 10:27:41 | 显示全部楼层
兄弟,你这张图的精度是指的啥意思呢,每根廓线不应该只有一个值么
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-4-1 11:57:27 | 显示全部楼层
jjpzhzz 发表于 2019-4-1 10:27
兄弟,你这张图的精度是指的啥意思呢,每根廓线不应该只有一个值么

3000多个廓线的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-1 14:23:51 | 显示全部楼层
E:\捕获.PNG
3000多个廓线的数据文件是咋写的呢,就是根据prof.dat编写么?这样文件好长呀,并且不同位置上的每条廓线的太阳方位角和卫星的方位角是如何确定的呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-1 14:26:08 | 显示全部楼层
jjpzhzz 发表于 2019-4-1 14:23
3000多个廓线的数据文件是咋写的呢,就是根据prof.dat编写么?这样文件好长呀,并且不同位置上的每条廓线 ...

咦,prof.dat的截图咋没传上来
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-4-1 14:44:15 | 显示全部楼层
jjpzhzz 发表于 2019-4-1 14:23
3000多个廓线的数据文件是咋写的呢,就是根据prof.dat编写么?这样文件好长呀,并且不同位置上的每条廓线 ...

都写到prof.dat里面。具体参考自带的pro.dat以及example_fwd.F90里面读取廓线的代码。。卫星的角度和太阳的角度根据你的需求确定。。手册里面说了,可以在F90里面自己写廓线读写的程序,也不一定拘泥于文本文件存放廓线数据。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-1 15:21:20 | 显示全部楼层
暮雪千山 发表于 2019-4-1 14:44
都写到prof.dat里面。具体参考自带的pro.dat以及example_fwd.F90里面读取廓线的代码。。卫星的角度和太阳 ...

好的,多谢啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-4-1 17:36:36 | 显示全部楼层

不客气~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-10 17:53:52 | 显示全部楼层
请问make -f Makefile_examples之后,需要enter系数文件和prof.dat, 这里需要把两个文件和我的.F90文件放在同一个目录下吗,对它的提示(current direction)不太理解。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-4-10 18:47:53 | 显示全部楼层
zoe522 发表于 2019-4-10 17:53
请问make -f Makefile_examples之后,需要enter系数文件和prof.dat, 这里需要把两个文件和我的.F90文件放在 ...

执行make -f Makefile_examples 之后, .F90源码编译完之后会在bin文件夹里面有对应的exe,调用的时候已经跟F90源码文件没有关系了。。系数文件还有prof.dat的路径在脚本(.sh)里面定义,不需要跟源码放同一个目录。。在你用脚本调用编译的exe之前,prof.dat文件需要先准备好。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表