WRF和WPS模型在Ubuntu系统上的安装与常见问题解决指南
2026/4/6 14:29:42 网站建设 项目流程
1. WRF和WPS模型简介WRFWeather Research and Forecasting模型是一个广泛应用于气象研究和业务预报的中尺度数值天气预报系统。它由美国国家大气研究中心NCAR等多个机构联合开发能够模拟从全球尺度到云尺度的各种天气现象。WPSWRF Preprocessing System则是WRF的前处理系统主要负责处理静态地理数据、气象初始场和边界条件数据。这两个模型在气象、环境、航空等领域都有重要应用。比如气象局用来做天气预报环保部门用来模拟污染物扩散电力公司用来预测风电功率。我自己第一次接触WRF是在研究生阶段做台风路径预测的项目当时就被它强大的模拟能力震撼到了。在Ubuntu系统上安装WRF和WPS主要有几个优势首先Ubuntu作为Linux发行版对科学计算支持很好其次开源免费不用像Windows那样考虑授权问题最重要的是性能表现更稳定特别是处理大规模计算时。不过安装过程确实会遇到不少坑接下来我就把实战经验完整分享给大家。2. 安装前的准备工作2.1 系统环境要求建议使用Ubuntu 18.04 LTS或20.04 LTS版本这两个版本我都实测过比较稳定。硬件方面至少需要4核CPU、8GB内存和50GB硬盘空间如果要跑高分辨率模拟配置要更高。我自己的工作站是16核32线程、64GB内存跑3km分辨率的区域模拟还算流畅。首先更新系统软件包sudo apt update sudo apt upgrade -y2.2 安装必要依赖库WRF和WPS需要一堆依赖库缺一个都会导致编译失败。这是我总结的必备清单sudo apt install -y gfortran gcc cpp m4 build-essential \ libtool automake autoconf curl flex bison \ libpng-dev libjasper-dev libnetcdf-dev \ libhdf5-dev libmpich-dev特别注意netCDF库的版本兼容性我遇到过4.7.4版本编译报错的情况后来换成4.7.3就正常了。如果遇到类似问题可以尝试指定版本安装sudo apt install libnetcdf-dev4.7.3-12.3 环境变量配置需要设置几个关键环境变量建议添加到~/.bashrc文件末尾export DIR/path/to/Build_WRF export WRFIO_NCD_LARGE_FILE_SUPPORT1 export NETCDF/usr然后执行source ~/.bashrc使配置生效。这里有个坑要注意路径中不要包含中文或空格否则编译时会报找不到文件的错误。3. WRF模型安装详解3.1 下载和解压源码建议在用户目录下创建专门的工作目录mkdir -p ~/Build_WRF cd ~/Build_WRF下载WRF源码以4.0版本为例wget https://www2.mmm.ucar.edu/wrf/src/WRFV4.0.TAR.gz tar -zxvf WRFV4.0.TAR.gz cd WRF如果下载速度慢可以尝试国内的镜像源比如清华大学的镜像。我曾经遇到过下载到一半中断的情况这时可以用wget -c命令断点续传。3.2 配置编译选项执行配置命令./configure这时会出现交互式选项选择34GNU gfortran/gcc编译器 dmpar并行选择1basic基础配置这里有个经验之谈如果是第一次安装建议选择基础配置。等熟悉后再尝试嵌套网格等高级功能。我曾经为了追求性能选了嵌套网格配置结果编译了3个小时最后报错白白浪费时间。3.3 编译和验证开始编译这个过程比较漫长./compile em_real log.compile tail -f log.compile可以用top命令查看编译进程。如果CPU占用率一直很低可能是并行编译没生效可以尝试export J-j$(nproc)设置并行线程数。编译完成后检查是否成功ls -ls main/*.exe应该看到4个可执行文件real.exe、wrf.exe等。如果缺少某个文件可以去log.compile里搜索错误信息。我遇到过最常见的问题是内存不足导致编译中断这时可以尝试增加swap空间。4. WPS模型安装指南4.1 获取并解压源码回到Build_WRF目录cd ~/Build_WRF wget https://www2.mmm.ucar.edu/wrf/src/WPSV4.0.TAR.gz tar xzvf WPSV4.0.TAR.gz cd WPS4.2 关键文件修改必须修改intmath.f文件否则会缺少ungrib.exenano ungrib/src/ngl/g2/intmath.f找到以下两行进行修改! if(iand(i,i-1)/0) then → if(iand(i,i-1_2)/0) then ! if(iand(i,i-1)/0) then → if(iand(i,i-1_1)/0) then这个坑特别隐蔽我第一次安装时没注意结果后面处理数据时才发现ungrib.exe缺失不得不重新编译。建议修改后保存文件然后执行./clean清理之前可能存在的编译结果。4.3 配置和编译运行配置./configure选择1与WRF相同的配置开始编译./compile compile.log tail -f compile.log当屏幕输出停止滚动后按CtrlC终止。检查生成的exe文件ls -las *.exe应该看到geogrid.exe、ungrib.exe和metgrid.exe三个文件。如果缺少ungrib.exe八成是前面的intmath.f没改对。5. 常见问题解决方案5.1 编译错误排查遇到编译错误时建议按以下步骤排查检查log文件中的错误信息grep -i error log.compile确认所有依赖库都已正确安装检查环境变量设置是否正确清理后重新编译./clean我收集了几个典型错误Could not find netCDF → 检查NETCDF环境变量relocation truncated to fit → 编译时添加-fPIC选项segmentation fault → 可能是内存不足5.2 性能优化建议通过实测发现这些优化有效在configure时选择适合你CPU的架构如-dmsm调整namelist中的time_step参数使用SSD存储提升I/O性能关闭不必要的输出变量节省存储空间5.3 数据准备技巧静态地理数据下载wget https://www2.mmm.ucar.edu/wrf/src/wps_files/geog_high_res_mandatory.tar.gz tar -zxvf geog_high_res_mandatory.tar.gz气象数据建议使用GFS或ECMWF的再分析数据。处理大数据时可以先用wgrib2进行预处理能显著减少ungrib的处理时间。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询