feat(scada): add calibrated monitoring and incident recovery
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"version": "burst-benchmark@1",
|
||||
"suite_id": "tjwater-v2-burst",
|
||||
"project_code": "tjwater_v2",
|
||||
"project_id": "324ff7ee-c2d4-5184-a84b-48fb14a2933e",
|
||||
"sampling_interval_minutes": 15,
|
||||
"event_minutes": 60,
|
||||
"detector_days": 15,
|
||||
"trigger_rule": {
|
||||
"pressure_drop_percent": 30,
|
||||
"baseline_samples": 4,
|
||||
"consecutive_samples": 2,
|
||||
"minimum_devices": 2
|
||||
},
|
||||
"score_weights": {"outcome": 60, "tools": 20, "plan": 15, "efficiency": 5},
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "B01", "pipe_id": "540672", "occurred_at": "2026-10-08T02:00:00+08:00",
|
||||
"reference_analysis": "test_burst_20260614", "observation_provenance": "requires_generation",
|
||||
"provenance_note": "夜间爆管尚无已核实的对应异常观测;不能平移中午曲线或将正常观测当作本事件。"
|
||||
},
|
||||
{
|
||||
"case_id": "B02", "pipe_id": "540672", "occurred_at": "2026-10-08T12:00:00+08:00",
|
||||
"reference_analysis": "test_burst_20260614", "observation_provenance": "declared_historical_replay",
|
||||
"provenance_note": "present.md 记录该窗口由 test_burst_20260614 生成;需核查当前观测及参考方案,历史声明本身不等于数值验收。"
|
||||
},
|
||||
{
|
||||
"case_id": "B03", "pipe_id": "537407", "occurred_at": "2026-10-08T02:00:00+08:00",
|
||||
"reference_analysis": "burst_20260610_dn600", "observation_provenance": "requires_generation",
|
||||
"provenance_note": "存在历史模拟参考,但未核实本时间窗口的该管段异常 SCADA;需在隔离环境生成。"
|
||||
},
|
||||
{
|
||||
"case_id": "B04", "pipe_id": "537407", "occurred_at": "2026-10-08T12:00:00+08:00",
|
||||
"reference_analysis": "burst_20260610_dn600", "observation_provenance": "requires_generation",
|
||||
"provenance_note": "本窗口已有其他管段的爆管演示,不能复用为 537407 的真值。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,485 @@
|
||||
{
|
||||
"version": "burst-simulation-design@1",
|
||||
"suite_id": "tjwater2-v2-burst-calibration",
|
||||
"project_code": "tjwater2_v2",
|
||||
"project_id": "871d7538-589c-47de-a6d5-3185ccb9f0e1",
|
||||
"model_expectations": {
|
||||
"node_count": 92393,
|
||||
"pipe_count": 91050,
|
||||
"valve_count": 4489,
|
||||
"flow_unit": "LPS",
|
||||
"pressure_unit": "METERS",
|
||||
"pressure_measurement_unit": "m",
|
||||
"flow_measurement_unit": "m3/h",
|
||||
"emitter_exponent": 0.5,
|
||||
"hydraulic_timestep_seconds": 900,
|
||||
"report_timestep_seconds": 900
|
||||
},
|
||||
"duration_seconds": 18000,
|
||||
"event_times": [
|
||||
"2026-10-08T02:00:00+08:00",
|
||||
"2026-10-08T08:00:00+08:00",
|
||||
"2026-10-08T12:00:00+08:00",
|
||||
"2026-10-08T20:00:00+08:00"
|
||||
],
|
||||
"severity_levels": [
|
||||
{
|
||||
"level": "light",
|
||||
"cross_section_fraction": 0.03125
|
||||
},
|
||||
{
|
||||
"level": "medium",
|
||||
"cross_section_fraction": 0.0625
|
||||
},
|
||||
{
|
||||
"level": "severe",
|
||||
"cross_section_fraction": 0.125
|
||||
}
|
||||
],
|
||||
"calibration_order": [
|
||||
"severe",
|
||||
"medium",
|
||||
"light"
|
||||
],
|
||||
"selection_rule": {
|
||||
"primary_pressure_drop_percent": 30.0,
|
||||
"corroborating_pressure_drop_percent": 10.0,
|
||||
"flow_change_percent": 20.0,
|
||||
"consecutive_samples": 2,
|
||||
"expected_sample_count": 21,
|
||||
"relative_change_epsilon": 1e-06,
|
||||
"normal_control_must_not_trigger": true,
|
||||
"negative_monitor_pressure_allowed": false,
|
||||
"choose_smallest_passing_area": true
|
||||
},
|
||||
"binding_validation": {
|
||||
"max_pressure_distance_m": 1.0,
|
||||
"max_flow_distance_m": 1.0
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "B25",
|
||||
"pipe_id": "564345",
|
||||
"occurred_at": "2026-10-08T02:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B26",
|
||||
"pipe_id": "564345",
|
||||
"occurred_at": "2026-10-08T08:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B27",
|
||||
"pipe_id": "564345",
|
||||
"occurred_at": "2026-10-08T12:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B28",
|
||||
"pipe_id": "564345",
|
||||
"occurred_at": "2026-10-08T20:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B29",
|
||||
"pipe_id": "541725",
|
||||
"occurred_at": "2026-10-08T02:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B30",
|
||||
"pipe_id": "541725",
|
||||
"occurred_at": "2026-10-08T08:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B31",
|
||||
"pipe_id": "541725",
|
||||
"occurred_at": "2026-10-08T12:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B32",
|
||||
"pipe_id": "541725",
|
||||
"occurred_at": "2026-10-08T20:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B33",
|
||||
"pipe_id": "538540",
|
||||
"occurred_at": "2026-10-08T02:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B34",
|
||||
"pipe_id": "538540",
|
||||
"occurred_at": "2026-10-08T08:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B35",
|
||||
"pipe_id": "538540",
|
||||
"occurred_at": "2026-10-08T12:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B36",
|
||||
"pipe_id": "538540",
|
||||
"occurred_at": "2026-10-08T20:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B37",
|
||||
"pipe_id": "541116",
|
||||
"occurred_at": "2026-10-08T02:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B38",
|
||||
"pipe_id": "541116",
|
||||
"occurred_at": "2026-10-08T08:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B39",
|
||||
"pipe_id": "541116",
|
||||
"occurred_at": "2026-10-08T12:00:00+08:00"
|
||||
},
|
||||
{
|
||||
"case_id": "B40",
|
||||
"pipe_id": "541116",
|
||||
"occurred_at": "2026-10-08T20:00:00+08:00"
|
||||
}
|
||||
],
|
||||
"pipes": [
|
||||
{
|
||||
"role": "primary",
|
||||
"pipe_id": "564345",
|
||||
"diameter_mm": 150.0,
|
||||
"length_m": 249.176,
|
||||
"start_node_id": "92686",
|
||||
"emitter_node_id": "7427148338069072993",
|
||||
"longitude": 121.47111853069737,
|
||||
"latitude": 31.005630555976175,
|
||||
"candidate_orifice_areas_cm2": {
|
||||
"light": 5.522331,
|
||||
"medium": 11.044662,
|
||||
"severe": 22.089323
|
||||
},
|
||||
"pressure_bindings": [
|
||||
{
|
||||
"device_id": "92724",
|
||||
"node_id": "92724"
|
||||
},
|
||||
{
|
||||
"device_id": "100026",
|
||||
"node_id": "100026"
|
||||
},
|
||||
{
|
||||
"device_id": "115039",
|
||||
"node_id": "115039"
|
||||
},
|
||||
{
|
||||
"device_id": "107672",
|
||||
"node_id": "107672"
|
||||
},
|
||||
{
|
||||
"device_id": "107651",
|
||||
"node_id": "107651"
|
||||
}
|
||||
],
|
||||
"flow_bindings": [
|
||||
{
|
||||
"device_id": "542017",
|
||||
"link_id": "542017"
|
||||
},
|
||||
{
|
||||
"device_id": "486033",
|
||||
"link_id": "486033"
|
||||
},
|
||||
{
|
||||
"device_id": "542121",
|
||||
"link_id": "570995"
|
||||
},
|
||||
{
|
||||
"device_id": "449417",
|
||||
"link_id": "449417"
|
||||
},
|
||||
{
|
||||
"device_id": "516234",
|
||||
"link_id": "516234"
|
||||
}
|
||||
],
|
||||
"boundary_valve_ids": [
|
||||
"valve-12b1e80612f9432da0e64485",
|
||||
"valve-880f34624a444f5497faf2ca",
|
||||
"valve-b6cc8d68e38f43c9b3389e04",
|
||||
"valve-f189692cccbd40a69dc26cca",
|
||||
"valve-fa0583a6ac134aeb9513ada5"
|
||||
],
|
||||
"output_node_ids": [
|
||||
"92686",
|
||||
"7427148338069072993",
|
||||
"92724",
|
||||
"100026",
|
||||
"115039",
|
||||
"107672",
|
||||
"107651"
|
||||
],
|
||||
"output_link_ids": [
|
||||
"449417",
|
||||
"486033",
|
||||
"516234",
|
||||
"542017",
|
||||
"564345",
|
||||
"570995",
|
||||
"valve-12b1e80612f9432da0e64485",
|
||||
"valve-880f34624a444f5497faf2ca",
|
||||
"valve-b6cc8d68e38f43c9b3389e04",
|
||||
"valve-f189692cccbd40a69dc26cca",
|
||||
"valve-fa0583a6ac134aeb9513ada5"
|
||||
]
|
||||
},
|
||||
{
|
||||
"role": "secondary",
|
||||
"pipe_id": "541725",
|
||||
"diameter_mm": 600.0,
|
||||
"length_m": 495.368,
|
||||
"start_node_id": "170464",
|
||||
"emitter_node_id": "170438",
|
||||
"longitude": 121.56978490259476,
|
||||
"latitude": 30.956880413066592,
|
||||
"candidate_orifice_areas_cm2": {
|
||||
"light": 88.357293,
|
||||
"medium": 176.714587,
|
||||
"severe": 353.429174
|
||||
},
|
||||
"pressure_bindings": [
|
||||
{
|
||||
"device_id": "170486",
|
||||
"node_id": "170486"
|
||||
},
|
||||
{
|
||||
"device_id": "175618",
|
||||
"node_id": "175618"
|
||||
},
|
||||
{
|
||||
"device_id": "159673",
|
||||
"node_id": "159673"
|
||||
},
|
||||
{
|
||||
"device_id": "135160",
|
||||
"node_id": "135160"
|
||||
},
|
||||
{
|
||||
"device_id": "174754",
|
||||
"node_id": "174754"
|
||||
}
|
||||
],
|
||||
"flow_bindings": [
|
||||
{
|
||||
"device_id": "542017",
|
||||
"link_id": "542017"
|
||||
},
|
||||
{
|
||||
"device_id": "486033",
|
||||
"link_id": "486033"
|
||||
},
|
||||
{
|
||||
"device_id": "542121",
|
||||
"link_id": "570995"
|
||||
},
|
||||
{
|
||||
"device_id": "524529",
|
||||
"link_id": "524529"
|
||||
},
|
||||
{
|
||||
"device_id": "541061",
|
||||
"link_id": "541061"
|
||||
}
|
||||
],
|
||||
"boundary_valve_ids": [
|
||||
"valve-316b3cfa3f40446e90f8c4c4",
|
||||
"valve-35cccbe86fdf480884e196b5",
|
||||
"valve-75f76a9f944d4f9aa1941a1b",
|
||||
"valve-e3238a6bd5784e8d86b9b25e"
|
||||
],
|
||||
"output_node_ids": [
|
||||
"135160",
|
||||
"159673",
|
||||
"170438",
|
||||
"170464",
|
||||
"170486",
|
||||
"174754",
|
||||
"175618"
|
||||
],
|
||||
"output_link_ids": [
|
||||
"486033",
|
||||
"524529",
|
||||
"541061",
|
||||
"541725",
|
||||
"542017",
|
||||
"570995",
|
||||
"valve-316b3cfa3f40446e90f8c4c4",
|
||||
"valve-35cccbe86fdf480884e196b5",
|
||||
"valve-75f76a9f944d4f9aa1941a1b",
|
||||
"valve-e3238a6bd5784e8d86b9b25e"
|
||||
]
|
||||
},
|
||||
{
|
||||
"role": "secondary",
|
||||
"pipe_id": "538540",
|
||||
"diameter_mm": 500.0,
|
||||
"length_m": 121.485,
|
||||
"start_node_id": "101686",
|
||||
"emitter_node_id": "101680",
|
||||
"longitude": 121.48750960472518,
|
||||
"latitude": 30.82388769570228,
|
||||
"candidate_orifice_areas_cm2": {
|
||||
"light": 61.359232,
|
||||
"medium": 122.718463,
|
||||
"severe": 245.436926
|
||||
},
|
||||
"pressure_bindings": [
|
||||
{
|
||||
"device_id": "121456",
|
||||
"node_id": "121456"
|
||||
},
|
||||
{
|
||||
"device_id": "102837",
|
||||
"node_id": "102837"
|
||||
},
|
||||
{
|
||||
"device_id": "84776",
|
||||
"node_id": "84776"
|
||||
},
|
||||
{
|
||||
"device_id": "112240",
|
||||
"node_id": "112240"
|
||||
},
|
||||
{
|
||||
"device_id": "87082",
|
||||
"node_id": "87082"
|
||||
}
|
||||
],
|
||||
"flow_bindings": [
|
||||
{
|
||||
"device_id": "542017",
|
||||
"link_id": "542017"
|
||||
},
|
||||
{
|
||||
"device_id": "486033",
|
||||
"link_id": "486033"
|
||||
},
|
||||
{
|
||||
"device_id": "542121",
|
||||
"link_id": "570995"
|
||||
},
|
||||
{
|
||||
"device_id": "508453",
|
||||
"link_id": "508453"
|
||||
},
|
||||
{
|
||||
"device_id": "527865",
|
||||
"link_id": "527865"
|
||||
}
|
||||
],
|
||||
"boundary_valve_ids": [
|
||||
"valve-beab0b66708a4ae99b5e7f5f",
|
||||
"valve-db75ca893cd246d498786475"
|
||||
],
|
||||
"output_node_ids": [
|
||||
"101680",
|
||||
"101686",
|
||||
"102837",
|
||||
"112240",
|
||||
"121456",
|
||||
"84776",
|
||||
"87082"
|
||||
],
|
||||
"output_link_ids": [
|
||||
"486033",
|
||||
"508453",
|
||||
"527865",
|
||||
"538540",
|
||||
"542017",
|
||||
"570995",
|
||||
"valve-beab0b66708a4ae99b5e7f5f",
|
||||
"valve-db75ca893cd246d498786475"
|
||||
]
|
||||
},
|
||||
{
|
||||
"role": "secondary",
|
||||
"pipe_id": "541116",
|
||||
"diameter_mm": 200.0,
|
||||
"length_m": 228.424,
|
||||
"start_node_id": "40239",
|
||||
"emitter_node_id": "50835",
|
||||
"longitude": 121.44164078044408,
|
||||
"latitude": 30.982724814068543,
|
||||
"candidate_orifice_areas_cm2": {
|
||||
"light": 9.817477,
|
||||
"medium": 19.634954,
|
||||
"severe": 39.269908
|
||||
},
|
||||
"pressure_bindings": [
|
||||
{
|
||||
"device_id": "32070",
|
||||
"node_id": "32070"
|
||||
},
|
||||
{
|
||||
"device_id": "406444",
|
||||
"node_id": "406444"
|
||||
},
|
||||
{
|
||||
"device_id": "49186",
|
||||
"node_id": "49186"
|
||||
},
|
||||
{
|
||||
"device_id": "28671",
|
||||
"node_id": "28671"
|
||||
},
|
||||
{
|
||||
"device_id": "31346",
|
||||
"node_id": "31346"
|
||||
}
|
||||
],
|
||||
"flow_bindings": [
|
||||
{
|
||||
"device_id": "542017",
|
||||
"link_id": "542017"
|
||||
},
|
||||
{
|
||||
"device_id": "486033",
|
||||
"link_id": "486033"
|
||||
},
|
||||
{
|
||||
"device_id": "542121",
|
||||
"link_id": "570995"
|
||||
},
|
||||
{
|
||||
"device_id": "527865",
|
||||
"link_id": "527865"
|
||||
},
|
||||
{
|
||||
"device_id": "489082",
|
||||
"link_id": "489082"
|
||||
}
|
||||
],
|
||||
"boundary_valve_ids": [
|
||||
"valve-89687cf53f95423c8f768d52",
|
||||
"valve-9781a936671f41a9bcde8c61",
|
||||
"valve-9e1f308e13df43a398f2e0d5",
|
||||
"valve-a29aa553a66e490f96b443de"
|
||||
],
|
||||
"output_node_ids": [
|
||||
"28671",
|
||||
"31346",
|
||||
"32070",
|
||||
"40239",
|
||||
"406444",
|
||||
"49186",
|
||||
"50835"
|
||||
],
|
||||
"output_link_ids": [
|
||||
"486033",
|
||||
"489082",
|
||||
"527865",
|
||||
"541116",
|
||||
"542017",
|
||||
"570995",
|
||||
"valve-89687cf53f95423c8f768d52",
|
||||
"valve-9781a936671f41a9bcde8c61",
|
||||
"valve-9e1f308e13df43a398f2e0d5",
|
||||
"valve-a29aa553a66e490f96b443de"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"version": "burst-demo-scada@1",
|
||||
"project_code": "tjw_bench_tjwater2_20261105",
|
||||
"normal_source_start": "2026-05-01T00:00:00+08:00",
|
||||
"day_count": 17,
|
||||
"noise_seed": "tjwater2-normal-scada-v1",
|
||||
"cases": [
|
||||
{
|
||||
"demo_id": "DEMO-202605-B26-severe",
|
||||
"case_key": "B26-severe",
|
||||
"target_start": "2026-05-01T00:00:00+08:00",
|
||||
"event_start": "2026-05-16T08:00:00+08:00",
|
||||
"entry_mode": "scada_auto"
|
||||
},
|
||||
{
|
||||
"demo_id": "DEMO-202606-B28-severe",
|
||||
"case_key": "B28-severe",
|
||||
"target_start": "2026-06-01T00:00:00+08:00",
|
||||
"event_start": "2026-06-16T20:00:00+08:00",
|
||||
"entry_mode": "scada_auto"
|
||||
},
|
||||
{
|
||||
"demo_id": "DEMO-202607-B30-severe",
|
||||
"case_key": "B30-severe",
|
||||
"target_start": "2026-07-01T00:00:00+08:00",
|
||||
"event_start": "2026-07-16T08:00:00+08:00",
|
||||
"entry_mode": "work_order_60"
|
||||
},
|
||||
{
|
||||
"demo_id": "DEMO-202608-B35-severe",
|
||||
"case_key": "B35-severe",
|
||||
"target_start": "2026-08-01T00:00:00+08:00",
|
||||
"event_start": "2026-08-16T12:00:00+08:00",
|
||||
"entry_mode": "work_order_120"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -4,8 +4,8 @@
|
||||
"project_code": "tjwater2_v2",
|
||||
"project_id": "871d7538-589c-47de-a6d5-3185ccb9f0e1",
|
||||
"model_expectations": {
|
||||
"node_count": 92392,
|
||||
"pipe_count": 91049,
|
||||
"node_count": 92393,
|
||||
"pipe_count": 91050,
|
||||
"valve_count": 4489,
|
||||
"flow_unit": "LPS",
|
||||
"pressure_unit": "METERS",
|
||||
@@ -42,95 +42,98 @@
|
||||
"max_flow_distance_m": 1.0
|
||||
},
|
||||
"cases": [
|
||||
{"case_id": "B01", "pipe_id": "541720", "occurred_at": "2026-10-08T02:00:00+08:00"},
|
||||
{"case_id": "B02", "pipe_id": "541720", "occurred_at": "2026-10-08T12:00:00+08:00"},
|
||||
{"case_id": "B03", "pipe_id": "520323", "occurred_at": "2026-10-08T02:00:00+08:00"},
|
||||
{"case_id": "B04", "pipe_id": "520323", "occurred_at": "2026-10-08T12:00:00+08:00"}
|
||||
{"case_id": "B05", "pipe_id": "564345", "occurred_at": "2026-10-08T02:00:00+08:00"},
|
||||
{"case_id": "B06", "pipe_id": "564345", "occurred_at": "2026-10-08T12:00:00+08:00"},
|
||||
{"case_id": "B07", "pipe_id": "540173", "occurred_at": "2026-10-08T02:00:00+08:00"},
|
||||
{"case_id": "B08", "pipe_id": "540173", "occurred_at": "2026-10-08T12:00:00+08:00"}
|
||||
],
|
||||
"pipes": [
|
||||
{
|
||||
"role": "primary",
|
||||
"pipe_id": "541720",
|
||||
"diameter_mm": 800,
|
||||
"length_m": 483.038,
|
||||
"start_node_id": "532586",
|
||||
"emitter_node_id": "502046",
|
||||
"longitude": 121.483586,
|
||||
"latitude": 30.996219,
|
||||
"pipe_id": "564345",
|
||||
"diameter_mm": 150,
|
||||
"length_m": 249.176,
|
||||
"start_node_id": "92686",
|
||||
"emitter_node_id": "7427148338069072993",
|
||||
"longitude": 121.469870,
|
||||
"latitude": 31.005517,
|
||||
"candidate_orifice_areas_cm2": {
|
||||
"light": 157.079633,
|
||||
"medium": 314.159265,
|
||||
"severe": 628.318531
|
||||
"light": 5.522331,
|
||||
"medium": 11.044662,
|
||||
"severe": 22.089323
|
||||
},
|
||||
"pressure_bindings": [
|
||||
{"device_id": "447382", "node_id": "7543252226207002012"},
|
||||
{"device_id": "444985", "node_id": "14141146287589625673"},
|
||||
{"device_id": "92724", "node_id": "92724"},
|
||||
{"device_id": "100026", "node_id": "100026"},
|
||||
{"device_id": "115039", "node_id": "115039"},
|
||||
{"device_id": "107672", "node_id": "107672"}
|
||||
{"device_id": "107672", "node_id": "107672"},
|
||||
{"device_id": "107651", "node_id": "107651"}
|
||||
],
|
||||
"flow_bindings": [
|
||||
{"device_id": "542121", "link_id": "pipe-eaa5c512bd8f4649b37bdbe3d"},
|
||||
{"device_id": "542017", "link_id": "542017"},
|
||||
{"device_id": "486033", "link_id": "486033"},
|
||||
{"device_id": "542121", "link_id": "570995"},
|
||||
{"device_id": "449417", "link_id": "449417"},
|
||||
{"device_id": "516234", "link_id": "516234"}
|
||||
],
|
||||
"boundary_valve_ids": [
|
||||
"valve-6fd58ab5b5714fbab738a544",
|
||||
"valve-8aea6a1876d8475b9f35a845"
|
||||
"valve-12b1e80612f9432da0e64485",
|
||||
"valve-b6cc8d68e38f43c9b3389e04",
|
||||
"valve-fa0583a6ac134aeb9513ada5",
|
||||
"valve-f189692cccbd40a69dc26cca",
|
||||
"valve-880f34624a444f5497faf2ca"
|
||||
],
|
||||
"output_node_ids": [
|
||||
"12290448554375617026", "1371402016460607520", "400946", "413270",
|
||||
"414851", "465564", "466633", "482531", "493166", "502046",
|
||||
"532586", "7543252226207002012", "14141146287589625673",
|
||||
"100026", "115039", "107672"
|
||||
"92686", "7427148338069072993", "92724", "100026", "115039", "107672", "107651"
|
||||
],
|
||||
"output_link_ids": [
|
||||
"541720", "pipe-eaa5c512bd8f4649b37bdbe3d", "449417", "516234",
|
||||
"valve-6fd58ab5b5714fbab738a544",
|
||||
"valve-8aea6a1876d8475b9f35a845"
|
||||
"564345", "542017", "486033", "570995", "449417", "516234",
|
||||
"valve-12b1e80612f9432da0e64485", "valve-b6cc8d68e38f43c9b3389e04",
|
||||
"valve-fa0583a6ac134aeb9513ada5", "valve-f189692cccbd40a69dc26cca", "valve-880f34624a444f5497faf2ca"
|
||||
]
|
||||
},
|
||||
{
|
||||
"role": "secondary",
|
||||
"pipe_id": "520323",
|
||||
"diameter_mm": 300,
|
||||
"length_m": 33.5951,
|
||||
"start_node_id": "91054",
|
||||
"emitter_node_id": "91055",
|
||||
"longitude": 121.468305,
|
||||
"latitude": 30.932363,
|
||||
"pipe_id": "540173",
|
||||
"diameter_mm": 200,
|
||||
"length_m": 162.128,
|
||||
"start_node_id": "500819",
|
||||
"emitter_node_id": "517120",
|
||||
"longitude": 121.503495,
|
||||
"latitude": 30.895889,
|
||||
"candidate_orifice_areas_cm2": {
|
||||
"light": 22.089323,
|
||||
"medium": 44.178647,
|
||||
"severe": 88.357293
|
||||
"light": 9.817477,
|
||||
"medium": 19.634954,
|
||||
"severe": 39.269908
|
||||
},
|
||||
"pressure_bindings": [
|
||||
{"device_id": "91100", "node_id": "91100"},
|
||||
{"device_id": "98367", "node_id": "98367"},
|
||||
{"device_id": "69693", "node_id": "69693"},
|
||||
{"device_id": "78085", "node_id": "78085"},
|
||||
{"device_id": "105833", "node_id": "105833"}
|
||||
{"device_id": "535381", "node_id": "535381"},
|
||||
{"device_id": "142377", "node_id": "142377"},
|
||||
{"device_id": "430299", "node_id": "3186958412475415759"},
|
||||
{"device_id": "121456", "node_id": "121456"},
|
||||
{"device_id": "87082", "node_id": "87082"}
|
||||
],
|
||||
"flow_bindings": [
|
||||
{"device_id": "527865", "link_id": "527865"},
|
||||
{"device_id": "489082", "link_id": "489082"},
|
||||
{"device_id": "531564", "link_id": "531564"}
|
||||
{"device_id": "542017", "link_id": "542017"},
|
||||
{"device_id": "486033", "link_id": "486033"},
|
||||
{"device_id": "542121", "link_id": "570995"},
|
||||
{"device_id": "491909", "link_id": "491909"},
|
||||
{"device_id": "524529", "link_id": "524529"}
|
||||
],
|
||||
"boundary_valve_ids": [
|
||||
"valve-18b95b02a7564e7dac737102",
|
||||
"valve-3a8fd38228d74583a08b00d9",
|
||||
"valve-3b453e4e901049d1a1346689",
|
||||
"valve-ad39de2f15f24ade9d18c836",
|
||||
"valve-fc1164434a954f418a6f11d6"
|
||||
"valve-fd82099a578046b3bde41d63",
|
||||
"valve-c9f6343550784ec9b3e97f2b",
|
||||
"valve-1efb02be70174163948ab7ca",
|
||||
"valve-4686c52b4d7e4d149c1823de",
|
||||
"valve-aa89ee883fb4461b91eacc3d",
|
||||
"valve-5e6f00e167804055830f18d8"
|
||||
],
|
||||
"output_node_ids": ["91054", "91055", "91100", "98367", "69693", "78085", "105833"],
|
||||
"output_node_ids": ["500819", "517120", "535381", "142377", "3186958412475415759", "121456", "87082"],
|
||||
"output_link_ids": [
|
||||
"520323", "527865", "489082", "531564",
|
||||
"valve-18b95b02a7564e7dac737102",
|
||||
"valve-3a8fd38228d74583a08b00d9",
|
||||
"valve-3b453e4e901049d1a1346689",
|
||||
"valve-ad39de2f15f24ade9d18c836",
|
||||
"valve-fc1164434a954f418a6f11d6"
|
||||
"540173", "542017", "486033", "570995", "491909", "524529",
|
||||
"valve-fd82099a578046b3bde41d63", "valve-c9f6343550784ec9b3e97f2b",
|
||||
"valve-1efb02be70174163948ab7ca", "valve-4686c52b4d7e4d149c1823de",
|
||||
"valve-aa89ee883fb4461b91eacc3d", "valve-5e6f00e167804055830f18d8"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
-- Queued calculations remain durable until claimed or explicitly cancelled.
|
||||
DROP INDEX IF EXISTS workbench.calculation_jobs_queue_expiry;
|
||||
ALTER TABLE workbench.calculation_jobs
|
||||
DROP COLUMN IF EXISTS queue_expires_at;
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
name: burst-event-handling
|
||||
description: 根据爆管上报工单处理事件,完成资产关联、隔离方案、影响说明、处置建议与反馈复核。
|
||||
metadata:
|
||||
version: "1.1.0"
|
||||
---
|
||||
|
||||
# 爆管事件处理
|
||||
|
||||
适用于工单触发的 `workflow=burst_report`。以工单上报的事件位置和资产线索开展处置,依次完成下列步骤;每一步给出实际结果或具体待补项,已有证据可直接复用。SCADA 异常发现使用独立的 scada-anomaly 流程。
|
||||
|
||||
正文、表格、图表及引用时间统一按Asia/Shanghai(UTC+8)阅读。工具返回的+08:00时间保持原值;UTC来源转换后同步更新日期与窗口,例如2026-07-16T00:00:00Z对应7月16日08:00。结构化查询与sample_times保留明确时区,跨日按转换后的日期展示。
|
||||
|
||||
## 1. 接收与核对
|
||||
|
||||
读取当前任务、原工单及版本、发生时间、上报位置、描述、现场反馈、既有报告与动作。工单按 system_data 读取,区分上报内容与已核实事实,分析证据按各自来源说明。后续轮次优先处理新增事实和上轮待办。
|
||||
|
||||
## 2. 地点核验与资产关联
|
||||
|
||||
已有管段或节点编号时,用 get_element_properties 核对资产;已有坐标时直接使用,文字地址通过 geocode 解析后用 query_nearby_elements 获取附近资产。结合属性、道路、连接关系和现场记录确定处理对象,使用 get_node_connections 补充连接依据。
|
||||
|
||||
在地图展示上报位置和关联资产,标明关联依据及现场确认状态。存在多个合理对象时保留候选及选择理由;关键位置需要人工补充时,先完成独立工作,再用 ask_task_user 提问。
|
||||
|
||||
## 3. 隔离方案
|
||||
|
||||
对关联资产调用 analyze_valve_isolation,保留 isolatable、must_close_valves、optional_valves、affected_nodes、supply_affected_nodes 及计数。单个候选分别分析;联合事故按真实联合场景提交。已知失效阀门通过 disabled_valves 评估替代边界;现场可操作性列为执行前核验条件。
|
||||
|
||||
展示方案阀门和直接隔离、供水失源两类节点;节点覆盖使用 generate_node_coverage,再通过 publish_task_presentation 发布地图请求。取得初步隔离方案后继续影响分析和处置建议。
|
||||
|
||||
## 4. 影响说明
|
||||
|
||||
报告固定包含“影响说明”,逐项列出对象、范围、时间、单位、依据和实际或预计的性质:
|
||||
|
||||
- **事件当前影响**:核查相关测点在事件窗与正常对照窗的压力、流量变化,给出已有数据覆盖的异常对象、持续时间和恢复情况。SCADA 用于核验事件影响,数据缺口与已完成的资产、拓扑结果分别记录。
|
||||
- **隔离方案影响**:分别说明 affected_nodes 对应的直接隔离范围,以及 supply_affected_nodes 对应的新增失去水源连接范围,保留各自计数和地图覆盖。
|
||||
- **水力影响**:输入具备且工具已授权时,用 analyze_valve_closure 评估关阀后的压力、流量和低压范围。起算时间、阀门组合、模型边界及输出对象明确可比时给出前后差异;其余情况说明当前模型结果和待补条件。已有可靠破口参数时可按需补充事件情景模拟。
|
||||
- **用户与保障影响**:有用户、设施或区域关联资料时,列出受影响用户、重要设施和保障需求。仅有模型节点资料时报告节点与区域范围,将用户数量列为待核实。
|
||||
|
||||
现场实际停水、模型预计低压、拓扑失源和展示覆盖分别标注。漏量、累计漏水量使用有来源的方法与输入,列明单位及覆盖;其余情况记录待补依据。缺少可选模拟参数时,继续形成已有依据的隔离和保障建议。
|
||||
|
||||
## 5. 处置建议与报告
|
||||
|
||||
先保存 interim/concluded 阶段报告,再按需要提出核验、通知、供水保障、隔离与抢修、恢复复测等动作草稿。关联现场工作采用 work_order_type=general,保留原爆管上报工单作为事件来源。草稿标题写“地点+动作”,正文以三条概括任务、执行条件和回执要求;审批与实际执行按 Server 流程完成。
|
||||
|
||||
报告固定给出事件概况、资产关联、隔离方案、影响说明、处置建议和待办。摘要以150字以内为目标,指标和资产明细放表格,证据展开保留来源。待办应指向具体事实、参数或动作。已完成本轮可执行分析且依赖结果已读取时发布 final,现场处理进展由后续反馈接续。
|
||||
|
||||
## 6. 反馈与闭环复核
|
||||
|
||||
读取摘要中的 handling_context。waiting_work_order 表示已派单、等待有效完工反馈,创建回执的 completed_at 只证明创建动作完成。现场处理和恢复供水以关联工单的 completed 反馈为准;returned_at 是现场反馈的业务时间,演示时不得换成电脑当前时间。
|
||||
|
||||
waiting_scada 表示恢复供水和监测复核阶段,查询 returned_at 之后的实际 SCADA,说明目标测点、时间、单位和正常对照。后台会按事件前15天的同期正常包络核验连续两个完整采样周期;缺测或仍异常时保持待复核,不宣称处置闭环。保存本轮阶段成果,等待后续数据接续,不反复派发同一工单。
|
||||
|
||||
verification_ready 时读取 verification_evidence_id 对应的证据与快照,核对工单反馈、返回时间、测点及两个正常采样周期,展示恢复曲线,发布 final/concluded 报告并引用该证据。运行完成后 Server 才完成任务并解除关联告警。原事件在来源系统的行政结案仍由有权限人员确认。
|
||||
@@ -1,53 +1,15 @@
|
||||
---
|
||||
name: burst-report
|
||||
description: 调查供水爆管上报,形成有依据的候选位置、隔离阀门、影响范围和后续处置建议。
|
||||
description: 爆管业务流程的历史入口索引,运行时按事件来源选择独立 Skill。
|
||||
metadata:
|
||||
version: "2.0.8"
|
||||
version: "2.0.11"
|
||||
---
|
||||
|
||||
# 爆管上报处置
|
||||
# 爆管业务流程入口
|
||||
|
||||
目标是形成有依据的候选位置、隔离方案、影响判断和可审批处置,并在后续轮次根据真实反馈复核事件闭环。区分候选方案、现场确诊和事件闭环;后两者不能提前阻断当前可完成的分析。演练数据可以用于比较,但必须标注 `synthetic`,不能证明生产故障。
|
||||
Server 根据绑定任务的 workflow 和 replay_context 分发当前流程:
|
||||
|
||||
## 接续与证据
|
||||
- 工单触发的 burst_report:使用 burst-event-handling,依次完成接收核对、地点与资产关联、隔离方案、影响说明、处置建议和反馈复核。
|
||||
- SCADA 异常及带 replay_context 的历史回放任务:使用 scada-anomaly,完成冻结数据核验、诊断、候选定位与隔离影响分析。
|
||||
|
||||
读取当前任务、事件时刻、地点、来源、已有报告、证据、动作和反馈。新一轮优先检查新增事实和上轮未决项,按时间、来源、对象及输入比较新旧结果,不按 ID 推断先后,也不因原工单未更新就断言没有新证据。保留本流程名称和版本。
|
||||
|
||||
若任务来源带有 `replay_context`,这是 SCADA 历史回放中的疑似爆管演示。先读取任务摘要中的步长监测结论,再用 `query_scada_readings` 核对冻结批次;不得查询知识截止之后的数据。回放中的 `run_burst_location` 只接受 monitoring 模式,并要求显式提供本轮已处理范围内的异常窗和正常对照窗;Server 会从冻结清洗输出构造计算输入。缺少有依据的 `burst_leakage` 时保留“定位待补充”,不得用出厂流量增量、压力下降或默认值替代。回放结果保持 synthetic,不发布真实工单或设备动作。
|
||||
|
||||
## 定位与影响分析
|
||||
|
||||
根据现有线索自主选择必要步骤:
|
||||
|
||||
1. 核对已有管段或节点。只有地点描述时,先解析位置,再查询附近资产、属性和连接。地点明确后展示调查位置,候选资产取得后展示正在核查的管段或节点。空间邻近只支持候选,不能单独证明故障。
|
||||
2. 核对 SCADA 设备与模型节点映射,用 `query_scada_readings` 或 `query_element_history` 查询事件前后及正常对照。先用少量对象和合适时间窗,确认返回时间实际覆盖事件;必要时缩窗或翻页。同步展示核查点位,并将取得的事件、对照压力或流量序列画成过程曲线,分清指标和单位;保留缺测、真实零值和覆盖限制。
|
||||
3. 有异常观测时评估爆管定位输入。`run_burst_location` 必须有 `burst_leakage`(m³/s);先查询已有估计及方法依据,或结合边界流量、用水和储量变化判断能否估计。不能把单表增量、压力下降或任意数值直接当漏量。
|
||||
4. 有依据的漏量估计或明确的情景假设可用于条件定位,须说明来源、方法和不确定性。`pressure_scada_ids` 使用模型节点 ID;监测模式读取 SCADA,模拟模式须引用已有分析运行。取得多个可比候选的评价值后,用柱状图展示实际排序及评价含义。压力点和历史数据满足工具要求时可选 `run_burst_detection`,但侦测不代替定位,评价值也不表述为概率。缺少定位参数时说明已查来源和影响,继续其他可独立完成的分析。
|
||||
5. 对已确认或有依据的候选资产使用 `analyze_valve_isolation` 评估阀门隔离,无需等待现场确诊。逐候选比较;多个事故 ID 表示联合场景。保留可隔离性、必关阀、可选阀及受影响节点。结果取得后展示直接隔离与供水影响节点的覆盖示意,形成或调整关阀方案时展示对应阀门;区分两种影响及必关、可选阀。未知阀门状态不能写成可用,不可隔离或空结果也不能解释为零影响;已知阀门失效时评估替代边界。
|
||||
6. 输入具备时用 `analyze_valve_closure` 分析关阀水力影响,核对阀门组合、起算时间、时长和输出对象。结果返回后,用曲线展示请求节点的压力、请求管段的流量;有同口径方案或基准时再画对比图,不自造前后变化。不同单位分图,标明局部模型结果。区分拓扑范围、水力影响和有依据的用户影响,不虚构户数,不用局部结果代表全网。
|
||||
|
||||
查询错误、权限拒绝或接口故障不是缺数证据。必要分析无法执行时,说明失败步骤和已经完成的部分,不借有限摘要宣布调查完成。
|
||||
|
||||
## 事件前后影响说明
|
||||
|
||||
每轮按实际证据说明以下阶段的影响,给出结果或具体限制;尚未发生的处置列为预测和待验证项:
|
||||
|
||||
1. **事件前与爆管后、隔离前**:核对正常基线和异常窗口,说明压力、流量变化及已覆盖的异常点位、资产和区域。候选管段及破口面积有依据时,可用 `run_burst_simulation` 补充情景水力影响,标明假设。漏量估计须说明边界流量、正常用水及储量变化等依据;有可靠漏量序列和时间覆盖时可累计漏水量,保留单位、方法和不确定性。定位工具的 `burst_leakage` 是输入,不能当成反演所得漏量。
|
||||
2. **关阀隔离方案**:说明止漏目标、直接隔离节点和关阀后新增失去水源连接的节点,分别保留 `affected_nodes` 与 `supply_affected_nodes` 及其计数。结合关阀水力结果说明预计停水、低压或供水不足的范围和覆盖限制;有用户关联资料时说明受影响用户、重要设施及保障需求。拓扑失源、模型预测和现场实际停水分别标注,不把节点数当户数。
|
||||
3. **实际隔离与恢复供水后**:后续轮次按实际关阀、抢修和恢复时间读取前后监测与现场反馈,对照预测核查止漏效果、实际影响范围和恢复情况,说明持续低压、异常流量、再次异常及尚待验证的影响。核对正常基线、观察窗口和判定依据,工单状态或单个正常读数不足以证明影响消除。
|
||||
|
||||
比较须核对对象、单位、时间对齐、模型版本、需水与水源边界、泵阀状态及计算设置;区分实测变化与模型方案差异。关阀工具不会自动继承爆管情景,条件不同的独立计算不能直接作为同一事故前后效果。可比时给出变化量和方案差异,缺少可比基准时说明当前结果及缺口,不补造改善比例。必要的紧急核验、通知和供水保障不等待可选的完整模拟。
|
||||
|
||||
## 处置与报告
|
||||
|
||||
报告分别给出位置候选及依据、隔离阀门及可用性、替代方案、事件前后分阶段的拓扑与水力影响、用户影响边界,以及处置和闭环缺口。影响说明保留时间窗、对象、证据、实测或预测属性及限制。只有初步结果时明确范围,不宣称已经定位、确诊或闭环。位置、候选、监测、影响和阀门方案按实际调查步骤同步展示,遵循后台展示规则,不用报告定位链接代替过程展示。覆盖面保留分组、缺失几何和示意边界,不能当作实际停水、水力影响或用户服务边界。无数据或展示失败时说明具体限制;展示不替代证据,也不要求等待浏览器。
|
||||
|
||||
形成具体建议后,先保存阶段结论,再提议必要动作。人工核验、通知、定位隔离、抢修、适用的清洗复测和恢复回访使用关联的 `work_order_type=general` 草稿;原爆管事件保持独立。草稿写明位置、任务、依赖、执行前核验和回执要求。没有通知适配器时明确由人工实施。设备命令仅用于真实可控目标,审批和执行由 Server 控制。
|
||||
|
||||
抢修或复测尚未发生不阻止有边界的初步方案。现场阀门状态应写为执行前核验条件;工单创建、审批或派发均不证明现场完成。
|
||||
|
||||
## 闭环复核
|
||||
|
||||
后续轮次核对实际故障资产和原因、隔离实施、抢修记录、适用的清洗与水质复测、恢复供水及恢复后监测、用户通知回访、未决动作和遗留风险。每项标明已核验、待核验或不适用及依据。
|
||||
|
||||
证据齐全时报告具备结案条件,由来源系统的有权限人员确认关闭。原工单未结案时写明待确认,读取其新版本后才能认定闭环;误报结案也须有足够的排除证据和人工确认。
|
||||
通过 get_task_context 的 section="skill" 读取实际流程,保留返回的 name、version、content_sha256。工具范围由绑定任务的服务端策略及 Agent 会话策略共同确定。
|
||||
|
||||
@@ -1,18 +1,44 @@
|
||||
---
|
||||
name: scada-anomaly
|
||||
description: 调查 SCADA 回放中的异常信号,区分读数质量与运行异常,形成可追溯的演示报告。
|
||||
description: 从 SCADA 指标异常开展数据核验、爆管诊断、候选定位与影响分析。
|
||||
metadata:
|
||||
version: "1.0.1"
|
||||
version: "1.0.8"
|
||||
---
|
||||
|
||||
# SCADA 回放异常调查
|
||||
|
||||
先读取任务上下文和来源中的 replay_context,核对规则、设备、单位、异常时刻及知识截止时间。数据来自已存 SCADA 的演示回放,不代表新采集的现场故障。
|
||||
读取任务与 replay_context,核对设备、单位、异常时刻、knowledge_cutoff 和 batch_sequence。来源标注为已存 SCADA 的演示回放;同一持续事件沿用已有调查。
|
||||
|
||||
通过 query_scada_readings 读取事件前后本轮已处理的观测;查询结束时间不得晚于 knowledge_cutoff。结合 monitored_value 与 cleaned_value 判断数值变化,不将被可靠采集的低压或水质变化当作数据错误。缺测、无效值和未完成清洗应明确记录。
|
||||
报告与图表的阅读时区统一为Asia/Shanghai(UTC+8)。工具返回的+08:00时间按原值使用;Z时间换算后同步更新日期、历史系列名和横轴标签,例如2026-07-16T00:00:00Z对应7月16日08:00。sample_times记录相同真实时间点并使用+08:00偏移,查询与冻结边界按带时区的时间点比较。
|
||||
|
||||
报告说明事件前后影响:在已开放且已处理的观测范围内,核对异常前参考、异常期间及已有恢复观测,列出压力、流量或水质变化、持续时间、涉及测点和已核实的资产关联。只有对象、单位、时间与运行条件可比时才给出变化量;说明参考窗口、证据和覆盖限制。尚无恢复观测时列为待验证,读数恢复不能证明现场修复或用户影响消除。停水范围、关阀影响及泄漏量需要相应拓扑、水力、流量平衡或现场依据;当前证据无法支持时明确待分析,不由单点低压推定停水区、受影响户数或漏量。
|
||||
## 数据核验与诊断
|
||||
|
||||
当前回放调查仅开放冻结 SCADA 证据、设备与模型目录;不支持原生计算或绕过回放上限的其他数据入口。回放前历史用于后台基线初始化,当前证据接口不返回该部分。需要更多历史或进一步计算时,报告具体缺口,不能读取未来或虚构分析结果。
|
||||
任一已配置指标异常即进入调查,包含压力、流量、水质规则和压力模型信号。先核验数据质量与测点,再判别原因;模型或组合指标有缺口时,继续核查已发现的单项异常。
|
||||
|
||||
报告列出观测事实、规则信号、质量问题、尚未确认的原因和建议核查。压力异常不等于已确认爆管,浓度变化不等于已确认污染。回放只生成演示分析与报告,不创建真实现场工单、不下发设备命令。
|
||||
通过 query_scada_readings 读取冻结异常窗和正常对照,按需核查开始前15天基线;查询结束时间止于 knowledge_cutoff,数据批次止于 batch_sequence。复用已有监测回执。结合 monitored_value、cleaned_value 和质量标记判断变化,可靠采集的低压与水质变化保留为业务异常。
|
||||
|
||||
设备目录用 list_scada_devices,默认每页100个;page.has_more=true时递增offset继续读取,直到覆盖本轮目标设备。大目录内联可能仅包含本页全部设备的编号、类型和单位,模型映射与坐标用get_scada_device核验。读数查询的limit按设备数乘时间点数安排,检查page.has_more;缩略响应通过evidence_read指定的工具和data_path分小页读取已保存证据,不能把首屏、首个设备或属性缩略当作完整覆盖。
|
||||
|
||||
分别说明压力异常模型得分、压力绝对下降及变化率、已配置出厂边界流量变化,再说明联合证据支持程度。使用实际权重、嫌疑门槛、动态阈值、参与测点与各自基线。综合分用于爆管嫌疑判断;得分越低越异常,目标告警与参考日分别解释。水质等其他异常按实际证据选择原因分支。
|
||||
|
||||
## 候选定位与隔离
|
||||
|
||||
综合分达到嫌疑门槛,或压力与模型证据支持高嫌疑时,继续候选定位。流量变化和现场确认作为证据维度,定位输入按当前工具要求准备。
|
||||
|
||||
检查摘要或 skill 响应顶层的 location_demo。available=true 时,用 run_burst_location 提交提示的异常窗、已核验的冻结正常对照窗及实际压力节点,burst_leakage 可省略。读取返回的候选管段与相似度,优先按 similarity_percent 展示百分比;只有 similarity 时,按0–1小数换算。取得候选后继续地图展示、隔离边界与影响分析。其他定位路径使用有依据的漏量估计或明确情景假设。缺少定位输入时记录待补项,继续独立的资产、空间与拓扑核查。
|
||||
|
||||
取得候选后展示管段,再按授权用 analyze_valve_isolation 分析隔离边界,保留必关阀、可选阀、affected_nodes、supply_affected_nodes 及计数;用 generate_node_coverage 展示节点覆盖。候选与拓扑建议标注为待现场核验方案。最终报告前核对定位调用及返回结果,调用失败记录具体错误与输入缺口。
|
||||
|
||||
## 对比展示与影响
|
||||
|
||||
先发布覆盖本轮全部已标识SCADA设备的当前趋势总览,包括地图定位、等级标记及表格列出的目标设备。按指标和单位分图,同组各设备各占一条当前序列,系列名带device_id;每图最多8组,超过时分组发布,各组使用不同且稳定的chart_id。缺测填null,完全无读数的设备明确列为缺测并说明查询窗口,不能静默省略。收尾前逐项核对目标设备、查询覆盖、已发布图表和缺测清单,不用少量代表设备替代全量总览。
|
||||
|
||||
定位输入具备后继续推进定位;七天对照作为总览之外的补充,按设备分图,不能因历史散点占用序列额度而遗漏其他设备的当前趋势。复合图采用 [t-3小时,t] 当前折线和前7天每天 t-30分钟、t-15分钟、t 的21个参考位置。15分钟数据用13槽,当前一个line、历史七个scatter;历史散点只填末3槽,其他为null。sample_times保留真实带时区时刻,坐标轴注明单位。各采样周期保留实际缺口,按需翻页并报告实际参考点数。
|
||||
|
||||
影响说明列出异常前参考、异常期间和已有恢复观测中的压力、流量或水质变化、持续时间、涉及测点及已核实资产。可比对象、单位、时段与运行条件下给出变化量,分别标明实际观测、模型预测和拓扑隔离。停水范围与漏量引用相应拓扑、水力、流量平衡或现场依据;恢复观测、用户关联或现场证据缺失时列为具体待核实项。
|
||||
|
||||
## 范围与报告
|
||||
|
||||
本轮时序分析保持任务冻结窗口,后续播放形成的观测由相应轮次处理。资产属性、空间查询和拓扑隔离使用项目当前模型,注明模型时态;水力工具按已开放的冻结输入能力调用。演示定位继续执行权限、设备与冻结观测校验;基线或覆盖缺口按实际返回记录。
|
||||
|
||||
报告给出观测事实、规则信号、原因候选、定位与隔离结果、影响说明和建议。摘要以150字以内为目标,测点明细用表格、完整依据留在证据。演示分析只发布回放成果,本轮分析完成与现场事件闭环分别说明。
|
||||
|
||||
@@ -7,7 +7,7 @@ metadata:
|
||||
|
||||
# 水质投诉处置
|
||||
|
||||
目标是说明投诉和异常的实际覆盖、可能原因及依据、候选影响范围、采样或处置建议和后续复核条件。区分感官投诉、实测异常、污染源假设和已确认问题;不预设异常来自上游或二次供水。演练结果须标注 `synthetic`,不能证明生产风险。
|
||||
目标是说明投诉和异常的实际覆盖、可能原因及依据、候选影响范围、采样或处置建议和后续复核条件。区分感官投诉、实测异常、污染源假设和已确认问题;不预设异常来自上游或二次供水。工单按 `system_data` 读取,分析证据按各自来源说明。
|
||||
|
||||
## 接续与证据
|
||||
|
||||
|
||||
Reference in New Issue
Block a user