降雨 10 毫米,地上就会积水 10 毫米吗?
天气页面显示“降雨量 10 毫米”,很容易让人想到拿尺子量水坑:既然两边都是毫米,这场雨结束后,地面是不是就会有 10 毫米深的水?如果照片里的积水已经没过鞋底,是否说明这个雨量数字算错了?
这里需要先认清两个量各自回答的问题。雨量描述一段时间内落下了多少水;积水深度描述某个地点、某个时刻存着多深的水。把它们联系起来,还需要知道水从多大范围汇来,哪些水已经离开,以及留下的水分布在多大面积上。
本文从测量定义开始,再用一组实际运行过的合成教学输入展示这几个条件的作用。计算核对的是单位和水量关系,没有使用真实降雨序列,也没有模拟某座城市的排水系统。
毫米怎样表达一场雨的水量
日本气象厅把降水量解释为:落下的水如果不流走,积在水平面上所形成的深度,以毫米表示。这个假想条件让不同大小的收集面积可以用同一尺度比较。气象厅:降水量的定义
所以,毫米虽然是长度单位,在这里表达的却是单位水平面积收到的水体积。同一片均匀降雨中,较大的面积收到更多升水,但把体积除以收集面积,得到的等效深度相同。天气页面不需要先替每位读者决定一个院子有多大。
单位换算可以直接展开:1 mm 是 0.001 m,而 1 L 是 1 dm³,即 0.001 m³。因此,在 1 m² 上铺开 1 mm 厚的水,体积就是 0.001 m³,也就是 1 L。单位依据见 NIST:SI 前缀与 NIST:体积单位。
由此得到一个方便的关系:降雨量 r(mm)× 水平面积 A(m²)= 降雨水体积 V(L)。如果 100 m² 范围内均匀下了 10 mm 的液态雨,输入水量就是 1000 L。这里的“大”来自总面积,不能只盯着 10 这个数字判断有多少水。
这一步只是在已知雨量与面积时换算体积。面积若用倾斜屋面的表面积代替水平投影,或者直接把一个测站的读数视为整个范围的均匀雨量,就已经增加了额外假设。单位算对,并不意味着这些假设也得到验证。
雨量计的读数,为什么不同于量杯里的水深
一个直观的测量原理,是用开口与内部水平截面面积相同的竖直圆筒接雨,再读筒内水深。气象厅的问答也介绍了这种简单方法。在理想收集条件下,开口接到的体积除以同样大小的截面积,就回到了降雨的等效深度。气象厅:简单的雨量测量
但换成漏斗和较细的储水管,里面的水会升得更高。设储水管截面保持不变,雨量应等于“管内水深 × 储水管截面积 ÷ 接雨口面积”。这由同一份水的体积守恒推出。管内水位是中间读数,需要按面积比转换,不能直接当作室外下了同样深的一层雨。
自动仪器也可以通过计数完成转换。气象厅仪器问答所描述的翻斗式雨量计,接雨口直径为 20 cm,两只小斗交替翻转,每次翻转对应 0.5 mm,计数两次对应 1 mm。气象厅:翻斗式雨量计
这些尺寸与每次翻转的对应量,属于该页面介绍的仪器,不能推广成所有雨量计的统一规格。一次计数对应多少毫米,也不等于仪器在所有条件下的测量误差。本次没有制作雨量计或进行校准;上面的圆筒和漏斗讨论用于解释转换原理。
掌握这一点之后,读数的对象就清楚了:仪器在自己的接雨范围内收集或计量水,再换算成雨量。它不会同时读出街道的坑洼、土壤吸水和排水口工作状况,因此不可能单靠这个读数给出门前水坑的深度。
地面的水,还要经过一次收支计算
讨论积水时,可以先围出一个明确范围,在两个时刻之间记录水量变化:期末存水等于期初存水,加上期间进入的水,再减去离开的水。USGS 的流域说明用水量收支连接降水输入、蒸发、地下水补给与流出等过程。USGS:流域与水量收支
如果观察对象只包括地表水,渗入土壤的水就离开了这个观察对象;把对象扩大到土壤和地下水之后,同一过程又可能只是内部转移。这也是为什么先说明“存在哪里”,比先找一个留水百分比更有用。
为了只看清算术关系,下面规定:区域原本没有地表存水,没有区域外来水,整个水平面积 A 上均匀降雨。雨后仍留在指定地表范围内的水,占此次输入水量的比例为 f,剩余水都已经离开这个地表存水范围。
留下的水分布在固定的水平面积 B 内,于是有:留下水量=r × A × f(L);模型平均水深=r × A × f ÷ B(mm)。A 已经包含 B,因此接收区域自己落下的雨也在输入水量里,不能再重复加一次。
这里的 f 是我们给定的“最终有多少水留下”的假设,不是从降雨、土壤或管道参数计算出的结果,也不是经过标定的径流系数。公式可以说明面积与留水怎样影响深度,却不能替我们求出真实地点的 f 和 B。
同样 10 毫米,三个条件得到三个水深
保持降雨量 10 mm、总面积 100 m² 不变,脚本计算了三个情形。表中水深都是上述固定面积模型的平均值。
| 教学情形 | 输入水量 | 最终留水比例 f | 接收面积 B | 最终留水量 | 平均水深 |
|---|---|---|---|---|---|
| 原面积内全部留下 | 1000 L | 1 | 100 m² | 1000 L | 10 mm |
| 原面积内留下三成 | 1000 L | 0.3 | 100 m² | 300 L | 3 mm |
| 全部集中到较小范围 | 1000 L | 1 | 20 m² | 1000 L | 50 mm |
第一行才是“雨量等于水深”的特殊条件:初始没有水,收集面积与最后铺水的面积相同,所有输入都留下,而且我们只讨论平均深度。把这些条件省掉,等号就失去了适用范围。
第二行假设只剩三成水,另外七成可能通过渗入、排出等方式离开地表存水范围。三成是教学输入,不是草地或道路的经验值。 USGS 的地表径流说明列出了土壤、地表覆盖、坡度、前期湿润状况和降雨过程等影响因素;一个固定比例不能从“地面是什么颜色”直接判断。USGS:地表径流
第三行把全部水量放到 20 m² 内:同样的体积除以更小的面积,平均深度变成五倍。100 m² 已包含这 20 m²。这个结果展示了水从较大范围集中后,局部水深可以高于雨量;它没有证明一处真实低洼地必然能留下这些水。
真实洼地还可能随着水位升高扩大水面,达到某处高度后溢流。那时 B 不是固定常数,最终留水量也受地形限制。对平均深度的计算,更不能直接替代最低处的水深:水底有高差时,各点深度可以不同。
反过来,看到 50 mm 的积水,也无法从照片唯一反推出降了多少雨。期初存水、区域外来水和汇水面积都可能改变答案。一个水深观测只提供一个约束,不能独自确定所有未知条件。
总雨量相同,也可以有不同的时间分布
面积与留水之外,还有时间。脚本另外构造了三个连续 24 小时的序列,每一项都是一个完整钟点内的降雨量。它们没有对应真实天气,目的只是展示累计量会省掉什么信息。
| 合成时间分布 | 24 小时总量 | 24 小时平均强度 | 最大钟点雨量 |
|---|---|---|---|
| 24 个钟点各为 1.25 mm | 30 mm | 1.25 mm/h | 1.25 mm |
| 一个钟点 30 mm,其余为零 | 30 mm | 1.25 mm/h | 30 mm |
| 前六个钟点各为 5 mm,其余为零 | 30 mm | 1.25 mm/h | 5 mm |
三者总量与全天平均相同,最大的钟点雨量却不同。所以,用一天总量除以 24,只能得到这段时间的平均强度,不能还原最强那一小时,更不能知道雨在这一小时里是否又集中在更短时间内。
表中的“最大钟点雨量”也只是在固定小时分箱里取最大值,不是任意连续 60 分钟的滑动最大值。若雨跨越钟点边界集中发生,分箱会把它拆到两项里。更细的时间信息需要更细的输入,不能从一个累计数字中凭空补出。
对存水的影响也需要过程信息:何时进入多少水,何时可以流出多少水。这里没有输入排水能力或渗入速率,因而不会根据上表给出任何一个积水预测。最终总量相同,不足以说明期间最高水位也相同。
时间标签还需要读产品说明。气象厅问答解释,其 AMeDAS 的 12 时小时降水量对应 11–12 时这一段。这是该数据的标记约定,不能自动套到所有天气应用上。气象厅:降水量的统计时段
本次实际运行了什么,可以怎样复算
算例在 2026 年 10 月 14 日运行,环境为 macOS 27.0.1、arm64、Python 3.9.6,仅使用标准库。脚本用 Decimal 处理给定的十进制输入,核对三个水深分别为 10、3、50 mm,以及三条序列的总量均为 30 mm、全天平均均为 1.25 mm/h。
另外检查了 1 mm × 1 m² 得到 1 L;在初始存水和外部来水均为零的假设下,零降雨或零留水比例都得到零水深。后一个限定不能省略:今天没有下雨,并不能说明昨天留下的水已经消失。
七组不符合模型定义的输入被拒绝:负雨量、总面积为零、接收面积为零、留水比例小于零或大于一、接收面积大于已包含它的总面积,以及非有限雨量 NaN。拒绝“B 大于 A”是在检查本模型的面积定义,并不是宣称所有实际水面都不能扩大。
下载后,使用 Python 3.9 或更新版本,在文件所在目录执行:
python3 rainfall-depth-teaching.py rainfall-depth-output
结果会写入 rainfall-depth-output/results.json。可下载完整脚本、运行说明、本次结果,或三者的 ZIP 包。结果保留了全部小时输入与被拒绝的案例,运行时间和环境字段会随复算变化。
实际验证的范围是算术、序列汇总与这些输入检查。十进制运算不会提高真实观测的精度;结果文件中的 30.00 只是输入与运算的表示形式。雨量计误差、现场地形、渗入、排水、溢流和真实水位都没有在这次运行中验证。
下次读到一个雨量数字,先补齐它的说明
先确定单位与时间范围。10 mm 和 10 mm/h 不是同一个量;后者还需要说明是哪个时段的平均强度。累计时段、钟点分箱和滑动窗口,也不能因为都写着“一小时”就视为同一项统计。
再确定空间对象。这个数字对应一个测站、一个网格,还是对某片范围的概括?若要换算自己屋顶或院子的水量,必须明确水平面积,并承认把该读数用于这个面积的空间假设。一个孤立测站读数没有自动给整座城市做出均匀降雨保证。
然后确认它是观测还是预报,以及页面的起止时间和更新时间。本文各项官方定义与单位资料于 2026 年 10 月 14 日核对,但没有取得任何地点当天的降雨数据;这里的数字都不是一份天气预报。
如果问题进一步变成“门口会积多深”,就需要增加期初水量、来水范围、地形与出水过程的信息。缺少这些条件时,适合做的是说明已知输入能支持到哪一步,而不是把每平方米的降雨量直接改名为某一点的水深。
因此,开头的问题有一个明确答案:降雨 10 毫米,不保证地面积水 10 毫米。 它先告诉我们每平方米收到多少水;水深还取决于这些水最后在哪里、留下多少。雨量的毫米与积水的毫米可以通过水量关系连接起来,但连接中间的条件,必须写出来。