From 36af0b56e4e6c55675c51596e88b81816b16ce26 Mon Sep 17 00:00:00 2001 From: DingZQ Date: Sat, 17 May 2025 21:44:24 +0800 Subject: [PATCH] Update for sensivitiy.py --- install.py | 5 ++++- online_Analysis.py | 40 ++++++++++++++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/install.py b/install.py index b1bbab9..5cb462f 100644 --- a/install.py +++ b/install.py @@ -37,7 +37,10 @@ def install(): 'python-multipart', 'Cython', 'geopandas', - 'sqlalchemy'] + 'sqlalchemy', + 'networkx', + 'wntr', + ] if minor == 4: packages.append('script/package/PyMetis-2018.1-cp34-cp34m-win_amd64.whl') diff --git a/online_Analysis.py b/online_Analysis.py index a3e1f29..d96f05b 100644 --- a/online_Analysis.py +++ b/online_Analysis.py @@ -1,6 +1,6 @@ import os from tjnetwork import * -from api.project import CopyProjectEx +from project import CopyProjectEx from run_simulation import run_simulation_ex, from_clock_to_seconds_2 from math import sqrt, pi from epanet.epanet import Output @@ -889,13 +889,6 @@ def store_scheme_info(name: str, scheme_name: str, scheme_type: str, username: s :param scheme_detail: 方案详情(字典,会转换为 JSON) :return: """ - print(name) - print(scheme_name) - print(scheme_type) - print(username) - print(scheme_start_time) - print(scheme_detail) - print("开始存储方案信息...") try: conn_string = f"dbname={name} host=127.0.0.1" with psycopg.connect(conn_string) as conn: @@ -1043,6 +1036,33 @@ def submit_risk_probability_result(name: str, result_file_path: str) -> None: print(f"导入时出错:{e}") +def pressure_sensor_placement_sensitivity(name: str, scheme_name: str, sensor_number: int, + min_diameter: int, username: str) -> None: + """ + 基于改进灵敏度法进行压力监测点优化布置 + :param name: 数据库名称 + :param scheme_name: 监测优化布置方案名称 + :param sensor_number: 传感器数目 + :param min_diameter: 最小管径 + :param username: 用户名 + :return: + """ + sensor_location = sensitivity.get_ID(name=name, sensor_num=sensor_number, min_diameter=min_diameter) + try: + conn_string = f"dbname={name} host=127.0.0.1" + with psycopg.connect(conn_string) as conn: + with conn.cursor() as cur: + sql = """ + INSERT INTO sensor_placement (scheme_name, sensor_number, min_diameter, username, sensor_location) + VALUES (%s, %s, %s, %s, %s) + """ + + cur.execute(sql, (scheme_name, sensor_number, min_diameter, username, sensor_location)) + conn.commit() + print("方案信息存储成功!") + except Exception as e: + print(f"存储方案信息时出错:{e}") + if __name__ == '__main__': # contaminant_simulation('bb_model','2024-06-24T00:00:00Z','ZBBDTZDP009034',30,1800) @@ -1095,3 +1115,7 @@ if __name__ == '__main__': # 示例:submit_risk_probability_result submit_risk_probability_result(name='bb', result_file_path='./北碚市政管线风险评价结果.xlsx') + # 示例:pressure_sensor_placement_sensitivity + pressure_sensor_placement_sensitivity(name='bb', scheme_name='20250517', sensor_number=10, + min_diameter=300, username='admin') +