# 能把一场雨拆成许多小雨吗？

缩放、平移、叠加：亲手拼出一条径流过程线。

专题：降雨到洪水。教学合成算例，待独立专业审稿。

## 先准备一场标准小雨

如果我们知道一毫米净雨在一小时内均匀落到流域后，会产生怎样的直接径流响应，就能把它作为积木。注意这里说的是已经扣除损失的净雨，而不是气象站记录的总降雨。

面积A=1km²，单位净雨1mm，历时Δt=1h。教学离散响应体积分配权重为[0.1,0.4,0.3,0.15,0.05]，和为1。时段平均单位线U=w×1000/3600，单位(m³/s)/mm。

## 雨量加倍，响应也加倍

第一块积木是十毫米净雨。把单位响应的每个时段都乘十，就得到它单独引起的曲线。这里我们假定输入和响应之间是线性关系，雨量增加只缩放高度，不改变响应形状。

第一段净雨P0=10mm，贡献Q0[n]=10U[n]。单位线面积对应1000m³/mm；不能只调整峰值而不保持体积。真实大洪水可能改变汇流路径与河网响应，线性假定需验证。

## 晚一小时，就向右移一格

第二段净雨晚一些发生，它的响应也向右移动同样的时间。拖动间隔，观察两个响应是挤在一起，还是分开到达。我们保持单位线不变，等于假定系统在这段时间内没有改变。

第二段默认20mm、从第1小时开始，仍持续1小时；起始时段可调1—4。Q1[n]=P1U[n−lag]，越界项为零。平移需要固定时间步长，本页横轴是各小时区间而非瞬时采样值。

## 同一时段，把贡献加起来

在每一个时段，分别读取两场小雨的响应，再把它们相加。拼出来的总过程线，就是离散卷积。复杂名字背后，是反复进行同一个简单动作：找对位置，乘上雨量，然后求和。

总Q[n]=Q0[n]+Q1[n]。图中显示两条分量和总响应，采用阶梯表示时段平均流量。默认雨量10+20=30mm，总直接径流体积为30000m³，按ΣQΔt计算。

## 错开时间，水量并不消失

把第二场小雨向后移动，洪峰可能降低，也可能拆成两个峰，但总水量保持不变。如果把错开的尾巴截掉，账面水量就会变小。比较峰值时，要同时检查完整时段的体积。

所有输出保留到第9小时，足以覆盖lag≤4和5小时响应。默认lag=1时峰值为11×1000/3600≈3.056m³/s。单位线用于直接径流；基流应另算，不能把它误当作净雨贡献。

## 积木好用，也有使用条件

当净雨在空间上近似均匀，汇流响应可以近似线性且不随时间变化，这种积木方法非常有用。若降雨空间分布、土壤状态或洪水路径显著改变，就需要检查固定单位线是否仍然合适。

本例采用人为指定的非负归一化权重，未估计真实流域单位线。工程应用需选择单位净雨深、净雨历时、面积和基流分割方法，并验证不同事件的形状、峰现时间和体积。

## 练习与解释

1. 单位线的输入是？

答案：规定历时的单位净雨。损失应先在产流模块中处理。

2. 仅把第二场雨推迟，总体积会改变吗？

答案：不会，若保留完整尾部。线性平移不改变总积分。

3. 默认30mm净雨落在1km²上对应？

答案：30000m³。1mm×1km²=1000m³。

## 算例与依据

下载页面上的完整Python算例包，解压后运行 reproduce.py，无需第三方库。模型源为 rainfall_models.py，输出 reference.csv。

[参考资料](https://www.hec.usace.army.mil/confluence/hmsdocs/hmstrm/transform/unit-hydrograph-basic-concepts)，查阅日期2026-09-15。公式、参数和实现简化见正文；来源用于机理核对，不代表本算例经过来源机构认可。
