Update with WMH's code

This commit is contained in:
DingZQ
2025-03-15 13:54:45 +08:00
parent 071f6ec100
commit cc6e2819e8
5 changed files with 1043 additions and 327 deletions

View File

@@ -656,11 +656,15 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
# 修改工频泵的pattern
fixed_pump_SCADA_data_dict = influxdb_api.query_SCADA_data_by_device_ID_and_time(
query_ids_list=list(globals.fixed_pumps_id.values()), query_time=modify_pattern_start_time)
# print(fixed_pump_SCADA_data_dict)
fixed_pump_dict = {key: fixed_pump_SCADA_data_dict[value] for key, value in globals.fixed_pumps_id.items()}
# print(fixed_pump_dict)
for fixed_pump_name, value in fixed_pump_dict.items():
if value:
pump_pattern = get_pattern(name_c, get_pump(name_c, fixed_pump_name)['pattern'])
print(pump_pattern)
pump_pattern['factors'][modify_index] = float(value)
print(pump_pattern['factors'][modify_index])
cs = ChangeSet()
cs.append(pump_pattern)
set_pattern(name_c, cs)
@@ -887,14 +891,15 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
tmp_file = './temp/simulation.result.out'
shutil.copy(f'./temp/{name_c}.db.opt', tmp_file)
output = Output(tmp_file)
node_result = output.node_results()
link_result = output.link_results()
link_flow = []
for link in link_result:
link_flow.append(link['result'][-1]['flow'])
print(link_flow)
num_periods_result = output.times()['num_periods']
print("simulation_type", simulation_type)
print("before store result")
# print(num_periods_result)
# print(node_result)
# 存储
@@ -903,8 +908,7 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
elif simulation_type.upper() == 'EXTENDED':
influxdb_api.store_scheme_simulation_result_to_influxdb(node_result, link_result, modify_pattern_start_time,
num_periods_result, scheme_Type, scheme_Name)
print("after store result")
influxdb_api.fill_scheme_simulation_result_to_SCADA(scheme_Type=scheme_Type, scheme_Name=scheme_Name)
if __name__ == "__main__":
@@ -921,28 +925,29 @@ if __name__ == "__main__":
globals.source_outflow_region_patterns, globals.realtime_region_pipe_flow_and_demand_patterns = get_realtime_region_patterns('bb', globals.source_outflow_region_id, globals.realtime_region_pipe_flow_and_demand_id)
# 打印字典内容以验证
print("Reservoirs ID:", globals.reservoirs_id)
print("Tanks ID:", globals.tanks_id)
print("Fixed Pumps ID:", globals.fixed_pumps_id)
print("Variable Pumps ID:", globals.variable_pumps_id)
print("Pressure ID:", globals.pressure_id)
print("Demand ID:", globals.demand_id)
print("Quality ID:", globals.quality_id)
print("Source Outflow Pattern ID:", globals.source_outflow_pattern_id)
print("Realtime Pipe Flow Pattern ID:", globals.realtime_pipe_flow_pattern_id)
print("Pipe Flow Region Patterns:", globals.pipe_flow_region_patterns)
print("Source Outflow Region:", region_result)
print('Source Outflow Region ID:', globals.source_outflow_region_id)
print('Source Outflow Region Patterns:', globals.source_outflow_region_patterns)
print("Non Realtime Region Patterns:", globals.non_realtime_region_patterns)
print("Realtime Region Pipe Flow And Demand ID:", globals.realtime_region_pipe_flow_and_demand_id)
print("Realtime Region Pipe Flow And Demand Patterns:", globals.realtime_region_pipe_flow_and_demand_patterns)
# print("Reservoirs ID:", globals.reservoirs_id)
# print("Tanks ID:", globals.tanks_id)
# print("Fixed Pumps ID:", globals.fixed_pumps_id)
# print("Variable Pumps ID:", globals.variable_pumps_id)
# print("Pressure ID:", globals.pressure_id)
# print("Demand ID:", globals.demand_id)
# print("Quality ID:", globals.quality_id)
# print("Source Outflow Pattern ID:", globals.source_outflow_pattern_id)
# print("Realtime Pipe Flow Pattern ID:", globals.realtime_pipe_flow_pattern_id)
# print("Pipe Flow Region Patterns:", globals.pipe_flow_region_patterns)
# print("Source Outflow Region:", region_result)
# print('Source Outflow Region ID:', globals.source_outflow_region_id)
# print('Source Outflow Region Patterns:', globals.source_outflow_region_patterns)
# print("Non Realtime Region Patterns:", globals.non_realtime_region_patterns)
# print("Realtime Region Pipe Flow And Demand ID:", globals.realtime_region_pipe_flow_and_demand_id)
# print("Realtime Region Pipe Flow And Demand Patterns:", globals.realtime_region_pipe_flow_and_demand_patterns)
# dump_inp(name='bb', inp="sensor_placement.inp", version='2')
# 模拟示例1
run_simulation(name='bb', simulation_type="realtime", modify_pattern_start_time='2025-02-25T23:45:00+08:00')
# 模拟示例2
# run_simulation(name='bb', simulation_type="extended", modify_pattern_start_time='2025-02-14T10:30:00+08:00', modify_total_duration=900,
# scheme_Type="burst_Analysis", scheme_Name="scheme1")
# run_simulation(name='bb', simulation_type="extended", modify_pattern_start_time='2025-03-10T12:00:00+08:00',
# modify_total_duration=1800, scheme_Type="burst_Analysis", scheme_Name="scheme1")
# 查询示例1query_SCADA_ID_corresponding_info
# result = query_SCADA_ID_corresponding_info(name='bb', SCADA_ID='P10755')