Windows系统LibRadtran安装
- 1.简介
- 1.1官网下载
- 1.2依赖环境
- 1.3 Cygwin64 介绍及安装
- 2.安装
- 2.1安装依赖的环境
- 2.2编译
- 3.可能遇到的错误
- 3.1 错误1
- 3.2 错误2
- 4.使用教程
1.简介
LibRadtran(Library for Radiative Transfer)是一个用于计算太阳和热辐射在大气中传输的软件包。它广泛应用于气象学、气候研究、遥感以及其他涉及大气辐射传输的领域。LibRadtran 由一组广泛的工具和模型组成,能够模拟多种大气条件和地表特性对辐射传输的影响。
LibRadtran安装相对来说比较简单,只要把以来的软件或者包安装好就可以。
1.1官网下载
https://www.libradtran.org/doku.php?id=download选择最新版或者旧版本进行下载。
1.2依赖环境
这里的依赖环境必须安装,否则编译无法通过。
1.3 Cygwin64 介绍及安装
Cygwin64 是一个在 Windows 操作系统上模拟类 Unix 环境的软件工具。它提供了一个兼容层,使得原本设计在 UNIX 系统上运行的应用程序能够在 Windows 上编译和运行。Cygwin 主要通过提供一个丰富的 POSIX API 功能集来实现这一点,包括各种命令行工具和程序,这些通常只在 UNIX 或 Linux 系统中可用。
因为LibRadtran需要在Linux或者UNIX系统进行编译,如果你正好擅长这两种系统,这篇博文不适合你。如果是在Windows系统编译使用LibRadtran,我们首先安装Cygwin64 ,在Cygwin64 中来编译LibRadtran,生成可在Windows系统使用的执行程序即可。
Cygwin64 的安装可以参考我的另一篇博文Cygwin及Wget安装根据博文中的内容安装gfogran,因为编译LibRadtran是需要fotran环境的。
2.安装
2.1安装依赖的环境
这一步,我们已经安装好Cygwin了。使用Cygwin安装依赖的软件或包。
安装:libnetcdf-devel(开发库)和netcdf(运行时库)
安装:MPI
安装:Perl、Flex和Lex:这些工具通常用于处理脚本和代码生成。
安装:GSL库,通过Cygwin查找并选择 libgsl0(运行时库)和 libgsl-devel(开发库)以及libgsl-dev(开发库)和 libgsl23(运行时库)。
安装m4: Cygwin 安装器,搜索 m4,选择它,然后继续安装过程。
安装 :tar ,Cygwin搜索 tar安装
安装:make
总之,编译的时候缺什么,就使用Cygwin 安装什么。Cygwin 的安装程序可以重复双击打开,选择自己需要的包进行安装即可。
2.2编译
编译很简答,官网有教程。
步骤1:解压libRadtran-2.0.5,随便用什么解压软件都可以。解压后我的安装包所在路径为:D:\ICESat-2\20231226\libRadtran-2.0.5\libRadtran-2.0.5
,接下来会使用。
步骤2:打开Cygwin,输入命令
$ cd /cygdrive/d/ICESat-2/20231226/libRadtran-2.0.5/libRadtran-2.0.5
把当前工作目录定位到解压后的软件包
步骤3:输入命令
./configure
这一步是最容易出问题的,如果遇到错误,请看本博文最后一部分内容。
成功
步骤4:输入命令
make
测试5:输入命令,检查是否编译成功,可以看到运行结果正确。
make check
3.可能遇到的错误
3.1 错误1
make[1]: Leaving directory '/cygdrive/d/ICESat-2/20231226/libRadtran-2.0.5/libRadtran-2.0.5/src_py'
make[1]: Entering directory '/cygdrive/d/ICESat-2/20231226/libRadtran-2.0.5/libRadtran-2.0.5/libsrc_c'compiling allocnd.ccompiling ascii.ccompiling bandec.ccompiling cdisort.ccompiling cnv.ccompiling common_math.c
make[1]: *** No rule to make target '/opt/local/include/netcdf.h', needed by 'triangle_surface.o'. Stop.
make[1]: Leaving directory '/cygdrive/d/ICESat-2/20231226/libRadtran-2.0.5/libRadtran-2.0.5/libsrc_c'
make: *** [Makefile:39: all] Error 2
解决步骤:
确认 NetCDF 库的安装位置。需要确定 netcdf.h 头文件在的系统中的实际位置。在 Cygwin 中,可以使用 find 命令来搜索这个文件:
find / -name netcdf.h 2>/dev/null
检查环境变量:确保环境变量 CPATH 和 LIBRARY_PATH 包含 NetCDF 头文件和库文件的路径。这可以通过以下命令设置(命令中的路径是上面这个命令找到的路径):
export CPATH=$CPATH:/actual/path/to/netcdf/include
export LIBRARY_PATH=$LIBRARY_PATH:/actual/path/to/netcdf/lib
如果还不行,试试下面,通常这涉及到修改如 CPPFLAGS 和 LDFLAGS 的变量:
export CPPFLAGS="-I/usr/include $CPPFLAGS"
export LDFLAGS="-L/usr/lib $LDFLAGS"
这里假设 NetCDF 的头文件位于 /usr/include,库文件位于 /usr/lib,请根据的实际安装路径调整。
3.2 错误2
rm -f ../lib/libRadtran_f.a
make[1]: Leaving directory '/cygdrive/d/ICESat-2/20231226/libRadtran-2.0.5/libRadtran-2.0.5/libsrc_f'
make[1]: Entering directory '/cygdrive/d/ICESat-2/20231226/libRadtran-2.0.5/libRadtran-2.0.5/src'
flex -o uvspec_lex.c ../src_py/uvspec_lex.l
gawk 'NF==2{print "#define "$1" "$2}' sbtaugas.param > sbtaugas.h
make[1]: *** No rule to make target '/opt/local/include/gsl/gsl_math.h', needed by 'angres.o'. Stop.
make[1]: Leaving directory '/cygdrive/d/ICESat-2/20231226/libRadtran-2.0.5/libRadtran-2.0.5/src'
make: *** [Makefile:39: all] Error 2
现在遇到的问题是编译过程中缺少 gsl_math.h,这是 GNU Scientific Library(GSL)的一部分。错误信息显示编译器试图在 /opt/local/include/gsl 目录下找到这个文件,但显然这个路径在的系统上不正确或者 GSL 未安装在该位置。
确认 GSL 的安装,需要确认 GSL 是否已经安装在的系统上。使用以下命令查找 gsl_math.h:
find / -name gsl_math.h 2>/dev/null
配置 GSL 路径,
export CFLAGS="-I/path/to/gsl/include $CFLAGS"
export LDFLAGS="-L/path/to/gsl/lib $LDFLAGS"
既然已经找到了 gsl_math.h 文件的位置在 /usr/include/gsl/gsl_math.h,我们可以确认 GNU Scientific Library(GSL)已正确安装,并且知道了它的具体路径。现在的任务是确保 LIBRADTRAN 在编译时能正确找到这个头文件。
4.使用教程
使用教程见另一篇博文:LibRadtran使用教程。