From 15d947685838e65edc1f32337c6b13c0d850b3af Mon Sep 17 00:00:00 2001 From: xinzish Date: Sat, 15 Nov 2025 00:07:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3emitters=20coefficients=20wit?= =?UTF-8?q?h=20UNITS=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- online_Analysis.py | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/online_Analysis.py b/online_Analysis.py index e7fb899..d07a883 100644 --- a/online_Analysis.py +++ b/online_Analysis.py @@ -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') \ No newline at end of file + # 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) \ No newline at end of file