在论文链条中的位置
AquaCrop 关注作物对水分条件的产量响应,适合在明确土壤、气象和管理输入下开展田块情景比较。FAO 明确其田块尺度计算采用内部均一假设,因此本项目需要用响应单元表达地块间差异,而不能指望单次运行解析田内所有空间过程。FAO 模型介绍
本项目使用的是 AquaCrop-OSPy 实现。软件实现、版本和实际启用过程需要单独记录,不能把 FAO 模型的全部能力都视为当前 Python 脚本已经验证的能力。
WRF 提供天气 → AquaCrop 计算田块响应,是单向离线衔接。AquaCrop 策略结果没有在当前流程中实时反馈给 WRF。
气象接口不是“改一下列名”
当前脚本向 AquaCrop 传入 MinTemp、MaxTemp、Precipitation、ReferenceET 和 Date。正式输入至少应满足以下契约:
| 检查项 | 必须明确 |
|---|---|
| 温度 | ℃;每天最低温不高于最高温 |
| 降水 | 每日 mm;缺测与无雨严格区分 |
| ET0 | 每日 mm;记录方法和所需输入来源 |
| 日期 | 原始日期连续且唯一,覆盖预定模拟期 |
| 网格 | 每个响应单元找到自己的合法天气,不借其他网格兜底 |
| 版本 | 天气运行编号、处理版本、时间区间可追溯 |
三种常见时间与单位错误
- 从启动时刻累计的降水不能逐行求和当日雨量;需要按实际变量定义求增量,并处理重启。
- W/m² 是能流密度,MJ/m²/day 是日能量。若是全天平均 W/m²,乘 0.0864 才得到 MJ/m²/day;非完整采样应按时间间隔积分。
- “某日”必须说明时区。跨日聚合边界改变,会影响极端温度和降水分配。
ET0 与 ET 不能混用
ET0 是统一参考表面的蒸散需求,实际 ET 还受到作物和水分状况影响。FAO-56 Penman–Monteith 方法综合辐射、温度、湿度和风等输入;若改用温度型经验方法,必须明确披露,不能仍标成 FAO-56 计算结果。FAO-56 第 2 章
当前 WRF CSV 转换函数在输入 ET0 全缺失且满足相关条件时,尝试 Hargreaves 估算;这不是已经实现完整的 Penman–Monteith 链条。直接提供 ET0 时也必须核实它是日值还是时段值。
现有试跑设置意味着什么
当前代码使用通用 Maize、土壤纹理类别代理、初始水分 FC,并分别创建每种策略的模型对象。历史三种策略是 B0_rainfed、B1_db65_smt、B2_high_trigger;它们是流程比较基线,不是已经率定的当地最佳制度。
初始田间持水量、通用品种和土壤代理都可能影响灌溉收益,应纳入敏感性分析。WRF 的 LAI 校准不会自动校准 AquaCrop。
本地代码暴露的正式运行缺口
| 位置 | 当前行为 | 风险 |
|---|---|---|
build_weather_wrf_csv | 降水按组 sum | 全缺失组可能变成 0,掩盖缺测 |
| 同上 | 对输入列做数值化但未统一物理单位 | 同名变量可能口径不同 |
finalize_wrf_weather | 只有传入 progress 参数且未绕过时才查完成状态 | 未传参数不能保证源 WRF 已成功结束 |
| 同上 | 查总体网格覆盖及部分变量缺失比例 | 不保证每个网格完整覆盖全季 |
run_baseline | 缺目标网格时改取第一个网格 | 地块与天气关联可能错误 |
| 同上 | 按 sow_date 和记录条数重建日期 | 缺日或晚开始数据可能被错配到其他日期 |
| 同上 | 雨量缺失补 0;质量标签固定为 smoke 口径 | 正式与试跑没有充分隔离 |
这里是基于 S07 的静态检查;本次没有改代码,也没有声称触发了所有分支。完整验收清单见 05 正式实验前的检查与待办。
完成接口后仍需科学验证
输入合法只说明可以开展正式试验。还需验证物候、冠层、ET、产量及胁迫响应,尤其明确所用实现对高温和生殖期损伤的处理,不能把“有 Tmax 输入”当成“已验证高温减产机制”。
依据:S06—S08,以及文中 FAO 官方材料。关联 04 校准验证与不确定性。
