r.gwflow 是 GRASS GIS 中的一个栅格分析模块,专门用于求解二维瞬态、承压及非承压地下水流动问题。它采用基于达西定律的隐式有限体积离散方法,将地下水流动偏微分方程转化为对称正定的线性方程组 (Ax = b),并利用迭代或直接求解器进行计算。
该工具已通过 QGIS 内置的 GRASS 工具集直接调用,算法 ID 为 grass:r.gwflow。所有初始条件、边界条件及参数均需以栅格地图的形式提供,计算结果同样输出为栅格,可以进一步用于流速场可视化或水均衡分析。
必备输入数据
运行 grass:r.gwflow 前,必须准备以下栅格数据,且所有栅格的空间范围和分辨率需保持一致,坐标系应为投影坐标系。
phead:初始水头分布栅格,单位:米 (m)
status:边界状态栅格,每个像素取值:0 = 不活动,1 = 活动,2 = 定水头
无量纲
hc_x:x 方向渗透系数,单位:米/秒 (m/s)
hc_y:y 方向渗透系数,单位:米/秒 (m/s)
s:承压流时为贮水率;非承压流时为有效孔隙度
top:含水层顶板高程,单位:米 (m)
bottom:含水层底板高程,单位:米 (m)
type:地下水流类型,选择 confined 或 unconfined
dtime:计算时间步长,单位:秒 (s)
status 参数用法说明:
0(不活动):该像素不参与计算,周围活动像素视其为无流边界。
1(活动):正常参与地下水流计算,可叠加内部源汇或面状补给。
2(定水头):固定水头边界,水头值在整个模拟中保持不变,常用于表示河流、湖泊或已知水头边界。
输出栅格
output(必填):计算后的水头分布输出栅格。
vx / vy:x、y 方向的达西(滤过)流速分量(m/s),可用于绘制流场。
budget:每个单元格的水均衡误差(m³/s),理想情况下总和应接近零,是评估数值精度的良好指标。

更多参数详解,请访问GRASS官网
典型应用场景
- 区域地下水流动模拟:评估抽水井、补给区对区域水头的影响。
- 河流-含水层相互作用:利用 river_* 参数模拟河水与地下水的交换量。
- 排水设施效果评估:通过 drain_* 参数模拟暗管、排水沟的降低地下水位的效果。
- 非承压含水层动态:设定 unconfined 类型,使用实际有效孔隙度分析潜水面的季节变化。
结果可视化与后处理
输出的流速栅格(vx、vy)可以导出到 VTK 格式(使用 grass:r.out.vtk),然后在 ParaView 中绘制流线或矢量箭头,直观展示地下水流向和速度分布。水头结果可用等高线渲染或与地形图叠加,形成专业的水文地质图件。
注意事项与技巧
- 内存管理:模块会将所有输入栅格和线性方程组读入内存,因此模拟范围不可过大。建议先用掩膜(mask)裁剪至关注区域,避免全图计算。
- 坐标系:务必使用投影坐标系,单位为米。地理坐标系(经纬度)会导致错误结果。
- 稳态模拟:将 s 设为全零的常数栅格,并设置较大的时间步长(例如 1e10 秒),即可得到稳态解。
- 不收敛处理:若计算结果异常,可尝试改用 pcg 求解器,或适当加大 maxit 并放宽 error。非承压流不收敛时,可减小时间步长并增加线性化迭代次数。
知识拓展
达西定律 (Darcy's Law): 地下水动力学的基石。它证明了“水往低处流”,且水的流速与水头梯度(水位差)成正比,与土壤的透水性(渗透系数)成正比。
参考文献:Bear, J. (1972). Dynamics of Fluids in Porous Media. American Elsevier Publishing Company.
二维瞬态、承压与非承压:
- 二维:假设在垂直方向上水流是均匀的,只考虑水平面(X, Y方向)的流动。
- 瞬态 (Transient):流场随时间变化(如果是“稳态”则不随时间变化)。
- 承压 (Confined):地下水被两层不透水层夹在中间,像管道里的自来水一样有压力。
- 非承压 (Unconfined):地下水上面没有不透水层,有自由潜水面(就像水杯里的水,水面可以上下波动,这会导致控制方程变成非线性,计算更复杂)。
更多技术问题,欢迎留言探讨。转载须注明出处。