Skip to content

工业 IoT 数据集成与拓扑校验系统。 针对多源异构数据(相同电表有3套名称:数采/业务/图纸)的兼容性痛点,设计并交付了一套基于 RESTful API 的全流程数据治理方案。通过能量守恒算法,实现了 2000+ 电表耗电量的自动化对齐与标准化集成验证

Notifications You must be signed in to change notification settings

mzr312312/Data-Analysis

Repository files navigation

工业能源计量拓扑校验与数据治理系统

Industrial Meter Topology Verification & Data Governance System

1. 项目背景 (Background)

在石家庄基地的能源管理数字化过程中,我们需要接入约 2000 块电力仪表。然而,由于历史建设原因,现场存在三套完全独立的命名体系,导致数据无法贯通:

  • 上位机报表名 (Name A):基地运营部门使用的业务名称。
  • 数采采集名 (Name B):底层 IoT 接口返回的原始 TagCode。
  • 图纸机柜名 (Name C):电气原理图和现场机柜标签上的物理位置名称。

2. 核心挑战 (The Problem)

如何在大规模(2000+节点)、高混淆度的环境下,准确建立这三套名称的映射关系,并构建正确的能源计量拓扑网络(父子级联关系)?依靠人工逐一核对不仅效率低下,且极易出错。

3. 解决方案与验证逻辑 (Solution Strategy)

本项目开发了一套基于**“数据反向校验拓扑”的自动化工具链。其核心逻辑是利用能量守恒定律**:在任意统计周期内,父级电表的耗电量应近似等于其所有子级电表耗电量之和(Parent_Value ≈ Σ Children_Values)。

通过系统自动化比对“物理层级”的聚合数据与“采集层级”的实际读数,我们可以:

  1. 验证映射准确性:如果公式成立,说明 Name A/B/C 的映射关系正确;
  2. 发现计量故障:如果映射无误但数据偏差巨大,则定位硬件计量故障或线损异常;
  3. 发现电表错位:如果两块电表交换一下位置,数据就对得上了(或者,至少有一个对得上了),说明是寄存器地址错位;

4. 系统架构与功能模块 (Modules)

本项目包含从数据采集、清洗、拓扑构建到可视化校验的完整闭环:

4.1 数据采集与清洗 (ETL Engine)

  • 核心脚本: get_data_from_api.py
  • 功能:
  • 对接 IoT 原始接口(Name B),批量拉取高频时序数据。
  • 异常处理: 自动识别并清洗脏数据(混合的 Boolean/Float/String 类型)。
  • 特征工程: 对原始累计读数进行差分计算(Diff Calculation),并按 5min/15min 粒度重采样对齐,生成标准化的耗电量切片。

4.2 拓扑自动重构 (Topology Reconstruction)

  • 核心脚本: find_parent_node.py
  • 功能:
  • 解析扁平化的 Excel 设备清单(包含 Level0-Level5 层级列)。
  • 实现回溯算法,自动识别每个节点的直接父节点(Parent Node),将非结构化表格转化为树状邻接表(Tree Structure),为后续聚合计算提供数学基础。

4.3 交互式校验终端 (Interactive Calibration GUI)

  • 核心脚本: tree.py
  • 技术栈: PyQt5
  • 功能:
  • 可视化树形导航: 动态加载重构后的设备树,直观展示 2000+ 电表的层级关系。
  • 实时聚合计算: 选中任意父节点或一组子节点,系统自动计算指定时间段内的 Diff 总和。通过对比父节点的读数与子节点选中项的总和,操作员可秒级完成一组映射关系的校验。
  • 多视图切换: 支持在“采集名”、“报表名”之间切换,方便跨部门协作对照。

4.4 数据质量探查 (Quality Assurance)

  • 核心脚本: anomalous_data_points.py
  • 功能:
  • 利用 Z-Score 统计分析,识别读数突变、死值等异常点,排除由数据质量问题导致的拓扑校验误判。

5. 快速开始 (Usage)

环境依赖

pip install -r requirements.txt

运行步骤

  1. 配置映射表: 更新 data_inputs/电表结构化清单和名称映射.xlsx
  2. 拉取数据: 运行 get_data_from_api.py 获取指定时间窗口的基准数据。
  3. 启动校验终端:
python tree.py
  1. 执行校验:
  • 在左侧树状图中展开层级。
  • 选中所有子表,观察左上角 总和
  • 点击父表,对比其 Diff 值。
  • 若误差 < 1%,标记为映射通过。

6. 技术栈 (Tech Stack)

  • Language: Python 3.12
  • GUI Framework: PyQt5
  • Data Analysis: Pandas, NumPy, SciPy
  • Visualization: Plotly
  • Protocol: RESTful API (Requests)

About

工业 IoT 数据集成与拓扑校验系统。 针对多源异构数据(相同电表有3套名称:数采/业务/图纸)的兼容性痛点,设计并交付了一套基于 RESTful API 的全流程数据治理方案。通过能量守恒算法,实现了 2000+ 电表耗电量的自动化对齐与标准化集成验证

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages