基于vis5d的WRF模式高维数据可视化

2020-04-21 16:28:29 浏览数 (1)

之前在介绍高维数据可视化时说过后面会说WRF模式后处理的高维可视化,这跳票一跳就是差不多一年半,今天从其Vis5d的角度说一下WRF模式的高维可视化。

vis5d是专门开发用来进行5维数据可视化的工具,接触WRF模式看到的第一个高维可视化图就是由vis5d完成的。vis5d无法直接处理netcdf格式文件,需要借助第三方工具将nc文件处理成vis5d可以接受的格式,比如.v5d格式。

早些时候ARWPost可以将WRF模式结果处理成v5d的格式,但是后来更新将此功能删除了,这是因为出现了更好的高维数据可视化工具,这些在之前也都介绍过一些。除了ARWPost之外,我们还可以利用wrf2vis5d工具进行格式转换。

wrf2vis5d是专门进行WRF和vis5d格式转换的工具,其依赖于vis5d,在编译wrf2vis5d之前,要先安装vis5d。

vis5d安装

从官网下载安装包,然后解压:

代码语言:javascript复制
tar -zxvf vis5d-5.1.tar.Z

编译:

代码语言:javascript复制
make

一般可以选择

代码语言:javascript复制
make linux-opengl

执行上述编译操作后,开始分块编译,根据错误提示,找到 lui5 文件夹,修改其中的 Makefile中对应的 linux部分编译选项。

可以更改gccicc,并删除-m486选项,然后继续编译,碰到类似问题继续更高相应的选项。或者批量修改。

需要修改 lui5, src, util,import中的 Makefile,对应linux或者linux-opengl的编译选项。

编译完成之后,就可以编译wrf2vis5d:

代码语言:javascript复制
tar -zxvf wrf2vis5d.tar.gz
cd WRF2VIS5D/

修改Makefile中部分编译选项并拷贝/链接netcdf.inc到WRF2VIS5D路径下:

代码语言:javascript复制
LIBNETCDF =-L/usr/local/netcdf/lib -lnetcdf-lm   # netcdf lib路径
LIBVIS5D =/usr/local/vis5d/src/binio.o /usr/local/vis5d/src/v5d.o   # vis5d库路径
INCLUDE =-I/usr/local/netcdf/include -I./   # netcdf include路径
FC =f90   # 编译器选项
FCFLAGS =-g-C-free

然后执行编译选项:

代码语言:javascript复制
make

wrf_v5d_inputwrf_to_v5d的参数控制文件,类似WRF模式的namelist文件:

代码语言:javascript复制
-1! number of times to put invis5d file, negative means ignore the times
2000-01-24_18:00:00
U     ! variable list forvis5d file, indent one space to skip
V     ! first five inlist are special variables (diagnosed)
W
THETA
TK
TC
QVAPOR
QCLOUD
QRAIN
RAINC
TSK
end_of_variable_list
wrfout_d01_000000 ! data files to pull fields from
end_of_file_list
-1! specify v5d vertical grid  0=cartesian, -1=interp to z from lowest h, >1 list levels (z) desired invis5d file
11.
22.
33.
44.
55.
66.
77.
88.
99.
1010.

end_of_variable_listend_of_file_list 之间为需要处理的netcdf文件,可以是多个,顺序列出即可。不需要处理的变量可删除或者变量名前留空格

执行以下命令进行格式转换

代码语言:javascript复制
wrf_to_v5d wrf_v5d_input wrf.v5d

然后就可以将wrf.v5d作为vis5d的输入,进行高维数据可视化处理了。下图是处理结果。

0 人点赞