Add more code from WMH
This commit is contained in:
@@ -791,7 +791,7 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
|
||||
fixed_pump_dict = {key: fixed_pump_SCADA_data_dict[value] for key, value in globals.fixed_pumps_id.items()}
|
||||
|
||||
for fixed_pump_name, value in fixed_pump_dict.items():
|
||||
if value and float(value) != 0:
|
||||
if value:
|
||||
pump_pattern = get_pattern(name_c, get_pump(name_c, fixed_pump_name)['pattern'])
|
||||
pump_pattern['factors'][modify_index] = float(value)
|
||||
cs = ChangeSet()
|
||||
@@ -802,11 +802,13 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
|
||||
# 修改变频泵的pattern
|
||||
variable_pump_SCADA_data_dict = influxdb_api.query_SCADA_data_by_device_ID_and_time(
|
||||
query_ids_list=list(globals.variable_pumps_id.values()), query_time=modify_pattern_start_time)
|
||||
# print(variable_pump_SCADA_data_dict)
|
||||
|
||||
variable_pump_dict = {key: variable_pump_SCADA_data_dict[value] for key, value in globals.variable_pumps_id.items()}
|
||||
# print(variable_pump_dict)
|
||||
|
||||
for variable_pump_name, value in variable_pump_dict.items():
|
||||
if value and float(value) != 0:
|
||||
if value:
|
||||
pump_pattern = get_pattern(name_c, get_pump(name_c, fixed_pump_name)['pattern'])
|
||||
pump_pattern['factors'][modify_index] = float(value) / 50
|
||||
cs = ChangeSet()
|
||||
@@ -821,7 +823,7 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
|
||||
demand_dict = {key: demand_SCADA_data_dict[value] for key, value in globals.demand_id.items()}
|
||||
|
||||
for demand_name, value in demand_dict.items():
|
||||
if value and float(value) != 0:
|
||||
if value:
|
||||
demand_pattern = get_pattern(name_c, get_demand(name_c, demand_name)['pattern'])
|
||||
if get_option(name_c)['UNITS'] == 'LPS':
|
||||
demand_pattern['factors'][modify_index] = float(value) / 3.6 # m3/h 转换为 L/s
|
||||
@@ -838,25 +840,26 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
|
||||
# 基于实时的出厂流量计数据,修改出厂流量计绑定的pattern
|
||||
source_outflow_SCADA_data_dict = influxdb_api.query_SCADA_data_by_device_ID_and_time(
|
||||
query_ids_list=list(globals.source_outflow_pattern_id.values()), query_time=modify_pattern_start_time)
|
||||
print(source_outflow_SCADA_data_dict)
|
||||
# print(source_outflow_SCADA_data_dict)
|
||||
|
||||
source_outflow_dict = {key: source_outflow_SCADA_data_dict[value] for key, value in globals.source_outflow_pattern_id.items()}
|
||||
print(source_outflow_dict)
|
||||
# print(source_outflow_dict)
|
||||
|
||||
for pattern_name in source_outflow_dict.keys():
|
||||
print(pattern_name)
|
||||
# print(pattern_name)
|
||||
history_source_outflow_list = get_history_pattern_info(name_c, pattern_name)
|
||||
history_source_outflow = history_source_outflow_list[modify_index]
|
||||
print(source_outflow_dict[pattern_name])
|
||||
realtime_source_outflow = float(source_outflow_dict[pattern_name])
|
||||
# print(source_outflow_dict[pattern_name])
|
||||
if source_outflow_dict[pattern_name]:
|
||||
realtime_source_outflow = float(source_outflow_dict[pattern_name])
|
||||
|
||||
multiply_factor = realtime_source_outflow / history_source_outflow
|
||||
multiply_factor = realtime_source_outflow / history_source_outflow
|
||||
|
||||
pattern = get_pattern(name_c, pattern_name)
|
||||
pattern['factors'][modify_index] *= multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
pattern = get_pattern(name_c, pattern_name)
|
||||
pattern['factors'][modify_index] *= multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
|
||||
if globals.realtime_pipe_flow_pattern_id:
|
||||
# 基于实时的pipe_flow类数据,修改pipe_flow类绑定的pattern
|
||||
@@ -868,16 +871,16 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
|
||||
for pattern_name in realtime_pipe_flow_dict.keys():
|
||||
history_pipe_flow_list = get_history_pattern_info(name_c, pattern_name)
|
||||
history_pipe_flow = history_pipe_flow_list[modify_index]
|
||||
if realtime_pipe_flow_dict[pattern_name]:
|
||||
realtime_pipe_flow = float(realtime_pipe_flow_dict[pattern_name])
|
||||
|
||||
realtime_pipe_flow = float(realtime_pipe_flow_dict[pattern_name])
|
||||
multiply_factor = realtime_pipe_flow / history_pipe_flow
|
||||
|
||||
multiply_factor = realtime_pipe_flow / history_pipe_flow
|
||||
|
||||
pattern = get_pattern(name_c, pattern_name)
|
||||
pattern['factors'][modify_index] *= multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
pattern = get_pattern(name_c, pattern_name)
|
||||
pattern['factors'][modify_index] *= multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
|
||||
if globals.pipe_flow_region_patterns:
|
||||
# 基于实时的pipe_flow类数据,修改pipe_flow分区流量计范围内的non_realtime的demand绑定的pattern
|
||||
@@ -896,18 +899,18 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
|
||||
for pattern_name in temp_realtime_pipe_flow_dict.keys():
|
||||
temp_history_pipe_flow_list = get_history_pattern_info(name_c, pattern_name)
|
||||
temp_history_pipe_flow = temp_history_pipe_flow_list[modify_index]
|
||||
if temp_realtime_pipe_flow_dict[pattern_name]:
|
||||
temp_realtime_pipe_flow = float(temp_realtime_pipe_flow_dict[pattern_name])
|
||||
|
||||
temp_realtime_pipe_flow = float(temp_realtime_pipe_flow_dict[pattern_name])
|
||||
temp_multiply_factor = temp_realtime_pipe_flow / temp_history_pipe_flow
|
||||
|
||||
temp_multiply_factor = temp_realtime_pipe_flow / temp_history_pipe_flow
|
||||
|
||||
temp_non_realtime_demand_pattern_list = globals.pipe_flow_region_patterns[pattern_name]
|
||||
for demand_pattern_name in temp_non_realtime_demand_pattern_list:
|
||||
pattern = get_pattern(name_c, demand_pattern_name)
|
||||
pattern['factors'][modify_index] *= temp_multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
temp_non_realtime_demand_pattern_list = globals.pipe_flow_region_patterns[pattern_name]
|
||||
for demand_pattern_name in temp_non_realtime_demand_pattern_list:
|
||||
pattern = get_pattern(name_c, demand_pattern_name)
|
||||
pattern['factors'][modify_index] *= temp_multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
|
||||
if globals.source_outflow_region:
|
||||
# 根据associated_source_outflow_id进行分区,各分区用(出厂的流量计 - 实时的pipe_flow和demand)进行数据更新
|
||||
@@ -936,13 +939,14 @@ def run_simulation(name: str, simulation_type: str, modify_pattern_start_time: s
|
||||
temp_history_pipe_flow_and_demand_list = get_history_pattern_info(name_c, pipe_flow_and_demand_pattern_name)
|
||||
history_region_total_realtime_region_pipe_flow_and_demand += temp_history_pipe_flow_and_demand_list[modify_index]
|
||||
|
||||
temp_multiply_factor = (region_total_source_outflow - region_total_realtime_region_pipe_flow_and_demand) / (history_region_total_source_outflow - history_region_total_realtime_region_pipe_flow_and_demand)
|
||||
for non_realtime_region_pattern_name in temp_non_realtime_region_patterns:
|
||||
pattern = get_pattern(name_c, non_realtime_region_pattern_name)
|
||||
pattern['factors'][modify_index] *= temp_multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
if (region_total_source_outflow - region_total_realtime_region_pipe_flow_and_demand):
|
||||
temp_multiply_factor = (region_total_source_outflow - region_total_realtime_region_pipe_flow_and_demand) / (history_region_total_source_outflow - history_region_total_realtime_region_pipe_flow_and_demand)
|
||||
for non_realtime_region_pattern_name in temp_non_realtime_region_patterns:
|
||||
pattern = get_pattern(name_c, non_realtime_region_pattern_name)
|
||||
pattern['factors'][modify_index] *= temp_multiply_factor
|
||||
cs = ChangeSet()
|
||||
cs.append(pattern)
|
||||
set_pattern(name_c, cs)
|
||||
|
||||
# 根据高压出厂流量,更改高压用水模式
|
||||
# hp_flow_SCADA_data_dict = influxdb_api.query_SCADA_data_by_device_ID_and_time(
|
||||
@@ -1047,7 +1051,7 @@ if __name__ == "__main__":
|
||||
# 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)
|
||||
|
||||
run_simulation(name='bb', simulation_type="realtime", modify_pattern_start_time='2025-02-07T22:15:00+08:00')
|
||||
run_simulation(name='bb', simulation_type="realtime", modify_pattern_start_time='2025-02-08T10:30:00+08:00')
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user