气象互助社 发表于 2024-4-25 23:07:48

WRF模式使用NetCDF压缩格式,节约存储空间


使用WRF时,经常会涉及较长时间的模拟,此类情况下模拟产生的文件占用空间较大,如果储存资源比较有限,可以考虑编译时使用NetCDF的压缩格式,经测试使用压缩格式能节约50%以上的存储空间。


一、版本要求
netcdf-4.x系列支持压缩格式,netcdf-3.x系列不支持。WRFV3.5之后支持NetCDF4压缩格式,利用此压缩格式可节约约50%存储空间。


二、基础库编译安装
2.1 Zlib
export ZLIB=your_zlib_install_path
export LD_LIBRARY_PATH=$ZLIB/lib:$LD_LIBRARY_PATH
./configure --prefix=$ZLIB
make
make install
2.2 HDF5
export HDF5=your_hdf5_install_path
export PATH=$HDF5/bin:$PATH
export LD_LIBRARY_PATH=$HDF5/lib:$LD_LIBRARY_PATH
./configure --prefix=$HDF5CC=gcc FC=gfortran CXX=g++ --enable-fortran --enable-fortran2003 --enable-cxx--with-zlib=$ZLIB/lib
make(或者make -j 4 # 并行编译,4线程)
make install
2.3 NetCDF
NetCDF需要依赖于Zlib和HDF5,以便能够使用压缩格式。
export NETCDF=your_netcdf_install_path
export PATH=$NETCDF/bin:$PATH
export LD_LIBRARY_PATH=$NETCDF/lib:$LD_LIBRARY_PATH
./configure --prefix=$NETCDF CC=gcc FC=gfortran F77=gfortran CXX=g++ CPPFLAGS="-I$HDF5/include" LIBS="-L$HDF5/lib" --enable-netcdf4
make(或者make -j 4 # 并行编译,4线程)
make install

三、WRF编译
3.1 WRFV3.9的编译方法
安装WRF时,在configure和compile步骤之前,设置NETCDF4变量的值:
export NETCDF4=1
3.2 WRFV4.0的编译方法
执行./configure会自动识别出NETCDF4的压缩功能,但是configure文件中测试NETCDF的功能在部分环境中不支持,因此./configure之后仍然无法识别压缩格式。
需要做些修改configure文件:
vi configure
:set nu显示一下行号
将208行处的whereis改成which后保存退出




执行configure成功显示:



四、试验测试
4.1 试验配置
(1)区域:西北太平洋
(2)分辨率:24km   
(3)网格数:373×270   
(4)时间步长:120秒
(5)输入输出间隔:6h(共13个时次)
(6)模拟时长:72h



4.2 计算时间和空间对比


使用压缩格式不影响模拟结果,虽然会增加耗时,但会减少数据存储使用空间,应视计算时效性和存储资源的情况决定是否使用压缩格式。



文章来源于微信公众号:气海同途
页: [1]
查看完整版本: WRF模式使用NetCDF压缩格式,节约存储空间