From 5ad42429e5893755720f1b39352d36fb7deb4357 Mon Sep 17 00:00:00 2001 From: "WQY\\qiong" Date: Fri, 3 Mar 2023 20:15:49 +0800 Subject: [PATCH] Add EPANET3 option api --- api/__init__.py | 11 +++++++++ tjnetwork.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/api/__init__.py b/api/__init__.py index 8be1cdf..4e6f570 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -97,6 +97,17 @@ from .s23_options import OPTION_DEMAND_MODEL_DDA, OPTION_DEMAND_MODEL_PDA from .s23_options import OPTION_QUALITY_NONE, OPTION_QUALITY_CHEMICAL, OPTION_QUALITY_AGE, OPTION_QUALITY_TRACE from .s23_options import get_option_schema, get_option, set_option +from .s23_options_v3 import OPTION_V3_FLOW_UNITS_CFS, OPTION_V3_FLOW_UNITS_GPM, OPTION_V3_FLOW_UNITS_MGD, OPTION_V3_FLOW_UNITS_IMGD, OPTION_V3_FLOW_UNITS_AFD, OPTION_V3_FLOW_UNITS_LPS, OPTION_V3_FLOW_UNITS_LPM, OPTION_V3_FLOW_UNITS_MLD, OPTION_V3_FLOW_UNITS_CMH, OPTION_V3_FLOW_UNITS_CMD +from .s23_options_v3 import OPTION_V3_PRESSURE_UNITS_PSI, OPTION_V3_PRESSURE_UNITS_KPA, OPTION_V3_PRESSURE_UNITS_M +from .s23_options_v3 import OPTION_V3_HEADLOSS_MODEL_HW, OPTION_V3_HEADLOSS_MODEL_DW, OPTION_V3_HEADLOSS_MODEL_CM +from .s23_options_v3 import OPTION_V3_STEP_SIZING, OPTION_V3_STEP_SIZING, OPTION_V3_STEP_SIZING +from .s23_options_v3 import OPTION_V3_IF_UNBALANCED_STOP, OPTION_V3_IF_UNBALANCED_CONTINUE +from .s23_options_v3 import OPTION_V3_DEMAND_MODEL_FIXED, OPTION_V3_DEMAND_MODEL_CONSTRAINED, OPTION_V3_DEMAND_MODEL_POWER, OPTION_V3_DEMAND_MODEL_LOGISTIC +from .s23_options_v3 import OPTION_V3_LEAKAGE_MODEL_NONE, OPTION_V3_LEAKAGE_MODEL_POWER, OPTION_V3_LEAKAGE_MODEL_FAVAD +from .s23_options_v3 import OPTION_V3_QUALITY_MODEL_NONE, OPTION_V3_QUALITY_MODEL_CHEMICAL, OPTION_V3_QUALITY_MODEL_AGE, OPTION_V3_QUALITY_MODEL_TRACE +from .s23_options_v3 import OPTION_V3_QUALITY_UNITS_HRS, OPTION_V3_QUALITY_UNITS_PCNT, OPTION_V3_QUALITY_UNITS_MGL, OPTION_V3_QUALITY_UNITS_UGL +from .s23_options_v3 import get_option_v3_schema, get_option_v3, set_option_v3 + from .s24_coordinates import get_node_coord from .s25_vertices import get_vertex_schema, get_vertex, set_vertex, add_vertex, delete_vertex diff --git a/tjnetwork.py b/tjnetwork.py index cac960e..27734cd 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -99,6 +99,51 @@ OPTION_QUALITY_CHEMICAL = api.OPTION_QUALITY_CHEMICAL OPTION_QUALITY_AGE = api.OPTION_QUALITY_AGE OPTION_QUALITY_TRACE = api.OPTION_QUALITY_TRACE +OPTION_V3_FLOW_UNITS_CFS = api.OPTION_V3_FLOW_UNITS_CFS +OPTION_V3_FLOW_UNITS_GPM = api.OPTION_V3_FLOW_UNITS_GPM +OPTION_V3_FLOW_UNITS_MGD = api.OPTION_V3_FLOW_UNITS_MGD +OPTION_V3_FLOW_UNITS_IMGD = api.OPTION_V3_FLOW_UNITS_IMGD +OPTION_V3_FLOW_UNITS_AFD = api.OPTION_V3_FLOW_UNITS_AFD +OPTION_V3_FLOW_UNITS_LPS = api.OPTION_V3_FLOW_UNITS_LPS +OPTION_V3_FLOW_UNITS_LPM = api.OPTION_V3_FLOW_UNITS_LPM +OPTION_V3_FLOW_UNITS_MLD = api.OPTION_V3_FLOW_UNITS_MLD +OPTION_V3_FLOW_UNITS_CMH = api.OPTION_V3_FLOW_UNITS_CMH +OPTION_V3_FLOW_UNITS_CMD = api.OPTION_V3_FLOW_UNITS_CMD + +OPTION_V3_PRESSURE_UNITS_PSI = api.OPTION_V3_PRESSURE_UNITS_PSI +OPTION_V3_PRESSURE_UNITS_KPA = api.OPTION_V3_PRESSURE_UNITS_KPA +OPTION_V3_PRESSURE_UNITS_M = api.OPTION_V3_PRESSURE_UNITS_M + +OPTION_V3_HEADLOSS_MODEL_HW = api.OPTION_V3_HEADLOSS_MODEL_HW +OPTION_V3_HEADLOSS_MODEL_DW = api.OPTION_V3_HEADLOSS_MODEL_DW +OPTION_V3_HEADLOSS_MODEL_CM = api.OPTION_V3_HEADLOSS_MODEL_CM + +OPTION_V3_STEP_SIZING = api.OPTION_V3_STEP_SIZING +OPTION_V3_STEP_SIZING = api.OPTION_V3_STEP_SIZING +OPTION_V3_STEP_SIZING = api.OPTION_V3_STEP_SIZING + +OPTION_V3_IF_UNBALANCED_STOP = api.OPTION_V3_IF_UNBALANCED_STOP +OPTION_V3_IF_UNBALANCED_CONTINUE = api.OPTION_V3_IF_UNBALANCED_CONTINUE + +OPTION_V3_DEMAND_MODEL_FIXED = api.OPTION_V3_DEMAND_MODEL_FIXED +OPTION_V3_DEMAND_MODEL_CONSTRAINED = api.OPTION_V3_DEMAND_MODEL_CONSTRAINED +OPTION_V3_DEMAND_MODEL_POWER = api.OPTION_V3_DEMAND_MODEL_POWER +OPTION_V3_DEMAND_MODEL_LOGISTIC = api.OPTION_V3_DEMAND_MODEL_LOGISTIC + +OPTION_V3_LEAKAGE_MODEL_NONE = api.OPTION_V3_LEAKAGE_MODEL_NONE +OPTION_V3_LEAKAGE_MODEL_POWER = api.OPTION_V3_LEAKAGE_MODEL_POWER +OPTION_V3_LEAKAGE_MODEL_FAVAD = api.OPTION_V3_LEAKAGE_MODEL_FAVAD + +OPTION_V3_QUALITY_MODEL_NONE = api.OPTION_V3_QUALITY_MODEL_NONE +OPTION_V3_QUALITY_MODEL_CHEMICAL = api.OPTION_V3_QUALITY_MODEL_CHEMICAL +OPTION_V3_QUALITY_MODEL_AGE = api.OPTION_V3_QUALITY_MODEL_AGE +OPTION_V3_QUALITY_MODEL_TRACE = api.OPTION_V3_QUALITY_MODEL_TRACE + +OPTION_V3_QUALITY_UNITS_HRS = api.OPTION_V3_QUALITY_UNITS_HRS +OPTION_V3_QUALITY_UNITS_PCNT = api.OPTION_V3_QUALITY_UNITS_PCNT +OPTION_V3_QUALITY_UNITS_MGL = api.OPTION_V3_QUALITY_UNITS_MGL +OPTION_V3_QUALITY_UNITS_UGL = api.OPTION_V3_QUALITY_UNITS_UGL + SCADA_DEVICE_TYPE_PRESSURE = api.SCADA_DEVICE_TYPE_PRESSURE SCADA_DEVICE_TYPE_DEMAND = api.SCADA_DEVICE_TYPE_DEMAND SCADA_DEVICE_TYPE_QUALITY = api.SCADA_DEVICE_TYPE_QUALITY @@ -709,6 +754,20 @@ def set_option(name: str, cs: ChangeSet) -> ChangeSet: return api.set_option(name, cs) +############################################################ +# option_v3 23.[EPA3][OPTIONS] +############################################################ + +def get_option_v3_schema(name: str) -> dict[str, dict[str, Any]]: + return api.get_option_v3_schema(name) + +def get_option_v3(name: str) -> dict[str, Any]: + return api.get_option_v3(name) + +def set_option_v3(name: str, cs: ChangeSet) -> ChangeSet: + return api.set_option_v3(name, cs) + + ############################################################ # coord 24.[COORDINATES] ############################################################