MON-001: 多源水情数据采集
优先级: 🔴 高 (18.5分) | 技术复用度: 85% | 实施周期: 2-3周
客户原话
"我们管理着一个流域,有50多个雨量站、30多个水位站、20多个流量站,还有水库的闸门开度、泵站的运行状态。这些设备来自不同厂家,有的是老设备用电台传输,有的是新设备用4G,有的还要人工抄表。每次汛期来了,数据到处找,有的在这个系统,有的在那个系统,有的还在Excel表里。等把数据汇总起来,半小时过去了,水情都变了。"
—— 某市水利局信息中心主任
业务场景描述
典型场景
场景1: 汛期实时监测
- 汛期需要每5分钟采集一次水情数据
- 雨量站50个、水位站30个、流量站20个,共100个监测点
- 数据来源:遥测终端(RTU)、视频监控、人工上报
- 数据传输:北斗卫星、4G/5G、电台、有线网络
- 要求:数据实时性<5分钟,准确率>98%
场景2: 设备异常处理
- 某雨量站突然不上报数据了
- 可能原因:设备故障、通信中断、电池没电
- 需要快速定位问题,通知维护人员
- 在设备恢复前,使用周边站点数据估算
场景3: 数据质量控制
- 某水位站上报数据突然从5米跳到50米
- 明显是异常数据,可能是传感器故障或传输错误
- 需要自动识别异常,标记为"可疑数据"
- 通知值班人员核实,避免误判
核心痛点
- 数据源分散 - 不同设备、不同协议、不同系统,数据难以统一
- 实时性差 - 人工汇总慢,数据滞后30分钟以上
- 质量难控 - 异常数据难发现,影响后续决策
- 设备难管 - 设备状态不清楚,故障发现慢
- 历史数据难查 - 数据分散存储,查询困难
业务流程图
数据采集整体流程
数据质量控制流程
设备状态监控流程
业务规则详解
规则1: 数据采集频率
不同类型监测点的采集频率:
平水期:
- 雨量站: 每小时采集1次
- 水位站: 每小时采集1次
- 流量站: 每2小时采集1次
- 闸门/泵站: 每30分钟采集1次
汛期:
- 雨量站: 每5分钟采集1次
- 水位站: 每5分钟采集1次
- 流量站: 每15分钟采集1次
- 闸门/泵站: 每5分钟采集1次
特殊情况(暴雨、洪水):
- 所有站点: 每1分钟采集1次汛期判定规则:
进入汛期条件(满足任一):
1. 日历时间: 6月1日 - 9月30日
2. 累计降雨量: 24小时累计>50mm
3. 水位超警戒: 任一水位站超警戒水位
4. 人工启动: 值班人员手动启动汛期模式
退出汛期条件(同时满足):
1. 日历时间: 10月1日之后
2. 累计降雨量: 连续7天<10mm/天
3. 水位正常: 所有水位站低于警戒水位
4. 人工确认: 值班人员确认退出规则2: 数据质量检查
范围检查:
雨量数据:
- 最小值: 0mm
- 最大值: 200mm/小时 (超过视为异常)
- 累计雨量: 0-1000mm/天
水位数据:
- 最小值: 各站点死水位
- 最大值: 各站点校核洪水位
- 示例: 某水库死水位145m,校核洪水位160m
有效范围: 145-160m
流量数据:
- 最小值: 0m³/s
- 最大值: 各站点设计流量×1.2
- 示例: 某河道设计流量5000m³/s
有效范围: 0-6000m³/s变化率检查:
水位变化率:
- 正常变化: <0.5m/小时
- 快速变化: 0.5-1.0m/小时 (黄色预警)
- 异常变化: >1.0m/小时 (红色告警)
特殊情况:
- 闸门开启时: 允许下游水位快速下降
- 洪峰到达时: 允许水位快速上涨
- 需要结合闸门状态和上游水情判断
雨量变化率:
- 正常降雨: <10mm/小时
- 大雨: 10-20mm/小时
- 暴雨: 20-50mm/小时
- 特大暴雨: >50mm/小时一致性检查:
空间一致性:
- 同一河流相邻水位站,水位应呈梯度变化
- 同一区域雨量站,降雨量应相近
示例:
站点A水位: 50m
站点B水位: 48m (下游10km)
站点C水位: 55m (上游5km)
判断: 站点C数据可疑,上游水位应低于下游
时间一致性:
- 水位变化应连续,不应出现突跳
- 雨量累计应单调递增
示例:
10:00 水位: 50.0m
10:05 水位: 50.2m
10:10 水位: 48.5m (突降1.7m,可疑)
10:15 水位: 50.3m
判断: 10:10数据可疑,可能是传输错误规则3: 设备状态判定
在线状态判定:
设备心跳周期:
- 正常模式: 每30分钟上报一次心跳
- 汛期模式: 每5分钟上报一次心跳
离线判定:
- 超过2个心跳周期未上报 → 设备离线
- 示例: 正常模式下,超过60分钟未上报 → 离线
在线率统计:
在线率 = 在线时长 / 统计时长 × 100%
示例:
统计周期: 24小时
离线时长: 2小时
在线率 = (24-2) / 24 × 100% = 91.7%数据质量评级:
优秀: 在线率>99%, 异常数据<1%
良好: 在线率>95%, 异常数据<5%
合格: 在线率>90%, 异常数据<10%
不合格: 在线率<90% 或 异常数据>10%
示例:
某雨量站:
- 在线率: 98%
- 异常数据: 3%
- 评级: 良好规则4: 数据补遗规则
设备离线时的数据补遗:
方法1: 周边站点插值
- 使用周边3个最近站点的数据
- 按距离加权平均
示例:
站点A离线,周边站点:
- 站点B: 距离5km, 雨量10mm
- 站点C: 距离8km, 雨量12mm
- 站点D: 距离10km, 雨量8mm
权重计算:
wB = 1/5 = 0.20
wC = 1/8 = 0.125
wD = 1/10 = 0.10
总权重 = 0.20 + 0.125 + 0.10 = 0.425
站点A估算值:
= (10×0.20 + 12×0.125 + 8×0.10) / 0.425
= (2.0 + 1.5 + 0.8) / 0.425
= 10.1mm
方法2: 历史数据推算
- 使用该站点历史同期数据
- 结合当前气象条件调整
方法3: 人工补测
- 派人到现场读取设备存储的数据
- 或人工测量补充数据流转
输入数据
监测设备数据
- 雨量: 时段雨量(mm)
- 水位: 瞬时水位(m)
- 流量: 瞬时流量(m³/s)
- 闸门: 开度(%)、状态(开/关)
- 泵站: 运行状态、流量、功率
设备状态数据
- 设备ID、设备类型
- 在线状态、信号强度
- 电池电压、存储空间
配置数据
- 站点信息: 名称、位置、类型
- 阈值配置: 警戒值、异常值
- 采集频率: 平水期、汛期
输出数据
实时水情数据 (给 MON-002, FORE-001, SCHED-001)
- 标准化后的水情数据
- 数据质量标识
- 采集时间、上报时间
设备状态数据 (给运维系统)
- 设备在线率
- 数据质量评级
- 故障告警信息
历史数据 (给数据分析系统)
- 按时间序列存储
- 支持快速查询和统计
关键业务问题
问题1: 如何处理不同厂家设备的协议差异?
场景:
- 设备来自10多个厂家,协议各不相同
- 有的用水文标准协议,有的用私有协议
解决方案:
- 协议适配器模式: 为每种协议开发适配器,统一转换为标准格式
- 协议库: 维护常见协议的解析库,新设备接入时选择对应协议
- 自定义协议: 对于私有协议,提供配置界面,定义数据格式和解析规则
- 协议测试: 提供协议测试工具,模拟设备上报,验证解析正确性
问题2: 如何保证数据实时性?
场景:
- 汛期要求5分钟内看到最新数据
- 但有的设备信号不好,传输延迟
解决方案:
- 多通道传输: 优先用4G,备用北斗卫星或电台
- 数据缓存: 设备本地缓存数据,网络恢复后批量上传
- 超时告警: 超过10分钟未收到数据,自动告警
- 数据推送: 采用推送模式,而非轮询,减少延迟
问题3: 如何识别和处理异常数据?
场景:
- 传感器故障、传输错误导致异常数据
- 如何自动识别,避免误判?
解决方案:
- 多维度检查: 范围、变化率、一致性三重检查
- 智能判断: 结合闸门状态、上游水情等辅助信息
- 人工复核: 可疑数据标记后,由值班人员复核
- 机器学习: 积累数据后,训练异常检测模型
问题4: 设备离线时如何保证数据连续性?
场景:
- 设备故障或通信中断,数据缺失
- 但后续计算需要连续数据
解决方案:
- 空间插值: 使用周边站点数据估算
- 时间插值: 使用前后时刻数据线性插值
- 标记缺失: 明确标记为"估算值",与实测值区分
- 事后补遗: 设备恢复后,从设备存储中补充历史数据
实施要点
第一步: 设备接入
需要准备的信息:
- 设备清单: 设备型号、数量、位置
- 通信方式: 4G/北斗/电台/有线
- 数据协议: 标准协议或私有协议
- 采集频率: 平水期和汛期频率
接入步骤:
- 配置设备参数(IP地址、上报频率)
- 开发或选择协议适配器
- 测试数据上报和解析
- 配置站点信息和阈值
第二步: 数据质量控制
配置质量检查规则:
- 各站点的数据范围(最小值、最大值)
- 变化率阈值(正常、预警、告警)
- 周边站点关系(用于一致性检查)
- 特殊情况规则(闸门开启、洪峰到达)
第三步: 监控告警
配置告警规则:
- 设备离线告警: 超过多久未上报
- 数据异常告警: 超限、突变、可疑
- 通信异常告警: 信号弱、传输失败
- 告警通知方式: 短信、电话、APP推送
第四步: 数据存储
存储策略:
- 实时数据: 存储在内存数据库(Redis),保留24小时
- 历史数据: 存储在时序数据库(InfluxDB),保留5年
- 原始数据: 存储在对象存储(OSS),永久保留
- 数据备份: 每天备份,异地存储
预期收益
量化指标
| 指标 | 当前 | 目标 | 提升 |
|---|---|---|---|
| 数据汇总时间 | 30分钟 | 5分钟 | 缩短83% |
| 数据准确率 | 85% | 98% | 提升13% |
| 设备在线率 | 90% | 98% | 提升8% |
| 异常数据识别率 | 60% | 95% | 提升35% |
| 数据查询速度 | 10秒 | 1秒 | 提升10倍 |
业务价值
- 实时性提升 - 数据实时汇总,为预警和调度争取时间
- 质量提升 - 自动识别异常数据,提高数据可靠性
- 效率提升 - 自动化采集,减少人工抄表和汇总工作
- 可追溯 - 完整的历史数据,支持事后分析和追溯
成功案例
案例: 某市水利局水情监测系统
背景:
- 管理50个雨量站、30个水位站、20个流量站
- 设备来自8个厂家,协议不统一
- 数据分散在3个系统,汇总需要30分钟
- 异常数据难发现,影响预警准确性
实施效果:
- 统一接入100个监测点,数据实时汇总
- 数据汇总时间从30分钟降至5分钟
- 异常数据自动识别,准确率95%
- 设备在线率从90%提升至98%
- 数据查询速度提升10倍
客户反馈:
"以前汛期来了,要到处找数据,等汇总好都半小时了。现在打开系统,所有数据一目了然,5分钟内就能看到最新水情。异常数据也能自动识别,不用担心被错误数据误导了。"
相关场景
- MON-002: 水位异常预警 - 使用采集的水位数据
- MON-003: 雨量实时监测 - 使用采集的雨量数据
- FORE-001: 洪水预报与推演 - 使用水情数据进行预报
- SCHED-001: 水库群联合调度 - 使用水情数据进行调度
常见问题
Q1: 如何处理设备时钟不准的问题?
A:
- 设备上报时,服务器记录接收时间
- 如果设备时间与服务器时间差异>5分钟,自动校正
- 定期向设备下发时间校准指令
- 使用北斗或GPS授时,保证设备时钟准确
Q2: 如何处理大量历史数据的存储和查询?
A:
- 使用时序数据库(InfluxDB、TimescaleDB)
- 按时间分区存储,提高查询效率
- 冷热数据分离,热数据(近1年)在SSD,冷数据在HDD
- 提供数据降采样,查询长时间跨度时使用小时或天级数据
Q3: 如何保证数据安全?
A:
- 数据传输加密(TLS/SSL)
- 数据存储加密(AES-256)
- 访问权限控制(RBAC)
- 操作日志审计
- 定期备份,异地容灾
Q4: 如何与现有系统集成?
A:
- 提供标准API接口(RESTful API)
- 支持数据推送(WebSocket、MQTT)
- 支持数据订阅(按站点、按类型订阅)
- 提供数据导出(CSV、Excel、数据库)

