师弟把方案选好了,实验跑完了,准备开始评估。第一步不是写评估脚本——是装环境。
他跑来问我:「师兄,wrf-python 装不上,cartopy 报错,METplus 到底怎么装?有没有一个从头到尾的安装流程?」
这篇就是回答这个问题。只讲一件事:把评估需要的所有 Python 包和 METplus 装好,且能跑通。
模式评估环境跟 WRF 运行环境是两回事。WRF 在超算上跑(Linux + Intel compiler + MPI),评估在本机做(macOS/Linux/WSL + Python + 观测数据),当然这是个人场景,也可超算上搭建环境评估,流程是一样的。两者不共用同一个 conda 环境:

image
组件 | 最低要求 | 推荐配置 |
|---|---|---|
CPU | 4 核 | 8 核以上 |
内存 | 8 GB | 32 GB |
磁盘 | 200 GB | 1 TB SSD |
操作系统 | Linux / macOS / WSL2 | Ubuntu 22.04+ |
关于 WSL:如果你是在 Windows 上用 WSL2,当前环境就是这种模式。WSL2 内核与原生 Linux 本质相同,所有安装命令完全一样。唯一要注意的就是——不要把任何数据和 conda 环境装在
/mnt/c/下面。跨文件系统访问(NTFS → ext4)有显著 I/O 损失。所有东西放在/home/你的用户名/下面。WSL 虚拟磁盘默认可能不足,如果空间不够,后面的「常见问题」有扩容步骤。回头看这个表格有点像steam的游戏推荐配置。
下面按顺序执行,每一步我都标注了装的是什么、为什么需要它。
# Linux / WSL2
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3
~/miniconda3/bin/conda init bash
exec bash
# macOS (Intel)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
bash Miniconda3-latest-MacOSX-x86_64.sh -b -p ~/miniconda3
# macOS (Apple Silicon)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
bash Miniconda3-latest-MacOSX-arm64.sh -b -p ~/miniconda3
conda create -n wrf_eval python=3.10 -y (更高版本也可)
conda activate wrf_eval
conda install -c conda-forge numpy scipy pandas -y
conda install -c conda-forge xarray netcdf4 h5py -y
conda install -c conda-forge wrf-python -y
wrf-python 是核心诊断包,提供超过 30 种诊断计算:cape_2d、cin_2d、dbz、slp、srhel、pw、tv……以及水平/垂直/剖面插值。它有一个 C 扩展,通过 pip 安装容易因编译器版本问题失败,推荐用 conda 装。
conda install -c conda-forge xskillscore -y
pip install scores
xskillscore 是 xarray 原生的评分库,直接对着 DataArray 算:pearson_r、rmse、mae、mse、fractions_skill_score。scores 是澳大利亚气象局开发的额外概率评分包(CRPS、Brier Score 等),按需装。
conda install -c conda-forge cartopy matplotlib -y
cartopy 负责地理投影和地图底图,matplotlib 负责画线画点。这两者配合出 WRF 降水空间分布图、CAPE 对比图、垂直剖面图。
conda install -c conda-forge cfgrib eccodes -y
ERA5 从 CDS 下载的原始格式是 GRIB,cfgrib 可以直接用 xarray 接口打开。eccodes 是底层解码库。
# 先装 MET C++ 核心
conda install -c conda-forge met -y
# 再装 METplus Python 封装
conda install -c conda-forge metplus -y
METplus 是 NCAR 下属 DTC 开发的行业标准验证工具。它包含:

image
工具名 | 作用 | 典型用法 |
|---|---|---|
grid_stat | 网格到网格全场对比 | WRF 降水 vs GPM |
point_stat | 网格到站点对比 | WRF 温度 vs 气象站 |
mode | 基于对流目标的验证 | 识别降水对象并比较质心/面积/强度 |
ensemble_stat | 集合预报评分 | 集合平均/离散度/CRPS |
series_analysis | 时间序列对比 | WRF vs 探空随高度变化 |
python -c "
import wrf, xarray, xskillscore, cartopy, cfgrib
import numpy, scipy, pandas, matplotlib, netCDF4
print('基础包 :', numpy.__version__, '|', scipy.__version__, '|', pandas.__version__)
print('网格数据 :', xarray.__version__, '|', netCDF4.__version__)
print('WRF诊断 : wrf-python', wrf.__version__)
print('评分工具 :', xskillscore.__version__)
print('地图绘图 :', cartopy.__version__, '|', matplotlib.__version__)
print('GRIB I/O : cfgrib 已加载')
print()
print('全部导入成功 ✅')
"
# 验证 METplus
python -c "import metplus; print('METplus:', metplus.__version__)"
which grid_stat && grid_stat --version 2>&1 | head -1
装完之后,每次使用前只需:
conda activate wrf_eval
然后在 Python 脚本里直接用上面的所有包。评估脚本怎么写,参考系列终篇。
1. wrf-python pip 安装失败
wrf-python 含 C 扩展,pip 编译极易因 setuptools 版本或编译器不一致而失败。解法很简单:不要用 pip,直接用 conda。
conda install -c conda-forge wrf-python -y
2. cfgrib 读 ERA5 报 KeyError
cfgrib 依赖 eccodes 索引库。旧版 eccodes 可能不识别 ERA5 某些参数:
conda install -c conda-forge eccodes=2.32.0 -y
3. cartopy 报 GeographicLib not found
cartopy 需要自然地球海岸线数据。conda 安装时通常是自动下载的,如果缺失:
conda install -c conda-forge cartopy_offlinedata -y
4. WSL 虚拟磁盘空间不足
WSL2 的 ext4 虚拟磁盘默认可能不够用(放几个 wrfout 就满了)。先检查:
df -h /
扩容在 Windows PowerShell(管理员)中:
wsl --shutdown
diskpart
# 在 diskpart 中:
select vdisk file="%USERPROFILE%\AppData\Local\Packages\XXXXX\LocalState\ext4.vhdx"
expand vdisk maximum=512000
detach vdisk
exit
XXXXX 是你的 WSL 发行版包名。扩容后在 WSL 内执行分区调整即可。
5. WSL 下图窗显示(WSLg)
如果在 WSL 里跑 plt.show() 不出图,先检查 WSLg:
echo $DISPLAY # 应输出 :0 或 :1
如果为空(旧版 Windows 10),装 VcXsrv 后在 WSL 中 export DISPLAY=$(hostname).local:0.0。不想看图窗的话,在脚本里把所有 plt.show() 改成 plt.savefig() 就行。
6. conda solver 缓慢(libarchive.so 报错)
安装时如果看到:
Error while loading conda entry point: conda-libmamba-solver
(libarchive.so.19: cannot open shared object file)
这不影响 conda 工作——回退到经典 solver 也能装,但很慢。修复:
conda install -n base conda-libmamba-solver -c conda-forge -y
师弟按这个流程装完,激活环境跑了个 import wrf; print('ok'),截屏发给我:「师兄,全程没报错!」
我说这就对了。环境搭建就是一次性基础设施投入,半天装好,后面两年所有 WRF 评估项目都不用再碰包管理的问题。接下来你就可以直接写评估脚本了。
*系列后篇:[数值模式 | WRF 批量试验怎么评估],敬请期待