3. 回灌井水位恢复试验数据提取与段划分
任务拆解:从连续记录中切出“回灌段”与“恢复段”
回灌井水位恢复试验的原始记录是一条连续的水位—时间序列,其中包含回灌进行阶段和停灌后的恢复阶段。求参(如 Theis 恢复法、Cooper-Jacob 直线段法)只使用恢复段数据,因此必须先准确定位停灌时刻 t₀,再以 t₀ 为界切分数据,并计算恢复段的初始水位与回升幅度。本案例的核心是把这一判断过程写成可复现的规则,而不是靠人工目测挑点。
停灌时刻的识别依据是回灌流量信号:回灌期间流量 Q 维持在一个正值台阶,停灌后 Q 骤降至 0(或接近 0 的漏计值)。水位本身在停灌瞬间不会突变,而是由“注水抬升”转为“自然回升/回落”,因此不能仅凭水位斜率判断停灌点。工程上常出现流量计滞后、停泵后余流、水位计采样间隔大于流量采样间隔等情况,需要设置容差与确认窗口。
数据准备与关键字段
假设已完成例1的清洗,得到统一时间步长的结构化数据,包含 time(秒,相对试验起点)、Q(m³/h)、H(m,井中水位,向上为正)。本案例只需 time、Q、H 三列。下面用一段自洽的 Python 代码完成停灌识别、分段与特征量计算,示例数据为教学构造,用于演示规则行为,不代表实测结果。
import numpy as np
import pandas as pd
# 教学示例数据:0~3600 s 回灌,Q=20 m³/h;3600 s 后停灌,Q≈0
t = np.arange(0, 7201, 60) # 60 s 采样,共 121 点
Q = np.where(t < 3600, 20.0, 0.0)
# 构造水位:回灌期抬升,停灌后恢复下降(示例形态,非实测)
H = np.where(t < 3600,
5.0 + 0.0012 * t,
9.32 - 0.00035 * (t - 3600))
df = pd.DataFrame({"time": t, "Q": Q, "H": H})
# 1) 停灌时刻识别
Q0 = df.loc[df["Q"] > 0, "Q"].median() # 回灌期典型流量
Q_stop = 0.05 * Q0 # 停灌阈值
below = df["Q"] < Q_stop
# 连续 2 个采样点低于阈值才确认停灌
confirm = below & below.shift(1, fill_value=False)
t0 = df.loc[confirm, "time"].iloc[0]
print("Q0 =", Q0, " Q_stop =", Q_stop, " t0 =", t0)
# 2) 分段
buffer = 120 # 停泵余流缓冲 120 s
inj = df[df["time"] < t0]
rec = df[(df["time"] >= t0 + buffer)].copy()
rec["dt"] = rec["time"] - t0 # 相对停灌时刻
# 3) 特征量
H0 = df.loc[df["time"] == t0, "H"].iloc[0]
H_end = rec["H"].iloc[-1]
dH = H0 - H_end
print("H0 =", round(H0, 3), " H_end =", round(H_end, 3), " ΔH =", round(dH, 3))
print("回灌段点数 =", len(inj), " 恢复段点数 =", len(rec))
运行后预期输出:Q0 = 20.0 Q_stop = 1.0 t0 = 3600,H0 = 9.32 H_end ≈ 8.06 ΔH ≈ 1.26,回灌段 60 点、恢复段 59 点(扣除 120 s 缓冲后从 3720 s 起)。这些数值由给定输入直接推出,属于示例结果。
规则细节与常见偏差
- 阈值 Q_stop 的选取:取回灌期流量中位数的 5% 是稳健做法;若流量计存在零点漂移,应先减去漂移基线再比较。
- 确认窗口:单点低于阈值可能是瞬时波动,要求连续 2 个采样点确认,可避免把流量毛刺误判为停灌。
- 时间对齐:流量与水位采样时刻可能不同,t₀ 应插值到水位时间轴,再取最近的水位点作为 H₀。
- 缓冲段:停泵后管路余流会使水位短暂继续上升,恢复段起点应后移一个缓冲时间(本例 120 s),否则早期点会污染恢复直线段。
- 回升幅度符号:本案例定义 H 向上为正,ΔH = H₀ − H_end 为正表示水位回落;若采用埋深坐标(向下为正),符号需相应调整并在全流程保持一致。
恢复段数据应保留
dt = t − t₀ 列,后续 Theis 恢复法以 lg(dt) 或 lg((t+Δt)/Δt) 为横轴,缺少相对时间将无法直接求参。若流量记录在停灌后长时间不归零(如余流持续数十分钟),仅靠阈值会低估 t₀ 或误判恢复段起点。此时应结合流量下降沿的斜率变化点辅助定位,并在报告中说明缓冲时间取值依据。
分段结果检查清单
| 检查项 | 通过条件 | 本例取值 |
|---|---|---|
| t₀ 是否落在流量下降沿 | t₀ 前后 Q 由 Q₀ 降至 ≈0 | 3600 s,Q 由 20 降至 0 |
| 回灌段是否完整 | 回灌段点数 ≥ 预期采样数 | 60 点(0~3540 s) |
| 恢复段是否扣除缓冲 | 恢复段首点 time ≥ t₀ + buffer | 3720 s |
| H₀ 是否取自 t₀ 时刻 | H₀ 与原始记录一致 | 9.32 m |
| ΔH 符号是否符合约定 | 与坐标约定一致 | +1.26 m(向上为正) |
完成上述分段后,恢复段数据即可作为例4、例5等后续求参与井损计算的输入;若检查表中任一项不通过,应先回到流量与水位原始曲线核对,而不是直接进入求参环节。