diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..4d51454 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,30 @@ +name: Documentation + +on: + push: + branches: + - main + +jobs: + build: + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.8 + uses: actions/setup-python@v4 + with: + python-version: "3.8" + + - name: Install mikeplus + run: pip install .[dev] + + - name: MkDocs + run: mkdocs build + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: site \ No newline at end of file diff --git a/.github/workflows/full_test_2024_0.yml b/.github/workflows/full_test_2024_0.yml new file mode 100644 index 0000000..de4ba74 --- /dev/null +++ b/.github/workflows/full_test_2024_0.yml @@ -0,0 +1,65 @@ +name: Full test + +on: + workflow_dispatch: + #push: + # branches: [ "main" ] + #pull_request: + # branches: [ "main" ] + +jobs: + build: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.8", "3.12"] + + steps: + - name: Checkout branch with MIKE+ dependency + uses: actions/checkout@v3 + with: + lfs: true + ref: cicd_dependencies + + - name: Unzip MIKE+ dependency + run: | + 7z x "2024_0.7z" -p${{ secrets.MIKE_2024_0_7Z }} + + - name: Install MIKE+ dependency + run: | + & "./install.bat" + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + lfs: true + + - name: Set up .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '6.0.x' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest pytest-xdist pytest-timeout + + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + + - name: Install mikepluspy + run: | + python -m pip install -e .[test] + + - name: Test with pytest + run: | + pytest -v -n auto --durations=0 --timeout=300 diff --git a/CHANGELOG.md b/CHANGELOG.md index e2035dc..3cd7c7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,11 @@ -# mikeplus script Changelog +# MIKE+Py Changelog ## [Unreleased] -## [0.1] - 2023-08-30 +## [2024.1.0] - 2024-01-30 ### Added -- Ability to add query database methods -- Ability to add engine launcher (mike1d and epanet) -- Ability to run some tools +- Ability to read/write MIKE+ database +- Ability to run engines (MIKE 1D, EPANET, SWMM) +- Ability to run some initial tools diff --git a/LICENSE b/LICENSE index 57fc08a..bd8256c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,201 @@ -MIT License - -Copyright (c) 2023 wuwwen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 DHI A/S + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index bf47658..98739df 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,37 @@ -# MIKE+ Script: Python script to access mike+ data, engines and tools +![logo](https://raw.githubusercontent.com/DHI/mikepluspy/main/images/logo/mikeplus-py.svg) +# MIKE+Py: automate your workflows. -For read res1d and xns11 files, please use mikeio1d(https://github.com/DHI/mikeio1d). +MIKE+Py is a python interface for MIKE+. Its main features include: +* Modifying the MIKE+ database in a way that is consistent with the GUI. +* Run different kinds of simulations (e.g. MIKE 1D, EPANET, SWMM) +* Access certain GUI tools pythonically (e.g. import/export tool). -For other MIKE files (Dfs0, Dfs1, Dfs2, Dfsu,...) use the related package [MIKE IO](https://github.com/DHI/mikeio) +> [!CAUTION] +> MIKE+Py is experimental and under development. +> * Be aware that there may be bugs or unexpected behavior - use with caution. +> * Always make copies of your MIKE+ databases and verify the outcome of scripts. +> * If you encounter any issues or have any feedback, please report them on [GitHub Issues](https://github.com/DHI/mikepluspy/issues). ## Requirements +* MIKE+ 2024 update 1 (or greater) with valid license +* Python x64 3.8 to 3.12 * Windows operating system -* Python x64 3.6, 3.7 or 3.8 -* Python.Net 3.0 or above - -## Where can I get help? -* General help, new ideas and feature requests - [GitHub Discussions](http://github.com/DHI/mikeio/discussions) -* Bugs - [GitHub Issues](https://github.com/DHI/mikeplus-python/issues) ## Installation -Please install MIKE+ 2024 software first. -From PyPI: +The version of MIKE+Py you install must match the version of MIKE+ installed on your desktop. + +> [!NOTE] +> MIKE+Py is not yet available on PyPI since it is in the initial development stages. + +| MIKE+ Version | Install command| +|:--------------|:---------------| +| MIKE+ 2024 update 1 | `pip install https://github.com/DHI/mikepluspy/archive/refs/tags/v2024.1-latest.zip` | -`pip install mikeplus` ## Examples -Please check the jupyter notebook here: https://github.com/DHI/mikeplus-python/tree/main/notebooks \ No newline at end of file +Please check out the jupyter notebooks here: https://github.com/DHI/mikepluspy/tree/main/notebooks + +## Where can I get help? +* General help, new ideas and feature requests - [GitHub Discussions](http://github.com/DHI/mikepluspy/discussions) +* Bugs - [GitHub Issues](https://github.com/DHI/mikepluspy/issues) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 5567b47..cea47ab 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,9 +1,40 @@ -# mikeplus Documentation +![logo](https://raw.githubusercontent.com/DHI/mikepluspy/main/images/logo/mikeplus-py.svg) +# MIKE+Py: automate your workflows. -## Install -``` -pip install mikeplus -``` +MIKE+Py is a python interface for MIKE+. Its main features include: +* Modifying the MIKE+ database in a way that is consistent with the GUI. +* Run different kinds of simulations (e.g. MIKE 1D, EPANET, SWMM) +* Access certain GUI tools pythonically (e.g. import/export tool). + +> [!CAUTION] +> MIKE+Py is experimental and under development. +> * Be aware that there may be bugs or unexpected behavior - use with caution. +> * Always make copies of your MIKE+ databases and verify the outcome of scripts. +> * If you encounter any issues or have any feedback, please report them on [GitHub Issues](https://github.com/DHI/mikepluspy/issues). + +## Requirements +* MIKE+ 2024 (or greater) with valid license +* Python x64 3.8 to 3.12 +* Windows operating system + +## Installation + +The version of MIKE+Py you install must match the version of MIKE+ installed on your desktop. + +> [!NOTE] +> MIKE+Py is not yet available on PyPI since it is in the initial development stages. + +| MIKE+ Version | Install command| +|:--------------|:---------------| +| MIKE+ 2024 | `pip install https://github.com/DHI/mikepluspy/archive/refs/tags/v2024.0-latest.zip` | + + +## Examples +Please check out the jupyter notebooks here: https://github.com/DHI/mikepluspy/tree/main/notebooks + +## Where can I get help? +* General help, new ideas and feature requests - [GitHub Discussions](http://github.com/DHI/mikepluspy/discussions) +* Bugs - [GitHub Issues](https://github.com/DHI/mikepluspy/issues) ## Getting started diff --git a/images/logo/mikeplus-py.eps b/images/logo/mikeplus-py.eps new file mode 100644 index 0000000..1de86d7 Binary files /dev/null and b/images/logo/mikeplus-py.eps differ diff --git a/images/logo/mikeplus-py.jpg b/images/logo/mikeplus-py.jpg new file mode 100644 index 0000000..65db966 Binary files /dev/null and b/images/logo/mikeplus-py.jpg differ diff --git a/images/logo/mikeplus-py.png b/images/logo/mikeplus-py.png new file mode 100644 index 0000000..aab1ff0 Binary files /dev/null and b/images/logo/mikeplus-py.png differ diff --git a/images/logo/mikeplus-py.svg b/images/logo/mikeplus-py.svg new file mode 100644 index 0000000..a2b4000 --- /dev/null +++ b/images/logo/mikeplus-py.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/mikeplus/__init__.py b/mikeplus/__init__.py index 0016686..7b31a51 100644 --- a/mikeplus/__init__.py +++ b/mikeplus/__init__.py @@ -1,6 +1,6 @@ import clr -__version__ = "0.1.0" +__version__ = "2024.1.0" clr.AddReference("DHI.Mike.Install, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c513450b5d0bf0bf") from DHI.Mike.Install import MikeImport, MikeProducts @@ -16,6 +16,9 @@ clr.AddReference("DHI.Amelia.GlobalUtility") from .datatableaccess import DataTableAccess +from mikeplus.fieldTableNames.tableNames import CommonTabNames, CSTabNames, RiverTabNames, FloodTabNames, SWMMTabNames, WDTabNames +from mikeplus.fieldTableNames.fieldNames import Fields + import sys import warnings diff --git a/mikeplus/datatableaccess.py b/mikeplus/datatableaccess.py index a198d1d..7c7d034 100644 --- a/mikeplus/datatableaccess.py +++ b/mikeplus/datatableaccess.py @@ -48,7 +48,7 @@ def open_database(self): """Open database """ if self.is_database_open(): - self.close_database() + return data_source = BaseDataSource.Create(self._file_path) data_source.OpenDatabase() datatables = DataTableContainer(True) diff --git a/mikeplus/engines/engine1d.py b/mikeplus/engines/engine1d.py index 6bb86d7..7cf1f8d 100644 --- a/mikeplus/engines/engine1d.py +++ b/mikeplus/engines/engine1d.py @@ -1,4 +1,4 @@ -import os.path +from pathlib import Path import subprocess from DHI.Mike.Install import MikeImport, MikeProducts @@ -13,42 +13,44 @@ def __init__(self, self._result_file = None def run(self, - simMuid=None): + simMuid=None, verbose=False): """Run MIKE1D simulation Parameters ---------- simMuid : string, optional simulation muid, it will use the current active simulation muid if simMuid is None, by default None. + verbose : bool, optional + print log file or not, by default False. Examples -------- >>>data_access = DataTableAccess(muppOrSqlite) >>>data_access.open_database() - >>>engine = Engine1D(data_access.datatables) + >>>engine = Egnine1D(data_access.datatables) >>>engine.run() >>>data_access.close_database() """ if simMuid is None: muid = self._dataTables["msm_Project"].GetMuidsWhere("ActiveProject=1") if muid is None and muid.Count == 0: - print("Simulation id can't be none.") - return + raise ValueError("Simulation id can't be none.") simMuid = muid[0] product_info = MikeImport.ActiveProduct() - mike1d_exec = os.path.join(product_info.InstallRoot, 'bin', 'x64', 'DHI.Mike1D.Application.exe') - dbOrMuppFile = self._dataTables.DataSource.BaseFullPath - dir = os.path.dirname(os.path.abspath(dbOrMuppFile)) - file = os.path.basename(dbOrMuppFile) - file_name = file.split('.')[0] - log_file = os.path.join(dir, file_name + '_' + simMuid + '.log') - self._result_file = os.path.join(dir, file_name + '_' + simMuid + '.res1d') - print("Simulation is started. Simulation id is '" + simMuid + "'") - subprocess.run([mike1d_exec, str(dbOrMuppFile), "-simulationid=" + simMuid, "-logfilename=" + log_file]) - if self._print_log(log_file) is False: - print("Simulation is finished without logFile generated.") - + mike1d_exec = Path(product_info.InstallRoot) / 'bin' / 'x64' / 'DHI.Mike1D.Application.exe' + dbOrMuppFile = Path(self._dataTables.DataSource.BaseFullPath) + dir = dbOrMuppFile.parent + file_name = dbOrMuppFile.stem + log_file = Path(dir) / f"{file_name}_{simMuid}.log" + self._result_file = Path(dir) / f"{file_name}_{simMuid}.res1d" + if verbose: + print(f"Simulation is started. Simulation id is '{simMuid}'.") + subprocess.run([mike1d_exec, str(dbOrMuppFile), f"-simulationid={simMuid}", f"-logfilename={log_file}"]) + if verbose: + if self._print_log(log_file) is False: + print("Simulation is finished without logFile generated.") + @property def result_file(self): """Get the current simulation result file path @@ -61,7 +63,7 @@ def result_file(self): return self._result_file def _print_log(self, logFile): - if os.path.exists(logFile): + if Path(logFile).exists(): with open(logFile) as f: lines = f.readlines() for line in lines: diff --git a/mikeplus/engines/epanet.py b/mikeplus/engines/epanet.py index d9a076b..4dbaaba 100644 --- a/mikeplus/engines/epanet.py +++ b/mikeplus/engines/epanet.py @@ -15,13 +15,15 @@ def __init__(self, self._result_file = None def run_engine_epanet(self, - simMuid=None): + simMuid=None, verbose=False): """Run EPANET simulation Parameters ---------- simMuid : string, optional simulation muid, it will use the current active simulation muid if simMuid is None, by default None + verbose : bool, optional + print log file or not, by default False Examples -------- @@ -34,9 +36,10 @@ def run_engine_epanet(self, if simMuid is None: simMuid = self._get_active_muid() if simMuid is None: - print("Simulation id can't be none.") - return - print("Simulation id is " + simMuid) + raise ValueError("Simulation id can't be none.") + + if verbose: + print("Simulation id is " + simMuid) engine_tool = EngineTool() engine_tool.DataTables = self._dataTables cancel_source = CancellationTokenSource() @@ -47,10 +50,13 @@ def run_engine_epanet(self, dir = os.path.dirname(os.path.abspath(self._result_file)) file_name = os.path.splitext(os.path.split(self._result_file)[1])[0] log_file = os.path.join(dir, file_name + '.log') - if self._print_log(log_file) is False: - if (success is False): + if verbose: + log_file_made = self._print_log(log_file) + + if not success: print("Simulation failed.") - else: + + if not log_file_made: print("Simulation is finished without logFile generated.") @property diff --git a/mikeplus/engines/swmm.py b/mikeplus/engines/swmm.py index b9c5452..b6b2a45 100644 --- a/mikeplus/engines/swmm.py +++ b/mikeplus/engines/swmm.py @@ -14,13 +14,15 @@ def __init__(self, self._result_file = None def run(self, - simMuid=None): + simMuid=None, verbose=False): """Run SWMM simulation Parameters ---------- simMuid : string, optional simulation muid, it will use the current active simulation muid if simMuid is None, by default None + verbose : bool, optional + print log file or not, by default False Examples -------- @@ -33,9 +35,10 @@ def run(self, if simMuid is None: simMuid = self._get_active_muid() if simMuid is None: - print("Simulation id can't be none.") - return - print("Simulation id is " + simMuid) + raise ValueError("Simulation id can't be none.") + + if verbose: + print("Simulation id is " + simMuid) engine_tool = EngineTool() engine_tool.DataTables = self._dataTables cancel_source = CancellationTokenSource() @@ -46,10 +49,12 @@ def run(self, dir = os.path.dirname(os.path.abspath(self._result_file)) file_name = os.path.splitext(os.path.split(self._result_file)[1])[0] log_file = os.path.join(dir, file_name + '.log') - if self._print_log(log_file) is False: - if (success is False): + if verbose: + if not success: print("Simulation failed.") - else: + + log_file_made = self._print_log(log_file) + if log_file_made is False: print("Simulation is finished without logFile generated.") @property diff --git a/mikeplus/fieldTableNames/__init__.py b/mikeplus/fieldTableNames/__init__.py new file mode 100644 index 0000000..98c4c32 --- /dev/null +++ b/mikeplus/fieldTableNames/__init__.py @@ -0,0 +1,4 @@ +from .tableNames import CommonTabNames, CSTabNames, RiverTabNames, FloodTabNames, SWMMTabNames, WDTabNames +from .fieldNames import Fields + +__all__ = ["Fields", "CommonTabNames", "CSTabNames", "RiverTabNames", "FloodTabNames", "SWMMTabNames", "WDTabNames"] \ No newline at end of file diff --git a/mikeplus/fieldTableNames/fieldNames.py b/mikeplus/fieldTableNames/fieldNames.py new file mode 100644 index 0000000..3d9f22a --- /dev/null +++ b/mikeplus/fieldTableNames/fieldNames.py @@ -0,0 +1,5209 @@ +class _2DBedResistanceFields(): + InitialWaterLevel = "InitialWaterLevel" + Priority = "Priority" + +class _2DBoundaryFields(): + ApplyBoundaryNo = "ApplyBoundaryNo" + TypeNo = "TypeNo" + BCStartX = "BCStartX" + BCStartY = "BCStartY" + BCEndX = "BCEndX" + BCEndY = "BCEndY" + BCStartX_C = "BCStartX_C" + BCStartY_C = "BCStartY_C" + BCEndX_C = "BCEndX_C" + BCEndY_C = "BCEndY_C" + VariationNo = "VariationNo" + ConstantValue = "ConstantValue" + BridgeTypeNo = "BridgeTypeNo" + TSConnection = "TSConnection" + TimeSeriesName = "TimeSeriesName" + DataTypeName = "DataTypeName" + +class _2DInitialConditionFields(): + InitialWaterLevel = "InitialWaterLevel" + Priority = "Priority" + +class _2DOverlandFields(): + Model2DSelection = "Model2DSelection" + CellRatio = "CellRatio" + FillMissingValue = "FillMissingValue" + MaxSearchRadius = "MaxSearchRadius" + Model2DArea = "Model2DArea" + ModelAreaLayerName = "ModelAreaLayerName" + LLX = "LLX" + LLY = "LLY" + URX = "URX" + URY = "URY" + LandValue = "LandValue" + HDEMSpecifiedValue = "HDEMSpecifiedValue" + DryingDepth = "DryingDepth" + FloodingDepth = "FloodingDepth" + BedResistance = "BedResistance" + ConstantManning = "ConstantManning" + EddyViscosity = "EddyViscosity" + EddyValue = "EddyValue" + EddyFormulation = "EddyFormulation" + RainInclude = "RainInclude" + TimeSeriesFile = "TimeSeriesFile" + DefaultCouplingArea = "DefaultCouplingArea" + SquareAreaCell = "SquareAreaCell" + All2DRadius = "All2DRadius" + AutoAlignCells = "AutoAlignCells" + DemRasterName = "DemRasterName" + GroundItemName = "GroundItemName" + BedResistanceRasterName = "BedResistanceRasterName" + ManningNOItemName = "ManningNOItemName" + ModelCellSize = "ModelCellSize" + SelectRaster = "SelectRaster" + SpecifiedValue = "SpecifiedValue" + GroundItemUnit = "GroundItemUnit" + ManningUnit = "ManningUnit" + BRApplyNo = "BRApplyNo" + BRSpatiallyTypeNo = "BRSpatiallyTypeNo" + BROutside = "BROutside" + WLConstant = "WLConstant" + WLApplyNo = "WLApplyNo" + WLSpatiallyTypeNo = "WLSpatiallyTypeNo" + WLOutside = "WLOutside" + WLLayerName = "WLLayerName" + WLItemName = "WLItemName" + WLItemUnit = "WLItemUnit" + WLConstantSpatiallyNo = "WLConstantSpatiallyNo" + BoundaryWidth = "BoundaryWidth" + BoundaryIndentation = "BoundaryIndentation" + +class ADComponentFields(): + InitialCondition = "InitialCondition" + DecayConst = "DecayConst" + TypeNo = "TypeNo" + UnitNo = "UnitNo" + Unit = "Unit" + Description = "Description" + +class ADComponentIniFields(): + ComponentID = "ComponentID" + NodeID = "NodeID" + InitCondLocalValue = "InitCondLocalValue" + ConnectionTypeNo = "ConnectionTypeNo" + NodeListFile = "NodeListFile" + +class ADDecayFields(): + LocTypeNo = "LocTypeNo" + ListID = "ListID" + LinkID = "LinkID" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + LocalWQCompID = "LocalWQCompID" + LocalDecay = "LocalDecay" + +class ADDispersionFields(): + DispFactor = "DispFactor" + Exponent = "Exponent" + MinDispCoef = "MinDispCoef" + MaxDispCoef = "MaxDispCoef" + Global_AD_Dispersion_MUID = "Global AD dispersion" + +class ADDispersionLocalFields(): + LinkID = "LinkID" + DispFactor = "DispFactor" + Exponent = "Exponent" + MinDispCoef = "MinDispCoef" + MaxDispCoef = "MaxDispCoef" + ConnectionTypeNo = "ConnectionTypeNo" + LinkListFile = "LinkListFile" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + +class BBoundaryFields(): + TypeNo = "TypeNo" + GroupNo = "GroupNo" + NodeLoadTypeNo = "NodeLoadTypeNo" + GridTypeNo = "GridTypeNo" + ApplyBoundaryNo = "ApplyBoundaryNo" + ConnectionTypeNo = "ConnectionTypeNo" + IndividualConnectionNo = "IndividualConnectionNo" + ListName = "ListName" + LoadCategoryNo = "LoadCategoryNo" + SourceLocationNo = "SourceLocationNo" + SourceXCoor = "SourceXCoor" + SourceYCoor = "SourceYCoor" + CatchID = "CatchID" + NodeID = "NodeID" + LinkID = "LinkID" + RiverMuid = "RiverMuid" + Chainage = "Chainage" + Distance = "Distance" + DistributeNo = "DistributeNo" + LoadMethodNo = "LoadMethodNo" + CatchLoadNo = "CatchLoadNo" + LoadTypeNo = "LoadTypeNo" + FlowTypeNo = "FlowTypeNo" + VariationNo = "VariationNo" + ConstantValue = "ConstantValue" + StartupNo = "StartupNo" + StartupValue = "StartupValue" + StartupTime = "StartupTime" + CyclicValue = "CyclicValue" + DPProfileID = "DPProfileID" + TSConnection = "TSConnection" + TimeseriesName = "TimeseriesName" + DataTypeName = "DataTypeName" + ValidityIntervalNo = "ValidityIntervalNo" + ValidityBegin = "ValidityBegin" + ValidityEnd = "ValidityEnd" + Fraction = "Fraction" + Description = "Description" + RiverSrcTypeNo = "RiverSrcTypeNo" + RiverSrcUSChainage = "RiverSrcUSChainage" + RiverSrcDSChainage = "RiverSrcDSChainage" + RiverQHRelation = "RiverQHRelation" + RiverLocationNo = "RiverLocationNo" + StorageID = "StorageID" + VariationDicrctionNo = "VariationDicrctionNo" + ConstantDicrctionValue = "ConstantDicrctionValue" + TSConnectionDicrction = "TSConnectionDicrction" + TimeseriesNameDicrction = "TimeseriesNameDicrction" + DataTypeNameDicrction = "DataTypeNameDicrction" + TSConnTypeNo = "TSConnTypeNo" + +class BGridRainWeightsFields(): + BoundaryID = "BoundaryID" + CatchmentID = "CatchmentID" + I = "I" + J = "J" + Weight = "Weight" + +class BookmarkFields(): + BottomLeftXCoor = "BottomLeftXCoor" + BottomLeftYCoor = "BottomLeftYCoor" + TopRightXCoor = "TopRightXCoor" + TopRightYCoor = "TopRightYCoor" + +class CatchConFields(): + CatchID = "CatchID" + NodeID = "NodeID" + LinkID = "LinkID" + LinkNo = "LinkNo" + RRFraction = "RRFraction" + PEFraction = "PEFraction" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + TypeNo = "TypeNo" + LoadTypeNo = "LoadTypeNo" + RoutingTypeNo = "RoutingTypeNo" + RoutingDelay = "RoutingDelay" + RoutingShape = "RoutingShape" + +class CatchmentFields(): + Enabled = "Enabled" + Area = "Area" + Persons = "Persons" + HydrologicalModelNo = "HydrologicalModelNo" + AddFlowNo = "AddFlowNo" + ModelAImpArea = "ModelAImpArea" + ModelAParAID = "ModelAParAID" + ModelALocalNo = "ModelALocalNo" + ModelAConcTime = "ModelAConcTime" + ModelARFactor = "ModelARFactor" + ModelAILoss = "ModelAILoss" + ModelACoeffNo = "ModelACoeffNo" + ModelATACoeff = "ModelATACoeff" + ModelATACurveID = "ModelATACurveID" + ModelBParBID = "ModelBParBID" + ModelBLocalNo = "ModelBLocalNo" + FricTypeNo = "FricTypeNo" + ModelBLength = "ModelBLength" + ModelBSlope = "ModelBSlope" + ModelBAISteep = "ModelBAISteep" + ModelBAIFlat = "ModelBAIFlat" + ModelBAPSmall = "ModelBAPSmall" + ModelBAPMedium = "ModelBAPMedium" + ModelBAPLarge = "ModelBAPLarge" + ModelBMISteep = "ModelBMISteep" + ModelBMIFlat = "ModelBMIFlat" + ModelBMPSmall = "ModelBMPSmall" + ModelBMPMedium = "ModelBMPMedium" + ModelBMPLarge = "ModelBMPLarge" + AddFlow = "AddFlow" + RdiiNo = "RdiiNo" + RdiiArea = "RdiiArea" + ParRdiiID = "ParRdiiID" + IncludeAutoCalNo = "IncludeAutoCalNo" + ModelCLength = "ModelCLength" + ModelCSlope = "ModelCSlope" + ModelC1EffectiveArea = "ModelC1EffectiveArea" + ModelC1ParCID = "ModelC1ParCID" + ModelC1LocalNo = "ModelC1LocalNo" + ModelC1TimeConst = "ModelC1TimeConst" + ModelC1ILoss = "ModelC1ILoss" + ModelC2ImperviousArea = "ModelC2ImperviousArea" + ModelC2ParCID = "ModelC2ParCID" + ModelC2LocalNo = "ModelC2LocalNo" + ModelC2TimeConst = "ModelC2TimeConst" + ModelC2LagTime = "ModelC2LagTime" + ModelC2RedFactor = "ModelC2RedFactor" + ModelC2ILoss = "ModelC2ILoss" + ModelUHMAreaFactor = "ModelUHMAreaFactor" + ModelUHMMethodNo = "ModelUHMMethodNo" + ModelUHMHydrographTableID = "ModelUHMHydrographTableID" + ModelUHMCp = "ModelUHMCp" + ModelUHMSuhSlope = "ModelUHMSuhSlope" + ModelUHMLossModelNo = "ModelUHMLossModelNo" + ModelUHMInitLoss = "ModelUHMInitLoss" + ModelUHMConstLoss = "ModelUHMConstLoss" + ModelUHMRunoffCoeff = "ModelUHMRunoffCoeff" + ModelUHMCurveNum = "ModelUHMCurveNum" + ModelUHMAMC = "ModelUHMAMC" + ModelUHMInitAbstractDepth = "ModelUHMInitAbstractDepth" + ModelUHMLagTimeMethodNo = "ModelUHMLagTimeMethodNo" + ModelUHMLagTime = "ModelUHMLagTime" + ModelUHMHydraulicLength = "ModelUHMHydraulicLength" + ModelUHMLagCurveNum = "ModelUHMLagCurveNum" + ModelUHMSlope = "ModelUHMSlope" + ModelUHMSuhCt = "ModelUHMSuhCt" + ModelUHMSuhL = "ModelUHMSuhL" + ModelUHMSuhLc = "ModelUHMSuhLc" + ModelUHMStreamSlope = "ModelUHMStreamSlope" + ModelUHMBasFactor = "ModelUHMBasFactor" + SWMM_Tag = "SWMM_Tag" + SWMM_RaingageID = "SWMM_RaingageID" + SWMM_LoadToNo = "SWMM_LoadToNo" + SWMM_OutletNodeID = "SWMM_OutletNodeID" + SWMM_OutletCatchmentID = "SWMM_OutletCatchmentID" + SWMM_Width = "SWMM_Width" + SWMM_Slope = "SWMM_Slope" + SWMM_Impervious = "SWMM_Impervious" + SWMM_SnowPackID = "SWMM_SnowPackID" + SWMM_NPervPatternID = "SWMM_NPervPatternID" + SWMM_DstorePatternID = "SWMM_DstorePatternID" + SWMM_NImperv = "SWMM_NImperv" + SWMM_NPerv = "SWMM_NPerv" + SWMM_DImperv = "SWMM_DImperv" + SWMM_DPerv = "SWMM_DPerv" + SWMM_ImpervPctZero = "SWMM_ImpervPctZero" + SWMM_RouteToNo = "SWMM_RouteToNo" + SWMM_PctRouted = "SWMM_PctRouted" + SWMM_MaxRate = "SWMM_MaxRate" + SWMM_MinRate = "SWMM_MinRate" + SWMM_DecayRate = "SWMM_DecayRate" + SWMM_HRegen = "SWMM_HRegen" + SWMM_MaxInFil = "SWMM_MaxInFil" + SWMM_Suction = "SWMM_Suction" + SWMM_Conduct = "SWMM_Conduct" + SWMM_InitDef = "SWMM_InitDef" + SWMM_RunoffCN = "SWMM_RunoffCN" + SWMM_Conduct2 = "SWMM_Conduct2" + SWMM_CRegen = "SWMM_CRegen" + SWMM_CurbLength = "SWMM_CurbLength" + SWMM_InfilPatternID = "SWMM_InfilPatternID" + LossDefinition = "LossDefinition" + +class ChartBookmarkFields(): + XIntervalFrom = "XIntervalFrom" + XIntervalTo = "XIntervalTo" + +class ConfigurationFields(): + Section = "Section" + +class CofigurationMuids(): + DBVersion = "DBVersion" + RunEngineMode = "RunEngineMode" + PROJSTR = "PROJSTR" + SRID = "SRID" + XSFile = "XSFile" + MHydroFile = "MHydroFile" + M21FMFile = "M21FMFile" + +class CRSDFields(): + CrsID = "CrsID" + HX = "HX" + WZ = "WZ" + A = "A" + R = "R" + RelRes = "RelRes" + MarksValue = "MarksValue" + MarksString = "MarksString" + MarksValue1 = "MarksValue1" + MarksValue2 = "MarksValue2" + MarksValue3 = "MarksValue3" + MarksValue4 = "MarksValue4" + MarksValue5 = "MarksValue5" + +class CRSFields(): + TypeNo = "TypeNo" + AllowRecalculation = "AllowRecalculation" + Description = "Description" + +class CulvertFields(): + LinkID = "LinkID" + Enabled = "Enabled" + Chainage = "Chainage" + GeomType = "GeomType" + NumOfCulvert = "NumOfCulvert" + IrregularTypeNo = "IrregularTypeNo" + NonReturnNo = "NonReturnNo" + NonReturnTypeNo = "NonReturnTypeNo" + SectionTypeNo = "SectionTypeNo" + AllowRecalculationNo = "AllowRecalculationNo" + NoQhRelations = "NoQhRelations" + GeomWidth = "GeomWidth" + GeomHeight = "GeomHeight" + GeomDiameter = "GeomDiameter" + UpstreamInvert = "UpstreamInvert" + DownstreamInvert = "DownstreamInvert" + Length = "Length" + ManningN = "ManningN" + PosInflow = "PosInflow" + PosOutflow = "PosOutflow" + PosFreeOverflow = "PosFreeOverflow" + PosBends = "PosBends" + NegInflow = "NegInflow" + NegOutflow = "NegOutflow" + NegFreeOverflow = "NegFreeOverflow" + NegBends = "NegBends" + HeadLossCmTypeNo = "HeadLossCmTypeNo" + ApplyFactorNo = "ApplyFactorNo" + FactorValue = "FactorValue" + Element_S = "Element_S" + DataSource = "DataSource" + Description = "Description" + GeomLinkID = "GeomLinkID" + GeomTopoID = "GeomTopoID" + GeomChainage = "GeomChainage" + HorizOffset = "HorizOffset" + +class CulvertGeomFields(): + CulvertID = "CulvertID" + Level = "Level" + Width = "Width" + +class CulvertHDParamFields(): + CulvertID = "CulvertID" + y = "y" + Area = "Area" + Radius = "Radius" + Conveyance = "Conveyance" + +class CulvertOrificeFlowCoeffFields(): + CulvertID = "CulvertID" + Direction = "Direction" + yD = "yD" + Co = "Co" + +class CulvertQhFlowFields(): + CulvertID = "CulvertID" + Direction = "Direction" + y = "y" + Qc = "Qc" + TypeNo = "TypeNo" + +class CurbInletFields(): + TypeNo = "TypeNo" + Freeboard = "Freeboard" + InvertLevel = "InvertLevel" + InvertLevel_c = "InvertLevel_c" + CaptureID = "CaptureID" + DQrelationID = "DQrelationID" + NoOfCurbInlets = "NoOfCurbInlets" + SlopeNo = "SlopeNo" + Slope = "Slope" + BlockageNo = "BlockageNo" + Blockage = "Blockage" + OriWidth = "OriWidth" + OriHeight = "OriHeight" + CalculatedDerivedSlope = "CalculatedSlope" + CalculatedDerivedInvertLevel = "CalculatedInvertLevel" + +class CustomUnitFields(): + UnitSystemNo = "UnitSystemNo" + EumTypeNo = "EumTypeNo" + TableName = "TableName" + FieldName = "FieldName" + CustomUnitNo = "CustomUnitNo" + +class DAGeneralParaFields(): + ModeNo = "ModeNo" + FirstTSNo = "FirstTSNo" + EnsembleSize = "EnsembleSize" + ToF = "ToF" + ForecastTypeNo = "ForecastTypeNo" + +class DAPerturbationsParamFields(): + ApplyPerturbToNo = "ApplyPerturbToNo" + BoundaryID = "BoundaryID" + ItemNo = "ItemNo" + WQcomponentID = "WQcomponentID" + StdDevID = "StdDevID" + CatchmentID = "CatchmentID" + Description = "Description" + +class DAUpdateParamFields(): + ApplyNo = "ApplyNo" + RiverID = "RiverID" + Chainage = "Chainage" + UpdatedItemNo = "UpdatedItemNo" + WQcomponent = "WQcomponent" + FileName = "FileName" + FileItem = "FileItem" + FileItemNo = "FileItemNo" + DistribTypeNo = "DistribTypeNo" + Amplitude = "Amplitude" + MinChainage = "MinChainage" + MaxChainage = "MaxChainage" + IncludeConnectedNo = "IncludeConnectedNo" + SoftStartNo = "SoftStartNo" + IncludeErrorFrcstNo = "IncludeErrorFrcstNo" + EquationID = "EquationID" + Description = "Description" + StdDevTypeNo = "StdDevTypeNo" + StdDevValue = "StdDevValue" + StdDevFileName = "StdDevFileName" + StdDevFileItem = "StdDevFileItem" + StdDevFileItemNo = "StdDevFileItemNo" + StdDevApplyLowerBoxNo = "StdDevApplyLowerBoxNo" + StdDevLowerValue = "StdDevLowerValue" + StdDevApplyUpperBoxNo = "StdDevApplyUpperBoxNo" + StdDevUpperValue = "StdDevUpperValue" + +class DbTableNames(): + NullTable = "NullTable" + OverviewGeometryTableName = "overviewGeometry" + MapExtentQuadTreeTableName = "mapExtentQuadTreeTable" + ModelSettingTable = "m_ModelSetting" + MGlobalParameterTable = "m_GlobalParameter" + MPluginSitesTable = "m_PluginSites" + NodeTable = "msm_Node" + LinkTable = "msm_Link" + CatchmentTable = "msm_Catchment" + CatchConTable = "msm_CatchCon" + TabTable = "ms_Tab" + TabDTable = "ms_TabD" + Tab2DTable = "ms_2DTab" + Tab2DTVCtrlRuleTable = "ms_2DTabD_TVCtrlRule" + Tab2D_Bridge_USBPR_Eccentricity_Table = "ms_2DTabD_Bridge_USBPR_Eccentricity" + Tab2D_Bridge_FHWA_WSPRO_spur_dykeIII_Table = "ms_2DTabD_Bridge_FHWA_WSPRO_spur_dykeIII" + Tab2D_Bridge_Hydraulic_Research_arch_Table = "ms_2DTabD_Bridge_Hydraulic_Research_arch" + Tab2D_Bridge_Biery_and_Delleur_arch_Table = "ms_2DTabD_Bridge_Biery_and_Delleur_arch" + Tab2D_Bridge_USBPR_velocity_distribution_Table = "ms_2DTabD_Bridge_USBPR_velocity_distribution" + Tab2D_Bridge_FHWA_WSPRO_coef_typeII_Table = "ms_2DTabD_Bridge_FHWA_WSPRO_coef_typeII" + Tab2D_Bridge_FHWA_WSPRO_coef_typeIII_Table = "ms_2DTabD_Bridge_FHWA_WSPRO_coef_typeIII" + Tab2D_Bridge_FHWA_WSPRO_coef_typeIV_Table = "ms_2DTabD_Bridge_FHWA_WSPRO_coef_typeIV" + Tab2D_Bridge_FHWA_WSPRO_depth_Table = "ms_2DTabD_Bridge_FHWA_WSPRO_depth" + Tab2D_Bridge_FHWA_WSPRO_abutment_Table = "ms_2DTabD_Bridge_FHWA_WSPRO_abutment" + Tab2D_Bridge_FHWA_WSPRO_Piles_Table = "ms_2DTabD_Bridge_FHWA_WSPRO_Piles" + Tab2DGenericCtrlRuleTable = "ms_2DTabD_GenericCtrlRule" + CRSTable = "ms_CRS" + CRSDTable = "ms_CRSD" + ProcessedCRSDTable = "ms_ProcessedCRSD" + TopoTable = "ms_Topo" + TopoDTable = "ms_TopoD" + MaterialTable = "ms_Material" + LossParTable = "msm_LossPar" + CurbInletTable = "msm_CurbInlet" + PumpTable = "msm_Pump" + WeirTable = "msm_Weir" + LoadPointTable = "msm_LoadPoint" + LoadPointConnTable = "msm_LoadPointConnection" + BBoundaryTable = "msm_BBoundary" + BndGridRainWeight = "msm_BndGridRainWeights" + WQBoundaryProperties = "msm_WQBoundaryProperties" + BItemTable = "msm_BItem" + ValveTable = "msm_Valve" + OrificeTable = "msm_Orifice" + StatusTable = "m_Status" + DefaultValueTable = "m_DefaultValue" + UserDefinedColumnTable = "m_UserDefinedColumn" + HParATable = "msm_HParA" + HParBTable = "msm_HParB" + HParCTable = "msm_HParC" + HParRdiiTable = "msm_HParRDII" + HParAutoCaliRDIITable = "msm_HParAutoCaliRDII" + HParRdiiElevZones = "msm_HParRdiiElevZones" + HParSeasonalVariation = "msm_HParSeasonalVariation" + MediaTable = "m_Media" + SelectionTable = "m_Selection" + BookmarkTable = "m_Bookmark" + ChartBookmarkTable = "m_ChartBookmark" + ConfigTable = "m_Configuration" + CustomUnitTable = "m_CustomUnit" + DPProfileTable = "ms_DPProfile" + DPProfileDTable = "ms_DPProfileD" + DPPatternTable = "ms_DPPattern" + DPPatternDTable = "ms_DPPatternD" + DPScheduleTable = "ms_DPSchedule" + DPSpecDayTable = "ms_DPSpecDay" + RTCTable = "msm_RTC" + RTCSensorTable = "msm_RTCSensor" + RTCRuleTable = "msm_RTCRule" + RTCActionTable = "msm_RTCAction" + RTCPIDTable = "msm_RTCPID" + RSTable = "msm_RS" + RSSTable = "msm_RSS" + RSSItemTable = "msm_RSSItem" + RSSGeomTable = "msm_RSSGeom" + RSSDemTable = "msm_RSSDem" + RSSFormatGeometryTable = "msm_RSSFormatGeometry" + RRProjectTable = "msm_RRProject" + HDProjectTable = "msm_HDProject" + ScenarioTable = "m_ScenarioManagementScenario" + AlternativeTable = "m_ScenarioManagementAlternative" + ADComponentTable = "msm_ADComponent" + ADComponentIniTable = "msm_ADComponentIni" + ADDecayTable = "msm_ADDecay" + ADInitialConditionTable = "msm_ADInitialCondition" + ADInitialConditionDefaultTable = "msm_ADInitialConditionDefault" + ADInitialConditionLocalTable = "msm_ADInitialConditionLocal" + ADInitialConditionLocalValueTable = "msm_ADInitialConditionLocalValue" + ADInitialConditionHotstartFileTable = "msm_ADInitialConditionHotstartFile" + ADDispersionTable = "msm_ADDispersion" + ADDispersionLocalTable = "msm_ADDispersionLocal" + LTSRunMTable = "msm_LTSRunM" + LTSRunSTable = "msm_LTSRunS" + LTSDwfTsTable = "msm_LTSDwfTs" + LTSInitTable = "msm_LTSInit" + LTSInitOTable = "msm_LTSInito" + LTSJobListCriteriaTable = "msm_LTSJobListCriteria" + LTSJobStopTable = "msm_LTSJobStop" + LTSResultTable = "msm_LTSResult" + LTSResultLocalTable = "msm_LTSResultLocal" + LIDControlTable = "msm_LIDcontrol" + LIDUsageTable = "msm_LIDusage" + LIDRemovalTable = "msm_LIDRemoval" + ECOLABCoeffTable = "msm_ECOLABCoeff" + ECOLABCoeffLocalTable = "msm_ECOLABCoeffLocal" + ECOLABForcingTable = "msm_ECOLABForcing" + ECOLABTemplateTable = "msm_ECOLABTemplate" + ECOLABComponentTable = "msm_ECOLABComponent" + ECOLABOutputTable = "msm_ECOLABOutput" + MeasurementTable = "m_Measurement" + StationTable = "m_Station" + StationConnTable = "m_StationCon" + ResultSelectionQuantityTable = "msm_ResultSelectionQuantity" + StatusCodeTable = "m_StatusCode" + CulvertTable = "msm_Culvert" + CulvertGeomTable = "msm_CulvertGeom" + CulvertHDParamTable = "msm_CulvertHDParam" + CulvertOrificeFlowCoeffTable = "msm_CulvertOrificeFlowCoeff" + CulvertQhFlowTable = "msm_CulvertQHFlow" + HtmlSummaryTable = "msm_HtmlSummary" + SWQPollutantTable = "msm_SWQPollutant" + SWQGlobalDataTable = "msm_SWQGlobalData" + SWQAttachedPollutantTable = "msm_SWQAttachedPollutant" + OnGradeTable = "msm_OnGrade" + OnGradeDTable = "msm_OnGradeD" + STTable = "msm_ST" + STFractionTable = "msm_STFraction" + STInitDepthLocalTable = "msm_STInitDepthLocal" + STInitDepthFractDefaultTable = "msm_STInitDepthFractDefault" + STInitDepthFractLocalTable = "msm_STInitDepthFractLocal" + STPipesRoughnessLocalTable = "msm_STPipesRoughnessLocal" + STRemovalBasinTable = "msm_STRemovalBasin" + STRemovalWeirTable = "msm_STRemovalWeir" + ProjectTable = "msm_Project" + ProjectTableBatchPresentation = "ProjectTableBatchPresentation" + ProjectOutputTable = "msm_ProjectOutput" + HDInitialConditionTable = "msm_HDInitialCondition" + HDInitialConditionLocalTable = "msm_HDInitialConditionLocal" + HDInitialConditionHotstartFileTable = "msm_HDInitialConditionHotstartFile" + MCustomConfigTable = "m_CustomConfig" + MsmAlarmLevelTable = "msm_AlarmLevel" + MsmAlarmLevelDTable = "msm_AlarmLevelD" + MsmPumpESETable = "msm_PumpESE" + MsmPumpESEDTable = "msm_PumpESED" + MsmHDAddPercentTable = "msm_HDAddPercent" + MsmRRAddPercentTable = "msm_RRAddPercent" + MsmLandUseTable = "msm_LandUse" + MsmCatchLandUseTable = "msm_CatchLandUse" + WdProjectTable = "mw_Project" + WdProjectTableBatchPresentation = "WdProjectTableBatchPresentation" + WdJunctionTable = "mw_Junction" + WdPipeTable = "mw_Pipe" + WdPumpTable = "mw_Pump" + WdValveTable = "mw_Valve" + WdTankTable = "mw_Tank" + WdDemAllocTable = "mw_DemAlloc" + WdDemAllocConnTable = "mw_DemAllocConn" + WdMDemandTable = "mw_MDemand" + WdDemandStatTable = "mw_DemStat" + WdDemandStatConfigTable = "mw_DemStatConfig" + WdControlTable = "mw_Control" + WdPumpStationTable = "mw_PumpStation" + WdPumpStationConnTable = "mw_PumpStationConn" + WdZoneDefinitionTable = "mw_ZoneDef" + WdZoneWBTable = "mw_ZoneWB" + WdPPatternTable = "mw_PPattern" + WdPPatternDTable = "mw_PPatternD" + WdSpecDayTable = "mw_SpecDay" + WdCurveTable = "mw_Curve" + WdCurveDTable = "mw_CurveD" + WdSourceTable = "mw_Source" + WdTraceNodeTable = "mw_TraceNode" + WdTurbineTable = "mw_Turbine" + WdFrictionTable = "mw_Friction" + WdLossCoeffTable = "mw_Loss" + WdRtcTable = "mw_RTC" + WdEnergyTable = "mw_Energy" + WdRuleTable = "mw_Rule" + WdReliabilityTable = "mw_Reliability" + WdReliabilityLocalTable = "mw_ReliabilityLocal" + WdFireFlowTable = "mw_FireFlow" + WdZoneMappingLinkTable = "mw_zonemapping_link" + WdFlushingTable = "mw_Flushing" + WdFlushingOutletTable = "mw_FlushingOutlet" + WdShutdownPlanningTable = "mw_ShutdownPlanning" + WdShutdownValveTable = "mw_ShutdownValve" + WdPipeRelTable = "mw_PipeRel" + WdWHBoundaryTable = "mw_WH_Boundary" + WdAirChamberTable = "mw_AirChamber" + WdOptimizationTable = "mw_Optimization" + WdOptimizationControlTable = "mw_OptimizationControl" + WdOptimizationTargetTable = "mw_OptimizationTarget" + WdOptimizationTargetWBTable = "mw_OptimizationTargetWB" + WdWDOSettingsTable = "mw_WDOSettings" + WdWDOSensorsTable = "mw_WDOSensors" + WdWDOControlsTable = "mw_WDOControls" + WdWDODemandZonesTable = "mw_WDODemandZones" + WdWDODemandPredictionsTable = "mw_WDODemandPredictions" + WdWDOComparisonsTable = "mw_WDOComparisons" + WdMsxTable = "mw_EPAMSX" + WdAutocalibrationTable = "mw_Autocalibration" + WdAutocaliClosedLinks = "mw_AutocaliClosedLinks" + WdAutocaliPipesFriction = "mw_AutocaliPipesFrict" + WdAutocaliNodeDemands = "mw_AutocaliNodeDemands" + WdAutocaliLeaks = "mw_AutocaliLeaks" + WdAutocaliTargets = "mw_AutocaliTargets" + WdResValveCriticalityTable = "mwRes_ValveCriticality" + WdResSustainabilityLinkTable = "mwRes_Sustainability_Link" + WdResSustainabilityNodeTable = "mwRes_Sustainability_Node" + M21GlobalSettingTable = "m2d_GlobalSetting" + M21pfsSectionTable = "m21_pfsSection" + M21pfsKeywordTable = "m21_pfsKeyword" + M21pfsParamTable = "m21_pfsParam" + MfPfsSectionTable = "mf_pfsSection" + MfPfsKeywordTable = "mf_pfsKeyword" + MfPfsParamTable = "mf_pfsParam" + Mu2DSurfaceRoughnessAreaTable = "m2d_SurfaceRoughnessArea" + Mu2DSurfaceRoughnessValueTable = "m2d_SurfaceRoughnessValue" + Mu2DEddyViscosityAreaTable = "m2d_EddyViscosityArea" + Mu2DInitialConditionAreaTable = "m2d_InitialConditionArea" + Mu2DStructureDikeTable = "m2d_StructureDike" + Mu2DStructureWeirTable = "m2d_StructureWeir" + Mu2DStructureWeirDTable = "m2d_StructureWeirD" + Mu2DStructureCulvertTable = "m2d_StructureCulvert" + Mu2DStructureCulvertDTable = "m2d_StructureCulvertD" + Mu2DCouplingTable = "m2d_Coupling" + Mu2DCouplingConnTable = "m2d_CouplingConn" + Mu2DMeshArcTable = "m2d_MeshArc" + Mu2DMeshLocalAreaTable = "m2d_MeshLocalArea" + Mu2DGridDefinitionTable = "m2d_GridDefinition" + Mu2DBndDistributedSourceTable = "m2d_BndDistributedSource" + Mu2DBndQhRelationTable = "m2d_BndQHRelation" + Mu2DBoundaryTable = "m2d_Boundary" + Mu2DWQBoundaryTable = "m2d_WQBoundary" + Mu2DGridInactiveAreaTable = "m2d_GridInactiveArea" + Mu2DInfiltrationTable = "m2d_Infiltration" + Mu2DInfiltrationLandCoverTable = "m2d_InfiltrationLandCover" + Mu2dADInitalConditionTable = "m2d_ADInitalCondition" + Mu2dADInitalConditionDTable = "m2d_ADInitalConditionD" + Mu2dADInitalConditionAreaTable = "m2d_ADInitalConditionArea" + Mu2dADDecayTable = "m2d_ADDecay" + Mu2dADInfiltrationTable = "m2d_ADInfiltration" + Mu2dADInfiltrationDTable = "m2d_ADInfiltrationD" + Mu2dADInfiltrationAreaTable = "m2d_ADInfiltrationArea" + Mu2dADPrecipitationTable = "m2d_ADPrecipitation" + Mu2dADPrecipitationDTable = "m2d_ADPrecipitationD" + Mu2dADPrecipitationAreaTable = "m2d_ADPrecipitationArea" + Mu2dADEvaporationTable = "m2d_ADEvaporation" + Mu2dADEvaporationDTable = "m2d_ADEvaporationD" + Mu2dADEvaporationAreaTable = "m2d_ADEvaporationArea" + Mu2dADDispersionTable = "m2d_ADDispersion" + Mu2dADDispersionDTable = "m2d_ADDispersionD" + Mu2dADDispersionAreaTable = "m2d_ADDispersionArea" + Mu2dInfBuildingTable = "m2d_InfBuilding" + Mu2dInfRoadTable = "m2d_InfRoad" + RiverBranchTable = "mrm_Branch" + RiverBranchConnTable = "mrm_BranchConn" + RiverUserDefinedChainageTable = "mrm_UserDefinedChainage" + RiverBranchRoughnessLocalTable = "mrm_BranchRoughnessLocal" + RiverZoneSeparatorLocalTable = "mrm_ZoneSeparatorLocal" + RiverRoughnessFactorLocalTable = "mrm_RoughnessFactor" + RiverBranchRoutingTable = "mrm_RiverRoutingMethod" + RiverWeirTable = "mrm_Weir" + RiverWeirGeomTable = "mrm_WeirGeom" + RiverWeirQhRelationTable = "mrm_WeirQHRelation" + RiverDirectDischargeTable = "mrm_DirectDischarge" + RiverGateTable = "mrm_Gate" + RiverPumpTable = "mrm_Pump" + RiverBridgeTable = "mrm_Bridge" + RiverBridgeOpeningTable = "mrm_BridgeOpening" + RiverBridgeCrsTable = "mrm_BridgeCrs" + RiverEnergyLossTable = "mrm_EnergyLoss" + RiverTabulatedTable = "mrm_Tabulated" + RiverTabulated2DQHTable = "ms_2DTabD_Tabulated_QH" + RiverTabulated2DHQUPTable = "ms_2DTabD_Tabulated_HQ_UP" + RiverTabulated2DHQDOWNTable = "ms_2DTabD_Tabulated_HQ_DOWN" + RiverDambreakTable = "mrm_Dambreak" + RiverStorageTable = "mrm_Storage" + RiverDAGeneralParamTable = "mrm_DAGeneralPara" + RiverDAUpdateParamTable = "mrm_DAUpdatePara" + RiverDAStandardDeviationTable = "mrm_DAStandardDeviation" + RiverDAErrorForecastEquationsTable = "mrm_DAErrorForecastEquations" + RiverDAErrorForecastParaTable = "mrm_DAErrorForecastPara" + RiverDAPerturbationsParamTable = "mrm_DAPerturbationsPara" + RiverWindScaleFactorLocalTable = "mrm_WindScaleFactorLocal" + RiverGroundwaterLeakageLocalTable = "mrm_LeakageCoefficients" + SHECouplingsTable = "mrm_SHECouplings" + STLocalBedParThickTable = "mrm_STLocalBedParThick" + STLocalBedParMorphTable = "mrm_STLocalBedParMorph" + STNonScrBedLevelTable = "mrm_STNonScrLocalBedLevel" + STPassiveLinkTable = "mrm_STPassiveLink" + STAdvFractionTable = "mrm_STAdvFraction" + STAdvFracGrainLocalTable = "mrm_STAdvFracGrainLocal" + STAdvFracSusLocalTable = "mrm_STAdvFracSusLocal" + STInitConcentratDefaultTable = "mrm_STInitConcentratDefault" + STInitConcentratLocalTable = "mrm_STInitConcentratLocal" + MssNodeTable = "mss_Node" + MssLinkTable = "mss_Link" + MssOrificeTable = "mss_Orifice" + MssWeirTable = "mss_Weir" + MssOutletTable = "mss_Outlet" + MssPumpTable = "mss_Pump" + MssProjectTable = "mss_Project" + MssTabTable = "mss_Tab" + MssTabDTable = "mss_TabD" + MssTimeseriesTable = "mss_Timeseries" + MssTimeseriesDTable = "mss_TimeseriesD" + MssPatternTable = "mss_Pattern" + MssInflowTable = "mss_Inflow" + MssInflowDTable = "mss_InflowD" + MssEvaporationTable = "mss_Evaporation" + MssCoverageTable = "mss_Coverage" + MssTemperatureTable = "mss_Temperature" + MssAdjustmentTable = "mss_Adjustment" + MssTransectTable = "mss_Transect" + MssTransectDTable = "mss_TransectD" + MssTransectCoordTable = "mss_TransectCoord" + MssAquiferTable = "mss_Aquifer" + MssHydrographTable = "mss_Hydrograph" + MssHydrographDTable = "mss_HydrographD" + MssRDIITable = "mss_RDII" + MssLIDControlTable = "mss_LIDControl" + MssLIDControlDTable = "mss_LIDControlD" + MssLIDUsageTable = "mss_LIDusage" + MssSnowPackTable = "mss_SnowPack" + MssDWFTable = "mss_DWF" + MssDWFDTable = "mss_DWFD" + MssGroundwaterTable = "mss_Groundwater" + MssRaingaugeTable = "mss_Raingauge" + MssRuleTable = "mss_Rule" + MssPollutant = "mss_Pollutant" + MssLanduse = "mss_Landuse" + MssWashoff = "mss_Washoff" + MssBuildup = "mss_Buildup" + MssLoading = "mss_Loading" + MssLocalTreatment = "mss_LocalTreatment" + MssCatchConTable = "mss_CatchCon" + MsSimpSettingTable = "ms_SimpSetting" + MsSimpMappingTable = "ms_SimpMapping" + +class InMemObjIDs(): + RiverModel = "RiverModel" + RiverCrossSection = "RiverCrossSection" + M21FM = "M21FM" + +class DefaultValueFields(): + TableName = "TableName" + FieldName = "FieldName" + Value = "Value" + +class UserDefinedColumnFields(): + TableName = "TableName" + FieldName = "FieldName" + HeaderText = "HeaderText" + DataType = "DataType" + TypeNo = "TypeNo" + Expression = "Expression" + ResultFile = "ResultFile" + ResultItem = "ResultItem" + ResultValueType = "ResultValueType" + ResultTimeStep = "ResultTimeStep" + +class DescriptionFieldBase(): + Description = "Description" + DataSource = "DataSource" + AssetName = "AssetName" + Element_S = "Element_S" + NetTypeNo = "NetTypeNo" + Note = "Note" + Tag = "Tag" + +class DPPatternDFields(): + PatternID = "PatternID" + Time = "Time" + ToTime = "ToTime" + DPValue = "DPValue" + +class DPPatternFields(): + DeltaT = "DeltaT" + Description = "Description" + +class DPProfileDFields(): + ProfileID = "ProfileID" + PatternID = "PatternID" + ScheduleID = "ScheduleID" + +class DPProfileFields(): + InterpolationNo = "InterpolationNo" + DataRelationNo = "DataRelationNo" + MultipliersScalingNo = "MultipliersScalingNo" + +class DPScheduleFields(): + DaysNo = "DaysNo" + DatesNo = "DatesNo" + MonthsNo = "MonthsNo" + WeekDay1 = "WeekDay1" + WeekDay2 = "WeekDay2" + WeekDay3 = "WeekDay3" + WeekDay4 = "WeekDay4" + WeekDay5 = "WeekDay5" + WeekDay6 = "WeekDay6" + WeekDay7 = "WeekDay7" + Month1 = "Month1" + Month2 = "Month2" + Month3 = "Month3" + Month4 = "Month4" + Month5 = "Month5" + Month6 = "Month6" + Month7 = "Month7" + Month8 = "Month8" + Month9 = "Month9" + Month10 = "Month10" + Month11 = "Month11" + Month12 = "Month12" + MonthDay1 = "MonthDay1" + MonthDay2 = "MonthDay2" + MonthDay3 = "MonthDay3" + MonthDay4 = "MonthDay4" + MonthDay5 = "MonthDay5" + MonthDay6 = "MonthDay6" + MonthDay7 = "MonthDay7" + MonthDay8 = "MonthDay8" + MonthDay9 = "MonthDay9" + MonthDay10 = "MonthDay10" + MonthDay11 = "MonthDay11" + MonthDay12 = "MonthDay12" + MonthDay13 = "MonthDay13" + MonthDay14 = "MonthDay14" + MonthDay15 = "MonthDay15" + MonthDay16 = "MonthDay16" + MonthDay17 = "MonthDay17" + MonthDay18 = "MonthDay18" + MonthDay19 = "MonthDay19" + MonthDay20 = "MonthDay20" + MonthDay21 = "MonthDay21" + MonthDay22 = "MonthDay22" + MonthDay23 = "MonthDay23" + MonthDay24 = "MonthDay24" + MonthDay25 = "MonthDay25" + MonthDay26 = "MonthDay26" + MonthDay27 = "MonthDay27" + MonthDay28 = "MonthDay28" + MonthDay29 = "MonthDay29" + MonthDay30 = "MonthDay30" + MonthDay31 = "MonthDay31" + +class DPSpecDayFields(): + TypeNo = "TypeNo" + DPWeekDayNo = "DPWeekDayNo" + DPDate = "DPDate" + +class ECOLABCoeffFields(): + ECOLABTemplateID = "ECOLABTemplateID" + CoeffID = "CoeffID" + ID = "ID" + Value = "Value" + Description = "Description" + ConstantTypeNo = "ConstantTypeNo" + FileName = "FileName" + FileItem = "FileItem" + FileItemNo = "FileItemNo" + BuildinID = "BuildinID" + SpatialVar = "SpatialVar" + InterpolateNo = "InterpolateNo" + +class ECOLABCoeffLocalFields(): + CoeffID = "CoefID" + LocTypeNo = "LocTypeNo" + ListID = "ListID" + NodeID = "NodeID" + LinkID = "LinkID" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + LinkNo = "LinkNo" + Value = "Value" + +class ECOLABComponentFields(): + ECOLABTemplateID = "ECOLABTemplateID" + StateVariableID = "StateVariableID" + ID = "ID" + ADComponentID = "ADComponentID" + ConversionFactor = "ConversionFactor" + Description = "Description" + Transport = "Transport" + Scope = "Scope" + MinVal = "MinVal" + MaxVal = "MaxVal" + +class ECOLABForcingFields(): + ECOLABTemplateID = "ECOLABTemplateID" + ForcingID = "ForcingID" + ID = "ID" + TSTypeNo = "TSTypeNo" + Value = "Value" + TSFileName = "TSFileName" + TSItemID = "TSItemID" + TSItemNo = "TSItemNo" + DfsFileName = "DfsFileName" + DfsItemID = "DfsItemID" + DfsItemNo = "DfsItemNo" + Description = "Description" + Unit = "Unit" + BuildinID = "BuildinID" + SpatialVar = "SpatialVar" + +class ECOLABOutputFields(): + ECOLabTemplateID = "ECOLabTemplateID" + ECOLabTypeNo = "ECOLabTypeNo" + ECOLabOutputNo = "ECOLabOutputNo" + ECOLabOutputText = "ECOLabOutputText" + ECOLabOutputSymbol = "ECOLabOutputSymbol" + ECOLabDimNo = "ECOLabDimNo" + ECOLabUnit = "ECOLabUnit" + ECOLabEUMUnit = "ECOLabEUMUnit" + +class ECOLABTemplateFields(): + ApplyNo = "ApplyNo" + TemplateNo = "TemplateNo" + TemplateFilename = "TemplateFilename" + TypeNo = "TypeNo" + ConnectionTypeNo = "ConnectionTypeNo" + ListID = "ListID" + NodeID = "NodeID" + LinkID = "LinkID" + Description = "Description" + StateVariables = "StateVariables" + +class FieldNameBase(): + MUID = "MUID" + AltID = "AltID" + Active = "active" + +class GeomFieldName(): + Geometry = "geometry" + GeomX = "GeomX" + GeomY = "GeomY" + GeomCentroidX = "GeomCentroidX" + GeomCentroidY = "GeomCentroidY" + GeomInteriorPointX = "GeomInteriorPointX" + GeomInteriorPointY = "GeomInteriorPointY" + GeomArea = "GeomArea" + GeomLength = "GeometricLength" + +class SqnFieldBase(): + Sqn = "Sqn" + +class PfsFieldBase(): + ParentID = "ParentID" + GlobalSqn = "GlobalSqn" + +class GenericFieldName(): + Attrib = "Attrib" + Model = "Model" + Enabled = "Enabled" + LinkID = "LinkID" + LinkNo = "LinkNo" + ChainageData = "ChainageData" + +class GlobalFields(): + ValueInt = "ValueInt" + ValueDouble = "ValueDouble" + ValueText = "ValueText" + Comment = "Comment" + ValueFilePath = "ValueFilePath" + +class CustomDomainFilter(): + Name = "_Custom_Domain_Filter_Field_" + +class FakeFieldName(): + CheckNo = "CheckNo" + BoolNo = "BoolNo" + OpenCloseNo = "OpenCloseNo" + +class HDInitialConditionFields(): + UseLocalNo = "UseLocalNo" + UseHotstartNo = "UseHotstartNo" + LevelDepthTypeNo = "LevelDepthTypeNo" + LevelDepth = "LevelDepth" + DischargeTypeNo = "DischargeTypeNo" + Discharge = "Discharge" + +class HDInitialConditionHotstartFileFields(): + InitCondID = "InitCondID" + UseStartTimeNo = "UseStartTimeNo" + DateTime = "DateTime" + FilePath = "FilePath" + +class HDInitialConditionLocalFields(): + InitCondID = "InitCondID" + LocationTypeNo = "LocationTypeNo" + ListID = "ListID" + NodeID = "NodeID" + LinkID = "LinkID" + LinkNo = "LinkNo" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + LevelDepthTypeNo = "LevelDepthTypeNo" + LevelDepth = "LevelDepth" + DischargeTypeNo = "DischargeTypeNo" + Discharge = "Discharge" + Description = "Description" + +class HDProjectFields(): + ScenarioID = "ScenarioID" + Description = "Description" + ActiveProject = "ActiveProject" + CRFFileNo = "CRFFileNo" + CRFFileName = "CRFFileName" + RTCComputationNo = "RTCComputationNo" + LTSNo = "LTSNo" + GenerateJobListNo = "GenerateJobListNo" + MJLFileName = "MJLFileName" + ADComputationNo = "ADComputationNo" + WQComputationNo = "WQComputationNo" + STComputationNo = "STComputationNo" + GradedSedimentNo = "GradedSedimentNo" + ELComputationNo = "ELComputationNo" + ELIntegrationNo = "ELIntegrationNo" + ComputationBegin = "ComputationBegin" + ComputationEnd = "ComputationEnd" + TimeStepType = "TimeStepType" + DtFixedSec = "DtFixedSec" + DtMinSec = "DtMinSec" + DtMaxSec = "DtMaxSec" + DtIncreaseFactor = "DtIncreaseFactor" + ADPNetworkFileNo = "ADPNetworkFileNo" + ADPFileName = "ADPFileName" + HDHotStartNo = "HDHotStartNo" + HDHotStartFileName = "HDHotStartFileName" + HDHotStartDateTime = "HDHotStartDateTime" + ADHotStartNo = "ADHotStartNo" + ADHotStartFileName = "ADHotStartFileName" + ADHotStartDateTime = "ADHotStartDateTime" + SummaryID = "SummaryID" + HDOutputNo = "HDOutputNo" + HDFolderPath = "HDFolderPath" + HDName = "HDName" + UserOutputNo = "UserOutputNo" + UserOutputSelectionID = "UserOutputSelectionID" + DtSaveHour = "DtSaveHour" + DtSaveMin = "DtSaveMin" + DtSaveSec = "DtSaveSec" + Min2dTs = "Min2dTs" + Max2dTs = "Max2dTs" + MaxCFL = "MaxCFL" + +class HParAFields(): + RedFactor = "RedFactor" + InitLoss = "InitLoss" + ConcTime = "ConcTime" + TAMethodNo = "TAMethodNo" + TACurveID = "TACurveID" + TACoeff = "TACoeff" + +class HParAutoCaliRDIIFields(): + ParRdiiID = "ParRdiiID" + Parameter = "Parameter" + FitNo = "FitNo" + InitialValue = "InitialValue" + LowerBound = "LowerBound" + UpperBound = "UpperBound" + UnitCtrlNo = "UnitCtrlNo" + +class HParBFields(): + WetSteep = "WetSteep" + WetFlat = "WetFlat" + WetSmall = "WetSmall" + WetMedium = "WetMedium" + WetLarge = "WetLarge" + StorageFlat = "StorageFlat" + StorageSmall = "StorageSmall" + StorageMedium = "StorageMedium" + StorageLarge = "StorageLarge" + InfMaxSmall = "InfMaxSmall" + InfMaxMedium = "InfMaxMedium" + InfMaxLarge = "InfMaxLarge" + InfMinSmall = "InfMinSmall" + InfMinMedium = "InfMinMedium" + InfMinLarge = "InfMinLarge" + InfExpWetSmall = "InfExpWetSmall" + InfExpWetMedium = "InfExpWetMedium" + InfExpWetLarge = "InfExpWetLarge" + InfExpDrySmall = "InfExpDrySmall" + InfExpDryMedium = "InfExpDryMedium" + InfExpDryLarge = "InfExpDryLarge" + FricTypeNo = "FricTypeNo" + ManningSteep = "ManningSteep" + ManningFlat = "ManningFlat" + ManningSmall = "ManningSmall" + ManningMedium = "ManningMedium" + ManningLarge = "ManningLarge" + +class HParCFields(): + MaxCap = "MaxCap" + Rfactor = "Rfactor" + Iloss = "Iloss" + Lagtime = "Lagtime" + InfiltrNo = "InfiltrNo" + MinCap = "MinCap" + WetCond = "WetCond" + DryCond = "DryCond" + Ctime = "Ctime" + +class HParRdiiFields(): + Umax = "Umax" + Lmax = "Lmax" + Cqof = "Cqof" + GwCarea = "GwCarea" + Ck = "Ck" + Ck2TypeNo = "Ck2TypeNo" + Ck2 = "Ck2" + Ckif = "Ckif" + Ckbf = "Ckbf" + SnowmeltNo = "SnowmeltNo" + SnowmeltC = "SnowmeltC" + Tof = "Tof" + Tif = "Tif" + Tg = "Tg" + InitU = "InitU" + InitL = "InitL" + InitGwl = "InitGwl" + InitOf = "InitOf" + InitBF = "InitBF" + InitBFLow = "InitBFLow" + InitIf = "InitIf" + GwSy = "GwSy" + GwLmin = "GwLmin" + GWLbf0 = "GWLbf0" + GWLfl1 = "GWLfl1" + LowerBFTypeNo = "LowerBFTypeNo" + CQLow = "CQLow" + CKLow = "CKLow" + ObjFuncWaterBalanceNo = "ObjFuncWaterBalanceNo" + ObjFuncRmsErrorNo = "ObjFuncRmsErrorNo" + ObjFuncPeakflowNo = "ObjFuncPeakflowNo" + ObjFuncPeakflow = "ObjFuncPeakflow" + ObjFuncLowflowNo = "ObjFuncLowflowNo" + ObjFuncLowflow = "ObjFuncLowflow" + ObjFuncMaxEvaluation = "ObjFuncMaxEvaluation" + ObjFuncInitDaysExcluded = "ObjFuncInitDaysExcluded" + GWSeasonTypeNo = "GWSeasonTypeNo" + GWLBFMin = "GWLBFMin" + AbstractionTypeNo = "AbstractionTypeNo" + AbstractionSourceTypeNo = "AbstractionSourceTypeNo" + SnowStorage = "SnowStorage" + T0 = "T0" + SnowmeltCTypeNo = "SnowmeltCTypeNo" + RadiationTypeNo = "RadiationTypeNo" + RadiationCoef = "RadiationCoef" + RainfallCoefTypeNo = "RainfallCoefTypeNo" + RainfallCoef = "RainfallCoef" + ElevZonesNo = "ElevZonesNo" + CorrectDryTempNo = "CorrectDryTempNo" + CorrectDryTempCorrection = "CorrectDryTempCorrection" + CorrectWetTempNo = "CorrectWetTempNo" + CorrectWetTempCorrection = "CorrectWetTempCorrection" + TempStationElev = "TempStationElev" + CorrectPrecNo = "CorrectPrecNo" + CorrectPrecCorrection = "CorrectPrecCorrection" + PrecStationElev = "PrecStationElev" + IncludeIrrigationNo = "IncludeIrrigationNo" + K0inf = "K0inf" + PClgw = "PClgw" + PClr = "PClr" + PCexr = "PCexr" + RiverID = "RiverID" + Chainage = "Chainage" + IncludeSeasonalVarNo = "IncludeSeasonalVarNo" + +class HtmlSummaryFields(): + SummaryNodeNo = "SummaryNodeNo" + SummaryWeirNo = "SummaryWeirNo" + SummaryPumpNo = "SummaryPumpNo" + SummaryLinkNo = "SummaryLinkNo" + SummaryLinkLevelNo = "SummaryLinkLevelNo" + SummaryLinkDischargeNo = "SummaryLinkDischargeNo" + SummaryLinkVelocityNo = "SummaryLinkVelocityNo" + SummaryLinkInputNo = "SummaryLinkInputNo" + NodeSelectionNo = "NodeSelectionNo" + NodeSelectionName = "NodeSelectionName" + LinkSelectionNo = "LinkSelectionNo" + LinkSelectionName = "LinkSelectionName" + +class JunctionFields(): + Enabled = "Enabled" + Elev = "Elev" + Z = "Z" + TypeNo = "TypeNo" + DemCoeff = "DemCoeff" + MinPre = "MinPre" + EstHeight = "EstHeight" + Em_FlowCoeff = "Em_FlowCoeff" + FFPREREQ = "FFPREREQ" + FFFLOREQ = "FFFLOREQ" + gF = "gF" + smF = "smF" + Init_Quality_Concentration = "Init_Quality_Concentration" + Init_Quality_Hour = "Init_Quality_Hour" + Init_Quality_Percentage = "Init_Quality_Percentage" + ZoneID = "ZoneID" + AV_Diameter = "AV_Diameter" + AV_Kapa = "AV_Kapa" + AV_ValveCurveID = "AV_ValveCurveID" + +class LIDcontrolFields(): + LIDTypeNo = "LIDTypeNo" + StorHt = "StorHt" + VegFrac = "VegFrac" + Xslope = "Xslope" + Rough = "Rough" + Slope = "Slope" + SThick = "SThick" + Por = "Por" + FC = "FC" + WP = "WP" + SFlowCalculationNo = "SFlowCalculationNo" + LeakageCapacity = "LeakageCapacity" + InfiltrationCapacity = "InfiltrationCapacity" + Ksat = "Ksat" + Kcoeff = "Kcoeff" + Suct = "Suct" + PThick = "PThick" + PVPorosity = "PVPorosity" + FracImp = "FracImp" + Perm = "Perm" + PVclog = "PVclog" + Height = "Height" + SVPorosity = "SVPorosity" + Filt = "Filt" + SVclog = "SVclog" + HOffset = "HOffset" + Delay = "Delay" + Expon = "Expon" + DrainCapacityTypeNo = "DrainCapacityTypeNo" + DrainCapacityArea = "DrainCapacityArea" + DrainCapacityFlow = "DrainCapacityFlow" + DMThick = "DMThick" + DMVPorosity = "DMVPorosity" + DMRough = "DMRough" + FricTypeNo = "FricTypeNo" + DMFricTypeNo = "DMFricTypeNo" + +class LIDRemovalFields(): + LIDID = "LIDID" + ComponentID = "ComponentID" + OverflowRemovalFac = "OverflowRemovalFac" + DrainRemovalFac = "DrainRemovalFac" + +class LIDusageFields(): + Enabled = "Enabled" + CatchmentID = "CatchmentID" + LidID = "LidID" + IncludeNo = "IncludeNo" + ReplicateNumber = "ReplicateNumber" + Width = "Width" + InitSatSurface = "InitSatSurface" + InitSatSoil = "InitSatSoil" + InitSatStorage = "InitSatStorage" + UnitArea = "UnitArea" + UnitAreaPercent = "UnitAreaPercent" + CollectingNo = "CollectingNo" + CollectingArea = "CollectingArea" + CollectingAreaPercent = "CollectingAreaPercent" + +class LinkBaseFields(): + Enabled = "Enabled" + FromNodeID = "FromNodeID" + ToNodeID = "ToNodeID" + +class LinkFields(): + MaxDx = "MaxDx" + TypeNo = "TypeNo" + Length = "Length" + UpLevel = "UpLevel" + DwLevel = "DwLevel" + UpLevel_C = "UpLevel_C" + DwLevel_C = "DwLevel_C" + Slope = "Slope" + Width = "Width" + Diameter = "Diameter" + Height = "Height" + CrsID = "CrsID" + TopographyID = "TopographyID" + MaterialID = "MaterialID" + FricTypeNo = "FricTypeNo" + FricNo = "FricNo" + Manning = "Manning" + Rough = "Rough" + HWCoef = "HWCoef" + PMApprNo = "PMApprNo" + NonReturnNo = "NonReturnNo" + Slot = "Slot" + SlotNo = "SlotNo" + Grid = "Grid" + GridNo = "GridNo" + VarManNo = "VarManNo" + ManBott = "ManBott" + ManTop = "ManTop" + ManExp = "ManExp" + RegulationTypeNo = "RegulationTypeNo" + FunctionID = "FunctionID" + ControlNodeAID = "ControlNodeAID" + ControlNodeBID = "ControlNodeBID" + FlowRegNo = "FlowRegNo" + ChainageData = "ChainageData" + SpecLocalWaveNo = "SpecLocalWaveNo" + WaveApproximationTypeNo = "WaveApproximationTypeNo" + UseRoutingNo = "UseRoutingNo" + RoutingTypeNo = "RoutingTypeNo" + RoutingDelay = "RoutingDelay" + RoutingShape = "RoutingShape" + +class LoadPointConnFields(): + LoadPointID = "LoadPointID" + LocationID = "LocationID" + LocationTypeNo = "LocationTypeNo" + +class LoadPointFields(): + Enabled = "Enabled" + LoadCategoryNo = "LoadCategoryNo" + LoadFlow = "LoadFlow" + LoadUnits = "LoadUnits" + LoadConnectionTypeNo = "LoadConnectionTypeNo" + NodeID = "NodeID" + LinkID = "LinkID" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + Description = "Description" + DataSource = "DataSource" + AssetName = "AssetName" + LoadOwner = "LoadOwner" + LoadLocation = "LoadLocation" + Date = "Date" + +class LogicTableNames(): + MuFakeTable = "mu_FakeTable" + MuQuantityTable = "mu_Quantity" + BranchPart = "BranchPart" + RiverJunctionConn = "RiverJunctionConn" + RtcSensorType = "RtcSensorType" + RtcActionType = "RtcActionType" + +class LossParFields(): + OutletShapeNo = "OutletShapeNo" + CoeffNo = "CoeffNo" + Coeff = "Coeff" + EffAreaNo = "EffAreaNo" + LimitNo = "LimitNo" + +class LTSDwfTsFields(): + ApplyNo = "ApplyNo" + LinkID = "LinkID" + SelectionID = "SelectionID" + +class LTSInitFields(): + InitFrom = "InitFrom" + InitTo = "InitTo" + HotStartFilename = "HotStartFilename" + InitDate = "InitDate" + +class LTSInitOFields(): + InitCondNo = "InitCondNo" + +class LTSJobListCriteriaFields(): + ConditionNo = "ConditionNo" + ApplyNo = "ApplyNo" + LocationNo = "LocationNo" + LocationID = "LocationID" + StartValue = "StartValue" + StartTime = "StartTime" + StopValue = "StopValue" + StopTime = "StopTime" + +class LTSResultFields(): + Dth = "Dth" + Pc = "Pc" + DtQV = "DtQV" + DtQTn = "DtQTn" + EmissionsNo = "EmissionsNo" + EventLimit = "EventLimit" + StatFrequencyNo = "StatFrequencyNo" + DWFSaveFrequency = "DWFSaveFrequency" + +class LTSResultLocalFields(): + ResultNo = "ResultNo" + ElementTypeNo = "ElementTypeNo" + StatLocationNo = "StatLocationNo" + StatLocation = "StatLocation" + SaveNo = "SaveNo" + EventLimit = "EventLimit" + +class LTSRunMFields(): + Condition1 = "Condition1" + Condition2 = "Condition2" + Condition3 = "Condition3" + Condition4 = "Condition4" + Condition5 = "Condition5" + +class LTSRunSFields(): + Enabled = "Enabled" + ApplyNo = "ApplyNo" + ConditionNo = "ConditionNo" + LocationNo = "LocationNo" + LocationID = "LocationID" + StopValue = "StopValue" + StopTime = "StopTime" + +class m2d_ADDecayFields(): + ComponentID = "ComponentID" + TypeNo = "TypeNo" + ConstantDecay = "ConstantDecay" + FilePath = "FilePath" + ItemName = "ItemName" + ItemNo = "ItemNo" + +class m2d_ADDispersionDFields(): + Sqn = "Sqn" + DisperID = "DisperID" + AreaID = "AreaID" + ApplyNo = "ApplyNo" + LocalDisper = "LocalDisper" + Description = "Description" + +class m2d_ADDispersionFields(): + ComponentID = "ComponentID" + TypeNo = "TypeNo" + SourceTypeNo = "SourceTypeNo" + FormulationNo = "FormulationNo" + UniformValue = "UniformValue" + DefaultValue = "DefaultValue" + FileName = "FileName" + ItemName = "ItemName" + ItemNo = "ItemNo" + Layer = "Layer" + LayerItem = "LayerItem" + LayerUnitNo = "LayerUnitNo" + ExportFile = "ExportFile" + ExportItemName = "ExportItemName" + ExportItemNo = "ExportItemNo" + +class m2d_ADEvaporationDFields(): + EvapoID = "EvapoID" + Sqn = "Sqn" + ApplyNo = "ApplyNo" + AreaID = "AreaID" + LocalEvapo = "LocalEvapo" + Description = "Description" + +class m2d_ADEvaporationFields(): + ComponentID = "ComponentID" + ComponentTypeNo = "ComponentTypeNo" + TypeNo = "TypeNo" + SourceTypeNo = "SourceTypeNo" + UniformValue = "UniformValue" + SoftStartInterval = "SoftStartInterval" + FileName = "FileName" + ItemName = "ItemName" + ItemNo = "ItemNo" + DefaultValue = "DefaultValue" + Layer = "Layer" + LayerItem = "LayerItem" + LayerUnitNo = "LayerUnitNo" + ExportFile = "ExportFile" + ExportItemName = "ExportItemName" + ExportItemNo = "ExportItemNo" + +class m2d_ADInfiltrationDFields(): + Sqn = "Sqn" + InfilID = "InfilID" + AreaID = "AreaID" + ApplyNo = "ApplyNo" + LocalInfil = "LocalInfil" + Description = "Description" + +class m2d_ADInfiltrationFields(): + ComponentID = "ComponentID" + ComponentTypeNo = "ComponentTypeNo" + TypeNo = "TypeNo" + SourceTypeNo = "SourceTypeNo" + UniformValue = "UniformValue" + DefaultValue = "DefaultValue" + SoftStartInterval = "SoftStartInterval" + FileName = "FileName" + ItemName = "ItemName" + ItemNo = "ItemNo" + Layer = "Layer" + LayerItem = "LayerItem" + LayerUnitNo = "LayerUnitNo" + ExportFile = "ExportFile" + ExportItemName = "ExportItemName" + ExportItemNo = "ExportItemNo" + +class m2d_ADInitalConditionDFields(): + InitCondID = "InitCondID" + AreaID = "AreaID" + Sqn = "Sqn" + ApplyNo = "ApplyNo" + LocalInitCond = "LocalInitCond" + Description = "Description" + Unit = "Unit" + +class m2d_ADInitalConditionFields(): + ComponentID = "ComponentID" + ComponentTypeNo = "ComponentTypeNo" + TypeNo = "TypeNo" + SourceTypeNo = "SourceTypeNo" + UniformValue = "UniformValue" + DefaultValue = "DefaultValue" + FileName = "FileName" + ItemName = "ItemName" + ItemNo = "ItemNo" + Layer = "Layer" + LayerItem = "LayerItem" + LayerUnitNo = "LayerUnitNo" + ExportFile = "ExportFile" + ExportItemName = "ExportItemName" + ExportItemNo = "ExportItemNo" + Unit = "Unit" + +class m2d_ADPrecipitationDFields(): + Sqn = "Sqn" + PrecipID = "PrecipID" + AreaID = "AreaID" + ApplyNo = "ApplyNo" + LocalPrecip = "LocalPrecip" + Description = "Description" + +class m2d_ADPrecipitationFields(): + ComponentID = "ComponentID" + ComponentTypeNo = "ComponentTypeNo" + TypeNo = "TypeNo" + SourceTypeNo = "SourceTypeNo" + UniformValue = "UniformValue" + DefaultValue = "DefaultValue" + SoftStartInterval = "SoftStartInterval" + FileName = "FileName" + ItemName = "ItemName" + ItemNo = "ItemNo" + Layer = "Layer" + LayerItem = "LayerItem" + LayerUnitNo = "LayerUnitNo" + ExportFile = "ExportFile" + ExportItemName = "ExportItemName" + ExportItemNo = "ExportItemNo" + +class m2d_BndDistributedSourceFields(): + BndID = "BndID" + TypeNo = "TypeNo" + X = "X" + Y = "Y" + +class m2d_BndQhRelationFields(): + BndID = "BndID" + Q = "Q" + H = "H" + +class m2d_BoundaryFields(): + ApplyNo = "ApplyNo" + BndTypeNo = "BndTypeNo" + TimeTypeNo = "TimeTypeNo" + ConstValue = "ConstValue" + ConstStartupNo = "ConstStartupNo" + ConstStartValue = "ConstStartValue" + ConstTimeInterval = "ConstTimeInterval" + VarStartupNo = "VarStartupNo" + VarStartValue = "VarStartValue" + VarTimeInterval = "VarTimeInterval" + WaterFilePath = "WaterFilePath" + WaterItemNo = "WaterItemNo" + WaterItemName = "WaterItemName" + ConstInitVelApplyNo = "ConstInitVelApplyNo" + Discharge = "Discharge" + UVelocity = "UVelocity" + VVelocity = "VVelocity" + VarInitVelApplyNo = "VarInitVelApplyNo" + SourceFilePath = "SourceFilePath" + SrcDisItemName = "SrcDisItemName" + SrcUVelItemName = "SrcUVelItemName" + SrcVVelItemName = "SrcVVelItemName" + SrcDisItemNo = "SrcDisItemNo" + SrcUVelItemNo = "SrcUVelItemNo" + SrcVVelItemNo = "SrcVVelItemNo" + QHStartupNo = "QHStartupNo" + QHStartValue = "QHStartValue" + QHTimeInterval = "QHTimeInterval" + VelDefTypeNo = "VelDefTypeNo" + InterpolationTypeNo = "InterpolationTypeNo" + SpatialOrderNo = "SpatialOrderNo" + SourceTypeNo = "SourceTypeNo" + Source1X = "Source1X" + Source1Y = "Source1Y" + Source2X = "Source2X" + Source2Y = "Source2Y" + BndGeomLine = "BndGeomLine" + QhDisFilePath = "QhDisFilePath" + QhDisItemNo = "QhDisItemNo" + QhDisItemName = "QhDisItemName" + QhVelocityFilePath = "QhVelocityFilePath" + QhUVelItemNo = "QhUVelItemNo" + QhUVelItemName = "QhUVelItemName" + QhVVelItemNo = "QhVVelItemNo" + QhVVelItemName = "QhVVelItemName" + +class m2d_BoundaryMuid(): + Default = "Default closed" + +class m2d_CouplingConnFields(): + CouplingID = "CouplingID" + LocationID = "LocationID" + LocationTypeNo = "LocationTypeNo" + +class m2d_CouplingFields(): + TypeNo = "TypeNo" + ApplyNo = "ApplyNo" + ItemID = "ItemID" + Uschainage = "Uschainage" + Dschainage = "Dschainage" + SideNo = "SideNo" + SquareWidth = "SquareWidth" + DeltaDepth = "DeltaDepth" + Smoothing = "Smoothing" + WeirTypeNo = "WeirTypeNo" + WeirCoef = "WeirCoef" + CrestSourceNo = "CrestSourceNo" + CrestTable = "CrestTable" + FilePath = "FilePath" + FileItemName = "FileItemName" + MaxQcheckNo = "MaxQcheckNo" + MaxQvalue = "MaxQvalue" + FlowMethodNo = "FlowMethodNo" + DischCoef = "DischCoef" + InletArea = "InletArea" + CrestWidth = "CrestWidth" + Coefficient = "Coefficient" + Exponent = "Exponent" + Freeboard = "Freeboard" + DQRelationID = "DQRelationID" + RiverEndNo = "RiverEndNo" + FlowDistributionNo = "FlowDistributionNo" + RiverStruID = "RiverStruID" + RiverDistance = "RiverDistance" + CoupleModelNo = "CoupleModelNo" + NodeID = "NodeID" + LateralChainageData = "LateralChainageData" + RecalculationCoordinateNo = "RecalculationCoordinateNo" + +class m2d_EddyViscosityAreaFields(): + Sqn = "Sqn" + ApplyNo = "ApplyNo" + EddyViscosity = "EddyViscosity" + +class m2d_GlobalSettingFields(): + TypeNo = "TypeNo" + ControlNo = "ControlNo" + ValueIntDom = "ValueIntDom" + ValueDt = "ValueDt" + PfsRoute = "PfsRoute" + +class m_GlobalParameterFields(): + ModelNo = "ModelNo" + TypeNo = "TypeNo" + ControlNo = "ControlNo" + ValueIntDom = "ValueIntDom" + ValueDt = "ValueDt" + +class m2d_GridDefinitionFields(): + Projection = "Projection" + Easting = "Easting" + Northing = "Northing" + UpperRightEasting = "UpperRightEasting" + UpperRightNorthing = "UpperRightNorthing" + ProjNYCRotation = "ProjNYCRotation" + CellXSpacing = "CellXSpacing" + CellYSpacing = "CellYSpacing" + LandValueOptionNo = "LandValueOptionNo" + LandValue = "LandValue" + GridLandValueRelative = "GridLandValueRelative" + GridBoundaryWidth = "GridBoundaryWidth" + GridIndent = "GridIndent" + +class m2d_GridInactiveAreaFields(): + ApplyNo = "ApplyNo" + +class m2d_InfiltrationFields(): + Sqn = "Sqn" + ApplyNo = "ApplyNo" + Infiltration = "Infiltration" + Leakage = "Leakage" + DepthLevel = "DepthLevel" + Porosity = "Porosity" + Initial = "Initial" + +class m2d_InfiltrationLandCoverFields(): + TypeNo = "TypeNo" + CodeValue = "CodeValue" + InfRate = "InfRate" + InfCurve = "InfCurve" + LeakRate = "LeakRate" + LevelDepth = "LevelDepth" + Porosity = "Porosity" + Percentage = "Percentage" + +class m2d_InfBuildingFields(): + IncludeNo = "IncludeNo" + CodeValue = "CodeValue" + UniformHeight = "UniformHeight" + UniformElevation = "UniformElevation" + DischargeCoeff = "DischargeCoeff" + +class m2d_InfRoadFields(): + CodeValue = "CodeValue" + UniformOffset = "UniformOffset" + +class m2d_InitialConditionAreaFields(): + ApplyNo = "ApplyNo" + WaterLevel = "WaterLevel" + Description = "Description" + +class m2d_MeshArcFields(): + IsClosedNo = "IsClosedNo" + Attribute = "Attribute" + FromInactiveAreaNo = "FromInactiveAreaNo" + +class m2d_MeshLocalAreaFields(): + UseLocalNo = "UseLocalNo" + LocalOptionNo = "LocalOptionNo" + LocalMaxArea = "LocalMaxArea" + +class m2d_StructureCulvertDFields(): + CulvertID = "CulvertID" + Level = "Level" + Width = "Width" + +class m2d_StructureCulvertFields(): + ApplyNo = "ApplyNo" + CulvertType = "CulvertType" + DampDepth = "DampDepth" + NonReturn = "NonReturn" + FlowDistrib = "FlowDistrib" + SectionType = "SectionType" + Momentum = "Momentum" + R2Lin = "R2Lin" + R2Lout = "R2Lout" + R2Lbend = "R2Lbend" + L2Rin = "L2Rin" + L2Rout = "L2Rout" + L2Rbend = "L2Rbend" + R2LCalibration = "R2LCalibration" + L2RCalibration = "L2RCalibration" + GeomTypeNo = "GeomTypeNo" + Width = "Width" + Height = "Height" + Diameter = "Diameter" + NumberCulverts = "NumberCulverts" + USLevel = "USLevel" + DSLevel = "DSLevel" + Length = "Length" + Manning = "Manning" + +class m2d_StructureDikeFields(): + ApplyNo = "ApplyNo" + DampDepth = "DampDepth" + WeirCoef = "WeirCoef" + ChangeType = "ChangeType" + CorrDatum = "CorrDatum" + CorrFile = "CorrFile" + CorrItem = "CorrItem" + CorrItemNo = "CorrItemNo" + +class m2d_StructureWeirDFields(): + WeirID = "WeirID" + Level = "Level" + Width = "Width" + +class m2d_StructureWeirFields(): + ApplyNo = "ApplyNo" + WeirType = "WeirType" + DampDepth = "DampDepth" + NonReturn = "NonReturn" + FlowDistrib = "FlowDistrib" + R2Lin = "R2Lin" + R2Lout = "R2Lout" + L2Rin = "L2Rin" + L2Rout = "L2Rout" + R2LCalibration = "R2LCalibration" + L2RCalibration = "L2RCalibration" + VillemonteCoef = "VillemonteCoef" + VillemonteExp = "VillemonteExp" + HonmaCoef = "HonmaCoef" + Datum = "Datum" + Width = "Width" + Height = "Height" + InvertLevel = "InvertLevel" + CrestLevel = "CrestLevel" + +class m2d_SurfaceRoughnessAreaFields(): + ApplyNo = "ApplyNo" + TypeNo = "TypeNo" + Material = "Material" + Roughness = "Roughness" + Description = "Description" + +class m2d_SurfaceRoughnessValueFields(): + CodeValue = "CodeValue" + RoughnessVal = "RoughnessVal" + FunctionOf = "FunctionOf" + RoughnessCurveID = "RoughnessCurveID" + DataSourceType = "DataSourceType" + +class m2d_WQBoundaryFields(): + TypeNo = "TypeNo" + BoundaryID = "BoundaryID" + BndTypeNo = "BndTypeNo" + ComponentID = "ComponentID" + TimeTypeNo = "TimeTypeNo" + ConstValue = "ConstValue" + ConstStartupNo = "ConstStartupNo" + ConstStartValue = "ConstStartValue" + ConstTimeInterval = "ConstTimeInterval" + VarStartupNo = "VarStartupNo" + VarStartValue = "VarStartValue" + VarTimeInterval = "VarTimeInterval" + WaterFilePath = "WaterFilePath" + WaterItemNo = "WaterItemNo" + WaterItemName = "WaterItemName" + InterpolationTypeNo = "InterpolationTypeNo" + SpatialOrderNo = "SpatialOrderNo" + Unit = "Unit" + +class MaterialFields(): + Manning = "Manning" + EQRough = "EQRough" + HWCoef = "HWCoef" + Description = "Description" + ManningN = "ManningN" + +class MeasurementFields(): + MeasurementStationID = "MeasurementStationID" + TSFileName = "TSFileName" + TSItemName = "TSItemName" + ResFileName = "ResFileName" + ResItemName = "ResItemName" + PeriodSetting = "PeriodSetting" + +class MediaFields(): + TableName = "TableName" + ItemMUID = "ItemMUID" + FilePath = "FilePath" + Format = "Format" + +class mrm_BranchConnFields(): + BranchID = "BranchID" + TypeNo = "TypeNo" + ToID = "ToID" + ToTypeNo = "ToTypeNo" + ToChainage = "ToChainage" + +class mrm_BranchFields(): + Name = "Name" + Enabled = "Enabled" + TypeNo = "TypeNo" + UpstrID = "UpstrID" + UpstrTypeNo = "UpstrTypeNo" + UpstrChainage = "UpstrChainage" + DwnstrID = "DwnstrID" + DwnstrTypeNo = "DwnstrTypeNo" + DwnstrChainage = "DwnstrChainage" + MaxDx = "MaxDx" + TopographyID = "TopographyID" + FlowDirectionTypeNo = "FlowDirectionTypeNo" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + DataSource = "DataSource" + AssetName = "AssetName" + Element_S = "Element_S" + NetTypeNo = "NetTypeNo" + Description = "Description" + ChainageData = "ChainageData" + SpecLocalWaveNo = "SpecLocalWaveNo" + WaveApproximationTypeNo = "WaveApproximationTypeNo" + +class mrm_BranchRoughnessLocalFields(): + BranchID = "BranchID" + Chainage = "Chainage" + Roughness = "Roughness" + Zone1 = "Zone1" + Zone2 = "Zone2" + Zone3 = "Zone3" + Zone4 = "Zone4" + Zone5 = "Zone5" + Zone6 = "Zone6" + Zone7 = "Zone7" + Zone8 = "Zone8" + Zone9 = "Zone9" + Zone10 = "Zone10" + +class mrm_BridgeCrsFields(): + BridgeOpeningID = "BridgeOpeningID" + Type = "Type" + S = "S" + Z = "Z" + Rough = "Rough" + MarkerNo = "MarkerNo" + +class mrm_BridgeFields(): + Enabled = "Enabled" + RiverID = "RiverID" + Chainage = "Chainage" + ApplyFactorNo = "ApplyFactorNo" + FactorValue = "FactorValue" + HeadLossCmTypeNo = "HeadLossCmTypeNo" + +class mrm_BridgeOpeningFields(): + RiverBridgeID = "RiverBridgeID" + Method = "Method" + AsymmetryChk = "AsymmetryChk" + OpeningTypeNo = "OpeningTypeNo" + OpeningTypeRNo = "OpeningTypeRNo" + IncludePirNo = "IncludePirNo" + PirWWBlock = "PirWWBlock" + PirUseCustomNo = "PirUseCustomNo" + PirCustomTable = "PirCustomTable" + PileCustomTable1L = "PileCustomTable1L" + PileCustomTable2L = "PileCustomTable2L" + PirTypeNo = "PirTypeNo" + URY = "URY" + IncludeSknNo = "IncludeSknNo" + SknAngle = "SknAngle" + DryingDepth = "DryingDepth" + SknUseCustomNo = "SknUseCustomNo" + SknCustomTable = "SknCustomTable" + IncludeEctrNo = "IncludeEctrNo" + EctrUseCustomNo = "EctrUseCustomNo" + EctrCustomTable = "EctrCustomTable" + IncludeSpdNo = "IncludeSpdNo" + SpdLength = "SpdLength" + SpdLengthR = "SpdLengthR" + SpdTypeNo = "SpdTypeNo" + SpdTypeRNo = "SpdTypeRNo" + SpdAngle = "SpdAngle" + SpdAngleR = "SpdAngleR" + SpdOffset = "SpdOffset" + SpdOffsetR = "SpdOffsetR" + SpdUseCustom = "SpdUseCustom" + SpdUseCustomR = "SpdUseCustomR" + SpdCustomTable1 = "SpdCustomTable1" + SpdCustomTableR1 = "SpdCustomTableR1" + SpdCustomTable2 = "SpdCustomTable2" + SpdCustomTableR2 = "SpdCustomTableR2" + RoughTypeNo = "RoughTypeNo" + RoughValue = "RoughValue" + RadioType = "RadioType" + WaterwayLength = "WaterwayLength" + WaterwayLengthR = "WaterwayLengthR" + LevelOfLength = "LevelOfLength" + LevelOfLengthR = "LevelOfLengthR" + ContractionLoss = "ContractionLoss" + ExpansionLoss = "ExpansionLoss" + OpeningWidth = "OpeningWidth" + ArchesNum = "ArchesNum" + LevelBottom = "LevelBottom" + LevelTop = "LevelTop" + Radius = "Radius" + UseCustomBaseNo = "UseCustomBaseNo" + UseCustomBaseRNo = "UseCustomBaseRNo" + CustomTableBase = "CustomTableBase" + CustomTableBaseR = "CustomTableBaseR" + UseCustomEntranNo = "UseCustomEntranNo" + UseCustomEntranRNo = "UseCustomEntranRNo" + CustomTableEntran = "CustomTableEntran" + CustomTableEntranR = "CustomTableEntranR" + EntranTypeNo = "EntranTypeNo" + EntranTypeRNo = "EntranTypeRNo" + EntranRadius = "EntranRadius" + EntranRadiusR = "EntranRadiusR" + EntranWidth = "EntranWidth" + EntranWidthR = "EntranWidthR" + EntranAngle = "EntranAngle" + EntranAngleR = "EntranAngleR" + EmbankSlope = "EmbankSlope" + EmbankSlopeR = "EmbankSlopeR" + UseCustromFroudeNo = "UseCustromFroudeNo" + UseCustromFroudeRNo = "UseCustromFroudeRNo" + CustromTableFroude = "CustromTableFroude" + CustromTableFroudeR = "CustromTableFroudeR" + UseCustromDepthNo = "UseCustromDepthNo" + UseCustromDepthRNo = "UseCustromDepthRNo" + CustromTableDepth = "CustromTableDepth" + CustromTableDepthR = "CustromTableDepthR" + UseCustromAbutNo = "UseCustromAbutNo" + UseCustromAbutRNo = "UseCustromAbutRNo" + CustromTableAbut = "CustromTableAbut" + CustromTableAbutR = "CustromTableAbutR" + UseCustromWWNo = "UseCustromWWNo" + UseCustromWWRNo = "UseCustromWWRNo" + CustromTableWW = "CustromTableWW" + CustromTableWWR = "CustromTableWWR" + WWAngle = "WWAngle" + WWAngleR = "WWAngleR" + TypeBaseNo = "TypeBaseNo" + UseCustromVelNo = "UseCustromVelNo" + CustromTableVel = "CustromTableVel" + SubmergenceTypeNo = "SubmergenceTypeNo" + DatumUpCrs = "DatumUpCrs" + UseCustromCrsUpNo = "UseCustromCrsUpNo" + FromSUp = "FromSUp" + ToSUp = "ToSUp" + TableCrsUpID = "TableCrsUpID" + DownCrsTypeNo = "DownCrsTypeNo" + DownCrsSlope = "DownCrsSlope" + DatumDownCrs = "DatumDownCrs" + UseCustromCrsDownNo = "UseCustromCrsDownNo" + FromSDown = "FromSDown" + ToSDown = "ToSDown" + TableCrsDownID = "TableCrsDownID" + SubMgcMethodNo = "SubMgcMethodNo" + SubMgcDischargeCoef = "SubMgcDischargeCoef" + SubMgcContraction = "SubMgcContraction" + SubMgcExpansion = "SubMgcExpansion" + SubMgcSoffitLevel = "SubMgcSoffitLevel" + SubMgcUseCustomTableNo = "SubMgcUseCustomTableNo" + SubMgcCustomTable = "SubMgcCustomTable" + SubMgcCulvertID = "SubMgcCulvertID" + OflMethodNo = "OflMethodNo" + OflUseCustomTableNo = "OflUseCustomTableNo" + OflDischargeCoef1 = "OflDischargeCoef1" + OflDischargeCoef2 = "OflDischargeCoef2" + SubMgcFactor = "SubMgcFactor" + OflSurfaceNo = "OflSurfaceNo" + OflLength = "OflLength" + OflDeckLevel = "OflDeckLevel" + OflWeirID = "OflWeirID" + OffsetUSSection = "OffsetUSSection" + OffsetDSSection = "OffsetDSSection" + OffsetSub = "OffsetSub" + OffsetOver = "OffsetOver" + +class mrm_DAErrorForecastEquationsFields(): + Description = "Description" + Equation = "Equation" + PeriodFrom = "PeriodFrom" + PeriodTo = "PeriodTo" + +class mrm_DAErrorForecastParaFields(): + TypeNo = "TypeNo" + EquationsID = "EquationsID" + ConstValue = "ConstValue" + MinValue = "MinValue" + MaxValue = "MaxValue" + FileName = "FileName" + ItemID = "ItemID" + ItemNo = "ItemNo" + RiverID = "RiverID" + Chainage = "Chainage" + StateVariableItemNo = "StateVariableItemNo" + WQcomponentID = "WQcomponentID" + +class mrm_DambreakFields(): + Enabled = "Enabled" + RiverID = "RiverID" + Chainage = "Chainage" + BreachFormulATypeNo = "BreachFormulATypeNo" + FailureModeTypeNo = "FailureModeTypeNo" + CrestLevel = "CrestLevel" + CrestLength = "CrestLength" + FailureMomentTypeNo = "FailureMomentTypeNo" + FailureMomentHours = "FailureMomentHours" + ActiveDateTime = "ActiveDateTime" + WaterLevel = "WaterLevel" + PosInflow = "PosInflow" + PosOutflow = "PosOutflow" + PosFreeOverflow = "PosFreeOverflow" + NegInflow = "NegInflow" + NegOutflow = "NegOutflow" + NegFreeOverflow = "NegFreeOverflow" + ApplyFactorNo = "ApplyFactorNo" + FactorValue = "FactorValue" + UpstreamSlope = "UpstreamSlope" + DownstreamSlope = "DownstreamSlope" + TopWidth = "TopWidth" + GrainDiameter = "GrainDiameter" + SpecificGravity = "SpecificGravity" + Porosity = "Porosity" + CriticalStress = "CriticalStress" + SideErosionIndex = "SideErosionIndex" + MinBottomLevel = "MinBottomLevel" + MaxBottomWidth = "MaxBottomWidth" + MaxBreachSlope = "MaxBreachSlope" + InitialFailureTypeNo = "InitialFailureTypeNo" + InitialLevel = "InitialLevel" + InitialWidth = "InitialWidth" + StartingLevel = "StartingLevel" + InitialDiameter = "InitialDiameter" + Roughness = "Roughness" + CollapseRatio = "CollapseRatio" + VolumeLossRatio = "VolumeLossRatio" + CalibrationCoeff = "CalibrationCoeff" + BreachLevelTypeNo = "BreachLevelTypeNo" + BreachLevelConstant = "BreachLevelConstant" + BreachLevelPath = "BreachLevelPath" + BreachLevelItem = "BreachLevelItem" + BreachWidthTypeNo = "BreachWidthTypeNo" + BreachWidthConstant = "BreachWidthConstant" + BreachWidthPath = "BreachWidthPath" + BreachWidthItem = "BreachWidthItem" + SlopeTypeNo = "SlopeTypeNo" + SlopeConstant = "SlopeConstant" + SlopePath = "SlopePath" + SlopeItem = "SlopeItem" + ApplyLimitingNo = "ApplyLimitingNo" + ApplyRiverID = "ApplyRiverID" + ApplyTopoID = "ApplyTopoID" + ApplyChainage = "ApplyChainage" + ApplySCoordinate = "ApplySCoordinate" + PipeLevelTypeNo = "PipeLevelTypeNo" + PipeLevelConstant = "PipeLevelConstant" + PipeLevelPath = "PipeLevelPath" + PipeLevelItem = "PipeLevelItem" + Element_S = "Element_S" + DataSource = "DataSource" + Description = "Description" + +class mrm_DAStandardDeviationFields(): + DataTypeNo = "DataTypeNo" + TypeNo = "TypeNo" + Value = "Value" + FileName = "FileName" + ItemName = "ItemName" + ItemNo = "ItemNo" + TimeCstBefore = "TimeCstBefore" + TimeCstAfter = "TimeCstAfter" + ApplyLowerBox = "ApplyLowerBox" + LowerValue = "LowerValue" + ApplyUpperBox = "ApplyUpperBox" + UpperValue = "UpperValue" + Description = "Description" + +class mrm_DirectDischargeFields(): + Enabled = "Enabled" + RiverID = "RiverID" + Chainage = "Chainage" + InitialDischarge = "InitialDischarge" + MaxChange = "MaxChange" + StructureNo = "StructureNo" + MaxDischarge = "MaxDischarge" + DataSource = "DataSource" + Element_S = "Element_S" + Description = "Description" + +class mrm_EnergyLossFields(): + Enabled = "Enabled" + RiverID = "RiverID" + Chainage = "Chainage" + TypeNo = "TypeNo" + AbruptNo = "AbruptNo" + AbruptValue = "AbruptValue" + GradualNo = "GradualNo" + GradualValue = "GradualValue" + Roughness = "Roughness" + CustomNo = "CustomNo" + CustomPositive = "CustomPositive" + CustomNegative = "CustomNegative" + ContractionNo = "ContractionNo" + ContractionPositive = "ContractionPositive" + ContractionNegative = "ContractionNegative" + ExpansionNo = "ExpansionNo" + ExpansionPositive = "ExpansionPositive" + ExpansionNegative = "ExpansionNegative" + HeadLossCmTypeNo = "HeadLossCmTypeNo" + DataSource = "DataSource" + Element_S = "Element_S" + Description = "Description" + +class mrm_GateFields(): + Enabled = "Enabled" + RiverID = "RiverID" + Chainage = "Chainage" + TypeNo = "TypeNo" + GateNo = "GateNo" + Width = "Width" + Height = "Height" + MaxLevel = "MaxLevel" + SillLevel = "SillLevel" + Trunnion = "Trunnion" + Radius = "Radius" + HorizOffset = "HorizOffset" + MaxSpeed = "MaxSpeed" + InitialLevel = "InitialLevel" + ApplyFactorNo = "ApplyFactorNo" + FactorValue = "FactorValue" + PosInflow = "PosInflow" + NegInflow = "NegInflow" + PosOutflow = "PosOutflow" + NegOutflow = "NegOutflow" + PosFreeflow = "PosFreeflow" + NegFreeflow = "NegFreeflow" + ContracCoef = "ContracCoef" + HeadLossCmTypeNo = "HeadLossCmTypeNo" + RadialFactor = "RadialFactor" + RadialCoef = "RadialCoef" + RadialExp = "RadialExp" + RadialTranBottom = "RadialTranBottom" + RadialTranDepth = "RadialTranDepth" + Sluice_a_ContSub = "Sluice_a_ContSub" + Sluice_a_ContFree = "Sluice_a_ContFree" + Sluice_a_UncSub = "Sluice_a_UncSub" + Sluice_a_UncFree = "Sluice_a_UncFree" + Sluice_b_ContSub = "Sluice_b_ContSub" + Sluice_b_ContFree = "Sluice_b_ContFree" + Sluice_b_UncSub = "Sluice_b_UncSub" + Sluice_High_ContSub = "Sluice_High_ContSub" + Sluice_High_ContFree = "Sluice_High_ContFree" + Sluice_High_UncSub = "Sluice_High_UncSub" + Sluice_Low_ContSub = "Sluice_Low_ContSub" + Sluice_Low_ContFree = "Sluice_Low_ContFree" + Sluice_Low_UncSub = "Sluice_Low_UncSub" + +class mrm_GroundwaterLeakageLocalFields(): + RiverID = "RiverID" + Chainage = "Chainage" + Leakage = "Leakage" + +class mrm_PassiveLinkFields(): + LinkID = "LinkID" + RiverName = "RiverName" + LinkNo = "LinkNo" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + +class mrm_PumpFields(): + Enabled = "Enabled" + RiverID = "RiverID" + Chainage = "Chainage" + TypeNo = "TypeNo" + StartLevel = "StartLevel" + StopLevel = "StopLevel" + AccTime = "AccTime" + DecTime = "DecTime" + ConstFlow = "ConstFlow" + QdHTable = "QdHTable" + DataSource = "DataSource" + Element_S = "Element_S" + Description = "Description" + +class mrm_RiverRoutingMethodFields(): + BranchID = "BranchID" + Chainage = "Chainage" + FlowMethodNo = "FlowMethodNo" + FlowDelay = "FlowDelay" + FlowShape = "FlowShape" + WLMethodNo = "WLMethodNo" + QhRelationID = "QhRelationID" + +class mrm_RoughnessFactorFields(): + RiverID = "RiverID" + FromChainage = "FromChainage" + ToChainage = "ToChainage" + FactorTypeNo = "FactorTypeNo" + FilePath = "FilePath" + ItemID = "ItemID" + ItemIDNo = "ItemIDNo" + Factor = "Factor" + +class mrm_STInitConcentratDefaultFields(): + DefaultFrac = "DefaultFrac" + GlobalIniConc = "GlobalIniConc" + +class mrm_STInitConcentratLocalFields(): + ConnectionTypeNo = "ConnectionTypeNo" + ListName = "ListName" + LinkNo = "LinkNo" + LinkID = "LinkID" + Chainage = "Chainage" + LocalFractionID = "LocalFractionID" + LocalConcentration = "LocalConcentration" + +class mrm_STLocalBedParMorphFields(): + LinkID = "LinkID" + LinkNo = "LinkNo" + Chainage = "Chainage" + MethodNo = "MethodNo" + +class mrm_STLocalBedParThicklFields(): + LinkID = "LinkID" + LinkNo = "LinkNo" + Chainage = "Chainage" + LocFactor = "LocFactor" + LocLayerDepthNo = "LocLayerDepthNo" + LocMin = "LocMin" + LocMax = "LocMax" + +class mrm_STNonScrLocalBedLevelFields(): + LinkID = "LinkID" + Chainage = "Chainage" + LocUnlimitedNo = "LocUnlimitedNo" + LocLevel = "LocLevel" + LinkNo = "LinkNo" + +class mrm_TabulatedFields(): + Enabled = "Enabled" + RiverID = "RiverID" + Chainage = "Chainage" + CalculationTypeNo = "CalculationTypeNo" + QHID = "QHID" + DischargeFactor = "DischargeFactor" + Datum = "Datum" + DataSource = "DataSource" + Element_S = "Element_S" + Description = "Description" + +class mrm_UserDefinedChainageFields(): + BranchID = "BranchID" + Chainage = "Chainage" + VertexIndex = "VertexIndex" + X = "X" + Y = "Y" + +class mrm_WindScaleFactorLocalFields(): + LinkID = "LinkID" + Chainage = "Chainage" + ScaleFactor = "ScaleFactor" + +class mrm_ZoneSeparatorLocalFields(): + RiverID = "RiverID" + Chainage = "Chainage" + TypeNo = "TypeNo" + Zone12 = "Zone12" + Zone23 = "Zone23" + Zone34 = "Zone34" + Zone45 = "Zone45" + Zone56 = "Zone56" + Zone67 = "Zone67" + Zone78 = "Zone78" + Zone89 = "Zone89" + Zone910 = "Zone910" + +class msm_ADInitialConditionDefaultFields(): + ADInitCondID = "ADInitCondID" + ComponentID = "ComponentID" + DefaultValue = "DefaultValue" + Unit = "Unit" + +class msm_ADInitialConditionFields(): + UseLocalNo = "UseLocalNo" + UseHotstartNo = "UseHotstartNo" + +class msm_ADInitialConditionHotstartFileFields(): + ADInitCondID = "InitCondID" + UseStartTimeNo = "UseStartTimeNo" + DateTime = "DateTime" + FilePath = "FilePath" + +class msm_ADInitialConditionLocalFields(): + ADInitCondID = "ADInitCondID" + LocationTypeNo = "LocationTypeNo" + ListID = "ListID" + NodeID = "NodeID" + LinkID = "LinkID" + LinkNo = "LinkNo" + StartChainage = "StartChainage" + EndChainage = "EndChainage" + Description = "Description" + +class msm_ADInitialConditionLocalValueFields(): + ADLocalID = "ADLocalID" + ComponentID = "ComponentID" + LocalValue = "LocalValue" + Unit = "Unit" + IncludeNo = "IncludeNo" + +class msm_AlarmLevelDFields(): + AlarmLevelID = "AlarmLevelID" + NodeID = "NodeID" + AlarmLevel = "AlarmLevel" + AllowUpdate = "AllowUpdate" + +class msm_AlarmLevelFields(): + Description = "Description" + DefaultFreeBoard = "DefaultFreeBoard" + +class msm_CatchLandUseFields(): + CatchmentID = "CatchmentID" + LandUseID = "LandUseID" + LandUseIDType = "LandUseIDType" + ModelType = "ModelType" + LandUseContrib = "LandUseContrib" + +class msm_HDaddPercentFields(): + Percentage = "Percentage" + ResultSpecID = "ResultSpecID" + +class msm_HParRdiiElevZonesFields(): + ParRdiiID = "ParRdiiID" + Elevation = "Elevation" + Area = "Area" + MinStorage = "MinStorage" + MaxStorage = "MaxStorage" + MaxWaterRetain = "MaxWaterRetain" + DryTempCorrection = "DryTempCorrection" + WetTempCorrection = "WetTempCorrection" + PrecipTempCorrection = "PrecipTempCorrection" + SnowStorage = "SnowStorage" + WaterInSnow = "WaterInSnow" + +class msm_HParSeasonalVariationFields(): + ParRdiiID = "ParRdiiID" + MonthNo = "MonthNo" + Month = "Month" + Variation = "Variation" + Abstraction = "Abstraction" + DegreeDayCoeff = "DegreeDayCoeff" + IrrigationCrop = "IrrigationCrop" + Groundwater = "Groundwater" + OverlandFlow = "OverlandFlow" + Evaporation = "Evaporation" + +class msm_LandUseFields(): + Description = "Description" + WetLossTypeNo = "WetLossTypeNo" + WetLoss = "WetLoss" + StorageLossTypeNo = "StorageLossTypeNo" + StorageLoss = "StorageLoss" + FricTypeNo = "FricTypeNo" + Manning = "Manning" + InfiltrationTypeNo = "InfiltrationTypeNo" + HortonMinRate = "HortonMinRate" + HortonMaxRate = "HortonMaxRate" + HortonWetExp = "HortonWetExp" + HortonDryExp = "HortonDryExp" + GAConduct = "GAConduct" + GAMaxMoisture = "GAMaxMoisture" + GASuction = "GASuction" + +class msm_PumpESEDFields(): + PumpESEID = "PumpESEID" + Pump1ID = "Pump1ID" + Pump2ID = "Pump2ID" + Pump3ID = "Pump3ID" + Pump4ID = "Pump4ID" + Pump5ID = "Pump5ID" + +class msm_PumpESEFields(): + Description = "Description" + SimulationID = "SimulationID" + RunModeNo = "RunModeNo" + StopTime = "StopTime" + CheckWetWellNo = "CheckWetWellNo" + UsPumpStopNo = "UsPumpStopNo" + UsPumpStopDelay = "UsPumpStopDelay" + AlarmSetID = "AlarmSetID" + +class msm_RRaddPercentFields(): + Percentage = "Percentage" + ResultSpecID = "ResultSpecID" + +class mss_AdjustmentFields(): + Temp01 = "Temp01" + Temp02 = "Temp02" + Temp03 = "Temp03" + Temp04 = "Temp04" + Temp05 = "Temp05" + Temp06 = "Temp06" + Temp07 = "Temp07" + Temp08 = "Temp08" + Temp09 = "Temp09" + Temp10 = "Temp10" + Temp11 = "Temp11" + Temp12 = "Temp12" + Evap01 = "Evap01" + Evap02 = "Evap02" + Evap03 = "Evap03" + Evap04 = "Evap04" + Evap05 = "Evap05" + Evap06 = "Evap06" + Evap07 = "Evap07" + Evap08 = "Evap08" + Evap09 = "Evap09" + Evap10 = "Evap10" + Evap11 = "Evap11" + Evap12 = "Evap12" + Rain01 = "Rain01" + Rain02 = "Rain02" + Rain03 = "Rain03" + Rain04 = "Rain04" + Rain05 = "Rain05" + Rain06 = "Rain06" + Rain07 = "Rain07" + Rain08 = "Rain08" + Rain09 = "Rain09" + Rain10 = "Rain10" + Rain11 = "Rain11" + Rain12 = "Rain12" + Con01 = "Con01" + Con02 = "Con02" + Con03 = "Con03" + Con04 = "Con04" + Con05 = "Con05" + Con06 = "Con06" + Con07 = "Con07" + Con08 = "Con08" + Con09 = "Con09" + Con10 = "Con10" + Con11 = "Con11" + Con12 = "Con12" + +class mss_AquiferFields(): + Por = "Por" + WP = "WP" + FC = "FC" + K = "K" + Kslope = "Kslope" + Yslope = "Yslope" + UEF = "UEF" + LED = "LED" + GWR = "GWR" + BE = "BE" + WTE = "WTE" + UMC = "UMC" + UZEP = "UZEP" + +class mss_BuildupFields(): + LanduseID = "LanduseID" + PollutantID = "PollutantID" + FuncTypeNo = "FuncTypeNo" + C1 = "C1" + C2 = "C2" + C3 = "C3" + NormalizerNo = "NormalizerNo" + C2_ScalingFactor = "C2_ScalingFactor" + ExternalTimeSeriesID = "ExternalTimeSeriesID" + +class Mss_CatchConFields(): + CatchID = "CatchID" + +class mss_CoverageFields(): + SubCatchID = "SubCatchID" + LandUseID = "LandUseID" + Percentage = "Percentage" + +class mss_DWFDFields(): + DwfID = "DwfID" + PollutantID = "PollutantID" + BValue = "BValue" + PatternMonthID = "PatternMonthID" + PatternWeekID = "PatternWeekID" + PatternWeekHourlyID = "PatternWeekHourlyID" + PatternWeekendHourlyID = "PatternWeekendHourlyID" + UseMonthlyPtn = "UseMonthlyPtn" + UseDailyPtn = "UseDailyPtn" + UseHourlyPtn = "UseHourlyPtn" + UseWeekendPtn = "UseWeekendPtn" + +class mss_DWFFields(): + NodeID = "NodeID" + Description = "Description" + FlowValue = "FlowValue" + PatternMonthID = "PatternMonthID" + PatternWeekID = "PatternWeekID" + PatternWeekHourlyID = "PatternWeekHourlyID" + PatternWeekendHourlyID = "PatternWeekendHourlyID" + PollutNo = "PollutNo" + +class mss_EvaporationFields(): + TypeNo = "TypeNo" + ConstValue = "ConstValue" + Value1 = "Value1" + Value2 = "Value2" + Value3 = "Value3" + Value4 = "Value4" + Value5 = "Value5" + Value6 = "Value6" + Value7 = "Value7" + Value8 = "Value8" + Value9 = "Value9" + Value10 = "Value10" + Value11 = "Value11" + Value12 = "Value12" + TimeSeriesID = "TimeSeriesID" + Pan1 = "Pan1" + Pan2 = "Pan2" + Pan3 = "Pan3" + Pan4 = "Pan4" + Pan5 = "Pan5" + Pan6 = "Pan6" + Pan7 = "Pan7" + Pan8 = "Pan8" + Pan9 = "Pan9" + Pan10 = "Pan10" + Pan11 = "Pan11" + Pan12 = "Pan12" + SoilRecoveryPatternID = "SoilRecoveryPatternID" + DryOnlyNo = "DryOnlyNo" + +class mss_GroundwaterFields(): + SubCatchID = "SubCatchID" + AquiferID = "AquiferID" + NodeID = "NodeID" + SurfElev = "SurfElev" + A1 = "A1" + B1 = "B1" + A2 = "A2" + B2 = "B2" + A3 = "A3" + Description = "Description" + LateralFlowNo = "LateralFlowNo" + DeepFlowNo = "DeepFlowNo" + LateralFlowEquation = "LateralFlowEquation" + DeepFlowEquation = "DeepFlowEquation" + Hsw = "Hsw" + Hcb = "Hcb" + BottomElev = "BottomElev" + WTElev = "WTElev" + UZoneMoisture = "UZoneMoisture" + +class mss_HydrographDFields(): + HydrographID = "HydrographID" + MonthNo = "MonthNo" + R1 = "R1" + R2 = "R2" + R3 = "R3" + T1 = "T1" + T2 = "T2" + T3 = "T3" + K1 = "K1" + K2 = "K2" + K3 = "K3" + IA_Max1 = "IA_Max1" + IA_Rec1 = "IA_Rec1" + IA_Init1 = "IA_Init1" + IA_Max2 = "IA_Max2" + IA_Rec2 = "IA_Rec2" + IA_Init2 = "IA_Init2" + IA_Max3 = "IA_Max3" + IA_Rec3 = "IA_Rec3" + IA_Init3 = "IA_Init3" + +class mss_HydrographFields(): + RaingageID = "RaingageID" + Description = "Description" + +class mss_InflowDFields(): + InflowID = "InflowID" + Sqn = "Sqn" + PollutantID = "PollutantID" + UseTimeSeries = "UseTimeSeries" + PollutSeriesID = "PollutSeriesID" + FormatNo = "FormatNo" + ConvFactor = "ConvFactor" + BasePollutValue = "BasePollutValue" + ScalePollutValue = "ScalePollutValue" + UsePattern = "UsePattern" + BasePatternID = "BasePatternID" + +class mss_InflowFields(): + PollutNo = "PollutNo" + NodeID = "NodeID" + FlowSeriesID = "FlowSeriesID" + BaselinePatternID = "BaselinePatternID" + ScaleFlowFactor = "ScaleFlowFactor" + BaseFlowValue = "BaseFlowValue" + Description = "Description" + +class mss_LanduseFields(): + SweepInterval = "SweepInterval" + Availability = "Availability" + LastSweep = "LastSweep" + Description = "Description" + +class mss_LIDControlDFields(): + LIDControlID = "LIDControlID" + PollutantID = "PollutantID" + Removal = "Removal" + +class mss_LIDControlFields(): + LIDType = "LIDType" + StorHt = "StorHt" + VegFrac = "VegFrac" + Rough = "Rough" + Slope = "Slope" + Xslope = "Xslope" + SThick = "SThick" + Por = "Por" + FC = "FC" + WP = "WP" + Ksat = "Ksat" + Kcoeff = "Kcoeff" + Suct = "Suct" + PThick = "PThick" + PVratio = "PVratio" + FracImp = "FracImp" + Perm = "Perm" + PVclog = "PVclog" + Height = "Height" + SVratio = "SVratio" + Filt = "Filt" + SVclog = "SVclog" + DrainNo = "DrainNo" + Coeff = "Coeff" + Expon = "Expon" + _Offset = "_Offset" + Delay = "Delay" + OpenLev = "OpenLev" + ClosedLev = "ClosedLev" + ControlCurveID = "ControlCurveID" + DMThick = "DMThick" + DMVFraction = "DMVFraction" + DMRough = "DMRough" + RDFlowCap = "RDFlowCap" + PRegInterval = "PRegInterval" + PRegFraction = "PRegFraction" + +class mss_LIDusageFields(): + CatchID = "CatchID" + LidID = "LidID" + ReplicateNumber = "ReplicateNumber" + Area = "Area" + Width = "Width" + InitSat = "InitSat" + FromImp = "FromImp" + FromPerv = "FromPerv" + ToPervNo = "ToPervNo" + RptFileNo = "RptFileNo" + RptFileName = "RptFileName" + DrainTo = "DrainTo" + +class mss_LinkFields(): + ShapeTypeNo = "ShapeTypeNo" + Length = "Length" + Roughness = "Roughness" + InletInvert = "InletInvert" + OutletInvert = "OutletInvert" + InletInvert_C = "InletInvert_C" + OutletInvert_C = "OutletInvert_C" + InletInvert_Offset = "InletInvert_Offset" + OutletInvert_Offset = "OutletInvert_Offset" + InitialFlow = "InitialFlow" + MaxFlow = "MaxFlow" + EntryLossCoeff = "EntryLossCoeff" + ExitLossCoeff = "ExitLossCoeff" + AvgLossCoeff = "AvgLossCoeff" + FlapGateNo = "FlapGateNo" + Depth = "Depth" + SedimentDepth = "SedimentDepth" + BottomWidth = "BottomWidth" + TopWidth = "TopWidth" + LeftSideSlope = "LeftSideSlope" + RightSideSlope = "RightSideSlope" + Slope = "Slope" + Exponent = "Exponent" + TriangleHeight = "TriangleHeight" + BottomRadius = "BottomRadius" + Barrels = "Barrels" + TransectID = "TransectID" + ShapeID = "ShapeID" + ForceMainRoughnessHW = "ForceMainRoughnessHW" + ForceMainRoughnessDW = "ForceMainRoughnessDW" + CulvertCode = "CulvertCode" + SeepageRate = "SeepageRate" + SidewallsNo = "SidewallsNo" + MaterialID = "MaterialID" + FricNo = "FricNo" + +class mss_LoadingFields(): + CatchID = "CatchID" + PollutantID = "PollutantID" + InitBuildUp = "InitBuildUp" + Description = "Description" + +class mss_LocalTreatmentFields(): + NodeID = "NodeID" + PollutantID = "PollutantID" + Function = "Function" + Description = "Description" + +class mss_NodeFields(): + Enabled = "Enabled" + TypeNo = "TypeNo" + Tag = "Tag" + Einv = "Einv" + GroundLevel = "GroundLevel" + Dmax = "Dmax" + D0 = "D0" + Dsur = "Dsur" + Apond = "Apond" + GeomTypeNo = "GeomTypeNo" + GeomConst = "GeomConst" + GeomCoeff = "GeomCoeff" + GeomExponent = "GeomExponent" + GeomID = "GeomID" + Fevap = "Fevap" + LinkID = "LinkID" + DividerTypeNo = "DividerTypeNo" + CutoffFlow = "CutoffFlow" + DivertedFlowID = "DivertedFlowID" + DivertedMinFlow = "DivertedMinFlow" + DivertedMaxFlow = "DivertedMaxFlow" + DivertedMaxDepth = "DivertedMaxDepth" + DivertionCoeff = "DivertionCoeff" + FlapGateNo = "FlapGateNo" + FlapGateTypeNo = "FlapGateTypeNo" + FixedStage = "FixedStage" + TideGateID = "TideGateID" + TideGateTSID = "TideGateTSID" + StorageInfiltrationNo = "StorageInfiltrationNo" + StorageSuctionHead = "StorageSuctionHead" + StorageConductivity = "StorageConductivity" + StorageInitialDeficit = "StorageInitialDeficit" + RouteTo = "RouteTo" + +class mss_OrificeFields(): + TypeNo = "TypeNo" + ShapeTypeNo = "ShapeTypeNo" + Height = "Height" + Width = "Width" + CrestHeight = "CrestHeight" + CrestElev = "CrestElev" + DischargeCoeff = "DischargeCoeff" + FlapGateNo = "FlapGateNo" + TimeToOpenClose = "TimeToOpenClose" + SHAPE_Length = "SHAPE_Length" + +class mss_OutletFields(): + Height = "Height" + TypeNo = "TypeNo" + QCurveID = "QCurveID" + FlapGateNo = "FlapGateNo" + Qcoeff = "Qcoeff" + Qexpon = "Qexpon" + +class mss_PatternFields(): + TypeNo = "TypeNo" + Mdr1 = "Mdr1" + Mdr2 = "Mdr2" + Mdr3 = "Mdr3" + Mdr4 = "Mdr4" + Mdr5 = "Mdr5" + Mdr6 = "Mdr6" + Mdr7 = "Mdr7" + Mdr8 = "Mdr8" + Mdr9 = "Mdr9" + Mdr10 = "Mdr10" + Mdr11 = "Mdr11" + Mdr12 = "Mdr12" + Day1 = "Day1" + Day2 = "Day2" + Day3 = "Day3" + Day4 = "Day4" + Day5 = "Day5" + Day6 = "Day6" + Day7 = "Day7" + AM12 = "AM12" + AM1 = "AM1" + AM2 = "AM2" + AM3 = "AM3" + AM4 = "AM4" + AM5 = "AM5" + AM6 = "AM6" + AM7 = "AM7" + AM8 = "AM8" + AM9 = "AM9" + AM10 = "AM10" + AM11 = "AM11" + PM12 = "PM12" + PM1 = "PM1" + PM2 = "PM2" + PM3 = "PM3" + PM4 = "PM4" + PM5 = "PM5" + PM6 = "PM6" + PM7 = "PM7" + PM8 = "PM8" + PM9 = "PM9" + PM10 = "PM10" + PM11 = "PM11" + AMW12 = "AMW12" + AMW1 = "AMW1" + AMW2 = "AMW2" + AMW3 = "AMW3" + AMW4 = "AMW4" + AMW5 = "AMW5" + AMW6 = "AMW6" + AMW7 = "AMW7" + AMW8 = "AMW8" + AMW9 = "AMW9" + AMW10 = "AMW10" + AMW11 = "AMW11" + PMW12 = "PMW12" + PMW1 = "PMW1" + PMW2 = "PMW2" + PMW3 = "PMW3" + PMW4 = "PMW4" + PMW5 = "PMW5" + PMW6 = "PMW6" + PMW7 = "PMW7" + PMW8 = "PMW8" + PMW9 = "PMW9" + PMW10 = "PMW10" + PMW11 = "PMW11" + Description = "Description" + +class mss_PollutantFields(): + TypeNo = "TypeNo" + Crain = "Crain" + Cgw = "Cgw" + Cii = "Cii" + SnowFlag = "SnowFlag" + Kdecay = "Kdecay" + CoPollut = "CoPollut" + CoFract = "CoFract" + Cdwf = "Cdwf" + Cinit = "Cinit" + Description = "Description" + +class mss_ProjectFields(): + ScenarioName = "ScenarioName" + ActiveProject = "ActiveProject" + UseRRNo = "UseRRNo" + UseRDNo = "UseRDNo" + UseSMNo = "UseSMNo" + UseGWNo = "UseGWNo" + UseFRNo = "UseFRNo" + UseWQNo = "UseWQNo" + ComputationBegin = "ComputationBegin" + ComputationEnd = "ComputationEnd" + RS_DryDay = "RS_DryDay" + RS_DryTime = "RS_DryTime" + RS_WetDay = "RS_WetDay" + RS_WetTime = "RS_WetTime" + InfiltrationModelNo = "InfiltrationModelNo" + RoutingStep = "RoutingStep" + ControlRuleStep = "ControlRuleStep" + RoutingModelNo = "RoutingModelNo" + AllowPondingNo = "AllowPondingNo" + MinConduitSlope = "MinConduitSlope" + SkipSteadyFlowPeriodNo = "SkipSteadyFlowPeriodNo" + SysFlowTolerance = "SysFlowTolerance" + LatFlowTolerance = "LatFlowTolerance" + InertialTermNo = "InertialTermNo" + NormalFlowCritNo = "NormalFlowCritNo" + ForceMainEqNo = "ForceMainEqNo" + SurchargeMethodNo = "SurchargeMethodNo" + UseVarTSNo = "UseVarTSNo" + VarTSAdjustBy = "VarTSAdjustBy" + MinVarTS = "MinVarTS" + ConduitLenTS = "ConduitLenTS" + MinNodalSurfaceArea = "MinNodalSurfaceArea" + MaxTrialPerTS = "MaxTrialPerTS" + HeadConvergenceTolerance = "HeadConvergenceTolerance" + StartSweep = "StartSweep" + EndSweep = "EndSweep" + AntecedentDryDay = "AntecedentDryDay" + HDOutputNo = "HDOutputNo" + HDFolderPath = "HDFolderPath" + HDFileName = "HDFileName" + Report_StartTime = "Report_StartTime" + Report_Timestep = "Report_Timestep" + Description = "Description" + DeltaT = "DeltaT" + RainfallFileNo = "RainfallFileNo" + RainfallFileUseSaveNo = "RainfallFileUseSaveNo" + RainfallFileName = "RainfallFileName" + HotstartFileSaveNo = "HotstartFileSaveNo" + HotstartFileSaveName = "HotstartFileSaveName" + HotstartFileUseNo = "HotstartFileUseNo" + HotstartFileUseName = "HotstartFileUseName" + InflowFileUseNo = "InflowFileUseNo" + InflowFileUseName = "InflowFileUseName" + OutflowFileSaveNo = "OutflowFileSaveNo" + OutflowFileSaveName = "OutflowFileSaveName" + RDIIFileUseNo = "RDIIFileUseNo" + RDIIFileUseName = "RDIIFileUseName" + RunoffFileUseNo = "RunoffFileUseNo" + RunoffFileUseName = "RunoffFileUseName" + RunoffFileSaveName = "RunoffFileSaveName" + RunoffFileSaveNo = "RunoffFileSaveNo" + RDIIFileSaveNo = "RDIIFileSaveNo" + RDIIFileSaveName = "RDIIFileSaveName" + SubCatchmentsNo = "SubCatchmentsNo" + SubCatchmentFileName = "SubCatchmentFileName" + NodesNo = "NodesNo" + NodesFileName = "NodesFileName" + LinksNo = "LinksNo" + LinksFileName = "LinksFileName" + ReportAverageNo = "ReportAverageNo" + ReportControlNo = "ReportControlNo" + ReportInputNo = "ReportInputNo" + FlowStatsNo = "FlowStatsNo" + ContinuityNo = "ContinuityNo" + ControlsNo = "ControlsNo" + Enable_2DOverland = "Enable_2DOverland" + Enable_M21FM_Coupling = "Enable_M21FM_Coupling" + M2DHDDtMin = "M2DHDDtMin" + M2DHDDtMax = "M2DHDDtMax" + M2DHDMaxCFL = "M2DHDMaxCFL" + M2DADDtMin = "M2DADDtMin" + M2DADDtMax = "M2DADDtMax" + M2DADMaxCFL = "M2DADMaxCFL" + M2DHDOutputNo = "M2DHDOutputNo" + M2DHDFolderPath = "M2DHDFolderPath" + +class mss_PumpFields(): + PumpCurveID = "PumpCurveID" + InitialStatusNo = "InitialStatusNo" + IdealPumpNo = "IdealPumpNo" + StartupDepth = "StartupDepth" + ShutoffDepth = "ShutoffDepth" + +class mss_RaingaugeFields(): + StationName = "StationName" + TimeSeriesID = "TimeSeriesID" + TypeNo = "TypeNo" + FormNo = "FormNo" + UnitNo = "UnitNo" + TimeInterval = "TimeInterval" + Scf = "Scf" + FileNameSeries = "FileNameSeries" + +class mss_RDIIFields(): + NodeID = "NodeID" + HydrographID = "HydrographID" + SewerArea = "SewerArea" + Description = "Description" + +class mss_RuleFields(): + Description = "Description" + Enabled = "Enabled" + Condition = "Condition" + +class mss_SnowPackFields(): + Description = "Description" + Cmin1 = "Cmin1" + Cmax1 = "Cmax1" + Tbase1 = "Tbase1" + Fwf1 = "Fwf1" + Sd01 = "Sd01" + Fw01 = "Fw01" + Snn0 = "Snn0" + Cmin2 = "Cmin2" + Cmax2 = "Cmax2" + Tbase2 = "Tbase2" + Fwf2 = "Fwf2" + Sd02 = "Sd02" + Fw02 = "Fw02" + SD1002 = "SD1002" + Cmin3 = "Cmin3" + Cmax3 = "Cmax3" + Tbase3 = "Tbase3" + Fwf3 = "Fwf3" + Sd03 = "Sd03" + Fw03 = "Fw03" + SD1003 = "SD1003" + Sdplow = "Sdplow" + Fout = "Fout" + Fimperv = "Fimperv" + Fperv = "Fperv" + Fimelt = "Fimelt" + Fsubcatch = "Fsubcatch" + SubCatchID = "SubCatchID" + +class mss_TabDFields(): + TabID = "TabID" + Value1 = "Value1" + Value2 = "Value2" + +class mss_TabFields(): + TypeNo = "TypeNo" + Description = "Description" + +class mss_TemperatureFields(): + TypeNo = "TypeNo" + TimeSeriesID = "TimeSeriesID" + FileName = "FileName" + StartDate = "StartDate" + WindSpeedTypeNo = "WindSpeedTypeNo" + Value1 = "Value1" + Value2 = "Value2" + Value3 = "Value3" + Value4 = "Value4" + Value5 = "Value5" + Value6 = "Value6" + Value7 = "Value7" + Value8 = "Value8" + Value9 = "Value9" + Value10 = "Value10" + Value11 = "Value11" + Value12 = "Value12" + SnowTemp = "SnowTemp" + Atiwt = "Atiwt" + Rnm = "Rnm" + Elev = "Elev" + Lat = "Lat" + Dtlong = "Dtlong" + ADCNo = "ADCNo" + AdcPerv0 = "AdcPerv0" + AdcPerv1 = "AdcPerv1" + AdcPerv2 = "AdcPerv2" + AdcPerv3 = "AdcPerv3" + AdcPerv4 = "AdcPerv4" + AdcPerv5 = "AdcPerv5" + AdcPerv6 = "AdcPerv6" + AdcPerv7 = "AdcPerv7" + AdcPerv8 = "AdcPerv8" + AdcPerv9 = "AdcPerv9" + AdcImPerv0 = "AdcImPerv0" + AdcImPerv1 = "AdcImPerv1" + AdcImPerv2 = "AdcImPerv2" + AdcImPerv3 = "AdcImPerv3" + AdcImPerv4 = "AdcImPerv4" + AdcImPerv5 = "AdcImPerv5" + AdcImPerv6 = "AdcImPerv6" + AdcImPerv7 = "AdcImPerv7" + AdcImPerv8 = "AdcImPerv8" + AdcImPerv9 = "AdcImPerv9" + StartNo = "StartNo" + +class mss_TimeseriesDFields(): + TimeseriesID = "TimeseriesID" + TSDate = "TSDate" + TSValue = "TSValue" + TSRelTime = "TSRelTime" + +class mss_TimeseriesFields(): + Description = "Description" + TypeNo = "TypeNo" + TimeseriesTypeNo = "TimeseriesTypeNo" + DeltaT = "DeltaT" + ExternalTimeseriesFile = "ExternalTimeseriesFile" + UseRelativeTime = "UseRelativeTime" + +class mss_TransectCoordFields(): + TransectID = "TransectID" + X = "X" + Y = "Y" + Z = "Z" + M = "M" + +class mss_TransectDFields(): + TransectID = "TransectID" + Station = "Station" + Elevation = "Elevation" + +class mss_TransectFields(): + Description = "Description" + Nleft = "Nleft" + Nright = "Nright" + NChannel = "NChannel" + Nsta = "Nsta" + Lfactor = "Lfactor" + Wfactor = "Wfactor" + Eoffset = "Eoffset" + Xleft = "Xleft" + Xright = "Xright" + ApplyCoordinateNo = "ApplyCoordinateNo" + +class mss_WashoffFields(): + LanduseID = "LanduseID" + PollutantID = "PollutantID" + FuncTypeNo = "FuncTypeNo" + C1 = "C1" + C2 = "C2" + SweepEfficiency = "SweepEfficiency" + BMPEfficiency = "BMPEfficiency" + +class mss_WeirFields(): + TypeNo = "TypeNo" + InvertLevel = "InvertLevel" + Height = "Height" + Length = "Length" + SideSlope = "SideSlope" + CrestHeight = "CrestHeight" + DischargeCoeff = "DischargeCoeff" + DischargeCoeff_SideFlow = "DischargeCoeff_SideFlow" + DischargeCoeff_RoadWay = "DischargeCoeff_RoadWay" + DischargeCoeff_V = "DischargeCoeff_V" + FlapGateNo = "FlapGateNo" + NoEndContractions = "NoEndContractions" + Cd2 = "Cd2" + SHAPE_Length = "SHAPE_Length" + CanSurchargeNo = "CanSurchargeNo" + CoeffCurveID = "CoeffCurveID" + RoadWidth = "RoadWidth" + RoadSurf = "RoadSurf" + +class ms_SimpMappingFields(): + SettingID = "SettingID" + TargetSimpID = "TargetSimpID" + SourceInfo = "SourceInfo" + +class ms_SimpSettingFields(): + ModelNo = "ModelNo" + ToolTypeNo = "ToolTypeNo" + ParamSettings = "ParamSettings" + +class ModelSettingFields(): + MUID = "MUID" + AltID = "AltID" + ModelNo = "ModelNo" + UBGNo = "UBGNo" + +class ModuleActiveFields(): + Enable_Catchment = "Enable_Catchment" + Enable_CS = "Enable_CS" + Enable_River = "Enable_River" + Enable_2DOverland = "Enable_2DOverland" + Enable_RR = "Enable_RR" + Enable_HD = "Enable_HD" + Enable_RTC = "Enable_RTC" + Enable_LTS = "Enable_LTS" + Enable_AD = "Enable_AD" + Enable_ECOLAB = "Enable_ECOLAB" + Enable_ST = "Enable_ST" + Enable_MHRiver_Coupling = "Enable_MHRiver_Coupling" + Enable_M21FM_Coupling = "Enable_M21FM_Coupling" + Enable_MSHE_Coupling = "Enable_MSHE_Coupling" + Enable_DA = "Enable_DA" + EnableEPAWQ = "Enable_EPA_WQ" + EnableEPAFireFlow = "Enable_EPA_FireFlow" + EnableEPAPipCri = "Enable_EPA_PipCri" + EnableEPACostAna = "Enable_EPA_CostAna" + EnableEPAShuPla = "Enable_EPA_ShuPla" + EnableEPAFluAna = "Enable_EPA_FluAna" + EnableEPAWH = "Enable_EPA_WH" + Enable1DPESE = "Enable_1D_PESE" + EnableEPAOnlAna = "Enable_EPA_OnlAna" + EPAVersionNo = "EPAVersionNo" + EnableEPAOptim = "Enable_EPA_Optim" + EnableEPAMSX = "Enable_EPA_MultSpecAna" + EnableEPAAutoCali = "Enable_EPA_AutoCali" + HeadlossNo = "HeadlossNo" + +class ModelSettingMuid(): + MuModel = "MuModel" + +class MuQuantities(): + GeoCoord = "GeoCoord" + Volume = "Volume" + WaterDepth = "WaterDepth" + Percentage = "Percentage" + FlowVelocity = "FlowVelocity" + +class mwRes_ValveCriticalityFields(): + ValveID = "ValveID" + NoClosedValve = "NoClosedValve" + ListClosedPipe = "ListClosedPipe" + ListClosedValve = "ListClosedValve" + sumlength = "sumlength" + +class mw_AirChamberFields(): + TypeNo = "TypeNo" + Enabled = "Enabled" + Elev = "Elev" + Diameter = "Diameter" + Length = "Length" + Width = "Width" + InitLevel = "InitLevel" + MaxLevel = "MaxLevel" + MinLevel = "MinLevel" + VolCurveID = "VolCurveID" + InitLevel_HGL = "InitLevel_HGL" + MaxLevel_HGL = "MaxLevel_HGL" + MinLevel_HGL = "MinLevel_HGL" + ZoneID = "ZoneID" + av_kapa = "av_kapa" + +class mw_AutocalibrationFields(): + SimulationID = "SimulationID" + AlgorithmTypeNo = "AlgorithmTypeNo" + MaxCallsNo = "MaxCallsNo" + DDSseed = "DDSseed" + DDStargetObj = "DDStargetObj" + SCEcomplex = "SCEcomplex" + SCEpntInComplex = "SCEpntInComplex" + SCEMinNumComplex = "SCEMinNumComplex" + SCEevlStep = "SCEevlStep" + SCEpntInSubcomplex = "SCEpntInSubcomplex" + SCEseed = "SCEseed" + SCEtargetObj = "SCEtargetObj" + SCEmaxLpConvgc = "SCEmaxLpConvgc" + SCEminRelChg = "SCEminRelChg" + SCEUseHSFileNo = "SCEUseHSFileNo" + SCEHSFile = "SCEHSFile" + UseMaxTimePerSimNo = "UseMaxTimePerSimNo" + MaxTimePerSim = "MaxTimePerSim" + UseMaxInvSolNo = "UseMaxInvSolNo" + MaxInvSol = "MaxInvSol" + +class mw_AutocaliClosedLinksFields(): + AutoCaliID = "AutoCaliID" + LinkTypeNo = "LinkTypeNo" + LinkID = "LinkID" + Enable = "Enable" + CurrStatus = "CurrStatus" + CalibratedStatus = "CalibratedStatus" + ApprovedStatus = "ApprovedStatus" + Description = "Description" + +class mw_AutocaliLeaksFields(): + AutoCaliID = "AutoCaliID" + JunctionID = "JunctionID" + Enable = "Enable" + MaxEmCoeff = "MaxEmCoeff" + CalibratedEmCoeff = "CalibratedEmCoeff" + CalibratedLeak = "CalibratedLeak" + ApprovedEmCoeff = "ApprovedEmCoeff" + Description = "Description" + +class mw_AutocaliNodeDemandsFields(): + AutoCaliID = "AutoCaliID" + PatternID = "PatternID" + Enable = "Enable" + MinFactor = "MinFactor" + MaxFactor = "MaxFactor" + CalibratedFactor = "CalibratedFactor" + ApprovedFactor = "ApprovedFactor" + Description = "Description" + +class mw_AutocaliPipesFrictFields(): + Enable = "Enable" + AutoCaliID = "AutoCaliID" + ControlID = "ControlID" + SelectionID = "SelectionID" + MinFriction = "MinFriction" + MaxFriction = "MaxFriction" + CalibratedFriction = "CalibratedFriction" + ApprovedFriction = "ApprovedFriction" + Description = "Description" + +class mw_AutocaliTargetsFields(): + AutoCaliID = "AutoCaliID" + TargetTypeNo = "TargetTypeNo" + MeasuredTypeNo = "MeasuredTypeNo" + ConstValue = "ConstValue" + PlotID = "PlotID" + EvalTypeNo = "EvalTypeNo" + LinkTypeNo = "LinkTypeNo" + LinkID = "LinkID" + ObjWeight = "ObjWeight" + Enable = "Enable" + TankID = "TankID" + JunctionID = "JunctionID" + LocationTypeNo = "LocationTypeNo" + LocationID = "LocationID" + +class mw_ControlFields(): + ConditionNo = "ConditionNo" + LinkTypeNo = "LinkTypeNo" + SettingNo = "SettingNo" + LinkID = "LinkID" + ControlJunctionID = "ControlJunctionID" + SetValue = "SetValue" + CLevel = "CLevel" + TValue = "TValue" + TimeUnitsNo = "TimeUnitsNo" + ClockTimeUnitsNo = "ClockTimeUnitsNo" + ClockTimeHrs = "ClockTimeHrs" + ClockTimeMin = "ClockTimeMin" + Desription = "Desription" + +class mw_CurveDFields(): + CurveID = "CurveID" + Val1 = "Val1" + Val2 = "Val2" + Val3 = "Val3" + Val4 = "Val4" + +class mw_CurveFields(): + TypeNo = "TypeNo" + Description = "Description" + +class mw_DemAllocConnFields(): + DemAllocID = "DemAllocID" + LocationID = "LocationID" + LocationTypeNo = "LocationTypeNo" + +class mw_DemAllocFields(): + ConnectionTypeNo = "ConnectionTypeNo" + JunctionID = "JunctionID" + PipeID = "PipeID" + Pattern = "Pattern" + Dem_category = "Dem_category" + Dem_Location = "Dem_Location" + Dem_Owner = "Dem_Owner" + Demand = "Demand" + EstHeight = "EstHeight" + Elevation = "Elevation" + AssetName = "AssetName" + Description = "Description" + +class mw_DemStatConfigFields(): + MethodNo = "MethodNo" + NetElemTypeNo = "NetElemTypeNo" + ZoneTypeNo = "ZoneTypeNo" + SimulationID = "SimulationID" + ScenarioID = "ScenarioID" + SimulationType = "SimulationType" + StartTime = "StartTime" + EndTime = "EndTime" + +class mw_DemStatFields(): + ZoneType = "ZoneType" + ZoneID = "ZoneID" + RecTypeNo = "RecTypeNo" + Category = "Category" + AvgDemand = "AvgDemand" + MaxDemand = "MaxDemand" + MinDemand = "MinDemand" + SumDemand = "SumDemand" + NewAvgDemand = "NewAvgDemand" + NewSumDemand = "NewSumDemand" + +class mw_EnergyFields(): + Price = "Price" + PricePatID = "PricePatID" + DemCharge = "DemCharge" + Effic = "Effic" + CarbonFactor = "CarbonFactor" + PumpCurrency = "PumpCurrency" + TurbinePrice = "TurbinePrice" + TurbinePriPatID = "TurbinePriPatID" + TurbineEffic = "TurbineEffic" + TurbineCurrency = "TurbineCurrency" + OtherUnit = "OtherUnit" + +class mw_EPAMSXFields(): + Description = "Description" + Content = "Content" + +class mw_FireFlowFields(): + UseHydNo = "UseHydNo" + SimStartTime = "SimStartTime" + Duration = "Duration" + NodeSelectionList = "NodeSelectionList" + TypeNo = "TypeNo" + DesignPressure = "DesignPressure" + DesignFlow = "DesignFlow" + NodeDemMult = "NodeDemMult" + UseNodeDemMultNo = "UseNodeDemMultNo" + UseSimultaneousNo = "UseSimultaneousNo" + UseCriNodePreNo = "UseCriNodePreNo" + UseCriFlowLimitNo = "UseCriFlowLimitNo" + SimFirHydNo = "SimFirHydNo" + FirHydMinorLoss = "FirHydMinorLoss" + FirHydPipeDiameter = "FirHydPipeDiameter" + FirHydPipeLength = "FirHydPipeLength" + FirHydPipeRough = "FirHydPipeRough" + ReportCriPreNo = "ReportCriPreNo" + ReportCriVelNo = "ReportCriVelNo" + CriNodePre = "CriNodePre" + UseCriNodeRadiusNo = "UseCriNodeRadiusNo" + CriNodeRadius = "CriNodeRadius" + SearchZoneTypeNo = "SearchZoneTypeNo" + SelNodeTypeNo = "SelNodeTypeNo" + CriFlowLimit = "CriFlowLimit" + HydLayer = "HydLayer" + HydInputField = "HydInputField" + HydOutField = "HydOutField" + SelHydTypeNo = "SelHydTypeNo" + HydTypeNo = "HydTypeNo" + HydSnapTolerance = "HydSnapTolerance" + UseNodeBelResPreNo = "UseNodeBelResPreNo" + +class mw_FlsuhingFields(): + TypeNo = "TypeNo" + OutputPath = "OutputPath" + PipeList = "PipeList" + TargetTypeNo = "TargetTypeNo" + TargetVelocity = "TargetVelocity" + TargetShearStr = "TargetShearStr" + MinResidualPre = "MinResidualPre" + EmitterCoeff = "EmitterCoeff" + FlushingDemand = "FlushingDemand" + StartHour = "StartHour" + IdleInterval = "IdleInterval" + SaftyFactor = "SaftyFactor" + MaxFlushTimeSpan = "MaxFlushTimeSpan" + StartNodeNo = "StartNodeNo" + StartNodeID = "StartNodeID" + StartNodeList = "StartNodeList" + HydrantLayer = "HydrantLayer" + ValveLayer = "ValveLayer" + IdentifyClosedPipeNo = "IdentifyClosedPipeNo" + UseToleranceNo = "UseToleranceNo" + Tolerance = "Tolerance" + ClosedPipes = "ClosedPipes" + Description = "Description" + +class mw_FlushingOutletFields(): + Sqn = "Sqn" + FlushingID = "FlushingID" + TypeNo = "TypeNo" + OutletID = "OutletID" + LocalNo = "LocalNo" + LocalFlow = "LocalFlow" + +class mw_FrictionFields(): + DW = "DW" + HW = "HW" + M = "M" + MHW = "MHW" + Description = "Description" + +class mw_LossFields(): + Coeff = "Coeff" + Description = "Description" + +class mw_MDemandFields(): + Enabled = "Enabled" + JunctionID = "JunctionID" + Demand = "Demand" + DemCoeff = "DemCoeff" + Category = "Category" + PatternID = "PatternID" + GenerateTypeNo = "GenerateTypeNo" + Description = "Description" + +class mw_OptimizationControlFields(): + Enabled = "Enabled" + OptimizationID = "OptimizationID" + CtrlID = "CtrlID" + LinkTypeNo = "LinkTypeNo" + LinkID = "LinkID" + TypeNo = "TypeNo" + PatternLength = "PatternLength" + MinDecisionInterval = "MinDecisionInterval" + CurveID = "CurveID" + Description = "Description" + +class mw_OptimizationFields(): + AlgorithmTypeNo = "AlgorithmTypeNo" + MaxCallsNo = "MaxCallsNo" + DDSseed = "DDSseed" + DDStargetObj = "DDStargetObj" + SCEcomplex = "SCEcomplex" + SCEpntInComplex = "SCEpntInComplex" + SCEMinNumComplex = "SCEMinNumComplex" + SCEevlStep = "SCEevlStep" + SCEpntInSubcomplex = "SCEpntInSubcomplex" + SCEseed = "SCEseed" + SCEtargetObj = "SCEtargetObj" + SCEmaxLpConvgc = "SCEmaxLpConvgc" + SCEminRelChg = "SCEminRelChg" + SCEUseHSFileNo = "SCEUseHSFileNo" + SCEHSFile = "SCEHSFile" + UseMaxTimePerSimNo = "UseMaxTimePerSimNo" + MaxTimePerSim = "MaxTimePerSim" + UseMaxInvSolNo = "UseMaxInvSolNo" + MaxInvSol = "MaxInvSol" + +class mw_OptimizationTargetFields(): + Enabled = "Enabled" + OptimizationID = "OptimizationID" + TargetID = "TargetID" + TargetTypeNo = "TargetTypeNo" + ObjWeight = "ObjWeight" + TankID = "TankID" + JunctionID = "JunctionID" + LinkTypeNo = "LinkTypeNo" + LinkID = "LinkID" + SetpointTypeNo = "SetpointTypeNo" + TargetLevel = "TargetLevel" + EnergyCostUnitTypeNo = "EnergyCostUnitTypeNo" + UserDefEnergyCostUnit = "UserDefEnergyCostUnit" + TargetFlow = "TargetFlow" + LocationTypeNo = "LocationTypeNo" + LocationID = "LocationID" + +class mw_OptimizationTargetWBFields(): + OptimTargetID = "OptimTargetID" + SourcePipe = "SourcePipe" + TargetPct = "TargetPct" + +class mw_PipeRelFields(): + SimPeriodNo = "SimPeriodNo" + UseGlobal = "UseGlobal" + TimeHrs = "TimeHrs" + MinPre = "MinPre" + ZoneIDList = "ZoneIDList" + UserCriteriaNo = "UserCriteriaNo" + UserCriteriaField = "UserCriteriaField" + +class mw_PPatternDFields(): + PatternID = "PatternID" + AbsDateTime = "AbsDateTime" + RelativeTime = "RelativeTime" + Multiplier = "Multiplier" + +class mw_PPatternFields(): + UseAbsDateTime = "UseAbsDateTime" + Duration = "Duration" + TypeNo = "TypeNo" + Category = "Category" + Description = "Description" + MonF = "MonF" + TueF = "TueF" + WedF = "WedF" + ThuF = "ThuF" + FriF = "FriF" + SatF = "SatF" + SunF = "SunF" + JanF = "JanF" + FebF = "FebF" + MarF = "MarF" + AprF = "AprF" + MayF = "MayF" + JunF = "JunF" + JulF = "JulF" + AugF = "AugF" + SepF = "SepF" + OctF = "OctF" + NovF = "NovF" + DecF = "DecF" + +class mw_ProjectFields(): + ScenarioID = "ScenarioID" + ActiveProject = "ActiveProject" + IncludeToBatchNo = "IncludeToBatchNo" + SimType = "SimType" + QualityNo = "QualityNo" + StartTime = "StartTime" + EndTime = "EndTime" + Hydr_Timestep = "Hydr_Timestep" + Pattern_Timestep = "Pattern_Timestep" + Qual_Timestep = "Qual_Timestep" + Report_Timestep = "Report_Timestep" + Report_StartTime = "Report_StartTime" + StatisticsNo = "StatisticsNo" + Gravity = "Gravity" + Viscosity = "Viscosity" + Diffusivity = "Diffusivity" + Emitter = "Emitter" + Trials = "Trials" + UnbalancedNo = "UnbalancedNo" + Accuracy = "Accuracy" + CheckFreq = "CheckFreq" + Tolerance = "Tolerance" + MaxHeadError = "MaxHeadError" + MaxFlowChange = "MaxFlowChange" + MaxCheck = "MaxCheck" + Segments = "Segments" + DampLimit = "DampLimit" + Description = "Description" + HDOutputNo = "HDOutputNo" + HDFolderPath = "HDFolderPath" + HDFileName = "HDFileName" + UseOrderWNo = "UseOrderWNo" + UseOrderBNo = "UseOrderBNo" + UseLimitPNo = "UseLimitPNo" + UseCorrCNo = "UseCorrCNo" + WallCoeff = "WallCoeff" + BulkCoeff = "BulkCoeff" + OrderWall = "OrderWall" + LimitPot = "LimitPot" + OrderBulk = "OrderBulk" + CorrCoeff = "CorrCoeff" + NewBulkCoeff = "NewBulkCoeff" + NewBulkCoeffHRS = "NewBulkCoeffHRS" + CCT_Materials = "CCT_Materials" + Theta = "Theta" + Alpha = "Alpha" + G = "G" + Hatm = "Hatm" + Hvap = "Hvap" + Temperature = "Temperature" + SaveRawResultsNo = "SaveRawResultsNo" + ContinueTimeStepNo = "ContinueTimeStepNo" + MsxRunTypeNo = "MsxRunTypeNo" + MsxHydFile = "MsxHydFile" + MsxSaveHydrolicsNo = "MsxSaveHydrolicsNo" + +class mw_PumpFields(): + CDate = "CDate" + EfCurveID = "EfCurveID" + EPatternID = "EPatternID" + EPrice = "EPrice" + Par1 = "Par1" + Par2 = "Par2" + Par3 = "Par3" + Par4 = "Par4" + Par5 = "Par5" + Par6 = "Par6" + PatternID = "PatternID" + TypeNo = "TypeNo" + CurveTypeNo = "CurveTypeNo" + QHCurveID = "QHCurveID" + Setting = "Setting" + StatusNo = "StatusNo" + StreetName = "StreetName" + VSD_TypeNo = "VSD_TypeNo" + VSD_Node = "VSD_Node" + VSD_Link = "VSD_Link" + VSD_Pressure = "VSD_Pressure" + VSD_CtrlLevelTypeNo = "VSD_CtrlLevelTypeNo" + VSD_HGL = "VSD_HGL" + VSD_MinSpeed = "VSD_MinSpeed" + VSD_MaxSpeed = "VSD_MaxSpeed" + VSD_CtrlFlow = "VSD_CtrlFlow" + VSD_Curve = "VSD_Curve" + Elev = "Elev" + ZoneID = "ZoneID" + P_ScheduleNo = "P_ScheduleNo" + P_ScheduleID = "P_ScheduleID" + P_Speed = "P_Speed" + P_IW = "P_IW" + P_PTorqueID = "P_PTorqueID" + C_MTorqueID = "C_MTorqueID" + P_TTripoff = "P_TTripoff" + p_TStartup = "p_TStartup" + +class mw_PumpStationConnFields(): + PumpStationID = "PumpStationID" + PumpID = "PumpID" + +class mw_PumpStationFields(): + Comment = "Comment" + Picture = "Picture" + +class mw_QualityFields(): + NodeID = "NodeID" + Initial_Quality = "Initial_Quality" + Description = "Description" + +class mw_ReliabilityFields(): + EnablePddNo = "EnablePddNo" + MinPre = "MinPre" + RequiredPre = "RequiredPre" + nCoeff = "nCoeff" + Notes = "Notes" + GlobalNodePddNo = "GlobalNodePddNo" + EquationNo = "EquationNo" + +class mw_ReliabilityLocalFields(): + JunctionID = "JunctionID" + IsPressureDependent = "IsPressureDependent" + HasLocalData = "HasLocalData" + MinPre = "MinPre" + RequiredPre = "RequiredPre" + Description = "Description" + +class mw_ResSustainabilityLinkFields(): + LinkHeadloss = "LinkHeadloss" + ReverseFlow = "ReverseFlow" + FlowVelocity = "FlowVelocity" + FlowVelocityFluctuation = "FlowVelocityFluctuation" + +class mw_ResSustainabilityNodeFields(): + PressureAnomalies = "PressureAnomalies" + PressureDistribution = "PressureDistribution" + PressureFluctuation = "PressureFluctuation" + +class mw_RTCFields(): + Enabled = "Enabled" + ControlTypeNo = "ControlTypeNo" + ControlElementTypeNo = "ControlElementTypeNo" + ControlElementID = "ControlElementID" + ControlValueMin = "ControlValueMin" + ControlValueMax = "ControlValueMax" + ControlMaxIncRate = "ControlMaxIncRate" + ControlMaxDecRate = "ControlMaxDecRate" + SetPointTypeNo = "SetPointTypeNo" + SetPointElementTypeNo = "SetPointElementTypeNo" + SetPointVariableNo = "SetPointVariableNo" + SetPointID = "SetPointID" + SetPointValue = "SetPointValue" + SetPointValueCurveID = "SetPointValueCurveID" + SetPointAccuracy = "SetPointAccuracy" + Kp = "Kp" + Ki = "Ki" + Kd = "Kd" + Description = "Description" + +class mw_RuleFields(): + Enabled = "Enabled" + Sqn = "Sqn" + Condition = "Condition" + Condition1 = "Condition1" + Condition2 = "Condition2" + Description = "Description" + +class mw_ShutdownPlanningFields(): + ValveFilePath = "ValveFilePath" + ValveIDField = "ValveIDField" + Tolerance = "Tolerance" + ServicePre = "ServicePre" + UnavailableValveList = "UnavailableValveList" + +class mw_ShutdownValveFields(): + ShutdownID = "ShutdownID" + ValveID = "ValveID" + PipeID = "PipeID" + StartTime = "StartTime" + EndTime = "EndTime" + Description = "Description" + +class mw_SourceFields(): + Enabled = "Enabled" + SrcTypeNo = "SrcTypeNo" + NodeTypeNo = "NodeTypeNo" + NodeID = "NodeID" + PatternID = "PatternID" + Conc = "Conc" + +class mw_SpecDayFields(): + PatternID = "PatternID" + StartDate = "StartDate" + EndDate = "EndDate" + Factor = "Factor" + Description = "Description" + +class mw_TankFields(): + TypeNo = "TypeNo" + Enabled = "Enabled" + Elev = "Elev" + Z = "Z" + HGLTypeNo = "HGLTypeNo" + HGLLevelTypeNo = "HGLLevelTypeNo" + HGL = "HGL" + Diameter = "Diameter" + Length = "Length" + Width = "Width" + InitLevel = "InitLevel" + MaxLevel = "MaxLevel" + MinLevel = "MinLevel" + MinVol = "MinVol" + OverflowNo = "OverflowNo" + MixModelNo = "MixModelNo" + VolCurveID = "VolCurveID" + ComVol = "ComVol" + PatternID = "PatternID" + ReactionCoefficient = "ReactionCoefficient" + Element_S = "Element_S" + InitLevel_HGL = "InitLevel_HGL" + MaxLevel_HGL = "MaxLevel_HGL" + MinLevel_HGL = "MinLevel_HGL" + Init_Quality_Concentration = "Init_Quality_Concentration" + Init_Quality_Hour = "Init_Quality_Hour" + Init_Quality_Percentage = "Init_Quality_Percentage" + ZoneID = "ZoneID" + +class mw_TraceNodeFields(): + Enabled = "Enabled" + NodeTypeNo = "NodeTypeNo" + NodeID = "NodeID" + Description = "Description" + +class mw_TurbineFields(): + TypeNo = "TypeNo" + Diameter = "Diameter" + EfCurveID = "EfCurveID" + EPatternID = "EPatternID" + EPrice = "EPrice" + RelativeSpeed = "RelativeSpeed" + HlossCurveID = "HlossCurveID" + StatusNo = "StatusNo" + StreetName = "StreetName" + ZoneID = "ZoneID" + +class mw_ValveFields(): + CDate = "CDate" + Diameter = "Diameter" + HLCurveID = "HLCurveID" + LCoeff = "LCoeff" + LossCoeff = "LossCoeff" + Setting = "Setting" + StatusNo = "StatusNo" + StreetName = "StreetName" + TypeNo = "TypeNo" + ValveCurveID = "ValveCurveID" + SettingNo = "SettingNo" + Elev = "Elev" + ZoneID = "ZoneID" + OperCurveID = "OperCurveID" + LevelControlEnabled = "LevelControlEnabled" + TankID = "TankID" + LevelOpen = "LevelOpen" + LevelClose = "LevelClose" + +class mw_WDOComparisonsFields(): + Enabled = "Enabled" + LocateID = "LocateID" + ModelType = "ModelType" + ModelID = "ModelID" + ModelMult = "ModelMult" + ModelOffset = "ModelOffset" + SensorTable = "SensorTable" + SensorID = "SensorID" + SensorMult = "SensorMult" + SensorOffset = "SensorOffset" + ComparisonTable = "ComparisonTable" + AlarmLow = "AlarmLow" + AlarmHigh = "AlarmHigh" + AlarmHighHigh = "AlarmHighHigh" + AlarmLowLow = "AlarmLowLow" + AlarmMin = "AlarmMin" + AlarmMax = "AlarmMax" + Comment = "Comment" + ID = "ID" + +class mw_WDOControlsFields(): + Enabled = "Enabled" + ID = "ID" + ControlsID = "ControlsID" + Comment = "Comment" + SensorTable = "SensorTable" + Mult = "Mult" + OffsetValue = "OffsetValue" + Override = "Override" + SensorID = "SensorID" + ControlType = "ControlType" + ModelID = "ModelID" + Priority = "Priority" + +class mw_WDODemandPredictionsFields(): + Enabled = "Enabled" + ID = "ID" + Comment = "Comment" + SensorTable = "SensorTable" + SensorID = "SensorID" + PredictTable = "PredictTable" + PredictStep = "PredictStep" + PredictDuration = "PredictDuration" + PredictType = "PredictType" + HistoryDuration = "HistoryDuration" + Runs = "Runs" + Param1 = "Param1" + Param2 = "Param2" + Param3 = "Param3" + Param4 = "Param4" + Param5 = "Param5" + Param6 = "Param6" + Param7 = "Param7" + Param8 = "Param8" + Param9 = "Param9" + SensorMult = "SensorMult" + SensorOffset = "SensorOffset" + ZoneID = "ZoneID" + +class mw_WDODemandZonesFields(): + Enabled = "Enabled" + ID = "ID" + ZoneID = "ZoneID" + SensorID = "SensorID" + Comment = "Comment" + SensorTable = "SensorTable" + Mult = "Mult" + OffsetValue = "OffsetValue" + PatternID = "PatternID" + Rematch = "Rematch" + LeakageNo = "LeakageNo" + Population = "Population" + ServiceConnections = "ServiceConnections" + ServicePipesLength = "ServicePipesLength" + MinNightUse = "MinNightUse" + +class mw_WDOSensorsFields(): + ID = "ID" + SensorID = "SensorId" + Comment = "Comment" + SensorTable = "SensorTable" + Mult = "Mult" + OffsetValue = "OffsetValue" + Enabled = "Enabled" + ModelID = "ModelID" + ModelType = "ModelType" + +class mw_WDOSettingsFields(): + ID = "ID" + Keyname = "Keyname" + Comment = "Comment" + Section = "Section" + KeyValue = "KeyValue" + +class mw_WH_BoundaryFields(): + TypeNo = "TypeNo" + NodeTypeNo = "NodeTypeNo" + NodeID = "NodeID" + CurveID = "CurveID" + Description = "Description" + +class mw_ZoneDefFields(): + TypeNo = "TypeNo" + RangeSelection = "RangeSelection" + Demand = "Demand" + Population = "Population" + Pressure = "Pressure" + Leakage = "Leakage" + Description = "Description" + DefTypeNo = "DefTypeNo" + UseCustomWBDt = "UseCustomWBDt" + CustomFromWBDt = "CustomFromWBDt" + CustomToWBDt = "CustomToWBDt" + WBFrom = "WBFrom" + WBTo = "WBTo" + +class mw_ZoneWBFields(): + MeasurementID = "MeasurementID" + ZoneID = "ZoneID" + Unit = "Unit" + FlowDerictionNo = "FlowDerictionNo" + Volume = "Volume" + +class m_CustomConfigFields(): + ApplyNo = "ApplyNo" + Name = "Name" + ValueTypeNo = "ValueTypeNo" + ValueInt = "ValueInt" + ValueDouble = "ValueDouble" + ValueDate = "ValueDate" + ValueText = "ValueText" + ApplySimNo = "ApplySimNo" + SimSections = "SimSections" + Description = "Description" + +class NodeFields(): + Enabled = "Enabled" + TypeNo = "TypeNo" + InvertLevel = "InvertLevel" + GroundLevel = "GroundLevel" + Diameter = "Diameter" + CriticalLevel = "CriticalLevel" + LossParID = "LossParID" + GeometryID = "GeometryID" + ManholeCoverDisplacementID = "ManholeCoverDisplacementID" + BranchID = "BranchID" + BranchChainage = "BranchChainage" + LossParNo = "LossParNo" + LossTypeNo = "LossTypeNo" + LossCoeffKm = "LossCoeffKm" + LossCoeffContraction = "LossCoeffContraction" + LossCoeffTotal = "LossCoeffTotal" + EffAreaNo = "EffAreaNo" + PMTypeNo = "PMTypeNo" + PMLevel = "PMLevel" + CoverTypeNo = "CoverTypeNo" + BufferPressure = "BufferPressure" + SpillCoef = "SpillCoef" + QHTypeNo = "QHTypeNo" + OutletQHID = "OutletQHID" + InletControlNo = "InletControlNo" + MaxInlet = "MaxInlet" + SubModelNo = "SubModelNo" + InfiltrationNo = "InfiltrationNo" + InitialWL = "InitialWL" + InfConstValue = "InfConstValue" + KfsSide = "KfsSide" + PorosityFill = "PorosityFill" + KfsBottomNo = "KfsBottomNo" + KfsBottom = "KfsBottom" + +class OnGradeDFields(): + CaptureID = "CaptureID" + Slope = "Slope" + QQRelationID = "QQRelationID" + +class OrificeFields(): + FlapNo = "FlapNo" + InvertLevel = "InvertLevel" + Diameter = "Diameter" + Width = "Width" + Height = "Height" + TypeNo = "TypeNo" + CrsID = "CrsID" + ControlTypeNo = "ControlTypeNo" + DischargeCoeff = "DischargeCoeff" + MaxGateLevel = "MaxGateLevel" + MinGateLevel = "MinGateLevel" + MaxGateLevelIncreaseSpeed = "MaxGateLevelIncreaseSpeed" + MaxGateLevelDecreaseSpeed = "MaxGateLevelDecreaseSpeed" + BladeTypeNo = "BladeTypeNo" + InitialLevel = "InitialLevel" + +class PfsKeywordFields(): + KeywordName = "KeywordName" + +class PfsParamFields(): + Type = "Type" + Value = "Value" + +class PfsSectionFields(): + SectionName = "SectionName" + +class PipeFields(): + CDate = "CDate" + Coeff1 = "Coeff1" + Coeff2 = "Coeff2" + Coeff3 = "Coeff3" + Coeff4 = "Coeff4" + Diameter = "Diameter" + Thickness = "Thickness" + GroupID = "GroupID" + L = "L" + LCoeff = "LCoeff" + Material = "Material" + PN = "PN" + PMapZone = "PMapZone" + RCoeff = "RCoeff" + StatusNo = "StatusNo" + StreetName = "StreetName" + UserLno = "UserLno" + Bulk_Coeff = "Bulk_Coeff" + Wall_Coeff = "Wall_Coeff" + Inner_Diameter = "Inner_Diameter" + ZoneID = "ZoneID" + WaveSpeed = "WaveSpeed" + CVTimeOpen = "CVTimeOpen" + CVTimeClose = "CVTimeClose" + CVPressure = "CVPressure" + CVVelocity = "CVVelocity" + CVStatOpen = "CVStatOpen" + CVReverseQ = "CVReverseQ" + CVInterval = "CVInterval" + CVCanReopen = "CVCanReopen" + +class ProcessedCRSDFields(): + CrsID = "CrsID" + AllowRecalculation = "AllowRecalculation" + Level = "Level" + FlowArea = "FlowArea" + Radii = "Radii" + StorageWidth = "StorageWidth" + AdditionalSurfaceArea = "AdditionalSurfaceArea" + ResistanceFactor = "ResistanceFactor" + Conveyence = "Conveyence" + +class ProjectFields(): + ScenarioName = "ScenarioName" + ActiveProject = "ActiveProject" + IncludeToBatchNo = "IncludeToBatchNo" + Enable_Catchment = "Enable_Catchment" + Enable_CS = "Enable_CS" + Enable_River = "Enable_River" + Enable_2DOverland = "Enable_2DOverland" + Enable_RR = "Enable_RR" + Enable_CD = "Enable_CD" + Enable_HD = "Enable_HD" + Enable_LTS = "Enable_LTS" + Enable_AD = "Enable_AD" + Enable_ECOLAB = "Enable_ECOLAB" + Enable_ST = "Enable_ST" + Enable_DA = "Enable_DA" + Enable_MHRiver_Coupling = "Enable_MHRiver_Coupling" + Enable_M21FM_Coupling = "Enable_M21FM_Coupling" + ELIntegrationNo = "ELIntegrationNo" + ELUpdateFrequency = "ELUpdateFrequency" + ComputationBegin = "ComputationBegin" + ComputationEnd = "ComputationEnd" + Description = "Description" + TADt = "TADt" + KWDt = "KWDt" + UHMDt = "UHMDt" + DtWetPeriod = "DtWetPeriod" + DtDryPeriod = "DtDryPeriod" + FRCDt = "FRCDt" + SRCDt = "SRCDt" + CDDt = "CDDt" + RDIHotStartNo = "RDIHotStartNo" + RDIHotStartFileName = "RDIHotStartFileName" + RDIHotStartTimeUseNo = "RDIHotStartTimeUseNo" + RDIHotStartTime = "RDIHotStartTime" + ADPRunoffFileNo = "ADPRunoffFileNo" + ADPRunoffFileName = "ADPRunoffFileName" + HDTimeStepType = "HDTimeStepType" + HDDtFixed = "HDDtFixed" + HDDtMin = "HDDtMin" + HDDtMax = "HDDtMax" + HDDtIncreaseFactor = "HDDtIncreaseFactor" + M2DHDMaxCFL = "M2DHDMaxCFL" + HDInitCondTypeNo = "HDInitCondTypeNo" + HDInitCondID = "HDInitCondID" + ADPNetworkFileNo = "ADPNetworkFileNo" + ADPNetworkFileName = "ADPNetworkFileName" + HDHotStartFileNo = "HDHotStartFileNo" + HDHotStartFileName = "HDHotStartFileName" + ADHotStartFileNo = "ADHotStartFileNo" + ADHotStartFileName = "ADHotStartFileName" + HDHotStartDateTime = "HDHotStartDateTime" + ADInitCondTypeNo = "ADInitCondTypeNo" + ADInitCondID = "ADInitCondID" + HDOutputNo = "HDOutputNo" + HDFolderPath = "HDFolderPath" + MJLFileName = "MJLFileName" + DecouplingADHDTypeNo = "DecouplingADHDTypeNo" + DecouplingPath = "DecouplingPath" + SummaryID = "SummaryID" + M2DADDtMin = "M2DADDtMin" + M2DADDtMax = "M2DADDtMax" + M2DADMaxCFL = "M2DADMaxCFL" + StateFilesFolder = "StateFilesFolder" + UseSimulationTypeNo = "UseSimulationTypeNo" + StateStartTime = "StateStartTime" + DistribTypeNo = "DistribTypeNo" + Power = "Power" + SearchRadius = "SearchRadius" + +class ProjectOutputFields(): + SimulationID = "SimulationID" + OutputID = "OutputID" + ContentsTypeNo = "ContentsTypeNo" + FormatNo = "FormatNo" + DtSave = "DtSave" + DtSaveUnitNo = "DtSaveUnitNo" + DefaultSavePeriodNo = "DefaultSavePeriodNo" + SaveStartDate = "SaveStartDate" + SaveEndDate = "SaveEndDate" + +class PumpFields(): + QMaxSetID = "QMaxSetID" + QMinSetID = "QMinSetID" + WetWellSetPoint = "WetWellSetPoint" + RegNo = "RegNo" + SpeedNo = "SpeedNo" + ControlTypeNo = "ControlTypeNo" + CapTypeNo = "CapTypeNo" + DutyPoint = "DutyPoint" + StartLevel = "StartLevel" + StopLevel = "StopLevel" + OffSet1 = "OffSet1" + OffSet2 = "OffSet2" + AccTime = "AccTime" + DecTime = "DecTime" + MaxStartLevel = "MaxStartLevel" + MinStopLevel = "MinStopLevel" + MinTimeOn = "MinTimeOn" + MinTimeOff = "MinTimeOff" + +class ResultSelectionQuantityFields(): + ResultSelectionID = "ResultSelectionID" + QuantityID = "QuantityID" + FeatureTypeNo = "FeatureTypeNo" + +class RiverWeirFields(): + Enabled = "Enabled" + LinkID = "LinkID" + Chainage = "Chainage" + TypeNo = "TypeNo" + GeomType = "GeomType" + Datum = "Datum" + GeomLinkID = "GeomLinkID" + GeomTopoID = "GeomTopoID" + GeomChainage = "GeomChainage" + GeomWidth = "GeomWidth" + GeomHeight = "GeomHeight" + InvertLevel = "InvertLevel" + Coeff = "Coeff" + ExpoCoeff = "ExpoCoeff" + CrestLevel = "CrestLevel" + PO_i = "PO_i" + PO_a = "PO_a" + PO_b = "PO_b" + PO_p = "PO_p" + IO_Alpha = "IO_Alpha" + IO_Beta = "IO_Beta" + IO_q = "IO_q" + SO_Gamma = "SO_Gamma" + SO_Delta = "SO_Delta" + SO_s = "SO_s" + SO_r = "SO_r" + HorizOffset = "HorizOffset" + NonReturnNo = "NonReturnNo" + NonReturnTypeNo = "NonReturnTypeNo" + PosInflow = "PosInflow" + HeadLossCmTypeNo = "HeadLossCmTypeNo" + PosOutflow = "PosOutflow" + PosFreeOverflow = "PosFreeOverflow" + NegInflow = "NegInflow" + NegOutflow = "NegOutflow" + NegFreeOverflow = "NegFreeOverflow" + AllowRecalculationNo = "AllowRecalculationNo" + NoQhRelations = "NoQhRelations" + ApplyFactorNo = "ApplyFactorNo" + FactorValue = "FactorValue" + Element_S = "Element_S" + DataSource = "DataSource" + Description = "Description" + +class RiverWeirGeomFields(): + WeirID = "WeirID" + Level = "Level" + Width = "Width" + +class RiverWeirQhRelationFields(): + WeirID = "WeirID" + Q = "Q" + HPos = "HPos" + HNeg = "HNeg" + HWeir = "HWeir" + Width = "Width" + Area = "Area" + +class RRProjectFields(): + ScenarioID = "ScenarioID" + Description = "Description" + ActiveProject = "ActiveProject" + SWQComputationNo = "SWQComputationNo" + ADPRunoffFileNo = "ADPRunoffFileNo" + ADPFileName = "ADPFileName" + RDIHotstartNo = "RDIHotstartNo" + RDIHotstartFileName = "RDIHotstartFileName" + ComputationBegin = "ComputationBegin" + ComputationEnd = "ComputationEnd" + TADt = "TADt" + KWDt = "KWDt" + UHMDt = "UHMDt" + RDIIDtFRCSec = "RDIIDtFRCSec" + RDIIDtSRCHour = "RDIIDtSRCHour" + DtWetPeriodSec = "DtWetPeriodSec" + DtDryPeriodSec = "DtDryPeriodSec" + RROutputNo = "RROutputNo" + RRFolderPath = "RRFolderPath" + RRName = "RRName" + DtFixedSec = "DtFixedSec" + +class RSFields(): + ModelTypeNo = "ModelTypeNo" + ContentTypeNo = "ContentTypeNo" + FormatNo = "FormatNo" + DefaultNo = "DefaultNo" + +class RSSFields(): + ResultSpecID = "ResultSpecID" + SelectionNo = "SelectionNo" + SubsetNo = "SubsetNo" + IndividualNo = "IndividualNo" + SelectionListID = "SelectionListID" + ElementID = "ElementID" + GridPointNo = "GridPointNo" + Chainage = "Chainage" + InterpolationTypeNo = "InterpolationTypeNo" + GridPointWettingNo = "GridPointWettingNo" + CellSize = "CellSize" + Rotation = "Rotation" + ExtentDef = "ExtentDef" + LowerLeftX = "LowerLeftX" + LowerLeftY = "LowerLeftY" + LengthX = "LengthX" + LengthY = "LengthY" + NoCellsX = "NoCellsX" + NoCellsY = "NoCellsY" + WQComponentID = "WQComponentID" + ItemNo = "ItemNo" + TypeNo = "TypeNo" + DrawOnMap = "DrawOnMap" + FormatNo = "FormatNo" + FormatDelimiter = "FormatDelimiter" + FormatColumnWidth = "FormatColumnWidth" + FormatDecimalNum = "FormatDecimalNum" + FormatMaxNo = "FormatMaxNo" + FormatTimeMaxNo = "FormatTimeMaxNo" + FormatMinNo = "FormatMinNo" + FormatTimeMinNo = "FormatTimeMinNo" + +class RSSItemFields(): + SelectionID = "SelectionID" + GroupNo = "GroupNo" + ItemNo = "ItemNo" + ItemText = "ItemText" + ItemParam = "ItemParam" + +class RSSGeomFields(): + SelectionID = "SelectionID" + X = "X" + Y = "Y" + ElemID = "ElemID" + +class RSSDemFields(): + FileName = "FileName" + ItemID = "ItemID" + ItemNo = "ItemNo" + +class RSSFormatGeometryFields(): + SelectionID = "SelectionID" + LinkID = "LinkID" + UpStreamChainage = "UpStreamChainage" + DownStreamChainage = "DownStreamChainage" + +class RTCActionFields(): + ControlTypeNo = "ControlTypeNo" + StartLevel = "StartLevel" + StopLevel = "StopLevel" + PID = "PID" + PIDInput = "PIDInput" + PIDSetPoint = "PIDSetPoint" + PumpDischarge = "PumpDischarge" + WeirLevel = "WeirLevel" + GatePosition = "GatePosition" + ValveOpening = "ValveOpening" + TSFilePath1 = "TSFilePath1" + TSItemName1 = "TSItemName1" + TSFilePath2 = "TSFilePath2" + TSItemName2 = "TSItemName2" + StructureTypeNo = "StructureTypeNo" + ActionTypeNo = "ActionTypeNo" + Value = "Value" + TSFileName = "TSFileName" + TSItemID = "TSItemID" + ScaleFactor = "ScaleFactor" + TableInput = "TableInput" + TableInputY = "TableInputY" + TableID = "TableID" + TableTypeNo = "TableTypeNo" + YearlyVarNo = "YearlyVarNo" + SetPointSourceTypeNo = "SetPointSourceTypeNo" + SetPointFileName = "SetPointFileName" + SetPointFileID = "SetPointFileID" + SetPointTableID = "SetPointTableID" + SetPointTableInput = "SetPointTableInput" + +class RTCFields(): + PumpID = "PumpID" + ApplyNo = "ApplyNo" + StructureTypeNo = "StructureTypeNo" + WeirID = "WeirID" + ValveID = "ValveID" + OrifriceGateID = "OrifriceGateID" + OrificeWeirID = "OrificeWeirID" + CulvertRiverID = "CulvertRiverID" + DirectDischargeRiverID = "DirectDischargeRiverID" + GateRiverID = "GateRiverID" + WeirRiverID = "WeirRiverID" + PumpRiverID = "PumpRiverID" + BridgeRiverID = "BridgeRiverID" + TabulatedID = "TabulatedID" + DambreakID = "DambreakID" + Description = "Description" + +class RTCPIDFields(): + PFactor = "PFactor" + ITime = "ITime" + DTime = "DTime" + Alpha1 = "Alpha1" + Alpha2 = "Alpha2" + Alpha3 = "Alpha3" + +class RTCRuleFields(): + RTCMUID = "RTCMUID" + Description = "Description" + Condition = "Condition" + ActionID = "ActionID" + BlockTime = "BlockTime" + ControlTypeNo = "ControlTypeNo" + StartLevel = "StartLevel" + StopLevel = "StopLevel" + PID = "PID" + PIDInput = "PIDInput" + PIDSetPoint = "PIDSetPoint" + WeirLevel = "WeirLevel" + GatePosition = "GatePosition" + ValveOpening = "ValveOpening" + TSFilePath1 = "TSFilePath1" + TSItemName1 = "TSItemName1" + TSFilePath2 = "TSFilePath2" + TSItemName2 = "TSItemName2" + +class RTCSensorFields(): + TypeNo = "TypeNo" + LocationNo = "LocationNo" + NodeLocationID = "NodeLocationID" + StorageLocationID = "StorageLocationID" + LinkLocationID = "LinkLocationID" + WeirLocationID = "WeirLocationID" + OrificeLocationID = "OrificeLocationID" + ValveLocationID = "ValveLocationID" + PumpLocationID = "PumpLocationID" + ComponentID = "ComponentID" + RuleID = "RuleID" + ActionID = "ActionID" + RiverStructureTypeNo = "RiverStructureTypeNo" + RiverStructureID = "RiverStructureID" + GateLocationID = "GateLocationID" + WeirRiverLocationID = "WeirRiverLocationID" + CulvertRiverLocationID = "CulvertRiverLocationID" + DambreakRiverLocationID = "DambreakRiverLocationID" + DirectDischargeRiverLocationID = "DirectDischargeRiverLocationID" + PumpRiverLocationID = "PumpRiverLocationID" + TabulatedRiverLocationID = "TabulatedRiverLocationID" + BridgeRiverLocationID = "BridgeRiverLocationID" + RiverLocationID = "RiverLocationID" + UpStreamChainage = "UpStreamChainage" + DownStreamChainage = "DownStreamChainage" + TSFileName = "TSFileName" + TSItemName = "TSItemName" + Chainage = "Chainage" + Description = "Description" + Expression = "Expression" + +class ScenarioGroupIds(): + CS_Network = "CS_Network" + CS_River = "CS_River" + Loads_Boundaries = "Loads_Boundaries" + Catchments = "Catchments" + CS_WQ = "CS_WQ" + CS_RTC_Data = "CS_RTC_Data" + CS_LTS_Data = "CS_LTS_Data" + CS_Profiles_Curves = "CS_Profiles_Curves" + CS_2D_Overland = "CS_2D_Overland" + WD_Network = "WD_Network" + Water_Demands = "Water_Demands" + WD_RTC_Data = "WD_RTC_Data" + WD_WQ = "WD_WQ" + WD_Patterns_Curves = "WD_Patterns_Curves" + WD_Online_Analysis = "WD_Online_Analysis" + SWMM_Network = "SWMM_Network" + SWMM_Control = "SWMM_Control" + SWMM_Loads_Boundaries = "SWMM_Loads_Boundaries" + SWMM_Profiles_Curves = "SWMM_Profiles_Curves" + SWMM_WQ = "SWMM_WQ" + +class SelectionTableFields(): + SelectionID = "SelectionID" + TableName = "TableName" + ItemMUID = "ItemMUID" + +class SHECouplingsFields(): + ApplyNo = "ApplyNo" + RiverID = "RiverID" + FromChainage = "FromChainage" + ToChainage = "ToChainage" + WeirCoef = "WeirCoef" + WeirExpCoeff = "WeirExpCoeff" + MinHeight = "MinHeight" + OverbankSpillNo = "OverbankSpillNo" + MinFlowArea = "MinFlowArea" + ConductanceNo = "ConductanceNo" + LeakageCoef = "LeakageCoef" + LineResExcNo = "LineResExcNo" + FloodAreaNo = "FloodAreaNo" + FloodCode = "FloodCode" + BedTopoNo = "BedTopoNo" + BedLeakageNo = "BedLeakageNo" + TypeNo = "TypeNo" + LinkID = "LinkID" + NodeID = "NodeID" + CoupleToOverlandFlowNo = "CoupleToOverlandFlowNo" + ExchangeCoeff = "ExchangeCoeff" + ExchangeExponent = "ExchangeExponent" + CoupleToDrainageNo = "CoupleToDrainageNo" + GridCode = "GridCode" + CoupleToSaturatedZoneDrainageNo = "CoupleToSaturatedZoneDrainageNo" + NetworkGridCode = "NetworkGridCode" + CoupleToSaturatedZoneNo = "CoupleToSaturatedZoneNo" + ExchangeTypeNo = "ExchangeTypeNo" + GroutingCoeff = "GroutingCoeff" + GroutingThickness = "GroutingThickness" + +class SimProjectFields(): + TypeNo = "ComputationTypeNo" + ComputationBegin = "ComputationBegin" + ComputationEnd = "ComputationEnd" + +class STAdvFracGrainLocalFields(): + STFracID = "STFracID" + GrainSize = "GrainSize" + TypeNo = "TypeNo" + ListID = "ListID" + LinkID = "LinkID" + LinkNo = "LinkNo" + Chainage = "Chainage" + +class STAdvFracSusLocalFields(): + STFracID = "STFracID" + LinkID = "LinkID" + LinkNo = "LinkNo" + Chainage = "Chainage" + ErStress = "ErStress" + ErCoef = "ErCoef" + DepStress = "DepStress" + +class STAdvFractionFields(): + SedTypeNo = "SedTypeNo" + Porosity = "Porosity" + RelDensity = "RelDensity" + Shields = "Shields" + FallDefNo = "FallDefNo" + FallVal = "FallVal" + DefaultSize = "DefaultSize" + IncludeTypeNo = "IncludeTypeNo" + BedModelNo = "BedModelNo" + BedFactor = "BedFactor" + BedD90d30 = "BedD90d30" + BedAngle = "BedAngle" + BedSlopeNo = "BedSlopeNo" + BedShieldsNo = "BedShieldsNo" + Beda1 = "Beda1" + Beda2 = "Beda2" + Beda3 = "Beda3" + Beda4 = "Beda4" + Beda5 = "Beda5" + Beda6 = "Beda6" + Beda7 = "Beda7" + Beda8 = "Beda8" + SusModelNo = "SusModelNo" + SusFactor = "SusFactor" + SusD90d30 = "SusD90d30" + SusAngle = "SusAngle" + SusSlopeNo = "SusSlopeNo" + SusShieldsNo = "SusShieldsNo" + Susa1 = "Susa1" + Susa2 = "Susa2" + Susa3 = "Susa3" + Susa4 = "Susa4" + Susa5 = "Susa5" + Susa6 = "Susa6" + Susa7 = "Susa7" + Susa8 = "Susa8" + CohExp = "CohExp" + CohErShear = "CohErShear" + CohErCoef = "CohErCoef" + CohDepShear = "CohDepShear" + +class StationConnectFields(): + StationID = "StationID" + LocationID = "LocationID" + LocationTypeNo = "LocationTypeNo" + +class StationFields(): + LocationType = "LocationType" + LocationID = "LocationID" + Chainage = "Chainage" + ChainageValue = "ChainageValue" + BottomLevel = "BottomLevel" + DataSource = "DataSource" + AssetName = "AssetName" + SubModelNo = "SubModelNo" + Description = "Description" + Element_S = "Element_S" + NetTypeNo = "NetTypeNo" + +class StatusCodesFields(): + StatusCodeTypeNo = "StatusCodeTypeNo" + StatusCodeNo = "StatusCodeNo" + StatusCodeName = "StatusCodeName" + +class StatusFields(): + TableName = "TableName" + FieldName = "FieldName" + ItemMUID = "ItemMUID" + StatusText = "StatusText" + +class STFields(): + AnalysisNo = "AnalysisNo" + ModelTypeNo = "ModelTypeNo" + DensityFricSedi = "DensityFricSedi" + STPorosity = "STPorosity" + IniManningTypeNo = "IniManningTypeNo" + IniManning = "IniManning" + IniSediDepth = "IniSediDepth" + NbFractions = "NbFractions" + IncludeMorphUpdate = "IncludeMorphUpdate" + KinViscosity = "KinViscosity" + d90d50 = "d90d50" + MaxErosionConc = "MaxErosionConc" + SkinFrictModelNo = "SkinFrictModelNo" + UseEgiazaroff = "UseEgiazaroff" + LimitPassiveDepthNo = "LimitPassiveDepthNo" + PassiveDepth = "PassiveDepth" + +class STFractionFields(): + TransportTypeNo = "TransportTypeNo" + GrainSize = "GrainSize" + FallVelModeNo = "FallVelModeNo" + FallVelocity = "FallVelocity" + ErodabilityCoef = "ErodabilityCoef" + CritTauDepo = "CritTauDepo" + CritTauEro = "CritTauEro" + +class STInitDepthFractDefaultFields(): + TypeNo = "TypeNo" + FractionID = "FractionID" + FracPercentActive = "FracPercentActive" + FracPercentPassive = "FracPercentPassive" + +class STInitDepthFractLocalFields(): + STInitDepthID = "STInitDepthID" + FractionID = "FractionID" + FracPercentActive = "FracPercentActive" + FracPercentPassive = "FracPercentPassive" + +class STInitDepthLocalFields(): + ConnectionTypeNo = "ConnectionTypeNo" + LinkID = "LinkID" + ListName = "ListName" + Chainage = "Chainage" + LocSediDepth = "LocSediDepth" + LocPassiveDepth = "LocPassiveDepth" + LinkNo = "LinkNo" + +class StorageFields(): + Enabled = "Enabled" + StorageTypeNo = "StorageTypeNo" + BottomArea = "BottomArea" + GeomTableID = "GeomTableID" + +class STPipesRoughnessLocalFields(): + ConnectionTypeNo = "ConnectionTypeNo" + LinkID = "LinkID" + ListName = "ListName" + LocIniManningTypeNo = "LocIniManningTypeNo" + LocIniManning = "LocIniManning" + +class STRemovalBasinFields(): + NodeID = "NodeID" + RemovalCoef = "RemovalCoef" + +class STRemovalWeirFields(): + MethodTypeNo = "MethodTypeNo" + WeirID = "WeirID" + EfficiencyFunctionID = "EfficiencyFunctionID" + EfficiencyFac = "EfficiencyFac" + +class SWQPollutantFields(): + MethodNo = "MethodNo" + ComponentID = "ComponentID" + SedimentAttachNo = "SedimentAttachNo" + TypeNo = "TypeNo" + BuildUpRate = "BuildUpRate" + MaxBuildUp = "MaxBuildUp" + BuildUpTypeNo = "BuildUpTypeNo" + DetachRate = "DetachRate" + WashOffExp = "WashOffExp" + MaxEMC = "MaxEMC" + +class SWQAttachedPollutantFields(): + SWQID = "SWQID" + PollutantID = "PollutantID" + PSRatio = "PSRatio" + +class SWQGlobalDataFields(): + ADWPini = "ADWPini" + ADWPmin = "ADWPmin" + EventThreshold = "EventThreshold" + +class TabDFields(): + TabID = "TabID" + Value1 = "Value1" + Value2 = "Value2" + Value3 = "Value3" + Value4 = "Value4" + DateTime = "DateTime" + DerivedValue = "DerivedValue" + +class DynGridTableFields(): + MasterID = "MasterID" + RowSqn = "RowSqn" + ColSqn = "ColSqn" + RowHeaderValue = "RowHeaderValue" + ColHeaderValue = "ColHeaderValue" + CellValue = "CellValue" + +class TabFields(): + TypeNo = "TypeNo" + Description = "Description" + +class Tab2DFields(): + TypeNo = "TypeNo" + Description = "Description" + +class ValveFields(): + TypeNo = "TypeNo" + MethodNo = "MethodNo" + InvertLevel = "InvertLevel" + Diameter = "Diameter" + ControlTypeNo = "ControlTypeNo" + Area = "Area" + Opening = "Opening" + FlapNo = "FlapNo" + RatingCurveID = "RatingCurveID" + MaxValveOpening = "MaxValveOpening" + MinValveOpening = "MinValveOpening" + MaxValveSpeed = "MaxValveSpeed" + +class WeirFields(): + Coeff = "Coeff" + CrestLevel = "CrestLevel" + CrestWidth = "CrestWidth" + TypeNo = "TypeNo" + FlapNo = "FlapNo" + MethodNo = "MethodNo" + AngleNo = "AngleNo" + SHAPE_Length = "SHAPE_Length" + QHID = "QHID" + WeirCrestID = "WeirCrestID" + ControlTypeNo = "ControlTypeNo" + MaxCrestLevel = "MaxCrestLevel" + MinCrestLevel = "MinCrestLevel" + MaxCrestLevelIncreaseSpeed = "MaxCrestLevelIncreaseSpeed" + MaxCrestLevelDecreaseSpeed = "MaxCrestLevelDecreaseSpeed" + InitialLevel = "InitialLevel" + +class WQBoundaryPropertiesFields(): + Enabled = "Enabled" + Muid = "Muid" + WQBoundaryTypeNo = "WQBoundaryTypeNo" + BoundaryID = "BoundaryID" + TrapComponentID = "TrapComponentID" + TrapFractionID = "TrapFractionID" + VariationNo = "VariationNo" + ConstantValue = "ConstantValue" + StartupNo = "StartupNo" + StartupValue = "StartupValue" + StartupTime = "StartupTime" + CyclicValue = "CyclicValue" + DPProfileID = "DPProfileID" + TSConnection = "TSConnection" + TimeseriesName = "TimeseriesName" + DataTypeName = "DataTypeName" + Fraction = "Fraction" + SWQ_TableID = "SWQ_TableID" + SWQ_SetupID = "SWQ_SetupID" + Description = "Description" + Unit = "Unit" + THalving = "THalving" + +class Fields(): + _2DBedResistanceFields = _2DBedResistanceFields() + _2DBoundaryFields = _2DBoundaryFields() + _2DInitialConditionFields = _2DInitialConditionFields() + _2DOverlandFields = _2DOverlandFields() + ADComponentFields = ADComponentFields() + ADComponentIniFields = ADComponentIniFields() + ADDecayFields = ADDecayFields() + ADDispersionFields = ADDispersionFields() + ADDispersionLocalFields = ADDispersionLocalFields() + BBoundaryFields = BBoundaryFields() + BGridRainWeightsFields = BGridRainWeightsFields() + BookmarkFields = BookmarkFields() + CatchConFields = CatchConFields() + CatchmentFields = CatchmentFields() + ChartBookmarkFields = ChartBookmarkFields() + ConfigurationFields = ConfigurationFields() + CofigurationMuids = CofigurationMuids() + CRSDFields = CRSDFields() + CRSFields = CRSFields() + CulvertFields = CulvertFields() + CulvertGeomFields = CulvertGeomFields() + CulvertHDParamFields = CulvertHDParamFields() + CulvertOrificeFlowCoeffFields = CulvertOrificeFlowCoeffFields() + CulvertQhFlowFields = CulvertQhFlowFields() + CurbInletFields = CurbInletFields() + CustomUnitFields = CustomUnitFields() + DAGeneralParaFields = DAGeneralParaFields() + DAPerturbationsParamFields = DAPerturbationsParamFields() + DAUpdateParamFields = DAUpdateParamFields() + DbTableNames = DbTableNames() + InMemObjIDs = InMemObjIDs() + DefaultValueFields = DefaultValueFields() + UserDefinedColumnFields = UserDefinedColumnFields() + DescriptionFieldBase = DescriptionFieldBase() + DPPatternDFields = DPPatternDFields() + DPPatternFields = DPPatternFields() + DPProfileDFields = DPProfileDFields() + DPProfileFields = DPProfileFields() + DPScheduleFields = DPScheduleFields() + DPSpecDayFields = DPSpecDayFields() + ECOLABCoeffFields = ECOLABCoeffFields() + ECOLABCoeffLocalFields = ECOLABCoeffLocalFields() + ECOLABComponentFields = ECOLABComponentFields() + ECOLABForcingFields = ECOLABForcingFields() + ECOLABOutputFields = ECOLABOutputFields() + ECOLABTemplateFields = ECOLABTemplateFields() + FieldNameBase = FieldNameBase() + GeomFieldName = GeomFieldName() + SqnFieldBase = SqnFieldBase() + PfsFieldBase = PfsFieldBase() + GenericFieldName = GenericFieldName() + GlobalFields = GlobalFields() + CustomDomainFilter = CustomDomainFilter() + FakeFieldName = FakeFieldName() + HDInitialConditionFields = HDInitialConditionFields() + HDInitialConditionHotstartFileFields = HDInitialConditionHotstartFileFields() + HDInitialConditionLocalFields = HDInitialConditionLocalFields() + HDProjectFields = HDProjectFields() + HParAFields = HParAFields() + HParAutoCaliRDIIFields = HParAutoCaliRDIIFields() + HParBFields = HParBFields() + HParCFields = HParCFields() + HParRdiiFields = HParRdiiFields() + HtmlSummaryFields = HtmlSummaryFields() + JunctionFields = JunctionFields() + LIDcontrolFields = LIDcontrolFields() + LIDRemovalFields = LIDRemovalFields() + LIDusageFields = LIDusageFields() + LinkBaseFields = LinkBaseFields() + LinkFields = LinkFields() + LoadPointConnFields = LoadPointConnFields() + LoadPointFields = LoadPointFields() + LogicTableNames = LogicTableNames() + LossParFields = LossParFields() + LTSDwfTsFields = LTSDwfTsFields() + LTSInitFields = LTSInitFields() + LTSInitOFields = LTSInitOFields() + LTSJobListCriteriaFields = LTSJobListCriteriaFields() + LTSResultFields = LTSResultFields() + LTSResultLocalFields = LTSResultLocalFields() + LTSRunMFields = LTSRunMFields() + LTSRunSFields = LTSRunSFields() + m2d_ADDecayFields = m2d_ADDecayFields() + m2d_ADDispersionDFields = m2d_ADDispersionDFields() + m2d_ADDispersionFields = m2d_ADDispersionFields() + m2d_ADEvaporationDFields = m2d_ADEvaporationDFields() + m2d_ADEvaporationFields = m2d_ADEvaporationFields() + m2d_ADInfiltrationDFields = m2d_ADInfiltrationDFields() + m2d_ADInfiltrationFields = m2d_ADInfiltrationFields() + m2d_ADInitalConditionDFields = m2d_ADInitalConditionDFields() + m2d_ADInitalConditionFields = m2d_ADInitalConditionFields() + m2d_ADPrecipitationDFields = m2d_ADPrecipitationDFields() + m2d_ADPrecipitationFields = m2d_ADPrecipitationFields() + m2d_BndDistributedSourceFields = m2d_BndDistributedSourceFields() + m2d_BndQhRelationFields = m2d_BndQhRelationFields() + m2d_BoundaryFields = m2d_BoundaryFields() + m2d_BoundaryMuid = m2d_BoundaryMuid() + m2d_CouplingConnFields = m2d_CouplingConnFields() + m2d_CouplingFields = m2d_CouplingFields() + m2d_EddyViscosityAreaFields = m2d_EddyViscosityAreaFields() + m2d_GlobalSettingFields = m2d_GlobalSettingFields() + m_GlobalParameterFields = m_GlobalParameterFields() + m2d_GridDefinitionFields = m2d_GridDefinitionFields() + m2d_GridInactiveAreaFields = m2d_GridInactiveAreaFields() + m2d_InfiltrationFields = m2d_InfiltrationFields() + m2d_InfiltrationLandCoverFields = m2d_InfiltrationLandCoverFields() + m2d_InfBuildingFields = m2d_InfBuildingFields() + m2d_InfRoadFields = m2d_InfRoadFields() + m2d_InitialConditionAreaFields = m2d_InitialConditionAreaFields() + m2d_MeshArcFields = m2d_MeshArcFields() + m2d_MeshLocalAreaFields = m2d_MeshLocalAreaFields() + m2d_StructureCulvertDFields = m2d_StructureCulvertDFields() + m2d_StructureCulvertFields = m2d_StructureCulvertFields() + m2d_StructureDikeFields = m2d_StructureDikeFields() + m2d_StructureWeirDFields = m2d_StructureWeirDFields() + m2d_StructureWeirFields = m2d_StructureWeirFields() + m2d_SurfaceRoughnessAreaFields = m2d_SurfaceRoughnessAreaFields() + m2d_SurfaceRoughnessValueFields = m2d_SurfaceRoughnessValueFields() + m2d_WQBoundaryFields = m2d_WQBoundaryFields() + MaterialFields = MaterialFields() + MeasurementFields = MeasurementFields() + MediaFields = MediaFields() + mrm_BranchConnFields = mrm_BranchConnFields() + mrm_BranchFields = mrm_BranchFields() + mrm_BranchRoughnessLocalFields = mrm_BranchRoughnessLocalFields() + mrm_BridgeCrsFields = mrm_BridgeCrsFields() + mrm_BridgeFields = mrm_BridgeFields() + mrm_BridgeOpeningFields = mrm_BridgeOpeningFields() + mrm_DAErrorForecastEquationsFields = mrm_DAErrorForecastEquationsFields() + mrm_DAErrorForecastParaFields = mrm_DAErrorForecastParaFields() + mrm_DambreakFields = mrm_DambreakFields() + mrm_DAStandardDeviationFields = mrm_DAStandardDeviationFields() + mrm_DirectDischargeFields = mrm_DirectDischargeFields() + mrm_EnergyLossFields = mrm_EnergyLossFields() + mrm_GateFields = mrm_GateFields() + mrm_GroundwaterLeakageLocalFields = mrm_GroundwaterLeakageLocalFields() + mrm_PassiveLinkFields = mrm_PassiveLinkFields() + mrm_PumpFields = mrm_PumpFields() + mrm_RiverRoutingMethodFields = mrm_RiverRoutingMethodFields() + mrm_RoughnessFactorFields = mrm_RoughnessFactorFields() + mrm_STInitConcentratDefaultFields = mrm_STInitConcentratDefaultFields() + mrm_STInitConcentratLocalFields = mrm_STInitConcentratLocalFields() + mrm_STLocalBedParMorphFields = mrm_STLocalBedParMorphFields() + mrm_STLocalBedParThicklFields = mrm_STLocalBedParThicklFields() + mrm_STNonScrLocalBedLevelFields = mrm_STNonScrLocalBedLevelFields() + mrm_TabulatedFields = mrm_TabulatedFields() + mrm_UserDefinedChainageFields = mrm_UserDefinedChainageFields() + mrm_WindScaleFactorLocalFields = mrm_WindScaleFactorLocalFields() + mrm_ZoneSeparatorLocalFields = mrm_ZoneSeparatorLocalFields() + msm_ADInitialConditionDefaultFields = msm_ADInitialConditionDefaultFields() + msm_ADInitialConditionFields = msm_ADInitialConditionFields() + msm_ADInitialConditionHotstartFileFields = msm_ADInitialConditionHotstartFileFields() + msm_ADInitialConditionLocalFields = msm_ADInitialConditionLocalFields() + msm_ADInitialConditionLocalValueFields = msm_ADInitialConditionLocalValueFields() + msm_AlarmLevelDFields = msm_AlarmLevelDFields() + msm_AlarmLevelFields = msm_AlarmLevelFields() + msm_CatchLandUseFields = msm_CatchLandUseFields() + msm_HDaddPercentFields = msm_HDaddPercentFields() + msm_HParRdiiElevZonesFields = msm_HParRdiiElevZonesFields() + msm_HParSeasonalVariationFields = msm_HParSeasonalVariationFields() + msm_LandUseFields = msm_LandUseFields() + msm_PumpESEDFields = msm_PumpESEDFields() + msm_PumpESEFields = msm_PumpESEFields() + msm_RRaddPercentFields = msm_RRaddPercentFields() + mss_AdjustmentFields = mss_AdjustmentFields() + mss_AquiferFields = mss_AquiferFields() + mss_BuildupFields = mss_BuildupFields() + Mss_CatchConFields = Mss_CatchConFields() + mss_CoverageFields = mss_CoverageFields() + mss_DWFDFields = mss_DWFDFields() + mss_DWFFields = mss_DWFFields() + mss_EvaporationFields = mss_EvaporationFields() + mss_GroundwaterFields = mss_GroundwaterFields() + mss_HydrographDFields = mss_HydrographDFields() + mss_HydrographFields = mss_HydrographFields() + mss_InflowDFields = mss_InflowDFields() + mss_InflowFields = mss_InflowFields() + mss_LanduseFields = mss_LanduseFields() + mss_LIDControlDFields = mss_LIDControlDFields() + mss_LIDControlFields = mss_LIDControlFields() + mss_LIDusageFields = mss_LIDusageFields() + mss_LinkFields = mss_LinkFields() + mss_LoadingFields = mss_LoadingFields() + mss_LocalTreatmentFields = mss_LocalTreatmentFields() + mss_NodeFields = mss_NodeFields() + mss_OrificeFields = mss_OrificeFields() + mss_OutletFields = mss_OutletFields() + mss_PatternFields = mss_PatternFields() + mss_PollutantFields = mss_PollutantFields() + mss_ProjectFields = mss_ProjectFields() + mss_PumpFields = mss_PumpFields() + mss_RaingaugeFields = mss_RaingaugeFields() + mss_RDIIFields = mss_RDIIFields() + mss_RuleFields = mss_RuleFields() + mss_SnowPackFields = mss_SnowPackFields() + mss_TabDFields = mss_TabDFields() + mss_TabFields = mss_TabFields() + mss_TemperatureFields = mss_TemperatureFields() + mss_TimeseriesDFields = mss_TimeseriesDFields() + mss_TimeseriesFields = mss_TimeseriesFields() + mss_TransectCoordFields = mss_TransectCoordFields() + mss_TransectDFields = mss_TransectDFields() + mss_TransectFields = mss_TransectFields() + mss_WashoffFields = mss_WashoffFields() + mss_WeirFields = mss_WeirFields() + ms_SimpMappingFields = ms_SimpMappingFields() + ms_SimpSettingFields = ms_SimpSettingFields() + ModelSettingFields = ModelSettingFields() + ModuleActiveFields = ModuleActiveFields() + ModelSettingMuid = ModelSettingMuid() + MuQuantities = MuQuantities() + mwRes_ValveCriticalityFields = mwRes_ValveCriticalityFields() + mw_AirChamberFields = mw_AirChamberFields() + mw_AutocalibrationFields = mw_AutocalibrationFields() + mw_AutocaliClosedLinksFields = mw_AutocaliClosedLinksFields() + mw_AutocaliLeaksFields = mw_AutocaliLeaksFields() + mw_AutocaliNodeDemandsFields = mw_AutocaliNodeDemandsFields() + mw_AutocaliPipesFrictFields = mw_AutocaliPipesFrictFields() + mw_AutocaliTargetsFields = mw_AutocaliTargetsFields() + mw_ControlFields = mw_ControlFields() + mw_CurveDFields = mw_CurveDFields() + mw_CurveFields = mw_CurveFields() + mw_DemAllocConnFields = mw_DemAllocConnFields() + mw_DemAllocFields = mw_DemAllocFields() + mw_DemStatConfigFields = mw_DemStatConfigFields() + mw_DemStatFields = mw_DemStatFields() + mw_EnergyFields = mw_EnergyFields() + mw_EPAMSXFields = mw_EPAMSXFields() + mw_FireFlowFields = mw_FireFlowFields() + mw_FlsuhingFields = mw_FlsuhingFields() + mw_FlushingOutletFields = mw_FlushingOutletFields() + mw_FrictionFields = mw_FrictionFields() + mw_LossFields = mw_LossFields() + mw_MDemandFields = mw_MDemandFields() + mw_OptimizationControlFields = mw_OptimizationControlFields() + mw_OptimizationFields = mw_OptimizationFields() + mw_OptimizationTargetFields = mw_OptimizationTargetFields() + mw_OptimizationTargetWBFields = mw_OptimizationTargetWBFields() + mw_PipeRelFields = mw_PipeRelFields() + mw_PPatternDFields = mw_PPatternDFields() + mw_PPatternFields = mw_PPatternFields() + mw_ProjectFields = mw_ProjectFields() + mw_PumpFields = mw_PumpFields() + mw_PumpStationConnFields = mw_PumpStationConnFields() + mw_PumpStationFields = mw_PumpStationFields() + mw_QualityFields = mw_QualityFields() + mw_ReliabilityFields = mw_ReliabilityFields() + mw_ReliabilityLocalFields = mw_ReliabilityLocalFields() + mw_ResSustainabilityLinkFields = mw_ResSustainabilityLinkFields() + mw_ResSustainabilityNodeFields = mw_ResSustainabilityNodeFields() + mw_RTCFields = mw_RTCFields() + mw_RuleFields = mw_RuleFields() + mw_ShutdownPlanningFields = mw_ShutdownPlanningFields() + mw_ShutdownValveFields = mw_ShutdownValveFields() + mw_SourceFields = mw_SourceFields() + mw_SpecDayFields = mw_SpecDayFields() + mw_TankFields = mw_TankFields() + mw_TraceNodeFields = mw_TraceNodeFields() + mw_TurbineFields = mw_TurbineFields() + mw_ValveFields = mw_ValveFields() + mw_WDOComparisonsFields = mw_WDOComparisonsFields() + mw_WDOControlsFields = mw_WDOControlsFields() + mw_WDODemandPredictionsFields = mw_WDODemandPredictionsFields() + mw_WDODemandZonesFields = mw_WDODemandZonesFields() + mw_WDOSensorsFields = mw_WDOSensorsFields() + mw_WDOSettingsFields = mw_WDOSettingsFields() + mw_WH_BoundaryFields = mw_WH_BoundaryFields() + mw_ZoneDefFields = mw_ZoneDefFields() + mw_ZoneWBFields = mw_ZoneWBFields() + m_CustomConfigFields = m_CustomConfigFields() + NodeFields = NodeFields() + OnGradeDFields = OnGradeDFields() + OrificeFields = OrificeFields() + PfsKeywordFields = PfsKeywordFields() + PfsParamFields = PfsParamFields() + PfsSectionFields = PfsSectionFields() + PipeFields = PipeFields() + ProcessedCRSDFields = ProcessedCRSDFields() + ProjectFields = ProjectFields() + ProjectOutputFields = ProjectOutputFields() + PumpFields = PumpFields() + ResultSelectionQuantityFields = ResultSelectionQuantityFields() + RiverWeirFields = RiverWeirFields() + RiverWeirGeomFields = RiverWeirGeomFields() + RiverWeirQhRelationFields = RiverWeirQhRelationFields() + RRProjectFields = RRProjectFields() + RSFields = RSFields() + RSSFields = RSSFields() + RSSItemFields = RSSItemFields() + RSSGeomFields = RSSGeomFields() + RSSDemFields = RSSDemFields() + RSSFormatGeometryFields = RSSFormatGeometryFields() + RTCActionFields = RTCActionFields() + RTCFields = RTCFields() + RTCPIDFields = RTCPIDFields() + RTCRuleFields = RTCRuleFields() + RTCSensorFields = RTCSensorFields() + ScenarioGroupIds = ScenarioGroupIds() + SelectionTableFields = SelectionTableFields() + SHECouplingsFields = SHECouplingsFields() + SimProjectFields = SimProjectFields() + STAdvFracGrainLocalFields = STAdvFracGrainLocalFields() + STAdvFracSusLocalFields = STAdvFracSusLocalFields() + STAdvFractionFields = STAdvFractionFields() + StationConnectFields = StationConnectFields() + StationFields = StationFields() + StatusCodesFields = StatusCodesFields() + StatusFields = StatusFields() + STFields = STFields() + STFractionFields = STFractionFields() + STInitDepthFractDefaultFields = STInitDepthFractDefaultFields() + STInitDepthFractLocalFields = STInitDepthFractLocalFields() + STInitDepthLocalFields = STInitDepthLocalFields() + StorageFields = StorageFields() + STPipesRoughnessLocalFields = STPipesRoughnessLocalFields() + STRemovalBasinFields = STRemovalBasinFields() + STRemovalWeirFields = STRemovalWeirFields() + SWQPollutantFields = SWQPollutantFields() + SWQAttachedPollutantFields = SWQAttachedPollutantFields() + SWQGlobalDataFields = SWQGlobalDataFields() + TabDFields = TabDFields() + DynGridTableFields = DynGridTableFields() + TabFields = TabFields() + Tab2DFields = Tab2DFields() + ValveFields = ValveFields() + WeirFields = WeirFields() + WQBoundaryPropertiesFields = WQBoundaryPropertiesFields() + diff --git a/mikeplus/fieldTableNames/tableNames.py b/mikeplus/fieldTableNames/tableNames.py new file mode 100644 index 0000000..069e9e0 --- /dev/null +++ b/mikeplus/fieldTableNames/tableNames.py @@ -0,0 +1,319 @@ +class CommonTabNames(): + ModelSettingTable = "m_ModelSetting" + MGlobalParameterTable = "m_GlobalParameter" + MPluginSitesTable = "m_PluginSites" + StatusTable = "m_Status" + DefaultValueTable = "m_DefaultValue" + UserDefinedColumnTable = "m_UserDefinedColumn" + MediaTable = "m_Media" + SelectionTable = "m_Selection" + BookmarkTable = "m_Bookmark" + ChartBookmarkTable = "m_ChartBookmark" + ConfigTable = "m_Configuration" + CustomUnitTable = "m_CustomUnit" + ScenarioTable = "m_ScenarioManagementScenario" + AlternativeTable = "m_ScenarioManagementAlternative" + MeasurementTable = "m_Measurement" + StationTable = "m_Station" + StationConnTable = "m_StationCon" + StatusCodeTable = "m_StatusCode" + MCustomConfigTable = "m_CustomConfig" + +class CSTabNames(): + NodeTable = "msm_Node" + LinkTable = "msm_Link" + CatchmentTable = "msm_Catchment" + CatchConTable = "msm_CatchCon" + TabTable = "ms_Tab" + TabDTable = "ms_TabD" + Tab2DTable = "ms_2DTab" + CRSTable = "ms_CRS" + CRSDTable = "ms_CRSD" + ProcessedCRSDTable = "ms_ProcessedCRSD" + TopoTable = "ms_Topo" + TopoDTable = "ms_TopoD" + MaterialTable = "ms_Material" + LossParTable = "msm_LossPar" + CurbInletTable = "msm_CurbInlet" + PumpTable = "msm_Pump" + WeirTable = "msm_Weir" + LoadPointTable = "msm_LoadPoint" + LoadPointConnTable = "msm_LoadPointConnection" + BBoundaryTable = "msm_BBoundary" + BndGridRainWeight = "msm_BndGridRainWeights" + WQBoundaryProperties = "msm_WQBoundaryProperties" + BItemTable = "msm_BItem" + ValveTable = "msm_Valve" + OrificeTable = "msm_Orifice" + HParATable = "msm_HParA" + HParBTable = "msm_HParB" + HParCTable = "msm_HParC" + HParRdiiTable = "msm_HParRDII" + HParAutoCaliRDIITable = "msm_HParAutoCaliRDII" + HParRdiiElevZones = "msm_HParRdiiElevZones" + HParSeasonalVariation = "msm_HParSeasonalVariation" + DPProfileTable = "ms_DPProfile" + DPProfileDTable = "ms_DPProfileD" + DPPatternTable = "ms_DPPattern" + DPPatternDTable = "ms_DPPatternD" + DPScheduleTable = "ms_DPSchedule" + DPSpecDayTable = "ms_DPSpecDay" + RTCTable = "msm_RTC" + RTCSensorTable = "msm_RTCSensor" + RTCRuleTable = "msm_RTCRule" + RTCActionTable = "msm_RTCAction" + RTCPIDTable = "msm_RTCPID" + RSTable = "msm_RS" + RSSTable = "msm_RSS" + RSSItemTable = "msm_RSSItem" + RSSGeomTable = "msm_RSSGeom" + RSSDemTable = "msm_RSSDem" + RSSFormatGeometryTable = "msm_RSSFormatGeometry" + RRProjectTable = "msm_RRProject" + HDProjectTable = "msm_HDProject" + ADComponentTable = "msm_ADComponent" + ADComponentIniTable = "msm_ADComponentIni" + ADDecayTable = "msm_ADDecay" + ADInitialConditionTable = "msm_ADInitialCondition" + ADInitialConditionDefaultTable = "msm_ADInitialConditionDefault" + ADInitialConditionLocalTable = "msm_ADInitialConditionLocal" + ADInitialConditionLocalValueTable = "msm_ADInitialConditionLocalValue" + ADInitialConditionHotstartFileTable = "msm_ADInitialConditionHotstartFile" + ADDispersionTable = "msm_ADDispersion" + ADDispersionLocalTable = "msm_ADDispersionLocal" + LTSRunMTable = "msm_LTSRunM" + LTSRunSTable = "msm_LTSRunS" + LTSDwfTsTable = "msm_LTSDwfTs" + LTSInitTable = "msm_LTSInit" + LTSInitOTable = "msm_LTSInito" + LTSJobListCriteriaTable = "msm_LTSJobListCriteria" + LTSJobStopTable = "msm_LTSJobStop" + LTSResultTable = "msm_LTSResult" + LTSResultLocalTable = "msm_LTSResultLocal" + LIDControlTable = "msm_LIDcontrol" + LIDUsageTable = "msm_LIDusage" + LIDRemovalTable = "msm_LIDRemoval" + ECOLABCoeffTable = "msm_ECOLABCoeff" + ECOLABCoeffLocalTable = "msm_ECOLABCoeffLocal" + ECOLABForcingTable = "msm_ECOLABForcing" + ECOLABTemplateTable = "msm_ECOLABTemplate" + ECOLABComponentTable = "msm_ECOLABComponent" + ECOLABOutputTable = "msm_ECOLABOutput" + ResultSelectionQuantityTable = "msm_ResultSelectionQuantity" + CulvertTable = "msm_Culvert" + CulvertGeomTable = "msm_CulvertGeom" + CulvertHDParamTable = "msm_CulvertHDParam" + CulvertOrificeFlowCoeffTable = "msm_CulvertOrificeFlowCoeff" + CulvertQhFlowTable = "msm_CulvertQHFlow" + HtmlSummaryTable = "msm_HtmlSummary" + SWQPollutantTable = "msm_SWQPollutant" + SWQGlobalDataTable = "msm_SWQGlobalData" + SWQAttachedPollutantTable = "msm_SWQAttachedPollutant" + OnGradeTable = "msm_OnGrade" + OnGradeDTable = "msm_OnGradeD" + STTable = "msm_ST" + STFractionTable = "msm_STFraction" + STInitDepthLocalTable = "msm_STInitDepthLocal" + STInitDepthFractDefaultTable = "msm_STInitDepthFractDefault" + STInitDepthFractLocalTable = "msm_STInitDepthFractLocal" + STPipesRoughnessLocalTable = "msm_STPipesRoughnessLocal" + STRemovalBasinTable = "msm_STRemovalBasin" + STRemovalWeirTable = "msm_STRemovalWeir" + ProjectTable = "msm_Project" + ProjectOutputTable = "msm_ProjectOutput" + HDInitialConditionTable = "msm_HDInitialCondition" + HDInitialConditionLocalTable = "msm_HDInitialConditionLocal" + HDInitialConditionHotstartFileTable = "msm_HDInitialConditionHotstartFile" + MsmAlarmLevelTable = "msm_AlarmLevel" + MsmAlarmLevelDTable = "msm_AlarmLevelD" + MsmPumpESETable = "msm_PumpESE" + MsmPumpESEDTable = "msm_PumpESED" + MsmHDAddPercentTable = "msm_HDAddPercent" + MsmRRAddPercentTable = "msm_RRAddPercent" + MsmLandUseTable = "msm_LandUse" + MsmCatchLandUseTable = "msm_CatchLandUse" + +class RiverTabNames(): + RiverBranchTable = "mrm_Branch" + RiverBranchConnTable = "mrm_BranchConn" + RiverUserDefinedChainageTable = "mrm_UserDefinedChainage" + RiverBranchRoughnessLocalTable = "mrm_BranchRoughnessLocal" + RiverZoneSeparatorLocalTable = "mrm_ZoneSeparatorLocal" + RiverRoughnessFactorLocalTable = "mrm_RoughnessFactor" + RiverBranchRoutingTable = "mrm_RiverRoutingMethod" + RiverWeirTable = "mrm_Weir" + RiverWeirGeomTable = "mrm_WeirGeom" + RiverWeirQhRelationTable = "mrm_WeirQHRelation" + RiverDirectDischargeTable = "mrm_DirectDischarge" + RiverGateTable = "mrm_Gate" + RiverPumpTable = "mrm_Pump" + RiverBridgeTable = "mrm_Bridge" + RiverBridgeOpeningTable = "mrm_BridgeOpening" + RiverBridgeCrsTable = "mrm_BridgeCrs" + RiverEnergyLossTable = "mrm_EnergyLoss" + RiverTabulatedTable = "mrm_Tabulated" + RiverDambreakTable = "mrm_Dambreak" + RiverStorageTable = "mrm_Storage" + RiverDAGeneralParamTable = "mrm_DAGeneralPara" + RiverDAUpdateParamTable = "mrm_DAUpdatePara" + RiverDAStandardDeviationTable = "mrm_DAStandardDeviation" + RiverDAErrorForecastEquationsTable = "mrm_DAErrorForecastEquations" + RiverDAErrorForecastParaTable = "mrm_DAErrorForecastPara" + RiverDAPerturbationsParamTable = "mrm_DAPerturbationsPara" + RiverWindScaleFactorLocalTable = "mrm_WindScaleFactorLocal" + RiverGroundwaterLeakageLocalTable = "mrm_LeakageCoefficients" + SHECouplingsTable = "mrm_SHECouplings" + STLocalBedParThickTable = "mrm_STLocalBedParThick" + STLocalBedParMorphTable = "mrm_STLocalBedParMorph" + STNonScrBedLevelTable = "mrm_STNonScrLocalBedLevel" + STPassiveLinkTable = "mrm_STPassiveLink" + STAdvFractionTable = "mrm_STAdvFraction" + STAdvFracGrainLocalTable = "mrm_STAdvFracGrainLocal" + STAdvFracSusLocalTable = "mrm_STAdvFracSusLocal" + STInitConcentratDefaultTable = "mrm_STInitConcentratDefault" + STInitConcentratLocalTable = "mrm_STInitConcentratLocal" + +class FloodTabNames(): + M21GlobalSettingTable = "m2d_GlobalSetting" + Mu2DSurfaceRoughnessAreaTable = "m2d_SurfaceRoughnessArea" + Mu2DSurfaceRoughnessValueTable = "m2d_SurfaceRoughnessValue" + Mu2DEddyViscosityAreaTable = "m2d_EddyViscosityArea" + Mu2DInitialConditionAreaTable = "m2d_InitialConditionArea" + Mu2DStructureDikeTable = "m2d_StructureDike" + Mu2DStructureWeirTable = "m2d_StructureWeir" + Mu2DStructureWeirDTable = "m2d_StructureWeirD" + Mu2DStructureCulvertTable = "m2d_StructureCulvert" + Mu2DStructureCulvertDTable = "m2d_StructureCulvertD" + Mu2DCouplingTable = "m2d_Coupling" + Mu2DCouplingConnTable = "m2d_CouplingConn" + Mu2DMeshArcTable = "m2d_MeshArc" + Mu2DMeshLocalAreaTable = "m2d_MeshLocalArea" + Mu2DGridDefinitionTable = "m2d_GridDefinition" + Mu2DBndDistributedSourceTable = "m2d_BndDistributedSource" + Mu2DBndQhRelationTable = "m2d_BndQHRelation" + Mu2DBoundaryTable = "m2d_Boundary" + Mu2DWQBoundaryTable = "m2d_WQBoundary" + Mu2DGridInactiveAreaTable = "m2d_GridInactiveArea" + Mu2DInfiltrationTable = "m2d_Infiltration" + Mu2DInfiltrationLandCoverTable = "m2d_InfiltrationLandCover" + Mu2dADInitalConditionTable = "m2d_ADInitalCondition" + Mu2dADInitalConditionDTable = "m2d_ADInitalConditionD" + Mu2dADInitalConditionAreaTable = "m2d_ADInitalConditionArea" + Mu2dADDecayTable = "m2d_ADDecay" + Mu2dADInfiltrationTable = "m2d_ADInfiltration" + Mu2dADInfiltrationDTable = "m2d_ADInfiltrationD" + Mu2dADInfiltrationAreaTable = "m2d_ADInfiltrationArea" + Mu2dADPrecipitationTable = "m2d_ADPrecipitation" + Mu2dADPrecipitationDTable = "m2d_ADPrecipitationD" + Mu2dADPrecipitationAreaTable = "m2d_ADPrecipitationArea" + Mu2dADEvaporationTable = "m2d_ADEvaporation" + Mu2dADEvaporationDTable = "m2d_ADEvaporationD" + Mu2dADEvaporationAreaTable = "m2d_ADEvaporationArea" + Mu2dADDispersionTable = "m2d_ADDispersion" + Mu2dADDispersionDTable = "m2d_ADDispersionD" + Mu2dADDispersionAreaTable = "m2d_ADDispersionArea" + Mu2dInfBuildingTable = "m2d_InfBuilding" + Mu2dInfRoadTable = "m2d_InfRoad" + +class SWMMTabNames(): + CatchmentTable = "msm_Catchment" + MssNodeTable = "mss_Node" + MssLinkTable = "mss_Link" + MssOrificeTable = "mss_Orifice" + MssWeirTable = "mss_Weir" + MssOutletTable = "mss_Outlet" + MssPumpTable = "mss_Pump" + MssProjectTable = "mss_Project" + MssTabTable = "mss_Tab" + MssTabDTable = "mss_TabD" + MssTimeseriesTable = "mss_Timeseries" + MssTimeseriesDTable = "mss_TimeseriesD" + MssPatternTable = "mss_Pattern" + MssInflowTable = "mss_Inflow" + MssInflowDTable = "mss_InflowD" + MssEvaporationTable = "mss_Evaporation" + MssCoverageTable = "mss_Coverage" + MssTemperatureTable = "mss_Temperature" + MssAdjustmentTable = "mss_Adjustment" + MssTransectTable = "mss_Transect" + MssTransectDTable = "mss_TransectD" + MssTransectCoordTable = "mss_TransectCoord" + MssAquiferTable = "mss_Aquifer" + MssHydrographTable = "mss_Hydrograph" + MssHydrographDTable = "mss_HydrographD" + MssRDIITable = "mss_RDII" + MssLIDControlTable = "mss_LIDControl" + MssLIDControlDTable = "mss_LIDControlD" + MssLIDUsageTable = "mss_LIDusage" + MssSnowPackTable = "mss_SnowPack" + MssDWFTable = "mss_DWF" + MssDWFDTable = "mss_DWFD" + MssGroundwaterTable = "mss_Groundwater" + MssRaingaugeTable = "mss_Raingauge" + MssRuleTable = "mss_Rule" + MssPollutant = "mss_Pollutant" + MssLanduse = "mss_Landuse" + MssWashoff = "mss_Washoff" + MssBuildup = "mss_Buildup" + MssLoading = "mss_Loading" + MssLocalTreatment = "mss_LocalTreatment" + MssCatchConTable = "mss_CatchCon" + +class WDTabNames(): + WdProjectTable = "mw_Project" + WdJunctionTable = "mw_Junction" + WdPipeTable = "mw_Pipe" + WdPumpTable = "mw_Pump" + WdValveTable = "mw_Valve" + WdTankTable = "mw_Tank" + WdDemAllocTable = "mw_DemAlloc" + WdDemAllocConnTable = "mw_DemAllocConn" + WdMDemandTable = "mw_MDemand" + WdDemandStatTable = "mw_DemStat" + WdDemandStatConfigTable = "mw_DemStatConfig" + WdControlTable = "mw_Control" + WdPumpStationTable = "mw_PumpStation" + WdPumpStationConnTable = "mw_PumpStationConn" + WdZoneDefinitionTable = "mw_ZoneDef" + WdZoneWBTable = "mw_ZoneWB" + WdPPatternTable = "mw_PPattern" + WdPPatternDTable = "mw_PPatternD" + WdSpecDayTable = "mw_SpecDay" + WdCurveTable = "mw_Curve" + WdCurveDTable = "mw_CurveD" + WdSourceTable = "mw_Source" + WdTraceNodeTable = "mw_TraceNode" + WdTurbineTable = "mw_Turbine" + WdFrictionTable = "mw_Friction" + WdLossCoeffTable = "mw_Loss" + WdRtcTable = "mw_RTC" + WdEnergyTable = "mw_Energy" + WdRuleTable = "mw_Rule" + WdReliabilityTable = "mw_Reliability" + WdReliabilityLocalTable = "mw_ReliabilityLocal" + WdFireFlowTable = "mw_FireFlow" + WdFlushingTable = "mw_Flushing" + WdFlushingOutletTable = "mw_FlushingOutlet" + WdShutdownPlanningTable = "mw_ShutdownPlanning" + WdShutdownValveTable = "mw_ShutdownValve" + WdPipeRelTable = "mw_PipeRel" + WdAirChamberTable = "mw_AirChamber" + WdOptimizationTable = "mw_Optimization" + WdOptimizationControlTable = "mw_OptimizationControl" + WdOptimizationTargetTable = "mw_OptimizationTarget" + WdOptimizationTargetWBTable = "mw_OptimizationTargetWB" + WdWDOSettingsTable = "mw_WDOSettings" + WdWDOSensorsTable = "mw_WDOSensors" + WdWDOControlsTable = "mw_WDOControls" + WdWDODemandZonesTable = "mw_WDODemandZones" + WdWDODemandPredictionsTable = "mw_WDODemandPredictions" + WdWDOComparisonsTable = "mw_WDOComparisons" + WdMsxTable = "mw_EPAMSX" + WdAutocalibrationTable = "mw_Autocalibration" + WdAutocaliClosedLinks = "mw_AutocaliClosedLinks" + WdAutocaliPipesFriction = "mw_AutocaliPipesFrict" + WdAutocaliNodeDemands = "mw_AutocaliNodeDemands" + WdAutocaliLeaks = "mw_AutocaliLeaks" + WdAutocaliTargets = "mw_AutocaliTargets" + WdResValveCriticalityTable = "mwRes_ValveCriticality" + diff --git a/notebooks/DataTableAccessor.ipynb b/notebooks/DataTableAccessor.ipynb index 9105cbc..b1db894 100644 --- a/notebooks/DataTableAccessor.ipynb +++ b/notebooks/DataTableAccessor.ipynb @@ -28,6 +28,8 @@ "source": [ "'''To manpulate data in database, e.g. insert, update, delete'''\n", "from mikeplus import DataTableAccess\n", + "from mikeplus.fieldTableNames.tableNames import CSTabNames\n", + "from mikeplus.fieldTableNames.fieldNames import Fields\n", "data_access = DataTableAccess(\"../tests/testdata/Db/Sirius/Sirius.sqlite\")\n", "data_access.open_database()" ] @@ -49,8 +51,8 @@ "metadata": {}, "outputs": [], "source": [ - "values = {'Diameter': 2.0, 'Description': 'insertValues'}\n", - "data_access.insert(\"msm_Link\", \"link_test\", values)" + "values = {Fields.LinkFields.Diameter: 2.0, Fields.DescriptionFieldBase.Description: 'insertValues'}\n", + "data_access.insert(CSTabNames.LinkTable, \"link_test\", values)" ] }, { @@ -60,7 +62,7 @@ "metadata": {}, "outputs": [], "source": [ - "query = data_access.get_muid_where(\"msm_Link\", \"MUID='link_test'\")\n", + "query = data_access.get_muid_where(CSTabNames.LinkTable, \"MUID='link_test'\")\n", "print(query)" ] }, @@ -71,8 +73,8 @@ "metadata": {}, "outputs": [], "source": [ - "fields = [\"Diameter\", \"Description\"]\n", - "values = data_access.get_field_values(\"msm_Link\", \"link_test\", fields)\n", + "fields = [Fields.LinkFields.Diameter, Fields.DescriptionFieldBase.Description]\n", + "values = data_access.get_field_values(CSTabNames.LinkTable, \"link_test\", fields)\n", "print_field_values(fields, values)" ] }, @@ -83,8 +85,8 @@ "metadata": {}, "outputs": [], "source": [ - "values = {'Diameter': 1.0, 'Description': 'setValues'}\n", - "data_access.set_values(\"msm_Link\", \"link_test\", values)" + "values = {Fields.LinkFields.Diameter: 1.0, Fields.DescriptionFieldBase.Description: 'setValues'}\n", + "data_access.set_values(CSTabNames.LinkTable, \"link_test\", values)" ] }, { @@ -94,7 +96,7 @@ "metadata": {}, "outputs": [], "source": [ - "data_access.delete(\"msm_Link\", \"link_test\")" + "data_access.delete(CSTabNames.LinkTable, \"link_test\")" ] }, { diff --git a/notebooks/ToolsAccessor.ipynb b/notebooks/ToolsAccessor.ipynb index b5dd5a1..44fdf72 100644 --- a/notebooks/ToolsAccessor.ipynb +++ b/notebooks/ToolsAccessor.ipynb @@ -11,10 +11,12 @@ "import os.path\n", "from mikeplus import DataTableAccess\n", "from mikeplus.tools.import_tool import ImportTool\n", + "from mikeplus.fieldTableNames.tableNames import CSTabNames, CommonTabNames\n", + "from mikeplus.fieldTableNames.fieldNames import Fields\n", "\n", "data_access = DataTableAccess(\"../tests/testdata/import/import.sqlite\")\n", "data_access.open_database()\n", - "muids = data_access.get_muid_where(\"msm_Link\")\n", + "muids = data_access.get_muid_where(CSTabNames.LinkTable)\n", "print(\"Value count:\" + str(len(muids)))" ] }, @@ -41,17 +43,17 @@ "from mikeplus.tools.topology_repair_tool import TopoRepairTool\n", "\n", "def print_status(data_access):\n", - " query = data_access.get_muid_where(\"msm_Link\", \"muid='LinkToDel'\")\n", + " query = data_access.get_muid_where(CSTabNames.LinkTable, f\"{Fields.FieldNameBase.MUID}='LinkToDel'\")\n", " print(\"Number of 'LinkToDel':\" + str(len(query)))\n", - " query = data_access.get_muid_where(\"msm_Node\", \"muid='NodeIsolate'\")\n", + " query = data_access.get_muid_where(CSTabNames.NodeTable, f\"{Fields.FieldNameBase.MUID}='NodeIsolate'\")\n", " print(\"Number of 'NodeIsolate':\" + str(len(query)))\n", - " query = data_access.get_muid_where(\"msm_Link\", \"muid='LinkToSplit'\")\n", + " query = data_access.get_muid_where(CSTabNames.LinkTable, f\"{Fields.FieldNameBase.MUID}='LinkToSplit'\")\n", " print(\"Number of 'LinkToSplit':\" + str(len(query)))\n", - " query = data_access.get_muid_where(\"msm_Link\", \"tonodeid='NodeToSplit'\")\n", + " query = data_access.get_muid_where(CSTabNames.LinkTable, f\"{Fields.LinkBaseFields.ToNodeID}='NodeToSplit'\")\n", " print(\"Number of upstream links of 'NodeToSplit':\" + str(len(query)))\n", - " query = data_access.get_muid_where(\"msm_Link\", \"fromnodeid='NodeToSplit'\")\n", + " query = data_access.get_muid_where(CSTabNames.LinkTable, f\"{Fields.LinkBaseFields.FromNodeID}='NodeToSplit'\")\n", " print(\"Number of downstream links of 'NodeToSplit':\" + str(len(query)))\n", - " query = data_access.get_muid_where(\"msm_Node\", \"muid='Node_8'\")\n", + " query = data_access.get_muid_where(CSTabNames.NodeTable, f\"{Fields.FieldNameBase.MUID}='Node_8'\")\n", " print(\"Number of 'Node_8':\" + str(len(query)))\n", "\n", "data_access = DataTableAccess(\"../tests/testdata/repairToolData/RepairTestCase.sqlite\")\n", @@ -93,8 +95,8 @@ "metadata": {}, "outputs": [], "source": [ - "fields = [\"Diameter\"]\n", - "field_val_get = data_access.get_muid_field_values(\"msm_Node\", fields)\n", + "fields = [Fields.NodeFields.Diameter]\n", + "field_val_get = data_access.get_muid_field_values(CSTabNames.NodeTable, fields)\n", "print(field_val_get)" ] }, @@ -106,7 +108,7 @@ "outputs": [], "source": [ "tool = InterpolationTool(data_access.datatables)\n", - "tool.interpolate_from_nearest_feature(\"msm_Node\", \"Diameter\", \"msm_Link\", \"Diameter\")" + "tool.interpolate_from_nearest_feature(CSTabNames.NodeTable, Fields.NodeFields.Diameter, CSTabNames.LinkTable, Fields.LinkFields.Diameter)" ] }, { @@ -121,9 +123,9 @@ "from mikeplus.tools.connection_repair_tool import ConnectionRepairTool\n", "\n", "def print_conn_info(data_access):\n", - " station_conn = data_access.get_muid_where(\"m_StationCon\")\n", + " station_conn = data_access.get_muid_where(CommonTabNames.StationConnTable)\n", " print(station_conn)\n", - " load_point_conn = data_access.get_muid_where(\"msm_LoadPointConnection\")\n", + " load_point_conn = data_access.get_muid_where(CSTabNames.LoadPointConnTable)\n", " print(load_point_conn)\n", " \n", "data_access = DataTableAccess(\"../tests/testdata/connectionRepair/repair.sqlite\")\n", @@ -163,8 +165,8 @@ "metadata": {}, "outputs": [], "source": [ - "fields = [\"ModelBSlope\", \"ModelBLength\"]\n", - "field_val_get = data_access.get_field_values(\"msm_Catchment\", \"imp3\", fields)\n", + "fields = [Fields.CatchmentFields.ModelBSlope, Fields.CatchmentFields.ModelBLength]\n", + "field_val_get = data_access.get_field_values(CSTabNames.CatchmentTable, \"imp3\", fields)\n", "print(field_val_get)" ] }, diff --git a/notebooks/add_many_section_discharge_result_specifications.ipynb b/notebooks/add_many_section_discharge_result_specifications.ipynb new file mode 100644 index 0000000..67e65e3 --- /dev/null +++ b/notebooks/add_many_section_discharge_result_specifications.ipynb @@ -0,0 +1,248 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Add many \"Section discharge\" result specifications\n", + "\n", + "This example shows how to add multiple \"Section discharge\" result specifications for 2D overland models. Basic workflow is:\n", + "\n", + "1. Import section coordinates.\n", + "2. Create result specification for each section.\n", + "3. Add result specifications to a particular simulation ID." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Setup a dummy database to work with" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from test_utils import create_sqlite_db\n", + "db_path = \"my_model.sqlite\"\n", + "create_sqlite_db(db_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Required imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from mikeplus import DataTableAccess\n", + "from mikeplus.fieldTableNames.tableNames import CSTabNames\n", + "from mikeplus.fieldTableNames.fieldNames import Fields\n", + "from System import Nullable\n", + "\n", + "# Note: GeoPandas and Contextily is not installed by default with MIKE+Py\n", + "import geopandas as gpd\n", + "import contextily as cx" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1. Import section coordinates." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read sections from shapefile into GeoDataFrame\n", + "gdf = gpd.read_file(\"../tests/testdata/notebooks/sections.shp\")\n", + "gdf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the sections\n", + "ax = gdf.plot(column='name', legend=True)\n", + "cx.add_basemap(ax, crs=gdf.crs, source=cx.providers.CartoDB.Positron)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a dictionary with keys as section names and values as a list of xy coordinates of the section\n", + "sections_xy = {}\n", + "for name in gdf['name']:\n", + " sections_xy[name] = list(gdf[gdf['name'] == name].geometry.values[0].coords)\n", + "print(\"Section A\", sections_xy['Section A'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2. Create result specification for each section." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Open the model database\n", + "dta = DataTableAccess(db_path)\n", + "dta.open_database()\n", + "dta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create one result specification per cross section with the appropriate types\n", + "for name in sections_xy:\n", + " dta.insert(CSTabNames.RSTable, muid=name, values={\n", + " Fields.RSFields.ModelTypeNo: Nullable[int](3), # 3 = 2D Overland\n", + " Fields.RSFields.ContentTypeNo: Nullable[int](21), # 21 = Section discharge\n", + " Fields.RSFields.FormatNo: Nullable[int](2), # 2 = Dfs0\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Insert the secion coordinates into the database. Note that coordinates must be in the same projection as the model.\n", + "table = dta.datatables[CSTabNames.RSSGeomTable]\n", + "for name, xy in sections_xy.items():\n", + " selection_id = dta.get_muid_where(CSTabNames.RSSTable, f\"{Fields.RSSFields.ResultSpecID}=='{name}'\")[0]\n", + " for i, (x, y) in enumerate(xy):\n", + " muid = table.CreateUniqueMuid()\n", + " row = table.CreateRowData(muid)\n", + " table.Insert(row)\n", + " dta.set_values(CSTabNames.RSSGeomTable, muid, {Fields.RSSGeomFields.X:x, Fields.RSSGeomFields.Y:y, Fields.SqnFieldBase.Sqn:Nullable[int](i+1), Fields.RSSGeomFields.SelectionID:selection_id})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3. Add result specifications to a particular simulation ID." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a new 2D overland simulation\n", + "simulation_id = \"my_simulation\"\n", + "\n", + "row = dta.datatables[CSTabNames.ProjectTable].CreateRowData(simulation_id)\n", + "dta.datatables[CSTabNames.ProjectTable].Insert(row)\n", + "\n", + "dta.set_values(CSTabNames.ProjectTable, simulation_id, {\n", + " Fields.ProjectFields.Enable_2DOverland: Nullable[int](1),\n", + " Fields.ProjectFields.Enable_HD: Nullable[int](1),\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add all of the new result specifications to the simulation\n", + "for name in sections_xy:\n", + " \n", + " output_id = dta.datatables[CSTabNames.ProjectOutputTable].CreateUniqueMuid()\n", + " row = dta.datatables[CSTabNames.ProjectOutputTable].CreateRowData(output_id)\n", + " dta.datatables[CSTabNames.ProjectOutputTable].Insert(row)\n", + "\n", + " dta.set_values(CSTabNames.ProjectOutputTable, output_id, {\n", + " Fields.ProjectOutputFields.OutputID: name,\n", + " Fields.ProjectOutputFields.SimulationID: simulation_id,\n", + " Fields.ProjectOutputFields.ContentsTypeNo: Nullable[int](21), # 21 = Section discharge\n", + " Fields.ProjectOutputFields.FormatNo: Nullable[int](2), # 2 = Dfs0\n", + " })" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Close the database\n", + "dta.close_database()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Clean up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "db_path = Path(db_path)\n", + "for file in [db_path, db_path.with_suffix(\".mupp\")]:\n", + " if file.exists():\n", + " file.unlink()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mikeplus", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/create_empty_mikeplus_sqlite_database.ipynb b/notebooks/create_empty_mikeplus_sqlite_database.ipynb new file mode 100644 index 0000000..48b18bc --- /dev/null +++ b/notebooks/create_empty_mikeplus_sqlite_database.ipynb @@ -0,0 +1,272 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Create an emtpty MIKE+ sqlite database\n", + "\n", + "This example shows to create an empty MIKE+ sqlite database. Basic workflow is:\n", + "\n", + "1. Specify the coordinate system.\n", + "2. Create the empty database.\n", + "3. Configure the model type." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Required imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import clr\n", + "from System import Nullable\n", + "\n", + "import mikeplus\n", + "from mikeplus import DataTableAccess\n", + "from DHI.Amelia.DataModule.Services.DataSource import BaseDataSource\n", + "from mikeplus.fieldTableNames.tableNames import CommonTabNames\n", + "from mikeplus.fieldTableNames.fieldNames import Fields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1. Specify the coordinate system" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# A MIKE+ compatible projection string (e.g. readable WKT of the coordinate system from MIKE+). Refer to the MIKE+ documentation for more information.\n", + "projection_string = (\n", + "\"\"\"\n", + "PROJCS[\"ETRS89 / UTM zone 32N\",\n", + " GEOGCS[\"ETRS89\",\n", + " DATUM[\"European_Terrestrial_Reference_System_1989\",\n", + " SPHEROID[\"GRS 1980\",6378137,298.257222101,\n", + " AUTHORITY[\"EPSG\",\"7019\"]],\n", + " TOWGS84[0,0,0,0,0,0,0],\n", + " AUTHORITY[\"EPSG\",\"6258\"]],\n", + " PRIMEM[\"Greenwich\",0,\n", + " AUTHORITY[\"EPSG\",\"8901\"]],\n", + " UNIT[\"degree\",0.0174532925199433,\n", + " AUTHORITY[\"EPSG\",\"9122\"]],\n", + " AUTHORITY[\"EPSG\",\"4258\"]],\n", + " PROJECTION[\"Transverse_Mercator\"],\n", + " PARAMETER[\"latitude_of_origin\",0],\n", + " PARAMETER[\"central_meridian\",9],\n", + " PARAMETER[\"scale_factor\",0.9996],\n", + " PARAMETER[\"false_easting\",500000],\n", + " PARAMETER[\"false_northing\",0],\n", + " UNIT[\"metre\",1,\n", + " AUTHORITY[\"EPSG\",\"9001\"]],\n", + " AXIS[\"Easting\",EAST],\n", + " AXIS[\"Northing\",NORTH],\n", + " AUTHORITY[\"EPSG\",\"25832\"]]\n", + "\"\"\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Alternatively, define CRS using an SRID (e.g. EPSG).\n", + "srid = 25832" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# If the projection string is known, then set SRID to -1. Otherwise, if using SRID, set projection_string to an empty string.\n", + "if projection_string:\n", + " srid = -1\n", + "else:\n", + " projection_string = \"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2. Create the database" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Path to model database\n", + "database_path = \"my_model.sqlite\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a new database\n", + "data_source = BaseDataSource.Create(database_path)\n", + "data_source.CreateDatabase()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set the coordinate system\n", + "data_source.OpenDatabase()\n", + "data_source.CreateModelTables(srid, projection_string)\n", + "data_source.CloseDatabase()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3. Configure the model type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a DataTableAccess object to access the database\n", + "dta = DataTableAccess(database_path)\n", + "dta.open_database()\n", + "dta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set the active model\n", + "\n", + "# CS_MIKE1D = River, collection systems and overland flow\n", + "# CS_SWMM = SWMM collection systems and overland flow\n", + "# WD_EPANET = Water distribution\n", + "\n", + "dta.datatables.SetActiveModel(dta.datatables.ActiveModel.CS_MIKE1D)\n", + "dta.datatables.ActiveModel" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the default model type settings as a dictionary\n", + "fields = [c.Field for c in dta.datatables[CommonTabNames.ModelSettingTable].Columns]\n", + "values = dta.get_field_values(CommonTabNames.ModelSettingTable, \"MuModel\", fields)\n", + "settings = {field:value for field, value in zip(fields, values)}\n", + "settings" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Disable all features and modules, then enable 2D Overland and Hydrodynamic.\n", + "settings_to_update = {}\n", + "for key, value in settings.items():\n", + " if \"Enable\" in key:\n", + " settings_to_update[key] = Nullable[int](0)\n", + "settings_to_update[Fields.ModuleActiveFields.Enable_2DOverland] = Nullable[int](1)\n", + "settings_to_update[Fields.ModuleActiveFields.Enable_HD] = Nullable[int](1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Update the sqlite database with the new settings\n", + "dta.set_values(CommonTabNames.ModelSettingTable, \"MuModel\", settings_to_update)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Close the database\n", + "dta.close_database()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Clean up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "db_sqlite = Path(database_path)\n", + "db_mupp = db_sqlite.with_suffix(\".mupp\")\n", + "\n", + "for file in [db_sqlite, db_mupp]:\n", + " if file.exists():\n", + " file.unlink()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mikeplus", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/node_connectivity_information.ipynb b/notebooks/node_connectivity_information.ipynb new file mode 100644 index 0000000..176aa6b --- /dev/null +++ b/notebooks/node_connectivity_information.ipynb @@ -0,0 +1,153 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Node connectivity information\n", + "This example demonstrates some functionality related to node connectivity, such as:\n", + "- Counting number of links connected to a node\n", + "- Coutning number of enabled links connected to a node\n", + "- Getting a list of upstream/downstream links connected to a node" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Imports\n", + "import pandas as pd\n", + "from mikeplus import DataTableAccess\n", + "from mikeplus.fieldTableNames.tableNames import CSTabNames" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Open the database\n", + "dta = DataTableAccess(\"../tests/testdata/Db/Sirius/Sirius.sqlite\")\n", + "dta.open_database()\n", + "dta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the MsmNodeTable object\n", + "msm_node = dta._datatables[CSTabNames.NodeTable].__implementation__\n", + "msm_node" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get all MUIDs\n", + "muids = msm_node.GetMuids()\n", + "list(muids)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get number of links connected to Node_36\n", + "msm_node.GetNumberofLinks(\"Node_36\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get number of links connected to Node_36 that are enabled\n", + "msm_node.GetNumOfLinksEnabled(\"Node_36\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get upstream link MUIDs connected to Node_36\n", + "# Note: upstream links refers to links where \"Node_36\" is the upstream node. So in practice, it includes links upstream of \"Node_36\".\n", + "upstream_links = msm_node.GetUpstreamLinks(\"Node_36\")\n", + "list(upstream_links)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get downstream link MUIDs connected to Node_36\n", + "# Note: downstream links refers to links where \"Node_36\" is the downstream node. So in practice, it includes links downstream of \"Node_36\".\n", + "downstream_links = msm_node.GetDownstreamLinks(\"Node_36\")\n", + "list(downstream_links)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Same as above, but for all nodes and visualized in a DataFrame\n", + "data = {muid: {\n", + " 'num_of_links' : msm_node.GetNumberofLinks(muid),\n", + " 'num_of_links_enabled' : msm_node.GetNumberofLinks(muid),\n", + " 'num_upstream_links' : msm_node.GetUpstreamLinks(muid).Count,\n", + " 'num_downstream_links' : msm_node.GetDownstreamLinks(muid).Count,\n", + "} for muid in msm_node.GetMuids()}\n", + "df = pd.DataFrame(data).T\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Close the database\n", + "dta.close_database()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python (webinar)", + "language": "python", + "name": "webinar" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/run_multiple_rainfall_events.ipynb b/notebooks/run_multiple_rainfall_events.ipynb new file mode 100644 index 0000000..0a719ab --- /dev/null +++ b/notebooks/run_multiple_rainfall_events.ipynb @@ -0,0 +1,224 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Run multiple rainfall events\n", + "This example shows how to run multiple rainfall events. The basic workflow is:\n", + "1. Explore the rainfall boundary conditions of a dfs0 file using MIKE IO.\n", + "2. Create a boundary condition for each rainfall event. Set them all as inactive by default.\n", + "3. Run the model for each event by activating the relevant boundary condition and updating the scenario name." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Start with some imports we'll need" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import clr\n", + "import System\n", + "import mikeio\n", + "from mikeplus import DataTableAccess\n", + "from mikeplus.engines import Engine1D\n", + "from pathlib import Path\n", + "from mikeplus.fieldTableNames.tableNames import CSTabNames\n", + "from mikeplus.fieldTableNames.fieldNames import Fields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1. Explore rainfall boundary dfs0 file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Let's start by opening the dfs0 file that contains our rainfall events.\n", + "# This file contains nine events with varying frequencies.\n", + "# Our goal is to run the model for every single one of these events.\n", + "rainfall_timeseries = Path(\"../tests/testdata/Db/Sirius/Sirius_IDF_rainfall.dfs0\")\n", + "ds = mikeio.read(rainfall_timeseries)\n", + "ds" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2. Create boundary conditions for each rainfall event" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# First we open the MIKE+ database using MIKE+Py.\n", + "db_path = Path(\"../tests/testdata//Db/Sirius/Sirius.sqlite\")\n", + "dta = DataTableAccess(db_path)\n", + "dta.open_database()\n", + "dta.is_database_open()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We'll need the dfs0 file path, the item name, and data type. \n", + "# This is the same info required to add boundary conditions in MIKE+.\n", + "event_info = []\n", + "for item in ds.items:\n", + " event_info.append(\n", + " {\n", + " # The dfs0 path should be relative to the .sqlite path\n", + " \"file_path\": str(rainfall_timeseries.relative_to(db_path.parent)), \n", + " \"item_name\": item.name,\n", + " \"data_type\": repr(item.type),\n", + " }\n", + " )\n", + "\n", + "# Peak at the first two event infos created\n", + "event_info" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Now let's create a boundary condition for each event using this info.\n", + "boundary_muids = []\n", + "for event in event_info:\n", + " values = dict(\n", + " VariationNo = System.Nullable[int](3), # set temporal variation to timeseries\n", + " FlowTypeNo = System.Nullable[int](5), # set boundary condition type to Rainfall\n", + " LoadTypeNo = System.Nullable[int](1), # set load type to stormwater runoff\n", + " TSConnection = event['file_path'],\n", + " TimeseriesName = event['item_name'],\n", + " DataTypeName = event['data_type'],\n", + " )\n", + " muid = \"Rainfall \" + event['item_name']\n", + " dta.insert(CSTabNames.BBoundaryTable, muid, values)\n", + " dta.set_value(CSTabNames.BBoundaryTable, muid, Fields.BBoundaryFields.ApplyBoundaryNo, System.Nullable[int](0)) # Set boundary as inactive\n", + " boundary_muids.append(muid)\n", + "\n", + "# Peek at the first 3 boundary MUIDs created\n", + "# Hint: check out if they've been created in MIKE+ by clicking the 'Clear' button in the 'Boundary conditions' table.\n", + "boundary_muids" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3. Run the model for each event" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create the Engine1D object that will be used to run MIKE 1D simulations.\n", + "engine = Engine1D(dta.datatables)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Confirm which simulation is marked as the active one\n", + "active_simulation = dta.get_muid_where(CSTabNames.ProjectTable, f\"{Fields.ProjectFields.ActiveProject} == 1\")[0]\n", + "active_simulation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a little helper function to rename the project simulation\n", + "def rename_simulation(current_muid, new_muid):\n", + " # Rename the simulation\n", + " dta.set_value(CSTabNames.ProjectTable, current_muid, Fields.FieldNameBase.MUID, new_muid)\n", + "\n", + " # Change simulation MUID in the msm_ProjectOutput table too (will be fixed in future to happen automatically)\n", + " output_muids = dta.get_muid_where(CSTabNames.ProjectOutputTable, f\"{Fields.ProjectOutputFields.SimulationID} == '{current_muid}'\")\n", + " for muid in output_muids:\n", + " dta.set_value(CSTabNames.ProjectOutputTable, muid, current_muid, new_muid)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run the simulations\n", + "current_simulation_muid = active_simulation\n", + "for boundary_muid in boundary_muids:\n", + " dta.set_value(CSTabNames.BBoundaryTable, boundary_muid, Fields.BBoundaryFields.ApplyBoundaryNo, System.Nullable[int](1)) # Set boundary as active\n", + " new_simulation_muid = \"Simulation \" + boundary_muid\n", + " rename_simulation(current_simulation_muid, new_simulation_muid)\n", + " engine.run(new_simulation_muid)\n", + " current_simulation_muid = new_simulation_muid\n", + " dta.set_value(CSTabNames.BBoundaryTable, boundary_muid, Fields.BBoundaryFields.ApplyBoundaryNo, System.Nullable[int](0)) # Set boundary as inactive again" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check that the result files for each simulation have been created\n", + "results = [p for p in db_path.parent.glob(f\"*Network_HD.res1d\")]\n", + "for r in results:\n", + " print(r)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mikeplus", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pyproject.toml b/pyproject.toml index 54f56be..541bd6a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ exclude = ["notebooks", "tests"] [project] name = "mikeplus" -version = "0.0.1" +version = "2024.1.0" dependencies = [ "numpy", 'pythonnet<=2.5.2; python_version < "3.7.0"', @@ -40,8 +40,8 @@ dev = ["pytest","flake8","black","sphinx", "myst-parser","sphinx-book-theme"] test= ["pytest"] [project.urls] -"Homepage" = "https://github.com/DHI/mikeplus-python" -"Bug Tracker" = "https://github.com/DHI/mikeplus-python/issues" +"Homepage" = "https://github.com/DHI/mikepluspy" +"Bug Tracker" = "https://github.com/DHI/mikepluspy/issues" # mypy global options: diff --git a/test_utils/__init__.py b/test_utils/__init__.py new file mode 100644 index 0000000..59f66d4 --- /dev/null +++ b/test_utils/__init__.py @@ -0,0 +1,3 @@ +from .database_creators import create_sqlite_db + +__all__ = ["create_sqlite_db"] \ No newline at end of file diff --git a/test_utils/database_creators.py b/test_utils/database_creators.py new file mode 100644 index 0000000..7ffe662 --- /dev/null +++ b/test_utils/database_creators.py @@ -0,0 +1,22 @@ +from pathlib import Path + +import mikeplus +from DHI.Amelia.DataModule.Services.DataSource import BaseDataSource + +def create_sqlite_db(db_path: str | Path, srid: int = 25832): + """ + Create a sqlite database for testing purposes. + + Parameters + ---------- + db_path : str | Path + Path to the sqlite database. + srid : int, optional + Spatial reference system identifier. The default is 25832. + """ + db_path = str(Path(db_path)) + data_source = BaseDataSource.Create(str(db_path)) + data_source.CreateDatabase() + data_source.OpenDatabase() + data_source.CreateModelTables(srid, "") + data_source.CloseDatabase() diff --git a/tests/test_datatable.py b/tests/test_datatable.py index 30babaa..b1b29f6 100644 --- a/tests/test_datatable.py +++ b/tests/test_datatable.py @@ -1,5 +1,8 @@ import os from mikeplus import DataTableAccess +from mikeplus.fieldTableNames.tableNames import CSTabNames +from mikeplus.fieldTableNames.fieldNames import Fields + def test_opendatabase(): @@ -14,23 +17,23 @@ def test_manipulate_data(): file_name = os.path.join("tests", "testdata", "Db", "Sirius", "Sirius.sqlite") data_access = DataTableAccess(file_name) data_access.open_database() - muids = data_access.get_muid_where("msm_Link", "MUID='link_test'") + muids = data_access.get_muid_where(CSTabNames.LinkTable, "MUID='link_test'") if len(muids) == 1: - data_access.delete("msm_Link", "link_test") - field_values = {'Diameter': 2.5, 'Description': 'setvalues'} - data_access.insert("msm_Link", "link_test", field_values) - muids = data_access.get_muid_where("msm_Link", "MUID='link_test'") + data_access.delete(CSTabNames.LinkTable, "link_test") + field_values = {Fields.LinkFields.Diameter: 2.5, Fields.DescriptionFieldBase.Description: 'setvalues'} + data_access.insert(CSTabNames.LinkTable, "link_test", field_values) + muids = data_access.get_muid_where(CSTabNames.LinkTable, "MUID='link_test'") assert len(muids) == 1 - fields = ["Diameter", "Description"] - values_get = data_access.get_field_values("msm_Link", "link_test", fields) + fields = [Fields.LinkFields.Diameter, Fields.DescriptionFieldBase.Description] + values_get = data_access.get_field_values(CSTabNames.LinkTable, "link_test", fields) assert values_get[0] == 2.5 assert values_get[1] == 'setvalues' - field_values = {'Diameter': 1.0, 'Description': 'Desc'} - data_access.set_values("msm_Link", "link_test", field_values) - values_get = data_access.get_field_values("msm_Link", "link_test", fields) + field_values = {Fields.LinkFields.Diameter: 1.0, Fields.DescriptionFieldBase.Description: 'Desc'} + data_access.set_values(CSTabNames.LinkTable, "link_test", field_values) + values_get = data_access.get_field_values(CSTabNames.LinkTable, "link_test", fields) assert values_get[0] == 1.0 assert values_get[1] == 'Desc' - data_access.delete("msm_Link", "link_test") - muids = data_access.get_muid_where("msm_Link", "MUID='link_test'") + data_access.delete(CSTabNames.LinkTable, "link_test") + muids = data_access.get_muid_where(CSTabNames.LinkTable, "MUID='link_test'") assert len(muids) == 0 data_access.close_database() diff --git a/tests/test_engine.py b/tests/test_engine.py index 975f347..89a12ef 100644 --- a/tests/test_engine.py +++ b/tests/test_engine.py @@ -6,7 +6,7 @@ def test_mike1d_engine(): - res_1d_file = os.path.join("tests", "testdata", "Db", "Sirius", "Sirius_RR_and_HDBaseDefault_Network_HD.res1d") + res_1d_file = os.path.join("tests", "testdata", "Db", "Sirius", "Sirius_1_DEMOBaseDefault_Network_HD.res1d") if os.path.exists(res_1d_file): os.remove(res_1d_file) dbFile = os.path.join("tests", "testdata", "Db", "Sirius", "Sirius.sqlite") diff --git a/tests/test_tools.py b/tests/test_tools.py index cb8c957..5d35f17 100644 --- a/tests/test_tools.py +++ b/tests/test_tools.py @@ -5,6 +5,8 @@ from mikeplus.tools.connection_repair_tool import ConnectionRepairTool from mikeplus.tools.catch_slope_length_process_tool import CathSlopeLengthProcess from mikeplus.tools.import_tool import ImportTool +from mikeplus.fieldTableNames.tableNames import CSTabNames, CommonTabNames +from mikeplus.fieldTableNames.fieldNames import Fields def test_topology_repair_tool(): @@ -13,17 +15,17 @@ def test_topology_repair_tool(): data_access.open_database() repair_tool = TopoRepairTool(data_access.datatables) repair_tool.run() - query = data_access.get_muid_where("msm_Link", "muid='LinkToDel'") + query = data_access.get_muid_where(CSTabNames.LinkTable, Fields.FieldNameBase.MUID + "='LinkToDel'") assert len(query) == 0 - query = data_access.get_muid_where("msm_Node", "muid='NodeIsolate'") + query = data_access.get_muid_where(CSTabNames.NodeTable, Fields.FieldNameBase.MUID + "='NodeIsolate'") assert len(query) == 0 - query = data_access.get_muid_where("msm_Link", "muid='LinkToSplit'") + query = data_access.get_muid_where(CSTabNames.LinkTable, Fields.FieldNameBase.MUID + "='LinkToSplit'") assert len(query) == 0 - query = data_access.get_muid_where("msm_Link", "tonodeid='NodeToSplit'") + query = data_access.get_muid_where(CSTabNames.LinkTable, Fields.LinkBaseFields.ToNodeID + "='NodeToSplit'") assert len(query) == 2 - query = data_access.get_muid_where("msm_Link", "fromnodeid='NodeToSplit'") + query = data_access.get_muid_where(CSTabNames.LinkTable, Fields.LinkBaseFields.FromNodeID + "='NodeToSplit'") assert len(query) == 1 - query = data_access.get_muid_where("msm_Node", "muid='Node_8'") + query = data_access.get_muid_where(CSTabNames.NodeTable, Fields.FieldNameBase.MUID + "='Node_8'") assert len(query) == 1 data_access.close_database() @@ -32,13 +34,13 @@ def test_interpolate_tool(): dbFile = os.path.join("tests", "testdata", "interpolate", "inter.sqlite") data_access = DataTableAccess(dbFile) data_access.open_database() - data_access.set_value("msm_Node", "Node_1", "Diameter", None) - data_access.set_value("msm_Node", "Node_2", "Diameter", None) - data_access.set_value("msm_Node", "Node_3", "Diameter", None) + data_access.set_value(CSTabNames.NodeTable, "Node_1", Fields.NodeFields.Diameter, None) + data_access.set_value(CSTabNames.NodeTable, "Node_2", Fields.NodeFields.Diameter, None) + data_access.set_value(CSTabNames.NodeTable, "Node_3", Fields.NodeFields.Diameter, None) tool = InterpolationTool(data_access.datatables) - tool.interpolate_from_nearest_feature("msm_Node", "Diameter", "msm_Link", "Diameter") - fields = ["Diameter"] - field_val_get = data_access.get_muid_field_values("msm_Node", fields) + tool.interpolate_from_nearest_feature(CSTabNames.NodeTable, Fields.NodeFields.Diameter, CSTabNames.LinkTable, Fields.LinkFields.Diameter) + fields = [Fields.NodeFields.Diameter] + field_val_get = data_access.get_muid_field_values(CSTabNames.NodeTable, fields) data_access.close_database() assert field_val_get['Node_1'][0] == 2.0 assert field_val_get['Node_2'][0] == 2.0 @@ -49,17 +51,17 @@ def test_connect_repair_tool(): dbFile = os.path.join("tests", "testdata", "connectionRepair", "repair.sqlite") data_access = DataTableAccess(dbFile) data_access.open_database() - muids = data_access.get_muid_where("m_StationCon") + muids = data_access.get_muid_where(CommonTabNames.StationConnTable) for muid in muids: - data_access.delete("m_StationCon", muid) - muids = data_access.get_muid_where("msm_LoadPointConnection") + data_access.delete(CommonTabNames.StationConnTable, muid) + muids = data_access.get_muid_where(CSTabNames.LoadPointConnTable) for muid in muids: - data_access.delete("msm_LoadPointConnection", muid) + data_access.delete(CSTabNames.LoadPointConnTable, muid) conn_repair_tool = ConnectionRepairTool(data_access.datatables) conn_repair_tool.run() - station_conn = data_access.get_muid_where("m_StationCon") + station_conn = data_access.get_muid_where(CommonTabNames.StationConnTable) assert len(station_conn) == 2 - load_point_conn = data_access.get_muid_where("msm_LoadPointConnection") + load_point_conn = data_access.get_muid_where(CSTabNames.LoadPointConnTable) assert len(load_point_conn) == 2 data_access.close_database() @@ -68,17 +70,17 @@ def test_catch_slope_len_tool(): dbFile = os.path.join("tests", "testdata", "catchSlopeLen", "catch.sqlite") data_access = DataTableAccess(dbFile) data_access.open_database() - field_values = {'ModelBSlope': 0.0, 'ModelBLength': 0.0} - fields = ["ModelBSlope", "ModelBLength"] + field_values = {Fields.CatchmentFields.ModelBSlope: 0.0, Fields.CatchmentFields.ModelBLength: 0.0} + fields = [Fields.CatchmentFields.ModelBSlope, Fields.CatchmentFields.ModelBLength] muid = "imp3" - data_access.set_values("msm_Catchment", muid, field_values) - field_val_get = data_access.get_field_values("msm_Catchment", muid, fields) + data_access.set_values(CSTabNames.CatchmentTable, muid, field_values) + field_val_get = data_access.get_field_values(CSTabNames.CatchmentTable, muid, fields) assert field_val_get[0] == 0.0 assert field_val_get[1] == 0.0 catch_ids = [muid] tool = CathSlopeLengthProcess(data_access.datatables) tool.run(catch_ids, "tests/testdata/catchSlopeLen/Catch_Slope.shp", "tests/testdata/catchSlopeLen/dem.dfs2", 0) - field_val_get = data_access.get_field_values("msm_Catchment", muid, fields) + field_val_get = data_access.get_field_values(CSTabNames.CatchmentTable, muid, fields) assert (field_val_get[0] - 0.102342) < 0.00001 assert (field_val_get[1] - 172.571601) < 0.00001 data_access.close_database() @@ -88,11 +90,11 @@ def test_import_tool(): dbFile = os.path.join("tests", "testdata", "import", "import.sqlite") data_access = DataTableAccess(dbFile) data_access.open_database() - muids = data_access.get_muid_where("msm_Link") + muids = data_access.get_muid_where(CSTabNames.LinkTable) for muid in muids: - data_access.delete("msm_Link", muid) + data_access.delete(CSTabNames.LinkTable, muid) import_tool = ImportTool("tests/testdata/import/config.xml", data_access.datatables) import_tool.run() - muids = data_access.get_muid_where("msm_Link") + muids = data_access.get_muid_where(CSTabNames.LinkTable) assert len(muids) == 575 data_access.close_database() diff --git a/tests/testdata/notebooks/sections.dbf b/tests/testdata/notebooks/sections.dbf new file mode 100644 index 0000000..9938efe Binary files /dev/null and b/tests/testdata/notebooks/sections.dbf differ diff --git a/tests/testdata/notebooks/sections.prj b/tests/testdata/notebooks/sections.prj new file mode 100644 index 0000000..bd846ae --- /dev/null +++ b/tests/testdata/notebooks/sections.prj @@ -0,0 +1 @@ +PROJCS["ETRS_1989_UTM_Zone_32N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/tests/testdata/notebooks/sections.qix b/tests/testdata/notebooks/sections.qix new file mode 100644 index 0000000..2b9dac2 Binary files /dev/null and b/tests/testdata/notebooks/sections.qix differ diff --git a/tests/testdata/notebooks/sections.shp b/tests/testdata/notebooks/sections.shp new file mode 100644 index 0000000..aee69c9 Binary files /dev/null and b/tests/testdata/notebooks/sections.shp differ diff --git a/tests/testdata/notebooks/sections.shx b/tests/testdata/notebooks/sections.shx new file mode 100644 index 0000000..517eff1 Binary files /dev/null and b/tests/testdata/notebooks/sections.shx differ