feat: add project-scoped operations
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# 凤阳六月爆管模拟与 SCADA 复制
|
||||
|
||||
2026-10-22 已完成活动项目 `fengyang_v2`
|
||||
(`b962c44e-8433-4a10-81e9-a64b70ac1152`)的三段模拟爆管数据及前一天基线复制。
|
||||
一次性复制脚本及其专属测试已清理,来源、核对结果和备份记录如下:
|
||||
|
||||
| 方案名称 | 模型管段 | 模型管径 |
|
||||
| --- | --- | --- |
|
||||
| `2026-06-02 Pipe19026 DN200 burst` | `19026` | 200 mm |
|
||||
| `2026-06-12 Pipe18751 DN160 burst` | `18751` | 160 mm |
|
||||
| `2026-06-22 Pipe18750 DN160 burst` | `18750` | 160 mm |
|
||||
|
||||
方案名称、`burst_ID` 和 `network.pipes.diameter` 必须一致。时间使用方案的
|
||||
`started_at` 和结果时间戳,历时为 4 小时,包含起止点,15 分钟一个采样。
|
||||
不使用项目说明中的历史时间窗,也不使用旧的 `5hrs burst scheme` 数据。
|
||||
|
||||
源数据为 `analysis.node_results.pressure`,仅复制既有 50 个压力设备
|
||||
`asset.scada_devices.node_id` 对应的节点。每段必须完整覆盖 17 个时间点,
|
||||
即 850 条观测,三段共 2,550 条;方案状态必须为 `completed`。
|
||||
|
||||
压力源单位来自每个方案的 `parameters.result_units.pressure`,目标单位来自
|
||||
设备的 `measurement_unit`,并用总水头减节点高程核对压力单位。缺失水头、
|
||||
高程或单位不一致时拒绝写入。例如真正的 kPa 转米水头使用 `pressure / 9.80665`。
|
||||
不添加噪声、不平移日期、不插值。写入 `scada.measurements.monitored_value`,
|
||||
同时将窗口内对应观测的 `cleaned_value` 清空,避免使用旧观测的清洗结果。
|
||||
其他日期、其他设备及模拟源数据保持原样;原有其他模拟事件也保留。
|
||||
|
||||
正常基线直接读取 `realtime.node_results`,保留其原始日期和压力值。每段在线
|
||||
模拟采用右端不含的时间窗,4 小时共有 16 个采样点,最后一个点比窗口终点
|
||||
早 15 分钟。三段共 2,400 条观测。基线源单位来自模型配置,并同样校验
|
||||
总水头减高程;不从爆管结果或旧 SCADA 推导正常值。
|
||||
|
||||
| 管段 | 爆管数据时间(北京时间,含末点) | 前一天基线采样时间(北京时间) |
|
||||
| --- | --- | --- |
|
||||
| `19026` DN200 | 6 月 2 日 08:00–12:00 | 6 月 1 日 08:00–11:45 |
|
||||
| `18751` DN160 | 6 月 12 日 12:00–16:00 | 6 月 11 日 12:00–15:45 |
|
||||
| `18750` DN160 | 6 月 22 日 18:00–22:00 | 6 月 21 日 18:00–21:45 |
|
||||
|
||||
定位算法配对比较时应采用共同的 16 个相对采样时刻,或明确使用右端不含的
|
||||
4 小时时间窗,避免将爆管结果额外的终点与不存在的基线终点配对。
|
||||
|
||||
2026-10-22 核查发现 EPANET 输出解析曾将压力枚举 1、2 的单位名称写反。
|
||||
已改为 `0=PSI, 1=KPA, 2=MTR`,并通过本地原生 EPANET 输出测试验证。
|
||||
这三个方案的全部 2,550 个压力值都与米制水头减高程一致,元数据已纠正为
|
||||
`MTR`,原始模拟数值保持不变。SCADA 最终使用设备的 `m` 单位,无额外换算。
|
||||
更正前的三个方案参数与核查证据保存在忽略目录
|
||||
`data/fengyang-result-unit-correction/`。
|
||||
|
||||
本次最终复制记录为
|
||||
`data/fengyang-burst-scada/20261022T101442415337Z/report.json`:
|
||||
2,550 条爆管观测与 2,400 条前一天基线,共替换 4,950 条观测;SCADA 整表
|
||||
仍为 144,000 条、50 个设备。窗口外指纹不变,独立 SQL 比对六段数据与源值
|
||||
差异为零,重复只读预览显示 4,950 条均已一致。三个方案均为 `completed`。
|
||||
|
||||
本次执行前已锁定观测表并备份整表至忽略目录
|
||||
`data/fengyang-burst-scada/<UTC时间>/measurements-before.csv`,同时保存
|
||||
`prepared.json`(来源、设备映射、备份校验和)和 `expected.json`(预期观测)。
|
||||
目录权限为 0700,文件权限为 0600,不包含数据库凭据。
|
||||
|
||||
本次复制在一个事务中完成,逐条比对预期值、核对总行数、校验窗口外数据
|
||||
指纹不变。提交后使用新连接再次读回校验,已保存 `report.json`。
|
||||
|
||||
如需恢复,先核对对应报告的备份校验和,将 CSV 导入临时表,再仅恢复
|
||||
`expected.json` 中的 `(time, device_id)` 键;不要整表覆盖当前观测。
|
||||
数据库读回校验不代表已经完成 HTTP、界面回放或爆管定位算法验收。
|
||||
Reference in New Issue
Block a user