2. 实际采剥量数据清洗与日/班次口径统一
多源采剥量记录的口径差异从哪来
卡车计数、地磅称重和调度系统三路数据在进入偏差计算前,必须先统一到同一“计量对象 + 时间粒度 + 单位”上。露天矿常见的不一致有三类:重复计量(同一车次被地磅与调度各记一次,或重车/空车两次过磅被合并错误)、缺失记录(地磅故障、网络中断导致某班次无数据)、单位与口径混用(地磅给吨、卡车计数给车数、调度给立方米,且松散系数不同)。下面的图给出三源数据到统一日/班次口径的处理链与关键判据。
清洗规则的具体实现
以某露天铁矿一个班次(08:00–20:00)的原始记录为例,说明去重、补缺与换算的落地方式。示例参数:原岩密度 ρ=3.3 t/m³,松散系数 K=1.35,平均载重按近 7 天地磅均值取 62 t/车。
| 原始记录 | 问题 | 处理动作 | 统一后结果 |
|---|---|---|---|
| 车次 T1023:地磅净重 64.2 t;调度体积 26 m³ | 同一车次双源重复 | 保留地磅,调度记录标记为重复 | 64.2 t(来源:地磅) |
| 车次 T1045:仅调度体积 30 m³,无地磅 | 地磅漏记 | 体积折算:30×3.3÷1.35 | 73.3 t(来源:调度折算) |
| 车次 T1067:仅卡车计数 1 车 | 无重量数据 | 车数×平均载重:1×62 | 62.0 t(来源:计数估算) |
| 班次 14:00–16:00 地磅通信中断 | 整段缺失 | 用同班次调度体积折算补缺 | 按折算值计入,标记“补缺” |
去重与换算的核心逻辑可用如下 Python 片段表达(pandas 环境,输入为三张原始表):
import pandas as pd
RHO, K, AVG_LOAD = 3.3, 1.35, 62.0
def unify_shift(truck, weigh, dispatch):
# 1) 地磅净重
weigh = weigh.copy()
weigh["net_t"] = weigh["gross_t"] - weigh["tare_t"]
weigh["src"] = "地磅"
# 2) 调度体积折算为原岩吨位
dispatch = dispatch.copy()
dispatch["net_t"] = dispatch["volume_m3"] * RHO / K
dispatch["src"] = "调度折算"
# 3) 车数估算
truck = truck.copy()
truck["net_t"] = truck["trips"] * AVG_LOAD
truck["src"] = "计数估算"
# 4) 按车次号合并,优先级:地磅 > 调度 > 计数
order = {"地磅": 0, "调度折算": 1, "计数估算": 2}
allrec = pd.concat([weigh, dispatch, truck], ignore_index=True)
allrec["prio"] = allrec["src"].map(order)
allrec = allrec.sort_values(["trip_id", "prio"]).drop_duplicates("trip_id", keep="first")
# 5) 按班次、台阶汇总
out = allrec.groupby(["shift_id", "bench"], as_index=False).agg(
qty_t=("net_t", "sum"), src=("src", lambda s: "+".join(sorted(set(s)))))
return out
# 示例调用
# result = unify_shift(truck_df, weigh_df, dispatch_df)
# print(result)
补缺时优先使用同班次同台阶的调度折算值;若调度也无记录,才用同班次同台阶其他车次的均值插补,并在来源字段写入“插补”,此类记录在偏差诊断中单独标注,避免把估算值当作实测值参与阈值判定。
口径统一后的校验与判读
统一口径表生成后,需做三项校验再交给偏差计算:其一,同一班次三源折算值互差超过 5% 时回查原始记录,常见原因是松散系数取值与矿岩类型不符;其二,单班采剥量为负或超过设备能力上限(如单台电铲班产 8000 t)时标记异常;其三,日口径应等于两个班次之和,若不等说明跨零点车次归属有误。校验通过的数据才进入后续时间序列对齐与偏差曲线构建。
- 去重键:车次号 + 日期,避免同一车次在重车、空车两次过磅时被重复计入。
- 单位链:m³(松散)→ ÷K → m³(原岩)→ ×ρ → t,方向不可颠倒。
- 来源标记:每条汇总记录保留“地磅/调度折算/计数估算/插补”,供偏差诊断时区分实测与估算。