观潮 · 模式预报与气象 AI 观察

FIFRACT 和 CROPTYPE 在 geo_em 里是空的:WPS 灌溉静态数据只覆盖美国本土

2026-10-18

> 用 WRF 4.7.0 模拟漫灌水量,结果模拟灌溉量恒为零。发帖人排查后发现:GEOGRID.TBL 里相关条目都在、源数据路径也对,IRFRACT 正常,但 FIFRACT、SIFRACT、MIFRACT、CROPTYPE 在 geo_em.d01.nc 里全是空值。答案有两层:一是跑 geogrid.exe 时 GEOGRID.TBL 没有链到 GEOGRID.TBL.ARW.noahmp;二是 WPS 静态数据里 flood_fract、micro_fract、sprinkler 这几套只有美国本土(CONUS)的数据,全球可得的只有 IRFRACT。对中国、欧洲等域外用户来说,第二层才是根因,而且支持方明确说:自己造一份类似数据集不难,难的是这些变量的取值怎么定。

缺的是哪一块

发帖人的配置是 WRF 4.7.0、WPS 4.6.0、NOAH-MP 4.7.0,目标是模拟漫灌(flood irrigation)水量,但模拟出来的灌溉量是零,不知道问题出在哪。

他已经做过的排查很有代表性:查了论坛旧帖,知道 Noah-MP 的动态灌溉方案会用到 IRFRACT、FIFRACT、SIFRACT、MIFRACT,推测 CROPTYPE 也是必需的;然后发现除了 IRFRACT,其余四个在 geogrid.exe 生成的 geo_em.d01.nc 里全是空值;再回头看 GEOGRID.TBL,上述变量都在里面,源数据存在、路径也没写错。

这个排查路径说明问题不在「表里有没有」,而在「跑的时候用了哪张表」以及「源数据覆盖到哪儿」。

空值的两个原因

支持方给了两条,两条都可能同时成立:

原因 · 说明

表没链对 · 跑 geogrid.exe 时 GEOGRID.TBL 必须链到 GEOGRID.TBL.ARW.noahmp

源数据缺 · 没有灌溉所需的输入数据,例如 flood_fra

随后有用户在帖子里把第二条说得更具体:flood_fract、micro_fract 和 sprinkler 的源数据只有美国本土有,而 IRFRACT 的数据是全球覆盖的。支持方复核 WPS 静态数据后确认:「你说得对,这些变量只有 CONUS 的数据」,并补了一句判断——在你关心的区域上造一份类似的数据集并不难,但困难在于这些变量的取值如何确定。

对域外用户来说这条尤其要紧:即便表链对了,geo_em 里那几个灌溉比例字段仍然会是空的,因为源数据本身没有覆盖你的域。

与漫灌相关的变量有哪些

支持方列出的漫灌相关变量和诊断量:

变量 · 含义

FIFRACT · 漫灌比例

IRNUMFI · 漫灌事件次数

IRWATFI · 单次漫灌事件的水量

IRFIVOL · 漫灌累计水量

发帖人追问这些是「必须设置」还是「可选」。答复是:这些变量是可选的,只有在灌溉方案被激活时才会为它们分配空间。这解释了为什么在默认配置下看到的是空值而不是报错。

另外两个 namelist 开关的归属也在帖子里说清了:sf_surf_irr_scheme 是独立于陆面方案的选项,Noah 和 Noah-MP 都能用;irr_daily_amount 则在 sf_surf_irr_scheme 打开时才起作用。

两套方案不是一回事

发帖人还问了 sf_surf_irr_scheme 与 %noah_mp 段里的 opt_irr、opt_irrm 之间是什么关系、要不要同时用、如果只想跑漫灌该选哪些。支持方的答复只有一句:它们代表 WRF 里两套不同的灌溉方案,细节请查文献。帖子里没有给出推荐的参数组合。

也就是说,这个帖子能确定的是「谁归谁管」和「数据覆盖到哪」,不能确定的是「具体怎么配」。

冰川水量平衡报错没有答案

发帖人最后抛出的第三个问题是运行 wrf.exe 时报 NOAHMP GLACIER 的水量平衡错误,并猜测是自己改了参数导致的——他之前跑通过。支持方对这一条的答复是「我没有立刻能给出的答案,需要调试才能弄清问题出在哪」,帖子里没有给出解决方案。

边界与还没解决的部分

一句话判断

geo_em 里灌溉字段为空,先确认 GEOGRID.TBL 链的是不是 noahmp 那一份;如果域不在美国本土,那更可能是根因——WPS 只随包提供 CONUS 的灌溉比例数据,剩下那一步得自己造数据,而真正的难点是数值怎么定。

在观潮中打开(含配图与交互)→