模型的心脏:到达地面的水,多少入渗、多少蒸发(AET)、多少变产流(快 RS / 慢 RI)? 每步闭合:P − AET − RS − RI = ΔW。本页 V3 是 EF5 源码 CRESTModel.cpp 的逐行 Python 直译(已与向量化实现对拍到 3.6e-15)。
| 版本 | 产流机制 | 谁用 |
|---|---|---|
| V1 bucket | 蓄满溢流 | 教学最简 |
| V2 HBV-beta | 蓄满(幂律) | HBV (Bergstrom 1976)、本课程 |
| V3 CREST(源码直译) | 蓄满曲线 + FC(temX) 强度劈分 = 混合 | CREST/EF5 CREST、VIC、新安江同族 |
| V4 SCS-CN | 超渗(经验事件法) | USDA/SWAT/HEC-HMS |
| V5 Horton-cap | 显式超渗(入渗能力上限) | Green-Ampt 族(简化)/KINEROS/陕北型 — 干旱正解 |
把一个网格内所有点按容量从小到大排,黑线是容量曲线
i(x) = Wmaxm·[1−(1−x)^(1/B)],其中 Wmaxm = WM(1+B)(保证平均容量=WM)。
当前蓄水 W 对应一条水位线 A(CRESTModel.cpp:168);一场雨把水位抬到 A+Psoil:
曲线左侧(红)=已饱和面积→产流 R(:186 的双 pow 公式算的就是这块面积),
右侧(绿)=还能吸→入渗。产流 R 再被 temX=平均湿度×FC(:217)劈成慢流(interflow)与快流(overland)。
固定:WM=120mm, pet=2mm, KE=1, IM=0.03(与正文手算实例一致)。观察三件事: ① 土越湿/雨越大 → 红区(产流)越大;② B 越大曲线越下凹 → 干土也有红区(低容量点先饱和); ③ 拖 FC → 快慢劈分变、红区总面积纹丝不动(FC 不改产流量)。
案例A 湿润 Hesperange(日尺度, 观测径流系数 0.46):CREST 默认参数产流率 48.9% 最接近观测;AET=515 最接近推断 549。
案例B 干旱合成(小时尺度, 44天干旱后 55mm/2h 暴雨打 8% 湿度干土, 观测参考场次RC 15–40%):
| 方法 | 场次RC(小时) | 洪峰 mm/h | 快流% | 场次RC(聚合成日) |
|---|---|---|---|---|
| V1 bucket | 3.1% 漏报 | 0.03 | 0% | 3.0% |
| V2 HBV-beta | 8.9% | 3.8 | 77% | 2.0% |
| V3 CREST CREST | 21.4% 入区间 | 6.5 | 84% | 16.8%(峰塌到0.39) |
| V4 SCS-CN | 23.8% | 9.6 | 90% | 44.1% 反升(事件法本为日/场次设计) |
| V5 Horton-cap | 78.9% | 29.0 | 99% | 3.0% 崩溃(强度阈值在日尺度失义) |
FC 扫描铁证:FC 0.5→20 mm/h,事件产流量恒 21.4%(量由 VIC 曲线独家决定),快流占比 97%→18%——FC(temX, CRESTModel.cpp:217) 是纯"劈分/尖锐度"旋钮。结论:干旱区"时间步长比模型选择更先决"。