新增管道健康风险预测 api

This commit is contained in:
JIANG
2025-12-17 17:02:22 +08:00
parent 0865bdb2ae
commit e3a04ec297
7 changed files with 297 additions and 18 deletions

View File

@@ -21,7 +21,7 @@ import globals
import uuid
import project_info
from api.postgresql_info import get_pgconn_string
from timescaledb.internal_queries import InternalStorage as TimescaleInternalStorage
from timescaledb.internal_queries import InternalQueries as TimescaleInternalQueries
logging.basicConfig(
level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
@@ -774,7 +774,7 @@ def run_simulation(
if globals.reservoirs_id:
# reservoirs_id = {'ZBBDJSCP000002': '2497', 'R00003': '2571'}
# 1.获取reservoir的SCADA数据,形式如{'2497': '3.1231', '2571': '2.7387'}
reservoir_SCADA_data_dict = TimescaleInternalStorage.query_scada_by_ids_time(
reservoir_SCADA_data_dict = TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(globals.reservoirs_id.values()),
query_time=modify_pattern_start_time,
)
@@ -798,7 +798,7 @@ def run_simulation(
set_pattern(name_c, cs)
if globals.tanks_id:
# 修改tank初始液位
tank_SCADA_data_dict = TimescaleInternalStorage.query_scada_by_ids_time(
tank_SCADA_data_dict = TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(globals.tanks_id.values()),
query_time=modify_pattern_start_time,
)
@@ -814,7 +814,7 @@ def run_simulation(
set_tank(name_c, cs)
if globals.fixed_pumps_id:
# 修改工频泵的pattern
fixed_pump_SCADA_data_dict = TimescaleInternalStorage.query_scada_by_ids_time(
fixed_pump_SCADA_data_dict = TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(globals.fixed_pumps_id.values()),
query_time=modify_pattern_start_time,
)
@@ -838,7 +838,7 @@ def run_simulation(
if globals.variable_pumps_id:
# 修改变频泵的pattern
variable_pump_SCADA_data_dict = (
TimescaleInternalStorage.query_scada_by_ids_time(
TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(globals.variable_pumps_id.values()),
query_time=modify_pattern_start_time,
)
@@ -858,7 +858,7 @@ def run_simulation(
set_pattern(name_c, cs)
if globals.demand_id:
# 基于实时数据修改大用户节点的pattern
demand_SCADA_data_dict = TimescaleInternalStorage.query_scada_by_ids_time(
demand_SCADA_data_dict = TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(globals.demand_id.values()),
query_time=modify_pattern_start_time,
)
@@ -885,7 +885,7 @@ def run_simulation(
if globals.source_outflow_pattern_id:
# 基于实时的出厂流量计数据修改出厂流量计绑定的pattern
source_outflow_SCADA_data_dict = (
TimescaleInternalStorage.query_scada_by_ids_time(
TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(globals.source_outflow_pattern_id.values()),
query_time=modify_pattern_start_time,
)
@@ -923,7 +923,7 @@ def run_simulation(
if globals.realtime_pipe_flow_pattern_id:
# 基于实时的pipe_flow类数据修改pipe_flow类绑定的pattern
realtime_pipe_flow_SCADA_data_dict = (
TimescaleInternalStorage.query_scada_by_ids_time(
TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(globals.realtime_pipe_flow_pattern_id.values()),
query_time=modify_pattern_start_time,
)
@@ -960,7 +960,7 @@ def run_simulation(
query_api_id = globals.realtime_pipe_flow_pattern_id.get(pipe_flow_region)
temp_realtime_pipe_flow_pattern_id[pipe_flow_region] = query_api_id
temp_realtime_pipe_flow_SCADA_data_dict = (
TimescaleInternalStorage.query_scada_by_ids_time(
TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=list(temp_realtime_pipe_flow_pattern_id.values()),
query_time=modify_pattern_start_time,
)
@@ -1018,13 +1018,13 @@ def run_simulation(
globals.non_realtime_region_patterns.get(region, [])
)
region_source_outflow_data_dict = (
TimescaleInternalStorage.query_scada_by_ids_time(
TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=temp_source_outflow_region_id,
query_time=modify_pattern_start_time,
)
)
region_realtime_region_pipe_flow_and_demand_data_dict = (
TimescaleInternalStorage.query_scada_by_ids_time(
TimescaleInternalQueries.query_scada_by_ids_time(
device_ids=temp_realtime_region_pipe_flow_and_demand_id,
query_time=modify_pattern_start_time,
)
@@ -1229,11 +1229,11 @@ def run_simulation(
# 存储
starttime = time.time()
if simulation_type.upper() == "REALTIME":
TimescaleInternalStorage.store_realtime_simulation(
TimescaleInternalQueries.store_realtime_simulation(
node_result, link_result, modify_pattern_start_time
)
elif simulation_type.upper() == "EXTENDED":
TimescaleInternalStorage.store_scheme_simulation(
TimescaleInternalQueries.store_scheme_simulation(
scheme_Type,
scheme_Name,
node_result,
@@ -1244,7 +1244,7 @@ def run_simulation(
endtime = time.time()
logging.info("store time: %f", endtime - starttime)
# 暂不需要再次存储 SCADA 模拟信息
# TimescaleInternalStorage.fill_scheme_simulation_result_to_SCADA(scheme_Type=scheme_Type, scheme_Name=scheme_Name)
# TimescaleInternalQueries.fill_scheme_simulation_result_to_SCADA(scheme_Type=scheme_Type, scheme_Name=scheme_Name)
# if simulation_type.upper() == "REALTIME":
# influxdb_api.store_realtime_simulation_result_to_influxdb(