修正emitters coefficients with UNITS settings

This commit is contained in:
xinzish
2025-11-15 00:07:47 +08:00
parent 251a8f8499
commit 15d9476858

View File

@@ -26,6 +26,24 @@ import api_ex.Pdataclean
############################################################
# burst analysis 01
############################################################
def convert_to_local_unit(proj:str,emitters:float)->float:
open_project(proj)
proj_opt=get_option(proj)
str_unit=proj_opt.get('UNITS')
if str_unit == 'CMH':
return emitters * 3.6
elif str_unit == 'LPS':
return emitters
elif str_unit == 'CMS':
return emitters / 1000.0
elif str_unit == 'MGD':
return emitters * 0.0438126
# Unknown unit: log and return original value
print(str_unit)
return emitters
def burst_analysis(name: str, modify_pattern_start_time: str, burst_ID: list | str = None, burst_size: list | float | int = None,
modify_total_duration: int=900, modify_fixed_pump_pattern: dict[str, list] = None,
@@ -94,7 +112,8 @@ def burst_analysis(name: str, modify_pattern_start_time: str, burst_ID: list | s
burst_size_ = 3.14 * d_pipe * d_pipe / 4 / 8
else:
burst_size_ = burst_size_ / 10000
emitter_coeff = 0.65 * burst_size_ * sqrt(19.6) * 1000#1/8开口面积作为coeff
emitter_coeff = 0.65 * burst_size_ * sqrt(19.6) * 1000#1/8开口面积作为coeff,单位 L/S
emitter_coeff =convert_to_local_unit(new_name, emitter_coeff)
emitter_node = ''
if is_junction(new_name, str_end_node):
emitter_node = str_end_node
@@ -112,7 +131,7 @@ def burst_analysis(name: str, modify_pattern_start_time: str, burst_ID: list | s
# 涉及关阀计算可能导致关阀后仍有流量改为压力驱动PDA
options = get_option(new_name)
options['DEMAND MODEL'] = OPTION_DEMAND_MODEL_PDA
options['REQUIRED PRESSURE'] = '20.0000'
options['REQUIRED PRESSURE'] = '10.0000'
cs_options = ChangeSet()
cs_options.append(options)
set_option(new_name, cs_options)
@@ -1182,8 +1201,8 @@ if __name__ == '__main__':
# burst_analysis(name='bb', modify_pattern_start_time='2025-04-17T00:00:00+08:00',
# burst_ID='GSD230112144241FA18292A84CB', burst_size=400, modify_total_duration=1800, scheme_Name='GSD230112144241FA18292A84CB_400')
# # 示例create_user
# create_user(name=project_info.name, username='admin', password='123456')
# 示例create_user
# create_user(name=project_info.name, username='tjwater dev', password='123456')
# # 示例delete_user
# delete_user(name=project_info.name, username='admin_test')
@@ -1206,4 +1225,7 @@ if __name__ == '__main__':
# pressure_sensor_placement_sensitivity(name=project_info.name, scheme_name='20250517', sensor_number=10, min_diameter=300, username='admin')
# 示例pressure_sensor_placement_kmeans
pressure_sensor_placement_kmeans(name=project_info.name, scheme_name='sensor_1103', sensor_number=35, min_diameter=300, username='admin')
# pressure_sensor_placement_kmeans(name=project_info.name, scheme_name='sensor_1103', sensor_number=35, min_diameter=300, username='admin')
# 测试convert emitters coefficients
convert_to_local_unit("szh",100)