模式

RTTOV12.2 (Radiative Transfer fo

2018-08-30  本文已影响852人  _宇佐见莲子_
RTTOV环境搭建II

上一期的链接:RTTOV12.2 (Radiative Transfer for TOVS) 研究环境搭建(一)on WSL Ubuntu LTS 18.04


三. GUI环境的准备-F2PY

3.1 Miniconda

因为之后要用到RTTOV的GUI,配置python库包环境的最简单方法是使用Conda包管理机制,因此这里先配置一个基础的Conda环境, 安装的python版本为2.7.15

之所以使用python2,是因为目前环境的一些库对python3的支持有一些问题,相对来说用python2更加保险

之所以选用Miniconda, 只是因为节省微机的存储空间,就不用安装一些不必要的科学库了

Miniconda的官网:

https://conda.io/miniconda.html

下载到一个shell可执行文件:Miniconda2-latest-Linux-x86_64.sh

上传到子系统上添加可执行权限并执行

$ cd ~/.Miniconda
$ chmod +x Miniconda2-latest-Linux-x86_64.sh
$ ./Miniconda2-latest-Linux-x86_64.sh

进入文字交互界面后按照提示安装即可

最后可以按照交互界面直接把Conda的可执行文件目录添加到环境变量PATH中, 否则接下来无法直接使用conda命令

不要忘记source一下

$ source ~/.bashrc

想要简要了解conda包管理的方法可以参考一下知乎上的这篇专栏, 概括得比较全面

https://zhuanlan.zhihu.com/p/22678445

进入base环境

$ conda info -e
$ source activate base

退出base环境只需

$ source deactivate

base环境是conda包管理的基础环境,还可以创建其他环境,这个环境的python版本取决于你安装的是Miniconda2 还是 Miniconda3. 需要指出的是:Miniconda 2也可以创建新的python3环境,只需要在创建新环境时指定python的版本即可。

为了方便起见,接下来笔者就直接用这个base环境管理RTTOV的GUI环境搭建了, 环境中已经有的python库包可以用以下命令查看

$ conda list

可以看到 pip/wheel 等一些基础库包已经预先安装好了


miniconda2.PNG

3.2 F2PY

F2PY 的官网:

https://sysbio.ioc.ee/projects/f2py2e/

如果之后要配置GUI环境,RTTOV编译时必须要依赖F2PY编译

F2PY 目前是python著名的科学计算包 numpy 的一个模块, 全称为Fortran to Python interface generator,也就是一种造轮子的工具:把Fortran写成的代码编译成可供python调用的动态链接库, 弥补python的矩阵运算效率低下的缺陷。类似的还有Cython, 有兴趣的读者可以了解下。

具体的安装方法如下:

首先安装numpy, 注意要先进入base环境

$ conda install numpy

现在可以测试以下f2py安装得是否正确
可以参照一篇文章进行测试:

https://blog.csdn.net/rumswell/article/details/7377339

有一点要注意, 因为事实上F2PY是一种编译工具, 所以之前配置NETCDF时配置过的 CPPFLAGS LDFLAGS 务必要去掉, 否则测试编译时的依赖库会报错

可以用echo查看环境变量, 如果不为空设置为空

$ echo $CPPFLAGS
$ echo $LDFLAGS

测试成功,F2PY就成功安装了


f2py.PNG

好的, 接下来,我们先安装RTTOV, 最后配置GUI

四 RTTOV的编译安装

RTTOV解压后没有顶层文件夹,大家注意一下,先建一个文件夹放置解压后的内容

$ mkdir rttov12
$ tar -zxvf rttov122.tar.gz -C rttov12/
$ sudo mv rttov12/ /usr/local/

我们来看一下users-guide里对编译安装的介绍:

compiling the code.PNG

重点关注以下几点:

OK,了解之后开始操作吧

4.1 修改 build/Makefile.local

$ vim build/Makefile.local

主要修改HDF5块和NETCDF块以下内容

HDF5_PREFIX  = /usr/local/hdf5
FFLAGS_HDF5  = -D_RTTOV_HDF $(FFLAG_MOD)$(HDF5_PREFIX)/include
LDFLAGS_HDF5 = -L$(HDF5_PREFIX)/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5
NETCDF_PREFIX  = /usr/local/NETCDF
FFLAGS_NETCDF  = -D_RTTOV_NETCDF -I$(NETCDF_PREFIX)/include
LDFLAGS_NETCDF = -L$(NETCDF_PREFIX)/lib -lnetcdff

实质上是指明库的依赖关系, 笔者的NETCDF 版本是4.4, 因此选择 4.2 and later 进行注释


RTTOV lib.PNG

4.2 编译 RTTOV

修改完成后,按照说明用脚本执行编译, 注意脚本要在src/目录下执行

$ cd src/
$ ../build/rttov_compile.sh
rttov_compile.PNG

确认配置后执行脚本即可

4.3 测试 RTTOV

编译完成后,我们可以使用RTTOV自带的测试模块测试一下RTTOV是否正确地安装了
看一下users-quick-start.pdf中的描述:


Verifying.PNG

测试

$ cd rttov_test/
$ ./test_rttov12.sh ARCH=gfortran
test result.PNG

测试结果一切正常,就可以说RTTOV的本体已经安装成功了
这个测试的结果保存在目录 rttov_test/test_rttov12.1.gfortran/下,有兴趣的读者可以先大致看看模拟结果

好, 下一步就是配置GUI了

五. GUI环境的配置

5.1 GUI依赖包安装

GUI环境的配置主要参考官方文档:rttov_gui_12.pdf

gui_installation.PNG

主要要关注以下几点:

剩下注意事项装完依赖库以后再说

$ conda install scipy matplotlib h5py wxpython

装完以后用 conda list 命令查看以下包版本发现有问题

h5py version.PNG wxpython version.PNG

文档中要求
wxpython==2.9.5||3.0.0
h5py>=2.0

其中 wxpython 版本过高,需要降级

$ conda install wxpython=3.0.0

降级后符合要求


wxpython version new.PNG

5.2 修改 gui/rttov_gui.env文件

vim gui/rttov_gui.env

因为我们使用conda环境搭建, 只需要修改以下内容

RTTOV_GUI_PREFIX=/usr/local/rttov12/gui   # absolute path to the rttov/gui directory e.g. /home/user/rttov12/gui

接下来就可以测试GUI了, 别忘了启动你的Xming, 并设置好环境变量 DISPLAY的值,见环境搭建第一期

$ source gui/rttov_gui.env
$ cd gui
$ ./rttovgui

这时遇到了一点问题:显示wx库无法导入,因为缺少一个叫做libgtk-x11-2.0.so.0的动态链接库

Import Error.PNG

参考stackoverflow上的解决方案:

https://unix.stackexchange.com/questions/186347/error-while-loading-shared-libraries-libgtk-x11-2-0-so-0-cannot-open-shared-o
需要安装包libgtk2.0-0

$ sudo apt-get libgtk2.0-0

再运行还有报错, 那就再装一个库

ImportError: libSM.so.6: cannot open shared object file: No such file or directory

$ sudo apt-get install -y python-qt4

重新尝试,启动成功

GUI_success.PNG

具体操作见GUI文档, 可以显示廓线、模拟结果等等

profile.PNG

RTTOV 安装这个坑算是填上了, 接下来一期是ARTS数据库和RTTOV的接口介绍, 有空也会讲讲RTTOV中的一些基本概念


reference:

https://conda.io/miniconda.html
https://zhuanlan.zhihu.com/p/22678445
http://www.hedilict.com/f2py%E7%9A%84%E9%85%8D%E5%88%B6%E4%B8%8E%E4%BD%BF%E7%94%A8-windows-and-linux-platform/
https://blog.csdn.net/rumswell/article/details/7377339
https://unix.stackexchange.com/questions/186347/error-while-loading-shared-libraries-libgtk-x11-2-0-so-0-cannot-open-shared-o

上一篇下一篇

猜你喜欢

热点阅读