diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 75972c68..2195e6f1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,7 @@ on: env: CI: true + UV_SYSTEM_PYTHON: 1 jobs: build: @@ -23,7 +24,7 @@ jobs: strategy: matrix: - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -49,24 +50,23 @@ jobs: git lfs pull git lfs prune --verify-remote - - name: Install poetry - run: pipx install poetry + - name: Install uv + uses: astral-sh/setup-uv@v4 + with: + enable-cache: true - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: "poetry" - name: Install dependencies run: | - poetry env use "${{ matrix.python-version }}" - poetry install --without dev + uv sync --frozen --all-extras - name: Test with pytest run: | - poetry run pytest -vv -n=auto --durations=25 --cov-report html \ - --cov-config pyproject.toml roseau + uv run pytest -vv -n=auto --durations=25 --cov-report html --cov-config pyproject.toml roseau env: ROSEAU_LOAD_FLOW_LICENSE_KEY: ${{ secrets.ROSEAU_LOAD_FLOW_LICENSE_KEY }} diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 0d4d2bc7..6833c791 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -23,5 +23,5 @@ jobs: lfs: false - uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.13" - uses: pre-commit/action@v3.0.1 diff --git a/.latexindent.yaml b/.latexindent.yaml index 61351f47..f3976cc9 100644 --- a/.latexindent.yaml +++ b/.latexindent.yaml @@ -39,6 +39,7 @@ indentRules: modifyLineBreaks: textWrapOptions: columns: 120 + when: after environments: BeginStartsOnOwnLine: 1 BodyStartsOnOwnLine: 1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2e6a0b0d..a348653e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ exclude: ^.idea/|.vscode/ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-json - id: check-merge-conflict @@ -10,26 +10,24 @@ repos: - id: detect-private-key - id: end-of-file-fixer - id: trailing-whitespace - - repo: https://github.com/python-poetry/poetry - rev: 1.8.0 + - repo: https://github.com/astral-sh/uv-pre-commit + rev: 0.5.5 hooks: - - id: poetry-check + - id: uv-lock - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.3 + rev: v0.8.1 hooks: - id: ruff - types_or: [python, pyi, jupyter] args: [--fix] - id: ruff-format - types_or: [python, pyi, jupyter] - repo: https://github.com/adamchainz/blacken-docs - rev: 1.18.0 + rev: 1.19.1 hooks: - id: blacken-docs files: ^doc/.*\.md$ args: [-l 90] - repo: https://github.com/rbubley/mirrors-prettier - rev: v3.3.3 + rev: v3.4.1 hooks: - id: prettier args: ["--print-width", "120"] diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..63c47f34 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,33 @@ +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details +version: 2 +build: + os: ubuntu-24.04 + tools: + python: "3.12" + commands: + # + # Install git-lfs + # + # Download and uncompress the binary + # https://git-lfs.github.com/ + - wget https://github.com/git-lfs/git-lfs/releases/download/v3.6.0/git-lfs-linux-amd64-v3.6.0.tar.gz + - tar xvfz git-lfs-linux-amd64-v3.6.0.tar.gz + # Modify LFS config paths to point where git-lfs binary was downloaded + - git config filter.lfs.process "`pwd`/git-lfs filter-process" + - git config filter.lfs.smudge "`pwd`/git-lfs smudge -- %f" + - git config filter.lfs.clean "`pwd`/git-lfs clean -- %f" + # Make LFS available in current repository + - ./git-lfs-3.6.0/git-lfs install + # Download content from remote + - ./git-lfs-3.6.0/git-lfs fetch + # Make local files to have the real content on them + - ./git-lfs-3.6.0/git-lfs checkout + # + # Build using uv + # + - asdf plugin add uv + - asdf install uv latest + - asdf global uv latest + - uv sync --only-group doc --frozen + - uv run -m sphinx -T -b html -d doc/_build/doctrees doc $READTHEDOCS_OUTPUT/html diff --git a/README.md b/README.md index 32e52dd8..4a5a0bea 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,35 @@ ![CI](https://github.com/RoseauTechnologies/Roseau_Load_Flow/workflows/CI/badge.svg) ![pre-commit](https://github.com/RoseauTechnologies/Roseau_Load_Flow/actions/workflows/pre-commit.yml/badge.svg) +[![Documentation Status](https://readthedocs.org/projects/roseau-load-flow/badge/?version=latest)](https://roseau-load-flow.readthedocs.io/en/latest/?badge=latest) -_Roseau Load Flow_ is a highly capable three-phase load flow solver with an ergonomic Python API -for unbalanced power flow analysis. +_Roseau Load Flow_ is a powerful multi-phase load flow solver for unbalanced power flow analysis that +offers: + +- Multi-phase, unbalanced power flow analysis +- Performance optimized solver written in C++ +- A catalogue of real-world transformer and line models +- An ergonomic object-oriented Python interface +- A comprehensive documentation with code examples +- Real-world distribution network data samples in the library (with more available on request) + +In addition to the following _unique_ set of features: + +- Support for floating neutrals for loads and sources +- Four-wire multi-phase modelling with no Kron's reduction, no transformations, no assumptions on the + network topology and no implicit earthing everywhere +- Support for flexible, voltage-dependent, loads directly in the Newton algorithm for better convergence This project is compatible with Python version 3.10 and newer. The [installation instructions](https://roseau-load-flow.roseautechnologies.com/Installation.html) -will guide you through the installation process. If you are new to _Roseau Load Flow_, we recommend you start with the +will guide you through the installation process. If you are new to _Roseau Load Flow_, we recommend +you start with the [getting started tutorial](https://roseau-load-flow.roseautechnologies.com/usage/Getting_Started.html). You can find the complete documentation at https://roseau-load-flow.roseautechnologies.com/. -> [!IMPORTANT] -> Starting with version 0.7.0, Roseau Load Flow is no longer supplied as a SaaS. The software is now -> available as a standalone Python library. - ## License -The project is _partially_ open source but using the solver requires a license. The license key +This project is _partially_ open source but using the solver requires a license. The license key `A8C6DA-9405FB-E74FB9-C71C3C-207661-V3` can be used free of charge with networks containing up to 10 buses. To obtain a personal or commercial license, please contact us at [contact@roseautechnologies.com](mailto:contact@roseautechnologies.com). @@ -31,21 +43,25 @@ Read more at [License](https://roseau-load-flow.roseautechnologies.com/License.h ## Network data -With this library, there is a sample of 20 low-voltage and 20 medium-voltage feeders included for an easy -start! Each network is given with its summer and winter load point. At _Roseau Technologies_, we are able to provide -the major part of the French medium and low voltage networks. For more information, please contact us at -contact@roseautechnologies.com. +_Roseau Load Flow_ ships with a sample of 20 low-voltage and 20 medium-voltage feeder networks. Each +network is provided with its summer and winter load points. At _Roseau Technologies_, we can provide +the major part of the French medium and low voltage networks on demand. For more information, please +contact us at contact@roseautechnologies.com. -![Catalogue of networks](https://github.com/RoseauTechnologies/Roseau_Load_Flow/blob/main/doc/_static/Network/Catalogue.png?raw=True) +
+ Catalogue of networks +
## Bug reports / Feature requests -If you find a bug or have a feature request, please open an issue on +For bug reports, feature requests, or questions, please open an issue on [GitHub](https://github.com/RoseauTechnologies/Roseau_Load_Flow/issues) ## Credits This software is developed by [Roseau Technologies](https://www.roseautechnologies.com/en). -[![Linkedin](https://i.stack.imgur.com/gVE0j.png) LinkedIn](https://www.linkedin.com/company/roseau-technologies/) + +Follow us on: +[![Linkedin](https://i.sstatic.net/gVE0j.png) LinkedIn](https://www.linkedin.com/company/roseau-technologies/)   -[![GitHub](https://i.stack.imgur.com/tskMh.png) GitHub](https://github.com/RoseauTechnologies) +[![GitHub](https://i.sstatic.net/tskMh.png) GitHub](https://github.com/RoseauTechnologies) diff --git a/doc/Changelog.md b/doc/Changelog.md index 93186e52..a745dc88 100644 --- a/doc/Changelog.md +++ b/doc/Changelog.md @@ -17,9 +17,106 @@ og:description: See what's new in the latest release of Roseau Load Flow ! # Changelog +## Version 0.11.0 + +This release adds official support for Python 3.13 and adds a new experimental backward-forward solver. + +### Breaking changes + +- The `min_voltage` and `max_voltage` of `Bus` have been replaced by `nominal_voltage` (phase-to-phase, + in V), a `min_voltage_level` (unitless) and a `max_voltage_level` (unitless). +- The `type` parameter of `TransformerParameters` constructors becomes `vg` for vector group. Replace + `type="single"` by `vg="Ii0"` and `type="center"` by `vg="Iii0"`. +- The `type` attribute of `TransformerParameters` now returns `three-phase`, `single-phase` or + `center-tapped`. Use `TransformerParameters.vg` to get the vector group. +- The names of the transformers in the catalogue have been modified to add voltage levels and vector + groups. Use `rlf.TransformerParameters.get_catalogue()` to see the updated catalogue. +- The `max_current`, `section`, `insulator_type` and `conductor_type` parameters of the `LineParameters` + class are renamed to `ampacities`, `sections`, `insulators` and `materials` respectively. The new + parameters accept arrays of values, one per conductor. +- The enumeration `InsulatorType.UNKNOWN` is removed. Please use `None` if the insulator is unknown. +- The definition of constant-current loads is modified to be the magnitudes of the currents and their + phase shift from the voltages instead of the absolute phase shift. Currents should no longer be + rotated by 120° to be in sync with the voltages. + +### Deprecations + +- The enumerated classes `InsulatorType` and `ConductorType` are renamed to `Insulator` and `Material` + respectively. Their old names are deprecated and will be removed in a future release. +- The deprecated method `LineParameters.from_name_mv` is removed. + +### Detailed changes + +- {gh-pr}`293` Fixed `loading` calculation for lines and transformers +- {gh-pr}`291` Fixed several bugs in JSON serialization and deserialization. +- {gh-pr}`289` {gh-issue}`264` Improve the `TransformerParameters` class and the transformers catalogue + + - Add 15kV transformers to the catalogue (SE and FT) + - Add single-phase transformers to the catalogue (Schneider Imprego) + - Add step-up transformers to the catalogue (Cahors "Serie Jaune") + - Use the correct LV side no-load voltage as defined in the datasheets (some 400V became 410V) + - Revert {gh-pr}`282` to keep the IEC 600076 names `uhv` and `ulv` for the transformer voltages. + - Replace the `type` parameter of `TransformerParameters` constructors by `vg` for vector group. + - `TransformerParameters.type` now returns `three-phase`, `single-phase` or `center-tapped`. Use + `TransformerParameters.vg` to get vector group. + - Modify the names of the transformers in the catalogue to add voltage levels and vector groups + +- {gh-pr}`285` {gh-issue}`279` Add maximum loading for lines and transformers. + + - The constructors of `Transformer` and `Line` now accept a unitless `max_loading` parameter equal + to 1 (=100%) by default. + - The parameter `max_currents` of `LineParameters` is now called `ampacities`. + - The `Line` class gained a new property `max_currents` that returns the maximal admissible currents + (in Amps) for each conductor: `line.max_current = line.parameters.ampacity * line.max_loading`. + - The `res_violated` property of `Transformer` and `Line` now take into account this `max_loading`. + - The `Line` and `Transformer` classes have a new `res_loading` property to compute the loading of + the element: + - `line.res_loading = line.res_currents / line.parameters.ampacities` + - `transformer.res_loading = sum(transformer.res_powers) / transformer.parameters.sn` + +- {gh-pr}`286` The deprecated method `LineParameters.from_name_mv` is removed. +- {gh-pr}`283` Several changes related to the `LineParameters`: + + - The `max_current`, `section`, `insulator_type` and `conductor_type` parameters are renamed to + `max_currents`, `sections`, `insulators` and `materials` respectively. The new parameters accept + arrays of values, one per conductor. + - The class method `from_geometry` now accepts several additional arguments related to the neutral + (`material_neutral`, `insulator_neutral`, `max_current_neutral`) + - The enumerated classes `InsulatorType` and `ConductorType` are renamed to `Insulator` and `Material`. + Their old names are deprecated and will be removed in a future release. + - The insulator `UNKNOWN` is removed. Please use `None` if the insulator is unknown. + - The insulator `NONE` is added. It must be used to describe conductors without insulator. + - The catalogue has now several additional columns related to the neutral parameters (resistance, + reactance, susceptance, material, insulator, maximal current). The `get_catalogue` and the + `from_catalogue` methods have been changed to accept filter on the columns (`material_neutral`, + `insulator_neutral`, `section_neutral`) + +- {gh-pr}`281` Add official support for Python 3.13. +- {gh-issue}`278` {gh-pr}`280` Modify the `Bus` voltage limits: + + - The `min_voltage` and `max_voltage` parameters and attributes of `Bus` have been replaced by + `nominal_voltage` (phase-to-phase, in V), a `min_voltage_level` (unitless) and a `max_voltage_level` + (unitless). + - `Bus` gained a new property `res_voltage_levels` that returns the voltage levels of the bus + as a percentage of the nominal voltage; + - The JSON file format also changed to take into account these changes. If a `min_voltage` or + `max_voltage` existed in a file of a previous version, they are lost when upgrading the file. + +- {gh-pr}`277` Fix the definition of constant current loads to be the magnitudes of the currents + and their phase shift from the voltages instead of the absolute phase shift. Currents should no + longer be rotated by 120° to be in sync with the voltages. +- {gh-pr}`276` Add a backward-forward solver (experimental). +- {gh-pr}`275` Use [uv](https://docs.astral.sh/uv/) instead of [Rye](https://rye.astral.sh/) as dependency manager. +- {gh-pr}`273` Dynamically calculate the stacklevel of the first frame outside of `roseau.load_flow` for warnings +- {gh-pr}`272` {gh-issue}`271`: Fix segfault when phases of a potential reference are not the same as the bus phases. +- {gh-pr}`270` Use [Rye](https://rye.astral.sh/) instead of [Poetry](https://python-poetry.org/) as dependency manager. +- {gh-pr}`269` Optimize the SVG files of the documentation. +- {gh-pr}`268` Set up ReadTheDoc to automatically compile the documentation. +- {gh-pr}`267` Add a section in the documentation on Google Colab secrets. + ## Version 0.10.0 -- A wheel for Python 3.13 is also available. +- A wheel for Python 3.13 is available. - The wheels for Windows are now available. The problem was the same as the one of the [issue 28551](https://github.com/matplotlib/matplotlib/issues/28551) of the Matplotlib repository. - {gh-pr}`237` Improvements of the Sphinx configuration. diff --git a/doc/Installation.md b/doc/Installation.md index 3adac49f..e3b3b463 100644 --- a/doc/Installation.md +++ b/doc/Installation.md @@ -114,7 +114,7 @@ the corresponding functions. They can be installed with the If you are using Jupyter Notebooks, you can install `roseau-load-flow` directly from a notebook cell with: -```ipython3 +```python-console In [1]: %pip install roseau-load-flow ``` diff --git a/doc/License.md b/doc/License.md index 5edf197d..0d12c110 100644 --- a/doc/License.md +++ b/doc/License.md @@ -93,10 +93,26 @@ the license key from versioning by adding it to your `.gitignore` file. ## How to set an environment variable? If you are not sure how to set an environment variable, [this article](https://www.bitecode.dev/p/environment-variables-for-beginners) -has instructions for Windows, MacOS and Linux. The section [Persisting an environment variable](https://www.bitecode.dev/i/121864947/persisting-an-environment-variable) +has instructions for Windows, macOS and Linux. The section [Persisting an environment variable](https://www.bitecode.dev/i/121864947/persisting-an-environment-variable) explains how to make the environment variable persistent on your machine so that you don't have to set it every time you open a new terminal. +### For Google Colab users + +The "Secrets" feature in Google Colab is very useful for defining local variables. In the left panel, open the 'Secrets' section. Create a new variable called `ROSEAU_LOAD_FLOW_LICENSE_KEY`, with the value being your license key. This variable is personal to you, and the toggle will allow you to enable access to the license key for notebooks of your choice. + +```{image} /_static/2024_09_16_Google_Colab_Environment_Variable.png +:alt: Google Colab environment variable +:align: center +``` + +To set the environment variable, add the following in a cell at the beginning of your notebook: + +``` +from google.colab import userdata +os.environ['ROSEAU_LOAD_FLOW_LICENSE_KEY'] = userdata.get('ROSEAU_LOAD_FLOW_LICENSE_KEY') +``` + ### For Jupyter Notebook users If you are using a _Jupyter Notebook_, you can follow these instructions to set the environment @@ -108,7 +124,7 @@ variable: ROSEAU_LOAD_FLOW_LICENSE_KEY="A8C6DA-9405FB-E74FB9-C71C3C-207661-V3" ``` 2. Add a cell to the beginning of your notebook with the following content and execute it: - ```ipython3 + ```python-console %pip install python-dotenv %load_ext dotenv %dotenv diff --git a/doc/_static/2024_09_16_Google_Colab_Environment_Variable.png b/doc/_static/2024_09_16_Google_Colab_Environment_Variable.png new file mode 100644 index 00000000..b3ff0016 --- /dev/null +++ b/doc/_static/2024_09_16_Google_Colab_Environment_Variable.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d0a5e9a1f3daee0a3e8dc46ebe7aee5fc66bb6c1ba03381d03f972ddcc00d61 +size 77012 diff --git a/doc/_static/Advanced/Goldstein_And_Price.svg b/doc/_static/Advanced/Goldstein_And_Price.svg index 5f02963e..292ae89a 100644 --- a/doc/_static/Advanced/Goldstein_And_Price.svg +++ b/doc/_static/Advanced/Goldstein_And_Price.svg @@ -1,176 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Advanced_Tutorial.svg b/doc/_static/Advanced_Tutorial.svg index d52155df..6b6690d2 100644 --- a/doc/_static/Advanced_Tutorial.svg +++ b/doc/_static/Advanced_Tutorial.svg @@ -1,3 +1 @@ - - -
load3
load3
transfo
trans...
vs
vs
bus0_mv
bus0_mv
bus0_lv
bus0_lv
line1
line1
bus1
bus1
line2
line2
line3
line3
load_bus1
load_bus1
line4
line4
load_bus2
load_bus2
bus2
bus2
line5
line5
load_bus3
load_bus3
load1
load1
load2
load2
Legend
Legend
Buses
Buses
Branches
Branches
Loads & sources
Loads & sources
Text is not SVG - cannot display
+
load3
load3
transfo
trans...
vs
vs
bus0_mv
bus0_mv
bus0_lv
bus0_lv
line1
line1
bus1
bus1
line2
line2
line3
line3
load_bus1
load_bus1
line4
line4
load_bus2
load_bus2
bus2
bus2
line5
line5
load_bus3
load_bus3
load1
load1
load2
load2
Legend
Legend
Buses
Buses
Branches
Branches
Loads & sources
Loads & sources
diff --git a/doc/_static/Bus.svg b/doc/_static/Bus.svg index e371a286..cdec364c 100644 --- a/doc/_static/Bus.svg +++ b/doc/_static/Bus.svg @@ -1,98 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Getting_Started_Tutorial.svg b/doc/_static/Getting_Started_Tutorial.svg index 241c6ab0..a37db5b0 100644 --- a/doc/_static/Getting_Started_Tutorial.svg +++ b/doc/_static/Getting_Started_Tutorial.svg @@ -1,3 +1 @@ - - -
\(V\)
\(V\)
\(V = 230V\)
\(R = 0.1 \Omega...
\(R\)
\(R\)
\(R\)
\(P\)
\(P\)
\(P = 1...
\(l=2km\)
Wye Source
Wye Source
Wye Load
Wye Load
Simplified line
Simplified line
Ground
Ground
Text is not SVG - cannot display
+
\(V\)
\(V\)
\(V = 230V\)
\(R = 0.1 \Omega...
\(R\)
\(R\)
\(R\)
\(P\)
\(P\)
\(P = 1...
\(l=2km\)
Wye Source
Wye Source
Wye Load
Wye Load
Simplified line
Simplified line
Ground
Ground
diff --git a/doc/_static/Ground.svg b/doc/_static/Ground.svg index b4b36c64..d54e4113 100644 --- a/doc/_static/Ground.svg +++ b/doc/_static/Ground.svg @@ -1,54 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/IO/DGS_Line_Basic_Data.png b/doc/_static/IO/DGS_Line_Basic_Data.png new file mode 100644 index 00000000..be7bc7bb --- /dev/null +++ b/doc/_static/IO/DGS_Line_Basic_Data.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3bf4c98e15bbf8ee9163eb5d129220523e76669368fcc1f4d5c5604e7283fe1 +size 42332 diff --git a/doc/_static/IO/DGS_Line_Load_Flow.png b/doc/_static/IO/DGS_Line_Load_Flow.png new file mode 100644 index 00000000..552b372e --- /dev/null +++ b/doc/_static/IO/DGS_Line_Load_Flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5499518321f6386729327b0b1cf56c3f980b227b1f3c6e920223ba750d640aae +size 39237 diff --git a/doc/_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Basic_Data.png b/doc/_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Basic_Data.png new file mode 100644 index 00000000..1b2335e0 --- /dev/null +++ b/doc/_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Basic_Data.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26f3c81a7e229499f09d37b744d5fc569fbe203f3e431a9ac155e8785aa3af46 +size 47452 diff --git a/doc/_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Load_Flow.png b/doc/_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Load_Flow.png new file mode 100644 index 00000000..8ddbf2e7 --- /dev/null +++ b/doc/_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Load_Flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9043d604f43465e48af45a9113896bc749addf8b23665d8a9dec307f7190a39f +size 38999 diff --git a/doc/_static/Line/American_Shunt_Line.svg b/doc/_static/Line/American_Shunt_Line.svg index bdac2c6b..f1928def 100644 --- a/doc/_static/Line/American_Shunt_Line.svg +++ b/doc/_static/Line/American_Shunt_Line.svg @@ -1,781 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/American_Simplified_Line.svg b/doc/_static/Line/American_Simplified_Line.svg index 8a8df683..debb628b 100644 --- a/doc/_static/Line/American_Simplified_Line.svg +++ b/doc/_static/Line/American_Simplified_Line.svg @@ -1,351 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/European_Shunt_Line.svg b/doc/_static/Line/European_Shunt_Line.svg index 7af77369..856168d7 100644 --- a/doc/_static/Line/European_Shunt_Line.svg +++ b/doc/_static/Line/European_Shunt_Line.svg @@ -1,781 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/European_Simplified_Line.svg b/doc/_static/Line/European_Simplified_Line.svg index 4d91a731..f82b4ee8 100644 --- a/doc/_static/Line/European_Simplified_Line.svg +++ b/doc/_static/Line/European_Simplified_Line.svg @@ -1,351 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Image_Method_Circle.svg b/doc/_static/Line/Image_Method_Circle.svg index 2000a40d..6418d25c 100644 --- a/doc/_static/Line/Image_Method_Circle.svg +++ b/doc/_static/Line/Image_Method_Circle.svg @@ -1,162 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Image_Method_Plane.svg b/doc/_static/Line/Image_Method_Plane.svg index 5a25fa17..1b0ee8c4 100644 --- a/doc/_static/Line/Image_Method_Plane.svg +++ b/doc/_static/Line/Image_Method_Plane.svg @@ -1,190 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Shunt_Line.svg b/doc/_static/Line/Shunt_Line.svg index 8188899d..d177f5ad 100644 --- a/doc/_static/Line/Shunt_Line.svg +++ b/doc/_static/Line/Shunt_Line.svg @@ -1,765 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Simplified_Line.svg b/doc/_static/Line/Simplified_Line.svg index 32c79e96..7e6f8ea1 100644 --- a/doc/_static/Line/Simplified_Line.svg +++ b/doc/_static/Line/Simplified_Line.svg @@ -1,332 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Twisted_Geometry.svg b/doc/_static/Line/Twisted_Geometry.svg index 987a5373..c9272c87 100644 --- a/doc/_static/Line/Twisted_Geometry.svg +++ b/doc/_static/Line/Twisted_Geometry.svg @@ -1,35396 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Twisted_Geometry_Details.svg b/doc/_static/Line/Twisted_Geometry_Details.svg index 399c9a3c..2403780b 100644 --- a/doc/_static/Line/Twisted_Geometry_Details.svg +++ b/doc/_static/Line/Twisted_Geometry_Details.svg @@ -1,171 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Underground_Geometry.svg b/doc/_static/Line/Underground_Geometry.svg index dd6b0203..1491662a 100644 --- a/doc/_static/Line/Underground_Geometry.svg +++ b/doc/_static/Line/Underground_Geometry.svg @@ -1,78714 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Line/Underground_Geometry_Details.svg b/doc/_static/Line/Underground_Geometry_Details.svg index 1030c983..577653fc 100644 --- a/doc/_static/Line/Underground_Geometry_Details.svg +++ b/doc/_static/Line/Underground_Geometry_Details.svg @@ -1,173 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/American_Delta_Load.svg b/doc/_static/Load/American_Delta_Load.svg index 48749c96..40a7cce5 100644 --- a/doc/_static/Load/American_Delta_Load.svg +++ b/doc/_static/Load/American_Delta_Load.svg @@ -1,218 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/American_Star_Load.svg b/doc/_static/Load/American_Star_Load.svg index d6c6b6eb..3a682808 100644 --- a/doc/_static/Load/American_Star_Load.svg +++ b/doc/_static/Load/American_Star_Load.svg @@ -1,213 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/European_Delta_Load.svg b/doc/_static/Load/European_Delta_Load.svg index 211205e8..d32a93c4 100644 --- a/doc/_static/Load/European_Delta_Load.svg +++ b/doc/_static/Load/European_Delta_Load.svg @@ -1,200 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/European_Star_Load.svg b/doc/_static/Load/European_Star_Load.svg index db0fc2bd..424bab8f 100644 --- a/doc/_static/Load/European_Star_Load.svg +++ b/doc/_static/Load/European_Star_Load.svg @@ -1,195 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Constant_P_Projection.svg b/doc/_static/Load/FlexibleLoad/Constant_P_Projection.svg index 8ff4e79b..a094f3f4 100644 --- a/doc/_static/Load/FlexibleLoad/Constant_P_Projection.svg +++ b/doc/_static/Load/FlexibleLoad/Constant_P_Projection.svg @@ -1,6210 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Constant_Q_Projection.svg b/doc/_static/Load/FlexibleLoad/Constant_Q_Projection.svg index e715b2e8..e1bd73f8 100644 --- a/doc/_static/Load/FlexibleLoad/Constant_Q_Projection.svg +++ b/doc/_static/Load/FlexibleLoad/Constant_Q_Projection.svg @@ -1,6210 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Control_PU_Cons.svg b/doc/_static/Load/FlexibleLoad/Control_PU_Cons.svg index 66fc08e4..4100f481 100644 --- a/doc/_static/Load/FlexibleLoad/Control_PU_Cons.svg +++ b/doc/_static/Load/FlexibleLoad/Control_PU_Cons.svg @@ -1,580 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Control_PU_Prod.svg b/doc/_static/Load/FlexibleLoad/Control_PU_Prod.svg index 7add47d3..72d378f4 100644 --- a/doc/_static/Load/FlexibleLoad/Control_PU_Prod.svg +++ b/doc/_static/Load/FlexibleLoad/Control_PU_Prod.svg @@ -1,580 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Control_QU.svg b/doc/_static/Load/FlexibleLoad/Control_QU.svg index a994fc19..52007490 100644 --- a/doc/_static/Load/FlexibleLoad/Control_QU.svg +++ b/doc/_static/Load/FlexibleLoad/Control_QU.svg @@ -1,621 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Eucl.svg b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Eucl.svg index 7f60ad40..6ef97b5c 100644 --- a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Eucl.svg +++ b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Eucl.svg @@ -1,69 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_P.svg b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_P.svg index c103b187..ce6a44ab 100644 --- a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_P.svg +++ b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_P.svg @@ -1,62 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Q.svg b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Q.svg index 803fe96b..29b79bf2 100644 --- a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Q.svg +++ b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Q.svg @@ -1,67 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Qmin_Qmax.svg b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Qmin_Qmax.svg index 7923fd93..6ff2fa8f 100644 --- a/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Qmin_Qmax.svg +++ b/doc/_static/Load/FlexibleLoad/Domain_Pconst_QU_Qmin_Qmax.svg @@ -1,95 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Domain_Pconst_Qconst.svg b/doc/_static/Load/FlexibleLoad/Domain_Pconst_Qconst.svg index b2f13d7f..b22a81fd 100644 --- a/doc/_static/Load/FlexibleLoad/Domain_Pconst_Qconst.svg +++ b/doc/_static/Load/FlexibleLoad/Domain_Pconst_Qconst.svg @@ -1,61 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Domain_PmaxU_QU.svg b/doc/_static/Load/FlexibleLoad/Domain_PmaxU_QU.svg index 17136493..d2a1051b 100644 --- a/doc/_static/Load/FlexibleLoad/Domain_PmaxU_QU.svg +++ b/doc/_static/Load/FlexibleLoad/Domain_PmaxU_QU.svg @@ -1,3587 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Domain_PmaxU_Qconst.svg b/doc/_static/Load/FlexibleLoad/Domain_PmaxU_Qconst.svg index 19a8ae38..499ca3bf 100644 --- a/doc/_static/Load/FlexibleLoad/Domain_PmaxU_Qconst.svg +++ b/doc/_static/Load/FlexibleLoad/Domain_PmaxU_Qconst.svg @@ -1,62 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Euclidean_Projection.svg b/doc/_static/Load/FlexibleLoad/Euclidean_Projection.svg index 2e5321ce..db253dd5 100644 --- a/doc/_static/Load/FlexibleLoad/Euclidean_Projection.svg +++ b/doc/_static/Load/FlexibleLoad/Euclidean_Projection.svg @@ -1,6210 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Control_Curve_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Control_Curve_Example.svg index 93e9ed0c..6fe91f69 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Control_Curve_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Control_Curve_Example.svg @@ -1,578 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Trajectory_Example.svg index ffa9650e..f701d1de 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_Eucl_Trajectory_Example.svg @@ -1,782 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Control_Curve_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Control_Curve_Example.svg index b7f741e7..583d6887 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Control_Curve_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Control_Curve_Example.svg @@ -1,578 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Trajectory_Example.svg index 406aa583..275643bb 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_P_Trajectory_Example.svg @@ -1,782 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Control_Curve_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Control_Curve_Example.svg index f0c87749..85d838d7 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Control_Curve_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Control_Curve_Example.svg @@ -1,578 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Trajectory_Example.svg index 9ca66dec..8c3587d4 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_Q_Trajectory_Example.svg @@ -1,782 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Control_Curve_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Control_Curve_Example.svg index 47a78c22..21040376 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Control_Curve_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Control_Curve_Example.svg @@ -1,578 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Trajectory_Example.svg index d9c5c0e8..e7dda17e 100644 --- a/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/Pconst_QU_Qmin_Qmax_Trajectory_Example.svg @@ -1,782 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_1_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_1_Trajectory_Example.svg index c74aa94c..3ef38744 100644 --- a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_1_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_1_Trajectory_Example.svg @@ -1,811 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_2_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_2_Trajectory_Example.svg index c66562d7..0fb5ffc9 100644 --- a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_2_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Sequential_2_Trajectory_Example.svg @@ -1,811 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_2_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_2_Trajectory_Example.svg index b7719f51..91fd76e0 100644 --- a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_2_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_2_Trajectory_Example.svg @@ -1,819 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_Trajectory_Example.svg index dbe4d207..d1881102 100644 --- a/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/PmaxU_QU_Simultaneous_Trajectory_Example.svg @@ -1,811 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Control_Curve_Example.svg b/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Control_Curve_Example.svg index e2bdb5e5..f2b06f98 100644 --- a/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Control_Curve_Example.svg +++ b/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Control_Curve_Example.svg @@ -1,535 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.svg b/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.svg index 76c8ecd0..6cd6f5fc 100644 --- a/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.svg +++ b/doc/_static/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.svg @@ -1,733 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Network/Catalogue.html b/doc/_static/Network/Catalogue.html index 268fe2bf..9dfc5b69 100644 --- a/doc/_static/Network/Catalogue.html +++ b/doc/_static/Network/Catalogue.html @@ -2,6 +2,11 @@ + - + -
+
diff --git a/doc/_static/PotentialRef.svg b/doc/_static/PotentialRef.svg index a20f94c1..7a27bd07 100644 --- a/doc/_static/PotentialRef.svg +++ b/doc/_static/PotentialRef.svg @@ -1,40 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/PotentialRef_With_Ground.svg b/doc/_static/PotentialRef_With_Ground.svg index e91fdefb..13ad6428 100644 --- a/doc/_static/PotentialRef_With_Ground.svg +++ b/doc/_static/PotentialRef_With_Ground.svg @@ -1,61 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Roseau_Load_Flow_Stacked.svg b/doc/_static/Roseau_Load_Flow_Stacked.svg index 240eb9ff..c9a34c29 100644 --- a/doc/_static/Roseau_Load_Flow_Stacked.svg +++ b/doc/_static/Roseau_Load_Flow_Stacked.svg @@ -1,137 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Star_Voltage_Source.svg b/doc/_static/Star_Voltage_Source.svg index 235319ed..d4ece2e9 100644 --- a/doc/_static/Star_Voltage_Source.svg +++ b/doc/_static/Star_Voltage_Source.svg @@ -1,195 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Switch.svg b/doc/_static/Switch.svg index 9e3f2268..98a09414 100644 --- a/doc/_static/Switch.svg +++ b/doc/_static/Switch.svg @@ -1,216 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/American_Center_Tapped_Transformer.svg b/doc/_static/Transformer/American_Center_Tapped_Transformer.svg index b059dcc5..c3916c22 100644 --- a/doc/_static/Transformer/American_Center_Tapped_Transformer.svg +++ b/doc/_static/Transformer/American_Center_Tapped_Transformer.svg @@ -1,300 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/American_Dyn11.svg b/doc/_static/Transformer/American_Dyn11.svg index dd8d673f..f9f9aa16 100644 --- a/doc/_static/Transformer/American_Dyn11.svg +++ b/doc/_static/Transformer/American_Dyn11.svg @@ -1,567 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/American_Single_Phase_Transformer.svg b/doc/_static/Transformer/American_Single_Phase_Transformer.svg index 3050eb94..5c33c3e1 100644 --- a/doc/_static/Transformer/American_Single_Phase_Transformer.svg +++ b/doc/_static/Transformer/American_Single_Phase_Transformer.svg @@ -1,207 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/American_Three_Phase_Transformer.svg b/doc/_static/Transformer/American_Three_Phase_Transformer.svg index b3ad6cb3..fa69be0a 100644 --- a/doc/_static/Transformer/American_Three_Phase_Transformer.svg +++ b/doc/_static/Transformer/American_Three_Phase_Transformer.svg @@ -1,736 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/European_Center_Tapped_Transformer.svg b/doc/_static/Transformer/European_Center_Tapped_Transformer.svg index 2ba184aa..75cd937b 100644 --- a/doc/_static/Transformer/European_Center_Tapped_Transformer.svg +++ b/doc/_static/Transformer/European_Center_Tapped_Transformer.svg @@ -1,273 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/European_Dyn11.svg b/doc/_static/Transformer/European_Dyn11.svg index 0864f5ef..9e5a8626 100644 --- a/doc/_static/Transformer/European_Dyn11.svg +++ b/doc/_static/Transformer/European_Dyn11.svg @@ -1,516 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/European_Single_Phase_Transformer.svg b/doc/_static/Transformer/European_Single_Phase_Transformer.svg index be1e5143..0b8a075e 100644 --- a/doc/_static/Transformer/European_Single_Phase_Transformer.svg +++ b/doc/_static/Transformer/European_Single_Phase_Transformer.svg @@ -1,192 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/European_Three_Phase_Transformer.svg b/doc/_static/Transformer/European_Three_Phase_Transformer.svg index 925e9713..9fe7ca59 100644 --- a/doc/_static/Transformer/European_Three_Phase_Transformer.svg +++ b/doc/_static/Transformer/European_Three_Phase_Transformer.svg @@ -1,685 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/2023_03_30_Fiche_Technique_France_Transfo.pdf b/doc/_static/Transformer/References/2023_03_30_Fiche_Technique_France_Transfo.pdf similarity index 100% rename from doc/_static/Transformer/2023_03_30_Fiche_Technique_France_Transfo.pdf rename to doc/_static/Transformer/References/2023_03_30_Fiche_Technique_France_Transfo.pdf diff --git a/doc/_static/Transformer/2023_03_31_Fiche_Technique_Schneider_Electric.pdf b/doc/_static/Transformer/References/2023_03_31_Fiche_Technique_Schneider_Electric.pdf similarity index 100% rename from doc/_static/Transformer/2023_03_31_Fiche_Technique_Schneider_Electric.pdf rename to doc/_static/Transformer/References/2023_03_31_Fiche_Technique_Schneider_Electric.pdf diff --git a/doc/_static/Transformer/Minera-EcoDesign2021-20kV_ZZ6921.pdf b/doc/_static/Transformer/References/2024_03_18_Minera-EcoDesign2021-20kV_ZZ6921.pdf similarity index 100% rename from doc/_static/Transformer/Minera-EcoDesign2021-20kV_ZZ6921.pdf rename to doc/_static/Transformer/References/2024_03_18_Minera-EcoDesign2021-20kV_ZZ6921.pdf diff --git a/doc/_static/Transformer/Trihal-EcoDesign2021-20kV_ZZ6925.pdf b/doc/_static/Transformer/References/2024_03_18_Trihal-EcoDesign2021-20kV_ZZ6925.pdf similarity index 100% rename from doc/_static/Transformer/Trihal-EcoDesign2021-20kV_ZZ6925.pdf rename to doc/_static/Transformer/References/2024_03_18_Trihal-EcoDesign2021-20kV_ZZ6925.pdf diff --git a/doc/_static/Transformer/Vegeta-EcoDesign2021-20kV_ZZ6924.pdf b/doc/_static/Transformer/References/2024_03_18_Vegeta-EcoDesign2021-20kV_ZZ6924.pdf similarity index 100% rename from doc/_static/Transformer/Vegeta-EcoDesign2021-20kV_ZZ6924.pdf rename to doc/_static/Transformer/References/2024_03_18_Vegeta-EcoDesign2021-20kV_ZZ6924.pdf diff --git a/doc/_static/Transformer/References/2024_11_25_FRAED215018FR-Distribution-HTA-2023.pdf b/doc/_static/Transformer/References/2024_11_25_FRAED215018FR-Distribution-HTA-2023.pdf new file mode 100644 index 00000000..fe7adc72 Binary files /dev/null and b/doc/_static/Transformer/References/2024_11_25_FRAED215018FR-Distribution-HTA-2023.pdf differ diff --git a/doc/_static/Transformer/References/2024_11_25_Schneider Electric_BC-Imprego_84408.pdf b/doc/_static/Transformer/References/2024_11_25_Schneider Electric_BC-Imprego_84408.pdf new file mode 100644 index 00000000..43088d12 Binary files /dev/null and b/doc/_static/Transformer/References/2024_11_25_Schneider Electric_BC-Imprego_84408.pdf differ diff --git a/doc/_static/Transformer/References/2024_11_25_Schneider Electric_BC-Imprego_84410.pdf b/doc/_static/Transformer/References/2024_11_25_Schneider Electric_BC-Imprego_84410.pdf new file mode 100644 index 00000000..89c66f51 Binary files /dev/null and b/doc/_static/Transformer/References/2024_11_25_Schneider Electric_BC-Imprego_84410.pdf differ diff --git a/doc/_static/Transformer/References/2024_11_25_chapitre_transformateurs_prives_0-cahors.pdf b/doc/_static/Transformer/References/2024_11_25_chapitre_transformateurs_prives_0-cahors.pdf new file mode 100644 index 00000000..2a469394 Binary files /dev/null and b/doc/_static/Transformer/References/2024_11_25_chapitre_transformateurs_prives_0-cahors.pdf differ diff --git a/doc/_static/Transformer/References/2024_11_25_transformateur-triphase-schneider-imprego-84243-bt-bt.jpg b/doc/_static/Transformer/References/2024_11_25_transformateur-triphase-schneider-imprego-84243-bt-bt.jpg new file mode 100644 index 00000000..cc829f77 Binary files /dev/null and b/doc/_static/Transformer/References/2024_11_25_transformateur-triphase-schneider-imprego-84243-bt-bt.jpg differ diff --git a/doc/_static/Transformer/Windings.svg b/doc/_static/Transformer/Windings.svg index c53433bb..3bc5e315 100644 --- a/doc/_static/Transformer/Windings.svg +++ b/doc/_static/Transformer/Windings.svg @@ -1,640 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Dd0.svg b/doc/_static/Transformer/Windings_Dd0.svg index e4c809d9..c3ac2f63 100644 --- a/doc/_static/Transformer/Windings_Dd0.svg +++ b/doc/_static/Transformer/Windings_Dd0.svg @@ -1,84 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Dd6.svg b/doc/_static/Transformer/Windings_Dd6.svg index 34147826..1d2220ef 100644 --- a/doc/_static/Transformer/Windings_Dd6.svg +++ b/doc/_static/Transformer/Windings_Dd6.svg @@ -1,86 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Dy11.svg b/doc/_static/Transformer/Windings_Dy11.svg index f8b254b9..5603e241 100644 --- a/doc/_static/Transformer/Windings_Dy11.svg +++ b/doc/_static/Transformer/Windings_Dy11.svg @@ -1,92 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Dy5.svg b/doc/_static/Transformer/Windings_Dy5.svg index e6b92be3..c6e47421 100644 --- a/doc/_static/Transformer/Windings_Dy5.svg +++ b/doc/_static/Transformer/Windings_Dy5.svg @@ -1,101 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Dz0.svg b/doc/_static/Transformer/Windings_Dz0.svg index f2691566..f8663b15 100644 --- a/doc/_static/Transformer/Windings_Dz0.svg +++ b/doc/_static/Transformer/Windings_Dz0.svg @@ -1,100 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Dz6.svg b/doc/_static/Transformer/Windings_Dz6.svg index 3e44da0d..0b009eda 100644 --- a/doc/_static/Transformer/Windings_Dz6.svg +++ b/doc/_static/Transformer/Windings_Dz6.svg @@ -1,108 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Yd11.svg b/doc/_static/Transformer/Windings_Yd11.svg index 5f4d1ba7..7d2ede88 100644 --- a/doc/_static/Transformer/Windings_Yd11.svg +++ b/doc/_static/Transformer/Windings_Yd11.svg @@ -1,92 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Yd5.svg b/doc/_static/Transformer/Windings_Yd5.svg index 5fbbf25f..ae0c9344 100644 --- a/doc/_static/Transformer/Windings_Yd5.svg +++ b/doc/_static/Transformer/Windings_Yd5.svg @@ -1,93 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Yy0.svg b/doc/_static/Transformer/Windings_Yy0.svg index 7e8b5a0b..2aa1bce8 100644 --- a/doc/_static/Transformer/Windings_Yy0.svg +++ b/doc/_static/Transformer/Windings_Yy0.svg @@ -1,91 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Yy6.svg b/doc/_static/Transformer/Windings_Yy6.svg index 85158b59..6e5affe7 100644 --- a/doc/_static/Transformer/Windings_Yy6.svg +++ b/doc/_static/Transformer/Windings_Yy6.svg @@ -1,106 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Yz11.svg b/doc/_static/Transformer/Windings_Yz11.svg index 7b6c3a0b..98e361b2 100644 --- a/doc/_static/Transformer/Windings_Yz11.svg +++ b/doc/_static/Transformer/Windings_Yz11.svg @@ -1,101 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/Transformer/Windings_Yz5.svg b/doc/_static/Transformer/Windings_Yz5.svg index 10c105f2..69751327 100644 --- a/doc/_static/Transformer/Windings_Yz5.svg +++ b/doc/_static/Transformer/Windings_Yz5.svg @@ -1,103 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/VoltageSource/American_Delta_Voltage_Source.svg b/doc/_static/VoltageSource/American_Delta_Voltage_Source.svg index ffc6afbc..c8a8d532 100644 --- a/doc/_static/VoltageSource/American_Delta_Voltage_Source.svg +++ b/doc/_static/VoltageSource/American_Delta_Voltage_Source.svg @@ -1,210 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/VoltageSource/American_Star_Voltage_Source.svg b/doc/_static/VoltageSource/American_Star_Voltage_Source.svg index 647b768b..ab8f8668 100644 --- a/doc/_static/VoltageSource/American_Star_Voltage_Source.svg +++ b/doc/_static/VoltageSource/American_Star_Voltage_Source.svg @@ -1,213 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/VoltageSource/European_Delta_Voltage_Source.svg b/doc/_static/VoltageSource/European_Delta_Voltage_Source.svg index 564f811b..937e078d 100644 --- a/doc/_static/VoltageSource/European_Delta_Voltage_Source.svg +++ b/doc/_static/VoltageSource/European_Delta_Voltage_Source.svg @@ -1,189 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/VoltageSource/European_Star_Voltage_Source.svg b/doc/_static/VoltageSource/European_Star_Voltage_Source.svg index edd56bea..99bb6132 100644 --- a/doc/_static/VoltageSource/European_Star_Voltage_Source.svg +++ b/doc/_static/VoltageSource/European_Star_Voltage_Source.svg @@ -1,192 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/doc/_static/css/custom.css b/doc/_static/css/custom.css index c9815e79..999b7b4e 100644 --- a/doc/_static/css/custom.css +++ b/doc/_static/css/custom.css @@ -78,7 +78,7 @@ h6, line-height: unset; } -/*Roseau colors */ +/* Roseau colors */ .roseau-primary { color: #234e83; } diff --git a/doc/advanced/Potential_Reference.md b/doc/advanced/Potential_Reference.md index 094d59b3..6230a0d9 100644 --- a/doc/advanced/Potential_Reference.md +++ b/doc/advanced/Potential_Reference.md @@ -165,7 +165,7 @@ lv_bus = rlf.Bus("LVBus", phases="abcn") rlf.VoltageSource("MVSource", bus=mv_bus, voltages=20e3) # Create a delta-wye transformer connecting the MV and LV buses -tp = rlf.TransformerParameters.from_catalogue("SE_Minera_AA0Ak_160kVA") +tp = rlf.TransformerParameters.from_catalogue("SE Minera AA0Ak 160kVA 20kV 410V Dyn11") rlf.Transformer("MV/LV Transformer", bus1=mv_bus, bus2=lv_bus, parameters=tp) # Define the potential references for the MV and LV sides @@ -199,7 +199,7 @@ lv_bus2 = rlf.Bus("LVBus2", phases="abcn") rlf.VoltageSource("Source", bus=mv_bus1, voltages=20_000) # Create a delta-wye transformer connecting the MV and LV buses -tp = rlf.TransformerParameters.from_catalogue("SE_Minera_AA0Ak_160kVA") +tp = rlf.TransformerParameters.from_catalogue("SE Minera AA0Ak 160kVA 20kV 410V Dyn11") rlf.Transformer("MV/LV Transformer", bus1=mv_bus1, bus2=lv_bus1, parameters=tp) # Create a common ground for the MV and LV sides @@ -241,7 +241,7 @@ lv_bus2 = rlf.Bus("LVBus2", phases="abcn") rlf.VoltageSource("Source", bus=mv_bus1, voltages=20_000) # Create a delta-wye transformer connecting the MV and LV buses -tp = rlf.TransformerParameters.from_catalogue("SE_Minera_AA0Ak_160kVA") +tp = rlf.TransformerParameters.from_catalogue("SE Minera AA0Ak 160kVA 20kV 410V Dyn11") rlf.Transformer("MV/LV Transformer", bus1=mv_bus1, bus2=lv_bus1, parameters=tp) # Create separate grounds for the MV and LV sides diff --git a/doc/advanced/Solvers.md b/doc/advanced/Solvers.md index 0dca8e64..a6ace3c2 100644 --- a/doc/advanced/Solvers.md +++ b/doc/advanced/Solvers.md @@ -131,3 +131,31 @@ The _Goldstein and Price_ solver accepts the following parameters: - `"m1"` the first constant of the _Goldstein and Price_ variant. By default: `0.1`. - `"m2"` the second constant of the _Goldstein and Price_ variant. By default: `0.9`. Note that the constraint $m_1 < m_2$ must be met. + +## Backward-Forward + +This is an implementation of the backward-forward sweep method, which offers an efficient alternative to traditional +Newton-Raphson algorithms. + +### Advantages + +- **Faster Execution Time**: The backward-forward sweep method generally executes more quickly than Newton-Raphson-based + approaches. + +### Limitations + +- **Modeling Restrictions**: + - The network cannot contain loops. + - Floating neutrals are not allowed for loads and sources. +- **Convergence**: This method may exhibit weaker convergence properties, particularly in scenarios involving + flexible loads. + +### Important Note + +This solver is still in the **experimental** stage. Users should be aware that certain edge cases may not be handled +correctly when utilizing the backward-forward sweep method. If you face any issues with this solver, please let +us know by filing a GitHub issue + +### Parameters + +The _Backward-Forward_ solver doesn't accept any parameter. diff --git a/doc/conf.py b/doc/conf.py index 779ba7be..d6a0fc73 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -22,8 +22,8 @@ # author = "Benoît Vinot" # The full version, including alpha/beta/rc tags -version = "0.10" -release = "0.10.0" +version = "0.11" +release = "0.11.0" # -- General configuration --------------------------------------------------- diff --git a/doc/images/Goldstein_And_Price.tex b/doc/images/Advanced/Goldstein_And_Price.tex similarity index 100% rename from doc/images/Goldstein_And_Price.tex rename to doc/images/Advanced/Goldstein_And_Price.tex diff --git a/doc/images/Load/FlexibleLoad/Control_PU_Cons.tex b/doc/images/Load/FlexibleLoad/Control_PU_Cons.tex index 6af6551c..c0758608 100644 --- a/doc/images/Load/FlexibleLoad/Control_PU_Cons.tex +++ b/doc/images/Load/FlexibleLoad/Control_PU_Cons.tex @@ -54,13 +54,25 @@ xticklabels={% $\uminnorm$,,$\udownnorm$,$\unomnorm$,$\uupnorm$,,$\umaxnorm$% },% - y tick label style={/pgf/number format/.cd,% + y tick label style={% + /pgf/number format/.cd,% set thousands separator={},% fixed,% - % fixed zerofill,% - precision=1,use comma},xmin=\xminnormvaleur,xmax=\xmaxnormvaleur,ymin=\yminnormvaleur,ymax=\ymaxnormvaleur,legend - columns=2,legend style={at={(0.5,-0.25)},anchor=north,nodes={text width=4cm}},cycle list/YlOrRd-5, cycle list - name=YlOrRd-5]%%%%%%%%%%%%%% initialize YlOrRd-5% + precision=1,% + use comma% + },% + xmin=\xminnormvaleur,% + xmax=\xmaxnormvaleur,% + ymin=\yminnormvaleur,% + ymax=\ymaxnormvaleur,% + legend columns=2,% + legend style={at={(0.5,-0.25)},% + anchor=north,% + nodes={text width=4cm}% + },% + cycle list/YlOrRd-5,% + cycle list name=YlOrRd-5% + ]%%%%%%%%%%%%%% initialize YlOrRd-5% % Piecewise linear function \addplot[non lisse, red] coordinates {% diff --git a/doc/images/Load/FlexibleLoad/Control_PU_Prod.tex b/doc/images/Load/FlexibleLoad/Control_PU_Prod.tex index 0cf048f1..3976939c 100644 --- a/doc/images/Load/FlexibleLoad/Control_PU_Prod.tex +++ b/doc/images/Load/FlexibleLoad/Control_PU_Prod.tex @@ -54,13 +54,25 @@ xticklabels={% $\uminnorm$,,$\udownnorm$,$\unomnorm$,$\uupnorm$,,$\umaxnorm$% },% - y tick label style={/pgf/number format/.cd,% + y tick label style={% + /pgf/number format/.cd,% set thousands separator={},% fixed,% - % fixed zerofill,% - precision=1,use comma},xmin=\xminnormvaleur,xmax=\xmaxnormvaleur,ymin=\yminnormvaleur,ymax=\ymaxnormvaleur,legend - columns=2,legend style={at={(0.5,-0.25)},anchor=north,nodes={text width=4cm}},cycle list/YlOrRd-5, cycle list - name=YlOrRd-5]%%%%%%%%%%%%%% initialize YlOrRd-5% + precision=1,% + use comma% + },% + xmin=\xminnormvaleur,% + xmax=\xmaxnormvaleur,% + ymin=\yminnormvaleur,% + ymax=\ymaxnormvaleur,% + legend columns=2,% + legend style={at={(0.5,-0.25)},% + anchor=north,% + nodes={text width=4cm}% + },% + cycle list/YlOrRd-5,% + cycle list name=YlOrRd-5% + ]%%%%%%%%%%%%%% initialize YlOrRd-5% % Piecewise linear function \addplot[non lisse, red] coordinates {% diff --git a/doc/images/Load/FlexibleLoad/Control_QU.tex b/doc/images/Load/FlexibleLoad/Control_QU.tex index b72fc91c..42f1b81c 100644 --- a/doc/images/Load/FlexibleLoad/Control_QU.tex +++ b/doc/images/Load/FlexibleLoad/Control_QU.tex @@ -56,7 +56,8 @@ xticklabels={% $\uminnorm$,,$\udownnorm$,$\unomnorm$,$\uupnorm$,,$\umaxnorm$% },% - y tick label style={/pgf/number format/.cd,% + y tick label style={% + /pgf/number format/.cd,% set thousands separator={},% fixed,% fixed zerofill,% @@ -69,10 +70,15 @@ xmax=\xmaxnormvaleur,% ymin=\yminnormvaleur,% ymax=\ymaxnormvaleur,% - % ylabel={$\alpha\left(|V_{p}|\right)$},% - % legend entries={Contrôles non lisses,Contrôles lisses},% - legend columns=2,legend style={at={(0.5,-0.25)},anchor=north,nodes={text width=4cm}},cycle list/YlOrRd-5, cycle list - name=YlOrRd-5]%%%%%%% initialize YlOrRd-5% + legend columns=2,% + legend style={% + at={(0.5,-0.25)},% + anchor=north,% + nodes={text width=4cm}% + },% + cycle list/YlOrRd-5,% + cycle list name=YlOrRd-5% + ]%%%%%%% initialize YlOrRd-5% % Fonction linéaire par morceaux \addplot[non lisse, red] coordinates {% diff --git a/doc/images/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.tex b/doc/images/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.tex index f93c85da..0e8b1d6f 100644 --- a/doc/images/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.tex +++ b/doc/images/Load/FlexibleLoad/PmaxU_Qconst_Trajectory_Example.tex @@ -75,8 +75,8 @@ style/.condition={\thisrow{v}==245}{pin={[pin style] above:\mylabel}},coordinate style/.condition={\thisrow{v}==250}{pin={[pin style] above:\mylabel}},coordinate style/.condition={\thisrow{v}==255}{pin={[pin style] below:\mylabel}},visualization depends on={\thisrow{v} \as - \myvalue},visualization depends on={value - $\qty[parse-numbers=false]{\pgfmathprintnumber{\thisrow{v}}}{V}$\as\mylabel},] \addplot[point meta={\thisrow{v}}] + \myvalue},visualization depends on={value + $\qty[parse-numbers=false]{\pgfmathprintnumber{\thisrow{v}}}{V}$\as\mylabel},] \addplot[point meta={\thisrow{v}}] table[x=p, y=q, col sep=comma] {Load/FlexibleLoad/PmaxU_Qconst_Example.csv};\draw[black] (axis cs:0,0) circle[radius=5000];%%%%%% Required to use the "v" column for two usages%%%%% \end{axis} diff --git a/doc/images/Makefile b/doc/images/Makefile index 0464950e..9a111ecd 100644 --- a/doc/images/Makefile +++ b/doc/images/Makefile @@ -4,6 +4,7 @@ LATEXMK:=$(shell which latexmk) LUALATEX:=$(shell which lualatex) PDF2SVG:=$(shell which pdf2svg) +SVGO:=$(shell which svgo) # Folders INPUT_FOLDER:=$(shell realpath .) @@ -32,6 +33,7 @@ $(OUTPUT_FOLDER)/%.pdf: %.tex Preambule.tex %.svg: %.pdf @$(PDF2SVG) $< $@ + @$(SVGO) --multipass --final-newline $@ clean: @rm -f $(AUX_FILES) $(LOG_FILES) $(PDF_FILES) *~ @@ -47,13 +49,16 @@ cleanall: clean checks: @if [ -z "$(PDF2SVG)" ]; then \ - echo "Pdf2svg is required to compile the figures!"; \ + echo "Pdf2svg is required to compile the figures! https://yihui.org/tinytex/"; \ fi; @if [ -z "$(LUALATEX)" ]; then \ - echo "LuaLaTeX is required to compile the figures!"; \ + echo "LuaLaTeX is required to compile the figures! https://yihui.org/tinytex/"; \ fi; @if [ -z "$(LATEXMK)" ]; then \ - echo "LaTeXmk is required to compile the figures!"; \ + echo "LaTeXmk is required to compile the figures! https://yihui.org/tinytex/"; \ + fi; + @if [ -z "$(SVGO)" ]; then \ + echo "Svgo is required to compile the figures! https://github.com/svg/svgo"; \ fi; # Local Variables: diff --git a/doc/index.md b/doc/index.md index 2d7c8b01..13b534b1 100644 --- a/doc/index.md +++ b/doc/index.md @@ -15,15 +15,31 @@ myst: # Welcome to the Roseau Load Flow documentation -`Roseau Load Flow` is a load flow solver capable of modeling 3-phase unbalanced power systems with -a wide variety of models for lines, transformers, loads, and sources. This software is developed -by [Roseau Technologies](https://www.roseautechnologies.com/en). +_Roseau Load Flow_ is a powerful multi-phase load flow solver for unbalanced power flow analysis that +offers: + +- Multi-phase, unbalanced power flow analysis +- Performance optimized solver written in C++ +- A catalogue of real-world transformer and line models +- An ergonomic object-oriented Python interface +- A comprehensive documentation with code examples +- Real-world distribution network data samples in the library (with more available on request) + +In addition to the following _unique_ set of features: + +- Support for floating neutrals for loads and sources +- Four-wire multi-phase modelling with no Kron's reduction, no transformations, no assumptions on the + network topology and no implicit earthing everywhere +- Support for flexible, voltage-dependent, loads directly in the Newton algorithm for better convergence + +This software is developed by [Roseau Technologies](https://www.roseautechnologies.com/en). -With this library, there is a sample of 20 low-voltage and 20 medium-voltage feeders included for an easy -start! Each network is given with its summer and winter load point. At _Roseau Technologies_, we are able to provide -the major part of the French medium and low voltage networks. For more information, please contact us at +_Roseau Load Flow_ ships with a sample of 20 low-voltage and 20 medium-voltage feeder networks. Each +network is provided with its summer and winter load points. At _Roseau Technologies_, we can provide +the major part of the French medium and low voltage networks on demand. For more information, please +contact us at [contact@roseautechnologies.com](mailto:contact@roseautechnologies.com). diff --git a/doc/models/Ground.md b/doc/models/Ground.md index 5c81567f..dee93347 100644 --- a/doc/models/Ground.md +++ b/doc/models/Ground.md @@ -135,7 +135,7 @@ en.res_buses.transform([np.abs, ft.partial(np.angle, deg=True)]) # | ('bus3', 'c') | 395.28 | 120.043 | # The requested voltages of the voltage sources are respected -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages[["voltage"]].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------|--------------------------:|-----------------------:| # | ('bus1', 'ab') | 400 | 6.31922e-19 | diff --git a/doc/models/Line/Parameters.md b/doc/models/Line/Parameters.md index 03e29c43..d55ae245 100644 --- a/doc/models/Line/Parameters.md +++ b/doc/models/Line/Parameters.md @@ -457,8 +457,8 @@ The formulas of the previous sections are used to get the impedance and shunt ad ... line_parameters = rlf.LineParameters.from_geometry( ... "twisted_example", ... line_type=rlf.LineType.TWISTED, -... conductor_type=rlf.ConductorType.AL, -... insulator_type=rlf.InsulatorType.PEX, +... material=rlf.Material.AL, +... insulator=rlf.Insulator.PEX, ... section=150, # mm² ... section_neutral=70, # mm² ... height=10, # m @@ -539,8 +539,8 @@ Please note that for underground lines, the provided height $h$ must be negative ... line_parameters = rlf.LineParameters.from_geometry( ... "underground_example", ... line_type=rlf.LineType.UNDERGROUND, -... conductor_type=rlf.ConductorType.AL, -... insulator_type=rlf.InsulatorType.PVC, +... material=rlf.Material.AL, +... insulator=rlf.Insulator.PVC, ... section=150, # mm² ... section_neutral=70, # mm² ... height=-1.5, # m # Underground so negative! diff --git a/doc/models/Load/CurrentLoad.md b/doc/models/Load/CurrentLoad.md index d547cd3a..f70d2ff0 100644 --- a/doc/models/Load/CurrentLoad.md +++ b/doc/models/Load/CurrentLoad.md @@ -20,25 +20,30 @@ _ZIP_ equation: $S = 0 \times V^0 + i \times V^1 + 0 \times V^2 \implies S \prop ## Equations -The equations are the following (star loads): +The equations are the following for star loads given the constant currents {math}`i_{\mathrm{abc}}`: ```{math} \left\{ \begin{aligned} - \underline{I_{\mathrm{abc}}} &= \mathrm{constant} \\ + \underline{I_{\mathrm{abc}}} &= i_{\mathrm{abc}} \frac{\underline{V_{\mathrm{abc}}} + -\underline{V_{\mathrm{n}}}}{|\underline{V_{\mathrm{abc}}}-\underline{V_{\mathrm{n}}}|} \\ \underline{I_{\mathrm{n}}} &= -\sum_{p\in\{\mathrm{a},\mathrm{b},\mathrm{c}\}}\underline{I_{p}} \end{aligned} \right. ``` -And the following (delta loads): +And the following for delta loads given the constant currents {math}`i_{\mathrm{ab}}`, +{math}`i_{\mathrm{bc}}` and {math}`i_{\mathrm{ca}}`: ```{math} \left\{ \begin{aligned} - \underline{I_{\mathrm{ab}}} &= \mathrm{constant} \\ - \underline{I_{\mathrm{bc}}} &= \mathrm{constant} \\ - \underline{I_{\mathrm{ca}}} &= \mathrm{constant} + \underline{I_{\mathrm{ab}}} &= i_{\mathrm{ab}} \frac{\underline{V_{\mathrm{a}}} + -\underline{V_{\mathrm{b}}}}{|\underline{V_{\mathrm{a}}}-\underline{V_{\mathrm{b}}}|} \\ + \underline{I_{\mathrm{bc}}} &= i_{\mathrm{bc}} \frac{\underline{V_{\mathrm{b}}} + -\underline{V_{\mathrm{c}}}}{|\underline{V_{\mathrm{b}}}-\underline{V_{\mathrm{c}}}|} \\ + \underline{I_{\mathrm{ca}}} &= i_{\mathrm{ca}} \frac{\underline{V_{\mathrm{c}}} + -\underline{V_{\mathrm{a}}}}{|\underline{V_{\mathrm{c}}}-\underline{V_{\mathrm{a}}}|} \end{aligned} \right. ``` @@ -74,15 +79,15 @@ en.solve_load_flow() # Get the current of the load (equal to the one provided) en.res_loads["current"].transform([np.abs, ft.partial(np.angle, deg=True)]) -# | | absolute | angle | -# |:--------------|------------:|--------:| -# | ('load', 'a') | 5 | 0 | -# | ('load', 'b') | 5 | -120 | -# | ('load', 'c') | 5 | 120 | -# | ('load', 'n') | 1.77636e-15 | 180 | +# | | absolute | angle | +# |:--------------|------------:|-----------:| +# | ('load', 'a') | 5 | 0 | +# | ('load', 'b') | 5 | -120 | +# | ('load', 'c') | 5 | 120 | +# | ('load', 'n') | 1.77636e-15 | -71.5651 | # Get the voltages of the network -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages["voltage"].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------|--------------------------:|-----------------------:| # | ('bus1', 'an') | 230.94 | 0 | @@ -99,10 +104,10 @@ en.solve_load_flow() # Get the currents of the loads of the network en.res_loads["current"].transform([np.abs, ft.partial(np.angle, deg=True)]) -# | | absolute | angle | -# |:--------------|-----------:|--------:| -# | ('load', 'a') | 5 | 0 | -# | ('load', 'b') | 2.5 | -120 | -# | ('load', 'c') | 0 | 180 | -# | ('load', 'n') | 4.33013 | 150 | +# | | absolute | angle | +# |:--------------|-----------:|------------:| +# | ('load', 'a') | 5 | -0.187647 | +# | ('load', 'b') | 2.5 | 119.999 | +# | ('load', 'c') | 0 | -0 | +# | ('load', 'n') | 4.32197 | -150.188 | ``` diff --git a/doc/models/Load/ImpedanceLoad.md b/doc/models/Load/ImpedanceLoad.md index 2a8f08dc..ebf04545 100644 --- a/doc/models/Load/ImpedanceLoad.md +++ b/doc/models/Load/ImpedanceLoad.md @@ -20,26 +20,27 @@ _ZIP_ equation: $S = 0 \times V^0 + 0 \times V^1 + z \times V^2 \implies S \prop ## Equations -The equations are the following (star loads): +The equations are the following for star loads given the constant impedances {math}`z_{\mathrm{abc}}`: ```{math} \left\{ \begin{aligned} \underline{I_{\mathrm{abc}}} &= \frac{\underline{V_{\mathrm{abc}}}-\underline{V_{\mathrm{n}}}}{ - \underline{Z_{\mathrm{abc}}}} \\ + \underline{z_{\mathrm{abc}}}} \\ \underline{I_{\mathrm{n}}} &= -\sum_{p\in\{\mathrm{a},\mathrm{b},\mathrm{c}\}}\underline{I_{p}} \end{aligned} \right. ``` -And the following (delta loads): +And the following for delta loads given the constant impedances {math}`z_{\mathrm{ab}}`, +{math}`z_{\mathrm{bc}}` and {math}`z_{\mathrm{ca}}`: ```{math} \left\{ \begin{aligned} - \underline{I_{\mathrm{ab}}} &= \frac{\underline{V_{\mathrm{a}}}-\underline{V_{\mathrm{b}}}}{\underline{Z_{\mathrm{ab}}}} \\ - \underline{I_{\mathrm{bc}}} &= \frac{\underline{V_{\mathrm{b}}}-\underline{V_{\mathrm{c}}}}{\underline{Z_{\mathrm{bc}}}} \\ - \underline{I_{\mathrm{ca}}} &= \frac{\underline{V_{\mathrm{c}}}-\underline{V_{\mathrm{a}}}}{\underline{Z_{\mathrm{ca}}}} + \underline{I_{\mathrm{ab}}} &= \frac{\underline{V_{\mathrm{a}}}-\underline{V_{\mathrm{b}}}}{\underline{z_{\mathrm{ab}}}} \\ + \underline{I_{\mathrm{bc}}} &= \frac{\underline{V_{\mathrm{b}}}-\underline{V_{\mathrm{c}}}}{\underline{z_{\mathrm{bc}}}} \\ + \underline{I_{\mathrm{ca}}} &= \frac{\underline{V_{\mathrm{c}}}-\underline{V_{\mathrm{a}}}}{\underline{z_{\mathrm{ca}}}} \end{aligned} \right. ``` @@ -78,7 +79,7 @@ load.res_voltages / load.res_currents[:3] # array([40.+3.j, 40.+3.j, 40.+3.j]) # Get the voltages of the network -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages["voltage"].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------|--------------------------:|-----------------------:| # | ('bus1', 'an') | 230.94 | -6.40192e-19 | @@ -97,7 +98,7 @@ load.res_voltages / load.res_currents[:3] # array([40.+4.j, 20.+2.j, 10.+1.j]) # Get the voltages of the network -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages["voltage"].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------|--------------------------:|-----------------------:| # | ('bus1', 'an') | 230.94 | 0 | diff --git a/doc/models/Load/PowerLoad.md b/doc/models/Load/PowerLoad.md index cec4acc0..fb350191 100644 --- a/doc/models/Load/PowerLoad.md +++ b/doc/models/Load/PowerLoad.md @@ -20,28 +20,29 @@ _ZIP_ equation: $S = s \times V^0 + 0 \times V^1 + 0 \times V^2 \implies S = \ma ## Equations -The equations are the following (star loads): +The equations are the following for star loads given the constant powers {math}`s_{\mathrm{abc}}`: ```{math} \left\{ \begin{aligned} - \underline{I_{\mathrm{abc}}} &= \left(\frac{\underline{S_{\mathrm{abc}}}}{\underline{V_{\mathrm{abc}}} + \underline{I_{\mathrm{abc}}} &= \left(\frac{\underline{s_{\mathrm{abc}}}}{\underline{V_{\mathrm{abc}}} -\underline{V_{\mathrm{n}}}}\right)^{\star} \\ \underline{I_{\mathrm{n}}} &= -\sum_{p\in\{\mathrm{a},\mathrm{b},\mathrm{c}\}}\underline{I_{p}} \end{aligned} \right. ``` -And the following (delta loads): +And the following for delta loads given the constant powers {math}`s_{\mathrm{ab}}`, +{math}`s_{\mathrm{bc}}` and {math}`s_{\mathrm{ca}}`: ```{math} \left\{ \begin{aligned} - \underline{I_{\mathrm{ab}}} &= \left(\frac{\underline{S_{\mathrm{ab}}}}{\underline{V_{\mathrm{a}}}-\underline + \underline{I_{\mathrm{ab}}} &= \left(\frac{\underline{s_{\mathrm{ab}}}}{\underline{V_{\mathrm{a}}}-\underline {V_{\mathrm{b}}}}\right)^{\star} \\ - \underline{I_{\mathrm{bc}}} &= \left(\frac{\underline{S_{\mathrm{bc}}}}{\underline{V_{\mathrm{b}}}-\underline + \underline{I_{\mathrm{bc}}} &= \left(\frac{\underline{s_{\mathrm{bc}}}}{\underline{V_{\mathrm{b}}}-\underline {V_{\mathrm{c}}}}\right)^{\star} \\ - \underline{I_{\mathrm{ca}}} &= \left(\frac{\underline{S_{\mathrm{ca}}}}{\underline{V_{\mathrm{c}}}-\underline + \underline{I_{\mathrm{ca}}} &= \left(\frac{\underline{s_{\mathrm{ca}}}}{\underline{V_{\mathrm{c}}}-\underline {V_{\mathrm{a}}}}\right)^{\star} \end{aligned} \right. @@ -86,7 +87,7 @@ en.res_loads["power"] # | ('load', 'n') | -5.57569e-31+ 2.25385e-32j | # Get the voltages of the network -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages["voltage"].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------|--------------------------:|-----------------------:| # | ('bus1', 'an') | 230.94 | 9.69325e-22 | @@ -110,7 +111,7 @@ en.res_loads["power"] # | ('load', 'n') | -148.93 + 3.78664e-14j | # Get the voltages of the network, bus2 voltages are no longer equal -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages["voltage"].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------|--------------------------:|-----------------------:| # | ('bus1', 'an') | 230.94 | 4.05321e-24 | diff --git a/doc/models/Transformer/Center_Tapped_Transformer.md b/doc/models/Transformer/Center_Tapped_Transformer.md index 1be48cdf..09cef4e9 100644 --- a/doc/models/Transformer/Center_Tapped_Transformer.md +++ b/doc/models/Transformer/Center_Tapped_Transformer.md @@ -82,23 +82,20 @@ import functools as ft import numpy as np import roseau.load_flow as rlf -# Create a ground and set it as the reference potential +# Create a ground and set it as the reference of potentials ground = rlf.Ground("ground") pref = rlf.PotentialRef("pref", ground) # Create a source bus and voltage source (MV) -source_bus = rlf.Bus("source_bus", phases="abcn") -ground.connect(source_bus) -vs = rlf.VoltageSource(id="vs", bus=source_bus, voltages=20e3 / np.sqrt(3)) +source_bus = rlf.Bus("source_bus", phases="abc") +vs = rlf.VoltageSource(id="vs", bus=source_bus, voltages=20e3) # Create a load bus and a load (MV) load_bus = rlf.Bus(id="load_bus", phases="abc") mv_load = rlf.PowerLoad("mv_load", load_bus, powers=[10000, 10000, 10000]) -# Connect the two MV buses with a line -lp = rlf.LineParameters.from_catalogue( - name="U_AL_150", model="iec" -) # Underground, ALuminium, 150mm² +# Connect the two MV buses with an Underground ALuminium line of 150mm² +lp = rlf.LineParameters.from_catalogue(name="U_AL_150") line = rlf.Line("line", source_bus, load_bus, parameters=lp, length=1.0, ground=ground) # Create a low-voltage bus and a load @@ -109,7 +106,7 @@ lv_load = rlf.PowerLoad("lv_load", lv_bus, powers=[-2000, 0]) # Create a transformer tp = rlf.TransformerParameters.from_open_and_short_circuit_tests( "t", - "center", # <--- Center-tapped transformer + vg="Iii0", # <--- Center-tapped transformer sn=630e3, uhv=20000.0, ulv=230.0, @@ -126,11 +123,12 @@ en.solve_load_flow() # The current flowing into the line from the source side en.res_lines[["current1"]].dropna().transform([np.abs, ft.partial(np.angle, deg=True)]) -# | | ('current1', 'absolute') | ('current1', 'angle') | -# |:-----------------|---------------------------:|------------------------:| -# | ('line', 'a') | 1.58451 | 45.1554 | -# | ('line', 'b') | 1.28415 | -55.5618 | -# | ('line', 'c') | 1.84471 | -178 | +# | | ('current1', 'absolute') | ('current1', 'angle') | +# |:--------------|---------------------------:|------------------------:| +# | ('line', 'a') | 1.1229 | -35.6881 | +# | ('line', 'b') | 0.559322 | -157.84 | +# | ('line', 'c') | 0.95146 | 114.464 | + # The current flowing into the transformer from the source side en.res_transformers[["current1"]].dropna().transform( @@ -138,37 +136,39 @@ en.res_transformers[["current1"]].dropna().transform( ) # | | ('current1', 'absolute') | ('current1', 'angle') | # |:-----------------|---------------------------:|------------------------:| -# | ('transfo', 'a') | 0.564366 | -63.5557 | -# | ('transfo', 'b') | 0.564366 | 116.444 | +# | ('transfo', 'a') | 0.564362 | -93.5552 | +# | ('transfo', 'b') | 0.564362 | 86.4448 | + # The current flowing into the line from the load side en.res_lines[["current2"]].transform([np.abs, ft.partial(np.angle, deg=True)]) -# | | ('current2', 'absolute') | ('current2', 'angle') | -# |:-----------------|---------------------------:|------------------------:| -# | ('line', 'a') | 1.22632 | 155.665 | -# | ('line', 'b') | 0.726784 | 19.6741 | -# | ('line', 'c') | 0.866034 | -60.0009 | +# | | ('current2', 'absolute') | ('current2', 'angle') | +# |:--------------|---------------------------:|------------------------:| +# | ('line', 'a') | 1.22632 | 125.666 | +# | ('line', 'b') | 0.726787 | -10.3247 | +# | ('line', 'c') | 0.866039 | -90.0003 | + # The current flowing into the transformer from the load side en.res_transformers[["current2"]].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('current2', 'absolute') | ('current2', 'angle') | # |:-----------------|---------------------------:|------------------------:| -# | ('transfo', 'a') | 17.3904 | 30.0135 | -# | ('transfo', 'b') | 0 | 0 | -# | ('transfo', 'n') | 17.3904 | -149.987 | +# | ('transfo', 'a') | 17.3905 | 0.0141285 | +# | ('transfo', 'b') | 0 | 0 | +# | ('transfo', 'n') | 17.3905 | -179.986 | # We can see the secondary phase "b" of the transformer does not carry any current as # the load has 0VA on this phase. # The voltages at the buses of the network -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages[["voltage"]].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------------|--------------------------:|-----------------------:| -# | ('source_bus', 'an') | 11547 | 9.20565e-25 | -# | ('source_bus', 'bn') | 11547 | -120 | -# | ('source_bus', 'cn') | 11547 | 120 | -# | ('load_bus', 'ab') | 19999.8 | 29.9994 | -# | ('load_bus', 'bc') | 19999.9 | -90.0009 | -# | ('load_bus', 'ca') | 19999.7 | 149.999 | -# | ('lv_bus', 'an') | 115.006 | 30.0135 | -# | ('lv_bus', 'bn') | 114.999 | -150.001 | +# | ('source_bus', 'ab') | 20000 | 0 | +# | ('source_bus', 'bc') | 20000 | -120 | +# | ('source_bus', 'ca') | 20000 | 120 | +# | ('load_bus', 'ab') | 19999.6 | 6.9969e-05 | +# | ('load_bus', 'bc') | 19999.8 | -120 | +# | ('load_bus', 'ca') | 19999.6 | 119.999 | +# | ('lv_bus', 'an') | 115.005 | 0.0141285 | +# | ('lv_bus', 'bn') | 114.998 | -180 | ``` diff --git a/doc/models/Transformer/Single_Phase_Transformer.md b/doc/models/Transformer/Single_Phase_Transformer.md index 480f571b..718a76b5 100644 --- a/doc/models/Transformer/Single_Phase_Transformer.md +++ b/doc/models/Transformer/Single_Phase_Transformer.md @@ -86,7 +86,7 @@ load = rlf.PowerLoad(id="load", bus=bus2, powers=[100], phases="an") # Create the transformer tp = rlf.TransformerParameters.from_open_and_short_circuit_tests( id="Example_TP", - type="single", # <--- Single-phase transformer + vg="Ii0", # <--- Single-phase transformer sn=800, uhv=400, ulv=400, @@ -130,7 +130,7 @@ en.res_transformers[["power1", "power2"]].abs() # | ('transfo', 'n') | 0 | 0 | # The voltages at the buses of the network -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages[["voltage"]].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:---------------|--------------------------:|-----------------------:| # | ('bus1', 'an') | 230.94 | 0 | diff --git a/doc/models/Transformer/Three_Phase_Transformer.md b/doc/models/Transformer/Three_Phase_Transformer.md index 170e9d46..cb3362a3 100644 --- a/doc/models/Transformer/Three_Phase_Transformer.md +++ b/doc/models/Transformer/Three_Phase_Transformer.md @@ -625,8 +625,8 @@ vs = rlf.VoltageSource(id="vs", bus=bus_mv, voltages=20e3) # Create a MV/LV transformer tp = rlf.TransformerParameters.from_open_and_short_circuit_tests( - id="SE_Minera_A0Ak_100_kVA", - type="Dyn11", + id="SE Minera A0Ak 100kVA", + vg="Dyn11", sn=100.0 * 1e3, uhv=20e3, ulv=400.0, @@ -672,7 +672,7 @@ en.res_transformers[["current2"]].transform([np.abs, ft.partial(np.angle, deg=Tr # | ('transfo', 'n') | 2.25156e-13 | -80.4634 | # The voltages at the buses of the network -en.res_buses_voltages.transform([np.abs, ft.partial(np.angle, deg=True)]) +en.res_buses_voltages[["voltage"]].transform([np.abs, ft.partial(np.angle, deg=True)]) # | | ('voltage', 'absolute') | ('voltage', 'angle') | # |:-----------------|--------------------------:|-----------------------:| # | ('bus_mv', 'ab') | 20000 | 0 | diff --git a/doc/models/Transformer/index.md b/doc/models/Transformer/index.md index 658d85d4..69ca37a7 100644 --- a/doc/models/Transformer/index.md +++ b/doc/models/Transformer/index.md @@ -22,10 +22,10 @@ _Roseau Load Flow_ can model single-phase, center-tapped and three-phase transfo Transformers are modeled with the following parameters: -- $U_{1,\mathrm{nom.}}$: the phase-to-phase nominal voltage of the high voltages side (in V). This - parameter is called `uhv` in the code. -- $U_{2,\mathrm{nom.}}$: the phase-to-phase nominal voltage of the low voltages side (in V). This - parameter is called `ulv` in the code. +- $U_{1,\mathrm{nom.}}$: the phase-to-phase nominal voltage of the primary side (in V). This + parameter is called `up` in the code. +- $U_{2,\mathrm{nom.}}$: the phase-to-phase nominal voltage of the secondary side (in V). This + parameter is called `us` in the code. - $S_{\mathrm{nom.}}$: the nominal power of the transformer (in VA). This parameter is called `sn` in the code. - $Z_2$: the series impedance located at the secondary side of the transformer. It represents @@ -114,34 +114,33 @@ method. To define the parameters of the transformers, use the `TransformerParameters` class. It takes as arguments the elements described in the previous section and converts them into the series -impedance and the magnetizing admittance. The `type` argument of the constructor can take the +impedance and the magnetizing admittance. The `vg` argument of the constructor can take the following values: -- `"single"` to model a single-phase transformer -- `"center"` to model a center-tapped transformer -- Any windings (`"Dd0"`, `"Dz6"`, etc.) to model a three-phase transformer. +- `"Ii0"` or `"Ii6"` to model a single-phase transformer, in-phase or 180° phase shift respectively +- `"Iii0"` or `"Iii6"` to model a center-tapped transformer, in-phase or 180° phase shift respectively +- `"Dd0"`, `"Dyn11"`, etc. to model a three-phase transformer with different winding configurations ```python import roseau.load_flow as rlf # The transformer parameters for a single-phase transformer -single_phase_transformer_parameters = ( - rlf.TransformerParameters.from_open_and_short_circuit_tests( - id="single_phase_transformer_parameters", - type="single", # <--- single-phase transformer - uhv=rlf.Q_(20, "kV"), - ulv=rlf.Q_(400, "V"), - sn=rlf.Q_(160, "kVA"), - p0=rlf.Q_(300, "W"), - i0=rlf.Q_(1.4, "%"), - psc=rlf.Q_(2000, "W"), - vsc=rlf.Q_(4, "%"), - ) +transformer_params_1ph = rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="transformer_params_1ph", + vg="Ii0", # <--- single-phase transformer + uhv=rlf.Q_(20, "kV"), + ulv=rlf.Q_(400, "V"), + sn=rlf.Q_(160, "kVA"), + p0=rlf.Q_(300, "W"), + i0=rlf.Q_(1.4, "%"), + psc=rlf.Q_(2000, "W"), + vsc=rlf.Q_(4, "%"), ) +assert transformer_params_1ph.type == "single-phase" # Alternatively, if you have z2 and ym already: -# single_phase_transformer_parameters = rlf.TransformerParameters( -# id="single_phase_transformer_parameters", -# type="single", +# transformer_params_1ph = rlf.TransformerParameters( +# id="transformer_params_1ph", +# vg="Ii0", # uhv=rlf.Q_(20, "kV"), # ulv=rlf.Q_(400, "V"), # sn=rlf.Q_(160, "kVA"), @@ -151,34 +150,36 @@ single_phase_transformer_parameters = ( # The transformer parameters for a three-phase transformer -three_phase_transformer_parameters = ( - rlf.TransformerParameters.from_open_and_short_circuit_tests( - id="three_phase_transformer_parameters", - type="Dyn11", # <--- three-phase transformer with delta primary and wye secondary - uhv=rlf.Q_(20, "kV"), - ulv=rlf.Q_(400, "V"), - sn=rlf.Q_(160, "kVA"), - p0=rlf.Q_(300, "W"), - i0=rlf.Q_(1.4, "%"), - psc=rlf.Q_(2000, "W"), - vsc=rlf.Q_(4, "%"), - ) +transformer_params_3ph = rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="transformer_params_3ph", + vg="Dyn11", # <--- three-phase transformer with delta primary and wye secondary + uhv=rlf.Q_(20, "kV"), + ulv=rlf.Q_(400, "V"), + sn=rlf.Q_(160, "kVA"), + p0=rlf.Q_(300, "W"), + i0=rlf.Q_(1.4, "%"), + psc=rlf.Q_(2000, "W"), + vsc=rlf.Q_(4, "%"), ) +assert transformer_params_3ph.type == "three-phase" # The transformer parameters for a center-tapped transformer -center_tapped_transformer_parameters = ( - rlf.TransformerParameters.from_open_and_short_circuit_tests( - id="center_tapped_transformer_parameters", - type="center", # <--- center-tapped transformer - uhv=rlf.Q_(20, "kV"), - ulv=rlf.Q_(400, "V"), - sn=rlf.Q_(160, "kVA"), - p0=rlf.Q_(300, "W"), - i0=rlf.Q_(1.4, "%"), - psc=rlf.Q_(2000, "W"), - vsc=rlf.Q_(4, "%"), - ) +transformer_params_ct = rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="transformer_params_ct", + vg="Iii0", # <--- center-tapped transformer + uhv=rlf.Q_(20, "kV"), + ulv=rlf.Q_(400, "V"), + sn=rlf.Q_(160, "kVA"), + p0=rlf.Q_(300, "W"), + i0=rlf.Q_(1.4, "%"), + psc=rlf.Q_(2000, "W"), + vsc=rlf.Q_(4, "%"), ) +assert transformer_params_ct.type == "center-tapped" + +# Available vector groups: +print(rlf.TransformerParameters.allowed_vector_groups) +# "Dd0", "Dd6", ..., "Ii0", "Ii6", "Iii0", "Iii6", ``` A catalogue of transformer parameters is available. More details [here](catalogues-transformers). diff --git a/doc/models/index.md b/doc/models/index.md index d59af337..3d98363a 100644 --- a/doc/models/index.md +++ b/doc/models/index.md @@ -1,3 +1,5 @@ +# Models + A description of the electrical models used for each component is available: ```{toctree} diff --git a/doc/usage/Catalogues.md b/doc/usage/Catalogues.md index 0aca5b43..5861c737 100644 --- a/doc/usage/Catalogues.md +++ b/doc/usage/Catalogues.md @@ -45,46 +45,46 @@ This catalogue can be retrieved in the form of a dataframe using: | Name | Nb buses | Nb lines | Nb transformers | Nb switches | Nb loads | Nb sources | Nb grounds | Nb potential refs | Available load points | | :-------------------------------------------------------------------------------- | -------: | -------: | --------------: | ----------: | -------: | ---------: | ---------: | ----------------: | :-------------------- | -| LVFeeder00939 | 8 | 6 | 1 | 0 | 12 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder02639 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder04790 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder06713 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder06926 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder06975 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder18498 | 18 | 16 | 1 | 0 | 32 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder18769 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder19558 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder20256 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder23832 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder24400 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder27429 | 11 | 9 | 1 | 0 | 18 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder27681 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder30216 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder31441 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder36284 | 5 | 3 | 1 | 0 | 6 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder36360 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder37263 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder38211 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| MVFeeder004 | 17 | 15 | 0 | 1 | 10 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder011 | 50 | 48 | 0 | 1 | 68 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder015 | 30 | 28 | 0 | 1 | 20 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder032 | 53 | 51 | 0 | 1 | 40 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder041 | 88 | 86 | 0 | 1 | 62 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder063 | 39 | 37 | 0 | 1 | 38 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder078 | 69 | 67 | 0 | 1 | 46 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder115 | 4 | 2 | 0 | 1 | 4 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder128 | 49 | 47 | 0 | 1 | 32 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder151 | 59 | 57 | 0 | 1 | 44 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder159 | 8 | 6 | 0 | 1 | 0 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder176 | 33 | 31 | 0 | 1 | 20 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder210 | 128 | 126 | 0 | 1 | 82 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder217 | 44 | 42 | 0 | 1 | 44 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder232 | 66 | 64 | 0 | 1 | 38 | 1 | 1 | 1 | ['Summer', 'Winter'] | -| MVFeeder251 | 125 | 123 | 0 | 1 | 106 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder290 | 12 | 10 | 0 | 1 | 16 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder312 | 11 | 9 | 0 | 1 | 8 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder320 | 20 | 18 | 0 | 1 | 12 | 1 | 1 | 1 | ['Winter', 'Summer'] | -| MVFeeder339 | 33 | 31 | 0 | 1 | 28 | 1 | 1 | 1 | ['Summer', 'Winter'] | +| LVFeeder00939 | 8 | 6 | 1 | 0 | 12 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder02639 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder04790 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder06713 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder06926 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder06975 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder18498 | 18 | 16 | 1 | 0 | 32 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder18769 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder19558 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder20256 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder23832 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder24400 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder27429 | 11 | 9 | 1 | 0 | 18 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder27681 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder30216 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder31441 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder36284 | 5 | 3 | 1 | 0 | 6 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder36360 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder37263 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder38211 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| MVFeeder004 | 17 | 15 | 0 | 1 | 10 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder011 | 50 | 48 | 0 | 1 | 68 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder015 | 30 | 28 | 0 | 1 | 20 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder032 | 53 | 51 | 0 | 1 | 40 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder041 | 88 | 86 | 0 | 1 | 62 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder063 | 39 | 37 | 0 | 1 | 38 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder078 | 69 | 67 | 0 | 1 | 46 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder115 | 4 | 2 | 0 | 1 | 4 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder128 | 49 | 47 | 0 | 1 | 32 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder151 | 59 | 57 | 0 | 1 | 44 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder159 | 8 | 6 | 0 | 1 | 0 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder176 | 33 | 31 | 0 | 1 | 20 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder210 | 128 | 126 | 0 | 1 | 82 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder217 | 44 | 42 | 0 | 1 | 44 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder232 | 66 | 64 | 0 | 1 | 38 | 1 | 1 | 1 | \['Summer', 'Winter'] | +| MVFeeder251 | 125 | 123 | 0 | 1 | 106 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder290 | 12 | 10 | 0 | 1 | 16 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder312 | 11 | 9 | 0 | 1 | 8 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder320 | 20 | 18 | 0 | 1 | 12 | 1 | 1 | 1 | \['Winter', 'Summer'] | +| MVFeeder339 | 33 | 31 | 0 | 1 | 28 | 1 | 1 | 1 | \['Summer', 'Winter'] | There are MV networks whose names start with "MVFeeder" and LV networks whose names with "LVFeeder". For each network, there are two available load points: @@ -101,26 +101,26 @@ only, you can call: | Name | Nb buses | Nb lines | Nb transformers | Nb switches | Nb loads | Nb sources | Nb grounds | Nb potential refs | Available load points | | :------------ | -------: | -------: | --------------: | ----------: | -------: | ---------: | ---------: | ----------------: | :-------------------- | -| LVFeeder00939 | 8 | 6 | 1 | 0 | 12 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder02639 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder04790 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder06713 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder06926 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder06975 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder18498 | 18 | 16 | 1 | 0 | 32 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder18769 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder19558 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder20256 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder23832 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder24400 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder27429 | 11 | 9 | 1 | 0 | 18 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder27681 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder30216 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder31441 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder36284 | 5 | 3 | 1 | 0 | 6 | 1 | 1 | 2 | ['Winter', 'Summer'] | -| LVFeeder36360 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder37263 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | ['Summer', 'Winter'] | -| LVFeeder38211 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | ['Winter', 'Summer'] | +| LVFeeder00939 | 8 | 6 | 1 | 0 | 12 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder02639 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder04790 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder06713 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder06926 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder06975 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder18498 | 18 | 16 | 1 | 0 | 32 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder18769 | 7 | 5 | 1 | 0 | 10 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder19558 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder20256 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder23832 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder24400 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder27429 | 11 | 9 | 1 | 0 | 18 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder27681 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder30216 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder31441 | 4 | 2 | 1 | 0 | 4 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder36284 | 5 | 3 | 1 | 0 | 6 | 1 | 1 | 2 | \['Winter', 'Summer'] | +| LVFeeder36360 | 9 | 7 | 1 | 0 | 14 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder37263 | 3 | 1 | 1 | 0 | 2 | 1 | 1 | 2 | \['Summer', 'Winter'] | +| LVFeeder38211 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | \['Winter', 'Summer'] | A regular expression can also be used: @@ -130,7 +130,7 @@ A regular expression can also be used: | Name | Nb buses | Nb lines | Nb transformers | Nb switches | Nb loads | Nb sources | Nb grounds | Nb potential refs | Available load points | | :------------ | -------: | -------: | --------------: | ----------: | -------: | ---------: | ---------: | ----------------: | :-------------------- | -| LVFeeder38211 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | ['Winter', 'Summer'] | +| LVFeeder38211 | 6 | 4 | 1 | 0 | 8 | 1 | 1 | 2 | \['Winter', 'Summer'] | ### Getting an instance @@ -154,26 +154,24 @@ have been found. Please look at the catalogue using the `get_catalogue` class me ## Transformers -_Roseau Load Flow_ is provided with a catalogue of transformer parameters. These parameters are available -through the class `TransformerParameters`. - -```{note} -Currently, only three phase MV/LV transformers are in the catalogue. -``` +_Roseau Load Flow_ ships with a catalogue of `TransformerParameters` obtained from data sheets of +real transformers. ### Source of data The available transformers data come from the following data sheets: -- For Schneider-Electric EcoDesign products (_AA0Ak_ efficiency class): - [Minera](../_static/Transformer/Minera-EcoDesign2021-20kV_ZZ6921.pdf), - [Vegeta](../_static/Transformer/Vegeta-EcoDesign2021-20kV_ZZ6924.pdf), - [Trihal](../_static/Transformer/Trihal-EcoDesign2021-20kV_ZZ6925.pdf) -- For other Schneider-Electric products: See [this document](../_static/Transformer/2023_03_31_Fiche_Technique_Schneider_Electric.pdf) - on pages 19, 21 and 22. -- For France Transfo: See [this document](../_static/Transformer/2023_03_30_Fiche_Technique_France_Transfo.pdf). +- For _Schneider-Electric EcoDesign_ products (**AA0Ak** efficiency class): + [Minera](../_static/Transformer/References/2024_03_18_Minera-EcoDesign2021-20kV_ZZ6921.pdf), + [Vegeta](../_static/Transformer/References/2024_03_18_Vegeta-EcoDesign2021-20kV_ZZ6924.pdf), + [Trihal](../_static/Transformer/References/2024_03_18_Trihal-EcoDesign2021-20kV_ZZ6925.pdf) +- For _France Transfo_: See + [this document](../_static/Transformer/References/2023_03_30_Fiche_Technique_France_Transfo.pdf). + +All data sheets can be found in the data sheets folder +[on GitHub](https://github.com/RoseauTechnologies/Roseau_Load_Flow/tree/main/doc/_static/Transformer/References) -Pull requests to add some other sources are welcome! +Pull requests to add other common sources are welcome! ### Inspecting the catalogue @@ -184,72 +182,69 @@ This catalogue can be retrieved in the form of a dataframe using: >>> rlf.TransformerParameters.get_catalogue() ``` + + _Truncated output_ -| Name | Manufacturer | Product range | Efficiency | Nominal power (kVA) | Type | High voltage (kV) | Low voltage (kV) | -| :--------------------------- | :----------- | :------------ | :--------- | ------------------: | :---- | ----------------: | ---------------: | -| FT_Standard_Standard_100kVA | FT | Standard | Standard | 100 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_160kVA | FT | Standard | Standard | 160 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_250kVA | FT | Standard | Standard | 250 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_315kVA | FT | Standard | Standard | 315 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_400kVA | FT | Standard | Standard | 400 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_500kVA | FT | Standard | Standard | 500 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_630kVA | FT | Standard | Standard | 630 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_800kVA | FT | Standard | Standard | 800 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_1000kVA | FT | Standard | Standard | 1000 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_1250kVA | FT | Standard | Standard | 1250 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_1600kVA | FT | Standard | Standard | 1600 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_2000kVA | FT | Standard | Standard | 2000 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_2500kVA | FT | Standard | Standard | 2500 | Dyn11 | 20 | 0.4 | -| FT_Standard_Standard_3150kVA | FT | Standard | Standard | 3150 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_160kVA | SE | Minera | AA0Ak | 160 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_250kVA | SE | Minera | AA0Ak | 250 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_400kVA | SE | Minera | AA0Ak | 400 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_630kVA | SE | Minera | AA0Ak | 630 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_800kVA | SE | Minera | AA0Ak | 800 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_1000kVA | SE | Minera | AA0Ak | 1000 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_1250kVA | SE | Minera | AA0Ak | 1250 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_1600kVA | SE | Minera | AA0Ak | 1600 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_2000kVA | SE | Minera | AA0Ak | 2000 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_2500kVA | SE | Minera | AA0Ak | 2500 | Dyn11 | 20 | 0.4 | -| SE_Minera_AA0Ak_3150kVA | SE | Minera | AA0Ak | 3150 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_50kVA | SE | Minera | A0Ak | 50 | Yzn11 | 20 | 0.4 | -| SE_Minera_A0Ak_100kVA | SE | Minera | A0Ak | 100 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_160kVA | SE | Minera | A0Ak | 160 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_250kVA | SE | Minera | A0Ak | 250 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_315kVA | SE | Minera | A0Ak | 315 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_400kVA | SE | Minera | A0Ak | 400 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_500kVA | SE | Minera | A0Ak | 500 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_630kVA | SE | Minera | A0Ak | 630 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_800kVA | SE | Minera | A0Ak | 800 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_1000kVA | SE | Minera | A0Ak | 1000 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_1250kVA | SE | Minera | A0Ak | 1250 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_1600kVA | SE | Minera | A0Ak | 1600 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_2000kVA | SE | Minera | A0Ak | 2000 | Dyn11 | 20 | 0.4 | -| SE_Minera_A0Ak_2500kVA | SE | Minera | A0Ak | 2500 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_50kVA | SE | Minera | B0Bk | 50 | Yzn11 | 20 | 0.4 | -| SE_Minera_B0Bk_100kVA | SE | Minera | B0Bk | 100 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_160kVA | SE | Minera | B0Bk | 160 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_250kVA | SE | Minera | B0Bk | 250 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_315kVA | SE | Minera | B0Bk | 315 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_400kVA | SE | Minera | B0Bk | 400 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_500kVA | SE | Minera | B0Bk | 500 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_630kVA | SE | Minera | B0Bk | 630 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_800kVA | SE | Minera | B0Bk | 800 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_1000kVA | SE | Minera | B0Bk | 1000 | Dyn11 | 20 | 0.4 | -| SE_Minera_B0Bk_1250kVA | SE | Minera | B0Bk | 1250 | Dyn11 | 20 | 0.4 | +| Name | Manufacturer | Product range | Efficiency | Type | Oil | Nominal power (kVA) | Vector group | High voltage (kV) | Low voltage (kV) | +| :---------------------------------------------------------------- | :----------- | :------------ | :----------------- | :------------ | :------ | ------------------: | :----------- | ----------------: | ---------------: | +| SE Vegeta C0Bk 100kVA 15/20kV(15) 410V Dyn11 | SE | Vegeta | C0Bk | three-phase | ester | 100 | Dyn11 | 15 | 0.41 | +| SE Vegeta Standard 400kVA 15/20kV(20) 410V Dyn11 | SE | Vegeta | Standard | three-phase | ester | 400 | Dyn11 | 20 | 0.41 | +| SE Vegeta AA0Ak 630kVA 20kV 410V Dyn11 | SE | Vegeta | AA0Ak | three-phase | ester | 630 | Dyn11 | 20 | 0.41 | +| SE Minera B0Bk 250kVA 15/20kV(20) 410V Dyn11 | SE | Minera | B0Bk | three-phase | mineral | 250 | Dyn11 | 20 | 0.41 | +| SE Minera Standard 160kVA 15/20kV(15) 410V Dyn11 | SE | Minera | Standard | three-phase | mineral | 160 | Dyn11 | 15 | 0.41 | +| SE Imprego 10kVA 230V 230V Ii0 | SE | Imprego | | single-phase | dry | 10 | Ii0 | 0.23 | 0.23 | +| CA Yellow A0Ak 1250kVA 15.75/21kV(21) 400V Dyn11 | CA | Yellow | A0Ak | three-phase | | 1250 | Dyn11 | 21 | 0.4 | +| SE Trihal AA0Ak 800kVA 15/20kV(15) 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 800 | Dyn11 | 15 | 0.41 | +| SE Vegeta C0Bk 100kVA 15/20kV(20) 410V Dyn11 | SE | Vegeta | C0Bk | three-phase | ester | 100 | Dyn11 | 20 | 0.41 | +| SE Trihal AA0Ak 1000kVA 15/20kV(15) 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 1000 | Dyn11 | 15 | 0.41 | +| SE Trihal AA0Ak 800kVA 15/20kV(20) 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 800 | Dyn11 | 20 | 0.41 | +| SE Minera C0Bk 1600kVA 15/20kV(15) 410V Dyn11 | SE | Minera | C0Bk | three-phase | mineral | 1600 | Dyn11 | 15 | 0.41 | +| SE Trihal ExtraReducedLosses 1250kVA 20kV 410V Dyn11 | SE | Trihal | ExtraReducedLosses | three-phase | dry | 1250 | Dyn11 | 20 | 0.41 | +| SE Minera B0Bk 500kVA 15/20kV(20) 410V Dyn11 | SE | Minera | B0Bk | three-phase | mineral | 500 | Dyn11 | 20 | 0.41 | +| SE Imprego 10kVA 230V 230V Iii0 | SE | Imprego | | center-tapped | dry | 10 | Iii0 | 0.23 | 0.23 | +| SE Vegeta C0Bk 400kVA 15/20kV(20) 410V Dyn11 | SE | Vegeta | C0Bk | three-phase | ester | 400 | Dyn11 | 20 | 0.41 | +| CA Yellow A0Ak 800kVA 15.75/21kV(15.75) 400V Dyn11 | CA | Yellow | A0Ak | three-phase | | 800 | Dyn11 | 15.75 | 0.4 | +| SE Trihal AA0Ak 2000kVA 15/20kV(20) 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 2000 | Dyn11 | 20 | 0.41 | +| SE Vegeta C0Bk 1000kVA 15/20kV(20) 410V Dyn11 | SE | Vegeta | C0Bk | three-phase | ester | 1000 | Dyn11 | 20 | 0.41 | +| FT 400kVA 15/20kV(15) 400V Dyn11 | FT | | | three-phase | mineral | 400 | Dyn11 | 15 | 0.4 | +| CA Yellow A0Ak 3150kVA 15.75/21kV(15.75) 400V Dyn11 | CA | Yellow | A0Ak | three-phase | | 3150 | Dyn11 | 15.75 | 0.4 | +| FT 2000kVA 15/20kV(20) 400V Dyn11 | FT | | | three-phase | mineral | 2000 | Dyn11 | 20 | 0.4 | +| CA Yellow A0Ak 400kVA 15.75/21kV(15.75) 400V Dyn11 | CA | Yellow | A0Ak | three-phase | | 400 | Dyn11 | 15.75 | 0.4 | +| SE Vegeta Standard 800kVA 15/20kV(15) 410V Dyn11 | SE | Vegeta | Standard | three-phase | ester | 800 | Dyn11 | 15 | 0.41 | +| SE Minera B0Bk 315kVA 15/20kV(15) 410V Dyn11 | SE | Minera | B0Bk | three-phase | mineral | 315 | Dyn11 | 15 | 0.41 | +| SE Minera C0Bk 50kVA 15/20kV(20) 410V Yzn11 | SE | Minera | C0Bk | three-phase | mineral | 50 | Yzn11 | 20 | 0.41 | +| SE Minera C0Bk 630kVA 15/20kV(20) 410V Dyn11 | SE | Minera | C0Bk | three-phase | mineral | 630 | Dyn11 | 20 | 0.41 | +| SE Minera C0Bk 1250kVA 15/20kV(15) 410V Dyn11 | SE | Minera | C0Bk | three-phase | mineral | 1250 | Dyn11 | 15 | 0.41 | +| SE Trihal AA0Ak 800kVA 20kV 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 800 | Dyn11 | 20 | 0.41 | +| SE Minera B0Bk 2500kVA 15/20kV(20) 410V Dyn11 | SE | Minera | B0Bk | three-phase | mineral | 2500 | Dyn11 | 20 | 0.41 | The following data are available in this table: -- the **name**: a unique name of the transformer in the catalogue. -- the **manufacturer**: two manufacturers are available. `"SE"` stands for "Schneider-Electric" and `"FT"` stands for - "France Transfo". +- the **name**: a unique name of the transformer in the catalogue. This is usually a concatenation + of the manufacturer, the product range, the efficiency class, the nominal power, the high voltage, + the low voltage, and the vector group. +- the **manufacturer**: these manufacturers are currently available: + - `"SE"` stands for "Schneider-Electric" + - `"FT"` stands for "France Transfo" + - `"CA"` stands for "Cahors" - the product **range** which depends on the manufacturer -- the **efficiency** class of the transformer -- the **type** of the transformer. +- the **efficiency** class of the transformer. The efficiency class used in the catalogue follows the + `Eco-Design` requirements as defined by the `EN 50629` standard. +- the **type** of the transfomer. It can be `three-phase`, `single-phase`, or `center-tapped`. +- the oil type of the transformer, noted **oil**: + - `dry`: dry-type transformer + - `mineral`: mineral oil immersed transformer + - `ester`: vegetable oil (natural ester) immersed transformer +- the vector group of the transformer, noted **vg** (e.g., `Dyn11`, `Yzn11`, `Ii0`, etc.) - the nominal power, noted **sn**. -- the primary side phase to phase voltage, noted **uhv**. -- the secondary side phase to phase voltage, noted **ulv**. +- the phase-to-phase high voltage, noted **uhv**. +- the no-load phase-to-phase low voltage, noted **ulv**. The `get_catalogue` method accepts arguments (in bold above) that can be used to filter the returned table. The following command only retrieves transformer parameters of transformers with an efficiency of "A0Ak": @@ -258,45 +253,69 @@ following command only retrieves transformer parameters of transformers with an >>> rlf.TransformerParameters.get_catalogue(efficiency="A0Ak") ``` -| Name | Manufacturer | Product range | Efficiency | Type | Nominal power (kVA) | High voltage (kV) | Low voltage (kV) | -| :--------------------- | :----------- | :------------ | :--------- | :---- | ------------------: | ----------------: | ---------------: | -| SE_Minera_A0Ak_50kVA | SE | Minera | A0Ak | Yzn11 | 50.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_100kVA | SE | Minera | A0Ak | Dyn11 | 100.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_160kVA | SE | Minera | A0Ak | Dyn11 | 160.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_250kVA | SE | Minera | A0Ak | Dyn11 | 250.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_315kVA | SE | Minera | A0Ak | Dyn11 | 315.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_400kVA | SE | Minera | A0Ak | Dyn11 | 400.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_500kVA | SE | Minera | A0Ak | Dyn11 | 500.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_630kVA | SE | Minera | A0Ak | Dyn11 | 630.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_800kVA | SE | Minera | A0Ak | Dyn11 | 800.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_1000kVA | SE | Minera | A0Ak | Dyn11 | 1000.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_1250kVA | SE | Minera | A0Ak | Dyn11 | 1250.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_1600kVA | SE | Minera | A0Ak | Dyn11 | 1600.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_2000kVA | SE | Minera | A0Ak | Dyn11 | 2000.0 | 20.0 | 0.4 | -| SE_Minera_A0Ak_2500kVA | SE | Minera | A0Ak | Dyn11 | 2500.0 | 20.0 | 0.4 | - -or only transformers with a wye winding on the primary side (using a regular expression) + + +_Truncated output_ + +| Name | Manufacturer | Product range | Efficiency | Type | Oil | Nominal power (kVA) | Vector group | High voltage (kV) | Low voltage (kV) | +| :--------------------------------------------------------- | :----------- | :------------ | :--------- | :---------- | :------ | ------------------: | :----------- | ----------------: | ---------------: | +| SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11 | SE | Minera | A0Ak | three-phase | mineral | 50 | Yzn11 | 20 | 0.41 | +| SE Minera A0Ak 100kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 100 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 160kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 160 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 250kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 250 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 315kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 315 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 400kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 400 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 500kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 500 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 630kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 630 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 800kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 800 | Dyn11 | 20 | 0.41 | +| SE Minera A0Ak 1000kVA 15/20kV(20) 410V Dyn11 | SE | Minera | A0Ak | three-phase | mineral | 1000 | Dyn11 | 20 | 0.41 | + +or only transformers with a wye winding on the high voltage side (using a regular expression) ```pycon ->>> rlf.TransformerParameters.get_catalogue(type=r"y.*") +>>> rlf.TransformerParameters.get_catalogue(vg=r"Y.*") ``` -| Name | Manufacturer | Product range | Efficiency | Type | Nominal power (kVA) | High voltage (kV) | Low voltage (kV) | -| :----------------------- | :----------- | :------------ | :--------- | :---- | ------------------: | ----------------: | ---------------: | -| SE_Minera_A0Ak_50kVA | SE | Minera | A0Ak | Yzn11 | 50.0 | 20.0 | 0.4 | -| SE_Minera_B0Bk_50kVA | SE | Minera | B0Bk | Yzn11 | 50.0 | 20.0 | 0.4 | -| SE_Minera_C0Bk_50kVA | SE | Minera | C0Bk | Yzn11 | 50.0 | 20.0 | 0.4 | -| SE_Minera_Standard_50kVA | SE | Minera | Standard | Yzn11 | 50.0 | 20.0 | 0.4 | + + +| Name | Manufacturer | Product range | Efficiency | Type | Oil | Nominal power (kVA) | Vector group | High voltage (kV) | Low voltage (kV) | +| :----------------------------------------------------------- | :----------- | :------------ | :--------- | :---------- | :------ | ------------------: | :----------- | ----------------: | ---------------: | +| SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11 | SE | Minera | A0Ak | three-phase | mineral | 50 | Yzn11 | 20 | 0.41 | +| SE Minera A0Ak 50kVA 15/20kV(15) 410V Yzn11 | SE | Minera | A0Ak | three-phase | mineral | 50 | Yzn11 | 15 | 0.41 | +| SE Minera B0Bk 50kVA 15/20kV(20) 410V Yzn11 | SE | Minera | B0Bk | three-phase | mineral | 50 | Yzn11 | 20 | 0.41 | +| SE Minera B0Bk 50kVA 15/20kV(15) 410V Yzn11 | SE | Minera | B0Bk | three-phase | mineral | 50 | Yzn11 | 15 | 0.41 | +| SE Minera C0Bk 50kVA 15/20kV(20) 410V Yzn11 | SE | Minera | C0Bk | three-phase | mineral | 50 | Yzn11 | 20 | 0.41 | +| SE Minera C0Bk 50kVA 15/20kV(15) 410V Yzn11 | SE | Minera | C0Bk | three-phase | mineral | 50 | Yzn11 | 15 | 0.41 | +| SE Minera Standard 50kVA 15/20kV(20) 410V Yzn11 | SE | Minera | Standard | three-phase | mineral | 50 | Yzn11 | 20 | 0.41 | +| SE Minera Standard 50kVA 15/20kV(15) 410V Yzn11 | SE | Minera | Standard | three-phase | mineral | 50 | Yzn11 | 15 | 0.41 | or only transformers meeting both criteria ```pycon ->>> rlf.TransformerParameters.get_catalogue(efficiency="A0Ak", type=r"y.*") +>>> rlf.TransformerParameters.get_catalogue(efficiency="A0Ak", vg=r"Y.*") ``` -| Name | Manufacturer | Product range | Efficiency | Type | Nominal power (kVA) | High voltage (kV) | Low voltage (kV) | -| :------------------- | :----------- | :------------ | :--------- | :---- | ------------------: | ----------------: | ---------------: | -| SE_Minera_A0Ak_50kVA | SE | Minera | A0Ak | Yzn11 | 50.0 | 20.0 | 0.4 | + + +| Name | Manufacturer | Product range | Efficiency | Type | Oil | Nominal power (kVA) | Vector group | High voltage (kV) | Low voltage (kV) | +| :------------------------------------------------------- | :----------- | :------------ | :--------- | :---------- | :------ | ------------------: | :----------- | ----------------: | ---------------: | +| SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11 | SE | Minera | A0Ak | three-phase | mineral | 50 | Yzn11 | 20 | 0.41 | +| SE Minera A0Ak 50kVA 15/20kV(15) 410V Yzn11 | SE | Minera | A0Ak | three-phase | mineral | 50 | Yzn11 | 15 | 0.41 | Among all the possible filters, the nominal power and voltages are expected in their default unit (VA and V). You can also use the [Pint](https://pint.readthedocs.io/en/stable/) library to express @@ -310,11 +329,25 @@ nominal power of 3150 kVA, the following two commands return the same table: >>> rlf.TransformerParameters.get_catalogue(sn=rlf.Q_(3150, "kVA")) ``` -| Name | Manufacturer | Product range | Efficiency | Type | Nominal power (kVA) | High voltage (kV) | Low voltage (kV) | -| :--------------------------- | :----------- | :------------ | :--------- | :---- | ------------------: | ----------------: | ---------------: | -| FT_Standard_Standard_3150kVA | FT | Standard | Standard | Dyn11 | 3150.0 | 20.0 | 0.4 | -| SE_Vegeta_C0Bk_3150kVA | SE | Vegeta | C0Bk | Dyn11 | 3150.0 | 20.0 | 0.4 | -| SE_Vegeta_Standard_3150kVA | SE | Vegeta | Standard | Dyn11 | 3150.0 | 20.0 | 0.4 | + + +| Name | Manufacturer | Product range | Efficiency | Type | Oil | Nominal power (kVA) | Vector group | High voltage (kV) | Low voltage (kV) | +| :------------------------------------------------------------- | :----------- | :------------ | :--------- | :---------- | :------ | ------------------: | :----------- | ----------------: | ---------------: | +| FT 3150kVA 15/20kV(20) 400V Dyn11 | FT | | | three-phase | mineral | 3150 | Dyn11 | 20 | 0.4 | +| FT 3150kVA 15/20kV(15) 400V Dyn11 | FT | | | three-phase | mineral | 3150 | Dyn11 | 15 | 0.4 | +| SE Minera AA0Ak 3150kVA 20kV 410V Dyn11 | SE | Minera | AA0Ak | three-phase | mineral | 3150 | Dyn11 | 20 | 0.41 | +| SE Trihal AA0Ak 3150kVA 15/20kV(20) 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 3150 | Dyn11 | 20 | 0.41 | +| SE Trihal AA0Ak 3150kVA 15/20kV(15) 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 3150 | Dyn11 | 15 | 0.41 | +| SE Trihal AA0Ak 3150kVA 20kV 410V Dyn11 | SE | Trihal | AA0Ak | three-phase | dry | 3150 | Dyn11 | 20 | 0.41 | +| SE Vegeta AA0Ak 3150kVA 20kV 410V Dyn11 | SE | Vegeta | AA0Ak | three-phase | ester | 3150 | Dyn11 | 20 | 0.41 | +| SE Vegeta C0Bk 3150kVA 15/20kV(20) 410V Dyn11 | SE | Vegeta | C0Bk | three-phase | ester | 3150 | Dyn11 | 20 | 0.41 | +| SE Vegeta C0Bk 3150kVA 15/20kV(15) 410V Dyn11 | SE | Vegeta | C0Bk | three-phase | ester | 3150 | Dyn11 | 15 | 0.41 | +| SE Vegeta Standard 3150kVA 15/20kV(20) 410V Dyn11 | SE | Vegeta | Standard | three-phase | ester | 3150 | Dyn11 | 20 | 0.41 | ### Getting an instance @@ -325,15 +358,19 @@ the method `get_catalogue` to narrow down the result to a single transformer in For instance, these parameters filter the catalogue down to a single transformer parameters: ```pycon ->>> rlf.TransformerParameters.from_catalogue(efficiency="A0Ak", type=r"^y.*$") -TransformerParameters(id='SE_Minera_A0Ak_50kVA') +>>> rlf.TransformerParameters.from_catalogue(efficiency="A0Ak", vg=r"Y.*", uhv=15000) + ``` The `name` filter can be directly used: ```pycon ->>> rlf.TransformerParameters.from_catalogue(name="SE_Minera_A0Ak_50kVA") -TransformerParameters(id='SE_Minera_A0Ak_50kVA') +>>> rlf.TransformerParameters.from_catalogue( +... name="SE Minera A0Ak 50kVA 15/20kV(15) 410V Yzn11" +... ) + ``` In case no or several results match the parameters, an error is raised: @@ -341,11 +378,11 @@ In case no or several results match the parameters, an error is raised: ```pycon >>> rlf.TransformerParameters.from_catalogue(manufacturer="ft") RoseauLoadFlowException: Several transformers matching the query (manufacturer='ft') have been found: -'FT_Standard_Standard_100kVA', 'FT_Standard_Standard_160kVA', 'FT_Standard_Standard_250kVA', -'FT_Standard_Standard_315kVA', 'FT_Standard_Standard_400kVA', 'FT_Standard_Standard_500kVA', -'FT_Standard_Standard_630kVA', 'FT_Standard_Standard_800kVA', 'FT_Standard_Standard_1000kVA', -'FT_Standard_Standard_1250kVA', 'FT_Standard_Standard_1600kVA', 'FT_Standard_Standard_2000kVA', -'FT_Standard_Standard_2500kVA', 'FT_Standard_Standard_3150kVA'. [catalogue_several_found] +'FT 100kVA 15/20kV(20) 400V Dyn11', 'FT 160kVA 15/20kV(20) 400V Dyn11', 'FT 250kVA 15/20kV(20) 400V Dyn11', +'FT 315kVA 15/20kV(20) 400V Dyn11', 'FT 400kVA 15/20kV(20) 400V Dyn11', 'FT 500kVA 15/20kV(20) 400V Dyn11', +'FT 630kVA 15/20kV(20) 400V Dyn11', 'FT 800kVA 15/20kV(20) 400V Dyn11', 'FT 1000kVA 15/20kV(20) 400V Dyn11', +'FT 1250kVA 15/20kV(20) 400V Dyn11', 'FT 1600kVA 15/20kV(20) 400V Dyn11', 'FT 2000kVA 15/20kV(20) 400V Dyn11', +'FT 2500kVA 15/20kV(20) 400V Dyn11', 'FT 3150kVA [...]. [catalogue_several_found] ``` or if no results: @@ -353,7 +390,7 @@ or if no results: ```pycon >>> rlf.TransformerParameters.from_catalogue(manufacturer="unknown") RoseauLoadFlowException: No manufacturer matching 'unknown' has been found. Available manufacturers -are 'FT', 'SE'. [catalogue_not_found] +are 'FT', 'SE', 'CA'. [catalogue_not_found] ``` (catalogues-lines)= @@ -381,97 +418,101 @@ This catalogue can be retrieved in the form of a dataframe using: _Truncated output_ -| Name | Line type | Conductor material | Insulator type | Cross-section (mm²) | Resistance (ohm/km) | Reactance (ohm/km) | Susceptance (S/km) | Maximal current (A) | -| :------- | :---------- | :----------------- | :------------- | ------------------: | ------------------: | -----------------: | -----------------: | ------------------: | -| T_AM_80 | twisted | am | | 80 | 0.457596 | 0.105575 | 3.0507e-05 | 203 | -| U_CU_19 | underground | cu | | 19 | 1.009 | 0.133054 | 2.33629e-05 | 138 | -| O_AM_33 | overhead | am | | 33 | 1.08577 | 0.375852 | 3.045e-06 | 142 | -| U_CU_150 | underground | cu | | 150 | 0.124 | 0.0960503 | 3.41234e-05 | 420 | -| O_AM_74 | overhead | am | | 74 | 0.491898 | 0.350482 | 3.2757e-06 | 232 | -| T_AM_34 | twisted | am | | 34 | 1.04719 | 0.121009 | 2.60354e-05 | 118 | -| T_AM_50 | twisted | am | | 50 | 0.744842 | 0.113705 | 2.79758e-05 | 146 | -| O_AM_95 | overhead | am | | 95 | 0.37184 | 0.342634 | 3.3543e-06 | 266 | -| U_CU_100 | underground | cu | | 100 | 0.185 | 0.102016 | 3.17647e-05 | 339 | -| T_CU_38 | twisted | cu | | 38 | 0.4966 | 0.118845 | 2.65816e-05 | 165 | -| O_AM_100 | overhead | am | | 100 | 0.356269 | 0.341022 | 3.371e-06 | 276 | -| U_AM_60 | underground | am | | 60 | 0.629804 | 0.11045 | 2.89372e-05 | 194 | -| T_AM_79 | twisted | am | | 79 | 0.463313 | 0.105781 | 3.04371e-05 | 201 | -| T_CU_60 | twisted | cu | | 60 | 0.3275 | 0.11045 | 2.89372e-05 | 219 | -| U_AM_240 | underground | am | | 240 | 0.14525 | 0.0899296 | 3.69374e-05 | 428 | -| O_AL_37 | overhead | al | | 37 | 0.837733 | 0.372257 | 3.0757e-06 | 152 | -| U_AM_93 | underground | am | | 93 | 0.383274 | 0.103152 | 3.13521e-05 | 249 | -| O_AM_28 | overhead | am | | 28 | 1.27866 | 0.381013 | 3.0019e-06 | 130 | -| T_AL_90 | twisted | al | | 90 | 0.3446 | 0.103672 | 3.11668e-05 | 219 | -| O_AM_79 | overhead | am | | 79 | 0.463313 | 0.348428 | 3.2959e-06 | 240 | +| Name | Line type | Phase material | Neutral material | Phase insulator | Neutral insulator | Phase cross-section (mm²) | Neutral cross-section (mm²) | Phase resistance (ohm/km) | Neutral resistance (ohm/km) | Phase reactance (ohm/km) | Neutral reactance (ohm/km) | Phase susceptance (S/km) | Neutral susceptance (S/km) | Phase ampacity (A) | Neutral ampacity (A) | +| :------ | :-------- | :------------- | :--------------- | :-------------- | :---------------- | ------------------------: | --------------------------: | ------------------------: | --------------------------: | -----------------------: | -------------------------: | -----------------------: | -------------------------: | -----------------: | -------------------: | +| O_AL_12 | overhead | al | al | | | 12 | 12 | 2.69 | 2.69 | 0.407632 | 0.407632 | 2.798e-06 | 2.798e-06 | 70 | 70 | +| O_AL_13 | overhead | al | al | | | 13 | 13 | 2.495 | 2.495 | 0.405118 | 0.405118 | 2.8161e-06 | 2.8161e-06 | 76 | 76 | +| O_AL_14 | overhead | al | al | | | 14 | 14 | 2.3 | 2.3 | 0.402789 | 0.402789 | 2.8331e-06 | 2.8331e-06 | 82 | 82 | +| O_AL_19 | overhead | al | al | | | 19 | 19 | 1.67333 | 1.67333 | 0.393195 | 0.393195 | 2.9051e-06 | 2.9051e-06 | 103 | 103 | +| O_AL_20 | overhead | al | al | | | 20 | 20 | 1.59444 | 1.59444 | 0.391584 | 0.391584 | 2.9175e-06 | 2.9175e-06 | 106 | 106 | +| O_AL_22 | overhead | al | al | | | 22 | 22 | 1.43667 | 1.43667 | 0.38859 | 0.38859 | 2.9409e-06 | 2.9409e-06 | 113 | 113 | +| O_AL_25 | overhead | al | al | | | 25 | 25 | 1.2 | 1.2 | 0.384574 | 0.384574 | 2.973e-06 | 2.973e-06 | 122 | 122 | +| O_AL_28 | overhead | al | al | | | 28 | 28 | 1.1004 | 1.1004 | 0.381013 | 0.381013 | 3.0019e-06 | 3.0019e-06 | 130 | 130 | +| O_AL_29 | overhead | al | al | | | 29 | 29 | 1.0672 | 1.0672 | 0.379911 | 0.379911 | 3.011e-06 | 3.011e-06 | 132 | 132 | +| O_AL_33 | overhead | al | al | | | 33 | 33 | 0.9344 | 0.9344 | 0.375852 | 0.375852 | 3.045e-06 | 3.045e-06 | 142 | 142 | +| O_AL_34 | overhead | al | al | | | 34 | 34 | 0.9012 | 0.9012 | 0.374914 | 0.374914 | 3.0529e-06 | 3.0529e-06 | 144 | 144 | +| O_AL_37 | overhead | al | al | | | 37 | 37 | 0.837733 | 0.837733 | 0.372257 | 0.372257 | 3.0757e-06 | 3.0757e-06 | 152 | 152 | +| O_AL_38 | overhead | al | al | | | 38 | 38 | 0.8226 | 0.8226 | 0.37142 | 0.37142 | 3.0829e-06 | 3.0829e-06 | 155 | 155 | +| O_AL_40 | overhead | al | al | | | 40 | 40 | 0.792333 | 0.792333 | 0.369808 | 0.369808 | 3.0969e-06 | 3.0969e-06 | 160 | 160 | +| O_AL_43 | overhead | al | al | | | 43 | 43 | 0.746933 | 0.746933 | 0.367536 | 0.367536 | 3.1169e-06 | 3.1169e-06 | 167 | 167 | +| O_AL_48 | overhead | al | al | | | 48 | 48 | 0.671267 | 0.671267 | 0.36408 | 0.36408 | 3.1478e-06 | 3.1478e-06 | 180 | 180 | +| O_AL_50 | overhead | al | al | | | 50 | 50 | 0.641 | 0.641 | 0.362798 | 0.362798 | 3.1595e-06 | 3.1595e-06 | 185 | 185 | +| O_AL_54 | overhead | al | al | | | 54 | 54 | 0.6014 | 0.6014 | 0.36038 | 0.36038 | 3.1816e-06 | 3.1816e-06 | 193 | 193 | +| O_AL_55 | overhead | al | al | | | 55 | 55 | 0.5915 | 0.5915 | 0.359804 | 0.359804 | 3.187e-06 | 3.187e-06 | 195 | 195 | +| O_AL_59 | overhead | al | al | | | 59 | 59 | 0.5519 | 0.5519 | 0.357598 | 0.357598 | 3.2075e-06 | 3.2075e-06 | 203 | 203 | The following data are available in this table: - the **name**. A name that contains the type of the line, the material of the conductor, the - cross-section area, and optionally the insulator type. It is in the form - `{line_type}_{conductor_material}_{cross_section}_{insulator_type}`. + cross-section area, and optionally the insulator. It is in the form + `{line_type}_{conductor_material}_{cross_section}_{insulator}`. - the **line type**. It can be `"OVERHEAD"`, `"UNDERGROUND"` or `"TWISTED"`. -- the **conductor material**. See the {class}`~roseau.load_flow.ConductorType` class. -- the **insulator type**. See the {class}`~roseau.load_flow.InsulatorType` class. -- the **cross-section** of the conductor in mm². +- the **conductor material** for the phases and for the neutral. See the {class}`~roseau.load_flow.Material` class. +- the **insulator** for the phases and for the neutral. See the {class}`~roseau.load_flow.Insulator` class. +- the **cross-section** of the phases and neutral conductors in mm². in addition to the following calculated physical parameters: -- the _resistance_ of the line in ohm/km. -- the _reactance_ of the line in ohm/km. -- the _susceptance_ of the line in S/km. -- the _maximal current_ of the line in A. +- the _phase resistance_ of the line in ohm/km. +- the _neutral resistance_ of the line in ohm/km. +- the _phase reactance_ of the line in ohm/km. +- the _neutral reactance_ of the line in ohm/km. +- the _phase susceptance_ of the line in S/km. +- the _neutral susceptance_ of the line in S/km. +- the _Phase ampacity_ of the line in A. +- the _neutral ampacity_ of the line in A. The `get_catalogue` method accepts arguments (in bold above) that can be used to filter the returned table. The following command only returns line parameters made of Aluminum: ```pycon ->>> rlf.LineParameters.get_catalogue(conductor_type="al") +>>> rlf.LineParameters.get_catalogue(material="al") ``` _Truncated output_ -| Name | Line type | Conductor material | Insulator type | Cross-section (mm²) | Resistance (ohm/km) | Reactance (ohm/km) | Susceptance (S/km) | Maximal current (A) | -| :------- | :---------- | :----------------- | :------------- | ------------------: | ------------------: | -----------------: | -----------------: | ------------------: | -| U_AL_117 | underground | al | | 117 | 0.26104 | 0.0996298 | 3.2668e-05 | 286 | -| U_AL_33 | underground | al | | 33 | 0.9344 | 0.121598 | 2.58907e-05 | 144 | -| U_AL_69 | underground | al | | 69 | 0.4529 | 0.108041 | 2.96921e-05 | 212 | -| T_AL_228 | twisted | al | | 228 | 0.133509 | 0.0905569 | 3.66279e-05 | 395 | -| U_AL_150 | underground | al | | 150 | 0.206 | 0.0960503 | 3.41234e-05 | 325 | -| T_AL_69 | twisted | al | | 69 | 0.4529 | 0.108041 | 2.96921e-05 | 185 | -| O_AL_116 | overhead | al | | 116 | 0.26372 | 0.336359 | 3.42e-06 | 310 | -| U_AL_50 | underground | al | | 50 | 0.641 | 0.113705 | 2.79758e-05 | 175 | -| U_AL_93 | underground | al | | 93 | 0.32984 | 0.103152 | 3.13521e-05 | 249 | -| T_AL_59 | twisted | al | | 59 | 0.5519 | 0.110744 | 2.88474e-05 | 164 | - -or only lines with a cross-section of 240 mm² (using a regular expression) +| Name | Line type | Phase material | Neutral material | Phase insulator | Neutral insulator | Phase cross-section (mm²) | Neutral cross-section (mm²) | Phase resistance (ohm/km) | Neutral resistance (ohm/km) | Phase reactance (ohm/km) | Neutral reactance (ohm/km) | Phase susceptance (S/km) | Neutral susceptance (S/km) | Phase ampacity (A) | Neutral ampacity (A) | +| :------ | :-------- | :------------- | :--------------- | :-------------- | :---------------- | ------------------------: | --------------------------: | ------------------------: | --------------------------: | -----------------------: | -------------------------: | -----------------------: | -------------------------: | -----------------: | -------------------: | +| O_AL_12 | overhead | al | al | | | 12 | 12 | 2.69 | 2.69 | 0.407632 | 0.407632 | 2.798e-06 | 2.798e-06 | 70 | 70 | +| O_AL_13 | overhead | al | al | | | 13 | 13 | 2.495 | 2.495 | 0.405118 | 0.405118 | 2.8161e-06 | 2.8161e-06 | 76 | 76 | +| O_AL_14 | overhead | al | al | | | 14 | 14 | 2.3 | 2.3 | 0.402789 | 0.402789 | 2.8331e-06 | 2.8331e-06 | 82 | 82 | +| O_AL_19 | overhead | al | al | | | 19 | 19 | 1.67333 | 1.67333 | 0.393195 | 0.393195 | 2.9051e-06 | 2.9051e-06 | 103 | 103 | +| O_AL_20 | overhead | al | al | | | 20 | 20 | 1.59444 | 1.59444 | 0.391584 | 0.391584 | 2.9175e-06 | 2.9175e-06 | 106 | 106 | +| O_AL_22 | overhead | al | al | | | 22 | 22 | 1.43667 | 1.43667 | 0.38859 | 0.38859 | 2.9409e-06 | 2.9409e-06 | 113 | 113 | +| O_AL_25 | overhead | al | al | | | 25 | 25 | 1.2 | 1.2 | 0.384574 | 0.384574 | 2.973e-06 | 2.973e-06 | 122 | 122 | +| O_AL_28 | overhead | al | al | | | 28 | 28 | 1.1004 | 1.1004 | 0.381013 | 0.381013 | 3.0019e-06 | 3.0019e-06 | 130 | 130 | +| O_AL_29 | overhead | al | al | | | 29 | 29 | 1.0672 | 1.0672 | 0.379911 | 0.379911 | 3.011e-06 | 3.011e-06 | 132 | 132 | +| O_AL_33 | overhead | al | al | | | 33 | 33 | 0.9344 | 0.9344 | 0.375852 | 0.375852 | 3.045e-06 | 3.045e-06 | 142 | 142 | + +or only lines with a cross-section of 240 mm² ```pycon >>> rlf.LineParameters.get_catalogue(section=240) ``` -| Name | Line type | Conductor material | Insulator type | Cross-section (mm²) | Resistance (ohm/km) | Reactance (ohm/km) | Susceptance (S/km) | Maximal current (A) | -| :------- | :---------- | :----------------- | :------------- | ------------------: | ------------------: | -----------------: | -----------------: | ------------------: | -| O_AL_240 | overhead | al | | 240 | 0.125 | 0.313518 | 3.6823e-06 | 490 | -| O_CU_240 | overhead | cu | | 240 | 0.0775 | 0.313518 | 3.6823e-06 | 630 | -| O_AM_240 | overhead | am | | 240 | 0.14525 | 0.313518 | 3.6823e-06 | 490 | -| U_AL_240 | underground | al | | 240 | 0.125 | 0.0899296 | 3.69374e-05 | 428 | -| U_CU_240 | underground | cu | | 240 | 0.0775 | 0.0899296 | 3.69374e-05 | 549 | -| U_AM_240 | underground | am | | 240 | 0.14525 | 0.0899296 | 3.69374e-05 | 428 | -| T_AL_240 | twisted | al | | 240 | 0.125 | 0.0899296 | 3.69374e-05 | 409 | -| T_CU_240 | twisted | cu | | 240 | 0.0775 | 0.0899296 | 3.69374e-05 | 538 | -| T_AM_240 | twisted | am | | 240 | 0.14525 | 0.0899296 | 3.69374e-05 | 409 | +| Name | Line type | Phase material | Neutral material | Phase insulator | Neutral insulator | Phase cross-section (mm²) | Neutral cross-section (mm²) | Phase resistance (ohm/km) | Neutral resistance (ohm/km) | Phase reactance (ohm/km) | Neutral reactance (ohm/km) | Phase susceptance (S/km) | Neutral susceptance (S/km) | Phase ampacity (A) | Neutral ampacity (A) | +| :------- | :---------- | :------------- | :--------------- | :-------------- | :---------------- | ------------------------: | --------------------------: | ------------------------: | --------------------------: | -----------------------: | -------------------------: | -----------------------: | -------------------------: | -----------------: | -------------------: | +| O_AL_240 | overhead | al | al | | | 240 | 240 | 0.125 | 0.125 | 0.313518 | 0.313518 | 3.6823e-06 | 3.6823e-06 | 490 | 490 | +| O_CU_240 | overhead | cu | cu | | | 240 | 240 | 0.0775 | 0.0775 | 0.313518 | 0.313518 | 3.6823e-06 | 3.6823e-06 | 630 | 630 | +| O_AM_240 | overhead | am | am | | | 240 | 240 | 0.14525 | 0.14525 | 0.313518 | 0.313518 | 3.6823e-06 | 3.6823e-06 | 490 | 490 | +| U_AL_240 | underground | al | al | | | 240 | 240 | 0.125 | 0.125 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 428 | 428 | +| U_CU_240 | underground | cu | cu | | | 240 | 240 | 0.0775 | 0.0775 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 549 | 549 | +| U_AM_240 | underground | am | am | | | 240 | 240 | 0.14525 | 0.14525 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 428 | 428 | +| T_AL_240 | twisted | al | al | | | 240 | 240 | 0.125 | 0.125 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 409 | 409 | +| T_CU_240 | twisted | cu | cu | | | 240 | 240 | 0.0775 | 0.0775 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 538 | 538 | +| T_AM_240 | twisted | am | am | | | 240 | 240 | 0.14525 | 0.14525 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 409 | 409 | or only lines meeting both criteria ```pycon ->>> rlf.LineParameters.get_catalogue(conductor_type="al", section=240) +>>> rlf.LineParameters.get_catalogue(material="al", section=240) ``` -| Name | Line type | Conductor material | Insulator type | Cross-section (mm²) | Resistance (ohm/km) | Reactance (ohm/km) | Susceptance (S/km) | Maximal current (A) | -| :------- | :---------- | :----------------- | :------------- | ------------------: | ------------------: | -----------------: | -----------------: | ------------------: | -| O_AL_240 | overhead | al | | 240 | 0.125 | 0.313518 | 3.6823e-06 | 490 | -| U_AL_240 | underground | al | | 240 | 0.125 | 0.0899296 | 3.69374e-05 | 428 | -| T_AL_240 | twisted | al | | 240 | 0.125 | 0.0899296 | 3.69374e-05 | 409 | +| Name | Line type | Phase material | Neutral material | Phase insulator | Neutral insulator | Phase cross-section (mm²) | Neutral cross-section (mm²) | Phase resistance (ohm/km) | Neutral resistance (ohm/km) | Phase reactance (ohm/km) | Neutral reactance (ohm/km) | Phase susceptance (S/km) | Neutral susceptance (S/km) | Phase ampacity (A) | Neutral ampacity (A) | +| :------- | :---------- | :------------- | :--------------- | :-------------- | :---------------- | ------------------------: | --------------------------: | ------------------------: | --------------------------: | -----------------------: | -------------------------: | -----------------------: | -------------------------: | -----------------: | -------------------: | +| O_AL_240 | overhead | al | al | | | 240 | 240 | 0.125 | 0.125 | 0.313518 | 0.313518 | 3.6823e-06 | 3.6823e-06 | 490 | 490 | +| U_AL_240 | underground | al | al | | | 240 | 240 | 0.125 | 0.125 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 428 | 428 | +| T_AL_240 | twisted | al | al | | | 240 | 240 | 0.125 | 0.125 | 0.0899296 | 0.0899296 | 3.69374e-05 | 3.69374e-05 | 409 | 409 | When filtering by the cross-section area, it is expected to provide a numeric value in mm² or to use a pint quantity. @@ -484,9 +525,7 @@ the method `get_catalogue` to narrow down the result to a single line in the cat For instance, these parameters filter the results down to a single line parameters: ```pycon ->>> rlf.LineParameters.from_catalogue( -... line_type="underground", conductor_type="al", section=240 -... ) +>>> rlf.LineParameters.from_catalogue(line_type="underground", material="al", section=240) LineParameters(id='U_AL_240') ``` diff --git a/doc/usage/Data_Exchange.md b/doc/usage/Data_Exchange.md index 4b5cbb6e..6a3f66d2 100644 --- a/doc/usage/Data_Exchange.md +++ b/doc/usage/Data_Exchange.md @@ -112,17 +112,94 @@ In addition to the DGS import support, `roseau-load-flow` supports creating line parameters from PowerFactory data. This is useful when you don't want to import a whole network but would like to use some of the lines and transformers models you have in a power factory project. +#### Lines + To create line parameters from a PowerFactory Line Type (`TypLne`) object, use the {meth}`LineParameters.from_power_factory() ` method. +The parameters of a line type can be found in two different panels on the graphical user interface of PowerFactory: + +- the "Basic Data" panel as shown in the figure below + + ```{image} /_static/IO/DGS_Line_Basic_Data.png + :alt: Line basic data panel + :align: center + ``` + +- the "Load Flow" panel as shown in the figure below + + ```{image} /_static/IO/DGS_Line_Load_Flow.png + :alt: Line load flow panel + :align: center + ``` + +The data on these two screenshots translate to: + +```pycon +>>> rlf.LineParameters.from_power_factory( +... id="NA2YSY 1x95rm 12/20kV it", +... r0=rlf.Q_(1.29, "ohm/km"), # Parameters per Length Zero Sequence, "Basic data" +... r1=rlf.Q_(0.3225, "ohm/km"), # Parameters per Length 1,2 Sequence, "Basic data" +... x0=rlf.Q_(0.502654, "ohm/km"), # Parameters per Length Zero Sequence, "Basic data" +... x1=rlf.Q_(0.125663, "ohm/km"), # Parameters per Length 1,2 Sequence, "Basic data" +... b0=rlf.Q_(75.05265, "uS/km"), # Parameters per Length Sero Sequence, "Load Flow" +... b1=rlf.Q_(72.25663, "uS/km"), # Parameters per Length 1,2 Sequence, "Load Flow" +... nphase=3, # Phases, "Basic Data" +... nneutral=0, # Number of Neutrals, "Basic Data" +... inom=rlf.Q_(0.235, "kA"), # Rated Current, "Basic Data" +... cohl="Cable", # Cable/OHL, "Basic Data" +... conductor="Al", # Conductor Material, "Load Flow" +... ) +``` + +#### Transformers + To create transformer parameters from a PowerFactory 2-Winding Transformer Type (`TypTr2`) object, use the {meth}`TransformerParameters.from_power_factory() ` method. +The parameters of a 2-winding transformer can be found in two different panels on the graphical user interface of +PowerFactory: + +- the "Basic Data" panel as shown in the figure below + + ```{image} /_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Basic_Data.png + :alt: Two winding three-phase transformer basic data panel + :align: center + ``` + +- the "Load Flow" panel as shown in the figure below + + ```{image} /_static/IO/DGS_Two_Winding_Three_Phase_Transformer_Load_Flow.png + :alt: Two winding three-phase transformer load flow panel + :align: center + ``` + +The data on these two screenshots translate to: + +```pycon +>>> tp = rlf.TransformerParameters.from_power_factory( +... id="0.315 MVA 20/0.4 kV Dyn11 ASEA", +... tech="three-phase", # Technology, "Basic Data" +... sn=rlf.Q_(0.315, "MVA"), # Rated Power, "Basic Data" +... uhv=rlf.Q_(20, "kV"), # Rated Voltage HV-Side, "Basic Data" +... ulv=rlf.Q_(0.4, "kV"), # Rated Voltage LV-Side, "Basic Data" +... vg_hv="D", # Vector Group HV-Side, "Basic Data" +... vg_lv="yn", # Vector Group LV-Side, "Basic Data" +... phase_shift=11, # Vector Group Phase Shift, "Basic Data" +... uk=rlf.Q_(6, "%"), # Positive Sequence Impedance Short-Circuit Voltage, "Basic Data" +... pc=rlf.Q_(4, "kW"), # Positive Sequence Impedance Copper Losses, "Basic Data" +... curmg=rlf.Q_(0.333343, "%"), # Magnetizing Impedance - No Load Current, "Load Flow" +... pfe=rlf.Q_(1.05, "kW"), # Magnetizing Impedance - No Load Losses, "Load Flow" +... ) +``` + ## OpenDSS `roseau-load-flow` supports creating lines and transformers from OpenDSS data. +### Lines + To create line parameters from an OpenDSS `LineCode` object, use the {meth}`LineParameters.from_open_dss() ` method. For example, the DSS command `New linecode.240sq nphases=3 R1=0.127 X1=0.072 R0=0.342 X0=0.089 units=km` @@ -141,6 +218,8 @@ translates to: ... ) ``` +### Transformers + To create a transformer from an OpenDSS 2-winding `Transformer` object, use the {meth}`TransformerParameters.from_open_dss() ` method to create the transformer parameters. For example, the DSS command diff --git a/doc/usage/Extras.md b/doc/usage/Extras.md index 7d7664cf..adf822df 100644 --- a/doc/usage/Extras.md +++ b/doc/usage/Extras.md @@ -161,10 +161,10 @@ array([345.+199.18584287j]) ## Constants {mod}`roseau.load_flow.utils.constants` contains some common constants like the resistivity -and permeability of common conductor types in addition to other useful constants. Please refer to +and permeability of common materials in addition to other useful constants. Please refer to the module documentation for more details. -An enumeration of available conductor types can be found in the {mod}`roseau.load_flow.utils.types` +An enumeration of available materials can be found in the {mod}`roseau.load_flow.utils.types` module. ## Voltage unbalance diff --git a/doc/usage/Flexible_Loads.md b/doc/usage/Flexible_Loads.md index 4d8c0b83..97861eb7 100644 --- a/doc/usage/Flexible_Loads.md +++ b/doc/usage/Flexible_Loads.md @@ -47,7 +47,7 @@ a Delta-Wye transformer and a small LV network. >>> # Add a MV/LV transformer ... tp = rlf.TransformerParameters.from_open_and_short_circuit_tests( ... "160_kVA", -... "Dyn11", +... vg="Dyn11", ... sn=160.0 * 1e3, ... uhv=20e3, ... ulv=400.0, @@ -70,8 +70,8 @@ a Delta-Wye transformer and a small LV network. ... lp = rlf.LineParameters.from_geometry( ... "U_AL_150", ... line_type=rlf.LineType.UNDERGROUND, -... conductor_type=rlf.ConductorType.AL, -... insulator_type=rlf.InsulatorType.PVC, +... material=rlf.Material.AL, +... insulator=rlf.Insulator.PVC, ... section=150, ... section_neutral=150, ... height=rlf.Q_(-1.5, "m"), diff --git a/doc/usage/Getting_Started.md b/doc/usage/Getting_Started.md index d2cebe6a..50ee179d 100644 --- a/doc/usage/Getting_Started.md +++ b/doc/usage/Getting_Started.md @@ -61,7 +61,8 @@ The following is a summary of the available elements: - `FlexibleParameter`: This object defines the parameters of the flexible load's control (Maximum power, projection, type, etc.) - Note that flexible loads are an advanced feature that most users don't need. They are explained in details [here](usage-flexible-loads). + Note that flexible loads are an advanced feature that most users don't need. They are explained in + details [here](usage-flexible-loads). - Sources: @@ -82,16 +83,28 @@ line and a constant power load. This network is a low voltage network (three-pha >>> import numpy as np ... import roseau.load_flow as rlf ->>> # Nominal phase-to-neutral voltage (typical european voltage) -... un = 400 / np.sqrt(3) # In Volts +>>> # Nominal phase-to-phase voltage (typical european voltage) +... un = 400 # In Volts ... # Optional network limits (for analyzing network violations) -... u_min = 0.9 * un # V -... u_max = 1.1 * un # V +... u_min_level = 0.9 # 90% of un +... u_max_level = 1.1 # 110% of un ... i_max = 500.0 # A >>> # Create two buses (notice the phases of LV buses include the neutral, as in typical LV networks) -... source_bus = rlf.Bus(id="sb", phases="abcn", min_voltage=u_min, max_voltage=u_max) -... load_bus = rlf.Bus(id="lb", phases="abcn", min_voltage=u_min, max_voltage=u_max) +... source_bus = rlf.Bus( +... id="sb", +... phases="abcn", +... nominal_voltage=un, +... min_voltage_level=u_min_level, +... max_voltage_level=u_max_level, +... ) +... load_bus = rlf.Bus( +... id="lb", +... phases="abcn", +... nominal_voltage=un, +... min_voltage_level=u_min_level, +... max_voltage_level=u_max_level, +... ) >>> # Define the reference of potentials to be the earth's potential ... # First define the "Ground" object representing the earth @@ -103,13 +116,13 @@ line and a constant power load. This network is a low voltage network (three-pha >>> # Create a three-phase voltage source at the first bus ... # (voltages are phase-to-neutral because the source's phases include a neutral) -... vs = rlf.VoltageSource(id="vs", bus=source_bus, voltages=un) +... vs = rlf.VoltageSource(id="vs", bus=source_bus, voltages=un / np.sqrt(3)) >>> # Add a 30kW load at the second bus (balanced load, 10 kW per phase) ... load = rlf.PowerLoad(id="load", bus=load_bus, powers=[10e3 + 0j, 10e3, 10e3]) # In VA >>> # Add a 2 km line between the source bus and the load bus with R = 0.1 Ohm/km and X = 0 -... lp = rlf.LineParameters("lp", z_line=(0.1 + 0.0j) * np.eye(4), max_current=i_max) +... lp = rlf.LineParameters("lp", z_line=(0.1 + 0.0j) * np.eye(4), ampacities=i_max) ... line = rlf.Line(id="line", bus1=source_bus, bus2=load_bus, parameters=lp, length=2.0) ``` @@ -122,12 +135,12 @@ to `"abc"`: >>> vs_delta = rlf.VoltageSource( ... id="vs_delta", ... bus=source_bus, -... voltages=un * np.sqrt(3), +... voltages=un, ... phases="abc", # <- delta source ... ) ``` -Note the use of `un * np.sqrt(3)` as the source voltages as they now represent the phase-to-phase +Note the use of `un` (and not `un / np.sqrt(3)`) as the source voltages as they now represent the phase-to-phase voltages. This is because everywhere in `roseau-load-flow`, the `voltages` of an element depend on the element's `phases`. Voltages of elements connected in a _Star (wye)_ configuration (elements that have a neutral connection indicated by the presence of the `'n'` character in their `phases` @@ -193,7 +206,7 @@ Afterwards, the load flow can be solved by calling the `solve_load_flow` method ```pycon >>> en.solve_load_flow() -(2, 1.8595619621919468e-07) +(2, 1.8595620332462204e-07) ``` It returns the number of iterations performed by the _Newton-Raphson_ solver, and the residual @@ -231,16 +244,16 @@ The results returned by the `res_` properties are also `Quantity` objects. The available results depend on the type of element. The following table lists the available results for each element type: -| Element type | Available results | -| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Bus` | `res_potentials`, `res_voltages`, `res_violated` | -| `Line` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages`, `res_series_power_losses`, `res_shunt_power_losses`, `res_power_losses`, `res_violated` | -| `Transformer` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages`, `res_power_losses`, `res_violated` | -| `Switch` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages` | -| `ImpedanceLoad`, `CurrentLoad`, `PowerLoad` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages`, `res_flexible_powers`¹ | -| `VoltageSource` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages` | -| `Ground` | `res_potential` | -| `PotentialRef` | `res_current` _(Always zero for a successful load flow)_ | +| Element type | Available results | +| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Bus` | `res_potentials`, `res_voltages`, `res_voltage_levels`, `res_violated` | +| `Line` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages`,
`res_series_power_losses`, `res_shunt_power_losses`, `res_power_losses`, `res_loading`, `res_violated` | +| `Transformer` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages`, `res_power_losses`, `res_loading`, `res_violated` | +| `Switch` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages` | +| `ImpedanceLoad`, `CurrentLoad`, `PowerLoad` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages`, `res_flexible_powers`¹ | +| `VoltageSource` | `res_currents`, `res_powers`, `res_potentials`, `res_voltages` | +| `Ground` | `res_potential` | +| `PotentialRef` | `res_current` _(Always zero for a successful load flow)_ | ¹ _`res_flexible_powers` is only available for flexible loads (`PowerLoad`s with `flexible_params`). You'll see an example on the usage of flexible loads in the "Flexible Loads" page._ @@ -252,19 +265,19 @@ properties of buses as follows: ```pycon >>> load_bus.res_potentials -array([ 2.21928183e+02-2.60536682e-18j, -1.10964092e+02-1.92195445e+02j, - -1.10964092e+02+1.92195445e+02j, 2.68637675e-15-6.67652444e-17j]) + ``` As the results are _pint quantities_, they can be converted to different units easily. ```pycon >>> abs(load_bus.res_voltages).to("kV") # Get a Quantity in kV -array([0.22192818, 0.22192818, 0.22192818]) + >>> abs(load_bus.res_voltages).m_as("kV") # Get the magnitude in kV array([0.22192818, 0.22192818, 0.22192818]) >>> abs(load_bus.res_voltages).m # Get the default magnitude (Volts) -array([221.928183, 221.928183, 221.928183]) +array([221.92818336, 221.92818336, 221.92818336]) ``` The currents of the line are available using the `res_currents` property of the `line` object. @@ -280,10 +293,10 @@ would have been non-zero. ```pycon >>> line.res_currents -(array([ 4.50596216e+01+1.30268341e-17j, -2.25298108e+01-3.90227770e+01j, - -2.25298108e+01+3.90227770e+01j, -1.34318838e-14+3.33826222e-16j]) , - array([-4.50596216e+01-1.30268341e-17j, 2.25298108e+01+3.90227770e+01j, - 2.25298108e+01-3.90227770e+01j, 1.34318838e-14-3.33826222e-16j]) ) +(, + ) ``` ### Dataframe network results @@ -336,32 +349,34 @@ Below are the results of the load flow for `en`, rounded to 2 decimal places: >>> en.res_buses_voltages ``` -| bus_id | phase | voltage | min_voltage | max_voltage | violated | -| :----- | :---- | -------------: | ----------: | ----------: | :------- | -| sb | an | 230.94+0j | 207.846 | 254.034 | False | -| sb | bn | -115.47-200j | 207.846 | 254.034 | False | -| sb | cn | -115.47+200j | 207.846 | 254.034 | False | -| lb | an | 221.93-0j | 207.846 | 254.034 | False | -| lb | bn | -110.96-192.2j | 207.846 | 254.034 | False | -| lb | cn | -110.96+192.2j | 207.846 | 254.034 | False | +| bus_id | phase | voltage | violated | voltage_level | min_voltage_level | max_voltage_level | nominal_voltage | +| :----- | :---- | -------------: | :------- | ------------: | ----------------: | ----------------: | --------------: | +| sb | an | 230.94+0j | False | 1 | 0.9 | 1.1 | 400 | +| sb | bn | -115.47-200j | False | 1 | 0.9 | 1.1 | 400 | +| sb | cn | -115.47+200j | False | 1 | 0.9 | 1.1 | 400 | +| lb | an | 221.93+0j | False | 0.96 | 0.9 | 1.1 | 400 | +| lb | bn | -110.96-192.2j | False | 0.96 | 0.9 | 1.1 | 400 | +| lb | cn | -110.96+192.2j | False | 0.96 | 0.9 | 1.1 | 400 | ```pycon >>> en.res_lines ``` -| line_id | phase | current1 | current2 | power1 | power2 | potential1 | potential2 | series_losses | series_current | max_current | violated | -| :------ | :---- | ------------: | -----------: | ----------: | --------: | -----------: | -------------: | ------------: | -------------: | ----------: | :------- | -| line | a | 45.06-0j | -45.06+0j | 10406.07+0j | -10000-0j | 230.94+0j | 221.93+0j | 406.07-0j | 45.06-0j | 500 | False | -| line | b | -22.53-39.02j | 22.53+39.02j | 10406.07+0j | -10000-0j | -115.47-200j | -110.96-192.2j | 406.07-0j | -22.53-39.02j | 500 | False | -| line | c | -22.53+39.02j | 22.53-39.02j | 10406.07-0j | -10000+0j | -115.47+200j | -110.96+192.2j | 406.07+0j | -22.53+39.02j | 500 | False | -| line | n | -0-0j | 0j | -0+0j | -0j | 0j | 0j | -0j | -0-0j | 500 | False | +| line_id | phase | current1 | current2 | power1 | power2 | potential1 | potential2 | series_losses | series_current | violated | loading | max_loading | ampacity | +| :------ | :---- | ------------: | -----------: | ----------: | --------: | -----------: | -------------: | ------------: | -------------: | :------- | ------: | ----------: | -------: | +| line | a | 45.06-0j | -45.06+0j | 10406.07+0j | -10000-0j | 230.94+0j | 221.93+0j | 406.07-0j | 45.06-0j | False | 0.09 | 1 | 500 | +| line | b | -22.53-39.02j | 22.53+39.02j | 10406.07+0j | -10000-0j | -115.47-200j | -110.96-192.2j | 406.07-0j | -22.53-39.02j | False | 0.09 | 1 | 500 | +| line | c | -22.53+39.02j | 22.53-39.02j | 10406.07-0j | -10000+0j | -115.47+200j | -110.96+192.2j | 406.07+0j | -22.53+39.02j | False | 0.09 | 1 | 500 | +| line | n | -0j | 0j | 0j | -0j | 0j | 0j | -0j | -0j | False | 0 | 1 | 500 | ```pycon >>> en.res_transformers # empty as the network does not contain transformers ``` -| transformer_id | phase | current1 | current2 | power1 | power2 | potential1 | potential2 | max_power | violated | -| -------------- | ----- | -------- | -------- | ------ | ------ | ---------- | ---------- | --------- | -------- | +[//]: # "TODO" + +| transformer_id | phase | current1 | current2 | power1 | power2 | potential1 | potential2 | violated | loading | max_loading | sn | +| :------------- | :---- | -------: | -------: | -----: | -----: | ---------: | ---------: | :------- | ------: | ----------: | --: | ```pycon >>> en.res_switches # empty as the network does not contain switches @@ -454,33 +469,38 @@ Or, if you prefer degrees: ## Analyzing the results and detecting violations -In the example network above, `min_voltage` and `max_voltage` arguments were passed to the `Bus` -constructor and `max_current` was passed to the `LineParameters` constructor. These arguments -define the limits of the network that can be used to check if the network is in a valid state -or not. Note that these limits have no effect on the load flow calculation. +In the example network above, `min_voltage_level`, `max_voltage_level` and `nominal_voltage` arguments +were passed to the `Bus` constructor and `ampacities` was passed to the `LineParameters` constructor. In addition +with the `max_loading` parameters of the `Line` and `Transformer`, these arguments define the limits of the network +that can be used to check if the network is in a valid state or not. Note that these limits have no effect on the +load flow calculation. -If you set `min_voltage` or `max_voltage` on a bus, the `res_violated` property will tell you if -the voltage limits are violated or not at this bus. Here, the voltage limits are not violated. +If you set `nominal_voltage` with `min_voltage_level` or `max_voltage_level` on a bus, the `res_violated` +property will tell you if the voltage limits are violated or not at this bus. Here, the voltage limits are +not violated. ```pycon >>> load_bus.res_violated False ``` -Similarly, if you set `max_current` on a line, the `res_violated` property will tell you if the -current loading of the line in any phase exceeds the limit. Here, the current limit is not violated. +Similarly, if you set `ampacities` on a line parameters and `max_loading` (default 100% of the ampacity) on a line, the +`res_loading` property will give you the current loading. The `res_violated` property will tell you if the current +loading of the line in any phase exceeds the limit. Here, the current limit is not violated. ```pycon +>>> line.res_loading + >>> line.res_violated False ``` -The power limit of the transformer can be defined using the `max_power` argument of the -`TransformerParameters`. Transformers also have a `res_violated` property that indicates if the -power loading of the transformer exceeds the limit. +The maximal loading of the transformer can be defined using the `max_loading` argument of the +`Transformer` (default 100% of the nominal power). Transformers also have a `res_loading` to indicate the loading of +the transformer and a `res_violated` property that indicates if the power loading of the transformer exceeds the limit. -The data frame results on the electrical network also include a `violated` column that indicates if -the limits are violated or not for the corresponding element. +The data frame results on the electrical network also include a `loading`, a `max_loading` and a `violated` columns that +indicate if the limits are violated or not for the corresponding element. ```{tip} You can use the {meth}`Bus.propagate_limits() ` method to @@ -499,14 +519,16 @@ unbalanced situation. ... [15, 0, 0], "kVA" ... ) # <- 15 kW on phase "a", 0 W on phases "b" and "c" >>> en.solve_load_flow() -(3, 1.686343545e-07) +(3, 1.1027623258996755e-11) >>> load_bus.res_potentials -array([ 216.02252269 +0.j, -115.47005384-200.j, -115.47005384+200.j, 14.91758499 +0.j]) + ``` Notice how the unbalance manifested in the neutral's potential of the bus no longer being close to 0 V. -More information on modifying the network elements can be found in the [Modifying a network](usage-modifying-network) page. +More information on modifying the network elements can be found in the [Modifying a network](usage-modifying-network) +page. (gs-network-json)= diff --git a/doc/usage/Short_Circuit.md b/doc/usage/Short_Circuit.md index ad43682a..c7f95841 100644 --- a/doc/usage/Short_Circuit.md +++ b/doc/usage/Short_Circuit.md @@ -45,8 +45,8 @@ is impossible. ... lp1 = rlf.LineParameters.from_geometry( ... "U_AL_240", ... line_type=rlf.LineType.UNDERGROUND, -... conductor_type=rlf.ConductorType.AL, -... insulator_type=rlf.InsulatorType.PVC, +... material=rlf.Material.AL, +... insulator=rlf.Insulator.PVC, ... section=240, ... section_neutral=120, ... height=rlf.Q_(-1.5, "m"), @@ -58,8 +58,8 @@ is impossible. ... lp2 = rlf.LineParameters.from_geometry( ... "U_AL_150", ... line_type=rlf.LineType.UNDERGROUND, -... conductor_type=rlf.ConductorType.AL, -... insulator_type=rlf.InsulatorType.PVC, +... material=rlf.Material.AL, +... insulator=rlf.Insulator.PVC, ... section=150, ... section_neutral=150, ... height=rlf.Q_(-1.5, "m"), diff --git a/doc/usage/index.md b/doc/usage/index.md index 838b8cdc..9a781add 100644 --- a/doc/usage/index.md +++ b/doc/usage/index.md @@ -1,3 +1,5 @@ +# Usage + This section provides some tutorials to start using _Roseau_Load_Flow_: ```{toctree} diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 10bade74..00000000 --- a/poetry.lock +++ /dev/null @@ -1,2247 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.10" -files = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] - -[[package]] -name = "appdirs" -version = "1.4.4" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -optional = false -python-versions = "*" -files = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] - -[[package]] -name = "astroid" -version = "3.3.2" -description = "An abstract syntax tree for Python with inference support." -optional = false -python-versions = ">=3.9.0" -files = [ - {file = "astroid-3.3.2-py3-none-any.whl", hash = "sha256:9f8136ce9770e0f912401b25a0f15d5c2ec20b50e99b1b413ac0778fe53ff6f1"}, - {file = "astroid-3.3.2.tar.gz", hash = "sha256:99e9b5b602cbb005434084309213d6af32bf7a9b743c836749168b8e2b330cbd"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} - -[[package]] -name = "babel" -version = "2.16.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, - {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, -] - -[package.extras] -dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] - -[[package]] -name = "beautifulsoup4" -version = "4.12.3" -description = "Screen-scraping library" -optional = false -python-versions = ">=3.6.0" -files = [ - {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, - {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, -] - -[package.dependencies] -soupsieve = ">1.2" - -[package.extras] -cchardet = ["cchardet"] -chardet = ["chardet"] -charset-normalizer = ["charset-normalizer"] -html5lib = ["html5lib"] -lxml = ["lxml"] - -[[package]] -name = "certifi" -version = "2024.8.30" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, -] - -[[package]] -name = "cfgv" -version = "3.4.0" -description = "Validate configuration and produce human readable error messages." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, - {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "contourpy" -version = "1.3.0" -description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.9" -files = [ - {file = "contourpy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:880ea32e5c774634f9fcd46504bf9f080a41ad855f4fef54f5380f5133d343c7"}, - {file = "contourpy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:76c905ef940a4474a6289c71d53122a4f77766eef23c03cd57016ce19d0f7b42"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f8557cbb07415a4d6fa191f20fd9d2d9eb9c0b61d1b2f52a8926e43c6e9af7"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36f965570cff02b874773c49bfe85562b47030805d7d8360748f3eca570f4cab"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cacd81e2d4b6f89c9f8a5b69b86490152ff39afc58a95af002a398273e5ce589"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69375194457ad0fad3a839b9e29aa0b0ed53bb54db1bfb6c3ae43d111c31ce41"}, - {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a52040312b1a858b5e31ef28c2e865376a386c60c0e248370bbea2d3f3b760d"}, - {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3faeb2998e4fcb256542e8a926d08da08977f7f5e62cf733f3c211c2a5586223"}, - {file = "contourpy-1.3.0-cp310-cp310-win32.whl", hash = "sha256:36e0cff201bcb17a0a8ecc7f454fe078437fa6bda730e695a92f2d9932bd507f"}, - {file = "contourpy-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:87ddffef1dbe5e669b5c2440b643d3fdd8622a348fe1983fad7a0f0ccb1cd67b"}, - {file = "contourpy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fa4c02abe6c446ba70d96ece336e621efa4aecae43eaa9b030ae5fb92b309ad"}, - {file = "contourpy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:834e0cfe17ba12f79963861e0f908556b2cedd52e1f75e6578801febcc6a9f49"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbc4c3217eee163fa3984fd1567632b48d6dfd29216da3ded3d7b844a8014a66"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4865cd1d419e0c7a7bf6de1777b185eebdc51470800a9f42b9e9decf17762081"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:303c252947ab4b14c08afeb52375b26781ccd6a5ccd81abcdfc1fafd14cf93c1"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637f674226be46f6ba372fd29d9523dd977a291f66ab2a74fbeb5530bb3f445d"}, - {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76a896b2f195b57db25d6b44e7e03f221d32fe318d03ede41f8b4d9ba1bff53c"}, - {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e1fd23e9d01591bab45546c089ae89d926917a66dceb3abcf01f6105d927e2cb"}, - {file = "contourpy-1.3.0-cp311-cp311-win32.whl", hash = "sha256:d402880b84df3bec6eab53cd0cf802cae6a2ef9537e70cf75e91618a3801c20c"}, - {file = "contourpy-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:6cb6cc968059db9c62cb35fbf70248f40994dfcd7aa10444bbf8b3faeb7c2d67"}, - {file = "contourpy-1.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:570ef7cf892f0afbe5b2ee410c507ce12e15a5fa91017a0009f79f7d93a1268f"}, - {file = "contourpy-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:da84c537cb8b97d153e9fb208c221c45605f73147bd4cadd23bdae915042aad6"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be4d8425bfa755e0fd76ee1e019636ccc7c29f77a7c86b4328a9eb6a26d0639"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c0da700bf58f6e0b65312d0a5e695179a71d0163957fa381bb3c1f72972537c"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb8b141bb00fa977d9122636b16aa67d37fd40a3d8b52dd837e536d64b9a4d06"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3634b5385c6716c258d0419c46d05c8aa7dc8cb70326c9a4fb66b69ad2b52e09"}, - {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0dce35502151b6bd35027ac39ba6e5a44be13a68f55735c3612c568cac3805fd"}, - {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aea348f053c645100612b333adc5983d87be69acdc6d77d3169c090d3b01dc35"}, - {file = "contourpy-1.3.0-cp312-cp312-win32.whl", hash = "sha256:90f73a5116ad1ba7174341ef3ea5c3150ddf20b024b98fb0c3b29034752c8aeb"}, - {file = "contourpy-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:b11b39aea6be6764f84360fce6c82211a9db32a7c7de8fa6dd5397cf1d079c3b"}, - {file = "contourpy-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3e1c7fa44aaae40a2247e2e8e0627f4bea3dd257014764aa644f319a5f8600e3"}, - {file = "contourpy-1.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:364174c2a76057feef647c802652f00953b575723062560498dc7930fc9b1cb7"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32b238b3b3b649e09ce9aaf51f0c261d38644bdfa35cbaf7b263457850957a84"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d51fca85f9f7ad0b65b4b9fe800406d0d77017d7270d31ec3fb1cc07358fdea0"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:732896af21716b29ab3e988d4ce14bc5133733b85956316fb0c56355f398099b"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d73f659398a0904e125280836ae6f88ba9b178b2fed6884f3b1f95b989d2c8da"}, - {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6c7c2408b7048082932cf4e641fa3b8ca848259212f51c8c59c45aa7ac18f14"}, - {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f317576606de89da6b7e0861cf6061f6146ead3528acabff9236458a6ba467f8"}, - {file = "contourpy-1.3.0-cp313-cp313-win32.whl", hash = "sha256:31cd3a85dbdf1fc002280c65caa7e2b5f65e4a973fcdf70dd2fdcb9868069294"}, - {file = "contourpy-1.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4553c421929ec95fb07b3aaca0fae668b2eb5a5203d1217ca7c34c063c53d087"}, - {file = "contourpy-1.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:345af746d7766821d05d72cb8f3845dfd08dd137101a2cb9b24de277d716def8"}, - {file = "contourpy-1.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3bb3808858a9dc68f6f03d319acd5f1b8a337e6cdda197f02f4b8ff67ad2057b"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:420d39daa61aab1221567b42eecb01112908b2cab7f1b4106a52caaec8d36973"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d63ee447261e963af02642ffcb864e5a2ee4cbfd78080657a9880b8b1868e18"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:167d6c890815e1dac9536dca00828b445d5d0df4d6a8c6adb4a7ec3166812fa8"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:710a26b3dc80c0e4febf04555de66f5fd17e9cf7170a7b08000601a10570bda6"}, - {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:75ee7cb1a14c617f34a51d11fa7524173e56551646828353c4af859c56b766e2"}, - {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:33c92cdae89ec5135d036e7218e69b0bb2851206077251f04a6c4e0e21f03927"}, - {file = "contourpy-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a11077e395f67ffc2c44ec2418cfebed032cd6da3022a94fc227b6faf8e2acb8"}, - {file = "contourpy-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e8134301d7e204c88ed7ab50028ba06c683000040ede1d617298611f9dc6240c"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e12968fdfd5bb45ffdf6192a590bd8ddd3ba9e58360b29683c6bb71a7b41edca"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fd2a0fc506eccaaa7595b7e1418951f213cf8255be2600f1ea1b61e46a60c55f"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4cfb5c62ce023dfc410d6059c936dcf96442ba40814aefbfa575425a3a7f19dc"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68a32389b06b82c2fdd68276148d7b9275b5f5cf13e5417e4252f6d1a34f72a2"}, - {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94e848a6b83da10898cbf1311a815f770acc9b6a3f2d646f330d57eb4e87592e"}, - {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d78ab28a03c854a873787a0a42254a0ccb3cb133c672f645c9f9c8f3ae9d0800"}, - {file = "contourpy-1.3.0-cp39-cp39-win32.whl", hash = "sha256:81cb5ed4952aae6014bc9d0421dec7c5835c9c8c31cdf51910b708f548cf58e5"}, - {file = "contourpy-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:14e262f67bd7e6eb6880bc564dcda30b15e351a594657e55b7eec94b6ef72843"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fe41b41505a5a33aeaed2a613dccaeaa74e0e3ead6dd6fd3a118fb471644fd6c"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca7e17a65f72a5133bdbec9ecf22401c62bcf4821361ef7811faee695799779"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ec4dc6bf570f5b22ed0d7efba0dfa9c5b9e0431aeea7581aa217542d9e809a4"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:00ccd0dbaad6d804ab259820fa7cb0b8036bda0686ef844d24125d8287178ce0"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca947601224119117f7c19c9cdf6b3ab54c5726ef1d906aa4a69dfb6dd58102"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6ec93afeb848a0845a18989da3beca3eec2c0f852322efe21af1931147d12cb"}, - {file = "contourpy-1.3.0.tar.gz", hash = "sha256:7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4"}, -] - -[package.dependencies] -numpy = ">=1.23" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] - -[[package]] -name = "coverage" -version = "7.6.1" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, - {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, - {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, - {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, - {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, - {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, - {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, - {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, - {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, - {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, - {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, - {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, - {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, - {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, - {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, - {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, - {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, - {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, -] - -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "coverage-conditional-plugin" -version = "0.9.0" -description = "Conditional coverage based on any rules you define!" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "coverage_conditional_plugin-0.9.0-py3-none-any.whl", hash = "sha256:1b37bc469019d2ab5b01f5eee453abe1846b3431e64e209720c2a9ec4afb8130"}, - {file = "coverage_conditional_plugin-0.9.0.tar.gz", hash = "sha256:6893dab0542695dbd5ea714281dae0dfec8d0e36480ba32d839e9fa7344f8215"}, -] - -[package.dependencies] -coverage = ">=7,<8" -packaging = ">=20.4" - -[[package]] -name = "cycler" -version = "0.12.1" -description = "Composable style cycles" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, - {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, -] - -[package.extras] -docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] -tests = ["pytest", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "distlib" -version = "0.3.8" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, -] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.9" -files = [ - {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, - {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "execnet" -version = "2.1.1" -description = "execnet: rapid multi-Python deployment" -optional = false -python-versions = ">=3.8" -files = [ - {file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"}, - {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, -] - -[package.extras] -testing = ["hatch", "pre-commit", "pytest", "tox"] - -[[package]] -name = "filelock" -version = "3.15.4" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.8" -files = [ - {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, - {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] -typing = ["typing-extensions (>=4.8)"] - -[[package]] -name = "flexcache" -version = "0.3" -description = "Saves and loads to the cache a transformed versions of a source object." -optional = false -python-versions = ">=3.9" -files = [ - {file = "flexcache-0.3-py3-none-any.whl", hash = "sha256:d43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32"}, - {file = "flexcache-0.3.tar.gz", hash = "sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656"}, -] - -[package.dependencies] -typing-extensions = "*" - -[package.extras] -test = ["pytest", "pytest-cov", "pytest-mpl", "pytest-subtests"] - -[[package]] -name = "flexparser" -version = "0.3.1" -description = "Parsing made fun ... using typing." -optional = false -python-versions = ">=3.9" -files = [ - {file = "flexparser-0.3.1-py3-none-any.whl", hash = "sha256:2e3e2936bec1f9277f777ef77297522087d96adb09624d4fe4240fd56885c013"}, - {file = "flexparser-0.3.1.tar.gz", hash = "sha256:36f795d82e50f5c9ae2fde1c33f21f88922fdd67b7629550a3cc4d0b40a66856"}, -] - -[package.dependencies] -typing-extensions = "*" - -[package.extras] -test = ["pytest", "pytest-cov", "pytest-mpl", "pytest-subtests"] - -[[package]] -name = "fonttools" -version = "4.53.1" -description = "Tools to manipulate font files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fonttools-4.53.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0679a30b59d74b6242909945429dbddb08496935b82f91ea9bf6ad240ec23397"}, - {file = "fonttools-4.53.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8bf06b94694251861ba7fdeea15c8ec0967f84c3d4143ae9daf42bbc7717fe3"}, - {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b96cd370a61f4d083c9c0053bf634279b094308d52fdc2dd9a22d8372fdd590d"}, - {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1c7c5aa18dd3b17995898b4a9b5929d69ef6ae2af5b96d585ff4005033d82f0"}, - {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e013aae589c1c12505da64a7d8d023e584987e51e62006e1bb30d72f26522c41"}, - {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9efd176f874cb6402e607e4cc9b4a9cd584d82fc34a4b0c811970b32ba62501f"}, - {file = "fonttools-4.53.1-cp310-cp310-win32.whl", hash = "sha256:c8696544c964500aa9439efb6761947393b70b17ef4e82d73277413f291260a4"}, - {file = "fonttools-4.53.1-cp310-cp310-win_amd64.whl", hash = "sha256:8959a59de5af6d2bec27489e98ef25a397cfa1774b375d5787509c06659b3671"}, - {file = "fonttools-4.53.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da33440b1413bad53a8674393c5d29ce64d8c1a15ef8a77c642ffd900d07bfe1"}, - {file = "fonttools-4.53.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ff7e5e9bad94e3a70c5cd2fa27f20b9bb9385e10cddab567b85ce5d306ea923"}, - {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6e7170d675d12eac12ad1a981d90f118c06cf680b42a2d74c6c931e54b50719"}, - {file = "fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bee32ea8765e859670c4447b0817514ca79054463b6b79784b08a8df3a4d78e3"}, - {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6e08f572625a1ee682115223eabebc4c6a2035a6917eac6f60350aba297ccadb"}, - {file = "fonttools-4.53.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b21952c092ffd827504de7e66b62aba26fdb5f9d1e435c52477e6486e9d128b2"}, - {file = "fonttools-4.53.1-cp311-cp311-win32.whl", hash = "sha256:9dfdae43b7996af46ff9da520998a32b105c7f098aeea06b2226b30e74fbba88"}, - {file = "fonttools-4.53.1-cp311-cp311-win_amd64.whl", hash = "sha256:d4d0096cb1ac7a77b3b41cd78c9b6bc4a400550e21dc7a92f2b5ab53ed74eb02"}, - {file = "fonttools-4.53.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d92d3c2a1b39631a6131c2fa25b5406855f97969b068e7e08413325bc0afba58"}, - {file = "fonttools-4.53.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3b3c8ebafbee8d9002bd8f1195d09ed2bd9ff134ddec37ee8f6a6375e6a4f0e8"}, - {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f029c095ad66c425b0ee85553d0dc326d45d7059dbc227330fc29b43e8ba60"}, - {file = "fonttools-4.53.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f5e6c3510b79ea27bb1ebfcc67048cde9ec67afa87c7dd7efa5c700491ac7f"}, - {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f677ce218976496a587ab17140da141557beb91d2a5c1a14212c994093f2eae2"}, - {file = "fonttools-4.53.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9e6ceba2a01b448e36754983d376064730690401da1dd104ddb543519470a15f"}, - {file = "fonttools-4.53.1-cp312-cp312-win32.whl", hash = "sha256:791b31ebbc05197d7aa096bbc7bd76d591f05905d2fd908bf103af4488e60670"}, - {file = "fonttools-4.53.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ed170b5e17da0264b9f6fae86073be3db15fa1bd74061c8331022bca6d09bab"}, - {file = "fonttools-4.53.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c818c058404eb2bba05e728d38049438afd649e3c409796723dfc17cd3f08749"}, - {file = "fonttools-4.53.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:651390c3b26b0c7d1f4407cad281ee7a5a85a31a110cbac5269de72a51551ba2"}, - {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e54f1bba2f655924c1138bbc7fa91abd61f45c68bd65ab5ed985942712864bbb"}, - {file = "fonttools-4.53.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9cd19cf4fe0595ebdd1d4915882b9440c3a6d30b008f3cc7587c1da7b95be5f"}, - {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2af40ae9cdcb204fc1d8f26b190aa16534fcd4f0df756268df674a270eab575d"}, - {file = "fonttools-4.53.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:35250099b0cfb32d799fb5d6c651220a642fe2e3c7d2560490e6f1d3f9ae9169"}, - {file = "fonttools-4.53.1-cp38-cp38-win32.whl", hash = "sha256:f08df60fbd8d289152079a65da4e66a447efc1d5d5a4d3f299cdd39e3b2e4a7d"}, - {file = "fonttools-4.53.1-cp38-cp38-win_amd64.whl", hash = "sha256:7b6b35e52ddc8fb0db562133894e6ef5b4e54e1283dff606fda3eed938c36fc8"}, - {file = "fonttools-4.53.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75a157d8d26c06e64ace9df037ee93a4938a4606a38cb7ffaf6635e60e253b7a"}, - {file = "fonttools-4.53.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4824c198f714ab5559c5be10fd1adf876712aa7989882a4ec887bf1ef3e00e31"}, - {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:becc5d7cb89c7b7afa8321b6bb3dbee0eec2b57855c90b3e9bf5fb816671fa7c"}, - {file = "fonttools-4.53.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84ec3fb43befb54be490147b4a922b5314e16372a643004f182babee9f9c3407"}, - {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:73379d3ffdeecb376640cd8ed03e9d2d0e568c9d1a4e9b16504a834ebadc2dfb"}, - {file = "fonttools-4.53.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:02569e9a810f9d11f4ae82c391ebc6fb5730d95a0657d24d754ed7763fb2d122"}, - {file = "fonttools-4.53.1-cp39-cp39-win32.whl", hash = "sha256:aae7bd54187e8bf7fd69f8ab87b2885253d3575163ad4d669a262fe97f0136cb"}, - {file = "fonttools-4.53.1-cp39-cp39-win_amd64.whl", hash = "sha256:e5b708073ea3d684235648786f5f6153a48dc8762cdfe5563c57e80787c29fbb"}, - {file = "fonttools-4.53.1-py3-none-any.whl", hash = "sha256:f1f8758a2ad110bd6432203a344269f445a2907dc24ef6bccfd0ac4e14e0d71d"}, - {file = "fonttools-4.53.1.tar.gz", hash = "sha256:e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4"}, -] - -[package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] -graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0)"] -pathops = ["skia-pathops (>=0.5.0)"] -plot = ["matplotlib"] -repacker = ["uharfbuzz (>=0.23.0)"] -symfont = ["sympy"] -type1 = ["xattr"] -ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.1.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] - -[[package]] -name = "furo" -version = "2024.8.6" -description = "A clean customisable Sphinx documentation theme." -optional = false -python-versions = ">=3.8" -files = [ - {file = "furo-2024.8.6-py3-none-any.whl", hash = "sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c"}, - {file = "furo-2024.8.6.tar.gz", hash = "sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01"}, -] - -[package.dependencies] -beautifulsoup4 = "*" -pygments = ">=2.7" -sphinx = ">=6.0,<9.0" -sphinx-basic-ng = ">=1.0.0.beta2" - -[[package]] -name = "geopandas" -version = "1.0.1" -description = "Geographic pandas extensions" -optional = false -python-versions = ">=3.9" -files = [ - {file = "geopandas-1.0.1-py3-none-any.whl", hash = "sha256:01e147d9420cc374d26f51fc23716ac307f32b49406e4bd8462c07e82ed1d3d6"}, - {file = "geopandas-1.0.1.tar.gz", hash = "sha256:b8bf70a5534588205b7a56646e2082fb1de9a03599651b3d80c99ea4c2ca08ab"}, -] - -[package.dependencies] -numpy = ">=1.22" -packaging = "*" -pandas = ">=1.4.0" -pyogrio = ">=0.7.2" -pyproj = ">=3.3.0" -shapely = ">=2.0.0" - -[package.extras] -all = ["GeoAlchemy2", "SQLAlchemy (>=1.3)", "folium", "geopy", "mapclassify", "matplotlib (>=3.5.0)", "psycopg-binary (>=3.1.0)", "pyarrow (>=8.0.0)", "xyzservices"] -dev = ["black", "codecov", "pre-commit", "pytest (>=3.1.0)", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "identify" -version = "2.6.0" -description = "File identification library for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "identify-2.6.0-py2.py3-none-any.whl", hash = "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"}, - {file = "identify-2.6.0.tar.gz", hash = "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.8" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.8-py3-none-any.whl", hash = "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac"}, - {file = "idna-3.8.tar.gz", hash = "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"}, -] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "jinja2" -version = "3.1.4" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "kiwisolver" -version = "1.4.5" -description = "A fast implementation of the Cassowary constraint solver" -optional = false -python-versions = ">=3.7" -files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, -] - -[[package]] -name = "latexcodec" -version = "3.0.0" -description = "A lexer and codec to work with LaTeX code in Python." -optional = false -python-versions = ">=3.7" -files = [ - {file = "latexcodec-3.0.0-py3-none-any.whl", hash = "sha256:6f3477ad5e61a0a99bd31a6a370c34e88733a6bad9c921a3ffcfacada12f41a7"}, - {file = "latexcodec-3.0.0.tar.gz", hash = "sha256:917dc5fe242762cc19d963e6548b42d63a118028cdd3361d62397e3b638b6bc5"}, -] - -[[package]] -name = "markdown-it-py" -version = "3.0.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false -python-versions = ">=3.8" -files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, -] - -[package.dependencies] -mdurl = ">=0.1,<1.0" - -[package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code-style = ["pre-commit (>=3.0,<4.0)"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] -linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins"] -profiling = ["gprof2dot"] -rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "markupsafe" -version = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "matplotlib" -version = "3.9.2" -description = "Python plotting package" -optional = false -python-versions = ">=3.9" -files = [ - {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"}, - {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"}, - {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"}, - {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"}, - {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"}, - {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"}, - {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"}, - {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"}, - {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"}, - {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"}, - {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"}, - {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"}, - {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"}, - {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"}, -] - -[package.dependencies] -contourpy = ">=1.0.1" -cycler = ">=0.10" -fonttools = ">=4.22.0" -kiwisolver = ">=1.3.1" -numpy = ">=1.23" -packaging = ">=20.0" -pillow = ">=8" -pyparsing = ">=2.3.1" -python-dateutil = ">=2.7" - -[package.extras] -dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] - -[[package]] -name = "mdit-py-plugins" -version = "0.4.1" -description = "Collection of plugins for markdown-it-py" -optional = false -python-versions = ">=3.8" -files = [ - {file = "mdit_py_plugins-0.4.1-py3-none-any.whl", hash = "sha256:1020dfe4e6bfc2c79fb49ae4e3f5b297f5ccd20f010187acc52af2921e27dc6a"}, - {file = "mdit_py_plugins-0.4.1.tar.gz", hash = "sha256:834b8ac23d1cd60cec703646ffd22ae97b7955a6d596eb1d304be1e251ae499c"}, -] - -[package.dependencies] -markdown-it-py = ">=1.0.0,<4.0.0" - -[package.extras] -code-style = ["pre-commit"] -rtd = ["myst-parser", "sphinx-book-theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - -[[package]] -name = "myst-parser" -version = "4.0.0" -description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," -optional = false -python-versions = ">=3.10" -files = [ - {file = "myst_parser-4.0.0-py3-none-any.whl", hash = "sha256:b9317997552424448c6096c2558872fdb6f81d3ecb3a40ce84a7518798f3f28d"}, - {file = "myst_parser-4.0.0.tar.gz", hash = "sha256:851c9dfb44e36e56d15d05e72f02b80da21a9e0d07cba96baf5e2d476bb91531"}, -] - -[package.dependencies] -docutils = ">=0.19,<0.22" -jinja2 = "*" -markdown-it-py = ">=3.0,<4.0" -mdit-py-plugins = ">=0.4.1,<1.0" -pyyaml = "*" -sphinx = ">=7,<9" - -[package.extras] -code-style = ["pre-commit (>=3.0,<4.0)"] -linkify = ["linkify-it-py (>=2.0,<3.0)"] -rtd = ["ipython", "sphinx (>=7)", "sphinx-autodoc2 (>=0.5.0,<0.6.0)", "sphinx-book-theme (>=1.1,<2.0)", "sphinx-copybutton", "sphinx-design", "sphinx-pyscript", "sphinx-tippy (>=0.4.3)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.9.0,<0.10.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] -testing = ["beautifulsoup4", "coverage[toml]", "defusedxml", "pytest (>=8,<9)", "pytest-cov", "pytest-param-files (>=0.6.0,<0.7.0)", "pytest-regressions", "sphinx-pytest"] -testing-docutils = ["pygments", "pytest (>=8,<9)", "pytest-param-files (>=0.6.0,<0.7.0)"] - -[[package]] -name = "networkx" -version = "3.3" -description = "Python package for creating and manipulating graphs and networks" -optional = false -python-versions = ">=3.10" -files = [ - {file = "networkx-3.3-py3-none-any.whl", hash = "sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2"}, - {file = "networkx-3.3.tar.gz", hash = "sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9"}, -] - -[package.extras] -default = ["matplotlib (>=3.6)", "numpy (>=1.23)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] -developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] -doc = ["myst-nb (>=1.0)", "numpydoc (>=1.7)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] -extra = ["lxml (>=4.6)", "pydot (>=2.0)", "pygraphviz (>=1.12)", "sympy (>=1.10)"] -test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] - -[[package]] -name = "nodeenv" -version = "1.9.1" -description = "Node.js virtual environment builder" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, - {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, -] - -[[package]] -name = "numpy" -version = "2.1.1" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.10" -files = [ - {file = "numpy-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8a0e34993b510fc19b9a2ce7f31cb8e94ecf6e924a40c0c9dd4f62d0aac47d9"}, - {file = "numpy-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7dd86dfaf7c900c0bbdcb8b16e2f6ddf1eb1fe39c6c8cca6e94844ed3152a8fd"}, - {file = "numpy-2.1.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:5889dd24f03ca5a5b1e8a90a33b5a0846d8977565e4ae003a63d22ecddf6782f"}, - {file = "numpy-2.1.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:59ca673ad11d4b84ceb385290ed0ebe60266e356641428c845b39cd9df6713ab"}, - {file = "numpy-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13ce49a34c44b6de5241f0b38b07e44c1b2dcacd9e36c30f9c2fcb1bb5135db7"}, - {file = "numpy-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913cc1d311060b1d409e609947fa1b9753701dac96e6581b58afc36b7ee35af6"}, - {file = "numpy-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:caf5d284ddea7462c32b8d4a6b8af030b6c9fd5332afb70e7414d7fdded4bfd0"}, - {file = "numpy-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:57eb525e7c2a8fdee02d731f647146ff54ea8c973364f3b850069ffb42799647"}, - {file = "numpy-2.1.1-cp310-cp310-win32.whl", hash = "sha256:9a8e06c7a980869ea67bbf551283bbed2856915f0a792dc32dd0f9dd2fb56728"}, - {file = "numpy-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:d10c39947a2d351d6d466b4ae83dad4c37cd6c3cdd6d5d0fa797da56f710a6ae"}, - {file = "numpy-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0d07841fd284718feffe7dd17a63a2e6c78679b2d386d3e82f44f0108c905550"}, - {file = "numpy-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b5613cfeb1adfe791e8e681128f5f49f22f3fcaa942255a6124d58ca59d9528f"}, - {file = "numpy-2.1.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0b8cc2715a84b7c3b161f9ebbd942740aaed913584cae9cdc7f8ad5ad41943d0"}, - {file = "numpy-2.1.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b49742cdb85f1f81e4dc1b39dcf328244f4d8d1ded95dea725b316bd2cf18c95"}, - {file = "numpy-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8d5f8a8e3bc87334f025194c6193e408903d21ebaeb10952264943a985066ca"}, - {file = "numpy-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d51fc141ddbe3f919e91a096ec739f49d686df8af254b2053ba21a910ae518bf"}, - {file = "numpy-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:98ce7fb5b8063cfdd86596b9c762bf2b5e35a2cdd7e967494ab78a1fa7f8b86e"}, - {file = "numpy-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:24c2ad697bd8593887b019817ddd9974a7f429c14a5469d7fad413f28340a6d2"}, - {file = "numpy-2.1.1-cp311-cp311-win32.whl", hash = "sha256:397bc5ce62d3fb73f304bec332171535c187e0643e176a6e9421a6e3eacef06d"}, - {file = "numpy-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:ae8ce252404cdd4de56dcfce8b11eac3c594a9c16c231d081fb705cf23bd4d9e"}, - {file = "numpy-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c803b7934a7f59563db459292e6aa078bb38b7ab1446ca38dd138646a38203e"}, - {file = "numpy-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6435c48250c12f001920f0751fe50c0348f5f240852cfddc5e2f97e007544cbe"}, - {file = "numpy-2.1.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3269c9eb8745e8d975980b3a7411a98976824e1fdef11f0aacf76147f662b15f"}, - {file = "numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521"}, - {file = "numpy-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b"}, - {file = "numpy-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b9cd92c8f8e7b313b80e93cedc12c0112088541dcedd9197b5dee3738c1201"}, - {file = "numpy-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:afd9c680df4de71cd58582b51e88a61feed4abcc7530bcd3d48483f20fc76f2a"}, - {file = "numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8661c94e3aad18e1ea17a11f60f843a4933ccaf1a25a7c6a9182af70610b2313"}, - {file = "numpy-2.1.1-cp312-cp312-win32.whl", hash = "sha256:950802d17a33c07cba7fd7c3dcfa7d64705509206be1606f196d179e539111ed"}, - {file = "numpy-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:3fc5eabfc720db95d68e6646e88f8b399bfedd235994016351b1d9e062c4b270"}, - {file = "numpy-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:046356b19d7ad1890c751b99acad5e82dc4a02232013bd9a9a712fddf8eb60f5"}, - {file = "numpy-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6e5a9cb2be39350ae6c8f79410744e80154df658d5bea06e06e0ac5bb75480d5"}, - {file = "numpy-2.1.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:d4c57b68c8ef5e1ebf47238e99bf27657511ec3f071c465f6b1bccbef12d4136"}, - {file = "numpy-2.1.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:8ae0fd135e0b157365ac7cc31fff27f07a5572bdfc38f9c2d43b2aff416cc8b0"}, - {file = "numpy-2.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981707f6b31b59c0c24bcda52e5605f9701cb46da4b86c2e8023656ad3e833cb"}, -] - -[[package]] -name = "packaging" -version = "24.1" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, -] - -[[package]] -name = "pandas" -version = "2.2.2" -description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, - {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, - {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, - {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, - {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, - {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, - {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, -] -python-dateutil = ">=2.8.2" -pytz = ">=2020.1" -tzdata = ">=2022.7" - -[package.extras] -all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] -aws = ["s3fs (>=2022.11.0)"] -clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] -compression = ["zstandard (>=0.19.0)"] -computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] -consortium-standard = ["dataframe-api-compat (>=0.1.7)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] -feather = ["pyarrow (>=10.0.1)"] -fss = ["fsspec (>=2022.11.0)"] -gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] -hdf5 = ["tables (>=3.8.0)"] -html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] -mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] -parquet = ["pyarrow (>=10.0.1)"] -performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] -plot = ["matplotlib (>=3.6.3)"] -postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] -pyarrow = ["pyarrow (>=10.0.1)"] -spss = ["pyreadstat (>=1.2.0)"] -sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] -test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.9.2)"] - -[[package]] -name = "pillow" -version = "10.4.0" -description = "Python Imaging Library (Fork)" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, - {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, - {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, - {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, - {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, - {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, - {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, - {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, - {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, - {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, - {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, - {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, - {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, - {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, - {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, - {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, - {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, - {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, - {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, - {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] -fpx = ["olefile"] -mic = ["olefile"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] -typing = ["typing-extensions"] -xmp = ["defusedxml"] - -[[package]] -name = "pint" -version = "0.24.3" -description = "Physical quantities module" -optional = false -python-versions = ">=3.9" -files = [ - {file = "Pint-0.24.3-py3-none-any.whl", hash = "sha256:d98667e46fd03a1b94694fbfa104ec30858684d8ab26952e2a348b48059089bb"}, - {file = "pint-0.24.3.tar.gz", hash = "sha256:d54771093e8b94c4e0a35ac638c2444ddf3ef685652bab7675ffecfa0c5c5cdf"}, -] - -[package.dependencies] -appdirs = ">=1.4.4" -flexcache = ">=0.3" -flexparser = ">=0.3" -typing-extensions = "*" - -[package.extras] -babel = ["babel (<=2.8)"] -bench = ["pytest", "pytest-codspeed"] -dask = ["dask"] -mip = ["mip (>=1.13)"] -numpy = ["numpy (>=1.23)"] -pandas = ["pint-pandas (>=0.3)"] -test = ["pytest", "pytest-benchmark", "pytest-cov", "pytest-mpl", "pytest-subtests"] -testbase = ["pytest", "pytest-benchmark", "pytest-cov", "pytest-subtests"] -uncertainties = ["uncertainties (>=3.1.6)"] -xarray = ["xarray"] - -[[package]] -name = "platformdirs" -version = "4.2.2" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.8" -files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "pre-commit" -version = "3.8.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, - {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, -] - -[package.dependencies] -cfgv = ">=2.0.0" -identify = ">=1.0.0" -nodeenv = ">=0.11.1" -pyyaml = ">=5.1" -virtualenv = ">=20.10.0" - -[[package]] -name = "pybtex" -version = "0.24.0" -description = "A BibTeX-compatible bibliography processor in Python" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" -files = [ - {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, - {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, -] - -[package.dependencies] -latexcodec = ">=1.0.4" -PyYAML = ">=3.01" -six = "*" - -[package.extras] -test = ["pytest"] - -[[package]] -name = "pybtex-docutils" -version = "1.0.3" -description = "A docutils backend for pybtex." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pybtex-docutils-1.0.3.tar.gz", hash = "sha256:3a7ebdf92b593e00e8c1c538aa9a20bca5d92d84231124715acc964d51d93c6b"}, - {file = "pybtex_docutils-1.0.3-py3-none-any.whl", hash = "sha256:8fd290d2ae48e32fcb54d86b0efb8d573198653c7e2447d5bec5847095f430b9"}, -] - -[package.dependencies] -docutils = ">=0.14" -pybtex = ">=0.16" - -[[package]] -name = "pygments" -version = "2.18.0" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, - {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pyogrio" -version = "0.9.0" -description = "Vectorized spatial vector file format I/O using GDAL/OGR" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pyogrio-0.9.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:1a495ca4fb77c69595747dd688f8f17bb7d2ea9cd86603aa71c7fc98cc8b4174"}, - {file = "pyogrio-0.9.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:6dc94a67163218581c7df275223488ac9b31dc582ccd756da607c3338908566c"}, - {file = "pyogrio-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e38c3c6d37cf2cc969407e4d051dcb507cfd948eb26c7b0840c4f7d7d4a71bd4"}, - {file = "pyogrio-0.9.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:f47c9b6818cc0f420015b672d5dcc488530a5ee63e5ba35a184957b21ea3922a"}, - {file = "pyogrio-0.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb04bd80964428491951766452f0071b0bc37c7d38c45ef02502dbd83e5d74a0"}, - {file = "pyogrio-0.9.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f5d80eb846be4fc4e642cbedc1ed0c143e8d241653382ecc76a7620bbd2a5c3a"}, - {file = "pyogrio-0.9.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:2f2ec57ab74785db9c2bf47c0a6731e5175595a13f8253f06fa84136adb310a9"}, - {file = "pyogrio-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a289584da6df7ca318947301fe0ba9177e7f863f63110e087c80ac5f3658de8"}, - {file = "pyogrio-0.9.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:13642608a1cd67797ae8b5d792b0518d8ef3eb76506c8232ab5eaa1ea1159dff"}, - {file = "pyogrio-0.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:9440466c0211ac81f3417f274da5903f15546b486f76b2f290e74a56aaf0e737"}, - {file = "pyogrio-0.9.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2e98913fa183f7597c609e774820a149e9329fd2a0f8d33978252fbd00ae87e6"}, - {file = "pyogrio-0.9.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:f8bf193269ea9d347ac3ddada960a59f1ab2e4a5c009be95dc70e6505346b2fc"}, - {file = "pyogrio-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f964002d445521ad5b8e732a6b5ef0e2d2be7fe566768e5075c1d71398da64a"}, - {file = "pyogrio-0.9.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:083351b258b3e08b6c6085dac560bd321b68de5cb4a66229095da68d5f3d696b"}, - {file = "pyogrio-0.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:796e4f6a4e769b2eb6fea9a10546ea4bdee16182d1e29802b4d6349363c3c1d7"}, - {file = "pyogrio-0.9.0-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:7fcafed24371fe6e23bcf5abebbb29269f8d79915f1dd818ac85453657ea714a"}, - {file = "pyogrio-0.9.0-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:30cbeeaedb9bced7012487e7438919aa0c7dfba18ac3d4315182b46eb3139b9d"}, - {file = "pyogrio-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4da0b9deb380bd9a200fee13182c4f95b02b4c554c923e2e0032f32aaf1439ed"}, - {file = "pyogrio-0.9.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:4e0f90a6c3771ee1f1fea857778b4b6a1b64000d851b819f435f9091b3c38c60"}, - {file = "pyogrio-0.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:959022f3ad04053f8072dc9a2ad110c46edd9e4f92352061ba835fc91df3ca96"}, - {file = "pyogrio-0.9.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:2829615cf58b1b24a9f96fea42abedaa1a800dd351c67374cc2f6341138608f3"}, - {file = "pyogrio-0.9.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:17420febc17651876d5140b54b24749aa751d482b5f9ef6267b8053e6e962876"}, - {file = "pyogrio-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a2fcaa269031dbbc8ebd91243c6452c5d267d6df939c008ab7533413c9cf92d"}, - {file = "pyogrio-0.9.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:019731a856a9abfe909e86f50eb13f8362f6742337caf757c54b7c8acfe75b89"}, - {file = "pyogrio-0.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:d668cb10f2bf6ccd7c402f91e8b06290722dd09dbe265ae95b2c13db29ebeba0"}, - {file = "pyogrio-0.9.0.tar.gz", hash = "sha256:6a6fa2e8cf95b3d4a7c0fac48bce6e5037579e28d3eb33b53349d6e11f15e5a8"}, -] - -[package.dependencies] -certifi = "*" -numpy = "*" -packaging = "*" - -[package.extras] -benchmark = ["pytest-benchmark"] -dev = ["Cython"] -geopandas = ["geopandas"] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "pyparsing" -version = "3.1.4" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.6.8" -files = [ - {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, - {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - -[[package]] -name = "pyproj" -version = "3.6.1" -description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pyproj-3.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ab7aa4d9ff3c3acf60d4b285ccec134167a948df02347585fdd934ebad8811b4"}, - {file = "pyproj-3.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bc0472302919e59114aa140fd7213c2370d848a7249d09704f10f5b062031fe"}, - {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5279586013b8d6582e22b6f9e30c49796966770389a9d5b85e25a4223286cd3f"}, - {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80fafd1f3eb421694857f254a9bdbacd1eb22fc6c24ca74b136679f376f97d35"}, - {file = "pyproj-3.6.1-cp310-cp310-win32.whl", hash = "sha256:c41e80ddee130450dcb8829af7118f1ab69eaf8169c4bf0ee8d52b72f098dc2f"}, - {file = "pyproj-3.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:db3aedd458e7f7f21d8176f0a1d924f1ae06d725228302b872885a1c34f3119e"}, - {file = "pyproj-3.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ebfbdbd0936e178091309f6cd4fcb4decd9eab12aa513cdd9add89efa3ec2882"}, - {file = "pyproj-3.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:447db19c7efad70ff161e5e46a54ab9cc2399acebb656b6ccf63e4bc4a04b97a"}, - {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e13c40183884ec7f94eb8e0f622f08f1d5716150b8d7a134de48c6110fee85"}, - {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65ad699e0c830e2b8565afe42bd58cc972b47d829b2e0e48ad9638386d994915"}, - {file = "pyproj-3.6.1-cp311-cp311-win32.whl", hash = "sha256:8b8acc31fb8702c54625f4d5a2a6543557bec3c28a0ef638778b7ab1d1772132"}, - {file = "pyproj-3.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:38a3361941eb72b82bd9a18f60c78b0df8408416f9340521df442cebfc4306e2"}, - {file = "pyproj-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1e9fbaf920f0f9b4ee62aab832be3ae3968f33f24e2e3f7fbb8c6728ef1d9746"}, - {file = "pyproj-3.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d227a865356f225591b6732430b1d1781e946893789a609bb34f59d09b8b0f8"}, - {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83039e5ae04e5afc974f7d25ee0870a80a6bd6b7957c3aca5613ccbe0d3e72bf"}, - {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb059ba3bced6f6725961ba758649261d85ed6ce670d3e3b0a26e81cf1aa8d"}, - {file = "pyproj-3.6.1-cp312-cp312-win32.whl", hash = "sha256:2d6ff73cc6dbbce3766b6c0bce70ce070193105d8de17aa2470009463682a8eb"}, - {file = "pyproj-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:7a27151ddad8e1439ba70c9b4b2b617b290c39395fa9ddb7411ebb0eb86d6fb0"}, - {file = "pyproj-3.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4ba1f9b03d04d8cab24d6375609070580a26ce76eaed54631f03bab00a9c737b"}, - {file = "pyproj-3.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3"}, - {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd43bd9a9b9239805f406fd82ba6b106bf4838d9ef37c167d3ed70383943ade1"}, - {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50100b2726a3ca946906cbaa789dd0749f213abf0cbb877e6de72ca7aa50e1ae"}, - {file = "pyproj-3.6.1-cp39-cp39-win32.whl", hash = "sha256:9274880263256f6292ff644ca92c46d96aa7e57a75c6df3f11d636ce845a1877"}, - {file = "pyproj-3.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:36b64c2cb6ea1cc091f329c5bd34f9c01bb5da8c8e4492c709bda6a09f96808f"}, - {file = "pyproj-3.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd93c1a0c6c4aedc77c0fe275a9f2aba4d59b8acf88cebfc19fe3c430cfabf4f"}, - {file = "pyproj-3.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6420ea8e7d2a88cb148b124429fba8cd2e0fae700a2d96eab7083c0928a85110"}, - {file = "pyproj-3.6.1.tar.gz", hash = "sha256:44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf"}, -] - -[package.dependencies] -certifi = "*" - -[[package]] -name = "pytest" -version = "8.3.2" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, - {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-cov" -version = "5.0.0" -description = "Pytest plugin for measuring coverage." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, - {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, -] - -[package.dependencies] -coverage = {version = ">=5.2.1", extras = ["toml"]} -pytest = ">=4.6" - -[package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] - -[[package]] -name = "pytest-xdist" -version = "3.6.1" -description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, - {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, -] - -[package.dependencies] -execnet = ">=2.1" -pytest = ">=7.0.0" - -[package.extras] -psutil = ["psutil (>=3.0)"] -setproctitle = ["setproctitle"] -testing = ["filelock"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2024.1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "regex" -version = "2024.7.24" -description = "Alternative regular expression module, to replace re." -optional = false -python-versions = ">=3.8" -files = [ - {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce"}, - {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024"}, - {file = "regex-2024.7.24-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa"}, - {file = "regex-2024.7.24-cp310-cp310-win32.whl", hash = "sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66"}, - {file = "regex-2024.7.24-cp310-cp310-win_amd64.whl", hash = "sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e"}, - {file = "regex-2024.7.24-cp311-cp311-win32.whl", hash = "sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c"}, - {file = "regex-2024.7.24-cp311-cp311-win_amd64.whl", hash = "sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38"}, - {file = "regex-2024.7.24-cp312-cp312-win32.whl", hash = "sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc"}, - {file = "regex-2024.7.24-cp312-cp312-win_amd64.whl", hash = "sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8"}, - {file = "regex-2024.7.24-cp38-cp38-win32.whl", hash = "sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96"}, - {file = "regex-2024.7.24-cp38-cp38-win_amd64.whl", hash = "sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9"}, - {file = "regex-2024.7.24-cp39-cp39-win32.whl", hash = "sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1"}, - {file = "regex-2024.7.24-cp39-cp39-win_amd64.whl", hash = "sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9"}, - {file = "regex-2024.7.24.tar.gz", hash = "sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506"}, -] - -[[package]] -name = "requests" -version = "2.32.3" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.8" -files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "roseau-load-flow-engine" -version = "0.15.0" -description = "Highly capable three-phase load flow solver" -optional = false -python-versions = "<4.0,>=3.10" -files = [ - {file = "roseau_load_flow_engine-0.15.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:4d493f5ca575789c0cb676e80422f85386ecfb4ab4a3493577e341889e481ebe"}, - {file = "roseau_load_flow_engine-0.15.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:cccbe18b628170a6d276eeb4812dc3f7e9c8c53b167eb163485765193fc9d8f5"}, - {file = "roseau_load_flow_engine-0.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:45faae07fa51a6a71735e78d623aedfa1d315f335e7244fe6d9d3addfdc9a411"}, - {file = "roseau_load_flow_engine-0.15.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:07fad2188d6081b1f5d82f14817daea36be02bfa8de6618348638d3f633c8d58"}, - {file = "roseau_load_flow_engine-0.15.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:09ecfe7bb525a2818236e9f282ad15edadff813fe26a9d7aabd64342f9b02899"}, - {file = "roseau_load_flow_engine-0.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:d98e4d1eae4fff516c6d1ad64488edfc54ccd5b3a341942d3daf9f623f19a699"}, - {file = "roseau_load_flow_engine-0.15.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b8cfc146e3d096e67f619e9d7890963fd8b499716d0c86228cb799fc3bdb002b"}, - {file = "roseau_load_flow_engine-0.15.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f877bed4c1ff72032f7a7649605a41915071d27a6a2e69950d24db04f10ea686"}, - {file = "roseau_load_flow_engine-0.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:76c86e0b4218a207d62b188babf79bbc26a001456751f71d3fd795611aa7e307"}, - {file = "roseau_load_flow_engine-0.15.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9934b78e6c76c6903f8db79d6de5a8b5ebeb5aadfa1da2552a9dc2f40d477384"}, - {file = "roseau_load_flow_engine-0.15.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5722700373d8b4d87f0c7655caeb9eaac33a501c3515022d9fc58a4edab346ea"}, - {file = "roseau_load_flow_engine-0.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:2909895516ed81f0630b0a797792b391798548b9cfc2f880ded1a1bea3d90804"}, -] - -[package.dependencies] -numpy = ">=1.21.5" - -[[package]] -name = "ruff" -version = "0.6.3" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.6.3-py3-none-linux_armv6l.whl", hash = "sha256:97f58fda4e309382ad30ede7f30e2791d70dd29ea17f41970119f55bdb7a45c3"}, - {file = "ruff-0.6.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3b061e49b5cf3a297b4d1c27ac5587954ccb4ff601160d3d6b2f70b1622194dc"}, - {file = "ruff-0.6.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:34e2824a13bb8c668c71c1760a6ac7d795ccbd8d38ff4a0d8471fdb15de910b1"}, - {file = "ruff-0.6.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bddfbb8d63c460f4b4128b6a506e7052bad4d6f3ff607ebbb41b0aa19c2770d1"}, - {file = "ruff-0.6.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ced3eeb44df75353e08ab3b6a9e113b5f3f996bea48d4f7c027bc528ba87b672"}, - {file = "ruff-0.6.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47021dff5445d549be954eb275156dfd7c37222acc1e8014311badcb9b4ec8c1"}, - {file = "ruff-0.6.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7d7bd20dc07cebd68cc8bc7b3f5ada6d637f42d947c85264f94b0d1cd9d87384"}, - {file = "ruff-0.6.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:500f166d03fc6d0e61c8e40a3ff853fa8a43d938f5d14c183c612df1b0d6c58a"}, - {file = "ruff-0.6.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:42844ff678f9b976366b262fa2d1d1a3fe76f6e145bd92c84e27d172e3c34500"}, - {file = "ruff-0.6.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70452a10eb2d66549de8e75f89ae82462159855e983ddff91bc0bce6511d0470"}, - {file = "ruff-0.6.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:65a533235ed55f767d1fc62193a21cbf9e3329cf26d427b800fdeacfb77d296f"}, - {file = "ruff-0.6.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d2e2c23cef30dc3cbe9cc5d04f2899e7f5e478c40d2e0a633513ad081f7361b5"}, - {file = "ruff-0.6.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d8a136aa7d228975a6aee3dd8bea9b28e2b43e9444aa678fb62aeb1956ff2351"}, - {file = "ruff-0.6.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:f92fe93bc72e262b7b3f2bba9879897e2d58a989b4714ba6a5a7273e842ad2f8"}, - {file = "ruff-0.6.3-py3-none-win32.whl", hash = "sha256:7a62d3b5b0d7f9143d94893f8ba43aa5a5c51a0ffc4a401aa97a81ed76930521"}, - {file = "ruff-0.6.3-py3-none-win_amd64.whl", hash = "sha256:746af39356fee2b89aada06c7376e1aa274a23493d7016059c3a72e3b296befb"}, - {file = "ruff-0.6.3-py3-none-win_arm64.whl", hash = "sha256:14a9528a8b70ccc7a847637c29e56fd1f9183a9db743bbc5b8e0c4ad60592a82"}, - {file = "ruff-0.6.3.tar.gz", hash = "sha256:183b99e9edd1ef63be34a3b51fee0a9f4ab95add123dbf89a71f7b1f0c991983"}, -] - -[[package]] -name = "shapely" -version = "2.0.6" -description = "Manipulation and analysis of geometric objects" -optional = false -python-versions = ">=3.7" -files = [ - {file = "shapely-2.0.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29a34e068da2d321e926b5073539fd2a1d4429a2c656bd63f0bd4c8f5b236d0b"}, - {file = "shapely-2.0.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c84c3f53144febf6af909d6b581bc05e8785d57e27f35ebaa5c1ab9baba13b"}, - {file = "shapely-2.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ad2fae12dca8d2b727fa12b007e46fbc522148a584f5d6546c539f3464dccde"}, - {file = "shapely-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3304883bd82d44be1b27a9d17f1167fda8c7f5a02a897958d86c59ec69b705e"}, - {file = "shapely-2.0.6-cp310-cp310-win32.whl", hash = "sha256:3ec3a0eab496b5e04633a39fa3d5eb5454628228201fb24903d38174ee34565e"}, - {file = "shapely-2.0.6-cp310-cp310-win_amd64.whl", hash = "sha256:28f87cdf5308a514763a5c38de295544cb27429cfa655d50ed8431a4796090c4"}, - {file = "shapely-2.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aeb0f51a9db176da9a30cb2f4329b6fbd1e26d359012bb0ac3d3c7781667a9e"}, - {file = "shapely-2.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a7a78b0d51257a367ee115f4d41ca4d46edbd0dd280f697a8092dd3989867b2"}, - {file = "shapely-2.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f32c23d2f43d54029f986479f7c1f6e09c6b3a19353a3833c2ffb226fb63a855"}, - {file = "shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0"}, - {file = "shapely-2.0.6-cp311-cp311-win32.whl", hash = "sha256:d93b7e0e71c9f095e09454bf18dad5ea716fb6ced5df3cb044564a00723f339d"}, - {file = "shapely-2.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:c02eb6bf4cfb9fe6568502e85bb2647921ee49171bcd2d4116c7b3109724ef9b"}, - {file = "shapely-2.0.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cec9193519940e9d1b86a3b4f5af9eb6910197d24af02f247afbfb47bcb3fab0"}, - {file = "shapely-2.0.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83b94a44ab04a90e88be69e7ddcc6f332da7c0a0ebb1156e1c4f568bbec983c3"}, - {file = "shapely-2.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:537c4b2716d22c92036d00b34aac9d3775e3691f80c7aa517c2c290351f42cd8"}, - {file = "shapely-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fea108334be345c283ce74bf064fa00cfdd718048a8af7343c59eb40f59726"}, - {file = "shapely-2.0.6-cp312-cp312-win32.whl", hash = "sha256:42fd4cd4834747e4990227e4cbafb02242c0cffe9ce7ef9971f53ac52d80d55f"}, - {file = "shapely-2.0.6-cp312-cp312-win_amd64.whl", hash = "sha256:665990c84aece05efb68a21b3523a6b2057e84a1afbef426ad287f0796ef8a48"}, - {file = "shapely-2.0.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:42805ef90783ce689a4dde2b6b2f261e2c52609226a0438d882e3ced40bb3013"}, - {file = "shapely-2.0.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6d2cb146191a47bd0cee8ff5f90b47547b82b6345c0d02dd8b25b88b68af62d7"}, - {file = "shapely-2.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3fdef0a1794a8fe70dc1f514440aa34426cc0ae98d9a1027fb299d45741c381"}, - {file = "shapely-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c665a0301c645615a107ff7f52adafa2153beab51daf34587170d85e8ba6805"}, - {file = "shapely-2.0.6-cp313-cp313-win32.whl", hash = "sha256:0334bd51828f68cd54b87d80b3e7cee93f249d82ae55a0faf3ea21c9be7b323a"}, - {file = "shapely-2.0.6-cp313-cp313-win_amd64.whl", hash = "sha256:d37d070da9e0e0f0a530a621e17c0b8c3c9d04105655132a87cfff8bd77cc4c2"}, - {file = "shapely-2.0.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fa7468e4f5b92049c0f36d63c3e309f85f2775752e076378e36c6387245c5462"}, - {file = "shapely-2.0.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed5867e598a9e8ac3291da6cc9baa62ca25706eea186117034e8ec0ea4355653"}, - {file = "shapely-2.0.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81d9dfe155f371f78c8d895a7b7f323bb241fb148d848a2bf2244f79213123fe"}, - {file = "shapely-2.0.6-cp37-cp37m-win32.whl", hash = "sha256:fbb7bf02a7542dba55129062570211cfb0defa05386409b3e306c39612e7fbcc"}, - {file = "shapely-2.0.6-cp37-cp37m-win_amd64.whl", hash = "sha256:837d395fac58aa01aa544495b97940995211e3e25f9aaf87bc3ba5b3a8cd1ac7"}, - {file = "shapely-2.0.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c6d88ade96bf02f6bfd667ddd3626913098e243e419a0325ebef2bbd481d1eb6"}, - {file = "shapely-2.0.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8b3b818c4407eaa0b4cb376fd2305e20ff6df757bf1356651589eadc14aab41b"}, - {file = "shapely-2.0.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbc783529a21f2bd50c79cef90761f72d41c45622b3e57acf78d984c50a5d13"}, - {file = "shapely-2.0.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2423f6c0903ebe5df6d32e0066b3d94029aab18425ad4b07bf98c3972a6e25a1"}, - {file = "shapely-2.0.6-cp38-cp38-win32.whl", hash = "sha256:2de00c3bfa80d6750832bde1d9487e302a6dd21d90cb2f210515cefdb616e5f5"}, - {file = "shapely-2.0.6-cp38-cp38-win_amd64.whl", hash = "sha256:3a82d58a1134d5e975f19268710e53bddd9c473743356c90d97ce04b73e101ee"}, - {file = "shapely-2.0.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:392f66f458a0a2c706254f473290418236e52aa4c9b476a072539d63a2460595"}, - {file = "shapely-2.0.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eba5bae271d523c938274c61658ebc34de6c4b33fdf43ef7e938b5776388c1be"}, - {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7060566bc4888b0c8ed14b5d57df8a0ead5c28f9b69fb6bed4476df31c51b0af"}, - {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b02154b3e9d076a29a8513dffcb80f047a5ea63c897c0cd3d3679f29363cf7e5"}, - {file = "shapely-2.0.6-cp39-cp39-win32.whl", hash = "sha256:44246d30124a4f1a638a7d5419149959532b99dfa25b54393512e6acc9c211ac"}, - {file = "shapely-2.0.6-cp39-cp39-win_amd64.whl", hash = "sha256:2b542d7f1dbb89192d3512c52b679c822ba916f93479fa5d4fc2fe4fa0b3c9e8"}, - {file = "shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6"}, -] - -[package.dependencies] -numpy = ">=1.14,<3" - -[package.extras] -docs = ["matplotlib", "numpydoc (==1.1.*)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] -test = ["pytest", "pytest-cov"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "soupsieve" -version = "2.6" -description = "A modern CSS selector implementation for Beautiful Soup." -optional = false -python-versions = ">=3.8" -files = [ - {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, - {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, -] - -[[package]] -name = "sphinx" -version = "8.0.2" -description = "Python documentation generator" -optional = false -python-versions = ">=3.10" -files = [ - {file = "sphinx-8.0.2-py3-none-any.whl", hash = "sha256:56173572ae6c1b9a38911786e206a110c9749116745873feae4f9ce88e59391d"}, - {file = "sphinx-8.0.2.tar.gz", hash = "sha256:0cce1ddcc4fd3532cf1dd283bc7d886758362c5c1de6598696579ce96d8ffa5b"}, -] - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = "*" -sphinxcontrib-devhelp = "*" -sphinxcontrib-htmlhelp = ">=2.0.0" -sphinxcontrib-jsmath = "*" -sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.0)", "pytest (>=6.0)", "ruff (==0.5.5)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240520)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20240724)", "types-requests (>=2.30.0)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinx-autoapi" -version = "3.3.1" -description = "Sphinx API documentation generator" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_autoapi-3.3.1-py2.py3-none-any.whl", hash = "sha256:c31a5f41eabc9705d277b75f98e983d653e9af24e294dd576b2afa1719f72c1f"}, - {file = "sphinx_autoapi-3.3.1.tar.gz", hash = "sha256:e44a225827d0ef7178748225a66f30c95454dfd00ee3c22afbdfb8056f7dffb5"}, -] - -[package.dependencies] -astroid = [ - {version = ">=2.7", markers = "python_version < \"3.12\""}, - {version = ">=3.0.0a1", markers = "python_version >= \"3.12\""}, -] -Jinja2 = "*" -PyYAML = "*" -sphinx = ">=6.1.0" - -[package.extras] -docs = ["furo", "sphinx", "sphinx-design"] - -[[package]] -name = "sphinx-basic-ng" -version = "1.0.0b2" -description = "A modern skeleton for Sphinx themes." -optional = false -python-versions = ">=3.7" -files = [ - {file = "sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b"}, - {file = "sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9"}, -] - -[package.dependencies] -sphinx = ">=4.0" - -[package.extras] -docs = ["furo", "ipython", "myst-parser", "sphinx-copybutton", "sphinx-inline-tabs"] - -[[package]] -name = "sphinx-copybutton" -version = "0.5.2" -description = "Add a copy button to each of your code cells." -optional = false -python-versions = ">=3.7" -files = [ - {file = "sphinx-copybutton-0.5.2.tar.gz", hash = "sha256:4cf17c82fb9646d1bc9ca92ac280813a3b605d8c421225fd9913154103ee1fbd"}, - {file = "sphinx_copybutton-0.5.2-py3-none-any.whl", hash = "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e"}, -] - -[package.dependencies] -sphinx = ">=1.8" - -[package.extras] -code-style = ["pre-commit (==2.12.1)"] -rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] - -[[package]] -name = "sphinx-inline-tabs" -version = "2023.4.21" -description = "Add inline tabbed content to your Sphinx documentation." -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinx_inline_tabs-2023.4.21-py3-none-any.whl", hash = "sha256:06809ac613f7c48ddd6e2fa588413e3fe92cff2397b56e2ccf0b0218f9ef6a78"}, - {file = "sphinx_inline_tabs-2023.4.21.tar.gz", hash = "sha256:5df2f13f602c158f3f5f6c509e008aeada199a8c76d97ba3aa2822206683bebc"}, -] - -[package.dependencies] -sphinx = ">=3" - -[package.extras] -doc = ["furo", "myst-parser"] -test = ["pytest", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "sphinx-math-dollar" -version = "1.2.1" -description = "Sphinx extension to let you write LaTeX math using $$" -optional = false -python-versions = ">=3.6" -files = [ - {file = "sphinx-math-dollar-1.2.1.tar.gz", hash = "sha256:03427240f21fdf23c7b8415289aa1a0e307ac32c198e02f840c59a4b1b0d950c"}, - {file = "sphinx_math_dollar-1.2.1-py3-none-any.whl", hash = "sha256:0b1523a4d7023b9020ddf3a9301f651d64427a0f1d802af534a87eaf24fbdf19"}, -] - -[package.dependencies] -sphinx = "*" - -[[package]] -name = "sphinx-sitemap" -version = "2.6.0" -description = "Sitemap generator for Sphinx" -optional = false -python-versions = "*" -files = [ - {file = "sphinx_sitemap-2.6.0-py3-none-any.whl", hash = "sha256:7478e417d141f99c9af27ccd635f44c03a471a08b20e778a0f9daef7ace1d30b"}, - {file = "sphinx_sitemap-2.6.0.tar.gz", hash = "sha256:5e0c66b9f2e371ede80c659866a9eaad337d46ab02802f9c7e5f7bc5893c28d2"}, -] - -[package.dependencies] -sphinx = ">=1.2" - -[package.extras] -dev = ["build", "flake8", "pre-commit", "pytest", "sphinx", "tox"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-bibtex" -version = "2.6.2" -description = "Sphinx extension for BibTeX style citations." -optional = false -python-versions = ">=3.7" -files = [ - {file = "sphinxcontrib-bibtex-2.6.2.tar.gz", hash = "sha256:f487af694336f28bfb7d6a17070953a7d264bec43000a2379724274f5f8d70ae"}, - {file = "sphinxcontrib_bibtex-2.6.2-py3-none-any.whl", hash = "sha256:10d45ebbb19207c5665396c9446f8012a79b8a538cb729f895b5910ab2d0b2da"}, -] - -[package.dependencies] -docutils = ">=0.8,<0.18.dev0 || >=0.20.dev0" -pybtex = ">=0.24" -pybtex-docutils = ">=1.0.0" -Sphinx = ">=3.5" - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-googleanalytics" -version = "0.4" -description = "Sphinx extension googleanalytics" -optional = false -python-versions = "*" -files = [ - {file = "sphinxcontrib-googleanalytics-0.4.tar.gz", hash = "sha256:4b19c1f0fce5df6c7da5633201b64a9e5b0cb3210a14fdb4134942ceee8c5d12"}, - {file = "sphinxcontrib_googleanalytics-0.4-py3-none-any.whl", hash = "sha256:a6574983f9a58e5864ec10d34dc99914c4d647108b22c9249c8f0038b0cb18b3"}, -] - -[package.dependencies] -Sphinx = ">=0.6" - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxext-opengraph" -version = "0.9.1" -description = "Sphinx Extension to enable OGP support" -optional = false -python-versions = ">=3.8" -files = [ - {file = "sphinxext-opengraph-0.9.1.tar.gz", hash = "sha256:dd2868a1e7c9497977fbbf44cc0844a42af39ca65fe1bb0272518af225d06fc5"}, - {file = "sphinxext_opengraph-0.9.1-py3-none-any.whl", hash = "sha256:b3b230cc6a5b5189139df937f0d9c7b23c7c204493b22646273687969dcb760e"}, -] - -[package.dependencies] -sphinx = ">=4.0" - -[[package]] -name = "tomli" -version = "2.0.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[[package]] -name = "tzdata" -version = "2024.1" -description = "Provider of IANA time zone data" -optional = false -python-versions = ">=2" -files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, -] - -[[package]] -name = "urllib3" -version = "2.2.2" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.26.3" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.7" -files = [ - {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, - {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, -] - -[package.dependencies] -distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<5" - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] - -[extras] -graph = ["networkx"] -plot = ["matplotlib"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "6494fda622c7591b226cd89e93544a503a0c33842311ea2c95d5714eebe55b82" diff --git a/pyproject.toml b/pyproject.toml index 9dedc253..ed2452dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,30 +1,20 @@ -[tool.poetry] +[project] name = "roseau-load-flow" -version = "0.10.0" +version = "0.11.0" description = "Highly capable three-phase load flow solver" authors = [ - "Ali Hamdan ", - "Sébastien Vallet ", - "Benoît Vinot ", - "Florent Cadoux ", - "Louise Muller ", - "Victor Gouin", + { name = "Ali Hamdan", email = "ali.hamdan@roseautechnologies.com" }, + { name = "Sébastien Vallet", email = "sebastien.vallet@roseautechnologies.com" }, + { name = "Benoît Vinot", email = "benoit.vinot@roseautechnologies.com" }, + { name = "Florent Cadoux", email = "florent.cadoux@roseautechnologies.com" }, + { name = "Louise Muller", email = "louise.muller@roseautechnologies.com" }, + { name = "Victor Gouin" }, ] -maintainers = ["Ali Hamdan "] -license = "BSD-3-Clause" -repository = "https://github.com/RoseauTechnologies/Roseau_Load_Flow/" -readme = "README.md" -include = [ - "roseau/load_flow/data/**/*.json", - "roseau/load_flow/data/**/*.csv" -] -exclude = [ - "**/tests/**", - "**/conftest.py", -] -packages = [ - { include = "roseau/load_flow" } +maintainers = [ + { name = "Ali Hamdan", email = "ali.hamdan@roseautechnologies.com" }, ] +license = { file = "LICENSE.md" } +readme = "README.md" classifiers = [ "Development Status :: 3 - Alpha", # "License :: OSI Approved :: The 3-Clause BSD License (BSD-3-Clause)", # https://github.com/pypa/trove-classifiers/issues/70 @@ -37,63 +27,70 @@ classifiers = [ "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Physics", ] +requires-python = ">=3.10" +dependencies = [ + "numpy>=1.21.5", + "pandas>=1.4.0", + "geopandas>=1.0.0", + "shapely>=2.0.0", + "pint>=0.21.0", + "typing-extensions>=4.6.2", + "pyproj>=3.3.0", + "certifi>=2023.5.7", + "platformdirs>=4.0.0", + "roseau-load-flow-engine==0.16.0", +] + +[project.urls] +homepage = "https://www.roseautechnologies.com/roseau-load-flow/" +repository = "https://github.com/RoseauTechnologies/Roseau_Load_Flow/" +issues = "https://github.com/RoseauTechnologies/Roseau_Load_Flow/issues/" +documentation = "https://roseau-load-flow.roseautechnologies.com/" + +[project.optional-dependencies] +plot = ["matplotlib>=3.7.2"] +graph = ["networkx>=3.0.0"] + +[dependency-groups] +dev = [ + # Tests + "pytest>=8.0.0", + "pytest-cov>=5.0.0", + "pytest-xdist>=3.1.0", + "coverage[toml]>=7.0.5", + "coverage-conditional-plugin>=0.9.0", +] +doc = [ + # Docs + "sphinx>=8.0.2", + "myst-parser>=0.16.1", + "sphinx-math-dollar>=1.2.1", + "sphinx-autoapi>=3.0.0", + "sphinx-copybutton>=0.5.1", + "sphinx-inline-tabs>=2022.1.2b11", + "furo>=2022.9.29", + "sphinxcontrib-googleanalytics>=0.3", + "sphinxcontrib-bibtex>=2.5.0", + "sphinx-sitemap>=2.5.1", + "sphinxext-opengraph>=0.9.1", +] + +[tool.uv] +managed = true [build-system] -requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" - -[tool.poetry.dependencies] -python = "^3.10" -numpy = ">=1.21.5" -pandas = ">=1.4.0" -geopandas = ">=1.0.0" -shapely = ">=2.0.0" -regex = ">=2022.1.18" -pint = ">=0.21.0" -typing-extensions = ">=4.6.2" -pyproj = ">=3.3.0" -certifi = ">=2023.5.7" -platformdirs = ">=4.0.0" -roseau-load-flow-engine = "==0.15.0" - -# Optional dependencies -matplotlib = { version = ">=3.7.2", optional = true } -networkx = { version = ">=3.0.0", optional = true } - -[tool.poetry.extras] -# DO NOT forget to update the installation page in the documentation when extras change -plot = ["matplotlib"] -graph = ["networkx"] - -[tool.poetry.group.test.dependencies] -pytest = "^8.0.0" -pytest-cov = "^5.0.0" -pytest-xdist = "^3.1.0" -coverage = { version = "^7.0.5", extras = ["toml"] } -coverage-conditional-plugin = ">=0.9.0" -matplotlib = ">=3.7.2" -networkx = ">=3.0.0" - -[tool.poetry.group.dev.dependencies] -pre-commit = "^3.0.0" -ruff = ">=0.6.0" - -[tool.poetry.group.doc.dependencies] -sphinx = "^8.0.2" -myst-parser = ">=0.16.1" -sphinx-math-dollar = "^1.2.1" -sphinx-autoapi = "^3.0.0" -sphinx-copybutton = ">=0.5.1" -sphinx-inline-tabs = ">=2022.1.2b11" -furo = ">=2022.9.29" -sphinxcontrib-googleanalytics = ">=0.3" -sphinxcontrib-bibtex = "^2.5.0" -sphinx-sitemap = "^2.5.1" -sphinxext-opengraph = ">=0.9.1" +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.sdist] +only-include = ["roseau"] +exclude = ["*tests*", "*conftest.py"] + +[tool.hatch.build.targets.wheel] +packages = ["roseau"] [tool.ruff] line-length = 120 -target-version = "py310" show-fixes = true namespace-packages = ["roseau"] diff --git a/roseau/load_flow/__init__.py b/roseau/load_flow/__init__.py index e9db1acd..885b4096 100644 --- a/roseau/load_flow/__init__.py +++ b/roseau/load_flow/__init__.py @@ -7,6 +7,7 @@ """ import importlib.metadata +from typing import Any from roseau.load_flow import converters from roseau.load_flow.__about__ import ( @@ -43,7 +44,7 @@ ) from roseau.load_flow.network import ElectricalNetwork from roseau.load_flow.units import Q_, ureg -from roseau.load_flow.utils import ConductorType, InsulatorType, LineType, constants +from roseau.load_flow.utils import Insulator, LineType, Material, constants from roseau.load_flow.utils._versions import show_versions from roseau.load_flow.utils.constants import ALPHA, ALPHA2, NegativeSequence, PositiveSequence, ZeroSequence @@ -95,8 +96,11 @@ "ureg", # Types "LineType", - "ConductorType", + "Material", + "Insulator", + # Deprecated types "InsulatorType", + "ConductorType", # License "activate_license", "deactivate_license", @@ -109,3 +113,24 @@ "NegativeSequence", "ZeroSequence", ] + + +def __getattr__(name: str) -> Any: + deprecated_classes = {"ConductorType": Material, "InsulatorType": Insulator} + + if name in deprecated_classes and name not in globals(): + import warnings + + from roseau.load_flow.utils._exceptions import find_stack_level + + new_class = deprecated_classes[name] + warnings.warn( + f"The `{name}` class is deprecated. Use `{new_class.__name__}` instead.", + category=DeprecationWarning, + stacklevel=find_stack_level(), + ) + globals()[name] = new_class + return new_class + else: + # raise AttributeError with original error message + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/roseau/load_flow/_solvers.py b/roseau/load_flow/_solvers.py index 5282ddd5..755c046a 100644 --- a/roseau/load_flow/_solvers.py +++ b/roseau/load_flow/_solvers.py @@ -1,4 +1,5 @@ import logging +import warnings from abc import ABC, abstractmethod from typing import TYPE_CHECKING @@ -8,13 +9,15 @@ from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode from roseau.load_flow.license import activate_license, get_license from roseau.load_flow.typing import JsonDict, Solver -from roseau.load_flow_engine.cy_engine import CyAbstractSolver, CyNewton, CyNewtonGoldstein +from roseau.load_flow.utils._exceptions import find_stack_level +from roseau.load_flow_engine.cy_engine import CyAbstractSolver, CyBackwardForward, CyNewton, CyNewtonGoldstein logger = logging.getLogger(__name__) _SOLVERS_PARAMS: dict[Solver, list[str]] = { "newton": [], "newton_goldstein": ["m1", "m2"], + "backward_forward": [], } SOLVERS = list(_SOLVERS_PARAMS) @@ -57,6 +60,8 @@ def from_dict(cls, data: JsonDict, network: "ElectricalNetwork") -> Self: m1 = data["params"].get("m1", NewtonGoldstein.DEFAULT_M1) m2 = data["params"].get("m2", NewtonGoldstein.DEFAULT_M2) return NewtonGoldstein(network=network, m1=m1, m2=m2) + elif data["name"] == "backward_forward": + return BackwardForward(network=network) else: msg = f"Solver {data['name']!r} is not implemented." logger.error(msg) @@ -89,10 +94,10 @@ def update_network(self, network: "ElectricalNetwork") -> None: """If the network has changed, we need to re-create a solver for this new network.""" raise NotImplementedError - @abstractmethod def update_params(self, params: JsonDict) -> None: """If the network has changed, we need to re-create a solver for this new network.""" - raise NotImplementedError + msg = "The update_params() method is called for a solver that doesn't have any parameters." + warnings.warn(msg, stacklevel=find_stack_level()) def to_dict(self) -> JsonDict: """Return the solver information as a dictionary format.""" @@ -162,9 +167,6 @@ def __init__( def update_network(self, network: "ElectricalNetwork") -> None: self._cy_solver = CyNewton(network=network._cy_electrical_network, optimize_tape=self.optimize_tape) - def update_params(self, params: JsonDict) -> None: - pass - class NewtonGoldstein(AbstractNewton): """The Newton-Raphson algorithm with the Goldstein and Price linear search. It has better stability than the @@ -225,3 +227,38 @@ def update_params(self, params: JsonDict) -> None: def params(self) -> JsonDict: return {"m1": self.m1, "m2": self.m2} + + +class BackwardForward(AbstractSolver): + """A backward-forward implementation, less stable than Newton-Raphson based algorithms, + but can be more performant in some cases. + """ + + name = "backward_forward" + + def __init__(self, network: "ElectricalNetwork") -> None: + """Backward-Forward constructor. + + Args: + network: + The electrical network for which the load flow needs to be solved. + """ + super().__init__(network=network) + self._cy_solver = CyBackwardForward(network=network._cy_electrical_network) + + def update_network(self, network: "ElectricalNetwork") -> None: + self._cy_solver = CyBackwardForward(network=network._cy_electrical_network) + + def solve_load_flow(self, max_iterations: int, tolerance: float) -> tuple[int, float]: + if self.network._has_loop: + msg = "The backward-forward solver does not support loops, but the network contains one." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.NO_BACKWARD_FORWARD) + if self.network._has_floating_neutral: + msg = ( + "The backward-forward solver does not support loads or voltage sources with floating neutral, " + "but the network contains at least one." + ) + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.NO_BACKWARD_FORWARD) + return super().solve_load_flow(max_iterations, tolerance) diff --git a/roseau/load_flow/conftest.py b/roseau/load_flow/conftest.py index fe6bb592..66d4dcf6 100644 --- a/roseau/load_flow/conftest.py +++ b/roseau/load_flow/conftest.py @@ -67,7 +67,7 @@ def bar(*args, **kwargs): # pragma: no-cover for _, klass in inspect.getmembers( module, lambda member: inspect.isclass(member) - and member.__module__.startswith("roseau.load_flow_engine.") + and "load_flow_engine." in member.__module__ and member.__name__.startswith("Cy") and member.__name__ != "CyLicense", # Test of the static methods of this class ): @@ -90,11 +90,11 @@ def dgs_network_path(request) -> Path: return request.param -@pytest.fixture() +@pytest.fixture def dgs_special_network_dir() -> Path: return TEST_DGS_SPECIAL_NETWORKS_DIR -@pytest.fixture() +@pytest.fixture def test_networks_path() -> Path: return TEST_ALL_NETWORKS_DATA_FOLDER diff --git a/roseau/load_flow/data/lines/Catalogue.csv b/roseau/load_flow/data/lines/Catalogue.csv index 76647d43..93cfad67 100644 --- a/roseau/load_flow/data/lines/Catalogue.csv +++ b/roseau/load_flow/data/lines/Catalogue.csv @@ -1,356 +1,356 @@ -name,type,material,insulator,section,r,x,b,maximal_current -O_AL_12,overhead,al,,12,2.69,0.4076321335,2.798e-06,70 -O_AL_13,overhead,al,,13,2.495,0.4051175176,2.8161e-06,76 -O_AL_14,overhead,al,,14,2.3,0.402789347,2.8331e-06,82 -O_AL_19,overhead,al,,19,1.6733333333,0.3931954996,2.9051e-06,103 -O_AL_20,overhead,al,,20,1.5944444444,0.3915840732,2.9175e-06,106 -O_AL_22,overhead,al,,22,1.4366666667,0.3885898156,2.9409e-06,113 -O_AL_25,overhead,al,,25,1.2,0.3845738118,2.973e-06,122 -O_AL_28,overhead,al,,28,1.1004,0.3810134861,3.0019e-06,130 -O_AL_29,overhead,al,,29,1.0672,0.3799110598,3.011e-06,132 -O_AL_33,overhead,al,,33,0.9344,0.3758517535,3.045e-06,142 -O_AL_34,overhead,al,,34,0.9012,0.374913895,3.0529e-06,144 -O_AL_37,overhead,al,,37,0.8377333333,0.3722574463,3.0757e-06,152 -O_AL_38,overhead,al,,38,0.8226,0.3714196387,3.0829e-06,155 -O_AL_40,overhead,al,,40,0.7923333333,0.3698082123,3.0969e-06,160 -O_AL_43,overhead,al,,43,0.7469333333,0.3675361917,3.1169e-06,167 -O_AL_48,overhead,al,,48,0.6712666667,0.3640804116,3.1478e-06,180 -O_AL_50,overhead,al,,50,0.641,0.3627979509,3.1595e-06,185 -O_AL_54,overhead,al,,54,0.6014,0.3603801484,3.1816e-06,193 -O_AL_55,overhead,al,,55,0.5915,0.3598036933,3.187e-06,195 -O_AL_59,overhead,al,,59,0.5519,0.3575981614,3.2075e-06,203 -O_AL_60,overhead,al,,60,0.542,0.3570701502,3.2125e-06,206 -O_AL_69,overhead,al,,69,0.4529,0.3526793993,3.2543e-06,224 -O_AL_70,overhead,al,,70,0.443,0.3522273638,3.2587e-06,226 -O_AL_74,overhead,al,,74,0.42332,0.3504815854,3.2757e-06,232 -O_AL_75,overhead,al,,75,0.4184,0.3500598888,3.2798e-06,234 -O_AL_79,overhead,al,,79,0.39872,0.3484275255,3.2959e-06,240 -O_AL_80,overhead,al,,80,0.3938,0.3480323514,3.2999e-06,242 -O_AL_90,overhead,al,,90,0.3446,0.3443320882,3.337e-06,258 -O_AL_93,overhead,al,,93,0.32984,0.3433019655,3.3475e-06,263 -O_AL_95,overhead,al,,95,0.32,0.3426335163,3.3543e-06,266 -O_AL_100,overhead,al,,100,0.3066,0.3410220899,3.371e-06,276 -O_AL_116,overhead,al,,116,0.26372,0.336359338,3.42e-06,310 -O_AL_117,overhead,al,,117,0.26104,0.3360896717,3.4229e-06,312 -O_AL_120,overhead,al,,120,0.253,0.3352942893,3.4314e-06,318 -O_AL_147,overhead,al,,147,0.2107,0.3289187147,3.5012e-06,356 -O_AL_148,overhead,al,,148,0.2091333333,0.3287057245,3.5036e-06,357 -O_AL_150,overhead,al,,150,0.206,0.3282840279,3.5083e-06,360 -O_AL_228,overhead,al,,228,0.1335090909,0.3151298548,3.6625e-06,474 -O_AL_240,overhead,al,,240,0.125,0.3135184284,3.6823e-06,490 -O_AL_288,overhead,al,,288,0.105,0.3077906278,3.7545e-06,552 -O_CU_3,overhead,cu,,3,6.4766666667,0.4511838553,2.5182e-06,35 -O_CU_7,overhead,cu,,7,2.7675,0.424565208,2.6822e-06,59 -O_CU_12,overhead,cu,,12,1.6033333333,0.4076321335,2.798e-06,90 -O_CU_13,overhead,cu,,13,1.49,0.4051175176,2.8161e-06,98 -O_CU_14,overhead,cu,,14,1.3766666667,0.402789347,2.8331e-06,105 -O_CU_19,overhead,cu,,19,1.009,0.3931954996,2.9051e-06,132 -O_CU_20,overhead,cu,,20,0.962,0.3915840732,2.9175e-06,136 -O_CU_22,overhead,cu,,22,0.868,0.3885898156,2.9409e-06,145 -O_CU_25,overhead,cu,,25,0.727,0.3845738118,2.973e-06,157 -O_CU_28,overhead,cu,,28,0.6661,0.3810134861,3.0019e-06,167 -O_CU_29,overhead,cu,,29,0.6458,0.3799110598,3.011e-06,170 -O_CU_33,overhead,cu,,33,0.5646,0.3758517535,3.045e-06,183 -O_CU_34,overhead,cu,,34,0.5443,0.374913895,3.0529e-06,187 -O_CU_37,overhead,cu,,37,0.5057333333,0.3722574463,3.0757e-06,196 -O_CU_38,overhead,cu,,38,0.4966,0.3714196387,3.0829e-06,199 -O_CU_40,overhead,cu,,40,0.4783333333,0.3698082123,3.0969e-06,204 -O_CU_43,overhead,cu,,43,0.4509333333,0.3675361917,3.1169e-06,213 -O_CU_48,overhead,cu,,48,0.4052666667,0.3640804116,3.1478e-06,227 -O_CU_50,overhead,cu,,50,0.387,0.3627979509,3.1595e-06,233 -O_CU_54,overhead,cu,,54,0.3632,0.3603801484,3.1816e-06,245 -O_CU_55,overhead,cu,,55,0.35725,0.3598036933,3.187e-06,248 -O_CU_59,overhead,cu,,59,0.33345,0.3575981614,3.2075e-06,260 -O_CU_60,overhead,cu,,60,0.3275,0.3570701502,3.2125e-06,262 -O_CU_69,overhead,cu,,69,0.27395,0.3526793993,3.2543e-06,289 -O_CU_70,overhead,cu,,70,0.268,0.3522273638,3.2587e-06,292 -O_CU_74,overhead,cu,,74,0.256,0.3504815854,3.2757e-06,302 -O_CU_75,overhead,cu,,75,0.253,0.3500598888,3.2798e-06,305 -O_CU_79,overhead,cu,,79,0.241,0.3484275255,3.2959e-06,315 -O_CU_80,overhead,cu,,80,0.238,0.3480323514,3.2999e-06,318 -O_CU_90,overhead,cu,,90,0.208,0.3443320882,3.337e-06,343 -O_CU_93,overhead,cu,,93,0.199,0.3433019655,3.3475e-06,351 -O_CU_95,overhead,cu,,95,0.193,0.3426335163,3.3543e-06,356 -O_CU_100,overhead,cu,,100,0.185,0.3410220899,3.371e-06,367 -O_CU_116,overhead,cu,,116,0.1594,0.336359338,3.42e-06,401 -O_CU_117,overhead,cu,,117,0.1578,0.3360896717,3.4229e-06,403 -O_CU_120,overhead,cu,,120,0.153,0.3352942893,3.4314e-06,409 -O_CU_147,overhead,cu,,147,0.1269,0.3289187147,3.5012e-06,459 -O_CU_148,overhead,cu,,148,0.1259333333,0.3287057245,3.5036e-06,461 -O_CU_150,overhead,cu,,150,0.124,0.3282840279,3.5083e-06,465 -O_CU_228,overhead,cu,,228,0.0826272727,0.3151298548,3.6625e-06,609 -O_CU_240,overhead,cu,,240,0.0775,0.3135184284,3.6823e-06,630 -O_CU_288,overhead,cu,,288,0.0651,0.3077906278,3.7545e-06,705 -O_AM_12,overhead,am,,12,3.12578,0.4076321335,2.798e-06,70 -O_AM_13,overhead,am,,13,2.89919,0.4051175176,2.8161e-06,76 -O_AM_14,overhead,am,,14,2.6726,0.402789347,2.8331e-06,82 -O_AM_19,overhead,am,,19,1.9444133333,0.3931954996,2.9051e-06,103 -O_AM_20,overhead,am,,20,1.8527444444,0.3915840732,2.9175e-06,106 -O_AM_22,overhead,am,,22,1.6694066667,0.3885898156,2.9409e-06,113 -O_AM_25,overhead,am,,25,1.3944,0.3845738118,2.973e-06,122 -O_AM_28,overhead,am,,28,1.2786648,0.3810134861,3.0019e-06,130 -O_AM_29,overhead,am,,29,1.2400864,0.3799110598,3.011e-06,132 -O_AM_33,overhead,am,,33,1.0857728,0.3758517535,3.045e-06,142 -O_AM_34,overhead,am,,34,1.0471944,0.374913895,3.0529e-06,144 -O_AM_37,overhead,am,,37,0.9734461333,0.3722574463,3.0757e-06,152 -O_AM_38,overhead,am,,38,0.9558612,0.3714196387,3.0829e-06,155 -O_AM_40,overhead,am,,40,0.9206913333,0.3698082123,3.0969e-06,160 -O_AM_43,overhead,am,,43,0.8679365333,0.3675361917,3.1169e-06,167 -O_AM_48,overhead,am,,48,0.7800118667,0.3640804116,3.1478e-06,180 -O_AM_50,overhead,am,,50,0.744842,0.3627979509,3.1595e-06,185 -O_AM_54,overhead,am,,54,0.6988268,0.3603801484,3.1816e-06,193 -O_AM_55,overhead,am,,55,0.687323,0.3598036933,3.187e-06,195 -O_AM_59,overhead,am,,59,0.6413078,0.3575981614,3.2075e-06,203 -O_AM_60,overhead,am,,60,0.629804,0.3570701502,3.2125e-06,206 -O_AM_69,overhead,am,,69,0.5262698,0.3526793993,3.2543e-06,224 -O_AM_70,overhead,am,,70,0.514766,0.3522273638,3.2587e-06,226 -O_AM_74,overhead,am,,74,0.49189784,0.3504815854,3.2757e-06,232 -O_AM_75,overhead,am,,75,0.4861808,0.3500598888,3.2798e-06,234 -O_AM_79,overhead,am,,79,0.46331264,0.3484275255,3.2959e-06,240 -O_AM_80,overhead,am,,80,0.4575956,0.3480323514,3.2999e-06,242 -O_AM_90,overhead,am,,90,0.4004252,0.3443320882,3.337e-06,258 -O_AM_93,overhead,am,,93,0.38327408,0.3433019655,3.3475e-06,263 -O_AM_95,overhead,am,,95,0.37184,0.3426335163,3.3543e-06,266 -O_AM_100,overhead,am,,100,0.3562692,0.3410220899,3.371e-06,276 -O_AM_116,overhead,am,,116,0.30644264,0.336359338,3.42e-06,310 -O_AM_117,overhead,am,,117,0.30332848,0.3360896717,3.4229e-06,312 -O_AM_120,overhead,am,,120,0.293986,0.3352942893,3.4314e-06,318 -O_AM_147,overhead,am,,147,0.2448334,0.3289187147,3.5012e-06,356 -O_AM_148,overhead,am,,148,0.2430129333,0.3287057245,3.5036e-06,357 -O_AM_150,overhead,am,,150,0.239372,0.3282840279,3.5083e-06,360 -O_AM_228,overhead,am,,228,0.1551375636,0.3151298548,3.6625e-06,474 -O_AM_240,overhead,am,,240,0.14525,0.3135184284,3.6823e-06,490 -O_AM_288,overhead,am,,288,0.12201,0.3077906278,3.7545e-06,552 -U_AL_19,underground,al,,19,1.6733333333,0.1330544178,2.33629e-05,107 -U_AL_20,underground,al,,20,1.5944444444,0.1319453158,2.35859e-05,110 -U_AL_22,underground,al,,22,1.4366666667,0.1299081697,2.40066e-05,116 -U_AL_25,underground,al,,25,1.2,0.1272251024,2.45842e-05,125 -U_AL_28,underground,al,,28,1.1004,0.124894529,2.51089e-05,132 -U_AL_29,underground,al,,29,1.0672,0.1241821772,2.52738e-05,135 -U_AL_33,underground,al,,33,0.9344,0.1215975746,2.58907e-05,144 -U_AL_34,underground,al,,34,0.9012,0.1210090932,2.60354e-05,147 -U_AL_37,underground,al,,37,0.8377333333,0.119360076,2.64496e-05,152 -U_AL_38,underground,al,,38,0.8226,0.1188454977,2.65816e-05,154 -U_AL_40,underground,al,,40,0.7923333333,0.1178632261,2.68372e-05,158 -U_AL_43,underground,al,,43,0.7469333333,0.116495047,2.72015e-05,163 -U_AL_48,underground,al,,48,0.6712666667,0.1144519385,2.77643e-05,172 -U_AL_50,underground,al,,50,0.641,0.113705448,2.79758e-05,175 -U_AL_54,underground,al,,54,0.6014,0.112315465,2.83783e-05,183 -U_AL_55,underground,al,,55,0.5915,0.1119874251,2.8475e-05,185 -U_AL_59,underground,al,,59,0.5519,0.1107443314,2.88474e-05,193 -U_AL_60,underground,al,,60,0.542,0.1104495588,2.89372e-05,194 -U_AL_69,underground,al,,69,0.4529,0.1080408311,2.96921e-05,212 -U_AL_70,underground,al,,70,0.443,0.1077971677,2.97707e-05,214 -U_AL_74,underground,al,,74,0.42332,0.1068637229,3.00755e-05,220 -U_AL_75,underground,al,,75,0.4184,0.1066400577,3.01495e-05,222 -U_AL_79,underground,al,,79,0.39872,0.1057809122,3.04371e-05,228 -U_AL_80,underground,al,,80,0.3938,0.1055745142,3.0507e-05,229 -U_AL_90,underground,al,,90,0.3446,0.1036719918,3.11668e-05,244 -U_AL_93,underground,al,,93,0.32984,0.1031520348,3.13521e-05,249 -U_AL_95,underground,al,,95,0.32,0.1028168921,3.14727e-05,252 -U_AL_100,underground,al,,100,0.3066,0.1020162744,3.17647e-05,260 -U_AL_116,underground,al,,116,0.26372,0.0997578116,3.26182e-05,285 -U_AL_117,underground,al,,117,0.26104,0.0996298374,3.2668e-05,286 -U_AL_120,underground,al,,120,0.253,0.0992540572,3.28149e-05,291 -U_AL_147,underground,al,,147,0.2107,0.0963323591,3.40041e-05,322 -U_AL_148,underground,al,,148,0.2091333333,0.0962375209,3.40441e-05,323 -U_AL_150,underground,al,,150,0.206,0.0960502777,3.41234e-05,325 -U_AL_228,underground,al,,228,0.1335090909,0.0905569282,3.66279e-05,415 -U_AL_240,underground,al,,240,0.125,0.0899296465,3.69374e-05,428 -U_AL_288,underground,al,,288,0.105,0.0877788677,3.80397e-05,474 -U_CU_19,underground,cu,,19,1.009,0.1330544178,2.33629e-05,138 -U_CU_20,underground,cu,,20,0.962,0.1319453158,2.35859e-05,142 -U_CU_22,underground,cu,,22,0.868,0.1299081697,2.40066e-05,149 -U_CU_25,underground,cu,,25,0.727,0.1272251024,2.45842e-05,161 -U_CU_28,underground,cu,,28,0.6661,0.124894529,2.51089e-05,170 -U_CU_29,underground,cu,,29,0.6458,0.1241821772,2.52738e-05,173 -U_CU_33,underground,cu,,33,0.5646,0.1215975746,2.58907e-05,186 -U_CU_34,underground,cu,,34,0.5443,0.1210090932,2.60354e-05,189 -U_CU_37,underground,cu,,37,0.5057333333,0.119360076,2.64496e-05,196 -U_CU_38,underground,cu,,38,0.4966,0.1188454977,2.65816e-05,199 -U_CU_40,underground,cu,,40,0.4783333333,0.1178632261,2.68372e-05,203 -U_CU_43,underground,cu,,43,0.4509333333,0.116495047,2.72015e-05,210 -U_CU_48,underground,cu,,48,0.4052666667,0.1144519385,2.77643e-05,221 -U_CU_50,underground,cu,,50,0.387,0.113705448,2.79758e-05,225 -U_CU_54,underground,cu,,54,0.3632,0.112315465,2.83783e-05,235 -U_CU_55,underground,cu,,55,0.35725,0.1119874251,2.8475e-05,238 -U_CU_59,underground,cu,,59,0.33345,0.1107443314,2.88474e-05,248 -U_CU_60,underground,cu,,60,0.3275,0.1104495588,2.89372e-05,250 -U_CU_69,underground,cu,,69,0.27395,0.1080408311,2.96921e-05,273 -U_CU_70,underground,cu,,70,0.268,0.1077971677,2.97707e-05,276 -U_CU_74,underground,cu,,74,0.256,0.1068637229,3.00755e-05,285 -U_CU_75,underground,cu,,75,0.253,0.1066400577,3.01495e-05,287 -U_CU_79,underground,cu,,79,0.241,0.1057809122,3.04371e-05,295 -U_CU_80,underground,cu,,80,0.238,0.1055745142,3.0507e-05,298 -U_CU_90,underground,cu,,90,0.208,0.1036719918,3.11668e-05,319 -U_CU_93,underground,cu,,93,0.199,0.1031520348,3.13521e-05,326 -U_CU_95,underground,cu,,95,0.193,0.1028168921,3.14727e-05,330 -U_CU_100,underground,cu,,100,0.185,0.1020162744,3.17647e-05,339 -U_CU_116,underground,cu,,116,0.1594,0.0997578116,3.26182e-05,368 -U_CU_117,underground,cu,,117,0.1578,0.0996298374,3.2668e-05,370 -U_CU_120,underground,cu,,120,0.153,0.0992540572,3.28149e-05,375 -U_CU_147,underground,cu,,147,0.1269,0.0963323591,3.40041e-05,416 -U_CU_148,underground,cu,,148,0.1259333333,0.0962375209,3.40441e-05,417 -U_CU_150,underground,cu,,150,0.124,0.0960502777,3.41234e-05,420 -U_CU_228,underground,cu,,228,0.0826272727,0.0905569282,3.66279e-05,533 -U_CU_240,underground,cu,,240,0.0775,0.0899296465,3.69374e-05,549 -U_CU_288,underground,cu,,288,0.0651,0.0877788677,3.80397e-05,605 -U_AM_19,underground,am,,19,1.9444133333,0.1330544178,2.33629e-05,107 -U_AM_20,underground,am,,20,1.8527444444,0.1319453158,2.35859e-05,110 -U_AM_22,underground,am,,22,1.6694066667,0.1299081697,2.40066e-05,116 -U_AM_25,underground,am,,25,1.3944,0.1272251024,2.45842e-05,125 -U_AM_28,underground,am,,28,1.2786648,0.124894529,2.51089e-05,132 -U_AM_29,underground,am,,29,1.2400864,0.1241821772,2.52738e-05,135 -U_AM_33,underground,am,,33,1.0857728,0.1215975746,2.58907e-05,144 -U_AM_34,underground,am,,34,1.0471944,0.1210090932,2.60354e-05,147 -U_AM_37,underground,am,,37,0.9734461333,0.119360076,2.64496e-05,152 -U_AM_38,underground,am,,38,0.9558612,0.1188454977,2.65816e-05,154 -U_AM_40,underground,am,,40,0.9206913333,0.1178632261,2.68372e-05,158 -U_AM_43,underground,am,,43,0.8679365333,0.116495047,2.72015e-05,163 -U_AM_48,underground,am,,48,0.7800118667,0.1144519385,2.77643e-05,172 -U_AM_50,underground,am,,50,0.744842,0.113705448,2.79758e-05,175 -U_AM_54,underground,am,,54,0.6988268,0.112315465,2.83783e-05,183 -U_AM_55,underground,am,,55,0.687323,0.1119874251,2.8475e-05,185 -U_AM_59,underground,am,,59,0.6413078,0.1107443314,2.88474e-05,193 -U_AM_60,underground,am,,60,0.629804,0.1104495588,2.89372e-05,194 -U_AM_69,underground,am,,69,0.5262698,0.1080408311,2.96921e-05,212 -U_AM_70,underground,am,,70,0.514766,0.1077971677,2.97707e-05,214 -U_AM_74,underground,am,,74,0.49189784,0.1068637229,3.00755e-05,220 -U_AM_75,underground,am,,75,0.4861808,0.1066400577,3.01495e-05,222 -U_AM_79,underground,am,,79,0.46331264,0.1057809122,3.04371e-05,228 -U_AM_80,underground,am,,80,0.4575956,0.1055745142,3.0507e-05,229 -U_AM_90,underground,am,,90,0.4004252,0.1036719918,3.11668e-05,244 -U_AM_93,underground,am,,93,0.38327408,0.1031520348,3.13521e-05,249 -U_AM_95,underground,am,,95,0.37184,0.1028168921,3.14727e-05,252 -U_AM_100,underground,am,,100,0.3562692,0.1020162744,3.17647e-05,260 -U_AM_116,underground,am,,116,0.30644264,0.0997578116,3.26182e-05,285 -U_AM_117,underground,am,,117,0.30332848,0.0996298374,3.2668e-05,286 -U_AM_120,underground,am,,120,0.293986,0.0992540572,3.28149e-05,291 -U_AM_147,underground,am,,147,0.2448334,0.0963323591,3.40041e-05,322 -U_AM_148,underground,am,,148,0.2430129333,0.0962375209,3.40441e-05,323 -U_AM_150,underground,am,,150,0.239372,0.0960502777,3.41234e-05,325 -U_AM_228,underground,am,,228,0.1551375636,0.0905569282,3.66279e-05,415 -U_AM_240,underground,am,,240,0.14525,0.0899296465,3.69374e-05,428 -U_AM_288,underground,am,,288,0.12201,0.0877788677,3.80397e-05,474 -T_AL_12,twisted,al,,12,2.69,0.1433737819,2.14745e-05,64 -T_AL_13,twisted,al,,13,2.495,0.1415282478,2.17895e-05,68 -T_AL_14,twisted,al,,14,2.3,0.1398372258,2.20863e-05,71 -T_AL_19,twisted,al,,19,1.6733333333,0.1330544178,2.33629e-05,84 -T_AL_20,twisted,al,,20,1.5944444444,0.1319453158,2.35859e-05,86 -T_AL_22,twisted,al,,22,1.4366666667,0.1299081697,2.40066e-05,90 -T_AL_25,twisted,al,,25,1.2,0.1272251024,2.45842e-05,97 -T_AL_28,twisted,al,,28,1.1004,0.124894529,2.51089e-05,104 -T_AL_29,twisted,al,,29,1.0672,0.1241821772,2.52738e-05,106 -T_AL_33,twisted,al,,33,0.9344,0.1215975746,2.58907e-05,115 -T_AL_34,twisted,al,,34,0.9012,0.1210090932,2.60354e-05,118 -T_AL_37,twisted,al,,37,0.8377333333,0.119360076,2.64496e-05,123 -T_AL_38,twisted,al,,38,0.8226,0.1188454977,2.65816e-05,125 -T_AL_40,twisted,al,,40,0.7923333333,0.1178632261,2.68372e-05,129 -T_AL_43,twisted,al,,43,0.7469333333,0.116495047,2.72015e-05,134 -T_AL_48,twisted,al,,48,0.6712666667,0.1144519385,2.77643e-05,143 -T_AL_50,twisted,al,,50,0.641,0.113705448,2.79758e-05,146 -T_AL_54,twisted,al,,54,0.6014,0.112315465,2.83783e-05,154 -T_AL_55,twisted,al,,55,0.5915,0.1119874251,2.8475e-05,156 -T_AL_59,twisted,al,,59,0.5519,0.1107443314,2.88474e-05,164 -T_AL_60,twisted,al,,60,0.542,0.1104495588,2.89372e-05,166 -T_AL_69,twisted,al,,69,0.4529,0.1080408311,2.96921e-05,185 -T_AL_70,twisted,al,,70,0.443,0.1077971677,2.97707e-05,187 -T_AL_74,twisted,al,,74,0.42332,0.1068637229,3.00755e-05,193 -T_AL_75,twisted,al,,75,0.4184,0.1066400577,3.01495e-05,195 -T_AL_79,twisted,al,,79,0.39872,0.1057809122,3.04371e-05,201 -T_AL_80,twisted,al,,80,0.3938,0.1055745142,3.0507e-05,203 -T_AL_90,twisted,al,,90,0.3446,0.1036719918,3.11668e-05,219 -T_AL_93,twisted,al,,93,0.32984,0.1031520348,3.13521e-05,224 -T_AL_95,twisted,al,,95,0.32,0.1028168921,3.14727e-05,227 -T_AL_100,twisted,al,,100,0.3066,0.1020162744,3.17647e-05,234 -T_AL_116,twisted,al,,116,0.26372,0.0997578116,3.26182e-05,257 -T_AL_117,twisted,al,,117,0.26104,0.0996298374,3.2668e-05,259 -T_AL_120,twisted,al,,120,0.253,0.0992540572,3.28149e-05,263 -T_AL_147,twisted,al,,147,0.2107,0.0963323591,3.40041e-05,300 -T_AL_148,twisted,al,,148,0.2091333333,0.0962375209,3.40441e-05,301 -T_AL_150,twisted,al,,150,0.206,0.0960502777,3.41234e-05,304 -T_AL_228,twisted,al,,228,0.1335090909,0.0905569282,3.66279e-05,395 -T_AL_240,twisted,al,,240,0.125,0.0899296465,3.69374e-05,409 -T_AL_288,twisted,al,,288,0.105,0.0877788677,3.80397e-05,459 -T_CU_3,twisted,cu,,3,6.4766666667,0.1780965781,1.68827e-05,35 -T_CU_7,twisted,cu,,7,2.7675,0.1562894945,1.95015e-05,59 -T_CU_12,twisted,cu,,12,1.6033333333,0.1433737819,2.14745e-05,83 -T_CU_13,twisted,cu,,13,1.49,0.1415282478,2.17895e-05,88 -T_CU_14,twisted,cu,,14,1.3766666667,0.1398372258,2.20863e-05,92 -T_CU_19,twisted,cu,,19,1.009,0.1330544178,2.33629e-05,109 -T_CU_20,twisted,cu,,20,0.962,0.1319453158,2.35859e-05,112 -T_CU_22,twisted,cu,,22,0.868,0.1299081697,2.40066e-05,118 -T_CU_25,twisted,cu,,25,0.727,0.1272251024,2.45842e-05,127 -T_CU_28,twisted,cu,,28,0.6661,0.124894529,2.51089e-05,136 -T_CU_29,twisted,cu,,29,0.6458,0.1241821772,2.52738e-05,139 -T_CU_33,twisted,cu,,33,0.5646,0.1215975746,2.58907e-05,152 -T_CU_34,twisted,cu,,34,0.5443,0.1210090932,2.60354e-05,155 -T_CU_37,twisted,cu,,37,0.5057333333,0.119360076,2.64496e-05,163 -T_CU_38,twisted,cu,,38,0.4966,0.1188454977,2.65816e-05,165 -T_CU_40,twisted,cu,,40,0.4783333333,0.1178632261,2.68372e-05,169 -T_CU_43,twisted,cu,,43,0.4509333333,0.116495047,2.72015e-05,176 -T_CU_48,twisted,cu,,48,0.4052666667,0.1144519385,2.77643e-05,187 -T_CU_50,twisted,cu,,50,0.387,0.113705448,2.79758e-05,192 -T_CU_54,twisted,cu,,54,0.3632,0.112315465,2.83783e-05,203 -T_CU_55,twisted,cu,,55,0.35725,0.1119874251,2.8475e-05,206 -T_CU_59,twisted,cu,,59,0.33345,0.1107443314,2.88474e-05,216 -T_CU_60,twisted,cu,,60,0.3275,0.1104495588,2.89372e-05,219 -T_CU_69,twisted,cu,,69,0.27395,0.1080408311,2.96921e-05,243 -T_CU_70,twisted,cu,,70,0.268,0.1077971677,2.97707e-05,246 -T_CU_74,twisted,cu,,74,0.256,0.1068637229,3.00755e-05,254 -T_CU_75,twisted,cu,,75,0.253,0.1066400577,3.01495e-05,256 -T_CU_79,twisted,cu,,79,0.241,0.1057809122,3.04371e-05,265 -T_CU_80,twisted,cu,,80,0.238,0.1055745142,3.0507e-05,267 -T_CU_90,twisted,cu,,90,0.208,0.1036719918,3.11668e-05,288 -T_CU_93,twisted,cu,,93,0.199,0.1031520348,3.13521e-05,294 -T_CU_95,twisted,cu,,95,0.193,0.1028168921,3.14727e-05,298 -T_CU_100,twisted,cu,,100,0.185,0.1020162744,3.17647e-05,308 -T_CU_116,twisted,cu,,116,0.1594,0.0997578116,3.26182e-05,338 -T_CU_117,twisted,cu,,117,0.1578,0.0996298374,3.2668e-05,340 -T_CU_120,twisted,cu,,120,0.153,0.0992540572,3.28149e-05,346 -T_CU_147,twisted,cu,,147,0.1269,0.0963323591,3.40041e-05,394 -T_CU_148,twisted,cu,,148,0.1259333333,0.0962375209,3.40441e-05,395 -T_CU_150,twisted,cu,,150,0.124,0.0960502777,3.41234e-05,399 -T_CU_228,twisted,cu,,228,0.0826272727,0.0905569282,3.66279e-05,520 -T_CU_240,twisted,cu,,240,0.0775,0.0899296465,3.69374e-05,538 -T_CU_288,twisted,cu,,288,0.0651,0.0877788677,3.80397e-05,604 -T_AM_12,twisted,am,,12,3.12578,0.1433737819,2.14745e-05,64 -T_AM_13,twisted,am,,13,2.89919,0.1415282478,2.17895e-05,68 -T_AM_14,twisted,am,,14,2.6726,0.1398372258,2.20863e-05,71 -T_AM_19,twisted,am,,19,1.9444133333,0.1330544178,2.33629e-05,84 -T_AM_20,twisted,am,,20,1.8527444444,0.1319453158,2.35859e-05,86 -T_AM_22,twisted,am,,22,1.6694066667,0.1299081697,2.40066e-05,90 -T_AM_25,twisted,am,,25,1.3944,0.1272251024,2.45842e-05,97 -T_AM_28,twisted,am,,28,1.2786648,0.124894529,2.51089e-05,104 -T_AM_29,twisted,am,,29,1.2400864,0.1241821772,2.52738e-05,106 -T_AM_33,twisted,am,,33,1.0857728,0.1215975746,2.58907e-05,115 -T_AM_34,twisted,am,,34,1.0471944,0.1210090932,2.60354e-05,118 -T_AM_37,twisted,am,,37,0.9734461333,0.119360076,2.64496e-05,123 -T_AM_38,twisted,am,,38,0.9558612,0.1188454977,2.65816e-05,125 -T_AM_40,twisted,am,,40,0.9206913333,0.1178632261,2.68372e-05,129 -T_AM_43,twisted,am,,43,0.8679365333,0.116495047,2.72015e-05,134 -T_AM_48,twisted,am,,48,0.7800118667,0.1144519385,2.77643e-05,143 -T_AM_50,twisted,am,,50,0.744842,0.113705448,2.79758e-05,146 -T_AM_54,twisted,am,,54,0.6988268,0.112315465,2.83783e-05,154 -T_AM_55,twisted,am,,55,0.687323,0.1119874251,2.8475e-05,156 -T_AM_59,twisted,am,,59,0.6413078,0.1107443314,2.88474e-05,164 -T_AM_60,twisted,am,,60,0.629804,0.1104495588,2.89372e-05,166 -T_AM_69,twisted,am,,69,0.5262698,0.1080408311,2.96921e-05,185 -T_AM_70,twisted,am,,70,0.514766,0.1077971677,2.97707e-05,187 -T_AM_74,twisted,am,,74,0.49189784,0.1068637229,3.00755e-05,193 -T_AM_75,twisted,am,,75,0.4861808,0.1066400577,3.01495e-05,195 -T_AM_79,twisted,am,,79,0.46331264,0.1057809122,3.04371e-05,201 -T_AM_80,twisted,am,,80,0.4575956,0.1055745142,3.0507e-05,203 -T_AM_90,twisted,am,,90,0.4004252,0.1036719918,3.11668e-05,219 -T_AM_93,twisted,am,,93,0.38327408,0.1031520348,3.13521e-05,224 -T_AM_95,twisted,am,,95,0.37184,0.1028168921,3.14727e-05,227 -T_AM_100,twisted,am,,100,0.3562692,0.1020162744,3.17647e-05,234 -T_AM_116,twisted,am,,116,0.30644264,0.0997578116,3.26182e-05,257 -T_AM_117,twisted,am,,117,0.30332848,0.0996298374,3.2668e-05,259 -T_AM_120,twisted,am,,120,0.293986,0.0992540572,3.28149e-05,263 -T_AM_147,twisted,am,,147,0.2448334,0.0963323591,3.40041e-05,300 -T_AM_148,twisted,am,,148,0.2430129333,0.0962375209,3.40441e-05,301 -T_AM_150,twisted,am,,150,0.239372,0.0960502777,3.41234e-05,304 -T_AM_228,twisted,am,,228,0.1551375636,0.0905569282,3.66279e-05,395 -T_AM_240,twisted,am,,240,0.14525,0.0899296465,3.69374e-05,409 -T_AM_288,twisted,am,,288,0.12201,0.0877788677,3.80397e-05,459 +name,type,material,material_neutral,insulator,insulator_neutral,section,section_neutral,resistance,resistance_neutral,reactance,reactance_neutral,susceptance,susceptance_neutral,ampacity,ampacity_neutral +O_AL_12,overhead,al,al,,,12,12,2.69,2.69,0.4076321335,0.4076321335,0.000002798,0.000002798,70,70 +O_AL_13,overhead,al,al,,,13,13,2.495,2.495,0.4051175176,0.4051175176,0.0000028161,0.0000028161,76,76 +O_AL_14,overhead,al,al,,,14,14,2.3,2.3,0.402789347,0.402789347,0.0000028331,0.0000028331,82,82 +O_AL_19,overhead,al,al,,,19,19,1.6733333333,1.6733333333,0.3931954996,0.3931954996,0.0000029051,0.0000029051,103,103 +O_AL_20,overhead,al,al,,,20,20,1.5944444444,1.5944444444,0.3915840732,0.3915840732,0.0000029175,0.0000029175,106,106 +O_AL_22,overhead,al,al,,,22,22,1.4366666667,1.4366666667,0.3885898156,0.3885898156,0.0000029409,0.0000029409,113,113 +O_AL_25,overhead,al,al,,,25,25,1.2,1.2,0.3845738118,0.3845738118,0.000002973,0.000002973,122,122 +O_AL_28,overhead,al,al,,,28,28,1.1004,1.1004,0.3810134861,0.3810134861,0.0000030019,0.0000030019,130,130 +O_AL_29,overhead,al,al,,,29,29,1.0672,1.0672,0.3799110598,0.3799110598,0.000003011,0.000003011,132,132 +O_AL_33,overhead,al,al,,,33,33,0.9344,0.9344,0.3758517535,0.3758517535,0.000003045,0.000003045,142,142 +O_AL_34,overhead,al,al,,,34,34,0.9012,0.9012,0.374913895,0.374913895,0.0000030529,0.0000030529,144,144 +O_AL_37,overhead,al,al,,,37,37,0.8377333333,0.8377333333,0.3722574463,0.3722574463,0.0000030757,0.0000030757,152,152 +O_AL_38,overhead,al,al,,,38,38,0.8226,0.8226,0.3714196387,0.3714196387,0.0000030829,0.0000030829,155,155 +O_AL_40,overhead,al,al,,,40,40,0.7923333333,0.7923333333,0.3698082123,0.3698082123,0.0000030969,0.0000030969,160,160 +O_AL_43,overhead,al,al,,,43,43,0.7469333333,0.7469333333,0.3675361917,0.3675361917,0.0000031169,0.0000031169,167,167 +O_AL_48,overhead,al,al,,,48,48,0.6712666667,0.6712666667,0.3640804116,0.3640804116,0.0000031478,0.0000031478,180,180 +O_AL_50,overhead,al,al,,,50,50,0.641,0.641,0.3627979509,0.3627979509,0.0000031595,0.0000031595,185,185 +O_AL_54,overhead,al,al,,,54,54,0.6014,0.6014,0.3603801484,0.3603801484,0.0000031816,0.0000031816,193,193 +O_AL_55,overhead,al,al,,,55,55,0.5915,0.5915,0.3598036933,0.3598036933,0.000003187,0.000003187,195,195 +O_AL_59,overhead,al,al,,,59,59,0.5519,0.5519,0.3575981614,0.3575981614,0.0000032075,0.0000032075,203,203 +O_AL_60,overhead,al,al,,,60,60,0.542,0.542,0.3570701502,0.3570701502,0.0000032125,0.0000032125,206,206 +O_AL_69,overhead,al,al,,,69,69,0.4529,0.4529,0.3526793993,0.3526793993,0.0000032543,0.0000032543,224,224 +O_AL_70,overhead,al,al,,,70,70,0.443,0.443,0.3522273638,0.3522273638,0.0000032587,0.0000032587,226,226 +O_AL_74,overhead,al,al,,,74,74,0.42332,0.42332,0.3504815854,0.3504815854,0.0000032757,0.0000032757,232,232 +O_AL_75,overhead,al,al,,,75,75,0.4184,0.4184,0.3500598888,0.3500598888,0.0000032798,0.0000032798,234,234 +O_AL_79,overhead,al,al,,,79,79,0.39872,0.39872,0.3484275255,0.3484275255,0.0000032959,0.0000032959,240,240 +O_AL_80,overhead,al,al,,,80,80,0.3938,0.3938,0.3480323514,0.3480323514,0.0000032999,0.0000032999,242,242 +O_AL_90,overhead,al,al,,,90,90,0.3446,0.3446,0.3443320882,0.3443320882,0.000003337,0.000003337,258,258 +O_AL_93,overhead,al,al,,,93,93,0.32984,0.32984,0.3433019655,0.3433019655,0.0000033475,0.0000033475,263,263 +O_AL_95,overhead,al,al,,,95,95,0.32,0.32,0.3426335163,0.3426335163,0.0000033543,0.0000033543,266,266 +O_AL_100,overhead,al,al,,,100,100,0.3066,0.3066,0.3410220899,0.3410220899,0.000003371,0.000003371,276,276 +O_AL_116,overhead,al,al,,,116,116,0.26372,0.26372,0.336359338,0.336359338,0.00000342,0.00000342,310,310 +O_AL_117,overhead,al,al,,,117,117,0.26104,0.26104,0.3360896717,0.3360896717,0.0000034229,0.0000034229,312,312 +O_AL_120,overhead,al,al,,,120,120,0.253,0.253,0.3352942893,0.3352942893,0.0000034314,0.0000034314,318,318 +O_AL_147,overhead,al,al,,,147,147,0.2107,0.2107,0.3289187147,0.3289187147,0.0000035012,0.0000035012,356,356 +O_AL_148,overhead,al,al,,,148,148,0.2091333333,0.2091333333,0.3287057245,0.3287057245,0.0000035036,0.0000035036,357,357 +O_AL_150,overhead,al,al,,,150,150,0.206,0.206,0.3282840279,0.3282840279,0.0000035083,0.0000035083,360,360 +O_AL_228,overhead,al,al,,,228,228,0.1335090909,0.1335090909,0.3151298548,0.3151298548,0.0000036625,0.0000036625,474,474 +O_AL_240,overhead,al,al,,,240,240,0.125,0.125,0.3135184284,0.3135184284,0.0000036823,0.0000036823,490,490 +O_AL_288,overhead,al,al,,,288,288,0.105,0.105,0.3077906278,0.3077906278,0.0000037545,0.0000037545,552,552 +O_CU_3,overhead,cu,cu,,,3,3,6.4766666667,6.4766666667,0.4511838553,0.4511838553,0.0000025182,0.0000025182,35,35 +O_CU_7,overhead,cu,cu,,,7,7,2.7675,2.7675,0.424565208,0.424565208,0.0000026822,0.0000026822,59,59 +O_CU_12,overhead,cu,cu,,,12,12,1.6033333333,1.6033333333,0.4076321335,0.4076321335,0.000002798,0.000002798,90,90 +O_CU_13,overhead,cu,cu,,,13,13,1.49,1.49,0.4051175176,0.4051175176,0.0000028161,0.0000028161,98,98 +O_CU_14,overhead,cu,cu,,,14,14,1.3766666667,1.3766666667,0.402789347,0.402789347,0.0000028331,0.0000028331,105,105 +O_CU_19,overhead,cu,cu,,,19,19,1.009,1.009,0.3931954996,0.3931954996,0.0000029051,0.0000029051,132,132 +O_CU_20,overhead,cu,cu,,,20,20,0.962,0.962,0.3915840732,0.3915840732,0.0000029175,0.0000029175,136,136 +O_CU_22,overhead,cu,cu,,,22,22,0.868,0.868,0.3885898156,0.3885898156,0.0000029409,0.0000029409,145,145 +O_CU_25,overhead,cu,cu,,,25,25,0.727,0.727,0.3845738118,0.3845738118,0.000002973,0.000002973,157,157 +O_CU_28,overhead,cu,cu,,,28,28,0.6661,0.6661,0.3810134861,0.3810134861,0.0000030019,0.0000030019,167,167 +O_CU_29,overhead,cu,cu,,,29,29,0.6458,0.6458,0.3799110598,0.3799110598,0.000003011,0.000003011,170,170 +O_CU_33,overhead,cu,cu,,,33,33,0.5646,0.5646,0.3758517535,0.3758517535,0.000003045,0.000003045,183,183 +O_CU_34,overhead,cu,cu,,,34,34,0.5443,0.5443,0.374913895,0.374913895,0.0000030529,0.0000030529,187,187 +O_CU_37,overhead,cu,cu,,,37,37,0.5057333333,0.5057333333,0.3722574463,0.3722574463,0.0000030757,0.0000030757,196,196 +O_CU_38,overhead,cu,cu,,,38,38,0.4966,0.4966,0.3714196387,0.3714196387,0.0000030829,0.0000030829,199,199 +O_CU_40,overhead,cu,cu,,,40,40,0.4783333333,0.4783333333,0.3698082123,0.3698082123,0.0000030969,0.0000030969,204,204 +O_CU_43,overhead,cu,cu,,,43,43,0.4509333333,0.4509333333,0.3675361917,0.3675361917,0.0000031169,0.0000031169,213,213 +O_CU_48,overhead,cu,cu,,,48,48,0.4052666667,0.4052666667,0.3640804116,0.3640804116,0.0000031478,0.0000031478,227,227 +O_CU_50,overhead,cu,cu,,,50,50,0.387,0.387,0.3627979509,0.3627979509,0.0000031595,0.0000031595,233,233 +O_CU_54,overhead,cu,cu,,,54,54,0.3632,0.3632,0.3603801484,0.3603801484,0.0000031816,0.0000031816,245,245 +O_CU_55,overhead,cu,cu,,,55,55,0.35725,0.35725,0.3598036933,0.3598036933,0.000003187,0.000003187,248,248 +O_CU_59,overhead,cu,cu,,,59,59,0.33345,0.33345,0.3575981614,0.3575981614,0.0000032075,0.0000032075,260,260 +O_CU_60,overhead,cu,cu,,,60,60,0.3275,0.3275,0.3570701502,0.3570701502,0.0000032125,0.0000032125,262,262 +O_CU_69,overhead,cu,cu,,,69,69,0.27395,0.27395,0.3526793993,0.3526793993,0.0000032543,0.0000032543,289,289 +O_CU_70,overhead,cu,cu,,,70,70,0.268,0.268,0.3522273638,0.3522273638,0.0000032587,0.0000032587,292,292 +O_CU_74,overhead,cu,cu,,,74,74,0.256,0.256,0.3504815854,0.3504815854,0.0000032757,0.0000032757,302,302 +O_CU_75,overhead,cu,cu,,,75,75,0.253,0.253,0.3500598888,0.3500598888,0.0000032798,0.0000032798,305,305 +O_CU_79,overhead,cu,cu,,,79,79,0.241,0.241,0.3484275255,0.3484275255,0.0000032959,0.0000032959,315,315 +O_CU_80,overhead,cu,cu,,,80,80,0.238,0.238,0.3480323514,0.3480323514,0.0000032999,0.0000032999,318,318 +O_CU_90,overhead,cu,cu,,,90,90,0.208,0.208,0.3443320882,0.3443320882,0.000003337,0.000003337,343,343 +O_CU_93,overhead,cu,cu,,,93,93,0.199,0.199,0.3433019655,0.3433019655,0.0000033475,0.0000033475,351,351 +O_CU_95,overhead,cu,cu,,,95,95,0.193,0.193,0.3426335163,0.3426335163,0.0000033543,0.0000033543,356,356 +O_CU_100,overhead,cu,cu,,,100,100,0.185,0.185,0.3410220899,0.3410220899,0.000003371,0.000003371,367,367 +O_CU_116,overhead,cu,cu,,,116,116,0.1594,0.1594,0.336359338,0.336359338,0.00000342,0.00000342,401,401 +O_CU_117,overhead,cu,cu,,,117,117,0.1578,0.1578,0.3360896717,0.3360896717,0.0000034229,0.0000034229,403,403 +O_CU_120,overhead,cu,cu,,,120,120,0.153,0.153,0.3352942893,0.3352942893,0.0000034314,0.0000034314,409,409 +O_CU_147,overhead,cu,cu,,,147,147,0.1269,0.1269,0.3289187147,0.3289187147,0.0000035012,0.0000035012,459,459 +O_CU_148,overhead,cu,cu,,,148,148,0.1259333333,0.1259333333,0.3287057245,0.3287057245,0.0000035036,0.0000035036,461,461 +O_CU_150,overhead,cu,cu,,,150,150,0.124,0.124,0.3282840279,0.3282840279,0.0000035083,0.0000035083,465,465 +O_CU_228,overhead,cu,cu,,,228,228,0.0826272727,0.0826272727,0.3151298548,0.3151298548,0.0000036625,0.0000036625,609,609 +O_CU_240,overhead,cu,cu,,,240,240,0.0775,0.0775,0.3135184284,0.3135184284,0.0000036823,0.0000036823,630,630 +O_CU_288,overhead,cu,cu,,,288,288,0.0651,0.0651,0.3077906278,0.3077906278,0.0000037545,0.0000037545,705,705 +O_AM_12,overhead,am,am,,,12,12,3.12578,3.12578,0.4076321335,0.4076321335,0.000002798,0.000002798,70,70 +O_AM_13,overhead,am,am,,,13,13,2.89919,2.89919,0.4051175176,0.4051175176,0.0000028161,0.0000028161,76,76 +O_AM_14,overhead,am,am,,,14,14,2.6726,2.6726,0.402789347,0.402789347,0.0000028331,0.0000028331,82,82 +O_AM_19,overhead,am,am,,,19,19,1.9444133333,1.9444133333,0.3931954996,0.3931954996,0.0000029051,0.0000029051,103,103 +O_AM_20,overhead,am,am,,,20,20,1.8527444444,1.8527444444,0.3915840732,0.3915840732,0.0000029175,0.0000029175,106,106 +O_AM_22,overhead,am,am,,,22,22,1.6694066667,1.6694066667,0.3885898156,0.3885898156,0.0000029409,0.0000029409,113,113 +O_AM_25,overhead,am,am,,,25,25,1.3944,1.3944,0.3845738118,0.3845738118,0.000002973,0.000002973,122,122 +O_AM_28,overhead,am,am,,,28,28,1.2786648,1.2786648,0.3810134861,0.3810134861,0.0000030019,0.0000030019,130,130 +O_AM_29,overhead,am,am,,,29,29,1.2400864,1.2400864,0.3799110598,0.3799110598,0.000003011,0.000003011,132,132 +O_AM_33,overhead,am,am,,,33,33,1.0857728,1.0857728,0.3758517535,0.3758517535,0.000003045,0.000003045,142,142 +O_AM_34,overhead,am,am,,,34,34,1.0471944,1.0471944,0.374913895,0.374913895,0.0000030529,0.0000030529,144,144 +O_AM_37,overhead,am,am,,,37,37,0.9734461333,0.9734461333,0.3722574463,0.3722574463,0.0000030757,0.0000030757,152,152 +O_AM_38,overhead,am,am,,,38,38,0.9558612,0.9558612,0.3714196387,0.3714196387,0.0000030829,0.0000030829,155,155 +O_AM_40,overhead,am,am,,,40,40,0.9206913333,0.9206913333,0.3698082123,0.3698082123,0.0000030969,0.0000030969,160,160 +O_AM_43,overhead,am,am,,,43,43,0.8679365333,0.8679365333,0.3675361917,0.3675361917,0.0000031169,0.0000031169,167,167 +O_AM_48,overhead,am,am,,,48,48,0.7800118667,0.7800118667,0.3640804116,0.3640804116,0.0000031478,0.0000031478,180,180 +O_AM_50,overhead,am,am,,,50,50,0.744842,0.744842,0.3627979509,0.3627979509,0.0000031595,0.0000031595,185,185 +O_AM_54,overhead,am,am,,,54,54,0.6988268,0.6988268,0.3603801484,0.3603801484,0.0000031816,0.0000031816,193,193 +O_AM_55,overhead,am,am,,,55,55,0.687323,0.687323,0.3598036933,0.3598036933,0.000003187,0.000003187,195,195 +O_AM_59,overhead,am,am,,,59,59,0.6413078,0.6413078,0.3575981614,0.3575981614,0.0000032075,0.0000032075,203,203 +O_AM_60,overhead,am,am,,,60,60,0.629804,0.629804,0.3570701502,0.3570701502,0.0000032125,0.0000032125,206,206 +O_AM_69,overhead,am,am,,,69,69,0.5262698,0.5262698,0.3526793993,0.3526793993,0.0000032543,0.0000032543,224,224 +O_AM_70,overhead,am,am,,,70,70,0.514766,0.514766,0.3522273638,0.3522273638,0.0000032587,0.0000032587,226,226 +O_AM_74,overhead,am,am,,,74,74,0.49189784,0.49189784,0.3504815854,0.3504815854,0.0000032757,0.0000032757,232,232 +O_AM_75,overhead,am,am,,,75,75,0.4861808,0.4861808,0.3500598888,0.3500598888,0.0000032798,0.0000032798,234,234 +O_AM_79,overhead,am,am,,,79,79,0.46331264,0.46331264,0.3484275255,0.3484275255,0.0000032959,0.0000032959,240,240 +O_AM_80,overhead,am,am,,,80,80,0.4575956,0.4575956,0.3480323514,0.3480323514,0.0000032999,0.0000032999,242,242 +O_AM_90,overhead,am,am,,,90,90,0.4004252,0.4004252,0.3443320882,0.3443320882,0.000003337,0.000003337,258,258 +O_AM_93,overhead,am,am,,,93,93,0.38327408,0.38327408,0.3433019655,0.3433019655,0.0000033475,0.0000033475,263,263 +O_AM_95,overhead,am,am,,,95,95,0.37184,0.37184,0.3426335163,0.3426335163,0.0000033543,0.0000033543,266,266 +O_AM_100,overhead,am,am,,,100,100,0.3562692,0.3562692,0.3410220899,0.3410220899,0.000003371,0.000003371,276,276 +O_AM_116,overhead,am,am,,,116,116,0.30644264,0.30644264,0.336359338,0.336359338,0.00000342,0.00000342,310,310 +O_AM_117,overhead,am,am,,,117,117,0.30332848,0.30332848,0.3360896717,0.3360896717,0.0000034229,0.0000034229,312,312 +O_AM_120,overhead,am,am,,,120,120,0.293986,0.293986,0.3352942893,0.3352942893,0.0000034314,0.0000034314,318,318 +O_AM_147,overhead,am,am,,,147,147,0.2448334,0.2448334,0.3289187147,0.3289187147,0.0000035012,0.0000035012,356,356 +O_AM_148,overhead,am,am,,,148,148,0.2430129333,0.2430129333,0.3287057245,0.3287057245,0.0000035036,0.0000035036,357,357 +O_AM_150,overhead,am,am,,,150,150,0.239372,0.239372,0.3282840279,0.3282840279,0.0000035083,0.0000035083,360,360 +O_AM_228,overhead,am,am,,,228,228,0.1551375636,0.1551375636,0.3151298548,0.3151298548,0.0000036625,0.0000036625,474,474 +O_AM_240,overhead,am,am,,,240,240,0.14525,0.14525,0.3135184284,0.3135184284,0.0000036823,0.0000036823,490,490 +O_AM_288,overhead,am,am,,,288,288,0.12201,0.12201,0.3077906278,0.3077906278,0.0000037545,0.0000037545,552,552 +U_AL_19,underground,al,al,,,19,19,1.6733333333,1.6733333333,0.1330544178,0.1330544178,0.0000233629,0.0000233629,107,107 +U_AL_20,underground,al,al,,,20,20,1.5944444444,1.5944444444,0.1319453158,0.1319453158,0.0000235859,0.0000235859,110,110 +U_AL_22,underground,al,al,,,22,22,1.4366666667,1.4366666667,0.1299081697,0.1299081697,0.0000240066,0.0000240066,116,116 +U_AL_25,underground,al,al,,,25,25,1.2,1.2,0.1272251024,0.1272251024,0.0000245842,0.0000245842,125,125 +U_AL_28,underground,al,al,,,28,28,1.1004,1.1004,0.124894529,0.124894529,0.0000251089,0.0000251089,132,132 +U_AL_29,underground,al,al,,,29,29,1.0672,1.0672,0.1241821772,0.1241821772,0.0000252738,0.0000252738,135,135 +U_AL_33,underground,al,al,,,33,33,0.9344,0.9344,0.1215975746,0.1215975746,0.0000258907,0.0000258907,144,144 +U_AL_34,underground,al,al,,,34,34,0.9012,0.9012,0.1210090932,0.1210090932,0.0000260354,0.0000260354,147,147 +U_AL_37,underground,al,al,,,37,37,0.8377333333,0.8377333333,0.119360076,0.119360076,0.0000264496,0.0000264496,152,152 +U_AL_38,underground,al,al,,,38,38,0.8226,0.8226,0.1188454977,0.1188454977,0.0000265816,0.0000265816,154,154 +U_AL_40,underground,al,al,,,40,40,0.7923333333,0.7923333333,0.1178632261,0.1178632261,0.0000268372,0.0000268372,158,158 +U_AL_43,underground,al,al,,,43,43,0.7469333333,0.7469333333,0.116495047,0.116495047,0.0000272015,0.0000272015,163,163 +U_AL_48,underground,al,al,,,48,48,0.6712666667,0.6712666667,0.1144519385,0.1144519385,0.0000277643,0.0000277643,172,172 +U_AL_50,underground,al,al,,,50,50,0.641,0.641,0.113705448,0.113705448,0.0000279758,0.0000279758,175,175 +U_AL_54,underground,al,al,,,54,54,0.6014,0.6014,0.112315465,0.112315465,0.0000283783,0.0000283783,183,183 +U_AL_55,underground,al,al,,,55,55,0.5915,0.5915,0.1119874251,0.1119874251,0.000028475,0.000028475,185,185 +U_AL_59,underground,al,al,,,59,59,0.5519,0.5519,0.1107443314,0.1107443314,0.0000288474,0.0000288474,193,193 +U_AL_60,underground,al,al,,,60,60,0.542,0.542,0.1104495588,0.1104495588,0.0000289372,0.0000289372,194,194 +U_AL_69,underground,al,al,,,69,69,0.4529,0.4529,0.1080408311,0.1080408311,0.0000296921,0.0000296921,212,212 +U_AL_70,underground,al,al,,,70,70,0.443,0.443,0.1077971677,0.1077971677,0.0000297707,0.0000297707,214,214 +U_AL_74,underground,al,al,,,74,74,0.42332,0.42332,0.1068637229,0.1068637229,0.0000300755,0.0000300755,220,220 +U_AL_75,underground,al,al,,,75,75,0.4184,0.4184,0.1066400577,0.1066400577,0.0000301495,0.0000301495,222,222 +U_AL_79,underground,al,al,,,79,79,0.39872,0.39872,0.1057809122,0.1057809122,0.0000304371,0.0000304371,228,228 +U_AL_80,underground,al,al,,,80,80,0.3938,0.3938,0.1055745142,0.1055745142,0.000030507,0.000030507,229,229 +U_AL_90,underground,al,al,,,90,90,0.3446,0.3446,0.1036719918,0.1036719918,0.0000311668,0.0000311668,244,244 +U_AL_93,underground,al,al,,,93,93,0.32984,0.32984,0.1031520348,0.1031520348,0.0000313521,0.0000313521,249,249 +U_AL_95,underground,al,al,,,95,95,0.32,0.32,0.1028168921,0.1028168921,0.0000314727,0.0000314727,252,252 +U_AL_100,underground,al,al,,,100,100,0.3066,0.3066,0.1020162744,0.1020162744,0.0000317647,0.0000317647,260,260 +U_AL_116,underground,al,al,,,116,116,0.26372,0.26372,0.0997578116,0.0997578116,0.0000326182,0.0000326182,285,285 +U_AL_117,underground,al,al,,,117,117,0.26104,0.26104,0.0996298374,0.0996298374,0.000032668,0.000032668,286,286 +U_AL_120,underground,al,al,,,120,120,0.253,0.253,0.0992540572,0.0992540572,0.0000328149,0.0000328149,291,291 +U_AL_147,underground,al,al,,,147,147,0.2107,0.2107,0.0963323591,0.0963323591,0.0000340041,0.0000340041,322,322 +U_AL_148,underground,al,al,,,148,148,0.2091333333,0.2091333333,0.0962375209,0.0962375209,0.0000340441,0.0000340441,323,323 +U_AL_150,underground,al,al,,,150,150,0.206,0.206,0.0960502777,0.0960502777,0.0000341234,0.0000341234,325,325 +U_AL_228,underground,al,al,,,228,228,0.1335090909,0.1335090909,0.0905569282,0.0905569282,0.0000366279,0.0000366279,415,415 +U_AL_240,underground,al,al,,,240,240,0.125,0.125,0.0899296465,0.0899296465,0.0000369374,0.0000369374,428,428 +U_AL_288,underground,al,al,,,288,288,0.105,0.105,0.0877788677,0.0877788677,0.0000380397,0.0000380397,474,474 +U_CU_19,underground,cu,cu,,,19,19,1.009,1.009,0.1330544178,0.1330544178,0.0000233629,0.0000233629,138,138 +U_CU_20,underground,cu,cu,,,20,20,0.962,0.962,0.1319453158,0.1319453158,0.0000235859,0.0000235859,142,142 +U_CU_22,underground,cu,cu,,,22,22,0.868,0.868,0.1299081697,0.1299081697,0.0000240066,0.0000240066,149,149 +U_CU_25,underground,cu,cu,,,25,25,0.727,0.727,0.1272251024,0.1272251024,0.0000245842,0.0000245842,161,161 +U_CU_28,underground,cu,cu,,,28,28,0.6661,0.6661,0.124894529,0.124894529,0.0000251089,0.0000251089,170,170 +U_CU_29,underground,cu,cu,,,29,29,0.6458,0.6458,0.1241821772,0.1241821772,0.0000252738,0.0000252738,173,173 +U_CU_33,underground,cu,cu,,,33,33,0.5646,0.5646,0.1215975746,0.1215975746,0.0000258907,0.0000258907,186,186 +U_CU_34,underground,cu,cu,,,34,34,0.5443,0.5443,0.1210090932,0.1210090932,0.0000260354,0.0000260354,189,189 +U_CU_37,underground,cu,cu,,,37,37,0.5057333333,0.5057333333,0.119360076,0.119360076,0.0000264496,0.0000264496,196,196 +U_CU_38,underground,cu,cu,,,38,38,0.4966,0.4966,0.1188454977,0.1188454977,0.0000265816,0.0000265816,199,199 +U_CU_40,underground,cu,cu,,,40,40,0.4783333333,0.4783333333,0.1178632261,0.1178632261,0.0000268372,0.0000268372,203,203 +U_CU_43,underground,cu,cu,,,43,43,0.4509333333,0.4509333333,0.116495047,0.116495047,0.0000272015,0.0000272015,210,210 +U_CU_48,underground,cu,cu,,,48,48,0.4052666667,0.4052666667,0.1144519385,0.1144519385,0.0000277643,0.0000277643,221,221 +U_CU_50,underground,cu,cu,,,50,50,0.387,0.387,0.113705448,0.113705448,0.0000279758,0.0000279758,225,225 +U_CU_54,underground,cu,cu,,,54,54,0.3632,0.3632,0.112315465,0.112315465,0.0000283783,0.0000283783,235,235 +U_CU_55,underground,cu,cu,,,55,55,0.35725,0.35725,0.1119874251,0.1119874251,0.000028475,0.000028475,238,238 +U_CU_59,underground,cu,cu,,,59,59,0.33345,0.33345,0.1107443314,0.1107443314,0.0000288474,0.0000288474,248,248 +U_CU_60,underground,cu,cu,,,60,60,0.3275,0.3275,0.1104495588,0.1104495588,0.0000289372,0.0000289372,250,250 +U_CU_69,underground,cu,cu,,,69,69,0.27395,0.27395,0.1080408311,0.1080408311,0.0000296921,0.0000296921,273,273 +U_CU_70,underground,cu,cu,,,70,70,0.268,0.268,0.1077971677,0.1077971677,0.0000297707,0.0000297707,276,276 +U_CU_74,underground,cu,cu,,,74,74,0.256,0.256,0.1068637229,0.1068637229,0.0000300755,0.0000300755,285,285 +U_CU_75,underground,cu,cu,,,75,75,0.253,0.253,0.1066400577,0.1066400577,0.0000301495,0.0000301495,287,287 +U_CU_79,underground,cu,cu,,,79,79,0.241,0.241,0.1057809122,0.1057809122,0.0000304371,0.0000304371,295,295 +U_CU_80,underground,cu,cu,,,80,80,0.238,0.238,0.1055745142,0.1055745142,0.000030507,0.000030507,298,298 +U_CU_90,underground,cu,cu,,,90,90,0.208,0.208,0.1036719918,0.1036719918,0.0000311668,0.0000311668,319,319 +U_CU_93,underground,cu,cu,,,93,93,0.199,0.199,0.1031520348,0.1031520348,0.0000313521,0.0000313521,326,326 +U_CU_95,underground,cu,cu,,,95,95,0.193,0.193,0.1028168921,0.1028168921,0.0000314727,0.0000314727,330,330 +U_CU_100,underground,cu,cu,,,100,100,0.185,0.185,0.1020162744,0.1020162744,0.0000317647,0.0000317647,339,339 +U_CU_116,underground,cu,cu,,,116,116,0.1594,0.1594,0.0997578116,0.0997578116,0.0000326182,0.0000326182,368,368 +U_CU_117,underground,cu,cu,,,117,117,0.1578,0.1578,0.0996298374,0.0996298374,0.000032668,0.000032668,370,370 +U_CU_120,underground,cu,cu,,,120,120,0.153,0.153,0.0992540572,0.0992540572,0.0000328149,0.0000328149,375,375 +U_CU_147,underground,cu,cu,,,147,147,0.1269,0.1269,0.0963323591,0.0963323591,0.0000340041,0.0000340041,416,416 +U_CU_148,underground,cu,cu,,,148,148,0.1259333333,0.1259333333,0.0962375209,0.0962375209,0.0000340441,0.0000340441,417,417 +U_CU_150,underground,cu,cu,,,150,150,0.124,0.124,0.0960502777,0.0960502777,0.0000341234,0.0000341234,420,420 +U_CU_228,underground,cu,cu,,,228,228,0.0826272727,0.0826272727,0.0905569282,0.0905569282,0.0000366279,0.0000366279,533,533 +U_CU_240,underground,cu,cu,,,240,240,0.0775,0.0775,0.0899296465,0.0899296465,0.0000369374,0.0000369374,549,549 +U_CU_288,underground,cu,cu,,,288,288,0.0651,0.0651,0.0877788677,0.0877788677,0.0000380397,0.0000380397,605,605 +U_AM_19,underground,am,am,,,19,19,1.9444133333,1.9444133333,0.1330544178,0.1330544178,0.0000233629,0.0000233629,107,107 +U_AM_20,underground,am,am,,,20,20,1.8527444444,1.8527444444,0.1319453158,0.1319453158,0.0000235859,0.0000235859,110,110 +U_AM_22,underground,am,am,,,22,22,1.6694066667,1.6694066667,0.1299081697,0.1299081697,0.0000240066,0.0000240066,116,116 +U_AM_25,underground,am,am,,,25,25,1.3944,1.3944,0.1272251024,0.1272251024,0.0000245842,0.0000245842,125,125 +U_AM_28,underground,am,am,,,28,28,1.2786648,1.2786648,0.124894529,0.124894529,0.0000251089,0.0000251089,132,132 +U_AM_29,underground,am,am,,,29,29,1.2400864,1.2400864,0.1241821772,0.1241821772,0.0000252738,0.0000252738,135,135 +U_AM_33,underground,am,am,,,33,33,1.0857728,1.0857728,0.1215975746,0.1215975746,0.0000258907,0.0000258907,144,144 +U_AM_34,underground,am,am,,,34,34,1.0471944,1.0471944,0.1210090932,0.1210090932,0.0000260354,0.0000260354,147,147 +U_AM_37,underground,am,am,,,37,37,0.9734461333,0.9734461333,0.119360076,0.119360076,0.0000264496,0.0000264496,152,152 +U_AM_38,underground,am,am,,,38,38,0.9558612,0.9558612,0.1188454977,0.1188454977,0.0000265816,0.0000265816,154,154 +U_AM_40,underground,am,am,,,40,40,0.9206913333,0.9206913333,0.1178632261,0.1178632261,0.0000268372,0.0000268372,158,158 +U_AM_43,underground,am,am,,,43,43,0.8679365333,0.8679365333,0.116495047,0.116495047,0.0000272015,0.0000272015,163,163 +U_AM_48,underground,am,am,,,48,48,0.7800118667,0.7800118667,0.1144519385,0.1144519385,0.0000277643,0.0000277643,172,172 +U_AM_50,underground,am,am,,,50,50,0.744842,0.744842,0.113705448,0.113705448,0.0000279758,0.0000279758,175,175 +U_AM_54,underground,am,am,,,54,54,0.6988268,0.6988268,0.112315465,0.112315465,0.0000283783,0.0000283783,183,183 +U_AM_55,underground,am,am,,,55,55,0.687323,0.687323,0.1119874251,0.1119874251,0.000028475,0.000028475,185,185 +U_AM_59,underground,am,am,,,59,59,0.6413078,0.6413078,0.1107443314,0.1107443314,0.0000288474,0.0000288474,193,193 +U_AM_60,underground,am,am,,,60,60,0.629804,0.629804,0.1104495588,0.1104495588,0.0000289372,0.0000289372,194,194 +U_AM_69,underground,am,am,,,69,69,0.5262698,0.5262698,0.1080408311,0.1080408311,0.0000296921,0.0000296921,212,212 +U_AM_70,underground,am,am,,,70,70,0.514766,0.514766,0.1077971677,0.1077971677,0.0000297707,0.0000297707,214,214 +U_AM_74,underground,am,am,,,74,74,0.49189784,0.49189784,0.1068637229,0.1068637229,0.0000300755,0.0000300755,220,220 +U_AM_75,underground,am,am,,,75,75,0.4861808,0.4861808,0.1066400577,0.1066400577,0.0000301495,0.0000301495,222,222 +U_AM_79,underground,am,am,,,79,79,0.46331264,0.46331264,0.1057809122,0.1057809122,0.0000304371,0.0000304371,228,228 +U_AM_80,underground,am,am,,,80,80,0.4575956,0.4575956,0.1055745142,0.1055745142,0.000030507,0.000030507,229,229 +U_AM_90,underground,am,am,,,90,90,0.4004252,0.4004252,0.1036719918,0.1036719918,0.0000311668,0.0000311668,244,244 +U_AM_93,underground,am,am,,,93,93,0.38327408,0.38327408,0.1031520348,0.1031520348,0.0000313521,0.0000313521,249,249 +U_AM_95,underground,am,am,,,95,95,0.37184,0.37184,0.1028168921,0.1028168921,0.0000314727,0.0000314727,252,252 +U_AM_100,underground,am,am,,,100,100,0.3562692,0.3562692,0.1020162744,0.1020162744,0.0000317647,0.0000317647,260,260 +U_AM_116,underground,am,am,,,116,116,0.30644264,0.30644264,0.0997578116,0.0997578116,0.0000326182,0.0000326182,285,285 +U_AM_117,underground,am,am,,,117,117,0.30332848,0.30332848,0.0996298374,0.0996298374,0.000032668,0.000032668,286,286 +U_AM_120,underground,am,am,,,120,120,0.293986,0.293986,0.0992540572,0.0992540572,0.0000328149,0.0000328149,291,291 +U_AM_147,underground,am,am,,,147,147,0.2448334,0.2448334,0.0963323591,0.0963323591,0.0000340041,0.0000340041,322,322 +U_AM_148,underground,am,am,,,148,148,0.2430129333,0.2430129333,0.0962375209,0.0962375209,0.0000340441,0.0000340441,323,323 +U_AM_150,underground,am,am,,,150,150,0.239372,0.239372,0.0960502777,0.0960502777,0.0000341234,0.0000341234,325,325 +U_AM_228,underground,am,am,,,228,228,0.1551375636,0.1551375636,0.0905569282,0.0905569282,0.0000366279,0.0000366279,415,415 +U_AM_240,underground,am,am,,,240,240,0.14525,0.14525,0.0899296465,0.0899296465,0.0000369374,0.0000369374,428,428 +U_AM_288,underground,am,am,,,288,288,0.12201,0.12201,0.0877788677,0.0877788677,0.0000380397,0.0000380397,474,474 +T_AL_12,twisted,al,al,,,12,12,2.69,2.69,0.1433737819,0.1433737819,0.0000214745,0.0000214745,64,64 +T_AL_13,twisted,al,al,,,13,13,2.495,2.495,0.1415282478,0.1415282478,0.0000217895,0.0000217895,68,68 +T_AL_14,twisted,al,al,,,14,14,2.3,2.3,0.1398372258,0.1398372258,0.0000220863,0.0000220863,71,71 +T_AL_19,twisted,al,al,,,19,19,1.6733333333,1.6733333333,0.1330544178,0.1330544178,0.0000233629,0.0000233629,84,84 +T_AL_20,twisted,al,al,,,20,20,1.5944444444,1.5944444444,0.1319453158,0.1319453158,0.0000235859,0.0000235859,86,86 +T_AL_22,twisted,al,al,,,22,22,1.4366666667,1.4366666667,0.1299081697,0.1299081697,0.0000240066,0.0000240066,90,90 +T_AL_25,twisted,al,al,,,25,25,1.2,1.2,0.1272251024,0.1272251024,0.0000245842,0.0000245842,97,97 +T_AL_28,twisted,al,al,,,28,28,1.1004,1.1004,0.124894529,0.124894529,0.0000251089,0.0000251089,104,104 +T_AL_29,twisted,al,al,,,29,29,1.0672,1.0672,0.1241821772,0.1241821772,0.0000252738,0.0000252738,106,106 +T_AL_33,twisted,al,al,,,33,33,0.9344,0.9344,0.1215975746,0.1215975746,0.0000258907,0.0000258907,115,115 +T_AL_34,twisted,al,al,,,34,34,0.9012,0.9012,0.1210090932,0.1210090932,0.0000260354,0.0000260354,118,118 +T_AL_37,twisted,al,al,,,37,37,0.8377333333,0.8377333333,0.119360076,0.119360076,0.0000264496,0.0000264496,123,123 +T_AL_38,twisted,al,al,,,38,38,0.8226,0.8226,0.1188454977,0.1188454977,0.0000265816,0.0000265816,125,125 +T_AL_40,twisted,al,al,,,40,40,0.7923333333,0.7923333333,0.1178632261,0.1178632261,0.0000268372,0.0000268372,129,129 +T_AL_43,twisted,al,al,,,43,43,0.7469333333,0.7469333333,0.116495047,0.116495047,0.0000272015,0.0000272015,134,134 +T_AL_48,twisted,al,al,,,48,48,0.6712666667,0.6712666667,0.1144519385,0.1144519385,0.0000277643,0.0000277643,143,143 +T_AL_50,twisted,al,al,,,50,50,0.641,0.641,0.113705448,0.113705448,0.0000279758,0.0000279758,146,146 +T_AL_54,twisted,al,al,,,54,54,0.6014,0.6014,0.112315465,0.112315465,0.0000283783,0.0000283783,154,154 +T_AL_55,twisted,al,al,,,55,55,0.5915,0.5915,0.1119874251,0.1119874251,0.000028475,0.000028475,156,156 +T_AL_59,twisted,al,al,,,59,59,0.5519,0.5519,0.1107443314,0.1107443314,0.0000288474,0.0000288474,164,164 +T_AL_60,twisted,al,al,,,60,60,0.542,0.542,0.1104495588,0.1104495588,0.0000289372,0.0000289372,166,166 +T_AL_69,twisted,al,al,,,69,69,0.4529,0.4529,0.1080408311,0.1080408311,0.0000296921,0.0000296921,185,185 +T_AL_70,twisted,al,al,,,70,70,0.443,0.443,0.1077971677,0.1077971677,0.0000297707,0.0000297707,187,187 +T_AL_74,twisted,al,al,,,74,74,0.42332,0.42332,0.1068637229,0.1068637229,0.0000300755,0.0000300755,193,193 +T_AL_75,twisted,al,al,,,75,75,0.4184,0.4184,0.1066400577,0.1066400577,0.0000301495,0.0000301495,195,195 +T_AL_79,twisted,al,al,,,79,79,0.39872,0.39872,0.1057809122,0.1057809122,0.0000304371,0.0000304371,201,201 +T_AL_80,twisted,al,al,,,80,80,0.3938,0.3938,0.1055745142,0.1055745142,0.000030507,0.000030507,203,203 +T_AL_90,twisted,al,al,,,90,90,0.3446,0.3446,0.1036719918,0.1036719918,0.0000311668,0.0000311668,219,219 +T_AL_93,twisted,al,al,,,93,93,0.32984,0.32984,0.1031520348,0.1031520348,0.0000313521,0.0000313521,224,224 +T_AL_95,twisted,al,al,,,95,95,0.32,0.32,0.1028168921,0.1028168921,0.0000314727,0.0000314727,227,227 +T_AL_100,twisted,al,al,,,100,100,0.3066,0.3066,0.1020162744,0.1020162744,0.0000317647,0.0000317647,234,234 +T_AL_116,twisted,al,al,,,116,116,0.26372,0.26372,0.0997578116,0.0997578116,0.0000326182,0.0000326182,257,257 +T_AL_117,twisted,al,al,,,117,117,0.26104,0.26104,0.0996298374,0.0996298374,0.000032668,0.000032668,259,259 +T_AL_120,twisted,al,al,,,120,120,0.253,0.253,0.0992540572,0.0992540572,0.0000328149,0.0000328149,263,263 +T_AL_147,twisted,al,al,,,147,147,0.2107,0.2107,0.0963323591,0.0963323591,0.0000340041,0.0000340041,300,300 +T_AL_148,twisted,al,al,,,148,148,0.2091333333,0.2091333333,0.0962375209,0.0962375209,0.0000340441,0.0000340441,301,301 +T_AL_150,twisted,al,al,,,150,150,0.206,0.206,0.0960502777,0.0960502777,0.0000341234,0.0000341234,304,304 +T_AL_228,twisted,al,al,,,228,228,0.1335090909,0.1335090909,0.0905569282,0.0905569282,0.0000366279,0.0000366279,395,395 +T_AL_240,twisted,al,al,,,240,240,0.125,0.125,0.0899296465,0.0899296465,0.0000369374,0.0000369374,409,409 +T_AL_288,twisted,al,al,,,288,288,0.105,0.105,0.0877788677,0.0877788677,0.0000380397,0.0000380397,459,459 +T_CU_3,twisted,cu,cu,,,3,3,6.4766666667,6.4766666667,0.1780965781,0.1780965781,0.0000168827,0.0000168827,35,35 +T_CU_7,twisted,cu,cu,,,7,7,2.7675,2.7675,0.1562894945,0.1562894945,0.0000195015,0.0000195015,59,59 +T_CU_12,twisted,cu,cu,,,12,12,1.6033333333,1.6033333333,0.1433737819,0.1433737819,0.0000214745,0.0000214745,83,83 +T_CU_13,twisted,cu,cu,,,13,13,1.49,1.49,0.1415282478,0.1415282478,0.0000217895,0.0000217895,88,88 +T_CU_14,twisted,cu,cu,,,14,14,1.3766666667,1.3766666667,0.1398372258,0.1398372258,0.0000220863,0.0000220863,92,92 +T_CU_19,twisted,cu,cu,,,19,19,1.009,1.009,0.1330544178,0.1330544178,0.0000233629,0.0000233629,109,109 +T_CU_20,twisted,cu,cu,,,20,20,0.962,0.962,0.1319453158,0.1319453158,0.0000235859,0.0000235859,112,112 +T_CU_22,twisted,cu,cu,,,22,22,0.868,0.868,0.1299081697,0.1299081697,0.0000240066,0.0000240066,118,118 +T_CU_25,twisted,cu,cu,,,25,25,0.727,0.727,0.1272251024,0.1272251024,0.0000245842,0.0000245842,127,127 +T_CU_28,twisted,cu,cu,,,28,28,0.6661,0.6661,0.124894529,0.124894529,0.0000251089,0.0000251089,136,136 +T_CU_29,twisted,cu,cu,,,29,29,0.6458,0.6458,0.1241821772,0.1241821772,0.0000252738,0.0000252738,139,139 +T_CU_33,twisted,cu,cu,,,33,33,0.5646,0.5646,0.1215975746,0.1215975746,0.0000258907,0.0000258907,152,152 +T_CU_34,twisted,cu,cu,,,34,34,0.5443,0.5443,0.1210090932,0.1210090932,0.0000260354,0.0000260354,155,155 +T_CU_37,twisted,cu,cu,,,37,37,0.5057333333,0.5057333333,0.119360076,0.119360076,0.0000264496,0.0000264496,163,163 +T_CU_38,twisted,cu,cu,,,38,38,0.4966,0.4966,0.1188454977,0.1188454977,0.0000265816,0.0000265816,165,165 +T_CU_40,twisted,cu,cu,,,40,40,0.4783333333,0.4783333333,0.1178632261,0.1178632261,0.0000268372,0.0000268372,169,169 +T_CU_43,twisted,cu,cu,,,43,43,0.4509333333,0.4509333333,0.116495047,0.116495047,0.0000272015,0.0000272015,176,176 +T_CU_48,twisted,cu,cu,,,48,48,0.4052666667,0.4052666667,0.1144519385,0.1144519385,0.0000277643,0.0000277643,187,187 +T_CU_50,twisted,cu,cu,,,50,50,0.387,0.387,0.113705448,0.113705448,0.0000279758,0.0000279758,192,192 +T_CU_54,twisted,cu,cu,,,54,54,0.3632,0.3632,0.112315465,0.112315465,0.0000283783,0.0000283783,203,203 +T_CU_55,twisted,cu,cu,,,55,55,0.35725,0.35725,0.1119874251,0.1119874251,0.000028475,0.000028475,206,206 +T_CU_59,twisted,cu,cu,,,59,59,0.33345,0.33345,0.1107443314,0.1107443314,0.0000288474,0.0000288474,216,216 +T_CU_60,twisted,cu,cu,,,60,60,0.3275,0.3275,0.1104495588,0.1104495588,0.0000289372,0.0000289372,219,219 +T_CU_69,twisted,cu,cu,,,69,69,0.27395,0.27395,0.1080408311,0.1080408311,0.0000296921,0.0000296921,243,243 +T_CU_70,twisted,cu,cu,,,70,70,0.268,0.268,0.1077971677,0.1077971677,0.0000297707,0.0000297707,246,246 +T_CU_74,twisted,cu,cu,,,74,74,0.256,0.256,0.1068637229,0.1068637229,0.0000300755,0.0000300755,254,254 +T_CU_75,twisted,cu,cu,,,75,75,0.253,0.253,0.1066400577,0.1066400577,0.0000301495,0.0000301495,256,256 +T_CU_79,twisted,cu,cu,,,79,79,0.241,0.241,0.1057809122,0.1057809122,0.0000304371,0.0000304371,265,265 +T_CU_80,twisted,cu,cu,,,80,80,0.238,0.238,0.1055745142,0.1055745142,0.000030507,0.000030507,267,267 +T_CU_90,twisted,cu,cu,,,90,90,0.208,0.208,0.1036719918,0.1036719918,0.0000311668,0.0000311668,288,288 +T_CU_93,twisted,cu,cu,,,93,93,0.199,0.199,0.1031520348,0.1031520348,0.0000313521,0.0000313521,294,294 +T_CU_95,twisted,cu,cu,,,95,95,0.193,0.193,0.1028168921,0.1028168921,0.0000314727,0.0000314727,298,298 +T_CU_100,twisted,cu,cu,,,100,100,0.185,0.185,0.1020162744,0.1020162744,0.0000317647,0.0000317647,308,308 +T_CU_116,twisted,cu,cu,,,116,116,0.1594,0.1594,0.0997578116,0.0997578116,0.0000326182,0.0000326182,338,338 +T_CU_117,twisted,cu,cu,,,117,117,0.1578,0.1578,0.0996298374,0.0996298374,0.000032668,0.000032668,340,340 +T_CU_120,twisted,cu,cu,,,120,120,0.153,0.153,0.0992540572,0.0992540572,0.0000328149,0.0000328149,346,346 +T_CU_147,twisted,cu,cu,,,147,147,0.1269,0.1269,0.0963323591,0.0963323591,0.0000340041,0.0000340041,394,394 +T_CU_148,twisted,cu,cu,,,148,148,0.1259333333,0.1259333333,0.0962375209,0.0962375209,0.0000340441,0.0000340441,395,395 +T_CU_150,twisted,cu,cu,,,150,150,0.124,0.124,0.0960502777,0.0960502777,0.0000341234,0.0000341234,399,399 +T_CU_228,twisted,cu,cu,,,228,228,0.0826272727,0.0826272727,0.0905569282,0.0905569282,0.0000366279,0.0000366279,520,520 +T_CU_240,twisted,cu,cu,,,240,240,0.0775,0.0775,0.0899296465,0.0899296465,0.0000369374,0.0000369374,538,538 +T_CU_288,twisted,cu,cu,,,288,288,0.0651,0.0651,0.0877788677,0.0877788677,0.0000380397,0.0000380397,604,604 +T_AM_12,twisted,am,am,,,12,12,3.12578,3.12578,0.1433737819,0.1433737819,0.0000214745,0.0000214745,64,64 +T_AM_13,twisted,am,am,,,13,13,2.89919,2.89919,0.1415282478,0.1415282478,0.0000217895,0.0000217895,68,68 +T_AM_14,twisted,am,am,,,14,14,2.6726,2.6726,0.1398372258,0.1398372258,0.0000220863,0.0000220863,71,71 +T_AM_19,twisted,am,am,,,19,19,1.9444133333,1.9444133333,0.1330544178,0.1330544178,0.0000233629,0.0000233629,84,84 +T_AM_20,twisted,am,am,,,20,20,1.8527444444,1.8527444444,0.1319453158,0.1319453158,0.0000235859,0.0000235859,86,86 +T_AM_22,twisted,am,am,,,22,22,1.6694066667,1.6694066667,0.1299081697,0.1299081697,0.0000240066,0.0000240066,90,90 +T_AM_25,twisted,am,am,,,25,25,1.3944,1.3944,0.1272251024,0.1272251024,0.0000245842,0.0000245842,97,97 +T_AM_28,twisted,am,am,,,28,28,1.2786648,1.2786648,0.124894529,0.124894529,0.0000251089,0.0000251089,104,104 +T_AM_29,twisted,am,am,,,29,29,1.2400864,1.2400864,0.1241821772,0.1241821772,0.0000252738,0.0000252738,106,106 +T_AM_33,twisted,am,am,,,33,33,1.0857728,1.0857728,0.1215975746,0.1215975746,0.0000258907,0.0000258907,115,115 +T_AM_34,twisted,am,am,,,34,34,1.0471944,1.0471944,0.1210090932,0.1210090932,0.0000260354,0.0000260354,118,118 +T_AM_37,twisted,am,am,,,37,37,0.9734461333,0.9734461333,0.119360076,0.119360076,0.0000264496,0.0000264496,123,123 +T_AM_38,twisted,am,am,,,38,38,0.9558612,0.9558612,0.1188454977,0.1188454977,0.0000265816,0.0000265816,125,125 +T_AM_40,twisted,am,am,,,40,40,0.9206913333,0.9206913333,0.1178632261,0.1178632261,0.0000268372,0.0000268372,129,129 +T_AM_43,twisted,am,am,,,43,43,0.8679365333,0.8679365333,0.116495047,0.116495047,0.0000272015,0.0000272015,134,134 +T_AM_48,twisted,am,am,,,48,48,0.7800118667,0.7800118667,0.1144519385,0.1144519385,0.0000277643,0.0000277643,143,143 +T_AM_50,twisted,am,am,,,50,50,0.744842,0.744842,0.113705448,0.113705448,0.0000279758,0.0000279758,146,146 +T_AM_54,twisted,am,am,,,54,54,0.6988268,0.6988268,0.112315465,0.112315465,0.0000283783,0.0000283783,154,154 +T_AM_55,twisted,am,am,,,55,55,0.687323,0.687323,0.1119874251,0.1119874251,0.000028475,0.000028475,156,156 +T_AM_59,twisted,am,am,,,59,59,0.6413078,0.6413078,0.1107443314,0.1107443314,0.0000288474,0.0000288474,164,164 +T_AM_60,twisted,am,am,,,60,60,0.629804,0.629804,0.1104495588,0.1104495588,0.0000289372,0.0000289372,166,166 +T_AM_69,twisted,am,am,,,69,69,0.5262698,0.5262698,0.1080408311,0.1080408311,0.0000296921,0.0000296921,185,185 +T_AM_70,twisted,am,am,,,70,70,0.514766,0.514766,0.1077971677,0.1077971677,0.0000297707,0.0000297707,187,187 +T_AM_74,twisted,am,am,,,74,74,0.49189784,0.49189784,0.1068637229,0.1068637229,0.0000300755,0.0000300755,193,193 +T_AM_75,twisted,am,am,,,75,75,0.4861808,0.4861808,0.1066400577,0.1066400577,0.0000301495,0.0000301495,195,195 +T_AM_79,twisted,am,am,,,79,79,0.46331264,0.46331264,0.1057809122,0.1057809122,0.0000304371,0.0000304371,201,201 +T_AM_80,twisted,am,am,,,80,80,0.4575956,0.4575956,0.1055745142,0.1055745142,0.000030507,0.000030507,203,203 +T_AM_90,twisted,am,am,,,90,90,0.4004252,0.4004252,0.1036719918,0.1036719918,0.0000311668,0.0000311668,219,219 +T_AM_93,twisted,am,am,,,93,93,0.38327408,0.38327408,0.1031520348,0.1031520348,0.0000313521,0.0000313521,224,224 +T_AM_95,twisted,am,am,,,95,95,0.37184,0.37184,0.1028168921,0.1028168921,0.0000314727,0.0000314727,227,227 +T_AM_100,twisted,am,am,,,100,100,0.3562692,0.3562692,0.1020162744,0.1020162744,0.0000317647,0.0000317647,234,234 +T_AM_116,twisted,am,am,,,116,116,0.30644264,0.30644264,0.0997578116,0.0997578116,0.0000326182,0.0000326182,257,257 +T_AM_117,twisted,am,am,,,117,117,0.30332848,0.30332848,0.0996298374,0.0996298374,0.000032668,0.000032668,259,259 +T_AM_120,twisted,am,am,,,120,120,0.293986,0.293986,0.0992540572,0.0992540572,0.0000328149,0.0000328149,263,263 +T_AM_147,twisted,am,am,,,147,147,0.2448334,0.2448334,0.0963323591,0.0963323591,0.0000340041,0.0000340041,300,300 +T_AM_148,twisted,am,am,,,148,148,0.2430129333,0.2430129333,0.0962375209,0.0962375209,0.0000340441,0.0000340441,301,301 +T_AM_150,twisted,am,am,,,150,150,0.239372,0.239372,0.0960502777,0.0960502777,0.0000341234,0.0000341234,304,304 +T_AM_228,twisted,am,am,,,228,228,0.1551375636,0.1551375636,0.0905569282,0.0905569282,0.0000366279,0.0000366279,395,395 +T_AM_240,twisted,am,am,,,240,240,0.14525,0.14525,0.0899296465,0.0899296465,0.0000369374,0.0000369374,409,409 +T_AM_288,twisted,am,am,,,288,288,0.12201,0.12201,0.0877788677,0.0877788677,0.0000380397,0.0000380397,459,459 diff --git a/roseau/load_flow/data/networks/LVFeeder00939_Summer.json b/roseau/load_flow/data/networks/LVFeeder00939_Summer.json index eae6c825..2357bedd 100644 --- a/roseau/load_flow/data/networks/LVFeeder00939_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder00939_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.318375372111463, 48.64794139348595] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder03045", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.318375372111463, 48.64794139348595] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004111", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.319439380306016, 48.64935651484044] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004113", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.320149235966572, 48.64971306653889] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004116", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.320032407456181, 48.64986022542928] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004114", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.320930091968568, 48.64998504109587] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004115", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.321744301484108, 48.65025939158834] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004112", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.318850459390614, 48.65071019353541] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -113,6 +113,7 @@ "bus2": "LVBus004111", "length": 0.18165362031560994, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -137,6 +138,7 @@ "bus2": "LVBus004113", "length": 0.06563452239076538, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -156,6 +158,7 @@ "bus2": "LVBus004116", "length": 0.01849364446078355, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -175,6 +178,7 @@ "bus2": "LVBus004114", "length": 0.06500094076102345, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -195,6 +199,7 @@ "bus2": "LVBus004115", "length": 0.07029495574312403, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -218,6 +223,7 @@ "bus2": "LVBus004112", "length": 0.1640996914834165, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -248,7 +254,8 @@ "coordinates": [-1.318375372111463, 48.64794139348595] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -394,11 +401,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -430,11 +436,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -443,14 +448,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder00939_Winter.json b/roseau/load_flow/data/networks/LVFeeder00939_Winter.json index 45b4034c..3e0a6199 100644 --- a/roseau/load_flow/data/networks/LVFeeder00939_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder00939_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.318375372111463, 48.64794139348595] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder03045", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.318375372111463, 48.64794139348595] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004111", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.319439380306016, 48.64935651484044] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004113", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.320149235966572, 48.64971306653889] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004116", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.320032407456181, 48.64986022542928] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004114", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.320930091968568, 48.64998504109587] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004115", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.321744301484108, 48.65025939158834] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus004112", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.318850459390614, 48.65071019353541] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -113,6 +113,7 @@ "bus2": "LVBus004111", "length": 0.18165362031560994, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -137,6 +138,7 @@ "bus2": "LVBus004113", "length": 0.06563452239076538, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -156,6 +158,7 @@ "bus2": "LVBus004116", "length": 0.01849364446078355, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -175,6 +178,7 @@ "bus2": "LVBus004114", "length": 0.06500094076102345, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -195,6 +199,7 @@ "bus2": "LVBus004115", "length": 0.07029495574312403, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -218,6 +223,7 @@ "bus2": "LVBus004112", "length": 0.1640996914834165, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -248,7 +254,8 @@ "coordinates": [-1.318375372111463, 48.64794139348595] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -394,11 +401,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -430,11 +436,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -443,14 +448,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder02639_Summer.json b/roseau/load_flow/data/networks/LVFeeder02639_Summer.json index 5987eeaa..8742fcbe 100644 --- a/roseau/load_flow/data/networks/LVFeeder02639_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder02639_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.113772280167845, 49.11691122611608] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder13030", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.113772280167845, 49.11691122611608] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012331", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.114826112913037, 49.11661005366279] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012332", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.114823091410435, 49.116473223549235] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012333", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.114801264260203, 49.11643351455647] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012334", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.114635189864904, 49.11629134091336] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012335", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.114664902732631, 49.11644824054329] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -103,6 +103,7 @@ "bus2": "LVBus012331", "length": 0.08681523635053473, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -137,6 +138,7 @@ "bus2": "LVBus012332", "length": 0.02119335092120977, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -158,6 +160,7 @@ "bus2": "LVBus012333", "length": 0.004694786680023009, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -176,6 +179,7 @@ "bus2": "LVBus012334", "length": 0.024197289324129616, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -198,6 +202,7 @@ "bus2": "LVBus012335", "length": 0.011812025644293674, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -226,7 +231,8 @@ "coordinates": [-1.113772280167845, 49.11691122611608] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -356,11 +362,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -369,14 +374,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder02639_Winter.json b/roseau/load_flow/data/networks/LVFeeder02639_Winter.json index f53805ab..9c5a96d9 100644 --- a/roseau/load_flow/data/networks/LVFeeder02639_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder02639_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.113772280167845, 49.11691122611608] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder13030", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.113772280167845, 49.11691122611608] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012331", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.114826112913037, 49.11661005366279] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012332", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.114823091410435, 49.116473223549235] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012333", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.114801264260203, 49.11643351455647] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012334", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.114635189864904, 49.11629134091336] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus012335", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.114664902732631, 49.11644824054329] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -103,6 +103,7 @@ "bus2": "LVBus012331", "length": 0.08681523635053473, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -137,6 +138,7 @@ "bus2": "LVBus012332", "length": 0.02119335092120977, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -158,6 +160,7 @@ "bus2": "LVBus012333", "length": 0.004694786680023009, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -176,6 +179,7 @@ "bus2": "LVBus012334", "length": 0.024197289324129616, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -198,6 +202,7 @@ "bus2": "LVBus012335", "length": 0.011812025644293674, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -226,7 +231,8 @@ "coordinates": [-1.113772280167845, 49.11691122611608] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -356,11 +362,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -369,14 +374,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder04790_Summer.json b/roseau/load_flow/data/networks/LVFeeder04790_Summer.json index 0ada99b9..cfd24e62 100644 --- a/roseau/load_flow/data/networks/LVFeeder04790_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder04790_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.3413945147439499, 48.67575966750258] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder08786", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.3413945147439499, 48.67575966750258] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus021707", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.3405143892225866, 48.67378431146558] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus195690", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.341130004040592, 48.674217267249176] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -73,6 +73,7 @@ "bus2": "LVBus021707", "length": 0.2522152999932708, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -113,6 +114,7 @@ "bus2": "LVBus195690", "length": 0.07146262631265571, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -152,7 +154,8 @@ "coordinates": [-1.3413945147439499, 48.67575966750258] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -234,11 +237,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -247,14 +249,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder04790_Winter.json b/roseau/load_flow/data/networks/LVFeeder04790_Winter.json index 4e34d45d..5ac4ee28 100644 --- a/roseau/load_flow/data/networks/LVFeeder04790_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder04790_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.3413945147439499, 48.67575966750258] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder08786", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.3413945147439499, 48.67575966750258] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus021707", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.3405143892225866, 48.67378431146558] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus195690", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.341130004040592, 48.674217267249176] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -73,6 +73,7 @@ "bus2": "LVBus021707", "length": 0.2522152999932708, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -113,6 +114,7 @@ "bus2": "LVBus195690", "length": 0.07146262631265571, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -152,7 +154,8 @@ "coordinates": [-1.3413945147439499, 48.67575966750258] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -234,11 +237,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -247,14 +249,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder06713_Summer.json b/roseau/load_flow/data/networks/LVFeeder06713_Summer.json index e5778831..9c28e61e 100644 --- a/roseau/load_flow/data/networks/LVFeeder06713_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder06713_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.5670214765884245, 48.8376573517751] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder13539", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.5670214765884245, 48.8376573517751] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus030540", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.567394325443026, 48.83750072463013] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus030540", "length": 0.03236051183812635, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -90,7 +91,8 @@ "coordinates": [-1.5670214765884245, 48.8376573517751] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -156,11 +158,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -169,14 +170,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder06713_Winter.json b/roseau/load_flow/data/networks/LVFeeder06713_Winter.json index dd04e3cb..0a61dfdb 100644 --- a/roseau/load_flow/data/networks/LVFeeder06713_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder06713_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.5670214765884245, 48.8376573517751] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder13539", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.5670214765884245, 48.8376573517751] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus030540", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.567394325443026, 48.83750072463013] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus030540", "length": 0.03236051183812635, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -90,7 +91,8 @@ "coordinates": [-1.5670214765884245, 48.8376573517751] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -156,11 +158,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -169,14 +170,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder06926_Summer.json b/roseau/load_flow/data/networks/LVFeeder06926_Summer.json index d5736af6..5c7fcd1f 100644 --- a/roseau/load_flow/data/networks/LVFeeder06926_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder06926_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.58340589517331, 48.8394770872287] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder10892", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.58340589517331, 48.8394770872287] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031502", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.583679933728929, 48.83930896861669] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus031502", "length": 0.027721633689653087, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -91,7 +92,8 @@ "coordinates": [-1.58340589517331, 48.8394770872287] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -157,11 +159,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -170,14 +171,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder06926_Winter.json b/roseau/load_flow/data/networks/LVFeeder06926_Winter.json index 91233018..d23573e4 100644 --- a/roseau/load_flow/data/networks/LVFeeder06926_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder06926_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.58340589517331, 48.8394770872287] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder10892", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.58340589517331, 48.8394770872287] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031502", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.583679933728929, 48.83930896861669] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus031502", "length": 0.027721633689653087, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -91,7 +92,8 @@ "coordinates": [-1.58340589517331, 48.8394770872287] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -157,11 +159,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -170,14 +171,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder06975_Summer.json b/roseau/load_flow/data/networks/LVFeeder06975_Summer.json index f98cebfc..fd58897b 100644 --- a/roseau/load_flow/data/networks/LVFeeder06975_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder06975_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.486544817424025, 49.00306803282168] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder08323", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.486544817424025, 49.00306803282168] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031726", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.486513726909302, 49.0030409493912] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031727", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.4817331705175, 49.002397773977464] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031729", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.481550880201745, 49.00293744342641] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031728", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.481138923860346, 49.00208240563369] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -93,6 +93,7 @@ "bus2": "LVBus031726", "length": 0.004846721290393125, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -113,6 +114,7 @@ "bus2": "LVBus031727", "length": 0.362001412407552, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -141,6 +143,7 @@ "bus2": "LVBus031729", "length": 0.06352159420091105, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -164,6 +167,7 @@ "bus2": "LVBus031728", "length": 0.0601146076163281, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -194,7 +198,8 @@ "coordinates": [-1.486544817424025, 49.00306803282168] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -308,11 +313,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -321,14 +325,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder06975_Winter.json b/roseau/load_flow/data/networks/LVFeeder06975_Winter.json index 0a35e910..7f56fb37 100644 --- a/roseau/load_flow/data/networks/LVFeeder06975_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder06975_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.486544817424025, 49.00306803282168] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder08323", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.486544817424025, 49.00306803282168] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031726", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.486513726909302, 49.0030409493912] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031727", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.4817331705175, 49.002397773977464] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031729", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.481550880201745, 49.00293744342641] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus031728", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.481138923860346, 49.00208240563369] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -93,6 +93,7 @@ "bus2": "LVBus031726", "length": 0.004846721290393125, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -113,6 +114,7 @@ "bus2": "LVBus031727", "length": 0.362001412407552, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -141,6 +143,7 @@ "bus2": "LVBus031729", "length": 0.06352159420091105, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -164,6 +167,7 @@ "bus2": "LVBus031728", "length": 0.0601146076163281, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -194,7 +198,8 @@ "coordinates": [-1.486544817424025, 49.00306803282168] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -308,11 +313,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -321,14 +325,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder18498_Summer.json b/roseau/load_flow/data/networks/LVFeeder18498_Summer.json index 87e7cea4..fd809ffe 100644 --- a/roseau/load_flow/data/networks/LVFeeder18498_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder18498_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.5639210563669224, 48.79419143030816] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder00326", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.5639210563669224, 48.79419143030816] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085930", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.562476265032381, 48.7949240921263] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085931", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.562482623690557, 48.795387615140605] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085932", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.562475637105285, 48.795715629354305] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085933", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.56235443936651, 48.79575460167714] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085934", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.561584006278786, 48.79600280057835] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085944", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.561547474793642, 48.79604140703939] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085945", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.562051920070268, 48.796500031317706] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085935", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.560652963825319, 48.79627514893211] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085943", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.559813684997206, 48.794598913180515] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085936", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.559853608307476, 48.79666148121493] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085937", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.559217380050197, 48.797010785238264] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085938", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.559159203236932, 48.797069357860536] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085940", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.557950211467694, 48.797314977507305] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085939", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.559424458218843, 48.79767431513093] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085941", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.558830493044168, 48.796788342209] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085942", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.557940893282149, 48.7958232612289] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -213,6 +213,7 @@ "bus2": "LVBus085930", "length": 0.15739335503674393, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -246,6 +247,7 @@ "bus2": "LVBus085931", "length": 0.0515485496378037, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -266,6 +268,7 @@ "bus2": "LVBus085932", "length": 0.03888689850109125, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -289,6 +292,7 @@ "bus2": "LVBus085933", "length": 0.01200773888479161, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -310,6 +314,7 @@ "bus2": "LVBus085934", "length": 0.06501197017011255, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -333,6 +338,7 @@ "bus2": "LVBus085944", "length": 0.007980033327017745, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -354,6 +360,7 @@ "bus2": "LVBus085945", "length": 0.10861218547672713, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -379,6 +386,7 @@ "bus2": "LVBus085935", "length": 0.07727254510592567, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -403,6 +411,7 @@ "bus2": "LVBus085943", "length": 0.19803602647938606, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -426,6 +435,7 @@ "bus2": "LVBus085936", "length": 0.0754243117518209, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -452,6 +462,7 @@ "bus2": "LVBus085937", "length": 0.06308495235043682, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -476,6 +487,7 @@ "bus2": "LVBus085938", "length": 0.008620072155210545, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -496,6 +508,7 @@ "bus2": "LVBus085940", "length": 0.09560581989804982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -553,6 +566,7 @@ "bus2": "LVBus085939", "length": 0.07242780940632175, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -578,6 +592,7 @@ "bus2": "LVBus085941", "length": 0.046124792075994944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -600,6 +615,7 @@ "bus2": "LVBus085942", "length": 0.12579227015476419, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -628,7 +644,8 @@ "coordinates": [-1.5639210563669224, 48.79419143030816] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -934,11 +951,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -970,11 +986,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -983,14 +998,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder18498_Winter.json b/roseau/load_flow/data/networks/LVFeeder18498_Winter.json index 49b5680a..4fac30ec 100644 --- a/roseau/load_flow/data/networks/LVFeeder18498_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder18498_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.5639210563669224, 48.79419143030816] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder00326", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.5639210563669224, 48.79419143030816] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085930", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.562476265032381, 48.7949240921263] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085931", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.562482623690557, 48.795387615140605] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085932", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.562475637105285, 48.795715629354305] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085933", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.56235443936651, 48.79575460167714] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085934", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.561584006278786, 48.79600280057835] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085944", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.561547474793642, 48.79604140703939] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085945", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.562051920070268, 48.796500031317706] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085935", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.560652963825319, 48.79627514893211] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085943", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.559813684997206, 48.794598913180515] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085936", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.559853608307476, 48.79666148121493] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085937", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.559217380050197, 48.797010785238264] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085938", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.559159203236932, 48.797069357860536] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085940", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.557950211467694, 48.797314977507305] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085939", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.559424458218843, 48.79767431513093] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085941", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.558830493044168, 48.796788342209] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus085942", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.557940893282149, 48.7958232612289] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -213,6 +213,7 @@ "bus2": "LVBus085930", "length": 0.15739335503674393, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -246,6 +247,7 @@ "bus2": "LVBus085931", "length": 0.0515485496378037, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -266,6 +268,7 @@ "bus2": "LVBus085932", "length": 0.03888689850109125, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -289,6 +292,7 @@ "bus2": "LVBus085933", "length": 0.01200773888479161, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -310,6 +314,7 @@ "bus2": "LVBus085934", "length": 0.06501197017011255, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -333,6 +338,7 @@ "bus2": "LVBus085944", "length": 0.007980033327017745, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -354,6 +360,7 @@ "bus2": "LVBus085945", "length": 0.10861218547672713, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -379,6 +386,7 @@ "bus2": "LVBus085935", "length": 0.07727254510592567, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -403,6 +411,7 @@ "bus2": "LVBus085943", "length": 0.19803602647938606, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -426,6 +435,7 @@ "bus2": "LVBus085936", "length": 0.0754243117518209, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -452,6 +462,7 @@ "bus2": "LVBus085937", "length": 0.06308495235043682, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -476,6 +487,7 @@ "bus2": "LVBus085938", "length": 0.008620072155210545, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -496,6 +508,7 @@ "bus2": "LVBus085940", "length": 0.09560581989804982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -553,6 +566,7 @@ "bus2": "LVBus085939", "length": 0.07242780940632175, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -578,6 +592,7 @@ "bus2": "LVBus085941", "length": 0.046124792075994944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -600,6 +615,7 @@ "bus2": "LVBus085942", "length": 0.12579227015476419, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -628,7 +644,8 @@ "coordinates": [-1.5639210563669224, 48.79419143030816] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -934,11 +951,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -970,11 +986,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -983,14 +998,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder18769_Summer.json b/roseau/load_flow/data/networks/LVFeeder18769_Summer.json index a29ca3b7..0559faeb 100644 --- a/roseau/load_flow/data/networks/LVFeeder18769_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder18769_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.1327275629390434, 49.16774480064011] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder12730", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.1327275629390434, 49.16774480064011] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087076", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.133194683772453, 49.167570340123746] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087078", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.132412649513897, 49.16674157666] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087079", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.132234747056438, 49.16694500576106] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087080", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.132061025225172, 49.166463131093245] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087077", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.133319188207094, 49.167685073690194] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -103,6 +103,7 @@ "bus2": "LVBus087076", "length": 0.04187235159546076, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -125,6 +126,7 @@ "bus2": "LVBus087078", "length": 0.10847194755352463, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -145,6 +147,7 @@ "bus2": "LVBus087079", "length": 0.02607998376353147, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -164,6 +167,7 @@ "bus2": "LVBus087080", "length": 0.04020726221453102, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -185,6 +189,7 @@ "bus2": "LVBus087077", "length": 0.01566142289245769, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -211,7 +216,8 @@ "coordinates": [-1.1327275629390434, 49.16774480064011] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -341,11 +347,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -377,11 +382,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -390,14 +394,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder18769_Winter.json b/roseau/load_flow/data/networks/LVFeeder18769_Winter.json index 825d200e..fdfc624e 100644 --- a/roseau/load_flow/data/networks/LVFeeder18769_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder18769_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.1327275629390434, 49.16774480064011] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder12730", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.1327275629390434, 49.16774480064011] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087076", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.133194683772453, 49.167570340123746] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087078", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.132412649513897, 49.16674157666] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087079", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.132234747056438, 49.16694500576106] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087080", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.132061025225172, 49.166463131093245] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus087077", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.133319188207094, 49.167685073690194] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -103,6 +103,7 @@ "bus2": "LVBus087076", "length": 0.04187235159546076, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -125,6 +126,7 @@ "bus2": "LVBus087078", "length": 0.10847194755352463, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -145,6 +147,7 @@ "bus2": "LVBus087079", "length": 0.02607998376353147, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -164,6 +167,7 @@ "bus2": "LVBus087080", "length": 0.04020726221453102, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -185,6 +189,7 @@ "bus2": "LVBus087077", "length": 0.01566142289245769, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -211,7 +216,8 @@ "coordinates": [-1.1327275629390434, 49.16774480064011] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -341,11 +347,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -377,11 +382,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -390,14 +394,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder19558_Summer.json b/roseau/load_flow/data/networks/LVFeeder19558_Summer.json index ea27ecc6..ddd906e7 100644 --- a/roseau/load_flow/data/networks/LVFeeder19558_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder19558_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.356072102421145, 48.79586129055696] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder04060", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.356072102421145, 48.79586129055696] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus090801", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.355342592511366, 48.79547699965425] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus090801", "length": 0.07150052986665181, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -95,7 +96,8 @@ "coordinates": [-1.356072102421145, 48.79586129055696] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -161,11 +163,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -174,14 +175,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder19558_Winter.json b/roseau/load_flow/data/networks/LVFeeder19558_Winter.json index 03e1f65c..e7a39e95 100644 --- a/roseau/load_flow/data/networks/LVFeeder19558_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder19558_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.356072102421145, 48.79586129055696] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder04060", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.356072102421145, 48.79586129055696] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus090801", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.355342592511366, 48.79547699965425] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus090801", "length": 0.07150052986665181, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -95,7 +96,8 @@ "coordinates": [-1.356072102421145, 48.79586129055696] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -161,11 +163,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -174,14 +175,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder20256_Summer.json b/roseau/load_flow/data/networks/LVFeeder20256_Summer.json index c7526581..723e8e47 100644 --- a/roseau/load_flow/data/networks/LVFeeder20256_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder20256_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.198773190586607, 48.76230724776908] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder06233", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.198773190586607, 48.76230724776908] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094025", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.198670212653164, 48.762307290177716] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094029", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.199246174599321, 48.761582385193975] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094031", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.19778131755017, 48.76160462078426] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094030", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.199412792405016, 48.761244116844864] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094026", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.196631691792718, 48.76430293374081] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094027", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.196176665526038, 48.76383992052203] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094028", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.19584166933687, 48.76430044109762] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -123,6 +123,7 @@ "bus2": "LVBus094025", "length": 0.006305750351183943, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -142,6 +143,7 @@ "bus2": "LVBus094029", "length": 0.09393517180378773, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -162,6 +164,7 @@ "bus2": "LVBus094031", "length": 0.10772524267857121, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -180,6 +183,7 @@ "bus2": "LVBus094030", "length": 0.039561474934677016, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -199,6 +203,7 @@ "bus2": "LVBus094026", "length": 0.28751405369286326, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -223,6 +228,7 @@ "bus2": "LVBus094027", "length": 0.061401995852302334, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -242,6 +248,7 @@ "bus2": "LVBus094028", "length": 0.05808029688523051, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -267,7 +274,8 @@ "coordinates": [-1.198773190586607, 48.76230724776908] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -429,11 +437,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -442,14 +449,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder20256_Winter.json b/roseau/load_flow/data/networks/LVFeeder20256_Winter.json index 7b0094f1..4585853f 100644 --- a/roseau/load_flow/data/networks/LVFeeder20256_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder20256_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.198773190586607, 48.76230724776908] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder06233", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.198773190586607, 48.76230724776908] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094025", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.198670212653164, 48.762307290177716] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094029", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.199246174599321, 48.761582385193975] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094031", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.19778131755017, 48.76160462078426] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094030", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.199412792405016, 48.761244116844864] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094026", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.196631691792718, 48.76430293374081] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094027", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.196176665526038, 48.76383992052203] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus094028", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.19584166933687, 48.76430044109762] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -123,6 +123,7 @@ "bus2": "LVBus094025", "length": 0.006305750351183943, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -142,6 +143,7 @@ "bus2": "LVBus094029", "length": 0.09393517180378773, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -162,6 +164,7 @@ "bus2": "LVBus094031", "length": 0.10772524267857121, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -180,6 +183,7 @@ "bus2": "LVBus094030", "length": 0.039561474934677016, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -199,6 +203,7 @@ "bus2": "LVBus094026", "length": 0.28751405369286326, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -223,6 +228,7 @@ "bus2": "LVBus094027", "length": 0.061401995852302334, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -242,6 +248,7 @@ "bus2": "LVBus094028", "length": 0.05808029688523051, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -267,7 +274,8 @@ "coordinates": [-1.198773190586607, 48.76230724776908] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -429,11 +437,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -442,14 +449,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder23832_Summer.json b/roseau/load_flow/data/networks/LVFeeder23832_Summer.json index 4974cd39..5a3640f1 100644 --- a/roseau/load_flow/data/networks/LVFeeder23832_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder23832_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.40977863333772, 49.411627422261766] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder07524", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.40977863333772, 49.411627422261766] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus110873", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.406218859752376, 49.41236346910499] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus110873", "length": 0.2726431522482105, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -94,7 +95,8 @@ "coordinates": [-1.40977863333772, 49.411627422261766] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -160,11 +162,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -173,14 +174,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder23832_Winter.json b/roseau/load_flow/data/networks/LVFeeder23832_Winter.json index 340305a0..b8eb51af 100644 --- a/roseau/load_flow/data/networks/LVFeeder23832_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder23832_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.40977863333772, 49.411627422261766] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder07524", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.40977863333772, 49.411627422261766] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus110873", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.406218859752376, 49.41236346910499] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus110873", "length": 0.2726431522482105, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -94,7 +95,8 @@ "coordinates": [-1.40977863333772, 49.411627422261766] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -160,11 +162,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -173,14 +174,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder24400_Summer.json b/roseau/load_flow/data/networks/LVFeeder24400_Summer.json index 1488f81c..ac2a64c2 100644 --- a/roseau/load_flow/data/networks/LVFeeder24400_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder24400_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.455003968339352, 48.940400757428336] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder17777", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.455003968339352, 48.940400757428336] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus113443", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.452971862193451, 48.94089521617511] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus113444", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.452033590683014, 48.94042209226392] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -73,6 +73,7 @@ "bus2": "LVBus113443", "length": 0.15570295096319542, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -95,6 +96,7 @@ "bus2": "LVBus113444", "length": 0.08656266979024978, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -120,7 +122,8 @@ "coordinates": [-1.455003968339352, 48.940400757428336] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -202,11 +205,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -215,14 +217,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder24400_Winter.json b/roseau/load_flow/data/networks/LVFeeder24400_Winter.json index 79d2ae2e..237c51c9 100644 --- a/roseau/load_flow/data/networks/LVFeeder24400_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder24400_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.455003968339352, 48.940400757428336] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder17777", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.455003968339352, 48.940400757428336] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus113443", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.452971862193451, 48.94089521617511] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus113444", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.452033590683014, 48.94042209226392] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -73,6 +73,7 @@ "bus2": "LVBus113443", "length": 0.15570295096319542, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -95,6 +96,7 @@ "bus2": "LVBus113444", "length": 0.08656266979024978, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -120,7 +122,8 @@ "coordinates": [-1.455003968339352, 48.940400757428336] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -202,11 +205,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -215,14 +217,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder27429_Summer.json b/roseau/load_flow/data/networks/LVFeeder27429_Summer.json index 6f8a821a..bf8a213a 100644 --- a/roseau/load_flow/data/networks/LVFeeder27429_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder27429_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.763275481768985, 48.60297718339383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder01157", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.763275481768985, 48.60297718339383] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus127384", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.7634742960757851, 48.60299255811956] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus187572", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.763823658677378, 48.60305776103005] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus195737", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.763276537372726, 48.604304238644815] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186172", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.76161692546682, 48.60244671901419] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186173", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.761561617561471, 48.60247914514799] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186174", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-0.760257742058163, 48.602203698430706] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186175", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-0.761608195980402, 48.602420513668555] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186176", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-0.762572178265289, 48.60149259897884] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186177", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-0.763339776619962, 48.60077755334537] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -143,6 +143,7 @@ "bus2": "LVBus127384", "length": 0.013551760479693866, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -165,6 +166,7 @@ "bus2": "LVBus187572", "length": 0.02998363504572132, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -191,6 +193,7 @@ "bus2": "LVBus195737", "length": 0.16203866991098098, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -219,6 +222,7 @@ "bus2": "LVBus186172", "length": 0.16687032258739654, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -252,6 +256,7 @@ "bus2": "LVBus186173", "length": 0.007565816669528637, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -271,6 +276,7 @@ "bus2": "LVBus186174", "length": 0.10304715198115963, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -296,6 +302,7 @@ "bus2": "LVBus186175", "length": 0.0031663050478217317, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -315,6 +322,7 @@ "bus2": "LVBus186176", "length": 0.12653087931322696, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -336,6 +344,7 @@ "bus2": "LVBus186177", "length": 0.09796160126133627, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -363,7 +372,8 @@ "coordinates": [-0.763275481768985, 48.60297718339383] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -557,11 +567,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -593,11 +602,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -606,14 +614,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder27429_Winter.json b/roseau/load_flow/data/networks/LVFeeder27429_Winter.json index bb25c849..16256fa8 100644 --- a/roseau/load_flow/data/networks/LVFeeder27429_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder27429_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.763275481768985, 48.60297718339383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder01157", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.763275481768985, 48.60297718339383] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus127384", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.7634742960757851, 48.60299255811956] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus187572", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.763823658677378, 48.60305776103005] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus195737", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.763276537372726, 48.604304238644815] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186172", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.76161692546682, 48.60244671901419] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186173", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.761561617561471, 48.60247914514799] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186174", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-0.760257742058163, 48.602203698430706] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186175", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-0.761608195980402, 48.602420513668555] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186176", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-0.762572178265289, 48.60149259897884] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus186177", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-0.763339776619962, 48.60077755334537] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -143,6 +143,7 @@ "bus2": "LVBus127384", "length": 0.013551760479693866, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -165,6 +166,7 @@ "bus2": "LVBus187572", "length": 0.02998363504572132, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -191,6 +193,7 @@ "bus2": "LVBus195737", "length": 0.16203866991098098, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -219,6 +222,7 @@ "bus2": "LVBus186172", "length": 0.16687032258739654, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -252,6 +256,7 @@ "bus2": "LVBus186173", "length": 0.007565816669528637, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -271,6 +276,7 @@ "bus2": "LVBus186174", "length": 0.10304715198115963, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -296,6 +302,7 @@ "bus2": "LVBus186175", "length": 0.0031663050478217317, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -315,6 +322,7 @@ "bus2": "LVBus186176", "length": 0.12653087931322696, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -336,6 +344,7 @@ "bus2": "LVBus186177", "length": 0.09796160126133627, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -363,7 +372,8 @@ "coordinates": [-0.763275481768985, 48.60297718339383] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -557,11 +567,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -593,11 +602,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -606,14 +614,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder27681_Summer.json b/roseau/load_flow/data/networks/LVFeeder27681_Summer.json index d828d0c8..bf509333 100644 --- a/roseau/load_flow/data/networks/LVFeeder27681_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder27681_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.872844643374193, 49.325171742226196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder11757", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.872844643374193, 49.325171742226196] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus128601", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.872690668569252, 49.325398961209295] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus128601", "length": 0.03074722558197331, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -91,7 +92,8 @@ "coordinates": [-0.872844643374193, 49.325171742226196] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -157,11 +159,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -170,14 +171,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder27681_Winter.json b/roseau/load_flow/data/networks/LVFeeder27681_Winter.json index 6b9cabb9..11978580 100644 --- a/roseau/load_flow/data/networks/LVFeeder27681_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder27681_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.872844643374193, 49.325171742226196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder11757", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.872844643374193, 49.325171742226196] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus128601", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.872690668569252, 49.325398961209295] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus128601", "length": 0.03074722558197331, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -91,7 +92,8 @@ "coordinates": [-0.872844643374193, 49.325171742226196] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -157,11 +159,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -170,14 +171,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder30216_Summer.json b/roseau/load_flow/data/networks/LVFeeder30216_Summer.json index fb6b489b..2331612b 100644 --- a/roseau/load_flow/data/networks/LVFeeder30216_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder30216_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.22546628182438, 49.01938176375552] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder15088", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.22546628182438, 49.01938176375552] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140700", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.225935460180821, 49.018863637691915] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140702", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.222909448895307, 49.02051036142216] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140703", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.221086648382608, 49.02059680576484] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140704", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.220623536255886, 49.02039183220841] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140706", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.226435067526595, 49.01831548317052] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140701", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.224534711913636, 49.01646259384531] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140705", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.228920824707651, 49.020350305877685] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -123,6 +123,7 @@ "bus2": "LVBus140700", "length": 0.0641889524657676, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -142,6 +143,7 @@ "bus2": "LVBus140702", "length": 0.32117477810998835, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -163,6 +165,7 @@ "bus2": "LVBus140703", "length": 0.13366970645423365, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -183,6 +186,7 @@ "bus2": "LVBus140704", "length": 0.04680679364902962, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -207,6 +211,7 @@ "bus2": "LVBus140706", "length": 0.07107583387842016, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -226,6 +231,7 @@ "bus2": "LVBus140701", "length": 0.2860045677215042, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -245,6 +251,7 @@ "bus2": "LVBus140705", "length": 0.27389111538851374, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -270,7 +277,8 @@ "coordinates": [-1.22546628182438, 49.01938176375552] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -432,11 +440,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -468,11 +475,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -481,14 +487,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder30216_Winter.json b/roseau/load_flow/data/networks/LVFeeder30216_Winter.json index c99f7f34..ad10cfcf 100644 --- a/roseau/load_flow/data/networks/LVFeeder30216_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder30216_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.22546628182438, 49.01938176375552] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder15088", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.22546628182438, 49.01938176375552] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140700", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.225935460180821, 49.018863637691915] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140702", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.222909448895307, 49.02051036142216] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140703", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.221086648382608, 49.02059680576484] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140704", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.220623536255886, 49.02039183220841] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140706", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.226435067526595, 49.01831548317052] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140701", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.224534711913636, 49.01646259384531] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus140705", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.228920824707651, 49.020350305877685] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -123,6 +123,7 @@ "bus2": "LVBus140700", "length": 0.0641889524657676, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -142,6 +143,7 @@ "bus2": "LVBus140702", "length": 0.32117477810998835, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -163,6 +165,7 @@ "bus2": "LVBus140703", "length": 0.13366970645423365, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -183,6 +186,7 @@ "bus2": "LVBus140704", "length": 0.04680679364902962, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -207,6 +211,7 @@ "bus2": "LVBus140706", "length": 0.07107583387842016, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -226,6 +231,7 @@ "bus2": "LVBus140701", "length": 0.2860045677215042, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -245,6 +251,7 @@ "bus2": "LVBus140705", "length": 0.27389111538851374, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -270,7 +277,8 @@ "coordinates": [-1.22546628182438, 49.01938176375552] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -432,11 +440,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -468,11 +475,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -481,14 +487,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder31441_Summer.json b/roseau/load_flow/data/networks/LVFeeder31441_Summer.json index 4d2d57a2..1bae42c8 100644 --- a/roseau/load_flow/data/networks/LVFeeder31441_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder31441_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.3209120861294505, 49.410818512433636] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder08797", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.3209120861294505, 49.410818512433636] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus146616", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.319946143514134, 49.411317210522704] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus146617", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.320555614851936, 49.4120901502568] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -73,6 +73,7 @@ "bus2": "LVBus146616", "length": 0.09607140707710016, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -98,6 +99,7 @@ "bus2": "LVBus146617", "length": 0.10916949233215091, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -133,7 +135,8 @@ "coordinates": [-1.3209120861294505, 49.410818512433636] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -215,11 +218,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -228,14 +230,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder31441_Winter.json b/roseau/load_flow/data/networks/LVFeeder31441_Winter.json index 537b6fbe..c902d882 100644 --- a/roseau/load_flow/data/networks/LVFeeder31441_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder31441_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.3209120861294505, 49.410818512433636] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder08797", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.3209120861294505, 49.410818512433636] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus146616", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.319946143514134, 49.411317210522704] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus146617", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.320555614851936, 49.4120901502568] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -73,6 +73,7 @@ "bus2": "LVBus146616", "length": 0.09607140707710016, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -98,6 +99,7 @@ "bus2": "LVBus146617", "length": 0.10916949233215091, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -133,7 +135,8 @@ "coordinates": [-1.3209120861294505, 49.410818512433636] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -215,11 +218,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -228,14 +230,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder36284_Summer.json b/roseau/load_flow/data/networks/LVFeeder36284_Summer.json index 4da3c8aa..97515631 100644 --- a/roseau/load_flow/data/networks/LVFeeder36284_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder36284_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.55883404863677, 49.11337818748383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder03862", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.55883404863677, 49.11337818748383] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169496", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.558405805582989, 49.113418096217345] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169497", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.557269493950637, 49.11274982554477] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169498", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.562472292762036, 49.11401826802014] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -83,6 +83,7 @@ "bus2": "LVBus169496", "length": 0.02867407323220623, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -102,6 +103,7 @@ "bus2": "LVBus169497", "length": 0.11137940014481557, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -125,6 +127,7 @@ "bus2": "LVBus169498", "length": 0.3225822604299102, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -153,7 +156,8 @@ "coordinates": [-1.55883404863677, 49.11337818748383] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -251,11 +255,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -264,14 +267,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder36284_Winter.json b/roseau/load_flow/data/networks/LVFeeder36284_Winter.json index cb6dda96..8c5bb6b7 100644 --- a/roseau/load_flow/data/networks/LVFeeder36284_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder36284_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.55883404863677, 49.11337818748383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder03862", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.55883404863677, 49.11337818748383] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169496", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.558405805582989, 49.113418096217345] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169497", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.557269493950637, 49.11274982554477] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169498", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.562472292762036, 49.11401826802014] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -83,6 +83,7 @@ "bus2": "LVBus169496", "length": 0.02867407323220623, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -102,6 +103,7 @@ "bus2": "LVBus169497", "length": 0.11137940014481557, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -125,6 +127,7 @@ "bus2": "LVBus169498", "length": 0.3225822604299102, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -153,7 +156,8 @@ "coordinates": [-1.55883404863677, 49.11337818748383] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -251,11 +255,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -264,14 +267,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder36360_Summer.json b/roseau/load_flow/data/networks/LVFeeder36360_Summer.json index 92bfa0b2..86b0255e 100644 --- a/roseau/load_flow/data/networks/LVFeeder36360_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder36360_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.5931237327892096, 49.0456724037415] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder14716", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.5931237327892096, 49.0456724037415] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169862", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.593759159010116, 49.0462719064779] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169863", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.593861680273659, 49.046653053701206] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169868", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.594849255375854, 49.046306680920615] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169864", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.594364639974005, 49.04739706937517] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169867", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.593922235812207, 49.04782025881052] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169865", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.594721011508903, 49.04724435659555] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169866", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.594706660314081, 49.047929008246655] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -123,6 +123,7 @@ "bus2": "LVBus169862", "length": 0.08968070135743335, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -146,6 +147,7 @@ "bus2": "LVBus169863", "length": 0.04436724010618379, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -166,6 +168,7 @@ "bus2": "LVBus169868", "length": 0.08219148406259193, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -191,6 +194,7 @@ "bus2": "LVBus169864", "length": 0.09054384067800328, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -209,6 +213,7 @@ "bus2": "LVBus169867", "length": 0.08005243959261948, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -230,6 +235,7 @@ "bus2": "LVBus169865", "length": 0.031098546879261002, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -250,6 +256,7 @@ "bus2": "LVBus169866", "length": 0.06422966085250291, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -279,7 +286,8 @@ "coordinates": [-1.5931237327892096, 49.0456724037415] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -441,11 +449,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -477,11 +484,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -490,14 +496,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder36360_Winter.json b/roseau/load_flow/data/networks/LVFeeder36360_Winter.json index 0ecef3d5..7f7c302f 100644 --- a/roseau/load_flow/data/networks/LVFeeder36360_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder36360_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.5931237327892096, 49.0456724037415] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder14716", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.5931237327892096, 49.0456724037415] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169862", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.593759159010116, 49.0462719064779] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169863", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.593861680273659, 49.046653053701206] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169868", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.594849255375854, 49.046306680920615] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169864", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.594364639974005, 49.04739706937517] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169867", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.593922235812207, 49.04782025881052] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169865", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.594721011508903, 49.04724435659555] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus169866", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.594706660314081, 49.047929008246655] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -123,6 +123,7 @@ "bus2": "LVBus169862", "length": 0.08968070135743335, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -146,6 +147,7 @@ "bus2": "LVBus169863", "length": 0.04436724010618379, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -166,6 +168,7 @@ "bus2": "LVBus169868", "length": 0.08219148406259193, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -191,6 +194,7 @@ "bus2": "LVBus169864", "length": 0.09054384067800328, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -209,6 +213,7 @@ "bus2": "LVBus169867", "length": 0.08005243959261948, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -230,6 +235,7 @@ "bus2": "LVBus169865", "length": 0.031098546879261002, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -250,6 +256,7 @@ "bus2": "LVBus169866", "length": 0.06422966085250291, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -279,7 +286,8 @@ "coordinates": [-1.5931237327892096, 49.0456724037415] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -441,11 +449,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] }, { "id": "U_AL_150", @@ -477,11 +484,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -490,14 +496,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder37263_Summer.json b/roseau/load_flow/data/networks/LVFeeder37263_Summer.json index 7eb270f3..c07d77ad 100644 --- a/roseau/load_flow/data/networks/LVFeeder37263_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder37263_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.186472797718411, 48.48667576673907] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder17131", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.186472797718411, 48.48667576673907] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus173891", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.185774451606739, 48.48699078306235] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus173891", "length": 0.06318652813386802, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -97,7 +98,8 @@ "coordinates": [-1.186472797718411, 48.48667576673907] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -163,11 +165,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -176,14 +177,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder37263_Winter.json b/roseau/load_flow/data/networks/LVFeeder37263_Winter.json index 05cd17e9..5e1f12fc 100644 --- a/roseau/load_flow/data/networks/LVFeeder37263_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder37263_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.186472797718411, 48.48667576673907] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder17131", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.186472797718411, 48.48667576673907] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus173891", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.185774451606739, 48.48699078306235] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "LVBus173891", "length": 0.06318652813386802, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -97,7 +98,8 @@ "coordinates": [-1.186472797718411, 48.48667576673907] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -163,11 +165,10 @@ [-0.00018518179657458456, 4.85783749893247e-5, -0.00018518179657458597, 0.0009990656421805131] ] ], - "max_current": 325, + "ampacities": [325, 325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0, 150.0] } ], "transformers_params": [ @@ -176,14 +177,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder38211_Summer.json b/roseau/load_flow/data/networks/LVFeeder38211_Summer.json index 3e522059..1e89f68b 100644 --- a/roseau/load_flow/data/networks/LVFeeder38211_Summer.json +++ b/roseau/load_flow/data/networks/LVFeeder38211_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.737488811262479, 48.784238047637125] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder09219", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.737488811262479, 48.784238047637125] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178129", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.737233734966708, 48.78398320956787] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178131", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.737186105479101, 48.78490970733192] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178130", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.738168776655936, 48.78262866378785] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178132", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.736454496741027, 48.78358301932807] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -93,6 +93,7 @@ "bus2": "LVBus178129", "length": 0.03149676075784545, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -112,6 +113,7 @@ "bus2": "LVBus178131", "length": 0.13113446014467442, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -133,6 +135,7 @@ "bus2": "LVBus178130", "length": 0.17387433044121148, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -155,6 +158,7 @@ "bus2": "LVBus178132", "length": 0.07252441840882509, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -181,7 +185,8 @@ "coordinates": [-0.737488811262479, 48.784238047637125] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -295,11 +300,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -308,14 +312,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/LVFeeder38211_Winter.json b/roseau/load_flow/data/networks/LVFeeder38211_Winter.json index dd8fb591..e67fbb16 100644 --- a/roseau/load_flow/data/networks/LVFeeder38211_Winter.json +++ b/roseau/load_flow/data/networks/LVFeeder38211_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.737488811262479, 48.784238047637125] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLVFeeder09219", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.737488811262479, 48.784238047637125] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178129", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.737233734966708, 48.78398320956787] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178131", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.737186105479101, 48.78490970733192] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178130", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.738168776655936, 48.78262866378785] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 }, { "id": "LVBus178132", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.736454496741027, 48.78358301932807] }, - "min_voltage": 207, - "max_voltage": 253 + "nominal_voltage": 400, + "min_voltage_level": 0.9 } ], "lines": [ @@ -93,6 +93,7 @@ "bus2": "LVBus178129", "length": 0.03149676075784545, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -112,6 +113,7 @@ "bus2": "LVBus178131", "length": 0.13113446014467442, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -133,6 +135,7 @@ "bus2": "LVBus178130", "length": 0.17387433044121148, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -155,6 +158,7 @@ "bus2": "LVBus178132", "length": 0.07252441840882509, "params_id": "T_AL_70", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -181,7 +185,8 @@ "coordinates": [-0.737488811262479, 48.784238047637125] }, "tap": 1.0, - "params_id": "Dyn11_160kVA" + "params_id": "Dyn11_160kVA", + "max_loading": 1 } ], "switches": [], @@ -295,11 +300,10 @@ [-9.334047516122607e-6, -9.334047516122602e-6, -9.334294062818125e-6, 8.357992380628483e-5] ] ], - "max_current": 187, + "ampacities": [187, 187, 187, 187], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 70.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [70.0, 70.0, 70.0, 70.0] } ], "transformers_params": [ @@ -308,14 +312,13 @@ "sn": 160000.0, "uhv": 20000.0, "ulv": 400.0, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.014687500000000001, 0.037205877811845804], "ym": [3.8333333333333335e-7, -3.0426140077242796e-6], "i0": 0.023, "p0": 460.0, "psc": 2350.0, - "vsc": 0.04, - "max_power": 160000 + "vsc": 0.04 } ] } diff --git a/roseau/load_flow/data/networks/MVFeeder004_Summer.json b/roseau/load_flow/data/networks/MVFeeder004_Summer.json index 730ae47a..44d55a88 100644 --- a/roseau/load_flow/data/networks/MVFeeder004_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder004_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder01", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00510", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.599577737107229, 49.634401183142394] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06623", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.599941881499135, 49.634321490796964] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06622", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.604343039067938, 49.634071049044955] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06791", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.6044180896166784, 49.63411509195923] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06420", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.604779537742919, 49.63399184277234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06419", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.607163426438677, 49.63400527546459] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10651", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.607170711891764, 49.63407487083771] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06173", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.607244051623987, 49.63403704941576] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06172", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.608692850402576, 49.632993691313935] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10636", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6091089060821284, 49.63366901670905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07316", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.611308553027253, 49.63485085190276] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00019", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.612529753809362, 49.634610259256284] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00018", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.614801653845744, 49.63399813380452] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00017", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.617217939712126, 49.63421062905867] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00016", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.617660253013841, 49.634080010906125] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -193,6 +193,7 @@ "bus2": "MVBus00016", "length": 0.7671110958135496, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -223,6 +224,7 @@ "bus2": "MVLV00510", "length": 0.028431552474934698, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -243,6 +245,7 @@ "bus2": "MVBus06623", "length": 0.4045828520484129, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -265,6 +268,7 @@ "bus2": "MVBus06622", "length": 0.0072287890020037385, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -285,6 +289,7 @@ "bus2": "MVLV06791", "length": 0.042996571688172475, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -307,6 +312,7 @@ "bus2": "MVBus06420", "length": 0.1887462209863619, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -332,6 +338,7 @@ "bus2": "MVBus06419", "length": 0.007502925468738296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -351,6 +358,7 @@ "bus2": "MVLV10651", "length": 0.006506668513477937, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -370,6 +378,7 @@ "bus2": "MVBus06173", "length": 0.2673721926264447, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -395,6 +404,7 @@ "bus2": "MVBus06172", "length": 0.08263763272611883, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -415,6 +425,7 @@ "bus2": "MVLV10636", "length": 0.2616184568617092, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -439,6 +450,7 @@ "bus2": "MVLV07316", "length": 0.10691300055589305, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -459,6 +471,7 @@ "bus2": "MVBus00019", "length": 0.3045413703072708, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -484,6 +497,7 @@ "bus2": "MVBus00018", "length": 0.25557935300814777, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -506,6 +520,7 @@ "bus2": "MVBus00017", "length": 0.04292200346911987, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -696,11 +711,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder004_Winter.json b/roseau/load_flow/data/networks/MVFeeder004_Winter.json index 86090cfb..3afef297 100644 --- a/roseau/load_flow/data/networks/MVFeeder004_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder004_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder01", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00510", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.599577737107229, 49.634401183142394] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06623", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.599941881499135, 49.634321490796964] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06622", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.604343039067938, 49.634071049044955] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06791", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.6044180896166784, 49.63411509195923] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06420", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.604779537742919, 49.63399184277234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06419", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.607163426438677, 49.63400527546459] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10651", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.607170711891764, 49.63407487083771] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06173", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.607244051623987, 49.63403704941576] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06172", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.608692850402576, 49.632993691313935] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10636", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6091089060821284, 49.63366901670905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07316", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.611308553027253, 49.63485085190276] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00019", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.612529753809362, 49.634610259256284] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00018", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.614801653845744, 49.63399813380452] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00017", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.617217939712126, 49.63421062905867] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00016", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.617660253013841, 49.634080010906125] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -193,6 +193,7 @@ "bus2": "MVBus00016", "length": 0.7671110958135496, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -223,6 +224,7 @@ "bus2": "MVLV00510", "length": 0.028431552474934698, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -243,6 +245,7 @@ "bus2": "MVBus06623", "length": 0.4045828520484129, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -265,6 +268,7 @@ "bus2": "MVBus06622", "length": 0.0072287890020037385, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -285,6 +289,7 @@ "bus2": "MVLV06791", "length": 0.042996571688172475, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -307,6 +312,7 @@ "bus2": "MVBus06420", "length": 0.1887462209863619, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -332,6 +338,7 @@ "bus2": "MVBus06419", "length": 0.007502925468738296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -351,6 +358,7 @@ "bus2": "MVLV10651", "length": 0.006506668513477937, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -370,6 +378,7 @@ "bus2": "MVBus06173", "length": 0.2673721926264447, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -395,6 +404,7 @@ "bus2": "MVBus06172", "length": 0.08263763272611883, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -415,6 +425,7 @@ "bus2": "MVLV10636", "length": 0.2616184568617092, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -439,6 +450,7 @@ "bus2": "MVLV07316", "length": 0.10691300055589305, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -459,6 +471,7 @@ "bus2": "MVBus00019", "length": 0.3045413703072708, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -484,6 +497,7 @@ "bus2": "MVBus00018", "length": 0.25557935300814777, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -506,6 +520,7 @@ "bus2": "MVBus00017", "length": 0.04292200346911987, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -696,11 +711,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder011_Summer.json b/roseau/load_flow/data/networks/MVFeeder011_Summer.json index d70d009f..80925a6f 100644 --- a/roseau/load_flow/data/networks/MVFeeder011_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder011_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder01", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15132", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.667628303059409, 49.64179582568794] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus33535", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.668306361702929, 49.64380428993486] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18348", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.6663493738929815, 49.64417292395164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07445", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.6655735383084749, 49.643426206784554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10771", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.6647535760701795, 49.643609126740216] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus31654", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.663289227604252, 49.64353346527948] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18352", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.662616546426261, 49.642884936673234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30879", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.663253723380739, 49.643542139341996] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07442", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.6629655446157925, 49.64432178319872] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09694", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6603547873034665, 49.64635177979386] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09708", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.657412445196616, 49.644739889471886] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus27018", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.657634719606587, 49.644704226437895] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18342", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.6600719941933777, 49.64495201682858] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09703", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.658996118190359, 49.643065130887315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07449", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.6567571961044585, 49.643587777587335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24548", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.656148855867594, 49.643410380628715] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07432", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.6575239274670255, 49.64192659162776] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23620", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.659996802038395, 49.64083115791717] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03816", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.662536295709962, 49.64016837911976] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22688", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.659992378774546, 49.640794687101014] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07448", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.6597185284257365, 49.64053361589109] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20992", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.65745195708432, 49.64188286054988] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20991", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.655216166305802, 49.64128414309542] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10769", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.6541095942725872, 49.641301353664915] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09698", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.6529876825128729, 49.64213837494104] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13415", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.6508752731227425, 49.643005599995846] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18345", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.649879448220405, 49.64153273332219] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13412", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.65221236758308, 49.63967359517768] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16883", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.651432398001215, 49.63931205401539] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03811", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.6541252575873528, 49.638747481781465] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14816", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.650618491574853, 49.63968679231682] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18350", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.651074590691024, 49.63901863203041] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus12237", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.650496238664297, 49.63974470580285] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11405", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.647550106185192, 49.64151825643697] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04231", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.646312245039197, 49.64113108389712] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11399", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.6460659248127212, 49.639737506922216] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12653", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.6443562607887543, 49.6389795586048] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09570", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.63946043427207, 49.64121448711107] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05297", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.639959248554075, 49.63879602948194] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12652", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.638968848385021, 49.637357094424615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08398", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.6390459138036424, 49.63402854933457] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14999", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.635841049476694, 49.634773127302665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05293", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.6353965365500425, 49.63201285071942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07323", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.6316298971813121, 49.63271781685638] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15555", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.6314148687770316, 49.63085635792388] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04664", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.629054408189043, 49.63178058553094] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02718", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.629721806268463, 49.63252940750905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00044", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.629037146508968, 49.631786313338594] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -523,6 +523,7 @@ "bus2": "MVBus00044", "length": 0.4290980676603243, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -547,6 +548,7 @@ "bus2": "MVLV15132", "length": 0.25210504809617895, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -584,6 +586,7 @@ "bus2": "MVBus33535", "length": 0.16825509452722598, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -613,6 +616,7 @@ "bus2": "MVLV18348", "length": 0.2154444704255203, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -646,6 +650,7 @@ "bus2": "MVLV07445", "length": 0.08563439623109449, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -670,6 +675,7 @@ "bus2": "MVLV10771", "length": 0.11146509204153157, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -696,6 +702,7 @@ "bus2": "MVBus31654", "length": 0.08847193216769035, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -719,6 +726,7 @@ "bus2": "MVLV18352", "length": 0.08813950731615683, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -742,6 +750,7 @@ "bus2": "MVBus30879", "length": 0.1042534145496487, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -767,6 +776,7 @@ "bus2": "MVLV07442", "length": 0.4018757368413863, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -797,6 +807,7 @@ "bus2": "MVLV09694", "length": 0.5855644909898856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -835,6 +846,7 @@ "bus2": "MVLV09708", "length": 0.02751185685333837, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -857,6 +869,7 @@ "bus2": "MVBus27018", "length": 0.21357803317857346, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -888,6 +901,7 @@ "bus2": "MVLV18342", "length": 0.4397899318735527, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -928,6 +942,7 @@ "bus2": "MVLV09703", "length": 0.21063109279689207, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -954,6 +969,7 @@ "bus2": "MVLV07449", "length": 0.06469131730334167, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -979,6 +995,7 @@ "bus2": "MVBus24548", "length": 0.2158005688277706, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1002,6 +1019,7 @@ "bus2": "MVLV07432", "length": 0.2170797616003997, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1026,6 +1044,7 @@ "bus2": "MVBus23620", "length": 0.20913294003905575, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1056,6 +1075,7 @@ "bus2": "MVLV03816", "length": 0.22438681816102976, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1084,6 +1104,7 @@ "bus2": "MVBus22688", "length": 0.03848083419059896, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1105,6 +1126,7 @@ "bus2": "MVLV07448", "length": 0.26481803791881875, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1130,6 +1152,7 @@ "bus2": "MVBus20992", "length": 0.2803324611564285, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1153,6 +1176,7 @@ "bus2": "MVBus20991", "length": 0.10763084810328495, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1176,6 +1200,7 @@ "bus2": "MVLV10769", "length": 0.2173999289241804, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1202,6 +1227,7 @@ "bus2": "MVLV09698", "length": 0.2362052800999093, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1231,6 +1257,7 @@ "bus2": "MVLV13415", "length": 0.20042162447610118, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1259,6 +1286,7 @@ "bus2": "MVLV18345", "length": 0.3047157335410305, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1289,6 +1317,7 @@ "bus2": "MVLV13412", "length": 0.08209146022616265, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1312,6 +1341,7 @@ "bus2": "MVBus16883", "length": 0.2817171104650044, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1338,6 +1368,7 @@ "bus2": "MVLV03811", "length": 0.3601161017125795, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1368,6 +1399,7 @@ "bus2": "MVBus14816", "length": 0.08772869175221151, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1390,6 +1422,7 @@ "bus2": "MVLV18350", "length": 0.1016162327368625, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1412,6 +1445,7 @@ "bus2": "MVBus12237", "length": 0.33971650173458107, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1440,6 +1474,7 @@ "bus2": "MVLV11405", "length": 0.10725795298864516, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1463,6 +1498,7 @@ "bus2": "MVLV04231", "length": 0.2773931594553408, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1493,6 +1529,7 @@ "bus2": "MVLV11399", "length": 0.5787472439158112, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1543,6 +1580,7 @@ "bus2": "MVLV12653", "length": 0.4669884179506195, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1569,6 +1607,7 @@ "bus2": "MVLV09570", "length": 0.3650441293007164, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1599,6 +1638,7 @@ "bus2": "MVLV05297", "length": 0.3974522975554689, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1639,6 +1679,7 @@ "bus2": "MVLV12652", "length": 0.5184452215196655, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1673,6 +1714,7 @@ "bus2": "MVLV08398", "length": 0.48789488430663863, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1704,6 +1746,7 @@ "bus2": "MVLV14999", "length": 0.4381640551856535, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1734,6 +1777,7 @@ "bus2": "MVLV05293", "length": 0.3599441207244474, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1761,6 +1805,7 @@ "bus2": "MVLV07323", "length": 0.2573909011875716, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1791,6 +1836,7 @@ "bus2": "MVLV15555", "length": 0.31109997665373856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1821,6 +1867,7 @@ "bus2": "MVBus04664", "length": 0.09943991949583805, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1845,6 +1892,7 @@ "bus2": "MVLV02718", "length": 0.10029828063164829, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2738,11 +2786,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder011_Winter.json b/roseau/load_flow/data/networks/MVFeeder011_Winter.json index bd55236c..09d8ed38 100644 --- a/roseau/load_flow/data/networks/MVFeeder011_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder011_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder01", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15132", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.667628303059409, 49.64179582568794] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus33535", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.668306361702929, 49.64380428993486] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18348", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.6663493738929815, 49.64417292395164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07445", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.6655735383084749, 49.643426206784554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10771", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.6647535760701795, 49.643609126740216] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus31654", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.663289227604252, 49.64353346527948] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18352", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.662616546426261, 49.642884936673234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30879", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.663253723380739, 49.643542139341996] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07442", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.6629655446157925, 49.64432178319872] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09694", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6603547873034665, 49.64635177979386] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09708", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.657412445196616, 49.644739889471886] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus27018", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.657634719606587, 49.644704226437895] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18342", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.6600719941933777, 49.64495201682858] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09703", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.658996118190359, 49.643065130887315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07449", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.6567571961044585, 49.643587777587335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24548", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.656148855867594, 49.643410380628715] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07432", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.6575239274670255, 49.64192659162776] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23620", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.659996802038395, 49.64083115791717] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03816", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.662536295709962, 49.64016837911976] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22688", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.659992378774546, 49.640794687101014] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07448", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.6597185284257365, 49.64053361589109] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20992", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.65745195708432, 49.64188286054988] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20991", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.655216166305802, 49.64128414309542] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10769", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.6541095942725872, 49.641301353664915] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09698", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.6529876825128729, 49.64213837494104] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13415", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.6508752731227425, 49.643005599995846] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18345", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.649879448220405, 49.64153273332219] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13412", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.65221236758308, 49.63967359517768] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16883", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.651432398001215, 49.63931205401539] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03811", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.6541252575873528, 49.638747481781465] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14816", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.650618491574853, 49.63968679231682] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18350", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.651074590691024, 49.63901863203041] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus12237", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.650496238664297, 49.63974470580285] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11405", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.647550106185192, 49.64151825643697] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04231", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.646312245039197, 49.64113108389712] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11399", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.6460659248127212, 49.639737506922216] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12653", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.6443562607887543, 49.6389795586048] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09570", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.63946043427207, 49.64121448711107] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05297", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.639959248554075, 49.63879602948194] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12652", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.638968848385021, 49.637357094424615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08398", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.6390459138036424, 49.63402854933457] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14999", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.635841049476694, 49.634773127302665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05293", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.6353965365500425, 49.63201285071942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07323", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.6316298971813121, 49.63271781685638] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15555", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.6314148687770316, 49.63085635792388] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04664", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.629054408189043, 49.63178058553094] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02718", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.629721806268463, 49.63252940750905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00044", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.629037146508968, 49.631786313338594] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -523,6 +523,7 @@ "bus2": "MVBus00044", "length": 0.4290980676603243, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -547,6 +548,7 @@ "bus2": "MVLV15132", "length": 0.25210504809617895, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -584,6 +586,7 @@ "bus2": "MVBus33535", "length": 0.16825509452722598, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -613,6 +616,7 @@ "bus2": "MVLV18348", "length": 0.2154444704255203, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -646,6 +650,7 @@ "bus2": "MVLV07445", "length": 0.08563439623109449, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -670,6 +675,7 @@ "bus2": "MVLV10771", "length": 0.11146509204153157, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -696,6 +702,7 @@ "bus2": "MVBus31654", "length": 0.08847193216769035, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -719,6 +726,7 @@ "bus2": "MVLV18352", "length": 0.08813950731615683, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -742,6 +750,7 @@ "bus2": "MVBus30879", "length": 0.1042534145496487, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -767,6 +776,7 @@ "bus2": "MVLV07442", "length": 0.4018757368413863, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -797,6 +807,7 @@ "bus2": "MVLV09694", "length": 0.5855644909898856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -835,6 +846,7 @@ "bus2": "MVLV09708", "length": 0.02751185685333837, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -857,6 +869,7 @@ "bus2": "MVBus27018", "length": 0.21357803317857346, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -888,6 +901,7 @@ "bus2": "MVLV18342", "length": 0.4397899318735527, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -928,6 +942,7 @@ "bus2": "MVLV09703", "length": 0.21063109279689207, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -954,6 +969,7 @@ "bus2": "MVLV07449", "length": 0.06469131730334167, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -979,6 +995,7 @@ "bus2": "MVBus24548", "length": 0.2158005688277706, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1002,6 +1019,7 @@ "bus2": "MVLV07432", "length": 0.2170797616003997, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1026,6 +1044,7 @@ "bus2": "MVBus23620", "length": 0.20913294003905575, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1056,6 +1075,7 @@ "bus2": "MVLV03816", "length": 0.22438681816102976, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1084,6 +1104,7 @@ "bus2": "MVBus22688", "length": 0.03848083419059896, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1105,6 +1126,7 @@ "bus2": "MVLV07448", "length": 0.26481803791881875, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1130,6 +1152,7 @@ "bus2": "MVBus20992", "length": 0.2803324611564285, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1153,6 +1176,7 @@ "bus2": "MVBus20991", "length": 0.10763084810328495, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1176,6 +1200,7 @@ "bus2": "MVLV10769", "length": 0.2173999289241804, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1202,6 +1227,7 @@ "bus2": "MVLV09698", "length": 0.2362052800999093, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1231,6 +1257,7 @@ "bus2": "MVLV13415", "length": 0.20042162447610118, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1259,6 +1286,7 @@ "bus2": "MVLV18345", "length": 0.3047157335410305, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1289,6 +1317,7 @@ "bus2": "MVLV13412", "length": 0.08209146022616265, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1312,6 +1341,7 @@ "bus2": "MVBus16883", "length": 0.2817171104650044, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1338,6 +1368,7 @@ "bus2": "MVLV03811", "length": 0.3601161017125795, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1368,6 +1399,7 @@ "bus2": "MVBus14816", "length": 0.08772869175221151, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1390,6 +1422,7 @@ "bus2": "MVLV18350", "length": 0.1016162327368625, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1412,6 +1445,7 @@ "bus2": "MVBus12237", "length": 0.33971650173458107, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1440,6 +1474,7 @@ "bus2": "MVLV11405", "length": 0.10725795298864516, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1463,6 +1498,7 @@ "bus2": "MVLV04231", "length": 0.2773931594553408, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1493,6 +1529,7 @@ "bus2": "MVLV11399", "length": 0.5787472439158112, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1543,6 +1580,7 @@ "bus2": "MVLV12653", "length": 0.4669884179506195, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1569,6 +1607,7 @@ "bus2": "MVLV09570", "length": 0.3650441293007164, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1599,6 +1638,7 @@ "bus2": "MVLV05297", "length": 0.3974522975554689, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1639,6 +1679,7 @@ "bus2": "MVLV12652", "length": 0.5184452215196655, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1673,6 +1714,7 @@ "bus2": "MVLV08398", "length": 0.48789488430663863, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1704,6 +1746,7 @@ "bus2": "MVLV14999", "length": 0.4381640551856535, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1734,6 +1777,7 @@ "bus2": "MVLV05293", "length": 0.3599441207244474, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1761,6 +1805,7 @@ "bus2": "MVLV07323", "length": 0.2573909011875716, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1791,6 +1836,7 @@ "bus2": "MVLV15555", "length": 0.31109997665373856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1821,6 +1867,7 @@ "bus2": "MVBus04664", "length": 0.09943991949583805, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1845,6 +1892,7 @@ "bus2": "MVLV02718", "length": 0.10029828063164829, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2738,11 +2786,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder015_Summer.json b/roseau/load_flow/data/networks/MVFeeder015_Summer.json index 4b73d060..bdef7ccf 100644 --- a/roseau/load_flow/data/networks/MVFeeder015_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder015_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder01", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01557", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.607926725745514, 49.630057242522646] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09072", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.607975529120126, 49.63007036133769] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09071", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.607828921912095, 49.63040347671234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09070", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.60990342767392, 49.63152112320213] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03692", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.6101069381645656, 49.63158911474942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08445", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.609878920214483, 49.63157028321388] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07320", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.615251585228688, 49.63138183809393] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09569", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.614090551512768, 49.6320247630815] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14997", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.6125424847098795, 49.63319064348599] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07237", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.614397172406862, 49.63374451855814] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14994", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.6148992023665274, 49.633246093376826] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06806", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.615129260227989, 49.63365678307963] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06805", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.617248593084641, 49.63351059928568] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03678", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.617288715725815, 49.63252690092534] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06340", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.61797185105183, 49.628856075992964] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14995", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.6175182258464154, 49.62827064068822] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05776", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.618071703010131, 49.62876339045437] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05775", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.617296198248987, 49.627827044271605] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18242", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.6194617020978654, 49.62775867731261] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05254", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.619704923601284, 49.62777414229089] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05253", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.62001066228858, 49.62832552372274] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05252", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.619631373814167, 49.630590994074986] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13304", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.619666847988223, 49.630611324646196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00057", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.619657875156477, 49.6305746241572] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00056", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.620893120270645, 49.62893349771016] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00055", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.622376716573707, 49.62858095368696] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00054", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.622954639870388, 49.631939839160744] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00053", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.623326183809773, 49.63226650711385] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -323,6 +323,7 @@ "bus2": "MVBus00053", "length": 0.19373117984134303, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -344,6 +345,7 @@ "bus2": "MVLV01557", "length": 0.0038174820230672257, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -363,6 +365,7 @@ "bus2": "MVBus09072", "length": 0.0410212088521344, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -382,6 +385,7 @@ "bus2": "MVBus09071", "length": 0.22513392788300826, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -405,6 +409,7 @@ "bus2": "MVBus09070", "length": 0.016901585911935392, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -425,6 +430,7 @@ "bus2": "MVLV03692", "length": 0.01677643016309775, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -445,6 +451,7 @@ "bus2": "MVBus08445", "length": 0.4669542724178578, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -477,6 +484,7 @@ "bus2": "MVLV07320", "length": 0.16680800473055252, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -500,6 +508,7 @@ "bus2": "MVLV09569", "length": 0.31478369710551507, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -526,6 +535,7 @@ "bus2": "MVLV14997", "length": 0.17984323786250975, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -549,6 +559,7 @@ "bus2": "MVBus07237", "length": 0.0983779462509927, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -570,6 +581,7 @@ "bus2": "MVLV14994", "length": 0.04862324255083111, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -590,6 +602,7 @@ "bus2": "MVBus06806", "length": 0.15823242540325652, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -610,6 +623,7 @@ "bus2": "MVBus06805", "length": 0.1166751178584927, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -631,6 +645,7 @@ "bus2": "MVLV03678", "length": 0.42424395751102045, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -657,6 +672,7 @@ "bus2": "MVBus06340", "length": 0.09667306913811433, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -679,6 +695,7 @@ "bus2": "MVLV14995", "length": 0.08743391984267036, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -703,6 +720,7 @@ "bus2": "MVBus05776", "length": 0.18173893427682564, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -726,6 +744,7 @@ "bus2": "MVBus05775", "length": 0.19857131245149381, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -750,6 +769,7 @@ "bus2": "MVLV18242", "length": 0.01617639679305394, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -769,6 +789,7 @@ "bus2": "MVBus05254", "length": 0.09380842822624201, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -804,6 +825,7 @@ "bus2": "MVBus05253", "length": 0.2617227298854735, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -826,6 +848,7 @@ "bus2": "MVBus05252", "length": 0.005483402606147038, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -846,6 +869,7 @@ "bus2": "MVLV13304", "length": 0.004536545893693076, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -866,6 +890,7 @@ "bus2": "MVBus00057", "length": 0.31996744840118263, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -893,6 +918,7 @@ "bus2": "MVBus00056", "length": 0.21954342456757106, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -920,6 +946,7 @@ "bus2": "MVBus00055", "length": 0.4092063054473774, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -956,6 +983,7 @@ "bus2": "MVBus00054", "length": 0.0466684979154946, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1264,11 +1292,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder015_Winter.json b/roseau/load_flow/data/networks/MVFeeder015_Winter.json index 1c8ee18a..def6acdf 100644 --- a/roseau/load_flow/data/networks/MVFeeder015_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder015_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder01", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.624837162156209, 49.633717544204686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01557", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.607926725745514, 49.630057242522646] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09072", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.607975529120126, 49.63007036133769] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09071", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.607828921912095, 49.63040347671234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09070", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.60990342767392, 49.63152112320213] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03692", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.6101069381645656, 49.63158911474942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08445", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.609878920214483, 49.63157028321388] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07320", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.615251585228688, 49.63138183809393] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09569", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.614090551512768, 49.6320247630815] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14997", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.6125424847098795, 49.63319064348599] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07237", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.614397172406862, 49.63374451855814] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14994", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.6148992023665274, 49.633246093376826] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06806", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.615129260227989, 49.63365678307963] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06805", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.617248593084641, 49.63351059928568] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03678", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.617288715725815, 49.63252690092534] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06340", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.61797185105183, 49.628856075992964] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14995", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.6175182258464154, 49.62827064068822] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05776", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.618071703010131, 49.62876339045437] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05775", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.617296198248987, 49.627827044271605] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18242", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.6194617020978654, 49.62775867731261] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05254", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.619704923601284, 49.62777414229089] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05253", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.62001066228858, 49.62832552372274] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05252", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.619631373814167, 49.630590994074986] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13304", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.619666847988223, 49.630611324646196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00057", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.619657875156477, 49.6305746241572] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00056", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.620893120270645, 49.62893349771016] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00055", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.622376716573707, 49.62858095368696] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00054", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.622954639870388, 49.631939839160744] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00053", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.623326183809773, 49.63226650711385] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -323,6 +323,7 @@ "bus2": "MVBus00053", "length": 0.19373117984134303, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -344,6 +345,7 @@ "bus2": "MVLV01557", "length": 0.0038174820230672257, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -363,6 +365,7 @@ "bus2": "MVBus09072", "length": 0.0410212088521344, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -382,6 +385,7 @@ "bus2": "MVBus09071", "length": 0.22513392788300826, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -405,6 +409,7 @@ "bus2": "MVBus09070", "length": 0.016901585911935392, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -425,6 +430,7 @@ "bus2": "MVLV03692", "length": 0.01677643016309775, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -445,6 +451,7 @@ "bus2": "MVBus08445", "length": 0.4669542724178578, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -477,6 +484,7 @@ "bus2": "MVLV07320", "length": 0.16680800473055252, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -500,6 +508,7 @@ "bus2": "MVLV09569", "length": 0.31478369710551507, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -526,6 +535,7 @@ "bus2": "MVLV14997", "length": 0.17984323786250975, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -549,6 +559,7 @@ "bus2": "MVBus07237", "length": 0.0983779462509927, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -570,6 +581,7 @@ "bus2": "MVLV14994", "length": 0.04862324255083111, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -590,6 +602,7 @@ "bus2": "MVBus06806", "length": 0.15823242540325652, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -610,6 +623,7 @@ "bus2": "MVBus06805", "length": 0.1166751178584927, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -631,6 +645,7 @@ "bus2": "MVLV03678", "length": 0.42424395751102045, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -657,6 +672,7 @@ "bus2": "MVBus06340", "length": 0.09667306913811433, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -679,6 +695,7 @@ "bus2": "MVLV14995", "length": 0.08743391984267036, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -703,6 +720,7 @@ "bus2": "MVBus05776", "length": 0.18173893427682564, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -726,6 +744,7 @@ "bus2": "MVBus05775", "length": 0.19857131245149381, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -750,6 +769,7 @@ "bus2": "MVLV18242", "length": 0.01617639679305394, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -769,6 +789,7 @@ "bus2": "MVBus05254", "length": 0.09380842822624201, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -804,6 +825,7 @@ "bus2": "MVBus05253", "length": 0.2617227298854735, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -826,6 +848,7 @@ "bus2": "MVBus05252", "length": 0.005483402606147038, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -846,6 +869,7 @@ "bus2": "MVLV13304", "length": 0.004536545893693076, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -866,6 +890,7 @@ "bus2": "MVBus00057", "length": 0.31996744840118263, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -893,6 +918,7 @@ "bus2": "MVBus00056", "length": 0.21954342456757106, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -920,6 +946,7 @@ "bus2": "MVBus00055", "length": 0.4092063054473774, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -956,6 +983,7 @@ "bus2": "MVBus00054", "length": 0.0466684979154946, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1264,11 +1292,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder032_Summer.json b/roseau/load_flow/data/networks/MVFeeder032_Summer.json index 61f5b2c4..c36974ad 100644 --- a/roseau/load_flow/data/networks/MVFeeder032_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder032_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.341143887616421, 49.649368152657914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder02", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.341143887616421, 49.649368152657914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15016", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.379425423456413, 49.64836189737522] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10667", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.381823290728951, 49.64701700842836] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09595", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.371150419839853, 49.655825871851405] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16246", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.372298178279623, 49.658299751045696] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16245", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.372533815677704, 49.65884745330522] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18263", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.353621166734196, 49.66271170637617] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16252", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.363212064086434, 49.65900120223403] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03703", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.359611241149069, 49.65929698067572] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16251", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.364874290710226, 49.65897516480102] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15015", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.362188979845099, 49.6571000586743] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16255", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.363211977478477, 49.65814335267942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16250", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.366195557635843, 49.65902809491562] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16248", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.37052573334111, 49.65888465426676] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03705", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.373821100953172, 49.661964717931106] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16244", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.376121721428708, 49.65874279740818] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12099", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.377335684181196, 49.657807942425116] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16243", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.377014665176524, 49.65869498771795] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16242", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.377957689760006, 49.658651945322525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16240", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.387251985079024, 49.65826499708912] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06250", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.38978771053233, 49.657963688996865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16239", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.396174122247448, 49.660517606384] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16238", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.396407487666482, 49.66030127215695] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11999", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.3964057126467686, 49.660262531967966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00559", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.38732578741805, 49.66311035879193] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13498", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.387432288168403, 49.66315379586582] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16879", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.383661956464301, 49.67615070129675] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus19216", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.383768918139199, 49.6761669133056] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00333", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.387482823059862, 49.679565823143825] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus19217", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.387473067955328, 49.67977113339019] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus19219", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.390165074821639, 49.68435695606896] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13624", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.3873025941583055, 49.66617902194447] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13500", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.385535507316819, 49.66475968041158] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05842", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.37861523666604, 49.66583210459457] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13502", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.381131381360064, 49.665651484021154] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09036", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.378678571365429, 49.6700702299779] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13507", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.378508982637205, 49.67049492628741] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10341", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.364568388218211, 49.67301865165213] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13511", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.367021341986308, 49.67251972372232] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16210", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.365446752865551, 49.670169257631514] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13509", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.371996551240058, 49.6715045934133] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18939", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.371520169196079, 49.67063246231633] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13508", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.3732913242456, 49.67126845912352] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13506", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.381534586991432, 49.6696998371898] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13505", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.381285976129816, 49.66779511294239] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13504", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.38122396426964, 49.66615036764246] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13497", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.396160700810953, 49.6605270561942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08729", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.396450904235974, 49.66024788508449] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08728", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.381535312882208, 49.64733699083525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00118", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.38131751047128, 49.64725252932783] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10578", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.363057844882403, 49.64298359804093] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00117", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.363073414238841, 49.64304820544189] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -553,6 +553,7 @@ "bus2": "MVBus00117", "length": 1.8605918592243234, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -590,6 +591,7 @@ "bus2": "MVLV15016", "length": 0.2943324039112835, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -616,6 +618,7 @@ "bus2": "MVLV09595", "length": 0.3408872288632633, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -645,6 +648,7 @@ "bus2": "MVBus16246", "length": 0.0632480621227142, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -663,6 +667,7 @@ "bus2": "MVLV18263", "length": 0.9055318059977351, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -683,6 +688,7 @@ "bus2": "MVLV03703", "length": 0.26205738228368264, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -701,6 +707,7 @@ "bus2": "MVBus16252", "length": 0.12005035444768837, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -719,6 +726,7 @@ "bus2": "MVLV15015", "length": 0.16009582724380417, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -740,6 +748,7 @@ "bus2": "MVBus16255", "length": 0.15154109479720265, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -758,6 +767,7 @@ "bus2": "MVBus16251", "length": 0.09557903096634539, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -776,6 +786,7 @@ "bus2": "MVBus16250", "length": 0.3130525985206985, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -794,6 +805,7 @@ "bus2": "MVLV03705", "length": 0.4176484825338185, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -813,6 +825,7 @@ "bus2": "MVBus16248", "length": 0.14504614489335685, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -831,6 +844,7 @@ "bus2": "MVBus16245", "length": 0.25935534014258776, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -850,6 +864,7 @@ "bus2": "MVLV12099", "length": 0.15245677642841116, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -876,6 +891,7 @@ "bus2": "MVBus16244", "length": 0.07910830682295543, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -896,6 +912,7 @@ "bus2": "MVBus16243", "length": 0.06825641112094445, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -914,6 +931,7 @@ "bus2": "MVBus16242", "length": 0.6732851019557871, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -933,6 +951,7 @@ "bus2": "MVLV06250", "length": 0.18612848590421097, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -951,6 +970,7 @@ "bus2": "MVBus16240", "length": 0.7266361804865676, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -990,6 +1010,7 @@ "bus2": "MVBus16239", "length": 0.029373923231384276, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1008,6 +1029,7 @@ "bus2": "MVBus16238", "length": 0.004166795103980359, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1028,6 +1050,7 @@ "bus2": "MVLV00559", "length": 0.009080697744007212, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1046,6 +1069,7 @@ "bus2": "MVLV16879", "length": 0.007927866285498594, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1064,6 +1088,7 @@ "bus2": "MVLV00333", "length": 0.02284604834606541, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1082,6 +1107,7 @@ "bus2": "MVBus19219", "length": 0.5676631752803123, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1111,6 +1137,7 @@ "bus2": "MVBus19217", "length": 0.6218432211306393, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1144,6 +1171,7 @@ "bus2": "MVBus19216", "length": 1.147392428120071, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1182,6 +1210,7 @@ "bus2": "MVLV13624", "length": 0.31499506964743823, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1211,6 +1240,7 @@ "bus2": "MVLV05842", "length": 0.19257122220997205, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1237,6 +1267,7 @@ "bus2": "MVLV09036", "length": 0.04879639165804694, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1255,6 +1286,7 @@ "bus2": "MVLV10341", "length": 0.18554949799224277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1273,6 +1305,7 @@ "bus2": "MVLV16210", "length": 0.2993697297327617, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1294,6 +1327,7 @@ "bus2": "MVBus13511", "length": 0.37645239932160457, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1312,6 +1346,7 @@ "bus2": "MVLV18939", "length": 0.10291560301491072, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1330,6 +1365,7 @@ "bus2": "MVBus13509", "length": 0.09708097808053277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1348,6 +1384,7 @@ "bus2": "MVBus13508", "length": 0.3873225502112333, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1367,6 +1404,7 @@ "bus2": "MVBus13507", "length": 0.24984598448858025, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1386,6 +1424,7 @@ "bus2": "MVBus13506", "length": 0.21286808031255783, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1405,6 +1444,7 @@ "bus2": "MVBus13505", "length": 0.1829876796288891, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1423,6 +1463,7 @@ "bus2": "MVBus13504", "length": 0.061848062572889766, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1447,6 +1488,7 @@ "bus2": "MVBus13502", "length": 0.3352713149048944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1475,6 +1517,7 @@ "bus2": "MVBus13500", "length": 0.22734508024316832, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1498,6 +1541,7 @@ "bus2": "MVBus13498", "length": 0.8146527229250738, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1528,6 +1572,7 @@ "bus2": "MVBus13497", "length": 0.03821945416796346, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1550,6 +1595,7 @@ "bus2": "MVLV11999", "length": 0.0031549875681026926, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1570,6 +1616,7 @@ "bus2": "MVBus08729", "length": 2.014917579745296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1602,6 +1649,7 @@ "bus2": "MVBus08728", "length": 0.040516118763759885, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1621,6 +1669,7 @@ "bus2": "MVLV10667", "length": 0.052501881798752856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1641,6 +1690,7 @@ "bus2": "MVBus00118", "length": 1.478026424760914, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1671,6 +1721,7 @@ "bus2": "MVLV10578", "length": 0.007273229980418355, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2218,11 +2269,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -2250,11 +2300,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder032_Winter.json b/roseau/load_flow/data/networks/MVFeeder032_Winter.json index 92a04557..2fbe0dba 100644 --- a/roseau/load_flow/data/networks/MVFeeder032_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder032_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.341143887616421, 49.649368152657914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder02", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.341143887616421, 49.649368152657914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15016", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.379425423456413, 49.64836189737522] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10667", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.381823290728951, 49.64701700842836] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09595", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.371150419839853, 49.655825871851405] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16246", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.372298178279623, 49.658299751045696] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16245", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.372533815677704, 49.65884745330522] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18263", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.353621166734196, 49.66271170637617] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16252", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.363212064086434, 49.65900120223403] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03703", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.359611241149069, 49.65929698067572] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16251", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.364874290710226, 49.65897516480102] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15015", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.362188979845099, 49.6571000586743] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16255", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.363211977478477, 49.65814335267942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16250", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.366195557635843, 49.65902809491562] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16248", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.37052573334111, 49.65888465426676] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03705", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.373821100953172, 49.661964717931106] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16244", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.376121721428708, 49.65874279740818] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12099", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.377335684181196, 49.657807942425116] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16243", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.377014665176524, 49.65869498771795] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16242", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.377957689760006, 49.658651945322525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16240", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.387251985079024, 49.65826499708912] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06250", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.38978771053233, 49.657963688996865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16239", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.396174122247448, 49.660517606384] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16238", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.396407487666482, 49.66030127215695] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11999", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.3964057126467686, 49.660262531967966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00559", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.38732578741805, 49.66311035879193] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13498", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.387432288168403, 49.66315379586582] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16879", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.383661956464301, 49.67615070129675] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus19216", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.383768918139199, 49.6761669133056] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00333", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.387482823059862, 49.679565823143825] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus19217", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.387473067955328, 49.67977113339019] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus19219", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.390165074821639, 49.68435695606896] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13624", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.3873025941583055, 49.66617902194447] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13500", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.385535507316819, 49.66475968041158] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05842", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.37861523666604, 49.66583210459457] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13502", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.381131381360064, 49.665651484021154] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09036", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.378678571365429, 49.6700702299779] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13507", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.378508982637205, 49.67049492628741] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10341", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.364568388218211, 49.67301865165213] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13511", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.367021341986308, 49.67251972372232] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16210", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.365446752865551, 49.670169257631514] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13509", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.371996551240058, 49.6715045934133] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18939", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.371520169196079, 49.67063246231633] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13508", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.3732913242456, 49.67126845912352] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13506", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.381534586991432, 49.6696998371898] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13505", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.381285976129816, 49.66779511294239] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13504", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.38122396426964, 49.66615036764246] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13497", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.396160700810953, 49.6605270561942] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08729", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.396450904235974, 49.66024788508449] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08728", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.381535312882208, 49.64733699083525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00118", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.38131751047128, 49.64725252932783] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10578", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.363057844882403, 49.64298359804093] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00117", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.363073414238841, 49.64304820544189] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -553,6 +553,7 @@ "bus2": "MVBus00117", "length": 1.8605918592243234, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -590,6 +591,7 @@ "bus2": "MVLV15016", "length": 0.2943324039112835, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -616,6 +618,7 @@ "bus2": "MVLV09595", "length": 0.3408872288632633, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -645,6 +648,7 @@ "bus2": "MVBus16246", "length": 0.0632480621227142, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -663,6 +667,7 @@ "bus2": "MVLV18263", "length": 0.9055318059977351, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -683,6 +688,7 @@ "bus2": "MVLV03703", "length": 0.26205738228368264, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -701,6 +707,7 @@ "bus2": "MVBus16252", "length": 0.12005035444768837, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -719,6 +726,7 @@ "bus2": "MVLV15015", "length": 0.16009582724380417, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -740,6 +748,7 @@ "bus2": "MVBus16255", "length": 0.15154109479720265, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -758,6 +767,7 @@ "bus2": "MVBus16251", "length": 0.09557903096634539, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -776,6 +786,7 @@ "bus2": "MVBus16250", "length": 0.3130525985206985, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -794,6 +805,7 @@ "bus2": "MVLV03705", "length": 0.4176484825338185, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -813,6 +825,7 @@ "bus2": "MVBus16248", "length": 0.14504614489335685, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -831,6 +844,7 @@ "bus2": "MVBus16245", "length": 0.25935534014258776, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -850,6 +864,7 @@ "bus2": "MVLV12099", "length": 0.15245677642841116, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -876,6 +891,7 @@ "bus2": "MVBus16244", "length": 0.07910830682295543, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -896,6 +912,7 @@ "bus2": "MVBus16243", "length": 0.06825641112094445, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -914,6 +931,7 @@ "bus2": "MVBus16242", "length": 0.6732851019557871, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -933,6 +951,7 @@ "bus2": "MVLV06250", "length": 0.18612848590421097, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -951,6 +970,7 @@ "bus2": "MVBus16240", "length": 0.7266361804865676, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -990,6 +1010,7 @@ "bus2": "MVBus16239", "length": 0.029373923231384276, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1008,6 +1029,7 @@ "bus2": "MVBus16238", "length": 0.004166795103980359, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1028,6 +1050,7 @@ "bus2": "MVLV00559", "length": 0.009080697744007212, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1046,6 +1069,7 @@ "bus2": "MVLV16879", "length": 0.007927866285498594, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1064,6 +1088,7 @@ "bus2": "MVLV00333", "length": 0.02284604834606541, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1082,6 +1107,7 @@ "bus2": "MVBus19219", "length": 0.5676631752803123, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1111,6 +1137,7 @@ "bus2": "MVBus19217", "length": 0.6218432211306393, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1144,6 +1171,7 @@ "bus2": "MVBus19216", "length": 1.147392428120071, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1182,6 +1210,7 @@ "bus2": "MVLV13624", "length": 0.31499506964743823, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1211,6 +1240,7 @@ "bus2": "MVLV05842", "length": 0.19257122220997205, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1237,6 +1267,7 @@ "bus2": "MVLV09036", "length": 0.04879639165804694, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1255,6 +1286,7 @@ "bus2": "MVLV10341", "length": 0.18554949799224277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1273,6 +1305,7 @@ "bus2": "MVLV16210", "length": 0.2993697297327617, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1294,6 +1327,7 @@ "bus2": "MVBus13511", "length": 0.37645239932160457, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1312,6 +1346,7 @@ "bus2": "MVLV18939", "length": 0.10291560301491072, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1330,6 +1365,7 @@ "bus2": "MVBus13509", "length": 0.09708097808053277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1348,6 +1384,7 @@ "bus2": "MVBus13508", "length": 0.3873225502112333, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1367,6 +1404,7 @@ "bus2": "MVBus13507", "length": 0.24984598448858025, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1386,6 +1424,7 @@ "bus2": "MVBus13506", "length": 0.21286808031255783, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1405,6 +1444,7 @@ "bus2": "MVBus13505", "length": 0.1829876796288891, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1423,6 +1463,7 @@ "bus2": "MVBus13504", "length": 0.061848062572889766, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1447,6 +1488,7 @@ "bus2": "MVBus13502", "length": 0.3352713149048944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1475,6 +1517,7 @@ "bus2": "MVBus13500", "length": 0.22734508024316832, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1498,6 +1541,7 @@ "bus2": "MVBus13498", "length": 0.8146527229250738, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1528,6 +1572,7 @@ "bus2": "MVBus13497", "length": 0.03821945416796346, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1550,6 +1595,7 @@ "bus2": "MVLV11999", "length": 0.0031549875681026926, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1570,6 +1616,7 @@ "bus2": "MVBus08729", "length": 2.014917579745296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1602,6 +1649,7 @@ "bus2": "MVBus08728", "length": 0.040516118763759885, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1621,6 +1669,7 @@ "bus2": "MVLV10667", "length": 0.052501881798752856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1641,6 +1690,7 @@ "bus2": "MVBus00118", "length": 1.478026424760914, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1671,6 +1721,7 @@ "bus2": "MVLV10578", "length": 0.007273229980418355, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2218,11 +2269,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -2250,11 +2300,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder041_Summer.json b/roseau/load_flow/data/networks/MVFeeder041_Summer.json index b5118c6c..1df8c1b4 100644 --- a/roseau/load_flow/data/networks/MVFeeder041_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder041_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.433951450433353, 49.499857308582335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder03", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.433951450433353, 49.499857308582335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10063", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.367321186591, 49.52829954489343] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14443", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.368408922341095, 49.528337782455814] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06198", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.366949565087487, 49.53458353417382] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14445", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.367532317945696, 49.53266031009273] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10065", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.363929569632286, 49.53103421357823] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14434", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.367945629924356, 49.52751533948379] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11613", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.391929859299305, 49.52688747798622] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14439", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.382038512535075, 49.52786431943707] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18655", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.38420748791955, 49.53207045919828] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14441", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.382092074428459, 49.529368574793686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14437", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.379330368071129, 49.52709876679234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18656", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.379133341172738, 49.5266303066747] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14435", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.375174481199995, 49.5270854765628] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10064", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.375391878107113, 49.52819089114238] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14433", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.366703140991816, 49.526996947409266] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14432", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.366071624233616, 49.52669305801903] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00730", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.345389875331179, 49.53196736281189] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14450", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.345470629602277, 49.53286059260983] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14449", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.345705596674752, 49.53304217442521] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08412", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.344261878545574, 49.540375827962926] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14459", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.344193679792921, 49.540904805026614] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01638", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.344546726140774, 49.55119579873367] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30329", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.35002322071283, 49.54846396469262] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30327", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.350802154413356, 49.54801832256416] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05831", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.351647522126318, 49.549963147222336] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14461", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.351486916478262, 49.54663244728472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08413", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.354432689275723, 49.54500115532038] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32094", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.351358802263283, 49.54603333478093] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15565", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.350948561983008, 49.544691867315635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32095", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.35090701896399, 49.54475576292609] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14458", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.344046592491646, 49.54079005423513] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14457", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.335112820629712, 49.53873292685697] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14452", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.334195997784767, 49.538694624646375] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14454", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.331348127293804, 49.54573723346734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14453", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.331577872310593, 49.54559897556209] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01295", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.329752701008355, 49.53871148844501] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14455", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.331985896645413, 49.53865037729998] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14448", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.36167574752003, 49.527824051865075] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08768", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.358129295755885, 49.52661622300191] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14463", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.35732245597545, 49.52750403221727] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06199", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.353213735809931, 49.52741485604408] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14462", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.360329890364137, 49.52776804669114] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14431", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.37587187309291, 49.52410908925157] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16705", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.3745101402666364, 49.52361539960028] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16704", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.373158136976772, 49.52188870975591] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16340", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.372942820931247, 49.52194020096842] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00568", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.364595749065816, 49.51960541885178] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16345", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.364298189147717, 49.51584715543139] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12126", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.347829572300763, 49.515809383494506] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16349", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.347835381760062, 49.515790916675066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06734", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.3359918598331, 49.51522978767321] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16354", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.3360183377539, 49.51521983680558] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16353", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.338617730114011, 49.514835961962596] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16352", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.3400486972785, 49.51536127727438] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16351", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.346685250216569, 49.51574896728357] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16348", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.349385326128443, 49.515722401635294] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16347", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.360357982063541, 49.5154563553893] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02233", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.360706878808562, 49.51449465101565] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16344", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.369179793174285, 49.51719786668166] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16343", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.369627420347444, 49.51833205671369] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00567", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.371051896813271, 49.51839548894923] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16342", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.372488966223399, 49.52151975882387] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14429", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.375882006468234, 49.52411966657223] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00155", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.379825737532433, 49.52314398510525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08663", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-1.381398873619378, 49.517696058278425] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11466", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-1.380536944462787, 49.52066867702094] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00154", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-1.392224691891333, 49.519893527602804] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01171", @@ -711,8 +711,8 @@ "type": "Point", "coordinates": [-1.391472629972477, 49.51846877062308] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00156", @@ -721,8 +721,8 @@ "type": "Point", "coordinates": [-1.391548060075391, 49.51863419448631] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00151", @@ -731,8 +731,8 @@ "type": "Point", "coordinates": [-1.394277047474696, 49.5192952387995] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11614", @@ -741,8 +741,8 @@ "type": "Point", "coordinates": [-1.396058529632034, 49.516044410422516] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00152", @@ -751,8 +751,8 @@ "type": "Point", "coordinates": [-1.394833996691817, 49.51880010232737] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00143", @@ -761,8 +761,8 @@ "type": "Point", "coordinates": [-1.412228466426174, 49.51460911594352] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05564", @@ -771,8 +771,8 @@ "type": "Point", "coordinates": [-1.414107643211931, 49.518812348878335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00145", @@ -781,8 +781,8 @@ "type": "Point", "coordinates": [-1.412885744293428, 49.519224509065616] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05857", @@ -791,8 +791,8 @@ "type": "Point", "coordinates": [-1.404682215948554, 49.522898591448595] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00149", @@ -801,8 +801,8 @@ "type": "Point", "coordinates": [-1.40853396112505, 49.521971789837664] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00147", @@ -811,8 +811,8 @@ "type": "Point", "coordinates": [-1.409262437362678, 49.5215231527115] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01169", @@ -821,8 +821,8 @@ "type": "Point", "coordinates": [-1.408590245322735, 49.522215742086814] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00144", @@ -831,8 +831,8 @@ "type": "Point", "coordinates": [-1.412088304372246, 49.515126844272686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00142", @@ -841,8 +841,8 @@ "type": "Point", "coordinates": [-1.426049500668638, 49.510987347109946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11121", @@ -851,8 +851,8 @@ "type": "Point", "coordinates": [-1.426184734665892, 49.51129034911221] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00141", @@ -861,8 +861,8 @@ "type": "Point", "coordinates": [-1.432278274736275, 49.5016495516555] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15305", @@ -871,8 +871,8 @@ "type": "Point", "coordinates": [-1.429865092470705, 49.50129097345488] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00159", @@ -881,8 +881,8 @@ "type": "Point", "coordinates": [-1.432001091043338, 49.50164058103889] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00140", @@ -891,8 +891,8 @@ "type": "Point", "coordinates": [-1.433147262174232, 49.49986669937966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -903,6 +903,7 @@ "bus2": "MVBus00140", "length": 0.05295578763904262, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -923,6 +924,7 @@ "bus2": "MVLV10063", "length": 0.07886110873021954, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -941,6 +943,7 @@ "bus2": "MVLV06198", "length": 0.2180209746965883, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -959,6 +962,7 @@ "bus2": "MVLV10065", "length": 0.32992283723741367, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -978,6 +982,7 @@ "bus2": "MVBus14445", "length": 0.4849216955773983, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -996,6 +1001,7 @@ "bus2": "MVBus14443", "length": 0.09742733081950168, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1014,6 +1020,7 @@ "bus2": "MVLV11613", "length": 0.749899621490495, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1035,6 +1042,7 @@ "bus2": "MVLV18655", "length": 0.33727356210494547, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1053,6 +1061,7 @@ "bus2": "MVBus14441", "length": 0.17056196230911183, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1072,6 +1081,7 @@ "bus2": "MVBus14439", "length": 0.2207891744342707, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1092,6 +1102,7 @@ "bus2": "MVLV18656", "length": 0.05401939170307853, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1110,6 +1121,7 @@ "bus2": "MVBus14437", "length": 0.30363762939058403, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1129,6 +1141,7 @@ "bus2": "MVLV10064", "length": 0.13984235587319505, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1148,6 +1161,7 @@ "bus2": "MVBus14435", "length": 0.5255209762938511, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1166,6 +1180,7 @@ "bus2": "MVBus14434", "length": 0.10684313253987544, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1184,6 +1199,7 @@ "bus2": "MVBus14433", "length": 0.05685638938740189, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1202,6 +1218,7 @@ "bus2": "MVLV00730", "length": 0.09951689256607632, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1220,6 +1237,7 @@ "bus2": "MVBus14450", "length": 0.026403753223718827, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1238,6 +1256,7 @@ "bus2": "MVLV08412", "length": 0.05903963211217331, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1256,6 +1275,7 @@ "bus2": "MVLV01638", "length": 0.49936575784781284, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1274,6 +1294,7 @@ "bus2": "MVBus30329", "length": 0.07505973949217395, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1292,6 +1313,7 @@ "bus2": "MVLV05831", "length": 0.2548384459288032, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1311,6 +1333,7 @@ "bus2": "MVBus30327", "length": 0.1631080748627394, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1330,6 +1353,7 @@ "bus2": "MVLV08413", "length": 0.25043043244191004, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1349,6 +1373,7 @@ "bus2": "MVLV15565", "length": 0.007716290976880467, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1367,6 +1392,7 @@ "bus2": "MVBus32095", "length": 0.14580499771374306, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1385,6 +1411,7 @@ "bus2": "MVBus32094", "length": 0.06727539665020081, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1403,6 +1430,7 @@ "bus2": "MVBus14461", "length": 0.8272889165536899, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1422,6 +1450,7 @@ "bus2": "MVBus14459", "length": 0.01661967154464987, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1440,6 +1469,7 @@ "bus2": "MVBus14458", "length": 0.7220603766026933, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1459,6 +1489,7 @@ "bus2": "MVBus14457", "length": 0.06649567910863435, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1477,6 +1508,7 @@ "bus2": "MVBus14454", "length": 0.028084407069707818, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1497,6 +1529,7 @@ "bus2": "MVBus14453", "length": 0.7909536117120637, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1516,6 +1549,7 @@ "bus2": "MVLV01295", "length": 0.1617802964828953, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1534,6 +1568,7 @@ "bus2": "MVBus14455", "length": 0.18148755103329137, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1554,6 +1589,7 @@ "bus2": "MVBus14452", "length": 1.0880093751534499, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1573,6 +1609,7 @@ "bus2": "MVBus14449", "length": 1.2968129892721059, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1592,6 +1629,7 @@ "bus2": "MVLV08768", "length": 0.11472582493055589, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1610,6 +1648,7 @@ "bus2": "MVLV06199", "length": 0.30381443432191135, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1629,6 +1668,7 @@ "bus2": "MVBus14463", "length": 0.21987560879011972, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1648,6 +1688,7 @@ "bus2": "MVBus14462", "length": 0.09763292837199693, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1666,6 +1707,7 @@ "bus2": "MVBus14448", "length": 0.34220306486037083, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1684,6 +1726,7 @@ "bus2": "MVBus14432", "length": 0.7655216243145522, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1702,6 +1745,7 @@ "bus2": "MVBus14431", "length": 0.12857411755433706, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1746,6 +1790,7 @@ "bus2": "MVLV16704", "length": 0.01892881924963116, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1772,6 +1817,7 @@ "bus2": "MVLV00568", "length": 0.41854810346143656, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1790,6 +1836,7 @@ "bus2": "MVLV12126", "length": 0.002096514595334105, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1808,6 +1855,7 @@ "bus2": "MVLV06734", "length": 0.002214901144747097, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1827,6 +1875,7 @@ "bus2": "MVBus16354", "length": 0.19558721650133015, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1881,6 +1930,7 @@ "bus2": "MVBus16353", "length": 0.11928588448450714, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1900,6 +1950,7 @@ "bus2": "MVBus16352", "length": 0.48510755176973774, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1919,6 +1970,7 @@ "bus2": "MVBus16351", "length": 0.08341537329519629, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1937,6 +1989,7 @@ "bus2": "MVBus16349", "length": 0.11249496678995423, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1955,6 +2008,7 @@ "bus2": "MVBus16348", "length": 0.7951221854101156, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1974,6 +2028,7 @@ "bus2": "MVLV02233", "length": 0.10990392063323207, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1992,6 +2047,7 @@ "bus2": "MVBus16347", "length": 0.28861558620082556, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2010,6 +2066,7 @@ "bus2": "MVBus16345", "length": 0.41176539826094094, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2031,6 +2088,7 @@ "bus2": "MVBus16344", "length": 0.1302420288824289, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2049,6 +2107,7 @@ "bus2": "MVLV00567", "length": 0.12493630621683054, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2069,6 +2128,7 @@ "bus2": "MVBus16343", "length": 0.44161320889387423, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2088,6 +2148,7 @@ "bus2": "MVBus16342", "length": 0.06437146766534582, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2126,6 +2187,7 @@ "bus2": "MVBus16340", "length": 0.2333369549446221, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2197,6 +2259,7 @@ "bus2": "MVLV16705", "length": 0.1307080187271019, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2246,6 +2309,7 @@ "bus2": "MVBus14429", "length": 0.30545779992426125, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2264,6 +2328,7 @@ "bus2": "MVLV08663", "length": 0.4029193743641605, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2283,6 +2348,7 @@ "bus2": "MVBus11466", "length": 0.2800778679443321, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2301,6 +2367,7 @@ "bus2": "MVBus00155", "length": 0.9678000868795191, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2319,6 +2386,7 @@ "bus2": "MVLV01171", "length": 0.019192000479414006, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2337,6 +2405,7 @@ "bus2": "MVBus00156", "length": 0.1483844769179519, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2355,6 +2424,7 @@ "bus2": "MVBus00154", "length": 0.16282377592133623, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2373,6 +2443,7 @@ "bus2": "MVLV11614", "length": 0.361719258634167, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2393,6 +2464,7 @@ "bus2": "MVBus00152", "length": 0.06825631635105202, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2411,6 +2483,7 @@ "bus2": "MVBus00151", "length": 1.4004826400271495, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2429,6 +2502,7 @@ "bus2": "MVLV05564", "length": 0.09964594277049314, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2447,6 +2521,7 @@ "bus2": "MVLV05857", "length": 0.30372207120162004, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2476,6 +2551,7 @@ "bus2": "MVBus00149", "length": 0.07260696893063866, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2494,6 +2570,7 @@ "bus2": "MVLV01169", "length": 0.091116949891685, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2512,6 +2589,7 @@ "bus2": "MVBus00147", "length": 0.3664958381602493, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2531,6 +2609,7 @@ "bus2": "MVBus00145", "length": 0.5179627421421704, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2552,6 +2631,7 @@ "bus2": "MVBus00144", "length": 0.05846928714576897, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2570,6 +2650,7 @@ "bus2": "MVBus00143", "length": 1.07890324604735, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2588,6 +2669,7 @@ "bus2": "MVLV11121", "length": 0.03951925397195987, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2607,6 +2689,7 @@ "bus2": "MVBus00142", "length": 1.1773966746299238, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2626,6 +2709,7 @@ "bus2": "MVLV15305", "length": 0.15953088680777358, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2644,6 +2728,7 @@ "bus2": "MVBus00159", "length": 0.020102333060506964, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2662,6 +2747,7 @@ "bus2": "MVBus00141", "length": 0.20803891457861706, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3473,11 +3559,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -3505,11 +3590,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -3537,11 +3621,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder041_Winter.json b/roseau/load_flow/data/networks/MVFeeder041_Winter.json index b209b6f3..ff3d760f 100644 --- a/roseau/load_flow/data/networks/MVFeeder041_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder041_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.433951450433353, 49.499857308582335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder03", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.433951450433353, 49.499857308582335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10063", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.367321186591, 49.52829954489343] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14443", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.368408922341095, 49.528337782455814] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06198", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.366949565087487, 49.53458353417382] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14445", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.367532317945696, 49.53266031009273] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10065", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.363929569632286, 49.53103421357823] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14434", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.367945629924356, 49.52751533948379] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11613", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.391929859299305, 49.52688747798622] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14439", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.382038512535075, 49.52786431943707] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18655", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.38420748791955, 49.53207045919828] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14441", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.382092074428459, 49.529368574793686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14437", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.379330368071129, 49.52709876679234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18656", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.379133341172738, 49.5266303066747] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14435", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.375174481199995, 49.5270854765628] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10064", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.375391878107113, 49.52819089114238] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14433", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.366703140991816, 49.526996947409266] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14432", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.366071624233616, 49.52669305801903] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00730", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.345389875331179, 49.53196736281189] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14450", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.345470629602277, 49.53286059260983] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14449", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.345705596674752, 49.53304217442521] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08412", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.344261878545574, 49.540375827962926] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14459", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.344193679792921, 49.540904805026614] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01638", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.344546726140774, 49.55119579873367] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30329", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.35002322071283, 49.54846396469262] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30327", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.350802154413356, 49.54801832256416] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05831", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.351647522126318, 49.549963147222336] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14461", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.351486916478262, 49.54663244728472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08413", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.354432689275723, 49.54500115532038] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32094", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.351358802263283, 49.54603333478093] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15565", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.350948561983008, 49.544691867315635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32095", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.35090701896399, 49.54475576292609] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14458", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.344046592491646, 49.54079005423513] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14457", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.335112820629712, 49.53873292685697] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14452", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.334195997784767, 49.538694624646375] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14454", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.331348127293804, 49.54573723346734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14453", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.331577872310593, 49.54559897556209] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01295", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.329752701008355, 49.53871148844501] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14455", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.331985896645413, 49.53865037729998] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14448", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.36167574752003, 49.527824051865075] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08768", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.358129295755885, 49.52661622300191] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14463", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.35732245597545, 49.52750403221727] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06199", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.353213735809931, 49.52741485604408] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14462", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.360329890364137, 49.52776804669114] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14431", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.37587187309291, 49.52410908925157] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16705", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.3745101402666364, 49.52361539960028] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16704", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.373158136976772, 49.52188870975591] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16340", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.372942820931247, 49.52194020096842] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00568", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.364595749065816, 49.51960541885178] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16345", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.364298189147717, 49.51584715543139] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12126", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.347829572300763, 49.515809383494506] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16349", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.347835381760062, 49.515790916675066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06734", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.3359918598331, 49.51522978767321] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16354", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.3360183377539, 49.51521983680558] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16353", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.338617730114011, 49.514835961962596] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16352", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.3400486972785, 49.51536127727438] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16351", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.346685250216569, 49.51574896728357] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16348", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.349385326128443, 49.515722401635294] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16347", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.360357982063541, 49.5154563553893] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02233", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.360706878808562, 49.51449465101565] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16344", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.369179793174285, 49.51719786668166] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16343", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.369627420347444, 49.51833205671369] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00567", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.371051896813271, 49.51839548894923] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16342", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.372488966223399, 49.52151975882387] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14429", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.375882006468234, 49.52411966657223] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00155", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.379825737532433, 49.52314398510525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08663", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-1.381398873619378, 49.517696058278425] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11466", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-1.380536944462787, 49.52066867702094] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00154", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-1.392224691891333, 49.519893527602804] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01171", @@ -711,8 +711,8 @@ "type": "Point", "coordinates": [-1.391472629972477, 49.51846877062308] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00156", @@ -721,8 +721,8 @@ "type": "Point", "coordinates": [-1.391548060075391, 49.51863419448631] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00151", @@ -731,8 +731,8 @@ "type": "Point", "coordinates": [-1.394277047474696, 49.5192952387995] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11614", @@ -741,8 +741,8 @@ "type": "Point", "coordinates": [-1.396058529632034, 49.516044410422516] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00152", @@ -751,8 +751,8 @@ "type": "Point", "coordinates": [-1.394833996691817, 49.51880010232737] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00143", @@ -761,8 +761,8 @@ "type": "Point", "coordinates": [-1.412228466426174, 49.51460911594352] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05564", @@ -771,8 +771,8 @@ "type": "Point", "coordinates": [-1.414107643211931, 49.518812348878335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00145", @@ -781,8 +781,8 @@ "type": "Point", "coordinates": [-1.412885744293428, 49.519224509065616] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05857", @@ -791,8 +791,8 @@ "type": "Point", "coordinates": [-1.404682215948554, 49.522898591448595] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00149", @@ -801,8 +801,8 @@ "type": "Point", "coordinates": [-1.40853396112505, 49.521971789837664] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00147", @@ -811,8 +811,8 @@ "type": "Point", "coordinates": [-1.409262437362678, 49.5215231527115] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01169", @@ -821,8 +821,8 @@ "type": "Point", "coordinates": [-1.408590245322735, 49.522215742086814] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00144", @@ -831,8 +831,8 @@ "type": "Point", "coordinates": [-1.412088304372246, 49.515126844272686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00142", @@ -841,8 +841,8 @@ "type": "Point", "coordinates": [-1.426049500668638, 49.510987347109946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11121", @@ -851,8 +851,8 @@ "type": "Point", "coordinates": [-1.426184734665892, 49.51129034911221] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00141", @@ -861,8 +861,8 @@ "type": "Point", "coordinates": [-1.432278274736275, 49.5016495516555] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15305", @@ -871,8 +871,8 @@ "type": "Point", "coordinates": [-1.429865092470705, 49.50129097345488] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00159", @@ -881,8 +881,8 @@ "type": "Point", "coordinates": [-1.432001091043338, 49.50164058103889] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00140", @@ -891,8 +891,8 @@ "type": "Point", "coordinates": [-1.433147262174232, 49.49986669937966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -903,6 +903,7 @@ "bus2": "MVBus00140", "length": 0.05295578763904262, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -923,6 +924,7 @@ "bus2": "MVLV10063", "length": 0.07886110873021954, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -941,6 +943,7 @@ "bus2": "MVLV06198", "length": 0.2180209746965883, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -959,6 +962,7 @@ "bus2": "MVLV10065", "length": 0.32992283723741367, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -978,6 +982,7 @@ "bus2": "MVBus14445", "length": 0.4849216955773983, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -996,6 +1001,7 @@ "bus2": "MVBus14443", "length": 0.09742733081950168, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1014,6 +1020,7 @@ "bus2": "MVLV11613", "length": 0.749899621490495, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1035,6 +1042,7 @@ "bus2": "MVLV18655", "length": 0.33727356210494547, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1053,6 +1061,7 @@ "bus2": "MVBus14441", "length": 0.17056196230911183, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1072,6 +1081,7 @@ "bus2": "MVBus14439", "length": 0.2207891744342707, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1092,6 +1102,7 @@ "bus2": "MVLV18656", "length": 0.05401939170307853, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1110,6 +1121,7 @@ "bus2": "MVBus14437", "length": 0.30363762939058403, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1129,6 +1141,7 @@ "bus2": "MVLV10064", "length": 0.13984235587319505, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1148,6 +1161,7 @@ "bus2": "MVBus14435", "length": 0.5255209762938511, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1166,6 +1180,7 @@ "bus2": "MVBus14434", "length": 0.10684313253987544, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1184,6 +1199,7 @@ "bus2": "MVBus14433", "length": 0.05685638938740189, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1202,6 +1218,7 @@ "bus2": "MVLV00730", "length": 0.09951689256607632, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1220,6 +1237,7 @@ "bus2": "MVBus14450", "length": 0.026403753223718827, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1238,6 +1256,7 @@ "bus2": "MVLV08412", "length": 0.05903963211217331, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1256,6 +1275,7 @@ "bus2": "MVLV01638", "length": 0.49936575784781284, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1274,6 +1294,7 @@ "bus2": "MVBus30329", "length": 0.07505973949217395, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1292,6 +1313,7 @@ "bus2": "MVLV05831", "length": 0.2548384459288032, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1311,6 +1333,7 @@ "bus2": "MVBus30327", "length": 0.1631080748627394, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1330,6 +1353,7 @@ "bus2": "MVLV08413", "length": 0.25043043244191004, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1349,6 +1373,7 @@ "bus2": "MVLV15565", "length": 0.007716290976880467, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1367,6 +1392,7 @@ "bus2": "MVBus32095", "length": 0.14580499771374306, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1385,6 +1411,7 @@ "bus2": "MVBus32094", "length": 0.06727539665020081, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1403,6 +1430,7 @@ "bus2": "MVBus14461", "length": 0.8272889165536899, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1422,6 +1450,7 @@ "bus2": "MVBus14459", "length": 0.01661967154464987, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1440,6 +1469,7 @@ "bus2": "MVBus14458", "length": 0.7220603766026933, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1459,6 +1489,7 @@ "bus2": "MVBus14457", "length": 0.06649567910863435, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1477,6 +1508,7 @@ "bus2": "MVBus14454", "length": 0.028084407069707818, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1497,6 +1529,7 @@ "bus2": "MVBus14453", "length": 0.7909536117120637, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1516,6 +1549,7 @@ "bus2": "MVLV01295", "length": 0.1617802964828953, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1534,6 +1568,7 @@ "bus2": "MVBus14455", "length": 0.18148755103329137, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1554,6 +1589,7 @@ "bus2": "MVBus14452", "length": 1.0880093751534499, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1573,6 +1609,7 @@ "bus2": "MVBus14449", "length": 1.2968129892721059, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1592,6 +1629,7 @@ "bus2": "MVLV08768", "length": 0.11472582493055589, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1610,6 +1648,7 @@ "bus2": "MVLV06199", "length": 0.30381443432191135, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1629,6 +1668,7 @@ "bus2": "MVBus14463", "length": 0.21987560879011972, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1648,6 +1688,7 @@ "bus2": "MVBus14462", "length": 0.09763292837199693, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1666,6 +1707,7 @@ "bus2": "MVBus14448", "length": 0.34220306486037083, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1684,6 +1726,7 @@ "bus2": "MVBus14432", "length": 0.7655216243145522, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1702,6 +1745,7 @@ "bus2": "MVBus14431", "length": 0.12857411755433706, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1746,6 +1790,7 @@ "bus2": "MVLV16704", "length": 0.01892881924963116, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1772,6 +1817,7 @@ "bus2": "MVLV00568", "length": 0.41854810346143656, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1790,6 +1836,7 @@ "bus2": "MVLV12126", "length": 0.002096514595334105, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1808,6 +1855,7 @@ "bus2": "MVLV06734", "length": 0.002214901144747097, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1827,6 +1875,7 @@ "bus2": "MVBus16354", "length": 0.19558721650133015, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1881,6 +1930,7 @@ "bus2": "MVBus16353", "length": 0.11928588448450714, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1900,6 +1950,7 @@ "bus2": "MVBus16352", "length": 0.48510755176973774, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1919,6 +1970,7 @@ "bus2": "MVBus16351", "length": 0.08341537329519629, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1937,6 +1989,7 @@ "bus2": "MVBus16349", "length": 0.11249496678995423, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1955,6 +2008,7 @@ "bus2": "MVBus16348", "length": 0.7951221854101156, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1974,6 +2028,7 @@ "bus2": "MVLV02233", "length": 0.10990392063323207, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1992,6 +2047,7 @@ "bus2": "MVBus16347", "length": 0.28861558620082556, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2010,6 +2066,7 @@ "bus2": "MVBus16345", "length": 0.41176539826094094, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2031,6 +2088,7 @@ "bus2": "MVBus16344", "length": 0.1302420288824289, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2049,6 +2107,7 @@ "bus2": "MVLV00567", "length": 0.12493630621683054, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2069,6 +2128,7 @@ "bus2": "MVBus16343", "length": 0.44161320889387423, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2088,6 +2148,7 @@ "bus2": "MVBus16342", "length": 0.06437146766534582, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2126,6 +2187,7 @@ "bus2": "MVBus16340", "length": 0.2333369549446221, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2197,6 +2259,7 @@ "bus2": "MVLV16705", "length": 0.1307080187271019, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2246,6 +2309,7 @@ "bus2": "MVBus14429", "length": 0.30545779992426125, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2264,6 +2328,7 @@ "bus2": "MVLV08663", "length": 0.4029193743641605, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2283,6 +2348,7 @@ "bus2": "MVBus11466", "length": 0.2800778679443321, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2301,6 +2367,7 @@ "bus2": "MVBus00155", "length": 0.9678000868795191, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2319,6 +2386,7 @@ "bus2": "MVLV01171", "length": 0.019192000479414006, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2337,6 +2405,7 @@ "bus2": "MVBus00156", "length": 0.1483844769179519, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2355,6 +2424,7 @@ "bus2": "MVBus00154", "length": 0.16282377592133623, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2373,6 +2443,7 @@ "bus2": "MVLV11614", "length": 0.361719258634167, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2393,6 +2464,7 @@ "bus2": "MVBus00152", "length": 0.06825631635105202, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2411,6 +2483,7 @@ "bus2": "MVBus00151", "length": 1.4004826400271495, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2429,6 +2502,7 @@ "bus2": "MVLV05564", "length": 0.09964594277049314, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2447,6 +2521,7 @@ "bus2": "MVLV05857", "length": 0.30372207120162004, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2476,6 +2551,7 @@ "bus2": "MVBus00149", "length": 0.07260696893063866, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2494,6 +2570,7 @@ "bus2": "MVLV01169", "length": 0.091116949891685, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2512,6 +2589,7 @@ "bus2": "MVBus00147", "length": 0.3664958381602493, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2531,6 +2609,7 @@ "bus2": "MVBus00145", "length": 0.5179627421421704, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2552,6 +2631,7 @@ "bus2": "MVBus00144", "length": 0.05846928714576897, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2570,6 +2650,7 @@ "bus2": "MVBus00143", "length": 1.07890324604735, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2588,6 +2669,7 @@ "bus2": "MVLV11121", "length": 0.03951925397195987, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2607,6 +2689,7 @@ "bus2": "MVBus00142", "length": 1.1773966746299238, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2626,6 +2709,7 @@ "bus2": "MVLV15305", "length": 0.15953088680777358, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2644,6 +2728,7 @@ "bus2": "MVBus00159", "length": 0.020102333060506964, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2662,6 +2747,7 @@ "bus2": "MVBus00141", "length": 0.20803891457861706, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3473,11 +3559,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -3505,11 +3590,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -3537,11 +3621,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder063_Summer.json b/roseau/load_flow/data/networks/MVFeeder063_Summer.json index e19bdd39..d69b117e 100644 --- a/roseau/load_flow/data/networks/MVFeeder063_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder063_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.582499629951565, 49.63030130599146] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder04", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.582499629951565, 49.63030130599146] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18429", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.592232380383244, 49.62734036551845] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10652", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.5964751196953948, 49.62873807421219] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09046", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.607922857761914, 49.63006092963809] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09045", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.607963282202793, 49.63008098506603] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09044", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.607809567268233, 49.630398631969165] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10647", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.6074521494066876, 49.63158659606066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14993", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.6059420225212007, 49.63270438210968] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03697", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.606013751391186, 49.63197746387231] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01559", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.6052536577382486, 49.631471343367366] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13299", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6068386972174165, 49.63067770263442] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07764", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.606844381112045, 49.630642083548835] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07763", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.60603073728943, 49.6301220859694] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01569", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.6061308511170715, 49.6298018240317] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07546", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.605903527330651, 49.630104005951786] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07545", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.605865051710045, 49.63009983843237] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03675", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.604575713187041, 49.630129604828134] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06579", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.599824989847082, 49.63025102890478] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06264", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.599741036707661, 49.630149264843865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14988", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.5994057208656425, 49.63034836409935] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06677", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.598351272185645, 49.633132540303215] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18248", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.601926754639998, 49.632405314831374] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06630", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.600133878496521, 49.63114054424035] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12146", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.600219567506464, 49.63112047547915] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06628", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.600131825692311, 49.63110713336656] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09576", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.600991203513488, 49.63095610639915] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09578", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.5965383406246354, 49.6303996452076] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05359", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.595457274166531, 49.63050713567418] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08988", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.5965269482967035, 49.631562422194115] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05110", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.594956260344823, 49.630665631479914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06406", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.5932946079935264, 49.630656322771706] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04778", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.59131012900034, 49.63097303093617] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04777", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.590078988075034, 49.63102584785101] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06425", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.590081200363509, 49.63141304674876] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04692", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.590032629340467, 49.63102752444015] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18891", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.5892748994771195, 49.6310861815891] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10302", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.5881686185764852, 49.631323645160805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00398", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.585887124774393, 49.63117410335776] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -413,6 +413,7 @@ "bus2": "MVBus00398", "length": 0.29272696710627666, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -439,6 +440,7 @@ "bus2": "MVLV18429", "length": 0.41044522166928754, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -466,6 +468,7 @@ "bus2": "MVBus09046", "length": 0.003688866872294023, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -485,6 +488,7 @@ "bus2": "MVBus09045", "length": 0.03871335222757685, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -504,6 +508,7 @@ "bus2": "MVBus09044", "length": 0.2607811328062301, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -532,6 +537,7 @@ "bus2": "MVLV10647", "length": 0.2970741181967918, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -556,6 +562,7 @@ "bus2": "MVLV14993", "length": 0.09135789011304539, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -578,6 +585,7 @@ "bus2": "MVLV03697", "length": 0.12031108048261688, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -601,6 +609,7 @@ "bus2": "MVLV01559", "length": 0.22275764658959776, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -627,6 +636,7 @@ "bus2": "MVLV13299", "length": 0.003369048735334049, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -646,6 +656,7 @@ "bus2": "MVBus07764", "length": 0.12666260023360498, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -669,6 +680,7 @@ "bus2": "MVBus07763", "length": 0.037362505005135126, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -689,6 +701,7 @@ "bus2": "MVLV01569", "length": 0.04238473359688498, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -710,6 +723,7 @@ "bus2": "MVBus07546", "length": 0.00281802750527586, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -728,6 +742,7 @@ "bus2": "MVBus07545", "length": 0.1033695620553855, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -749,6 +764,7 @@ "bus2": "MVLV03675", "length": 0.3834768388448617, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -784,6 +800,7 @@ "bus2": "MVBus06579", "length": 0.4004758816236516, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -807,6 +824,7 @@ "bus2": "MVLV10652", "length": 0.37988895822058255, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -830,6 +848,7 @@ "bus2": "MVBus06264", "length": 0.044228529691174134, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -851,6 +870,7 @@ "bus2": "MVBus06677", "length": 0.3822476021700914, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -877,6 +897,7 @@ "bus2": "MVLV18248", "length": 0.30545062371481124, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -902,6 +923,7 @@ "bus2": "MVBus06630", "length": 0.0071548122839469085, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -922,6 +944,7 @@ "bus2": "MVLV12146", "length": 0.006729896400067992, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -942,6 +965,7 @@ "bus2": "MVBus06628", "length": 0.07323313243705727, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -963,6 +987,7 @@ "bus2": "MVLV09576", "length": 0.18127899117716112, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -988,6 +1013,7 @@ "bus2": "MVLV14988", "length": 0.2201270935428412, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1011,6 +1037,7 @@ "bus2": "MVLV09578", "length": 0.20578413900606038, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1038,6 +1065,7 @@ "bus2": "MVBus05359", "length": 0.1451287670349226, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1059,6 +1087,7 @@ "bus2": "MVLV08988", "length": 0.16958490464876844, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1082,6 +1111,7 @@ "bus2": "MVBus05110", "length": 0.12176520566195435, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1104,6 +1134,7 @@ "bus2": "MVLV06406", "length": 0.1867858831234055, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1128,6 +1159,7 @@ "bus2": "MVBus04778", "length": 0.0891351018547783, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1146,6 +1178,7 @@ "bus2": "MVBus04777", "length": 0.043569334620479676, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1167,6 +1200,7 @@ "bus2": "MVLV06425", "length": 0.04342566480759927, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1188,6 +1222,7 @@ "bus2": "MVBus04692", "length": 0.05440747326591015, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1208,6 +1243,7 @@ "bus2": "MVLV18891", "length": 0.09942329994366059, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1230,6 +1266,7 @@ "bus2": "MVLV10302", "length": 0.1796403071794525, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1757,11 +1794,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder063_Winter.json b/roseau/load_flow/data/networks/MVFeeder063_Winter.json index 871c5855..536928d4 100644 --- a/roseau/load_flow/data/networks/MVFeeder063_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder063_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.582499629951565, 49.63030130599146] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder04", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.582499629951565, 49.63030130599146] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18429", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.592232380383244, 49.62734036551845] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10652", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.5964751196953948, 49.62873807421219] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09046", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.607922857761914, 49.63006092963809] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09045", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.607963282202793, 49.63008098506603] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09044", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.607809567268233, 49.630398631969165] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10647", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.6074521494066876, 49.63158659606066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14993", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.6059420225212007, 49.63270438210968] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03697", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.606013751391186, 49.63197746387231] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01559", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.6052536577382486, 49.631471343367366] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13299", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6068386972174165, 49.63067770263442] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07764", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.606844381112045, 49.630642083548835] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07763", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.60603073728943, 49.6301220859694] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01569", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.6061308511170715, 49.6298018240317] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07546", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.605903527330651, 49.630104005951786] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07545", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.605865051710045, 49.63009983843237] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03675", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.604575713187041, 49.630129604828134] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06579", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.599824989847082, 49.63025102890478] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06264", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.599741036707661, 49.630149264843865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14988", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.5994057208656425, 49.63034836409935] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06677", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.598351272185645, 49.633132540303215] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18248", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.601926754639998, 49.632405314831374] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06630", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.600133878496521, 49.63114054424035] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12146", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.600219567506464, 49.63112047547915] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06628", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.600131825692311, 49.63110713336656] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09576", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.600991203513488, 49.63095610639915] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09578", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.5965383406246354, 49.6303996452076] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05359", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.595457274166531, 49.63050713567418] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08988", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.5965269482967035, 49.631562422194115] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05110", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.594956260344823, 49.630665631479914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06406", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.5932946079935264, 49.630656322771706] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04778", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.59131012900034, 49.63097303093617] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04777", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.590078988075034, 49.63102584785101] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06425", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.590081200363509, 49.63141304674876] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04692", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.590032629340467, 49.63102752444015] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18891", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.5892748994771195, 49.6310861815891] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10302", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.5881686185764852, 49.631323645160805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00398", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.585887124774393, 49.63117410335776] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -413,6 +413,7 @@ "bus2": "MVBus00398", "length": 0.29272696710627666, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -439,6 +440,7 @@ "bus2": "MVLV18429", "length": 0.41044522166928754, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -466,6 +468,7 @@ "bus2": "MVBus09046", "length": 0.003688866872294023, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -485,6 +488,7 @@ "bus2": "MVBus09045", "length": 0.03871335222757685, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -504,6 +508,7 @@ "bus2": "MVBus09044", "length": 0.2607811328062301, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -532,6 +537,7 @@ "bus2": "MVLV10647", "length": 0.2970741181967918, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -556,6 +562,7 @@ "bus2": "MVLV14993", "length": 0.09135789011304539, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -578,6 +585,7 @@ "bus2": "MVLV03697", "length": 0.12031108048261688, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -601,6 +609,7 @@ "bus2": "MVLV01559", "length": 0.22275764658959776, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -627,6 +636,7 @@ "bus2": "MVLV13299", "length": 0.003369048735334049, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -646,6 +656,7 @@ "bus2": "MVBus07764", "length": 0.12666260023360498, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -669,6 +680,7 @@ "bus2": "MVBus07763", "length": 0.037362505005135126, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -689,6 +701,7 @@ "bus2": "MVLV01569", "length": 0.04238473359688498, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -710,6 +723,7 @@ "bus2": "MVBus07546", "length": 0.00281802750527586, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -728,6 +742,7 @@ "bus2": "MVBus07545", "length": 0.1033695620553855, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -749,6 +764,7 @@ "bus2": "MVLV03675", "length": 0.3834768388448617, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -784,6 +800,7 @@ "bus2": "MVBus06579", "length": 0.4004758816236516, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -807,6 +824,7 @@ "bus2": "MVLV10652", "length": 0.37988895822058255, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -830,6 +848,7 @@ "bus2": "MVBus06264", "length": 0.044228529691174134, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -851,6 +870,7 @@ "bus2": "MVBus06677", "length": 0.3822476021700914, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -877,6 +897,7 @@ "bus2": "MVLV18248", "length": 0.30545062371481124, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -902,6 +923,7 @@ "bus2": "MVBus06630", "length": 0.0071548122839469085, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -922,6 +944,7 @@ "bus2": "MVLV12146", "length": 0.006729896400067992, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -942,6 +965,7 @@ "bus2": "MVBus06628", "length": 0.07323313243705727, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -963,6 +987,7 @@ "bus2": "MVLV09576", "length": 0.18127899117716112, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -988,6 +1013,7 @@ "bus2": "MVLV14988", "length": 0.2201270935428412, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1011,6 +1037,7 @@ "bus2": "MVLV09578", "length": 0.20578413900606038, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1038,6 +1065,7 @@ "bus2": "MVBus05359", "length": 0.1451287670349226, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1059,6 +1087,7 @@ "bus2": "MVLV08988", "length": 0.16958490464876844, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1082,6 +1111,7 @@ "bus2": "MVBus05110", "length": 0.12176520566195435, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1104,6 +1134,7 @@ "bus2": "MVLV06406", "length": 0.1867858831234055, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1128,6 +1159,7 @@ "bus2": "MVBus04778", "length": 0.0891351018547783, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1146,6 +1178,7 @@ "bus2": "MVBus04777", "length": 0.043569334620479676, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1167,6 +1200,7 @@ "bus2": "MVLV06425", "length": 0.04342566480759927, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1188,6 +1222,7 @@ "bus2": "MVBus04692", "length": 0.05440747326591015, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1208,6 +1243,7 @@ "bus2": "MVLV18891", "length": 0.09942329994366059, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1230,6 +1266,7 @@ "bus2": "MVLV10302", "length": 0.1796403071794525, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1757,11 +1794,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder078_Summer.json b/roseau/load_flow/data/networks/MVFeeder078_Summer.json index eb70a24d..311b7b04 100644 --- a/roseau/load_flow/data/networks/MVFeeder078_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder078_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-0.861907220519602, 48.85275990396129] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder06", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.861907220519602, 48.85275990396129] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16267", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.86001853756168, 48.85337575425656] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05176", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.865356031015941, 48.8569050172066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05175", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.865158661585753, 48.85696769446948] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05174", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.864145676144476, 48.85700715758124] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05173", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.863774645581598, 48.85794501052119] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00093", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.864077991992518, 48.858894496901186] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04732", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-0.863762652584391, 48.85793512380676] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04731", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-0.863918222964227, 48.85700255077768] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17336", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-0.8616552619450155, 48.85683610333325] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04323", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-0.860106265907068, 48.853379550930796] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08705", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-0.875473232182965, 48.84208025906252] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08704", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-0.876715779516786, 48.84145658387014] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08703", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-0.876689117189963, 48.841427008610744] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08702", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-0.876492203069748, 48.84105368987994] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14202", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-0.874905311669654, 48.839830229741395] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07205", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-0.876293704382707, 48.841087077107254] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07204", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-0.873675944485619, 48.84146590316994] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07203", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-0.873007234026652, 48.84148884120062] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17331", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-0.86695823363757, 48.84303468142016] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08183", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-0.870691717544495, 48.84198811304198] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14197", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-0.8717518762744035, 48.84182098477776] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07202", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-0.872898415892355, 48.84142980041824] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07201", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-0.872146518973825, 48.839822200116686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07200", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-0.871876996225313, 48.8388095884613] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07199", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-0.868817103520342, 48.838763622546615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16339", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-0.8686998101678213, 48.838526097189025] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06618", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-0.88406440710997, 48.836928020339315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08686", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-0.881772418257212, 48.837005846464045] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08685", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-0.880674679188671, 48.8373468095376] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06624", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-0.8794877577508065, 48.838063656216335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07908", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-0.8756189144606039, 48.838468138861174] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07971", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-0.872467795554653, 48.83862329391957] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07970", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-0.872246199468391, 48.838151697990995] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06613", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-0.872280137987934, 48.83809987122305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16338", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-0.875658580600804, 48.83676048053651] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10081", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-0.874502738373467, 48.834940067597074] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07909", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-0.8752082433672413, 48.8350261440061] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19250", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-0.888514962274334, 48.82656655184295] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18347", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-0.888557428715923, 48.826631641066605] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18346", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-0.887865142307306, 48.82833235071164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18345", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-0.885597781304912, 48.83063412127371] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18343", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-0.884841385788525, 48.830452372763254] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06627", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-0.881830223376614, 48.82710345299199] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03392", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-0.8848244135284965, 48.830527334184154] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16410", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-0.885832178874871, 48.832586304212874] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17323", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-0.885308108952521, 48.83400488371018] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15325", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-0.884286491972944, 48.833908447025685] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16352", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-0.8824449607734131, 48.834537732363174] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus12384", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-0.884273548054826, 48.83387686483468] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06614", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-0.8817425294272689, 48.8315149122372] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14187", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-0.880775799819524, 48.82987719698311] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17318", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-0.8785649436214537, 48.8332075950315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00077", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-0.875095059017632, 48.830122149229794] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11094", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-0.875101921835193, 48.83012230580406] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07968", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-0.872214961209678, 48.838120113328216] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07967", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-0.872413202730643, 48.838592842785516] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07966", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-0.871765069885203, 48.83861872799665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07965", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-0.869200703510018, 48.83872826590689] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04341", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-0.868646658997884, 48.838745743786326] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04340", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-0.863845928420918, 48.83892360687616] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04339", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-0.859015429167717, 48.8390977033655] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04338", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-0.856679771196076, 48.8393331890979] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04337", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-0.860681733449894, 48.85162594273506] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04336", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-0.861013888394328, 48.85275771061705] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04335", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-0.860150118595222, 48.85333739287977] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04325", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-0.8599909640364121, 48.853403618584366] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03394", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-0.8600627007696874, 48.85333737772175] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -713,6 +713,7 @@ "bus2": "MVLV03394", "length": 0.1724292254349832, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -739,6 +740,7 @@ "bus2": "MVLV16267", "length": 0.007044467725210111, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -764,6 +766,7 @@ "bus2": "MVBus05176", "length": 0.017371955947210974, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -786,6 +789,7 @@ "bus2": "MVBus05175", "length": 0.07498646770260328, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -807,6 +811,7 @@ "bus2": "MVBus05174", "length": 0.11712757505255547, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -830,6 +835,7 @@ "bus2": "MVBus05173", "length": 0.16391793277881303, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -889,6 +895,7 @@ "bus2": "MVLV00093", "length": 0.16785434440432762, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -945,6 +952,7 @@ "bus2": "MVBus04732", "length": 0.1105963897080451, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -970,6 +978,7 @@ "bus2": "MVBus04731", "length": 0.18105763300261443, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -999,6 +1008,7 @@ "bus2": "MVLV17336", "length": 0.43128229512606414, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1033,6 +1043,7 @@ "bus2": "MVBus08705", "length": 0.15121557062525562, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1057,6 +1068,7 @@ "bus2": "MVBus08704", "length": 0.003827218082576422, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1075,6 +1087,7 @@ "bus2": "MVBus08703", "length": 0.04943394118866002, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1097,6 +1110,7 @@ "bus2": "MVBus08702", "length": 0.21186886508195796, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1124,6 +1138,7 @@ "bus2": "MVLV14202", "length": 0.18550175870020472, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1150,6 +1165,7 @@ "bus2": "MVBus07205", "length": 0.1970012070090857, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1170,6 +1186,7 @@ "bus2": "MVBus07204", "length": 0.05800011596560066, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1200,6 +1217,7 @@ "bus2": "MVLV17331", "length": 0.29773606681183895, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1218,6 +1236,7 @@ "bus2": "MVBus08183", "length": 0.07869834569086104, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1237,6 +1256,7 @@ "bus2": "MVLV14197", "length": 0.11155221210230411, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1264,6 +1284,7 @@ "bus2": "MVBus07203", "length": 0.013347777466179678, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1283,6 +1304,7 @@ "bus2": "MVBus07202", "length": 0.1871763949567639, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1302,6 +1324,7 @@ "bus2": "MVBus07201", "length": 0.11811189257521192, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1322,6 +1345,7 @@ "bus2": "MVBus07200", "length": 0.2382568731010173, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1344,6 +1368,7 @@ "bus2": "MVBus07199", "length": 0.03356285654781796, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1365,6 +1390,7 @@ "bus2": "MVLV06618", "length": 0.1819650302869982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1392,6 +1418,7 @@ "bus2": "MVBus08686", "length": 0.08924914276914384, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1413,6 +1440,7 @@ "bus2": "MVBus08685", "length": 0.1363614003299588, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1435,6 +1463,7 @@ "bus2": "MVLV06624", "length": 0.3431661150296938, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1466,6 +1495,7 @@ "bus2": "MVLV07908", "length": 0.23803136074272874, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1488,6 +1518,7 @@ "bus2": "MVBus07971", "length": 0.05501775862392058, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1507,6 +1538,7 @@ "bus2": "MVBus07970", "length": 0.0056490097905787925, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1527,6 +1559,7 @@ "bus2": "MVLV16338", "length": 0.22007202509458926, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1546,6 +1579,7 @@ "bus2": "MVBus10081", "length": 0.052135624147050294, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1567,6 +1601,7 @@ "bus2": "MVLV19250", "length": 0.009160255971882254, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1590,6 +1625,7 @@ "bus2": "MVBus18347", "length": 0.2124307166983533, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1613,6 +1649,7 @@ "bus2": "MVBus18346", "length": 0.3085057547490667, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1638,6 +1675,7 @@ "bus2": "MVBus18345", "length": 0.05909798077216007, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1656,6 +1694,7 @@ "bus2": "MVLV06627", "length": 0.5616143176910369, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1692,6 +1731,7 @@ "bus2": "MVBus18343", "length": 0.008512807915317425, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1712,6 +1752,7 @@ "bus2": "MVLV03392", "length": 0.2818985234228485, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1738,6 +1779,7 @@ "bus2": "MVBus16410", "length": 0.2675941982774448, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1762,6 +1804,7 @@ "bus2": "MVLV17323", "length": 0.07794340751148783, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1787,6 +1830,7 @@ "bus2": "MVBus15325", "length": 0.1676849766963774, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1812,6 +1856,7 @@ "bus2": "MVLV16352", "length": 0.17405376330025718, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1836,6 +1881,7 @@ "bus2": "MVBus12384", "length": 0.33868712643538773, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1869,6 +1915,7 @@ "bus2": "MVLV06614", "length": 0.20617450395313525, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1900,6 +1947,7 @@ "bus2": "MVLV14187", "length": 0.509338459446997, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1936,6 +1984,7 @@ "bus2": "MVLV00077", "length": 0.0005041710094409629, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1954,6 +2003,7 @@ "bus2": "MVBus11094", "length": 0.5484946533037999, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1995,6 +2045,7 @@ "bus2": "MVLV17318", "length": 0.45466041701091836, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2033,6 +2084,7 @@ "bus2": "MVLV07909", "length": 0.8770431551619805, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2081,6 +2133,7 @@ "bus2": "MVLV06613", "length": 0.004928925184248028, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2100,6 +2153,7 @@ "bus2": "MVBus07968", "length": 0.05454767906198296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2118,6 +2172,7 @@ "bus2": "MVBus07967", "length": 0.05194483150364374, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2139,6 +2194,7 @@ "bus2": "MVBus07966", "length": 0.1886382705981941, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2157,6 +2213,7 @@ "bus2": "MVBus07965", "length": 0.05839935889291249, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2178,6 +2235,7 @@ "bus2": "MVLV16339", "length": 0.028232269363577034, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2199,6 +2257,7 @@ "bus2": "MVBus04341", "length": 0.3530507631966376, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2218,6 +2277,7 @@ "bus2": "MVBus04340", "length": 0.3950562373152476, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2246,6 +2306,7 @@ "bus2": "MVBus04339", "length": 0.19102802193987503, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2266,6 +2327,7 @@ "bus2": "MVBus04338", "length": 1.4205755596337886, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2285,6 +2347,7 @@ "bus2": "MVBus04337", "length": 0.14874056292248092, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2309,6 +2372,7 @@ "bus2": "MVBus04336", "length": 0.09040961235896791, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2327,6 +2391,7 @@ "bus2": "MVBus04335", "length": 0.014597094628989744, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2350,6 +2415,7 @@ "bus2": "MVBus04325", "length": 0.012228134551066085, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2372,6 +2438,7 @@ "bus2": "MVBus04323", "length": 0.005092436730597999, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2992,11 +3059,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -3024,11 +3090,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -3056,11 +3121,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder078_Winter.json b/roseau/load_flow/data/networks/MVFeeder078_Winter.json index c99a1d3e..9d547593 100644 --- a/roseau/load_flow/data/networks/MVFeeder078_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder078_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-0.861907220519602, 48.85275990396129] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder06", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.861907220519602, 48.85275990396129] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16267", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.86001853756168, 48.85337575425656] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05176", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.865356031015941, 48.8569050172066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05175", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.865158661585753, 48.85696769446948] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05174", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.864145676144476, 48.85700715758124] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05173", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.863774645581598, 48.85794501052119] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00093", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.864077991992518, 48.858894496901186] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04732", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-0.863762652584391, 48.85793512380676] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04731", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-0.863918222964227, 48.85700255077768] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17336", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-0.8616552619450155, 48.85683610333325] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04323", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-0.860106265907068, 48.853379550930796] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08705", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-0.875473232182965, 48.84208025906252] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08704", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-0.876715779516786, 48.84145658387014] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08703", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-0.876689117189963, 48.841427008610744] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08702", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-0.876492203069748, 48.84105368987994] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14202", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-0.874905311669654, 48.839830229741395] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07205", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-0.876293704382707, 48.841087077107254] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07204", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-0.873675944485619, 48.84146590316994] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07203", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-0.873007234026652, 48.84148884120062] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17331", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-0.86695823363757, 48.84303468142016] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08183", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-0.870691717544495, 48.84198811304198] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14197", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-0.8717518762744035, 48.84182098477776] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07202", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-0.872898415892355, 48.84142980041824] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07201", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-0.872146518973825, 48.839822200116686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07200", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-0.871876996225313, 48.8388095884613] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07199", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-0.868817103520342, 48.838763622546615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16339", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-0.8686998101678213, 48.838526097189025] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06618", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-0.88406440710997, 48.836928020339315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08686", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-0.881772418257212, 48.837005846464045] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08685", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-0.880674679188671, 48.8373468095376] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06624", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-0.8794877577508065, 48.838063656216335] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07908", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-0.8756189144606039, 48.838468138861174] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07971", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-0.872467795554653, 48.83862329391957] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07970", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-0.872246199468391, 48.838151697990995] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06613", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-0.872280137987934, 48.83809987122305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16338", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-0.875658580600804, 48.83676048053651] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10081", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-0.874502738373467, 48.834940067597074] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07909", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-0.8752082433672413, 48.8350261440061] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19250", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-0.888514962274334, 48.82656655184295] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18347", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-0.888557428715923, 48.826631641066605] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18346", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-0.887865142307306, 48.82833235071164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18345", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-0.885597781304912, 48.83063412127371] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18343", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-0.884841385788525, 48.830452372763254] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06627", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-0.881830223376614, 48.82710345299199] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03392", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-0.8848244135284965, 48.830527334184154] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16410", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-0.885832178874871, 48.832586304212874] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17323", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-0.885308108952521, 48.83400488371018] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15325", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-0.884286491972944, 48.833908447025685] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16352", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-0.8824449607734131, 48.834537732363174] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus12384", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-0.884273548054826, 48.83387686483468] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06614", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-0.8817425294272689, 48.8315149122372] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14187", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-0.880775799819524, 48.82987719698311] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17318", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-0.8785649436214537, 48.8332075950315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00077", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-0.875095059017632, 48.830122149229794] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11094", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-0.875101921835193, 48.83012230580406] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07968", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-0.872214961209678, 48.838120113328216] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07967", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-0.872413202730643, 48.838592842785516] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07966", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-0.871765069885203, 48.83861872799665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07965", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-0.869200703510018, 48.83872826590689] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04341", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-0.868646658997884, 48.838745743786326] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04340", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-0.863845928420918, 48.83892360687616] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04339", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-0.859015429167717, 48.8390977033655] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04338", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-0.856679771196076, 48.8393331890979] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04337", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-0.860681733449894, 48.85162594273506] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04336", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-0.861013888394328, 48.85275771061705] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04335", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-0.860150118595222, 48.85333739287977] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04325", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-0.8599909640364121, 48.853403618584366] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03394", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-0.8600627007696874, 48.85333737772175] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -713,6 +713,7 @@ "bus2": "MVLV03394", "length": 0.1724292254349832, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -739,6 +740,7 @@ "bus2": "MVLV16267", "length": 0.007044467725210111, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -764,6 +766,7 @@ "bus2": "MVBus05176", "length": 0.017371955947210974, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -786,6 +789,7 @@ "bus2": "MVBus05175", "length": 0.07498646770260328, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -807,6 +811,7 @@ "bus2": "MVBus05174", "length": 0.11712757505255547, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -830,6 +835,7 @@ "bus2": "MVBus05173", "length": 0.16391793277881303, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -889,6 +895,7 @@ "bus2": "MVLV00093", "length": 0.16785434440432762, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -945,6 +952,7 @@ "bus2": "MVBus04732", "length": 0.1105963897080451, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -970,6 +978,7 @@ "bus2": "MVBus04731", "length": 0.18105763300261443, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -999,6 +1008,7 @@ "bus2": "MVLV17336", "length": 0.43128229512606414, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1033,6 +1043,7 @@ "bus2": "MVBus08705", "length": 0.15121557062525562, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1057,6 +1068,7 @@ "bus2": "MVBus08704", "length": 0.003827218082576422, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1075,6 +1087,7 @@ "bus2": "MVBus08703", "length": 0.04943394118866002, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1097,6 +1110,7 @@ "bus2": "MVBus08702", "length": 0.21186886508195796, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1124,6 +1138,7 @@ "bus2": "MVLV14202", "length": 0.18550175870020472, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1150,6 +1165,7 @@ "bus2": "MVBus07205", "length": 0.1970012070090857, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1170,6 +1186,7 @@ "bus2": "MVBus07204", "length": 0.05800011596560066, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1200,6 +1217,7 @@ "bus2": "MVLV17331", "length": 0.29773606681183895, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1218,6 +1236,7 @@ "bus2": "MVBus08183", "length": 0.07869834569086104, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1237,6 +1256,7 @@ "bus2": "MVLV14197", "length": 0.11155221210230411, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1264,6 +1284,7 @@ "bus2": "MVBus07203", "length": 0.013347777466179678, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1283,6 +1304,7 @@ "bus2": "MVBus07202", "length": 0.1871763949567639, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1302,6 +1324,7 @@ "bus2": "MVBus07201", "length": 0.11811189257521192, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1322,6 +1345,7 @@ "bus2": "MVBus07200", "length": 0.2382568731010173, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1344,6 +1368,7 @@ "bus2": "MVBus07199", "length": 0.03356285654781796, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1365,6 +1390,7 @@ "bus2": "MVLV06618", "length": 0.1819650302869982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1392,6 +1418,7 @@ "bus2": "MVBus08686", "length": 0.08924914276914384, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1413,6 +1440,7 @@ "bus2": "MVBus08685", "length": 0.1363614003299588, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1435,6 +1463,7 @@ "bus2": "MVLV06624", "length": 0.3431661150296938, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1466,6 +1495,7 @@ "bus2": "MVLV07908", "length": 0.23803136074272874, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1488,6 +1518,7 @@ "bus2": "MVBus07971", "length": 0.05501775862392058, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1507,6 +1538,7 @@ "bus2": "MVBus07970", "length": 0.0056490097905787925, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1527,6 +1559,7 @@ "bus2": "MVLV16338", "length": 0.22007202509458926, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1546,6 +1579,7 @@ "bus2": "MVBus10081", "length": 0.052135624147050294, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1567,6 +1601,7 @@ "bus2": "MVLV19250", "length": 0.009160255971882254, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1590,6 +1625,7 @@ "bus2": "MVBus18347", "length": 0.2124307166983533, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1613,6 +1649,7 @@ "bus2": "MVBus18346", "length": 0.3085057547490667, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1638,6 +1675,7 @@ "bus2": "MVBus18345", "length": 0.05909798077216007, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1656,6 +1694,7 @@ "bus2": "MVLV06627", "length": 0.5616143176910369, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1692,6 +1731,7 @@ "bus2": "MVBus18343", "length": 0.008512807915317425, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1712,6 +1752,7 @@ "bus2": "MVLV03392", "length": 0.2818985234228485, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1738,6 +1779,7 @@ "bus2": "MVBus16410", "length": 0.2675941982774448, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1762,6 +1804,7 @@ "bus2": "MVLV17323", "length": 0.07794340751148783, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1787,6 +1830,7 @@ "bus2": "MVBus15325", "length": 0.1676849766963774, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1812,6 +1856,7 @@ "bus2": "MVLV16352", "length": 0.17405376330025718, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1836,6 +1881,7 @@ "bus2": "MVBus12384", "length": 0.33868712643538773, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1869,6 +1915,7 @@ "bus2": "MVLV06614", "length": 0.20617450395313525, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1900,6 +1947,7 @@ "bus2": "MVLV14187", "length": 0.509338459446997, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1936,6 +1984,7 @@ "bus2": "MVLV00077", "length": 0.0005041710094409629, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1954,6 +2003,7 @@ "bus2": "MVBus11094", "length": 0.5484946533037999, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1995,6 +2045,7 @@ "bus2": "MVLV17318", "length": 0.45466041701091836, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2033,6 +2084,7 @@ "bus2": "MVLV07909", "length": 0.8770431551619805, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2081,6 +2133,7 @@ "bus2": "MVLV06613", "length": 0.004928925184248028, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2100,6 +2153,7 @@ "bus2": "MVBus07968", "length": 0.05454767906198296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2118,6 +2172,7 @@ "bus2": "MVBus07967", "length": 0.05194483150364374, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2139,6 +2194,7 @@ "bus2": "MVBus07966", "length": 0.1886382705981941, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2157,6 +2213,7 @@ "bus2": "MVBus07965", "length": 0.05839935889291249, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2178,6 +2235,7 @@ "bus2": "MVLV16339", "length": 0.028232269363577034, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2199,6 +2257,7 @@ "bus2": "MVBus04341", "length": 0.3530507631966376, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2218,6 +2277,7 @@ "bus2": "MVBus04340", "length": 0.3950562373152476, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2246,6 +2306,7 @@ "bus2": "MVBus04339", "length": 0.19102802193987503, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2266,6 +2327,7 @@ "bus2": "MVBus04338", "length": 1.4205755596337886, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2285,6 +2347,7 @@ "bus2": "MVBus04337", "length": 0.14874056292248092, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2309,6 +2372,7 @@ "bus2": "MVBus04336", "length": 0.09040961235896791, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2327,6 +2391,7 @@ "bus2": "MVBus04335", "length": 0.014597094628989744, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2350,6 +2415,7 @@ "bus2": "MVBus04325", "length": 0.012228134551066085, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2372,6 +2438,7 @@ "bus2": "MVBus04323", "length": 0.005092436730597999, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2992,11 +3059,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -3024,11 +3090,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -3056,11 +3121,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder115_Summer.json b/roseau/load_flow/data/networks/MVFeeder115_Summer.json index 4b708589..3d9e6dc8 100644 --- a/roseau/load_flow/data/networks/MVFeeder115_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder115_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.687159292228112, 49.48974276829431] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder07", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.687159292228112, 49.48974276829431] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05996", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.626239709998294, 49.43249717368583] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14092", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.6650298238154546, 49.46180069059946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "MVLV14092", "length": 5.766634582124083, "params_id": "U_AL_240", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -137,6 +138,7 @@ "bus2": "MVLV05996", "length": 6.070765210726548, "params_id": "U_AL_240", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -349,11 +351,10 @@ [0.0, 0.0, 0.00018346901096964396] ] ], - "max_current": 428, + "ampacities": [428, 428, 428], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 240.0 + "materials": ["AL", "AL", "AL"], + "sections": [240.0, 240.0, 240.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder115_Winter.json b/roseau/load_flow/data/networks/MVFeeder115_Winter.json index cc10068d..20c4da9a 100644 --- a/roseau/load_flow/data/networks/MVFeeder115_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder115_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.687159292228112, 49.48974276829431] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder07", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.687159292228112, 49.48974276829431] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05996", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.626239709998294, 49.43249717368583] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14092", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.6650298238154546, 49.46180069059946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -63,6 +63,7 @@ "bus2": "MVLV14092", "length": 5.766634582124083, "params_id": "U_AL_240", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -137,6 +138,7 @@ "bus2": "MVLV05996", "length": 6.070765210726548, "params_id": "U_AL_240", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -349,11 +351,10 @@ [0.0, 0.0, 0.00018346901096964396] ] ], - "max_current": 428, + "ampacities": [428, 428, 428], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 240.0 + "materials": ["AL", "AL", "AL"], + "sections": [240.0, 240.0, 240.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder128_Summer.json b/roseau/load_flow/data/networks/MVFeeder128_Summer.json index 26fc4a7b..19d6f32f 100644 --- a/roseau/load_flow/data/networks/MVFeeder128_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder128_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.446077484045924, 49.034241235768725] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder09", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.446077484045924, 49.034241235768725] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10305", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.527356876822457, 49.05063026709952] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23996", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.527305659304398, 49.050631392784375] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13802", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.530576179130021, 49.05011528391853] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23998", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.530799108036813, 49.05005551741369] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18902", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.542632731877063, 49.0478457642589] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28325", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.542619622656282, 49.04779553766782] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30458", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.544615426108271, 49.04665466011679] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30452", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.544605930612236, 49.04663486061268] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06710", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.564732788462391, 49.039903908577465] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35326", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.564656394675905, 49.0399616456111] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18001", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.568312137481616, 49.03765478152067] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35327", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.56889755134967, 49.03931854303925] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14661", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.575820358399386, 49.03313333990028] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus38707", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.575603504890467, 49.03309437846214] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus38709", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.586163645822428, 49.02561765715403] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus38708", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.575415481427542, 49.02875745070805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10414", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.573983343738142, 49.02677037365746] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12057", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.5732046465483145, 49.03784077453285] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35325", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.561893552787597, 49.04154118410379] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07041", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.56199895611086, 49.04162613053569] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35324", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.559514529559971, 49.04118696896896] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19090", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.55881269212674, 49.04125814200877] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30454", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.548795047362359, 49.04590439339881] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10304", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.548856389053909, 49.04604765320563] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30453", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.548385077336012, 49.04625140406671] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06428", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.549997403449801, 49.04903588566835] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30451", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.543968182557054, 49.04686214725682] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03204", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.544018357653604, 49.04697501147895] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28331", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.543922806647433, 49.046880850250076] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28330", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.542862708504378, 49.04736940703681] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28327", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.542770401208704, 49.04781922444621] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07026", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.544752904038435, 49.04845138404925] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28328", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.544702393697539, 49.04846880559844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16847", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.5390729458236736, 49.04797870565177] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06709", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.5210751434046905, 49.05368710146948] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00927", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.487571747077065, 49.052234116603024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00926", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.463995464115393, 49.046275309101084] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00925", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.463937029008645, 49.043696863573665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00924", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.461516985174621, 49.035477339466745] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00923", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.461397716173976, 49.033603497990065] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00922", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.461764829853785, 49.031439486446786] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00921", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.461736098180515, 49.03010660944954] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00920", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.46220824503751, 49.029201861100134] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00919", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.44905973033842, 49.03077803898317] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00918", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.448327090288608, 49.031163231442164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00917", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.447048659446956, 49.03194944491505] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00916", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.445903151201629, 49.03333590409346] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -513,6 +513,7 @@ "bus2": "MVBus00916", "length": 0.13161178225571488, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -537,6 +538,7 @@ "bus2": "MVLV10305", "length": 0.006027432985588235, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -557,6 +559,7 @@ "bus2": "MVLV13802", "length": 0.01972485063828715, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -577,6 +580,7 @@ "bus2": "MVLV18902", "length": 0.0062169144119620864, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -596,6 +600,7 @@ "bus2": "MVBus30458", "length": 0.0023087401532615463, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -614,6 +619,7 @@ "bus2": "MVLV06710", "length": 0.011525816996281366, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -636,6 +642,7 @@ "bus2": "MVLV18001", "length": 0.20216554723497288, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -665,6 +672,7 @@ "bus2": "MVLV14661", "length": 0.02313408212857222, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -693,6 +701,7 @@ "bus2": "MVBus38709", "length": 0.8601561712055001, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -713,6 +722,7 @@ "bus2": "MVLV10414", "length": 0.255618279052932, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -732,6 +742,7 @@ "bus2": "MVBus38708", "length": 0.7174874457617614, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -826,6 +837,7 @@ "bus2": "MVBus38707", "length": 0.7810390610336964, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -941,6 +953,7 @@ "bus2": "MVLV12057", "length": 0.3608666904470401, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -977,6 +990,7 @@ "bus2": "MVBus35327", "length": 0.4259832199447021, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1009,6 +1023,7 @@ "bus2": "MVBus35326", "length": 0.3452553851048107, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1034,6 +1049,7 @@ "bus2": "MVLV07041", "length": 0.01377110907182497, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1054,6 +1070,7 @@ "bus2": "MVBus35325", "length": 0.1874883237140566, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1083,6 +1100,7 @@ "bus2": "MVBus35324", "length": 0.06282985142000849, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1113,6 +1131,7 @@ "bus2": "MVLV19090", "length": 0.9222868288749778, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1167,6 +1186,7 @@ "bus2": "MVLV10304", "length": 0.0167271216600722, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1188,6 +1208,7 @@ "bus2": "MVBus30454", "length": 0.06706091210200767, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1216,6 +1237,7 @@ "bus2": "MVLV06428", "length": 0.3473397731794154, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1241,6 +1263,7 @@ "bus2": "MVBus30453", "length": 0.43934262295050397, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1272,6 +1295,7 @@ "bus2": "MVBus30452", "length": 0.053032760086801294, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1290,6 +1314,7 @@ "bus2": "MVBus30451", "length": 0.014086255823606729, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1309,6 +1334,7 @@ "bus2": "MVLV03204", "length": 0.01409106855686576, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1328,6 +1354,7 @@ "bus2": "MVBus28331", "length": 0.09993459681209216, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1349,6 +1376,7 @@ "bus2": "MVBus28330", "length": 0.06272664872796083, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1370,6 +1398,7 @@ "bus2": "MVLV07026", "length": 0.006460115007856009, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1389,6 +1418,7 @@ "bus2": "MVBus28328", "length": 0.21885935424672956, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1417,6 +1447,7 @@ "bus2": "MVBus28327", "length": 0.014141871633893131, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1438,6 +1469,7 @@ "bus2": "MVBus28325", "length": 0.38872330148286005, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1488,6 +1520,7 @@ "bus2": "MVLV16847", "length": 0.654051154512833, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1527,6 +1560,7 @@ "bus2": "MVBus23998", "length": 0.2653430767218643, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1558,6 +1592,7 @@ "bus2": "MVBus23996", "length": 0.720675603266393, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1595,6 +1630,7 @@ "bus2": "MVLV06709", "length": 2.615219412770797, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1659,6 +1695,7 @@ "bus2": "MVBus00927", "length": 2.372234450264817, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1744,6 +1781,7 @@ "bus2": "MVBus00926", "length": 0.312439862493794, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1779,6 +1817,7 @@ "bus2": "MVBus00925", "length": 0.9535930549356172, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1829,6 +1868,7 @@ "bus2": "MVBus00924", "length": 0.209729608293412, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1851,6 +1891,7 @@ "bus2": "MVBus00923", "length": 0.2505341950033376, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1878,6 +1919,7 @@ "bus2": "MVBus00922", "length": 0.15470776890167054, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1908,6 +1950,7 @@ "bus2": "MVBus00921", "length": 0.1261069012522324, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1934,6 +1977,7 @@ "bus2": "MVBus00920", "length": 1.0533444699184005, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2012,6 +2056,7 @@ "bus2": "MVBus00919", "length": 0.06860263079628186, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2031,6 +2076,7 @@ "bus2": "MVBus00918", "length": 0.13346570850969364, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2053,6 +2099,7 @@ "bus2": "MVBus00917", "length": 0.17568267802562318, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2507,11 +2554,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder128_Winter.json b/roseau/load_flow/data/networks/MVFeeder128_Winter.json index 534eb721..12026b5a 100644 --- a/roseau/load_flow/data/networks/MVFeeder128_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder128_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.446077484045924, 49.034241235768725] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder09", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.446077484045924, 49.034241235768725] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10305", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.527356876822457, 49.05063026709952] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23996", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.527305659304398, 49.050631392784375] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13802", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.530576179130021, 49.05011528391853] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23998", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.530799108036813, 49.05005551741369] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18902", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.542632731877063, 49.0478457642589] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28325", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.542619622656282, 49.04779553766782] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30458", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.544615426108271, 49.04665466011679] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30452", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.544605930612236, 49.04663486061268] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06710", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.564732788462391, 49.039903908577465] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35326", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.564656394675905, 49.0399616456111] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18001", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.568312137481616, 49.03765478152067] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35327", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.56889755134967, 49.03931854303925] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14661", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.575820358399386, 49.03313333990028] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus38707", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.575603504890467, 49.03309437846214] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus38709", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.586163645822428, 49.02561765715403] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus38708", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.575415481427542, 49.02875745070805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10414", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.573983343738142, 49.02677037365746] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12057", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.5732046465483145, 49.03784077453285] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35325", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.561893552787597, 49.04154118410379] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07041", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.56199895611086, 49.04162613053569] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus35324", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.559514529559971, 49.04118696896896] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19090", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.55881269212674, 49.04125814200877] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30454", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.548795047362359, 49.04590439339881] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10304", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.548856389053909, 49.04604765320563] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30453", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.548385077336012, 49.04625140406671] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06428", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.549997403449801, 49.04903588566835] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus30451", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.543968182557054, 49.04686214725682] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03204", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.544018357653604, 49.04697501147895] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28331", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.543922806647433, 49.046880850250076] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28330", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.542862708504378, 49.04736940703681] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28327", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.542770401208704, 49.04781922444621] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07026", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.544752904038435, 49.04845138404925] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus28328", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.544702393697539, 49.04846880559844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16847", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.5390729458236736, 49.04797870565177] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06709", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.5210751434046905, 49.05368710146948] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00927", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.487571747077065, 49.052234116603024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00926", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.463995464115393, 49.046275309101084] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00925", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.463937029008645, 49.043696863573665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00924", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.461516985174621, 49.035477339466745] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00923", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.461397716173976, 49.033603497990065] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00922", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.461764829853785, 49.031439486446786] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00921", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.461736098180515, 49.03010660944954] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00920", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.46220824503751, 49.029201861100134] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00919", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.44905973033842, 49.03077803898317] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00918", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.448327090288608, 49.031163231442164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00917", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.447048659446956, 49.03194944491505] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus00916", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.445903151201629, 49.03333590409346] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -513,6 +513,7 @@ "bus2": "MVBus00916", "length": 0.13161178225571488, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -537,6 +538,7 @@ "bus2": "MVLV10305", "length": 0.006027432985588235, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -557,6 +559,7 @@ "bus2": "MVLV13802", "length": 0.01972485063828715, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -577,6 +580,7 @@ "bus2": "MVLV18902", "length": 0.0062169144119620864, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -596,6 +600,7 @@ "bus2": "MVBus30458", "length": 0.0023087401532615463, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -614,6 +619,7 @@ "bus2": "MVLV06710", "length": 0.011525816996281366, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -636,6 +642,7 @@ "bus2": "MVLV18001", "length": 0.20216554723497288, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -665,6 +672,7 @@ "bus2": "MVLV14661", "length": 0.02313408212857222, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -693,6 +701,7 @@ "bus2": "MVBus38709", "length": 0.8601561712055001, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -713,6 +722,7 @@ "bus2": "MVLV10414", "length": 0.255618279052932, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -732,6 +742,7 @@ "bus2": "MVBus38708", "length": 0.7174874457617614, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -826,6 +837,7 @@ "bus2": "MVBus38707", "length": 0.7810390610336964, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -941,6 +953,7 @@ "bus2": "MVLV12057", "length": 0.3608666904470401, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -977,6 +990,7 @@ "bus2": "MVBus35327", "length": 0.4259832199447021, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1009,6 +1023,7 @@ "bus2": "MVBus35326", "length": 0.3452553851048107, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1034,6 +1049,7 @@ "bus2": "MVLV07041", "length": 0.01377110907182497, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1054,6 +1070,7 @@ "bus2": "MVBus35325", "length": 0.1874883237140566, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1083,6 +1100,7 @@ "bus2": "MVBus35324", "length": 0.06282985142000849, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1113,6 +1131,7 @@ "bus2": "MVLV19090", "length": 0.9222868288749778, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1167,6 +1186,7 @@ "bus2": "MVLV10304", "length": 0.0167271216600722, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1188,6 +1208,7 @@ "bus2": "MVBus30454", "length": 0.06706091210200767, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1216,6 +1237,7 @@ "bus2": "MVLV06428", "length": 0.3473397731794154, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1241,6 +1263,7 @@ "bus2": "MVBus30453", "length": 0.43934262295050397, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1272,6 +1295,7 @@ "bus2": "MVBus30452", "length": 0.053032760086801294, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1290,6 +1314,7 @@ "bus2": "MVBus30451", "length": 0.014086255823606729, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1309,6 +1334,7 @@ "bus2": "MVLV03204", "length": 0.01409106855686576, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1328,6 +1354,7 @@ "bus2": "MVBus28331", "length": 0.09993459681209216, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1349,6 +1376,7 @@ "bus2": "MVBus28330", "length": 0.06272664872796083, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1370,6 +1398,7 @@ "bus2": "MVLV07026", "length": 0.006460115007856009, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1389,6 +1418,7 @@ "bus2": "MVBus28328", "length": 0.21885935424672956, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1417,6 +1447,7 @@ "bus2": "MVBus28327", "length": 0.014141871633893131, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1438,6 +1469,7 @@ "bus2": "MVBus28325", "length": 0.38872330148286005, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1488,6 +1520,7 @@ "bus2": "MVLV16847", "length": 0.654051154512833, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1527,6 +1560,7 @@ "bus2": "MVBus23998", "length": 0.2653430767218643, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1558,6 +1592,7 @@ "bus2": "MVBus23996", "length": 0.720675603266393, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1595,6 +1630,7 @@ "bus2": "MVLV06709", "length": 2.615219412770797, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1659,6 +1695,7 @@ "bus2": "MVBus00927", "length": 2.372234450264817, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1744,6 +1781,7 @@ "bus2": "MVBus00926", "length": 0.312439862493794, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1779,6 +1817,7 @@ "bus2": "MVBus00925", "length": 0.9535930549356172, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1829,6 +1868,7 @@ "bus2": "MVBus00924", "length": 0.209729608293412, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1851,6 +1891,7 @@ "bus2": "MVBus00923", "length": 0.2505341950033376, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1878,6 +1919,7 @@ "bus2": "MVBus00922", "length": 0.15470776890167054, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1908,6 +1950,7 @@ "bus2": "MVBus00921", "length": 0.1261069012522324, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1934,6 +1977,7 @@ "bus2": "MVBus00920", "length": 1.0533444699184005, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2012,6 +2056,7 @@ "bus2": "MVBus00919", "length": 0.06860263079628186, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2031,6 +2076,7 @@ "bus2": "MVBus00918", "length": 0.13346570850969364, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2053,6 +2099,7 @@ "bus2": "MVBus00917", "length": 0.17568267802562318, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2507,11 +2554,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder151_Summer.json b/roseau/load_flow/data/networks/MVFeeder151_Summer.json index 45fa1a6e..8d4a39a7 100644 --- a/roseau/load_flow/data/networks/MVFeeder151_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder151_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.400644460738214, 49.19437059827912] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder10", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.400644460738214, 49.19437059827912] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15593", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.397099714849239, 49.203207453534056] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01144", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.394727016993843, 49.20059538450612] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01126", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.391988779495846, 49.19745201346063] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11500", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.355198846212574, 49.21312586754413] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08034", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.354209465427343, 49.21360462031885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08032", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.346331297612717, 49.212191588928825] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12166", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.348823764916332, 49.210614055003745] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08027", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.343421574081732, 49.21199189101324] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16560", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.344092898330874, 49.215241818413936] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08029", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.343957847639943, 49.21525214415334] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11499", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.34344165605453, 49.21703067189177] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08028", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.343817635021131, 49.213515226393035] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08026", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.342294877769577, 49.21116545587655] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08005", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.341857172748097, 49.210916574982235] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14902", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.33874589232792, 49.212870811064114] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12779", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.3392500854367348, 49.21300799062853] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08024", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.338983293547596, 49.21273716925712] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01034", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.335120526113163, 49.21075969320578] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08017", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.335554783420955, 49.21006478404471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05423", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.327133254002545, 49.20966460598425] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08020", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.332470098879885, 49.211270721386484] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18028", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.329209204026245, 49.21496834539136] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08019", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.333282748941467, 49.210448669580074] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08018", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.33443218631297, 49.210029536109076] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08009", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.336664524247945, 49.20817464374827] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04344", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.338969324671971, 49.20256503353621] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08011", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.339064545087953, 49.202948022258376] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01035", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.329691004172543, 49.20145516351973] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08013", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.332685539434031, 49.203508463384615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15670", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.329294788631892, 49.203772436228775] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08010", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.339985618419001, 49.20295456927056] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12777", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.341516729699154, 49.199721097795496] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08007", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.339289689674315, 49.209288122200256] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12778", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.339859736984475, 49.20901882999961] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08006", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.341377964379336, 49.210571781060345] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08004", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.351057481226238, 49.20550344920491] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05938", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.361761784304043, 49.201841114321326] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06161", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.365872429847849, 49.199108385566035] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06160", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.379982409316188, 49.19792739961313] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04803", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.380024828329451, 49.19787713001719] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01128", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.380055316559206, 49.197925264306974] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01127", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.387899837464075, 49.19752164227426] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18760", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.381353239112412, 49.2005577296417] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01131", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.381413645281745, 49.200783953209275] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12112", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.375730651232574, 49.20419860098101] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01133", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.37606254916796, 49.2036615010985] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02449", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.366077427311016, 49.20770239152203] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01137", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.36602090038556, 49.20768568085028] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01181", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.367205145767236, 49.21268268702277] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01141", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.367250493369971, 49.210069215547236] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01139", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.364300108699813, 49.20852396508281] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19065", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.362253176306516, 49.20837200995956] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01135", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.369575619515095, 49.20590586335567] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02073", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.369625753006489, 49.205890425353154] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01134", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.371497916564513, 49.20636790526618] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01130", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.386434121343654, 49.198307443094826] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01125", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.398471415240154, 49.197311120967456] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -613,6 +613,7 @@ "bus2": "MVBus01125", "length": 0.3752385234235244, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -635,6 +636,7 @@ "bus2": "MVLV15593", "length": 0.33806418331880117, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -653,6 +655,7 @@ "bus2": "MVBus01144", "length": 0.40253590942446993, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -671,6 +674,7 @@ "bus2": "MVLV11500", "length": 0.09242850337368175, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -690,6 +694,7 @@ "bus2": "MVBus08034", "length": 0.5951220206151072, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -708,6 +713,7 @@ "bus2": "MVLV12166", "length": 0.2525516529399827, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -727,6 +733,7 @@ "bus2": "MVBus08032", "length": 0.21316432697881146, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -745,6 +752,7 @@ "bus2": "MVLV16560", "length": 0.010769055997562197, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -768,6 +776,7 @@ "bus2": "MVLV11499", "length": 0.20134039675703336, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -786,6 +795,7 @@ "bus2": "MVBus08029", "length": 0.19493978157715744, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -805,6 +815,7 @@ "bus2": "MVBus08028", "length": 0.17185604602375276, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -823,6 +834,7 @@ "bus2": "MVBus08027", "length": 0.1232348734949884, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -841,6 +853,7 @@ "bus2": "MVBus08026", "length": 0.042228362272331434, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -859,6 +872,7 @@ "bus2": "MVBus14902", "length": 0.03965157043617779, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -878,6 +892,7 @@ "bus2": "MVLV12779", "length": 0.03572113363139701, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -897,6 +912,7 @@ "bus2": "MVBus08024", "length": 0.29127642224019146, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -915,6 +931,7 @@ "bus2": "MVLV01034", "length": 0.08350995205919573, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -933,6 +950,7 @@ "bus2": "MVLV05423", "length": 0.42792148928492063, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -951,6 +969,7 @@ "bus2": "MVLV18028", "length": 0.4749260157342042, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -969,6 +988,7 @@ "bus2": "MVBus08020", "length": 0.10892327206842724, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -987,6 +1007,7 @@ "bus2": "MVBus08019", "length": 0.09593325522205273, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1006,6 +1027,7 @@ "bus2": "MVBus08018", "length": 0.08189035254735173, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1024,6 +1046,7 @@ "bus2": "MVBus08017", "length": 0.22522575428647068, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1042,6 +1065,7 @@ "bus2": "MVLV04344", "length": 0.04315512044334193, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1060,6 +1084,7 @@ "bus2": "MVLV01035", "length": 0.3367014083562083, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1079,6 +1104,7 @@ "bus2": "MVLV15670", "length": 0.24883212415093037, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1097,6 +1123,7 @@ "bus2": "MVBus08013", "length": 0.4690211849346568, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1115,6 +1142,7 @@ "bus2": "MVBus08011", "length": 0.0671262774393411, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1133,6 +1161,7 @@ "bus2": "MVLV12777", "length": 0.37722292711614785, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1152,6 +1181,7 @@ "bus2": "MVBus08010", "length": 0.6289669786255697, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1170,6 +1200,7 @@ "bus2": "MVBus08009", "length": 0.22939722671397728, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1190,6 +1221,7 @@ "bus2": "MVLV12778", "length": 0.05120761384486094, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1208,6 +1240,7 @@ "bus2": "MVBus08007", "length": 0.20864592838227725, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1226,6 +1259,7 @@ "bus2": "MVBus08006", "length": 0.0518609316474867, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1244,6 +1278,7 @@ "bus2": "MVBus08005", "length": 0.9010255782680595, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1262,6 +1297,7 @@ "bus2": "MVBus08004", "length": 1.0507376333123526, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1306,6 +1342,7 @@ "bus2": "MVLV05938", "length": 0.5953633486620007, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1349,6 +1386,7 @@ "bus2": "MVBus06161", "length": 1.0378022639401279, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1368,6 +1406,7 @@ "bus2": "MVBus06160", "length": 0.009629375798791267, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1387,6 +1426,7 @@ "bus2": "MVLV04803", "length": 0.008867814366420233, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1408,6 +1448,7 @@ "bus2": "MVBus01128", "length": 0.5734816068735786, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1426,6 +1467,7 @@ "bus2": "MVLV18760", "length": 0.025541382409007853, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1444,6 +1486,7 @@ "bus2": "MVLV12112", "length": 0.09091630042257265, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1468,6 +1511,7 @@ "bus2": "MVLV02449", "length": 0.0064674831481781325, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1487,6 +1531,7 @@ "bus2": "MVLV01181", "length": 0.2906729553743542, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1505,6 +1550,7 @@ "bus2": "MVBus01141", "length": 0.3020679040124087, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1535,6 +1581,7 @@ "bus2": "MVLV19065", "length": 0.21131752047883515, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1565,6 +1612,7 @@ "bus2": "MVBus01139", "length": 0.15624899895376643, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1583,6 +1631,7 @@ "bus2": "MVBus01137", "length": 0.3285660531135982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1606,6 +1655,7 @@ "bus2": "MVLV02073", "length": 0.004641468215196063, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1625,6 +1675,7 @@ "bus2": "MVBus01135", "length": 0.15834763398679907, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1645,6 +1696,7 @@ "bus2": "MVBus01134", "length": 0.4511924575632565, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1665,6 +1717,7 @@ "bus2": "MVBus01133", "length": 0.5044646560906615, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1683,6 +1736,7 @@ "bus2": "MVBus01131", "length": 0.4579636430168069, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1701,6 +1755,7 @@ "bus2": "MVBus01130", "length": 0.13801655858311052, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1719,6 +1774,7 @@ "bus2": "MVBus01127", "length": 0.2981111190342436, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1737,6 +1793,7 @@ "bus2": "MVBus01126", "length": 0.4727286229290833, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2332,11 +2389,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -2364,11 +2420,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -2396,11 +2451,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder151_Winter.json b/roseau/load_flow/data/networks/MVFeeder151_Winter.json index 9f052509..d8c73e14 100644 --- a/roseau/load_flow/data/networks/MVFeeder151_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder151_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.400644460738214, 49.19437059827912] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder10", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.400644460738214, 49.19437059827912] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15593", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.397099714849239, 49.203207453534056] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01144", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.394727016993843, 49.20059538450612] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01126", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.391988779495846, 49.19745201346063] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11500", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.355198846212574, 49.21312586754413] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08034", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.354209465427343, 49.21360462031885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08032", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.346331297612717, 49.212191588928825] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12166", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.348823764916332, 49.210614055003745] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08027", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.343421574081732, 49.21199189101324] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16560", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.344092898330874, 49.215241818413936] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08029", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.343957847639943, 49.21525214415334] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11499", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.34344165605453, 49.21703067189177] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08028", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.343817635021131, 49.213515226393035] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08026", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.342294877769577, 49.21116545587655] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08005", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.341857172748097, 49.210916574982235] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14902", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.33874589232792, 49.212870811064114] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12779", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.3392500854367348, 49.21300799062853] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08024", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.338983293547596, 49.21273716925712] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01034", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.335120526113163, 49.21075969320578] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08017", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.335554783420955, 49.21006478404471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05423", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.327133254002545, 49.20966460598425] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08020", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.332470098879885, 49.211270721386484] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18028", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.329209204026245, 49.21496834539136] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08019", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.333282748941467, 49.210448669580074] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08018", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.33443218631297, 49.210029536109076] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08009", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.336664524247945, 49.20817464374827] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04344", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.338969324671971, 49.20256503353621] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08011", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.339064545087953, 49.202948022258376] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01035", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.329691004172543, 49.20145516351973] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08013", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.332685539434031, 49.203508463384615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15670", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.329294788631892, 49.203772436228775] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08010", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.339985618419001, 49.20295456927056] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12777", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.341516729699154, 49.199721097795496] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08007", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.339289689674315, 49.209288122200256] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12778", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.339859736984475, 49.20901882999961] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08006", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.341377964379336, 49.210571781060345] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08004", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.351057481226238, 49.20550344920491] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05938", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.361761784304043, 49.201841114321326] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06161", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.365872429847849, 49.199108385566035] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06160", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.379982409316188, 49.19792739961313] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04803", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.380024828329451, 49.19787713001719] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01128", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.380055316559206, 49.197925264306974] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01127", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.387899837464075, 49.19752164227426] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18760", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.381353239112412, 49.2005577296417] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01131", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.381413645281745, 49.200783953209275] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12112", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.375730651232574, 49.20419860098101] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01133", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.37606254916796, 49.2036615010985] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02449", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.366077427311016, 49.20770239152203] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01137", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.36602090038556, 49.20768568085028] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01181", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.367205145767236, 49.21268268702277] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01141", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.367250493369971, 49.210069215547236] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01139", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.364300108699813, 49.20852396508281] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19065", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.362253176306516, 49.20837200995956] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01135", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.369575619515095, 49.20590586335567] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02073", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.369625753006489, 49.205890425353154] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01134", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.371497916564513, 49.20636790526618] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01130", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.386434121343654, 49.198307443094826] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01125", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.398471415240154, 49.197311120967456] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -613,6 +613,7 @@ "bus2": "MVBus01125", "length": 0.3752385234235244, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -635,6 +636,7 @@ "bus2": "MVLV15593", "length": 0.33806418331880117, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -653,6 +655,7 @@ "bus2": "MVBus01144", "length": 0.40253590942446993, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -671,6 +674,7 @@ "bus2": "MVLV11500", "length": 0.09242850337368175, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -690,6 +694,7 @@ "bus2": "MVBus08034", "length": 0.5951220206151072, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -708,6 +713,7 @@ "bus2": "MVLV12166", "length": 0.2525516529399827, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -727,6 +733,7 @@ "bus2": "MVBus08032", "length": 0.21316432697881146, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -745,6 +752,7 @@ "bus2": "MVLV16560", "length": 0.010769055997562197, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -768,6 +776,7 @@ "bus2": "MVLV11499", "length": 0.20134039675703336, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -786,6 +795,7 @@ "bus2": "MVBus08029", "length": 0.19493978157715744, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -805,6 +815,7 @@ "bus2": "MVBus08028", "length": 0.17185604602375276, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -823,6 +834,7 @@ "bus2": "MVBus08027", "length": 0.1232348734949884, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -841,6 +853,7 @@ "bus2": "MVBus08026", "length": 0.042228362272331434, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -859,6 +872,7 @@ "bus2": "MVBus14902", "length": 0.03965157043617779, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -878,6 +892,7 @@ "bus2": "MVLV12779", "length": 0.03572113363139701, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -897,6 +912,7 @@ "bus2": "MVBus08024", "length": 0.29127642224019146, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -915,6 +931,7 @@ "bus2": "MVLV01034", "length": 0.08350995205919573, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -933,6 +950,7 @@ "bus2": "MVLV05423", "length": 0.42792148928492063, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -951,6 +969,7 @@ "bus2": "MVLV18028", "length": 0.4749260157342042, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -969,6 +988,7 @@ "bus2": "MVBus08020", "length": 0.10892327206842724, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -987,6 +1007,7 @@ "bus2": "MVBus08019", "length": 0.09593325522205273, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1006,6 +1027,7 @@ "bus2": "MVBus08018", "length": 0.08189035254735173, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1024,6 +1046,7 @@ "bus2": "MVBus08017", "length": 0.22522575428647068, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1042,6 +1065,7 @@ "bus2": "MVLV04344", "length": 0.04315512044334193, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1060,6 +1084,7 @@ "bus2": "MVLV01035", "length": 0.3367014083562083, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1079,6 +1104,7 @@ "bus2": "MVLV15670", "length": 0.24883212415093037, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1097,6 +1123,7 @@ "bus2": "MVBus08013", "length": 0.4690211849346568, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1115,6 +1142,7 @@ "bus2": "MVBus08011", "length": 0.0671262774393411, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1133,6 +1161,7 @@ "bus2": "MVLV12777", "length": 0.37722292711614785, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1152,6 +1181,7 @@ "bus2": "MVBus08010", "length": 0.6289669786255697, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1170,6 +1200,7 @@ "bus2": "MVBus08009", "length": 0.22939722671397728, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1190,6 +1221,7 @@ "bus2": "MVLV12778", "length": 0.05120761384486094, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1208,6 +1240,7 @@ "bus2": "MVBus08007", "length": 0.20864592838227725, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1226,6 +1259,7 @@ "bus2": "MVBus08006", "length": 0.0518609316474867, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1244,6 +1278,7 @@ "bus2": "MVBus08005", "length": 0.9010255782680595, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1262,6 +1297,7 @@ "bus2": "MVBus08004", "length": 1.0507376333123526, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1306,6 +1342,7 @@ "bus2": "MVLV05938", "length": 0.5953633486620007, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1349,6 +1386,7 @@ "bus2": "MVBus06161", "length": 1.0378022639401279, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1368,6 +1406,7 @@ "bus2": "MVBus06160", "length": 0.009629375798791267, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1387,6 +1426,7 @@ "bus2": "MVLV04803", "length": 0.008867814366420233, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1408,6 +1448,7 @@ "bus2": "MVBus01128", "length": 0.5734816068735786, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1426,6 +1467,7 @@ "bus2": "MVLV18760", "length": 0.025541382409007853, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1444,6 +1486,7 @@ "bus2": "MVLV12112", "length": 0.09091630042257265, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1468,6 +1511,7 @@ "bus2": "MVLV02449", "length": 0.0064674831481781325, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1487,6 +1531,7 @@ "bus2": "MVLV01181", "length": 0.2906729553743542, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1505,6 +1550,7 @@ "bus2": "MVBus01141", "length": 0.3020679040124087, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1535,6 +1581,7 @@ "bus2": "MVLV19065", "length": 0.21131752047883515, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1565,6 +1612,7 @@ "bus2": "MVBus01139", "length": 0.15624899895376643, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1583,6 +1631,7 @@ "bus2": "MVBus01137", "length": 0.3285660531135982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1606,6 +1655,7 @@ "bus2": "MVLV02073", "length": 0.004641468215196063, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1625,6 +1675,7 @@ "bus2": "MVBus01135", "length": 0.15834763398679907, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1645,6 +1696,7 @@ "bus2": "MVBus01134", "length": 0.4511924575632565, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1665,6 +1717,7 @@ "bus2": "MVBus01133", "length": 0.5044646560906615, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1683,6 +1736,7 @@ "bus2": "MVBus01131", "length": 0.4579636430168069, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1701,6 +1755,7 @@ "bus2": "MVBus01130", "length": 0.13801655858311052, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1719,6 +1774,7 @@ "bus2": "MVBus01127", "length": 0.2981111190342436, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1737,6 +1793,7 @@ "bus2": "MVBus01126", "length": 0.4727286229290833, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2332,11 +2389,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -2364,11 +2420,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -2396,11 +2451,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder159_Summer.json b/roseau/load_flow/data/networks/MVFeeder159_Summer.json index d3873359..cf08eb6d 100644 --- a/roseau/load_flow/data/networks/MVFeeder159_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder159_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-0.823722473264189, 49.08918556668978] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder11", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.823722473264189, 49.08918556668978] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15631", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.746815763939693, 49.09729143625947] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01232", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.759675327492745, 49.09778635178023] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01231", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.77124939189729, 49.09843688079068] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01230", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.79507751183405, 49.099983820176625] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01229", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.823140030519513, 49.090320790001456] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01228", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.823321260123735, 49.090080324540615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -103,6 +103,7 @@ "bus2": "MVBus01228", "length": 0.19507911152510984, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -136,6 +137,7 @@ "bus2": "MVBus15631", "length": 0.9407300845096866, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -154,6 +156,7 @@ "bus2": "MVBus01232", "length": 1.394446123280823, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -178,6 +181,7 @@ "bus2": "MVBus01231", "length": 1.7485644717941622, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -196,6 +200,7 @@ "bus2": "MVBus01230", "length": 2.4969102502171268, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -218,6 +223,7 @@ "bus2": "MVBus01229", "length": 0.029839215946133233, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -284,11 +290,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -316,11 +321,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder159_Winter.json b/roseau/load_flow/data/networks/MVFeeder159_Winter.json index d3873359..cf08eb6d 100644 --- a/roseau/load_flow/data/networks/MVFeeder159_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder159_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-0.823722473264189, 49.08918556668978] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder11", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.823722473264189, 49.08918556668978] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15631", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.746815763939693, 49.09729143625947] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01232", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.759675327492745, 49.09778635178023] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01231", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.77124939189729, 49.09843688079068] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01230", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.79507751183405, 49.099983820176625] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01229", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.823140030519513, 49.090320790001456] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01228", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.823321260123735, 49.090080324540615] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -103,6 +103,7 @@ "bus2": "MVBus01228", "length": 0.19507911152510984, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -136,6 +137,7 @@ "bus2": "MVBus15631", "length": 0.9407300845096866, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -154,6 +156,7 @@ "bus2": "MVBus01232", "length": 1.394446123280823, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -178,6 +181,7 @@ "bus2": "MVBus01231", "length": 1.7485644717941622, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -196,6 +200,7 @@ "bus2": "MVBus01230", "length": 2.4969102502171268, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -218,6 +223,7 @@ "bus2": "MVBus01229", "length": 0.029839215946133233, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -284,11 +290,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -316,11 +321,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder176_Summer.json b/roseau/load_flow/data/networks/MVFeeder176_Summer.json index a4151cd9..d68bcece 100644 --- a/roseau/load_flow/data/networks/MVFeeder176_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder176_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.38711604794349, 48.41717064276834] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder12", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.38711604794349, 48.41717064276834] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06096", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.362858591541591, 48.414881616803214] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06095", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.365229322235862, 48.416324977868435] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06094", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.366766843846228, 48.41731305907785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19321", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.366731410678534, 48.41736141399922] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01516", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.36739305364224, 48.417816117608396] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01498", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.36829863977381, 48.41844540537065] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19350", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.331861978401239, 48.431829215696744] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11807", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.327147956087218, 48.43144350932597] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17095", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.325298094688831, 48.434303528730496] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11806", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.326920591011296, 48.42991363986901] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01513", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.326826060299798, 48.42931200536187] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01511", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.331171114334699, 48.428605571824306] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14280", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.330977758055885, 48.42840107856877] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01510", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.334884366737857, 48.42657238910191] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01502", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.343510895179884, 48.4215837436143] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17080", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.339048333937162, 48.42193972026597] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01505", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.339043062931441, 48.42191956211516] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14605", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.327133123316432, 48.418995112592626] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01507", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.332339064126028, 48.421605122151064] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04587", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.331888333253353, 48.42156111279841] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01504", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.340095117958516, 48.42180926616064] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04956", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.345262339955037, 48.42252150957554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01501", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.35914112549976, 48.41765083872024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01500", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.360008183133618, 48.417962950329574] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01499", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.361756314657262, 48.41859218800213] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11843", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.362743294787271, 48.417852382430524] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01514", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.362436041584863, 48.418047008041256] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01497", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.369958030820661, 48.41963507980983] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04958", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.37452717049491, 48.41922677819152] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01517", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.372549072493029, 48.41889081443412] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01496", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.387006136030383, 48.41719264377117] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -353,6 +353,7 @@ "bus2": "MVBus01496", "length": 0.007040950920418707, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -373,6 +374,7 @@ "bus2": "MVBus06096", "length": 0.3807032213615068, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -420,6 +422,7 @@ "bus2": "MVBus06095", "length": 0.1581928883806596, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -438,6 +441,7 @@ "bus2": "MVLV19321", "length": 0.010429775061381805, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -459,6 +463,7 @@ "bus2": "MVBus06094", "length": 0.06638103907679009, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -477,6 +482,7 @@ "bus2": "MVBus01516", "length": 0.09065992156646324, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -495,6 +501,7 @@ "bus2": "MVLV19350", "length": 0.40384522738100076, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -516,6 +523,7 @@ "bus2": "MVLV17095", "length": 0.3681571574196088, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -535,6 +543,7 @@ "bus2": "MVBus11807", "length": 0.17094951497800995, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -553,6 +562,7 @@ "bus2": "MVBus11806", "length": 0.06726571930181688, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -571,6 +581,7 @@ "bus2": "MVBus01513", "length": 0.3310102993678586, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -589,6 +600,7 @@ "bus2": "MVLV14280", "length": 0.02686703650765068, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -607,6 +619,7 @@ "bus2": "MVBus01511", "length": 0.3558557266295331, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -625,6 +638,7 @@ "bus2": "MVBus01510", "length": 0.845790745290288, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -643,6 +657,7 @@ "bus2": "MVLV17080", "length": 0.0022752537151376866, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -661,6 +676,7 @@ "bus2": "MVLV14605", "length": 0.49596181673738937, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -684,6 +700,7 @@ "bus2": "MVLV04587", "length": 0.033718019705241936, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -702,6 +719,7 @@ "bus2": "MVBus01507", "length": 0.5020595961392756, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -721,6 +739,7 @@ "bus2": "MVBus01505", "length": 0.07882774284595279, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -739,6 +758,7 @@ "bus2": "MVBus01504", "length": 0.25865864050746357, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -758,6 +778,7 @@ "bus2": "MVLV04956", "length": 0.18491086405326376, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -778,6 +799,7 @@ "bus2": "MVBus01502", "length": 1.2413790241150546, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -798,6 +820,7 @@ "bus2": "MVBus01501", "length": 0.07296328390773768, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -816,6 +839,7 @@ "bus2": "MVBus01500", "length": 0.14710335821626808, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -835,6 +859,7 @@ "bus2": "MVLV11843", "length": 0.031394682426450396, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -853,6 +878,7 @@ "bus2": "MVBus01514", "length": 0.07878204036531004, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -871,6 +897,7 @@ "bus2": "MVBus01499", "length": 0.5020280176005155, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -890,6 +917,7 @@ "bus2": "MVBus01498", "length": 0.18051865662498154, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -908,6 +936,7 @@ "bus2": "MVLV04958", "length": 0.16122038053777868, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -927,6 +956,7 @@ "bus2": "MVBus01517", "length": 0.21090018378627376, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -946,6 +976,7 @@ "bus2": "MVBus01497", "length": 1.4206347528139422, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1255,11 +1286,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -1287,11 +1317,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -1319,11 +1348,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder176_Winter.json b/roseau/load_flow/data/networks/MVFeeder176_Winter.json index fe85f067..e5d7917f 100644 --- a/roseau/load_flow/data/networks/MVFeeder176_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder176_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.38711604794349, 48.41717064276834] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder12", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.38711604794349, 48.41717064276834] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06096", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.362858591541591, 48.414881616803214] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06095", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.365229322235862, 48.416324977868435] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06094", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.366766843846228, 48.41731305907785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19321", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.366731410678534, 48.41736141399922] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01516", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.36739305364224, 48.417816117608396] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01498", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.36829863977381, 48.41844540537065] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19350", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.331861978401239, 48.431829215696744] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11807", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.327147956087218, 48.43144350932597] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17095", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.325298094688831, 48.434303528730496] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11806", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.326920591011296, 48.42991363986901] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01513", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.326826060299798, 48.42931200536187] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01511", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.331171114334699, 48.428605571824306] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14280", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.330977758055885, 48.42840107856877] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01510", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.334884366737857, 48.42657238910191] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01502", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.343510895179884, 48.4215837436143] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17080", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.339048333937162, 48.42193972026597] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01505", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.339043062931441, 48.42191956211516] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14605", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.327133123316432, 48.418995112592626] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01507", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.332339064126028, 48.421605122151064] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04587", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.331888333253353, 48.42156111279841] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01504", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.340095117958516, 48.42180926616064] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04956", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.345262339955037, 48.42252150957554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01501", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.35914112549976, 48.41765083872024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01500", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.360008183133618, 48.417962950329574] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01499", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.361756314657262, 48.41859218800213] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11843", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.362743294787271, 48.417852382430524] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01514", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.362436041584863, 48.418047008041256] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01497", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.369958030820661, 48.41963507980983] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04958", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.37452717049491, 48.41922677819152] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01517", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.372549072493029, 48.41889081443412] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01496", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.387006136030383, 48.41719264377117] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -353,6 +353,7 @@ "bus2": "MVBus01496", "length": 0.007040950920418707, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -373,6 +374,7 @@ "bus2": "MVBus06096", "length": 0.3807032213615068, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -420,6 +422,7 @@ "bus2": "MVBus06095", "length": 0.1581928883806596, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -438,6 +441,7 @@ "bus2": "MVLV19321", "length": 0.010429775061381805, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -459,6 +463,7 @@ "bus2": "MVBus06094", "length": 0.06638103907679009, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -477,6 +482,7 @@ "bus2": "MVBus01516", "length": 0.09065992156646324, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -495,6 +501,7 @@ "bus2": "MVLV19350", "length": 0.40384522738100076, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -516,6 +523,7 @@ "bus2": "MVLV17095", "length": 0.3681571574196088, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -535,6 +543,7 @@ "bus2": "MVBus11807", "length": 0.17094951497800995, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -553,6 +562,7 @@ "bus2": "MVBus11806", "length": 0.06726571930181688, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -571,6 +581,7 @@ "bus2": "MVBus01513", "length": 0.3310102993678586, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -589,6 +600,7 @@ "bus2": "MVLV14280", "length": 0.02686703650765068, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -607,6 +619,7 @@ "bus2": "MVBus01511", "length": 0.3558557266295331, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -625,6 +638,7 @@ "bus2": "MVBus01510", "length": 0.845790745290288, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -643,6 +657,7 @@ "bus2": "MVLV17080", "length": 0.0022752537151376866, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -661,6 +676,7 @@ "bus2": "MVLV14605", "length": 0.49596181673738937, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -684,6 +700,7 @@ "bus2": "MVLV04587", "length": 0.033718019705241936, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -702,6 +719,7 @@ "bus2": "MVBus01507", "length": 0.5020595961392756, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -721,6 +739,7 @@ "bus2": "MVBus01505", "length": 0.07882774284595279, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -739,6 +758,7 @@ "bus2": "MVBus01504", "length": 0.25865864050746357, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -758,6 +778,7 @@ "bus2": "MVLV04956", "length": 0.18491086405326376, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -778,6 +799,7 @@ "bus2": "MVBus01502", "length": 1.2413790241150546, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -798,6 +820,7 @@ "bus2": "MVBus01501", "length": 0.07296328390773768, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -816,6 +839,7 @@ "bus2": "MVBus01500", "length": 0.14710335821626808, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -835,6 +859,7 @@ "bus2": "MVLV11843", "length": 0.031394682426450396, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -853,6 +878,7 @@ "bus2": "MVBus01514", "length": 0.07878204036531004, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -871,6 +897,7 @@ "bus2": "MVBus01499", "length": 0.5020280176005155, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -890,6 +917,7 @@ "bus2": "MVBus01498", "length": 0.18051865662498154, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -908,6 +936,7 @@ "bus2": "MVLV04958", "length": 0.16122038053777868, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -927,6 +956,7 @@ "bus2": "MVBus01517", "length": 0.21090018378627376, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -946,6 +976,7 @@ "bus2": "MVBus01497", "length": 1.4206347528139422, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1255,11 +1286,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -1287,11 +1317,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -1319,11 +1348,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder210_Summer.json b/roseau/load_flow/data/networks/MVFeeder210_Summer.json index 77b31680..21dc84f9 100644 --- a/roseau/load_flow/data/networks/MVFeeder210_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder210_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.315508137717839, 48.67552963511552] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder14", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.315508137717839, 48.67552963511552] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12961", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.359690288894828, 48.70030435899507] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17524", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.360816212595922, 48.70113087837448] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17523", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.36250058294375, 48.699920974017196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08691", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.362017012011286, 48.707740359055315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17533", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.363787332955464, 48.70687745644073] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05594", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.372474957363736, 48.70819963640383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17536", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.371470530798074, 48.708006097671856] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15838", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.372263248440009, 48.70572814874992] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17535", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.365482557431456, 48.70845136474554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17532", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.361706222495278, 48.70493345667249] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17530", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.362654078028266, 48.70439394941558] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12960", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.361146143854642, 48.70373258684646] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17529", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.365766216776604, 48.70323344674769] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17528", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.366857582095782, 48.702909804508195] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11643", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.36985327513618, 48.70171789916646] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17540", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.369391365276649, 48.702312360854734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17539", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.368602686985163, 48.702762027953426] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17527", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.365080155168652, 48.702931226958164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17526", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.364469760819947, 48.702221813021815] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17515", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.361872248455002, 48.698372926745066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11234", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.381057295037861, 48.68857227401332] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17518", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.380593480920253, 48.68951313748911] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02676", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.386086307107507, 48.69024982994571] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17519", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.386095076128499, 48.69020544337535] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00763", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.386320350855856, 48.69674688889175] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24053", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.387228378138695, 48.69648346340322] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24052", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.390456896571498, 48.694092429012166] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04069", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.393859245371176, 48.678398121997645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24062", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.396689119419465, 48.68008386227141] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02107", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.397198756611179, 48.68002106022296] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24064", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.397175010325148, 48.680005646047306] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24061", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.396086853166442, 48.68016686423779] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24059", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.391320095620501, 48.68124807997599] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06953", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.391318871202315, 48.68128407741701] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24058", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.387495141567356, 48.683362598407236] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08246", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.387208961037065, 48.68286061089437] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24057", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.388369912450079, 48.684359890565865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15406", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.389247638808418, 48.68704140487774] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24056", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.389136030184977, 48.68430691391075] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24055", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.398561158560935, 48.687535479227805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00545", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.401395938329806, 48.67482940726141] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24095", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.402903063269356, 48.67421149659865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24094", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.406207660086664, 48.675123055199464] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03222", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.410177531992409, 48.67251969634844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24097", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.407329364348828, 48.67378715489126] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24093", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.410767426786093, 48.67586486863645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24092", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.411978407328498, 48.676764286658575] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24069", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.413074070122556, 48.67823125435254] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10453", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.420420507191141, 48.68634791867971] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24076", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.424667185742581, 48.68251880629374] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09363", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.424579380339677, 48.68254398026742] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24075", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.420328922524153, 48.677875121617966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24073", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.419810117061095, 48.67734764388789] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13819", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.417411347774322, 48.6790354886807] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24072", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.421340042028947, 48.67636068076991] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18922", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.425622793335055, 48.67794155813378] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24071", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.420630681455058, 48.674440314166944] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24070", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.419991973797182, 48.67443548826671] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00547", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.419761534530391, 48.67316204924771] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24080", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.42136624107891, 48.67352763843192] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02728", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.424157252985195, 48.67046024446686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24082", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.425433424469281, 48.6704288218968] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14266", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.423949664678889, 48.6680024069041] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24090", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.424019455111165, 48.667992607111934] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24085", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-1.42773882512684, 48.667518960930806] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18920", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-1.435905350518214, 48.665013198677705] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39974", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-1.438557514204313, 48.66571332634098] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39989", @@ -711,8 +711,8 @@ "type": "Point", "coordinates": [-1.471496954704484, 48.684283897260315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39986", @@ -721,8 +721,8 @@ "type": "Point", "coordinates": [-1.454111420613221, 48.67365783095757] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14633", @@ -731,8 +731,8 @@ "type": "Point", "coordinates": [-1.456255345960154, 48.673153506275305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39987", @@ -741,8 +741,8 @@ "type": "Point", "coordinates": [-1.454133606341398, 48.67364249809416] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39985", @@ -751,8 +751,8 @@ "type": "Point", "coordinates": [-1.453998689564143, 48.67360108655294] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39983", @@ -761,8 +761,8 @@ "type": "Point", "coordinates": [-1.448362516861079, 48.67139846929151] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00544", @@ -771,8 +771,8 @@ "type": "Point", "coordinates": [-1.449205686310729, 48.67094761063653] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39982", @@ -781,8 +781,8 @@ "type": "Point", "coordinates": [-1.445506049849497, 48.66907708140258] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39981", @@ -791,8 +791,8 @@ "type": "Point", "coordinates": [-1.44375635095643, 48.668776616576054] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18919", @@ -801,8 +801,8 @@ "type": "Point", "coordinates": [-1.443288177621643, 48.668471426684015] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39990", @@ -811,8 +811,8 @@ "type": "Point", "coordinates": [-1.443343047955685, 48.66847284504271] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39980", @@ -821,8 +821,8 @@ "type": "Point", "coordinates": [-1.444227964428699, 48.668319010605344] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39978", @@ -831,8 +831,8 @@ "type": "Point", "coordinates": [-1.443199968358023, 48.66690877873582] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06448", @@ -841,8 +841,8 @@ "type": "Point", "coordinates": [-1.446079710619304, 48.66557326975702] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39976", @@ -851,8 +851,8 @@ "type": "Point", "coordinates": [-1.441570933640071, 48.66627762495946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09015", @@ -861,8 +861,8 @@ "type": "Point", "coordinates": [-1.438449788295261, 48.67104614339778] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24089", @@ -871,8 +871,8 @@ "type": "Point", "coordinates": [-1.437540172188118, 48.66623721183292] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24086", @@ -881,8 +881,8 @@ "type": "Point", "coordinates": [-1.429737921743526, 48.66740399771851] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06447", @@ -891,8 +891,8 @@ "type": "Point", "coordinates": [-1.432209635049518, 48.67056922323461] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24087", @@ -901,8 +901,8 @@ "type": "Point", "coordinates": [-1.430226347180375, 48.66816721336321] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24084", @@ -911,8 +911,8 @@ "type": "Point", "coordinates": [-1.427550443876756, 48.66832702556939] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24081", @@ -921,8 +921,8 @@ "type": "Point", "coordinates": [-1.423458086823049, 48.672063747279815] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24068", @@ -931,8 +931,8 @@ "type": "Point", "coordinates": [-1.408493773037451, 48.68069081868821] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10323", @@ -941,8 +941,8 @@ "type": "Point", "coordinates": [-1.413039955009211, 48.681710134344065] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24101", @@ -951,8 +951,8 @@ "type": "Point", "coordinates": [-1.411072946287639, 48.68122377495599] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24100", @@ -961,8 +961,8 @@ "type": "Point", "coordinates": [-1.40965762004385, 48.68091651992885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10324", @@ -971,8 +971,8 @@ "type": "Point", "coordinates": [-1.410867808177468, 48.68472414481989] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24104", @@ -981,8 +981,8 @@ "type": "Point", "coordinates": [-1.410457520575412, 48.6846248924926] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00546", @@ -991,8 +991,8 @@ "type": "Point", "coordinates": [-1.409563445224697, 48.687969213263976] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24108", @@ -1001,8 +1001,8 @@ "type": "Point", "coordinates": [-1.409907100020805, 48.68709324149833] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24107", @@ -1011,8 +1011,8 @@ "type": "Point", "coordinates": [-1.410557522651376, 48.685621609766095] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24106", @@ -1021,8 +1021,8 @@ "type": "Point", "coordinates": [-1.41052130409578, 48.6846345578222] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24103", @@ -1031,8 +1031,8 @@ "type": "Point", "coordinates": [-1.410375244576262, 48.68359763038951] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24099", @@ -1041,8 +1041,8 @@ "type": "Point", "coordinates": [-1.409110034494963, 48.68080865138281] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24051", @@ -1051,8 +1051,8 @@ "type": "Point", "coordinates": [-1.389640377977582, 48.6936695244645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24050", @@ -1061,8 +1061,8 @@ "type": "Point", "coordinates": [-1.386585620553674, 48.692516906896316] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05135", @@ -1071,8 +1071,8 @@ "type": "Point", "coordinates": [-1.388721682538931, 48.69170724856656] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00762", @@ -1081,8 +1081,8 @@ "type": "Point", "coordinates": [-1.3860685283105134, 48.69022637502021] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17517", @@ -1091,8 +1091,8 @@ "type": "Point", "coordinates": [-1.37140828752311, 48.69474338047859] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17516", @@ -1101,8 +1101,8 @@ "type": "Point", "coordinates": [-1.370008749538573, 48.69484206776048] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15837", @@ -1111,8 +1111,8 @@ "type": "Point", "coordinates": [-1.3610517542755765, 48.69858050796095] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08235", @@ -1121,8 +1121,8 @@ "type": "Point", "coordinates": [-1.350033533716369, 48.70073831530751] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08234", @@ -1131,8 +1131,8 @@ "type": "Point", "coordinates": [-1.349583389791825, 48.7002449228178] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08233", @@ -1141,8 +1141,8 @@ "type": "Point", "coordinates": [-1.349090863664277, 48.69988795473] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08232", @@ -1151,8 +1151,8 @@ "type": "Point", "coordinates": [-1.332662258481913, 48.69470601327688] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08231", @@ -1161,8 +1161,8 @@ "type": "Point", "coordinates": [-1.332456160398833, 48.694750388404394] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16807", @@ -1171,8 +1171,8 @@ "type": "Point", "coordinates": [-1.3324397522750886, 48.69480756439362] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08873", @@ -1181,8 +1181,8 @@ "type": "Point", "coordinates": [-1.337811745653045, 48.69348041079462] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08990", @@ -1191,8 +1191,8 @@ "type": "Point", "coordinates": [-1.337017272071378, 48.69361150583635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13668", @@ -1201,8 +1201,8 @@ "type": "Point", "coordinates": [-1.336768360474335, 48.693054819581505] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08989", @@ -1211,8 +1211,8 @@ "type": "Point", "coordinates": [-1.333868868924871, 48.69442417043966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08988", @@ -1221,8 +1221,8 @@ "type": "Point", "coordinates": [-1.332769653966778, 48.694856436515416] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08987", @@ -1231,8 +1231,8 @@ "type": "Point", "coordinates": [-1.332696716348577, 48.69475012796576] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05030", @@ -1241,8 +1241,8 @@ "type": "Point", "coordinates": [-1.332311951909265, 48.6947431871332] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05028", @@ -1251,8 +1251,8 @@ "type": "Point", "coordinates": [-1.324403471836129, 48.688034195862905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06298", @@ -1261,8 +1261,8 @@ "type": "Point", "coordinates": [-1.32466065492585, 48.6880640048316] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05027", @@ -1271,8 +1271,8 @@ "type": "Point", "coordinates": [-1.324640695755288, 48.68391926354705] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05026", @@ -1281,8 +1281,8 @@ "type": "Point", "coordinates": [-1.324633327379154, 48.681828081809556] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06299", @@ -1291,8 +1291,8 @@ "type": "Point", "coordinates": [-1.3243096308857334, 48.677222514427754] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -1303,6 +1303,7 @@ "bus2": "MVLV06299", "length": 0.8907821128978984, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1340,6 +1341,7 @@ "bus2": "MVLV12961", "length": 0.14178813460374382, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1363,6 +1365,7 @@ "bus2": "MVBus17524", "length": 0.1843169641640161, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1382,6 +1385,7 @@ "bus2": "MVLV08691", "length": 0.16181702009734078, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1400,6 +1404,7 @@ "bus2": "MVLV05594", "length": 0.07699349789243165, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1418,6 +1423,7 @@ "bus2": "MVLV15838", "length": 0.25994927894914815, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1436,6 +1442,7 @@ "bus2": "MVBus17536", "length": 0.4542496808028074, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1455,6 +1462,7 @@ "bus2": "MVBus17535", "length": 0.21494311509699743, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1473,6 +1481,7 @@ "bus2": "MVBus17533", "length": 0.26494540274416534, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1491,6 +1500,7 @@ "bus2": "MVBus17532", "length": 0.09201445378229363, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1509,6 +1519,7 @@ "bus2": "MVLV12960", "length": 0.1435499370827407, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1528,6 +1539,7 @@ "bus2": "MVBus17530", "length": 0.2653000495495086, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1547,6 +1559,7 @@ "bus2": "MVBus17529", "length": 0.08802463182829624, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1565,6 +1578,7 @@ "bus2": "MVLV11643", "length": 0.0743375036506505, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1583,6 +1597,7 @@ "bus2": "MVBus17540", "length": 0.07661917327285778, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1601,6 +1616,7 @@ "bus2": "MVBus17539", "length": 0.12949731231923822, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1619,6 +1635,7 @@ "bus2": "MVBus17528", "length": 0.13085094399203137, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1637,6 +1654,7 @@ "bus2": "MVBus17527", "length": 0.09078650728206882, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1655,6 +1673,7 @@ "bus2": "MVBus17526", "length": 0.29406741281526205, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1673,6 +1692,7 @@ "bus2": "MVBus17523", "length": 0.1844208420110156, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1696,6 +1716,7 @@ "bus2": "MVLV11234", "length": 0.13379285548725914, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1717,6 +1738,7 @@ "bus2": "MVLV02676", "length": 0.00523601712228864, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1738,6 +1760,7 @@ "bus2": "MVLV00763", "length": 0.10141843723377124, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1767,6 +1790,7 @@ "bus2": "MVBus24053", "length": 0.3581761272426037, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1786,6 +1810,7 @@ "bus2": "MVLV04069", "length": 0.3614631350164427, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1809,6 +1834,7 @@ "bus2": "MVLV02107", "length": 0.0033256646425244354, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1828,6 +1854,7 @@ "bus2": "MVBus24064", "length": 0.0369480354900679, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1849,6 +1876,7 @@ "bus2": "MVBus24062", "length": 0.045362740179136773, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1870,6 +1898,7 @@ "bus2": "MVBus24061", "length": 0.3744445791717937, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1914,6 +1943,7 @@ "bus2": "MVLV06953", "length": 0.004581756372837862, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1936,6 +1966,7 @@ "bus2": "MVBus24059", "length": 0.4450064142173554, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1980,6 +2011,7 @@ "bus2": "MVLV08246", "length": 0.059667850234072076, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1998,6 +2030,7 @@ "bus2": "MVBus24058", "length": 0.1282511394554021, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2016,6 +2049,7 @@ "bus2": "MVLV15406", "length": 0.3051172412161234, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2034,6 +2068,7 @@ "bus2": "MVBus24057", "length": 0.05671839189802176, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2052,6 +2087,7 @@ "bus2": "MVBus24056", "length": 0.7861628831366249, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2071,6 +2107,7 @@ "bus2": "MVLV00545", "length": 0.13880575619861452, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2095,6 +2132,7 @@ "bus2": "MVBus24095", "length": 0.2839203535914608, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2115,6 +2153,7 @@ "bus2": "MVLV03222", "length": 0.28518296092705764, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2138,6 +2177,7 @@ "bus2": "MVBus24097", "length": 0.16998122619689254, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2156,6 +2196,7 @@ "bus2": "MVBus24094", "length": 0.34579223003823056, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2174,6 +2215,7 @@ "bus2": "MVBus24093", "length": 0.13699784465097406, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2193,6 +2235,7 @@ "bus2": "MVBus24092", "length": 0.18199606601879115, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2211,6 +2254,7 @@ "bus2": "MVLV10453", "length": 0.5415034548556188, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2232,6 +2276,7 @@ "bus2": "MVLV09363", "length": 0.007045636627968056, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2250,6 +2295,7 @@ "bus2": "MVBus24076", "length": 0.6072243094713089, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2268,6 +2314,7 @@ "bus2": "MVBus24075", "length": 0.07000292723351449, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2286,6 +2333,7 @@ "bus2": "MVLV13819", "length": 0.2589656697239327, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2305,6 +2353,7 @@ "bus2": "MVBus24073", "length": 0.15758264210247439, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2324,6 +2373,7 @@ "bus2": "MVLV18922", "length": 0.36222154559153724, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2343,6 +2393,7 @@ "bus2": "MVBus24072", "length": 0.30337749386023144, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2364,6 +2415,7 @@ "bus2": "MVBus24071", "length": 0.04704228768803644, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2382,6 +2434,7 @@ "bus2": "MVLV00547", "length": 0.13779793646463212, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2401,6 +2454,7 @@ "bus2": "MVLV02728", "length": 0.09547606697053757, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2423,6 +2477,7 @@ "bus2": "MVLV14266", "length": 0.0060991198454417115, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2442,6 +2497,7 @@ "bus2": "MVBus24090", "length": 0.37774257520662646, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2471,6 +2527,7 @@ "bus2": "MVLV18920", "length": 0.21030284000132166, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2489,6 +2546,7 @@ "bus2": "MVBus39989", "length": 2.1540794924293905, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2556,6 +2614,7 @@ "bus2": "MVLV14633", "length": 0.2488833099190807, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2631,6 +2690,7 @@ "bus2": "MVBus39987", "length": 0.002361576150954956, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2649,6 +2709,7 @@ "bus2": "MVBus39986", "length": 0.010428310529919476, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2667,6 +2728,7 @@ "bus2": "MVBus39985", "length": 0.5071576179737199, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2686,6 +2748,7 @@ "bus2": "MVLV00544", "length": 0.07981412800351775, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2704,6 +2767,7 @@ "bus2": "MVBus39983", "length": 0.333021028751415, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2722,6 +2786,7 @@ "bus2": "MVBus39982", "length": 0.2158172278970547, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2745,6 +2810,7 @@ "bus2": "MVLV18919", "length": 0.004044616944947565, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2763,6 +2829,7 @@ "bus2": "MVBus39990", "length": 0.04981559861077533, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2787,6 +2854,7 @@ "bus2": "MVBus39981", "length": 0.09643044361056909, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2807,6 +2875,7 @@ "bus2": "MVBus39980", "length": 0.17414570776249913, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2825,6 +2894,7 @@ "bus2": "MVLV06448", "length": 0.26213193633513093, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2845,6 +2915,7 @@ "bus2": "MVBus39978", "length": 0.13901236964835756, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2863,6 +2934,7 @@ "bus2": "MVLV09015", "length": 0.597075270951156, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2883,6 +2955,7 @@ "bus2": "MVBus39976", "length": 0.23066760853106663, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2901,6 +2974,7 @@ "bus2": "MVBus39974", "length": 0.09491870161658982, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2919,6 +2993,7 @@ "bus2": "MVBus24089", "length": 0.7845793482250173, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2958,6 +3033,7 @@ "bus2": "MVLV06447", "length": 0.30445850037463673, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2977,6 +3053,7 @@ "bus2": "MVBus24087", "length": 0.10085818204908785, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2997,6 +3074,7 @@ "bus2": "MVBus24086", "length": 0.15331713080544543, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3020,6 +3098,7 @@ "bus2": "MVBus24085", "length": 0.09450681050023824, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3041,6 +3120,7 @@ "bus2": "MVBus24084", "length": 0.2809661659950674, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3059,6 +3139,7 @@ "bus2": "MVBus24082", "length": 0.23285469633794945, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3077,6 +3158,7 @@ "bus2": "MVBus24081", "length": 0.22413447280940296, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3095,6 +3177,7 @@ "bus2": "MVBus24080", "length": 0.1429546741306491, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3113,6 +3196,7 @@ "bus2": "MVBus24070", "length": 0.6625168530605734, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3132,6 +3216,7 @@ "bus2": "MVBus24069", "length": 0.43425352725613486, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3150,6 +3235,7 @@ "bus2": "MVLV10323", "length": 0.1554685335100641, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3169,6 +3255,7 @@ "bus2": "MVBus24101", "length": 0.10967942847151416, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3187,6 +3274,7 @@ "bus2": "MVLV10324", "length": 0.03382471807901016, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3208,6 +3296,7 @@ "bus2": "MVLV00546", "length": 0.10961108702116706, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3229,6 +3318,7 @@ "bus2": "MVBus24108", "length": 0.1705142628444711, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3247,6 +3337,7 @@ "bus2": "MVBus24107", "length": 0.10979615455757827, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3265,6 +3356,7 @@ "bus2": "MVBus24106", "length": 0.004817968050677522, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3283,6 +3375,7 @@ "bus2": "MVBus24104", "length": 0.13653314559085525, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3304,6 +3397,7 @@ "bus2": "MVBus24103", "length": 0.3027957426010854, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3322,6 +3416,7 @@ "bus2": "MVBus24100", "length": 0.042069559422674464, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3340,6 +3435,7 @@ "bus2": "MVBus24099", "length": 0.047234359365897635, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3358,6 +3454,7 @@ "bus2": "MVBus24068", "length": 1.0608890004938134, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3377,6 +3474,7 @@ "bus2": "MVBus24055", "length": 0.9421676332786787, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3395,6 +3493,7 @@ "bus2": "MVBus24052", "length": 0.07632215258057966, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3414,6 +3513,7 @@ "bus2": "MVBus24051", "length": 0.25885409503143514, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3432,6 +3532,7 @@ "bus2": "MVLV05135", "length": 0.21162633478045764, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3451,6 +3552,7 @@ "bus2": "MVBus24050", "length": 0.26724134465610405, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3479,6 +3581,7 @@ "bus2": "MVLV00762", "length": 0.004686436383422953, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3498,6 +3601,7 @@ "bus2": "MVBus17519", "length": 0.4240344987125137, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3530,6 +3634,7 @@ "bus2": "MVBus17518", "length": 0.9319581720426843, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3562,6 +3667,7 @@ "bus2": "MVBus17517", "length": 0.10753804778842857, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3584,6 +3690,7 @@ "bus2": "MVBus17516", "length": 0.7716718945900013, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3625,6 +3732,7 @@ "bus2": "MVBus17515", "length": 0.06836447371794643, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3644,6 +3752,7 @@ "bus2": "MVLV15837", "length": 0.9959524767430119, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3680,6 +3789,7 @@ "bus2": "MVBus08235", "length": 0.06487991476065545, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3708,6 +3818,7 @@ "bus2": "MVBus08234", "length": 0.05627094231677252, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3735,6 +3846,7 @@ "bus2": "MVBus08233", "length": 1.5972493115269248, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3786,6 +3898,7 @@ "bus2": "MVBus08232", "length": 0.015954819992476985, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3804,6 +3917,7 @@ "bus2": "MVBus08231", "length": 0.0066134739308626985, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3823,6 +3937,7 @@ "bus2": "MVLV08873", "length": 0.060278301216926226, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3841,6 +3956,7 @@ "bus2": "MVLV13668", "length": 0.06456087593189838, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3859,6 +3975,7 @@ "bus2": "MVBus08990", "length": 0.2536788424847895, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3878,6 +3995,7 @@ "bus2": "MVBus08989", "length": 0.09412263973083554, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3896,6 +4014,7 @@ "bus2": "MVBus08988", "length": 0.015215285499410657, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3915,6 +4034,7 @@ "bus2": "MVBus08987", "length": 0.020276337243253024, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3935,6 +4055,7 @@ "bus2": "MVLV16807", "length": 0.013751403625483079, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3955,6 +4076,7 @@ "bus2": "MVBus05030", "length": 1.2704878570324705, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3999,6 +4121,7 @@ "bus2": "MVLV06298", "length": 0.02157870615750059, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4019,6 +4142,7 @@ "bus2": "MVBus05028", "length": 0.5887167838332982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4046,6 +4170,7 @@ "bus2": "MVBus05027", "length": 0.23885803889542243, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4071,6 +4196,7 @@ "bus2": "MVBus05026", "length": 0.5407812374987008, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -5133,11 +5259,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -5165,11 +5290,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -5197,11 +5321,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder210_Winter.json b/roseau/load_flow/data/networks/MVFeeder210_Winter.json index c0e2e246..96521ca5 100644 --- a/roseau/load_flow/data/networks/MVFeeder210_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder210_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.315508137717839, 48.67552963511552] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder14", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.315508137717839, 48.67552963511552] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12961", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.359690288894828, 48.70030435899507] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17524", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.360816212595922, 48.70113087837448] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17523", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.36250058294375, 48.699920974017196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08691", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.362017012011286, 48.707740359055315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17533", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.363787332955464, 48.70687745644073] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05594", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.372474957363736, 48.70819963640383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17536", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.371470530798074, 48.708006097671856] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15838", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.372263248440009, 48.70572814874992] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17535", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.365482557431456, 48.70845136474554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17532", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.361706222495278, 48.70493345667249] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17530", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.362654078028266, 48.70439394941558] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12960", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.361146143854642, 48.70373258684646] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17529", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.365766216776604, 48.70323344674769] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17528", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.366857582095782, 48.702909804508195] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11643", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.36985327513618, 48.70171789916646] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17540", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.369391365276649, 48.702312360854734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17539", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.368602686985163, 48.702762027953426] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17527", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.365080155168652, 48.702931226958164] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17526", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.364469760819947, 48.702221813021815] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17515", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.361872248455002, 48.698372926745066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11234", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.381057295037861, 48.68857227401332] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17518", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.380593480920253, 48.68951313748911] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02676", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.386086307107507, 48.69024982994571] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17519", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.386095076128499, 48.69020544337535] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00763", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.386320350855856, 48.69674688889175] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24053", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.387228378138695, 48.69648346340322] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24052", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.390456896571498, 48.694092429012166] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04069", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.393859245371176, 48.678398121997645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24062", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.396689119419465, 48.68008386227141] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02107", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.397198756611179, 48.68002106022296] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24064", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.397175010325148, 48.680005646047306] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24061", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.396086853166442, 48.68016686423779] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24059", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.391320095620501, 48.68124807997599] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06953", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.391318871202315, 48.68128407741701] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24058", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.387495141567356, 48.683362598407236] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08246", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.387208961037065, 48.68286061089437] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24057", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.388369912450079, 48.684359890565865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15406", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.389247638808418, 48.68704140487774] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24056", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.389136030184977, 48.68430691391075] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24055", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.398561158560935, 48.687535479227805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00545", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.401395938329806, 48.67482940726141] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24095", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.402903063269356, 48.67421149659865] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24094", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.406207660086664, 48.675123055199464] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03222", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.410177531992409, 48.67251969634844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24097", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.407329364348828, 48.67378715489126] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24093", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.410767426786093, 48.67586486863645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24092", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.411978407328498, 48.676764286658575] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24069", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.413074070122556, 48.67823125435254] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10453", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.420420507191141, 48.68634791867971] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24076", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.424667185742581, 48.68251880629374] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09363", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.424579380339677, 48.68254398026742] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24075", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.420328922524153, 48.677875121617966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24073", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.419810117061095, 48.67734764388789] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13819", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.417411347774322, 48.6790354886807] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24072", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.421340042028947, 48.67636068076991] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18922", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.425622793335055, 48.67794155813378] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24071", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.420630681455058, 48.674440314166944] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24070", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.419991973797182, 48.67443548826671] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00547", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.419761534530391, 48.67316204924771] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24080", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.42136624107891, 48.67352763843192] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02728", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.424157252985195, 48.67046024446686] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24082", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.425433424469281, 48.6704288218968] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14266", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.423949664678889, 48.6680024069041] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24090", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.424019455111165, 48.667992607111934] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24085", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-1.42773882512684, 48.667518960930806] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18920", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-1.435905350518214, 48.665013198677705] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39974", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-1.438557514204313, 48.66571332634098] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39989", @@ -711,8 +711,8 @@ "type": "Point", "coordinates": [-1.471496954704484, 48.684283897260315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39986", @@ -721,8 +721,8 @@ "type": "Point", "coordinates": [-1.454111420613221, 48.67365783095757] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14633", @@ -731,8 +731,8 @@ "type": "Point", "coordinates": [-1.456255345960154, 48.673153506275305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39987", @@ -741,8 +741,8 @@ "type": "Point", "coordinates": [-1.454133606341398, 48.67364249809416] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39985", @@ -751,8 +751,8 @@ "type": "Point", "coordinates": [-1.453998689564143, 48.67360108655294] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39983", @@ -761,8 +761,8 @@ "type": "Point", "coordinates": [-1.448362516861079, 48.67139846929151] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00544", @@ -771,8 +771,8 @@ "type": "Point", "coordinates": [-1.449205686310729, 48.67094761063653] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39982", @@ -781,8 +781,8 @@ "type": "Point", "coordinates": [-1.445506049849497, 48.66907708140258] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39981", @@ -791,8 +791,8 @@ "type": "Point", "coordinates": [-1.44375635095643, 48.668776616576054] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18919", @@ -801,8 +801,8 @@ "type": "Point", "coordinates": [-1.443288177621643, 48.668471426684015] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39990", @@ -811,8 +811,8 @@ "type": "Point", "coordinates": [-1.443343047955685, 48.66847284504271] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39980", @@ -821,8 +821,8 @@ "type": "Point", "coordinates": [-1.444227964428699, 48.668319010605344] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39978", @@ -831,8 +831,8 @@ "type": "Point", "coordinates": [-1.443199968358023, 48.66690877873582] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06448", @@ -841,8 +841,8 @@ "type": "Point", "coordinates": [-1.446079710619304, 48.66557326975702] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus39976", @@ -851,8 +851,8 @@ "type": "Point", "coordinates": [-1.441570933640071, 48.66627762495946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09015", @@ -861,8 +861,8 @@ "type": "Point", "coordinates": [-1.438449788295261, 48.67104614339778] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24089", @@ -871,8 +871,8 @@ "type": "Point", "coordinates": [-1.437540172188118, 48.66623721183292] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24086", @@ -881,8 +881,8 @@ "type": "Point", "coordinates": [-1.429737921743526, 48.66740399771851] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06447", @@ -891,8 +891,8 @@ "type": "Point", "coordinates": [-1.432209635049518, 48.67056922323461] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24087", @@ -901,8 +901,8 @@ "type": "Point", "coordinates": [-1.430226347180375, 48.66816721336321] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24084", @@ -911,8 +911,8 @@ "type": "Point", "coordinates": [-1.427550443876756, 48.66832702556939] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24081", @@ -921,8 +921,8 @@ "type": "Point", "coordinates": [-1.423458086823049, 48.672063747279815] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24068", @@ -931,8 +931,8 @@ "type": "Point", "coordinates": [-1.408493773037451, 48.68069081868821] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10323", @@ -941,8 +941,8 @@ "type": "Point", "coordinates": [-1.413039955009211, 48.681710134344065] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24101", @@ -951,8 +951,8 @@ "type": "Point", "coordinates": [-1.411072946287639, 48.68122377495599] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24100", @@ -961,8 +961,8 @@ "type": "Point", "coordinates": [-1.40965762004385, 48.68091651992885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10324", @@ -971,8 +971,8 @@ "type": "Point", "coordinates": [-1.410867808177468, 48.68472414481989] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24104", @@ -981,8 +981,8 @@ "type": "Point", "coordinates": [-1.410457520575412, 48.6846248924926] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00546", @@ -991,8 +991,8 @@ "type": "Point", "coordinates": [-1.409563445224697, 48.687969213263976] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24108", @@ -1001,8 +1001,8 @@ "type": "Point", "coordinates": [-1.409907100020805, 48.68709324149833] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24107", @@ -1011,8 +1011,8 @@ "type": "Point", "coordinates": [-1.410557522651376, 48.685621609766095] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24106", @@ -1021,8 +1021,8 @@ "type": "Point", "coordinates": [-1.41052130409578, 48.6846345578222] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24103", @@ -1031,8 +1031,8 @@ "type": "Point", "coordinates": [-1.410375244576262, 48.68359763038951] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24099", @@ -1041,8 +1041,8 @@ "type": "Point", "coordinates": [-1.409110034494963, 48.68080865138281] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24051", @@ -1051,8 +1051,8 @@ "type": "Point", "coordinates": [-1.389640377977582, 48.6936695244645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus24050", @@ -1061,8 +1061,8 @@ "type": "Point", "coordinates": [-1.386585620553674, 48.692516906896316] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05135", @@ -1071,8 +1071,8 @@ "type": "Point", "coordinates": [-1.388721682538931, 48.69170724856656] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00762", @@ -1081,8 +1081,8 @@ "type": "Point", "coordinates": [-1.3860685283105134, 48.69022637502021] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17517", @@ -1091,8 +1091,8 @@ "type": "Point", "coordinates": [-1.37140828752311, 48.69474338047859] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17516", @@ -1101,8 +1101,8 @@ "type": "Point", "coordinates": [-1.370008749538573, 48.69484206776048] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15837", @@ -1111,8 +1111,8 @@ "type": "Point", "coordinates": [-1.3610517542755765, 48.69858050796095] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08235", @@ -1121,8 +1121,8 @@ "type": "Point", "coordinates": [-1.350033533716369, 48.70073831530751] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08234", @@ -1131,8 +1131,8 @@ "type": "Point", "coordinates": [-1.349583389791825, 48.7002449228178] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08233", @@ -1141,8 +1141,8 @@ "type": "Point", "coordinates": [-1.349090863664277, 48.69988795473] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08232", @@ -1151,8 +1151,8 @@ "type": "Point", "coordinates": [-1.332662258481913, 48.69470601327688] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08231", @@ -1161,8 +1161,8 @@ "type": "Point", "coordinates": [-1.332456160398833, 48.694750388404394] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16807", @@ -1171,8 +1171,8 @@ "type": "Point", "coordinates": [-1.3324397522750886, 48.69480756439362] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08873", @@ -1181,8 +1181,8 @@ "type": "Point", "coordinates": [-1.337811745653045, 48.69348041079462] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08990", @@ -1191,8 +1191,8 @@ "type": "Point", "coordinates": [-1.337017272071378, 48.69361150583635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13668", @@ -1201,8 +1201,8 @@ "type": "Point", "coordinates": [-1.336768360474335, 48.693054819581505] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08989", @@ -1211,8 +1211,8 @@ "type": "Point", "coordinates": [-1.333868868924871, 48.69442417043966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08988", @@ -1221,8 +1221,8 @@ "type": "Point", "coordinates": [-1.332769653966778, 48.694856436515416] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08987", @@ -1231,8 +1231,8 @@ "type": "Point", "coordinates": [-1.332696716348577, 48.69475012796576] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05030", @@ -1241,8 +1241,8 @@ "type": "Point", "coordinates": [-1.332311951909265, 48.6947431871332] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05028", @@ -1251,8 +1251,8 @@ "type": "Point", "coordinates": [-1.324403471836129, 48.688034195862905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06298", @@ -1261,8 +1261,8 @@ "type": "Point", "coordinates": [-1.32466065492585, 48.6880640048316] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05027", @@ -1271,8 +1271,8 @@ "type": "Point", "coordinates": [-1.324640695755288, 48.68391926354705] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05026", @@ -1281,8 +1281,8 @@ "type": "Point", "coordinates": [-1.324633327379154, 48.681828081809556] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06299", @@ -1291,8 +1291,8 @@ "type": "Point", "coordinates": [-1.3243096308857334, 48.677222514427754] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -1303,6 +1303,7 @@ "bus2": "MVLV06299", "length": 0.8907821128978984, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1340,6 +1341,7 @@ "bus2": "MVLV12961", "length": 0.14178813460374382, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1363,6 +1365,7 @@ "bus2": "MVBus17524", "length": 0.1843169641640161, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1382,6 +1385,7 @@ "bus2": "MVLV08691", "length": 0.16181702009734078, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1400,6 +1404,7 @@ "bus2": "MVLV05594", "length": 0.07699349789243165, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1418,6 +1423,7 @@ "bus2": "MVLV15838", "length": 0.25994927894914815, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1436,6 +1442,7 @@ "bus2": "MVBus17536", "length": 0.4542496808028074, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1455,6 +1462,7 @@ "bus2": "MVBus17535", "length": 0.21494311509699743, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1473,6 +1481,7 @@ "bus2": "MVBus17533", "length": 0.26494540274416534, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1491,6 +1500,7 @@ "bus2": "MVBus17532", "length": 0.09201445378229363, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1509,6 +1519,7 @@ "bus2": "MVLV12960", "length": 0.1435499370827407, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1528,6 +1539,7 @@ "bus2": "MVBus17530", "length": 0.2653000495495086, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1547,6 +1559,7 @@ "bus2": "MVBus17529", "length": 0.08802463182829624, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1565,6 +1578,7 @@ "bus2": "MVLV11643", "length": 0.0743375036506505, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1583,6 +1597,7 @@ "bus2": "MVBus17540", "length": 0.07661917327285778, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1601,6 +1616,7 @@ "bus2": "MVBus17539", "length": 0.12949731231923822, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1619,6 +1635,7 @@ "bus2": "MVBus17528", "length": 0.13085094399203137, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1637,6 +1654,7 @@ "bus2": "MVBus17527", "length": 0.09078650728206882, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1655,6 +1673,7 @@ "bus2": "MVBus17526", "length": 0.29406741281526205, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1673,6 +1692,7 @@ "bus2": "MVBus17523", "length": 0.1844208420110156, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1696,6 +1716,7 @@ "bus2": "MVLV11234", "length": 0.13379285548725914, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1717,6 +1738,7 @@ "bus2": "MVLV02676", "length": 0.00523601712228864, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1738,6 +1760,7 @@ "bus2": "MVLV00763", "length": 0.10141843723377124, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1767,6 +1790,7 @@ "bus2": "MVBus24053", "length": 0.3581761272426037, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1786,6 +1810,7 @@ "bus2": "MVLV04069", "length": 0.3614631350164427, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1809,6 +1834,7 @@ "bus2": "MVLV02107", "length": 0.0033256646425244354, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1828,6 +1854,7 @@ "bus2": "MVBus24064", "length": 0.0369480354900679, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1849,6 +1876,7 @@ "bus2": "MVBus24062", "length": 0.045362740179136773, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1870,6 +1898,7 @@ "bus2": "MVBus24061", "length": 0.3744445791717937, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1914,6 +1943,7 @@ "bus2": "MVLV06953", "length": 0.004581756372837862, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1936,6 +1966,7 @@ "bus2": "MVBus24059", "length": 0.4450064142173554, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1980,6 +2011,7 @@ "bus2": "MVLV08246", "length": 0.059667850234072076, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1998,6 +2030,7 @@ "bus2": "MVBus24058", "length": 0.1282511394554021, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2016,6 +2049,7 @@ "bus2": "MVLV15406", "length": 0.3051172412161234, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2034,6 +2068,7 @@ "bus2": "MVBus24057", "length": 0.05671839189802176, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2052,6 +2087,7 @@ "bus2": "MVBus24056", "length": 0.7861628831366249, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2071,6 +2107,7 @@ "bus2": "MVLV00545", "length": 0.13880575619861452, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2095,6 +2132,7 @@ "bus2": "MVBus24095", "length": 0.2839203535914608, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2115,6 +2153,7 @@ "bus2": "MVLV03222", "length": 0.28518296092705764, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2138,6 +2177,7 @@ "bus2": "MVBus24097", "length": 0.16998122619689254, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2156,6 +2196,7 @@ "bus2": "MVBus24094", "length": 0.34579223003823056, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2174,6 +2215,7 @@ "bus2": "MVBus24093", "length": 0.13699784465097406, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2193,6 +2235,7 @@ "bus2": "MVBus24092", "length": 0.18199606601879115, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2211,6 +2254,7 @@ "bus2": "MVLV10453", "length": 0.5415034548556188, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2232,6 +2276,7 @@ "bus2": "MVLV09363", "length": 0.007045636627968056, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2250,6 +2295,7 @@ "bus2": "MVBus24076", "length": 0.6072243094713089, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2268,6 +2314,7 @@ "bus2": "MVBus24075", "length": 0.07000292723351449, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2286,6 +2333,7 @@ "bus2": "MVLV13819", "length": 0.2589656697239327, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2305,6 +2353,7 @@ "bus2": "MVBus24073", "length": 0.15758264210247439, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2324,6 +2373,7 @@ "bus2": "MVLV18922", "length": 0.36222154559153724, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2343,6 +2393,7 @@ "bus2": "MVBus24072", "length": 0.30337749386023144, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2364,6 +2415,7 @@ "bus2": "MVBus24071", "length": 0.04704228768803644, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2382,6 +2434,7 @@ "bus2": "MVLV00547", "length": 0.13779793646463212, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2401,6 +2454,7 @@ "bus2": "MVLV02728", "length": 0.09547606697053757, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2423,6 +2477,7 @@ "bus2": "MVLV14266", "length": 0.0060991198454417115, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2442,6 +2497,7 @@ "bus2": "MVBus24090", "length": 0.37774257520662646, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2471,6 +2527,7 @@ "bus2": "MVLV18920", "length": 0.21030284000132166, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2489,6 +2546,7 @@ "bus2": "MVBus39989", "length": 2.1540794924293905, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2556,6 +2614,7 @@ "bus2": "MVLV14633", "length": 0.2488833099190807, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2631,6 +2690,7 @@ "bus2": "MVBus39987", "length": 0.002361576150954956, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2649,6 +2709,7 @@ "bus2": "MVBus39986", "length": 0.010428310529919476, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2667,6 +2728,7 @@ "bus2": "MVBus39985", "length": 0.5071576179737199, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2686,6 +2748,7 @@ "bus2": "MVLV00544", "length": 0.07981412800351775, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2704,6 +2767,7 @@ "bus2": "MVBus39983", "length": 0.333021028751415, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2722,6 +2786,7 @@ "bus2": "MVBus39982", "length": 0.2158172278970547, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2745,6 +2810,7 @@ "bus2": "MVLV18919", "length": 0.004044616944947565, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2763,6 +2829,7 @@ "bus2": "MVBus39990", "length": 0.04981559861077533, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2787,6 +2854,7 @@ "bus2": "MVBus39981", "length": 0.09643044361056909, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2807,6 +2875,7 @@ "bus2": "MVBus39980", "length": 0.17414570776249913, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2825,6 +2894,7 @@ "bus2": "MVLV06448", "length": 0.26213193633513093, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2845,6 +2915,7 @@ "bus2": "MVBus39978", "length": 0.13901236964835756, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2863,6 +2934,7 @@ "bus2": "MVLV09015", "length": 0.597075270951156, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2883,6 +2955,7 @@ "bus2": "MVBus39976", "length": 0.23066760853106663, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2901,6 +2974,7 @@ "bus2": "MVBus39974", "length": 0.09491870161658982, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2919,6 +2993,7 @@ "bus2": "MVBus24089", "length": 0.7845793482250173, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2958,6 +3033,7 @@ "bus2": "MVLV06447", "length": 0.30445850037463673, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2977,6 +3053,7 @@ "bus2": "MVBus24087", "length": 0.10085818204908785, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2997,6 +3074,7 @@ "bus2": "MVBus24086", "length": 0.15331713080544543, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3020,6 +3098,7 @@ "bus2": "MVBus24085", "length": 0.09450681050023824, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3041,6 +3120,7 @@ "bus2": "MVBus24084", "length": 0.2809661659950674, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3059,6 +3139,7 @@ "bus2": "MVBus24082", "length": 0.23285469633794945, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3077,6 +3158,7 @@ "bus2": "MVBus24081", "length": 0.22413447280940296, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3095,6 +3177,7 @@ "bus2": "MVBus24080", "length": 0.1429546741306491, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3113,6 +3196,7 @@ "bus2": "MVBus24070", "length": 0.6625168530605734, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3132,6 +3216,7 @@ "bus2": "MVBus24069", "length": 0.43425352725613486, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3150,6 +3235,7 @@ "bus2": "MVLV10323", "length": 0.1554685335100641, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3169,6 +3255,7 @@ "bus2": "MVBus24101", "length": 0.10967942847151416, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3187,6 +3274,7 @@ "bus2": "MVLV10324", "length": 0.03382471807901016, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3208,6 +3296,7 @@ "bus2": "MVLV00546", "length": 0.10961108702116706, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3229,6 +3318,7 @@ "bus2": "MVBus24108", "length": 0.1705142628444711, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3247,6 +3337,7 @@ "bus2": "MVBus24107", "length": 0.10979615455757827, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3265,6 +3356,7 @@ "bus2": "MVBus24106", "length": 0.004817968050677522, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3283,6 +3375,7 @@ "bus2": "MVBus24104", "length": 0.13653314559085525, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3304,6 +3397,7 @@ "bus2": "MVBus24103", "length": 0.3027957426010854, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3322,6 +3416,7 @@ "bus2": "MVBus24100", "length": 0.042069559422674464, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3340,6 +3435,7 @@ "bus2": "MVBus24099", "length": 0.047234359365897635, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3358,6 +3454,7 @@ "bus2": "MVBus24068", "length": 1.0608890004938134, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3377,6 +3474,7 @@ "bus2": "MVBus24055", "length": 0.9421676332786787, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3395,6 +3493,7 @@ "bus2": "MVBus24052", "length": 0.07632215258057966, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3414,6 +3513,7 @@ "bus2": "MVBus24051", "length": 0.25885409503143514, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3432,6 +3532,7 @@ "bus2": "MVLV05135", "length": 0.21162633478045764, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3451,6 +3552,7 @@ "bus2": "MVBus24050", "length": 0.26724134465610405, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3479,6 +3581,7 @@ "bus2": "MVLV00762", "length": 0.004686436383422953, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3498,6 +3601,7 @@ "bus2": "MVBus17519", "length": 0.4240344987125137, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3530,6 +3634,7 @@ "bus2": "MVBus17518", "length": 0.9319581720426843, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3562,6 +3667,7 @@ "bus2": "MVBus17517", "length": 0.10753804778842857, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3584,6 +3690,7 @@ "bus2": "MVBus17516", "length": 0.7716718945900013, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3625,6 +3732,7 @@ "bus2": "MVBus17515", "length": 0.06836447371794643, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3644,6 +3752,7 @@ "bus2": "MVLV15837", "length": 0.9959524767430119, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3680,6 +3789,7 @@ "bus2": "MVBus08235", "length": 0.06487991476065545, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3708,6 +3818,7 @@ "bus2": "MVBus08234", "length": 0.05627094231677252, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3735,6 +3846,7 @@ "bus2": "MVBus08233", "length": 1.5972493115269248, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3786,6 +3898,7 @@ "bus2": "MVBus08232", "length": 0.015954819992476985, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3804,6 +3917,7 @@ "bus2": "MVBus08231", "length": 0.0066134739308626985, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3823,6 +3937,7 @@ "bus2": "MVLV08873", "length": 0.060278301216926226, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3841,6 +3956,7 @@ "bus2": "MVLV13668", "length": 0.06456087593189838, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3859,6 +3975,7 @@ "bus2": "MVBus08990", "length": 0.2536788424847895, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3878,6 +3995,7 @@ "bus2": "MVBus08989", "length": 0.09412263973083554, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3896,6 +4014,7 @@ "bus2": "MVBus08988", "length": 0.015215285499410657, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3915,6 +4034,7 @@ "bus2": "MVBus08987", "length": 0.020276337243253024, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3935,6 +4055,7 @@ "bus2": "MVLV16807", "length": 0.013751403625483079, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3955,6 +4076,7 @@ "bus2": "MVBus05030", "length": 1.2704878570324705, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3999,6 +4121,7 @@ "bus2": "MVLV06298", "length": 0.02157870615750059, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4019,6 +4142,7 @@ "bus2": "MVBus05028", "length": 0.5887167838332982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4046,6 +4170,7 @@ "bus2": "MVBus05027", "length": 0.23885803889542243, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4071,6 +4196,7 @@ "bus2": "MVBus05026", "length": 0.5407812374987008, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -5133,11 +5259,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -5165,11 +5290,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -5197,11 +5321,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder217_Summer.json b/roseau/load_flow/data/networks/MVFeeder217_Summer.json index be39504c..9da73b38 100644 --- a/roseau/load_flow/data/networks/MVFeeder217_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder217_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.751702612915616, 49.653801085335864] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder15", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.751702612915616, 49.653801085335864] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13410", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.679931285366726, 49.65155465719737] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32481", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.676470873384789, 49.653553577574854] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10768", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.6806498367623357, 49.654726771172655] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01697", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.678922603714337, 49.65539083429302] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09696", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.6780747779003309, 49.655274905822935] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09700", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.6773448547737, 49.65466658066605] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10776", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.6752788266700036, 49.65550693267713] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01698", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.67396768671466, 49.655955025085554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus26721", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.674277152501746, 49.65696686252891] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01706", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6706848356208555, 49.656587653461884] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22604", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.673893732207176, 49.65699408075931] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22603", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.678752083502674, 49.657632600450846] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22602", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.687000916584208, 49.65872643345839] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus21726", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.6899144761105565, 49.65734579505471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09710", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.6931544029856775, 49.65682690034362] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20891", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.694653623707265, 49.657307207334895] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20890", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.694881325517064, 49.65753685714968] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12764", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.6956447814282445, 49.65763502482898] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08518", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.697825356573214, 49.65683842436038] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15647", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.699553504846526, 49.65715834002786] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11487", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.7005694121374195, 49.65663345325234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08517", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.7018474404969435, 49.65682712281345] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08514", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.7044656244128835, 49.657095165588956] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08515", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.704521667859076, 49.65632654314429] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12761", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.7065522989454331, 49.658565793845284] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11486", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.7079120407255814, 49.65821598234879] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13302", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.708997902725297, 49.65748382115472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15648", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.7093355253425884, 49.65668006698276] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus12338", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.709027337065763, 49.6575131235305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04334", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.7102518017180843, 49.65805029431179] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11449", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.712256396489699, 49.658696483631566] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12762", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.7123893567716906, 49.65869383173553] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09389", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.712231384433458, 49.65739404176467] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16887", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.7134923699166786, 49.656042385779635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01888", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.715447633958364, 49.654538430245495] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01887", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.723625804781101, 49.65673682886024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01886", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.727382824582085, 49.656858137125596] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01885", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.727739462930876, 49.65677285538332] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01884", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.728312906960772, 49.656559479695645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01883", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.733888052209557, 49.656314900145844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01882", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.740479446878883, 49.65987962629042] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01881", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.75134861697713, 49.6546228164401] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -463,6 +463,7 @@ "bus2": "MVBus01881", "length": 0.1036641105058596, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -503,6 +504,7 @@ "bus2": "MVLV13410", "length": 0.3519938016465228, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -532,6 +534,7 @@ "bus2": "MVBus32481", "length": 0.4045281743946701, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -561,6 +564,7 @@ "bus2": "MVLV10768", "length": 0.3141553288143411, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -588,6 +592,7 @@ "bus2": "MVLV01697", "length": 0.06652125023066995, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -611,6 +616,7 @@ "bus2": "MVLV09696", "length": 0.3056172779538304, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -638,6 +644,7 @@ "bus2": "MVLV09700", "length": 0.36876498865043383, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -664,6 +671,7 @@ "bus2": "MVLV10776", "length": 0.13470701833430523, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -690,6 +698,7 @@ "bus2": "MVLV01698", "length": 0.2753332481217924, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -714,6 +723,7 @@ "bus2": "MVBus26721", "length": 0.30693215195631945, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -740,6 +750,7 @@ "bus2": "MVLV01706", "length": 0.2869541126249135, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -766,6 +777,7 @@ "bus2": "MVBus22604", "length": 0.35978615142983944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -831,6 +843,7 @@ "bus2": "MVBus22603", "length": 0.6082420532559634, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -915,6 +928,7 @@ "bus2": "MVBus22602", "length": 0.27575724267606383, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -978,6 +992,7 @@ "bus2": "MVBus21726", "length": 0.29618321913091505, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1042,6 +1057,7 @@ "bus2": "MVLV09710", "length": 0.2472968140411514, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1102,6 +1118,7 @@ "bus2": "MVBus20891", "length": 0.0485068386520877, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1138,6 +1155,7 @@ "bus2": "MVBus20890", "length": 0.058144213787439426, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1159,6 +1177,7 @@ "bus2": "MVLV12764", "length": 0.2782026664562803, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1186,6 +1205,7 @@ "bus2": "MVLV08518", "length": 0.3185546944113785, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1218,6 +1238,7 @@ "bus2": "MVLV15647", "length": 0.10807935641066367, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1242,6 +1263,7 @@ "bus2": "MVLV11487", "length": 0.11338442666594911, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1267,6 +1289,7 @@ "bus2": "MVLV08517", "length": 0.22999332122252053, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1291,6 +1314,7 @@ "bus2": "MVLV08514", "length": 0.0954492734387459, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1313,6 +1337,7 @@ "bus2": "MVLV08515", "length": 0.3950658324564448, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1348,6 +1373,7 @@ "bus2": "MVLV12761", "length": 0.1149889768842972, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1371,6 +1397,7 @@ "bus2": "MVLV11486", "length": 0.181775916833722, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1398,6 +1425,7 @@ "bus2": "MVBus13302", "length": 0.10806723339486324, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1427,6 +1455,7 @@ "bus2": "MVLV15648", "length": 0.10369591850421968, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1455,6 +1484,7 @@ "bus2": "MVBus12338", "length": 0.10840662368023206, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1477,6 +1507,7 @@ "bus2": "MVLV04334", "length": 0.1633930998192143, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1497,6 +1528,7 @@ "bus2": "MVBus11449", "length": 0.011178451298859964, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1517,6 +1549,7 @@ "bus2": "MVLV12762", "length": 0.33609166663042095, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1584,6 +1617,7 @@ "bus2": "MVBus09389", "length": 0.36205172525827967, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1623,6 +1657,7 @@ "bus2": "MVLV16887", "length": 0.39624899055842877, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1691,6 +1726,7 @@ "bus2": "MVBus01888", "length": 1.0872513297341535, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1806,6 +1842,7 @@ "bus2": "MVBus01887", "length": 0.2724446957927151, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1847,6 +1884,7 @@ "bus2": "MVBus01886", "length": 0.027578746668158054, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1868,6 +1906,7 @@ "bus2": "MVBus01885", "length": 0.047953236893901165, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1893,6 +1932,7 @@ "bus2": "MVBus01884", "length": 0.42800395801572233, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1954,6 +1994,7 @@ "bus2": "MVBus01883", "length": 0.7059455867207443, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2069,6 +2110,7 @@ "bus2": "MVBus01882", "length": 1.2806813373079808, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2734,11 +2776,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder217_Winter.json b/roseau/load_flow/data/networks/MVFeeder217_Winter.json index 7e2a643c..6040ef93 100644 --- a/roseau/load_flow/data/networks/MVFeeder217_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder217_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.751702612915616, 49.653801085335864] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder15", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.751702612915616, 49.653801085335864] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13410", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.679931285366726, 49.65155465719737] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32481", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.676470873384789, 49.653553577574854] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10768", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.6806498367623357, 49.654726771172655] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01697", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.678922603714337, 49.65539083429302] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09696", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.6780747779003309, 49.655274905822935] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09700", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.6773448547737, 49.65466658066605] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10776", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.6752788266700036, 49.65550693267713] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01698", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.67396768671466, 49.655955025085554] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus26721", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.674277152501746, 49.65696686252891] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01706", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.6706848356208555, 49.656587653461884] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22604", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.673893732207176, 49.65699408075931] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22603", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.678752083502674, 49.657632600450846] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22602", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.687000916584208, 49.65872643345839] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus21726", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.6899144761105565, 49.65734579505471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09710", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.6931544029856775, 49.65682690034362] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20891", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.694653623707265, 49.657307207334895] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus20890", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.694881325517064, 49.65753685714968] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12764", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.6956447814282445, 49.65763502482898] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08518", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.697825356573214, 49.65683842436038] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15647", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.699553504846526, 49.65715834002786] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11487", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.7005694121374195, 49.65663345325234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08517", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.7018474404969435, 49.65682712281345] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08514", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.7044656244128835, 49.657095165588956] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08515", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.704521667859076, 49.65632654314429] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12761", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.7065522989454331, 49.658565793845284] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11486", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.7079120407255814, 49.65821598234879] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus13302", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.708997902725297, 49.65748382115472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15648", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.7093355253425884, 49.65668006698276] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus12338", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.709027337065763, 49.6575131235305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04334", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.7102518017180843, 49.65805029431179] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11449", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.712256396489699, 49.658696483631566] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12762", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.7123893567716906, 49.65869383173553] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09389", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.712231384433458, 49.65739404176467] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16887", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.7134923699166786, 49.656042385779635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01888", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.715447633958364, 49.654538430245495] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01887", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.723625804781101, 49.65673682886024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01886", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.727382824582085, 49.656858137125596] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01885", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.727739462930876, 49.65677285538332] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01884", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.728312906960772, 49.656559479695645] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01883", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.733888052209557, 49.656314900145844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01882", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.740479446878883, 49.65987962629042] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus01881", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.75134861697713, 49.6546228164401] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -463,6 +463,7 @@ "bus2": "MVBus01881", "length": 0.1036641105058596, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -503,6 +504,7 @@ "bus2": "MVLV13410", "length": 0.3519938016465228, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -532,6 +534,7 @@ "bus2": "MVBus32481", "length": 0.4045281743946701, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -561,6 +564,7 @@ "bus2": "MVLV10768", "length": 0.3141553288143411, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -588,6 +592,7 @@ "bus2": "MVLV01697", "length": 0.06652125023066995, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -611,6 +616,7 @@ "bus2": "MVLV09696", "length": 0.3056172779538304, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -638,6 +644,7 @@ "bus2": "MVLV09700", "length": 0.36876498865043383, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -664,6 +671,7 @@ "bus2": "MVLV10776", "length": 0.13470701833430523, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -690,6 +698,7 @@ "bus2": "MVLV01698", "length": 0.2753332481217924, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -714,6 +723,7 @@ "bus2": "MVBus26721", "length": 0.30693215195631945, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -740,6 +750,7 @@ "bus2": "MVLV01706", "length": 0.2869541126249135, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -766,6 +777,7 @@ "bus2": "MVBus22604", "length": 0.35978615142983944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -831,6 +843,7 @@ "bus2": "MVBus22603", "length": 0.6082420532559634, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -915,6 +928,7 @@ "bus2": "MVBus22602", "length": 0.27575724267606383, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -978,6 +992,7 @@ "bus2": "MVBus21726", "length": 0.29618321913091505, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1042,6 +1057,7 @@ "bus2": "MVLV09710", "length": 0.2472968140411514, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1102,6 +1118,7 @@ "bus2": "MVBus20891", "length": 0.0485068386520877, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1138,6 +1155,7 @@ "bus2": "MVBus20890", "length": 0.058144213787439426, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1159,6 +1177,7 @@ "bus2": "MVLV12764", "length": 0.2782026664562803, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1186,6 +1205,7 @@ "bus2": "MVLV08518", "length": 0.3185546944113785, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1218,6 +1238,7 @@ "bus2": "MVLV15647", "length": 0.10807935641066367, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1242,6 +1263,7 @@ "bus2": "MVLV11487", "length": 0.11338442666594911, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1267,6 +1289,7 @@ "bus2": "MVLV08517", "length": 0.22999332122252053, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1291,6 +1314,7 @@ "bus2": "MVLV08514", "length": 0.0954492734387459, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1313,6 +1337,7 @@ "bus2": "MVLV08515", "length": 0.3950658324564448, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1348,6 +1373,7 @@ "bus2": "MVLV12761", "length": 0.1149889768842972, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1371,6 +1397,7 @@ "bus2": "MVLV11486", "length": 0.181775916833722, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1398,6 +1425,7 @@ "bus2": "MVBus13302", "length": 0.10806723339486324, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1427,6 +1455,7 @@ "bus2": "MVLV15648", "length": 0.10369591850421968, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1455,6 +1484,7 @@ "bus2": "MVBus12338", "length": 0.10840662368023206, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1477,6 +1507,7 @@ "bus2": "MVLV04334", "length": 0.1633930998192143, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1497,6 +1528,7 @@ "bus2": "MVBus11449", "length": 0.011178451298859964, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1517,6 +1549,7 @@ "bus2": "MVLV12762", "length": 0.33609166663042095, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1584,6 +1617,7 @@ "bus2": "MVBus09389", "length": 0.36205172525827967, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1623,6 +1657,7 @@ "bus2": "MVLV16887", "length": 0.39624899055842877, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1691,6 +1726,7 @@ "bus2": "MVBus01888", "length": 1.0872513297341535, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1806,6 +1842,7 @@ "bus2": "MVBus01887", "length": 0.2724446957927151, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1847,6 +1884,7 @@ "bus2": "MVBus01886", "length": 0.027578746668158054, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1868,6 +1906,7 @@ "bus2": "MVBus01885", "length": 0.047953236893901165, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1893,6 +1932,7 @@ "bus2": "MVBus01884", "length": 0.42800395801572233, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1954,6 +1994,7 @@ "bus2": "MVBus01883", "length": 0.7059455867207443, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2069,6 +2110,7 @@ "bus2": "MVBus01882", "length": 1.2806813373079808, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2734,11 +2776,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder232_Summer.json b/roseau/load_flow/data/networks/MVFeeder232_Summer.json index fabaa304..3dbacbc1 100644 --- a/roseau/load_flow/data/networks/MVFeeder232_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder232_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.480951121955717, 48.55306081426247] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder16", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.480951121955717, 48.55306081426247] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04950", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.550220693123534, 48.528615590660756] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16272", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.549975000651848, 48.5281505762032] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13936", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.555103571193291, 48.52185325111848] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16274", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.554764788314803, 48.52669185049975] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus26847", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.562613678447487, 48.53155108903226] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11702", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.567415544559584, 48.53152557552724] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus25989", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.569311917293301, 48.53149360990055] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16629", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.57027769540357, 48.53031039976622] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16292", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.570735844206441, 48.52929767150866] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16291", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.571147770590084, 48.52818479539541] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17142", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.572116843944956, 48.52806284345167] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16290", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.572574753072218, 48.52414323836759] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16289", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.567188445296061, 48.52466235447822] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16278", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.566380318628245, 48.524694266551045] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17075", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.564445711356673, 48.527963271453274] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13935", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.564471040507244, 48.51989277253283] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16282", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.564491960080981, 48.51992212672882] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16286", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.568066585866426, 48.51554364477023] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16285", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.564133081404684, 48.51575028018875] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16284", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.563127054612326, 48.51828552233302] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16283", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.564111995320302, 48.51963491292472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16281", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.56465394114039, 48.520033791014896] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16280", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.566448158932665, 48.52407357603867] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14272", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.566423881056259, 48.52407453059369] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16277", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.560628107060558, 48.524941267714205] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16276", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.558800346431667, 48.525433783523816] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17143", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.557789595923771, 48.52501638217188] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16271", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.541816399593816, 48.530014800295405] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19187", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.5407393002418477, 48.528722416439514] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17074", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.53943409979167, 48.52453662061788] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18155", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.543311826142846, 48.526335372317355] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18126", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.54368927326359, 48.52651719085881] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18138", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.561462602065331, 48.5008956649214] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18137", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.552517516036617, 48.50070436464574] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18141", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.554517778746445, 48.499844603554735] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18140", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.550757687157653, 48.49985363073012] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18139", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.550525792181719, 48.50046445820923] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06933", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.544750853574297, 48.49637633726677] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18144", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.546208588807372, 48.49617619322259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18146", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.547791851449651, 48.49306953019419] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18145", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.546335613494759, 48.49363356982077] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18147", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.545472108046927, 48.489233170871124] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18143", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.546039604662548, 48.49955827259096] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18142", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.54594405881023, 48.49991244299773] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04549", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.54471216962048, 48.500812011051494] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18136", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.550206823560244, 48.506594905291905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04916", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.539812687057545, 48.50495238135772] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18151", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.544330135848701, 48.50625699483946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16510", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.544273568518067, 48.50713848580767] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12206", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.550657327418384, 48.50670965386375] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18135", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.549484139904866, 48.50883339939408] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18134", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.54648288050085, 48.51180724058062] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11692", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.545202242552729, 48.51236649794666] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18132", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.546595110847239, 48.51351840557732] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11693", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.549874417076119, 48.51328696908033] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18131", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.542713276498972, 48.51630019405735] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18129", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.541950199528134, 48.51627467859784] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08087", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.541892791108224, 48.516275500246905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18128", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.543018988027638, 48.51811436140585] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18127", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.543597094297414, 48.521270762668024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18125", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.543773388049549, 48.527435714338985] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18124", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.541250132048243, 48.52901194360347] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02066", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.540711137646514, 48.52866172204854] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02065", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.481478941947719, 48.5516792566919] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -683,6 +683,7 @@ "bus2": "MVBus02065", "length": 0.15727597000329052, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -703,6 +704,7 @@ "bus2": "MVLV04950", "length": 0.05480165380197354, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -721,6 +723,7 @@ "bus2": "MVLV13936", "length": 0.5818083295433246, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -741,6 +744,7 @@ "bus2": "MVBus26847", "length": 0.5759150366774, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -776,6 +780,7 @@ "bus2": "MVLV11702", "length": 0.1392927077735165, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -797,6 +802,7 @@ "bus2": "MVBus25989", "length": 0.18696207511301322, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -827,6 +833,7 @@ "bus2": "MVLV16629", "length": 0.1714026584830801, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -856,6 +863,7 @@ "bus2": "MVBus16292", "length": 0.12743760303491475, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -874,6 +882,7 @@ "bus2": "MVLV17142", "length": 0.07284961003559856, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -892,6 +901,7 @@ "bus2": "MVBus16291", "length": 0.46161767653803065, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -910,6 +920,7 @@ "bus2": "MVBus16290", "length": 0.4020305539474718, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -928,6 +939,7 @@ "bus2": "MVBus16289", "length": 0.059798093805106575, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -947,6 +959,7 @@ "bus2": "MVLV17075", "length": 0.3905925912818533, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -965,6 +978,7 @@ "bus2": "MVLV13935", "length": 0.0036115366476767467, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -983,6 +997,7 @@ "bus2": "MVBus16286", "length": 0.31140773779321634, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1011,6 +1026,7 @@ "bus2": "MVBus16285", "length": 0.3052687696299153, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1036,6 +1052,7 @@ "bus2": "MVBus16284", "length": 0.17337809445854596, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1059,6 +1076,7 @@ "bus2": "MVBus16283", "length": 0.042519688607768884, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1077,6 +1095,7 @@ "bus2": "MVBus16282", "length": 0.017244364937418964, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1095,6 +1114,7 @@ "bus2": "MVBus16281", "length": 0.4849205732180417, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1115,6 +1135,7 @@ "bus2": "MVLV14272", "length": 0.001796458276207273, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1133,6 +1154,7 @@ "bus2": "MVBus16280", "length": 0.06920277281002768, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1151,6 +1173,7 @@ "bus2": "MVBus16278", "length": 0.42577585741145935, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1169,6 +1192,7 @@ "bus2": "MVBus16277", "length": 0.14569306278429903, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1187,6 +1211,7 @@ "bus2": "MVLV17143", "length": 0.08791083568496559, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1205,6 +1230,7 @@ "bus2": "MVBus16276", "length": 0.32927704767560245, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1223,6 +1249,7 @@ "bus2": "MVBus16274", "length": 0.3891959981728256, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1241,6 +1268,7 @@ "bus2": "MVBus16272", "length": 0.640966387076621, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1260,6 +1288,7 @@ "bus2": "MVBus16271", "length": 0.18726485334894744, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1291,6 +1320,7 @@ "bus2": "MVLV17074", "length": 0.34935474936375255, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1309,6 +1339,7 @@ "bus2": "MVBus18155", "length": 0.03443893142478112, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1327,6 +1358,7 @@ "bus2": "MVBus18138", "length": 0.6613862657253364, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1345,6 +1377,7 @@ "bus2": "MVBus18141", "length": 0.2831246479931285, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1367,6 +1400,7 @@ "bus2": "MVBus18140", "length": 0.07005257277568233, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1385,6 +1419,7 @@ "bus2": "MVLV06933", "length": 0.12514318360867333, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1415,6 +1450,7 @@ "bus2": "MVBus18146", "length": 0.12457373286961472, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1433,6 +1469,7 @@ "bus2": "MVBus18147", "length": 0.49357001977129167, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1452,6 +1489,7 @@ "bus2": "MVBus18145", "length": 0.2828953957730023, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1470,6 +1508,7 @@ "bus2": "MVBus18144", "length": 0.37629451918835716, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1488,6 +1527,7 @@ "bus2": "MVBus18143", "length": 0.04001173001394585, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1506,6 +1546,7 @@ "bus2": "MVLV04549", "length": 0.13525629710923887, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1524,6 +1565,7 @@ "bus2": "MVBus18142", "length": 0.3441145016340234, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1542,6 +1584,7 @@ "bus2": "MVBus18139", "length": 0.14958758934150304, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1560,6 +1603,7 @@ "bus2": "MVBus18137", "length": 0.6798903811193758, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1579,6 +1623,7 @@ "bus2": "MVLV04916", "length": 0.36397075238192916, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1597,6 +1642,7 @@ "bus2": "MVLV16510", "length": 0.09811102382463735, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1615,6 +1661,7 @@ "bus2": "MVBus18151", "length": 0.43586333573182945, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1633,6 +1680,7 @@ "bus2": "MVLV12206", "length": 0.035650306156386105, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1651,6 +1699,7 @@ "bus2": "MVBus18136", "length": 0.2545842245220032, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1670,6 +1719,7 @@ "bus2": "MVBus18135", "length": 0.41625799562163196, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1689,6 +1739,7 @@ "bus2": "MVLV11692", "length": 0.11322629500890477, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1707,6 +1758,7 @@ "bus2": "MVBus18134", "length": 0.19046261936131878, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1725,6 +1777,7 @@ "bus2": "MVLV11693", "length": 0.24364449345962885, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1743,6 +1796,7 @@ "bus2": "MVBus18132", "length": 0.42182520865833195, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1761,6 +1815,7 @@ "bus2": "MVBus18131", "length": 0.05644575283858191, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1779,6 +1834,7 @@ "bus2": "MVLV08087", "length": 0.005387219437622075, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1798,6 +1854,7 @@ "bus2": "MVBus18129", "length": 0.29185611922074794, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1818,6 +1875,7 @@ "bus2": "MVBus18128", "length": 0.35371438128793947, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1837,6 +1895,7 @@ "bus2": "MVBus18127", "length": 0.5834451909876508, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1855,6 +1914,7 @@ "bus2": "MVBus18126", "length": 0.10232911084034518, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1873,6 +1933,7 @@ "bus2": "MVBus18125", "length": 0.31568185930032555, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1892,6 +1953,7 @@ "bus2": "MVBus18124", "length": 0.052572379997209664, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1918,6 +1980,7 @@ "bus2": "MVLV19187", "length": 0.012211272156633606, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1940,6 +2003,7 @@ "bus2": "MVBus02066", "length": 5.785430947880203, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2467,11 +2531,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -2499,11 +2562,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -2531,11 +2593,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder232_Winter.json b/roseau/load_flow/data/networks/MVFeeder232_Winter.json index 93ee927b..cb1640bc 100644 --- a/roseau/load_flow/data/networks/MVFeeder232_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder232_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.480951121955717, 48.55306081426247] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder16", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.480951121955717, 48.55306081426247] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04950", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.550220693123534, 48.528615590660756] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16272", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.549975000651848, 48.5281505762032] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13936", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.555103571193291, 48.52185325111848] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16274", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.554764788314803, 48.52669185049975] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus26847", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.562613678447487, 48.53155108903226] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11702", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.567415544559584, 48.53152557552724] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus25989", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.569311917293301, 48.53149360990055] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16629", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.57027769540357, 48.53031039976622] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16292", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.570735844206441, 48.52929767150866] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16291", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.571147770590084, 48.52818479539541] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17142", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.572116843944956, 48.52806284345167] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16290", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.572574753072218, 48.52414323836759] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16289", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.567188445296061, 48.52466235447822] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16278", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.566380318628245, 48.524694266551045] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17075", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.564445711356673, 48.527963271453274] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13935", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.564471040507244, 48.51989277253283] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16282", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.564491960080981, 48.51992212672882] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16286", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.568066585866426, 48.51554364477023] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16285", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.564133081404684, 48.51575028018875] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16284", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.563127054612326, 48.51828552233302] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16283", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.564111995320302, 48.51963491292472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16281", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.56465394114039, 48.520033791014896] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16280", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.566448158932665, 48.52407357603867] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14272", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.566423881056259, 48.52407453059369] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16277", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.560628107060558, 48.524941267714205] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16276", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.558800346431667, 48.525433783523816] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17143", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.557789595923771, 48.52501638217188] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus16271", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.541816399593816, 48.530014800295405] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19187", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.5407393002418477, 48.528722416439514] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17074", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.53943409979167, 48.52453662061788] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18155", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.543311826142846, 48.526335372317355] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18126", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.54368927326359, 48.52651719085881] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18138", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.561462602065331, 48.5008956649214] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18137", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.552517516036617, 48.50070436464574] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18141", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.554517778746445, 48.499844603554735] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18140", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.550757687157653, 48.49985363073012] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18139", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.550525792181719, 48.50046445820923] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06933", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.544750853574297, 48.49637633726677] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18144", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.546208588807372, 48.49617619322259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18146", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.547791851449651, 48.49306953019419] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18145", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.546335613494759, 48.49363356982077] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18147", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.545472108046927, 48.489233170871124] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18143", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.546039604662548, 48.49955827259096] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18142", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.54594405881023, 48.49991244299773] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04549", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.54471216962048, 48.500812011051494] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18136", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.550206823560244, 48.506594905291905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04916", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.539812687057545, 48.50495238135772] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18151", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.544330135848701, 48.50625699483946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16510", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.544273568518067, 48.50713848580767] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12206", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.550657327418384, 48.50670965386375] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18135", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.549484139904866, 48.50883339939408] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18134", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.54648288050085, 48.51180724058062] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11692", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.545202242552729, 48.51236649794666] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18132", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.546595110847239, 48.51351840557732] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11693", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.549874417076119, 48.51328696908033] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18131", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.542713276498972, 48.51630019405735] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18129", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.541950199528134, 48.51627467859784] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08087", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.541892791108224, 48.516275500246905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18128", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.543018988027638, 48.51811436140585] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18127", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.543597094297414, 48.521270762668024] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18125", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.543773388049549, 48.527435714338985] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus18124", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.541250132048243, 48.52901194360347] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02066", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.540711137646514, 48.52866172204854] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02065", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.481478941947719, 48.5516792566919] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -683,6 +683,7 @@ "bus2": "MVBus02065", "length": 0.15727597000329052, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -703,6 +704,7 @@ "bus2": "MVLV04950", "length": 0.05480165380197354, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -721,6 +723,7 @@ "bus2": "MVLV13936", "length": 0.5818083295433246, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -741,6 +744,7 @@ "bus2": "MVBus26847", "length": 0.5759150366774, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -776,6 +780,7 @@ "bus2": "MVLV11702", "length": 0.1392927077735165, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -797,6 +802,7 @@ "bus2": "MVBus25989", "length": 0.18696207511301322, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -827,6 +833,7 @@ "bus2": "MVLV16629", "length": 0.1714026584830801, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -856,6 +863,7 @@ "bus2": "MVBus16292", "length": 0.12743760303491475, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -874,6 +882,7 @@ "bus2": "MVLV17142", "length": 0.07284961003559856, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -892,6 +901,7 @@ "bus2": "MVBus16291", "length": 0.46161767653803065, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -910,6 +920,7 @@ "bus2": "MVBus16290", "length": 0.4020305539474718, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -928,6 +939,7 @@ "bus2": "MVBus16289", "length": 0.059798093805106575, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -947,6 +959,7 @@ "bus2": "MVLV17075", "length": 0.3905925912818533, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -965,6 +978,7 @@ "bus2": "MVLV13935", "length": 0.0036115366476767467, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -983,6 +997,7 @@ "bus2": "MVBus16286", "length": 0.31140773779321634, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1011,6 +1026,7 @@ "bus2": "MVBus16285", "length": 0.3052687696299153, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1036,6 +1052,7 @@ "bus2": "MVBus16284", "length": 0.17337809445854596, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1059,6 +1076,7 @@ "bus2": "MVBus16283", "length": 0.042519688607768884, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1077,6 +1095,7 @@ "bus2": "MVBus16282", "length": 0.017244364937418964, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1095,6 +1114,7 @@ "bus2": "MVBus16281", "length": 0.4849205732180417, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1115,6 +1135,7 @@ "bus2": "MVLV14272", "length": 0.001796458276207273, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1133,6 +1154,7 @@ "bus2": "MVBus16280", "length": 0.06920277281002768, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1151,6 +1173,7 @@ "bus2": "MVBus16278", "length": 0.42577585741145935, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1169,6 +1192,7 @@ "bus2": "MVBus16277", "length": 0.14569306278429903, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1187,6 +1211,7 @@ "bus2": "MVLV17143", "length": 0.08791083568496559, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1205,6 +1230,7 @@ "bus2": "MVBus16276", "length": 0.32927704767560245, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1223,6 +1249,7 @@ "bus2": "MVBus16274", "length": 0.3891959981728256, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1241,6 +1268,7 @@ "bus2": "MVBus16272", "length": 0.640966387076621, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1260,6 +1288,7 @@ "bus2": "MVBus16271", "length": 0.18726485334894744, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1291,6 +1320,7 @@ "bus2": "MVLV17074", "length": 0.34935474936375255, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1309,6 +1339,7 @@ "bus2": "MVBus18155", "length": 0.03443893142478112, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1327,6 +1358,7 @@ "bus2": "MVBus18138", "length": 0.6613862657253364, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1345,6 +1377,7 @@ "bus2": "MVBus18141", "length": 0.2831246479931285, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1367,6 +1400,7 @@ "bus2": "MVBus18140", "length": 0.07005257277568233, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1385,6 +1419,7 @@ "bus2": "MVLV06933", "length": 0.12514318360867333, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1415,6 +1450,7 @@ "bus2": "MVBus18146", "length": 0.12457373286961472, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1433,6 +1469,7 @@ "bus2": "MVBus18147", "length": 0.49357001977129167, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1452,6 +1489,7 @@ "bus2": "MVBus18145", "length": 0.2828953957730023, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1470,6 +1508,7 @@ "bus2": "MVBus18144", "length": 0.37629451918835716, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1488,6 +1527,7 @@ "bus2": "MVBus18143", "length": 0.04001173001394585, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1506,6 +1546,7 @@ "bus2": "MVLV04549", "length": 0.13525629710923887, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1524,6 +1565,7 @@ "bus2": "MVBus18142", "length": 0.3441145016340234, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1542,6 +1584,7 @@ "bus2": "MVBus18139", "length": 0.14958758934150304, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1560,6 +1603,7 @@ "bus2": "MVBus18137", "length": 0.6798903811193758, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1579,6 +1623,7 @@ "bus2": "MVLV04916", "length": 0.36397075238192916, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1597,6 +1642,7 @@ "bus2": "MVLV16510", "length": 0.09811102382463735, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1615,6 +1661,7 @@ "bus2": "MVBus18151", "length": 0.43586333573182945, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1633,6 +1680,7 @@ "bus2": "MVLV12206", "length": 0.035650306156386105, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1651,6 +1699,7 @@ "bus2": "MVBus18136", "length": 0.2545842245220032, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1670,6 +1719,7 @@ "bus2": "MVBus18135", "length": 0.41625799562163196, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1689,6 +1739,7 @@ "bus2": "MVLV11692", "length": 0.11322629500890477, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1707,6 +1758,7 @@ "bus2": "MVBus18134", "length": 0.19046261936131878, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1725,6 +1777,7 @@ "bus2": "MVLV11693", "length": 0.24364449345962885, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1743,6 +1796,7 @@ "bus2": "MVBus18132", "length": 0.42182520865833195, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1761,6 +1815,7 @@ "bus2": "MVBus18131", "length": 0.05644575283858191, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1779,6 +1834,7 @@ "bus2": "MVLV08087", "length": 0.005387219437622075, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1798,6 +1854,7 @@ "bus2": "MVBus18129", "length": 0.29185611922074794, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1818,6 +1875,7 @@ "bus2": "MVBus18128", "length": 0.35371438128793947, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1837,6 +1895,7 @@ "bus2": "MVBus18127", "length": 0.5834451909876508, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1855,6 +1914,7 @@ "bus2": "MVBus18126", "length": 0.10232911084034518, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1873,6 +1933,7 @@ "bus2": "MVBus18125", "length": 0.31568185930032555, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1892,6 +1953,7 @@ "bus2": "MVBus18124", "length": 0.052572379997209664, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1918,6 +1980,7 @@ "bus2": "MVLV19187", "length": 0.012211272156633606, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1940,6 +2003,7 @@ "bus2": "MVBus02066", "length": 5.785430947880203, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2467,11 +2531,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -2499,11 +2562,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -2531,11 +2593,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder251_Summer.json b/roseau/load_flow/data/networks/MVFeeder251_Summer.json index f2a22690..3742be92 100644 --- a/roseau/load_flow/data/networks/MVFeeder251_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder251_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.544122777559802, 49.28792921131057] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder17", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.544122777559802, 49.28792921131057] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11101", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.541178395735151, 49.2967821229966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17209", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.541402610105714, 49.29717365001366] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17207", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.541378117392617, 49.2971385246556] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00382", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.543989146153294, 49.29615131859048] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17206", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.541353993106287, 49.29714270383739] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14464", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.5413683400166376, 49.29720035014075] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09251", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.537446392202924, 49.29874144503897] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15062", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.537662421485925, 49.29783948270921] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05023", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.537550409693325, 49.29779259087647] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15061", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.538555666205925, 49.29770355732112] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14650", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.541323068619209, 49.297148442866344] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15279", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.540722291595128, 49.29754240257251] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18774", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.5432777670666975, 49.29954408210185] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10227", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.542801364055465, 49.30079264624719] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10226", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.542223387630054, 49.302440303362495] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12002", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.543721334528962, 49.30340473390545] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10224", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.541937703242198, 49.30336187256208] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13673", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.540211585895342, 49.302759829436454] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08091", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.5407539952262903, 49.305622831378344] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14088", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.535652057142803, 49.312189495608315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14674", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.535713313391154, 49.312254360208854] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00901", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.530018730823778, 49.30732834984887] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14679", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.527098863522479, 49.312303382214324] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15540", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.523128830492736, 49.31217904723409] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14681", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.524153720605166, 49.31233014733411] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00558", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.513063287685275, 49.31448992931678] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14682", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.522584528407902, 49.31253675757177] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14678", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.528425285894258, 49.31235791228221] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13843", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.526075820963424, 49.316179302994485] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14677", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.529735073884145, 49.31219514900721] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14676", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.530785822896225, 49.31237819129319] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14297", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.538193007833593, 49.31216799569018] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04212", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.536408762697852, 49.32104609385472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11803", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.536534847236821, 49.321120183051995] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10753", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.527661328563556, 49.334799790674595] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23647", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.52674422159139, 49.335008438613734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16209", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.511308187603026, 49.33950177292033] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23651", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.511792612037957, 49.339128954091514] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23668", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.500237842828451, 49.34213599416101] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00557", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.500250673650373, 49.34212810136862] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16630", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.495517486299349, 49.34353092753231] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23669", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.498817642378083, 49.34189422851426] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23653", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.506374434040589, 49.33702907136982] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00556", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.497950206009199, 49.338225291933846] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23654", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.501088222606753, 49.33532522876661] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16207", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.478685676715247, 49.33494320019281] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23660", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.482695123969117, 49.333934930040506] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03243", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.486548333330025, 49.33618052052723] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23659", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.484133426908198, 49.33134359624456] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23665", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.469473420583994, 49.33253844546463] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23664", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.477379351775069, 49.3300143463499] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23663", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.478918590402116, 49.330026289077466] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10338", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.478484932562386, 49.327578929121835] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23658", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.495520666720995, 49.33409063193276] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23656", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.500188561543648, 49.33493741338863] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18938", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.501331914032815, 49.33384038654791] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23650", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.516088184722974, 49.33830826797327] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13841", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.51474496203316, 49.33546599960393] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23649", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.525990741835495, 49.3352494526061] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14298", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.5329799874850207, 49.33507754804151] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16575", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.520552683911972, 49.36221285227293] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34414", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.519139011907793, 49.36212948743184] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10158", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.514068875814502, 49.36644570324624] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34416", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.514492224885197, 49.36467005047749] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13649", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-1.508471587649024, 49.36306583437844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34419", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-1.508108365725732, 49.364432954296966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00375", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-1.505218708194213, 49.36706491493334] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34423", @@ -711,8 +711,8 @@ "type": "Point", "coordinates": [-1.50445347690626, 49.36467905920785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00373", @@ -721,8 +721,8 @@ "type": "Point", "coordinates": [-1.49790226678558, 49.364741187553236] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34424", @@ -731,8 +731,8 @@ "type": "Point", "coordinates": [-1.49892473707318, 49.364392249251054] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13646", @@ -741,8 +741,8 @@ "type": "Point", "coordinates": [-1.493997799159938, 49.36470190719969] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34420", @@ -751,8 +751,8 @@ "type": "Point", "coordinates": [-1.504233252185425, 49.36406601752124] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10159", @@ -761,8 +761,8 @@ "type": "Point", "coordinates": [-1.50417103993675, 49.360882830762066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34421", @@ -771,8 +771,8 @@ "type": "Point", "coordinates": [-1.503321601957881, 49.36235272639792] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34418", @@ -781,8 +781,8 @@ "type": "Point", "coordinates": [-1.510635276449318, 49.36476553532519] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10164", @@ -791,8 +791,8 @@ "type": "Point", "coordinates": [-1.509866575618648, 49.35795541122072] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34430", @@ -801,8 +801,8 @@ "type": "Point", "coordinates": [-1.510721727829247, 49.3581988444997] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34429", @@ -811,8 +811,8 @@ "type": "Point", "coordinates": [-1.509289955481284, 49.361120529396175] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34413", @@ -821,8 +821,8 @@ "type": "Point", "coordinates": [-1.520096239743545, 49.361924579760256] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34412", @@ -831,8 +831,8 @@ "type": "Point", "coordinates": [-1.52856610290105, 49.36430611482931] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34411", @@ -841,8 +841,8 @@ "type": "Point", "coordinates": [-1.529769581166713, 49.364480054902444] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03060", @@ -851,8 +851,8 @@ "type": "Point", "coordinates": [-1.535568417050356, 49.36472085133499] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34410", @@ -861,8 +861,8 @@ "type": "Point", "coordinates": [-1.530854289006823, 49.36466877623434] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06284", @@ -871,8 +871,8 @@ "type": "Point", "coordinates": [-1.531589190610127, 49.36492882285905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02134", @@ -881,8 +881,8 @@ "type": "Point", "coordinates": [-1.531585636721146, 49.36510976245396] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08862", @@ -891,8 +891,8 @@ "type": "Point", "coordinates": [-1.514287610518751, 49.37219695446738] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32945", @@ -901,8 +901,8 @@ "type": "Point", "coordinates": [-1.5179650794455, 49.372197550213805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19162", @@ -911,8 +911,8 @@ "type": "Point", "coordinates": [-1.518256530861644, 49.37146823421635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32944", @@ -921,8 +921,8 @@ "type": "Point", "coordinates": [-1.51909312942812, 49.37219771660025] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32943", @@ -931,8 +931,8 @@ "type": "Point", "coordinates": [-1.522950716921357, 49.37216582565863] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32942", @@ -941,8 +941,8 @@ "type": "Point", "coordinates": [-1.527320367955829, 49.373951706325954] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03057", @@ -951,8 +951,8 @@ "type": "Point", "coordinates": [-1.531109516842623, 49.374778041057695] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32948", @@ -961,8 +961,8 @@ "type": "Point", "coordinates": [-1.528727248595691, 49.37807677444229] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32953", @@ -971,8 +971,8 @@ "type": "Point", "coordinates": [-1.517504389409401, 49.38872725310879] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32950", @@ -981,8 +981,8 @@ "type": "Point", "coordinates": [-1.527625344427467, 49.38114490026094] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00376", @@ -991,8 +991,8 @@ "type": "Point", "coordinates": [-1.526160390385847, 49.381286355063466] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32951", @@ -1001,8 +1001,8 @@ "type": "Point", "coordinates": [-1.527156505637376, 49.38105323794978] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22069", @@ -1011,8 +1011,8 @@ "type": "Point", "coordinates": [-1.531441732019706, 49.3553465205665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14458", @@ -1021,8 +1021,8 @@ "type": "Point", "coordinates": [-1.526507526635254, 49.35513073595609] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22067", @@ -1031,8 +1031,8 @@ "type": "Point", "coordinates": [-1.532403732174482, 49.35257682859679] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18758", @@ -1041,8 +1041,8 @@ "type": "Point", "coordinates": [-1.531733080868806, 49.352784404544984] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22066", @@ -1051,8 +1051,8 @@ "type": "Point", "coordinates": [-1.533131628048518, 49.33571004547227] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15114", @@ -1061,8 +1061,8 @@ "type": "Point", "coordinates": [-1.532053313651179, 49.337907928002785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22072", @@ -1071,8 +1071,8 @@ "type": "Point", "coordinates": [-1.533046984107669, 49.335762285638104] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03792", @@ -1081,8 +1081,8 @@ "type": "Point", "coordinates": [-1.532877816023977, 49.33303061717324] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22073", @@ -1091,8 +1091,8 @@ "type": "Point", "coordinates": [-1.533057531446026, 49.33486137550976] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07424", @@ -1101,8 +1101,8 @@ "type": "Point", "coordinates": [-1.534883420349337, 49.33506643532471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06470", @@ -1111,8 +1111,8 @@ "type": "Point", "coordinates": [-1.5339935260812059, 49.32782537754664] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09269", @@ -1121,8 +1121,8 @@ "type": "Point", "coordinates": [-1.540486402010409, 49.308234227444785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05282", @@ -1131,8 +1131,8 @@ "type": "Point", "coordinates": [-1.540443543412636, 49.30824396710194] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06432", @@ -1141,8 +1141,8 @@ "type": "Point", "coordinates": [-1.553605845662367, 49.300981342922235] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12189", @@ -1151,8 +1151,8 @@ "type": "Point", "coordinates": [-1.557217555766814, 49.303017120020975] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06431", @@ -1161,8 +1161,8 @@ "type": "Point", "coordinates": [-1.556855381394924, 49.294703989676044] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10176", @@ -1171,8 +1171,8 @@ "type": "Point", "coordinates": [-1.5557191205984735, 49.29423783326932] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05970", @@ -1181,8 +1181,8 @@ "type": "Point", "coordinates": [-1.556899752581278, 49.294687718159565] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05969", @@ -1191,8 +1191,8 @@ "type": "Point", "coordinates": [-1.558365114135587, 49.29312791296315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07004", @@ -1201,8 +1201,8 @@ "type": "Point", "coordinates": [-1.5580257550948962, 49.29312307703382] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02322", @@ -1211,8 +1211,8 @@ "type": "Point", "coordinates": [-1.558363431607862, 49.293103186411905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02321", @@ -1221,8 +1221,8 @@ "type": "Point", "coordinates": [-1.550843810591999, 49.28835713931457] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02320", @@ -1231,8 +1231,8 @@ "type": "Point", "coordinates": [-1.549076450270867, 49.28842758779228] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02319", @@ -1241,8 +1241,8 @@ "type": "Point", "coordinates": [-1.548968224727916, 49.288476803005885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02318", @@ -1251,8 +1251,8 @@ "type": "Point", "coordinates": [-1.545353494551501, 49.288203281286165] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02317", @@ -1261,8 +1261,8 @@ "type": "Point", "coordinates": [-1.544278715354673, 49.28819278593066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -1273,6 +1273,7 @@ "bus2": "MVBus02317", "length": 0.028233461470556193, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1293,6 +1294,7 @@ "bus2": "MVLV11101", "length": 0.04649766143979308, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1311,6 +1313,7 @@ "bus2": "MVBus17209", "length": 0.005203781737639504, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1331,6 +1334,7 @@ "bus2": "MVLV00382", "length": 0.24257532653511676, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1356,6 +1360,7 @@ "bus2": "MVBus17207", "length": 0.0018152069112323077, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1374,6 +1379,7 @@ "bus2": "MVBus17206", "length": 0.0063636643007188185, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1393,6 +1399,7 @@ "bus2": "MVLV09251", "length": 0.11367425331406272, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1417,6 +1424,7 @@ "bus2": "MVLV05023", "length": 0.012101505956263555, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1436,6 +1444,7 @@ "bus2": "MVBus15062", "length": 0.06688605844940153, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1456,6 +1465,7 @@ "bus2": "MVBus15061", "length": 0.21550751613824057, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1506,6 +1516,7 @@ "bus2": "MVLV14464", "length": 0.007619096156059685, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1526,6 +1537,7 @@ "bus2": "MVBus14650", "length": 0.08604247104581982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1553,6 +1565,7 @@ "bus2": "MVLV15279", "length": 0.6005951041406843, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1588,6 +1601,7 @@ "bus2": "MVLV18774", "length": 0.15671172166017394, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1608,6 +1622,7 @@ "bus2": "MVBus10227", "length": 0.1880618514463853, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1627,6 +1642,7 @@ "bus2": "MVLV12002", "length": 0.1550339128722013, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1650,6 +1666,7 @@ "bus2": "MVBus10226", "length": 0.10457758935540795, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1668,6 +1685,7 @@ "bus2": "MVLV13673", "length": 0.16464985621011782, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1691,6 +1709,7 @@ "bus2": "MVBus10224", "length": 0.288510435240511, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1718,6 +1737,7 @@ "bus2": "MVLV14088", "length": 0.008478251107719109, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1737,6 +1757,7 @@ "bus2": "MVLV00901", "length": 0.5926417980284098, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1755,6 +1776,7 @@ "bus2": "MVLV15540", "length": 0.07639433946605165, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1773,6 +1795,7 @@ "bus2": "MVLV00558", "length": 0.756896951853965, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1796,6 +1819,7 @@ "bus2": "MVBus14682", "length": 0.11641707040119277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1815,6 +1839,7 @@ "bus2": "MVBus14681", "length": 0.21417143761172072, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1833,6 +1858,7 @@ "bus2": "MVBus14679", "length": 0.09663886198510684, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1851,6 +1877,7 @@ "bus2": "MVLV13843", "length": 0.4580472166707575, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1869,6 +1896,7 @@ "bus2": "MVBus14678", "length": 0.09694397235096873, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1887,6 +1915,7 @@ "bus2": "MVBus14677", "length": 0.07906888946602389, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1905,6 +1934,7 @@ "bus2": "MVBus14676", "length": 0.3669595001259236, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1931,6 +1961,7 @@ "bus2": "MVBus14674", "length": 0.1802597631984163, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1954,6 +1985,7 @@ "bus2": "MVLV04212", "length": 0.01332263067374734, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1973,6 +2005,7 @@ "bus2": "MVLV10753", "length": 0.07057903647257757, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1991,6 +2024,7 @@ "bus2": "MVLV16209", "length": 0.05439303367334706, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2009,6 +2043,7 @@ "bus2": "MVBus23668", "length": 0.0012805970531591306, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2027,6 +2062,7 @@ "bus2": "MVLV16630", "length": 0.37081031837191913, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2056,6 +2092,7 @@ "bus2": "MVBus23669", "length": 0.10986828457659217, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2075,6 +2112,7 @@ "bus2": "MVLV00557", "length": 0.74567234079204, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2094,6 +2132,7 @@ "bus2": "MVLV00556", "length": 0.4177356164704489, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2115,6 +2154,7 @@ "bus2": "MVLV16207", "length": 0.32029104368682343, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2135,6 +2175,7 @@ "bus2": "MVLV03243", "length": 0.37523568002671814, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2154,6 +2195,7 @@ "bus2": "MVBus23660", "length": 0.3065729223546083, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2172,6 +2214,7 @@ "bus2": "MVBus23665", "length": 0.6395473100197062, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2190,6 +2233,7 @@ "bus2": "MVBus23664", "length": 0.1119210277032705, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2209,6 +2253,7 @@ "bus2": "MVLV10338", "length": 0.2740050631911384, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2227,6 +2272,7 @@ "bus2": "MVBus23663", "length": 0.4489506342270319, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2246,6 +2292,7 @@ "bus2": "MVBus23659", "length": 0.9018397404516275, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2269,6 +2316,7 @@ "bus2": "MVBus23658", "length": 0.3637049063758763, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2288,6 +2336,7 @@ "bus2": "MVLV18938", "length": 0.14761877610763896, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2306,6 +2355,7 @@ "bus2": "MVBus23656", "length": 0.07833119469092044, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2324,6 +2374,7 @@ "bus2": "MVBus23654", "length": 0.43182383669511015, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2344,6 +2395,7 @@ "bus2": "MVBus23653", "length": 0.4732570571516864, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2364,6 +2416,7 @@ "bus2": "MVBus23651", "length": 0.33190085523301377, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2383,6 +2436,7 @@ "bus2": "MVLV13841", "length": 0.330837173677165, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2401,6 +2455,7 @@ "bus2": "MVBus23650", "length": 0.8033045776755825, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2427,6 +2482,7 @@ "bus2": "MVBus23649", "length": 0.06097076611982121, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2445,6 +2501,7 @@ "bus2": "MVBus23647", "length": 0.508202408525906, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2478,6 +2535,7 @@ "bus2": "MVLV16575", "length": 0.10310654010388842, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2496,6 +2554,7 @@ "bus2": "MVLV10158", "length": 0.19986212906546252, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2514,6 +2573,7 @@ "bus2": "MVLV13649", "length": 0.15532711411755915, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2533,6 +2593,7 @@ "bus2": "MVLV00375", "length": 0.271437589653534, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2552,6 +2613,7 @@ "bus2": "MVLV00373", "length": 0.08379643799941182, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2570,6 +2632,7 @@ "bus2": "MVLV13646", "length": 0.3924871147476781, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2598,6 +2661,7 @@ "bus2": "MVBus34424", "length": 0.4129712656640833, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2617,6 +2681,7 @@ "bus2": "MVBus34423", "length": 0.07003190855528035, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2635,6 +2700,7 @@ "bus2": "MVLV10159", "length": 0.18945571956595136, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2655,6 +2721,7 @@ "bus2": "MVBus34421", "length": 0.20172561841725256, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2673,6 +2740,7 @@ "bus2": "MVBus34420", "length": 0.28441854620385315, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2691,6 +2759,7 @@ "bus2": "MVBus34419", "length": 0.1872351576860677, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2709,6 +2778,7 @@ "bus2": "MVLV10164", "length": 0.08307445089227075, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2728,6 +2798,7 @@ "bus2": "MVBus34430", "length": 0.34138710270072825, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2747,6 +2818,7 @@ "bus2": "MVBus34429", "length": 0.4316157313277553, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2767,6 +2839,7 @@ "bus2": "MVBus34418", "length": 0.280354646989838, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2785,6 +2858,7 @@ "bus2": "MVBus34416", "length": 0.46227121366192264, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2804,6 +2878,7 @@ "bus2": "MVBus34414", "length": 0.07317231902175302, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2822,6 +2897,7 @@ "bus2": "MVBus34413", "length": 0.6720310690910645, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2842,6 +2918,7 @@ "bus2": "MVBus34412", "length": 0.08953139053423927, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2860,6 +2937,7 @@ "bus2": "MVLV03060", "length": 0.5346788249293161, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2879,6 +2957,7 @@ "bus2": "MVBus34411", "length": 0.08153686761905633, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2897,6 +2976,7 @@ "bus2": "MVLV06284", "length": 0.0607116755354689, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2915,6 +2995,7 @@ "bus2": "MVBus34410", "length": 0.08291962228537283, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2938,6 +3019,7 @@ "bus2": "MVLV08862", "length": 0.26707625608160257, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2956,6 +3038,7 @@ "bus2": "MVLV19162", "length": 0.08382862257920029, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2974,6 +3057,7 @@ "bus2": "MVBus32945", "length": 0.08192465202152102, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2992,6 +3076,7 @@ "bus2": "MVBus32944", "length": 0.28017990056768277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3010,6 +3095,7 @@ "bus2": "MVBus32943", "length": 0.39063953902460974, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3038,6 +3124,7 @@ "bus2": "MVLV03057", "length": 0.4597844729770908, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3060,6 +3147,7 @@ "bus2": "MVBus32953", "length": 1.6326161105779273, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3123,6 +3211,7 @@ "bus2": "MVLV00376", "length": 0.08040663184049307, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3142,6 +3231,7 @@ "bus2": "MVBus32951", "length": 0.03578752012234594, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3161,6 +3251,7 @@ "bus2": "MVBus32950", "length": 0.40312747799055015, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3192,6 +3283,7 @@ "bus2": "MVBus32948", "length": 0.4830376263026058, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3222,6 +3314,7 @@ "bus2": "MVBus32942", "length": 1.0731453489406135, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3249,6 +3342,7 @@ "bus2": "MVLV02134", "length": 1.1707233869850964, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3280,6 +3374,7 @@ "bus2": "MVLV14458", "length": 0.44321442367888547, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3344,6 +3439,7 @@ "bus2": "MVBus22069", "length": 0.36238372555403137, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3382,6 +3478,7 @@ "bus2": "MVLV18758", "length": 0.056578106178282746, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3402,6 +3499,7 @@ "bus2": "MVBus22067", "length": 1.926359122832335, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3436,6 +3534,7 @@ "bus2": "MVLV15114", "length": 0.2493185426177021, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3454,6 +3553,7 @@ "bus2": "MVLV03792", "length": 0.2051436384266768, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3474,6 +3574,7 @@ "bus2": "MVLV07424", "length": 0.14383385188322648, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3493,6 +3594,7 @@ "bus2": "MVBus22073", "length": 0.10019875986664627, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3511,6 +3613,7 @@ "bus2": "MVBus22072", "length": 0.008461700673569049, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3529,6 +3632,7 @@ "bus2": "MVBus22066", "length": 0.10342519827364842, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3555,6 +3659,7 @@ "bus2": "MVLV14298", "length": 0.8798759256032205, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3582,6 +3687,7 @@ "bus2": "MVLV06470", "length": 0.7954401697427387, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3603,6 +3709,7 @@ "bus2": "MVBus11803", "length": 1.0773011885807644, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3630,6 +3737,7 @@ "bus2": "MVLV14297", "length": 0.5364504470557699, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3657,6 +3765,7 @@ "bus2": "MVLV05282", "length": 0.0032995137003003863, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3675,6 +3784,7 @@ "bus2": "MVBus09269", "length": 0.31007777091499894, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3706,6 +3816,7 @@ "bus2": "MVLV08091", "length": 1.103705815148244, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3741,6 +3852,7 @@ "bus2": "MVLV12189", "length": 0.4629762715887536, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3809,6 +3921,7 @@ "bus2": "MVBus06432", "length": 0.792612707543813, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3838,6 +3951,7 @@ "bus2": "MVBus06431", "length": 0.22660860033133476, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3891,6 +4005,7 @@ "bus2": "MVLV10176", "length": 0.22922896329104542, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3934,6 +4049,7 @@ "bus2": "MVBus05970", "length": 0.2637279374416299, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3958,6 +4074,7 @@ "bus2": "MVBus05969", "length": 0.02430435716809026, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3977,6 +4094,7 @@ "bus2": "MVLV07004", "length": 0.024978720138269347, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3996,6 +4114,7 @@ "bus2": "MVBus02322", "length": 1.02694858466435, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4031,6 +4150,7 @@ "bus2": "MVBus02321", "length": 0.16790378725191302, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4051,6 +4171,7 @@ "bus2": "MVBus02320", "length": 0.009993540367716214, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4072,6 +4193,7 @@ "bus2": "MVBus02319", "length": 0.26473687880197855, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4091,6 +4213,7 @@ "bus2": "MVBus02318", "length": 0.09202958332239944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -5434,11 +5557,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -5466,11 +5588,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -5498,11 +5619,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder251_Winter.json b/roseau/load_flow/data/networks/MVFeeder251_Winter.json index bee950f4..2d8a38cb 100644 --- a/roseau/load_flow/data/networks/MVFeeder251_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder251_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.544122777559802, 49.28792921131057] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder17", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.544122777559802, 49.28792921131057] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV11101", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.541178395735151, 49.2967821229966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17209", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.541402610105714, 49.29717365001366] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17207", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.541378117392617, 49.2971385246556] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00382", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.543989146153294, 49.29615131859048] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus17206", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.541353993106287, 49.29714270383739] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14464", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.5413683400166376, 49.29720035014075] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09251", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.537446392202924, 49.29874144503897] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15062", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.537662421485925, 49.29783948270921] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05023", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.537550409693325, 49.29779259087647] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus15061", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.538555666205925, 49.29770355732112] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14650", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.541323068619209, 49.297148442866344] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15279", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.540722291595128, 49.29754240257251] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18774", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.5432777670666975, 49.29954408210185] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10227", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.542801364055465, 49.30079264624719] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10226", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.542223387630054, 49.302440303362495] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12002", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.543721334528962, 49.30340473390545] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10224", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.541937703242198, 49.30336187256208] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13673", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.540211585895342, 49.302759829436454] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08091", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.5407539952262903, 49.305622831378344] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14088", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.535652057142803, 49.312189495608315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14674", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.535713313391154, 49.312254360208854] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00901", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.530018730823778, 49.30732834984887] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14679", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.527098863522479, 49.312303382214324] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15540", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.523128830492736, 49.31217904723409] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14681", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.524153720605166, 49.31233014733411] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00558", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.513063287685275, 49.31448992931678] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14682", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.522584528407902, 49.31253675757177] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14678", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.528425285894258, 49.31235791228221] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13843", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.526075820963424, 49.316179302994485] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14677", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.529735073884145, 49.31219514900721] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus14676", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.530785822896225, 49.31237819129319] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14297", @@ -351,8 +351,8 @@ "type": "Point", "coordinates": [-1.538193007833593, 49.31216799569018] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04212", @@ -361,8 +361,8 @@ "type": "Point", "coordinates": [-1.536408762697852, 49.32104609385472] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus11803", @@ -371,8 +371,8 @@ "type": "Point", "coordinates": [-1.536534847236821, 49.321120183051995] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10753", @@ -381,8 +381,8 @@ "type": "Point", "coordinates": [-1.527661328563556, 49.334799790674595] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23647", @@ -391,8 +391,8 @@ "type": "Point", "coordinates": [-1.52674422159139, 49.335008438613734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16209", @@ -401,8 +401,8 @@ "type": "Point", "coordinates": [-1.511308187603026, 49.33950177292033] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23651", @@ -411,8 +411,8 @@ "type": "Point", "coordinates": [-1.511792612037957, 49.339128954091514] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23668", @@ -421,8 +421,8 @@ "type": "Point", "coordinates": [-1.500237842828451, 49.34213599416101] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00557", @@ -431,8 +431,8 @@ "type": "Point", "coordinates": [-1.500250673650373, 49.34212810136862] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16630", @@ -441,8 +441,8 @@ "type": "Point", "coordinates": [-1.495517486299349, 49.34353092753231] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23669", @@ -451,8 +451,8 @@ "type": "Point", "coordinates": [-1.498817642378083, 49.34189422851426] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23653", @@ -461,8 +461,8 @@ "type": "Point", "coordinates": [-1.506374434040589, 49.33702907136982] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00556", @@ -471,8 +471,8 @@ "type": "Point", "coordinates": [-1.497950206009199, 49.338225291933846] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23654", @@ -481,8 +481,8 @@ "type": "Point", "coordinates": [-1.501088222606753, 49.33532522876661] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16207", @@ -491,8 +491,8 @@ "type": "Point", "coordinates": [-1.478685676715247, 49.33494320019281] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23660", @@ -501,8 +501,8 @@ "type": "Point", "coordinates": [-1.482695123969117, 49.333934930040506] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03243", @@ -511,8 +511,8 @@ "type": "Point", "coordinates": [-1.486548333330025, 49.33618052052723] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23659", @@ -521,8 +521,8 @@ "type": "Point", "coordinates": [-1.484133426908198, 49.33134359624456] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23665", @@ -531,8 +531,8 @@ "type": "Point", "coordinates": [-1.469473420583994, 49.33253844546463] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23664", @@ -541,8 +541,8 @@ "type": "Point", "coordinates": [-1.477379351775069, 49.3300143463499] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23663", @@ -551,8 +551,8 @@ "type": "Point", "coordinates": [-1.478918590402116, 49.330026289077466] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10338", @@ -561,8 +561,8 @@ "type": "Point", "coordinates": [-1.478484932562386, 49.327578929121835] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23658", @@ -571,8 +571,8 @@ "type": "Point", "coordinates": [-1.495520666720995, 49.33409063193276] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23656", @@ -581,8 +581,8 @@ "type": "Point", "coordinates": [-1.500188561543648, 49.33493741338863] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18938", @@ -591,8 +591,8 @@ "type": "Point", "coordinates": [-1.501331914032815, 49.33384038654791] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23650", @@ -601,8 +601,8 @@ "type": "Point", "coordinates": [-1.516088184722974, 49.33830826797327] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13841", @@ -611,8 +611,8 @@ "type": "Point", "coordinates": [-1.51474496203316, 49.33546599960393] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus23649", @@ -621,8 +621,8 @@ "type": "Point", "coordinates": [-1.525990741835495, 49.3352494526061] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14298", @@ -631,8 +631,8 @@ "type": "Point", "coordinates": [-1.5329799874850207, 49.33507754804151] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV16575", @@ -641,8 +641,8 @@ "type": "Point", "coordinates": [-1.520552683911972, 49.36221285227293] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34414", @@ -651,8 +651,8 @@ "type": "Point", "coordinates": [-1.519139011907793, 49.36212948743184] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10158", @@ -661,8 +661,8 @@ "type": "Point", "coordinates": [-1.514068875814502, 49.36644570324624] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34416", @@ -671,8 +671,8 @@ "type": "Point", "coordinates": [-1.514492224885197, 49.36467005047749] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13649", @@ -681,8 +681,8 @@ "type": "Point", "coordinates": [-1.508471587649024, 49.36306583437844] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34419", @@ -691,8 +691,8 @@ "type": "Point", "coordinates": [-1.508108365725732, 49.364432954296966] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00375", @@ -701,8 +701,8 @@ "type": "Point", "coordinates": [-1.505218708194213, 49.36706491493334] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34423", @@ -711,8 +711,8 @@ "type": "Point", "coordinates": [-1.50445347690626, 49.36467905920785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00373", @@ -721,8 +721,8 @@ "type": "Point", "coordinates": [-1.49790226678558, 49.364741187553236] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34424", @@ -731,8 +731,8 @@ "type": "Point", "coordinates": [-1.49892473707318, 49.364392249251054] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13646", @@ -741,8 +741,8 @@ "type": "Point", "coordinates": [-1.493997799159938, 49.36470190719969] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34420", @@ -751,8 +751,8 @@ "type": "Point", "coordinates": [-1.504233252185425, 49.36406601752124] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10159", @@ -761,8 +761,8 @@ "type": "Point", "coordinates": [-1.50417103993675, 49.360882830762066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34421", @@ -771,8 +771,8 @@ "type": "Point", "coordinates": [-1.503321601957881, 49.36235272639792] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34418", @@ -781,8 +781,8 @@ "type": "Point", "coordinates": [-1.510635276449318, 49.36476553532519] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10164", @@ -791,8 +791,8 @@ "type": "Point", "coordinates": [-1.509866575618648, 49.35795541122072] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34430", @@ -801,8 +801,8 @@ "type": "Point", "coordinates": [-1.510721727829247, 49.3581988444997] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34429", @@ -811,8 +811,8 @@ "type": "Point", "coordinates": [-1.509289955481284, 49.361120529396175] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34413", @@ -821,8 +821,8 @@ "type": "Point", "coordinates": [-1.520096239743545, 49.361924579760256] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34412", @@ -831,8 +831,8 @@ "type": "Point", "coordinates": [-1.52856610290105, 49.36430611482931] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34411", @@ -841,8 +841,8 @@ "type": "Point", "coordinates": [-1.529769581166713, 49.364480054902444] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03060", @@ -851,8 +851,8 @@ "type": "Point", "coordinates": [-1.535568417050356, 49.36472085133499] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus34410", @@ -861,8 +861,8 @@ "type": "Point", "coordinates": [-1.530854289006823, 49.36466877623434] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06284", @@ -871,8 +871,8 @@ "type": "Point", "coordinates": [-1.531589190610127, 49.36492882285905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02134", @@ -881,8 +881,8 @@ "type": "Point", "coordinates": [-1.531585636721146, 49.36510976245396] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08862", @@ -891,8 +891,8 @@ "type": "Point", "coordinates": [-1.514287610518751, 49.37219695446738] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32945", @@ -901,8 +901,8 @@ "type": "Point", "coordinates": [-1.5179650794455, 49.372197550213805] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV19162", @@ -911,8 +911,8 @@ "type": "Point", "coordinates": [-1.518256530861644, 49.37146823421635] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32944", @@ -921,8 +921,8 @@ "type": "Point", "coordinates": [-1.51909312942812, 49.37219771660025] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32943", @@ -931,8 +931,8 @@ "type": "Point", "coordinates": [-1.522950716921357, 49.37216582565863] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32942", @@ -941,8 +941,8 @@ "type": "Point", "coordinates": [-1.527320367955829, 49.373951706325954] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03057", @@ -951,8 +951,8 @@ "type": "Point", "coordinates": [-1.531109516842623, 49.374778041057695] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32948", @@ -961,8 +961,8 @@ "type": "Point", "coordinates": [-1.528727248595691, 49.37807677444229] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32953", @@ -971,8 +971,8 @@ "type": "Point", "coordinates": [-1.517504389409401, 49.38872725310879] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32950", @@ -981,8 +981,8 @@ "type": "Point", "coordinates": [-1.527625344427467, 49.38114490026094] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV00376", @@ -991,8 +991,8 @@ "type": "Point", "coordinates": [-1.526160390385847, 49.381286355063466] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus32951", @@ -1001,8 +1001,8 @@ "type": "Point", "coordinates": [-1.527156505637376, 49.38105323794978] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22069", @@ -1011,8 +1011,8 @@ "type": "Point", "coordinates": [-1.531441732019706, 49.3553465205665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14458", @@ -1021,8 +1021,8 @@ "type": "Point", "coordinates": [-1.526507526635254, 49.35513073595609] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22067", @@ -1031,8 +1031,8 @@ "type": "Point", "coordinates": [-1.532403732174482, 49.35257682859679] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18758", @@ -1041,8 +1041,8 @@ "type": "Point", "coordinates": [-1.531733080868806, 49.352784404544984] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22066", @@ -1051,8 +1051,8 @@ "type": "Point", "coordinates": [-1.533131628048518, 49.33571004547227] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15114", @@ -1061,8 +1061,8 @@ "type": "Point", "coordinates": [-1.532053313651179, 49.337907928002785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22072", @@ -1071,8 +1071,8 @@ "type": "Point", "coordinates": [-1.533046984107669, 49.335762285638104] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03792", @@ -1081,8 +1081,8 @@ "type": "Point", "coordinates": [-1.532877816023977, 49.33303061717324] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus22073", @@ -1091,8 +1091,8 @@ "type": "Point", "coordinates": [-1.533057531446026, 49.33486137550976] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07424", @@ -1101,8 +1101,8 @@ "type": "Point", "coordinates": [-1.534883420349337, 49.33506643532471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV06470", @@ -1111,8 +1111,8 @@ "type": "Point", "coordinates": [-1.5339935260812059, 49.32782537754664] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09269", @@ -1121,8 +1121,8 @@ "type": "Point", "coordinates": [-1.540486402010409, 49.308234227444785] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05282", @@ -1131,8 +1131,8 @@ "type": "Point", "coordinates": [-1.540443543412636, 49.30824396710194] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06432", @@ -1141,8 +1141,8 @@ "type": "Point", "coordinates": [-1.553605845662367, 49.300981342922235] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12189", @@ -1151,8 +1151,8 @@ "type": "Point", "coordinates": [-1.557217555766814, 49.303017120020975] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06431", @@ -1161,8 +1161,8 @@ "type": "Point", "coordinates": [-1.556855381394924, 49.294703989676044] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV10176", @@ -1171,8 +1171,8 @@ "type": "Point", "coordinates": [-1.5557191205984735, 49.29423783326932] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05970", @@ -1181,8 +1181,8 @@ "type": "Point", "coordinates": [-1.556899752581278, 49.294687718159565] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05969", @@ -1191,8 +1191,8 @@ "type": "Point", "coordinates": [-1.558365114135587, 49.29312791296315] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07004", @@ -1201,8 +1201,8 @@ "type": "Point", "coordinates": [-1.5580257550948962, 49.29312307703382] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02322", @@ -1211,8 +1211,8 @@ "type": "Point", "coordinates": [-1.558363431607862, 49.293103186411905] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02321", @@ -1221,8 +1221,8 @@ "type": "Point", "coordinates": [-1.550843810591999, 49.28835713931457] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02320", @@ -1231,8 +1231,8 @@ "type": "Point", "coordinates": [-1.549076450270867, 49.28842758779228] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02319", @@ -1241,8 +1241,8 @@ "type": "Point", "coordinates": [-1.548968224727916, 49.288476803005885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02318", @@ -1251,8 +1251,8 @@ "type": "Point", "coordinates": [-1.545353494551501, 49.288203281286165] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus02317", @@ -1261,8 +1261,8 @@ "type": "Point", "coordinates": [-1.544278715354673, 49.28819278593066] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -1273,6 +1273,7 @@ "bus2": "MVBus02317", "length": 0.028233461470556193, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1293,6 +1294,7 @@ "bus2": "MVLV11101", "length": 0.04649766143979308, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1311,6 +1313,7 @@ "bus2": "MVBus17209", "length": 0.005203781737639504, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1331,6 +1334,7 @@ "bus2": "MVLV00382", "length": 0.24257532653511676, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1356,6 +1360,7 @@ "bus2": "MVBus17207", "length": 0.0018152069112323077, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1374,6 +1379,7 @@ "bus2": "MVBus17206", "length": 0.0063636643007188185, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1393,6 +1399,7 @@ "bus2": "MVLV09251", "length": 0.11367425331406272, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1417,6 +1424,7 @@ "bus2": "MVLV05023", "length": 0.012101505956263555, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1436,6 +1444,7 @@ "bus2": "MVBus15062", "length": 0.06688605844940153, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1456,6 +1465,7 @@ "bus2": "MVBus15061", "length": 0.21550751613824057, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1506,6 +1516,7 @@ "bus2": "MVLV14464", "length": 0.007619096156059685, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1526,6 +1537,7 @@ "bus2": "MVBus14650", "length": 0.08604247104581982, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1553,6 +1565,7 @@ "bus2": "MVLV15279", "length": 0.6005951041406843, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1588,6 +1601,7 @@ "bus2": "MVLV18774", "length": 0.15671172166017394, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1608,6 +1622,7 @@ "bus2": "MVBus10227", "length": 0.1880618514463853, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1627,6 +1642,7 @@ "bus2": "MVLV12002", "length": 0.1550339128722013, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1650,6 +1666,7 @@ "bus2": "MVBus10226", "length": 0.10457758935540795, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1668,6 +1685,7 @@ "bus2": "MVLV13673", "length": 0.16464985621011782, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1691,6 +1709,7 @@ "bus2": "MVBus10224", "length": 0.288510435240511, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1718,6 +1737,7 @@ "bus2": "MVLV14088", "length": 0.008478251107719109, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1737,6 +1757,7 @@ "bus2": "MVLV00901", "length": 0.5926417980284098, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1755,6 +1776,7 @@ "bus2": "MVLV15540", "length": 0.07639433946605165, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1773,6 +1795,7 @@ "bus2": "MVLV00558", "length": 0.756896951853965, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1796,6 +1819,7 @@ "bus2": "MVBus14682", "length": 0.11641707040119277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1815,6 +1839,7 @@ "bus2": "MVBus14681", "length": 0.21417143761172072, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1833,6 +1858,7 @@ "bus2": "MVBus14679", "length": 0.09663886198510684, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1851,6 +1877,7 @@ "bus2": "MVLV13843", "length": 0.4580472166707575, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1869,6 +1896,7 @@ "bus2": "MVBus14678", "length": 0.09694397235096873, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1887,6 +1915,7 @@ "bus2": "MVBus14677", "length": 0.07906888946602389, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1905,6 +1934,7 @@ "bus2": "MVBus14676", "length": 0.3669595001259236, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1931,6 +1961,7 @@ "bus2": "MVBus14674", "length": 0.1802597631984163, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1954,6 +1985,7 @@ "bus2": "MVLV04212", "length": 0.01332263067374734, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1973,6 +2005,7 @@ "bus2": "MVLV10753", "length": 0.07057903647257757, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1991,6 +2024,7 @@ "bus2": "MVLV16209", "length": 0.05439303367334706, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2009,6 +2043,7 @@ "bus2": "MVBus23668", "length": 0.0012805970531591306, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2027,6 +2062,7 @@ "bus2": "MVLV16630", "length": 0.37081031837191913, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2056,6 +2092,7 @@ "bus2": "MVBus23669", "length": 0.10986828457659217, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2075,6 +2112,7 @@ "bus2": "MVLV00557", "length": 0.74567234079204, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2094,6 +2132,7 @@ "bus2": "MVLV00556", "length": 0.4177356164704489, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2115,6 +2154,7 @@ "bus2": "MVLV16207", "length": 0.32029104368682343, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2135,6 +2175,7 @@ "bus2": "MVLV03243", "length": 0.37523568002671814, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2154,6 +2195,7 @@ "bus2": "MVBus23660", "length": 0.3065729223546083, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2172,6 +2214,7 @@ "bus2": "MVBus23665", "length": 0.6395473100197062, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2190,6 +2233,7 @@ "bus2": "MVBus23664", "length": 0.1119210277032705, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2209,6 +2253,7 @@ "bus2": "MVLV10338", "length": 0.2740050631911384, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2227,6 +2272,7 @@ "bus2": "MVBus23663", "length": 0.4489506342270319, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2246,6 +2292,7 @@ "bus2": "MVBus23659", "length": 0.9018397404516275, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2269,6 +2316,7 @@ "bus2": "MVBus23658", "length": 0.3637049063758763, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2288,6 +2336,7 @@ "bus2": "MVLV18938", "length": 0.14761877610763896, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2306,6 +2355,7 @@ "bus2": "MVBus23656", "length": 0.07833119469092044, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2324,6 +2374,7 @@ "bus2": "MVBus23654", "length": 0.43182383669511015, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2344,6 +2395,7 @@ "bus2": "MVBus23653", "length": 0.4732570571516864, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2364,6 +2416,7 @@ "bus2": "MVBus23651", "length": 0.33190085523301377, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2383,6 +2436,7 @@ "bus2": "MVLV13841", "length": 0.330837173677165, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2401,6 +2455,7 @@ "bus2": "MVBus23650", "length": 0.8033045776755825, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2427,6 +2482,7 @@ "bus2": "MVBus23649", "length": 0.06097076611982121, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2445,6 +2501,7 @@ "bus2": "MVBus23647", "length": 0.508202408525906, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2478,6 +2535,7 @@ "bus2": "MVLV16575", "length": 0.10310654010388842, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2496,6 +2554,7 @@ "bus2": "MVLV10158", "length": 0.19986212906546252, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2514,6 +2573,7 @@ "bus2": "MVLV13649", "length": 0.15532711411755915, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2533,6 +2593,7 @@ "bus2": "MVLV00375", "length": 0.271437589653534, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2552,6 +2613,7 @@ "bus2": "MVLV00373", "length": 0.08379643799941182, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2570,6 +2632,7 @@ "bus2": "MVLV13646", "length": 0.3924871147476781, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2598,6 +2661,7 @@ "bus2": "MVBus34424", "length": 0.4129712656640833, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2617,6 +2681,7 @@ "bus2": "MVBus34423", "length": 0.07003190855528035, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2635,6 +2700,7 @@ "bus2": "MVLV10159", "length": 0.18945571956595136, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2655,6 +2721,7 @@ "bus2": "MVBus34421", "length": 0.20172561841725256, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2673,6 +2740,7 @@ "bus2": "MVBus34420", "length": 0.28441854620385315, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2691,6 +2759,7 @@ "bus2": "MVBus34419", "length": 0.1872351576860677, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2709,6 +2778,7 @@ "bus2": "MVLV10164", "length": 0.08307445089227075, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2728,6 +2798,7 @@ "bus2": "MVBus34430", "length": 0.34138710270072825, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2747,6 +2818,7 @@ "bus2": "MVBus34429", "length": 0.4316157313277553, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2767,6 +2839,7 @@ "bus2": "MVBus34418", "length": 0.280354646989838, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2785,6 +2858,7 @@ "bus2": "MVBus34416", "length": 0.46227121366192264, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2804,6 +2878,7 @@ "bus2": "MVBus34414", "length": 0.07317231902175302, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2822,6 +2897,7 @@ "bus2": "MVBus34413", "length": 0.6720310690910645, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2842,6 +2918,7 @@ "bus2": "MVBus34412", "length": 0.08953139053423927, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2860,6 +2937,7 @@ "bus2": "MVLV03060", "length": 0.5346788249293161, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2879,6 +2957,7 @@ "bus2": "MVBus34411", "length": 0.08153686761905633, "params_id": "O_AM_148", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2897,6 +2976,7 @@ "bus2": "MVLV06284", "length": 0.0607116755354689, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2915,6 +2995,7 @@ "bus2": "MVBus34410", "length": 0.08291962228537283, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2938,6 +3019,7 @@ "bus2": "MVLV08862", "length": 0.26707625608160257, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2956,6 +3038,7 @@ "bus2": "MVLV19162", "length": 0.08382862257920029, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2974,6 +3057,7 @@ "bus2": "MVBus32945", "length": 0.08192465202152102, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -2992,6 +3076,7 @@ "bus2": "MVBus32944", "length": 0.28017990056768277, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3010,6 +3095,7 @@ "bus2": "MVBus32943", "length": 0.39063953902460974, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3038,6 +3124,7 @@ "bus2": "MVLV03057", "length": 0.4597844729770908, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3060,6 +3147,7 @@ "bus2": "MVBus32953", "length": 1.6326161105779273, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3123,6 +3211,7 @@ "bus2": "MVLV00376", "length": 0.08040663184049307, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3142,6 +3231,7 @@ "bus2": "MVBus32951", "length": 0.03578752012234594, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3161,6 +3251,7 @@ "bus2": "MVBus32950", "length": 0.40312747799055015, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3192,6 +3283,7 @@ "bus2": "MVBus32948", "length": 0.4830376263026058, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3222,6 +3314,7 @@ "bus2": "MVBus32942", "length": 1.0731453489406135, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3249,6 +3342,7 @@ "bus2": "MVLV02134", "length": 1.1707233869850964, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3280,6 +3374,7 @@ "bus2": "MVLV14458", "length": 0.44321442367888547, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3344,6 +3439,7 @@ "bus2": "MVBus22069", "length": 0.36238372555403137, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3382,6 +3478,7 @@ "bus2": "MVLV18758", "length": 0.056578106178282746, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3402,6 +3499,7 @@ "bus2": "MVBus22067", "length": 1.926359122832335, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3436,6 +3534,7 @@ "bus2": "MVLV15114", "length": 0.2493185426177021, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3454,6 +3553,7 @@ "bus2": "MVLV03792", "length": 0.2051436384266768, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3474,6 +3574,7 @@ "bus2": "MVLV07424", "length": 0.14383385188322648, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3493,6 +3594,7 @@ "bus2": "MVBus22073", "length": 0.10019875986664627, "params_id": "O_AM_54", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3511,6 +3613,7 @@ "bus2": "MVBus22072", "length": 0.008461700673569049, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3529,6 +3632,7 @@ "bus2": "MVBus22066", "length": 0.10342519827364842, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3555,6 +3659,7 @@ "bus2": "MVLV14298", "length": 0.8798759256032205, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3582,6 +3687,7 @@ "bus2": "MVLV06470", "length": 0.7954401697427387, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3603,6 +3709,7 @@ "bus2": "MVBus11803", "length": 1.0773011885807644, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3630,6 +3737,7 @@ "bus2": "MVLV14297", "length": 0.5364504470557699, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3657,6 +3765,7 @@ "bus2": "MVLV05282", "length": 0.0032995137003003863, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3675,6 +3784,7 @@ "bus2": "MVBus09269", "length": 0.31007777091499894, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3706,6 +3816,7 @@ "bus2": "MVLV08091", "length": 1.103705815148244, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3741,6 +3852,7 @@ "bus2": "MVLV12189", "length": 0.4629762715887536, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3809,6 +3921,7 @@ "bus2": "MVBus06432", "length": 0.792612707543813, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3838,6 +3951,7 @@ "bus2": "MVBus06431", "length": 0.22660860033133476, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3891,6 +4005,7 @@ "bus2": "MVLV10176", "length": 0.22922896329104542, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3934,6 +4049,7 @@ "bus2": "MVBus05970", "length": 0.2637279374416299, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3958,6 +4074,7 @@ "bus2": "MVBus05969", "length": 0.02430435716809026, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3977,6 +4094,7 @@ "bus2": "MVLV07004", "length": 0.024978720138269347, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -3996,6 +4114,7 @@ "bus2": "MVBus02322", "length": 1.02694858466435, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4031,6 +4150,7 @@ "bus2": "MVBus02321", "length": 0.16790378725191302, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4051,6 +4171,7 @@ "bus2": "MVBus02320", "length": 0.009993540367716214, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4072,6 +4193,7 @@ "bus2": "MVBus02319", "length": 0.26473687880197855, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -4091,6 +4213,7 @@ "bus2": "MVBus02318", "length": 0.09202958332239944, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -5434,11 +5557,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 357, + "ampacities": [357, 357, 357], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148.0 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "O_AM_54", @@ -5466,11 +5588,10 @@ [0.0, 0.0, 1.5707963267948965e-6] ] ], - "max_current": 193, + "ampacities": [193, 193, 193], "line_type": "OVERHEAD", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 54.0 + "materials": ["AM", "AM", "AM"], + "sections": [54.0, 54.0, 54.0] }, { "id": "U_AL_150", @@ -5498,11 +5619,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder290_Summer.json b/roseau/load_flow/data/networks/MVFeeder290_Summer.json index 49b95338..c9c3bc53 100644 --- a/roseau/load_flow/data/networks/MVFeeder290_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder290_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.110304663668984, 48.57658336890665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder20", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.110304663668984, 48.57658336890665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15809", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.092676858882234, 48.57786175424816] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07781", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.092144808206271, 48.57724086102603] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08671", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.0915269953777949, 48.577059455453295] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07231", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.092214809134924, 48.57695669474363] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12940", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.0900227394716775, 48.576108592491494] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08672", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.0943209415004231, 48.57538064663255] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15808", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.0949562874472534, 48.57688161636299] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15816", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.0954203403982659, 48.57453799744745] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01189", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.0951039520830765, 48.57331117610068] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04478", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.0990179748058666, 48.57227231621206] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -143,6 +143,7 @@ "bus2": "MVLV04478", "length": 0.9863054390973716, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -173,6 +174,7 @@ "bus2": "MVLV15809", "length": 0.10556655982771243, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -196,6 +198,7 @@ "bus2": "MVBus07781", "length": 0.0757359998583347, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -217,6 +220,7 @@ "bus2": "MVLV08671", "length": 0.05733663538018223, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -237,6 +241,7 @@ "bus2": "MVBus07231", "length": 0.29381782841035065, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -262,6 +267,7 @@ "bus2": "MVLV12940", "length": 0.42704930125149193, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -291,6 +297,7 @@ "bus2": "MVLV08672", "length": 0.2358136357626263, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -317,6 +324,7 @@ "bus2": "MVLV15808", "length": 0.32103748257947046, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -347,6 +355,7 @@ "bus2": "MVLV15816", "length": 0.27826011633328457, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -380,6 +389,7 @@ "bus2": "MVLV01189", "length": 0.6216146977045005, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -648,11 +658,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder290_Winter.json b/roseau/load_flow/data/networks/MVFeeder290_Winter.json index 1a89da8d..11537712 100644 --- a/roseau/load_flow/data/networks/MVFeeder290_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder290_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.110304663668984, 48.57658336890665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder20", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.110304663668984, 48.57658336890665] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15809", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.092676858882234, 48.57786175424816] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07781", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.092144808206271, 48.57724086102603] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08671", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.0915269953777949, 48.577059455453295] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07231", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.092214809134924, 48.57695669474363] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12940", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.0900227394716775, 48.576108592491494] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV08672", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.0943209415004231, 48.57538064663255] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15808", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.0949562874472534, 48.57688161636299] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15816", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.0954203403982659, 48.57453799744745] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01189", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.0951039520830765, 48.57331117610068] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04478", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.0990179748058666, 48.57227231621206] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -143,6 +143,7 @@ "bus2": "MVLV04478", "length": 0.9863054390973716, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -173,6 +174,7 @@ "bus2": "MVLV15809", "length": 0.10556655982771243, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -196,6 +198,7 @@ "bus2": "MVBus07781", "length": 0.0757359998583347, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -217,6 +220,7 @@ "bus2": "MVLV08671", "length": 0.05733663538018223, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -237,6 +241,7 @@ "bus2": "MVBus07231", "length": 0.29381782841035065, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -262,6 +267,7 @@ "bus2": "MVLV12940", "length": 0.42704930125149193, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -291,6 +297,7 @@ "bus2": "MVLV08672", "length": 0.2358136357626263, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -317,6 +324,7 @@ "bus2": "MVLV15808", "length": 0.32103748257947046, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -347,6 +355,7 @@ "bus2": "MVLV15816", "length": 0.27826011633328457, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -380,6 +389,7 @@ "bus2": "MVLV01189", "length": 0.6216146977045005, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -648,11 +658,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder312_Summer.json b/roseau/load_flow/data/networks/MVFeeder312_Summer.json index 38068743..0bdc31fb 100644 --- a/roseau/load_flow/data/networks/MVFeeder312_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder312_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-0.8900710079343, 49.258817450938] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder23", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.8900710079343, 49.258817450938] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12316", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.886134334135075, 49.23811159939885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07867", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.886163224026916, 49.23814376086724] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18592", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.877273257127134, 49.23991209308561] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09362", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.880607514550805, 49.2408818422678] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09361", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.880642256929955, 49.24089738375072] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07687", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.881835000987274, 49.241389848492354] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14607", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-0.892897202229386, 49.2363866831773] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03247", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-0.883709467593089, 49.24446960503848] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03246", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-0.890518079267901, 49.25885604408974] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -133,6 +133,7 @@ "bus2": "MVBus03246", "length": 0.03437601393347589, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -154,6 +155,7 @@ "bus2": "MVLV12316", "length": 0.004149664526962077, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -172,6 +174,7 @@ "bus2": "MVLV18592", "length": 0.2993785990167933, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -202,6 +205,7 @@ "bus2": "MVBus09362", "length": 0.0030639494102197053, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -220,6 +224,7 @@ "bus2": "MVBus09361", "length": 0.10188973558821779, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -242,6 +247,7 @@ "bus2": "MVLV07687", "length": 0.5398981925554321, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -284,6 +290,7 @@ "bus2": "MVBus07867", "length": 0.5303723579195851, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -311,6 +318,7 @@ "bus2": "MVLV14607", "length": 1.166091630690215, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -385,6 +393,7 @@ "bus2": "MVBus03247", "length": 2.071208490393622, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -636,11 +645,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder312_Winter.json b/roseau/load_flow/data/networks/MVFeeder312_Winter.json index b4b4bff4..b07a0036 100644 --- a/roseau/load_flow/data/networks/MVFeeder312_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder312_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-0.8900710079343, 49.258817450938] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder23", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-0.8900710079343, 49.258817450938] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV12316", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-0.886134334135075, 49.23811159939885] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07867", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-0.886163224026916, 49.23814376086724] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV18592", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-0.877273257127134, 49.23991209308561] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09362", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-0.880607514550805, 49.2408818422678] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09361", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-0.880642256929955, 49.24089738375072] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07687", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-0.881835000987274, 49.241389848492354] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14607", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-0.892897202229386, 49.2363866831773] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03247", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-0.883709467593089, 49.24446960503848] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03246", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-0.890518079267901, 49.25885604408974] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -133,6 +133,7 @@ "bus2": "MVBus03246", "length": 0.03437601393347589, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -154,6 +155,7 @@ "bus2": "MVLV12316", "length": 0.004149664526962077, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -172,6 +174,7 @@ "bus2": "MVLV18592", "length": 0.2993785990167933, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -202,6 +205,7 @@ "bus2": "MVBus09362", "length": 0.0030639494102197053, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -220,6 +224,7 @@ "bus2": "MVBus09361", "length": 0.10188973558821779, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -242,6 +247,7 @@ "bus2": "MVLV07687", "length": 0.5398981925554321, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -284,6 +290,7 @@ "bus2": "MVBus07867", "length": 0.5303723579195851, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -311,6 +318,7 @@ "bus2": "MVLV14607", "length": 1.166091630690215, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -385,6 +393,7 @@ "bus2": "MVBus03247", "length": 2.071208490393622, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -636,11 +645,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder320_Summer.json b/roseau/load_flow/data/networks/MVFeeder320_Summer.json index 42aef603..18eb433d 100644 --- a/roseau/load_flow/data/networks/MVFeeder320_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder320_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder24", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08245", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.104077900830377, 49.10401651493053] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08244", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.10419910236934, 49.10412508714011] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08243", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.10530745327206, 49.105688721167525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02667", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.1054259887101194, 49.105803224052394] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07719", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.105251850515671, 49.10568196530121] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05633", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.1047738883191665, 49.10789730368813] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07251", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.107272123677667, 49.1076351414578] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15887", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.1072595556386244, 49.107578646783914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06697", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.107295136047514, 49.10761828058603] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15889", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.1111834901653443, 49.10470070458305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06394", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.113290374699996, 49.10322404020471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06393", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.113361214583669, 49.10304249989962] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04536", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.1124929103886734, 49.1020702604019] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06241", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.113451342366867, 49.10301925894434] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15900", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.114356949552328, 49.10219869675666] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03274", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.116558398469074, 49.10550728051061] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03273", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.116603611405577, 49.10567001171423] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03272", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.118771483267404, 49.1085233008711] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -223,6 +223,7 @@ "bus2": "MVBus03272", "length": 0.9312494543348707, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -252,6 +253,7 @@ "bus2": "MVBus08245", "length": 0.02348758279773055, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -274,6 +276,7 @@ "bus2": "MVBus08244", "length": 0.27634588096113716, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -300,6 +303,7 @@ "bus2": "MVBus08243", "length": 0.020846555492663302, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -321,6 +325,7 @@ "bus2": "MVLV02667", "length": 0.024627893652587315, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -342,6 +347,7 @@ "bus2": "MVBus07719", "length": 0.3438063636066759, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -374,6 +380,7 @@ "bus2": "MVLV05633", "length": 0.2863367475352318, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -405,6 +412,7 @@ "bus2": "MVBus07251", "length": 0.005544006519024985, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -425,6 +433,7 @@ "bus2": "MVLV15887", "length": 0.006698580964137551, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -445,6 +454,7 @@ "bus2": "MVBus06697", "length": 0.43389202608035926, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -466,6 +476,7 @@ "bus2": "MVLV15889", "length": 0.23413995893045467, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -487,6 +498,7 @@ "bus2": "MVBus06394", "length": 0.02247050530209471, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -507,6 +519,7 @@ "bus2": "MVBus06393", "length": 0.1264834129891168, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -527,6 +540,7 @@ "bus2": "MVLV04536", "length": 0.13798024400367132, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -547,6 +561,7 @@ "bus2": "MVBus06241", "length": 0.1319376452899145, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -571,6 +586,7 @@ "bus2": "MVLV15900", "length": 0.4939133036688335, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -602,6 +618,7 @@ "bus2": "MVBus03274", "length": 0.018475017486536353, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -621,6 +638,7 @@ "bus2": "MVBus03273", "length": 0.3604669225339614, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -838,11 +856,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder320_Winter.json b/roseau/load_flow/data/networks/MVFeeder320_Winter.json index 0ce84dc9..8f41e8b1 100644 --- a/roseau/load_flow/data/networks/MVFeeder320_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder320_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder24", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08245", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.104077900830377, 49.10401651493053] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08244", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.10419910236934, 49.10412508714011] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus08243", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.10530745327206, 49.105688721167525] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV02667", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.1054259887101194, 49.105803224052394] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07719", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.105251850515671, 49.10568196530121] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV05633", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.1047738883191665, 49.10789730368813] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07251", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.107272123677667, 49.1076351414578] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15887", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.1072595556386244, 49.107578646783914] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06697", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.107295136047514, 49.10761828058603] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15889", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.1111834901653443, 49.10470070458305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06394", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.113290374699996, 49.10322404020471] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06393", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.113361214583669, 49.10304249989962] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV04536", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.1124929103886734, 49.1020702604019] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06241", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.113451342366867, 49.10301925894434] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV15900", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.114356949552328, 49.10219869675666] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03274", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.116558398469074, 49.10550728051061] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03273", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.116603611405577, 49.10567001171423] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03272", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.118771483267404, 49.1085233008711] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -223,6 +223,7 @@ "bus2": "MVBus03272", "length": 0.9312494543348707, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -252,6 +253,7 @@ "bus2": "MVBus08245", "length": 0.02348758279773055, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -274,6 +276,7 @@ "bus2": "MVBus08244", "length": 0.27634588096113716, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -300,6 +303,7 @@ "bus2": "MVBus08243", "length": 0.020846555492663302, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -321,6 +325,7 @@ "bus2": "MVLV02667", "length": 0.024627893652587315, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -342,6 +347,7 @@ "bus2": "MVBus07719", "length": 0.3438063636066759, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -374,6 +380,7 @@ "bus2": "MVLV05633", "length": 0.2863367475352318, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -405,6 +412,7 @@ "bus2": "MVBus07251", "length": 0.005544006519024985, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -425,6 +433,7 @@ "bus2": "MVLV15887", "length": 0.006698580964137551, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -445,6 +454,7 @@ "bus2": "MVBus06697", "length": 0.43389202608035926, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -466,6 +476,7 @@ "bus2": "MVLV15889", "length": 0.23413995893045467, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -487,6 +498,7 @@ "bus2": "MVBus06394", "length": 0.02247050530209471, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -507,6 +519,7 @@ "bus2": "MVBus06393", "length": 0.1264834129891168, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -527,6 +540,7 @@ "bus2": "MVLV04536", "length": 0.13798024400367132, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -547,6 +561,7 @@ "bus2": "MVBus06241", "length": 0.1319376452899145, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -571,6 +586,7 @@ "bus2": "MVLV15900", "length": 0.4939133036688335, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -602,6 +618,7 @@ "bus2": "MVBus03274", "length": 0.018475017486536353, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -621,6 +638,7 @@ "bus2": "MVBus03273", "length": 0.3604669225339614, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -838,11 +856,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder339_Summer.json b/roseau/load_flow/data/networks/MVFeeder339_Summer.json index d0fbbbf2..6d39a797 100644 --- a/roseau/load_flow/data/networks/MVFeeder339_Summer.json +++ b/roseau/load_flow/data/networks/MVFeeder339_Summer.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder24", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10661", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.141032490555135, 49.112874190818054] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13031", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.1364339543418398, 49.113451177884166] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17997", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.125978403645698, 49.11553831359176] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03410", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.1266887804672565, 49.11440224755239] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09523", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.132228909254047, 49.114009322801685] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09049", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.13224498118458, 49.11399181282946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09319", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.132262020484745, 49.11396037425162] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14711", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.1342700452937602, 49.11173576018305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14712", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.134965876166687, 49.111460293504116] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09318", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.1315118134130806, 49.1119505611383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07055", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.130323324546056, 49.11145020371014] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07791", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.1316018628211864, 49.11104375646305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06408", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.130312098223946, 49.111434024604876] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06407", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.13054546862156, 49.11073282681292] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06406", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.130263519753087, 49.11003257521372] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06405", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.130642062379304, 49.10846441433993] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06404", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.132970170905764, 49.108610742012765] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03414", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.1330918699037185, 49.10872703870734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06247", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.133004271887047, 49.10856984554126] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06246", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.13468194569207, 49.10821753395187] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03413", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.1340089537298175, 49.10725563511267] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01263", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.133991777245086, 49.10719013339036] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05273", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.134640189983407, 49.108157314591196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05272", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.130520028176319, 49.10797302424653] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03412", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.1309158792652, 49.106900762867234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07034", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.13187267044615, 49.106548331341614] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04987", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.130536882601092, 49.10799691922555] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04986", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.130554237696906, 49.10842944451173] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17998", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.1302244281285492, 49.110148550835596] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03446", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.130453200031668, 49.11078015694125] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03445", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.123870876133732, 49.113367217043866] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -353,6 +353,7 @@ "bus2": "MVBus03445", "length": 0.157374575367922, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -375,6 +376,7 @@ "bus2": "MVBus10661", "length": 0.39186115109558195, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -417,6 +419,7 @@ "bus2": "MVLV17997", "length": 0.17161761950768745, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -457,6 +460,7 @@ "bus2": "MVLV03410", "length": 0.4996150453081294, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -487,6 +491,7 @@ "bus2": "MVBus09523", "length": 0.3199311641698213, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -512,6 +517,7 @@ "bus2": "MVLV13031", "length": 0.31998005680489433, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -538,6 +544,7 @@ "bus2": "MVBus09049", "length": 0.0037575964027371745, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -557,6 +564,7 @@ "bus2": "MVLV09319", "length": 0.6271520819798866, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -587,6 +595,7 @@ "bus2": "MVLV14711", "length": 0.18924834087506856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -612,6 +621,7 @@ "bus2": "MVLV14712", "length": 0.2606729615617879, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -635,6 +645,7 @@ "bus2": "MVLV09318", "length": 0.18482834408613613, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -660,6 +671,7 @@ "bus2": "MVBus07055", "length": 0.10587671624338621, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -686,6 +698,7 @@ "bus2": "MVLV07791", "length": 0.10667568759828626, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -712,6 +725,7 @@ "bus2": "MVBus06408", "length": 0.08571897747858663, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -733,6 +747,7 @@ "bus2": "MVBus06407", "length": 0.08130416864677811, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -752,6 +767,7 @@ "bus2": "MVBus06406", "length": 0.17954486915604917, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -772,6 +788,7 @@ "bus2": "MVBus06405", "length": 0.1809143110905235, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -793,6 +810,7 @@ "bus2": "MVBus06404", "length": 0.027584319044840308, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -814,6 +832,7 @@ "bus2": "MVLV03414", "length": 0.020444027554901663, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -834,6 +853,7 @@ "bus2": "MVBus06247", "length": 0.1302124244386434, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -854,6 +874,7 @@ "bus2": "MVBus06246", "length": 0.12672948365836864, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -880,6 +901,7 @@ "bus2": "MVLV03413", "length": 0.005540481233914797, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -900,6 +922,7 @@ "bus2": "MVLV01263", "length": 0.13089632690546296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -927,6 +950,7 @@ "bus2": "MVBus05273", "length": 0.33954123986204615, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -949,6 +973,7 @@ "bus2": "MVBus05272", "length": 0.1265649035855997, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -970,6 +995,7 @@ "bus2": "MVLV07034", "length": 0.08313723421317573, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -995,6 +1021,7 @@ "bus2": "MVLV03412", "length": 0.12806728975747192, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1018,6 +1045,7 @@ "bus2": "MVBus04987", "length": 0.0651426538253046, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1038,6 +1066,7 @@ "bus2": "MVBus04986", "length": 0.19659511934477608, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1060,6 +1089,7 @@ "bus2": "MVLV17998", "length": 0.07407985403789215, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1081,6 +1111,7 @@ "bus2": "MVBus03446", "length": 0.5885938744082162, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1489,11 +1520,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/networks/MVFeeder339_Winter.json b/roseau/load_flow/data/networks/MVFeeder339_Winter.json index ff4f76d5..6270914a 100644 --- a/roseau/load_flow/data/networks/MVFeeder339_Winter.json +++ b/roseau/load_flow/data/networks/MVFeeder339_Winter.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -21,8 +21,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "HVMVFeeder24", @@ -31,8 +31,8 @@ "type": "Point", "coordinates": [-1.122502301274675, 49.11336333911259] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus10661", @@ -41,8 +41,8 @@ "type": "Point", "coordinates": [-1.141032490555135, 49.112874190818054] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV13031", @@ -51,8 +51,8 @@ "type": "Point", "coordinates": [-1.1364339543418398, 49.113451177884166] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17997", @@ -61,8 +61,8 @@ "type": "Point", "coordinates": [-1.125978403645698, 49.11553831359176] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03410", @@ -71,8 +71,8 @@ "type": "Point", "coordinates": [-1.1266887804672565, 49.11440224755239] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09523", @@ -81,8 +81,8 @@ "type": "Point", "coordinates": [-1.132228909254047, 49.114009322801685] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus09049", @@ -91,8 +91,8 @@ "type": "Point", "coordinates": [-1.13224498118458, 49.11399181282946] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09319", @@ -101,8 +101,8 @@ "type": "Point", "coordinates": [-1.132262020484745, 49.11396037425162] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14711", @@ -111,8 +111,8 @@ "type": "Point", "coordinates": [-1.1342700452937602, 49.11173576018305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV14712", @@ -121,8 +121,8 @@ "type": "Point", "coordinates": [-1.134965876166687, 49.111460293504116] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV09318", @@ -131,8 +131,8 @@ "type": "Point", "coordinates": [-1.1315118134130806, 49.1119505611383] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus07055", @@ -141,8 +141,8 @@ "type": "Point", "coordinates": [-1.130323324546056, 49.11145020371014] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07791", @@ -151,8 +151,8 @@ "type": "Point", "coordinates": [-1.1316018628211864, 49.11104375646305] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06408", @@ -161,8 +161,8 @@ "type": "Point", "coordinates": [-1.130312098223946, 49.111434024604876] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06407", @@ -171,8 +171,8 @@ "type": "Point", "coordinates": [-1.13054546862156, 49.11073282681292] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06406", @@ -181,8 +181,8 @@ "type": "Point", "coordinates": [-1.130263519753087, 49.11003257521372] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06405", @@ -191,8 +191,8 @@ "type": "Point", "coordinates": [-1.130642062379304, 49.10846441433993] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06404", @@ -201,8 +201,8 @@ "type": "Point", "coordinates": [-1.132970170905764, 49.108610742012765] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03414", @@ -211,8 +211,8 @@ "type": "Point", "coordinates": [-1.1330918699037185, 49.10872703870734] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06247", @@ -221,8 +221,8 @@ "type": "Point", "coordinates": [-1.133004271887047, 49.10856984554126] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus06246", @@ -231,8 +231,8 @@ "type": "Point", "coordinates": [-1.13468194569207, 49.10821753395187] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03413", @@ -241,8 +241,8 @@ "type": "Point", "coordinates": [-1.1340089537298175, 49.10725563511267] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV01263", @@ -251,8 +251,8 @@ "type": "Point", "coordinates": [-1.133991777245086, 49.10719013339036] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05273", @@ -261,8 +261,8 @@ "type": "Point", "coordinates": [-1.134640189983407, 49.108157314591196] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus05272", @@ -271,8 +271,8 @@ "type": "Point", "coordinates": [-1.130520028176319, 49.10797302424653] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV03412", @@ -281,8 +281,8 @@ "type": "Point", "coordinates": [-1.1309158792652, 49.106900762867234] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV07034", @@ -291,8 +291,8 @@ "type": "Point", "coordinates": [-1.13187267044615, 49.106548331341614] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04987", @@ -301,8 +301,8 @@ "type": "Point", "coordinates": [-1.130536882601092, 49.10799691922555] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus04986", @@ -311,8 +311,8 @@ "type": "Point", "coordinates": [-1.130554237696906, 49.10842944451173] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVLV17998", @@ -321,8 +321,8 @@ "type": "Point", "coordinates": [-1.1302244281285492, 49.110148550835596] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03446", @@ -331,8 +331,8 @@ "type": "Point", "coordinates": [-1.130453200031668, 49.11078015694125] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 }, { "id": "MVBus03445", @@ -341,8 +341,8 @@ "type": "Point", "coordinates": [-1.123870876133732, 49.113367217043866] }, - "min_voltage": 19000, - "max_voltage": 21000 + "nominal_voltage": 20000, + "min_voltage_level": 0.95 } ], "lines": [ @@ -353,6 +353,7 @@ "bus2": "MVBus03445", "length": 0.157374575367922, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -375,6 +376,7 @@ "bus2": "MVBus10661", "length": 0.39186115109558195, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -417,6 +419,7 @@ "bus2": "MVLV17997", "length": 0.17161761950768745, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -457,6 +460,7 @@ "bus2": "MVLV03410", "length": 0.4996150453081294, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -487,6 +491,7 @@ "bus2": "MVBus09523", "length": 0.3199311641698213, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -512,6 +517,7 @@ "bus2": "MVLV13031", "length": 0.31998005680489433, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -538,6 +544,7 @@ "bus2": "MVBus09049", "length": 0.0037575964027371745, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -557,6 +564,7 @@ "bus2": "MVLV09319", "length": 0.6271520819798866, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -587,6 +595,7 @@ "bus2": "MVLV14711", "length": 0.18924834087506856, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -612,6 +621,7 @@ "bus2": "MVLV14712", "length": 0.2606729615617879, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -635,6 +645,7 @@ "bus2": "MVLV09318", "length": 0.18482834408613613, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -660,6 +671,7 @@ "bus2": "MVBus07055", "length": 0.10587671624338621, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -686,6 +698,7 @@ "bus2": "MVLV07791", "length": 0.10667568759828626, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -712,6 +725,7 @@ "bus2": "MVBus06408", "length": 0.08571897747858663, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -733,6 +747,7 @@ "bus2": "MVBus06407", "length": 0.08130416864677811, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -752,6 +767,7 @@ "bus2": "MVBus06406", "length": 0.17954486915604917, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -772,6 +788,7 @@ "bus2": "MVBus06405", "length": 0.1809143110905235, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -793,6 +810,7 @@ "bus2": "MVBus06404", "length": 0.027584319044840308, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -814,6 +832,7 @@ "bus2": "MVLV03414", "length": 0.020444027554901663, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -834,6 +853,7 @@ "bus2": "MVBus06247", "length": 0.1302124244386434, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -854,6 +874,7 @@ "bus2": "MVBus06246", "length": 0.12672948365836864, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -880,6 +901,7 @@ "bus2": "MVLV03413", "length": 0.005540481233914797, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -900,6 +922,7 @@ "bus2": "MVLV01263", "length": 0.13089632690546296, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -927,6 +950,7 @@ "bus2": "MVBus05273", "length": 0.33954123986204615, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -949,6 +973,7 @@ "bus2": "MVBus05272", "length": 0.1265649035855997, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -970,6 +995,7 @@ "bus2": "MVLV07034", "length": 0.08313723421317573, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -995,6 +1021,7 @@ "bus2": "MVLV03412", "length": 0.12806728975747192, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1018,6 +1045,7 @@ "bus2": "MVBus04987", "length": 0.0651426538253046, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1038,6 +1066,7 @@ "bus2": "MVBus04986", "length": 0.19659511934477608, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1060,6 +1089,7 @@ "bus2": "MVLV17998", "length": 0.07407985403789215, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1081,6 +1111,7 @@ "bus2": "MVBus03446", "length": 0.5885938744082162, "params_id": "U_AL_150", + "max_loading": 1, "ground": "ground", "geometry": { "type": "LineString", @@ -1489,11 +1520,10 @@ [0.0, 0.0, 0.00014105751014618172] ] ], - "max_current": 325, + "ampacities": [325, 325, 325], "line_type": "UNDERGROUND", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 150.0 + "materials": ["AL", "AL", "AL"], + "sections": [150.0, 150.0, 150.0] } ], "transformers_params": [] diff --git a/roseau/load_flow/data/transformers/Catalogue.csv b/roseau/load_flow/data/transformers/Catalogue.csv index 9c854c2f..5a35117e 100644 --- a/roseau/load_flow/data/transformers/Catalogue.csv +++ b/roseau/load_flow/data/transformers/Catalogue.csv @@ -1,163 +1,310 @@ -name,manufacturer,range,efficiency,sn,vsc,psc,i0,p0,type,uhv,ulv,du1,du0.8,eff1 100%,eff0.8 100%,eff1 75%,eff0.8 75% -FT_Standard_Standard_100kVA,FT,Standard,Standard,100000,0.04,2150,0.025,210,Dyn11,20000,400,2.21,3.75,97.69,97.13,98.14,97.69 -FT_Standard_Standard_160kVA,FT,Standard,Standard,160000,0.04,2350,0.023,460,Dyn11,20000,400,1.54,3.43,98.27,97.85,98.54,98.18 -FT_Standard_Standard_250kVA,FT,Standard,Standard,250000,0.04,3250,0.021,650,Dyn11,20000,400,1.37,3.33,98.46,98.09,98.7,98.37 -FT_Standard_Standard_315kVA,FT,Standard,Standard,315000,0.04,3900,0.02,800,Dyn11,20000,400,1.31,3.3,98.53,98.17,98.75,98.44 -FT_Standard_Standard_400kVA,FT,Standard,Standard,400000,0.04,4600,0.019,930,Dyn11,20000,400,1.22,3.25,98.64,98.3,98.84,98.56 -FT_Standard_Standard_500kVA,FT,Standard,Standard,500000,0.04,5500,0.019,1100,Dyn11,20000,400,1.17,3.22,98.7,98.387,98.89,98.62 -FT_Standard_Standard_630kVA,FT,Standard,Standard,630000,0.04,6500,0.018,1300,Dyn11,20000,400,1.11,3.17,98.78,98.48,98.96,98.71 -FT_Standard_Standard_800kVA,FT,Standard,Standard,800000,0.06,10700,0.025,1220,Dyn11,20000,400,1.51,4.65,98.53,98.17,98.81,98.51 -FT_Standard_Standard_1000kVA,FT,Standard,Standard,1000000,0.06,13000,0.024,1470,Dyn11,20000,400,1.47,4.63,98.57,98.22,98.84,98.56 -FT_Standard_Standard_1250kVA,FT,Standard,Standard,1250000,0.06,16000,0.022,1800,Dyn11,20000,400,1.45,4.62,98.6,98.25,98.86,98.58 -FT_Standard_Standard_1600kVA,FT,Standard,Standard,1600000,0.06,20000,0.02,2300,Dyn11,20000,400,1.42,4.6,98.63,98.29,98.88,98.61 -FT_Standard_Standard_2000kVA,FT,Standard,Standard,2000000,0.06,25500,0.019,2750,Dyn11,20000,400,1.45,4.61,98.61,98.27,98.87,98.6 -FT_Standard_Standard_2500kVA,FT,Standard,Standard,2500000,0.06,32000,0.018,3350,Dyn11,20000,400,1.45,4.62,98.61,98.26,98.87,98.6 -FT_Standard_Standard_3150kVA,FT,Standard,Standard,3150000,0.07,33000,0.017,4380,Dyn11,20000,400,1.29,5.11,98.83,98.54,99.04,98.8 -SE_Minera_AA0Ak_160kVA,SE,Minera,AA0Ak,160000,0.04,1750,0.15,189,Dyn11,20000,400,,,98.803,98.508,99.032,98.792 -SE_Minera_AA0Ak_250kVA,SE,Minera,AA0Ak,250000,0.04,2350,0.14,270,Dyn11,20000,400,,,98.963,98.707,99.158,98.95 -SE_Minera_AA0Ak_400kVA,SE,Minera,AA0Ak,400000,0.04,3250,0.16,387,Dyn11,20000,400,,,99.099,98.876,99.267,99.085 -SE_Minera_AA0Ak_630kVA,SE,Minera,AA0Ak,630000,0.04,4600,0.15,540,Dyn11,20000,400,,,99.191,98.99,99.342,99.179 -SE_Minera_AA0Ak_800kVA,SE,Minera,AA0Ak,800000,0.04,6000,0.12,585,Dyn11,20000,400,,,99.184,98.982,99.344,99.192 -SE_Minera_AA0Ak_1000kVA,SE,Minera,AA0Ak,1000000,0.04,7600,0.12,693,Dyn11,20000,400,,,99.178,98.974,99.342,99.179 -SE_Minera_AA0Ak_1250kVA,SE,Minera,AA0Ak,1250000,0.04,9500,0.12,855,Dyn11,20000,400,,,99.178,98.975,99.343,99.18 -SE_Minera_AA0Ak_1600kVA,SE,Minera,AA0Ak,1600000,0.04,12000,0.28,1080,Dyn11,20000,400,,,99.189,99.988,99.352,99.191 -SE_Minera_AA0Ak_2000kVA,SE,Minera,AA0Ak,2000000,0.04,15000,0.28,1305,Dyn11,20000,400,,,99.191,98.991,99.355,99.195 -SE_Minera_AA0Ak_2500kVA,SE,Minera,AA0Ak,2500000,0.04,18500,0.28,1575,Dyn11,20000,400,,,99.203,99.006,99.365,99.208 -SE_Minera_AA0Ak_3150kVA,SE,Minera,AA0Ak,3150000,0.04,23000,0.28,1980,Dyn11,20000,400,,,99.213,99.018,99.373,99.217 -SE_Minera_A0Ak_50kVA,SE,Minera,A0Ak,50000,0.04,750,0.005,90,Yzn11,20000,400,1.57,3.45,98.35,97.94,98.65,98.32 -SE_Minera_A0Ak_100kVA,SE,Minera,A0Ak,100000,0.04,1250,0.005,145,Dyn11,20000,400,1.32,3.31,98.62,98.29,98.88,98.61 -SE_Minera_A0Ak_160kVA,SE,Minera,A0Ak,160000,0.04,1700,0.005,210,Dyn11,20000,400,1.14,3.19,98.82,98.53,99.04,98.8 -SE_Minera_A0Ak_250kVA,SE,Minera,A0Ak,250000,0.04,2350,0.005,300,Dyn11,20000,400,1.02,3.12,98.95,98.69,99.14,98.93 -SE_Minera_A0Ak_315kVA,SE,Minera,A0Ak,315000,0.04,2800,0.005,360,Dyn11,20000,400,0.96,3.08,99.01,98.76,99.19,98.99 -SE_Minera_A0Ak_400kVA,SE,Minera,A0Ak,400000,0.04,3250,0.005,430,Dyn11,20000,400,0.89,3.03,99.09,98.86,99.25,99.07 -SE_Minera_A0Ak_500kVA,SE,Minera,A0Ak,500000,0.04,3900,0.005,510,Dyn11,20000,400,0.86,3.01,99.13,98.91,99.28,99.11 -SE_Minera_A0Ak_630kVA,SE,Minera,A0Ak,630000,0.04,4600,0.005,600,Dyn11,20000,400,0.81,2.98,99.18,98.98,99.33,99.16 -SE_Minera_A0Ak_800kVA,SE,Minera,A0Ak,800000,0.06,6000,0.005,650,Dyn11,20000,400,0.93,4.26,99.18,98.97,99.33,99.17 -SE_Minera_A0Ak_1000kVA,SE,Minera,A0Ak,1000000,0.06,7600,0.005,770,Dyn11,20000,400,0.94,4.27,99.17,98.96,99.33,99.17 -SE_Minera_A0Ak_1250kVA,SE,Minera,A0Ak,1250000,0.06,9500,0.005,950,Dyn11,20000,400,0.94,4.27,99.17,98.97,99.33,99.17 -SE_Minera_A0Ak_1600kVA,SE,Minera,A0Ak,1600000,0.06,12000,0.005,1200,Dyn11,20000,400,0.93,4.26,99.18,98.98,99.34,99.18 -SE_Minera_A0Ak_2000kVA,SE,Minera,A0Ak,2000000,0.06,15000,0.005,1450,Dyn11,20000,400,0.93,4.26,99.18,98.98,99.35,99.18 -SE_Minera_A0Ak_2500kVA,SE,Minera,A0Ak,2500000,0.06,18500,0.005,1750,Dyn11,20000,400,0.92,4.26,99.2,99.0,99.36,99.2 -SE_Minera_B0Bk_50kVA,SE,Minera,B0Bk,50000,0.04,875,0.01,110,Yzn11,20000,400,1.81,3.57,98.07,97.6,98.42,98.03 -SE_Minera_B0Bk_100kVA,SE,Minera,B0Bk,100000,0.04,1475,0.01,180,Dyn11,20000,400,1.54,3.43,98.37,97.97,98.67,98.35 -SE_Minera_B0Bk_160kVA,SE,Minera,B0Bk,160000,0.04,2000,0.008,260,Dyn11,20000,400,1.32,3.31,98.61,98.27,98.86,98.58 -SE_Minera_B0Bk_250kVA,SE,Minera,B0Bk,250000,0.04,2750,0.008,360,Dyn11,20000,400,1.17,3.22,98.77,98.47,98.99,98.74 -SE_Minera_B0Bk_315kVA,SE,Minera,B0Bk,315000,0.04,3250,0.008,440,Dyn11,20000,400,1.11,3.17,98.84,98.56,99.05,98.81 -SE_Minera_B0Bk_400kVA,SE,Minera,B0Bk,400000,0.04,3850,0.008,520,Dyn11,20000,400,1.04,3.13,98.92,98.65,99.11,98.89 -SE_Minera_B0Bk_500kVA,SE,Minera,B0Bk,500000,0.04,4600,0.008,610,Dyn11,20000,400,1.0,3.1,98.97,98.71,99.15,98.95 -SE_Minera_B0Bk_630kVA,SE,Minera,B0Bk,630000,0.04,5400,0.007,730,Dyn11,20000,400,0.93,3.06,99.04,98.8,99.21,99.01 -SE_Minera_B0Bk_800kVA,SE,Minera,B0Bk,800000,0.06,7000,0.007,800,Dyn11,20000,400,1.05,4.35,99.03,98.8,99.22,99.02 -SE_Minera_B0Bk_1000kVA,SE,Minera,B0Bk,1000000,0.06,9000,0.007,940,Dyn11,20000,400,1.08,4.37,99.02,98.77,99.21,99.01 -SE_Minera_B0Bk_1250kVA,SE,Minera,B0Bk,1250000,0.06,11000,0.007,1150,Dyn11,20000,400,1.06,4.35,99.04,98.81,99.23,99.04 -SE_Minera_B0Bk_1600kVA,SE,Minera,B0Bk,1600000,0.06,14000,0.007,1450,Dyn11,20000,400,1.05,4.35,99.04,98.81,99.23,99.04 -SE_Minera_B0Bk_2000kVA,SE,Minera,B0Bk,2000000,0.06,18000,0.007,1800,Dyn11,20000,400,1.08,4.37,99.02,98.78,99.21,99.02 -SE_Minera_B0Bk_2500kVA,SE,Minera,B0Bk,2500000,0.06,22000,0.007,2150,Dyn11,20000,400,1.06,4.35,99.04,98.81,99.23,99.04 -SE_Minera_C0Bk_50kVA,SE,Minera,C0Bk,50000,0.04,875,0.015,125,Yzn11,20000,400,1.81,3.57,98.04,97.56,98.38,97.98 -SE_Minera_C0Bk_100kVA,SE,Minera,C0Bk,100000,0.04,1475,0.015,210,Dyn11,20000,400,1.54,3.43,98.34,97.94,98.63,98.3 -SE_Minera_C0Bk_160kVA,SE,Minera,C0Bk,160000,0.04,2000,0.014,300,Dyn11,20000,400,1.32,3.31,98.58,98.23,98.83,98.54 -SE_Minera_C0Bk_250kVA,SE,Minera,C0Bk,250000,0.04,2750,0.013,425,Dyn11,20000,400,1.17,3.22,98.75,98.44,98.96,98.7 -SE_Minera_C0Bk_315kVA,SE,Minera,C0Bk,315000,0.04,3250,0.013,520,Dyn11,20000,400,1.11,3.17,98.82,98.53,99.02,98.77 -SE_Minera_C0Bk_400kVA,SE,Minera,C0Bk,400000,0.04,3850,0.012,610,Dyn11,20000,400,1.04,3.13,98.9,98.63,99.08,98.86 -SE_Minera_C0Bk_500kVA,SE,Minera,C0Bk,500000,0.04,4600,0.012,720,Dyn11,20000,400,1.0,3.1,98.95,98.69,99.13,98.91 -SE_Minera_C0Bk_630kVA,SE,Minera,C0Bk,630000,0.04,5400,0.011,860,Dyn11,20000,400,0.93,3.06,99.02,98.77,99.18,98.98 -SE_Minera_C0Bk_800kVA,SE,Minera,C0Bk,800000,0.06,7000,0.011,930,Dyn11,20000,400,1.05,4.35,99.02,98.78,99.2,99.0 -SE_Minera_C0Bk_1000kVA,SE,Minera,C0Bk,1000000,0.06,9000,0.01,1100,Dyn11,20000,400,1.08,4.37,99.0,98.75,99.19,98.98 -SE_Minera_C0Bk_1250kVA,SE,Minera,C0Bk,1250000,0.06,11000,0.01,1350,Dyn11,20000,400,1.06,4.35,99.02,98.78,99.2,99.0 -SE_Minera_C0Bk_1600kVA,SE,Minera,C0Bk,1600000,0.06,14000,0.01,1700,Dyn11,20000,400,1.05,4.35,99.03,98.79,99.21,99.01 -SE_Minera_C0Bk_2000kVA,SE,Minera,C0Bk,2000000,0.06,18000,0.01,2100,Dyn11,20000,400,1.08,4.37,99.0,98.76,99.19,98.99 -SE_Minera_C0Bk_2500kVA,SE,Minera,C0Bk,2500000,0.06,22000,0.01,2500,Dyn11,20000,400,1.06,4.35,99.03,98.76,99.21,99.02 -SE_Minera_Standard_50kVA,SE,Minera,Standard,50000,0.04,1350,0.01,125,Yzn11,20000,400,2.74,3.93,97.13,96.44,97.7,97.14 -SE_Minera_Standard_100kVA,SE,Minera,Standard,100000,0.04,2150,0.01,210,Dyn11,20000,400,2.21,3.75,97.69,97.13,98.14,97.69 -SE_Minera_Standard_160kVA,SE,Minera,Standard,160000,0.04,3100,0.015,375,Dyn11,20000,400,2.0,3.66,97.87,97.36,98.27,97.84 -SE_Minera_Standard_250kVA,SE,Minera,Standard,250000,0.04,3250,0.026,650,Dyn11,20000,400,1.37,3.33,98.46,98.09,98.7,98.37 -SE_Minera_Standard_315kVA,SE,Minera,Standard,315000,0.04,3900,0.025,770,Dyn11,20000,400,1.31,3.3,98.54,98.18,98.76,98.46 -SE_Minera_Standard_400kVA,SE,Minera,Standard,400000,0.04,4600,0.023,930,Dyn11,20000,400,1.22,3.25,98.64,98.3,98.84,98.56 -SE_Minera_Standard_500kVA,SE,Minera,Standard,500000,0.04,5500,0.022,1100,Dyn11,20000,400,1.17,3.22,98.7,98.38,98.89,98.62 -SE_Minera_Standard_630kVA,SE,Minera,Standard,630000,0.04,6500,0.02,1300,Dyn11,20000,400,1.11,3.17,98.78,98.48,98.96,98.71 -SE_Minera_Standard_800kVA,SE,Minera,Standard,800000,0.06,10500,0.016,1150,Dyn11,20000,400,1.48,4.64,98.56,98.21,98.84,98.55 -SE_Minera_Standard_1000kVA,SE,Minera,Standard,1000000,0.06,13000,0.015,1400,Dyn11,20000,400,1.47,4.63,98.58,98.23,98.85,98.57 -SE_Minera_Standard_1250kVA,SE,Minera,Standard,1250000,0.06,16000,0.013,1750,Dyn11,20000,400,1.45,4.62,98.6,98.26,98.87,98.59 -SE_Minera_Standard_1600kVA,SE,Minera,Standard,1600000,0.06,20000,0.011,2200,Dyn11,20000,400,1.42,4.6,98.63,98.3,98.89,98.62 -SE_Minera_Standard_2000kVA,SE,Minera,Standard,2000000,0.06,26000,0.011,2700,Dyn11,20000,400,1.47,4.63,98.59,98.24,98.86,98.58 -SE_Minera_Standard_2500kVA,SE,Minera,Standard,2500000,0.06,32000,0.01,3200,Dyn11,20000,400,1.45,4.62,98.61,98.27,98.88,98.61 -SE_Trihal_AA0Ak_250kVA,SE,Trihal,AA0Ak,250000,0.06,3400,0.48,468,Dyn11,20000,400,,,98.476,98.103,98.746,98.438 -SE_Trihal_AA0Ak_400kVA,SE,Trihal,AA0Ak,400000,0.06,4500,0.42,675,Dyn11,20000,400,,,98.723,98.409,98.943,98.682 -SE_Trihal_AA0Ak_630kVA,SE,Trihal,AA0Ak,630000,0.06,7100,0.37,990,Dyn11,20000,400,,,98.732,98.420,98.956,98.699 -SE_Trihal_AA0Ak_800kVA,SE,Trihal,AA0Ak,800000,0.06,8000,0.34,1170,Dyn11,20000,400,,,98.867,98.587,99.064,98.833 -SE_Trihal_AA0Ak_1000kVA,SE,Trihal,AA0Ak,1000000,0.06,9000,0.33,1395,Dyn11,20000,400,,,98.971,98.717,99.146,98.935 -SE_Trihal_AA0Ak_1250kVA,SE,Trihal,AA0Ak,1250000,0.06,11000,0.29,1620,Dyn11,20000,400,,,99.000,98.754,99.174,98.970 -SE_Trihal_AA0Ak_1600kVA,SE,Trihal,AA0Ak,1600000,0.06,13000,0.27,1980,Dyn11,20000,400,,,99.072,98.843,99.232,99.041 -SE_Trihal_AA0Ak_2000kVA,SE,Trihal,AA0Ak,2000000,0.06,16000,0.27,2340,Dyn11,20000,400,,,99.091,98.867,99.250,99.064 -SE_Trihal_AA0Ak_2500kVA,SE,Trihal,AA0Ak,2500000,0.06,19000,0.24,2790,Dyn11,20000,400,,,99.136,98.922,99.286,99.110 -SE_Trihal_AA0Ak_3150kVA,SE,Trihal,AA0Ak,3150000,0.07,22000,0.21,3420,Dyn11,20000,400,,,99.199,99.001,99.336,99.171 -SE_Trihal_Extra_Reduced_Losses_160kVA,SE,Trihal,Extra_Reduced_Losses,160000,0.06,2340,0.023,400,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_250kVA,SE,Trihal,Extra_Reduced_Losses,250000,0.06,3060,0.02,520,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_400kVA,SE,Trihal,Extra_Reduced_Losses,400000,0.06,4050,0.015,750,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_630kVA,SE,Trihal,Extra_Reduced_Losses,630000,0.06,6390,0.013,1100,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_800kVA,SE,Trihal,Extra_Reduced_Losses,800000,0.06,7200,0.013,1300,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_1000kVA,SE,Trihal,Extra_Reduced_Losses,1000000,0.06,8100,0.012,1550,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_1250kVA,SE,Trihal,Extra_Reduced_Losses,1250000,0.06,9900,0.012,1800,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_1600kVA,SE,Trihal,Extra_Reduced_Losses,1600000,0.06,11700,0.012,2200,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_2000kVA,SE,Trihal,Extra_Reduced_Losses,2000000,0.06,14400,0.011,2600,Dyn11,20000,400,,,,,, -SE_Trihal_Extra_Reduced_Losses_2500kVA,SE,Trihal,Extra_Reduced_Losses,2500000,0.06,17100,0.01,3100,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_160kVA,SE,Trihal,Reduced_Losses,160000,0.06,2350,0.023,480,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_250kVA,SE,Trihal,Reduced_Losses,250000,0.06,3300,0.02,650,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_400kVA,SE,Trihal,Reduced_Losses,400000,0.06,4800,0.015,940,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_630kVA,SE,Trihal,Reduced_Losses,630000,0.06,6800,0.013,1250,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_800kVA,SE,Trihal,Reduced_Losses,800000,0.06,8200,0.013,1500,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_1000kVA,SE,Trihal,Reduced_Losses,1000000,0.06,9600,0.012,1800,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_1250kVA,SE,Trihal,Reduced_Losses,1250000,0.06,11400,0.012,2100,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_1600kVA,SE,Trihal,Reduced_Losses,1600000,0.06,14000,0.012,2400,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_2000kVA,SE,Trihal,Reduced_Losses,2000000,0.06,17400,0.011,3000,Dyn11,20000,400,,,,,, -SE_Trihal_Reduced_Losses_2500kVA,SE,Trihal,Reduced_Losses,2500000,0.06,20000,0.01,3600,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_160kVA,SE,Trihal,Standard,160000,0.06,2350,0.023,650,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_250kVA,SE,Trihal,Standard,250000,0.06,3300,0.02,880,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_400kVA,SE,Trihal,Standard,400000,0.06,4800,0.015,1200,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_630kVA,SE,Trihal,Standard,630000,0.06,6800,0.013,1650,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_800kVA,SE,Trihal,Standard,800000,0.06,8200,0.013,2000,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_1000kVA,SE,Trihal,Standard,1000000,0.06,9600,0.012,2300,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_1250kVA,SE,Trihal,Standard,1250000,0.06,11400,0.012,2800,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_1600kVA,SE,Trihal,Standard,1600000,0.06,14000,0.012,3100,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_2000kVA,SE,Trihal,Standard,2000000,0.06,17400,0.011,4000,Dyn11,20000,400,,,,,, -SE_Trihal_Standard_2500kVA,SE,Trihal,Standard,2500000,0.06,20000,0.01,5000,Dyn11,20000,400,,,,,, -SE_Vegeta_AA0Ak_160kVA,SE,Vegeta,AA0Ak,160000,0.04,1750,0.15,189,Dyn11,20000,400,,,98.803,98.508,99.032,98.792 -SE_Vegeta_AA0Ak_250kVA,SE,Vegeta,AA0Ak,250000,0.04,2350,0.14,270,Dyn11,20000,400,,,98.963,98.707,99.158,98.95 -SE_Vegeta_AA0Ak_400kVA,SE,Vegeta,AA0Ak,400000,0.04,3250,0.16,387,Dyn11,20000,400,,,99.099,98.876,99.267,99.085 -SE_Vegeta_AA0Ak_630kVA,SE,Vegeta,AA0Ak,630000,0.04,4600,0.15,540,Dyn11,20000,400,,,99.191,98.99,99.342,99.179 -SE_Vegeta_AA0Ak_800kVA,SE,Vegeta,AA0Ak,800000,0.06,6000,0.12,585,Dyn11,20000,400,,,99.184,98.982,99.344,99.192 -SE_Vegeta_AA0Ak_1000kVA,SE,Vegeta,AA0Ak,1000000,0.06,7600,0.12,693,Dyn11,20000,400,,,99.178,98.974,99.342,99.179 -SE_Vegeta_AA0Ak_1250kVA,SE,Vegeta,AA0Ak,1250000,0.06,9500,0.12,855,Dyn11,20000,400,,,99.178,98.975,99.343,99.18 -SE_Vegeta_AA0Ak_1600kVA,SE,Vegeta,AA0Ak,1600000,0.06,12000,0.28,1080,Dyn11,20000,400,,,99.189,99.988,99.352,99.191 -SE_Vegeta_AA0Ak_2000kVA,SE,Vegeta,AA0Ak,2000000,0.06,15000,0.28,1305,Dyn11,20000,400,,,99.191,98.991,99.355,99.195 -SE_Vegeta_AA0Ak_2500kVA,SE,Vegeta,AA0Ak,2500000,0.06,18500,0.28,1575,Dyn11,20000,400,,,99.203,99.006,99.365,99.208 -SE_Vegeta_AA0Ak_3150kVA,SE,Vegeta,AA0Ak,3150000,0.07,23000,0.28,1980,Dyn11,20000,400,,,99.213,99.018,99.373,99.217 -SE_Vegeta_C0Bk_50kVA,SE,Vegeta,C0Bk,50000,0.04,875,0.029,125,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_100kVA,SE,Vegeta,C0Bk,100000,0.04,1475,0.025,210,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_160kVA,SE,Vegeta,C0Bk,160000,0.04,2000,0.023,300,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_250kVA,SE,Vegeta,C0Bk,250000,0.04,2750,0.021,425,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_315kVA,SE,Vegeta,C0Bk,315000,0.04,3250,0.02,520,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_400kVA,SE,Vegeta,C0Bk,400000,0.04,3850,0.019,610,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_500kVA,SE,Vegeta,C0Bk,500000,0.04,4600,0.019,720,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_630kVA,SE,Vegeta,C0Bk,630000,0.04,5400,0.018,860,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_800kVA,SE,Vegeta,C0Bk,800000,0.06,7000,0.025,930,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_1000kVA,SE,Vegeta,C0Bk,1000000,0.06,9000,0.024,1100,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_1250kVA,SE,Vegeta,C0Bk,1250000,0.06,11000,0.022,1350,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_1600kVA,SE,Vegeta,C0Bk,1600000,0.06,14000,0.02,1700,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_2000kVA,SE,Vegeta,C0Bk,2000000,0.06,18000,0.019,2100,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_2500kVA,SE,Vegeta,C0Bk,2500000,0.06,22000,0.018,2500,Dyn11,20000,400,,,,,, -SE_Vegeta_C0Bk_3150kVA,SE,Vegeta,C0Bk,3150000,0.07,26500,0.018,3000,Dyn11,20000,400,,,,,, -SE_Vegeta_Standard_50kVA,SE,Vegeta,Standard,50000,0.04,1350,0.029,145,Dyn11,20000,400,2.74,3.93,97.09,96.39,97.64,97.07 -SE_Vegeta_Standard_100kVA,SE,Vegeta,Standard,100000,0.04,2150,0.025,210,Dyn11,20000,400,2.21,3.75,97.69,97.13,98.14,97.69 -SE_Vegeta_Standard_160kVA,SE,Vegeta,Standard,160000,0.04,2350,0.023,460,Dyn11,20000,400,1.54,3.43,98.27,97.85,98.54,98.18 -SE_Vegeta_Standard_250kVA,SE,Vegeta,Standard,250000,0.04,3250,0.021,650,Dyn11,20000,400,1.37,3.33,98.46,98.09,98.7,98.37 -SE_Vegeta_Standard_315kVA,SE,Vegeta,Standard,315000,0.04,3900,0.02,800,Dyn11,20000,400,1.31,3.3,98.53,98.17,98.75,98.44 -SE_Vegeta_Standard_400kVA,SE,Vegeta,Standard,400000,0.04,4600,0.019,930,Dyn11,20000,400,1.22,3.25,98.64,98.3,98.84,98.56 -SE_Vegeta_Standard_500kVA,SE,Vegeta,Standard,500000,0.04,5500,0.019,1100,Dyn11,20000,400,1.17,3.22,98.7,98.38,98.89,98.62 -SE_Vegeta_Standard_630kVA,SE,Vegeta,Standard,630000,0.04,6500,0.018,1300,Dyn11,20000,400,1.11,3.17,98.78,98.48,98.96,98.71 -SE_Vegeta_Standard_800kVA,SE,Vegeta,Standard,800000,0.06,10700,0.025,1220,Dyn11,20000,400,1.51,4.65,98.53,98.71,98.81,98.51 -SE_Vegeta_Standard_1000kVA,SE,Vegeta,Standard,1000000,0.06,13000,0.024,1470,Dyn11,20000,400,1.47,4.63,98.57,98.22,98.84,98.56 -SE_Vegeta_Standard_1250kVA,SE,Vegeta,Standard,1250000,0.06,16000,0.022,1800,Dyn11,20000,400,1.45,4.62,98.6,98.25,98.86,98.58 -SE_Vegeta_Standard_1600kVA,SE,Vegeta,Standard,1600000,0.06,20000,0.02,2300,Dyn11,20000,400,1.42,4.6,98.63,98.29,98.88,98.61 -SE_Vegeta_Standard_2000kVA,SE,Vegeta,Standard,2000000,0.06,25500,0.019,2750,Dyn11,20000,400,1.45,4.61,98.61,98.27,98.87,98.6 -SE_Vegeta_Standard_2500kVA,SE,Vegeta,Standard,2500000,0.06,32000,0.018,3350,Dyn11,20000,400,1.45,4.62,98.61,98.26,98.87,98.6 -SE_Vegeta_Standard_3150kVA,SE,Vegeta,Standard,3150000,0.07,33000,0.018,4200,Dyn11,20000,400,1.29,5.11,98.83,98.55,99.05,98.81 +name,manufacturer,range,efficiency,type,oil,sn,vsc,psc,i0,p0,vg,uhv,ulv,du1,du0.8,eff1 100%,eff0.8 100%,eff1 75%,eff0.8 75% +FT 100kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,100000,0.04,2150,0.025,210,Dyn11,20000,400,2.21,3.75,97.69,97.13,98.14,97.69 +FT 160kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,160000,0.04,2350,0.023,460,Dyn11,20000,400,1.54,3.43,98.27,97.85,98.54,98.18 +FT 250kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,250000,0.04,3250,0.021,650,Dyn11,20000,400,1.37,3.33,98.46,98.09,98.7,98.37 +FT 315kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,315000,0.04,3900,0.02,800,Dyn11,20000,400,1.31,3.3,98.53,98.17,98.75,98.44 +FT 400kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,400000,0.04,4600,0.019,930,Dyn11,20000,400,1.22,3.25,98.64,98.3,98.84,98.56 +FT 500kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,500000,0.04,5500,0.019,1100,Dyn11,20000,400,1.17,3.22,98.7,98.387,98.89,98.62 +FT 630kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,630000,0.04,6500,0.018,1300,Dyn11,20000,400,1.11,3.17,98.78,98.48,98.96,98.71 +FT 800kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,800000,0.06,10700,0.025,1220,Dyn11,20000,400,1.51,4.65,98.53,98.17,98.81,98.51 +FT 1000kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,1000000,0.06,13000,0.024,1470,Dyn11,20000,400,1.47,4.63,98.57,98.22,98.84,98.56 +FT 1250kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,1250000,0.06,16000,0.022,1800,Dyn11,20000,400,1.45,4.62,98.6,98.25,98.86,98.58 +FT 1600kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,1600000,0.06,20000,0.02,2300,Dyn11,20000,400,1.42,4.6,98.63,98.29,98.88,98.61 +FT 2000kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,2000000,0.06,25500,0.019,2750,Dyn11,20000,400,1.45,4.61,98.61,98.27,98.87,98.6 +FT 2500kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,2500000,0.06,32000,0.018,3350,Dyn11,20000,400,1.45,4.62,98.61,98.26,98.87,98.6 +FT 3150kVA 15/20kV(20) 400V Dyn11,FT,,,three-phase,mineral,3150000,0.07,33000,0.017,4380,Dyn11,20000,400,1.29,5.11,98.83,98.54,99.04,98.8 +FT 100kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,100000,0.04,2150,0.025,210,Dyn11,15000,400,2.21,3.75,97.69,97.13,98.14,97.69 +FT 160kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,160000,0.04,2350,0.023,460,Dyn11,15000,400,1.54,3.43,98.27,97.85,98.54,98.18 +FT 250kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,250000,0.04,3250,0.021,650,Dyn11,15000,400,1.37,3.33,98.46,98.09,98.7,98.37 +FT 315kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,315000,0.04,3900,0.02,800,Dyn11,15000,400,1.31,3.3,98.53,98.17,98.75,98.44 +FT 400kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,400000,0.04,4600,0.019,930,Dyn11,15000,400,1.22,3.25,98.64,98.3,98.84,98.56 +FT 500kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,500000,0.04,5500,0.019,1100,Dyn11,15000,400,1.17,3.22,98.7,98.387,98.89,98.62 +FT 630kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,630000,0.04,6500,0.018,1300,Dyn11,15000,400,1.11,3.17,98.78,98.48,98.96,98.71 +FT 800kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,800000,0.06,10700,0.025,1220,Dyn11,15000,400,1.51,4.65,98.53,98.17,98.81,98.51 +FT 1000kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,1000000,0.06,13000,0.024,1470,Dyn11,15000,400,1.47,4.63,98.57,98.22,98.84,98.56 +FT 1250kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,1250000,0.06,16000,0.022,1800,Dyn11,15000,400,1.45,4.62,98.6,98.25,98.86,98.58 +FT 1600kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,1600000,0.06,20000,0.02,2300,Dyn11,15000,400,1.42,4.6,98.63,98.29,98.88,98.61 +FT 2000kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,2000000,0.06,25500,0.019,2750,Dyn11,15000,400,1.45,4.61,98.61,98.27,98.87,98.6 +FT 2500kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,2500000,0.06,32000,0.018,3350,Dyn11,15000,400,1.45,4.62,98.61,98.26,98.87,98.6 +FT 3150kVA 15/20kV(15) 400V Dyn11,FT,,,three-phase,mineral,3150000,0.07,33000,0.017,4380,Dyn11,15000,400,1.29,5.11,98.83,98.54,99.04,98.8 +SE Minera AA0Ak 160kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,160000,0.04,1750,0.15,189,Dyn11,20000,410,,,98.803,98.508,99.032,98.792 +SE Minera AA0Ak 250kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,250000,0.04,2350,0.14,270,Dyn11,20000,410,,,98.963,98.707,99.158,98.95 +SE Minera AA0Ak 400kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,400000,0.04,3250,0.16,387,Dyn11,20000,410,,,99.099,98.876,99.267,99.085 +SE Minera AA0Ak 630kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,630000,0.04,4600,0.15,540,Dyn11,20000,410,,,99.191,98.99,99.342,99.179 +SE Minera AA0Ak 800kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,800000,0.04,6000,0.12,585,Dyn11,20000,410,,,99.184,98.982,99.344,99.192 +SE Minera AA0Ak 1000kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,1000000,0.04,7600,0.12,693,Dyn11,20000,410,,,99.178,98.974,99.342,99.179 +SE Minera AA0Ak 1250kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,1250000,0.04,9500,0.12,855,Dyn11,20000,410,,,99.178,98.975,99.343,99.18 +SE Minera AA0Ak 1600kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,1600000,0.04,12000,0.28,1080,Dyn11,20000,410,,,99.189,99.988,99.352,99.191 +SE Minera AA0Ak 2000kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,2000000,0.04,15000,0.28,1305,Dyn11,20000,410,,,99.191,98.991,99.355,99.195 +SE Minera AA0Ak 2500kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,2500000,0.04,18500,0.28,1575,Dyn11,20000,410,,,99.203,99.006,99.365,99.208 +SE Minera AA0Ak 3150kVA 20kV 410V Dyn11,SE,Minera,AA0Ak,three-phase,mineral,3150000,0.04,23000,0.28,1980,Dyn11,20000,410,,,99.213,99.018,99.373,99.217 +SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11,SE,Minera,A0Ak,three-phase,mineral,50000,0.04,750,0.005,90,Yzn11,20000,410,1.57,3.45,98.35,97.94,98.65,98.32 +SE Minera A0Ak 100kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,100000,0.04,1250,0.005,145,Dyn11,20000,410,1.32,3.31,98.62,98.29,98.88,98.61 +SE Minera A0Ak 160kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,160000,0.04,1700,0.005,210,Dyn11,20000,410,1.14,3.19,98.82,98.53,99.04,98.8 +SE Minera A0Ak 250kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,250000,0.04,2350,0.005,300,Dyn11,20000,410,1.02,3.12,98.95,98.69,99.14,98.93 +SE Minera A0Ak 315kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,315000,0.04,2800,0.005,360,Dyn11,20000,410,0.96,3.08,99.01,98.76,99.19,98.99 +SE Minera A0Ak 400kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,400000,0.04,3250,0.005,430,Dyn11,20000,410,0.89,3.03,99.09,98.86,99.25,99.07 +SE Minera A0Ak 500kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,500000,0.04,3900,0.005,510,Dyn11,20000,410,0.86,3.01,99.13,98.91,99.28,99.11 +SE Minera A0Ak 630kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,630000,0.04,4600,0.005,600,Dyn11,20000,410,0.81,2.98,99.18,98.98,99.33,99.16 +SE Minera A0Ak 800kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,800000,0.06,6000,0.005,650,Dyn11,20000,410,0.93,4.26,99.18,98.97,99.33,99.17 +SE Minera A0Ak 1000kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,1000000,0.06,7600,0.005,770,Dyn11,20000,410,0.94,4.27,99.17,98.96,99.33,99.17 +SE Minera A0Ak 1250kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,1250000,0.06,9500,0.005,950,Dyn11,20000,410,0.94,4.27,99.17,98.97,99.33,99.17 +SE Minera A0Ak 1600kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,1600000,0.06,12000,0.005,1200,Dyn11,20000,410,0.93,4.26,99.18,98.98,99.34,99.18 +SE Minera A0Ak 2000kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,2000000,0.06,15000,0.005,1450,Dyn11,20000,410,0.93,4.26,99.18,98.98,99.35,99.18 +SE Minera A0Ak 2500kVA 15/20kV(20) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,2500000,0.06,18500,0.005,1750,Dyn11,20000,410,0.92,4.26,99.2,99.0,99.36,99.2 +SE Minera A0Ak 50kVA 15/20kV(15) 410V Yzn11,SE,Minera,A0Ak,three-phase,mineral,50000,0.04,750,0.005,90,Yzn11,15000,410,1.57,3.45,98.35,97.94,98.65,98.32 +SE Minera A0Ak 100kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,100000,0.04,1250,0.005,145,Dyn11,15000,410,1.32,3.31,98.62,98.29,98.88,98.61 +SE Minera A0Ak 160kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,160000,0.04,1700,0.005,210,Dyn11,15000,410,1.14,3.19,98.82,98.53,99.04,98.8 +SE Minera A0Ak 250kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,250000,0.04,2350,0.005,300,Dyn11,15000,410,1.02,3.12,98.95,98.69,99.14,98.93 +SE Minera A0Ak 315kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,315000,0.04,2800,0.005,360,Dyn11,15000,410,0.96,3.08,99.01,98.76,99.19,98.99 +SE Minera A0Ak 400kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,400000,0.04,3250,0.005,430,Dyn11,15000,410,0.89,3.03,99.09,98.86,99.25,99.07 +SE Minera A0Ak 500kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,500000,0.04,3900,0.005,510,Dyn11,15000,410,0.86,3.01,99.13,98.91,99.28,99.11 +SE Minera A0Ak 630kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,630000,0.04,4600,0.005,600,Dyn11,15000,410,0.81,2.98,99.18,98.98,99.33,99.16 +SE Minera A0Ak 800kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,800000,0.06,6000,0.005,650,Dyn11,15000,410,0.93,4.26,99.18,98.97,99.33,99.17 +SE Minera A0Ak 1000kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,1000000,0.06,7600,0.005,770,Dyn11,15000,410,0.94,4.27,99.17,98.96,99.33,99.17 +SE Minera A0Ak 1250kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,1250000,0.06,9500,0.005,950,Dyn11,15000,410,0.94,4.27,99.17,98.97,99.33,99.17 +SE Minera A0Ak 1600kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,1600000,0.06,12000,0.005,1200,Dyn11,15000,410,0.93,4.26,99.18,98.98,99.34,99.18 +SE Minera A0Ak 2000kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,2000000,0.06,15000,0.005,1450,Dyn11,15000,410,0.93,4.26,99.18,98.98,99.35,99.18 +SE Minera A0Ak 2500kVA 15/20kV(15) 410V Dyn11,SE,Minera,A0Ak,three-phase,mineral,2500000,0.06,18500,0.005,1750,Dyn11,15000,410,0.92,4.26,99.2,99.0,99.36,99.2 +SE Minera B0Bk 50kVA 15/20kV(20) 410V Yzn11,SE,Minera,B0Bk,three-phase,mineral,50000,0.04,875,0.01,110,Yzn11,20000,410,1.81,3.57,98.07,97.6,98.42,98.03 +SE Minera B0Bk 100kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,100000,0.04,1475,0.01,180,Dyn11,20000,410,1.54,3.43,98.37,97.97,98.67,98.35 +SE Minera B0Bk 160kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,160000,0.04,2000,0.008,260,Dyn11,20000,410,1.32,3.31,98.61,98.27,98.86,98.58 +SE Minera B0Bk 250kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,250000,0.04,2750,0.008,360,Dyn11,20000,410,1.17,3.22,98.77,98.47,98.99,98.74 +SE Minera B0Bk 315kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,315000,0.04,3250,0.008,440,Dyn11,20000,410,1.11,3.17,98.84,98.56,99.05,98.81 +SE Minera B0Bk 400kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,400000,0.04,3850,0.008,520,Dyn11,20000,410,1.04,3.13,98.92,98.65,99.11,98.89 +SE Minera B0Bk 500kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,500000,0.04,4600,0.008,610,Dyn11,20000,410,1.0,3.1,98.97,98.71,99.15,98.95 +SE Minera B0Bk 630kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,630000,0.04,5400,0.007,730,Dyn11,20000,410,0.93,3.06,99.04,98.8,99.21,99.01 +SE Minera B0Bk 800kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,800000,0.06,7000,0.007,800,Dyn11,20000,410,1.05,4.35,99.03,98.8,99.22,99.02 +SE Minera B0Bk 1000kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,1000000,0.06,9000,0.007,940,Dyn11,20000,410,1.08,4.37,99.02,98.77,99.21,99.01 +SE Minera B0Bk 1250kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,1250000,0.06,11000,0.007,1150,Dyn11,20000,410,1.06,4.35,99.04,98.81,99.23,99.04 +SE Minera B0Bk 1600kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,1600000,0.06,14000,0.007,1450,Dyn11,20000,410,1.05,4.35,99.04,98.81,99.23,99.04 +SE Minera B0Bk 2000kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,2000000,0.06,18000,0.007,1800,Dyn11,20000,410,1.08,4.37,99.02,98.78,99.21,99.02 +SE Minera B0Bk 2500kVA 15/20kV(20) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,2500000,0.06,22000,0.007,2150,Dyn11,20000,410,1.06,4.35,99.04,98.81,99.23,99.04 +SE Minera B0Bk 50kVA 15/20kV(15) 410V Yzn11,SE,Minera,B0Bk,three-phase,mineral,50000,0.04,875,0.01,110,Yzn11,15000,410,1.81,3.57,98.07,97.6,98.42,98.03 +SE Minera B0Bk 100kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,100000,0.04,1475,0.01,180,Dyn11,15000,410,1.54,3.43,98.37,97.97,98.67,98.35 +SE Minera B0Bk 160kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,160000,0.04,2000,0.008,260,Dyn11,15000,410,1.32,3.31,98.61,98.27,98.86,98.58 +SE Minera B0Bk 250kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,250000,0.04,2750,0.008,360,Dyn11,15000,410,1.17,3.22,98.77,98.47,98.99,98.74 +SE Minera B0Bk 315kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,315000,0.04,3250,0.008,440,Dyn11,15000,410,1.11,3.17,98.84,98.56,99.05,98.81 +SE Minera B0Bk 400kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,400000,0.04,3850,0.008,520,Dyn11,15000,410,1.04,3.13,98.92,98.65,99.11,98.89 +SE Minera B0Bk 500kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,500000,0.04,4600,0.008,610,Dyn11,15000,410,1.0,3.1,98.97,98.71,99.15,98.95 +SE Minera B0Bk 630kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,630000,0.04,5400,0.007,730,Dyn11,15000,410,0.93,3.06,99.04,98.8,99.21,99.01 +SE Minera B0Bk 800kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,800000,0.06,7000,0.007,800,Dyn11,15000,410,1.05,4.35,99.03,98.8,99.22,99.02 +SE Minera B0Bk 1000kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,1000000,0.06,9000,0.007,940,Dyn11,15000,410,1.08,4.37,99.02,98.77,99.21,99.01 +SE Minera B0Bk 1250kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,1250000,0.06,11000,0.007,1150,Dyn11,15000,410,1.06,4.35,99.04,98.81,99.23,99.04 +SE Minera B0Bk 1600kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,1600000,0.06,14000,0.007,1450,Dyn11,15000,410,1.05,4.35,99.04,98.81,99.23,99.04 +SE Minera B0Bk 2000kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,2000000,0.06,18000,0.007,1800,Dyn11,15000,410,1.08,4.37,99.02,98.78,99.21,99.02 +SE Minera B0Bk 2500kVA 15/20kV(15) 410V Dyn11,SE,Minera,B0Bk,three-phase,mineral,2500000,0.06,22000,0.007,2150,Dyn11,15000,410,1.06,4.35,99.04,98.81,99.23,99.04 +SE Minera C0Bk 50kVA 15/20kV(20) 410V Yzn11,SE,Minera,C0Bk,three-phase,mineral,50000,0.04,875,0.015,125,Yzn11,20000,410,1.81,3.57,98.04,97.56,98.38,97.98 +SE Minera C0Bk 100kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,100000,0.04,1475,0.015,210,Dyn11,20000,410,1.54,3.43,98.34,97.94,98.63,98.3 +SE Minera C0Bk 160kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,160000,0.04,2000,0.014,300,Dyn11,20000,410,1.32,3.31,98.58,98.23,98.83,98.54 +SE Minera C0Bk 250kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,250000,0.04,2750,0.013,425,Dyn11,20000,410,1.17,3.22,98.75,98.44,98.96,98.7 +SE Minera C0Bk 315kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,315000,0.04,3250,0.013,520,Dyn11,20000,410,1.11,3.17,98.82,98.53,99.02,98.77 +SE Minera C0Bk 400kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,400000,0.04,3850,0.012,610,Dyn11,20000,410,1.04,3.13,98.9,98.63,99.08,98.86 +SE Minera C0Bk 500kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,500000,0.04,4600,0.012,720,Dyn11,20000,410,1.0,3.1,98.95,98.69,99.13,98.91 +SE Minera C0Bk 630kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,630000,0.04,5400,0.011,860,Dyn11,20000,410,0.93,3.06,99.02,98.77,99.18,98.98 +SE Minera C0Bk 800kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,800000,0.06,7000,0.011,930,Dyn11,20000,410,1.05,4.35,99.02,98.78,99.2,99.0 +SE Minera C0Bk 1000kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,1000000,0.06,9000,0.01,1100,Dyn11,20000,410,1.08,4.37,99.0,98.75,99.19,98.98 +SE Minera C0Bk 1250kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,1250000,0.06,11000,0.01,1350,Dyn11,20000,410,1.06,4.35,99.02,98.78,99.2,99.0 +SE Minera C0Bk 1600kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,1600000,0.06,14000,0.01,1700,Dyn11,20000,410,1.05,4.35,99.03,98.79,99.21,99.01 +SE Minera C0Bk 2000kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,2000000,0.06,18000,0.01,2100,Dyn11,20000,410,1.08,4.37,99.0,98.76,99.19,98.99 +SE Minera C0Bk 2500kVA 15/20kV(20) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,2500000,0.06,22000,0.01,2500,Dyn11,20000,410,1.06,4.35,99.03,98.76,99.21,99.02 +SE Minera C0Bk 50kVA 15/20kV(15) 410V Yzn11,SE,Minera,C0Bk,three-phase,mineral,50000,0.04,875,0.015,125,Yzn11,15000,410,1.81,3.57,98.04,97.56,98.38,97.98 +SE Minera C0Bk 100kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,100000,0.04,1475,0.015,210,Dyn11,15000,410,1.54,3.43,98.34,97.94,98.63,98.3 +SE Minera C0Bk 160kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,160000,0.04,2000,0.014,300,Dyn11,15000,410,1.32,3.31,98.58,98.23,98.83,98.54 +SE Minera C0Bk 250kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,250000,0.04,2750,0.013,425,Dyn11,15000,410,1.17,3.22,98.75,98.44,98.96,98.7 +SE Minera C0Bk 315kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,315000,0.04,3250,0.013,520,Dyn11,15000,410,1.11,3.17,98.82,98.53,99.02,98.77 +SE Minera C0Bk 400kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,400000,0.04,3850,0.012,610,Dyn11,15000,410,1.04,3.13,98.9,98.63,99.08,98.86 +SE Minera C0Bk 500kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,500000,0.04,4600,0.012,720,Dyn11,15000,410,1.0,3.1,98.95,98.69,99.13,98.91 +SE Minera C0Bk 630kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,630000,0.04,5400,0.011,860,Dyn11,15000,410,0.93,3.06,99.02,98.77,99.18,98.98 +SE Minera C0Bk 800kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,800000,0.06,7000,0.011,930,Dyn11,15000,410,1.05,4.35,99.02,98.78,99.2,99.0 +SE Minera C0Bk 1000kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,1000000,0.06,9000,0.01,1100,Dyn11,15000,410,1.08,4.37,99.0,98.75,99.19,98.98 +SE Minera C0Bk 1250kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,1250000,0.06,11000,0.01,1350,Dyn11,15000,410,1.06,4.35,99.02,98.78,99.2,99.0 +SE Minera C0Bk 1600kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,1600000,0.06,14000,0.01,1700,Dyn11,15000,410,1.05,4.35,99.03,98.79,99.21,99.01 +SE Minera C0Bk 2000kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,2000000,0.06,18000,0.01,2100,Dyn11,15000,410,1.08,4.37,99.0,98.76,99.19,98.99 +SE Minera C0Bk 2500kVA 15/20kV(15) 410V Dyn11,SE,Minera,C0Bk,three-phase,mineral,2500000,0.06,22000,0.01,2500,Dyn11,15000,410,1.06,4.35,99.03,98.76,99.21,99.02 +SE Minera Standard 50kVA 15/20kV(20) 410V Yzn11,SE,Minera,Standard,three-phase,mineral,50000,0.04,1350,0.01,125,Yzn11,20000,410,2.74,3.93,97.13,96.44,97.7,97.14 +SE Minera Standard 100kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,100000,0.04,2150,0.01,210,Dyn11,20000,410,2.21,3.75,97.69,97.13,98.14,97.69 +SE Minera Standard 160kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,160000,0.04,3100,0.015,375,Dyn11,20000,410,2.0,3.66,97.87,97.36,98.27,97.84 +SE Minera Standard 250kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,250000,0.04,3250,0.026,650,Dyn11,20000,410,1.37,3.33,98.46,98.09,98.7,98.37 +SE Minera Standard 315kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,315000,0.04,3900,0.025,770,Dyn11,20000,410,1.31,3.3,98.54,98.18,98.76,98.46 +SE Minera Standard 400kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,400000,0.04,4600,0.023,930,Dyn11,20000,410,1.22,3.25,98.64,98.3,98.84,98.56 +SE Minera Standard 500kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,500000,0.04,5500,0.022,1100,Dyn11,20000,410,1.17,3.22,98.7,98.38,98.89,98.62 +SE Minera Standard 630kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,630000,0.04,6500,0.02,1300,Dyn11,20000,410,1.11,3.17,98.78,98.48,98.96,98.71 +SE Minera Standard 800kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,800000,0.06,10500,0.016,1150,Dyn11,20000,410,1.48,4.64,98.56,98.21,98.84,98.55 +SE Minera Standard 1000kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,1000000,0.06,13000,0.015,1400,Dyn11,20000,410,1.47,4.63,98.58,98.23,98.85,98.57 +SE Minera Standard 1250kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,1250000,0.06,16000,0.013,1750,Dyn11,20000,410,1.45,4.62,98.6,98.26,98.87,98.59 +SE Minera Standard 1600kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,1600000,0.06,20000,0.011,2200,Dyn11,20000,410,1.42,4.6,98.63,98.3,98.89,98.62 +SE Minera Standard 2000kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,2000000,0.06,26000,0.011,2700,Dyn11,20000,410,1.47,4.63,98.59,98.24,98.86,98.58 +SE Minera Standard 2500kVA 15/20kV(20) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,2500000,0.06,32000,0.01,3200,Dyn11,20000,410,1.45,4.62,98.61,98.27,98.88,98.61 +SE Minera Standard 50kVA 15/20kV(15) 410V Yzn11,SE,Minera,Standard,three-phase,mineral,50000,0.04,1350,0.01,125,Yzn11,15000,410,2.74,3.93,97.13,96.44,97.7,97.14 +SE Minera Standard 100kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,100000,0.04,2150,0.01,210,Dyn11,15000,410,2.21,3.75,97.69,97.13,98.14,97.69 +SE Minera Standard 160kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,160000,0.04,3100,0.015,375,Dyn11,15000,410,2.0,3.66,97.87,97.36,98.27,97.84 +SE Minera Standard 250kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,250000,0.04,3250,0.026,650,Dyn11,15000,410,1.37,3.33,98.46,98.09,98.7,98.37 +SE Minera Standard 315kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,315000,0.04,3900,0.025,770,Dyn11,15000,410,1.31,3.3,98.54,98.18,98.76,98.46 +SE Minera Standard 400kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,400000,0.04,4600,0.023,930,Dyn11,15000,410,1.22,3.25,98.64,98.3,98.84,98.56 +SE Minera Standard 500kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,500000,0.04,5500,0.022,1100,Dyn11,15000,410,1.17,3.22,98.7,98.38,98.89,98.62 +SE Minera Standard 630kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,630000,0.04,6500,0.02,1300,Dyn11,15000,410,1.11,3.17,98.78,98.48,98.96,98.71 +SE Minera Standard 800kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,800000,0.06,10500,0.016,1150,Dyn11,15000,410,1.48,4.64,98.56,98.21,98.84,98.55 +SE Minera Standard 1000kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,1000000,0.06,13000,0.015,1400,Dyn11,15000,410,1.47,4.63,98.58,98.23,98.85,98.57 +SE Minera Standard 1250kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,1250000,0.06,16000,0.013,1750,Dyn11,15000,410,1.45,4.62,98.6,98.26,98.87,98.59 +SE Minera Standard 1600kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,1600000,0.06,20000,0.011,2200,Dyn11,15000,410,1.42,4.6,98.63,98.3,98.89,98.62 +SE Minera Standard 2000kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,2000000,0.06,26000,0.011,2700,Dyn11,15000,410,1.47,4.63,98.59,98.24,98.86,98.58 +SE Minera Standard 2500kVA 15/20kV(15) 410V Dyn11,SE,Minera,Standard,three-phase,mineral,2500000,0.06,32000,0.01,3200,Dyn11,15000,410,1.45,4.62,98.61,98.27,98.88,98.61 +SE Trihal AA0Ak 250kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,250000,0.06,3740,0.48,538,Dyn11,20000,410,,,98.318,97.906,98.611,98.269 +SE Trihal AA0Ak 400kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,400000,0.06,4950,0.41,776,Dyn11,20000,410,,,98.589,98.242,98.827,98.538 +SE Trihal AA0Ak 630kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,630000,0.06,7810,0.22,1138,Dyn11,20000,410,,,98.600,98.256,98.843,98.558 +SE Trihal AA0Ak 800kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,800000,0.06,8800,0.18,1345,Dyn11,20000,410,,,98.748,98.440,98.962,98.706 +SE Trihal AA0Ak 1000kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1000000,0.06,9900,0.17,1604,Dyn11,20000,410,,,98.863,98.582,99.053,98.819 +SE Trihal AA0Ak 1250kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1250000,0.06,12100,0.16,1863,Dyn11,20000,410,,,98.895,98.623,99.084,98.857 +SE Trihal AA0Ak 1600kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1600000,0.06,14300,0.15,2277,Dyn11,20000,410,,,98.975,98.721,99.147,98.936 +SE Trihal AA0Ak 2000kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,2000000,0.06,17600,0.28,2691,Dyn11,20000,410,,,98.996,98.748,99.168,98.962 +SE Trihal AA0Ak 2500kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,2500000,0.06,20900,0.21,3208,Dyn11,20000,410,,,99.045,98.809,99.208,99.012 +SE Trihal AA0Ak 3150kVA 15/20kV(20) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,3150000,0.06,24200,0.30,3933,Dyn11,20000,410,,,99.115,98.896,99.263,99.080 +SE Trihal AA0Ak 250kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,250000,0.06,3740,0.48,538,Dyn11,15000,410,,,98.318,97.906,98.611,98.269 +SE Trihal AA0Ak 400kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,400000,0.06,4950,0.41,776,Dyn11,15000,410,,,98.589,98.242,98.827,98.538 +SE Trihal AA0Ak 630kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,630000,0.06,7810,0.22,1138,Dyn11,15000,410,,,98.600,98.256,98.843,98.558 +SE Trihal AA0Ak 800kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,800000,0.06,8800,0.18,1345,Dyn11,15000,410,,,98.748,98.440,98.962,98.706 +SE Trihal AA0Ak 1000kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1000000,0.06,9900,0.17,1604,Dyn11,15000,410,,,98.863,98.582,99.053,98.819 +SE Trihal AA0Ak 1250kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1250000,0.06,12100,0.16,1863,Dyn11,15000,410,,,98.895,98.623,99.084,98.857 +SE Trihal AA0Ak 1600kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1600000,0.06,14300,0.15,2277,Dyn11,15000,410,,,98.975,98.721,99.147,98.936 +SE Trihal AA0Ak 2000kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,2000000,0.06,17600,0.28,2691,Dyn11,15000,410,,,98.996,98.748,99.168,98.962 +SE Trihal AA0Ak 2500kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,2500000,0.06,20900,0.21,3208,Dyn11,15000,410,,,99.045,98.809,99.208,99.012 +SE Trihal AA0Ak 3150kVA 15/20kV(15) 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,3150000,0.06,24200,0.30,3933,Dyn11,15000,410,,,99.115,98.896,99.263,99.080 +SE Trihal AA0Ak 250kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,250000,0.06,3400,0.48,468,Dyn11,20000,410,,,98.476,98.103,98.746,98.438 +SE Trihal AA0Ak 400kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,400000,0.06,4500,0.42,675,Dyn11,20000,410,,,98.723,98.409,98.943,98.682 +SE Trihal AA0Ak 630kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,630000,0.06,7100,0.37,990,Dyn11,20000,410,,,98.732,98.420,98.956,98.699 +SE Trihal AA0Ak 800kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,800000,0.06,8000,0.34,1170,Dyn11,20000,410,,,98.867,98.587,99.064,98.833 +SE Trihal AA0Ak 1000kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1000000,0.06,9000,0.33,1395,Dyn11,20000,410,,,98.971,98.717,99.146,98.935 +SE Trihal AA0Ak 1250kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1250000,0.06,11000,0.29,1620,Dyn11,20000,410,,,99.000,98.754,99.174,98.970 +SE Trihal AA0Ak 1600kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,1600000,0.06,13000,0.27,1980,Dyn11,20000,410,,,99.072,98.843,99.232,99.041 +SE Trihal AA0Ak 2000kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,2000000,0.06,16000,0.27,2340,Dyn11,20000,410,,,99.091,98.867,99.250,99.064 +SE Trihal AA0Ak 2500kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,2500000,0.06,19000,0.24,2790,Dyn11,20000,410,,,99.136,98.922,99.286,99.110 +SE Trihal AA0Ak 3150kVA 20kV 410V Dyn11,SE,Trihal,AA0Ak,three-phase,dry,3150000,0.06,22000,0.21,3420,Dyn11,20000,410,,,99.199,99.001,99.336,99.171 +SE Trihal ExtraReducedLosses 160kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,160000,0.06,2340,0.023,400,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 250kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,250000,0.06,3060,0.02,520,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 400kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,400000,0.06,4050,0.015,750,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 630kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,630000,0.06,6390,0.013,1100,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 800kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,800000,0.06,7200,0.013,1300,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 1000kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,1000000,0.06,8100,0.012,1550,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 1250kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,1250000,0.06,9900,0.012,1800,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 1600kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,1600000,0.06,11700,0.012,2200,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 2000kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,2000000,0.06,14400,0.011,2600,Dyn11,20000,410,,,,,, +SE Trihal ExtraReducedLosses 2500kVA 20kV 410V Dyn11,SE,Trihal,ExtraReducedLosses,three-phase,dry,2500000,0.06,17100,0.01,3100,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 160kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,160000,0.06,2350,0.023,480,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 250kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,250000,0.06,3300,0.02,650,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 400kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,400000,0.06,4800,0.015,940,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 630kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,630000,0.06,6800,0.013,1250,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 800kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,800000,0.06,8200,0.013,1500,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 1000kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,1000000,0.06,9600,0.012,1800,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 1250kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,1250000,0.06,11400,0.012,2100,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 1600kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,1600000,0.06,14000,0.012,2400,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 2000kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,2000000,0.06,17400,0.011,3000,Dyn11,20000,410,,,,,, +SE Trihal ReducedLosses 2500kVA 20kV 410V Dyn11,SE,Trihal,ReducedLosses,three-phase,dry,2500000,0.06,20000,0.01,3600,Dyn11,20000,410,,,,,, +SE Trihal Standard 160kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,160000,0.06,2350,0.023,650,Dyn11,20000,410,,,,,, +SE Trihal Standard 250kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,250000,0.06,3300,0.02,880,Dyn11,20000,410,,,,,, +SE Trihal Standard 400kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,400000,0.06,4800,0.015,1200,Dyn11,20000,410,,,,,, +SE Trihal Standard 630kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,630000,0.06,6800,0.013,1650,Dyn11,20000,410,,,,,, +SE Trihal Standard 800kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,800000,0.06,8200,0.013,2000,Dyn11,20000,410,,,,,, +SE Trihal Standard 1000kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,1000000,0.06,9600,0.012,2300,Dyn11,20000,410,,,,,, +SE Trihal Standard 1250kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,1250000,0.06,11400,0.012,2800,Dyn11,20000,410,,,,,, +SE Trihal Standard 1600kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,1600000,0.06,14000,0.012,3100,Dyn11,20000,410,,,,,, +SE Trihal Standard 2000kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,2000000,0.06,17400,0.011,4000,Dyn11,20000,410,,,,,, +SE Trihal Standard 2500kVA 20kV 410V Dyn11,SE,Trihal,Standard,three-phase,dry,2500000,0.06,20000,0.01,5000,Dyn11,20000,410,,,,,, +SE Vegeta AA0Ak 160kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,160000,0.04,1750,0.15,189,Dyn11,20000,410,,,98.803,98.508,99.032,98.792 +SE Vegeta AA0Ak 250kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,250000,0.04,2350,0.14,270,Dyn11,20000,410,,,98.963,98.707,99.158,98.95 +SE Vegeta AA0Ak 400kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,400000,0.04,3250,0.16,387,Dyn11,20000,410,,,99.099,98.876,99.267,99.085 +SE Vegeta AA0Ak 630kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,630000,0.04,4600,0.15,540,Dyn11,20000,410,,,99.191,98.99,99.342,99.179 +SE Vegeta AA0Ak 800kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,800000,0.06,6000,0.12,585,Dyn11,20000,410,,,99.184,98.982,99.344,99.192 +SE Vegeta AA0Ak 1000kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,1000000,0.06,7600,0.12,693,Dyn11,20000,410,,,99.178,98.974,99.342,99.179 +SE Vegeta AA0Ak 1250kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,1250000,0.06,9500,0.12,855,Dyn11,20000,410,,,99.178,98.975,99.343,99.18 +SE Vegeta AA0Ak 1600kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,1600000,0.06,12000,0.28,1080,Dyn11,20000,410,,,99.189,99.988,99.352,99.191 +SE Vegeta AA0Ak 2000kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,2000000,0.06,15000,0.28,1305,Dyn11,20000,410,,,99.191,98.991,99.355,99.195 +SE Vegeta AA0Ak 2500kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,2500000,0.06,18500,0.28,1575,Dyn11,20000,410,,,99.203,99.006,99.365,99.208 +SE Vegeta AA0Ak 3150kVA 20kV 410V Dyn11,SE,Vegeta,AA0Ak,three-phase,ester,3150000,0.06,23000,0.28,1980,Dyn11,20000,410,,,99.213,99.018,99.373,99.217 +SE Vegeta C0Bk 50kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,50000,0.04,875,0.029,125,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 100kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,100000,0.04,1475,0.025,210,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 160kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,160000,0.04,2000,0.023,300,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 250kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,250000,0.04,2750,0.021,425,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 315kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,315000,0.04,3250,0.02,520,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 400kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,400000,0.04,3850,0.019,610,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 500kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,500000,0.04,4600,0.019,720,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 630kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,630000,0.04,5400,0.018,860,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 800kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,800000,0.06,7000,0.025,930,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 1000kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,1000000,0.06,9000,0.024,1100,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 1250kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,1250000,0.06,11000,0.022,1350,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 1600kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,1600000,0.06,14000,0.02,1700,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 2000kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,2000000,0.06,18000,0.019,2100,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 2500kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,2500000,0.06,22000,0.018,2500,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 3150kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,3150000,0.07,26500,0.018,3000,Dyn11,20000,410,,,,,, +SE Vegeta C0Bk 50kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,50000,0.04,875,0.029,125,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 100kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,100000,0.04,1475,0.025,210,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 160kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,160000,0.04,2000,0.023,300,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 250kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,250000,0.04,2750,0.021,425,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 315kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,315000,0.04,3250,0.02,520,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 400kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,400000,0.04,3850,0.019,610,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 500kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,500000,0.04,4600,0.019,720,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 630kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,630000,0.04,5400,0.018,860,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 800kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,800000,0.06,7000,0.025,930,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 1000kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,1000000,0.06,9000,0.024,1100,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 1250kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,1250000,0.06,11000,0.022,1350,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 1600kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,1600000,0.06,14000,0.02,1700,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 2000kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,2000000,0.06,18000,0.019,2100,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 2500kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,2500000,0.06,22000,0.018,2500,Dyn11,15000,410,,,,,, +SE Vegeta C0Bk 3150kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,C0Bk,three-phase,ester,3150000,0.07,26500,0.018,3000,Dyn11,15000,410,,,,,, +SE Vegeta Standard 50kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,50000,0.04,1350,0.029,145,Dyn11,20000,410,2.74,3.93,97.09,96.39,97.64,97.07 +SE Vegeta Standard 100kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,100000,0.04,2150,0.025,210,Dyn11,20000,410,2.21,3.75,97.69,97.13,98.14,97.69 +SE Vegeta Standard 160kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,160000,0.04,2350,0.023,460,Dyn11,20000,410,1.54,3.43,98.27,97.85,98.54,98.18 +SE Vegeta Standard 250kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,250000,0.04,3250,0.021,650,Dyn11,20000,410,1.37,3.33,98.46,98.09,98.7,98.37 +SE Vegeta Standard 315kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,315000,0.04,3900,0.02,800,Dyn11,20000,410,1.31,3.3,98.53,98.17,98.75,98.44 +SE Vegeta Standard 400kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,400000,0.04,4600,0.019,930,Dyn11,20000,410,1.22,3.25,98.64,98.3,98.84,98.56 +SE Vegeta Standard 500kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,500000,0.04,5500,0.019,1100,Dyn11,20000,410,1.17,3.22,98.7,98.38,98.89,98.62 +SE Vegeta Standard 630kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,630000,0.04,6500,0.018,1300,Dyn11,20000,410,1.11,3.17,98.78,98.48,98.96,98.71 +SE Vegeta Standard 800kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,800000,0.06,10700,0.025,1220,Dyn11,20000,410,1.51,4.65,98.53,98.71,98.81,98.51 +SE Vegeta Standard 1000kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,1000000,0.06,13000,0.024,1470,Dyn11,20000,410,1.47,4.63,98.57,98.22,98.84,98.56 +SE Vegeta Standard 1250kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,1250000,0.06,16000,0.022,1800,Dyn11,20000,410,1.45,4.62,98.6,98.25,98.86,98.58 +SE Vegeta Standard 1600kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,1600000,0.06,20000,0.02,2300,Dyn11,20000,410,1.42,4.6,98.63,98.29,98.88,98.61 +SE Vegeta Standard 2000kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,2000000,0.06,25500,0.019,2750,Dyn11,20000,410,1.45,4.61,98.61,98.27,98.87,98.6 +SE Vegeta Standard 2500kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,2500000,0.06,32000,0.018,3350,Dyn11,20000,410,1.45,4.62,98.61,98.26,98.87,98.6 +SE Vegeta Standard 3150kVA 15/20kV(20) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,3150000,0.07,33000,0.018,4200,Dyn11,20000,410,1.29,5.11,98.83,98.55,99.05,98.81 +SE Vegeta Standard 50kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,50000,0.04,1350,0.029,145,Dyn11,15000,410,2.74,3.93,97.09,96.39,97.64,97.07 +SE Vegeta Standard 100kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,100000,0.04,2150,0.025,210,Dyn11,15000,410,2.21,3.75,97.69,97.13,98.14,97.69 +SE Vegeta Standard 160kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,160000,0.04,2350,0.023,460,Dyn11,15000,410,1.54,3.43,98.27,97.85,98.54,98.18 +SE Vegeta Standard 250kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,250000,0.04,3250,0.021,650,Dyn11,15000,410,1.37,3.33,98.46,98.09,98.7,98.37 +SE Vegeta Standard 315kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,315000,0.04,3900,0.02,800,Dyn11,15000,410,1.31,3.3,98.53,98.17,98.75,98.44 +SE Vegeta Standard 400kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,400000,0.04,4600,0.019,930,Dyn11,15000,410,1.22,3.25,98.64,98.3,98.84,98.56 +SE Vegeta Standard 500kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,500000,0.04,5500,0.019,1100,Dyn11,15000,410,1.17,3.22,98.7,98.38,98.89,98.62 +SE Vegeta Standard 630kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,630000,0.04,6500,0.018,1300,Dyn11,15000,410,1.11,3.17,98.78,98.48,98.96,98.71 +SE Vegeta Standard 800kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,800000,0.06,10700,0.025,1220,Dyn11,15000,410,1.51,4.65,98.53,98.71,98.81,98.51 +SE Vegeta Standard 1000kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,1000000,0.06,13000,0.024,1470,Dyn11,15000,410,1.47,4.63,98.57,98.22,98.84,98.56 +SE Vegeta Standard 1250kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,1250000,0.06,16000,0.022,1800,Dyn11,15000,410,1.45,4.62,98.6,98.25,98.86,98.58 +SE Vegeta Standard 1600kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,1600000,0.06,20000,0.02,2300,Dyn11,15000,410,1.42,4.6,98.63,98.29,98.88,98.61 +SE Vegeta Standard 2000kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,2000000,0.06,25500,0.019,2750,Dyn11,15000,410,1.45,4.61,98.61,98.27,98.87,98.6 +SE Vegeta Standard 2500kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,2500000,0.06,32000,0.018,3350,Dyn11,15000,410,1.45,4.62,98.61,98.26,98.87,98.6 +SE Vegeta Standard 3150kVA 15/20kV(15) 410V Dyn11,SE,Vegeta,Standard,three-phase,ester,3150000,0.07,33000,0.018,4200,Dyn11,15000,410,1.29,5.11,98.83,98.55,99.05,98.81 +SE Imprego 63kVA 400V 400V Dyn11,SE,Imprego,,three-phase,dry,63000,0.0447,2006,,416,Dyn11,400,400,,,,,, +SE Imprego 10kVA 230V 230V Ii0,SE,Imprego,,single-phase,dry,10000,0.028,280,,90,Ii0,230,230,,,,,, +SE Imprego 10kVA 230V 230V Iii0,SE,Imprego,,center-tapped,dry,10000,0.028,280,,90,Iii0,230,230,,,,,, +SE Imprego 6.3kVA 230V 230V Ii0,SE,Imprego,,single-phase,dry,6300,0.027,170,,60,Ii0,230,230,,,,,, +SE Imprego 6.3kVA 230V 230V Iii0,SE,Imprego,,center-tapped,dry,6300,0.027,170,,60,Iii0,230,230,,,,,, +CA Yellow A0Ak 250kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,250000,0.04,2350,,300,Dyn11,21000,400,1.02,3.12,98.95,98.69,99.14,98.93 +CA Yellow A0Ak 400kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,400000,0.04,3250,,430,Dyn11,21000,400,0.89,3.03,99.09,98.86,99.25,99.07 +CA Yellow A0Ak 500kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,500000,0.04,3900,,510,Dyn11,21000,400,0.86,3.01,99.13,98.91,99.28,99.11 +CA Yellow A0Ak 630kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,630000,0.04,4600,,600,Dyn11,21000,400,0.81,2.98,99.18,98.98,99.33,99.16 +CA Yellow A0Ak 800kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,800000,0.06,6000,,650,Dyn11,21000,400,0.93,4.26,99.18,98.97,99.33,99.17 +CA Yellow A0Ak 1000kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,1000000,0.06,7600,,770,Dyn11,21000,400,0.94,4.27,99.17,98.96,99.33,99.17 +CA Yellow A0Ak 1250kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,1250000,0.06,9500,,950,Dyn11,21000,400,0.94,4.27,99.17,98.97,99.33,99.17 +CA Yellow A0Ak 1600kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,1600000,0.06,12000,,1200,Dyn11,21000,400,0.93,4.26,99.18,98.98,99.34,99.18 +CA Yellow A0Ak 2000kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,2000000,0.06,15000,,1450,Dyn11,21000,400,0.93,4.26,99.18,98.98,99.35,99.18 +CA Yellow A0Ak 2500kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,2500000,0.06,18500,,1750,Dyn11,21000,400,0.92,4.26,99.20,99.00,99.36,99.20 +CA Yellow A0Ak 3150kVA 15.75/21kV(21) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,3150000,0.06,23000,,2200,Dyn11,21000,400,0.91,4.25,99.21,99.01,99.36,99.21 +CA Yellow A0Ak 250kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,250000,0.04,2350,,300,Dyn11,15750,400,1.02,3.12,98.95,98.69,99.14,98.93 +CA Yellow A0Ak 400kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,400000,0.04,3250,,430,Dyn11,15750,400,0.89,3.03,99.09,98.86,99.25,99.07 +CA Yellow A0Ak 500kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,500000,0.04,3900,,510,Dyn11,15750,400,0.86,3.01,99.13,98.91,99.28,99.11 +CA Yellow A0Ak 630kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,630000,0.04,4600,,600,Dyn11,15750,400,0.81,2.98,99.18,98.98,99.33,99.16 +CA Yellow A0Ak 800kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,800000,0.06,6000,,650,Dyn11,15750,400,0.93,4.26,99.18,98.97,99.33,99.17 +CA Yellow A0Ak 1000kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,1000000,0.06,7600,,770,Dyn11,15750,400,0.94,4.27,99.17,98.96,99.33,99.17 +CA Yellow A0Ak 1250kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,1250000,0.06,9500,,950,Dyn11,15750,400,0.94,4.27,99.17,98.97,99.33,99.17 +CA Yellow A0Ak 1600kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,1600000,0.06,12000,,1200,Dyn11,15750,400,0.93,4.26,99.18,98.98,99.34,99.18 +CA Yellow A0Ak 2000kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,2000000,0.06,15000,,1450,Dyn11,15750,400,0.93,4.26,99.18,98.98,99.35,99.18 +CA Yellow A0Ak 2500kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,2500000,0.06,18500,,1750,Dyn11,15750,400,0.92,4.26,99.20,99.00,99.36,99.20 +CA Yellow A0Ak 3150kVA 15.75/21kV(15.75) 400V Dyn11,CA,Yellow,A0Ak,three-phase,,3150000,0.06,23000,,2200,Dyn11,15750,400,0.91,4.25,99.21,99.01,99.36,99.21 diff --git a/roseau/load_flow/exceptions.py b/roseau/load_flow/exceptions.py index a6630295..1b71cfdf 100644 --- a/roseau/load_flow/exceptions.py +++ b/roseau/load_flow/exceptions.py @@ -35,21 +35,33 @@ class RoseauLoadFlowExceptionCode(StrEnum): BAD_Y_SHUNT_SHAPE = auto() BAD_LINE_MODEL = auto() BAD_LINE_TYPE = auto() - BAD_CONDUCTOR_TYPE = auto() - BAD_INSULATOR_TYPE = auto() + BAD_MATERIAL = auto() + BAD_INSULATOR = auto() BAD_Z_LINE_VALUE = auto() BAD_Y_SHUNT_VALUE = auto() BAD_TYPE_NAME_SYNTAX = auto() BAD_LENGTH_VALUE = auto() + BAD_AMPACITIES_VALUE = auto() + BAD_AMPACITIES_SIZE = auto() + BAD_SECTIONS_VALUE = auto() + BAD_SECTIONS_SIZE = auto() + BAD_MATERIALS_VALUE = auto() + BAD_MATERIALS_SIZE = auto() + BAD_INSULATORS_VALUE = auto() + BAD_INSULATORS_SIZE = auto() # Transformer BAD_TRANSFORMER_ID = auto() - BAD_TRANSFORMER_WINDINGS = auto() BAD_TRANSFORMER_TYPE = auto() + BAD_TRANSFORMER_VECTOR_GROUP = auto() + BAD_TRANSFORMER_WINDINGS = BAD_TRANSFORMER_VECTOR_GROUP BAD_TRANSFORMER_VOLTAGES = auto() BAD_TRANSFORMER_IMPEDANCE = auto() BAD_TRANSFORMER_PARAMETERS = auto() + # Transformer and line + BAD_MAX_LOADING_VALUE = auto() + # Switch BAD_SWITCH_ID = auto() @@ -97,6 +109,7 @@ class RoseauLoadFlowExceptionCode(StrEnum): # Solver BAD_SOLVER_NAME = auto() BAD_SOLVER_PARAMS = auto() + NO_BACKWARD_FORWARD = auto() # DGS export DGS_BAD_PHASE_TECHNOLOGY = auto() diff --git a/roseau/load_flow/io/dgs/__init__.py b/roseau/load_flow/io/dgs/__init__.py index ddca2e5d..2a789a10 100644 --- a/roseau/load_flow/io/dgs/__init__.py +++ b/roseau/load_flow/io/dgs/__init__.py @@ -33,6 +33,7 @@ VoltageSource, ) from roseau.load_flow.typing import Id, StrPath +from roseau.load_flow.utils._exceptions import find_stack_level logger = logging.getLogger(__name__) @@ -119,7 +120,7 @@ def network_from_dgs( "line types from the library to the project before exporting otherwise a " "LineParameter object will be created for each line." ) - warnings.warn(msg, stacklevel=3) + warnings.warn(msg, stacklevel=find_stack_level()) else: generate_typ_lne(typ_lne=typ_lne, lines_params=lines_params) generate_lines( @@ -184,7 +185,7 @@ def _parse_dgs_version(data: dict[str, Any]) -> tuple[int, ...]: f"The DGS version {dgs_version} is too old, this may cause conversion errors. Try " f"updating the version before exporting." ) - warnings.warn(msg, stacklevel=4) + warnings.warn(msg, stacklevel=find_stack_level()) return dgs_version_tuple diff --git a/roseau/load_flow/io/dgs/constants.py b/roseau/load_flow/io/dgs/constants.py index 106b6489..1193a33d 100644 --- a/roseau/load_flow/io/dgs/constants.py +++ b/roseau/load_flow/io/dgs/constants.py @@ -1,30 +1,30 @@ from typing import Final, Literal, TypeAlias -from roseau.load_flow.utils import ConductorType, InsulatorType, LineType +from roseau.load_flow.utils import Insulator, LineType, Material # Lines LINE_TYPES: Final[dict[int, LineType]] = { 0: LineType.UNDERGROUND, # inAir=Ground 1: LineType.OVERHEAD, # inAir=Air } -CONDUCTOR_TYPES: Final[dict[int | str, ConductorType]] = { - 0: ConductorType.AL, - "Al": ConductorType.AL, - 1: ConductorType.CU, - "Cu": ConductorType.CU, - 2: ConductorType.AM, - "Ad": ConductorType.AM, - 3: ConductorType.AA, - "As": ConductorType.AA, - 4: ConductorType.LA, - "Ds": ConductorType.LA, -} -INSULATOR_TYPES: Final[dict[int, InsulatorType]] = { - 0: InsulatorType.PVC, # PVC - 1: InsulatorType.XLPE, # XLPE - 2: InsulatorType.UNKNOWN, # Mineral # (aka MI, MICC, Pyro) not supported by RLF - 3: InsulatorType.IP, # Paper - 4: InsulatorType.EPR, # EPR +MATERIALS: Final[dict[int | str, Material]] = { + 0: Material.AL, + "Al": Material.AL, + 1: Material.CU, + "Cu": Material.CU, + 2: Material.AM, + "Ad": Material.AM, + 3: Material.AA, + "As": Material.AA, + 4: Material.LA, + "Ds": Material.LA, +} +INSULATORS: Final[dict[int, Insulator]] = { + 0: Insulator.PVC, # PVC + 1: Insulator.XLPE, # XLPE + 2: Insulator.NONE, # Mineral # (aka MI, MICC, Pyro) not supported by RLF + 3: Insulator.IP, # Paper + 4: Insulator.EPR, # EPR } # Loads diff --git a/roseau/load_flow/io/dgs/lines.py b/roseau/load_flow/io/dgs/lines.py index 3f62ac07..fb6b0d46 100644 --- a/roseau/load_flow/io/dgs/lines.py +++ b/roseau/load_flow/io/dgs/lines.py @@ -5,9 +5,10 @@ import shapely from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode -from roseau.load_flow.io.dgs.constants import CONDUCTOR_TYPES, INSULATOR_TYPES, LINE_TYPES +from roseau.load_flow.io.dgs.constants import INSULATORS, LINE_TYPES, MATERIALS from roseau.load_flow.models import Bus, Ground, Line, LineParameters from roseau.load_flow.typing import Id +from roseau.load_flow.utils._exceptions import find_stack_level logger = logging.getLogger(__name__) @@ -22,6 +23,7 @@ def generate_typ_lne(typ_lne: pd.DataFrame, lines_params: dict[Id, LineParameter lines_params: The dictionary to store the line parameters into. """ + # TODO: Maybe add the section of the neutral for type_id in typ_lne.index: this_typ_lne: pd.Series = typ_lne.loc[type_id] # TODO: use the detailed phase information instead of n @@ -63,23 +65,23 @@ def generate_typ_lne(typ_lne: pd.DataFrame, lines_params: dict[Id, LineParameter # Optional fields sline = this_typ_lne.get("sline") - max_current = sline * 1e3 if sline is not None else None + ampacities = sline * 1e3 if sline is not None else None line_type = LINE_TYPES.get(this_typ_lne.get("cohl_")) - conductor_type = CONDUCTOR_TYPES.get(this_typ_lne.get("mlei")) - insulator_type = INSULATOR_TYPES.get(this_typ_lne.get("imiso")) + material = MATERIALS.get(this_typ_lne.get("mlei")) + insulator = INSULATORS.get(this_typ_lne.get("imiso")) section = this_typ_lne.get("qurs") or None # Sometimes it is zero!! replace by None in this case with warnings.catch_warnings(): warnings.filterwarnings(action="ignore", message=r".* off-diagonal elements ", category=UserWarning) lp = LineParameters( - type_id, + id=type_id, z_line=z_line, y_shunt=y_shunt, - max_current=max_current, + ampacities=ampacities, line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, - section=section, + materials=material, + insulators=insulator, + sections=section, ) lines_params[type_id] = lp @@ -119,6 +121,7 @@ def generate_typ_lne_from_elm_lne( # Get the cross-sectional area (mm²) section = lne_series.get("crosssec") or None # Sometimes it is zero!! replace by None in this case + # TODO The section of the neutral? # Get the impedance and admittance matrices required_fields = ("R0", "X0", "X1", "R1", "G0", "B0", "G1", "B1") @@ -137,7 +140,7 @@ def generate_typ_lne_from_elm_lne( with warnings.catch_warnings(): warnings.filterwarnings(action="ignore", message=r".* off-diagonal elements ", category=UserWarning) - lp = LineParameters(id=typ_id, z_line=z_line, y_shunt=y_shunt, line_type=line_type, section=section) + lp = LineParameters(id=typ_id, z_line=z_line, y_shunt=y_shunt, line_type=line_type, sections=section) return lp @@ -204,7 +207,7 @@ def generate_lines( elif nb_points == 1: warnings.warn( f"Failed to read geometry data for line {line_id!r}: it has a single GPS point.", - stacklevel=4, + stacklevel=find_stack_level(), ) else: assert nb_cols == 2, f"Expected 2 GPS columns (Latitude/Longitude), got {nb_cols}." @@ -218,7 +221,8 @@ def generate_lines( ) except Exception as e: warnings.warn( - f"Failed to read geometry data for line {line_id!r}: {type(e).__name__}: {e}", stacklevel=4 + f"Failed to read geometry data for line {line_id!r}: {type(e).__name__}: {e}", + stacklevel=find_stack_level(), ) lines[line_id] = Line( id=line_id, diff --git a/roseau/load_flow/io/dgs/switches.py b/roseau/load_flow/io/dgs/switches.py index 30107dcf..0ae9ffeb 100644 --- a/roseau/load_flow/io/dgs/switches.py +++ b/roseau/load_flow/io/dgs/switches.py @@ -7,6 +7,7 @@ from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode from roseau.load_flow.models import Bus, Switch from roseau.load_flow.typing import Id +from roseau.load_flow.utils._exceptions import find_stack_level logger = logging.getLogger(__name__) @@ -47,6 +48,7 @@ def generate_switches( on_off = elm_coup.at[switch_id, "on_off"] if not on_off: warnings.warn( - f"Switch {switch_id!r} is open but switches are always closed in roseau-load-flow.", stacklevel=4 + f"Switch {switch_id!r} is open but switches are always closed in roseau-load-flow.", + stacklevel=find_stack_level(), ) switches[switch_id] = Switch(id=switch_id, phases=phases, bus1=bus1, bus2=bus2, geometry=geometry) diff --git a/roseau/load_flow/io/dgs/transformers.py b/roseau/load_flow/io/dgs/transformers.py index 30eb9a9d..79187424 100644 --- a/roseau/load_flow/io/dgs/transformers.py +++ b/roseau/load_flow/io/dgs/transformers.py @@ -25,22 +25,24 @@ def generate_typ_tr( transformers_tap: The dictionary to store the tap positions of the transformers into. """ + # TODO The parameter `maxload` could be exported too and then stored in `transformers_maxload` dictionary to be + # used when the transformers are created fo fill `max_loading` for idx in typ_tr.index: # Extract data name = typ_tr.at[idx, "loc_name"] sn = Q_(typ_tr.at[idx, "strn"], "MVA") # The nominal voltages of the transformer (MVA) - uhv = Q_(typ_tr.at[idx, "utrn_h"], "kV") # Phase-to-phase nominal voltages of the high voltages side (kV) - ulv = Q_(typ_tr.at[idx, "utrn_l"], "kV") # Phase-to-phase nominal voltages of the low voltages side (kV) + uhv = Q_(typ_tr.at[idx, "utrn_h"], "kV") # Phase-to-phase nominal voltage of the HV side (kV) + ulv = Q_(typ_tr.at[idx, "utrn_l"], "kV") # Phase-to-phase nominal voltage of the LV side (kV) i0 = Q_(typ_tr.at[idx, "curmg"] / 3, "percent") # Current during off-load test (%) p0 = Q_(typ_tr.at[idx, "pfe"] / 3, "kW") # Losses during off-load test (kW) psc = Q_(typ_tr.at[idx, "pcutr"], "kW") # Losses during short-circuit test (kW) vsc = Q_(typ_tr.at[idx, "uktr"], "percent") # Voltages on LV side during short-circuit test (%) - # Windings of the transformer - windings = f"{typ_tr.at[idx, 'tr2cn_h']}{typ_tr.at[idx, 'tr2cn_l']}{typ_tr.at[idx, 'nt2ag']}" + # Vector group of the transformer + vg = f"{typ_tr.at[idx, 'tr2cn_h']}{typ_tr.at[idx, 'tr2cn_l']}{typ_tr.at[idx, 'nt2ag']}" # Generate transformer parameters transformers_params[idx] = TransformerParameters.from_open_and_short_circuit_tests( - id=name, type=windings, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc + id=name, vg=vg, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc ) transformers_tap[idx] = typ_tr.at[idx, "dutap"] diff --git a/roseau/load_flow/io/dict.py b/roseau/load_flow/io/dict.py index 63fc8045..ff221dcb 100644 --- a/roseau/load_flow/io/dict.py +++ b/roseau/load_flow/io/dict.py @@ -8,6 +8,7 @@ import copy import logging +import warnings from typing import TYPE_CHECKING, TypeVar import numpy as np @@ -27,13 +28,14 @@ VoltageSource, ) from roseau.load_flow.typing import Id, JsonDict +from roseau.load_flow.utils._exceptions import find_stack_level if TYPE_CHECKING: from roseau.load_flow.network import ElectricalNetwork logger = logging.getLogger(__name__) -NETWORK_JSON_VERSION = 2 +NETWORK_JSON_VERSION = 3 """The current version of the network JSON file format.""" _T = TypeVar("_T", bound=AbstractBranch) @@ -92,16 +94,20 @@ def network_from_dict( # noqa: C901 data = copy.deepcopy(data) # Make a copy to avoid modifying the original version = data.get("version", 0) - if version <= 1: - logger.warning( + if version <= 2: + warnings.warn( f"Got an outdated network file (version {version}), trying to update to the current format " - f"(version {NETWORK_JSON_VERSION}). Please save the network again." + f"(version {NETWORK_JSON_VERSION}). Please save the network again.", + category=UserWarning, + stacklevel=find_stack_level(), ) - if version == 0: + if version <= 0: data = v0_to_v1_converter(data) include_results = False # V0 network dictionaries didn't have results - if version == 1: + if version <= 1: data = v1_to_v2_converter(data) + if version <= 2: + data = v2_to_v3_converter(data) else: # If we arrive here, we dealt with all legacy versions, it must be the current one assert version == NETWORK_JSON_VERSION, f"Unsupported network file version {version}." @@ -173,11 +179,20 @@ def network_from_dict( # noqa: C901 bus2 = buses[line_data["bus2"]] geometry = Line._parse_geometry(line_data.get("geometry")) length = line_data["length"] + max_loading = line_data["max_loading"] lp = lines_params[line_data["params_id"]] gid = line_data.get("ground") ground = grounds[gid] if gid is not None else None line = Line( - id=id, bus1=bus1, bus2=bus2, parameters=lp, phases=phases, length=length, ground=ground, geometry=geometry + id=id, + bus1=bus1, + bus2=bus2, + parameters=lp, + phases=phases, + length=length, + ground=ground, + geometry=geometry, + max_loading=max_loading, ) if include_results: line = _assign_branch_currents(branch=line, branch_data=line_data) @@ -191,12 +206,22 @@ def network_from_dict( # noqa: C901 id = transformer_data["id"] phases1 = transformer_data["phases1"] phases2 = transformer_data["phases2"] + tap = transformer_data["tap"] + max_loading = transformer_data["max_loading"] bus1 = buses[transformer_data["bus1"]] bus2 = buses[transformer_data["bus2"]] geometry = Transformer._parse_geometry(transformer_data.get("geometry")) tp = transformers_params[transformer_data["params_id"]] transformer = Transformer( - id=id, bus1=bus1, bus2=bus2, parameters=tp, phases1=phases1, phases2=phases2, geometry=geometry + id=id, + bus1=bus1, + bus2=bus2, + parameters=tp, + phases1=phases1, + phases2=phases2, + tap=tap, + geometry=geometry, + max_loading=max_loading, ) if include_results: transformer = _assign_branch_currents(branch=transformer, branch_data=transformer_data) @@ -298,13 +323,13 @@ def network_to_dict(en: "ElectricalNetwork", *, include_results: bool) -> JsonDi line_params: list[JsonDict] = [] for lp in lines_params_dict.values(): line_params.append(lp.to_dict(include_results=include_results)) - line_params.sort(key=lambda x: x["id"]) # Always keep the same order + line_params.sort(key=lambda x: (type(x["id"]).__name__, str(x["id"]))) # Always keep the same order # Transformer parameters transformer_params: list[JsonDict] = [] for tp in transformers_params_dict.values(): transformer_params.append(tp.to_dict(include_results=include_results)) - transformer_params.sort(key=lambda x: x["id"]) # Always keep the same order + transformer_params.sort(key=lambda x: (type(x["id"]).__name__, str(x["id"]))) # Always keep the same order res = { "version": NETWORK_JSON_VERSION, @@ -431,7 +456,16 @@ def v0_to_v1_converter(data: JsonDict) -> JsonDict: # noqa: C901 "vsc": transformer_type["vsc"], "type": transformer_type["type"], } - z2, ym = TransformerParameters._compute_zy(**tp) + z2, ym = TransformerParameters._compute_zy( + vg=tp["type"], + uhv=tp["uhv"], + ulv=tp["ulv"], + sn=tp["sn"], + p0=tp["p0"], + i0=tp["i0"], + psc=tp["psc"], + vsc=tp["vsc"], + ) tp["id"] = transformer_type["name"] tp["z2"] = [z2.real, z2.imag] tp["ym"] = [ym.real, ym.imag] @@ -614,3 +648,104 @@ def v1_to_v2_converter(data: JsonDict) -> JsonDict: results["short_circuits"] = data["short_circuits"] # Unchanged return results + + +def v2_to_v3_converter(data: JsonDict) -> JsonDict: # noqa: C901 + """Convert a v2 network dict to a v3 network dict. + + Args: + data: + The v2 network data. + + Returns: + The v3 network data. + """ + assert data.get("version", 0) == 2, data["version"] + + # The name of min_voltage, max_voltage and max_voltage_level has changed so they are not usable anymore. + old_buses = data.get("buses", []) + buses = [] + bus_warning_emitted: bool = False + for bus_data in old_buses: + for key in ("min_voltage", "max_voltage"): + if bus_data.pop(key, None) is not None and not bus_warning_emitted: + warnings.warn( + "Starting with version 0.11.0 of roseau-load-flow (JSON file v3), `min_voltage` and " + "`max_voltage` are replaced with `min_voltage_level`, `max_voltage_level` and `nominal_voltage`. " + "The found values of `min_voltage` or `max_voltage` are dropped.", + stacklevel=find_stack_level(), + ) + bus_warning_emitted = True + buses.append(bus_data) + + # Remove `max_power` + # Rename `type` to `vg` + old_transformers_params = data.get("transformers_params", []) + transformers_params = [] + transformers_params_max_loading = {} + for transformer_param_data in old_transformers_params: + vg = transformer_param_data.pop("type") + if vg == "single": + vg = "Ii0" + elif vg == "center": + vg = "Iii0" + transformer_param_data["vg"] = vg + if (max_power := transformer_param_data.pop("max_power", None)) is not None: + loading = max_power / transformer_param_data["sn"] + else: + loading = 1 + transformers_params_max_loading[transformer_param_data["id"]] = loading + transformers_params.append(transformer_param_data) + + # Rename `maximal_current` in `ampacities` and uses array + # Rename `section` in `sections` and uses array + # Rename `insulator_type` in `insulators` and uses array. `Unknown` is deleted + # Rename `material` in `materials` and uses array + old_lines_params = data.get("lines_params", []) + lines_params = [] + for line_param_data in old_lines_params: + size = len(line_param_data["z_line"][0]) + if (maximal_current := line_param_data.pop("max_current", None)) is not None: + line_param_data["ampacities"] = [maximal_current] * size + if (section := line_param_data.pop("section", None)) is not None: + line_param_data["sections"] = [section] * size + if (conductor_type := line_param_data.pop("conductor_type", None)) is not None: + line_param_data["materials"] = [conductor_type] * size + if ( + (insulator_type := line_param_data.pop("insulator_type", None)) is not None + ) and insulator_type.lower() != "unknown": + line_param_data["insulators"] = [insulator_type] * size + lines_params.append(line_param_data) + + # Add max_loading to lines + old_lines = data.get("lines", []) + lines = [] + for line_data in old_lines: + line_data["max_loading"] = 1 + lines.append(line_data) + + # Add max_loading to transformers + old_transformers = data.get("transformers", []) + transformers = [] + for transformer_data in old_transformers: + transformer_data["max_loading"] = transformers_params_max_loading[transformer_data["params_id"]] + transformers.append(transformer_data) + + results = { + "version": 3, + "is_multiphase": data["is_multiphase"], # Unchanged + "grounds": data["grounds"], # Unchanged + "potential_refs": data["potential_refs"], # Unchanged + "buses": buses, # <---- Changed + "lines": lines, # <---- Changed + "switches": data["switches"], # Unchanged + "transformers": transformers, # <---- Changed + "loads": data["loads"], # Unchanged + "sources": data["sources"], # Unchanged + "lines_params": lines_params, # <---- Changed + "transformers_params": transformers_params, # <---- Changed + } + if "short_circuits" in data: + results["short_circuits"] = data["short_circuits"] # Unchanged + + return results diff --git a/roseau/load_flow/io/tests/data/README.md b/roseau/load_flow/io/tests/data/README.md new file mode 100644 index 00000000..02c5d9d7 --- /dev/null +++ b/roseau/load_flow/io/tests/data/README.md @@ -0,0 +1,13 @@ +# Versioned network JSON files for testing + +## JSON files + +**DO NOT MODIFY** the JSON files in this directory if the tests fail. Adapt the converter functions +in the `roseau.load_flow.io.dict` module instead. + +## Generator scripts + +Scripts in the _generators_ directory are used to generate the versioned network JSON files. They +are executed using old versions of rlf. + +**DO NOT UPGRADE** these scripts when modifying rlf. diff --git a/roseau/load_flow/io/tests/data/generators/v0.py b/roseau/load_flow/io/tests/data/generators/v0.py new file mode 100644 index 00000000..0db717e2 --- /dev/null +++ b/roseau/load_flow/io/tests/data/generators/v0.py @@ -0,0 +1,466 @@ +"""This script generates a version 0 JSON file. + +Run with roseau-load-flow==0.2.1, NOT WITH THE CURRENT VERSION:: + + uv run --no-project --script roseau/load_flow/io/tests/data/generators/v0.py +""" + +# Script metadata generated by `uv` +# /// script +# requires-python = ">=3.10,<3.12" +# dependencies = [ +# "roseau-load-flow==0.2.1", +# ] +# /// +from pathlib import Path + +from shapely.geometry import Point + +import roseau.load_flow as rlf + +try: + # Version 0 does not have NETWORK_JSON_VERSION + from roseau.load_flow.io.dict import NETWORK_JSON_VERSION +except ImportError: + NETWORK_JSON_VERSION = 0 +else: + raise ValueError( + f"This script is meant to generate version 0 JSON files, current version: {NETWORK_JSON_VERSION}" + f"\nExecute with `uv run --no-project --script roseau/load_flow/io/tests/data/generators/v0.py`" + ) + +OUTPUT = Path(__file__).parent.parent / f"network_json_v{NETWORK_JSON_VERSION}.json" + +# Buses +buses = { + 1: rlf.VoltageSource( + id=1, + n=4, + ground=None, + source_voltages=[ + 11547.005383792515 + 0.0j, + -5773.502691896258 + -10000.000000179687j, + -5773.502691896258 + 10000.000000179687j, + ], + geometry=Point(0.0, 0.0), + ), + 2: rlf.Bus(id=2, n=3, geometry=Point(0.0, 1.0)), + 3: rlf.Bus(id=3, n=4, geometry=Point(0.0, 1.0)), + 4: rlf.Bus(id=4, n=4, geometry=Point(0.0, 1.0)), + 5: rlf.Bus(id=5, n=4, geometry=Point(0.0, 1.0)), + 6: rlf.Bus(id=6, n=3, geometry=Point(0.0, 1.0)), + 7: rlf.Bus(id=7, n=4, geometry=Point(0.0, 1.0)), + 8: rlf.Bus(id=8, n=3, geometry=Point(0.0, 1.0)), + 9: rlf.Bus(id=9, n=4, geometry=Point(0.0, 1.0)), + 10: rlf.Bus(id=10, n=4, geometry=Point(0.0, 1.0)), + 11: rlf.Bus(id=11, n=4, geometry=Point(0.0, 1.0)), + 12: rlf.Bus(id=12, n=3, geometry=Point(0.0, 1.0)), + 13: rlf.Bus(id=13, n=4, geometry=Point(0.0, 1.0)), +} + +# Grounds and potential references +ground = rlf.Ground() +for bus_id in (1, 3, 4, 5, 7, 9, 10, 11, 13): + ground.connect(buses[bus_id]) +potential_refs = [ + rlf.PotentialRef(element=ground), + rlf.PotentialRef(element=buses[2]), + rlf.PotentialRef(element=buses[6]), + rlf.PotentialRef(element=buses[8]), + rlf.PotentialRef(element=buses[12]), +] + +# Loads +loads = [ + rlf.PowerLoad( + id=1, + bus=buses[2], + n=4, + s=[ + 41916.482229647016 + 20958.241114823508j, + 41916.482230776804 + 20958.2411153884j, + 41916.4822307768 + 20958.241115388402j, + ], + ), + rlf.PowerLoad( + id=2, + bus=buses[3], + n=4, + s=[ + 40459.7989783205 + 20229.89948916025j, + 40459.79897941102 + 20229.89948970551j, + 40459.79897941102 + 20229.89948970551j, + ], + ), + rlf.PowerLoad( + id=3, + bus=buses[4], + n=4, + s=[ + 37922.04164877094 + 18961.020824385465j, + 37922.04164985974 + 18961.020824929874j, + 37922.04164980375 + 18961.02082490188j, + ], + ), + rlf.PowerLoad( + id=4, + bus=buses[5], + n=4, + s=[ + 40459.798978684 + 20229.899489342002j, + 40459.79897977451 + 20229.89948988726j, + 40459.798978684004 + 20229.899489342002j, + ], + ), + rlf.PowerLoad( + id=5, + bus=buses[6], + n=4, + s=[ + 41916.48223002361 + 20958.24111501181j, + 41916.4822311534 + 20958.241115576697j, + 41916.48223002363 + 20958.241115011813j, + ], + ), + rlf.PowerLoad( + id=6, + bus=buses[7], + n=4, + s=[ + 40932.79932474136 + 20466.399662370677j, + 40932.79932583017 + 20466.39966291509j, + 40932.79932479737 + 20466.39966239868j, + ], + ), + rlf.PowerLoad( + id=7, + bus=buses[8], + n=4, + s=[ + 41916.482229647016 + 20958.241114823508j, + 41916.482230776804 + 20958.241115388402j, + 41916.4822307768 + 20958.241115388402j, + ], + ), + rlf.PowerLoad( + id=8, + bus=buses[9], + n=4, + s=[ + 40459.79897832049 + 20229.899489160252j, + 40459.79897941102 + 20229.89948970551j, + 40459.79897941101 + 20229.899489705513j, + ], + ), + rlf.PowerLoad( + id=9, + bus=buses[10], + n=4, + s=[ + 37922.04164877094 + 18961.020824385465j, + 37922.04164985973 + 18961.020824929878j, + 37922.04164980376 + 18961.02082490188j, + ], + ), + rlf.PowerLoad( + id=10, + bus=buses[11], + n=4, + s=[ + 40459.798978684 + 20229.899489342002j, + 40459.79897977452 + 20229.899489887266j, + 40459.798978684004 + 20229.899489342002j, + ], + ), + rlf.PowerLoad( + id=11, + bus=buses[12], + n=4, + s=[ + 41916.48223002361 + 20958.24111501181j, + 41916.4822311534 + 20958.241115576693j, + 41916.48223002362 + 20958.241115011817j, + ], + ), + rlf.PowerLoad( + id=12, + bus=buses[13], + n=4, + s=[ + 40932.79932474137 + 20466.399662370684j, + 40932.79932583017 + 20466.399662915086j, + 40932.799324797365 + 20466.399662398682j, + ], + ), +] + +# Transformers +tc = { + "160kVA_Dd0": rlf.TransformerCharacteristics( + type_name="160kVA_Dd0", + windings="dd0", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dd6": rlf.TransformerCharacteristics( + type_name="160kVA_Dd6", + windings="dd6", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dyn11": rlf.TransformerCharacteristics( + type_name="160kVA_Dyn11", + windings="dyn11", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dyn5": rlf.TransformerCharacteristics( + type_name="160kVA_Dyn5", + windings="dyn5", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dzn0": rlf.TransformerCharacteristics( + type_name="160kVA_Dzn0", + windings="dzn0", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dzn6": rlf.TransformerCharacteristics( + type_name="160kVA_Dzn6", + windings="dzn6", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yd11": rlf.TransformerCharacteristics( + type_name="160kVA_Yd11", + windings="yd11", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yd5": rlf.TransformerCharacteristics( + type_name="160kVA_Yd5", + windings="yd5", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yyn0": rlf.TransformerCharacteristics( + type_name="160kVA_Yyn0", + windings="yyn0", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yyn6": rlf.TransformerCharacteristics( + type_name="160kVA_Yyn6", + windings="yyn6", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yzn11": rlf.TransformerCharacteristics( + type_name="160kVA_Yzn11", + windings="yzn11", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yzn5": rlf.TransformerCharacteristics( + type_name="160kVA_Yzn5", + windings="yzn5", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), +} +p = Point(0.0, 0.5) +transformers = [ + rlf.DeltaDeltaTransformer( + id="tr1", + bus1=buses[1], + bus2=buses[2], + phases1="abc", + phases2="abc", + transformer_characteristics=tc["160kVA_Dd0"], + tap=1, + geometry=p, + ), + rlf.WyeWyeTransformer( + id="tr2", + bus1=buses[1], + bus2=buses[3], + phases1="abcn", + phases2="abcn", + transformer_characteristics=tc["160kVA_Yyn0"], + tap=1, + geometry=p, + ), + rlf.DeltaZigzagTransformer( + id="tr3", + bus1=buses[1], + bus2=buses[4], + phases1="abc", + phases2="abcn", + transformer_characteristics=tc["160kVA_Dzn0"], + tap=1, + geometry=p, + ), + rlf.DeltaWyeTransformer( + id="tr4", + bus1=buses[1], + bus2=buses[5], + phases1="abc", + phases2="abcn", + transformer_characteristics=tc["160kVA_Dyn11"], + tap=1, + geometry=p, + ), + rlf.WyeDeltaTransformer( + id="tr5", + bus1=buses[1], + bus2=buses[6], + phases1="abcn", + phases2="abc", + transformer_characteristics=tc["160kVA_Yd11"], + tap=1, + geometry=p, + ), + rlf.WyeZigzagTransformer( + id="tr6", + bus1=buses[1], + bus2=buses[7], + phases1="abcn", + phases2="abcn", + transformer_characteristics=tc["160kVA_Yzn11"], + tap=1, + geometry=p, + ), + rlf.DeltaDeltaTransformer( + id="tr7", + bus1=buses[1], + bus2=buses[8], + phases1="abc", + phases2="abc", + transformer_characteristics=tc["160kVA_Dd6"], + tap=1, + geometry=p, + ), + rlf.WyeWyeTransformer( + id="tr8", + bus1=buses[1], + bus2=buses[9], + phases1="abcn", + phases2="abcn", + transformer_characteristics=tc["160kVA_Yyn6"], + tap=1, + geometry=p, + ), + rlf.DeltaZigzagTransformer( + id="tr9", + bus1=buses[1], + bus2=buses[10], + phases1="abc", + phases2="abcn", + transformer_characteristics=tc["160kVA_Dzn6"], + tap=1, + geometry=p, + ), + rlf.DeltaWyeTransformer( + id="tr10", + bus1=buses[1], + bus2=buses[11], + phases1="abc", + phases2="abcn", + transformer_characteristics=tc["160kVA_Dyn5"], + tap=1, + geometry=p, + ), + rlf.WyeDeltaTransformer( + id="tr11", + bus1=buses[1], + bus2=buses[12], + phases1="abcn", + phases2="abc", + transformer_characteristics=tc["160kVA_Yd5"], + tap=1, + geometry=p, + ), + rlf.WyeZigzagTransformer( + id="tr12", + bus1=buses[1], + bus2=buses[13], + phases1="abcn", + phases2="abcn", + transformer_characteristics=tc["160kVA_Yzn5"], + tap=1, + geometry=p, + ), +] + +en = rlf.ElectricalNetwork( + buses=buses, + branches=transformers, + loads=loads, + special_elements=[ground, *potential_refs], +) + +# The first file we had stored the geometry as a WKT string +Point.__geo_interface__ = Point.wkt + +en.to_json(OUTPUT) diff --git a/roseau/load_flow/io/tests/data/generators/v1.py b/roseau/load_flow/io/tests/data/generators/v1.py new file mode 100644 index 00000000..640b8575 --- /dev/null +++ b/roseau/load_flow/io/tests/data/generators/v1.py @@ -0,0 +1,121 @@ +"""This script generates a version 1 JSON file. + +Run with roseau-load-flow==0.9.1, NOT WITH THE CURRENT VERSION:: + + uv run --no-project --script roseau/load_flow/io/tests/data/generators/v1.py +""" + +# Script metadata generated by `uv` +# /// script +# requires-python = ">=3.10,<3.12" +# dependencies = [ +# "roseau-load-flow==0.9.1", +# ] +# /// +import cmath +from pathlib import Path + +import numpy as np +from shapely import LineString, Point + +import roseau.load_flow as rlf +from roseau.load_flow.io.dict import NETWORK_JSON_VERSION + +if NETWORK_JSON_VERSION != 1: + raise ValueError( + f"This script is meant to generate version 1 JSON files, current version: {NETWORK_JSON_VERSION}" + f"\nExecute with `uv run --no-project --script roseau/load_flow/io/tests/data/generators/v1.py`" + ) + +OUTPUT = Path(__file__).parent.parent / f"network_json_v{NETWORK_JSON_VERSION}.json" + +bus1 = rlf.Bus(id=1, phases="abc", geometry=Point(0.0, 0.0), min_voltage=19e3, max_voltage=21e3) +bus2 = rlf.Bus(id=2, phases="abc", geometry=Point(0.0, 1.0), min_voltage=19e3, max_voltage=21e3) +bus3 = rlf.Bus(id=3, phases="abcn", geometry=Point(0.0, 1.0), min_voltage=207, max_voltage=253) +bus4 = rlf.Bus(id=4, phases="abcn", geometry=Point(0.0, 2.0), min_voltage=207, max_voltage=253) +bus5 = rlf.Bus(id=5, phases="abcn", geometry=Point(0.0, 2.0), min_voltage=207, max_voltage=253) +bus6 = rlf.Bus(id=6, phases="bc", geometry=Point(0.0, 3.0), min_voltage=207, max_voltage=253) +bus7 = rlf.Bus(id=7, phases="abn", geometry=Point(0.0, 3.0), min_voltage=207, max_voltage=253) + +ground = rlf.Ground(id="gnd") +ground.connect(bus3, phase="n") +ground.connect(bus5, phase="n") +potential_ref = rlf.PotentialRef(id="pref", element=ground) + +vs = rlf.VoltageSource(id=1, bus=bus1, voltages=20e3 * np.exp([0, -2j * np.pi / 3, 2j * np.pi / 3]), phases="abc") +fp = rlf.FlexibleParameter( + control_p=rlf.Control.p_max_u_consumption(u_min=18e3, u_down=19e3), + control_q=rlf.Control.constant(), + projection=rlf.Projection(type="euclidean"), + s_max=45e3, +) +power = cmath.rect(40e3, np.acos(0.95)) +rlf.PowerLoad(id=1, bus=bus2, phases="abc", powers=[power, power, power], flexible_params=[fp, fp, fp]) +rlf.PowerLoad( + id=2, + bus=bus2, + phases="abc", + powers=[ + 40459.7989783205 + 20229.89948916025j, + 40459.79897941102 + 20229.89948970551j, + 40459.79897941102 + 20229.89948970551j, + ], +) + + +lp_mv = rlf.LineParameters( + id=1, + z_line=0.35 * np.eye(3, dtype=complex), + y_shunt=1e-6j * np.eye(3, dtype=complex), + line_type=rlf.LineType.UNDERGROUND, + conductor_type=rlf.ConductorType.AL, + insulator_type=rlf.InsulatorType.PVC, + section=rlf.Q_(240, "mm^2"), + max_current=250, +) +lp_lv = rlf.LineParameters( + id=2, + z_line=0.35 * np.eye(4, dtype=complex), + line_type=rlf.LineType.OVERHEAD, + conductor_type=rlf.ConductorType.CU, + insulator_type=None, + section=rlf.Q_(150, "mm^2"), + max_current=160, +) +rlf.Line( + id=1, bus1=bus1, bus2=bus2, parameters=lp_mv, length=10.0, geometry=LineString([(0, 0), (1, 0)]), ground=ground +) +rlf.Line(id=2, bus1=bus3, bus2=bus4, parameters=lp_lv, length=1.0, geometry=LineString([(0, 1), (0, 2)])) + +tp = rlf.TransformerParameters.from_catalogue("SE_Minera_AA0Ak_160kVA") +tp.max_power = 200e3 +rlf.Transformer(id=3, bus1=bus2, bus2=bus3, parameters=tp, geometry=Point(0.0, 1.0), tap=1.025) +tp_single = rlf.TransformerParameters( + id="2", type="single", uhv=400, ulv=400, sn=10e3, z2=0.05, ym=0.01 + 0.02j, max_power=10e3 +) +rlf.Transformer(id=4, bus1=bus4, bus2=bus5, parameters=tp_single, geometry=Point(0.0, 2.0), phases1="bc", phases2="bc") +tp_center = rlf.TransformerParameters( + id="3", type="center", uhv=400, ulv=400, sn=10e3, z2=0.05, ym=0.01 + 0.02j, max_power=10e3 +) +rlf.Transformer(id=5, bus1=bus4, bus2=bus5, parameters=tp_center, geometry=Point(0.0, 2.0), phases1="ab", phases2="abn") + +lp_lv_2_cond = rlf.LineParameters(id=3, z_line=0.35 * np.eye(2, dtype=complex)) +lp_lv_3_cond = rlf.LineParameters(id=4, z_line=0.35 * np.eye(3, dtype=complex)) +rlf.Line( + id=6, bus1=bus5, bus2=bus6, phases="bc", parameters=lp_lv_2_cond, length=1.0, geometry=LineString([(0, 2), (0, 3)]) +) +rlf.Line( + id=7, bus1=bus5, bus2=bus7, phases="abn", parameters=lp_lv_3_cond, length=1.0, geometry=LineString([(0, 2), (0, 3)]) +) +rlf.PowerLoad(id=3, bus=bus6, phases="bc", powers=[1000 + 200j]) +rlf.CurrentLoad(id=4, bus=bus7, phases="abn", currents=[2 + 1j, 0.5 + 0.1j]) +rlf.ImpedanceLoad(id=5, bus=bus7, phases="abn", impedances=[100 + 200j, 300 + 4000j]) + +en = rlf.ElectricalNetwork.from_element(bus1) +en.solve_load_flow() + +# Bug in PowerLoad.res_flexible_powers with include_results=True +assert en.loads[1].flexible_params is not None +en.loads[1]._res_flexible_powers = en.loads[1].res_powers.m + +en.to_json(OUTPUT, include_results=True) diff --git a/roseau/load_flow/io/tests/data/generators/v2.py b/roseau/load_flow/io/tests/data/generators/v2.py new file mode 100644 index 00000000..8f74ba28 --- /dev/null +++ b/roseau/load_flow/io/tests/data/generators/v2.py @@ -0,0 +1,137 @@ +"""This script generates a version 2 JSON file. + +Run with roseau-load-flow==0.10.0, NOT WITH THE CURRENT VERSION:: + + uv run --no-project --script roseau/load_flow/io/tests/data/generators/v2.py +""" + +# Script metadata generated by `uv` +# /// script +# requires-python = ">=3.10,<3.13" +# dependencies = [ +# "roseau-load-flow==0.10.0", +# ] +# /// +import cmath +from pathlib import Path + +import numpy as np +from shapely import LineString, Point + +import roseau.load_flow as rlf +from roseau.load_flow.io.dict import NETWORK_JSON_VERSION + +if NETWORK_JSON_VERSION != 2: + raise ValueError( + f"This script is meant to generate version 2 JSON files, current version: {NETWORK_JSON_VERSION}" + f"\nExecute with `uv run --no-project --script roseau/load_flow/io/tests/data/generators/v2.py`" + ) + +OUTPUT = Path(__file__).parent.parent / f"network_json_v{NETWORK_JSON_VERSION}.json" + +bus1 = rlf.Bus(id=1, phases="abc", geometry=Point(0.0, 0.0), min_voltage=19e3, max_voltage=21e3) +bus2 = rlf.Bus(id=2, phases="abc", geometry=Point(0.0, 1.0), min_voltage=19e3, max_voltage=21e3) +bus3 = rlf.Bus(id=3, phases="abcn", geometry=Point(0.0, 1.0), min_voltage=207, max_voltage=253) +bus4 = rlf.Bus(id=4, phases="abcn", geometry=Point(0.0, 2.0), min_voltage=207, max_voltage=253) +bus5 = rlf.Bus(id=5, phases="abcn", geometry=Point(0.0, 2.0), min_voltage=207, max_voltage=253) +bus6 = rlf.Bus(id=6, phases="bc", geometry=Point(0.0, 3.0), min_voltage=207, max_voltage=253) +bus7 = rlf.Bus(id=7, phases="abn", geometry=Point(0.0, 3.0), min_voltage=207, max_voltage=253) + +ground = rlf.Ground(id="gnd") +ground.connect(bus3, phase="n") +ground.connect(bus5, phase="n") +potential_ref = rlf.PotentialRef(id="pref", element=ground) + +vs = rlf.VoltageSource(id=1, bus=bus1, voltages=20e3 * np.exp([0, -2j * np.pi / 3, 2j * np.pi / 3]), phases="abc") +fp = rlf.FlexibleParameter( + control_p=rlf.Control.p_max_u_consumption(u_min=18e3, u_down=19e3), + control_q=rlf.Control.constant(), + projection=rlf.Projection(type="euclidean"), + s_max=45e3, +) +power = cmath.rect(40e3, np.acos(0.95)) +rlf.PowerLoad(id=1, bus=bus2, phases="abc", powers=[power, power, power], flexible_params=[fp, fp, fp]) +rlf.PowerLoad( + id=2, + bus=bus2, + phases="abc", + powers=[ + 40459.7989783205 + 20229.89948916025j, + 40459.79897941102 + 20229.89948970551j, + 40459.79897941102 + 20229.89948970551j, + ], +) + + +lp_mv = rlf.LineParameters( + id=1, + z_line=0.35 * np.eye(3, dtype=complex), + y_shunt=1e-6j * np.eye(3, dtype=complex), + line_type=rlf.LineType.UNDERGROUND, + conductor_type=rlf.ConductorType.AL, + insulator_type=rlf.InsulatorType.PVC, + section=rlf.Q_(240, "mm^2"), + max_current=250, +) +lp_lv = rlf.LineParameters( + id=2, + z_line=0.35 * np.eye(4, dtype=complex), + line_type=rlf.LineType.OVERHEAD, + conductor_type=rlf.ConductorType.CU, + insulator_type=None, + section=rlf.Q_(150, "mm^2"), + max_current=160, +) +rlf.Line( + id=1, bus1=bus1, bus2=bus2, parameters=lp_mv, length=10.0, geometry=LineString([(0, 0), (1, 0)]), ground=ground +) +rlf.Line(id=2, bus1=bus3, bus2=bus4, parameters=lp_lv, length=1.0, geometry=LineString([(0, 1), (0, 2)])) + +tp = rlf.TransformerParameters.from_catalogue("SE_Minera_AA0Ak_160kVA") +tp.max_power = 200e3 +rlf.Transformer(id=1, bus1=bus2, bus2=bus3, parameters=tp, geometry=Point(0.0, 1.0), tap=1.025) +tp_single = rlf.TransformerParameters( + id="2", + type="single", + uhv=400, + ulv=400, + sn=10e3, + z2=0.05, + ym=0.01 + 0.02j, + max_power=10e3, + manufacturer="roseau tech", + range="testing", + efficiency="good", +) +rlf.Transformer(id=2, bus1=bus4, bus2=bus5, parameters=tp_single, geometry=Point(0.0, 2.0), phases1="bc", phases2="bc") +tp_center = rlf.TransformerParameters( + id="3", + type="center", + uhv=400, + ulv=400, + sn=10e3, + z2=0.05, + ym=0.01 + 0.02j, + max_power=10e3, + manufacturer="roseau tech", + range="testing", + efficiency="good++", +) +rlf.Transformer(id=3, bus1=bus4, bus2=bus5, parameters=tp_center, geometry=Point(0.0, 2.0), phases1="ab", phases2="abn") + +lp_lv_2_cond = rlf.LineParameters(id=3, z_line=0.35 * np.eye(2, dtype=complex)) +lp_lv_3_cond = rlf.LineParameters(id=4, z_line=0.35 * np.eye(3, dtype=complex)) +rlf.Line( + id=3, bus1=bus5, bus2=bus6, phases="bc", parameters=lp_lv_2_cond, length=1.0, geometry=LineString([(0, 2), (0, 3)]) +) +rlf.Line( + id=4, bus1=bus5, bus2=bus7, phases="abn", parameters=lp_lv_3_cond, length=1.0, geometry=LineString([(0, 2), (0, 3)]) +) +rlf.PowerLoad(id=3, bus=bus6, phases="bc", powers=[1000 + 200j]) +rlf.CurrentLoad(id=4, bus=bus7, phases="abn", currents=[2 + 1j, 0.5 + 0.1j]) +rlf.ImpedanceLoad(id=5, bus=bus7, phases="abn", impedances=[100 + 200j, 300 + 4000j]) + +en = rlf.ElectricalNetwork.from_element(bus1) +en.solve_load_flow() + +en.to_json(OUTPUT, include_results=True) diff --git a/roseau/load_flow/io/tests/data/network_json_v0.json b/roseau/load_flow/io/tests/data/network_json_v0.json new file mode 100644 index 00000000..f5c42d58 --- /dev/null +++ b/roseau/load_flow/io/tests/data/network_json_v0.json @@ -0,0 +1,452 @@ +{ + "buses": [ + { + "id": 1, + "type": "slack", + "loads": [], + "voltages": { + "va": [11547.005383792515, 0.0], + "vb": [-5773.502691896258, -10000.000000179687], + "vc": [-5773.502691896258, 10000.000000179687] + }, + "geometry": "POINT (0 0)" + }, + { + "id": 2, + "type": "bus", + "loads": [ + { + "id": 1, + "function": "ys", + "powers": { + "sa": [41916.482229647016, 20958.241114823508], + "sb": [41916.482230776804, 20958.2411153884], + "sc": [41916.4822307768, 20958.241115388402] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 3, + "type": "bus_neutral", + "loads": [ + { + "id": 2, + "function": "ys_neutral", + "powers": { + "sa": [40459.7989783205, 20229.89948916025], + "sb": [40459.79897941102, 20229.89948970551], + "sc": [40459.79897941102, 20229.89948970551] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 4, + "type": "bus_neutral", + "loads": [ + { + "id": 3, + "function": "ys_neutral", + "powers": { + "sa": [37922.04164877094, 18961.020824385465], + "sb": [37922.04164985974, 18961.020824929874], + "sc": [37922.04164980375, 18961.02082490188] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 5, + "type": "bus_neutral", + "loads": [ + { + "id": 4, + "function": "ys_neutral", + "powers": { + "sa": [40459.798978684, 20229.899489342002], + "sb": [40459.79897977451, 20229.89948988726], + "sc": [40459.798978684004, 20229.899489342002] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 6, + "type": "bus", + "loads": [ + { + "id": 5, + "function": "ys", + "powers": { + "sa": [41916.48223002361, 20958.24111501181], + "sb": [41916.4822311534, 20958.241115576697], + "sc": [41916.48223002363, 20958.241115011813] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 7, + "type": "bus_neutral", + "loads": [ + { + "id": 6, + "function": "ys_neutral", + "powers": { + "sa": [40932.79932474136, 20466.399662370677], + "sb": [40932.79932583017, 20466.39966291509], + "sc": [40932.79932479737, 20466.39966239868] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 8, + "type": "bus", + "loads": [ + { + "id": 7, + "function": "ys", + "powers": { + "sa": [41916.482229647016, 20958.241114823508], + "sb": [41916.482230776804, 20958.241115388402], + "sc": [41916.4822307768, 20958.241115388402] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 9, + "type": "bus_neutral", + "loads": [ + { + "id": 8, + "function": "ys_neutral", + "powers": { + "sa": [40459.79897832049, 20229.899489160252], + "sb": [40459.79897941102, 20229.89948970551], + "sc": [40459.79897941101, 20229.899489705513] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 10, + "type": "bus_neutral", + "loads": [ + { + "id": 9, + "function": "ys_neutral", + "powers": { + "sa": [37922.04164877094, 18961.020824385465], + "sb": [37922.04164985973, 18961.020824929878], + "sc": [37922.04164980376, 18961.02082490188] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 11, + "type": "bus_neutral", + "loads": [ + { + "id": 10, + "function": "ys_neutral", + "powers": { + "sa": [40459.798978684, 20229.899489342002], + "sb": [40459.79897977452, 20229.899489887266], + "sc": [40459.798978684004, 20229.899489342002] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 12, + "type": "bus", + "loads": [ + { + "id": 11, + "function": "ys", + "powers": { + "sa": [41916.48223002361, 20958.24111501181], + "sb": [41916.4822311534, 20958.241115576693], + "sc": [41916.48223002362, 20958.241115011817] + } + } + ], + "geometry": "POINT (0 1)" + }, + { + "id": 13, + "type": "bus_neutral", + "loads": [ + { + "id": 12, + "function": "ys_neutral", + "powers": { + "sa": [40932.79932474137, 20466.399662370684], + "sb": [40932.79932583017, 20466.399662915086], + "sc": [40932.799324797365, 20466.399662398682] + } + } + ], + "geometry": "POINT (0 1)" + } + ], + "branches": [ + { + "id": "tr1", + "bus1": 1, + "bus2": 2, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Dd0", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr2", + "bus1": 1, + "bus2": 3, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Yyn0", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr3", + "bus1": 1, + "bus2": 4, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Dzn0", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr4", + "bus1": 1, + "bus2": 5, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Dyn11", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr5", + "bus1": 1, + "bus2": 6, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Yd11", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr6", + "bus1": 1, + "bus2": 7, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Yzn11", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr7", + "bus1": 1, + "bus2": 8, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Dd6", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr8", + "bus1": 1, + "bus2": 9, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Yyn6", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr9", + "bus1": 1, + "bus2": 10, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Dzn6", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr10", + "bus1": 1, + "bus2": 11, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Dyn5", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr11", + "bus1": 1, + "bus2": 12, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Yd5", + "tap": 1, + "type": "transformer" + }, + { + "id": "tr12", + "bus1": 1, + "bus2": 13, + "geometry": "POINT (0 0.5)", + "type_name": "160kVA_Yzn5", + "tap": 1, + "type": "transformer" + } + ], + "line_types": [], + "transformer_types": [ + { + "name": "160kVA_Dd0", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "dd0" + }, + { + "name": "160kVA_Dd6", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "dd6" + }, + { + "name": "160kVA_Dyn11", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "dyn11" + }, + { + "name": "160kVA_Dyn5", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "dyn5" + }, + { + "name": "160kVA_Dzn0", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "dzn0" + }, + { + "name": "160kVA_Dzn6", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "dzn6" + }, + { + "name": "160kVA_Yd11", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "yd11" + }, + { + "name": "160kVA_Yd5", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "yd5" + }, + { + "name": "160kVA_Yyn0", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "yyn0" + }, + { + "name": "160kVA_Yyn6", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "yyn6" + }, + { + "name": "160kVA_Yzn11", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "yzn11" + }, + { + "name": "160kVA_Yzn5", + "sn": 160000.0, + "uhv": 20000.0, + "ulv": 400.0, + "i0": 0.023, + "p0": 460.0, + "psc": 2350.0, + "vsc": 0.04, + "type": "yzn5" + } + ] +} diff --git a/roseau/load_flow/io/tests/data/network_json_v0.py b/roseau/load_flow/io/tests/data/network_json_v0.py new file mode 100644 index 00000000..19fc1c6e --- /dev/null +++ b/roseau/load_flow/io/tests/data/network_json_v0.py @@ -0,0 +1,436 @@ +from shapely import Point + +import roseau.load_flow as rlf + +# Buses +buses = { + 1: rlf.Bus(id=1, phases="abcn", geometry=Point(0.0, 0.0)), + 2: rlf.Bus(id=2, phases="abc", geometry=Point(0.0, 1.0)), + 3: rlf.Bus(id=3, phases="abcn", geometry=Point(0.0, 1.0)), + 4: rlf.Bus(id=4, phases="abcn", geometry=Point(0.0, 1.0)), + 5: rlf.Bus(id=5, phases="abcn", geometry=Point(0.0, 1.0)), + 6: rlf.Bus(id=6, phases="abc", geometry=Point(0.0, 1.0)), + 7: rlf.Bus(id=7, phases="abcn", geometry=Point(0.0, 1.0)), + 8: rlf.Bus(id=8, phases="abc", geometry=Point(0.0, 1.0)), + 9: rlf.Bus(id=9, phases="abcn", geometry=Point(0.0, 1.0)), + 10: rlf.Bus(id=10, phases="abcn", geometry=Point(0.0, 1.0)), + 11: rlf.Bus(id=11, phases="abcn", geometry=Point(0.0, 1.0)), + 12: rlf.Bus(id=12, phases="abc", geometry=Point(0.0, 1.0)), + 13: rlf.Bus(id=13, phases="abcn", geometry=Point(0.0, 1.0)), +} + +# Grounds and potential references +ground = rlf.Ground("ground") +for bus_id in (1, 3, 4, 5, 7, 9, 10, 11, 13): + ground.connect(buses[bus_id]) +potential_refs = [ + rlf.PotentialRef(id="pref", element=ground), + rlf.PotentialRef(id="tr12", element=buses[2]), + rlf.PotentialRef(id="tr56", element=buses[6]), + rlf.PotentialRef(id="tr78", element=buses[8]), + rlf.PotentialRef(id="tr1112", element=buses[12]), +] + +# Sources and loads +vs = rlf.VoltageSource( + id=1, + bus=buses[1], + voltages=[ + 11547.005383792515 + 0.0j, + -5773.502691896258 + -10000.000000179687j, + -5773.502691896258 + 10000.000000179687j, + ], + phases="abcn", +) +loads = [ + rlf.PowerLoad( + id=1, + bus=buses[2], + phases="abcn", + powers=[ + 41916.482229647016 + 20958.241114823508j, + 41916.482230776804 + 20958.2411153884j, + 41916.4822307768 + 20958.241115388402j, + ], + ), + rlf.PowerLoad( + id=2, + bus=buses[3], + phases="abcn", + powers=[ + 40459.7989783205 + 20229.89948916025j, + 40459.79897941102 + 20229.89948970551j, + 40459.79897941102 + 20229.89948970551j, + ], + ), + rlf.PowerLoad( + id=3, + bus=buses[4], + phases="abcn", + powers=[ + 37922.04164877094 + 18961.020824385465j, + 37922.04164985974 + 18961.020824929874j, + 37922.04164980375 + 18961.02082490188j, + ], + ), + rlf.PowerLoad( + id=4, + bus=buses[5], + phases="abcn", + powers=[ + 40459.798978684 + 20229.899489342002j, + 40459.79897977451 + 20229.89948988726j, + 40459.798978684004 + 20229.899489342002j, + ], + ), + rlf.PowerLoad( + id=5, + bus=buses[6], + phases="abcn", + powers=[ + 41916.48223002361 + 20958.24111501181j, + 41916.4822311534 + 20958.241115576697j, + 41916.48223002363 + 20958.241115011813j, + ], + ), + rlf.PowerLoad( + id=6, + bus=buses[7], + phases="abcn", + powers=[ + 40932.79932474136 + 20466.399662370677j, + 40932.79932583017 + 20466.39966291509j, + 40932.79932479737 + 20466.39966239868j, + ], + ), + rlf.PowerLoad( + id=7, + bus=buses[8], + phases="abcn", + powers=[ + 41916.482229647016 + 20958.241114823508j, + 41916.482230776804 + 20958.241115388402j, + 41916.4822307768 + 20958.241115388402j, + ], + ), + rlf.PowerLoad( + id=8, + bus=buses[9], + phases="abcn", + powers=[ + 40459.79897832049 + 20229.899489160252j, + 40459.79897941102 + 20229.89948970551j, + 40459.79897941101 + 20229.899489705513j, + ], + ), + rlf.PowerLoad( + id=9, + bus=buses[10], + phases="abcn", + powers=[ + 37922.04164877094 + 18961.020824385465j, + 37922.04164985973 + 18961.020824929878j, + 37922.04164980376 + 18961.02082490188j, + ], + ), + rlf.PowerLoad( + id=10, + bus=buses[11], + phases="abcn", + powers=[ + 40459.798978684 + 20229.899489342002j, + 40459.79897977452 + 20229.899489887266j, + 40459.798978684004 + 20229.899489342002j, + ], + ), + rlf.PowerLoad( + id=11, + bus=buses[12], + phases="abcn", + powers=[ + 41916.48223002361 + 20958.24111501181j, + 41916.4822311534 + 20958.241115576693j, + 41916.48223002362 + 20958.241115011817j, + ], + ), + rlf.PowerLoad( + id=12, + bus=buses[13], + phases="abcn", + powers=[ + 40932.79932474137 + 20466.399662370684j, + 40932.79932583017 + 20466.399662915086j, + 40932.799324797365 + 20466.399662398682j, + ], + ), +] + +# Transformers +tp = { + "160kVA_Dd0": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Dd0", + vg="dd0", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dd6": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Dd6", + vg="dd6", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dyn11": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Dyn11", + vg="dyn11", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dyn5": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Dyn5", + vg="dyn5", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dzn0": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Dzn0", + vg="dzn0", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Dzn6": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Dzn6", + vg="dzn6", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yd11": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Yd11", + vg="yd11", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yd5": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Yd5", + vg="yd5", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yyn0": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Yyn0", + vg="yyn0", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yyn6": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Yyn6", + vg="yyn6", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yzn11": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Yzn11", + vg="yzn11", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), + "160kVA_Yzn5": rlf.TransformerParameters.from_open_and_short_circuit_tests( + id="160kVA_Yzn5", + vg="yzn5", + sn=160000.0, + uhv=20000.0, + ulv=400.0, + i0=0.023, + p0=460.0, + psc=2350.0, + vsc=0.04, + ), +} +p = Point(0.0, 0.5) +transformers = [ + rlf.Transformer( + id="tr1", + bus1=buses[1], + bus2=buses[2], + phases1="abc", + phases2="abc", + parameters=tp["160kVA_Dd0"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr2", + bus1=buses[1], + bus2=buses[3], + phases1="abcn", + phases2="abcn", + parameters=tp["160kVA_Yyn0"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr3", + bus1=buses[1], + bus2=buses[4], + phases1="abc", + phases2="abcn", + parameters=tp["160kVA_Dzn0"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr4", + bus1=buses[1], + bus2=buses[5], + phases1="abc", + phases2="abcn", + parameters=tp["160kVA_Dyn11"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr5", + bus1=buses[1], + bus2=buses[6], + phases1="abcn", + phases2="abc", + parameters=tp["160kVA_Yd11"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr6", + bus1=buses[1], + bus2=buses[7], + phases1="abcn", + phases2="abcn", + parameters=tp["160kVA_Yzn11"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr7", + bus1=buses[1], + bus2=buses[8], + phases1="abc", + phases2="abc", + parameters=tp["160kVA_Dd6"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr8", + bus1=buses[1], + bus2=buses[9], + phases1="abcn", + phases2="abcn", + parameters=tp["160kVA_Yyn6"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr9", + bus1=buses[1], + bus2=buses[10], + phases1="abc", + phases2="abcn", + parameters=tp["160kVA_Dzn6"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr10", + bus1=buses[1], + bus2=buses[11], + phases1="abc", + phases2="abcn", + parameters=tp["160kVA_Dyn5"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr11", + bus1=buses[1], + bus2=buses[12], + phases1="abcn", + phases2="abc", + parameters=tp["160kVA_Yd5"], + tap=1, + geometry=p, + ), + rlf.Transformer( + id="tr12", + bus1=buses[1], + bus2=buses[13], + phases1="abcn", + phases2="abcn", + parameters=tp["160kVA_Yzn5"], + tap=1, + geometry=p, + ), +] + +en = rlf.ElectricalNetwork( + buses=buses, + lines=[], + transformers=transformers, + switches=[], + loads=loads, + sources=[vs], + grounds=[ground], + potential_refs=potential_refs, +) diff --git a/roseau/load_flow/io/tests/data/network_json_v1.json b/roseau/load_flow/io/tests/data/network_json_v1.json new file mode 100644 index 00000000..224d351b --- /dev/null +++ b/roseau/load_flow/io/tests/data/network_json_v1.json @@ -0,0 +1,627 @@ +{ + "version": 1, + "grounds": [ + { + "id": "gnd", + "buses": [ + { + "id": 3, + "phase": "n" + }, + { + "id": 5, + "phase": "n" + } + ], + "results": { + "potential": [0.0, 0.0] + } + } + ], + "potential_refs": [ + { + "id": "pref", + "ground": "gnd", + "results": { + "current": [-8.881784197001252e-16, 6.556977183436175e-13] + } + } + ], + "buses": [ + { + "id": 1, + "phases": "abc", + "geometry": { + "type": "Point", + "coordinates": [0.0, 0.0] + }, + "min_voltage": 19000.0, + "max_voltage": 21000.0, + "results": { + "potentials": [ + [10000.000000002889, -5773.502691896624], + [-9999.999999997111, -5773.502691896624], + [2.8848055359251603e-9, 11547.00538379215] + ] + } + }, + { + "id": 5, + "phases": "abcn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [178.53990652297716, 98.01308155630096], + [-178.62029648184554, -98.02888948768953], + [-173.10176674777532, 303.37964761055053], + [0.0, 0.0] + ] + } + }, + { + "id": 7, + "phases": "abn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 3.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [177.57971987964694, 97.84178319043295], + [-178.78556926267257, -98.07890216126165], + [1.125459424157262, 0.22131103944013428] + ] + } + }, + { + "id": 6, + "phases": "bc", + "geometry": { + "type": "Point", + "coordinates": [0.0, 3.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [-178.43390394553083, -97.15554902195422], + [-173.28815928409006, 302.50630714481525] + ] + } + }, + { + "id": 4, + "phases": "abcn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [236.29626929786735, -3.144010468821578], + [-120.9207132685627, -199.19464477654748], + [-115.37555602930465, 202.33865524536907], + [0.0, 0.0] + ] + } + }, + { + "id": 3, + "phases": "abcn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 1.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [236.5716312279474, 0.10332847536841476], + [-118.59114268514145, -204.7595068372243], + [-117.98048854280593, 204.6561783618559], + [0.0, 0.0] + ] + } + }, + { + "id": 2, + "phases": "abc", + "geometry": { + "type": "Point", + "coordinates": [0.0, 1.0] + }, + "min_voltage": 19000.0, + "max_voltage": 21000.0, + "results": { + "potentials": [ + [9985.05926003559, -5751.173645614685], + [-9973.510516153096, -5771.035488411508], + [-11.548743873832889, 11522.209134025094] + ] + } + } + ], + "branches": [ + { + "id": 1, + "type": "line", + "phases1": "abc", + "phases2": "abc", + "bus1": 1, + "bus2": 2, + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 0.0], + [1.0, 0.0] + ] + }, + "results": { + "currents1": [ + [4.2976503612585475, -6.329727509125632], + [-7.539556441973673, -0.7549152814617628], + [3.2419060807146662, 7.084642790587623] + ], + "currents2": [ + [-4.240026979571212, 6.429652805425803], + [7.597279132874974, 0.6550477288810725], + [-3.3572521533037523, -7.084700534307103] + ] + }, + "length": 10.0, + "params_id": 1, + "ground": "gnd" + }, + { + "id": 7, + "type": "line", + "phases1": "abn", + "phases2": "abn", + "bus1": 5, + "bus2": 7, + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 2.0], + [0.0, 3.0] + ] + }, + "results": { + "currents1": [ + [2.743390409514908, 0.4894239024800332], + [0.47220794522006926, 0.1428933530632191], + [-3.215598354735034, -0.6323172555432408] + ], + "currents2": [ + [-2.743390409514908, -0.4894239024800332], + [-0.47220794522006926, -0.1428933530632191], + [3.215598354735034, 0.6323172555432408] + ] + }, + "length": 1.0, + "params_id": 4 + }, + { + "id": 6, + "type": "line", + "phases1": "bc", + "phases2": "bc", + "bus1": 5, + "bus2": 6, + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 2.0], + [0.0, 3.0] + ] + }, + "results": { + "currents1": [ + [-0.5325501037563234, -2.495258473529459], + [0.5325501037564047, 2.4952584735293777] + ], + "currents2": [ + [0.5325501037563234, 2.495258473529459], + [-0.5325501037564047, -2.4952584735293777] + ] + }, + "length": 1.0, + "params_id": 3 + }, + { + "id": 5, + "type": "transformer", + "phases1": "ab", + "phases2": "abn", + "bus1": 4, + "bus2": 5, + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "results": { + "currents1": [ + [0.7867483716572168, 9.278111269114268], + [-0.7867483716572168, -9.278111269114268] + ], + "currents2": [ + [-2.7433904095149506, -0.48942390248002704], + [-0.4722079452200835, -0.1428933530632136], + [3.2155983547350337, 0.6323172555432406] + ] + }, + "tap": 1.0, + "params_id": "3" + }, + { + "id": 2, + "type": "line", + "phases1": "abcn", + "phases2": "abcn", + "bus1": 3, + "bus2": 4, + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 1.0], + [0.0, 2.0] + ] + }, + "results": { + "currents1": [ + [0.7867483716572516, 9.278111269114266], + [6.655915952632126, -15.899605887648088], + [-7.442664324289378, 6.621494618533786], + [0.0, 0.0] + ], + "currents2": [ + [-0.7867483716572516, -9.278111269114266], + [-6.655915952632126, 15.899605887648088], + [7.442664324289378, -6.621494618533786], + [-0.0, -0.0] + ] + }, + "length": 1.0, + "params_id": 2 + }, + { + "id": 4, + "type": "transformer", + "phases1": "bc", + "phases2": "bc", + "bus1": 4, + "bus2": 5, + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "results": { + "currents1": [ + [7.442664324289386, -6.621494618534029], + [-7.442664324289386, 6.621494618534029] + ], + "currents2": [ + [0.532550103756364, 2.4952584735297023], + [-0.532550103756364, -2.4952584735297023] + ] + }, + "tap": 1.0, + "params_id": "2" + }, + { + "id": 3, + "type": "transformer", + "phases1": "abc", + "phases2": "abcn", + "bus1": 2, + "bus2": 3, + "geometry": { + "type": "Point", + "coordinates": [0.0, 1.0] + }, + "results": { + "currents1": [ + [-0.2429410786685595, -0.5703595420346648], + [-0.2814982836285917, 0.29766984455899637], + [0.5244393622971513, 0.2726896974756685] + ], + "currents2": [ + [-0.7867483716570987, -9.278111269114644], + [-6.655915952633352, 15.899605887647411], + [7.4426643242904404, -6.621494618533509], + [1.0658141036401503e-14, 7.425171588693047e-13] + ] + }, + "tap": 1.025, + "params_id": "SE_Minera_AA0Ak_160kVA" + } + ], + "loads": [ + { + "id": 4, + "bus": 7, + "phases": "abn", + "currents": [ + [2.0, 1.0], + [0.5, 0.1] + ], + "results": { + "currents": [ + [2.0, 1.0], + [0.5, 0.1], + [-2.5, -1.1] + ] + } + }, + { + "id": 5, + "bus": 7, + "phases": "abn", + "impedances": [ + [100.0, 200.0], + [300.0, 4000.0] + ], + "results": { + "currents": [ + [0.7433904095149506, -0.5105760975199731], + [-0.027792054779916475, 0.04289335306321372], + [-0.7155983547350342, 0.4676827444567594] + ] + } + }, + { + "id": 3, + "bus": 6, + "phases": "bc", + "powers": [[1000.0, 200.0]], + "results": { + "currents": [ + [-0.5325501037563766, -2.4952584735294656], + [0.5325501037563766, 2.4952584735294656] + ] + } + }, + { + "id": 1, + "bus": 2, + "phases": "abc", + "powers": [ + [38000.0, 12489.9959967968], + [38000.0, 12489.9959967968], + [38000.0, 12489.9959967968] + ], + "results": { + "currents": [ + [2.316630772078475, -2.585342850824369], + [-3.3972879757172825, -0.713589666297376], + [1.0806572036388076, 3.2989325171217447] + ], + "powers": [ + [38000.45121136502, 12491.455729992955], + [38001.03864058266, 12488.87543118307], + [37998.51014805233, 12489.656829214382] + ] + }, + "flexible_params": [ + { + "control_p": { + "type": "p_max_u_consumption", + "u_min": 18000.0, + "u_down": 19000.0, + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "control_q": { + "type": "constant" + }, + "projection": { + "type": "euclidean", + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "s_max": 45000.0 + }, + { + "control_p": { + "type": "p_max_u_consumption", + "u_min": 18000.0, + "u_down": 19000.0, + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "control_q": { + "type": "constant" + }, + "projection": { + "type": "euclidean", + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "s_max": 45000.0 + }, + { + "control_p": { + "type": "p_max_u_consumption", + "u_min": 18000.0, + "u_down": 19000.0, + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "control_q": { + "type": "constant" + }, + "projection": { + "type": "euclidean", + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "s_max": 45000.0 + } + ] + }, + { + "id": 2, + "bus": 2, + "phases": "abc", + "powers": [ + [40459.7989783205, 20229.89948916025], + [40459.79897941102, 20229.89948970551], + [40459.79897941102, 20229.89948970551] + ], + "results": { + "currents": [ + [2.166337286161528, -3.273950412566573], + [-3.9184928735292957, -0.23912790714230758], + [1.7521555873677672, 3.513078319708881] + ] + } + } + ], + "sources": [ + { + "id": 1, + "bus": 1, + "phases": "abc", + "voltages": [ + [20000.0, 0.0], + [-9999.999999999996, -17320.508075688773], + [-9999.999999999996, 17320.508075688773] + ], + "results": { + "currents": [ + [-4.297650361259068, 6.3297275091254726], + [7.539556441973733, 0.754915281461497], + [-3.241906080714666, -7.08464279058697] + ] + } + } + ], + "lines_params": [ + { + "id": 1, + "z_line": [ + [ + [0.35, 0.0, 0.0], + [0.0, 0.35, 0.0], + [0.0, 0.0, 0.35] + ], + [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0] + ] + ], + "y_shunt": [ + [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0] + ], + [ + [1e-6, 0.0, 0.0], + [0.0, 1e-6, 0.0], + [0.0, 0.0, 1e-6] + ] + ], + "max_current": 250, + "line_type": "UNDERGROUND", + "conductor_type": "AL", + "insulator_type": "PVC", + "section": 240.0 + }, + { + "id": 2, + "z_line": [ + [ + [0.35, 0.0, 0.0, 0.0], + [0.0, 0.35, 0.0, 0.0], + [0.0, 0.0, 0.35, 0.0], + [0.0, 0.0, 0.0, 0.35] + ], + [ + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0] + ] + ], + "max_current": 160, + "line_type": "OVERHEAD", + "conductor_type": "CU", + "section": 150.0 + }, + { + "id": 3, + "z_line": [ + [ + [0.35, 0.0], + [0.0, 0.35] + ], + [ + [0.0, 0.0], + [0.0, 0.0] + ] + ] + }, + { + "id": 4, + "z_line": [ + [ + [0.35, 0.0, 0.0], + [0.0, 0.35, 0.0], + [0.0, 0.0, 0.35] + ], + [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0] + ] + ] + } + ], + "transformers_params": [ + { + "id": "2", + "sn": 10000.0, + "uhv": 400, + "ulv": 400, + "type": "single", + "z2": [0.05, 0.0], + "ym": [0.01, 0.02], + "max_power": 10000.0 + }, + { + "id": "3", + "sn": 10000.0, + "uhv": 400, + "ulv": 400, + "type": "center", + "z2": [0.05, 0.0], + "ym": [0.01, 0.02], + "max_power": 10000.0 + }, + { + "id": "SE_Minera_AA0Ak_160kVA", + "sn": 160000, + "uhv": 20000, + "ulv": 400, + "type": "Dyn11", + "z2": [0.010937500000000001, 0.038475590882402315], + "ym": [1.5749999999999997e-7, -1.9999379834134858e-5], + "i0": 0.15, + "p0": 189, + "psc": 1750, + "vsc": 0.04, + "max_power": 200000.0 + } + ] +} diff --git a/roseau/load_flow/io/tests/data/network_json_v2.json b/roseau/load_flow/io/tests/data/network_json_v2.json new file mode 100644 index 00000000..dae4f28a --- /dev/null +++ b/roseau/load_flow/io/tests/data/network_json_v2.json @@ -0,0 +1,669 @@ +{ + "version": 2, + "is_multiphase": true, + "grounds": [ + { + "id": "gnd", + "buses": [ + { + "id": 3, + "phase": "n" + }, + { + "id": 5, + "phase": "n" + } + ], + "results": { + "potential": [0.0, 0.0] + } + } + ], + "potential_refs": [ + { + "id": "pref", + "ground": "gnd", + "results": { + "current": [-8.881784197001252e-16, 6.556977183436175e-13] + } + } + ], + "buses": [ + { + "id": 1, + "phases": "abc", + "geometry": { + "type": "Point", + "coordinates": [0.0, 0.0] + }, + "min_voltage": 19000.0, + "max_voltage": 21000.0, + "results": { + "potentials": [ + [10000.000000002889, -5773.502691896624], + [-9999.999999997111, -5773.502691896624], + [2.8848055359251603e-9, 11547.00538379215] + ] + } + }, + { + "id": 5, + "phases": "abcn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [178.53990652297716, 98.01308155630096], + [-178.62029648184554, -98.02888948768953], + [-173.10176674777532, 303.37964761055053], + [0.0, 0.0] + ] + } + }, + { + "id": 7, + "phases": "abn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 3.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [177.57971987964694, 97.84178319043295], + [-178.78556926267257, -98.07890216126165], + [1.125459424157262, 0.22131103944013428] + ] + } + }, + { + "id": 6, + "phases": "bc", + "geometry": { + "type": "Point", + "coordinates": [0.0, 3.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [-178.43390394553083, -97.15554902195422], + [-173.28815928409006, 302.50630714481525] + ] + } + }, + { + "id": 4, + "phases": "abcn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [236.29626929786735, -3.144010468821578], + [-120.9207132685627, -199.19464477654748], + [-115.37555602930465, 202.33865524536907], + [0.0, 0.0] + ] + } + }, + { + "id": 3, + "phases": "abcn", + "geometry": { + "type": "Point", + "coordinates": [0.0, 1.0] + }, + "min_voltage": 207, + "max_voltage": 253, + "results": { + "potentials": [ + [236.5716312279474, 0.10332847536841476], + [-118.59114268514145, -204.7595068372243], + [-117.98048854280593, 204.6561783618559], + [0.0, 0.0] + ] + } + }, + { + "id": 2, + "phases": "abc", + "geometry": { + "type": "Point", + "coordinates": [0.0, 1.0] + }, + "min_voltage": 19000.0, + "max_voltage": 21000.0, + "results": { + "potentials": [ + [9985.05926003559, -5751.173645614685], + [-9973.510516153096, -5771.035488411508], + [-11.548743873832889, 11522.209134025094] + ] + } + } + ], + "lines": [ + { + "id": 1, + "phases": "abc", + "bus1": 1, + "bus2": 2, + "length": 10.0, + "params_id": 1, + "ground": "gnd", + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 0.0], + [1.0, 0.0] + ] + }, + "results": { + "currents1": [ + [4.2976503612585475, -6.329727509125632], + [-7.539556441973673, -0.7549152814617628], + [3.2419060807146662, 7.084642790587623] + ], + "currents2": [ + [-4.240026979571212, 6.429652805425803], + [7.597279132874974, 0.6550477288810725], + [-3.3572521533037523, -7.084700534307103] + ] + } + }, + { + "id": 4, + "phases": "abn", + "bus1": 5, + "bus2": 7, + "length": 1.0, + "params_id": 4, + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 2.0], + [0.0, 3.0] + ] + }, + "results": { + "currents1": [ + [2.743390409514908, 0.4894239024800332], + [0.47220794522006926, 0.1428933530632191], + [-3.215598354735034, -0.6323172555432408] + ], + "currents2": [ + [-2.743390409514908, -0.4894239024800332], + [-0.47220794522006926, -0.1428933530632191], + [3.215598354735034, 0.6323172555432408] + ] + } + }, + { + "id": 3, + "phases": "bc", + "bus1": 5, + "bus2": 6, + "length": 1.0, + "params_id": 3, + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 2.0], + [0.0, 3.0] + ] + }, + "results": { + "currents1": [ + [-0.5325501037563234, -2.495258473529459], + [0.5325501037564047, 2.4952584735293777] + ], + "currents2": [ + [0.5325501037563234, 2.495258473529459], + [-0.5325501037564047, -2.4952584735293777] + ] + } + }, + { + "id": 2, + "phases": "abcn", + "bus1": 3, + "bus2": 4, + "length": 1.0, + "params_id": 2, + "geometry": { + "type": "LineString", + "coordinates": [ + [0.0, 1.0], + [0.0, 2.0] + ] + }, + "results": { + "currents1": [ + [0.7867483716572516, 9.278111269114266], + [6.655915952632126, -15.899605887648088], + [-7.442664324289378, 6.621494618533786], + [0.0, 0.0] + ], + "currents2": [ + [-0.7867483716572516, -9.278111269114266], + [-6.655915952632126, 15.899605887648088], + [7.442664324289378, -6.621494618533786], + [-0.0, -0.0] + ] + } + } + ], + "transformers": [ + { + "id": 3, + "phases1": "ab", + "phases2": "abn", + "bus1": 4, + "bus2": 5, + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "results": { + "currents1": [ + [0.7867483716572168, 9.278111269114268], + [-0.7867483716572168, -9.278111269114268] + ], + "currents2": [ + [-2.7433904095149506, -0.48942390248002704], + [-0.4722079452200835, -0.1428933530632136], + [3.2155983547350337, 0.6323172555432406] + ] + }, + "tap": 1.0, + "params_id": "3" + }, + { + "id": 2, + "phases1": "bc", + "phases2": "bc", + "bus1": 4, + "bus2": 5, + "geometry": { + "type": "Point", + "coordinates": [0.0, 2.0] + }, + "results": { + "currents1": [ + [7.442664324289386, -6.621494618534029], + [-7.442664324289386, 6.621494618534029] + ], + "currents2": [ + [0.532550103756364, 2.4952584735297023], + [-0.532550103756364, -2.4952584735297023] + ] + }, + "tap": 1.0, + "params_id": "2" + }, + { + "id": 1, + "phases1": "abc", + "phases2": "abcn", + "bus1": 2, + "bus2": 3, + "geometry": { + "type": "Point", + "coordinates": [0.0, 1.0] + }, + "results": { + "currents1": [ + [-0.2429410786685595, -0.5703595420346648], + [-0.2814982836285917, 0.29766984455899637], + [0.5244393622971513, 0.2726896974756685] + ], + "currents2": [ + [-0.7867483716570987, -9.278111269114644], + [-6.655915952633352, 15.899605887647411], + [7.4426643242904404, -6.621494618533509], + [1.0658141036401503e-14, 7.425171588693047e-13] + ] + }, + "tap": 1.025, + "params_id": "SE_Minera_AA0Ak_160kVA" + } + ], + "switches": [], + "loads": [ + { + "id": 4, + "bus": 7, + "phases": "abn", + "type": "current", + "currents": [ + [2.0, 1.0], + [0.5, 0.1] + ], + "connect_neutral": null, + "results": { + "currents": [ + [2.0, 1.0], + [0.5, 0.1], + [-2.5, -1.1] + ], + "potentials": [ + [177.57971987964694, 97.84178319043295], + [-178.78556926267257, -98.07890216126165], + [1.125459424157262, 0.22131103944013428] + ] + } + }, + { + "id": 5, + "bus": 7, + "phases": "abn", + "type": "impedance", + "impedances": [ + [100.0, 200.0], + [300.0, 4000.0] + ], + "connect_neutral": null, + "results": { + "currents": [ + [0.7433904095149506, -0.5105760975199731], + [-0.027792054779916475, 0.04289335306321372], + [-0.7155983547350342, 0.4676827444567594] + ], + "potentials": [ + [177.57971987964694, 97.84178319043295], + [-178.78556926267257, -98.07890216126165], + [1.125459424157262, 0.22131103944013428] + ] + } + }, + { + "id": 3, + "bus": 6, + "phases": "bc", + "type": "power", + "powers": [[1000.0, 200.0]], + "connect_neutral": null, + "results": { + "currents": [ + [-0.5325501037563766, -2.4952584735294656], + [0.5325501037563766, 2.4952584735294656] + ], + "potentials": [ + [-178.43390394553083, -97.15554902195422], + [-173.28815928409006, 302.50630714481525] + ] + } + }, + { + "id": 1, + "bus": 2, + "phases": "abc", + "type": "power", + "powers": [ + [38000.0, 12489.9959967968], + [38000.0, 12489.9959967968], + [38000.0, 12489.9959967968] + ], + "connect_neutral": null, + "results": { + "currents": [ + [2.316630772078475, -2.585342850824369], + [-3.3972879757172825, -0.713589666297376], + [1.0806572036388076, 3.2989325171217447] + ], + "potentials": [ + [9985.05926003559, -5751.173645614685], + [-9973.510516153096, -5771.035488411508], + [-11.548743873832889, 11522.209134025094] + ], + "flexible_powers": [ + [38000.00000000001, 12489.9959967968], + [37999.99999999999, 12489.9959967968], + [38000.00000000001, 12489.9959967968] + ] + }, + "flexible_params": [ + { + "control_p": { + "type": "p_max_u_consumption", + "u_min": 18000.0, + "u_down": 19000.0, + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "control_q": { + "type": "constant" + }, + "projection": { + "type": "euclidean", + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "s_max": 45000.0 + }, + { + "control_p": { + "type": "p_max_u_consumption", + "u_min": 18000.0, + "u_down": 19000.0, + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "control_q": { + "type": "constant" + }, + "projection": { + "type": "euclidean", + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "s_max": 45000.0 + }, + { + "control_p": { + "type": "p_max_u_consumption", + "u_min": 18000.0, + "u_down": 19000.0, + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "control_q": { + "type": "constant" + }, + "projection": { + "type": "euclidean", + "alpha": 1000.0, + "epsilon": 1e-8 + }, + "s_max": 45000.0 + } + ] + }, + { + "id": 2, + "bus": 2, + "phases": "abc", + "type": "power", + "powers": [ + [40459.7989783205, 20229.89948916025], + [40459.79897941102, 20229.89948970551], + [40459.79897941102, 20229.89948970551] + ], + "connect_neutral": null, + "results": { + "currents": [ + [2.166337286161528, -3.273950412566573], + [-3.9184928735292957, -0.23912790714230758], + [1.7521555873677672, 3.513078319708881] + ], + "potentials": [ + [9985.05926003559, -5751.173645614685], + [-9973.510516153096, -5771.035488411508], + [-11.548743873832889, 11522.209134025094] + ] + } + } + ], + "sources": [ + { + "id": 1, + "bus": 1, + "phases": "abc", + "voltages": [ + [20000.0, 0.0], + [-9999.999999999996, -17320.508075688773], + [-9999.999999999996, 17320.508075688773] + ], + "connect_neutral": null, + "results": { + "currents": [ + [-4.297650361259068, 6.3297275091254726], + [7.539556441973733, 0.754915281461497], + [-3.241906080714666, -7.08464279058697] + ], + "potentials": [ + [10000.000000002889, -5773.502691896624], + [-9999.999999997111, -5773.502691896624], + [2.8848055359251603e-9, 11547.00538379215] + ] + } + } + ], + "lines_params": [ + { + "id": 1, + "z_line": [ + [ + [0.35, 0.0, 0.0], + [0.0, 0.35, 0.0], + [0.0, 0.0, 0.35] + ], + [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0] + ] + ], + "y_shunt": [ + [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0] + ], + [ + [1e-6, 0.0, 0.0], + [0.0, 1e-6, 0.0], + [0.0, 0.0, 1e-6] + ] + ], + "max_current": 250, + "line_type": "UNDERGROUND", + "conductor_type": "AL", + "insulator_type": "PVC", + "section": 240.0 + }, + { + "id": 2, + "z_line": [ + [ + [0.35, 0.0, 0.0, 0.0], + [0.0, 0.35, 0.0, 0.0], + [0.0, 0.0, 0.35, 0.0], + [0.0, 0.0, 0.0, 0.35] + ], + [ + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0] + ] + ], + "max_current": 160, + "line_type": "OVERHEAD", + "conductor_type": "CU", + "section": 150.0 + }, + { + "id": 3, + "z_line": [ + [ + [0.35, 0.0], + [0.0, 0.35] + ], + [ + [0.0, 0.0], + [0.0, 0.0] + ] + ] + }, + { + "id": 4, + "z_line": [ + [ + [0.35, 0.0, 0.0], + [0.0, 0.35, 0.0], + [0.0, 0.0, 0.35] + ], + [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0] + ] + ] + } + ], + "transformers_params": [ + { + "id": "2", + "sn": 10000.0, + "uhv": 400, + "ulv": 400, + "type": "single", + "z2": [0.05, 0.0], + "ym": [0.01, 0.02], + "max_power": 10000.0, + "manufacturer": "roseau tech", + "range": "testing", + "efficiency": "good" + }, + { + "id": "3", + "sn": 10000.0, + "uhv": 400, + "ulv": 400, + "type": "center", + "z2": [0.05, 0.0], + "ym": [0.01, 0.02], + "max_power": 10000.0, + "manufacturer": "roseau tech", + "range": "testing", + "efficiency": "good++" + }, + { + "id": "SE_Minera_AA0Ak_160kVA", + "sn": 160000, + "uhv": 20000, + "ulv": 400, + "type": "Dyn11", + "z2": [0.010937500000000001, 0.038475590882402315], + "ym": [1.5749999999999997e-7, -1.9999379834134858e-5], + "i0": 0.15, + "p0": 189, + "psc": 1750, + "vsc": 0.04, + "max_power": 200000.0, + "manufacturer": "SE", + "range": "Minera", + "efficiency": "AA0Ak" + } + ] +} diff --git a/roseau/load_flow/io/tests/test_dict.py b/roseau/load_flow/io/tests/test_dict.py index b41f3ce0..8ccf8125 100644 --- a/roseau/load_flow/io/tests/test_dict.py +++ b/roseau/load_flow/io/tests/test_dict.py @@ -1,33 +1,53 @@ import copy +import hashlib +import importlib.resources as resources +import json +import warnings import numpy as np import pytest from shapely import LineString, Point from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode -from roseau.load_flow.io.dict import v0_to_v1_converter, v1_to_v2_converter +from roseau.load_flow.io.dict import NETWORK_JSON_VERSION, v0_to_v1_converter, v1_to_v2_converter, v2_to_v3_converter from roseau.load_flow.models import ( Bus, Ground, Line, LineParameters, PotentialRef, - PowerLoad, Transformer, TransformerParameters, VoltageSource, ) from roseau.load_flow.network import ElectricalNetwork from roseau.load_flow.testing import assert_json_close -from roseau.load_flow.typing import JsonDict -from roseau.load_flow.utils import ConductorType, InsulatorType, LineType +from roseau.load_flow.utils import Insulator, LineType, Material + +# Store the expected hashes of the files that should not be modified +EXPECTED_HASHES = { + "network_json_v0.json": "ad984cbcd26b36602a2789e2f0badcb5", + "network_json_v1.json": "fc930431b69165f68961b0f0dc2635b5", + "network_json_v2.json": "d85a2658708576c083ceab666a83150b", +} + + +def read_json_file(filename: str) -> str: + return (resources.files("roseau.load_flow.io") / "tests" / "data" / filename).read_text() + + +def ignore_unmatched_warnings(warn_check, /) -> None: + """Ignore unmatched warnings in the pytest.warns context manager.""" + for w in warn_check: + if not warn_check.matches(w): + warn_check.list.remove(w) def test_to_dict(): ground = Ground("ground") vn = 400 / np.sqrt(3) - source_bus = Bus(id="source", phases="abcn", geometry=Point(0.0, 0.0), min_voltage=0.9 * vn) - load_bus = Bus(id="load bus", phases="abcn", geometry=Point(0.0, 1.0), max_voltage=1.1 * vn) + source_bus = Bus(id="source", phases="abcn", geometry=Point(0.0, 0.0), min_voltage_level=0.9, nominal_voltage=400) + load_bus = Bus(id="load bus", phases="abcn", geometry=Point(0.0, 1.0), max_voltage_level=1.1, nominal_voltage=400) ground.connect(load_bus) p_ref = PotentialRef(id="pref", element=ground) vs = VoltageSource(id="vs", bus=source_bus, phases="abcn", voltages=vn) @@ -38,9 +58,9 @@ def test_to_dict(): z_line=np.eye(4, dtype=complex), y_shunt=np.eye(4, dtype=complex), line_type=LineType.UNDERGROUND, - conductor_type=ConductorType.AA, - insulator_type=InsulatorType.PVC, - section=120, + materials=Material.AA, + insulators=Insulator.PVC, + sections=120, ) lp2 = LineParameters("test", z_line=np.eye(4, dtype=complex), y_shunt=np.eye(4, dtype=complex) * 1.1) @@ -83,13 +103,21 @@ def test_to_dict(): assert e.value.code == RoseauLoadFlowExceptionCode.JSON_LINE_PARAMETERS_DUPLICATES # Same id, same line parameters -> ok - lp2 = LineParameters(id="test", z_line=np.eye(4, dtype=complex), y_shunt=np.eye(4, dtype=complex)) + lp2 = LineParameters( + id="test", + z_line=np.eye(4, dtype=complex), + y_shunt=np.eye(4, dtype=complex), + line_type=LineType.UNDERGROUND, + materials=Material.AA, + insulators=Insulator.PVC, + sections=120, + ) line2.parameters = lp2 en.to_dict(include_results=False) # Dict content line2.parameters = lp1 - lp1.max_current = 1000 + lp1.ampacities = 1000 res = en.to_dict(include_results=False) res_bus0, res_bus1 = res["buses"] res_line0, res_line1 = res["lines"] @@ -97,14 +125,16 @@ def test_to_dict(): assert "geometry" in res_bus1 assert "geometry" in res_line0 assert "geometry" in res_line1 - assert np.isclose(res_bus0["min_voltage"], 0.9 * vn) - assert np.isclose(res_bus1["max_voltage"], 1.1 * vn) + assert np.isclose(res_bus0["nominal_voltage"], 400.0) + assert np.isclose(res_bus0["min_voltage_level"], 0.9) + assert np.isclose(res_bus1["nominal_voltage"], 400.0) + assert np.isclose(res_bus1["max_voltage_level"], 1.1) lp_dict = res["lines_params"][0] - assert np.isclose(lp_dict["max_current"], 1000) + assert np.allclose(lp_dict["ampacities"], 1000) assert lp_dict["line_type"] == "UNDERGROUND" - assert lp_dict["conductor_type"] == "AA" - assert lp_dict["insulator_type"] == "PVC" - assert np.isclose(lp_dict["section"], 120) + assert lp_dict["materials"] == ["AA"] * 4 + assert lp_dict["insulators"] == ["PVC"] * 4 + assert np.allclose(lp_dict["sections"], 120) assert "results" not in res_bus0 assert "results" not in res_bus1 assert "results" not in res_line0 @@ -123,10 +153,10 @@ def test_to_dict(): # Same id, different transformer parameters -> fail tp1 = TransformerParameters.from_open_and_short_circuit_tests( - id="t", type="Dyn11", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 + id="t", vg="Dyn11", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 ) tp2 = TransformerParameters.from_open_and_short_circuit_tests( - id="t", type="Dyn11", uhv=20000, ulv=400, sn=200 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 + id="t", vg="Dyn11", uhv=20000, ulv=400, sn=200 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 ) transformer1 = Transformer(id="Transformer1", bus1=source_bus, bus2=load_bus, parameters=tp1, geometry=geom) transformer2 = Transformer(id="Transformer2", bus1=source_bus, bus2=load_bus, parameters=tp2, geometry=geom) @@ -149,1179 +179,127 @@ def test_to_dict(): # Same id, same transformer parameters -> ok tp2 = TransformerParameters.from_open_and_short_circuit_tests( - id="t", type="Dyn11", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 + id="t", vg="Dyn11", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 ) transformer2.parameters = tp2 en.to_dict(include_results=False) # Dict content transformer2.parameters = tp1 - tp1.max_power = 180_000 res = en.to_dict(include_results=False) assert "geometry" in res["buses"][0] assert "geometry" in res["buses"][1] assert "geometry" in res["transformers"][0] assert "geometry" in res["transformers"][1] - assert np.isclose(res["transformers_params"][0]["max_power"], 180_000) -def test_v0_to_v2_converter(): - # Do not change `dict_v0` or the network manually, add/update the converters until the test passes +def test_all_converters(): + from roseau.load_flow.io.tests.data.network_json_v0 import en - dict_v0 = { - "buses": [ - { - "id": 1, - "type": "slack", - "loads": [], - "voltages": { - "va": [11547.005383792515, 0.0], - "vb": [-5773.502691896258, -10000.000000179687], - "vc": [-5773.502691896258, 10000.000000179687], - }, - "geometry": "POINT (0 0)", - }, - { - "id": 2, - "type": "bus", - "loads": [ - { - "id": 1, - "function": "ys", - "powers": { - "sa": [41916.482229647016, 20958.241114823508], - "sb": [41916.482230776804, 20958.2411153884], - "sc": [41916.4822307768, 20958.241115388402], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 3, - "type": "bus_neutral", - "loads": [ - { - "id": 2, - "function": "ys_neutral", - "powers": { - "sa": [40459.7989783205, 20229.89948916025], - "sb": [40459.79897941102, 20229.89948970551], - "sc": [40459.79897941102, 20229.89948970551], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 4, - "type": "bus_neutral", - "loads": [ - { - "id": 3, - "function": "ys_neutral", - "powers": { - "sa": [37922.04164877094, 18961.020824385465], - "sb": [37922.04164985974, 18961.020824929874], - "sc": [37922.04164980375, 18961.02082490188], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 5, - "type": "bus_neutral", - "loads": [ - { - "id": 4, - "function": "ys_neutral", - "powers": { - "sa": [40459.798978684, 20229.899489342002], - "sb": [40459.79897977451, 20229.89948988726], - "sc": [40459.798978684004, 20229.899489342002], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 6, - "type": "bus", - "loads": [ - { - "id": 5, - "function": "ys", - "powers": { - "sa": [41916.48223002361, 20958.24111501181], - "sb": [41916.4822311534, 20958.241115576697], - "sc": [41916.48223002363, 20958.241115011813], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 7, - "type": "bus_neutral", - "loads": [ - { - "id": 6, - "function": "ys_neutral", - "powers": { - "sa": [40932.79932474136, 20466.399662370677], - "sb": [40932.79932583017, 20466.39966291509], - "sc": [40932.79932479737, 20466.39966239868], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 8, - "type": "bus", - "loads": [ - { - "id": 7, - "function": "ys", - "powers": { - "sa": [41916.482229647016, 20958.241114823508], - "sb": [41916.482230776804, 20958.241115388402], - "sc": [41916.4822307768, 20958.241115388402], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 9, - "type": "bus_neutral", - "loads": [ - { - "id": 8, - "function": "ys_neutral", - "powers": { - "sa": [40459.79897832049, 20229.899489160252], - "sb": [40459.79897941102, 20229.89948970551], - "sc": [40459.79897941101, 20229.899489705513], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 10, - "type": "bus_neutral", - "loads": [ - { - "id": 9, - "function": "ys_neutral", - "powers": { - "sa": [37922.04164877094, 18961.020824385465], - "sb": [37922.04164985973, 18961.020824929878], - "sc": [37922.04164980376, 18961.02082490188], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 11, - "type": "bus_neutral", - "loads": [ - { - "id": 10, - "function": "ys_neutral", - "powers": { - "sa": [40459.798978684, 20229.899489342002], - "sb": [40459.79897977452, 20229.899489887266], - "sc": [40459.798978684004, 20229.899489342002], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 12, - "type": "bus", - "loads": [ - { - "id": 11, - "function": "ys", - "powers": { - "sa": [41916.48223002361, 20958.24111501181], - "sb": [41916.4822311534, 20958.241115576693], - "sc": [41916.48223002362, 20958.241115011817], - }, - } - ], - "geometry": "POINT (0 1)", - }, - { - "id": 13, - "type": "bus_neutral", - "loads": [ - { - "id": 12, - "function": "ys_neutral", - "powers": { - "sa": [40932.79932474137, 20466.399662370684], - "sb": [40932.79932583017, 20466.399662915086], - "sc": [40932.799324797365, 20466.399662398682], - }, - } - ], - "geometry": "POINT (0 1)", - }, - ], - "branches": [ - { - "id": "tr1", - "bus1": 1, - "bus2": 2, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Dd0", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr2", - "bus1": 1, - "bus2": 3, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Yyn0", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr3", - "bus1": 1, - "bus2": 4, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Dzn0", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr4", - "bus1": 1, - "bus2": 5, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Dyn11", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr5", - "bus1": 1, - "bus2": 6, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Yd11", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr6", - "bus1": 1, - "bus2": 7, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Yzn11", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr7", - "bus1": 1, - "bus2": 8, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Dd6", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr8", - "bus1": 1, - "bus2": 9, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Yyn6", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr9", - "bus1": 1, - "bus2": 10, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Dzn6", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr10", - "bus1": 1, - "bus2": 11, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Dyn5", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr11", - "bus1": 1, - "bus2": 12, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Yd5", - "tap": 1.0, - "type": "transformer", - }, - { - "id": "tr12", - "bus1": 1, - "bus2": 13, - "geometry": "POINT (0 0.5)", - "type_name": "160kVA_Yzn5", - "tap": 1.0, - "type": "transformer", - }, - ], - "line_types": [], - "transformer_types": [ - { - "name": "160kVA_Dd0", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "dd0", - }, - { - "name": "160kVA_Dd6", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "dd6", - }, - { - "name": "160kVA_Dyn11", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "dyn11", - }, - { - "name": "160kVA_Dyn5", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "dyn5", - }, - { - "name": "160kVA_Dzn0", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "dzn0", - }, - { - "name": "160kVA_Dzn6", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "dzn6", - }, - { - "name": "160kVA_Yd11", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "yd11", - }, - { - "name": "160kVA_Yd5", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "yd5", - }, - { - "name": "160kVA_Yyn0", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "yyn0", - }, - { - "name": "160kVA_Yyn6", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "yyn6", - }, - { - "name": "160kVA_Yzn11", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "yzn11", - }, - { - "name": "160kVA_Yzn5", - "sn": 160000.0, - "uhv": 20000.0, - "ulv": 400.0, - "i0": 0.023, - "p0": 460.0, - "psc": 2350.0, - "vsc": 0.04, - "type": "yzn5", - }, - ], - } + dict_v0 = json.loads(read_json_file("network_json_v0.json")) + net_dict = en.to_dict(include_results=False) + expected_dict = copy.deepcopy(dict_v0) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + expected_dict = v0_to_v1_converter(expected_dict) + expected_dict = v1_to_v2_converter(expected_dict) + expected_dict = v2_to_v3_converter(expected_dict) + assert_json_close(net_dict, expected_dict) - # Buses - buses = { - 1: Bus(id=1, phases="abcn", geometry=Point(0.0, 0.0)), - 2: Bus(id=2, phases="abc", geometry=Point(0.0, 1.0)), - 3: Bus(id=3, phases="abcn", geometry=Point(0.0, 1.0)), - 4: Bus(id=4, phases="abcn", geometry=Point(0.0, 1.0)), - 5: Bus(id=5, phases="abcn", geometry=Point(0.0, 1.0)), - 6: Bus(id=6, phases="abc", geometry=Point(0.0, 1.0)), - 7: Bus(id=7, phases="abcn", geometry=Point(0.0, 1.0)), - 8: Bus(id=8, phases="abc", geometry=Point(0.0, 1.0)), - 9: Bus(id=9, phases="abcn", geometry=Point(0.0, 1.0)), - 10: Bus(id=10, phases="abcn", geometry=Point(0.0, 1.0)), - 11: Bus(id=11, phases="abcn", geometry=Point(0.0, 1.0)), - 12: Bus(id=12, phases="abc", geometry=Point(0.0, 1.0)), - 13: Bus(id=13, phases="abcn", geometry=Point(0.0, 1.0)), - } - # Grounds and potential references - ground = Ground("ground") - for bus_id in (1, 3, 4, 5, 7, 9, 10, 11, 13): - ground.connect(buses[bus_id]) - potential_refs = [ - PotentialRef(id="pref", element=ground), - PotentialRef(id="tr12", element=buses[2]), - PotentialRef(id="tr56", element=buses[6]), - PotentialRef(id="tr78", element=buses[8]), - PotentialRef(id="tr1112", element=buses[12]), - ] +def test_from_dict_v0(): + dict_v0 = json.loads(read_json_file("network_json_v0.json")) - # Sources and loads - vs = VoltageSource( - id=1, - bus=buses[1], - voltages=[ - 11547.005383792515 + 0.0j, - -5773.502691896258 + -10000.000000179687j, - -5773.502691896258 + 10000.000000179687j, - ], - phases="abcn", - ) - loads = [ - PowerLoad( - id=1, - bus=buses[2], - phases="abcn", - powers=[ - 41916.482229647016 + 20958.241114823508j, - 41916.482230776804 + 20958.2411153884j, - 41916.4822307768 + 20958.241115388402j, - ], - ), - PowerLoad( - id=2, - bus=buses[3], - phases="abcn", - powers=[ - 40459.7989783205 + 20229.89948916025j, - 40459.79897941102 + 20229.89948970551j, - 40459.79897941102 + 20229.89948970551j, - ], - ), - PowerLoad( - id=3, - bus=buses[4], - phases="abcn", - powers=[ - 37922.04164877094 + 18961.020824385465j, - 37922.04164985974 + 18961.020824929874j, - 37922.04164980375 + 18961.02082490188j, - ], - ), - PowerLoad( - id=4, - bus=buses[5], - phases="abcn", - powers=[ - 40459.798978684 + 20229.899489342002j, - 40459.79897977451 + 20229.89948988726j, - 40459.798978684004 + 20229.899489342002j, - ], - ), - PowerLoad( - id=5, - bus=buses[6], - phases="abcn", - powers=[ - 41916.48223002361 + 20958.24111501181j, - 41916.4822311534 + 20958.241115576697j, - 41916.48223002363 + 20958.241115011813j, - ], - ), - PowerLoad( - id=6, - bus=buses[7], - phases="abcn", - powers=[ - 40932.79932474136 + 20466.399662370677j, - 40932.79932583017 + 20466.39966291509j, - 40932.79932479737 + 20466.39966239868j, - ], - ), - PowerLoad( - id=7, - bus=buses[8], - phases="abcn", - powers=[ - 41916.482229647016 + 20958.241114823508j, - 41916.482230776804 + 20958.241115388402j, - 41916.4822307768 + 20958.241115388402j, - ], - ), - PowerLoad( - id=8, - bus=buses[9], - phases="abcn", - powers=[ - 40459.79897832049 + 20229.899489160252j, - 40459.79897941102 + 20229.89948970551j, - 40459.79897941101 + 20229.899489705513j, - ], - ), - PowerLoad( - id=9, - bus=buses[10], - phases="abcn", - powers=[ - 37922.04164877094 + 18961.020824385465j, - 37922.04164985973 + 18961.020824929878j, - 37922.04164980376 + 18961.02082490188j, - ], - ), - PowerLoad( - id=10, - bus=buses[11], - phases="abcn", - powers=[ - 40459.798978684 + 20229.899489342002j, - 40459.79897977452 + 20229.899489887266j, - 40459.798978684004 + 20229.899489342002j, - ], - ), - PowerLoad( - id=11, - bus=buses[12], - phases="abcn", - powers=[ - 41916.48223002361 + 20958.24111501181j, - 41916.4822311534 + 20958.241115576693j, - 41916.48223002362 + 20958.241115011817j, - ], - ), - PowerLoad( - id=12, - bus=buses[13], - phases="abcn", - powers=[ - 40932.79932474137 + 20466.399662370684j, - 40932.79932583017 + 20466.399662915086j, - 40932.799324797365 + 20466.399662398682j, - ], - ), - ] + with pytest.warns(UserWarning, match=r"Got an outdated network file \(version 0\)") as warn_check: + en = ElectricalNetwork.from_dict(data=dict_v0, include_results=False) + ignore_unmatched_warnings(warn_check) + net_dict = en.to_dict(include_results=False) + expected_dict = copy.deepcopy(dict_v0) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + expected_dict = v0_to_v1_converter(expected_dict) + expected_dict = v1_to_v2_converter(expected_dict) + expected_dict = v2_to_v3_converter(expected_dict) + assert_json_close(net_dict, expected_dict) - # Transformers - tp = { - "160kVA_Dd0": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Dd0", - type="dd0", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Dd6": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Dd6", - type="dd6", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Dyn11": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Dyn11", - type="dyn11", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Dyn5": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Dyn5", - type="dyn5", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Dzn0": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Dzn0", - type="dzn0", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Dzn6": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Dzn6", - type="dzn6", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Yd11": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Yd11", - type="yd11", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Yd5": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Yd5", - type="yd5", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Yyn0": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Yyn0", - type="yyn0", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Yyn6": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Yyn6", - type="yyn6", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Yzn11": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Yzn11", - type="yzn11", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - "160kVA_Yzn5": TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA_Yzn5", - type="yzn5", - sn=160000.0, - uhv=20000.0, - ulv=400.0, - i0=0.023, - p0=460.0, - psc=2350.0, - vsc=0.04, - ), - } - p = Point(0.0, 0.5) - transformers = [ - Transformer( - id="tr1", - bus1=buses[1], - bus2=buses[2], - phases1="abc", - phases2="abc", - parameters=tp["160kVA_Dd0"], - tap=1, - geometry=p, - ), - Transformer( - id="tr2", - bus1=buses[1], - bus2=buses[3], - phases1="abcn", - phases2="abcn", - parameters=tp["160kVA_Yyn0"], - tap=1, - geometry=p, - ), - Transformer( - id="tr3", - bus1=buses[1], - bus2=buses[4], - phases1="abc", - phases2="abcn", - parameters=tp["160kVA_Dzn0"], - tap=1, - geometry=p, - ), - Transformer( - id="tr4", - bus1=buses[1], - bus2=buses[5], - phases1="abc", - phases2="abcn", - parameters=tp["160kVA_Dyn11"], - tap=1, - geometry=p, - ), - Transformer( - id="tr5", - bus1=buses[1], - bus2=buses[6], - phases1="abcn", - phases2="abc", - parameters=tp["160kVA_Yd11"], - tap=1, - geometry=p, - ), - Transformer( - id="tr6", - bus1=buses[1], - bus2=buses[7], - phases1="abcn", - phases2="abcn", - parameters=tp["160kVA_Yzn11"], - tap=1, - geometry=p, - ), - Transformer( - id="tr7", - bus1=buses[1], - bus2=buses[8], - phases1="abc", - phases2="abc", - parameters=tp["160kVA_Dd6"], - tap=1, - geometry=p, - ), - Transformer( - id="tr8", - bus1=buses[1], - bus2=buses[9], - phases1="abcn", - phases2="abcn", - parameters=tp["160kVA_Yyn6"], - tap=1, - geometry=p, - ), - Transformer( - id="tr9", - bus1=buses[1], - bus2=buses[10], - phases1="abc", - phases2="abcn", - parameters=tp["160kVA_Dzn6"], - tap=1, - geometry=p, - ), - Transformer( - id="tr10", - bus1=buses[1], - bus2=buses[11], - phases1="abc", - phases2="abcn", - parameters=tp["160kVA_Dyn5"], - tap=1, - geometry=p, - ), - Transformer( - id="tr11", - bus1=buses[1], - bus2=buses[12], - phases1="abcn", - phases2="abc", - parameters=tp["160kVA_Yd5"], - tap=1, - geometry=p, - ), - Transformer( - id="tr12", - bus1=buses[1], - bus2=buses[13], - phases1="abcn", - phases2="abcn", - parameters=tp["160kVA_Yzn5"], - tap=1, - geometry=p, - ), - ] - net = ElectricalNetwork( - buses=buses, - lines=[], - transformers=transformers, - switches=[], - loads=loads, - sources=[vs], - grounds=[ground], - potential_refs=potential_refs, - ) +def test_from_dict_v1(): + dict_v1 = json.loads(read_json_file("network_json_v1.json")) - net_dict = net.to_dict(include_results=False) - expected_dict = dict_v0 - expected_dict = v0_to_v1_converter(expected_dict) - expected_dict = v1_to_v2_converter(expected_dict) - # Uncomment the following lines as needed when new versions are added - # expected_dict = v2_to_v3_converter(expected_dict) - # expected_dict = v3_to_v4_converter(expected_dict) + with pytest.warns(UserWarning, match=r"Got an outdated network file \(version 1\)") as warn_check: + en = ElectricalNetwork.from_dict(data=dict_v1, include_results=True) + ignore_unmatched_warnings(warn_check) + net_dict = en.to_dict(include_results=True) + expected_dict = copy.deepcopy(dict_v1) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + expected_dict = v1_to_v2_converter(expected_dict) + expected_dict = v2_to_v3_converter(expected_dict) assert_json_close(net_dict, expected_dict) + # Test with `include_results=False` + def remove_results(obj: object, /) -> None: + """Recursively remove the 'results' key from a JSON structure.""" + if isinstance(obj, dict): + if "results" in obj: + del obj["results"] + for v in obj.values(): + remove_results(v) + elif isinstance(obj, list): + for x in obj: + remove_results(x) -def test_v1_to_v2_converter(): - # Do not change `dict_v1` or the network manually, add/update the converters until the test passes + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + net = ElectricalNetwork.from_dict(data=dict_v1, include_results=False) + net_dict = net.to_dict(include_results=False) + expected_dict_no_results = copy.deepcopy(dict_v1) + remove_results(expected_dict_no_results) + expected_dict_no_results = v1_to_v2_converter(expected_dict_no_results) + expected_dict_no_results = v2_to_v3_converter(expected_dict_no_results) + assert_json_close(net_dict, expected_dict_no_results) - dict_v1 = { - "version": 1, - "grounds": [], - "potential_refs": [ - { - "id": "pref", - "bus": 1, - "phases": None, - "results": {"current": [-7.771563289958464e-16, -2.220444725761333e-16]}, - } - ], - "buses": [ - { - "id": 1, - "phases": "abc", - "geometry": {"type": "Point", "coordinates": (0.0, 0.0)}, - "results": { - "potentials": [ - [5773.502691896258, -3333.3333333932287], - [-5773.502691896258, -3333.3333333932287], - [9.888685758712307e-24, 6666.666666786457], - ] - }, - }, - { - "id": 2, - "phases": "abc", - "geometry": {"type": "Point", "coordinates": (0.0, 1.0)}, - "results": { - "potentials": [ - [5772.521060368325, -3330.7830499173137], - [-5770.803265855299, -3333.7583572908047], - [-1.7177945130259364, 6664.5414072081185], - ] - }, - }, - ], - "branches": [ - { - "id": 1, - "type": "line", - "phases1": "abc", - "phases2": "abc", - "bus1": 1, - "bus2": 2, - "geometry": {"type": "LineString", "coordinates": ((0.0, 0.0), (1.0, 0.0))}, - "results": { - "currents1": [ - [2.804661508377779, -7.286524216899904], - [-7.712645831309471, 1.214353993074318], - [4.907984322931247, 6.072170223825586], - ], - "currents2": [ - [-2.804661508377779, 7.286524216899904], - [7.712645831309471, -1.214353993074318], - [-4.907984322931247, -6.072170223825586], - ], - }, - "length": 1.0, - "params_id": "lp", - } - ], - "loads": [ - { - "id": 1, - "bus": 2, - "phases": "abc", - "powers": [ - [38000.0, 12489.9959967968], - [38000.0, 12489.9959967968], - [38000.0, 12489.9959967968], - ], - "results": { - "currents": [ - [-0.9366300237736715, -1.623256890969888], - [-0.9374666925612338, 1.6227738400201663], - [1.8740967163349054, 0.00048305094972167506], - ], - "powers": [ - [-0.0, 12489.9959967968], - [-0.0, 12489.9959967968], - [-0.0, 12489.9959967968], - ], - }, - "flexible_params": [ - { - "control_p": { - "type": "p_max_u_consumption", - "u_min": 18000, - "u_down": 19000, - "alpha": 1000.0, - "epsilon": 1e-08, - }, - "control_q": {"type": "constant"}, - "projection": {"type": "euclidean", "alpha": 1000.0, "epsilon": 1e-08}, - "s_max": 45000.0, - }, - { - "control_p": { - "type": "p_max_u_consumption", - "u_min": 18000, - "u_down": 19000, - "alpha": 1000.0, - "epsilon": 1e-08, - }, - "control_q": {"type": "constant"}, - "projection": {"type": "euclidean", "alpha": 1000.0, "epsilon": 1e-08}, - "s_max": 45000.0, - }, - { - "control_p": { - "type": "p_max_u_consumption", - "u_min": 18000, - "u_down": 19000, - "alpha": 1000.0, - "epsilon": 1e-08, - }, - "control_q": {"type": "constant"}, - "projection": {"type": "euclidean", "alpha": 1000.0, "epsilon": 1e-08}, - "s_max": 45000.0, - }, - ], - }, - { - "id": 2, - "bus": 2, - "phases": "abc", - "powers": [ - [40459.7989783205, 20229.89948916025], - [40459.79897941102, 20229.89948970551], - [40459.79897941102, 20229.89948970551], - ], - "results": { - "currents": [ - [3.7412915321516125, -5.663267325930873], - [-6.775179138747953, -0.40841984694689626], - [3.0338876065963407, 6.07168717287777], - ] - }, - }, - ], - "sources": [ - { - "id": 1, - "bus": 1, - "phases": "abc", - "voltages": [ - [11547.005383792515, 0.0], - [-5773.502691896258, -10000.000000179687], - [-5773.502691896258, 10000.000000179687], - ], - "results": { - "currents": [ - [-2.80466150837794, 7.286524216900761], - [7.712645831309187, -1.2143539930732696], - [-4.907984322931247, -6.0721702238274915], - ] - }, - } - ], - "lines_params": [ - { - "id": "lp", - "z_line": [ - [[0.35, 0.0, 0.0], [0.0, 0.35, 0.0], [0.0, 0.0, 0.35]], - [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], - ], - } - ], - "transformers_params": [], - } - # # Buses - # buses = { - # 1: Bus(id=1, phases="abc", geometry=Point(0.0, 0.0)), - # 2: Bus(id=2, phases="abc", geometry=Point(0.0, 1.0)), - # } - # - # # Potential reference - # potential_ref = PotentialRef(id="pref", element=buses[1]) - # - # # Sources and loads - # vs = VoltageSource( - # id=1, - # bus=buses[1], - # voltages=[ - # 11547.005383792515 + 0.0j, - # -5773.502691896258 + -10000.000000179687j, - # -5773.502691896258 + 10000.000000179687j, - # ], - # phases="abc", - # ) - # fp = FlexibleParameter( - # control_p=Control.p_max_u_consumption(u_min=18_000, u_down=19_000), - # control_q=Control.constant(), - # projection=Projection(type="euclidean"), - # s_max=45e3, - # ) - # power = cmath.rect(40e3, math.acos(0.95)) - # loads = [ - # PowerLoad(id=1, bus=buses[2], phases="abc", powers=[power, power, power], flexible_params=[fp, fp, fp]), - # PowerLoad( - # id=2, - # bus=buses[2], - # phases="abc", - # powers=[ - # 40459.7989783205 + 20229.89948916025j, - # 40459.79897941102 + 20229.89948970551j, - # 40459.79897941102 + 20229.89948970551j, - # ], - # ), - # ] - # - # line_parameters = LineParameters(id="lp", z_line=0.35 * np.eye(3, dtype=complex)) - # lines = { - # 1: Line( - # id=1, - # bus1=buses[1], - # bus2=buses[2], - # parameters=line_parameters, - # length=1.0, - # geometry=LineString([(0, 0), (1, 0)]), - # ) - # } - # - # net = ElectricalNetwork( - # buses=buses, - # lines=lines, - # transformers=[], - # switches=[], - # loads=loads, - # sources=[vs], - # grounds=[], - # potential_refs=[potential_ref], - # ) +def test_from_dict_v2(): + dict_v2 = json.loads(read_json_file("network_json_v2.json")) + + with ( + pytest.warns(UserWarning, match=r"Got an outdated network file \(version 2\)"), + pytest.warns( + UserWarning, + match=( + r"Starting with version 0.11.0 of roseau-load-flow \(JSON file v3\), `min_voltage` and " + r"`max_voltage` are replaced with `min_voltage_level`, `max_voltage_level` and " + r"`nominal_voltage`. The found values of `min_voltage` or `max_voltage` are dropped." + ), + ), + ): + en = ElectricalNetwork.from_dict(data=dict_v2, include_results=True) + net_dict = en.to_dict(include_results=True) + expected_dict = copy.deepcopy(dict_v2) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + expected_dict = v2_to_v3_converter(expected_dict) - # Include results=True - net = ElectricalNetwork.from_dict(data=copy.deepcopy(dict_v1), include_results=True) - net_dict = net.to_dict(include_results=True) - expected_dict = copy.deepcopy(dict_v1) - expected_dict = v1_to_v2_converter(expected_dict) assert_json_close(net_dict, expected_dict) - # Include results=False - def _delete(d: JsonDict, k: str) -> JsonDict: - if k in d: - d.pop(k) - return d + # Test max loading of transformers + for tr in en.transformers.values(): + tp_data = next(tp_d for tp_d in dict_v2["transformers_params"] if tp_d["id"] == tr.parameters.id) + assert tr.max_loading.m == tp_data["max_power"] / tp_data["sn"] - net = ElectricalNetwork.from_dict(data=copy.deepcopy(dict_v1), include_results=False) - net_dict = net.to_dict(include_results=False) - dict_v1_without_results = { - k: [_delete(d=x, k="results") for x in v] if isinstance(v, list) else v - for k, v in copy.deepcopy(dict_v1).items() - } - expected_dict = copy.deepcopy(dict_v1_without_results) - expected_dict = v1_to_v2_converter(expected_dict) - assert_json_close(net_dict, expected_dict) + +@pytest.mark.parametrize("version", list(range(NETWORK_JSON_VERSION))) +def test_json_files_not_modified(version): + """Test that the JSON files have not been modified when refactoring the code.""" + filename = f"network_json_v{version}.json" + dict_data = read_json_file(filename) + digest = hashlib.md5(dict_data.encode()).hexdigest() + if filename not in EXPECTED_HASHES: + # Add the computed hash to EXPECTED_HASHES (after formatting the file with prettier) + raise AssertionError(f"Hash of '{filename}' is not in EXPECTED_HASHES.\nComputed hash: {digest}") + elif EXPECTED_HASHES[filename] != digest: + raise AssertionError( + f"Hash of '{filename}' has changed. Do not change the content of this file or update the hash " + f"for formatting-only changes.\nExpected hash: {EXPECTED_HASHES[filename]}\nComputed hash: {digest}" + ) diff --git a/roseau/load_flow/models/buses.py b/roseau/load_flow/models/buses.py index 836bd240..e9c79763 100644 --- a/roseau/load_flow/models/buses.py +++ b/roseau/load_flow/models/buses.py @@ -1,4 +1,5 @@ import logging +import warnings from collections.abc import Iterator from functools import cached_property from typing import TYPE_CHECKING, Any, Final @@ -11,8 +12,9 @@ from roseau.load_flow.converters import _calculate_voltages, calculate_voltage_phases, phasor_to_sym from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode from roseau.load_flow.models.core import Element -from roseau.load_flow.typing import ComplexArray, ComplexArrayLike1D, Id, JsonDict +from roseau.load_flow.typing import ComplexArray, ComplexArrayLike1D, FloatArray, Id, JsonDict from roseau.load_flow.units import Q_, ureg_wraps +from roseau.load_flow.utils._exceptions import find_stack_level from roseau.load_flow_engine.cy_engine import CyBus logger = logging.getLogger(__name__) @@ -39,8 +41,9 @@ def __init__( phases: str, geometry: BaseGeometry | None = None, potentials: ComplexArrayLike1D | None = None, - min_voltage: float | None = None, - max_voltage: float | None = None, + nominal_voltage: float | None = None, + min_voltage_level: float | None = None, + max_voltage_level: float | None = None, ) -> None: """Bus constructor. @@ -63,15 +66,20 @@ def __init__( Either complex values (V) or a :class:`Quantity ` of complex values. - min_voltage: - An optional minimum voltage of the bus (V). It is not used in the load flow. - It must be a phase-neutral voltage if the bus has a neutral, phase-phase otherwise. - Either a float (V) or a :class:`Quantity ` of float. + nominal_voltage: + An optional nominal voltage for the bus (V). It is not used in the load flow. + It is always a phase-phase voltage. It can be a float (V) or a + :class:`Quantity ` of float. - max_voltage: - An optional maximum voltage of the bus (V). It is not used in the load flow. - It must be a phase-neutral voltage if the bus has a neutral, phase-phase otherwise. - Either a float (V) or a :class:`Quantity ` of float. + min_voltage_level: + An optional minimal voltage of the bus (%). It is not used in the load flow. + It must be a percentage of the `nominal_voltage`. If provided, the nominal voltage becomes mandatory. + Either a float (unitless) or a :class:`Quantity ` of float. + + max_voltage_level: + An optional maximal voltage of the bus (%). It is not used in the load flow. + It must be a percentage of the `nominal_voltage`. If provided, the nominal voltage becomes mandatory. + Either a float (unitless) or a :class:`Quantity ` of float. """ super().__init__(id) self._check_phases(id, phases=phases) @@ -81,12 +89,15 @@ def __init__( potentials = [0] * len(phases) self.potentials = potentials self.geometry = geometry - self._min_voltage: float | None = None - self._max_voltage: float | None = None - if min_voltage is not None: - self.min_voltage = min_voltage - if max_voltage is not None: - self.max_voltage = max_voltage + self._nominal_voltage: float | None = None + self._min_voltage_level: float | None = None + self._max_voltage_level: float | None = None + if nominal_voltage is not None: + self.nominal_voltage = nominal_voltage + if min_voltage_level is not None: + self.min_voltage_level = min_voltage_level + if max_voltage_level is not None: + self.max_voltage_level = max_voltage_level self._res_potentials: ComplexArray | None = None self._short_circuits: list[dict[str, Any]] = [] @@ -151,6 +162,17 @@ def res_voltages(self) -> Q_[ComplexArray]: """ return self._res_voltages_getter(warning=True) + @property + def res_voltage_levels(self) -> Q_[FloatArray] | None: + """The load flow result of the bus voltage levels (unitless).""" + if self._nominal_voltage is None: + return None + voltages_abs = abs(self._res_voltages_getter(warning=True)) + if "n" in self.phases: + return Q_(np.sqrt(3) * voltages_abs / self._nominal_voltage, "") + else: + return Q_(voltages_abs / self._nominal_voltage, "") + @cached_property def voltage_phases(self) -> list[str]: """The phases of the voltages.""" @@ -162,42 +184,108 @@ def _get_potentials_of(self, phases: str, warning: bool) -> ComplexArray: return np.array([potentials[self.phases.index(p)] for p in phases]) @property - def min_voltage(self) -> Q_[float] | None: - """The minimum voltage of the bus (V) if it is set.""" - return None if self._min_voltage is None else Q_(self._min_voltage, "V") + def nominal_voltage(self) -> Q_[float] | None: + """The phase-phase nominal voltage of the bus of the bus (V) if it is set.""" + return None if self._nominal_voltage is None else Q_(self._nominal_voltage, "V") - @min_voltage.setter + @nominal_voltage.setter @ureg_wraps(None, (None, "V")) - def min_voltage(self, value: float | Q_[float] | None) -> None: - if value is not None and self._max_voltage is not None and value > self._max_voltage: - msg = ( - f"Cannot set min voltage of bus {self.id!r} to {value} V as it is higher than its " - f"max voltage ({self._max_voltage} V)." - ) - logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) + def nominal_voltage(self, value: float | Q_[float] | None) -> None: if pd.isna(value): value = None - self._min_voltage = value + if value is None: + if self._max_voltage_level is not None or self._min_voltage_level is not None: + warnings.warn( + message=( + f"The nominal voltage of the bus {self.id!r} is required to use `min_voltage_level` and " + f"`max_voltage_level`." + ), + category=UserWarning, + stacklevel=find_stack_level(), + ) + else: + if value <= 0: + msg = f"The nominal voltage of bus {self.id!r} must be positive. {value} V has been provided." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) + self._nominal_voltage = value @property - def max_voltage(self) -> Q_[float] | None: - """The maximum voltage of the bus (V) if it is set.""" - return None if self._max_voltage is None else Q_(self._max_voltage, "V") + def min_voltage_level(self) -> Q_[float] | None: + """The minimal voltage level of the bus if it is set.""" + return None if self._min_voltage_level is None else Q_(self._min_voltage_level, "") - @max_voltage.setter - @ureg_wraps(None, (None, "V")) - def max_voltage(self, value: float | Q_[float] | None) -> None: - if value is not None and self._min_voltage is not None and value < self._min_voltage: - msg = ( - f"Cannot set max voltage of bus {self.id!r} to {value} V as it is lower than its " - f"min voltage ({self._min_voltage} V)." - ) - logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) + @min_voltage_level.setter + @ureg_wraps(None, (None, "")) + def min_voltage_level(self, value: float | Q_[float] | None) -> None: + if pd.isna(value): + value = None + if value is not None: + if self._max_voltage_level is not None and value > self._max_voltage_level: + msg = ( + f"Cannot set min voltage level of bus {self.id!r} to {value} as it is higher than its " + f"max voltage ({self._max_voltage_level})." + ) + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) + if self._nominal_voltage is None: + warnings.warn( + message=( + f"The min voltage level of the bus {self.id!r} is useless without a nominal voltage. Please " + f"define a nominal voltage for this bus." + ), + category=UserWarning, + stacklevel=find_stack_level(), + ) + + self._min_voltage_level = value + + @property + def min_voltage(self) -> Q_[float] | None: + """The minimal voltage of the bus (V) if it is set.""" + return ( + None + if self._min_voltage_level is None or self._nominal_voltage is None + else Q_(self._min_voltage_level * self._nominal_voltage, "V") + ) + + @property + def max_voltage_level(self) -> Q_[float] | None: + """The maximal voltage level of the bus if it is set.""" + return None if self._max_voltage_level is None else Q_(self._max_voltage_level, "") + + @max_voltage_level.setter + @ureg_wraps(None, (None, "")) + def max_voltage_level(self, value: float | Q_[float] | None) -> None: if pd.isna(value): value = None - self._max_voltage = value + if value is not None: + if self._min_voltage_level is not None and value < self._min_voltage_level: + msg = ( + f"Cannot set max voltage level of bus {self.id!r} to {value} as it is lower than its " + f"min voltage ({self._min_voltage_level})." + ) + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) + if self._nominal_voltage is None: + warnings.warn( + message=( + f"The max voltage level of the bus {self.id!r} is useless without a nominal voltage. Please " + f"define a nominal voltage for this bus." + ), + category=UserWarning, + stacklevel=find_stack_level(), + ) + self._max_voltage_level = value + + @property + def max_voltage(self) -> Q_[float] | None: + """The maximal voltage of the bus (V) if it is set.""" + return ( + None + if self._max_voltage_level is None or self._nominal_voltage is None + else Q_(self._max_voltage_level * self._nominal_voltage, "V") + ) @property def res_violated(self) -> bool | None: @@ -205,16 +293,23 @@ def res_violated(self) -> bool | None: Returns ``None`` if the bus has no voltage limits are not set. """ - if self._min_voltage is None and self._max_voltage is None: + if (self._min_voltage_level is None and self._max_voltage_level is None) or self._nominal_voltage is None: return None voltages = abs(self._res_voltages_getter(warning=True)) - if self._min_voltage is None: - assert self._max_voltage is not None - return float(max(voltages)) > self._max_voltage - elif self._max_voltage is None: - return float(min(voltages)) < self._min_voltage + if "n" in self.phases: + voltages_level = np.sqrt(3) * voltages / self._nominal_voltage + else: + voltages_level = voltages / self._nominal_voltage + if self._min_voltage_level is None: + assert self._max_voltage_level is not None + return float(max(voltages_level)) > self._max_voltage_level + elif self._max_voltage_level is None: + return float(min(voltages_level)) < self._min_voltage_level else: - return float(min(voltages)) < self._min_voltage or float(max(voltages)) > self._max_voltage + return ( + float(min(voltages_level)) < self._min_voltage_level + or float(max(voltages_level)) > self._max_voltage_level + ) def propagate_limits(self, force: bool = False) -> None: """Propagate the voltage limits to galvanically connected buses. @@ -253,32 +348,45 @@ def propagate_limits(self, force: bool = False) -> None: remaining.update(to_add) if not ( force - or self._min_voltage is None - or element._min_voltage is None - or np.isclose(element._min_voltage, self._min_voltage) + or self._nominal_voltage is None + or element._nominal_voltage is None + or np.isclose(element._nominal_voltage, self._nominal_voltage) + ): + msg = ( + f"Cannot propagate the nominal voltage ({self._nominal_voltage} V) of bus {self.id!r} " + f"to bus {element.id!r} with different nominal voltage ({element._nominal_voltage} V)." + ) + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) + if not ( + force + or self._min_voltage_level is None + or element._min_voltage_level is None + or np.isclose(element._min_voltage_level, self._min_voltage_level) ): msg = ( - f"Cannot propagate the minimum voltage ({self._min_voltage} V) of bus {self.id!r} " - f"to bus {element.id!r} with different minimum voltage ({element._min_voltage} V)." + f"Cannot propagate the minimum voltage level ({self._min_voltage_level}) of bus {self.id!r} " + f"to bus {element.id!r} with different minimum voltage level ({element._min_voltage_level})." ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) if not ( force - or self._max_voltage is None - or element._max_voltage is None - or np.isclose(element._max_voltage, self._max_voltage) + or self._max_voltage_level is None + or element._max_voltage_level is None + or np.isclose(element._max_voltage_level, self._max_voltage_level) ): msg = ( - f"Cannot propagate the maximum voltage ({self._max_voltage} V) of bus {self.id!r} " - f"to bus {element.id!r} with different maximum voltage ({element._max_voltage} V)." + f"Cannot propagate the maximum voltage level ({self._max_voltage_level}) of bus {self.id!r} " + f"to bus {element.id!r} with different maximum voltage level ({element._max_voltage_level})." ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_VOLTAGES) for bus in buses: - bus._min_voltage = self._min_voltage - bus._max_voltage = self._max_voltage + bus._nominal_voltage = self._nominal_voltage + bus._min_voltage_level = self._min_voltage_level + bus._max_voltage_level = self._max_voltage_level def get_connected_buses(self) -> Iterator[Id]: """Get IDs of all the buses galvanically connected to this bus. @@ -313,7 +421,7 @@ def res_voltage_unbalance(self) -> Q_[float]: Voltage Unbalance Factor: - :math:`VUF = \\dfrac{|V_{\\mathrm{n}}|}{|V_{\\mathrm{p}}|} \times 100 (\\%)` + :math:`VUF = \\dfrac{|V_{\\mathrm{n}}|}{|V_{\\mathrm{p}}|} \\times 100 \\, (\\%)` Where :math:`V_{\\mathrm{n}}` is the negative-sequence voltage and :math:`V_{\\mathrm{p}}` is the positive-sequence voltage. @@ -343,8 +451,9 @@ def from_dict(cls, data: JsonDict, *, include_results: bool = True) -> Self: phases=data["phases"], geometry=geometry, potentials=potentials, - min_voltage=data.get("min_voltage"), - max_voltage=data.get("max_voltage"), + nominal_voltage=data.get("nominal_voltage"), + min_voltage_level=data.get("min_voltage_level"), + max_voltage_level=data.get("max_voltage_level"), ) if include_results and "results" in data: self._res_potentials = np.array( @@ -360,10 +469,12 @@ def _to_dict(self, include_results: bool) -> JsonDict: res["potentials"] = [[v.real, v.imag] for v in self._potentials] if self.geometry is not None: res["geometry"] = self.geometry.__geo_interface__ - if self.min_voltage is not None: - res["min_voltage"] = self.min_voltage.magnitude - if self.max_voltage is not None: - res["max_voltage"] = self.max_voltage.magnitude + if self.nominal_voltage is not None: + res["nominal_voltage"] = self.nominal_voltage.magnitude + if self.min_voltage_level is not None: + res["min_voltage_level"] = self.min_voltage_level.magnitude + if self.max_voltage_level is not None: + res["max_voltage_level"] = self.max_voltage_level.magnitude if include_results: potentials = self._res_potentials_getter(warning=True) res["results"] = {"potentials": [[v.real, v.imag] for v in potentials]} diff --git a/roseau/load_flow/models/core.py b/roseau/load_flow/models/core.py index d9d62fbe..0679b5b2 100644 --- a/roseau/load_flow/models/core.py +++ b/roseau/load_flow/models/core.py @@ -10,6 +10,7 @@ from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode from roseau.load_flow.typing import Id from roseau.load_flow.utils import Identifiable, JsonMixin +from roseau.load_flow.utils._exceptions import find_stack_level from roseau.load_flow_engine.cy_engine import CyElement if TYPE_CHECKING: @@ -169,13 +170,7 @@ def _res_getter(self, value: _T | None, warning: bool) -> _T: "ensure the validity of results." ), category=UserWarning, - # Ignore all private RLF stacks: - # - this method - # - _res_..._getter caller function - # - res_... property - # - ureg wrappers - # TODO: dynamic stacklevel computation similar to pandas and matplotlib - stacklevel=6, + stacklevel=find_stack_level(), ) self._fetch_results = False return value diff --git a/roseau/load_flow/models/lines/lines.py b/roseau/load_flow/models/lines/lines.py index 8a263eac..66d7994d 100644 --- a/roseau/load_flow/models/lines/lines.py +++ b/roseau/load_flow/models/lines/lines.py @@ -10,7 +10,7 @@ from roseau.load_flow.models.buses import Bus from roseau.load_flow.models.grounds import Ground from roseau.load_flow.models.lines.parameters import LineParameters -from roseau.load_flow.typing import ComplexArray, Id, JsonDict +from roseau.load_flow.typing import ComplexArray, FloatArray, Id, JsonDict from roseau.load_flow.units import Q_, ureg_wraps from roseau.load_flow_engine.cy_engine import CyShuntLine, CySimplifiedLine @@ -39,6 +39,7 @@ def __init__( length: float | Q_[float], phases: str | None = None, ground: Ground | None = None, + max_loading: float | Q_[float] = 1, geometry: BaseGeometry | None = None, ) -> None: """Line constructor. @@ -70,6 +71,11 @@ def __init__( ground: The ground element attached to the line if it has shunt admittance. + max_loading: + The maximum loading of the line (unitless). It is not used in the load flow. It is used with the + `ampacities` of the :class:`LineParameters` to compute the + :meth:`~roseau.load_flow.Line.max_currents` of the line. + geometry: The geometry of the line i.e. the linestring. """ @@ -94,6 +100,7 @@ def __init__( self.ground = ground self.length = length self.parameters = parameters + self.max_loading = max_loading self._initialized = True # Handle the ground @@ -131,6 +138,17 @@ def __init__( self._z_line_inv = np.linalg.inv(self._z_line) self._yg = self._y_shunt.sum(axis=1) # y_ig = Y_ia + Y_ib + Y_ic + Y_in for i in {a, b, c, n} + def __repr__(self) -> str: + s = ( + f"<{type(self).__name__}: id={self.id!r}, bus1={self.bus1.id!r}, bus2={self.bus2.id!r}, " + f"phases1={self.phases1!r}, phases2={self.phases2!r}" + ) + for attr, val, tp in (("length", self._length, float), ("max_loading", self._max_loading, float)): + if val is not None: + s += f", {attr}={tp(val)!r}" + s += ">" + return s + @property def phases(self) -> str: """The phases of the line. This is an alias for :attr:`phases1` and :attr:`phases2`.""" @@ -221,11 +239,33 @@ def y_shunt(self) -> Q_[ComplexArray]: return self._parameters._y_shunt * self._length @property - def max_current(self) -> Q_[float] | None: - """The maximum current loading of the line (in A).""" - # Do not add a setter. The user must know that if they change the max_current, it changes + @ureg_wraps("", (None,)) + def max_loading(self) -> Q_[float]: + """The maximum loading of the line (unitless)""" + return self._max_loading + + @max_loading.setter + @ureg_wraps(None, (None, "")) + def max_loading(self, value: float | Q_[float]) -> None: + if value <= 0: + msg = f"Maximum loading must be positive: {value} was provided." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_MAX_LOADING_VALUE) + self._max_loading: float = value + + @property + def ampacities(self) -> Q_[FloatArray] | None: + """The ampacities of the line (in A).""" + # Do not add a setter. The user must know that if they change the ampacities, it changes # for all lines that share the parameters. It is better to set it on the parameters. - return self._parameters.max_current + return self._parameters.ampacities + + @property + def max_currents(self) -> Q_[FloatArray] | None: + """The maximum current of the line defined as `max_loading * parameters.ampacities` (in A).""" + # Do not add a setter. Only `max_loading` can be altered by the user + amp = self._parameters._ampacities + return None if amp is None else Q_(amp * self._max_loading, "A") @property def with_shunt(self) -> bool: @@ -303,18 +343,23 @@ def res_power_losses(self) -> Q_[ComplexArray]: """Get the power losses in the line (in VA).""" return self._res_power_losses_getter(warning=True) + @property + def res_loading(self) -> Q_[FloatArray] | None: + """The loading of the line (unitless) if ``self.parameters.ampacities`` is set, else ``None``.""" + if (amp := self._parameters._ampacities) is None: + return None + currents1, currents2 = self._res_currents_getter(warning=True) + return Q_(np.maximum(abs(currents1), abs(currents2)) / amp, "") + @property def res_violated(self) -> bool | None: - """Whether the line current exceeds the maximum current (loading > 100%). + """Whether the line current loading exceeds its maximal loading. - Returns ``None`` if the maximum current is not set. + Returns ``None`` if the ``self.parameters.ampacities`` is not set. """ - i_max = self._parameters._max_current - if i_max is None: + if (loading := self.res_loading) is None: return None - currents1, currents2 = self._res_currents_getter(warning=True) - # True if any phase is overloaded - return float(np.max([abs(currents1), abs(currents2)])) > i_max + return bool((loading.m > self._max_loading).any()) # # Json Mixin interface @@ -327,6 +372,7 @@ def _to_dict(self, include_results: bool) -> JsonDict: "bus2": self.bus2.id, "length": self._length, "params_id": self._parameters.id, + "max_loading": self._max_loading, } if self.ground is not None: res["ground"] = self.ground.id diff --git a/roseau/load_flow/models/lines/parameters.py b/roseau/load_flow/models/lines/parameters.py index 71c80e60..10ec501b 100644 --- a/roseau/load_flow/models/lines/parameters.py +++ b/roseau/load_flow/models/lines/parameters.py @@ -1,17 +1,28 @@ import logging import re import warnings +from collections.abc import Sequence from importlib import resources from pathlib import Path -from typing import Literal, NoReturn +from typing import Literal, NoReturn, TypeAlias, TypeVar import numpy as np import numpy.linalg as nplin import pandas as pd -from typing_extensions import Self, deprecated +from numpy._typing import NDArray +from typing_extensions import Self +from roseau.load_flow._compat import StrEnum from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode -from roseau.load_flow.typing import ComplexArray, ComplexArrayLike2D, Id, JsonDict +from roseau.load_flow.typing import ( + ComplexArray, + ComplexArrayLike2D, + Float, + FloatArray, + FloatScalarOrArrayLike1D, + Id, + JsonDict, +) from roseau.load_flow.units import Q_, ureg_wraps from roseau.load_flow.utils import ( EPSILON_0, @@ -22,35 +33,40 @@ RHO, TAN_D, CatalogueMixin, - ConductorType, F, Identifiable, - InsulatorType, + Insulator, JsonMixin, LineType, + Material, ) +from roseau.load_flow.utils._exceptions import find_stack_level logger = logging.getLogger(__name__) -_DEFAULT_CONDUCTOR_TYPE = { - LineType.OVERHEAD: ConductorType.ACSR, - LineType.TWISTED: ConductorType.AL, - LineType.UNDERGROUND: ConductorType.AL, +_DEFAULT_MATERIAL = { + LineType.OVERHEAD: Material.ACSR, + LineType.TWISTED: Material.AL, + LineType.UNDERGROUND: Material.AL, } -_DEFAULT_INSULATION_TYPE = { - LineType.OVERHEAD: InsulatorType.UNKNOWN, # Not used for overhead lines - LineType.TWISTED: InsulatorType.XLPE, - LineType.UNDERGROUND: InsulatorType.PVC, +_DEFAULT_INSULATOR = { + LineType.OVERHEAD: Insulator.NONE, # Not used for overhead lines + LineType.TWISTED: Insulator.XLPE, + LineType.UNDERGROUND: Insulator.PVC, } +MaterialArray: TypeAlias = NDArray[Material] +InsulatorArray: TypeAlias = NDArray[Insulator] +_StrEnumType: TypeAlias = TypeVar("_StrEnumType", bound=StrEnum) + class LineParameters(Identifiable, JsonMixin, CatalogueMixin[pd.DataFrame]): """Parameters that define electrical models of lines.""" _type_re = "|".join(x.code() for x in LineType) - _material_re = "|".join(x.code() for x in ConductorType) - _insulator_re = "|".join(x.code() for x in InsulatorType) + _material_re = "|".join(x.code() for x in Material) + _insulator_re = "|".join(x.code() for x in Insulator) _section_re = r"[1-9][0-9]*" _REGEXP_LINE_TYPE_NAME = re.compile( rf"^({_type_re})_({_material_re})_({_insulator_re}_)?{_section_re}$", flags=re.IGNORECASE @@ -62,11 +78,11 @@ def __init__( id: Id, z_line: ComplexArrayLike2D, y_shunt: ComplexArrayLike2D | None = None, - max_current: float | Q_[float] | None = None, + ampacities: FloatScalarOrArrayLike1D | None = None, line_type: LineType | None = None, - conductor_type: ConductorType | None = None, - insulator_type: InsulatorType | None = None, - section: float | Q_[float] | None = None, + materials: Material | Sequence[Material] | None = None, + insulators: Insulator | Sequence[Insulator] | None = None, + sections: FloatScalarOrArrayLike1D | None = None, ) -> None: """LineParameters constructor. @@ -80,28 +96,42 @@ def __init__( y_shunt: The Y matrix of the line (Siemens/km). This field is optional if the line has no shunt part. - max_current: - The maximum current loading of the line (A). The maximum current is optional, it is + ampacities: + The ampacities of the line (A). The ampacities are optional, they are not used in the load flow but can be used to check for overloading. See also :meth:`Line.res_violated `. + When a scalar value is provided, it creates an array with the same ampacity for each conductor. + The scalar value passed is assumed to be the ampacity of each conductor. To create a + different ampacity per conductor, provide a vector of current values with the same length as + the number of conductor of the line. + line_type: The type of the line (overhead, underground, twisted). The line type is optional, it is informative only and is not used in the load flow. This field gets automatically filled when the line parameters are created from a geometric model or from the catalogue. - conductor_type: - The type of the conductor material (Aluminum, Copper, ...). The conductor type is - optional, it is informative only and is not used in the load flow. This field gets + materials: + The types of the conductor material (Aluminum, Copper, ...). The materials are + optional, they are informative only and are not used in the load flow. This field gets automatically filled when the line parameters are created from a geometric model or from the catalogue. - insulator_type: - The type of the cable insulator (PVC, XLPE, ...). The insulator type is optional, - it is informative only and is not used in the load flow. This field gets + insulators: + The types of the cable insulator (PVC, XLPE, ...). The insulators are optional, + they are informative only and are not used in the load flow. This field gets automatically filled when the line parameters are created from a geometric model or from the catalogue. + + sections: + The sections of the conductor. The sections are optional, thy are informative only and are not used in + the load flow. This field gets automatically filled when the line parameters are created from a + geometric model or from the catalogue. + + When a scalar value is provided, it creates an array with the same section for each conductor. To + create different sections per conductor, provide a vector of section values with the same length as + the number of conductor of the line. """ super().__init__(id) self._z_line = np.array(z_line, dtype=np.complex128) @@ -111,24 +141,30 @@ def __init__( else: self._with_shunt = not np.allclose(y_shunt, 0) self._y_shunt = np.array(y_shunt, dtype=np.complex128) - self.max_current = max_current - self._line_type = line_type - self._conductor_type = conductor_type - self._insulator_type = insulator_type - self._section: float = section + self._size = self._z_line.shape[0] + self._ampacities = None + self.ampacities = ampacities + self._line_type = None if pd.isna(line_type) else LineType(line_type) + self._materials = None + self.materials = materials + self._insulators = None + self.insulators = insulators + self._sections = None + self.sections = sections self._check_matrix() def __repr__(self) -> str: s = f"<{type(self).__name__}: id={self.id!r}" - for attr, val, tp in ( - ("max_current", self._max_current, float), - ("line_type", self._line_type, str), - ("conductor_type", self._conductor_type, str), - ("insulator_type", self._insulator_type, str), - ("section", self._section, float), - ): - if val is not None: - s += f", {attr}={tp(val)!r}" + if self._line_type is not None: + s += f", line_type={str(self._line_type)!r}" + if self._insulators is not None: + s += f", insulators={self._insulators}" + if self._materials is not None: + s += f", materials={self._materials}" + if self._sections is not None: + s += f", sections={self._sections}" + if self._ampacities is not None: + s += f", ampacities={self._ampacities}" s += ">" return s @@ -139,6 +175,43 @@ def __eq__(self, other: object) -> bool: self.id == other.id and self._z_line.shape == other._z_line.shape and np.allclose(self._z_line, other._z_line) + and ( + (self._ampacities is None and other._ampacities is None) + or ( + self._ampacities is not None + and other._ampacities is not None + and self._ampacities.shape == other._ampacities.shape + and np.allclose(self._ampacities, other._ampacities) + ) + ) + and self._line_type == other._line_type + and ( + (self._materials is None and other._materials is None) + or ( + self._materials is not None + and other._materials is not None + and self._materials.shape == other._materials.shape + and np.array_equal(self._materials, other._materials) + ) + ) + and ( + (self._insulators is None and other._insulators is None) + or ( + self._insulators is not None + and other._insulators is not None + and self._insulators.shape == other._insulators.shape + and np.array_equal(self._insulators, other._insulators) + ) + ) + and ( + (self._sections is None and other._sections is None) + or ( + self._sections is not None + and other._sections is not None + and self._sections.shape == other._sections.shape + and np.allclose(self._sections, other._sections) + ) + ) and ( (not self._with_shunt and not other._with_shunt) or ( @@ -165,9 +238,9 @@ def with_shunt(self) -> bool: return self._with_shunt @property - def max_current(self) -> Q_[float] | None: - """The maximum current loading of the line (A) if it is set.""" - return None if self._max_current is None else Q_(self._max_current, "A") + def ampacities(self) -> Q_[FloatArray] | None: + """The ampacities of the line (A) if it is set.""" + return None if self._ampacities is None else Q_(self._ampacities, "A") @property def line_type(self) -> LineType | None: @@ -175,24 +248,37 @@ def line_type(self) -> LineType | None: return self._line_type @property - def conductor_type(self) -> ConductorType | None: - """The type of the conductor material. Informative only, it has no impact on the load flow.""" - return self._conductor_type + def materials(self) -> MaterialArray | None: + """The materials of the conductors. Informative only, it has no impact on the load flow.""" + return self._materials @property - def insulator_type(self) -> InsulatorType | None: - """The type of the cable insulator. Informative only, it has no impact on the load flow.""" - return self._insulator_type + def insulators(self) -> InsulatorArray | None: + """The insulators of the conductors. Informative only, it has no impact on the load flow.""" + return self._insulators @property - def section(self) -> Q_[float] | None: - """The cross-section area of the cable (in mm²). Informative only, it has no impact on the load flow.""" - return None if self._section is None else Q_(self._section, "mm**2") + def sections(self) -> Q_[FloatArray] | None: + """The cross-section areas of the cable (in mm²). Informative only, it has no impact on the load flow.""" + return None if self._sections is None else Q_(self._sections, "mm**2") - @max_current.setter + @ampacities.setter @ureg_wraps(None, (None, "A")) - def max_current(self, value: float | Q_[float] | None) -> None: - self._max_current = value + def ampacities(self, value: FloatScalarOrArrayLike1D | None) -> None: + self._ampacities = self._check_positive_float_array(value=value, name="ampacities", unit="A", size=self._size) + + @materials.setter + def materials(self, value: Material | Sequence[Material] | None) -> None: + self._materials = self._check_enum_array(value=value, enum_class=Material, name="materials", size=self._size) + + @insulators.setter + def insulators(self, value: Insulator | Sequence[Insulator] | None) -> None: + self._insulators = self._check_enum_array(value=value, enum_class=Insulator, name="insulators", size=self._size) + + @sections.setter + @ureg_wraps(None, (None, "mm**2")) + def sections(self, value: FloatScalarOrArrayLike1D | None) -> None: + self._sections = self._check_positive_float_array(value=value, name="sections", unit="mm²", size=self._size) @staticmethod def _sym_to_zy_simple(n, z0: complex, z1: complex, y0: complex, y1: complex) -> tuple[ComplexArray, ComplexArray]: @@ -243,7 +329,7 @@ def from_sym( xpn: float | Q_[float] | None = None, bn: float | Q_[float] | None = None, bpn: float | Q_[float] | None = None, - max_current: float | Q_[float] | None = None, + ampacities: FloatScalarOrArrayLike1D | None = None, ) -> Self: """Create line parameters from a symmetric model. @@ -267,16 +353,16 @@ def from_sym( Neutral impedance - :math:`r_{\\mathrm{n}}+x_{\\mathrm{n}}\\cdot j` (ohms/km) xpn: - Phase to neutral reactance (ohms/km) + Phase-to-neutral reactance (ohms/km) bn: Neutral susceptance (siemens/km) bpn: - Phase to neutral susceptance (siemens/km) + Phase-to-neutral susceptance (siemens/km) - max_current: - An optional maximum current loading of the line (A). It is not used in the load flow. + ampacities: + An optional ampacities loading of the line (A). It is not used in the load flow. Returns: The created line parameters. @@ -286,8 +372,9 @@ def from_sym( `, the model may be "degraded" if the computed impedance matrix is not invertible. """ - z_line, y_shunt = cls._sym_to_zy(id=id, z0=z0, z1=z1, y0=y0, y1=y1, zn=zn, zpn=1j * xpn, bn=bn, bpn=bpn) - return cls(id=id, z_line=z_line, y_shunt=y_shunt, max_current=max_current) + zpn = None if pd.isna(xpn) else 1j * xpn + z_line, y_shunt = cls._sym_to_zy(id=id, z0=z0, z1=z1, y0=y0, y1=y1, zn=zn, zpn=zpn, bn=bn, bpn=bpn) + return cls(id=id, z_line=z_line, y_shunt=y_shunt, ampacities=ampacities) @classmethod def _sym_to_zy( @@ -324,13 +411,13 @@ def _sym_to_zy( Neutral impedance - :math:`r_{\\mathrm{n}}+x_{\\mathrm{n}}\\cdot j` (ohms/km) zpn: - Phase to neutral impedance (ohms/km) + Phase-to-neutral impedance (ohms/km) bn: Neutral susceptance (siemens/km) bpn: - Phase to neutral susceptance (siemens/km) + Phase-to-neutral susceptance (siemens/km) Returns: The impedance and admittance matrices. @@ -352,12 +439,14 @@ def _sym_to_zy( if not any_neutral_na: # Build the complex yn = bn * 1j # Neutral shunt admittance (Siemens/km) - ypn = bpn * 1j # Phase to neutral shunt admittance (Siemens/km) + ypn = bpn * 1j # Phase-to-neutral shunt admittance (Siemens/km) - if zpn == 0 and zn == 0: - logger.warning( + if np.isclose(zpn, 0) and np.isclose(zn, 0): + warnings.warn( f"The line model {id!r} does not have neutral elements. It will be modelled as a 3 wires line " - f"instead." + f"instead.", + category=UserWarning, + stacklevel=find_stack_level(), ) else: z_line = np.pad(z_line, (0, 1), mode="constant", constant_values=zpn) @@ -367,7 +456,7 @@ def _sym_to_zy( # Check the validity of the resulting matrices det_z = nplin.det(z_line) - if abs(det_z) == 0: + if np.isclose(abs(det_z), 0): if choice == 0: # Warn the user that the PwF data are bad... logger.warning( @@ -391,19 +480,22 @@ def _sym_to_zy( return z_line, y_shunt @classmethod - @ureg_wraps(None, (None, None, None, None, None, "mm**2", "mm**2", "m", "m", "A")) + @ureg_wraps(None, (None, None, None, None, None, None, None, "mm**2", "mm**2", "m", "m", "A", "A")) def from_geometry( cls, id: Id, *, line_type: LineType, - conductor_type: ConductorType | None = None, - insulator_type: InsulatorType | None = None, + material: Material | None = None, + material_neutral: Material | None = None, + insulator: Insulator | None = None, + insulator_neutral: Insulator | None = None, section: float | Q_[float], section_neutral: float | Q_[float] | None = None, height: float | Q_[float], external_diameter: float | Q_[float], - max_current: float | Q_[float] | None = None, + ampacity: float | Q_[float] | None = None, + ampacity_neutral: float | Q_[float] | None = None, ) -> Self: """Create line parameters from its geometry. @@ -414,19 +506,29 @@ def from_geometry( line_type: Overhead or underground. See also :class:`~roseau.load_flow.LineType`. - conductor_type: - Type of the conductor. If ``None``, ``ACSR`` is used for overhead lines and ``AL`` - for underground or twisted lines. See also :class:`~roseau.load_flow.ConductorType`. + material: + Material of the conductor. If ``None``, ``ACSR`` is used for overhead lines and ``AL`` + for underground or twisted lines. See also :class:`~roseau.load_flow.Material`. - insulator_type: + material_neutral: + Material of the conductor If ``None``, it will be the same as the insulator of the + other phases. + + insulator: Type of insulator. If ``None``, ``XLPE`` is used for twisted lines and ``PVC`` for - underground lines. See also :class:`~roseau.load_flow.InsulatorType`. + underground lines. See also :class:`~roseau.load_flow.Insulator`. Please provide + :attr:`~roseau.load_flow.Insulator.NONE` for cable without insulator. + + insulator_neutral: + Type of insulator. If ``None``, it will be the same as the insulator of the other phases. See also + :class:`~roseau.load_flow.Insulator`. Please provide :attr:`~roseau.load_flow.Insulator.NONE` for + cable without insulator. section: Cross-section surface area of the phases (mm²). section_neutral: - Cross-section surface area of the neutral (mm²). If None it will be the same as the + Cross-section surface area of the neutral (mm²). If ``None`` it will be the same as the section of the other phases. height: @@ -436,8 +538,12 @@ def from_geometry( external_diameter: External diameter of the cable (m). - max_current: - An optional maximum current loading of the line (A). It is not used in the load flow. + ampacity: + An optional ampacity of the phases of the line (A). It is not used in the load flow. + + ampacity_neutral: + An optional ampacity of the neutral of the line (A). It is not used in the load flow. + If ``None`` it will be the same as the ampacity of the other phases. Returns: The created line parameters. @@ -445,38 +551,44 @@ def from_geometry( See Also: :ref:`Line parameters alternative constructor documentation ` """ - z_line, y_shunt, line_type, conductor_type, insulator_type, section = cls._from_geometry( + z_line, y_shunt, line_type, materials, insulators, sections = cls._from_geometry( id=id, line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, + material=material, + material_neutral=material_neutral, + insulator=insulator, + insulator_neutral=insulator_neutral, section=section, section_neutral=section_neutral, height=height, external_diameter=external_diameter, ) + ampacities = [ampacity, ampacity, ampacity, ampacity_neutral] return cls( id=id, z_line=z_line, y_shunt=y_shunt, - max_current=max_current, + ampacities=ampacities, line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, - section=section, + materials=materials, + insulators=insulators, + sections=sections, ) - @staticmethod + @classmethod def _from_geometry( + cls, id: Id, line_type: LineType, - conductor_type: ConductorType | None, - insulator_type: InsulatorType | None, + material: Material | None, + material_neutral: Material | None, + insulator: Insulator | None, + insulator_neutral: Insulator | None, section: float, section_neutral: float | None, height: float, external_diameter: float, - ) -> tuple[ComplexArray, ComplexArray, LineType, ConductorType, InsulatorType, float]: + ) -> tuple[ComplexArray, ComplexArray, LineType, MaterialArray, InsulatorArray, FloatArray]: """Create impedance and admittance matrices using a geometric model. Args: @@ -486,17 +598,28 @@ def _from_geometry( line_type: Overhead, twisted overhead, or underground. - conductor_type: - Type of the conductor material (Aluminum, Copper, ...). + material: + Type of the conductor material (Aluminum, Copper, ...) for the phases. + + material_neutral: + Type of the conductor material (Aluminum, Copper, ...) for the neutral. If ``None`` it will be the same + as the material of the other phases. - insulator_type: - Type of insulator. + insulator: + Type of insulator. If ``None``, ``XLPE`` is used for twisted lines and ``PVC`` for + underground lines. See also :class:`~roseau.load_flow.Insulator`. Please provide + :attr:`~roseau.load_flow.Insulator.NONE` for cable without insulator. + + insulator_neutral: + Type of insulator. If ``None``, it will be the same as the insulator of the other phases. See also + :class:`~roseau.load_flow.Insulator`. Please provide :attr:`~roseau.load_flow.Insulator.NONE` for + cable without insulator. section: Surface of the phases (mm²). section_neutral: - Surface of the neutral (mm²). If None it will be the same as the section of the + Surface of the neutral (mm²). If ``None`` it will be the same as the section of the other phases. height: @@ -507,65 +630,44 @@ def _from_geometry( External diameter of the wire (m). Returns: - The impedance and admittance matrices. + The impedance matrix, the admittance matrix, the materials array, the insulators array and + the sections array. """ - # dpp = data["dpp"] # Distance phase to phase (m) - # dpn = data["dpn"] # Distance phase to neutral (m) + # dpp = data["dpp"] # Distance phase-to-phase (m) + # dpn = data["dpn"] # Distance phase-to-neutral (m) # dsh = data["dsh"] # Diameter of the sheath (mm) line_type = LineType(line_type) - if conductor_type is None: - conductor_type = _DEFAULT_CONDUCTOR_TYPE[line_type] - if insulator_type is None: - insulator_type = _DEFAULT_INSULATION_TYPE[line_type] + if material is None: + material = _DEFAULT_MATERIAL[line_type] + if insulator is None: + insulator = _DEFAULT_INSULATOR[line_type] + if material_neutral is None: + material_neutral = material + if insulator_neutral is None: + insulator_neutral = insulator if section_neutral is None: section_neutral = section - conductor_type = ConductorType(conductor_type) - insulator_type = InsulatorType(insulator_type) + material = Material(material) + material_neutral = Material(material_neutral) + if insulator is not None: + insulator = Insulator(insulator) + if insulator_neutral is not None: + insulator_neutral = Insulator(insulator_neutral) # Geometric configuration - if line_type in (LineType.OVERHEAD, LineType.TWISTED): - # TODO This configuration is for twisted lines... Create a overhead configuration. - if height <= 0: - msg = f"The height of a '{line_type}' line must be a positive number." - logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_LINE_MODEL) - x = np.sqrt(3) * external_diameter / 8 - coord = np.array( - [ - [-x, height + external_diameter / 8], - [x, height + external_diameter / 8], - [0, height - external_diameter / 4], - [0, height], - ] - ) # m - coord_prim = np.array( - [ - [-x, -height - external_diameter / 8], - [x, -height - external_diameter / 8], - [0, -height + external_diameter / 4], - [0, -height], - ] - ) # m - epsilon = EPSILON_0.m - elif line_type == LineType.UNDERGROUND: - if height >= 0: - msg = f"The height of a '{line_type}' line must be a negative number." - logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_LINE_MODEL) - x = np.sqrt(2) * external_diameter / 8 - coord = np.array([[-x, height - x], [x, height - x], [x, height + x], [-x, height + x]]) # m - xp = x * 3 - coord_prim = np.array([[-xp, height - xp], [xp, height - xp], [xp, height + xp], [-xp, height + xp]]) # m - epsilon = (EPSILON_0 * EPSILON_R[insulator_type]).m - else: - msg = f"The line type {line_type!r} of the line {id!r} is unknown." - logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_LINE_TYPE) + coord, coord_prim, epsilon, epsilon_neutral = cls._get_geometric_configuration( + line_type=line_type, + insulator=insulator, + insulator_neutral=insulator_neutral, + height=height, + external_diameter=external_diameter, + ) # Distance computation - sections = np.array([section, section, section, section_neutral], dtype=np.float64) * 1e-6 # surfaces (m2) - radius = np.sqrt(sections / PI) # radius (m) + sections_mm2 = np.array([section, section, section, section_neutral], dtype=np.float64) + sections_m2 = sections_mm2 * 1e-6 # surfaces (m2) + radius = np.sqrt(sections_m2 / PI) # radius (m) phase_radius, neutral_radius = radius[0], radius[3] if line_type == LineType.TWISTED: max_radii = external_diameter / 4 @@ -604,62 +706,115 @@ def _from_geometry( distance_prim = np.sqrt(np.einsum("ijk,ijk->ij", diff, diff)) # Useful matrices - mask_diagonal = np.eye(4, dtype=np.bool_) - mask_off_diagonal = ~mask_diagonal minus = -np.ones((4, 4), dtype=np.float64) np.fill_diagonal(minus, 1) # Electrical parameters - r = RHO[conductor_type].m / sections * np.eye(4, dtype=np.float64) * 1e3 # resistance (ohm/km) - distance[mask_diagonal] = gmr + materials = np.array([material, material, material, material_neutral], dtype=np.object_) + rho = np.array([RHO[x].m for x in materials], dtype=np.float64) + r = rho / sections_m2 * np.eye(4, dtype=np.float64) * 1e3 # resistance (ohm/km) + np.fill_diagonal(distance, gmr) inductance = MU_0.m / (2 * PI) * np.log(1 / distance) * 1e3 # H/m->H/km - distance[mask_diagonal] = radius - lambdas = 1 / (2 * PI * epsilon) * np.log(distance_prim / distance) # m/F + np.fill_diagonal(distance, radius) + epsilons = np.array([epsilon, epsilon, epsilon, epsilon_neutral], dtype=np.float64) + lambdas = 1 / (2 * PI * epsilons) * np.log(distance_prim / distance) # m/F # Extract the conductivity and the capacities from the lambda (potential coefficients) lambda_inv = nplin.inv(lambdas) * 1e3 # capacities (F/km) - c = np.zeros((4, 4), dtype=np.float64) # capacities (F/km) - c[mask_diagonal] = np.einsum("ij,ij->i", lambda_inv, minus) - c[mask_off_diagonal] = -lambda_inv[mask_off_diagonal] + c = -lambda_inv.copy() # capacities (F/km) + np.fill_diagonal(c, np.einsum("ij,ij->i", lambda_inv, minus)) g = np.zeros((4, 4), dtype=np.float64) # conductance (S/km) omega = OMEGA.m - g[mask_diagonal] = TAN_D[insulator_type].magnitude * np.einsum("ii->i", c) * omega + insulators = np.array([insulator, insulator, insulator, insulator_neutral], dtype=np.object_) + tan_d = np.array([TAN_D[x].m for x in insulators], dtype=np.float64) + np.fill_diagonal(g, tan_d * np.einsum("ii->i", c) * omega) # Build the impedance and admittance matrices z_line = r + inductance * omega * 1j y = g + c * omega * 1j # Compute the shunt admittance matrix from the admittance matrix - y_shunt = np.zeros((4, 4), dtype=np.complex128) - y_shunt[mask_diagonal] = np.einsum("ij->i", y) - y_shunt[mask_off_diagonal] = -y[mask_off_diagonal] + y_shunt = -(y.copy()) + np.fill_diagonal(y_shunt, np.einsum("ij->i", y)) - return z_line, y_shunt, line_type, conductor_type, insulator_type, section + return z_line, y_shunt, line_type, materials, insulators, sections_mm2 - @classmethod - @deprecated( - "The method LineParameters.from_name_mv() is deprecated and will be removed in a future " - "version. Use LineParameters.from_coiffier() instead.", - category=FutureWarning, - ) - @ureg_wraps(None, (None, None, "A")) - def from_name_mv(cls, name: str, max_current: float | Q_[float] | None = None) -> Self: - """Get the electrical parameters of a MV line from its canonical name (France specific model) + @staticmethod + def _get_geometric_configuration( + line_type: LineType, + insulator: Insulator | None, + insulator_neutral: Insulator | None, + height: float, + external_diameter: float, + ) -> tuple[FloatArray, FloatArray, float, float]: + """A utility function to retrieve the geometric configurations of the lines for the `from_geometry` method. Args: - name: - The canonical name of the line parameters. It must be in the format - `lineType_conductorType_crossSection`. E.g. "U_AL_150". + line_type: + Overhead, twisted overhead, or underground. + + insulator: + Type of insulator for the phases. + + insulator_neutral: + Type of insulator for the neutral. If ``None`` it will be the same as the insulator of the other phases. + + height: + Height of the line (m). Positive for overhead lines and negative for underground + lines. - max_current: - An optional maximum current loading of the line (A). It is not used in the load flow. + external_diameter: + External diameter of the wire (m). Returns: - The corresponding line parameters. + Four elements in a tuple: + * the coordinates of the centers of the conductors (4x2 array) + * the coordinates of the images of the centers of the conductors (4x2 array) + * the permittivity for the phase insulator (F/m). + * the permittivity for the neutral insulator (F/m). """ - obj = cls.from_coiffier_model(name=name, nb_phases=3) - obj.max_current = max_current - return obj + if line_type in (LineType.OVERHEAD, LineType.TWISTED): + # TODO This configuration is for twisted lines... Create a overhead configuration. + if height <= 0: + msg = f"The height of a '{line_type}' line must be a positive number." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_LINE_MODEL) + x = np.sqrt(3) * external_diameter / 8 + coord = np.array( + [ + [-x, height + external_diameter / 8], + [x, height + external_diameter / 8], + [0, height - external_diameter / 4], + [0, height], + ] + ) # m + coord_prim = np.array( + [ + [-x, -height - external_diameter / 8], + [x, -height - external_diameter / 8], + [0, -height + external_diameter / 4], + [0, -height], + ] + ) # m + epsilon = EPSILON_0.m + epsilon_neutral = EPSILON_0.m # TODO assume no insulator. Maybe valid for overhead but not for twisted... + elif line_type == LineType.UNDERGROUND: + if height >= 0: + msg = f"The height of a '{line_type}' line must be a negative number." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_LINE_MODEL) + x = np.sqrt(2) * external_diameter / 8 + coord = np.array([[-x, height - x], [x, height - x], [x, height + x], [-x, height + x]]) # m + xp = x * 3 + coord_prim = np.array([[-xp, height - xp], [xp, height - xp], [xp, height + xp], [-xp, height + xp]]) # m + epsilon = (EPSILON_0 * EPSILON_R[insulator]).m + epsilon_neutral = (EPSILON_0 * EPSILON_R[insulator_neutral]).m + else: + msg = f"The line type {line_type!r} of the line {id!r} is unknown." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_LINE_TYPE) + + return coord, coord_prim, epsilon, epsilon_neutral @classmethod def from_coiffier_model(cls, name: str, nb_phases: int = 3, id: Id | None = None) -> Self: # noqa: C901 @@ -668,7 +823,7 @@ def from_coiffier_model(cls, name: str, nb_phases: int = 3, id: Id | None = None Args: name: The canonical name of the line parameters. It must be in the format - `lineType_conductorType_crossSection`. E.g. "U_AL_150". + `LineType_Material_CrossSection`. E.g. "U_AL_150". nb_phases: The number of phases of the line between 1 and 4, defaults to 3. It represents the @@ -685,35 +840,35 @@ def from_coiffier_model(cls, name: str, nb_phases: int = 3, id: Id | None = None try: if cls._REGEXP_LINE_TYPE_NAME.fullmatch(string=name) is None: raise AssertionError - line_type_s, conductor_type_s, section_s = name.split("_") + line_type_s, material_s, section_s = name.split("_") line_type = LineType(line_type_s) - conductor_type = ConductorType(conductor_type_s) + material = Material(material_s) section = Q_(float(section_s), "mm**2") except Exception: msg = ( f"The Coiffier line parameter name {name!r} is not valid, expected format is " - "'LineType_ConductorType_CrossSection'." + "'LineType_Material_CrossSection'." ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TYPE_NAME_SYNTAX) from None - r = RHO[conductor_type] / section + r = RHO[material] / section if line_type == LineType.OVERHEAD: c_b1 = Q_(50, "µF/km") c_b2 = Q_(0, "µF/(km*mm**2)") x = Q_(0.35, "ohm/km") - if conductor_type == ConductorType.AA: + if material == Material.AA: if section <= 50: c_imax = 14.20 elif 50 < section <= 100: c_imax = 12.10 else: c_imax = 15.70 - elif conductor_type in {ConductorType.AL, ConductorType.AM}: + elif material in {Material.AL, Material.AM}: c_imax = 16.40 - elif conductor_type == ConductorType.CU: + elif material == Material.CU: c_imax = 21 - elif conductor_type == ConductorType.LA: + elif material == Material.LA: if section <= 50: c_imax = 13.60 elif 50 < section <= 100: @@ -734,9 +889,9 @@ def from_coiffier_model(cls, name: str, nb_phases: int = 3, id: Id | None = None else: c_b1 = Q_(2240, "µF/km") c_b2 = Q_(15, "µF/(km*mm**2)") - if conductor_type == ConductorType.AL: + if material == Material.AL: c_imax = 16.5 - elif conductor_type == ConductorType.CU: + elif material == Material.CU: c_imax = 20 else: # Other material: AA, AM, LA. c_imax = 16.5 @@ -750,7 +905,7 @@ def from_coiffier_model(cls, name: str, nb_phases: int = 3, id: Id | None = None z_line = (r + x * 1j) * np.eye(nb_phases, dtype=np.float64) # in ohms/km y_shunt = b * 1j * np.eye(nb_phases, dtype=np.float64) # in siemens/km - max_current = c_imax * section.m**0.62 # A + ampacities = c_imax * section.m**0.62 # A if id is None: id = name return cls( @@ -758,9 +913,9 @@ def from_coiffier_model(cls, name: str, nb_phases: int = 3, id: Id | None = None z_line=z_line, y_shunt=y_shunt, line_type=line_type, - conductor_type=conductor_type, - section=section, - max_current=max_current, + materials=material, + sections=section, + ampacities=ampacities, ) # @@ -873,7 +1028,7 @@ def from_power_factory( # noqa: C901 inom: PwF parameter `sline` or `InomAir` (Rated Current in ground or in air). The rated - current in (kA) of the line. It is used as the maximum current for analysis of network + current in (kA) of the line. It is used as the ampacity for analysis of network constraint violations. Pass the `sline` parameter if the line is an underground cable (cohl='Cable') or the `InomAir` parameter if the line is an overhead line (cohl='OHL'). @@ -886,15 +1041,17 @@ def from_power_factory( # noqa: C901 insulation: PwF parameter `imiso` (Insulation Material). The material used for the conductor's insulation. It can be one of `'PVC'` (`0`), `'XLPE'` (`1`), `'Mineral'` (`2`), - `'Paper'` (`3`) or `'EPR'` (`4`). + `'Paper'` (`3`) or `'EPR'` (`4`). If ``None`` is provided, the insulation is not filled in the + resulting instance. section: - PwF parameter `qurs` (Nominal Cross Section). The nominal cross-sectional area of + PwF parameter `qurs` (Nominal Cross-Section). The nominal cross-sectional area of the conductors in (mm²). Returns: The created line parameters. """ + # TODO Maybe split section into section and section_neutral if nphase not in {1, 2, 3}: msg = f"Expected nphase=1, 2 or 3, got {nphase!r} for line parameters {id!r}." logger.error(msg) @@ -916,44 +1073,44 @@ def from_power_factory( # noqa: C901 mlei_norm = conductor.upper() if conductor is not None else None if mlei_norm is None: - conductor_type = None + material = None elif mlei_norm in ("AL", "ALUMINIUM", "ALUMINUM"): - conductor_type = ConductorType.AL + material = Material.AL elif mlei_norm in ("CU", "COPPER"): - conductor_type = ConductorType.CU + material = Material.CU elif mlei_norm in ("AD", "ALDREY"): - conductor_type = ConductorType.AM + material = Material.AM elif mlei_norm in ("AS", "ALUMINIUM-STEEL", "ALUMINUM-STEEL"): - conductor_type = ConductorType.AA + material = Material.AA elif mlei_norm in ("DS", "ALDREY-STEEL"): - conductor_type = ConductorType.LA + material = Material.LA else: msg = f"Expected conductor='Al', 'Cu', 'Ad', 'As' or 'Ds', got {conductor!r} for line parameters {id!r}." logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_CONDUCTOR_TYPE) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_MATERIAL) imiso_norm = str(insulation).upper() if insulation is not None else None if imiso_norm is None: - insulator_type = None + insulator = None elif imiso_norm == "PVC" or imiso_norm == "0": - insulator_type = InsulatorType.PVC + insulator = Insulator.PVC elif imiso_norm == "XLPE" or imiso_norm == "1": - insulator_type = InsulatorType.XLPE + insulator = Insulator.XLPE elif imiso_norm == "MINERAL" or imiso_norm == "2": - insulator_type = InsulatorType.UNKNOWN # not supported yet + insulator = Insulator.NONE # not supported yet elif imiso_norm == "PAPER" or imiso_norm == "3": - insulator_type = InsulatorType.IP + insulator = Insulator.IP elif imiso_norm == "EPR" or imiso_norm == "4": - insulator_type = InsulatorType.EPR + insulator = Insulator.EPR else: msg = ( f"Expected insulation='PVC', 'XLPE', 'MINERAL', 'PAPER' or 'EPR', got {insulation!r} " f"for line parameters {id!r}." ) logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_INSULATOR_TYPE) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_INSULATOR) - max_current = inom * 1e3 if inom is not None else None + ampacities = inom * 1e3 if inom is not None else None z_line, y_shunt = cls._sym_to_zy_simple( n=nphase, z0=r0 + 1j * x0, z1=r1 + 1j * x1, y0=1j * b0 * 1e-6, y1=1j * b1 * 1e-6 @@ -975,11 +1132,11 @@ def from_power_factory( # noqa: C901 id=id, z_line=z_line, y_shunt=y_shunt, - max_current=max_current, + ampacities=ampacities, line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, - section=section, + materials=material, + insulators=insulator, + sections=section, ) return obj @@ -997,7 +1154,7 @@ def from_open_dss( c1: float | Q_[float] = 3.4, # default value used in OpenDSS c0: float | Q_[float] = 1.6, # default value used in OpenDSS basefreq: float | Q_[float] = F, - normamps: float | Q_[float] | None = None, + normamps: FloatScalarOrArrayLike1D | None = None, linetype: str | None = None, ) -> Self: """Create a line parameters object from OpenDSS "LineCode" data. @@ -1037,7 +1194,7 @@ def from_open_dss( OpenDSS parameter: `NormAmps`. Normal ampere limit on line (A). This is the so-called Planning Limit. It may also be the value above which load will have to be dropped in a contingency. Usually about 75% - 80% of the emergency (one-hour) rating. - This value is passed to `max_current` and used for violation checks. + This value is passed to `ampacities` and used for violation checks. linetype: OpenDSS parameter: `LineType`. Code designating the type of line. Only ``"OH"`` @@ -1112,7 +1269,7 @@ def from_open_dss( # Create the RLF line parameters with off-diagonal resistance allowed with warnings.catch_warnings(): warnings.filterwarnings(action="ignore", message=r".* off-diagonal elements ", category=UserWarning) - obj = cls(id=id, z_line=z, y_shunt=yc, max_current=normamps, line_type=line_type) + obj = cls(id=id, z_line=z, y_shunt=yc, ampacities=normamps, line_type=line_type) return obj # @@ -1125,16 +1282,21 @@ def catalogue_path(cls) -> Path: @classmethod def catalogue_data(cls) -> pd.DataFrame: file = cls.catalogue_path() / "Catalogue.csv" - return pd.read_csv(file, parse_dates=False).fillna({"insulator": ""}) + return pd.read_csv(file, parse_dates=False).astype( + {"insulator": pd.StringDtype(), "insulator_neutral": pd.StringDtype()} + ) @classmethod def _get_catalogue( cls, name: str | re.Pattern[str] | None, line_type: str | None, - conductor_type: str | None, - insulator_type: str | None, + material: str | None, + material_neutral: str | None, + insulator: str | None, + insulator_neutral: str | None, section: float | None, + section_neutral: float | None, raise_if_not_found: bool, ) -> tuple[pd.DataFrame, str]: catalogue_data = cls.catalogue_data() @@ -1144,7 +1306,7 @@ def _get_catalogue( for value, column_name, display_name, display_name_plural in [ (name, "name", "name", "names"), ]: - if value is None: + if pd.isna(value): continue mask = cls._filter_catalogue_str(value, strings=catalogue_data[column_name]) @@ -1162,17 +1324,27 @@ def _get_catalogue( # Filter on enumerated types for value, column_name, display_name, enum_class in ( (line_type, "type", "line_type", LineType), - (conductor_type, "material", "conductor_type", ConductorType), - (insulator_type, "insulator", "insulator_type", InsulatorType), + (material, "material", "material", Material), + (material_neutral, "material_neutral", "neutral material", Material), + (insulator, "insulator", "insulator", Insulator), + (insulator_neutral, "insulator_neutral", "neutral insulator", Insulator), ): - if value is None: + if pd.isna(value): continue - enum_series = catalogue_data[column_name].apply(enum_class) + enum_series = pd.Series( + data=[ + None if isna else enum_class(x) + for isna, x in zip( + catalogue_data[column_name].isna(), catalogue_data[column_name].values, strict=True + ) + ], + index=catalogue_data.index, + ) try: mask = enum_series == enum_class(value) except RoseauLoadFlowException: - mask = pd.Series(False, index=catalogue_data.index) + mask = pd.Series(data=False, index=catalogue_data.index) if raise_if_not_found and mask.sum() == 0: cls._raise_not_found_in_catalogue( value=repr(value), @@ -1187,6 +1359,7 @@ def _get_catalogue( # Filter on floats for value, column_name, display_name, display_name_plural, unit in [ (section, "section", "cross-section", "cross-sections", "mm²"), + (section_neutral, "section_neutral", "neutral cross-section", "neutral cross-sections", "mm²"), ]: if value is None: continue @@ -1206,14 +1379,17 @@ def _get_catalogue( return catalogue_data, ", ".join(query_msg_list) @classmethod - @ureg_wraps(None, (None, None, None, None, None, "mm²", None, None)) + @ureg_wraps(None, (None, None, None, None, None, None, None, "mm**2", "mm**2", None, None)) def from_catalogue( cls, name: str | re.Pattern[str] | None = None, line_type: str | None = None, - conductor_type: str | None = None, - insulator_type: str | None = None, + material: str | None = None, + material_neutral: str | None = None, + insulator: str | None = None, + insulator_neutral: str | None = None, section: float | Q_[float] | None = None, + section_neutral: float | Q_[float] | None = None, id: Id | None = None, nb_phases: int = 3, ) -> Self: @@ -1228,16 +1404,28 @@ def from_catalogue( The type of the line parameters to get. It can be ``"overhead"``, ``"twisted"``, or ``"underground"``. See also :class:`~roseau.load_flow.LineType`. - conductor_type: - The type of the conductor material (Al, Cu, ...). See also - :class:`~roseau.load_flow.ConductorType`. + material: + The type of the conductor material (Al, Cu, ...) of the phases. See also + :class:`~roseau.load_flow.Material`. + + material_neutral: + The type of the conductor material (Al, Cu, ...) of the neutral. See also + :class:`~roseau.load_flow.Material`. - insulator_type: - The type of insulator. See also :class:`~roseau.load_flow.InsulatorType`. + insulator: + The insulator of the phases. See also :class:`~roseau.load_flow.Insulator`. Please provide + :attr:`~roseau.load_flow.Insulator.NONE` for cable without insulator. + + insulator_neutral: + The insulator of the neutral. See also :class:`~roseau.load_flow.Insulator`. Please provide + :attr:`~roseau.load_flow.Insulator.NONE` for cable without insulator. section: The cross-section surface area of the phases (mm²). + section_neutral: + The cross-section surface area of the neutral (mm²). + id: A unique ID for the created line parameters object (optional). If ``None`` (default), the id of the created object will be its name in the catalogue. Note @@ -1257,9 +1445,12 @@ def from_catalogue( catalogue_data, query_info = cls._get_catalogue( name=name, line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, + material=material, + material_neutral=material_neutral, + insulator=insulator, + insulator_neutral=insulator_neutral, section=section, + section_neutral=section_neutral, raise_if_not_found=True, ) @@ -1273,40 +1464,59 @@ def from_catalogue( raise idx = catalogue_data.index[0] name = str(catalogue_data.at[idx, "name"]) - r = catalogue_data.at[idx, "r"] - x = catalogue_data.at[idx, "x"] - b = catalogue_data.at[idx, "b"] + r = catalogue_data.at[idx, "resistance"] + rn = catalogue_data.at[idx, "resistance_neutral"] + x = catalogue_data.at[idx, "reactance"] + xn = catalogue_data.at[idx, "reactance_neutral"] + b = catalogue_data.at[idx, "susceptance"] + bn = catalogue_data.at[idx, "susceptance_neutral"] line_type = LineType(catalogue_data.at[idx, "type"]) - conductor_type = ConductorType(catalogue_data.at[idx, "material"]) - insulator_type = InsulatorType(catalogue_data.at[idx, "insulator"]) + material = Material(catalogue_data.at[idx, "material"]) + material_neutral = Material(catalogue_data.at[idx, "material_neutral"]) + insulator = catalogue_data.at[idx, "insulator"] # Converted in the LineParameters creator + insulator_neutral = catalogue_data.at[idx, "insulator_neutral"] # Converted in the LineParameters creator section = catalogue_data.at[idx, "section"] - max_current = catalogue_data.at[idx, "maximal_current"] - if pd.isna(max_current): - max_current = None + section_neutral = catalogue_data.at[idx, "section_neutral"] + ampacity = catalogue_data.at[idx, "ampacity"] + if pd.isna(ampacity): + ampacity = None + ampacity_neutral = catalogue_data.at[idx, "ampacity_neutral"] + if pd.isna(ampacity_neutral): + ampacity_neutral = None + nb_phases_m1 = nb_phases - 1 z_line = (r + x * 1j) * np.eye(nb_phases, dtype=np.complex128) + z_line[nb_phases_m1, nb_phases_m1] = rn + 1j * xn y_shunt = (b * 1j) * np.eye(nb_phases, dtype=np.complex128) + y_shunt[nb_phases_m1, nb_phases_m1] = bn * 1j + ampacities = [ampacity] * nb_phases_m1 + [ampacity_neutral] + materials = [material] * nb_phases_m1 + [material_neutral] + insulators = [insulator] * nb_phases_m1 + [insulator_neutral] + sections = [section] * nb_phases_m1 + [section_neutral] if id is None: id = name return cls( id=id, z_line=z_line, y_shunt=y_shunt, - max_current=max_current, + ampacities=ampacities, line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, - section=section, + materials=materials, + insulators=insulators, + sections=sections, ) @classmethod - @ureg_wraps(None, (None, None, None, None, None, "mm²")) + @ureg_wraps(None, (None, None, None, None, None, None, None, "mm**2", "mm**2")) def get_catalogue( cls, name: str | re.Pattern[str] | None = None, line_type: str | None = None, - conductor_type: str | None = None, - insulator_type: str | None = None, + material: str | None = None, + material_neutral: str | None = None, + insulator: str | None = None, + insulator_neutral: str | None = None, section: float | Q_[float] | None = None, + section_neutral: float | Q_[float] | None = None, ) -> pd.DataFrame: """Get the catalogue of available lines. @@ -1322,38 +1532,60 @@ def get_catalogue( The type of the line parameters to get. It can be ``"overhead"``, ``"twisted"``, or ``"underground"``. See also :class:`~roseau.load_flow.LineType`. - conductor_type: - The type of the conductor material (Al, Cu, ...). See also - :class:`~roseau.load_flow.ConductorType`. + material: + The type of the conductor material (Al, Cu, ...) of the phases. See also + :class:`~roseau.load_flow.Material`. - insulator_type: - The type of insulator. See also :class:`~roseau.load_flow.InsulatorType`. + material_neutral: + The type of the conductor material (Al, Cu, ...) of the neutral. See also + :class:`~roseau.load_flow.Material`. + + insulator: + The insulator of the phases. See also :class:`~roseau.load_flow.Insulator`. Please provide + :attr:`~roseau.load_flow.Insulator.NONE` for cable without insulator. + + insulator_neutral: + The insulator of the neutral. See also :class:`~roseau.load_flow.Insulator`. Please provide + :attr:`~roseau.load_flow.Insulator.NONE` for cable without insulator. section: The cross-section surface area of the phases (mm²). + section_neutral: + The cross-section surface area of the neutral (mm²). + Returns: The catalogue data as a dataframe. """ catalogue_data, _ = cls._get_catalogue( name=name, line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, + material=material, + material_neutral=material_neutral, + insulator=insulator, + insulator_neutral=insulator_neutral, section=section, + section_neutral=section_neutral, raise_if_not_found=False, ) return catalogue_data.rename( columns={ "name": "Name", - "r": "Resistance (ohm/km)", - "x": "Reactance (ohm/km)", - "b": "Susceptance (S/km)", - "maximal_current": "Maximal current (A)", + "resistance": "Phase resistance (ohm/km)", + "resistance_neutral": "Neutral resistance (ohm/km)", + "reactance": "Phase reactance (ohm/km)", + "reactance_neutral": "Neutral reactance (ohm/km)", + "susceptance": "Phase susceptance (S/km)", + "susceptance_neutral": "Neutral susceptance (S/km)", + "ampacity": "Phase ampacity (A)", + "ampacity_neutral": "Neutral ampacity (A)", "type": "Line type", - "material": "Conductor material", - "insulator": "Insulator type", - "section": "Cross-section (mm²)", + "material": "Phase material", + "material_neutral": "Neutral material", + "insulator": "Phase insulator", + "insulator_neutral": "Neutral insulator", + "section": "Phase cross-section (mm²)", + "section_neutral": "Neutral cross-section (mm²)", } ).set_index("Name") @@ -1377,34 +1609,31 @@ def from_dict(cls, data: JsonDict, *, include_results: bool = True) -> Self: """ z_line = np.array(data["z_line"][0]) + 1j * np.array(data["z_line"][1]) y_shunt = np.array(data["y_shunt"][0]) + 1j * np.array(data["y_shunt"][1]) if "y_shunt" in data else None - line_type = LineType(data["line_type"]) if "line_type" in data else None - conductor_type = ConductorType(data["conductor_type"]) if "conductor_type" in data else None - insulator_type = InsulatorType(data["insulator_type"]) if "insulator_type" in data else None return cls( id=data["id"], z_line=z_line, y_shunt=y_shunt, - max_current=data.get("max_current"), - line_type=line_type, - conductor_type=conductor_type, - insulator_type=insulator_type, - section=data.get("section"), + ampacities=data.get("ampacities"), + line_type=data.get("line_type"), + materials=data.get("materials"), + insulators=data.get("insulators"), + sections=data.get("sections"), ) def _to_dict(self, include_results: bool) -> JsonDict: res = {"id": self.id, "z_line": [self._z_line.real.tolist(), self._z_line.imag.tolist()]} if self.with_shunt: res["y_shunt"] = [self._y_shunt.real.tolist(), self._y_shunt.imag.tolist()] - if self.max_current is not None: - res["max_current"] = self.max_current.magnitude + if self.ampacities is not None: + res["ampacities"] = self._ampacities.tolist() if self._line_type is not None: res["line_type"] = self._line_type.name - if self._conductor_type is not None: - res["conductor_type"] = self._conductor_type.name - if self._insulator_type is not None: - res["insulator_type"] = self._insulator_type.name - if self._section is not None: - res["section"] = self._section + if self._materials is not None: + res["materials"] = [x.name for x in self._materials] + if self._insulators is not None: + res["insulators"] = [x.name for x in self._insulators] + if self._sections is not None: + res["sections"] = self._sections.tolist() return res def _results_to_dict(self, warning: bool, full: bool) -> NoReturn: @@ -1435,16 +1664,86 @@ def _check_matrix(self) -> None: ]: if matrix_name == "y_shunt" and not self.with_shunt: continue + # Check that the off-diagonal element have a zero real part off_diagonal_elements = matrix[~np.eye(*matrix.shape, dtype=np.bool_)] if not np.allclose(off_diagonal_elements.real, 0): - msg = ( + warnings.warn( f"The {matrix_name} matrix of line type {self.id!r} has off-diagonal elements " - f"with a non-zero real part." + f"with a non-zero real part.", + category=UserWarning, + stacklevel=find_stack_level(), ) - warnings.warn(msg, category=UserWarning, stacklevel=4) + # Check that the real coefficients are non-negative if (matrix.real < 0.0).any(): msg = f"The {matrix_name} matrix of line type {self.id!r} has coefficients with negative real part." logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=code) + + @staticmethod + def _check_enum_array( + value: _StrEnumType | Sequence[_StrEnumType] | None, + enum_class: type[_StrEnumType], + name: Literal["insulators", "materials"], + size: int, + ) -> NDArray[_StrEnumType] | None: + value_isna = pd.isna(value) + if np.isscalar(value_isna): + return None if value_isna else np.array([enum_class(value) for _ in range(size)], dtype=np.object_) + elif np.all(value_isna): + return None + else: + if np.any(value_isna): + msg = f"{name.title()} cannot contain null values: [{', '.join(f'{x}' for x in value)}] was provided." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode[f"BAD_{name.upper()}_VALUE"]) + + # Build the numpy array fails with pd.NA inside + values = np.array([enum_class(v) for v in value], dtype=np.object_) + if len(value) != size: + msg = f"Incorrect number of {name}: {len(value)} instead of {size}." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode[f"BAD_{name.upper()}_SIZE"]) + return values + + @staticmethod + def _check_positive_float_array( + value: FloatArray | Sequence[Float] | Float | None, + name: Literal["sections", "ampacities"], + unit: str, + size: int, + ) -> FloatArray | None: + value_isna = pd.isna(value) + if np.isscalar(value_isna): + if value_isna: + return None + elif value <= 0: + msg = f"{name.title()} must be positive: {value} {unit} was provided." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode[f"BAD_{name.upper()}_VALUE"]) + else: + return np.array([value for _ in range(size)], dtype=np.float64) + else: + if np.all(value_isna): + return None + if np.any(value_isna): + msg = ( + f"{name.title()} cannot contain null values: [{', '.join(f'{x}' for x in value)}] {unit} " + f"was provided." + ) + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode[f"BAD_{name.upper()}_VALUE"]) + + # Build the numpy array fails with pd.NA inside + values = np.array(value, dtype=np.float64) + if len(value) != size: + msg = f"Incorrect number of {name}: {len(value)} instead of {size}." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode[f"BAD_{name.upper()}_SIZE"]) + if (values <= 0).any(): + msg = f"{name.title()} must be positive: {values.tolist()} {unit} was provided." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode[f"BAD_{name.upper()}_VALUE"]) + + return values diff --git a/roseau/load_flow/models/loads/flexible_parameters.py b/roseau/load_flow/models/loads/flexible_parameters.py index 1758fff3..bf94195b 100644 --- a/roseau/load_flow/models/loads/flexible_parameters.py +++ b/roseau/load_flow/models/loads/flexible_parameters.py @@ -11,12 +11,14 @@ ComplexArray, ComplexArrayLike1D, ControlType, + FloatArray, FloatArrayLike1D, JsonDict, ProjectionType, ) from roseau.load_flow.units import Q_, ureg_wraps from roseau.load_flow.utils import JsonMixin, _optional_deps +from roseau.load_flow.utils._exceptions import find_stack_level from roseau.load_flow_engine.cy_engine import CyControl, CyFlexibleParameter, CyProjection logger = logging.getLogger(__name__) @@ -135,7 +137,7 @@ def _check_values(self) -> None: f"different from 0 were given: {msg}" ), category=UserWarning, - stacklevel=2, + stacklevel=find_stack_level(), ) # Raise an error if the useful values are not well-ordered and positive @@ -526,7 +528,7 @@ class FlexibleParameter(JsonMixin): * The active power :class:`roseau.load_flow.models.Control` to apply; * The reactive power :class:`roseau.load_flow.models.Control` to apply; - * The :class:`Projection` to use when dealing with voltage violations; + * The :class:`roseau.load_flow.models.Projection` to use when dealing with voltage violations; * The apparent power of the flexible load (VA). This is the maximum power the load can consume/produce. It is the radius of the feasible circle used by the projection @@ -1346,7 +1348,7 @@ def plot_control_q( @staticmethod def _theoretical_control_data( control: Control, v_min: float, v_max: float, power: float, s_max: float - ) -> tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.object_]]: + ) -> tuple[FloatArray, FloatArray, NDArray[np.object_]]: """Helper to get data for the different plots of the class. It provides the theoretical control curve abscissas and ordinates values. It also provides ticks for the abscissa axis. diff --git a/roseau/load_flow/models/loads/loads.py b/roseau/load_flow/models/loads/loads.py index 15b62053..435f098c 100644 --- a/roseau/load_flow/models/loads/loads.py +++ b/roseau/load_flow/models/loads/loads.py @@ -13,7 +13,7 @@ from roseau.load_flow.models.loads.flexible_parameters import FlexibleParameter from roseau.load_flow.typing import ComplexArray, ComplexScalarOrArrayLike1D, Id, JsonDict from roseau.load_flow.units import Q_, ureg_wraps -from roseau.load_flow.utils.constants import PositiveSequence +from roseau.load_flow.utils._exceptions import find_stack_level from roseau.load_flow_engine.cy_engine import ( CyAdmittanceLoad, CyCurrentLoad, @@ -90,7 +90,7 @@ def __init__(self, id: Id, bus: Bus, *, phases: str | None = None, connect_neutr warnings.warn( message=f"Neutral connection requested for load {id!r} with no neutral phase", category=UserWarning, - stacklevel=3, + stacklevel=find_stack_level(), ) connect_neutral = None self._connect(bus) @@ -157,19 +157,7 @@ def res_currents(self) -> Q_[ComplexArray]: return self._res_currents_getter(warning=True) def _validate_value(self, value: ComplexScalarOrArrayLike1D) -> ComplexArray: - if np.isscalar(value): - if self.type == "current": - if self._size == 1: - values = [value] - elif self._size == 2: - values = [value, -value] - else: - assert self._size == 3 - values = value * PositiveSequence - else: - values = [value for _ in range(self._size)] - else: - values = value + values = [value for _ in range(self._size)] if np.isscalar(value) else value values = np.array(values, dtype=np.complex128) if len(values) != self._size: msg = f"Incorrect number of {self.type}s: {len(values)} instead of {self._size}" @@ -535,15 +523,13 @@ def __init__(self, id: Id, bus: Bus, *, currents: ComplexScalarOrArrayLike1D, ph currents: A single current value or an array-like of current values for each phase component. Either complex values (A) or a :class:`Quantity ` of - complex values. + complex values. The complex currents provided define the currents magnitudes and + their phase shift from the voltages of the load. For example, a current of + ``10*exp(-90°j)`` represents an inductive constant current of 10 A. - When a scalar value is provided, it is interpreted as the first value of the load - currents vector to create a balanced load. The other values are calculated based on - the number of phases of the load. For a single-phase load, the passed scalar value - is used. For a two-phase load, the second current value is the negative of the first - value (180° phase shift). For a three-phase load, the second and third current - values are obtained by rotating the first value by -120° and 120°, respectively - (120° phase shift clockwise). + When a scalar value is provided, it creates a balanced load with the same current + for each phase. To create an unbalanced load, provide a vector of current values + with the same length as the number of components of the load. phases: The phases of the load. A string like ``"abc"`` or ``"an"`` etc. The bus phases are diff --git a/roseau/load_flow/models/potential_refs.py b/roseau/load_flow/models/potential_refs.py index 53499ead..4e9d3a23 100644 --- a/roseau/load_flow/models/potential_refs.py +++ b/roseau/load_flow/models/potential_refs.py @@ -10,6 +10,7 @@ from roseau.load_flow.models.grounds import Ground from roseau.load_flow.typing import Id, JsonDict from roseau.load_flow.units import Q_, ureg_wraps +from roseau.load_flow.utils._exceptions import find_stack_level from roseau.load_flow_engine.cy_engine import CyDeltaPotentialRef, CyPotentialRef logger = logging.getLogger(__name__) @@ -51,7 +52,11 @@ def __init__(self, id: Id, element: Bus | Ground, *, phases: str | None = None, a neutral, otherwise, the sum of the potentials of the bus phases is set to zero. """ if "phase" in deprecated_kw and phases is None: - warnings.warn("The 'phase' argument is deprecated, use 'phases' instead.", DeprecationWarning, stacklevel=2) + warnings.warn( + "The 'phase' argument is deprecated, use 'phases' instead.", + DeprecationWarning, + stacklevel=find_stack_level(), + ) phases = deprecated_kw.pop("phase") if deprecated_kw: raise TypeError( @@ -97,7 +102,7 @@ def __init__(self, id: Id, element: Bus | Ground, *, phases: str | None = None, else: self._cy_element = CyDeltaPotentialRef(n) indices = (element.phases.index(p) for p in phases) - element._cy_element.connect(self._cy_element, [(i, i) for i in indices]) + element._cy_element.connect(self._cy_element, [(p, i) for i, p in enumerate(indices)]) else: self._cy_element = CyPotentialRef() element._cy_element.connect(self._cy_element, [(0, 0)]) diff --git a/roseau/load_flow/models/sources.py b/roseau/load_flow/models/sources.py index d20fe092..f706819d 100644 --- a/roseau/load_flow/models/sources.py +++ b/roseau/load_flow/models/sources.py @@ -12,6 +12,7 @@ from roseau.load_flow.models.core import Element from roseau.load_flow.typing import ComplexArray, ComplexScalarOrArrayLike1D, Id, JsonDict from roseau.load_flow.units import Q_, ureg_wraps +from roseau.load_flow.utils._exceptions import find_stack_level from roseau.load_flow.utils.constants import PositiveSequence from roseau.load_flow_engine.cy_engine import CyDeltaVoltageSource, CyVoltageSource @@ -101,7 +102,7 @@ def __init__( warnings.warn( message=f"Neutral connection requested for source {id!r} with no neutral phase", category=UserWarning, - stacklevel=2, + stacklevel=find_stack_level(), ) connect_neutral = None self._connect(bus) diff --git a/roseau/load_flow/models/tests/data/Network_1Ph.json b/roseau/load_flow/models/tests/data/Network_1Ph.json index 0add6b6a..ef3120be 100644 --- a/roseau/load_flow/models/tests/data/Network_1Ph.json +++ b/roseau/load_flow/models/tests/data/Network_1Ph.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -62,6 +62,7 @@ "bus2": "bus2", "length": 10, "params_id": "lp", + "max_loading": 1, "results": { "currents1": [ [75.31408026597299, 24.68591973402753], diff --git a/roseau/load_flow/models/tests/data/Network_3Ph_Balanced.json b/roseau/load_flow/models/tests/data/Network_3Ph_Balanced.json index cd6ea4b6..49e92cab 100644 --- a/roseau/load_flow/models/tests/data/Network_3Ph_Balanced.json +++ b/roseau/load_flow/models/tests/data/Network_3Ph_Balanced.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -58,6 +58,7 @@ "bus2": "bus2", "length": 10, "params_id": "lp", + "max_loading": 1, "results": { "currents1": [ [100.25125945383468, -0.2512594538348978], diff --git a/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced.json b/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced.json index 6ae6a9ca..a4cbd01c 100644 --- a/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced.json +++ b/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -70,6 +70,7 @@ "bus2": "bus2", "length": 10, "params_id": "lp", + "max_loading": 1, "results": { "currents1": [ [100.20549935720612, -0.3761232800346832], diff --git a/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced_Shunt.json b/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced_Shunt.json index d523ef4b..748555e3 100644 --- a/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced_Shunt.json +++ b/roseau/load_flow/models/tests/data/Network_3Ph_Unbalanced_Shunt.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -68,6 +68,7 @@ "bus2": "lb", "length": 10, "params_id": "lp", + "max_loading": 1, "ground": "gnd", "results": { "currents1": [ diff --git a/roseau/load_flow/models/tests/test_buses.py b/roseau/load_flow/models/tests/test_buses.py index 7637d666..189861a2 100644 --- a/roseau/load_flow/models/tests/test_buses.py +++ b/roseau/load_flow/models/tests/test_buses.py @@ -91,53 +91,148 @@ def test_short_circuit(): assert e.value.code == RoseauLoadFlowExceptionCode.BAD_SHORT_CIRCUIT -def test_voltage_limits(): +def test_voltage_limits(recwarn): # Default values bus = Bus(id="bus", phases="abc") + assert bus.nominal_voltage is None assert bus.min_voltage is None assert bus.max_voltage is None # Passed as arguments - bus = Bus(id="bus", phases="abc", min_voltage=350, max_voltage=420) - assert bus.min_voltage == Q_(350, "V") + bus = Bus(id="bus", phases="abc", nominal_voltage=400, min_voltage_level=0.95, max_voltage_level=1.05) + assert bus.nominal_voltage == Q_(400, "V") + assert bus.min_voltage_level == Q_(0.95, "") + assert bus.max_voltage_level == Q_(1.05, "") + assert bus.min_voltage == Q_(380, "V") assert bus.max_voltage == Q_(420, "V") # Can be set to a real number - bus.min_voltage = 350.0 - bus.max_voltage = 420.0 - assert bus.min_voltage == Q_(350.0, "V") - assert bus.max_voltage == Q_(420.0, "V") + bus.nominal_voltage = 410 + bus.min_voltage_level = 0.9 + bus.max_voltage_level = 1.06 + assert bus.min_voltage_level == Q_(0.9, "") + assert bus.max_voltage_level == Q_(1.06, "") + assert bus.min_voltage == Q_(369.0, "V") + assert bus.max_voltage == Q_(434.6, "V") # Can be reset to None - bus.min_voltage = None - bus.max_voltage = None + bus.nominal_voltage = None + bus.min_voltage_level = None + bus.max_voltage_level = None + assert bus.min_voltage_level is None + assert bus.max_voltage_level is None assert bus.min_voltage is None assert bus.max_voltage is None # Can be set to a Quantity - bus.min_voltage = Q_(19, "kV") - bus.max_voltage = Q_(21, "kV") - assert bus.min_voltage == Q_(19_000, "V") - assert bus.max_voltage == Q_(21_000, "V") + bus.nominal_voltage = Q_(20, "kV") + bus.min_voltage_level = Q_(90, "%") + bus.max_voltage_level = Q_(110, "%") + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level == Q_(0.9, "") + assert bus.max_voltage_level == Q_(1.1, "") + assert bus.min_voltage == Q_(18_000, "V") + assert bus.max_voltage == Q_(22_000, "V") # NaNs are converted to None for na in (np.nan, float("nan"), pd.NA): - bus.min_voltage = na - bus.max_voltage = na + bus.nominal_voltage = na + bus.min_voltage_level = na + bus.max_voltage_level = na + assert bus.nominal_voltage is None + assert bus.min_voltage_level is None + assert bus.max_voltage_level is None assert bus.min_voltage is None assert bus.max_voltage is None + # Min/Max voltage values defined without nominal voltage are useless + bus.nominal_voltage = None + bus.min_voltage_level = None + bus.max_voltage_level = None + recwarn.clear() + bus.min_voltage_level = 0.95 + assert len(recwarn) == 1 + assert ( + recwarn[0].message.args[0] + == "The min voltage level of the bus 'bus' is useless without a nominal voltage. Please define a nominal " + "voltage for this bus." + ) + assert bus.min_voltage_level == Q_(0.95, "") + assert bus.min_voltage is None + recwarn.clear() + bus.max_voltage_level = 1.05 + assert len(recwarn) == 1 + assert ( + recwarn[0].message.args[0] + == "The max voltage level of the bus 'bus' is useless without a nominal voltage. Please define a nominal " + "voltage for this bus." + ) + assert bus.max_voltage_level == Q_(1.05, "") + assert bus.max_voltage is None + + # Erasing a nominal voltage with a min or max voltage level emits a warning + bus.nominal_voltage = Q_(400, "V") + recwarn.clear() + bus.nominal_voltage = None + assert len(recwarn) == 1 + assert ( + recwarn[0].message.args[0] + == "The nominal voltage of the bus 'bus' is required to use `min_voltage_level` and `max_voltage_level`." + ) + bus.nominal_voltage = Q_(400, "V") + bus.min_voltage_level = None + bus.max_voltage_level = None + recwarn.clear() + bus.nominal_voltage = None + assert len(recwarn) == 0 + # Bad values - bus.min_voltage = 220 + bus.min_voltage_level = 0.95 + with pytest.raises(RoseauLoadFlowException) as e: + bus.max_voltage_level = 0.92 + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_VOLTAGES + assert e.value.msg == ( + "Cannot set max voltage level of bus 'bus' to 0.92 as it is lower than its min voltage (0.95)." + ) + bus.max_voltage_level = 1.05 + with pytest.raises(RoseauLoadFlowException) as e: + bus.min_voltage_level = 1.06 + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_VOLTAGES + assert e.value.msg == ( + "Cannot set min voltage level of bus 'bus' to 1.06 as it is higher than its max voltage (1.05)." + ) with pytest.raises(RoseauLoadFlowException) as e: - bus.max_voltage = 200 + bus.nominal_voltage = 0 assert e.value.code == RoseauLoadFlowExceptionCode.BAD_VOLTAGES - assert e.value.msg == "Cannot set max voltage of bus 'bus' to 200 V as it is lower than its min voltage (220 V)." - bus.max_voltage = 240 + assert e.value.msg == "The nominal voltage of bus 'bus' must be positive. 0 V has been provided." with pytest.raises(RoseauLoadFlowException) as e: - bus.min_voltage = 250 + bus.nominal_voltage = -400 assert e.value.code == RoseauLoadFlowExceptionCode.BAD_VOLTAGES - assert e.value.msg == "Cannot set min voltage of bus 'bus' to 250 V as it is higher than its max voltage (240 V)." + assert e.value.msg == "The nominal voltage of bus 'bus' must be positive. -400 V has been provided." + + +def test_res_voltages(): + # With a neutral + bus = Bus(id="bus", phases="abcn") + direct_seq = np.exp([0, -2 / 3 * np.pi * 1j, 2 / 3 * np.pi * 1j]) + direct_seq_neutral = np.array([1, np.exp(-2 / 3 * np.pi * 1j), np.exp(2 / 3 * np.pi * 1j), 0]) + bus._res_potentials = (230 + 0j) * direct_seq_neutral + + assert np.allclose(bus.res_potentials.m, (230 + 0j) * direct_seq_neutral) + assert np.allclose(bus.res_voltages.m, (230 + 0j) * direct_seq) + assert bus.res_voltage_levels is None + bus.nominal_voltage = 400 # V + assert np.allclose(bus.res_voltage_levels.m, 230 / 400 * np.sqrt(3)) + + # Without a neutral + bus = Bus(id="bus", phases="abc") + bus._res_potentials = (20_000 + 0j) * direct_seq / np.sqrt(3) + + assert np.allclose(bus.res_potentials.m, (20_000 + 0j) * direct_seq / np.sqrt(3)) + assert np.allclose(bus.res_voltages.m, (20_000 + 0j) * direct_seq * np.exp(np.pi * 1j / 6)) + assert bus.res_voltage_levels is None + bus.nominal_voltage = 20_000 # V + assert np.allclose(bus.res_voltage_levels.m, 1.0) def test_res_violated(): @@ -148,30 +243,34 @@ def test_res_violated(): # No limits assert bus.res_violated is None + # Only a nominal voltage + bus.nominal_voltage = 400 + assert bus.res_violated is None + # Only min voltage - bus.min_voltage = 350 + bus.min_voltage_level = 0.9 assert bus.res_violated is False - bus.min_voltage = 450 + bus.min_voltage_level = 1.1 assert bus.res_violated is True # Only max voltage - bus.min_voltage = None - bus.max_voltage = 450 + bus.min_voltage_level = None + bus.max_voltage_level = 1.1 assert bus.res_violated is False - bus.max_voltage = 350 + bus.max_voltage_level = 0.9 assert bus.res_violated is True # Both min and max voltage # min <= v <= max - bus.min_voltage = 350 - bus.max_voltage = 450 + bus.min_voltage_level = 0.9 + bus.max_voltage_level = 1.1 assert bus.res_violated is False # v < min - bus.min_voltage = 450 + bus.min_voltage_level = 1.1 assert bus.res_violated is True # v > max - bus.min_voltage = 350 - bus.max_voltage = 350 + bus.min_voltage_level = 0.9 + bus.max_voltage_level = 0.9 assert bus.res_violated is True @@ -188,7 +287,7 @@ def test_propagate_limits(): # noqa: C901 lp_mv = LineParameters(id="lp_mv", z_line=np.eye(3), y_shunt=0.1 * np.eye(3)) lp_lv = LineParameters(id="lp_lv", z_line=np.eye(4)) - tp = TransformerParameters.from_catalogue(name="SE_Minera_A0Ak_100kVA", manufacturer="SE") + tp = TransformerParameters.from_catalogue(name="SE Minera A0Ak 100kVA 15/20kV(20) 410V Dyn11") Line(id="l1_mv", bus1=b1_mv, bus2=b2_mv, length=1.5, parameters=lp_mv, ground=g) Line(id="l2_mv", bus1=b2_mv, bus2=b3_mv, length=2, parameters=lp_mv, ground=g) @@ -208,86 +307,129 @@ def test_propagate_limits(): # noqa: C901 assert bus.max_voltage is None # Set min and max voltage of b1_mv - b1_mv.min_voltage = 19_000 - b1_mv.max_voltage = 21_000 + b1_mv.nominal_voltage = 20_000 # V + b1_mv.min_voltage_level = 0.95 + b1_mv.max_voltage_level = 1.05 # propagate MV voltage limits b1_mv.propagate_limits() for bus in (b1_mv, b2_mv, b3_mv): + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level == Q_(0.95, "") + assert bus.max_voltage_level == Q_(1.05, "") assert bus.min_voltage == Q_(19_000, "V") assert bus.max_voltage == Q_(21_000, "V") for bus in (b1_lv, b2_lv): + assert bus.nominal_voltage is None assert bus.min_voltage is None assert bus.max_voltage is None # Set min and max voltage of b1_lv - b1_lv.min_voltage = 217 - b1_lv.max_voltage = 253 + b1_lv.nominal_voltage = 400 + b1_lv.min_voltage_level = 0.915 + b1_lv.max_voltage_level = 1.085 b1_lv.propagate_limits() for bus in (b1_mv, b2_mv, b3_mv): + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level == Q_(0.95, "") + assert bus.max_voltage_level == Q_(1.05, "") assert bus.min_voltage == Q_(19_000, "V") assert bus.max_voltage == Q_(21_000, "V") + for bus in (b1_lv, b2_lv): - assert bus.min_voltage == Q_(217, "V") - assert bus.max_voltage == Q_(253, "V") + assert bus.nominal_voltage == Q_(400, "V") + assert bus.min_voltage_level == Q_(0.915, "") + assert bus.max_voltage_level == Q_(1.085, "") + assert bus.min_voltage == Q_(366, "V") + assert bus.max_voltage == Q_(434, "V") # Reset min MV voltage limits only - b1_mv.min_voltage = None + b1_mv.min_voltage_level = None b1_mv.propagate_limits() for bus in (b1_mv, b2_mv, b3_mv): + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level is None assert bus.min_voltage is None + assert bus.max_voltage_level == Q_(1.05, "") assert bus.max_voltage == Q_(21_000, "V") for bus in (b1_lv, b2_lv): - assert bus.min_voltage == Q_(217, "V") - assert bus.max_voltage == Q_(253, "V") + assert bus.nominal_voltage == Q_(400, "V") + assert bus.min_voltage_level == Q_(0.915, "") + assert bus.max_voltage_level == Q_(1.085, "") + assert bus.min_voltage == Q_(366, "V") + assert bus.max_voltage == Q_(434, "V") # Error, different max voltage limits - b1_mv.max_voltage = 21_005 + b1_mv.max_voltage_level = 1.06 with pytest.raises(RoseauLoadFlowException) as e: b1_mv.propagate_limits() assert e.value.code == RoseauLoadFlowExceptionCode.BAD_VOLTAGES assert e.value.msg == ( - "Cannot propagate the maximum voltage (21005 V) of bus 'b1_mv' to bus 'b2_mv' with " - "different maximum voltage (21000 V)." + "Cannot propagate the maximum voltage level (1.06) of bus 'b1_mv' to bus 'b2_mv' with " + "different maximum voltage level (1.05)." ) # The limits are not changed after the error for bus in (b2_mv, b3_mv): + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level is None assert bus.min_voltage is None + assert bus.max_voltage_level == Q_(1.05, "") assert bus.max_voltage == Q_(21_000, "V") for bus in (b1_lv, b2_lv): - assert bus.min_voltage == Q_(217, "V") - assert bus.max_voltage == Q_(253, "V") + assert bus.nominal_voltage == Q_(400, "V") + assert bus.min_voltage_level == Q_(0.915, "") + assert bus.max_voltage_level == Q_(1.085, "") + assert bus.min_voltage == Q_(366, "V") + assert bus.max_voltage == Q_(434, "V") # It is okay to propagate with different limits if force=True b1_mv.propagate_limits(force=True) for bus in (b1_mv, b2_mv, b3_mv): + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level is None assert bus.min_voltage is None - assert bus.max_voltage == Q_(21_005, "V") + assert bus.max_voltage_level == Q_(1.06, "") + assert bus.max_voltage == Q_(21_200, "V") for bus in (b1_lv, b2_lv): - assert bus.min_voltage == Q_(217, "V") - assert bus.max_voltage == Q_(253, "V") + assert bus.nominal_voltage == Q_(400, "V") + assert bus.min_voltage_level == Q_(0.915, "") + assert bus.max_voltage_level == Q_(1.085, "") + assert bus.min_voltage == Q_(366, "V") + assert bus.max_voltage == Q_(434, "V") # What if there is a switch? b4_mv = Bus(id="b4_mv", phases="abc") Switch(id="sw", bus1=b2_mv, bus2=b4_mv) b1_mv.propagate_limits() for bus in (b1_mv, b2_mv, b3_mv, b4_mv): + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level is None assert bus.min_voltage is None - assert bus.max_voltage == Q_(21_005, "V") + assert bus.max_voltage_level == Q_(1.06, "") + assert bus.max_voltage == Q_(21_200, "V") for bus in (b1_lv, b2_lv): - assert bus.min_voltage == Q_(217, "V") - assert bus.max_voltage == Q_(253, "V") + assert bus.nominal_voltage == Q_(400, "V") + assert bus.min_voltage_level == Q_(0.915, "") + assert bus.max_voltage_level == Q_(1.085, "") + assert bus.min_voltage == Q_(366, "V") + assert bus.max_voltage == Q_(434, "V") # Let's add a MV loop; does it still work? Line("l3_mv", b1_mv, b3_mv, length=1, parameters=lp_mv, ground=g) - b1_mv.min_voltage = 19_000 + b1_mv.min_voltage_level = 0.94 b1_mv.propagate_limits() for bus in (b1_mv, b2_mv, b3_mv, b4_mv): - assert bus.min_voltage == Q_(19_000, "V") - assert bus.max_voltage == Q_(21_005, "V") + assert bus.nominal_voltage == Q_(20_000, "V") + assert bus.min_voltage_level == Q_(0.94, "") + assert bus.min_voltage == Q_(18_800, "V") + assert bus.max_voltage_level == Q_(1.06, "") + assert bus.max_voltage == Q_(21_200, "V") for bus in (b1_lv, b2_lv): - assert bus.min_voltage == Q_(217, "V") - assert bus.max_voltage == Q_(253, "V") + assert bus.nominal_voltage == Q_(400, "V") + assert bus.min_voltage_level == Q_(0.915, "") + assert bus.max_voltage_level == Q_(1.085, "") + assert bus.min_voltage == Q_(366, "V") + assert bus.max_voltage == Q_(434, "V") def test_get_connected_buses(): @@ -305,7 +447,7 @@ def test_get_connected_buses(): lp_mv = LineParameters(id="lp_mv", z_line=np.eye(3), y_shunt=0.1 * np.eye(3)) lp_lv = LineParameters(id="lp_lv", z_line=np.eye(4)) - tp = TransformerParameters.from_catalogue(name="SE_Minera_A0Ak_100kVA", manufacturer="SE") + tp = TransformerParameters.from_catalogue(name="SE Minera A0Ak 100kVA 15/20kV(20) 410V Dyn11") Line(id="l1_mv", bus1=b1_mv, bus2=b2_mv, length=1.5, parameters=lp_mv, ground=g) Line(id="l2_mv", bus1=b2_mv, bus2=b3_mv, length=2, parameters=lp_mv, ground=g) diff --git a/roseau/load_flow/models/tests/test_flexible_parameters.py b/roseau/load_flow/models/tests/test_flexible_parameters.py index b396cce6..70029a3f 100644 --- a/roseau/load_flow/models/tests/test_flexible_parameters.py +++ b/roseau/load_flow/models/tests/test_flexible_parameters.py @@ -389,7 +389,7 @@ def test_flexible_parameter(): assert e.value.code == RoseauLoadFlowExceptionCode.JSON_NO_RESULTS -@pytest.mark.no_patch_engine() +@pytest.mark.no_patch_engine def test_flexible_parameters_compute_powers(): # Control P fp = FlexibleParameter( diff --git a/roseau/load_flow/models/tests/test_line_parameters.py b/roseau/load_flow/models/tests/test_line_parameters.py index b2eea5c1..5791109b 100644 --- a/roseau/load_flow/models/tests/test_line_parameters.py +++ b/roseau/load_flow/models/tests/test_line_parameters.py @@ -9,7 +9,7 @@ from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode from roseau.load_flow.models import Bus, Ground, Line, LineParameters from roseau.load_flow.units import Q_ -from roseau.load_flow.utils import ConductorType, InsulatorType, LineType +from roseau.load_flow.utils import Insulator, LineType, Material def test_line_parameters(): @@ -112,11 +112,13 @@ def test_from_geometry(): # line_data = {"dpp": 0, "dpn": 0, "dsh": 0.04} # Working example - z_line, y_shunt, line_type, conductor_type, insulator_type, section = LineParameters._from_geometry( + z_line, y_shunt, line_type, materials, insulators, sections = LineParameters._from_geometry( "test", line_type=LineType.OVERHEAD, - conductor_type=ConductorType.AL, - insulator_type=InsulatorType.PEX, + material=Material.AL, + material_neutral=None, + insulator=Insulator.PEX, + insulator_neutral=None, section=150, section_neutral=70, height=10, @@ -172,18 +174,87 @@ def test_from_geometry(): npt.assert_allclose(y_shunt, y_shunt_expected, rtol=0.001) assert line_type == LineType.OVERHEAD - assert conductor_type == ConductorType.AL - assert insulator_type == InsulatorType.PEX - assert section == 150 + assert np.array_equal(materials, np.array([Material.AL] * 4, dtype=np.object_)) + assert np.array_equal(insulators, np.array([Insulator.PEX] * 4, dtype=np.object_)) + npt.assert_allclose(sections, [150, 150, 150, 70]) + # Test None insulator + lp = LineParameters.from_geometry( + id="test", + line_type=LineType.OVERHEAD, + material="CU", + insulator=None, + section=50, + height=10, + external_diameter=0.04, + ) + # The default insulator for overhead lines + assert np.array_equal(lp.insulators, np.array([Insulator.NONE] * 4, dtype=np.object_)) + np.testing.assert_allclose(lp.y_shunt.m.real, 0.0) + lp = LineParameters.from_geometry( + id="test", + line_type=LineType.OVERHEAD, + material="CU", + insulator=Insulator.NONE, + insulator_neutral=None, + section=50, + height=10, + external_diameter=0.04, + ) + assert np.array_equal(lp.insulators, np.array([Insulator.NONE] * 4, dtype=np.object_)) + np.testing.assert_allclose(lp.y_shunt.m.real, 0.0) + + lp = LineParameters.from_geometry( + id="test", + line_type="underground", + material=Material.CU, + insulator=Insulator.NONE, + section=50, + height=-0.5, + external_diameter=0.04, + ) + np.testing.assert_allclose( + lp.y_shunt.m.imag * 4, # because InsulatorType.IP has 4x epsilon_r + LineParameters.from_geometry( + id="test", + line_type=lp.line_type, + material=lp.materials[0], + insulator=Insulator.IP, # 4x epsilon_r of InsulatorType.NONE + section=lp.sections[0], + height=-0.5, + external_diameter=0.04, + ).y_shunt.m.imag, + ) + + # The same but precise the neutral types + z_line, y_shunt, line_type, materials, insulators, sections = LineParameters._from_geometry( + "test", + line_type=LineType.OVERHEAD, + material=Material.AL, + material_neutral=Material.AL, + insulator=Insulator.PEX, + insulator_neutral=Insulator.PEX, + section=150, + section_neutral=70, + height=10, + external_diameter=0.04, + ) + npt.assert_allclose(z_line, nplin.inv(y_line_expected), rtol=0.04, atol=0.02) + npt.assert_allclose(y_shunt, y_shunt_expected, rtol=0.001) + assert line_type == LineType.OVERHEAD + assert np.array_equal(materials, np.array([Material.AL] * 4, dtype=np.object_)) + assert np.array_equal(insulators, np.array([Insulator.PEX] * 4, dtype=np.object_)) + npt.assert_allclose(sections, [150, 150, 150, 70]) # line_data = {"dpp": 0, "dpn": 0, "dsh": 0.04} # Working example (also with string types) - z_line, y_shunt, line_type, conductor_type, insulator_type, section = LineParameters._from_geometry( + z_line, y_shunt, line_type, materials, insulators, sections = LineParameters._from_geometry( id="test", line_type="UNDERGROUND", - conductor_type="AL", - insulator_type="PVC", + material="AL", + material_neutral="AL", + insulator="PVC", + insulator_neutral="PVC", section=150, section_neutral=70, height=-1.5, @@ -238,54 +309,65 @@ def test_from_geometry(): assert isinstance(line_type, LineType) assert line_type == LineType.UNDERGROUND - assert isinstance(conductor_type, ConductorType) - assert conductor_type == ConductorType.AL - assert isinstance(insulator_type, InsulatorType) - assert insulator_type == InsulatorType.PVC - assert section == 150 + assert np.array_equal(materials, np.array([Material.AL] * 4, dtype=np.object_)) + assert np.array_equal(insulators, np.array([Insulator.PVC] * 4, dtype=np.object_)) + npt.assert_allclose(sections, [150, 150, 150, 70]) - # Test unknown insulator type - lp = LineParameters.from_geometry( - id="test", + # Mix two lines to check that the neutral is different + z_line_1, y_shunt_1, line_type, materials, insulators, sections = LineParameters._from_geometry( + "test", line_type=LineType.OVERHEAD, - conductor_type="CU", - insulator_type=None, - section=50, + material=Material.AL, + material_neutral=Material.AL, + insulator=Insulator.PEX, + insulator_neutral=Insulator.PEX, + section=150, + section_neutral=70, height=10, external_diameter=0.04, ) - assert lp.insulator_type == InsulatorType.UNKNOWN - np.testing.assert_allclose(lp.y_shunt.m.real, 0.0) - lp = LineParameters.from_geometry( - id="test", - line_type="underground", - conductor_type=ConductorType.CU, - insulator_type=InsulatorType.UNKNOWN, - section=50, - height=-0.5, + z_line_2, y_shunt_2, line_type, materials, insulators, sections = LineParameters._from_geometry( + "test", + line_type=LineType.OVERHEAD, + material=Material.AM, + material_neutral=Material.AM, + insulator=Insulator.XLPE, + insulator_neutral=Insulator.XLPE, + section=150, + section_neutral=70, + height=10, external_diameter=0.04, ) - np.testing.assert_allclose( - lp.y_shunt.m.imag * 4, # because InsulatorType.IP has 4x epsilon_r - LineParameters.from_geometry( - id="test", - line_type=lp.line_type, - conductor_type=lp.conductor_type, - insulator_type=InsulatorType.IP, # 4x epsilon_r of InsulatorType.UNKNOWN - section=lp.section, - height=-0.5, - external_diameter=0.04, - ).y_shunt.m.imag, + + z_line, y_shunt, line_type, materials, insulators, sections = LineParameters._from_geometry( + "test", + line_type=LineType.OVERHEAD, + material=Material.AL, + material_neutral=Material.AM, + insulator=Insulator.PEX, + insulator_neutral=Insulator.XLPE, + section=150, + section_neutral=70, + height=10, + external_diameter=0.04, ) + z_line_expected = z_line_1.copy() + z_line_expected[3, 3] = z_line_2[3, 3] + y_shunt_expected = y_shunt_1.copy() + y_shunt_expected[3, 3] = y_shunt_2[3, 3] + + npt.assert_allclose(z_line, z_line_expected) + npt.assert_allclose(y_shunt, y_shunt_expected) def test_sym(): # With the bad model of PwF # line_data = {"id": "NKBA NOR 25.00 kV", "un": 25000.0, "in": 277.0000100135803} - z_line, y_shunt = LineParameters._sym_to_zy( - id="NKBA NOR 25.00 kV", z0=0.0j, z1=1.0 + 1.0j, zn=0.0j, zpn=0.0j, y0=0.0j, y1=1e-06j, bn=0.0, bpn=0.0 - ) + with pytest.warns(UserWarning, match=r"does not have neutral elements"): + z_line, y_shunt = LineParameters._sym_to_zy( + id="NKBA NOR 25.00 kV", z0=0.0j, z1=1.0 + 1.0j, zn=0.0j, zpn=0.0j, y0=0.0j, y1=1e-06j, bn=0.0, bpn=0.0 + ) z_line_expected = (1 + 1j) * np.eye(3) npt.assert_allclose(z_line, z_line_expected) y_shunt_expected = 1e-6j * np.eye(3) @@ -293,17 +375,18 @@ def test_sym(): # line_data = {"id": "NKBA 4x150 1.00 kV", "un": 1000.0, "in": 361.0000014305115} # Downgraded model because of PwF bad data - z_line, y_shunt = LineParameters._sym_to_zy( - id="NKBA 4x150 1.00 kV", - z0=0.5 + 0.3050000071525574j, - z1=0.125 + 0.0860000029206276j, - zn=0.0j, - zpn=0.0j, - y0=0.0j, - y1=0.0j, - bn=0.0, - bpn=0.0, - ) + with pytest.warns(UserWarning, match=r"does not have neutral elements"): + z_line, y_shunt = LineParameters._sym_to_zy( + id="NKBA 4x150 1.00 kV", + z0=0.5 + 0.3050000071525574j, + z1=0.125 + 0.0860000029206276j, + zn=0.0j, + zpn=0.0j, + y0=0.0j, + y1=0.0j, + bn=0.0, + bpn=0.0, + ) z_line_expected = np.array( [ [0.25 + 0.159j, 0.125 + 0.073j, 0.125 + 0.073j], @@ -361,21 +444,6 @@ def test_sym(): npt.assert_allclose(y_shunt, y_shunt_expected) -def test_from_name_mv(): - warning_msg = ( - r"The method LineParameters.from_name_mv\(\) is deprecated and will be removed in a future " - r"version\. Use LineParameters\.from_coiffier\(\) instead\." - ) - with pytest.warns(FutureWarning, match=warning_msg): - lp = LineParameters.from_name_mv("U_AL_150", max_current=100000) - z_line_expected = (0.1767 + 0.1j) * np.eye(3) - y_shunt_expected = 0.00014106j * np.eye(3) - - npt.assert_allclose(lp.z_line.m_as("ohm/km"), z_line_expected, rtol=0.01, atol=0.01, strict=True) - npt.assert_allclose(lp.y_shunt.m_as("S/km"), y_shunt_expected, rtol=0.01, atol=0.01, strict=True) - npt.assert_allclose(lp.max_current.m_as("A"), 100000, strict=True) - - def test_from_coiffier_model(): # Invalid names with pytest.raises(RoseauLoadFlowException) as e: @@ -383,14 +451,14 @@ def test_from_coiffier_model(): assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TYPE_NAME_SYNTAX assert e.value.msg == ( "The Coiffier line parameter name 'totoU_Al_150' is not valid, expected format is " - "'LineType_ConductorType_CrossSection'." + "'LineType_Material_CrossSection'." ) with pytest.raises(RoseauLoadFlowException) as e: LineParameters.from_coiffier_model("U_AL_IP_150") assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TYPE_NAME_SYNTAX assert e.value.msg == ( "The Coiffier line parameter name 'U_AL_IP_150' is not valid, expected format is " - "'LineType_ConductorType_CrossSection'." + "'LineType_Material_CrossSection'." ) # Working example with defaults @@ -399,18 +467,18 @@ def test_from_coiffier_model(): y_shunt_expected = 0.00014106j * np.eye(3) assert lp.id == "U_AL_150" assert lp.line_type == LineType.UNDERGROUND - assert lp.conductor_type == ConductorType.AL - assert lp.section.m == 150 + assert np.array_equal(lp.materials, np.array([Material.AL] * 3, dtype=np.object_)) + assert np.allclose(lp.sections.m, 150) npt.assert_allclose(lp.z_line.m_as("ohm/km"), z_line_expected, rtol=0.01, atol=0.01, strict=True) npt.assert_allclose(lp.y_shunt.m_as("S/km"), y_shunt_expected, rtol=0.01, atol=0.01, strict=True) - npt.assert_allclose(lp.max_current.m_as("A"), 368.689292, strict=True) + npt.assert_allclose(lp.ampacities.m_as("A"), [368.689292] * 3, strict=True) # Working example with custom arguments lp2 = LineParameters.from_coiffier_model("O_CU_54", nb_phases=2, id="lp2") assert lp2.id == "lp2" assert lp2.line_type == LineType.OVERHEAD - assert lp2.conductor_type == ConductorType.CU - assert lp2.section.m == 54 + assert np.array_equal(lp2.materials, np.array([Material.CU] * 2, dtype=np.object_)) + assert np.allclose(lp2.sections.m, 54) assert lp2.z_line.m.shape == (2, 2) assert lp2.y_shunt.m.shape == (2, 2) @@ -427,14 +495,21 @@ def test_catalogue_data(): for row in catalogue_data.itertuples(): assert re.match(r"^[UOT]_[A-Z]+_\d+(?:_\w+)?$", row.name) - assert isinstance(row.r, float) - assert isinstance(row.x, float) - assert isinstance(row.b, float) - assert isinstance(row.maximal_current, int | float) + assert isinstance(row.resistance, float) + assert isinstance(row.resistance_neutral, float) + assert isinstance(row.reactance, float) + assert isinstance(row.reactance_neutral, float) + assert isinstance(row.susceptance, float) + assert isinstance(row.susceptance_neutral, float) + assert isinstance(row.ampacity, int | float) + assert isinstance(row.ampacity_neutral, int | float) LineType(row.type) # Check that the type is valid - ConductorType(row.material) # Check that the material is valid - InsulatorType(row.insulator) # Check that the insulator is valid + Material(row.material) # Check that the material is valid + Material(row.material_neutral) # Check that the material is valid + pd.isna(row.insulator) or Insulator(row.insulator) # Check that the insulator is valid + pd.isna(row.insulator_neutral) or Insulator(row.insulator_neutral) # Check that the insulator is valid assert isinstance(row.section, int | float) + assert isinstance(row.section_neutral, int | float) def test_from_catalogue(): @@ -453,7 +528,7 @@ def test_from_catalogue(): assert e.value.code == RoseauLoadFlowExceptionCode.CATALOGUE_NOT_FOUND # Unknown enums - for field_name in ("line_type", "conductor_type", "insulator_type"): + for field_name in ("line_type", "material", "insulator"): # String with pytest.raises(RoseauLoadFlowException) as e: LineParameters.from_catalogue(**{field_name: "invalid"}) @@ -499,11 +574,11 @@ def test_from_catalogue(): assert lp.id == "U_AL_150" assert lp.z_line.shape == (3, 3) assert lp.y_shunt.shape == (3, 3) - assert lp.max_current > 0 + assert (lp.ampacities > 0).all() assert lp.line_type == LineType.UNDERGROUND - assert lp.conductor_type == ConductorType.AL - assert lp.insulator_type == InsulatorType.UNKNOWN - assert lp.section.m == 150 + assert np.array_equal(lp.materials, np.array([Material.AL] * 3)) + assert lp.insulators is None + assert np.allclose(lp.sections.m, 150) # Success, overridden ID lp = LineParameters.from_catalogue(name="U_AL_150", id="lp1") @@ -519,59 +594,263 @@ def test_get_catalogue(): # Get the entire catalogue catalogue = LineParameters.get_catalogue() assert isinstance(catalogue, pd.DataFrame) - assert catalogue.shape == (355, 8) + assert catalogue.shape == (355, 15) # Filter on a single attribute for field_name, value, expected_size in ( ("name", r"U_AL_150.*", 1), ("line_type", "OvErHeAd", 122), - ("conductor_type", "Cu", 121), - # ("insulator_type", InsulatorType.SE, 240), + ("material", "Cu", 121), + ("material_neutral", "Cu", 121), + # ("insulator", Insulator.SE, 240), ("section", 150, 9), + ("section_neutral", 150, 9), ("section", Q_(1.5, "cm²"), 9), + ("section_neutral", Q_(1.5, "cm²"), 9), ): filtered_catalogue = LineParameters.get_catalogue(**{field_name: value}) - assert filtered_catalogue.shape == (expected_size, 8) + assert filtered_catalogue.shape == (expected_size, 15) # Filter on two attributes for field_name, value, expected_size in ( ("name", r"U_AL_150.*", 1), ("line_type", "OvErHeAd", 122), ("section", 150, 9), + ("section_neutral", 150, 9), ): filtered_catalogue = LineParameters.get_catalogue(**{field_name: value}) - assert filtered_catalogue.shape == (expected_size, 8) + assert filtered_catalogue.shape == (expected_size, 15) # No results empty_catalogue = LineParameters.get_catalogue(section=15000) - assert empty_catalogue.shape == (0, 8) + assert empty_catalogue.shape == (0, 15) + + +def test_insulators(): + z_line = np.eye(3, dtype=complex) + y_shunt = np.eye(3, dtype=complex) + + # None-like values + lp = LineParameters("test", z_line=z_line, y_shunt=y_shunt, insulators=None) + assert lp.insulators is None + lp.insulators = np.nan + assert lp.insulators is None + lp.insulators = pd.NA + assert lp.insulators is None + + # Single values + lp.insulators = Insulator.EPR + assert len(lp.insulators) == 3 + assert np.array_equal(lp.insulators, np.array([Insulator.EPR] * 3)) + + lp.insulators = Insulator.EPR.name + assert len(lp.insulators) == 3 + assert np.array_equal(lp.insulators, np.array([Insulator.EPR] * 3)) + + # Special case for Insulator.NONE + lp.insulators = Insulator.NONE.name + assert len(lp.insulators) == 3 + assert np.array_equal(lp.insulators, np.array([Insulator.NONE] * 3)) + + # Arrays + lp.insulators = [Insulator.EPR, Insulator.XLPE, Insulator.LDPE] + assert len(lp.insulators) == 3 + assert np.array_equal(lp.insulators, np.array([Insulator.EPR, Insulator.XLPE, Insulator.LDPE])) + + lp.insulators = [Insulator.NONE, Insulator.NONE, Insulator.NONE] + assert len(lp.insulators) == 3 + assert np.array_equal(lp.insulators, np.array([Insulator.NONE, Insulator.NONE, Insulator.NONE])) + + # Arrays with all none + lp.insulators = [pd.NA, np.nan, None] + assert lp.insulators is None + + # Errors + with pytest.raises(RoseauLoadFlowException) as e: + lp.insulators = [pd.NA, np.nan, Insulator.LDPE] + assert e.value.msg == "Insulators cannot contain null values: [, nan, ldpe] was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_INSULATORS_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.insulators = ["invalid", Insulator.XLPE, "XLPE"] + assert e.value.msg == "'invalid' cannot be converted into a Insulator." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_INSULATOR + + with pytest.raises(RoseauLoadFlowException) as e: + lp.insulators = [Insulator.XLPE, Insulator.HDPE] + assert e.value.msg == "Incorrect number of insulators: 2 instead of 3." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_INSULATORS_SIZE + +def test_materials(): + z_line = np.eye(3, dtype=complex) + y_shunt = np.eye(3, dtype=complex) + + # None-like values + lp = LineParameters("test", z_line=z_line, y_shunt=y_shunt, materials=None) + assert lp.materials is None + lp.materials = np.nan + assert lp.materials is None + lp.materials = pd.NA + assert lp.materials is None + + # Single values + lp.materials = Material.AAAC + assert len(lp.materials) == 3 + assert np.array_equal(lp.materials, np.array([Material.AAAC] * 3)) + + lp.materials = Material.AAAC.name + assert len(lp.materials) == 3 + assert np.array_equal(lp.materials, np.array([Material.AAAC] * 3)) + + # Arrays + lp.materials = [Material.AAAC, Material.AL, Material.CU] + assert len(lp.materials) == 3 + assert np.array_equal(lp.materials, np.array([Material.AAAC, Material.AL, Material.CU])) + + # Arrays with all none + lp.materials = [np.nan, float("nan"), pd.NA] + assert lp.materials is None + + # Errors + with pytest.raises(RoseauLoadFlowException) as e: + lp.materials = [np.nan, float("nan"), Material.AM] + assert e.value.msg == "Materials cannot contain null values: [nan, nan, am] was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MATERIALS_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.materials = ["invalid", Material.AM, "AM"] + assert e.value.msg == "'invalid' cannot be converted into a Material." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MATERIAL + + with pytest.raises(RoseauLoadFlowException) as e: + lp.materials = [Material.AM, Material.AL] + assert e.value.msg == "Incorrect number of materials: 2 instead of 3." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MATERIALS_SIZE + + +def test_sections(): + z_line = np.eye(3, dtype=complex) + y_shunt = np.eye(3, dtype=complex) + + # None-like values + lp = LineParameters("test", z_line=z_line, y_shunt=y_shunt, sections=None) + assert lp.sections is None + lp.sections = np.nan + assert lp.sections is None + lp.sections = pd.NA + assert lp.sections is None + + # Single values + lp.sections = 4 + assert len(lp.sections) == 3 + assert np.allclose(lp.sections.magnitude, 4) + + lp.sections = Q_(4, "cm**2") + assert len(lp.sections) == 3 + assert np.allclose(lp.sections.magnitude, 400) + + # Arrays + lp.sections = Q_([4, 5, 6], "mm**2") + assert len(lp.sections) == 3 + assert np.allclose(lp.sections.magnitude, [4, 5, 6]) + + # Arrays with all none + lp.sections = [np.nan, float("nan"), pd.NA] + assert lp.sections is None + + # Errors + with pytest.raises(RoseauLoadFlowException) as e: + lp.sections = [np.nan, float("nan"), 3] + assert e.value.msg == "Sections cannot contain null values: [nan, nan, 3] mm² was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_SECTIONS_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.sections = [3, -1, 3.0] + assert e.value.msg == "Sections must be positive: [3.0, -1.0, 3.0] mm² was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_SECTIONS_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.sections = [3, 0, 3.0] + assert e.value.msg == "Sections must be positive: [3.0, 0.0, 3.0] mm² was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_SECTIONS_VALUE -def test_max_current(): - lp = LineParameters(id="test", z_line=np.eye(3)) - assert lp.max_current is None + with pytest.raises(RoseauLoadFlowException) as e: + lp.sections = [3, 3] + assert e.value.msg == "Incorrect number of sections: 2 instead of 3." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_SECTIONS_SIZE - lp = LineParameters(id="test", z_line=np.eye(3), max_current=100) - assert lp.max_current == Q_(100, "A") - lp.max_current = 200 - assert lp.max_current == Q_(200, "A") +def test_ampacities(): + z_line = np.eye(3, dtype=complex) + y_shunt = np.eye(3, dtype=complex) - lp.max_current = None - assert lp.max_current is None + # None-like values + lp = LineParameters("test", z_line=z_line, y_shunt=y_shunt, ampacities=None) + assert lp.ampacities is None + lp.ampacities = np.nan + assert lp.ampacities is None + lp.ampacities = pd.NA + assert lp.ampacities is None + + # Single values + lp.ampacities = 4 + assert len(lp.ampacities) == 3 + assert np.allclose(lp.ampacities.magnitude, 4) + + lp.ampacities = Q_(4, "kA") + assert len(lp.ampacities) == 3 + assert np.allclose(lp.ampacities.magnitude, 4000) + + # Arrays + lp.ampacities = Q_([4, 5, 6], "A") + assert len(lp.ampacities) == 3 + assert np.allclose(lp.ampacities.magnitude, [4, 5, 6]) + + # Array with all nan + lp.ampacities = [np.nan, float("nan"), pd.NA] + assert lp.ampacities is None + + # Errors + with pytest.raises(RoseauLoadFlowException) as e: + lp.ampacities = Q_([4, np.nan, 6], "A") + assert e.value.msg == "Ampacities cannot contain null values: [4.0, nan, 6.0] A was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_AMPACITIES_VALUE - lp.max_current = Q_(3, "kA") - assert lp.max_current == Q_(3_000, "A") + with pytest.raises(RoseauLoadFlowException) as e: + lp.ampacities = [1, 2] + assert e.value.msg == "Incorrect number of ampacities: 2 instead of 3." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_AMPACITIES_SIZE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.ampacities = -2 + assert e.value.msg == "Ampacities must be positive: -2 A was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_AMPACITIES_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.ampacities = 0 + assert e.value.msg == "Ampacities must be positive: 0 A was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_AMPACITIES_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.ampacities = [1, 0.1, -2] + assert e.value.msg == "Ampacities must be positive: [1.0, 0.1, -2.0] A was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_AMPACITIES_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + lp.ampacities = [1, 1.2, 0] + assert e.value.msg == "Ampacities must be positive: [1.0, 1.2, 0.0] A was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_AMPACITIES_VALUE def test_json_serialization(tmp_path): - lp = LineParameters(id="test", z_line=np.eye(3), max_current=np.int64(100), section=np.float64(150)) + lp = LineParameters(id="test", z_line=np.eye(3), sections=np.float64(150), ampacities=[1, 2, 3]) path = tmp_path / "lp.json" lp.to_json(path) lp_dict = LineParameters.from_json(path).to_dict() assert isinstance(lp_dict["z_line"], list) - assert isinstance(lp_dict["max_current"], int) - assert isinstance(lp_dict["section"], float) + npt.assert_allclose(lp_dict["sections"], [150, 150, 150]) + npt.assert_allclose(lp_dict["ampacities"], [1, 2, 3]) def test_from_open_dss(): @@ -596,7 +875,7 @@ def test_from_open_dss(): y_shunt_expected = [[ys_e, ym_e, ym_e], [ym_e, ys_e, ym_e], [ym_e, ym_e, ys_e]] np.testing.assert_allclose(lp240sq.y_shunt.m, y_shunt_expected) assert lp240sq.line_type is None - assert lp240sq.max_current is None + assert lp240sq.ampacities is None # DSS command: `New LineCode.16sq NPhases=1 R1=0.350, X1=0.025, R0=0.366, X0=0.025, C1=1.036, C0=0.488 Units=kft NormAmps=400 LineType=OH` lp16sq = LineParameters.from_open_dss( @@ -619,7 +898,7 @@ def test_from_open_dss(): y_shunt_expected = [[ys_e]] np.testing.assert_allclose(lp16sq.y_shunt.m, y_shunt_expected) assert lp16sq.line_type == LineType.OVERHEAD - assert lp16sq.max_current.m == 400 + assert np.allclose(lp16sq.ampacities.m, 400) def test_from_power_factory(): @@ -659,11 +938,11 @@ def test_from_power_factory(): y_shunt_expected = [[ys_e, ym_e, ym_e], [ym_e, ys_e, ym_e], [ym_e, ym_e, ys_e]] np.testing.assert_allclose(na2ysy1x95rm.y_shunt.m, y_shunt_expected) - assert na2ysy1x95rm.max_current.m == 235, na2ysy1x95rm.max_current + assert np.allclose(na2ysy1x95rm.ampacities.m, 235), na2ysy1x95rm.ampacities assert na2ysy1x95rm.line_type == LineType.UNDERGROUND - assert na2ysy1x95rm.conductor_type == ConductorType.AL - assert na2ysy1x95rm.insulator_type == InsulatorType.PVC - assert na2ysy1x95rm.section.m == 95 + assert np.array_equal(na2ysy1x95rm.materials, np.array([Material.AL] * 3)) + assert np.array_equal(na2ysy1x95rm.insulators, np.array([Insulator.PVC] * 3)) + assert np.allclose(na2ysy1x95rm.sections.m, 95) # Bad phases new_pwf_params = pwf_params | {"nphase": 4} @@ -694,7 +973,7 @@ def test_from_power_factory(): new_pwf_params = pwf_params | {"cohl": "OHL", "insulation": "XLPE"} lp = LineParameters.from_power_factory(**new_pwf_params) assert lp.line_type == LineType.OVERHEAD - assert lp.insulator_type == InsulatorType.XLPE + assert np.array_equal(lp.insulators, np.array([Insulator.XLPE] * 3, dtype=np.object_)) def test_results_to_dict(): @@ -707,12 +986,33 @@ def test_results_to_dict(): def test_equality(): - # Optional information are not used for the comparison lp = LineParameters.from_catalogue(name="U_AL_150", nb_phases=3) - for x in ("max_current", "line_type", "conductor_type", "insulator_type", "section"): - assert getattr(lp, x) is not None - lp2 = LineParameters(id=lp.id, z_line=lp.z_line, y_shunt=lp.y_shunt) + data = { + "id": lp.id, + "z_line": lp.z_line, + "y_shunt": lp.y_shunt, + "ampacities": lp.ampacities, + "line_type": lp.line_type, + "materials": lp.materials, + "insulators": lp.insulators, + "sections": lp.sections, + } + lp2 = LineParameters(**data) assert lp2 == lp + other_data = { + "id": lp.id + " other", + "z_line": lp.z_line.m + 0.1j, + "y_shunt": lp.y_shunt.m + 0.1j, + "ampacities": lp.ampacities.m + 1, + "line_type": LineType.OVERHEAD, + "materials": Material.CU, + "insulators": Insulator.XLPE, + "sections": lp.sections.m + 1, + } + for k, v in other_data.items(): + other_lp = LineParameters(**(data | {k: v})) + assert other_lp != lp, k + # Test the case which returns NotImplemented in the equality operator assert lp != object() diff --git a/roseau/load_flow/models/tests/test_lines.py b/roseau/load_flow/models/tests/test_lines.py index e89f7690..4dfd4a6d 100644 --- a/roseau/load_flow/models/tests/test_lines.py +++ b/roseau/load_flow/models/tests/test_lines.py @@ -5,6 +5,7 @@ from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode from roseau.load_flow.models import Bus, Ground, Line, LineParameters from roseau.load_flow.units import Q_ +from roseau.load_flow.utils import PositiveSequence as PosSeq def test_lines_length(): @@ -127,44 +128,102 @@ def test_line_ground(recwarn): assert e.value.code == RoseauLoadFlowExceptionCode.BAD_LINE_TYPE +def test_max_loading(): + bus1 = Bus(id="bus1", phases="abc") + bus2 = Bus(id="bus2", phases="abc") + lp = LineParameters(id="lp", z_line=np.eye(3, dtype=complex)) + line = Line(id="line", bus1=bus1, bus2=bus2, parameters=lp, length=Q_(50, "m")) + + # Value must be positive + with pytest.raises(RoseauLoadFlowException) as e: + line.max_loading = -1 + assert e.value.msg == "Maximum loading must be positive: -1 was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MAX_LOADING_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + line.max_loading = 0 + assert e.value.msg == "Maximum loading must be positive: 0 was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MAX_LOADING_VALUE + + def test_res_violated(): bus1 = Bus(id="bus1", phases="abc") bus2 = Bus(id="bus2", phases="abc") lp = LineParameters(id="lp", z_line=np.eye(3, dtype=complex)) line = Line(id="line", bus1=bus1, bus2=bus2, parameters=lp, length=Q_(50, "m")) - direct_seq = np.exp([0, -2 / 3 * np.pi * 1j, 2 / 3 * np.pi * 1j]) - bus1._res_potentials = 230 * direct_seq - bus2._res_potentials = 225 * direct_seq - line._res_currents = 10 * direct_seq, -10 * direct_seq + bus1._res_potentials = 230 * PosSeq + bus2._res_potentials = 225 * PosSeq + line._res_currents = 10 * PosSeq, -10 * PosSeq # No limits + assert line.max_loading == Q_(1, "") assert line.res_violated is None # No constraint violated - lp.max_current = 11 + lp.ampacities = 11 assert line.res_violated is False + np.testing.assert_allclose(line.res_loading.m, 10 / 11) + + # Reduced max_loading + line.max_loading = Q_(50, "%") + assert line.max_loading.m == 0.5 + assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, 10 / 11) # Two violations - lp.max_current = 9 + lp.ampacities = 9 + line.max_loading = 1 assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, 10 / 9) # Side 1 violation - lp.max_current = 11 - line._res_currents = 12 * direct_seq, -10 * direct_seq + lp.ampacities = 11 + line._res_currents = 12 * PosSeq, -10 * PosSeq assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, 12 / 11) # Side 2 violation - lp.max_current = 11 - line._res_currents = 10 * direct_seq, -12 * direct_seq + lp.ampacities = 11 + line._res_currents = 10 * PosSeq, -12 * PosSeq assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, 12 / 11) # A single phase violation - lp.max_current = 11 - line._res_currents = 10 * direct_seq, -10 * direct_seq - line._res_currents[0][0] = 12 * direct_seq[0] - line._res_currents[1][0] = -12 * direct_seq[0] + lp.ampacities = 11 + line._res_currents = 10 * PosSeq, -10 * PosSeq + line._res_currents[0][0] = 12 * PosSeq[0] + line._res_currents[1][0] = -12 * PosSeq[0] + assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, [12 / 11, 10 / 11, 10 / 11]) + + # + # The same with arrays + # + line._res_currents = 10 * PosSeq, -10 * PosSeq + + # No constraint violated + lp.ampacities = [11, 12, 13] + line.max_loading = 1 + assert line.res_violated is False + np.testing.assert_allclose(line.res_loading.m, [10 / 11, 10 / 12, 10 / 13]) + + # Two violations + lp.ampacities = [9, 9, 12] + assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, [10 / 9, 10 / 9, 10 / 12]) + + # Side 1 violation + lp.ampacities = [11, 10, 9] + line._res_currents = 12 * PosSeq, -10 * PosSeq + assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, [12 / 11, 12 / 10, 12 / 9]) + + # Side 2 violation + lp.ampacities = [11, 11, 13] + line._res_currents = 10 * PosSeq, -12 * PosSeq assert line.res_violated is True + np.testing.assert_allclose(line.res_loading.m, [12 / 11, 12 / 11, 12 / 13]) @pytest.mark.parametrize( @@ -366,26 +425,26 @@ def test_lines_results(phases, z_line, y_shunt, len_line, bus_pot, line_cur, gro bus2._res_potentials = np.array(bus_pot[1], dtype=complex) line._res_currents = np.array(line_cur[0], dtype=complex), np.array(line_cur[1], dtype=complex) ground._res_potential = ground_pot - res_powers1, res_powers2 = line.res_powers - series_losses = line.res_series_power_losses - shunt_losses = line.res_shunt_power_losses - line_losses = line.res_power_losses + res_powers1, res_powers2 = (x.m for x in line.res_powers) + series_losses = line.res_series_power_losses.m + shunt_losses = line.res_shunt_power_losses.m + line_losses = line.res_power_losses.m exp_p1, exp_p2, exp_pl_series = expected_pow - assert np.allclose(res_powers1.m_as("VA"), exp_p1) - assert np.allclose(res_powers2.m_as("VA"), exp_p2) - assert np.allclose(series_losses.m_as("VA"), exp_pl_series) + np.testing.assert_allclose(res_powers1, exp_p1) + np.testing.assert_allclose(res_powers2, exp_p2) + np.testing.assert_allclose(series_losses, exp_pl_series) if y_shunt is None: assert np.allclose(shunt_losses, 0) else: assert not np.allclose(shunt_losses, 0) - assert np.allclose(line_losses, series_losses + shunt_losses) + np.testing.assert_allclose(line_losses, series_losses + shunt_losses) # Sanity check: the total power lost is equal to the sum of the powers flowing through - assert np.allclose(res_powers1 + res_powers2, line_losses) + np.testing.assert_allclose(res_powers1 + res_powers2, line_losses, rtol=1e-6) # Check currents (Kirchhoff's law at each end of the line) - i1_line, i2_line = line.res_currents - i_series = line.res_series_currents - i1_shunt, i2_shunt = line.res_shunt_currents - assert np.allclose(i1_line, i_series + i1_shunt) - assert np.allclose(i2_line + i_series, i2_shunt, atol=1.0e-4) + i1_line, i2_line = (x.m for x in line.res_currents) + i_series = line.res_series_currents.m + i1_shunt, i2_shunt = (x.m for x in line.res_shunt_currents) + np.testing.assert_allclose(i1_line, i_series + i1_shunt, rtol=1e-6) + np.testing.assert_allclose(i2_line + i_series, i2_shunt, atol=1e-4) diff --git a/roseau/load_flow/models/tests/test_loads.py b/roseau/load_flow/models/tests/test_loads.py index ee0f69eb..65c22100 100644 --- a/roseau/load_flow/models/tests/test_loads.py +++ b/roseau/load_flow/models/tests/test_loads.py @@ -771,19 +771,13 @@ def test_loads_scalar_values(): # Current load load = CurrentLoad(id="load6", bus=bus, currents=2 + 1j, phases="abcn") - np.testing.assert_allclose( - load.currents.m, [(2 + 1j), (2 + 1j) * np.exp(-2j * np.pi / 3), (2 + 1j) * np.exp(2j * np.pi / 3)], strict=True - ) + np.testing.assert_allclose(load.currents.m, [2 + 1j, 2 + 1j, 2 + 1j], strict=True) load.currents = 4 + 2j - np.testing.assert_allclose( - load.currents.m, [(4 + 2j), (4 + 2j) * np.exp(-2j * np.pi / 3), (4 + 2j) * np.exp(2j * np.pi / 3)], strict=True - ) + np.testing.assert_allclose(load.currents.m, [4 + 2j, 4 + 2j, 4 + 2j], strict=True) load = CurrentLoad(id="load7", bus=bus, currents=2 + 1j, phases="abc") - np.testing.assert_allclose( - load.currents.m, [(2 + 1j), (2 + 1j) * np.exp(-2j * np.pi / 3), (2 + 1j) * np.exp(2j * np.pi / 3)], strict=True - ) + np.testing.assert_allclose(load.currents.m, [2 + 1j, 2 + 1j, 2 + 1j], strict=True) load = CurrentLoad(id="load8", bus=bus, currents=2 + 1j, phases="bcn") - np.testing.assert_allclose(load.currents.m, [(2 + 1j), -(2 + 1j)], strict=True) + np.testing.assert_allclose(load.currents.m, [2 + 1j, 2 + 1j], strict=True) load = CurrentLoad(id="load9", bus=bus, currents=2 + 1j, phases="ca") np.testing.assert_allclose(load.currents.m, [2 + 1j], strict=True) load = CurrentLoad(id="load10", bus=bus, currents=2 + 1j, phases="an") diff --git a/roseau/load_flow/models/tests/test_phases.py b/roseau/load_flow/models/tests/test_phases.py index 87d4cf54..81d3cff3 100644 --- a/roseau/load_flow/models/tests/test_phases.py +++ b/roseau/load_flow/models/tests/test_phases.py @@ -337,7 +337,7 @@ def test_transformer_three_phases(): # Not allowed tp = TransformerParameters.from_open_and_short_circuit_tests( - id="H61_50kVA", type="Dyn11", uhv=20000, ulv=400, sn=50 * 1e3, p0=145, i0=1.8 / 100, psc=1350, vsc=4 / 100 + id="H61_50kVA", vg="Dyn11", uhv=20000, ulv=400, sn=50 * 1e3, p0=145, i0=1.8 / 100, psc=1350, vsc=4 / 100 ) for ph in ("ba", "nc", "anb", "nabc", "acb"): with pytest.raises(RoseauLoadFlowException) as e: @@ -384,7 +384,7 @@ def test_transformer_single_phases(): # Not allowed tp = TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA", type="single", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 + id="160kVA", vg="Ii0", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 ) for ph in ("ba", "nc", "anb", "nabc", "acb"): with pytest.raises(RoseauLoadFlowException) as e: @@ -450,7 +450,7 @@ def test_transformer_center_phases(): # Not allowed tp = TransformerParameters.from_open_and_short_circuit_tests( - id="160kVA", type="center", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 + id="160kVA", vg="Iii0", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 ) for ph in ("ba", "nc", "anb", "nabc", "acb"): with pytest.raises(RoseauLoadFlowException) as e: diff --git a/roseau/load_flow/models/tests/test_transformer_parameters.py b/roseau/load_flow/models/tests/test_transformer_parameters.py index f00bc881..952c76be 100644 --- a/roseau/load_flow/models/tests/test_transformer_parameters.py +++ b/roseau/load_flow/models/tests/test_transformer_parameters.py @@ -22,7 +22,7 @@ def test_transformer_parameters(): "uhv": 20000, # V "sn": 50 * 1e3, # VA "vsc": 4 / 100, # % - "type": "yzn11", + "vg": "yzn11", } tp = TransformerParameters.from_dict(data) @@ -52,7 +52,7 @@ def test_transformer_parameters(): "uhv": 20000, # V "sn": 100 * 1e3, # VA "vsc": 4 / 100, # % - "type": "dyn11", + "vg": "dyn11", } tp = TransformerParameters.from_dict(data) r_iron = 3 * 20e3**2 / 210 # Ohm @@ -81,7 +81,7 @@ def test_transformer_parameters(): "uhv": 20000, # V "sn": 160 * 1e3, # VA "vsc": 4 / 100, # % - "type": "dyn5", + "vg": "dyn5", } tp = TransformerParameters.from_dict(data) r_iron = 3 * 20e3**2 / 460 # Ohm @@ -110,11 +110,11 @@ def test_transformer_parameters(): "uhv": 20000, # V "sn": 160 * 1e3, # VA "vsc": 4 / 100, # % - "type": "dtotoyn11", + "vg": "dtotoyn11", } with pytest.raises(RoseauLoadFlowException) as e: TransformerParameters.from_dict(data) - assert "Transformer windings cannot be extracted from the string" in e.value.msg + assert e.value.msg.startswith("Invalid vector group: 'dtotoyn11'. Expected one of ['Dd0'") assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_WINDINGS # UHV == ULV... @@ -123,16 +123,13 @@ def test_transformer_parameters(): "psc": 2350.0, # W "p0": 460.0, # W "i0": 5.6 / 100, # % - "ulv": 401, # V + "ulv": 400, # V "uhv": 400, # V "sn": 160 * 1e3, # VA "vsc": 4 / 100, # % - "type": "dyn11", + "vg": "dyn11", } - with pytest.raises(RoseauLoadFlowException) as e: - TransformerParameters.from_dict(data) - assert "has the low voltages higher than the high voltages" in e.value.msg - assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_VOLTAGES + TransformerParameters.from_dict(data) # UHV < ULV... data = { @@ -140,15 +137,18 @@ def test_transformer_parameters(): "psc": 2350.0, # W "p0": 460.0, # W "i0": 5.6 / 100, # % - "ulv": 400, # V - "uhv": 350, # V + "ulv": 400.0045, # V + "uhv": np.int64(350), # V "sn": 160 * 1e3, # VA "vsc": 4 / 100, # % - "type": "dyn11", + "vg": "dyn11", } with pytest.raises(RoseauLoadFlowException) as e: TransformerParameters.from_dict(data) - assert "has the low voltages higher than the high voltages" in e.value.msg + assert e.value.msg == ( + "Transformer parameters 'test' has the low voltage higher than the high voltage: " + "uhv=350 V and ulv=400.0045 V." + ) assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_VOLTAGES # Bad i0 @@ -161,7 +161,7 @@ def test_transformer_parameters(): "uhv": 20000, # V "sn": 160 * 1e3, # VA "vsc": 4 / 100, # % - "type": "dyn11", + "vg": "dyn11", } with pytest.raises(RoseauLoadFlowException) as e: TransformerParameters.from_dict(data) @@ -178,7 +178,7 @@ def test_transformer_parameters(): "uhv": 20000, # V "sn": 160 * 1e3, # VA "vsc": 4, # % - "type": "dyn11", + "vg": "dyn11", } with pytest.raises(RoseauLoadFlowException) as e: TransformerParameters.from_dict(data) @@ -188,7 +188,7 @@ def test_transformer_parameters(): # Bad l2_omega data = { "id": "test", - "type": "Dyn11", + "vg": "Dyn11", "sn": 50000.0, "uhv": 20000.0, "ulv": 400.0, @@ -213,7 +213,7 @@ def test_transformers_parameters_units(): "ulv": Q_(400, "V"), # V "uhv": Q_(20, "kV"), # V "sn": Q_(50, "kVA"), # VA - "type": "yzn11", + "vg": "yzn11", } tp = TransformerParameters(**data) assert np.isclose(tp._z2, (0.0864 + 0.0944406692j)) @@ -250,7 +250,7 @@ def test_transformers_parameters_units_from_tests(): "uhv": Q_(20, "kV"), # V "sn": Q_(50, "kVA"), # VA "vsc": Q_(4, "percent"), # % - "type": "yzn11", + "vg": "yzn11", } tp = TransformerParameters.from_open_and_short_circuit_tests(**data) assert np.isclose(tp._psc, 1350.0) @@ -280,9 +280,28 @@ def test_transformers_parameters_units_from_tests(): def test_transformer_type(): - valid_windings = ("y", "yn", "z", "zn", "d") + valid_windings1 = ("y", "yn", "d", "i") + valid_windings2 = ("y", "yn", "z", "zn", "d", "i", "ii") valid_phase_displacements = (0, 5, 6, 11) - valid_types = {"dd", "yy", "yny", "yyn", "ynyn", "dz", "dzn", "dy", "dyn", "yd", "ynd", "yz", "ynz", "yzn", "ynzn"} + valid_types = { + "dd", + "yy", + "yny", + "yyn", + "ynyn", + "dz", + "dzn", + "dy", + "dyn", + "yd", + "ynd", + "yz", + "ynz", + "yzn", + "ynzn", + "ii", + "iii", + } valid_full_types = { "dd0", "dd6", @@ -314,31 +333,35 @@ def test_transformer_type(): "yzn11", "ynzn5", "ynzn11", + "ii0", + "ii6", + "iii0", + "iii6", } - for winding1 in valid_windings: - for winding2 in valid_windings: - t = f"{winding1}{winding2}" - if t in valid_types: + for winding1 in valid_windings1: + for winding2 in valid_windings2: + vg = f"{winding1}{winding2}" + if vg in valid_types: with pytest.raises(RoseauLoadFlowException) as e: - TransformerParameters.extract_windings(t) - assert "Transformer windings cannot be extracted from the string" in e.value.msg + TransformerParameters.extract_windings(vg) + assert e.value.msg.startswith(f"Invalid vector group: '{vg}'. Expected one of ['Dd0'") assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_WINDINGS for phase_displacement in valid_phase_displacements: - t = f"{winding1}{winding2}{phase_displacement}" - if t in valid_full_types: - w1, w2, p = TransformerParameters.extract_windings(t) + vg = f"{winding1}{winding2}{phase_displacement}" + if vg in valid_full_types: + w1, w2, p = TransformerParameters.extract_windings(vg) assert w1 == winding1.upper() assert w2 == winding2 assert p == phase_displacement else: with pytest.raises(RoseauLoadFlowException) as e: - TransformerParameters.extract_windings(t) + TransformerParameters.extract_windings(vg) assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_WINDINGS else: with pytest.raises(RoseauLoadFlowException) as e: - TransformerParameters.extract_windings(t) - assert "Transformer windings cannot be extracted from the string" in e.value.msg + TransformerParameters.extract_windings(vg) + assert e.value.msg.startswith(f"Invalid vector group: '{vg}'. Expected one of ['Dd0'") assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_WINDINGS @@ -368,12 +391,15 @@ def test_catalogue_data(): assert tp.id in catalogue_data.index, error_message # Check the values are the same - assert tp.type == catalogue_data.at[tp.id, "type"] + assert tp.vg == catalogue_data.at[tp.id, "vg"] assert np.isclose(tp.uhv.m, catalogue_data.at[tp.id, "uhv"]) assert np.isclose(tp.ulv.m, catalogue_data.at[tp.id, "ulv"]) assert np.isclose(tp.sn.m, catalogue_data.at[tp.id, "sn"]) assert np.isclose(tp.p0.m, catalogue_data.at[tp.id, "p0"]) - assert np.isclose(tp.i0.m, catalogue_data.at[tp.id, "i0"]) + if pd.isna(tp.i0.m): + assert pd.isna(catalogue_data.at[tp.id, "i0"]) + else: + assert np.isclose(tp.i0.m, catalogue_data.at[tp.id, "i0"]) assert np.isclose(tp.psc.m, catalogue_data.at[tp.id, "psc"]) assert np.isclose(tp.vsc.m, catalogue_data.at[tp.id, "vsc"]) assert tp.manufacturer == catalogue_data.at[tp.id, "manufacturer"] @@ -389,24 +415,30 @@ def test_catalogue_data(): def test_from_catalogue(): # Unknown strings - for field_name in ("name", "manufacturer", "range", "efficiency", "type"): + for field_name, display_name in ( + ("name", "name"), + ("manufacturer", "manufacturer"), + ("range", "range"), + ("efficiency", "efficiency"), + ("vg", "vector group"), + ): # String with pytest.raises(RoseauLoadFlowException) as e: TransformerParameters.from_catalogue(**{field_name: "unknown"}) - assert e.value.msg.startswith(f"No {field_name} matching 'unknown' has been found. Available ") + assert e.value.msg.startswith(f"No {display_name} matching 'unknown' has been found. Available ") assert e.value.code == RoseauLoadFlowExceptionCode.CATALOGUE_NOT_FOUND # Regexp with pytest.raises(RoseauLoadFlowException) as e: TransformerParameters.from_catalogue(**{field_name: r"unknown[a-z]+"}) - assert e.value.msg.startswith(f"No {field_name} matching 'unknown[a-z]+' has been found. Available ") + assert e.value.msg.startswith(f"No {display_name} matching 'unknown[a-z]+' has been found. Available ") assert e.value.code == RoseauLoadFlowExceptionCode.CATALOGUE_NOT_FOUND # Unknown floats for field_name, display_name, display_unit in ( ("sn", "nominal power", "kVA"), - ("uhv", "primary side voltage", "kV"), - ("ulv", "secondary side voltage", "kV"), + ("uhv", "high voltage", "kV"), + ("ulv", "low voltage", "kV"), ): # Without unit with pytest.raises(RoseauLoadFlowException) as e: @@ -422,18 +454,17 @@ def test_from_catalogue(): # Several transformers with pytest.raises(RoseauLoadFlowException) as e: - TransformerParameters.from_catalogue(type=r"yzn.*", sn=50e3) + TransformerParameters.from_catalogue(vg=r"yzn.*", efficiency="A0Ak", sn=50e3) assert e.value.msg == ( - "Several transformers matching the query (type='yzn.*', nominal power=50.0 kVA) have been " - "found: 'SE_Minera_A0Ak_50kVA', 'SE_Minera_B0Bk_50kVA', 'SE_Minera_C0Bk_50kVA', " - "'SE_Minera_Standard_50kVA'." + "Several transformers matching the query (efficiency='A0Ak', vg='yzn.*', sn=50.0 kVA) have been found: " + "'SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11', 'SE Minera A0Ak 50kVA 15/20kV(15) 410V Yzn11'." ) assert e.value.code == RoseauLoadFlowExceptionCode.CATALOGUE_SEVERAL_FOUND # Success - tp = TransformerParameters.from_catalogue(name="SE_Minera_AA0Ak_160kVA") - assert tp.id == "SE_Minera_AA0Ak_160kVA" - tp = TransformerParameters.from_catalogue(name="SE_Minera_AA0Ak_160kVA", id="tp-test1") + tp = TransformerParameters.from_catalogue(name="SE Minera AA0Ak 160kVA 20kV 410V Dyn11") + assert tp.id == "SE Minera AA0Ak 160kVA 20kV 410V Dyn11" + tp = TransformerParameters.from_catalogue(name="SE Minera AA0Ak 160kVA 20kV 410V Dyn11", id="tp-test1") assert tp.id == "tp-test1" @@ -441,79 +472,52 @@ def test_get_catalogue(): # Get the entire catalogue catalogue = TransformerParameters.get_catalogue() assert isinstance(catalogue, pd.DataFrame) - assert catalogue.shape == (162, 7) + assert catalogue.shape == (309, 9) # Filter on a single attribute - for field_name, value, expected_size in ( - ("name", "SE_Minera_A0Ak_50kVA", 1), - ("manufacturer", "SE", 148), - ("range", r"min.*", 67), - ("efficiency", r"c0.*", 29), - ("type", r"dy.*", 158), - ("sn", Q_(160, "kVA"), 12), - ("uhv", Q_(20, "kV"), 162), - ("ulv", 400, 162), - ): + for field_name, value, expected_size in [ + ("name", "SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11", 1), + ("manufacturer", "SE", 259), + ("range", r"min.*", 123), + ("efficiency", r"c0.*", 58), + ("vg", r"dy.*", 297), + ("sn", Q_(160, "kVA"), 19), + ("uhv", Q_(20, "kV"), 172), + ("ulv", 400, 51), + ]: filtered_catalogue = TransformerParameters.get_catalogue(**{field_name: value}) - assert filtered_catalogue.shape == (expected_size, 7), f"{field_name}={value!r}" + assert filtered_catalogue.shape == (expected_size, 9), f"{field_name}={value!r}" # Filter on two attributes - for field_name, value, expected_size in ( - ("name", "SE_Minera_A0Ak_50kVA", 1), - ("range", "minera", 67), - ("efficiency", r"c0.*", 29), - ("type", r"^d.*11$", 144), - ("sn", Q_(160, "kVA"), 11), - ("uhv", Q_(20, "kV"), 148), - ("ulv", 400, 148), - ): + for field_name, value, expected_size in [ + ("name", "SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11", 1), + ("range", "minera", 123), + ("efficiency", r"c0.*", 58), + ("vg", r"^d.*11$", 247), + ("sn", Q_(160, "kVA"), 17), + ("uhv", Q_(20, "kV"), 158), + ("ulv", 400, 1), + ]: filtered_catalogue = TransformerParameters.get_catalogue(**{field_name: value}, manufacturer="se") - assert filtered_catalogue.shape == (expected_size, 7), f"{field_name}={value!r}" + assert filtered_catalogue.shape == (expected_size, 9), f"{field_name}={value!r}" # Filter on three attributes - for field_name, value, expected_size in ( - ("name", "se_VEGETA_C0BK_3150kva", 1), - ("efficiency", r"c0[abc]k", 15), - ("type", r"dyn\d+", 41), - ("sn", Q_(160, "kVA"), 3), + for field_name, value, expected_size in [ + ("name", "se VEGETA C0BK 3150kva 15/20Kv(20) 410v dyn11", 1), + ("efficiency", r"c0[abc]k", 30), + ("vg", r"dyn\d+", 71), + ("sn", Q_(160, "kVA"), 5), ("uhv", Q_(20, "kV"), 41), - ("ulv", 400, 41), - ): + ("ulv", 400, 0), + ]: filtered_catalogue = TransformerParameters.get_catalogue( **{field_name: value}, manufacturer="se", range=r"^vegeta$" ) - assert filtered_catalogue.shape == (expected_size, 7), f"{field_name}={value!r}" + assert filtered_catalogue.shape == (expected_size, 9), f"{field_name}={value!r}" # No results empty_catalogue = TransformerParameters.get_catalogue(ulv=250) - assert empty_catalogue.shape == (0, 7) - - -def test_max_power(): - kwds = { - "type": "yzn11", - "psc": 1350.0, - "p0": 145.0, - "i0": 1.8 / 100, - "ulv": 400, - "uhv": 20000, - "sn": 50 * 1e3, - "vsc": 4 / 100, - } - tp = TransformerParameters.from_open_and_short_circuit_tests(id="test", **kwds) - assert tp.max_power is None - - tp = TransformerParameters.from_open_and_short_circuit_tests(id="test", **kwds, max_power=60_000) - assert tp.max_power == Q_(60_000, "VA") - - tp.max_power = 55_000 - assert tp.max_power == Q_(55_000, "VA") - - tp.max_power = None - assert tp.max_power is None - - tp.max_power = Q_(65, "kVA") - assert tp.max_power == Q_(65_000, "VA") + assert empty_catalogue.shape == (0, 9) def test_from_open_dss(): @@ -544,15 +548,12 @@ def test_from_open_dss(): ~ wdg=1 bus=MVbusname kV=33 kVA=1800 conn=delta ~ Wdg=2 bus=LVBusname.1.2.3.4 kV=0.405 kVA=1800 conn=wye ~ %Loadloss=0.902 %imag=0.3 %noload=.136 LeadLag=Euro - - // Neutral reactor - New Reactor.5-ohm phases=1 bus=LVBusname.4 R=0 X=5 """ sn = Q_(1800, "kVA") tp_rlf = TransformerParameters.from_open_and_short_circuit_tests( id="tp-test", # Electrical parameters - type="Dyn11", + vg="Dyn11", uhv=Q_(33, "kV"), ulv=Q_(0.405, "kV"), sn=sn, @@ -584,6 +585,7 @@ def test_from_open_dss(): ) # Electrical parameters + assert tp_rlf.vg == tp_dss.vg assert tp_rlf.uhv == tp_dss.uhv assert tp_rlf.ulv == tp_dss.ulv assert tp_rlf.sn == tp_dss.sn @@ -622,7 +624,7 @@ def test_from_power_factory(): tp_rlf = TransformerParameters.from_open_and_short_circuit_tests( id="Transformer 100 kVA Dyn11", # Electrical parameters - type="Dyn11", + vg="Dyn11", uhv=Q_(20, "kV"), ulv=Q_(0.4, "kV"), sn=Q_(0.1, "MVA"), @@ -630,7 +632,6 @@ def test_from_power_factory(): i0=Q_(2.5, "percent"), psc=Q_(2.15, "kW"), vsc=Q_(4, "percent"), - max_power=Q_(0.1, "MVA"), # 100% of nominal power by default in PwF # Optional parameters manufacturer="Roseau", range="Tech+", @@ -643,7 +644,6 @@ def test_from_power_factory(): assert tp_pwf.sn == tp_rlf.sn assert tp_pwf.k == tp_rlf.k assert tp_pwf.orientation == tp_rlf.orientation - assert tp_pwf.max_power == tp_rlf.max_power np.testing.assert_allclose(tp_pwf.z2.m, tp_rlf.z2.m) np.testing.assert_allclose(tp_pwf.ym.m, tp_rlf.ym.m) @@ -672,7 +672,8 @@ def test_from_power_factory(): range="Tech+", efficiency="Wonderful", ) - assert tp_pwf.type == "single" + assert tp_pwf.type == "single-phase" + assert tp_pwf.vg == "Ii0" # Bad technology with pytest.raises(RoseauLoadFlowException) as e: @@ -704,7 +705,7 @@ def test_from_power_factory(): def test_to_dict(): # No results to export - tp = TransformerParameters.from_catalogue(name="SE_Minera_A0Ak_100kVA", manufacturer="SE") + tp = TransformerParameters.from_catalogue(name="SE Minera A0Ak 100kVA 15/20kV(20) 410V Dyn11") with pytest.raises(RoseauLoadFlowException) as e: tp.results_to_dict() assert e.value.msg == "The TransformerParameters has no results to export." @@ -713,7 +714,7 @@ def test_to_dict(): # All the options for to_dict: no short-circuit data but Optional data tp2 = TransformerParameters( id=tp.id, - type=tp.type, + vg=tp.vg, uhv=tp.uhv, ulv=tp.ulv, sn=tp.sn, @@ -728,7 +729,7 @@ def test_to_dict(): assert d.pop("sn") == tp2.sn.m assert d.pop("uhv") == tp2.uhv.m assert d.pop("ulv") == tp2.ulv.m - assert d.pop("type") == tp2.type + assert d.pop("vg") == tp2.vg assert d.pop("z2") == [tp2.z2.m.real, tp2.z2.m.imag] assert d.pop("ym") == [tp2.ym.m.real, tp2.ym.m.imag] assert d.pop("manufacturer") == tp2.manufacturer @@ -749,21 +750,40 @@ def test_equality(): "ulv": Q_(400, "V"), # V "uhv": Q_(20, "kV"), # V "sn": Q_(50, "kVA"), # VA - "type": "yzn11", + "vg": "yzn11", + "manufacturer": "Roseau", + "range": "Tech+", + "efficiency": "Extraordinary", } - # Optional information are not used for the comparison tp = TransformerParameters(**data) - tp2 = TransformerParameters(**data, manufacturer="Roseau", range="Tech+", efficiency="Extraordinary") + tp2 = TransformerParameters(**data) assert tp2 == tp + # Fails + other_data = { + "id": "Dyn11 - 49kVA", + "z2": Q_(8.63 + 9.444j, "centiohm"), # Ohm + "ym": Q_(0.48 - 2.2206j, "uS"), # S + "ulv": Q_(399, "V"), # V + "uhv": Q_(19, "kV"), # V + "sn": Q_(49, "kVA"), # VA + "vg": "dyn11", + "manufacturer": "Roso", + "range": "Tech-", + "efficiency": "Less extraordinary", + } + for k, v in other_data.items(): + other_tp = TransformerParameters(**(data | {k: v})) + assert other_tp != tp, k + # Test the case which returns NotImplemented in the equality operator assert tp != object() -@pytest.mark.no_patch_engine() +@pytest.mark.no_patch_engine def test_compute_open_short_circuit_parameters(): - tp = TransformerParameters.from_catalogue(name="SE_Minera_A0Ak_100kVA", manufacturer="SE") + tp = TransformerParameters.from_catalogue(name="SE Minera A0Ak 100kVA 15/20kV(20) 410V Dyn11") p0, i0 = tp._compute_open_circuit_parameters() assert np.isclose(p0.m, tp.p0.m) assert np.isclose(i0.m, tp.i0.m) @@ -776,10 +796,10 @@ def test_compute_open_short_circuit_parameters(): def test_ideal_transformer(): # Ideal transformer not yet supported with pytest.raises(RoseauLoadFlowException) as e: - TransformerParameters(id="test", type="Dyn11", sn=50e3, uhv=20e3, ulv=400, z2=0.0, ym=0.0) + TransformerParameters(id="test", vg="Dyn11", sn=50e3, uhv=20e3, ulv=400, z2=0.0, ym=0.0) assert e.value.msg == ( - "Transformer type 'test' has a null series impedance z2. Ideal transformers are not supported." + "Transformer parameters 'test' has a null series impedance z2. Ideal transformers are not supported yet." ) assert e.value.code == RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_IMPEDANCE # OK - TransformerParameters(id="test", type="Dyn11", sn=50e3, uhv=20e3, ulv=400, z2=0.0000001, ym=0.0) + TransformerParameters(id="test", vg="Dyn11", sn=50e3, uhv=20e3, ulv=400, z2=0.0000001, ym=0.0) diff --git a/roseau/load_flow/models/tests/test_transformers.py b/roseau/load_flow/models/tests/test_transformers.py index fe22ad2f..3f8d216f 100644 --- a/roseau/load_flow/models/tests/test_transformers.py +++ b/roseau/load_flow/models/tests/test_transformers.py @@ -1,56 +1,95 @@ import numpy as np +import pytest +from roseau.load_flow import Q_, RoseauLoadFlowException, RoseauLoadFlowExceptionCode +from roseau.load_flow import PositiveSequence as PosSeq from roseau.load_flow.models import Bus, Transformer, TransformerParameters +def test_max_power(): + tp = TransformerParameters.from_catalogue(name="FT 100kVA 15/20kV(20) 400V Dyn11") + assert tp.sn == Q_(100, "kVA") + + bus1 = Bus(id="bus1", phases="abc") + bus2 = Bus(id="bus2", phases="abc") + transformer = Transformer(id="transformer", bus1=bus1, bus2=bus2, parameters=tp, max_loading=1) + assert transformer.sn == Q_(100, "kVA") + assert transformer.max_power == Q_(100, "kVA") + + transformer.max_loading = 0.5 + assert transformer.sn == Q_(100, "kVA") + assert transformer.max_power == Q_(50, "kVA") + + +def test_max_loading(): + bus1 = Bus(id="bus1", phases="abc") + bus2 = Bus(id="bus2", phases="abc") + tp = TransformerParameters.from_open_and_short_circuit_tests( + id="tp", psc=1350.0, p0=145.0, i0=1.8 / 100, ulv=400, uhv=20000, sn=50 * 1e3, vsc=4 / 100, vg="yzn11" + ) + transformer = Transformer(id="transformer", bus1=bus1, bus2=bus2, parameters=tp) + + # Value must be positive + with pytest.raises(RoseauLoadFlowException) as e: + transformer.max_loading = -1 + assert e.value.msg == "Maximum loading must be positive: -1 was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MAX_LOADING_VALUE + + with pytest.raises(RoseauLoadFlowException) as e: + transformer.max_loading = 0 + assert e.value.msg == "Maximum loading must be positive: 0 was provided." + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MAX_LOADING_VALUE + + def test_res_violated(): bus1 = Bus(id="bus1", phases="abc") bus2 = Bus(id="bus2", phases="abcn") tp = TransformerParameters.from_open_and_short_circuit_tests( - id="tp", psc=1350.0, p0=145.0, i0=1.8 / 100, ulv=400, uhv=20000, sn=50 * 1e3, vsc=4 / 100, type="yzn11" + id="tp", psc=1350.0, p0=145.0, i0=1.8 / 100, ulv=400, uhv=20000, sn=50 * 1e3, vsc=4 / 100, vg="yzn11" ) transformer = Transformer(id="transformer", bus1=bus1, bus2=bus2, parameters=tp) - direct_seq = np.exp([0, -2 / 3 * np.pi * 1j, 2 / 3 * np.pi * 1j]) - direct_seq_neutral = np.concatenate([direct_seq, [0]]) - bus1._res_potentials = 20_000 * direct_seq - bus2._res_potentials = 230 * direct_seq_neutral - transformer._res_currents = 0.8 * direct_seq, -65 * direct_seq_neutral + bus1._res_potentials = 20_000 * PosSeq + bus2._res_potentials = np.concatenate([230 * PosSeq, [0]]) + transformer._res_currents = 0.8 * PosSeq, np.concatenate([-65 * PosSeq, [0]]) - # No limits - assert transformer.res_violated is None + # Default value + assert transformer.max_loading == Q_(1, "") + assert transformer.res_violated is False # No constraint violated - tp.max_power = 50_000 + transformer.max_loading = 1 assert transformer.res_violated is False + np.testing.assert_allclose(transformer.res_loading.m, 0.8 * 20 * 3 / 50) # Two violations - tp.max_power = 40_000 + transformer.max_loading = 4 / 5 assert transformer.res_violated is True + np.testing.assert_allclose(transformer.res_loading.m, 0.8 * 20 * 3 / 50) # Primary side violation - tp.max_power = 47_900 + transformer.max_loading = Q_(45, "%") assert transformer.res_violated is True + np.testing.assert_allclose(transformer.res_loading.m, 0.8 * 20 * 3 / 50) # Secondary side violation - tp.max_power = 50_000 - transformer._res_currents = 0.8 * direct_seq, -80 * direct_seq_neutral + transformer.max_loading = 1 + transformer._res_currents = 0.8 * PosSeq, np.concatenate([-80 * PosSeq, [0]]) assert transformer.res_violated is True + np.testing.assert_allclose(transformer.res_loading.m, 80 * 230 * 3 / 50_000) def test_transformer_results(): bus1 = Bus(id="bus1", phases="abc") bus2 = Bus(id="bus2", phases="abcn") tp = TransformerParameters.from_open_and_short_circuit_tests( - id="tp", psc=1350, p0=145, i0=0.018, ulv=400, uhv=20e3, sn=50e3, vsc=0.04, type="yzn11" + id="tp", psc=1350, p0=145, i0=0.018, ulv=400, uhv=20e3, sn=50e3, vsc=0.04, vg="yzn11" ) transformer = Transformer(id="transformer", bus1=bus1, bus2=bus2, parameters=tp) - direct_seq = np.exp([0, -2 / 3 * np.pi * 1j, 2 / 3 * np.pi * 1j]) - direct_seq_neutral = np.concatenate([direct_seq, [0]]) - bus1._res_potentials = 20_000 * direct_seq - bus2._res_potentials = 230 * direct_seq_neutral - transformer._res_currents = 0.8 * direct_seq, -65 * direct_seq_neutral + bus1._res_potentials = 20_000 * PosSeq + bus2._res_potentials = np.concatenate([230 * PosSeq, [0]]) + transformer._res_currents = 0.8 * PosSeq, np.concatenate([-65 * PosSeq, [0]]) res_p1, res_p2 = (p.m for p in transformer.res_powers) diff --git a/roseau/load_flow/models/transformers/parameters.py b/roseau/load_flow/models/transformers/parameters.py index 95bb88ff..3ea5e35c 100644 --- a/roseau/load_flow/models/transformers/parameters.py +++ b/roseau/load_flow/models/transformers/parameters.py @@ -2,12 +2,11 @@ import re from importlib import resources from pathlib import Path -from typing import Literal, NoReturn +from typing import Final, Literal, NoReturn import numpy as np import pandas as pd -import regex -from typing_extensions import Self, deprecated +from typing_extensions import Self from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode from roseau.load_flow.typing import FloatArrayLike1D, Id, JsonDict @@ -20,31 +19,34 @@ class TransformerParameters(Identifiable, JsonMixin, CatalogueMixin[pd.DataFrame]): """Parameters that define electrical models of transformers.""" - _EXTRACT_WINDINGS_RE = regex.compile( - "(?(DEFINE)(?Pyn?)(?Pd)(?Pzn?)(?P[06])" - "(?P5|11))" - "" - "(?|(?P(?&y_winding))(?P(?&y_winding))(?P

(?&p_set_1))" # yy - "|(?P(?&y_winding))(?P(?&d_winding))(?P

(?&p_set_2))" # yd - "|(?P(?&y_winding))(?P(?&z_winding))(?P

(?&p_set_2))" # yz - "|(?P(?&d_winding))(?P(?&z_winding))(?P

(?&p_set_1))" # dz - "|(?P(?&d_winding))(?P(?&y_winding))(?P

(?&p_set_2))" # dy - "|(?P(?&d_winding))(?P(?&d_winding))(?P

(?&p_set_1)))", # dd - regex.IGNORECASE, - ) - """The pattern to extract the winding of the primary and of the secondary of the transformer.""" - - @ureg_wraps(None, (None, None, None, "V", "V", "VA", "ohm", "S", "VA", None, None, None)) + # fmt: off + allowed_vector_groups: Final = { + # Three-phase + "Dd0", "Dd6", # Delta-delta + "Yy0", "Yy6", "Yyn0", "Yyn6", "Yny0", "Yny6", "Ynyn0", "Ynyn6", # Wye-wye + "Dy5", "Dy11", "Dyn5", "Dyn11", # Delta-wye + "Dz0", "Dz6", "Dzn0", "Dzn6", # Delta-zigzag + "Yd5", "Yd11", "Ynd5", "Ynd11", # Wye-delta + "Yz5", "Yz11", "Yzn5", "Yzn11", "Ynz5", "Ynz11", "Ynzn5", "Ynzn11", # Wye-zigzag + # Single-phase + "Ii0", "Ii6", + # Center-tapped + "Iii0", "Iii6", + } + """Allowed vector groups for transformers.""" + # fmt: on + + @ureg_wraps(None, (None, None, None, "V", "V", "VA", "ohm", "S", None, None, None)) def __init__( self, id: Id, - type: str, + *, + vg: str, uhv: float | Q_[float], ulv: float | Q_[float], sn: float | Q_[float], z2: complex | Q_[complex], ym: complex | Q_[complex], - max_power: float | Q_[float] | None = None, manufacturer: str | None = None, range: str | None = None, efficiency: str | None = None, @@ -55,16 +57,23 @@ def __init__( id: A unique ID of the transformer parameters, typically its canonical name. - type: - The type of transformer parameters. It can be "single" for single-phase transformers, "center" for - center-tapped transformers, or the name of the windings such as "Dyn11" for three-phase transformers. - Allowed windings are "D" for delta, "Y" for wye (star), and "Z" for zigzag. + vg: + The vector group of the transformer. + + For three-phase transformers, ``Dyn11`` denotes a delta-wye connection with -30° phase + displacement. Allowed windings are ``D`` for delta, ``Y`` for wye, ``Z`` for zigzag. + + For single-phase transformers, ``Ii0`` denotes a normal in-phase connection and + ``Ii6`` denotes an inverted connection. + + For center-tapped transformers, ``Iii0`` denotes a normal in-phase connection and + ``Iii6`` denotes an inverted connection. uhv: - Phase-to-phase nominal voltages of the high voltages side (V) + Rated phase-to-phase voltage of the HV side (V) ulv: - Phase-to-phase nominal voltages of the low voltages side (V) + Rated no-load phase-to-phase voltage of the LV side (V) sn: The nominal power of the transformer (VA) @@ -75,68 +84,75 @@ def __init__( ym: The magnetizing admittance located at the primary side of the transformer. - max_power: - The maximum power loading of the transformer (VA). It is not used in the load flow. - manufacturer: - The name of the manufacturer for the transformer. Informative only, it has no impact on the load flow. + The name of the manufacturer for the transformer. Informative only, it has no impact + on the load flow. It is filled automatically when the parameters when imported from + the catalogue. range: - The name of the product range for the transformer. Informative only, it has no impact on the load flow. + The product range for the transformer as defined by the manufacturer. Informative + only, it has no impact on the load flow. It is filled automatically when the + parameters when imported from the catalogue. efficiency: - The efficiency class of the transformer. Informative only, it has no impact on the load flow. + The efficiency class of the transformer. Informative only, it has no impact on the + load flow. It is filled automatically when the parameters when imported from the + catalogue. The efficiency class used in the catalogue follows the `Eco-Design` + requirements as defined by the `EN 50629` standard. """ super().__init__(id) # Check if uhv < ulv: msg = ( - f"Transformer type {id!r} has the low voltages higher than the high voltages: " - f"uhv={uhv:.2f} V and ulv={ulv:.2f} V." + f"Transformer parameters {id!r} has the low voltage higher than the high voltage: " + f"uhv={uhv!s} V and ulv={ulv!s} V." ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_VOLTAGES) - if np.isclose(z2, 0.0): - msg = f"Transformer type {id!r} has a null series impedance z2. Ideal transformers are not supported." + msg = ( + f"Transformer parameters {id!r} has a null series impedance z2. Ideal transformers " + f"are not supported yet." + ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_IMPEDANCE) + # Extract the windings of the primary and the secondary of the transformer + winding1, winding2, phase_displacement = self.extract_windings(vg=vg) + w1, w2 = winding1[0], winding2[0] + + self._vg: str = vg self._sn: float = sn self._uhv: float = uhv self._ulv: float = ulv self._z2: complex = z2 self._ym: complex = ym - self._manufacturer: str = manufacturer - self._range: str = range - self._efficiency: str = efficiency - - if type in ("single", "center"): - winding1 = winding2 = phase_displacement = None - else: - # Extract the windings of the primary and the secondary of the transformer - winding1, winding2, phase_displacement = self.extract_windings(string=type) - - assert phase_displacement in {0, 5, 6, 11}, phase_displacement - # Change the voltages if the reference voltages is phase to neutral - w1, w2 = winding1[0].upper(), winding2[0].lower() - if w1 == "Y": - uhv /= np.sqrt(3.0) - elif w1 == "Z": - uhv /= 3.0 - if w2 == "y": - ulv /= np.sqrt(3.0) - elif w2 == "z": - ulv /= 3.0 + self._manufacturer: str | None = manufacturer + self._range: str | None = range + self._efficiency: str | None = efficiency + + # Change the voltages if the reference voltages is phase-to-neutral + if w1 == "Y": + uhv /= np.sqrt(3.0) + elif w1 == "Z": + uhv /= 3.0 + if w2 == "y": + ulv /= np.sqrt(3.0) + elif w2 == "z": + ulv /= 3.0 + + n_of_winding = {"y": 4, "z": 4, "d": 3, "i": 2, "ii": 3} + n1 = n_of_winding[w1.lower()] + n2 = n_of_winding[w2.lower()] self._k: float = ulv / uhv self._orientation: float = -1.0 if phase_displacement in {5, 6} else 1.0 - self.winding1: str | None = winding1 - self.winding2: str | None = winding2 - self.phase_displacement: Literal[0, 5, 6, 11] | None = phase_displacement - self.type = type - self.max_power = max_power + self._n1: int = n1 + self._n2: int = n2 + self._winding1: str = winding1 + self._winding2: str = winding2 + self._phase_displacement: int = phase_displacement # Filled using alternative constructor `from_open_and_short_circuit_tests` self._p0: float | None = None @@ -145,12 +161,8 @@ def __init__( self._vsc: float | None = None def __repr__(self) -> str: - s = ( - f"<{type(self).__name__}: id={self.id!r}, type={self.type!r}, sn={self._sn}, uhv={self._uhv}, " - f"ulv={self._ulv}" - ) + s = f"<{type(self).__name__}: id={self.id!r}, vg={self._vg!r}, sn={self._sn}, uhv={self._uhv}, ulv={self._ulv}" for attr, val, tp in ( - ("max_power", self._max_power, float), ("p0", self._p0, float), ("i0", self._i0, float), ("psc", self._psc, float), @@ -168,26 +180,87 @@ def __eq__(self, other: object) -> bool: if not isinstance(other, TransformerParameters): return NotImplemented else: - return ( + return bool( self.id == other.id - and self.type == other.type + and self._vg == other._vg and np.isclose(self._sn, other._sn) and np.isclose(self._uhv, other._uhv) and np.isclose(self._ulv, other._ulv) and np.isclose(self._z2, other._z2) and np.isclose(self._ym, other._ym) + and self._manufacturer == other._manufacturer + and self._range == other._range + and self._efficiency == other._efficiency ) + @property + def type(self) -> Literal["three-phase", "single-phase", "center-tapped"]: + """The type of transformer parameters. + + It can be ``three-phase``, ``single-phase`` or ``center-tapped``. + """ + if self._vg in ("Ii0", "Ii6"): + return "single-phase" + elif self._vg in ("Iii0", "Iii6"): + return "center-tapped" + else: + return "three-phase" + + @property + def vg(self) -> str: + """The vector group of the transformer. + + For three-phase transformers, ``Dyn11`` denotes a delta-wye connection with 30° lead phase + displacement. Allowed windings are ``D`` for delta, ``Y`` for wye, ``Z`` for zigzag. + + For single-phase transformers, ``Ii0`` denotes a normal in-phase connection and ``Ii6`` + denotes an inverted connection. + + For center-tapped transformers, ``Iii0`` denotes a normal in-phase connection and ``Iii6`` + denotes an inverted connection. + """ + return self._vg + + @property + def winding1(self) -> str: + """The primary winding of the transformer. + + The following values are used: + - ``D``: a Delta connection + - ``Y`` or ``Yn``: a Wye connection + - ``Z`` or ``Zn``: a Zigzag connection + - ``I``: single-phase + """ + return self._winding1 + + @property + def winding2(self) -> str: + """The secondary winding of the transformer. + + The following values are used: + - ``d``: a Delta connection + - ``y`` or ``yn``: a Wye connection + - ``z`` or ``zn``: a Zigzag connection + - ``i``: single-phase + - ``ii`` split-phase (i.e center-tapped) + """ + return self._winding2 + + @property + def phase_displacement(self) -> int: + """The phase rotation as indicated by the vector group.""" + return self._phase_displacement + @property @ureg_wraps("V", (None,)) def uhv(self) -> Q_[float]: - """Phase-to-phase nominal voltages of the high voltages side (V).""" + """Rated phase-to-phase voltage of the HV side (V).""" return self._uhv @property @ureg_wraps("V", (None,)) def ulv(self) -> Q_[float]: - """Phase-to-phase nominal voltages of the low voltages side (V).""" + """Rated no-load phase-to-phase voltage of the LV side (V).""" return self._ulv @property @@ -219,16 +292,6 @@ def orientation(self) -> float: """The orientation of the transformer: 1 for direct windings or -1 for reverse windings.""" return self._orientation - @property - def max_power(self) -> Q_[float] | None: - """The maximum power loading of the transformer (VA) if it is set.""" - return None if self._max_power is None else Q_(self._max_power, "VA") - - @max_power.setter - @ureg_wraps(None, (None, "VA")) - def max_power(self, value: float | Q_[float] | None) -> None: - self._max_power = value - @property def p0(self) -> Q_[float] | None: """Losses during open-circuit test (W).""" @@ -251,48 +314,37 @@ def vsc(self) -> Q_[float] | None: @property def manufacturer(self) -> str | None: - """The name of the manufacturer for the transformer. Informative only, it has no impact on the load flow.""" + """The name of the manufacturer for the transformer. + + Informative only, it has no impact on the load flow. It is filled automatically when the + parameters are imported from the catalogue. + """ return self._manufacturer @property def range(self) -> str | None: - """The name of the product range for the transformer. Informative only, it has no impact on the load flow.""" + """The product range for the transformer as defined by the manufacturer. + + Informative only, it has no impact on the load flow. It is filled automatically when the + parameters are imported from the catalogue. + """ return self._range @property def efficiency(self) -> str | None: - """The efficiency class of the transformer. Informative only, it has no impact on the load flow.""" - return self._efficiency - - @deprecated( - "The to_zyk method of TransformerParameters is deprecated. The parameters" - "`z2`, `ym`, `k`, and `orientation` are now accessible on the object directly", - category=FutureWarning, - ) - @ureg_wraps(("ohm", "S", "", None), (None,)) - def to_zyk(self) -> tuple[Q_[complex], Q_[complex], Q_[float], float]: - """Get the transformer parameters ``z2``, ``ym``, ``k`` and ``orientation`` mandatory for some models. + """The efficiency class of the transformer. - Where: - * ``z2``: The series impedance of the transformer (Ohms). - * ``ym``: The magnetizing admittance of the transformer (Siemens). - * ``k``: The transformation ratio. - * ``orientation``: 1 for direct winding, -1 for reverse winding. - - Returns: - The parameters (``z2``, ``ym``, ``k``, ``orientation``). + Informative only, it has no impact on the load flow. It is filled automatically when the + parameters imported from the catalogue. The efficiency class used in the catalogue follows + the `Eco-Design` requirements as defined by the `EN 50629` standard. """ - return self._z2, self._ym, self._k, self._orientation + return self._efficiency @classmethod def _compute_zy( - cls, type: str, uhv: float, ulv: float, sn: float, p0: float, i0: float, psc: float, vsc: float + cls, vg: str, uhv: float, ulv: float, sn: float, p0: float, i0: float, psc: float, vsc: float ) -> tuple[complex, complex]: - if type in ("single", "center"): - winding1, winding2 = None, None - else: - winding1, winding2, _ = cls.extract_windings(string=type) - winding1, winding2 = winding1[0].upper(), winding2[0].lower() + w1, w2, _ = cls.extract_windings(vg=vg) # Off-load test # Iron losses resistance (Ohm) @@ -315,9 +367,9 @@ def _compute_zy( l2_omega = np.sqrt((vsc * ulv**2 / sn) ** 2 - r2**2) z2 = r2 + 1j * l2_omega - if winding1 == "D": + if w1[0] == "D": ym /= 3 - if winding2 == "d": + if w2[0] == "d": z2 *= 3 return z2, ym @@ -339,7 +391,6 @@ def _compute_zy( "kW", "percent", "kW", - "percent", None, None, None, @@ -360,7 +411,6 @@ def from_power_factory( pc: float | Q_[float], curmg: float | Q_[float], pfe: float | Q_[float], - maxload: float | Q_[float] | None = 100, manufacturer: str | None = None, range: str | None = None, efficiency: str | None = None, @@ -382,12 +432,12 @@ def from_power_factory( PwF parameter `strn` (Rated Power). The rated power of the transformer in (MVA). uhv: - PwF parameter `utrn_h` (Rated Voltage HV-Side). The rated phase to phase voltage of - the transformer on the high voltage side. + PwF parameter `utrn_h` (Rated Voltage HV-Side). The rated phase-to-phase voltage of + the transformer on the HV side. ulv: - PwF parameter `utrn_l` (Rated Voltage LV-Side). The rated phase to phase voltage of - the transformer on the low voltage side. + PwF parameter `utrn_l` (Rated Voltage LV-Side). The rated phase-to-phase voltage of + the transformer on the LV side. vg_hv: PwF parameter `tr2cn_h` (Vector Group HV-Side). The vector group of the high voltage @@ -419,20 +469,17 @@ def from_power_factory( PwF parameter `pfe` (Magnetizing Impedance - No Load Losses). The magnetizing impedance i.e. the power losses in (kW) obtained from the no-load test. - maxload: - PwF parameter `maxload` (Max. Thermal Loading Limit). The maximum loading of the - transformer in (%) of the nominal power. This parameter is defined on the transformer - element (`ElmTr2`) in PwF instead of the transformer type (`TypTr2`). - This is used to compute `max_current` and is used for violation checks. - manufacturer: - The name of the manufacturer for the transformer. Informative only, it has no impact on the load flow. + The name of the manufacturer for the transformer. Informative only, it has no impact + on the load flow. range: - The name of the product range for the transformer. Informative only, it has no impact on the load flow. + The name of the product range for the transformer. Informative only, it has no impact + on the load flow. efficiency: - The efficiency class of the transformer. Informative only, it has no impact on the load flow. + The efficiency class of the transformer. Informative only, it has no impact on the + load flow. Returns: The corresponding transformer parameters object. @@ -440,9 +487,9 @@ def from_power_factory( # Type: from vector group data and technology tech_norm = str(tech).upper().replace(" ", "-") if tech_norm.startswith("SINGLE-PHASE") or tech_norm == "2": - type = "single" + vg = "Ii0" # TODO do we have vector group data for single-phase transformers? elif tech_norm.startswith("THREE-PHASE") or tech_norm == "3": - type = f"{vg_hv.upper()}{vg_lv.lower()}{phase_shift}" + vg = f"{vg_hv.upper()}{vg_lv.lower()}{phase_shift}" else: msg = f"Expected tech='single-phase' or 'three-phase', got {tech!r} for transformer parameters {id!r}." logger.error(msg) @@ -456,24 +503,20 @@ def from_power_factory( i0 = curmg / 100 vsc = uk / 100 - z2, ym = cls._compute_zy(type=type, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc) - - max_power = (sn * maxload / 100) if maxload is not None else None + z2, ym = cls._compute_zy(vg=vg, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc) - obj = cls( + return cls( id=id, - type=type, + vg=vg, uhv=uhv, ulv=ulv, sn=sn, z2=z2, ym=ym, - max_power=max_power, manufacturer=manufacturer, range=range, efficiency=efficiency, ) - return obj @classmethod @ureg_wraps( @@ -490,7 +533,6 @@ def from_power_factory( "percent", "percent", "percent", - "kVA", None, None, None, @@ -509,7 +551,6 @@ def from_open_dss( noloadloss: float | Q_[float] = 0, imag: float | Q_[float] = 0, rs: float | Q_[float] | tuple[float, float] | FloatArrayLike1D | None = None, - normhkva: float | Q_[float] | None = None, manufacturer: str | None = None, range: str | None = None, efficiency: str | None = None, @@ -528,7 +569,7 @@ def from_open_dss( kvs: OpenDSS parameter: `KVs`. Rated phase-to-phase voltage of the windings, kV. This is - a sequence of two values equivalent to (Uhv, Ulv). + a sequence of two values equivalent to (Up, Us). kvas: OpenDSS parameter: `KVAs`. Base kVA rating (OA rating) of the windings. Note that @@ -562,26 +603,24 @@ def from_open_dss( with `loadloss`, they have to have equivalent values. For a two-winding transformer, `%rs=[0.1, 0.1]` is equivalent to `%loadloss=0.2`. - normhkva: - OpenDSS parameter: `NormHKVA`. Normal maximum kVA rating for H winding (1). Usually - 100 - 110% of maximum nameplate rating. - This value is passed to `max_current` and used for violation checks. - manufacturer: - The name of the manufacturer for the transformer. Informative only, it has no impact on the load flow. + The name of the manufacturer for the transformer. Informative only, it has no impact + on the load flow. range: - The name of the product range for the transformer. Informative only, it has no impact on the load flow. + The name of the product range for the transformer. Informative only, it has no impact + on the load flow. efficiency: - The efficiency class of the transformer. Informative only, it has no impact on the load flow. + The efficiency class of the transformer. Informative only, it has no impact on the + load flow. Returns: The corresponding transformer parameters object. Example usage:: - # DSS command: `DSSText.Command = "New transformer.LVTR Buses=[sourcebus, A.1.2.3] Conns=[delta wye] KVs=[11, 0.4] KVAs=[250 250] %Rs=0.00 xhl=2.5 %loadloss=0 "` + # DSS command: `New transformer.LVTR Buses=[sourcebus, A.1.2.3] Conns=[delta wye] KVs=[11, 0.4] KVAs=[250 250] %Rs=0.00 xhl=2.5 %loadloss=0` tp = rlf.TransformerParameters.from_open_dss( id="dss-tp", conns=("delta", "wye"), @@ -632,8 +671,8 @@ def from_open_dss( else: phase_displacement = 0 # TODO is leadlag used with Dd or Yy transformers? - # Type: from winding and lead-lag parameters - type = f"{w1}{w2}{phase_displacement}" + # Vector Group: from winding and lead-lag parameters + vg = f"{w1}{w2}{phase_displacement}" # High and low rated voltages uhv, ulv = (u * 1000 for u in kvs) # in Volts @@ -671,35 +710,31 @@ def from_open_dss( i0 = imag / 100 psc = (loadloss / 100) * sn vsc = xhl / 100 - z2, ym = cls._compute_zy(type=type, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc) - - # Max power - max_power = normhkva * 1000 if normhkva is not None else None + z2, ym = cls._compute_zy(vg=vg, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc) - obj = cls( + return cls( id=id, - type=type, + vg=vg, uhv=uhv, ulv=ulv, sn=sn, z2=z2, ym=ym, - max_power=max_power, manufacturer=manufacturer, range=range, efficiency=efficiency, ) - return obj # # Open and short circuit tests # @classmethod - @ureg_wraps(None, (None, None, None, "V", "V", "VA", "W", "", "W", "", "VA", None, None, None)) + @ureg_wraps(None, (None, None, None, "V", "V", "VA", "W", "", "W", "", None, None, None)) def from_open_and_short_circuit_tests( cls, id: Id, - type: str, + *, + vg: str, uhv: float | Q_[float], ulv: float | Q_[float], sn: float | Q_[float], @@ -707,7 +742,6 @@ def from_open_and_short_circuit_tests( i0: float | Q_[float], psc: float | Q_[float], vsc: float | Q_[float], - max_power: float | Q_[float] | None = None, manufacturer: str | None = None, range: str | None = None, efficiency: str | None = None, @@ -718,43 +752,54 @@ def from_open_and_short_circuit_tests( id: A unique ID of the transformer parameters, typically its canonical name. - type: - The type of transformer parameters. It can be "single" for single-phase transformers, "center" for - center-tapped transformers, or the name of the windings such as "Dyn11" for three-phase transformers. - Allowed windings are "D" for delta, "Y" for wye (star), and "Z" for zigzag. + vg: + The vector group of the transformer. + + For three-phase transformers, ``Dyn11`` denotes a delta-wye connection with -30° phase + displacement. Allowed windings are ``D`` for delta, ``Y`` for wye, ``Z`` for zigzag. + + For single-phase transformers, ``Ii0`` denotes a normal in-phase connection and + ``Ii6`` denotes an inverted connection. + + For center-tapped transformers, ``Iii0`` denotes a normal in-phase connection and + ``Iii6`` denotes an inverted connection. uhv: - Phase-to-phase nominal voltages of the high voltages side (V) + Rated phase-to-phase voltage of the HV side (V). ulv: - Phase-to-phase nominal voltages of the low voltages side (V) + Rated no-load phase-to-phase voltage of the LV side (V). sn: - The nominal power of the transformer (VA) + The nominal power of the transformer (VA). p0: - Losses during open-circuit test (W) + Losses during open-circuit test (W). i0: - Current during open-circuit test (%) + Current during open-circuit test (%). psc: - Losses during short-circuit test (W) + Losses during short-circuit test (W). vsc: - Voltages on LV side during short-circuit test (%) - - max_power: - The maximum power loading of the transformer (VA). It is not used in the load flow. + Voltages on LV side during short-circuit test (%). manufacturer: - The name of the manufacturer for the transformer. Informative only, it has no impact on the load flow. + The name of the manufacturer for the transformer. Informative only, it has no impact + on the load flow. It is filled automatically when the parameters when imported from + the catalogue. range: - The name of the product range for the transformer. Informative only, it has no impact on the load flow. + The product range for the transformer as defined by the manufacturer. Informative + only, it has no impact on the load flow. It is filled automatically when the + parameters when imported from the catalogue. efficiency: - The efficiency class of the transformer. Informative only, it has no impact on the load flow. + The efficiency class of the transformer. Informative only, it has no impact on the + load flow. It is filled automatically when the parameters when imported from the + catalogue. The efficiency class used in the catalogue follows the `Eco-Design` + requirements as defined by the `EN 50629` standard. """ # Check if i0 > 1.0 or i0 < 0.0: @@ -774,7 +819,7 @@ def from_open_and_short_circuit_tests( if psc / sn > vsc: msg = ( f"Invalid short-circuit results for transformer parameters {id!r}. The following " - f"inequality must be respected: psc/sn <= vsc" + f"inequality must be respected: psc/sn <= vsc, got {psc/sn=:f} and {vsc=:f}." ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_PARAMETERS) @@ -784,17 +829,16 @@ def from_open_and_short_circuit_tests( f"i0 * sn > p0. The magnetizing admittance imaginary part will be null." ) - z2, ym = cls._compute_zy(type=type, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc) + z2, ym = cls._compute_zy(vg=vg, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc) instance = cls( id=id, - type=type, + vg=vg, uhv=uhv, ulv=ulv, sn=sn, z2=z2, ym=ym, - max_power=max_power, manufacturer=manufacturer, range=range, efficiency=efficiency, @@ -817,56 +861,52 @@ def _compute_open_circuit_parameters(self, solve_kwargs: JsonDict | None = None) Returns: The values ``p0``, the losses (in W), and ``i0``, the current (in %) during open-circuit test. """ - from roseau.load_flow.converters import _calculate_voltages from roseau.load_flow.models import Bus, PotentialRef, Transformer, VoltageSource from roseau.load_flow.network import ElectricalNetwork if solve_kwargs is None: solve_kwargs = {} - if self.type == "single": + voltage = self._uhv + if self.type == "single-phase": phases_hv = "ab" phases_lv = "ab" - voltages = [self._uhv] - elif self.type == "center": + elif self.type == "center-tapped": phases_hv = "ab" phases_lv = "abn" - voltages = [self._uhv] else: # Three-phase transformer - phases_hv = "abc" if self.winding1.lower().startswith("d") else "abcn" - phases_lv = "abc" if self.winding2.lower().startswith("d") else "abcn" + phases_hv = "abc" if self.winding1[0] == "D" else "abcn" + phases_lv = "abc" if self.winding2[0] == "d" else "abcn" if "n" in phases_hv: - voltages = self._uhv / np.sqrt(3) * np.exp([0, -2j * np.pi / 3, 2j * np.pi / 3]) - else: - voltages = _calculate_voltages( - potentials=self._uhv / np.sqrt(3) * np.exp([0, -2j * np.pi / 3, 2j * np.pi / 3]), phases="abc" - ) + voltage /= np.sqrt(3) bus_hv = Bus(id="BusHV", phases=phases_hv) bus_lv = Bus(id="BusLV", phases=phases_lv) PotentialRef(id="PRefHV", element=bus_hv) PotentialRef(id="PRefLV", element=bus_lv) - VoltageSource(id="VS", bus=bus_hv, voltages=voltages) + VoltageSource(id="VS", bus=bus_hv, voltages=voltage) transformer = Transformer(id="Transformer", bus1=bus_hv, bus2=bus_lv, parameters=self) en = ElectricalNetwork.from_element(bus_hv) en.solve_load_flow(**solve_kwargs) p_primary = transformer.res_powers[0].m.sum().real i_primary = abs(transformer.res_currents[0].m[0]) - in_ = self._sn / self._uhv if self.type in ("single", "center") else self._sn / (np.sqrt(3) * self._uhv) + i_nom = self._sn / self._uhv + if self.type == "three-phase": + i_nom /= np.sqrt(3) # Additional checks - u_secondary = abs(_calculate_voltages(potentials=bus_lv.res_potentials.m, phases=phases_lv)) - if self.type == "single": + u_secondary = abs(bus_lv.res_voltages.m) + if self.type == "single-phase": expected_u_secondary = self._ulv - elif self.type == "center": + elif self.type == "center-tapped": expected_u_secondary = self._ulv / 2 else: expected_u_secondary = self._ulv / np.sqrt(3) np.testing.assert_allclose(u_secondary, expected_u_secondary) - return p_primary, i_primary / in_ + return p_primary, i_primary / i_nom @ureg_wraps(("W", ""), (None, None)) def _compute_short_circuit_parameters(self, solve_kwargs: JsonDict | None = None) -> tuple[Q_[float], Q_[float]]: @@ -874,50 +914,39 @@ def _compute_short_circuit_parameters(self, solve_kwargs: JsonDict | None = None Args: solve_kwargs: - The keywords arguments used by the :meth:`ElectricalNetwork.solve_load_flow` method. By default, the - default arguments of the method are used. + The keywords arguments used by the :meth:`ElectricalNetwork.solve_load_flow` method. + By default, the default arguments of the method are used. Returns: The values ``psc``, the losses (in W), and ``vsc``, the voltages on LV side (in %) during short-circuit test. """ - from roseau.load_flow.converters import _calculate_voltages from roseau.load_flow.models import Bus, PotentialRef, Transformer, VoltageSource from roseau.load_flow.network import ElectricalNetwork if solve_kwargs is None: solve_kwargs = {} - potentials_hv = None - potentials_lv = None vsc = abs(self._z2) * self._sn / self._ulv**2 - if self.type == "single": + voltage = vsc * self._uhv + if self.type == "single-phase": phases_hv = "ab" phases_lv = "ab" - voltages = [vsc * self._uhv] - elif self.type == "center": + elif self.type == "center-tapped": phases_hv = "ab" phases_lv = "abn" - voltages = [vsc * self._uhv] - # TODO: The initialization of potentials seems very bad in the case of such short-circuit... - potentials_hv = [vsc * self._uhv, -vsc * self._uhv] - potentials_lv = [0, 0, 0] else: # Three-phase transformer - phases_hv = "abc" if self.winding1.lower().startswith("d") else "abcn" - phases_lv = "abc" if self.winding2.lower().startswith("d") else "abcn" + phases_hv = "abc" if self.winding1[0] == "D" else "abcn" + phases_lv = "abc" if self.winding2[0] == "d" else "abcn" if "n" in phases_hv: - voltages = vsc * self._uhv / np.sqrt(3) * np.exp([0, -2j * np.pi / 3, 2j * np.pi / 3]) - else: - voltages = _calculate_voltages( - potentials=vsc * self._uhv / np.sqrt(3) * np.exp([0, -2j * np.pi / 3, 2j * np.pi / 3]), phases="abc" - ) + voltage /= np.sqrt(3) - bus_hv = Bus(id="BusHV", phases=phases_hv, potentials=potentials_hv) - bus_lv = Bus(id="BusLV", phases=phases_lv, potentials=potentials_lv) + bus_hv = Bus(id="BusHV", phases=phases_hv) + bus_lv = Bus(id="BusLV", phases=phases_lv) PotentialRef(id="PRefHV", element=bus_hv) PotentialRef(id="PRefLV", element=bus_lv) - VoltageSource(id="VS", bus=bus_hv, voltages=voltages) + VoltageSource(id="VS", bus=bus_hv, voltages=voltage) transformer = Transformer(id="Transformer", bus1=bus_hv, bus2=bus_lv, parameters=self) bus_lv.add_short_circuit(*phases_lv) en = ElectricalNetwork.from_element(bus_hv) @@ -925,9 +954,11 @@ def _compute_short_circuit_parameters(self, solve_kwargs: JsonDict | None = None p_primary = transformer.res_powers[0].m.sum().real # Additional check - in_ = self._sn / self._ulv if self.type in ("single", "center") else self._sn / (np.sqrt(3) * self._ulv) + i_nom = self._sn / self._ulv + if self.type == "three-phase": + i_nom /= np.sqrt(3) # I = S3ph / (sqrt(3) * U) i_secondary = abs(transformer.res_currents[1].m[0]) - np.testing.assert_allclose(i_secondary, in_) + np.testing.assert_allclose(i_secondary, i_nom) return p_primary, vsc @@ -940,15 +971,14 @@ def from_dict(cls, data: JsonDict, *, include_results: bool = True) -> Self: # TODO should we validate z2 and ym if they exist? return cls.from_open_and_short_circuit_tests( id=data["id"], - type=data["type"], # Type of the transformer - uhv=data["uhv"], # Phase-to-phase nominal voltages of the high voltages side (V) - ulv=data["ulv"], # Phase-to-phase nominal voltages of the low voltages side (V) + vg=data["vg"], # Vector Group (e.g. Dyn11) + uhv=data["uhv"], # Rated phase-to-phase voltage of the HV side (V) + ulv=data["ulv"], # Rated no-load phase-to-phase voltage of the LV side (V) sn=data["sn"], # Nominal power p0=data["p0"], # Losses during open-circuit test (W) i0=data["i0"], # Current during open-circuit test (%) psc=data["psc"], # Losses during short-circuit test (W) vsc=data["vsc"], # Voltages on LV side during short-circuit test (%) - max_power=data.get("max_power"), # Maximum power loading (VA) manufacturer=data.get("manufacturer"), # The manufacturer of the transformer range=data.get("range"), # The product range of the transformer efficiency=data.get("efficiency"), # The efficiency class of the transformer @@ -958,13 +988,12 @@ def from_dict(cls, data: JsonDict, *, include_results: bool = True) -> Self: ym = complex(*data["ym"]) return cls( id=data["id"], - type=data["type"], # Type of the transformer - uhv=data["uhv"], # Phase-to-phase nominal voltages of the high voltages side (V) - ulv=data["ulv"], # Phase-to-phase nominal voltages of the low voltages side (V) + vg=data["vg"], # Vector Group (e.g. Dyn11) + uhv=data["uhv"], # Rated phase-to-phase voltages of the HV side (V) + ulv=data["ulv"], # Rated no-load phase-to-phase voltages of the LV side (V) sn=data["sn"], # Nominal power z2=z2, # Series impedance (ohm) ym=ym, # Magnetizing admittance (S) - max_power=data.get("max_power"), # Maximum power loading (VA) manufacturer=data.get("manufacturer"), # The manufacturer of the transformer range=data.get("range"), # The product range of the transformer efficiency=data.get("efficiency"), # The efficiency class of the transformer @@ -976,10 +1005,10 @@ def _to_dict(self, include_results: bool) -> JsonDict: ym = complex(self._ym) res = { "id": self.id, + "vg": self._vg, "sn": self._sn, "uhv": self._uhv, "ulv": self._ulv, - "type": self.type, "z2": [z2.real, z2.imag], "ym": [ym.real, ym.imag], } @@ -991,8 +1020,6 @@ def _to_dict(self, include_results: bool) -> JsonDict: res["psc"] = self._psc if self._vsc is not None: res["vsc"] = self._vsc - if self._max_power is not None: - res["max_power"] = self._max_power if self._manufacturer is not None: res["manufacturer"] = self._manufacturer if self._range is not None: @@ -1016,7 +1043,32 @@ def catalogue_path(cls) -> Path: @classmethod def catalogue_data(cls) -> pd.DataFrame: file = cls.catalogue_path() / "Catalogue.csv" - return pd.read_csv(file, parse_dates=False) + return pd.read_csv( + file, + parse_dates=False, + dtype={ + "name": str, + "manufacturer": str, + "range": str, + "efficiency": str, + "type": str, + "oil": str, + "sn": int, + "vsc": float, + "psc": float, + "i0": float, + "p0": float, + "vg": str, + "uhv": int, + "ulv": int, + "du1": float, + "du0.8": float, + "eff1 100%": float, + "eff0.8 100%": float, + "eff1 75%": float, + "eff0.8 75%": float, + }, + ).fillna({"manufacturer": "", "efficiency": "", "range": "", "oil": ""}) @classmethod def _get_catalogue( @@ -1025,7 +1077,7 @@ def _get_catalogue( manufacturer: str | re.Pattern[str] | None, range: str | re.Pattern[str] | None, efficiency: str | re.Pattern[str] | None, - type: str | re.Pattern[str] | None, + vg: str | re.Pattern[str] | None, sn: float | None, uhv: float | None, ulv: float | None, @@ -1043,7 +1095,7 @@ def _get_catalogue( (manufacturer, "manufacturer", "manufacturer", "manufacturers"), (range, "range", "range", "ranges"), (efficiency, "efficiency", "efficiency", "efficiencies"), - (type, "type", "type", "types"), + (vg, "vg", "vector group", "vector groups"), ): if pd.isna(value): continue @@ -1058,13 +1110,13 @@ def _get_catalogue( query_msg_list=query_msg_list, ) catalogue_data = catalogue_data.loc[mask, :] - query_msg_list.append(f"{display_name}={value!r}") + query_msg_list.append(f"{column_name}={value!r}") # Filter on float for value, column_name, display_name, display_name_plural, display_unit in ( (sn, "sn", "nominal power", "nominal powers", "kVA"), - (uhv, "uhv", "primary side voltage", "primary side voltages", "kV"), - (ulv, "ulv", "secondary side voltage", "secondary side voltages", "kV"), + (uhv, "uhv", "high voltage", "high voltages", "kV"), + (ulv, "ulv", "low voltage", "low voltages", "kV"), ): if pd.isna(value): continue @@ -1079,7 +1131,7 @@ def _get_catalogue( query_msg_list=query_msg_list, ) catalogue_data = catalogue_data.loc[mask, :] - query_msg_list.append(f"{display_name}={value/1000:.1f} {display_unit}") + query_msg_list.append(f"{column_name}={value/1000:.1f} {display_unit}") return catalogue_data, ", ".join(query_msg_list) @@ -1088,10 +1140,11 @@ def _get_catalogue( def from_catalogue( cls, name: str | re.Pattern[str] | None = None, + *, manufacturer: str | re.Pattern[str] | None = None, range: str | re.Pattern[str] | None = None, efficiency: str | re.Pattern[str] | None = None, - type: str | re.Pattern[str] | None = None, + vg: str | re.Pattern[str] | None = None, sn: float | Q_[float] | None = None, uhv: float | Q_[float] | None = None, ulv: float | Q_[float] | None = None, @@ -1102,6 +1155,8 @@ def from_catalogue( Args: name: The name of the transformer to get from the catalogue. It can be a regular expression. + The name is subject to change when the catalogue is updated. Prefer using the other + filters. manufacturer: The name of the manufacturer to get. It can be a regular expression. @@ -1112,17 +1167,17 @@ def from_catalogue( efficiency: The efficiency of the transformer get. It can be a regular expression. - type: - The type of the transformer to get. It can be a regular expression. + vg: + The vector group of the transformer to get. It can be a regular expression. sn: The nominal power of the transformer to get. uhv: - The primary side voltage of the transformer to get. + The rated phase-to-phase voltage of the HV side of the transformer to get. ulv: - The secondary side voltage of the transformer to get. + The rated no-load phase-to-phase voltage of the LV side of the transformer to get. id: A unique ID for the created line parameters object (optional). If ``None`` @@ -1139,7 +1194,7 @@ def from_catalogue( manufacturer=manufacturer, range=range, efficiency=efficiency, - type=type, + vg=vg, sn=sn, uhv=uhv, ulv=ulv, @@ -1161,7 +1216,7 @@ def from_catalogue( id = catalogue_data.at[idx, "name"] return cls.from_open_and_short_circuit_tests( id=id, - type=catalogue_data.at[idx, "type"], + vg=catalogue_data.at[idx, "vg"], uhv=catalogue_data.at[idx, "uhv"], ulv=catalogue_data.at[idx, "ulv"], sn=catalogue_data.at[idx, "sn"], @@ -1179,10 +1234,11 @@ def from_catalogue( def get_catalogue( cls, name: str | re.Pattern[str] | None = None, + *, manufacturer: str | re.Pattern[str] | None = None, range: str | re.Pattern[str] | None = None, efficiency: str | re.Pattern[str] | None = None, - type: str | re.Pattern[str] | None = None, + vg: str | re.Pattern[str] | None = None, sn: float | Q_[float] | None = None, uhv: float | Q_[float] | None = None, ulv: float | Q_[float] | None = None, @@ -1205,17 +1261,17 @@ def get_catalogue( efficiency: An optional efficiency to filter the output. It can be a regular expression. - type: - An optional type of the transformer. It can be a regular expression. + vg: + An optional vector group of the transformer. It can be a regular expression. sn: An optional nominal power of the transformer to filter the output. uhv: - An optional primary side voltage to filter the output. + An optional rated high voltage to filter the output. ulv: - An optional secondary side voltage to filter the output. + An optional rated no-load low voltage to filter the output. Returns: The catalogue data as a dataframe. @@ -1225,7 +1281,7 @@ def get_catalogue( manufacturer=manufacturer, range=range, efficiency=efficiency, - type=type, + vg=vg, sn=sn, uhv=uhv, ulv=ulv, @@ -1242,10 +1298,12 @@ def get_catalogue( "manufacturer": "Manufacturer", "range": "Product range", "efficiency": "Efficiency", - "type": "Type", + "vg": "Vector group", "sn": "Nominal power (kVA)", "uhv": "High voltage (kV)", "ulv": "Low voltage (kV)", + "type": "Type", + "oil": "Oil", # # If we ever want to display these columns # "i0": "No-load current (%)", # "p0": "No-load losses (W)", @@ -1260,22 +1318,31 @@ def get_catalogue( # Utils # @classmethod - def extract_windings(cls, string: str) -> tuple[str, str, int]: - """Extract the windings and phase displacement from a given string + def extract_windings(cls, vg: str) -> tuple[str, str, int]: + """Extract the windings and phase displacement from a given vector group Args: - string: - The string to parse. + vg: + The vector group of the transformer. + + For three-phase transformers, ``Dyn11`` denotes a delta-wye connection with -30° phase + displacement. Allowed windings are ``D`` for delta, ``Y`` for wye, ``Z`` for zigzag. + + For single-phase transformers, ``Ii0`` denotes a normal in-phase connection and + ``Ii6`` denotes an inverted connection. + + For center-tapped transformers, ``Iii0`` denotes a normal in-phase connection and + ``Iii6`` denotes an inverted connection. Returns: - The first winding, the second winding, and the phase displacement + The first winding, the second winding, and the phase displacement. """ - match = cls._EXTRACT_WINDINGS_RE.fullmatch(string=string) - if match: + match = re.fullmatch(r"^(?P(D|Yn?|Zn?|I))(?P(d|yn?|zn?|i|ii))(?P

(0|1|5|6|11))$", vg, flags=re.I) + if match and vg.capitalize() in cls.allowed_vector_groups: groups = match.groupdict() - winding1, winding2, phase_displacement = groups["w1"], groups["w2"], groups["p"] - return winding1.upper(), winding2.lower(), int(phase_displacement) + winding1, winding2, phase_displacement = groups["w1"].upper(), groups["w2"].lower(), int(groups["p"]) + return winding1, winding2, phase_displacement else: - msg = f"Transformer windings cannot be extracted from the string {string!r}." + msg = f"Invalid vector group: {vg!r}. Expected one of {sorted(cls.allowed_vector_groups)}." logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_WINDINGS) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_VECTOR_GROUP) diff --git a/roseau/load_flow/models/transformers/transformers.py b/roseau/load_flow/models/transformers/transformers.py index 8865e076..99465b13 100644 --- a/roseau/load_flow/models/transformers/transformers.py +++ b/roseau/load_flow/models/transformers/transformers.py @@ -9,7 +9,12 @@ from roseau.load_flow.models.transformers.parameters import TransformerParameters from roseau.load_flow.typing import Id, JsonDict from roseau.load_flow.units import Q_, ureg_wraps -from roseau.load_flow_engine.cy_engine import CyCenterTransformer, CySingleTransformer, CyThreePhaseTransformer +from roseau.load_flow_engine.cy_engine import ( + CyCenterTransformer, + CySingleTransformer, + CyThreePhaseTransformer, + CyTransformer, +) logger = logging.getLogger(__name__) @@ -42,6 +47,7 @@ def __init__( tap: float = 1.0, phases1: str | None = None, phases2: str | None = None, + max_loading: float | Q_[float] = 1, geometry: BaseGeometry | None = None, ) -> None: """Transformer constructor. @@ -72,14 +78,20 @@ def __init__( phases2: The phases of the second extremity of the transformer. See ``phases1``. + max_loading: + The maximum loading of the transformer (unitless). It is used with the `sn` of the + :class:`TransformerParameters` to compute the :meth:`~roseau.load_flow.Transformer.max_power`, + :meth:`~roseau.load_flow.Transformer.res_loading` and + :meth:`~roseau.load_flow.Transformer.res_violated` of the transformer. + geometry: The geometry of the transformer. """ - if parameters.type == "single": + if parameters.type == "single-phase": phases1, phases2 = self._compute_phases_single( id=id, bus1=bus1, bus2=bus2, phases1=phases1, phases2=phases2 ) - elif parameters.type == "center": + elif parameters.type == "center-tapped": phases1, phases2 = self._compute_phases_center( id=id, bus1=bus1, bus2=bus2, phases1=phases1, phases2=phases2 ) @@ -91,43 +103,34 @@ def __init__( super().__init__(id=id, bus1=bus1, bus2=bus2, phases1=phases1, phases2=phases2, geometry=geometry) self.tap = tap self._parameters = parameters + self.max_loading = max_loading z2, ym, k, orientation = parameters._z2, parameters._ym, parameters._k, parameters._orientation - if parameters.type == "single": - self._cy_element = CySingleTransformer(z2=z2, ym=ym, k=k * tap) - elif parameters.type == "center": - self._cy_element = CyCenterTransformer(z2=z2, ym=ym, k=k * tap) + self._cy_element: CyTransformer + if parameters.type == "single-phase": + self._cy_element = CySingleTransformer(z2=z2, ym=ym, k=k * orientation * tap) + elif parameters.type == "center-tapped": + self._cy_element = CyCenterTransformer(z2=z2, ym=ym, k=k * orientation * tap) else: - if "Y" in parameters.winding1 and "y" in parameters.winding2: - self._cy_element = CyThreePhaseTransformer( - n1=4, n2=4, prim="Y", sec="y", z2=z2, ym=ym, k=k * tap, orientation=orientation - ) - elif "D" in parameters.winding1 and "y" in parameters.winding2: - self._cy_element = CyThreePhaseTransformer( - n1=3, n2=4, prim="D", sec="y", z2=z2, ym=ym, k=k * tap, orientation=orientation - ) - elif "D" in parameters.winding1 and "d" in parameters.winding2: - self._cy_element = CyThreePhaseTransformer( - n1=3, n2=3, prim="D", sec="d", z2=z2, ym=ym, k=k * tap, orientation=orientation - ) - elif "Y" in parameters.winding1 and "d" in parameters.winding2: - self._cy_element = CyThreePhaseTransformer( - n1=4, n2=3, prim="Y", sec="d", z2=z2, ym=ym, k=k * tap, orientation=orientation - ) - elif "Y" in parameters.winding1 and "z" in parameters.winding2: - self._cy_element = CyThreePhaseTransformer( - n1=4, n2=4, prim="Y", sec="z", z2=z2, ym=ym, k=k * tap, orientation=orientation - ) - elif "D" in parameters.winding1 and "z" in parameters.winding2: - self._cy_element = CyThreePhaseTransformer( - n1=3, n2=4, prim="D", sec="z", z2=z2, ym=ym, k=k * tap, orientation=orientation - ) - else: - msg = f"Transformer {parameters.type} is not implemented yet..." - logger.error(msg) - raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_WINDINGS) + self._cy_element = CyThreePhaseTransformer( + n1=parameters._n1, + n2=parameters._n2, + prim=parameters.winding1[0], + sec=parameters.winding2[0], + z2=z2, + ym=ym, + k=k * tap, + orientation=orientation, + ) self._cy_connect() + def __repr__(self) -> str: + return ( + f"<{type(self).__name__}: id={self.id!r}, bus1={self.bus1.id!r}, bus2={self.bus2.id!r}, " + f"phases1={self.phases1!r}, phases2={self.phases2!r}, tap={self.tap:f}, " + f"max_loading={self._max_loading:f}>" + ) + @property def tap(self) -> float: """The tap of the transformer, for example 1.02.""" @@ -152,24 +155,50 @@ def parameters(self) -> TransformerParameters: @parameters.setter def parameters(self, value: TransformerParameters) -> None: - type1 = self._parameters.type - type2 = value.type - if type1 != type2: - msg = f"The updated type changed for transformer {self.id!r}: {type1} to {type2}." + vg1 = self._parameters.vg + vg2 = value.vg + if vg1 != vg2: + msg = ( + f"Cannot update the parameters of transformer {self.id!r} to a different vector " + f"group: old={vg1!r}, new={vg2!r}." + ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_TRANSFORMER_TYPE) self._parameters = value self._invalidate_network_results() if self._cy_element is not None: z2, ym, k = value._z2, value._ym, value._k + if value.type in ("single-phase", "center-tapped"): + k *= value._orientation self._cy_element.update_transformer_parameters(z2, ym, k * self.tap) + @property + @ureg_wraps("", (None,)) + def max_loading(self) -> Q_[float]: + """The maximum loading of the transformer (unitless)""" + return self._max_loading + + @max_loading.setter + @ureg_wraps(None, (None, "")) + def max_loading(self, value: float | Q_[float]) -> None: + if value <= 0: + msg = f"Maximum loading must be positive: {value} was provided." + logger.error(msg) + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_MAX_LOADING_VALUE) + self._max_loading: float = value + + @property + def sn(self) -> Q_[float]: + """The nominal power of the transformer (VA).""" + # Do not add a setter. The user must know that if they change the nominal power, it changes + # for all transformers that share the parameters. It is better to set it on the parameters. + return self._parameters.sn + @property def max_power(self) -> Q_[float] | None: """The maximum power loading of the transformer (in VA).""" - # Do not add a setter. The user must know that if they change the max_power, it changes - # for all transformers that share the parameters. It is better to set it on the parameters. - return self.parameters.max_power + sn = self.parameters._sn + return None if sn is None else Q_(sn * self._max_loading, "VA") def _compute_phases_three( self, @@ -292,17 +321,18 @@ def res_power_losses(self) -> Q_[complex]: return sum(powers1) + sum(powers2) @property - def res_violated(self) -> bool | None: - """Whether the transformer power exceeds the maximum power (loading > 100%). - - Returns ``None`` if the maximum power is not set. - """ - s_max = self.parameters._max_power - if s_max is None: - return None + @ureg_wraps("", (None,)) + def res_loading(self) -> Q_[float]: + """Get the loading of the transformer (unitless).""" + sn = self._parameters._sn powers1, powers2 = self._res_powers_getter(warning=True) + return max(abs(powers1.sum()), abs(powers2.sum())) / sn + + @property + def res_violated(self) -> bool: + """Whether the transformer power loading exceeds its maximal loading.""" # True if either the primary or secondary is overloaded - return bool((abs(powers1.sum()) > s_max) or (abs(powers2.sum()) > s_max)) + return bool(self.res_loading.m > self._max_loading) # # Json Mixin interface @@ -311,6 +341,7 @@ def _to_dict(self, include_results: bool) -> JsonDict: res = super()._to_dict(include_results=include_results) res["tap"] = self.tap res["params_id"] = self.parameters.id + res["max_loading"] = self._max_loading return res diff --git a/roseau/load_flow/network.py b/roseau/load_flow/network.py index 1f391071..969f2cc8 100644 --- a/roseau/load_flow/network.py +++ b/roseau/load_flow/network.py @@ -40,6 +40,7 @@ ) from roseau.load_flow.typing import Id, JsonDict, MapOrSeq, Solver, StrPath from roseau.load_flow.utils import CatalogueMixin, JsonMixin, _optional_deps +from roseau.load_flow.utils._exceptions import find_stack_level from roseau.load_flow.utils.types import _DTYPES, LoadTypeDtype, VoltagePhaseDtype from roseau.load_flow_engine.cy_engine import CyElectricalNetwork @@ -170,6 +171,8 @@ def __init__( ) self._elements: list[Element] = [] + self._has_loop = False + self._has_floating_neutral = False self._check_validity(constructed=False) self._create_network() self._valid = True @@ -286,13 +289,14 @@ def buses_frame(self) -> gpd.GeoDataFrame: """The :attr:`buses` of the network as a geo dataframe.""" data = [] for bus in self.buses.values(): - min_voltage = bus.min_voltage.magnitude if bus.min_voltage is not None else float("nan") - max_voltage = bus.max_voltage.magnitude if bus.max_voltage is not None else float("nan") - data.append((bus.id, bus.phases, min_voltage, max_voltage, bus.geometry)) + nominal_voltage = bus.nominal_voltage.magnitude if bus.nominal_voltage is not None else (float("nan")) + min_voltage_level = bus.min_voltage_level.magnitude if bus.min_voltage_level is not None else float("nan") + max_voltage_level = bus.max_voltage_level.magnitude if bus.max_voltage_level is not None else float("nan") + data.append((bus.id, bus.phases, nominal_voltage, min_voltage_level, max_voltage_level, bus.geometry)) return gpd.GeoDataFrame( data=pd.DataFrame.from_records( data=data, - columns=["id", "phases", "min_voltage", "max_voltage", "geometry"], + columns=["id", "phases", "nominal_voltage", "min_voltage_level", "max_voltage_level", "geometry"], index="id", ), geometry="geometry", @@ -304,7 +308,6 @@ def lines_frame(self) -> gpd.GeoDataFrame: """The :attr:`lines` of the network as a geo dataframe.""" data = [] for line in self.lines.values(): - max_current = line.max_current.magnitude if line.max_current is not None else float("nan") data.append( ( line.id, @@ -312,15 +315,15 @@ def lines_frame(self) -> gpd.GeoDataFrame: line.bus1.id, line.bus2.id, line.parameters.id, - line.length.m, - max_current, + line._length, + line._max_loading, line.geometry, ) ) return gpd.GeoDataFrame( data=pd.DataFrame.from_records( data=data, - columns=["id", "phases", "bus1_id", "bus2_id", "parameters_id", "length", "max_current", "geometry"], + columns=["id", "phases", "bus1_id", "bus2_id", "parameters_id", "length", "max_loading", "geometry"], index="id", ), geometry="geometry", @@ -332,7 +335,10 @@ def transformers_frame(self) -> gpd.GeoDataFrame: """The :attr:`transformers` of the network as a geo dataframe.""" data = [] for transformer in self.transformers.values(): - max_power = transformer.max_power.magnitude if transformer.max_power is not None else float("nan") + if (max_loading := transformer.max_loading) is not None: + max_loading = max_loading.magnitude + else: + max_loading = float("nan") data.append( ( transformer.id, @@ -341,14 +347,14 @@ def transformers_frame(self) -> gpd.GeoDataFrame: transformer.bus1.id, transformer.bus2.id, transformer.parameters.id, - max_power, + max_loading, transformer.geometry, ) ) return gpd.GeoDataFrame( data=pd.DataFrame.from_records( data=data, - columns=["id", "phases1", "phases2", "bus1_id", "bus2_id", "parameters_id", "max_power", "geometry"], + columns=["id", "phases1", "phases2", "bus1_id", "bus2_id", "parameters_id", "max_loading", "geometry"], index="id", ), geometry="geometry", @@ -430,7 +436,7 @@ def short_circuits_frame(self) -> pd.DataFrame: # @property def buses_clusters(self) -> list[set[Id]]: - """Sets of galvanically connected buses, i.e buses connected by lines or a switches. + """Sets of galvanically connected buses, i.e. buses connected by lines or a switches. This can be useful to isolate parts of the network for localized analysis. For example, to study a LV subnetwork of a MV feeder. @@ -464,7 +470,8 @@ def to_graph(self) -> "Graph": for bus in self.buses.values(): graph.add_node(bus.id, geom=bus.geometry) for line in self.lines.values(): - max_current = line.max_current.magnitude if line.max_current is not None else None + if (ampacities := line.ampacities) is not None: + ampacities = ampacities.magnitude.tolist() graph.add_edge( line.bus1.id, line.bus2.id, @@ -472,11 +479,16 @@ def to_graph(self) -> "Graph": type="line", phases=line.phases, parameters_id=line.parameters.id, - max_current=max_current, + length=line._length, + max_loading=line._max_loading, + ampacities=ampacities, geom=line.geometry, ) for transformer in self.transformers.values(): - max_power = transformer.max_power.magnitude if transformer.max_power is not None else None + if (max_loading := transformer.max_loading) is not None: + max_loading = max_loading.magnitude + if (sn := transformer.sn) is not None: + sn = sn.magnitude graph.add_edge( transformer.bus1.id, transformer.bus2.id, @@ -485,7 +497,8 @@ def to_graph(self) -> "Graph": phases1=transformer.phases1, phases2=transformer.phases2, parameters_id=transformer.parameters.id, - max_power=max_power, + max_loading=max_loading, + sn=sn, geom=transformer.geometry, ) for switch in self.switches.values(): @@ -578,16 +591,7 @@ def solve_load_flow( self._no_results = False # Lazily update the results of the elements - for element in chain( - self.buses.values(), - self.lines.values(), - self.transformers.values(), - self.switches.values(), - self.loads.values(), - self.sources.values(), - self.grounds.values(), - self.potential_refs.values(), - ): + for element in self._elements: element._fetch_results = True element._no_results = False @@ -602,8 +606,7 @@ def _handle_error(self, e: RuntimeError) -> NoReturn: msg = f"The license cannot be validated. The detailed error message is {msg[2:]!r}" logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.LICENSE_ERROR) from e - else: - assert msg.startswith("1 ") + elif msg.startswith("1 "): msg = msg[2:] zero_elements_index, inf_elements_index = self._solver._cy_solver.analyse_jacobian() if zero_elements_index: @@ -622,6 +625,10 @@ def _handle_error(self, e: RuntimeError) -> NoReturn: ) logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_JACOBIAN) from e + else: + assert msg.startswith("2 ") + msg = msg[2:] + raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.NO_BACKWARD_FORWARD) from e # # Properties to access the load flow results as dataframes @@ -640,7 +647,7 @@ def _check_valid_results(self) -> None: "ensure the validity of results." ), category=UserWarning, - stacklevel=2, + stacklevel=find_stack_level(), ) @property @@ -678,41 +685,61 @@ def res_buses_voltages(self) -> pd.DataFrame: and the following columns: - `voltage`: The complex voltage of the bus (in Volts) for the given phase. - - `min_voltage`: The minimum voltage of the bus (in Volts). - - `max_voltage`: The maximum voltage of the bus (in Volts). + - `violated`: `True` if a voltage limit is not respected. + - `voltage_level`: The voltage level of the bus. + - `min_voltage_level`: The minimal voltage level of the bus. + - `max_voltage_level`: The maximal voltage level of the bus. + - `nominal_voltage`: The nominal voltage of the bus (in Volts). """ self._check_valid_results() voltages_dict = { "bus_id": [], "phase": [], "voltage": [], - "min_voltage": [], - "max_voltage": [], "violated": [], + "voltage_level": [], + # Non results + "min_voltage_level": [], + "max_voltage_level": [], + "nominal_voltage": [], } dtypes = {c: _DTYPES[c] for c in voltages_dict} | {"phase": VoltagePhaseDtype} + sqrt_3 = float(np.sqrt(3)) for bus_id, bus in self.buses.items(): - min_voltage = bus._min_voltage - max_voltage = bus._max_voltage - voltage_limits_set = False - - if min_voltage is None: - min_voltage = float("nan") - else: - voltage_limits_set = True - if max_voltage is None: - max_voltage = float("nan") - else: - voltage_limits_set = True + nominal_voltage = bus._nominal_voltage + min_voltage_level = bus._min_voltage_level + max_voltage_level = bus._max_voltage_level + voltage_limits_set = ( + min_voltage_level is not None or max_voltage_level is not None + ) and nominal_voltage is not None + + if nominal_voltage is None: + nominal_voltage = float("nan") + if min_voltage_level is None: + min_voltage_level = float("nan") + if max_voltage_level is None: + max_voltage_level = float("nan") for voltage, phase in zip(bus._res_voltages_getter(warning=False), bus.voltage_phases, strict=True): voltage_abs = abs(voltage) - violated = (voltage_abs < min_voltage or voltage_abs > max_voltage) if voltage_limits_set else None + if voltage_limits_set: + if "n" in phase: + voltage_level = sqrt_3 * voltage_abs / nominal_voltage + else: + voltage_level = voltage_abs / nominal_voltage + violated = voltage_level < min_voltage_level or voltage_level > max_voltage_level + else: + violated = None + voltage_level = float("nan") voltages_dict["bus_id"].append(bus_id) voltages_dict["phase"].append(phase) voltages_dict["voltage"].append(voltage) - voltages_dict["min_voltage"].append(min_voltage) - voltages_dict["max_voltage"].append(max_voltage) voltages_dict["violated"].append(violated) + voltages_dict["voltage_level"].append(voltage_level) + # Non results + voltages_dict["min_voltage_level"].append(min_voltage_level) + voltages_dict["max_voltage_level"].append(max_voltage_level) + voltages_dict["nominal_voltage"].append(nominal_voltage) + return pd.DataFrame(voltages_dict).astype(dtypes).set_index(["bus_id", "phase"]) @property @@ -738,6 +765,10 @@ def res_lines(self) -> pd.DataFrame: phase due to the series and mutual impedances. - `series_current`: The complex current in the series impedance of the line (in Amps) for the given phase. + - `violated`: True, if a current constraint is not respected for the given phase. + - `loading`: The loading of the line (unitless) for the given phase. + - `max_loading`: The maximal loading of the line (unitless) for the given phase. + - `ampacity`: The ampacity of the line parameter (in Amps) for the given phase. Additional information can be easily computed from this dataframe. For example: @@ -762,8 +793,11 @@ def res_lines(self) -> pd.DataFrame: "potential2": [], "series_losses": [], "series_current": [], - "max_current": [], "violated": [], + "loading": [], + # Non results + "max_loading": [], + "ampacity": [], } dtypes = {c: _DTYPES[c] for c in res_dict} for line in self.lines.values(): @@ -773,20 +807,36 @@ def res_lines(self) -> pd.DataFrame: powers1 = potentials1 * currents1.conj() powers2 = potentials2 * currents2.conj() series_losses = du_line * series_currents.conj() - i_max = line.parameters._max_current - for i1, i2, s1, s2, v1, v2, s_series, i_series, phase in zip( - currents1, - currents2, - powers1, - powers2, - potentials1, - potentials2, - series_losses, - series_currents, - line.phases, - strict=True, + ampacities = line.parameters._ampacities + max_loading = line._max_loading + if ampacities is None: + loading_array = None + violated_array = None + else: + loading_array = np.maximum(abs(currents1), abs(currents2)) / ampacities + violated_array = loading_array > max_loading + for k, (i1, i2, s1, s2, v1, v2, s_series, i_series, phase) in enumerate( + zip( + currents1, + currents2, + powers1, + powers2, + potentials1, + potentials2, + series_losses, + series_currents, + line.phases, + strict=True, + ) ): - violated = None if i_max is None else (abs(i1) > i_max or abs(i2) > i_max) + if ampacities is None: + loading = None + violated = None + ampacity = None + else: + loading = loading_array[k] + violated = violated_array[k] + ampacity = ampacities[k] res_dict["line_id"].append(line.id) res_dict["phase"].append(phase) res_dict["current1"].append(i1) @@ -797,8 +847,12 @@ def res_lines(self) -> pd.DataFrame: res_dict["potential2"].append(v2) res_dict["series_losses"].append(s_series) res_dict["series_current"].append(i_series) - res_dict["max_current"].append(i_max) res_dict["violated"].append(violated) + res_dict["loading"].append(loading) + # Non results + res_dict["max_loading"].append(max_loading) + res_dict["ampacity"].append(ampacity) + return pd.DataFrame(res_dict).astype(dtypes).set_index(["line_id", "phase"]) @property @@ -820,7 +874,7 @@ def res_transformers(self) -> pd.DataFrame: second bus. - `potential1`: The complex potential of the first bus (in Volts) for the given phase. - `potential2`: The complex potential of the second bus (in Volts) for the given phase. - - `max_power`: The maximum power loading (in VoltAmps) of the transformer. + - `max_loading`: The maximal loading (unitless) of the transformer. Note that values for missing phases are set to ``nan``. For example, a "Dyn" transformer has the phases "abc" on the primary side and "abcn" on the secondary side, so the primary @@ -836,8 +890,11 @@ def res_transformers(self) -> pd.DataFrame: "power2": [], "potential1": [], "potential2": [], - "max_power": [], "violated": [], + "loading": [], + # Non results + "max_loading": [], + "sn": [], } dtypes = {c: _DTYPES[c] for c in res_dict} for transformer in self.transformers.values(): @@ -845,8 +902,10 @@ def res_transformers(self) -> pd.DataFrame: potentials1, potentials2 = transformer._res_potentials_getter(warning=False) powers1 = potentials1 * currents1.conj() powers2 = potentials2 * currents2.conj() - s_max = transformer.parameters._max_power - violated = (abs(powers1.sum()) > s_max or abs(powers2.sum()) > s_max) if s_max is not None else None + sn = transformer.parameters._sn + max_loading = transformer._max_loading + loading = max(abs(powers1.sum()), abs(powers2.sum())) / sn + violated = loading > max_loading for phase in transformer._all_phases: if phase in transformer.phases1: idx1 = transformer.phases1.index(phase) @@ -866,8 +925,11 @@ def res_transformers(self) -> pd.DataFrame: res_dict["power2"].append(s2) res_dict["potential1"].append(v1) res_dict["potential2"].append(v2) - res_dict["max_power"].append(s_max) res_dict["violated"].append(violated) + res_dict["loading"].append(loading) + # Non results + res_dict["max_loading"].append(max_loading) + res_dict["sn"].append(sn) return pd.DataFrame(res_dict).astype(dtypes).set_index(["transformer_id", "phase"]) @property @@ -1110,7 +1172,7 @@ def _connect_element(self, element: Element) -> None: logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.BAD_ELEMENT_OBJECT) if element.id in container and container[element.id] is not element: - element._disconnect() # Don't leave it lingering in other elemnets _connected_elements + element._disconnect() # Don't leave it lingering in other elements _connected_elements msg = f"A {element_type} of ID {element.id!r} is already connected to the network." if can_disconnect: msg += f" Disconnect the old {element_type} first if you meant to replace it." @@ -1152,33 +1214,17 @@ def _disconnect_element(self, element: Element) -> None: def _create_network(self) -> None: """Create the Cython and C++ electrical network of all the passed elements.""" self._valid = True - cy_elements = [] - self._elements = [] - for bus in self.buses.values(): - cy_elements.append(bus._cy_element) - self._elements.append(bus) - for line in self.lines.values(): - cy_elements.append(line._cy_element) - self._elements.append(line) - for transformer in self.transformers.values(): - cy_elements.append(transformer._cy_element) - self._elements.append(transformer) - for switch in self.switches.values(): - cy_elements.append(switch._cy_element) - self._elements.append(switch) + self._has_floating_neutral = False for load in self.loads.values(): - cy_elements.append(load._cy_element) - self._elements.append(load) - for ground in self.grounds.values(): - cy_elements.append(ground._cy_element) - self._elements.append(ground) - for p_ref in self.potential_refs.values(): - cy_elements.append(p_ref._cy_element) - self._elements.append(p_ref) + if load.has_floating_neutral: + self._has_floating_neutral = True for source in self.sources.values(): - cy_elements.append(source._cy_element) - self._elements.append(source) + if source.has_floating_neutral: + self._has_floating_neutral = True self._propagate_potentials() + cy_elements = [] + for element in self._elements: + cy_elements.append(element._cy_element) self._cy_electrical_network = CyElectricalNetwork(elements=np.array(cy_elements), nb_elements=len(cy_elements)) def _check_validity(self, constructed: bool) -> None: @@ -1253,34 +1299,62 @@ def _propagate_potentials(self) -> None: if not bus._initialized: all_phases |= set(bus.phases) - starting_potentials, starting_bus = self._get_potentials(all_phases) - elements = [(starting_bus, starting_potentials)] - visited = set() + starting_potentials, starting_source = self._get_potentials(all_phases) + elements = [(starting_source, starting_potentials, None)] + self._elements = [] + self._has_loop = False + visited = {starting_source} while elements: - element, potentials = elements.pop(-1) - visited.add(element) + element, potentials, parent = elements.pop(-1) + self._elements.append(element) if isinstance(element, Bus) and not element._initialized: element.potentials = np.array([potentials[p] for p in element.phases], dtype=np.complex128) element._initialized_by_the_user = False # only used for serialization - for e in element._connected_elements: - if e not in visited and isinstance(e, (AbstractBranch, Bus)): - if isinstance(element, Transformer): - k = element.parameters._ulv / element.parameters._uhv - phase_displacement = element.parameters.phase_displacement - if phase_displacement is None: - phase_displacement = 0 - new_potentials = potentials.copy() - for key, p in new_potentials.items(): - new_potentials[key] = p * k * np.exp(phase_displacement * -1j * np.pi / 6.0) - elements.append((e, new_potentials)) - else: - elements.append((e, potentials)) - - if len(visited) < len(self.buses) + len(self.lines) + len(self.transformers) + len(self.switches): + if not isinstance(element, Ground): # Do not go from ground to buses/branches + for e in element._connected_elements: + if e not in visited: + if isinstance(element, Transformer): + k = element.parameters._ulv / element.parameters._uhv + phase_displacement = element.parameters.phase_displacement + if phase_displacement is None: + phase_displacement = 0 + new_potentials = potentials.copy() + for key, p in new_potentials.items(): + new_potentials[key] = p * k * np.exp(phase_displacement * -1j * np.pi / 6.0) + elements.append((e, new_potentials, element)) + visited.add(e) + else: + elements.append((e, potentials, element)) + visited.add(e) + elif parent != e and not isinstance(e, Ground): + self._has_loop = True + else: + for e in element._connected_elements: + if e not in visited and isinstance(e, PotentialRef): + elements.append((e, potentials, element)) + visited.add(e) + + if len(visited) < ( + len(self.buses) + + len(self.lines) + + len(self.transformers) + + len(self.switches) + + len(self.grounds) + + len(self.sources) + + len(self.potential_refs) + + len(self.loads) + ): unconnected_elements = [ element for element in chain( - self.buses.values(), self.lines.values(), self.transformers.values(), self.switches.values() + self.buses.values(), + self.lines.values(), + self.transformers.values(), + self.switches.values(), + self.sources.values(), + self.loads.values(), + self.grounds.values(), + self.potential_refs.values(), ) if element not in visited ] @@ -1291,7 +1365,7 @@ def _propagate_potentials(self) -> None: logger.error(msg) raise RoseauLoadFlowException(msg=msg, code=RoseauLoadFlowExceptionCode.POORLY_CONNECTED_ELEMENT) - def _get_potentials(self, all_phases: set[str]) -> tuple[dict[str, complex], Bus]: + def _get_potentials(self, all_phases: set[str]) -> tuple[dict[str, complex], VoltageSource]: """Compute initial potentials from the voltages sources of the network, get also the starting source""" starting_source = None potentials = {"n": 0.0} @@ -1328,7 +1402,7 @@ def _get_potentials(self, all_phases: set[str]) -> tuple[dict[str, complex], Bus potentials["c"] = v * np.exp(2j * np.pi / 3) potentials["n"] = 0.0 - return potentials, starting_source.bus + return potentials, starting_source @staticmethod def _check_ref(elements: Iterable[Element]) -> None: diff --git a/roseau/load_flow/plotting.py b/roseau/load_flow/plotting.py index 7e62c651..8df052d2 100644 --- a/roseau/load_flow/plotting.py +++ b/roseau/load_flow/plotting.py @@ -276,7 +276,7 @@ def internal_highlight_function(feature): ), ).add_to(m) folium.GeoJson( - buses_gdf, + data=buses_gdf, name="buses", marker=folium.CircleMarker(), style_function=internal_style_function, diff --git a/roseau/load_flow/tests/data/networks/all_element_network.json b/roseau/load_flow/tests/data/networks/all_element_network.json index cf80e5a6..8b694296 100644 --- a/roseau/load_flow/tests/data/networks/all_element_network.json +++ b/roseau/load_flow/tests/data/networks/all_element_network.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -92,6 +92,7 @@ "bus2": "bus1", "length": 1.5, "params_id": "lp0", + "max_loading": 1, "ground": "ground", "results": { "currents1": [ @@ -113,6 +114,7 @@ "bus2": "bus4", "length": 0.1, "params_id": "lp1", + "max_loading": 1, "results": { "currents1": [ [203.0652123688027, 96.09147480241117], @@ -150,7 +152,8 @@ ] }, "tap": 1.0, - "params_id": "tp0" + "params_id": "tp0", + "max_loading": 1 } ], "switches": [ @@ -579,11 +582,10 @@ [0.0, 0.0, 3.40441e-5] ] ], - "max_current": 323, + "ampacities": [323, 323, 323], "line_type": "UNDERGROUND", - "conductor_type": "AM", - "insulator_type": "UNKNOWN", - "section": 148 + "materials": ["AM", "AM", "AM"], + "sections": [148.0, 148.0, 148.0] }, { "id": "lp1", @@ -601,11 +603,10 @@ [0.0, 0.0, 0.0, 0.1066400577] ] ], - "max_current": 195, + "ampacities": [195, 195, 195, 195], "line_type": "TWISTED", - "conductor_type": "AL", - "insulator_type": "UNKNOWN", - "section": 75.0 + "materials": ["AL", "AL", "AL", "AL"], + "sections": [75.0, 75.0, 75.0, 75.0] } ], "transformers_params": [ @@ -614,7 +615,7 @@ "sn": 100000, "uhv": 20000, "ulv": 400, - "type": "Dyn11", + "vg": "Dyn11", "z2": [0.02, 0.060794736614282655], "ym": [1.2083333333333332e-7, -3.987611022487859e-7], "i0": 0.005, diff --git a/roseau/load_flow/tests/data/networks/single_phase_network.json b/roseau/load_flow/tests/data/networks/single_phase_network.json index 49928bf7..7b52d3b2 100644 --- a/roseau/load_flow/tests/data/networks/single_phase_network.json +++ b/roseau/load_flow/tests/data/networks/single_phase_network.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -62,6 +62,7 @@ "bus2": "bus1", "length": 1.0, "params_id": "test", + "max_loading": 1, "geometry": { "type": "LineString", "coordinates": [ diff --git a/roseau/load_flow/tests/data/networks/small_network.json b/roseau/load_flow/tests/data/networks/small_network.json index 25899d7d..0af56cfc 100644 --- a/roseau/load_flow/tests/data/networks/small_network.json +++ b/roseau/load_flow/tests/data/networks/small_network.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "is_multiphase": true, "grounds": [ { @@ -66,6 +66,7 @@ "bus2": "bus1", "length": 1.0, "params_id": "test", + "max_loading": 1, "geometry": { "type": "LineString", "coordinates": [ diff --git a/roseau/load_flow/tests/test_electrical_network.py b/roseau/load_flow/tests/test_electrical_network.py index 7fc7ed8d..37a782c2 100644 --- a/roseau/load_flow/tests/test_electrical_network.py +++ b/roseau/load_flow/tests/test_electrical_network.py @@ -36,31 +36,31 @@ # The following networks are generated using the scripts/generate_test_networks.py script -@pytest.fixture() +@pytest.fixture def all_element_network(test_networks_path) -> ElectricalNetwork: # Load the network from the JSON file (without results) return ElectricalNetwork.from_json(path=test_networks_path / "all_element_network.json", include_results=False) -@pytest.fixture() +@pytest.fixture def all_element_network_with_results(test_networks_path) -> ElectricalNetwork: # Load the network from the JSON file (with results, no need to invoke the solver) return ElectricalNetwork.from_json(path=test_networks_path / "all_element_network.json", include_results=True) -@pytest.fixture() +@pytest.fixture def small_network(test_networks_path) -> ElectricalNetwork: # Load the network from the JSON file (without results) return ElectricalNetwork.from_json(path=test_networks_path / "small_network.json", include_results=False) -@pytest.fixture() +@pytest.fixture def small_network_with_results(test_networks_path) -> ElectricalNetwork: # Load the network from the JSON file (with results, no need to invoke the solver) return ElectricalNetwork.from_json(path=test_networks_path / "small_network.json", include_results=True) -@pytest.fixture() +@pytest.fixture def single_phase_network(test_networks_path) -> ElectricalNetwork: return ElectricalNetwork.from_json(path=test_networks_path / "single_phase_network.json", include_results=True) @@ -91,7 +91,7 @@ def test_connect_and_disconnect(): load_bus2 = Bus(id="load_bus2", phases="abcn") ground2 = Ground("ground2") ground2.connect(bus=load_bus2) - tp = TransformerParameters.from_catalogue(name="SE_Minera_A0Ak_50kVA") + tp = TransformerParameters.from_catalogue(name="SE Minera A0Ak 50kVA 15/20kV(20) 410V Yzn11") Transformer(id="transfo", bus1=load_bus, bus2=load_bus2, parameters=tp) with pytest.raises(RoseauLoadFlowException) as e: en._check_validity(constructed=False) @@ -138,8 +138,8 @@ def test_connect_and_disconnect(): with pytest.raises(RoseauLoadFlowException) as e: en._disconnect_element(line) assert e.value.msg == ( - " " - "is a Line and it cannot be disconnected from a network." + " is a Line and it cannot be disconnected from a network." ) assert e.value.code == RoseauLoadFlowExceptionCode.BAD_ELEMENT_OBJECT @@ -343,7 +343,7 @@ def test_bad_networks(): # No potential reference bus3 = Bus(id="bus3", phases="abcn") tp = TransformerParameters.from_open_and_short_circuit_tests( - id="t", type="Dyn11", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 + id="t", vg="Dyn11", uhv=20000, ulv=400, sn=160 * 1e3, p0=460, i0=2.3 / 100, psc=2350, vsc=4 / 100 ) t = Transformer(id="transfo", bus1=bus2, bus2=bus3, parameters=tp) with pytest.raises(RoseauLoadFlowException) as e: @@ -466,8 +466,14 @@ def test_frame(small_network: ElectricalNetwork): # Buses buses_gdf = small_network.buses_frame assert isinstance(buses_gdf, gpd.GeoDataFrame) - assert buses_gdf.shape == (2, 4) - assert buses_gdf.columns.tolist() == ["phases", "min_voltage", "max_voltage", "geometry"] + assert buses_gdf.shape == (2, 5) + assert buses_gdf.columns.tolist() == [ + "phases", + "nominal_voltage", + "min_voltage_level", + "max_voltage_level", + "geometry", + ] assert buses_gdf.index.name == "id" # Lines @@ -480,7 +486,7 @@ def test_frame(small_network: ElectricalNetwork): "bus2_id", "parameters_id", "length", - "max_current", + "max_loading", "geometry", ] @@ -494,7 +500,7 @@ def test_frame(small_network: ElectricalNetwork): "bus1_id", "bus2_id", "parameters_id", - "max_power", + "max_loading", "geometry", ] assert transformers_gdf.index.name == "id" @@ -539,57 +545,73 @@ def test_empty_network(): def test_buses_voltages(small_network_with_results): assert isinstance(small_network_with_results, ElectricalNetwork) en = small_network_with_results - en.buses["bus0"].max_voltage = 21_000 - en.buses["bus1"].min_voltage = 20_000 + # Multiply by sqrt(3) because a neutral exists in the small network + nominal_voltage = 20_000 * np.sqrt(3) + en.buses["bus0"].nominal_voltage = nominal_voltage + en.buses["bus1"].nominal_voltage = nominal_voltage + en.buses["bus0"].max_voltage_level = 1.05 + en.buses["bus1"].min_voltage_level = 1.0 voltage_records = [ { "bus_id": "bus0", "phase": "an", "voltage": 20000.0 + 0.0j, - "min_voltage": np.nan, - "max_voltage": 21000, "violated": False, + "voltage_level": 1.0, + "min_voltage_level": np.nan, + "max_voltage_level": 1.05, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus0", "phase": "bn", "voltage": -10000.0 + -17320.508076j, - "min_voltage": np.nan, - "max_voltage": 21000, "violated": False, + "voltage_level": 1.0000000000134766, + "min_voltage_level": np.nan, + "max_voltage_level": 1.05, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus0", "phase": "cn", "voltage": -10000.0 + 17320.508076j, - "min_voltage": np.nan, - "max_voltage": 21000, "violated": False, + "voltage_level": 1.0000000000134766, + "min_voltage_level": np.nan, + "max_voltage_level": 1.05, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus1", "phase": "an", "voltage": 19999.949999875 + 0.0j, - "min_voltage": 20000, - "max_voltage": np.nan, "violated": True, + "voltage_level": 0.99999749999375, + "min_voltage_level": 1.0, + "max_voltage_level": np.nan, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus1", "phase": "bn", "voltage": -9999.9749999375 + -17320.464774621556j, - "min_voltage": 20000, - "max_voltage": np.nan, "violated": True, + "voltage_level": 0.9999975000072265, + "min_voltage_level": 1.0, + "max_voltage_level": np.nan, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus1", "phase": "cn", "voltage": -9999.9749999375 + 17320.464774621556j, - "min_voltage": 20000, - "max_voltage": np.nan, "violated": True, + "voltage_level": 0.9999975000072265, + "min_voltage_level": 1.0, + "max_voltage_level": np.nan, + "nominal_voltage": nominal_voltage, }, ] @@ -601,8 +623,9 @@ def test_buses_voltages(small_network_with_results): "bus_id": str, "phase": VoltagePhaseDtype, "voltage": complex, - "min_voltage": float, - "max_voltage": float, + "voltage_level": float, + "min_voltage_level": float, + "max_voltage_level": float, "violated": pd.BooleanDtype(), } ) @@ -610,9 +633,16 @@ def test_buses_voltages(small_network_with_results): ) assert isinstance(buses_voltages, pd.DataFrame) - assert buses_voltages.shape == (6, 4) + assert buses_voltages.shape == (6, 6) assert buses_voltages.index.names == ["bus_id", "phase"] - assert list(buses_voltages.columns) == ["voltage", "min_voltage", "max_voltage", "violated"] + assert list(buses_voltages.columns) == [ + "voltage", + "violated", + "voltage_level", + "min_voltage_level", + "max_voltage_level", + "nominal_voltage", + ] assert_frame_equal(buses_voltages, expected_buses_voltages, check_exact=False) @@ -679,17 +709,21 @@ def test_single_phase_network(single_phase_network: ElectricalNetwork): "bus_id": "bus0", "phase": "bn", "voltage": (19999.94999975 + 0j) - (-0.050000250001249996 + 0j), - "min_voltage": np.nan, - "max_voltage": np.nan, "violated": None, + "voltage_level": np.nan, + "min_voltage_level": np.nan, + "max_voltage_level": np.nan, + "nominal_voltage": np.nan, }, { "bus_id": "bus1", "phase": "bn", "voltage": (19999.899999499998 + 0j) - (0j), - "min_voltage": np.nan, - "max_voltage": np.nan, "violated": None, + "voltage_level": np.nan, + "min_voltage_level": np.nan, + "max_voltage_level": np.nan, + "nominal_voltage": np.nan, }, ] ) @@ -697,9 +731,11 @@ def test_single_phase_network(single_phase_network: ElectricalNetwork): { "phase": VoltagePhaseDtype, "voltage": complex, - "min_voltage": float, - "max_voltage": float, + "voltage_level": float, + "min_voltage_level": float, + "max_voltage_level": float, "violated": pd.BooleanDtype(), + "nominal_voltage": float, } ) .set_index(["bus_id", "phase"]), @@ -719,8 +755,10 @@ def test_single_phase_network(single_phase_network: ElectricalNetwork): "power2", "potential1", "potential2", - "max_power", "violated", + "loading", + "max_loading", + "sn", ], ) .astype( @@ -732,8 +770,10 @@ def test_single_phase_network(single_phase_network: ElectricalNetwork): "power2": complex, "potential1": complex, "potential2": complex, - "max_power": float, "violated": pd.BooleanDtype(), + "loading": float, + "max_loading": float, + "sn": float, } ) .set_index(["transformer_id", "phase"]), @@ -757,8 +797,10 @@ def test_single_phase_network(single_phase_network: ElectricalNetwork): + (19999.899999499998 + 0j) * (-0.005000025000117603 - 0j).conjugate() ), "series_current": 0.005000025000117603 + 0j, - "max_current": np.nan, "violated": None, + "loading": np.nan, + "max_loading": 1.0, + "ampacity": np.nan, }, { "line_id": "line", @@ -774,8 +816,10 @@ def test_single_phase_network(single_phase_network: ElectricalNetwork): + (0j) * (0.005000025000125 - 0j).conjugate() ), "series_current": -0.005000025000125 + 0j, - "max_current": np.nan, "violated": None, + "loading": np.nan, + "max_loading": 1.0, + "ampacity": np.nan, }, ] ) @@ -790,8 +834,10 @@ def test_single_phase_network(single_phase_network: ElectricalNetwork): "potential2": complex, "series_losses": complex, "series_current": complex, - "max_current": float, "violated": pd.BooleanDtype(), + "loading": float, + "max_loading": float, + "ampacity": float, } ) .set_index(["line_id", "phase"]), @@ -967,7 +1013,7 @@ def test_network_results_warning(small_network, small_network_with_results, recw for line in en.lines.values(): for result_field_name in result_field_names_dict["lines"]: if result_field_name == "res_violated": - continue # No max_currents + continue # No ampacities if not line.with_shunt and "shunt" in result_field_name: continue # No results if no shunt with pytest.raises(RoseauLoadFlowException) as e: @@ -1019,7 +1065,7 @@ def test_network_results_warning(small_network, small_network_with_results, recw for line in en.lines.values(): for result_field_name in result_field_names_dict["lines"]: if result_field_name == "res_violated": - continue # No max_currents + continue # No ampacities if not line.with_shunt and "shunt" in result_field_name: continue # No results if no shunt _ = getattr(line, result_field_name) @@ -1060,7 +1106,7 @@ def test_network_results_warning(small_network, small_network_with_results, recw for line in en.lines.values(): for result_field_name in result_field_names_dict["lines"]: if result_field_name == "res_violated": - continue # No max_currents + continue # No ampacities if not line.with_shunt and "shunt" in result_field_name: continue # No results if no shunt with check_result_warning(expected_message=expected_message): @@ -1128,7 +1174,10 @@ def test_network_results_error(small_network): def test_load_flow_results_frames(small_network_with_results): en = small_network_with_results - en.buses["bus0"].min_voltage = 21_000 + # Multiply by sqrt(3) because a neutral exists in the small network + nominal_voltage = 20_000 * np.sqrt(3) + en.buses["bus0"].nominal_voltage = nominal_voltage + en.buses["bus0"].min_voltage_level = 1.05 # Buses results expected_res_buses = ( @@ -1157,49 +1206,61 @@ def test_load_flow_results_frames(small_network_with_results): "bus_id": "bus0", "phase": "an", "voltage": (20000 + 2.89120e-18j) - (-1.34764e-12 + 2.89120e-18j), - "min_voltage": 21_000, - "max_voltage": np.nan, "violated": True, + "voltage_level": 1.0, + "min_voltage_level": 1.05, + "max_voltage_level": np.nan, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus0", "phase": "bn", "voltage": (-10000.00000 - 17320.50807j) - (-1.34764e-12 + 2.89120e-18j), - "min_voltage": 21_000, - "max_voltage": np.nan, "violated": True, + "voltage_level": 1.0000000000134766, + "min_voltage_level": 1.05, + "max_voltage_level": np.nan, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus0", "phase": "cn", "voltage": (-10000.00000 + 17320.50807j) - (-1.34764e-12 + 2.89120e-18j), - "min_voltage": 21_000, - "max_voltage": np.nan, "violated": True, + "voltage_level": 1.0000000000134766, + "min_voltage_level": 1.05, + "max_voltage_level": np.nan, + "nominal_voltage": nominal_voltage, }, { "bus_id": "bus1", "phase": "an", "voltage": (19999.94999 + 2.89119e-18j) - (0j), - "min_voltage": np.nan, - "max_voltage": np.nan, "violated": None, + "voltage_level": np.nan, + "min_voltage_level": np.nan, + "max_voltage_level": np.nan, + "nominal_voltage": np.nan, }, { "bus_id": "bus1", "phase": "bn", "voltage": (-9999.97499 - 17320.46477j) - (0j), - "min_voltage": np.nan, - "max_voltage": np.nan, "violated": None, + "voltage_level": np.nan, + "min_voltage_level": np.nan, + "max_voltage_level": np.nan, + "nominal_voltage": np.nan, }, { "bus_id": "bus1", "phase": "cn", "voltage": (-9999.97499 + 17320.46477j) - (0j), - "min_voltage": np.nan, - "max_voltage": np.nan, "violated": None, + "voltage_level": np.nan, + "min_voltage_level": np.nan, + "max_voltage_level": np.nan, + "nominal_voltage": np.nan, }, ] ) @@ -1208,9 +1269,11 @@ def test_load_flow_results_frames(small_network_with_results): "bus_id": object, "phase": VoltagePhaseDtype, "voltage": complex, - "min_voltage": float, - "max_voltage": float, "violated": pd.BooleanDtype(), + "voltage_level": float, + "min_voltage_level": float, + "max_voltage_level": float, + "nominal_voltage": float, } ) .set_index(["bus_id", "phase"]) @@ -1230,8 +1293,10 @@ def test_load_flow_results_frames(small_network_with_results): "power2", "potential1", "potential2", - "max_power", "violated", + "loading", + "max_loading", + "sn", ], ) .astype( @@ -1244,8 +1309,10 @@ def test_load_flow_results_frames(small_network_with_results): "power2": complex, "potential1": complex, "potential2": complex, - "max_power": float, + "loading": float, "violated": pd.BooleanDtype(), + "max_loading": float, + "sn": float, } ) .set_index(["transformer_id", "phase"]) @@ -1268,8 +1335,10 @@ def test_load_flow_results_frames(small_network_with_results): + (19999.94999 + 2.89119e-18j) * (-0.00500 - 7.22799e-25j).conjugate() ), "series_current": 0.00500 + 7.22799e-25j, - "max_current": np.nan, "violated": None, + "loading": np.nan, + "max_loading": 1.0, + "ampacity": np.nan, }, { "line_id": "line", @@ -1285,8 +1354,10 @@ def test_load_flow_results_frames(small_network_with_results): + (-9999.97499 - 17320.46477j) * (0.00250 + 0.00433j).conjugate() ), "series_current": -0.00250 - 0.00433j, - "max_current": np.nan, "violated": None, + "loading": np.nan, + "max_loading": 1.0, + "ampacity": np.nan, }, { "line_id": "line", @@ -1302,8 +1373,10 @@ def test_load_flow_results_frames(small_network_with_results): + (-9999.97499 + 17320.46477j) * (0.00250 - 0.00433j).conjugate() ), "series_current": -0.00250 + 0.00433j, - "max_current": np.nan, "violated": None, + "loading": np.nan, + "max_loading": 1.0, + "ampacity": np.nan, }, { "line_id": "line", @@ -1319,8 +1392,10 @@ def test_load_flow_results_frames(small_network_with_results): + (0j) * (1.34764e-13 - 2.89120e-19j).conjugate() ), "series_current": -1.34764e-13 + 2.89120e-19j, - "max_current": np.nan, "violated": None, + "loading": np.nan, + "max_loading": 1.0, + "ampacity": np.nan, }, ] expected_res_lines_dtypes = { @@ -1334,8 +1409,10 @@ def test_load_flow_results_frames(small_network_with_results): "potential2": complex, "series_losses": complex, "series_current": complex, - "max_current": float, "violated": pd.BooleanDtype(), + "loading": float, + "max_loading": float, + "ampacity": float, } expected_res_lines = ( pd.DataFrame.from_records(expected_res_lines_records) @@ -1345,10 +1422,17 @@ def test_load_flow_results_frames(small_network_with_results): assert_frame_equal(en.res_lines, expected_res_lines, rtol=1e-4, atol=1e-5) # Lines with violated max current - en.lines["line"].parameters.max_current = 0.002 - expected_res_lines_violated_records = [ - d | {"max_current": 0.002, "violated": d["phase"] != "n"} for d in expected_res_lines_records - ] + en.lines["line"].parameters.ampacities = 0.002 + expected_res_lines_violated_records = [] + for d in expected_res_lines_records: + if d["phase"] == "n": + expected_res_lines_violated_records.append( + d | {"ampacity": 0.002, "violated": False, "loading": 6.738240607860843e-11} + ) + else: + expected_res_lines_violated_records.append( + d | {"ampacity": 0.002, "violated": True, "loading": 2.500006250011211} + ) expected_res_violated_lines = ( pd.DataFrame.from_records(expected_res_lines_violated_records) .astype(expected_res_lines_dtypes) @@ -1811,49 +1895,54 @@ def test_get_catalogue(): assert catalogue.empty -def test_to_graph(small_network: ElectricalNetwork): - g = small_network.to_graph() +def test_to_graph(all_element_network: ElectricalNetwork): + g = all_element_network.to_graph() assert isinstance(g, nx.Graph) - assert sorted(g.nodes) == sorted(small_network.buses) + assert sorted(g.nodes) == sorted(all_element_network.buses) assert sorted(g.edges) == sorted( (b.bus1.id, b.bus2.id) for b in it.chain( - small_network.lines.values(), small_network.transformers.values(), small_network.switches.values() + all_element_network.lines.values(), + all_element_network.transformers.values(), + all_element_network.switches.values(), ) ) - for bus in small_network.buses.values(): + for bus in all_element_network.buses.values(): node_data = g.nodes[bus.id] assert node_data["geom"] == bus.geometry - for line in small_network.lines.values(): + for line in all_element_network.lines.values(): edge_data = g.edges[line.bus1.id, line.bus2.id] - max_current = line.max_current.magnitude if line.max_current is not None else None + ampacities = line.ampacities.magnitude.tolist() if line.ampacities is not None else None assert edge_data == { "id": line.id, "type": "line", "phases": line.phases, + "length": line.length.m, "parameters_id": line.parameters.id, - "max_current": max_current, + "ampacities": ampacities, + "max_loading": line._max_loading, "geom": line.geometry, } - for transformer in small_network.transformers.values(): + for transformer in all_element_network.transformers.values(): edge_data = g.edges[transformer.bus1.id, transformer.bus2.id] - max_power = transformer.max_power.magnitude if transformer.max_power is not None else None + max_loading = transformer.max_loading.magnitude if transformer.max_loading is not None else None assert edge_data == { "id": transformer.id, "type": "transformer", "phases1": transformer.phases1, "phases2": transformer.phases2, "parameters_id": transformer.parameters.id, - "max_power": max_power, + "max_loading": max_loading, + "sn": transformer.sn.magnitude, "geom": transformer.geometry, } - for switch in small_network.switches.values(): + for switch in all_element_network.switches.values(): edge_data = g.edges[switch.bus1.id, switch.bus2.id] - assert edge_data == {"id": switch.id, "type": "switch", "geom": switch.geometry} + assert edge_data == {"id": switch.id, "type": "switch", "phases": switch.phases, "geom": switch.geometry} def test_serialization(all_element_network, all_element_network_with_results): @@ -2129,9 +2218,9 @@ def test_propagate_potentials_center_transformers(): # Source is located at the primary side of the transformer bus1 = Bus(id="bus1", phases="ab") PotentialRef(id="pref", element=bus1) - VoltageSource(id="vs", bus=bus1, voltages=[20000]) + VoltageSource(id="vs", bus=bus1, voltages=20000) tp = TransformerParameters.from_open_and_short_circuit_tests( - id="test", type="center", sn=160000, uhv=20000.0, ulv=400.0, i0=0.023, p0=460.0, psc=2350.0, vsc=0.04 + id="test", vg="Iii0", sn=160000, uhv=20000.0, ulv=400.0, i0=0.023, p0=460.0, psc=2350.0, vsc=0.04 ) bus2 = Bus(id="bus2", phases="abn") PotentialRef(id="pref2", element=bus2) diff --git a/roseau/load_flow/tests/test_solvers.py b/roseau/load_flow/tests/test_solvers.py index 7b9225db..3bfe8dd6 100644 --- a/roseau/load_flow/tests/test_solvers.py +++ b/roseau/load_flow/tests/test_solvers.py @@ -1,11 +1,15 @@ import contextlib +import numpy as np import pytest from roseau.load_flow import ( Bus, ElectricalNetwork, + Line, + LineParameters, PotentialRef, + PowerLoad, RoseauLoadFlowException, RoseauLoadFlowExceptionCode, VoltageSource, @@ -74,3 +78,50 @@ def test_network_solver(): with contextlib.suppress(TypeError): # cython solve_load_flow method has been patched en.solve_load_flow() # Reset to default assert isinstance(en._solver, NewtonGoldstein) + + +def test_backward_forward_limitations(): + bus1 = Bus(id="bus1", phases="abc") + PotentialRef(id="pref", element=bus1) + VoltageSource(id="vs", bus=bus1, voltages=20000) + bus2 = Bus(id="bus2", phases="abc") + lp = LineParameters(id="test", z_line=np.eye(3, dtype=complex)) + Line(id="line1", bus1=bus1, bus2=bus2, parameters=lp, length=1.0) + bus3 = Bus(id="bus3", phases="abc") + Line(id="line2", bus1=bus2, bus2=bus3, parameters=lp, length=1.0) + en = ElectricalNetwork.from_element(bus1) + with contextlib.suppress(TypeError): # cython solve_load_flow method has been patched + en.solve_load_flow(solver="backward_forward") # Ok, no loop or floating neutral + + # Add floating neutral + load = PowerLoad(id="load", bus=bus3, powers=[10, 10, 10], phases="abcn") + with pytest.raises(RoseauLoadFlowException) as e: + en.solve_load_flow(solver="backward_forward") + assert ( + "The backward-forward solver does not support loads or voltage sources with floating neutral" in e.value.args[0] + ) + assert e.value.args[1] == RoseauLoadFlowExceptionCode.NO_BACKWARD_FORWARD + load.disconnect() + + with contextlib.suppress(TypeError): # cython solve_load_flow method has been patched + en.solve_load_flow(solver="backward_forward") # Ok, no loop or floating neutral + + # Add floating neutral + vs = VoltageSource(id="vs2", bus=bus3, voltages=20e3, phases="abcn") + with pytest.raises(RoseauLoadFlowException) as e: + en.solve_load_flow(solver="backward_forward") + assert ( + "The backward-forward solver does not support loads or voltage sources with floating neutral" in e.value.args[0] + ) + assert e.value.args[1] == RoseauLoadFlowExceptionCode.NO_BACKWARD_FORWARD + vs.disconnect() + + with contextlib.suppress(TypeError): # cython solve_load_flow method has been patched + en.solve_load_flow(solver="backward_forward") # Ok, no loop or floating neutral + + # Add loop + Line(id="line3", bus1=bus1, bus2=bus3, parameters=lp, length=1.0) + with pytest.raises(RoseauLoadFlowException) as e: + en.solve_load_flow(solver="backward_forward") + assert "The backward-forward solver does not support loops, but the network contains one." in e.value.args[0] + assert e.value.args[1] == RoseauLoadFlowExceptionCode.NO_BACKWARD_FORWARD diff --git a/roseau/load_flow/typing.py b/roseau/load_flow/typing.py index db3a3d36..c7d31764 100644 --- a/roseau/load_flow/typing.py +++ b/roseau/load_flow/typing.py @@ -70,9 +70,10 @@ StrPath: TypeAlias = str | os.PathLike[str] ControlType: TypeAlias = Literal["constant", "p_max_u_production", "p_max_u_consumption", "q_u"] ProjectionType: TypeAlias = Literal["euclidean", "keep_p", "keep_q"] -Solver: TypeAlias = Literal["newton", "newton_goldstein"] +Solver: TypeAlias = Literal["newton", "newton_goldstein", "backward_forward"] MapOrSeq: TypeAlias = Mapping[int, T] | Mapping[str, T] | Mapping[Id, T] | Sequence[T] ComplexArray: TypeAlias = NDArray[np.complex128] +FloatArray: TypeAlias = NDArray[np.float64] QtyOrMag: TypeAlias = Q_[T] | T Int: TypeAlias = int | np.integer[Any] @@ -87,6 +88,8 @@ FloatArrayLike1D: TypeAlias = ( QtyOrMag[NDArray[np.floating[Any] | np.integer[Any]] | Sequence[Float]] | Sequence[QtyOrMag[Float]] ) +FloatScalarOrArrayLike1D: TypeAlias = FloatArrayLike1D | QtyOrMag[Float] + __all__ = [ "Id", @@ -96,8 +99,11 @@ "ProjectionType", "Solver", "MapOrSeq", + "FloatArray", "ComplexArray", "ComplexArrayLike1D", "ComplexArrayLike2D", "FloatArrayLike1D", + "ComplexScalarOrArrayLike1D", + "FloatScalarOrArrayLike1D", ] diff --git a/roseau/load_flow/units.py b/roseau/load_flow/units.py index b220f3af..fd36893b 100644 --- a/roseau/load_flow/units.py +++ b/roseau/load_flow/units.py @@ -112,8 +112,10 @@ def ureg_wraps( Args: ret: Units of each of the return values. Use `None` to skip argument conversion. + args: Units of each of the input arguments. Use `None` to skip argument conversion. + strict: Indicates that only quantities are accepted. (Default value = True) """ diff --git a/roseau/load_flow/utils/__init__.py b/roseau/load_flow/utils/__init__.py index b3e5207f..b9d991f5 100644 --- a/roseau/load_flow/utils/__init__.py +++ b/roseau/load_flow/utils/__init__.py @@ -22,10 +22,10 @@ from roseau.load_flow.utils.mixins import CatalogueMixin, Identifiable, JsonMixin from roseau.load_flow.utils.types import ( BranchTypeDtype, - ConductorType, - InsulatorType, + Insulator, LineType, LoadTypeDtype, + Material, PhaseDtype, SequenceDtype, VoltagePhaseDtype, @@ -54,8 +54,8 @@ "CatalogueMixin", # Types "LineType", - "ConductorType", - "InsulatorType", + "Material", + "Insulator", # Dtypes "PhaseDtype", "VoltagePhaseDtype", diff --git a/roseau/load_flow/utils/_doc_utils.py b/roseau/load_flow/utils/_doc_utils.py new file mode 100644 index 00000000..2a9a5271 --- /dev/null +++ b/roseau/load_flow/utils/_doc_utils.py @@ -0,0 +1,72 @@ +import pandas as pd + + +def to_markdown(df: pd.DataFrame, *, floatfmt: str = "g", index: bool = True, no_wrap_index: bool = False) -> str: + """Format a dataframe as markdown for use in the docs. + + Features: + - Pretty format complex numbers with the same format spec as floats. + - Right-align numerical columns and left-align other columns. + - Optionally wrap index in ```` tags to prevent line breaks. + + Args: + df: + The dataframe to format. + + floatfmt: + Format specification used for columns which contain numeric data with a decimal point. + It is also used for real and imaginary parts of complex numbers. + + index: + Whether to include the index in the markdown table. + + no_wrap_index: + Whether to wrap the index in ```` tags. + + Returns: + A string representing the dataframe formatted as a markdown table. + + Examples: + + Print a results dataframe. Reset the multi-index for better display: + + >>> print(tomarkdown(en.res_buses_voltages.reset_index(), index=False)) + | bus_id | phase | voltage | violated | voltage_level | ... + |:----------------|:--------|-----------------:|:-----------|----------------:| ... + | MVLV03045 | ab | 17320.5+10000 | False | 1 | ... + | MVLV03045 | bc | 0-20000 | False | 1 | ... + | MVLV03045 | ca | -17320.5+10000 | False | 1 | ... + + Print catalogue of transformer parameters. Avoid line breaks in the index: + + >>> tr_catalogue = rlf.TransformerParameters.get_catalogue().sample(30, random_state=1) + >>> print(to_markdown(tr_catalogue, no_wrap_index=True)) + | Name | Manufacturer | Product range | ... + |:-----------------------------------------------|:---------------|:----------------| ... + | FT 100kVA 15/20kV(20) 400V Dyn11 | FT | | ... + | FT 160kVA 15/20kV(20) 400V Dyn11 | FT | | ... + + """ + if df.empty: + return df.to_markdown(index=index) + + df = df.copy() + if index and no_wrap_index and pd.api.types.is_string_dtype(df.index): + df.index = "" + df.index + "" + + colalign = [] + if index: + colalign.append("left") + for c in df.columns: + if ( + (is_complex_dtype := pd.api.types.is_complex_dtype(df[c])) + or pd.api.types.is_float_dtype(df[c]) + or pd.api.types.is_integer_dtype(df[c]) + ): + colalign.append("right") + if is_complex_dtype: + df[c] = df[c].apply(lambda x: f"{x.real:{floatfmt}}{x.imag:+{floatfmt}}") + else: + colalign.append("left") + + return df.to_markdown(index=index, floatfmt=floatfmt, colalign=colalign) diff --git a/roseau/load_flow/utils/_exceptions.py b/roseau/load_flow/utils/_exceptions.py new file mode 100644 index 00000000..3db0cd06 --- /dev/null +++ b/roseau/load_flow/utils/_exceptions.py @@ -0,0 +1,40 @@ +# The find_stack_level function is adapted from the `pandas.util._exceptions.find_stack_level` +# function from the pandas library licensed under the BSD 3-Clause license. +# pandas source code is available at https://github.com/pandas-dev/pandas +import inspect +from pathlib import Path + +_pkg_and_tests_dirs: tuple[str, tuple[str, ...]] | None = None + + +def _get_dirs() -> tuple[str, tuple[str, ...]]: + global _pkg_and_tests_dirs + if _pkg_and_tests_dirs is None: + import roseau.load_flow + + pkg_dir = Path(roseau.load_flow.__file__).parent + test_dirs = tuple(str(p) for p in pkg_dir.glob("**/tests") if p.is_dir()) + _pkg_and_tests_dirs = str(pkg_dir), test_dirs + return _pkg_and_tests_dirs + + +def find_stack_level() -> int: + """Find the first place in the stack that is not inside `roseau.load_flow` (tests notwithstanding).""" + pkg_dir, test_dirs = _get_dirs() + + # https://stackoverflow.com/questions/17407119/python-inspect-stack-is-slow + frame = inspect.currentframe() + try: + n = 0 + while frame: # pragma: no cover + filename = inspect.getfile(frame) + if filename.startswith(pkg_dir) and not filename.startswith(test_dirs): + frame = frame.f_back + n += 1 + else: + break + finally: + # See note in https://docs.python.org/3/library/inspect.html#inspect.Traceback + # And Issue https://github.com/pandas-dev/pandas/issues/54628 + del frame + return max(n, 2) diff --git a/roseau/load_flow/utils/_versions.py b/roseau/load_flow/utils/_versions.py index 6cd671e8..82e61c3f 100644 --- a/roseau/load_flow/utils/_versions.py +++ b/roseau/load_flow/utils/_versions.py @@ -25,7 +25,6 @@ def _get_dependency_info() -> JsonDict: "numpy", "geopandas", "shapely", - "regex", "pint", "platformdirs", "certifi", diff --git a/roseau/load_flow/utils/constants.py b/roseau/load_flow/utils/constants.py index 3cf83b7b..69595a8e 100644 --- a/roseau/load_flow/utils/constants.py +++ b/roseau/load_flow/utils/constants.py @@ -3,7 +3,7 @@ import numpy as np from roseau.load_flow.units import Q_ -from roseau.load_flow.utils.types import ConductorType, InsulatorType +from roseau.load_flow.utils.types import Insulator, Material PI: float = cmath.pi """The famous mathematical constant :math:`\\pi = 3.141592\\ldots`.""" @@ -35,30 +35,30 @@ OMEGA: Q_[float] = Q_(2 * PI * F, "rad/s") """Angular frequency :math:`\\omega = 2 \\pi f` (rad/s).""" -RHO: dict[ConductorType, Q_[float]] = { - ConductorType.CU: Q_(1.7241e-8, "ohm*m"), # IEC 60287-1-1 Table 1 - ConductorType.AL: Q_(2.8264e-8, "ohm*m"), # IEC 60287-1-1 Table 1 - ConductorType.AM: Q_(3.26e-8, "ohm*m"), # verified - ConductorType.AA: Q_(4.0587e-8, "ohm*m"), # verified (approx. AS 3607 ACSR/GZ) - ConductorType.LA: Q_(3.26e-8, "ohm*m"), +RHO: dict[Material, Q_[float]] = { + Material.CU: Q_(1.7241e-8, "ohm*m"), # IEC 60287-1-1 Table 1 + Material.AL: Q_(2.8264e-8, "ohm*m"), # IEC 60287-1-1 Table 1 + Material.AM: Q_(3.26e-8, "ohm*m"), # verified + Material.AA: Q_(4.0587e-8, "ohm*m"), # verified (approx. AS 3607 ACSR/GZ) + Material.LA: Q_(3.26e-8, "ohm*m"), } """Resistivity of common conductor materials (Ohm.m).""" -MU_R: dict[ConductorType, Q_[float]] = { - ConductorType.CU: Q_(0.9999935849131266), - ConductorType.AL: Q_(1.0000222328028834), - ConductorType.AM: Q_(0.9999705074463784), - ConductorType.AA: Q_(1.0000222328028834), # ==AL - ConductorType.LA: Q_(0.9999705074463784), # ==AM +MU_R: dict[Material, Q_[float]] = { + Material.CU: Q_(0.9999935849131266), + Material.AL: Q_(1.0000222328028834), + Material.AM: Q_(0.9999705074463784), + Material.AA: Q_(1.0000222328028834), # ==AL + Material.LA: Q_(0.9999705074463784), # ==AM } """Relative magnetic permeability of common conductor materials.""" -DELTA_P: dict[ConductorType, Q_[float]] = { - ConductorType.CU: Q_(9.33, "mm"), - ConductorType.AL: Q_(11.95, "mm"), - ConductorType.AM: Q_(12.85, "mm"), - ConductorType.AA: Q_(14.34, "mm"), - ConductorType.LA: Q_(12.85, "mm"), +DELTA_P: dict[Material, Q_[float]] = { + Material.CU: Q_(9.33, "mm"), + Material.AL: Q_(11.95, "mm"), + Material.AM: Q_(12.85, "mm"), + Material.AA: Q_(14.34, "mm"), + Material.LA: Q_(12.85, "mm"), } """Skin depth of common conductor materials :math:`\\sqrt{\\dfrac{\\rho}{\\pi f \\mu_r \\mu_0}}` (mm).""" # Skin depth is the depth at which the current density is reduced to 1/e (~37%) of the surface value. @@ -66,31 +66,31 @@ # --------------- # def delta_p(rho, mu_r): # return np.sqrt(rho / (PI * F * mu_r * MU_0)) -# for material in ConductorType: +# for material in Material: # print(material, delta_p(RHO[material], MU_R[material]).m_as("mm")) -TAN_D: dict[InsulatorType, Q_[float]] = { - InsulatorType.PVC: Q_(1000e-4), - InsulatorType.HDPE: Q_(10e-4), - InsulatorType.MDPE: Q_(10e-4), - InsulatorType.LDPE: Q_(10e-4), - InsulatorType.XLPE: Q_(40e-4), - InsulatorType.EPR: Q_(200e-4), - InsulatorType.IP: Q_(100e-4), - InsulatorType.UNKNOWN: Q_(0), +TAN_D: dict[Insulator, Q_[float]] = { + Insulator.PVC: Q_(1000e-4), + Insulator.HDPE: Q_(10e-4), + Insulator.MDPE: Q_(10e-4), + Insulator.LDPE: Q_(10e-4), + Insulator.XLPE: Q_(40e-4), + Insulator.EPR: Q_(200e-4), + Insulator.IP: Q_(100e-4), + Insulator.NONE: Q_(0), } """Loss angles of common insulator materials according to the IEC 60287 standard.""" # IEC 60287-1-1 Table 3. We only include the MV values. -EPSILON_R: dict[InsulatorType, Q_[float]] = { - InsulatorType.PVC: Q_(8.0), - InsulatorType.HDPE: Q_(2.3), - InsulatorType.MDPE: Q_(2.3), - InsulatorType.LDPE: Q_(2.3), - InsulatorType.XLPE: Q_(2.5), - InsulatorType.EPR: Q_(3.0), - InsulatorType.IP: Q_(4.0), - InsulatorType.UNKNOWN: Q_(1.0), +EPSILON_R: dict[Insulator, Q_[float]] = { + Insulator.PVC: Q_(8.0), + Insulator.HDPE: Q_(2.3), + Insulator.MDPE: Q_(2.3), + Insulator.LDPE: Q_(2.3), + Insulator.XLPE: Q_(2.5), + Insulator.EPR: Q_(3.0), + Insulator.IP: Q_(4.0), + Insulator.NONE: Q_(1.0), } """Relative permittivity of common insulator materials according to the IEC 60287 standard.""" # IEC 60287-1-1 Table 3. We only include the MV values. diff --git a/roseau/load_flow/utils/mixins.py b/roseau/load_flow/utils/mixins.py index d52461ee..a9dd3c33 100644 --- a/roseau/load_flow/utils/mixins.py +++ b/roseau/load_flow/utils/mixins.py @@ -295,7 +295,7 @@ def _filter_catalogue_str( else: try: pattern = re.compile(pattern=value, flags=re.IGNORECASE) - result = vector.str.fullmatch(pattern) + result = vector.str.fullmatch(pattern) | (vector.str.lower() == value.lower()) except re.error: # fallback to string comparison result = vector.str.lower() == value.lower() diff --git a/roseau/load_flow/utils/tests/test_constants.py b/roseau/load_flow/utils/tests/test_constants.py index db6fbfdc..09b2cdc8 100644 --- a/roseau/load_flow/utils/tests/test_constants.py +++ b/roseau/load_flow/utils/tests/test_constants.py @@ -1,15 +1,13 @@ from roseau.load_flow.utils.constants import DELTA_P, EPSILON_R, MU_R, RHO, TAN_D -from roseau.load_flow.utils.types import ConductorType, InsulatorType +from roseau.load_flow.utils.types import Insulator, Material def test_constants(): - for x in ConductorType: + for x in Material: assert x in MU_R assert x in RHO assert x in DELTA_P - for x in InsulatorType: - if x == InsulatorType.UNKNOWN: - continue + for x in Insulator: assert x in TAN_D assert x in EPSILON_R diff --git a/roseau/load_flow/utils/tests/test_types.py b/roseau/load_flow/utils/tests/test_types.py index e38591a3..4a3c6e11 100644 --- a/roseau/load_flow/utils/tests/test_types.py +++ b/roseau/load_flow/utils/tests/test_types.py @@ -1,9 +1,9 @@ import pytest from roseau.load_flow.exceptions import RoseauLoadFlowException, RoseauLoadFlowExceptionCode -from roseau.load_flow.utils.types import ConductorType, InsulatorType, LineType +from roseau.load_flow.utils.types import Insulator, LineType, Material -TYPES = [ConductorType, InsulatorType, LineType] +TYPES = [Material, Insulator, LineType] TYPES_IDS = [x.__name__ for x in TYPES] @@ -32,18 +32,16 @@ def test_line_type(): assert LineType("T") == LineType.TWISTED -def test_insulator_type(): - assert InsulatorType("") == InsulatorType.UNKNOWN - assert InsulatorType("nan") == InsulatorType.UNKNOWN - assert InsulatorType("pex") == InsulatorType.XLPE +def test_insulator(): + assert Insulator("pex") == Insulator.XLPE -def test_conductor_type(): +def test_material(): with pytest.raises(RoseauLoadFlowException) as e: - ConductorType("") - assert "cannot be converted into a ConductorType" in e.value.msg - assert e.value.code == RoseauLoadFlowExceptionCode.BAD_CONDUCTOR_TYPE + Material("") + assert "cannot be converted into a Material" in e.value.msg + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MATERIAL with pytest.raises(RoseauLoadFlowException) as e: - ConductorType("nan") - assert "cannot be converted into a ConductorType" in e.value.msg - assert e.value.code == RoseauLoadFlowExceptionCode.BAD_CONDUCTOR_TYPE + Material("nan") + assert "cannot be converted into a Material" in e.value.msg + assert e.value.code == RoseauLoadFlowExceptionCode.BAD_MATERIAL diff --git a/roseau/load_flow/utils/tests/test_versions.py b/roseau/load_flow/utils/tests/test_versions.py index 605aeb20..646d5e24 100644 --- a/roseau/load_flow/utils/tests/test_versions.py +++ b/roseau/load_flow/utils/tests/test_versions.py @@ -18,4 +18,4 @@ def test_versions(capsys): assert lines[9] == "----------------------" for i, (key, value) in enumerate(_get_dependency_info().items()): assert re.fullmatch(pattern=rf"{key}\s+{value}", string=lines[10 + i]) - assert lines[20] == "" + assert lines[19] == "" diff --git a/roseau/load_flow/utils/types.py b/roseau/load_flow/utils/types.py index 8cd85325..109f95e0 100644 --- a/roseau/load_flow/utils/types.py +++ b/roseau/load_flow/utils/types.py @@ -47,13 +47,18 @@ "voltage": complex, "voltage1": complex, "voltage2": complex, - "max_power": float, "series_losses": complex, "shunt_losses": complex, "series_current": complex, "max_current": float, - "min_voltage": float, - "max_voltage": float, + "loading": float, + "max_loading": float, + "sn": float, + "ampacity": float, + "voltage_level": float, + "nominal_voltage": float, + "min_voltage_level": float, + "max_voltage_level": float, "violated": pd.BooleanDtype(), "flexible": pd.BooleanDtype(), } @@ -90,7 +95,7 @@ def code(self) -> str: return self.name[0] -class ConductorType(StrEnum): +class Material(StrEnum): """The type of the material of the conductor.""" CU = auto() @@ -125,26 +130,26 @@ class ConductorType(StrEnum): """Aluminum Alloy Conductor Steel Reinforced (AACSR) -- Fr = Almélec-Acier.""" @classmethod - def _missing_(cls, value: object) -> "ConductorType | None": + def _missing_(cls, value: object) -> "Material": if isinstance(value, str): try: return cls[value.upper()] except KeyError: pass - msg = f"{value!r} cannot be converted into a ConductorType." + msg = f"{value!r} cannot be converted into a Material." logger.error(msg) - raise RoseauLoadFlowException(msg, RoseauLoadFlowExceptionCode.BAD_CONDUCTOR_TYPE) + raise RoseauLoadFlowException(msg, RoseauLoadFlowExceptionCode.BAD_MATERIAL) def code(self) -> str: """A code that can be used in conductor type names.""" return self.name -class InsulatorType(StrEnum): +class Insulator(StrEnum): """The type of the insulator for a wire.""" - UNKNOWN = auto() - """The material of the insulator is unknown.""" + NONE = auto() + """No insulation.""" # General insulators (IEC 60287) HDPE = auto() @@ -169,18 +174,15 @@ class InsulatorType(StrEnum): """Alias -- Medium-Density PolyEthylene (MDPE) insulation.""" @classmethod - def _missing_(cls, value: object) -> "InsulatorType | None": + def _missing_(cls, value: object) -> "Insulator": if isinstance(value, str): - string = value.upper() - if string in {"", "NAN"}: - return cls.UNKNOWN try: - return cls[string] + return cls[value.upper()] except KeyError: pass - msg = f"{value!r} cannot be converted into a InsulatorType." + msg = f"{value!r} cannot be converted into a Insulator." logger.error(msg) - raise RoseauLoadFlowException(msg, RoseauLoadFlowExceptionCode.BAD_INSULATOR_TYPE) + raise RoseauLoadFlowException(msg, RoseauLoadFlowExceptionCode.BAD_INSULATOR) def code(self) -> str: """A code that can be used in insulator type names.""" diff --git a/scripts/generate_test_networks.py b/scripts/generate_test_networks.py index 0940941c..0a74cfc4 100644 --- a/scripts/generate_test_networks.py +++ b/scripts/generate_test_networks.py @@ -107,7 +107,7 @@ def generate_all_element_network() -> None: line0 = rlf.Line(id="line0", bus1=bus0, bus2=bus1, parameters=lp0, length=rlf.Q_(1.5, "km"), ground=ground) # Transformer between bus1 and bus2 - tp0 = rlf.TransformerParameters.from_catalogue(name="SE_Minera_A0Ak_100kVA", id="tp0") + tp0 = rlf.TransformerParameters.from_catalogue(name="SE Minera A0Ak 100kVA 15/20kV(20) 410V Dyn11", id="tp0") transformer0 = rlf.Transformer(id="transformer0", bus1=bus1, bus2=bus2, parameters=tp0, tap=1.0) ground.connect(bus=bus2, phase="n") @@ -120,11 +120,11 @@ def generate_all_element_network() -> None: id=lp1_tmp.id, z_line=lp1_tmp.z_line, y_shunt=None, # <---- No shunt - max_current=lp1_tmp.max_current, + ampacities=lp1_tmp.ampacities, line_type=lp1_tmp.line_type, - conductor_type=lp1_tmp.conductor_type, - insulator_type=lp1_tmp.insulator_type, - section=lp1_tmp.section, + materials=lp1_tmp.materials, + insulators=lp1_tmp.insulators, + sections=lp1_tmp.sections, ) line1 = rlf.Line(id="line1", bus1=bus3, bus2=bus4, parameters=lp1, length=rlf.Q_(100, "m")) diff --git a/scripts/generate_transformer_parameters_catalogue.py b/scripts/generate_transformer_parameters_catalogue.py index ea1b4ba7..844589ef 100644 --- a/scripts/generate_transformer_parameters_catalogue.py +++ b/scripts/generate_transformer_parameters_catalogue.py @@ -23,14 +23,14 @@ destination_path.mkdir(exist_ok=True, parents=True) # Get parameters - uhv = Q_(df.at[idx, "uhv"], "V") # Phase-to-phase nominal voltages of the high voltages side - ulv = Q_(df.at[idx, "ulv"], "V") # Phase-to-phase nominal voltages of the low voltages side + uhv = Q_(df.at[idx, "uhv"], "V") # Phase-to-phase nominal voltages of the primary side + ulv = Q_(df.at[idx, "ulv"], "V") # Phase-to-phase nominal voltages of the secondary side sn = Q_(df.at[idx, "sn"], "VA") # Nominal power i0 = Q_(np.round(df.at[idx, "i0"], decimals=3), "") # Current during open-circuit test p0 = Q_(df.at[idx, "p0"], "W") # Losses during open-circuit test psc = Q_(df.at[idx, "psc"], "W") # Losses during short-circuit test vsc = Q_(df.at[idx, "vsc"], "") # Voltages on LV side during short-circuit test - type = df.at[idx, "type"] + vg = df.at[idx, "vg"] # Check the canonical name sn_kva = int(sn.m_as("kVA")) @@ -38,7 +38,7 @@ # Generate transformer parameters tp = TransformerParameters.from_open_and_short_circuit_tests( - id=id, type=type, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc + id=id, vg=vg, uhv=uhv, ulv=ulv, sn=sn, p0=p0, i0=i0, psc=psc, vsc=vsc ) assert tp.z2 is not None, id assert tp.ym is not None, id diff --git a/scripts/plot_network_catalogue.py b/scripts/plot_network_catalogue.py index c5dcd831..79411110 100644 --- a/scripts/plot_network_catalogue.py +++ b/scripts/plot_network_catalogue.py @@ -72,8 +72,8 @@ def lines_highlight_function(feature): lines_tooltip = folium.GeoJsonTooltip( - fields=["id", "bus1_id", "bus2_id", "parameters_id"], - aliases=["Id:", "Bus1:", "Bus2:", "Parameters:"], + fields=["id", "phases", "bus1_id", "bus2_id", "parameters_id", "length"], + aliases=["Id:", "Phases:", "Bus1:", "Bus2:", "Parameters:", "Length (km):"], localize=True, sticky=False, labels=True, @@ -222,5 +222,8 @@ def prettify_network_name(name: str) -> str: ).add_to(m) folium.LayerControl().add_to(m) + # Hide the ReadTheDoc flyout in the Catalogue.html file + m.get_root().header.add_child(Element("")) + # Save the map m.save(outfile=OUTPUT_DIR / "Catalogue.html", title=None) diff --git a/scripts/update_catalogue_networks.py b/scripts/update_catalogue_networks.py index 91e6c344..e9176fdd 100644 --- a/scripts/update_catalogue_networks.py +++ b/scripts/update_catalogue_networks.py @@ -10,9 +10,9 @@ import roseau.load_flow as rlf PHASES = {"MV": "abc", "LV": "abcn"} -U_N = {"MV": 20_000, "LV": 230} -U_MAX = {"MV": int(20_000 * 1.05), "LV": int(230 * 1.1)} -U_MIN = {"MV": int(20_000 * 0.95), "LV": int(230 * 0.9)} +U_N = {"MV": 20_000, "LV": 400} +U_MAX = {"MV": 1.05, "LV": 1.1} +U_MIN = {"MV": 0.95, "LV": 0.9} df = rlf.ElectricalNetwork.get_catalogue() @@ -64,8 +64,9 @@ id=bus_id, phases=PHASES[bus_type], geometry=bus.geometry, - min_voltage=U_MIN[bus_type], - max_voltage=U_MAX[bus_type], + nominal_voltage=U_N[bus_type], + min_voltage_level=U_MIN[bus_type], + max_voltage_level=U_MAX[bus_type], ) new_buses[bus_id] = new_bus assert feeder_bus_id is not None @@ -100,11 +101,11 @@ z_line=line.parameters.z_line, y_shunt=line.parameters.y_shunt, # Add missing data from the IEC catalogue - max_current=iec_params.max_current, + ampacities=iec_params.ampacities, line_type=iec_params.line_type, - conductor_type=iec_params.conductor_type, - insulator_type=iec_params.insulator_type, - section=iec_params.section, + materials=iec_params.materials, + insulators=iec_params.insulators, + sections=iec_params.sections, ) new_line = rlf.Line( id=line_id, @@ -134,12 +135,14 @@ tap=transformer.tap, phases1=transformer.phases1, phases2=transformer.phases2, + max_loading=1, # Since v0.11.0 geometry=transformer.geometry, ) assert isinstance(transformer.parameters.id, str), repr(transformer.parameters.id) m = re.match(pattern=r"^.*_(\d+)kVA$", string=transformer.parameters.id) assert m, transformer.parameters.id - transformer.parameters.max_power = int(m.group(1)) * 1_000 + # Since v0.11.0, this does not work. Please use max_loading + # transformer.parameters.max_power = int(m.group(1)) * 1_000 assert new_transformer.geometry == transformer.geometry new_transformers[transformer_id] = new_transformer diff --git a/uv.lock b/uv.lock new file mode 100644 index 00000000..46245b2f --- /dev/null +++ b/uv.lock @@ -0,0 +1,1602 @@ +version = 1 +requires-python = ">=3.10" +resolution-markers = [ + "python_full_version < '3.11'", + "python_full_version == '3.11.*'", + "python_full_version >= '3.12'", +] + +[[package]] +name = "alabaster" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929 }, +] + +[[package]] +name = "astroid" +version = "3.3.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/1e/326fb1d3d83a3bb77c9f9be29d31f2901e35acb94b0605c3f2e5085047f9/astroid-3.3.5.tar.gz", hash = "sha256:5cfc40ae9f68311075d27ef68a4841bdc5cc7f6cf86671b49f00607d30188e2d", size = 397229 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/30/624365383fa4a40329c0f0bbbc151abc4a64e30dfc110fc8f6e2afcd02bb/astroid-3.3.5-py3-none-any.whl", hash = "sha256:a9d1c946ada25098d790e079ba2a1b112157278f3fb7e718ae6a9252f5835dc8", size = 274586 }, +] + +[[package]] +name = "babel" +version = "2.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/74/f1bc80f23eeba13393b7222b11d95ca3af2c1e28edca18af487137eefed9/babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316", size = 9348104 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/20/bc79bc575ba2e2a7f70e8a1155618bb1301eaa5132a8271373a6903f73f8/babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", size = 9587599 }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 }, +] + +[[package]] +name = "certifi" +version = "2024.8.30" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", size = 168507 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/8b/825cc84cf13a28bfbcba7c416ec22bf85a9584971be15b21dd8300c65b7f/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", size = 196363 }, + { url = "https://files.pythonhosted.org/packages/23/81/d7eef6a99e42c77f444fdd7bc894b0ceca6c3a95c51239e74a722039521c/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", size = 125639 }, + { url = "https://files.pythonhosted.org/packages/21/67/b4564d81f48042f520c948abac7079356e94b30cb8ffb22e747532cf469d/charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", size = 120451 }, + { url = "https://files.pythonhosted.org/packages/c2/72/12a7f0943dd71fb5b4e7b55c41327ac0a1663046a868ee4d0d8e9c369b85/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", size = 140041 }, + { url = "https://files.pythonhosted.org/packages/67/56/fa28c2c3e31217c4c52158537a2cf5d98a6c1e89d31faf476c89391cd16b/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", size = 150333 }, + { url = "https://files.pythonhosted.org/packages/f9/d2/466a9be1f32d89eb1554cf84073a5ed9262047acee1ab39cbaefc19635d2/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", size = 142921 }, + { url = "https://files.pythonhosted.org/packages/f8/01/344ec40cf5d85c1da3c1f57566c59e0c9b56bcc5566c08804a95a6cc8257/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", size = 144785 }, + { url = "https://files.pythonhosted.org/packages/73/8b/2102692cb6d7e9f03b9a33a710e0164cadfce312872e3efc7cfe22ed26b4/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", size = 146631 }, + { url = "https://files.pythonhosted.org/packages/d8/96/cc2c1b5d994119ce9f088a9a0c3ebd489d360a2eb058e2c8049f27092847/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", size = 140867 }, + { url = "https://files.pythonhosted.org/packages/c9/27/cde291783715b8ec30a61c810d0120411844bc4c23b50189b81188b273db/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", size = 149273 }, + { url = "https://files.pythonhosted.org/packages/3a/a4/8633b0fc1a2d1834d5393dafecce4a1cc56727bfd82b4dc18fc92f0d3cc3/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", size = 152437 }, + { url = "https://files.pythonhosted.org/packages/64/ea/69af161062166b5975ccbb0961fd2384853190c70786f288684490913bf5/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", size = 150087 }, + { url = "https://files.pythonhosted.org/packages/3b/fd/e60a9d9fd967f4ad5a92810138192f825d77b4fa2a557990fd575a47695b/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", size = 145142 }, + { url = "https://files.pythonhosted.org/packages/6d/02/8cb0988a1e49ac9ce2eed1e07b77ff118f2923e9ebd0ede41ba85f2dcb04/charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", size = 94701 }, + { url = "https://files.pythonhosted.org/packages/d6/20/f1d4670a8a723c46be695dff449d86d6092916f9e99c53051954ee33a1bc/charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", size = 102191 }, + { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 }, + { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 }, + { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 }, + { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 }, + { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 }, + { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 }, + { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 }, + { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 }, + { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 }, + { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 }, + { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 }, + { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 }, + { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 }, + { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 }, + { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 }, + { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 }, + { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 }, + { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 }, + { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 }, + { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 }, + { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 }, + { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 }, + { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 }, + { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 }, + { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 }, + { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 }, + { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 }, + { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 }, + { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 }, + { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 }, + { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 }, + { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 }, + { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 }, + { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 }, + { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 }, + { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 }, + { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 }, + { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 }, + { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 }, + { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 }, + { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 }, + { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 }, + { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 }, + { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 }, + { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 }, + { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "contourpy" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/80937fe3efe0edacf67c9a20b955139a1a622730042c1ea991956f2704ad/contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab", size = 268466 }, + { url = "https://files.pythonhosted.org/packages/82/1d/e3eaebb4aa2d7311528c048350ca8e99cdacfafd99da87bc0a5f8d81f2c2/contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124", size = 253314 }, + { url = "https://files.pythonhosted.org/packages/de/f3/d796b22d1a2b587acc8100ba8c07fb7b5e17fde265a7bb05ab967f4c935a/contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1", size = 312003 }, + { url = "https://files.pythonhosted.org/packages/bf/f5/0e67902bc4394daee8daa39c81d4f00b50e063ee1a46cb3938cc65585d36/contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b", size = 351896 }, + { url = "https://files.pythonhosted.org/packages/1f/d6/e766395723f6256d45d6e67c13bb638dd1fa9dc10ef912dc7dd3dcfc19de/contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453", size = 320814 }, + { url = "https://files.pythonhosted.org/packages/a9/57/86c500d63b3e26e5b73a28b8291a67c5608d4aa87ebd17bd15bb33c178bc/contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3", size = 324969 }, + { url = "https://files.pythonhosted.org/packages/b8/62/bb146d1289d6b3450bccc4642e7f4413b92ebffd9bf2e91b0404323704a7/contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277", size = 1265162 }, + { url = "https://files.pythonhosted.org/packages/18/04/9f7d132ce49a212c8e767042cc80ae390f728060d2eea47058f55b9eff1c/contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595", size = 1324328 }, + { url = "https://files.pythonhosted.org/packages/46/23/196813901be3f97c83ababdab1382e13e0edc0bb4e7b49a7bff15fcf754e/contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697", size = 173861 }, + { url = "https://files.pythonhosted.org/packages/e0/82/c372be3fc000a3b2005061ca623a0d1ecd2eaafb10d9e883a2fc8566e951/contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e", size = 218566 }, + { url = "https://files.pythonhosted.org/packages/12/bb/11250d2906ee2e8b466b5f93e6b19d525f3e0254ac8b445b56e618527718/contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b", size = 269555 }, + { url = "https://files.pythonhosted.org/packages/67/71/1e6e95aee21a500415f5d2dbf037bf4567529b6a4e986594d7026ec5ae90/contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc", size = 254549 }, + { url = "https://files.pythonhosted.org/packages/31/2c/b88986e8d79ac45efe9d8801ae341525f38e087449b6c2f2e6050468a42c/contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86", size = 313000 }, + { url = "https://files.pythonhosted.org/packages/c4/18/65280989b151fcf33a8352f992eff71e61b968bef7432fbfde3a364f0730/contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6", size = 352925 }, + { url = "https://files.pythonhosted.org/packages/f5/c7/5fd0146c93220dbfe1a2e0f98969293b86ca9bc041d6c90c0e065f4619ad/contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85", size = 323693 }, + { url = "https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c", size = 326184 }, + { url = "https://files.pythonhosted.org/packages/ef/e7/104065c8270c7397c9571620d3ab880558957216f2b5ebb7e040f85eeb22/contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291", size = 1268031 }, + { url = "https://files.pythonhosted.org/packages/e2/4a/c788d0bdbf32c8113c2354493ed291f924d4793c4a2e85b69e737a21a658/contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f", size = 1325995 }, + { url = "https://files.pythonhosted.org/packages/a6/e6/a2f351a90d955f8b0564caf1ebe4b1451a3f01f83e5e3a414055a5b8bccb/contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375", size = 174396 }, + { url = "https://files.pythonhosted.org/packages/a8/7e/cd93cab453720a5d6cb75588cc17dcdc08fc3484b9de98b885924ff61900/contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9", size = 219787 }, + { url = "https://files.pythonhosted.org/packages/37/6b/175f60227d3e7f5f1549fcb374592be311293132207e451c3d7c654c25fb/contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509", size = 271494 }, + { url = "https://files.pythonhosted.org/packages/6b/6a/7833cfae2c1e63d1d8875a50fd23371394f540ce809d7383550681a1fa64/contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc", size = 255444 }, + { url = "https://files.pythonhosted.org/packages/7f/b3/7859efce66eaca5c14ba7619791b084ed02d868d76b928ff56890d2d059d/contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454", size = 307628 }, + { url = "https://files.pythonhosted.org/packages/48/b2/011415f5e3f0a50b1e285a0bf78eb5d92a4df000553570f0851b6e309076/contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80", size = 347271 }, + { url = "https://files.pythonhosted.org/packages/84/7d/ef19b1db0f45b151ac78c65127235239a8cf21a59d1ce8507ce03e89a30b/contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec", size = 318906 }, + { url = "https://files.pythonhosted.org/packages/ba/99/6794142b90b853a9155316c8f470d2e4821fe6f086b03e372aca848227dd/contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9", size = 323622 }, + { url = "https://files.pythonhosted.org/packages/3c/0f/37d2c84a900cd8eb54e105f4fa9aebd275e14e266736778bb5dccbf3bbbb/contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b", size = 1266699 }, + { url = "https://files.pythonhosted.org/packages/3a/8a/deb5e11dc7d9cc8f0f9c8b29d4f062203f3af230ba83c30a6b161a6effc9/contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d", size = 1326395 }, + { url = "https://files.pythonhosted.org/packages/1a/35/7e267ae7c13aaf12322ccc493531f1e7f2eb8fba2927b9d7a05ff615df7a/contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e", size = 175354 }, + { url = "https://files.pythonhosted.org/packages/a1/35/c2de8823211d07e8a79ab018ef03960716c5dff6f4d5bff5af87fd682992/contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d", size = 220971 }, + { url = "https://files.pythonhosted.org/packages/9a/e7/de62050dce687c5e96f946a93546910bc67e483fe05324439e329ff36105/contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2", size = 271548 }, + { url = "https://files.pythonhosted.org/packages/78/4d/c2a09ae014ae984c6bdd29c11e74d3121b25eaa117eca0bb76340efd7e1c/contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5", size = 255576 }, + { url = "https://files.pythonhosted.org/packages/ab/8a/915380ee96a5638bda80cd061ccb8e666bfdccea38d5741cb69e6dbd61fc/contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81", size = 306635 }, + { url = "https://files.pythonhosted.org/packages/29/5c/c83ce09375428298acd4e6582aeb68b1e0d1447f877fa993d9bf6cd3b0a0/contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2", size = 345925 }, + { url = "https://files.pythonhosted.org/packages/29/63/5b52f4a15e80c66c8078a641a3bfacd6e07106835682454647aca1afc852/contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7", size = 318000 }, + { url = "https://files.pythonhosted.org/packages/9a/e2/30ca086c692691129849198659bf0556d72a757fe2769eb9620a27169296/contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c", size = 322689 }, + { url = "https://files.pythonhosted.org/packages/6b/77/f37812ef700f1f185d348394debf33f22d531e714cf6a35d13d68a7003c7/contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3", size = 1268413 }, + { url = "https://files.pythonhosted.org/packages/3f/6d/ce84e79cdd128542ebeb268f84abb4b093af78e7f8ec504676673d2675bc/contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1", size = 1326530 }, + { url = "https://files.pythonhosted.org/packages/72/22/8282f4eae20c73c89bee7a82a19c4e27af9b57bb602ecaa00713d5bdb54d/contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82", size = 175315 }, + { url = "https://files.pythonhosted.org/packages/e3/d5/28bca491f65312b438fbf076589dcde7f6f966b196d900777f5811b9c4e2/contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd", size = 220987 }, + { url = "https://files.pythonhosted.org/packages/2f/24/a4b285d6adaaf9746e4700932f579f1a7b6f9681109f694cfa233ae75c4e/contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30", size = 285001 }, + { url = "https://files.pythonhosted.org/packages/48/1d/fb49a401b5ca4f06ccf467cd6c4f1fd65767e63c21322b29b04ec40b40b9/contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751", size = 268553 }, + { url = "https://files.pythonhosted.org/packages/79/1e/4aef9470d13fd029087388fae750dccb49a50c012a6c8d1d634295caa644/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342", size = 310386 }, + { url = "https://files.pythonhosted.org/packages/b0/34/910dc706ed70153b60392b5305c708c9810d425bde12499c9184a1100888/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c", size = 349806 }, + { url = "https://files.pythonhosted.org/packages/31/3c/faee6a40d66d7f2a87f7102236bf4780c57990dd7f98e5ff29881b1b1344/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f", size = 321108 }, + { url = "https://files.pythonhosted.org/packages/17/69/390dc9b20dd4bb20585651d7316cc3054b7d4a7b4f8b710b2b698e08968d/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda", size = 327291 }, + { url = "https://files.pythonhosted.org/packages/ef/74/7030b67c4e941fe1e5424a3d988080e83568030ce0355f7c9fc556455b01/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242", size = 1263752 }, + { url = "https://files.pythonhosted.org/packages/f0/ed/92d86f183a8615f13f6b9cbfc5d4298a509d6ce433432e21da838b4b63f4/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1", size = 1318403 }, + { url = "https://files.pythonhosted.org/packages/b3/0e/c8e4950c77dcfc897c71d61e56690a0a9df39543d2164040301b5df8e67b/contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1", size = 185117 }, + { url = "https://files.pythonhosted.org/packages/c1/31/1ae946f11dfbd229222e6d6ad8e7bd1891d3d48bde5fbf7a0beb9491f8e3/contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546", size = 236668 }, + { url = "https://files.pythonhosted.org/packages/3e/4f/e56862e64b52b55b5ddcff4090085521fc228ceb09a88390a2b103dccd1b/contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6", size = 265605 }, + { url = "https://files.pythonhosted.org/packages/b0/2e/52bfeeaa4541889f23d8eadc6386b442ee2470bd3cff9baa67deb2dd5c57/contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750", size = 315040 }, + { url = "https://files.pythonhosted.org/packages/52/94/86bfae441707205634d80392e873295652fc313dfd93c233c52c4dc07874/contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53", size = 218221 }, +] + +[[package]] +name = "coverage" +version = "7.6.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ab/75/aecfd0a3adbec6e45753976bc2a9fed62b42cea9a206d10fd29244a77953/coverage-7.6.8.tar.gz", hash = "sha256:8b2b8503edb06822c86d82fa64a4a5cb0760bb8f31f26e138ec743f422f37cfc", size = 801425 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/86/6ed22e101badc8eedf181f0c2f65500df5929c44c79991cf45b9bf741424/coverage-7.6.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b39e6011cd06822eb964d038d5dff5da5d98652b81f5ecd439277b32361a3a50", size = 206988 }, + { url = "https://files.pythonhosted.org/packages/3b/04/16853c58bacc02b3ff5405193dfc6c66632442d931b23dd7b9452dc55cf3/coverage-7.6.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:63c19702db10ad79151a059d2d6336fe0c470f2e18d0d4d1a57f7f9713875dcf", size = 207418 }, + { url = "https://files.pythonhosted.org/packages/f8/eb/8a91520d04215eb549d6a7d7d3a79cbb1d78b5dd0814f4b23bf97521d580/coverage-7.6.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3985b9be361d8fb6b2d1adc9924d01dec575a1d7453a14cccd73225cb79243ee", size = 235860 }, + { url = "https://files.pythonhosted.org/packages/00/10/bf1ede5b54ae1bbf39921a5dd4cc84aee79041ed301ec8955064785ddb90/coverage-7.6.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:644ec81edec0f4ad17d51c838a7d01e42811054543b76d4ba2c5d6af741ce2a6", size = 233766 }, + { url = "https://files.pythonhosted.org/packages/5c/ea/741d9233eb502906e0d18ccf4c15c4fb74ff0e85fd8ee967590194b889a1/coverage-7.6.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f188a2402f8359cf0c4b1fe89eea40dc13b52e7b4fd4812450da9fcd210181d", size = 234924 }, + { url = "https://files.pythonhosted.org/packages/18/43/b2cfd4413a5b64ab27c289228b0c45b4527d1b99381cc9d6a00bfd515da4/coverage-7.6.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e19122296822deafce89a0c5e8685704c067ae65d45e79718c92df7b3ec3d331", size = 234019 }, + { url = "https://files.pythonhosted.org/packages/8e/95/8b2fbb9d1a79277963b6095cd51a90fb7088cd3618faf75550038331f78b/coverage-7.6.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:13618bed0c38acc418896005732e565b317aa9e98d855a0e9f211a7ffc2d6638", size = 232481 }, + { url = "https://files.pythonhosted.org/packages/4d/d7/9e939508a39ef67605b715ca89c6522214aceb27c2db9152ae3ae1cf8626/coverage-7.6.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:193e3bffca48ad74b8c764fb4492dd875038a2f9925530cb094db92bb5e47bed", size = 233609 }, + { url = "https://files.pythonhosted.org/packages/ba/e2/1c5fb52eafcffeebaa9db084bff47e7c3cf4f97db752226c232cee4d530b/coverage-7.6.8-cp310-cp310-win32.whl", hash = "sha256:3988665ee376abce49613701336544041f2117de7b7fbfe91b93d8ff8b151c8e", size = 209669 }, + { url = "https://files.pythonhosted.org/packages/31/31/6a56469609a252549dd4b090815428d5521edd4642440d987573a450c069/coverage-7.6.8-cp310-cp310-win_amd64.whl", hash = "sha256:f56f49b2553d7dd85fd86e029515a221e5c1f8cb3d9c38b470bc38bde7b8445a", size = 210509 }, + { url = "https://files.pythonhosted.org/packages/ab/9f/e98211980f6e2f439e251737482aa77906c9b9c507824c71a2ce7eea0402/coverage-7.6.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:86cffe9c6dfcfe22e28027069725c7f57f4b868a3f86e81d1c62462764dc46d4", size = 207093 }, + { url = "https://files.pythonhosted.org/packages/fd/c7/8bab83fb9c20f7f8163c5a20dcb62d591b906a214a6dc6b07413074afc80/coverage-7.6.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d82ab6816c3277dc962cfcdc85b1efa0e5f50fb2c449432deaf2398a2928ab94", size = 207536 }, + { url = "https://files.pythonhosted.org/packages/1e/d6/00243df625f1b282bb25c83ce153ae2c06f8e7a796a8d833e7235337b4d9/coverage-7.6.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13690e923a3932e4fad4c0ebfb9cb5988e03d9dcb4c5150b5fcbf58fd8bddfc4", size = 239482 }, + { url = "https://files.pythonhosted.org/packages/1e/07/faf04b3eeb55ffc2a6f24b65dffe6e0359ec3b283e6efb5050ea0707446f/coverage-7.6.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4be32da0c3827ac9132bb488d331cb32e8d9638dd41a0557c5569d57cf22c9c1", size = 236886 }, + { url = "https://files.pythonhosted.org/packages/43/23/c79e497bf4d8fcacd316bebe1d559c765485b8ec23ac4e23025be6bfce09/coverage-7.6.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e6c85bbdc809383b509d732b06419fb4544dca29ebe18480379633623baafb", size = 238749 }, + { url = "https://files.pythonhosted.org/packages/b5/e5/791bae13be3c6451e32ef7af1192e711c6a319f3c597e9b218d148fd0633/coverage-7.6.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:768939f7c4353c0fac2f7c37897e10b1414b571fd85dd9fc49e6a87e37a2e0d8", size = 237679 }, + { url = "https://files.pythonhosted.org/packages/05/c6/bbfdfb03aada601fb8993ced17468c8c8e0b4aafb3097026e680fabb7ce1/coverage-7.6.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e44961e36cb13c495806d4cac67640ac2866cb99044e210895b506c26ee63d3a", size = 236317 }, + { url = "https://files.pythonhosted.org/packages/67/f9/f8e5a4b2ce96d1b0e83ae6246369eb8437001dc80ec03bb51c87ff557cd8/coverage-7.6.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ea8bb1ab9558374c0ab591783808511d135a833c3ca64a18ec927f20c4030f0", size = 237084 }, + { url = "https://files.pythonhosted.org/packages/f0/70/b05328901e4debe76e033717e1452d00246c458c44e9dbd893e7619c2967/coverage-7.6.8-cp311-cp311-win32.whl", hash = "sha256:629a1ba2115dce8bf75a5cce9f2486ae483cb89c0145795603d6554bdc83e801", size = 209638 }, + { url = "https://files.pythonhosted.org/packages/70/55/1efa24f960a2fa9fbc44a9523d3f3c50ceb94dd1e8cd732168ab2dc41b07/coverage-7.6.8-cp311-cp311-win_amd64.whl", hash = "sha256:fb9fc32399dca861584d96eccd6c980b69bbcd7c228d06fb74fe53e007aa8ef9", size = 210506 }, + { url = "https://files.pythonhosted.org/packages/76/ce/3edf581c8fe429ed8ced6e6d9ac693c25975ef9093413276dab6ed68a80a/coverage-7.6.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e683e6ecc587643f8cde8f5da6768e9d165cd31edf39ee90ed7034f9ca0eefee", size = 207285 }, + { url = "https://files.pythonhosted.org/packages/09/9c/cf102ab046c9cf8895c3f7aadcde6f489a4b2ec326757e8c6e6581829b5e/coverage-7.6.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1defe91d41ce1bd44b40fabf071e6a01a5aa14de4a31b986aa9dfd1b3e3e414a", size = 207522 }, + { url = "https://files.pythonhosted.org/packages/39/06/42aa6dd13dbfca72e1fd8ffccadbc921b6e75db34545ebab4d955d1e7ad3/coverage-7.6.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ad66e8e50225ebf4236368cc43c37f59d5e6728f15f6e258c8639fa0dd8e6d", size = 240543 }, + { url = "https://files.pythonhosted.org/packages/a0/20/2932971dc215adeca8eeff446266a7fef17a0c238e881ffedebe7bfa0669/coverage-7.6.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fe47da3e4fda5f1abb5709c156eca207eacf8007304ce3019eb001e7a7204cb", size = 237577 }, + { url = "https://files.pythonhosted.org/packages/ac/85/4323ece0cd5452c9522f4b6e5cc461e6c7149a4b1887c9e7a8b1f4e51146/coverage-7.6.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:202a2d645c5a46b84992f55b0a3affe4f0ba6b4c611abec32ee88358db4bb649", size = 239646 }, + { url = "https://files.pythonhosted.org/packages/77/52/b2537487d8f36241e518e84db6f79e26bc3343b14844366e35b090fae0d4/coverage-7.6.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4674f0daa1823c295845b6a740d98a840d7a1c11df00d1fd62614545c1583787", size = 239128 }, + { url = "https://files.pythonhosted.org/packages/7c/99/7f007762012186547d0ecc3d328da6b6f31a8c99f05dc1e13dcd929918cd/coverage-7.6.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:74610105ebd6f33d7c10f8907afed696e79c59e3043c5f20eaa3a46fddf33b4c", size = 237434 }, + { url = "https://files.pythonhosted.org/packages/97/53/e9b5cf0682a1cab9352adfac73caae0d77ae1d65abc88975d510f7816389/coverage-7.6.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37cda8712145917105e07aab96388ae76e787270ec04bcb9d5cc786d7cbb8443", size = 239095 }, + { url = "https://files.pythonhosted.org/packages/0c/50/054f0b464fbae0483217186478eefa2e7df3a79917ed7f1d430b6da2cf0d/coverage-7.6.8-cp312-cp312-win32.whl", hash = "sha256:9e89d5c8509fbd6c03d0dd1972925b22f50db0792ce06324ba069f10787429ad", size = 209895 }, + { url = "https://files.pythonhosted.org/packages/df/d0/09ba870360a27ecf09e177ca2ff59d4337fc7197b456f22ceff85cffcfa5/coverage-7.6.8-cp312-cp312-win_amd64.whl", hash = "sha256:379c111d3558272a2cae3d8e57e6b6e6f4fe652905692d54bad5ea0ca37c5ad4", size = 210684 }, + { url = "https://files.pythonhosted.org/packages/9a/84/6f0ccf94a098ac3d6d6f236bd3905eeac049a9e0efcd9a63d4feca37ac4b/coverage-7.6.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b0c69f4f724c64dfbfe79f5dfb503b42fe6127b8d479b2677f2b227478db2eb", size = 207313 }, + { url = "https://files.pythonhosted.org/packages/db/2b/e3b3a3a12ebec738c545897ac9f314620470fcbc368cdac88cf14974ba20/coverage-7.6.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c15b32a7aca8038ed7644f854bf17b663bc38e1671b5d6f43f9a2b2bd0c46f63", size = 207574 }, + { url = "https://files.pythonhosted.org/packages/db/c0/5bf95d42b6a8d21dfce5025ce187f15db57d6460a59b67a95fe8728162f1/coverage-7.6.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63068a11171e4276f6ece913bde059e77c713b48c3a848814a6537f35afb8365", size = 240090 }, + { url = "https://files.pythonhosted.org/packages/57/b8/d6fd17d1a8e2b0e1a4e8b9cb1f0f261afd422570735899759c0584236916/coverage-7.6.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f4548c5ead23ad13fb7a2c8ea541357474ec13c2b736feb02e19a3085fac002", size = 237237 }, + { url = "https://files.pythonhosted.org/packages/d4/e4/a91e9bb46809c8b63e68fc5db5c4d567d3423b6691d049a4f950e38fbe9d/coverage-7.6.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4b4299dd0d2c67caaaf286d58aef5e75b125b95615dda4542561a5a566a1e3", size = 239225 }, + { url = "https://files.pythonhosted.org/packages/31/9c/9b99b0591ec4555b7292d271e005f27b465388ce166056c435b288db6a69/coverage-7.6.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9ebfb2507751f7196995142f057d1324afdab56db1d9743aab7f50289abd022", size = 238888 }, + { url = "https://files.pythonhosted.org/packages/a6/85/285c2df9a04bc7c31f21fd9d4a24d19e040ec5e2ff06e572af1f6514c9e7/coverage-7.6.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c1b4474beee02ede1eef86c25ad4600a424fe36cff01a6103cb4533c6bf0169e", size = 236974 }, + { url = "https://files.pythonhosted.org/packages/cb/a1/95ec8522206f76cdca033bf8bb61fff56429fb414835fc4d34651dfd29fc/coverage-7.6.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9fd2547e6decdbf985d579cf3fc78e4c1d662b9b0ff7cc7862baaab71c9cc5b", size = 238815 }, + { url = "https://files.pythonhosted.org/packages/8d/ac/687e9ba5e6d0979e9dab5c02e01c4f24ac58260ef82d88d3b433b3f84f1e/coverage-7.6.8-cp313-cp313-win32.whl", hash = "sha256:8aae5aea53cbfe024919715eca696b1a3201886ce83790537d1c3668459c7146", size = 209957 }, + { url = "https://files.pythonhosted.org/packages/2f/a3/b61cc8e3fcf075293fb0f3dee405748453c5ba28ac02ceb4a87f52bdb105/coverage-7.6.8-cp313-cp313-win_amd64.whl", hash = "sha256:ae270e79f7e169ccfe23284ff5ea2d52a6f401dc01b337efb54b3783e2ce3f28", size = 210711 }, + { url = "https://files.pythonhosted.org/packages/ee/4b/891c8b9acf1b62c85e4a71dac142ab9284e8347409b7355de02e3f38306f/coverage-7.6.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:de38add67a0af869b0d79c525d3e4588ac1ffa92f39116dbe0ed9753f26eba7d", size = 208053 }, + { url = "https://files.pythonhosted.org/packages/18/a9/9e330409b291cc002723d339346452800e78df1ce50774ca439ade1d374f/coverage-7.6.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b07c25d52b1c16ce5de088046cd2432b30f9ad5e224ff17c8f496d9cb7d1d451", size = 208329 }, + { url = "https://files.pythonhosted.org/packages/9c/0d/33635fd429f6589c6e1cdfc7bf581aefe4c1792fbff06383f9d37f59db60/coverage-7.6.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a66ff235e4c2e37ed3b6104d8b478d767ff73838d1222132a7a026aa548764", size = 251052 }, + { url = "https://files.pythonhosted.org/packages/23/32/8a08da0e46f3830bbb9a5b40614241b2e700f27a9c2889f53122486443ed/coverage-7.6.8-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09b9f848b28081e7b975a3626e9081574a7b9196cde26604540582da60235fdf", size = 246765 }, + { url = "https://files.pythonhosted.org/packages/56/3f/3b86303d2c14350fdb1c6c4dbf9bc76000af2382f42ca1d4d99c6317666e/coverage-7.6.8-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:093896e530c38c8e9c996901858ac63f3d4171268db2c9c8b373a228f459bbc5", size = 249125 }, + { url = "https://files.pythonhosted.org/packages/36/cb/c4f081b9023f9fd8646dbc4ef77be0df090263e8f66f4ea47681e0dc2cff/coverage-7.6.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a7b8ac36fd688c8361cbc7bf1cb5866977ece6e0b17c34aa0df58bda4fa18a4", size = 248615 }, + { url = "https://files.pythonhosted.org/packages/32/ee/53bdbf67760928c44b57b2c28a8c0a4bf544f85a9ee129a63ba5c78fdee4/coverage-7.6.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:38c51297b35b3ed91670e1e4efb702b790002e3245a28c76e627478aa3c10d83", size = 246507 }, + { url = "https://files.pythonhosted.org/packages/57/49/5a57910bd0af6d8e802b4ca65292576d19b54b49f81577fd898505dee075/coverage-7.6.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2e4e0f60cb4bd7396108823548e82fdab72d4d8a65e58e2c19bbbc2f1e2bfa4b", size = 247785 }, + { url = "https://files.pythonhosted.org/packages/bd/37/e450c9f6b297c79bb9858407396ed3e084dcc22990dd110ab01d5ceb9770/coverage-7.6.8-cp313-cp313t-win32.whl", hash = "sha256:6535d996f6537ecb298b4e287a855f37deaf64ff007162ec0afb9ab8ba3b8b71", size = 210605 }, + { url = "https://files.pythonhosted.org/packages/44/79/7d0c7dd237c6905018e2936cd1055fe1d42e7eba2ebab3c00f4aad2a27d7/coverage-7.6.8-cp313-cp313t-win_amd64.whl", hash = "sha256:c79c0685f142ca53256722a384540832420dff4ab15fec1863d7e5bc8691bdcc", size = 211777 }, + { url = "https://files.pythonhosted.org/packages/32/df/0d2476121cd0bfb9ca2413efe02289c474b82c4b134863bef4b89ec7bcfa/coverage-7.6.8-pp39.pp310-none-any.whl", hash = "sha256:5c52a036535d12590c32c49209e79cabaad9f9ad8aa4cbd875b68c4d67a9cbce", size = 199230 }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "python_full_version <= '3.11'" }, +] + +[[package]] +name = "coverage-conditional-plugin" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/6e/82f411d325a38cc24289060ca5f80d990ee8d026f4de9782006acf061f9b/coverage_conditional_plugin-0.9.0.tar.gz", hash = "sha256:6893dab0542695dbd5ea714281dae0dfec8d0e36480ba32d839e9fa7344f8215", size = 10579 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/83/df10dd1911cb1695274da836e786ade7eaace9ed625b14056eb0bd6117d8/coverage_conditional_plugin-0.9.0-py3-none-any.whl", hash = "sha256:1b37bc469019d2ab5b01f5eee453abe1846b3431e64e209720c2a9ec4afb8130", size = 7317 }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, +] + +[[package]] +name = "docutils" +version = "0.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408 }, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453 }, +] + +[[package]] +name = "execnet" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612 }, +] + +[[package]] +name = "flexcache" +version = "0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/b0/8a21e330561c65653d010ef112bf38f60890051d244ede197ddaa08e50c1/flexcache-0.3.tar.gz", hash = "sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656", size = 15816 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/cd/c883e1a7c447479d6e13985565080e3fea88ab5a107c21684c813dba1875/flexcache-0.3-py3-none-any.whl", hash = "sha256:d43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32", size = 13263 }, +] + +[[package]] +name = "flexparser" +version = "0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/99/b4de7e39e8eaf8207ba1a8fa2241dd98b2ba72ae6e16960d8351736d8702/flexparser-0.4.tar.gz", hash = "sha256:266d98905595be2ccc5da964fe0a2c3526fbbffdc45b65b3146d75db992ef6b2", size = 31799 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/5e/3be305568fe5f34448807976dc82fc151d76c3e0e03958f34770286278c1/flexparser-0.4-py3-none-any.whl", hash = "sha256:3738b456192dcb3e15620f324c447721023c0293f6af9955b481e91d00179846", size = 27625 }, +] + +[[package]] +name = "fonttools" +version = "4.55.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/4e/053fe1b5c0ce346c0a9d0557492c654362bafb14f026eae0d3ee98009152/fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71", size = 3490431 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d8/8c/57600ebff0b2119b725bc11eeea32b17b0220f3fae71b5fff082a1891270/fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61", size = 2770301 }, + { url = "https://files.pythonhosted.org/packages/02/94/dff7e57a751918b133a303418202b4f43e3dc3c887e2a648089e0463b1a7/fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69", size = 2295806 }, + { url = "https://files.pythonhosted.org/packages/09/31/ff18d79d449510850fe4a96c0ba50ee6d0b9b815a6b5a2489d809e9a8db5/fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f", size = 4577709 }, + { url = "https://files.pythonhosted.org/packages/c4/03/8136887d1b0b7a9831c7e8e2598c0e5851e31cc2231295769350349a236b/fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60", size = 4633411 }, + { url = "https://files.pythonhosted.org/packages/a7/37/86ac06a7505e57de2daaf0a1cc885b7767c74d376ef2cf82933e8ef79399/fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6", size = 4572887 }, + { url = "https://files.pythonhosted.org/packages/0d/85/1e429359d1842a104b638433587ff62d9dc8339a8c467787087962502a53/fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81", size = 4745036 }, + { url = "https://files.pythonhosted.org/packages/81/65/763ac1fe2a3e52220f7a7fd2a5de0c784045e773aa9d299450019ac66f9e/fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880", size = 2170126 }, + { url = "https://files.pythonhosted.org/packages/3e/67/93939482715e629c4bd6fd1f3d154c1bf45b81ee383f50e44d31fa542f83/fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b", size = 2213882 }, + { url = "https://files.pythonhosted.org/packages/17/50/75461e050ded02b9eaa8097df52c2a8752cf4c24db8b44b150755b76c8f1/fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51", size = 2771444 }, + { url = "https://files.pythonhosted.org/packages/de/5e/98130db3770e8d12f70aa61f2555c32284d4e9c592862469d32b7ee48626/fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189", size = 2296439 }, + { url = "https://files.pythonhosted.org/packages/17/35/36fe271296fe7624811f5261a0662155e075b43b79ffacea85a03f36593d/fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967", size = 4883141 }, + { url = "https://files.pythonhosted.org/packages/47/2b/9bf7527260d265281dd812951aa22f3d1c331bcc91e86e7038dc6b9737cb/fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6", size = 4931050 }, + { url = "https://files.pythonhosted.org/packages/0b/7b/7324d3aa8424c71b63ba2e76eb4a46d6947e23065996e755c1682e666f42/fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3", size = 4894154 }, + { url = "https://files.pythonhosted.org/packages/2c/53/a54926be69e43d277877106a6cbfab467cb02f9c756258c7c9932e8eb382/fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c", size = 5064715 }, + { url = "https://files.pythonhosted.org/packages/0c/f7/9602868af9a2dfc4659637a752da8691655e81a2d6138231dcaa1efe8840/fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05", size = 2169536 }, + { url = "https://files.pythonhosted.org/packages/30/57/9e2ddd16ad84ab26616ae4346b3b15e9a50669ca1b442cbe760af073807c/fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6", size = 2215265 }, + { url = "https://files.pythonhosted.org/packages/ec/79/38209f8f6235021b6209147ec7b2f748afde65c59c6274ac96fef3912094/fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7", size = 2765205 }, + { url = "https://files.pythonhosted.org/packages/e3/07/434a21eab80524613c9753db2ff21d6bc3cf264412d8833a85022fd39088/fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246", size = 2293908 }, + { url = "https://files.pythonhosted.org/packages/c8/63/aa3274d9be36aaaef8c087e413cbc1dd682ff94776a82c111bad88482947/fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a", size = 4795901 }, + { url = "https://files.pythonhosted.org/packages/fc/0b/dbe13f2c8d745ffdf5c2bc25391263927d4ec2b927e44d5d5f70cd372873/fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40", size = 4879252 }, + { url = "https://files.pythonhosted.org/packages/46/85/eefb400ec66e9e7c159d13c72aba473d9c2a0c556d812b0916418aa9019e/fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d", size = 4773177 }, + { url = "https://files.pythonhosted.org/packages/93/75/f06d175df4d7dbad97061c8698210ce4231cce9aa56cc263f3b6b5340540/fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c", size = 5032809 }, + { url = "https://files.pythonhosted.org/packages/78/eb/f3520ba63b5e4a034f2bfd34d8ab32eb95a1bf37a1f792ea48461fba08f6/fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6", size = 2157762 }, + { url = "https://files.pythonhosted.org/packages/aa/d1/5f007861cab890f2a35a19a1d2a2815655ec10b0ea7fd881b1d3aaab0076/fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c", size = 2203746 }, + { url = "https://files.pythonhosted.org/packages/c3/87/a669ac26c6077e37ffb06abf29c5571789eefe518d06c52df392181ee694/fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9", size = 2752519 }, + { url = "https://files.pythonhosted.org/packages/0c/e9/4822ad238fe215133c7df20f1cdb1a58cfb634a31523e77ff0fb2033970a/fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c", size = 2286819 }, + { url = "https://files.pythonhosted.org/packages/3e/a4/d7941c3897129e60fe68d20e4819fda4d0c4858d77badae0e80ca6440b36/fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c", size = 4770382 }, + { url = "https://files.pythonhosted.org/packages/31/cf/c51ea1348f9fba9c627439afad9dee0090040809ab431f4422b5bfdda34c/fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd", size = 4858336 }, + { url = "https://files.pythonhosted.org/packages/73/be/36c1fe0e5c9a96b068ddd7e82001243bbe7fe12549c8d14e1bd025bf40c9/fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4", size = 4756072 }, + { url = "https://files.pythonhosted.org/packages/5c/18/6dd381c29f215a017f79aa9fea0722424a0046b47991c4390a78ff87ce0c/fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18", size = 5008668 }, + { url = "https://files.pythonhosted.org/packages/b8/95/316f20092b389b927dba1d1dccd3f541853f96e707e210f1b9f4e7bacdd5/fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b", size = 2155841 }, + { url = "https://files.pythonhosted.org/packages/35/ca/b4638aa3e446184892e2f9cc8ef44bb506f47fea04580df7fb84f5a4363d/fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998", size = 2200587 }, + { url = "https://files.pythonhosted.org/packages/b4/4a/786589606d4989cb34d8bc766cd687d955aaf3039c367fe7104bcf82dc98/fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f", size = 1100249 }, +] + +[[package]] +name = "furo" +version = "2024.8.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "pygments" }, + { name = "sphinx" }, + { name = "sphinx-basic-ng" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a0/e2/d351d69a9a9e4badb4a5be062c2d0e87bd9e6c23b5e57337fef14bef34c8/furo-2024.8.6.tar.gz", hash = "sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01", size = 1661506 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/48/e791a7ed487dbb9729ef32bb5d1af16693d8925f4366befef54119b2e576/furo-2024.8.6-py3-none-any.whl", hash = "sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c", size = 341333 }, +] + +[[package]] +name = "geopandas" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pyogrio" }, + { name = "pyproj" }, + { name = "shapely" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/08/2cf5d85356e45b10b8d066cf4c3ba1e9e3185423c48104eed87e8afd0455/geopandas-1.0.1.tar.gz", hash = "sha256:b8bf70a5534588205b7a56646e2082fb1de9a03599651b3d80c99ea4c2ca08ab", size = 317736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/64/7d344cfcef5efddf9cf32f59af7f855828e9d74b5f862eddf5bfd9f25323/geopandas-1.0.1-py3-none-any.whl", hash = "sha256:01e147d9420cc374d26f51fc23716ac307f32b49406e4bd8462c07e82ed1d3d6", size = 323587 }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769 }, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271 }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/4d/2255e1c76304cbd60b48cee302b66d1dde4468dc5b1160e4b7cb43778f2a/kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60", size = 97286 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/14/fc943dd65268a96347472b4fbe5dcc2f6f55034516f80576cd0dd3a8930f/kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6", size = 122440 }, + { url = "https://files.pythonhosted.org/packages/1e/46/e68fed66236b69dd02fcdb506218c05ac0e39745d696d22709498896875d/kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17", size = 65758 }, + { url = "https://files.pythonhosted.org/packages/ef/fa/65de49c85838681fc9cb05de2a68067a683717321e01ddafb5b8024286f0/kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9", size = 64311 }, + { url = "https://files.pythonhosted.org/packages/42/9c/cc8d90f6ef550f65443bad5872ffa68f3dee36de4974768628bea7c14979/kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9", size = 1637109 }, + { url = "https://files.pythonhosted.org/packages/55/91/0a57ce324caf2ff5403edab71c508dd8f648094b18cfbb4c8cc0fde4a6ac/kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c", size = 1617814 }, + { url = "https://files.pythonhosted.org/packages/12/5d/c36140313f2510e20207708adf36ae4919416d697ee0236b0ddfb6fd1050/kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599", size = 1400881 }, + { url = "https://files.pythonhosted.org/packages/56/d0/786e524f9ed648324a466ca8df86298780ef2b29c25313d9a4f16992d3cf/kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05", size = 1512972 }, + { url = "https://files.pythonhosted.org/packages/67/5a/77851f2f201e6141d63c10a0708e996a1363efaf9e1609ad0441b343763b/kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407", size = 1444787 }, + { url = "https://files.pythonhosted.org/packages/06/5f/1f5eaab84355885e224a6fc8d73089e8713dc7e91c121f00b9a1c58a2195/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278", size = 2199212 }, + { url = "https://files.pythonhosted.org/packages/b5/28/9152a3bfe976a0ae21d445415defc9d1cd8614b2910b7614b30b27a47270/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5", size = 2346399 }, + { url = "https://files.pythonhosted.org/packages/26/f6/453d1904c52ac3b400f4d5e240ac5fec25263716723e44be65f4d7149d13/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad", size = 2308688 }, + { url = "https://files.pythonhosted.org/packages/5a/9a/d4968499441b9ae187e81745e3277a8b4d7c60840a52dc9d535a7909fac3/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895", size = 2445493 }, + { url = "https://files.pythonhosted.org/packages/07/c9/032267192e7828520dacb64dfdb1d74f292765f179e467c1cba97687f17d/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3", size = 2262191 }, + { url = "https://files.pythonhosted.org/packages/6c/ad/db0aedb638a58b2951da46ddaeecf204be8b4f5454df020d850c7fa8dca8/kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc", size = 46644 }, + { url = "https://files.pythonhosted.org/packages/12/ca/d0f7b7ffbb0be1e7c2258b53554efec1fd652921f10d7d85045aff93ab61/kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c", size = 55877 }, + { url = "https://files.pythonhosted.org/packages/97/6c/cfcc128672f47a3e3c0d918ecb67830600078b025bfc32d858f2e2d5c6a4/kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a", size = 48347 }, + { url = "https://files.pythonhosted.org/packages/e9/44/77429fa0a58f941d6e1c58da9efe08597d2e86bf2b2cce6626834f49d07b/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54", size = 122442 }, + { url = "https://files.pythonhosted.org/packages/e5/20/8c75caed8f2462d63c7fd65e16c832b8f76cda331ac9e615e914ee80bac9/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95", size = 65762 }, + { url = "https://files.pythonhosted.org/packages/f4/98/fe010f15dc7230f45bc4cf367b012d651367fd203caaa992fd1f5963560e/kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935", size = 64319 }, + { url = "https://files.pythonhosted.org/packages/8b/1b/b5d618f4e58c0675654c1e5051bcf42c776703edb21c02b8c74135541f60/kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb", size = 1334260 }, + { url = "https://files.pythonhosted.org/packages/b8/01/946852b13057a162a8c32c4c8d2e9ed79f0bb5d86569a40c0b5fb103e373/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02", size = 1426589 }, + { url = "https://files.pythonhosted.org/packages/70/d1/c9f96df26b459e15cf8a965304e6e6f4eb291e0f7a9460b4ad97b047561e/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51", size = 1541080 }, + { url = "https://files.pythonhosted.org/packages/d3/73/2686990eb8b02d05f3de759d6a23a4ee7d491e659007dd4c075fede4b5d0/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052", size = 1470049 }, + { url = "https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18", size = 1426376 }, + { url = "https://files.pythonhosted.org/packages/05/83/2857317d04ea46dc5d115f0df7e676997bbd968ced8e2bd6f7f19cfc8d7f/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545", size = 2222231 }, + { url = "https://files.pythonhosted.org/packages/0d/b5/866f86f5897cd4ab6d25d22e403404766a123f138bd6a02ecb2cdde52c18/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b", size = 2368634 }, + { url = "https://files.pythonhosted.org/packages/c1/ee/73de8385403faba55f782a41260210528fe3273d0cddcf6d51648202d6d0/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36", size = 2329024 }, + { url = "https://files.pythonhosted.org/packages/a1/e7/cd101d8cd2cdfaa42dc06c433df17c8303d31129c9fdd16c0ea37672af91/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3", size = 2468484 }, + { url = "https://files.pythonhosted.org/packages/e1/72/84f09d45a10bc57a40bb58b81b99d8f22b58b2040c912b7eb97ebf625bf2/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523", size = 2284078 }, + { url = "https://files.pythonhosted.org/packages/d2/d4/71828f32b956612dc36efd7be1788980cb1e66bfb3706e6dec9acad9b4f9/kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d", size = 46645 }, + { url = "https://files.pythonhosted.org/packages/a1/65/d43e9a20aabcf2e798ad1aff6c143ae3a42cf506754bcb6a7ed8259c8425/kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b", size = 56022 }, + { url = "https://files.pythonhosted.org/packages/35/b3/9f75a2e06f1b4ca00b2b192bc2b739334127d27f1d0625627ff8479302ba/kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376", size = 48536 }, + { url = "https://files.pythonhosted.org/packages/97/9c/0a11c714cf8b6ef91001c8212c4ef207f772dd84540104952c45c1f0a249/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2", size = 121808 }, + { url = "https://files.pythonhosted.org/packages/f2/d8/0fe8c5f5d35878ddd135f44f2af0e4e1d379e1c7b0716f97cdcb88d4fd27/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a", size = 65531 }, + { url = "https://files.pythonhosted.org/packages/80/c5/57fa58276dfdfa612241d640a64ca2f76adc6ffcebdbd135b4ef60095098/kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee", size = 63894 }, + { url = "https://files.pythonhosted.org/packages/8b/e9/26d3edd4c4ad1c5b891d8747a4f81b1b0aba9fb9721de6600a4adc09773b/kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640", size = 1369296 }, + { url = "https://files.pythonhosted.org/packages/b6/67/3f4850b5e6cffb75ec40577ddf54f7b82b15269cc5097ff2e968ee32ea7d/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f", size = 1461450 }, + { url = "https://files.pythonhosted.org/packages/52/be/86cbb9c9a315e98a8dc6b1d23c43cffd91d97d49318854f9c37b0e41cd68/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483", size = 1579168 }, + { url = "https://files.pythonhosted.org/packages/0f/00/65061acf64bd5fd34c1f4ae53f20b43b0a017a541f242a60b135b9d1e301/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258", size = 1507308 }, + { url = "https://files.pythonhosted.org/packages/21/e4/c0b6746fd2eb62fe702118b3ca0cb384ce95e1261cfada58ff693aeec08a/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e", size = 1464186 }, + { url = "https://files.pythonhosted.org/packages/0a/0f/529d0a9fffb4d514f2782c829b0b4b371f7f441d61aa55f1de1c614c4ef3/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107", size = 2247877 }, + { url = "https://files.pythonhosted.org/packages/d1/e1/66603ad779258843036d45adcbe1af0d1a889a07af4635f8b4ec7dccda35/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948", size = 2404204 }, + { url = "https://files.pythonhosted.org/packages/8d/61/de5fb1ca7ad1f9ab7970e340a5b833d735df24689047de6ae71ab9d8d0e7/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038", size = 2352461 }, + { url = "https://files.pythonhosted.org/packages/ba/d2/0edc00a852e369827f7e05fd008275f550353f1f9bcd55db9363d779fc63/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383", size = 2501358 }, + { url = "https://files.pythonhosted.org/packages/84/15/adc15a483506aec6986c01fb7f237c3aec4d9ed4ac10b756e98a76835933/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520", size = 2314119 }, + { url = "https://files.pythonhosted.org/packages/36/08/3a5bb2c53c89660863a5aa1ee236912269f2af8762af04a2e11df851d7b2/kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b", size = 46367 }, + { url = "https://files.pythonhosted.org/packages/19/93/c05f0a6d825c643779fc3c70876bff1ac221f0e31e6f701f0e9578690d70/kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb", size = 55884 }, + { url = "https://files.pythonhosted.org/packages/d2/f9/3828d8f21b6de4279f0667fb50a9f5215e6fe57d5ec0d61905914f5b6099/kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a", size = 48528 }, + { url = "https://files.pythonhosted.org/packages/c4/06/7da99b04259b0f18b557a4effd1b9c901a747f7fdd84cf834ccf520cb0b2/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e", size = 121913 }, + { url = "https://files.pythonhosted.org/packages/97/f5/b8a370d1aa593c17882af0a6f6755aaecd643640c0ed72dcfd2eafc388b9/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6", size = 65627 }, + { url = "https://files.pythonhosted.org/packages/2a/fc/6c0374f7503522539e2d4d1b497f5ebad3f8ed07ab51aed2af988dd0fb65/kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750", size = 63888 }, + { url = "https://files.pythonhosted.org/packages/bf/3e/0b7172793d0f41cae5c923492da89a2ffcd1adf764c16159ca047463ebd3/kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d", size = 1369145 }, + { url = "https://files.pythonhosted.org/packages/77/92/47d050d6f6aced2d634258123f2688fbfef8ded3c5baf2c79d94d91f1f58/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379", size = 1461448 }, + { url = "https://files.pythonhosted.org/packages/9c/1b/8f80b18e20b3b294546a1adb41701e79ae21915f4175f311a90d042301cf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c", size = 1578750 }, + { url = "https://files.pythonhosted.org/packages/a4/fe/fe8e72f3be0a844f257cadd72689c0848c6d5c51bc1d60429e2d14ad776e/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34", size = 1507175 }, + { url = "https://files.pythonhosted.org/packages/39/fa/cdc0b6105d90eadc3bee525fecc9179e2b41e1ce0293caaf49cb631a6aaf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1", size = 1463963 }, + { url = "https://files.pythonhosted.org/packages/6e/5c/0c03c4e542720c6177d4f408e56d1c8315899db72d46261a4e15b8b33a41/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f", size = 2248220 }, + { url = "https://files.pythonhosted.org/packages/3d/ee/55ef86d5a574f4e767df7da3a3a7ff4954c996e12d4fbe9c408170cd7dcc/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b", size = 2404463 }, + { url = "https://files.pythonhosted.org/packages/0f/6d/73ad36170b4bff4825dc588acf4f3e6319cb97cd1fb3eb04d9faa6b6f212/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27", size = 2352842 }, + { url = "https://files.pythonhosted.org/packages/0b/16/fa531ff9199d3b6473bb4d0f47416cdb08d556c03b8bc1cccf04e756b56d/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a", size = 2501635 }, + { url = "https://files.pythonhosted.org/packages/78/7e/aa9422e78419db0cbe75fb86d8e72b433818f2e62e2e394992d23d23a583/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee", size = 2314556 }, + { url = "https://files.pythonhosted.org/packages/a8/b2/15f7f556df0a6e5b3772a1e076a9d9f6c538ce5f05bd590eca8106508e06/kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07", size = 46364 }, + { url = "https://files.pythonhosted.org/packages/0b/db/32e897e43a330eee8e4770bfd2737a9584b23e33587a0812b8e20aac38f7/kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76", size = 55887 }, + { url = "https://files.pythonhosted.org/packages/c8/a4/df2bdca5270ca85fd25253049eb6708d4127be2ed0e5c2650217450b59e9/kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650", size = 48530 }, + { url = "https://files.pythonhosted.org/packages/ac/59/741b79775d67ab67ced9bb38552da688c0305c16e7ee24bba7a2be253fb7/kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643", size = 59491 }, + { url = "https://files.pythonhosted.org/packages/58/cc/fb239294c29a5656e99e3527f7369b174dd9cc7c3ef2dea7cb3c54a8737b/kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706", size = 57648 }, + { url = "https://files.pythonhosted.org/packages/3b/ef/2f009ac1f7aab9f81efb2d837301d255279d618d27b6015780115ac64bdd/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6", size = 84257 }, + { url = "https://files.pythonhosted.org/packages/81/e1/c64f50987f85b68b1c52b464bb5bf73e71570c0f7782d626d1eb283ad620/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2", size = 80906 }, + { url = "https://files.pythonhosted.org/packages/fd/71/1687c5c0a0be2cee39a5c9c389e546f9c6e215e46b691d00d9f646892083/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4", size = 79951 }, + { url = "https://files.pythonhosted.org/packages/ea/8b/d7497df4a1cae9367adf21665dd1f896c2a7aeb8769ad77b662c5e2bcce7/kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a", size = 55715 }, +] + +[[package]] +name = "latexcodec" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/e7/ed339caf3662976949e4fdbfdf4a6db818b8d2aa1cf2b5f73af89e936bba/latexcodec-3.0.0.tar.gz", hash = "sha256:917dc5fe242762cc19d963e6548b42d63a118028cdd3361d62397e3b638b6bc5", size = 31023 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/bf/ea8887e9f31a8f93ca306699d11909c6140151393a4216f0d9f85a004077/latexcodec-3.0.0-py3-none-any.whl", hash = "sha256:6f3477ad5e61a0a99bd31a6a370c34e88733a6bad9c921a3ffcfacada12f41a7", size = 18150 }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/90/d08277ce111dd22f77149fd1a5d4653eeb3b3eaacbdfcbae5afb2600eebd/MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", size = 14357 }, + { url = "https://files.pythonhosted.org/packages/04/e1/6e2194baeae0bca1fae6629dc0cbbb968d4d941469cbab11a3872edff374/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", size = 12393 }, + { url = "https://files.pythonhosted.org/packages/1d/69/35fa85a8ece0a437493dc61ce0bb6d459dcba482c34197e3efc829aa357f/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", size = 21732 }, + { url = "https://files.pythonhosted.org/packages/22/35/137da042dfb4720b638d2937c38a9c2df83fe32d20e8c8f3185dbfef05f7/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", size = 20866 }, + { url = "https://files.pythonhosted.org/packages/29/28/6d029a903727a1b62edb51863232152fd335d602def598dade38996887f0/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", size = 20964 }, + { url = "https://files.pythonhosted.org/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", size = 21977 }, + { url = "https://files.pythonhosted.org/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", size = 21366 }, + { url = "https://files.pythonhosted.org/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", size = 21091 }, + { url = "https://files.pythonhosted.org/packages/11/23/ffbf53694e8c94ebd1e7e491de185124277964344733c45481f32ede2499/MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50", size = 15065 }, + { url = "https://files.pythonhosted.org/packages/44/06/e7175d06dd6e9172d4a69a72592cb3f7a996a9c396eee29082826449bbc3/MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", size = 15514 }, + { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 }, + { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 }, + { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 }, + { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120 }, + { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032 }, + { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 }, + { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 }, + { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 }, + { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094 }, + { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521 }, + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, +] + +[[package]] +name = "matplotlib" +version = "3.9.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/9f/562ed484b11ac9f4bb4f9d2d7546954ec106a8c0f06cc755d6f63e519274/matplotlib-3.9.3.tar.gz", hash = "sha256:cd5dbbc8e25cad5f706845c4d100e2c8b34691b412b93717ce38d8ae803bcfa5", size = 36113438 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/09/c993dc1b2311228ddaaf3f963c57fed6f3e39957823fa269532896566dd7/matplotlib-3.9.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:41b016e3be4e740b66c79a031a0a6e145728dbc248142e751e8dab4f3188ca1d", size = 7877008 }, + { url = "https://files.pythonhosted.org/packages/18/a7/c1aa0bb4c9391d854e0abf55f75e1c46acb4f1b0fbc2692ad7f75ac44030/matplotlib-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e0143975fc2a6d7136c97e19c637321288371e8f09cff2564ecd73e865ea0b9", size = 7762521 }, + { url = "https://files.pythonhosted.org/packages/da/84/427a8ef8f3a00bc6f49edc82142c79f8fa0a1b2421dcfacede76b227cb64/matplotlib-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f459c8ee2c086455744723628264e43c884be0c7d7b45d84b8cd981310b4815", size = 8192058 }, + { url = "https://files.pythonhosted.org/packages/4a/86/bb508f20bdda70b5e7afdc15065ea8a4a5ce12d5f5822fa58cf3bc31e8fc/matplotlib-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:687df7ceff57b8f070d02b4db66f75566370e7ae182a0782b6d3d21b0d6917dc", size = 8304632 }, + { url = "https://files.pythonhosted.org/packages/25/45/7a8bfa0e7365d1b9a767b1f0611c5c94e783bfdbc8fb0a7e9a4436fc790e/matplotlib-3.9.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:edd14cf733fdc4f6e6fe3f705af97676a7e52859bf0044aa2c84e55be739241c", size = 9082543 }, + { url = "https://files.pythonhosted.org/packages/3c/cc/5dad07bf804a6e0250301c95d36d4c972689fd72757b438c0fd319ea789e/matplotlib-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c40c244221a1adbb1256692b1133c6fb89418df27bf759a31a333e7912a4010", size = 7820157 }, + { url = "https://files.pythonhosted.org/packages/12/ac/66ac58c42aad9ac0ed665746a8a36ecbd16a6c908527c305f9504c04fc2c/matplotlib-3.9.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:cf2a60daf6cecff6828bc608df00dbc794380e7234d2411c0ec612811f01969d", size = 7886350 }, + { url = "https://files.pythonhosted.org/packages/db/43/1274be2b1922858c7a43f0d6e00571fe24696788c7b5a8c980127af24a96/matplotlib-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:213d6dc25ce686516208d8a3e91120c6a4fdae4a3e06b8505ced5b716b50cc04", size = 7771966 }, + { url = "https://files.pythonhosted.org/packages/5f/89/f1bcc6b62707df427a5e6a34be59191da81d96e63d3f92cb61e948bcbca7/matplotlib-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c52f48eb75fcc119a4fdb68ba83eb5f71656999420375df7c94cc68e0e14686e", size = 8201827 }, + { url = "https://files.pythonhosted.org/packages/13/53/b178d51478109f7a700edc94757dd07112e9a0c7a158653b99434b74f9fb/matplotlib-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c93796b44fa111049b88a24105e947f03c01966b5c0cc782e2ee3887b790a3", size = 8314794 }, + { url = "https://files.pythonhosted.org/packages/d6/57/d0ef6cef13ed0f55e37472cc458f2f1f8c4fe9aac69f794be7ccd0702d03/matplotlib-3.9.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cd1077b9a09b16d8c3c7075a8add5ffbfe6a69156a57e290c800ed4d435bef1d", size = 9091489 }, + { url = "https://files.pythonhosted.org/packages/33/97/40a1bed11f7817ba553afd2e7662e7364e3bac7ce4040835391eb558c86e/matplotlib-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:c96eeeb8c68b662c7747f91a385688d4b449687d29b691eff7068a4602fe6dc4", size = 7829997 }, + { url = "https://files.pythonhosted.org/packages/74/d5/eb2338d21b2d36511f9417230413fa0c30fc82283b33dc0e3643969f3b50/matplotlib-3.9.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a361bd5583bf0bcc08841df3c10269617ee2a36b99ac39d455a767da908bbbc", size = 7883049 }, + { url = "https://files.pythonhosted.org/packages/e5/52/3910833a073e7182ab3ae03810ed418f71c7fdcd65e2862cda1c6a14ffc1/matplotlib-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e14485bb1b83eeb3d55b6878f9560240981e7bbc7a8d4e1e8c38b9bd6ec8d2de", size = 7768285 }, + { url = "https://files.pythonhosted.org/packages/92/67/69df4b6636e40e964788b003535561ea3e98e33e46df4d96fa8c34ef99e6/matplotlib-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a8d279f78844aad213c4935c18f8292a9432d51af2d88bca99072c903948045", size = 8192626 }, + { url = "https://files.pythonhosted.org/packages/40/d6/70a196b0cf62e0a5bc64ccab07816ab4f6c98db0414a55280331a481a5bf/matplotlib-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6c12514329ac0d03128cf1dcceb335f4fbf7c11da98bca68dca8dcb983153a9", size = 8305687 }, + { url = "https://files.pythonhosted.org/packages/c3/43/ef6ab78dd2d8eb362c1e5a31f9cec5ece5761e6143a519153d716d85e590/matplotlib-3.9.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6e9de2b390d253a508dd497e9b5579f3a851f208763ed67fdca5dc0c3ea6849c", size = 9087208 }, + { url = "https://files.pythonhosted.org/packages/30/cb/36844affc69490652b5a99296b9fcee530b96621e23d3143a4839f30fb22/matplotlib-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d796272408f8567ff7eaa00eb2856b3a00524490e47ad505b0b4ca6bb8a7411f", size = 7833105 }, + { url = "https://files.pythonhosted.org/packages/60/04/949640040982822416c471d9ebe4e9e6c69ca9f9bb6ba82ed30808863c02/matplotlib-3.9.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:203d18df84f5288973b2d56de63d4678cc748250026ca9e1ad8f8a0fd8a75d83", size = 7883417 }, + { url = "https://files.pythonhosted.org/packages/9f/90/ebd37143cd3150b6c650ee1580024df3dd649d176e68d346f826b8d24e37/matplotlib-3.9.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b651b0d3642991259109dc0351fc33ad44c624801367bb8307be9bfc35e427ad", size = 7768720 }, + { url = "https://files.pythonhosted.org/packages/dc/84/6591e6b55d755d16dacdc113205067031867c1f5e3c08b32c01aad831420/matplotlib-3.9.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66d7b171fecf96940ce069923a08ba3df33ef542de82c2ff4fe8caa8346fa95a", size = 8192723 }, + { url = "https://files.pythonhosted.org/packages/29/09/146a17d37e32313507f11ac984e65311f2d5805d731eb981d4f70eb928dc/matplotlib-3.9.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be0ba61f6ff2e6b68e4270fb63b6813c9e7dec3d15fc3a93f47480444fd72f0", size = 8305801 }, + { url = "https://files.pythonhosted.org/packages/85/cb/d2690572c08f19ca7c0f44b1fb4d11c121d63467a57b508cc3656ff80b43/matplotlib-3.9.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d6b2e8856dec3a6db1ae51aec85c82223e834b228c1d3228aede87eee2b34f9", size = 9086564 }, + { url = "https://files.pythonhosted.org/packages/28/dd/0a5176027c1cb94fe75f69f76cb274180c8abf740df6fc0e6a1e4cbaec3f/matplotlib-3.9.3-cp313-cp313-win_amd64.whl", hash = "sha256:90a85a004fefed9e583597478420bf904bb1a065b0b0ee5b9d8d31b04b0f3f70", size = 7833257 }, + { url = "https://files.pythonhosted.org/packages/42/d4/e477d50a8e4b437c2afbb5c665cb8e5d79b06abe6fe3c6915d6f7f0c2ef2/matplotlib-3.9.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3119b2f16de7f7b9212ba76d8fe6a0e9f90b27a1e04683cd89833a991682f639", size = 7911906 }, + { url = "https://files.pythonhosted.org/packages/ae/a1/ba5ab89666c42ace8e31b4ff5a2c76a17e4d6f91aefce476b064c56ff61d/matplotlib-3.9.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:87ad73763d93add1b6c1f9fcd33af662fd62ed70e620c52fcb79f3ac427cf3a6", size = 7801336 }, + { url = "https://files.pythonhosted.org/packages/77/59/4dcdb3a6695af6c698a95aec13016a550ef2f85144d22f61f81d1e064148/matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:026bdf3137ab6022c866efa4813b6bbeddc2ed4c9e7e02f0e323a7bca380dfa0", size = 8218178 }, + { url = "https://files.pythonhosted.org/packages/4f/27/7c72db0d0ee35d9237572565ffa3c0eb25fc46a3f47e0f16412a587bc9d8/matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760a5e89ebbb172989e8273024a1024b0f084510b9105261b3b00c15e9c9f006", size = 8327768 }, + { url = "https://files.pythonhosted.org/packages/de/ad/213eee624feadba7b77e881c9d2c04c1e036efe69d19031e3fa927fdb5dc/matplotlib-3.9.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a42b9dc42de2cfe357efa27d9c50c7833fc5ab9b2eb7252ccd5d5f836a84e1e4", size = 9094075 }, + { url = "https://files.pythonhosted.org/packages/19/1b/cb8e99a5fe2e2b14e3b8234cb1649a675be63f74a5224a648ae4ab61f60c/matplotlib-3.9.3-cp313-cp313t-win_amd64.whl", hash = "sha256:e0fcb7da73fbf67b5f4bdaa57d85bb585a4e913d4a10f3e15b32baea56a67f0a", size = 7888937 }, +] + +[[package]] +name = "mdit-py-plugins" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/03/a2ecab526543b152300717cf232bb4bb8605b6edb946c845016fa9c9c9fd/mdit_py_plugins-0.4.2.tar.gz", hash = "sha256:5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5", size = 43542 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/f7/7782a043553ee469c1ff49cfa1cdace2d6bf99a1f333cf38676b3ddf30da/mdit_py_plugins-0.4.2-py3-none-any.whl", hash = "sha256:0c673c3f889399a33b95e88d2f0d111b4447bdfea7f237dab2d488f459835636", size = 55316 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "myst-parser" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "jinja2" }, + { name = "markdown-it-py" }, + { name = "mdit-py-plugins" }, + { name = "pyyaml" }, + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/85/55/6d1741a1780e5e65038b74bce6689da15f620261c490c3511eb4c12bac4b/myst_parser-4.0.0.tar.gz", hash = "sha256:851c9dfb44e36e56d15d05e72f02b80da21a9e0d07cba96baf5e2d476bb91531", size = 93858 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/b4/b036f8fdb667587bb37df29dc6644681dd78b7a2a6321a34684b79412b28/myst_parser-4.0.0-py3-none-any.whl", hash = "sha256:b9317997552424448c6096c2558872fdb6f81d3ecb3a40ce84a7518798f3f28d", size = 84563 }, +] + +[[package]] +name = "networkx" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 }, +] + +[[package]] +name = "numpy" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/25/ca/1166b75c21abd1da445b97bf1fa2f14f423c6cfb4fc7c4ef31dccf9f6a94/numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761", size = 20166090 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/80/d572a4737626372915bca41c3afbfec9d173561a39a0a61bacbbfd1dafd4/numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff", size = 21152472 }, + { url = "https://files.pythonhosted.org/packages/6f/bb/7bfba10c791ae3bb6716da77ad85a82d5fac07fc96fb0023ef0571df9d20/numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5", size = 13747967 }, + { url = "https://files.pythonhosted.org/packages/da/d6/2df7bde35f0478455f0be5934877b3e5a505f587b00230f54a519a6b55a5/numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1", size = 5354921 }, + { url = "https://files.pythonhosted.org/packages/d1/bb/75b945874f931494891eac6ca06a1764d0e8208791f3addadb2963b83527/numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd", size = 6888603 }, + { url = "https://files.pythonhosted.org/packages/68/a7/fde73636f6498dbfa6d82fc336164635fe592f1ad0d13285fcb6267fdc1c/numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3", size = 13889862 }, + { url = "https://files.pythonhosted.org/packages/05/db/5d9c91b2e1e2e72be1369278f696356d44975befcae830daf2e667dcb54f/numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098", size = 16328151 }, + { url = "https://files.pythonhosted.org/packages/3e/6a/7eb732109b53ae64a29e25d7e68eb9d6611037f6354875497008a49e74d3/numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c", size = 16704107 }, + { url = "https://files.pythonhosted.org/packages/88/cc/278113b66a1141053cbda6f80e4200c6da06b3079c2d27bda1fde41f2c1f/numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4", size = 14385789 }, + { url = "https://files.pythonhosted.org/packages/f5/69/eb20f5e1bfa07449bc67574d2f0f7c1e6b335fb41672e43861a7727d85f2/numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23", size = 6536706 }, + { url = "https://files.pythonhosted.org/packages/8e/8b/1c131ab5a94c1086c289c6e1da1d843de9dbd95fe5f5ee6e61904c9518e2/numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0", size = 12864165 }, + { url = "https://files.pythonhosted.org/packages/ad/81/c8167192eba5247593cd9d305ac236847c2912ff39e11402e72ae28a4985/numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d", size = 21156252 }, + { url = "https://files.pythonhosted.org/packages/da/74/5a60003fc3d8a718d830b08b654d0eea2d2db0806bab8f3c2aca7e18e010/numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41", size = 13784119 }, + { url = "https://files.pythonhosted.org/packages/47/7c/864cb966b96fce5e63fcf25e1e4d957fe5725a635e5f11fe03f39dd9d6b5/numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9", size = 5352978 }, + { url = "https://files.pythonhosted.org/packages/09/ac/61d07930a4993dd9691a6432de16d93bbe6aa4b1c12a5e573d468eefc1ca/numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09", size = 6892570 }, + { url = "https://files.pythonhosted.org/packages/27/2f/21b94664f23af2bb52030653697c685022119e0dc93d6097c3cb45bce5f9/numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a", size = 13896715 }, + { url = "https://files.pythonhosted.org/packages/7a/f0/80811e836484262b236c684a75dfc4ba0424bc670e765afaa911468d9f39/numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b", size = 16339644 }, + { url = "https://files.pythonhosted.org/packages/fa/81/ce213159a1ed8eb7d88a2a6ef4fbdb9e4ffd0c76b866c350eb4e3c37e640/numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee", size = 16712217 }, + { url = "https://files.pythonhosted.org/packages/7d/84/4de0b87d5a72f45556b2a8ee9fc8801e8518ec867fc68260c1f5dcb3903f/numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0", size = 14399053 }, + { url = "https://files.pythonhosted.org/packages/7e/1c/e5fabb9ad849f9d798b44458fd12a318d27592d4bc1448e269dec070ff04/numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9", size = 6534741 }, + { url = "https://files.pythonhosted.org/packages/1e/48/a9a4b538e28f854bfb62e1dea3c8fea12e90216a276c7777ae5345ff29a7/numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2", size = 12869487 }, + { url = "https://files.pythonhosted.org/packages/8a/f0/385eb9970309643cbca4fc6eebc8bb16e560de129c91258dfaa18498da8b/numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e", size = 20849658 }, + { url = "https://files.pythonhosted.org/packages/54/4a/765b4607f0fecbb239638d610d04ec0a0ded9b4951c56dc68cef79026abf/numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958", size = 13492258 }, + { url = "https://files.pythonhosted.org/packages/bd/a7/2332679479c70b68dccbf4a8eb9c9b5ee383164b161bee9284ac141fbd33/numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8", size = 5090249 }, + { url = "https://files.pythonhosted.org/packages/c1/67/4aa00316b3b981a822c7a239d3a8135be2a6945d1fd11d0efb25d361711a/numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564", size = 6621704 }, + { url = "https://files.pythonhosted.org/packages/5e/da/1a429ae58b3b6c364eeec93bf044c532f2ff7b48a52e41050896cf15d5b1/numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512", size = 13606089 }, + { url = "https://files.pythonhosted.org/packages/9e/3e/3757f304c704f2f0294a6b8340fcf2be244038be07da4cccf390fa678a9f/numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b", size = 16043185 }, + { url = "https://files.pythonhosted.org/packages/43/97/75329c28fea3113d00c8d2daf9bc5828d58d78ed661d8e05e234f86f0f6d/numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc", size = 16410751 }, + { url = "https://files.pythonhosted.org/packages/ad/7a/442965e98b34e0ae9da319f075b387bcb9a1e0658276cc63adb8c9686f7b/numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0", size = 14082705 }, + { url = "https://files.pythonhosted.org/packages/ac/b6/26108cf2cfa5c7e03fb969b595c93131eab4a399762b51ce9ebec2332e80/numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9", size = 6239077 }, + { url = "https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a", size = 12566858 }, + { url = "https://files.pythonhosted.org/packages/4d/0b/620591441457e25f3404c8057eb924d04f161244cb8a3680d529419aa86e/numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f", size = 20836263 }, + { url = "https://files.pythonhosted.org/packages/45/e1/210b2d8b31ce9119145433e6ea78046e30771de3fe353f313b2778142f34/numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598", size = 13507771 }, + { url = "https://files.pythonhosted.org/packages/55/44/aa9ee3caee02fa5a45f2c3b95cafe59c44e4b278fbbf895a93e88b308555/numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57", size = 5075805 }, + { url = "https://files.pythonhosted.org/packages/78/d6/61de6e7e31915ba4d87bbe1ae859e83e6582ea14c6add07c8f7eefd8488f/numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe", size = 6608380 }, + { url = "https://files.pythonhosted.org/packages/3e/46/48bdf9b7241e317e6cf94276fe11ba673c06d1fdf115d8b4ebf616affd1a/numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43", size = 13602451 }, + { url = "https://files.pythonhosted.org/packages/70/50/73f9a5aa0810cdccda9c1d20be3cbe4a4d6ea6bfd6931464a44c95eef731/numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56", size = 16039822 }, + { url = "https://files.pythonhosted.org/packages/ad/cd/098bc1d5a5bc5307cfc65ee9369d0ca658ed88fbd7307b0d49fab6ca5fa5/numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a", size = 16411822 }, + { url = "https://files.pythonhosted.org/packages/83/a2/7d4467a2a6d984549053b37945620209e702cf96a8bc658bc04bba13c9e2/numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef", size = 14079598 }, + { url = "https://files.pythonhosted.org/packages/e9/6a/d64514dcecb2ee70bfdfad10c42b76cab657e7ee31944ff7a600f141d9e9/numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f", size = 6236021 }, + { url = "https://files.pythonhosted.org/packages/bb/f9/12297ed8d8301a401e7d8eb6b418d32547f1d700ed3c038d325a605421a4/numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed", size = 12560405 }, + { url = "https://files.pythonhosted.org/packages/a7/45/7f9244cd792e163b334e3a7f02dff1239d2890b6f37ebf9e82cbe17debc0/numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f", size = 20859062 }, + { url = "https://files.pythonhosted.org/packages/b1/b4/a084218e7e92b506d634105b13e27a3a6645312b93e1c699cc9025adb0e1/numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4", size = 13515839 }, + { url = "https://files.pythonhosted.org/packages/27/45/58ed3f88028dcf80e6ea580311dc3edefdd94248f5770deb980500ef85dd/numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e", size = 5116031 }, + { url = "https://files.pythonhosted.org/packages/37/a8/eb689432eb977d83229094b58b0f53249d2209742f7de529c49d61a124a0/numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0", size = 6629977 }, + { url = "https://files.pythonhosted.org/packages/42/a3/5355ad51ac73c23334c7caaed01adadfda49544f646fcbfbb4331deb267b/numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408", size = 13575951 }, + { url = "https://files.pythonhosted.org/packages/c4/70/ea9646d203104e647988cb7d7279f135257a6b7e3354ea6c56f8bafdb095/numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6", size = 16022655 }, + { url = "https://files.pythonhosted.org/packages/14/ce/7fc0612903e91ff9d0b3f2eda4e18ef9904814afcae5b0f08edb7f637883/numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f", size = 16399902 }, + { url = "https://files.pythonhosted.org/packages/ef/62/1d3204313357591c913c32132a28f09a26357e33ea3c4e2fe81269e0dca1/numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17", size = 14067180 }, + { url = "https://files.pythonhosted.org/packages/24/d7/78a40ed1d80e23a774cb8a34ae8a9493ba1b4271dde96e56ccdbab1620ef/numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48", size = 6291907 }, + { url = "https://files.pythonhosted.org/packages/86/09/a5ab407bd7f5f5599e6a9261f964ace03a73e7c6928de906981c31c38082/numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", size = 12644098 }, + { url = "https://files.pythonhosted.org/packages/00/e7/8d8bb791b62586cc432ecbb70632b4f23b7b7c88df41878de7528264f6d7/numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f", size = 20983893 }, + { url = "https://files.pythonhosted.org/packages/5e/f3/cb8118a044b5007586245a650360c9f5915b2f4232dd7658bb7a63dd1d02/numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4", size = 6752501 }, + { url = "https://files.pythonhosted.org/packages/53/f5/365b46439b518d2ec6ebb880cc0edf90f225145dfd4db7958334f7164530/numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d", size = 16142601 }, + { url = "https://files.pythonhosted.org/packages/03/c2/d1fee6ba999aa7cd41ca6856937f2baaf604c3eec1565eae63451ec31e5e/numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb", size = 12771397 }, +] + +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + +[[package]] +name = "pandas" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/70/c853aec59839bceed032d52010ff5f1b8d87dc3114b762e4ba2727661a3b/pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5", size = 12580827 }, + { url = "https://files.pythonhosted.org/packages/99/f2/c4527768739ffa4469b2b4fff05aa3768a478aed89a2f271a79a40eee984/pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348", size = 11303897 }, + { url = "https://files.pythonhosted.org/packages/ed/12/86c1747ea27989d7a4064f806ce2bae2c6d575b950be087837bdfcabacc9/pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed", size = 66480908 }, + { url = "https://files.pythonhosted.org/packages/44/50/7db2cd5e6373ae796f0ddad3675268c8d59fb6076e66f0c339d61cea886b/pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57", size = 13064210 }, + { url = "https://files.pythonhosted.org/packages/61/61/a89015a6d5536cb0d6c3ba02cebed51a95538cf83472975275e28ebf7d0c/pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42", size = 16754292 }, + { url = "https://files.pythonhosted.org/packages/ce/0d/4cc7b69ce37fac07645a94e1d4b0880b15999494372c1523508511b09e40/pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f", size = 14416379 }, + { url = "https://files.pythonhosted.org/packages/31/9e/6ebb433de864a6cd45716af52a4d7a8c3c9aaf3a98368e61db9e69e69a9c/pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645", size = 11598471 }, + { url = "https://files.pythonhosted.org/packages/a8/44/d9502bf0ed197ba9bf1103c9867d5904ddcaf869e52329787fc54ed70cc8/pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039", size = 12602222 }, + { url = "https://files.pythonhosted.org/packages/52/11/9eac327a38834f162b8250aab32a6781339c69afe7574368fffe46387edf/pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd", size = 11321274 }, + { url = "https://files.pythonhosted.org/packages/45/fb/c4beeb084718598ba19aa9f5abbc8aed8b42f90930da861fcb1acdb54c3a/pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698", size = 15579836 }, + { url = "https://files.pythonhosted.org/packages/cd/5f/4dba1d39bb9c38d574a9a22548c540177f78ea47b32f99c0ff2ec499fac5/pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc", size = 13058505 }, + { url = "https://files.pythonhosted.org/packages/b9/57/708135b90391995361636634df1f1130d03ba456e95bcf576fada459115a/pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3", size = 16744420 }, + { url = "https://files.pythonhosted.org/packages/86/4a/03ed6b7ee323cf30404265c284cee9c65c56a212e0a08d9ee06984ba2240/pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32", size = 14440457 }, + { url = "https://files.pythonhosted.org/packages/ed/8c/87ddf1fcb55d11f9f847e3c69bb1c6f8e46e2f40ab1a2d2abadb2401b007/pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5", size = 11617166 }, + { url = "https://files.pythonhosted.org/packages/17/a3/fb2734118db0af37ea7433f57f722c0a56687e14b14690edff0cdb4b7e58/pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9", size = 12529893 }, + { url = "https://files.pythonhosted.org/packages/e1/0c/ad295fd74bfac85358fd579e271cded3ac969de81f62dd0142c426b9da91/pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4", size = 11363475 }, + { url = "https://files.pythonhosted.org/packages/c6/2a/4bba3f03f7d07207481fed47f5b35f556c7441acddc368ec43d6643c5777/pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3", size = 15188645 }, + { url = "https://files.pythonhosted.org/packages/38/f8/d8fddee9ed0d0c0f4a2132c1dfcf0e3e53265055da8df952a53e7eaf178c/pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319", size = 12739445 }, + { url = "https://files.pythonhosted.org/packages/20/e8/45a05d9c39d2cea61ab175dbe6a2de1d05b679e8de2011da4ee190d7e748/pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8", size = 16359235 }, + { url = "https://files.pythonhosted.org/packages/1d/99/617d07a6a5e429ff90c90da64d428516605a1ec7d7bea494235e1c3882de/pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a", size = 14056756 }, + { url = "https://files.pythonhosted.org/packages/29/d4/1244ab8edf173a10fd601f7e13b9566c1b525c4f365d6bee918e68381889/pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", size = 11504248 }, + { url = "https://files.pythonhosted.org/packages/64/22/3b8f4e0ed70644e85cfdcd57454686b9057c6c38d2f74fe4b8bc2527214a/pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", size = 12477643 }, + { url = "https://files.pythonhosted.org/packages/e4/93/b3f5d1838500e22c8d793625da672f3eec046b1a99257666c94446969282/pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", size = 11281573 }, + { url = "https://files.pythonhosted.org/packages/f5/94/6c79b07f0e5aab1dcfa35a75f4817f5c4f677931d4234afcd75f0e6a66ca/pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", size = 15196085 }, + { url = "https://files.pythonhosted.org/packages/e8/31/aa8da88ca0eadbabd0a639788a6da13bb2ff6edbbb9f29aa786450a30a91/pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", size = 12711809 }, + { url = "https://files.pythonhosted.org/packages/ee/7c/c6dbdb0cb2a4344cacfb8de1c5808ca885b2e4dcfde8008266608f9372af/pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", size = 16356316 }, + { url = "https://files.pythonhosted.org/packages/57/b7/8b757e7d92023b832869fa8881a992696a0bfe2e26f72c9ae9f255988d42/pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", size = 14022055 }, + { url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 }, + { url = "https://files.pythonhosted.org/packages/76/a3/a5d88146815e972d40d19247b2c162e88213ef51c7c25993942c39dbf41d/pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", size = 12615650 }, + { url = "https://files.pythonhosted.org/packages/9c/8c/f0fd18f6140ddafc0c24122c8a964e48294acc579d47def376fef12bcb4a/pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", size = 11290177 }, + { url = "https://files.pythonhosted.org/packages/ed/f9/e995754eab9c0f14c6777401f7eece0943840b7a9fc932221c19d1abee9f/pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", size = 14651526 }, + { url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 }, + { url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 }, + { url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 }, +] + +[[package]] +name = "pillow" +version = "11.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739", size = 46737780 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/fb/a6ce6836bd7fd93fbf9144bf54789e02babc27403b50a9e1583ee877d6da/pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947", size = 3154708 }, + { url = "https://files.pythonhosted.org/packages/6a/1d/1f51e6e912d8ff316bb3935a8cda617c801783e0b998bf7a894e91d3bd4c/pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba", size = 2979223 }, + { url = "https://files.pythonhosted.org/packages/90/83/e2077b0192ca8a9ef794dbb74700c7e48384706467067976c2a95a0f40a1/pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086", size = 4183167 }, + { url = "https://files.pythonhosted.org/packages/0e/74/467af0146970a98349cdf39e9b79a6cc8a2e7558f2c01c28a7b6b85c5bda/pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9", size = 4283912 }, + { url = "https://files.pythonhosted.org/packages/85/b1/d95d4f7ca3a6c1ae120959605875a31a3c209c4e50f0029dc1a87566cf46/pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488", size = 4195815 }, + { url = "https://files.pythonhosted.org/packages/41/c3/94f33af0762ed76b5a237c5797e088aa57f2b7fa8ee7932d399087be66a8/pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f", size = 4366117 }, + { url = "https://files.pythonhosted.org/packages/ba/3c/443e7ef01f597497268899e1cca95c0de947c9bbf77a8f18b3c126681e5d/pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb", size = 4278607 }, + { url = "https://files.pythonhosted.org/packages/26/95/1495304448b0081e60c0c5d63f928ef48bb290acee7385804426fa395a21/pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97", size = 4410685 }, + { url = "https://files.pythonhosted.org/packages/45/da/861e1df971ef0de9870720cb309ca4d553b26a9483ec9be3a7bf1de4a095/pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50", size = 2249185 }, + { url = "https://files.pythonhosted.org/packages/d5/4e/78f7c5202ea2a772a5ab05069c1b82503e6353cd79c7e474d4945f4b82c3/pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c", size = 2566726 }, + { url = "https://files.pythonhosted.org/packages/77/e4/6e84eada35cbcc646fc1870f72ccfd4afacb0fae0c37ffbffe7f5dc24bf1/pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1", size = 2254585 }, + { url = "https://files.pythonhosted.org/packages/f0/eb/f7e21b113dd48a9c97d364e0915b3988c6a0b6207652f5a92372871b7aa4/pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc", size = 3154705 }, + { url = "https://files.pythonhosted.org/packages/25/b3/2b54a1d541accebe6bd8b1358b34ceb2c509f51cb7dcda8687362490da5b/pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a", size = 2979222 }, + { url = "https://files.pythonhosted.org/packages/20/12/1a41eddad8265c5c19dda8fb6c269ce15ee25e0b9f8f26286e6202df6693/pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3", size = 4190220 }, + { url = "https://files.pythonhosted.org/packages/a9/9b/8a8c4d07d77447b7457164b861d18f5a31ae6418ef5c07f6f878fa09039a/pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5", size = 4291399 }, + { url = "https://files.pythonhosted.org/packages/fc/e4/130c5fab4a54d3991129800dd2801feeb4b118d7630148cd67f0e6269d4c/pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b", size = 4202709 }, + { url = "https://files.pythonhosted.org/packages/39/63/b3fc299528d7df1f678b0666002b37affe6b8751225c3d9c12cf530e73ed/pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa", size = 4372556 }, + { url = "https://files.pythonhosted.org/packages/c6/a6/694122c55b855b586c26c694937d36bb8d3b09c735ff41b2f315c6e66a10/pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306", size = 4287187 }, + { url = "https://files.pythonhosted.org/packages/ba/a9/f9d763e2671a8acd53d29b1e284ca298bc10a595527f6be30233cdb9659d/pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9", size = 4418468 }, + { url = "https://files.pythonhosted.org/packages/6e/0e/b5cbad2621377f11313a94aeb44ca55a9639adabcaaa073597a1925f8c26/pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5", size = 2249249 }, + { url = "https://files.pythonhosted.org/packages/dc/83/1470c220a4ff06cd75fc609068f6605e567ea51df70557555c2ab6516b2c/pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291", size = 2566769 }, + { url = "https://files.pythonhosted.org/packages/52/98/def78c3a23acee2bcdb2e52005fb2810ed54305602ec1bfcfab2bda6f49f/pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9", size = 2254611 }, + { url = "https://files.pythonhosted.org/packages/1c/a3/26e606ff0b2daaf120543e537311fa3ae2eb6bf061490e4fea51771540be/pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923", size = 3147642 }, + { url = "https://files.pythonhosted.org/packages/4f/d5/1caabedd8863526a6cfa44ee7a833bd97f945dc1d56824d6d76e11731939/pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903", size = 2978999 }, + { url = "https://files.pythonhosted.org/packages/d9/ff/5a45000826a1aa1ac6874b3ec5a856474821a1b59d838c4f6ce2ee518fe9/pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4", size = 4196794 }, + { url = "https://files.pythonhosted.org/packages/9d/21/84c9f287d17180f26263b5f5c8fb201de0f88b1afddf8a2597a5c9fe787f/pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f", size = 4300762 }, + { url = "https://files.pythonhosted.org/packages/84/39/63fb87cd07cc541438b448b1fed467c4d687ad18aa786a7f8e67b255d1aa/pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9", size = 4210468 }, + { url = "https://files.pythonhosted.org/packages/7f/42/6e0f2c2d5c60f499aa29be14f860dd4539de322cd8fb84ee01553493fb4d/pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7", size = 4381824 }, + { url = "https://files.pythonhosted.org/packages/31/69/1ef0fb9d2f8d2d114db982b78ca4eeb9db9a29f7477821e160b8c1253f67/pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6", size = 4296436 }, + { url = "https://files.pythonhosted.org/packages/44/ea/dad2818c675c44f6012289a7c4f46068c548768bc6c7f4e8c4ae5bbbc811/pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc", size = 4429714 }, + { url = "https://files.pythonhosted.org/packages/af/3a/da80224a6eb15bba7a0dcb2346e2b686bb9bf98378c0b4353cd88e62b171/pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6", size = 2249631 }, + { url = "https://files.pythonhosted.org/packages/57/97/73f756c338c1d86bb802ee88c3cab015ad7ce4b838f8a24f16b676b1ac7c/pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47", size = 2567533 }, + { url = "https://files.pythonhosted.org/packages/0b/30/2b61876e2722374558b871dfbfcbe4e406626d63f4f6ed92e9c8e24cac37/pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25", size = 2254890 }, + { url = "https://files.pythonhosted.org/packages/63/24/e2e15e392d00fcf4215907465d8ec2a2f23bcec1481a8ebe4ae760459995/pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699", size = 3147300 }, + { url = "https://files.pythonhosted.org/packages/43/72/92ad4afaa2afc233dc44184adff289c2e77e8cd916b3ddb72ac69495bda3/pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38", size = 2978742 }, + { url = "https://files.pythonhosted.org/packages/9e/da/c8d69c5bc85d72a8523fe862f05ababdc52c0a755cfe3d362656bb86552b/pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2", size = 4194349 }, + { url = "https://files.pythonhosted.org/packages/cd/e8/686d0caeed6b998351d57796496a70185376ed9c8ec7d99e1d19ad591fc6/pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2", size = 4298714 }, + { url = "https://files.pythonhosted.org/packages/ec/da/430015cec620d622f06854be67fd2f6721f52fc17fca8ac34b32e2d60739/pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527", size = 4208514 }, + { url = "https://files.pythonhosted.org/packages/44/ae/7e4f6662a9b1cb5f92b9cc9cab8321c381ffbee309210940e57432a4063a/pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa", size = 4380055 }, + { url = "https://files.pythonhosted.org/packages/74/d5/1a807779ac8a0eeed57f2b92a3c32ea1b696e6140c15bd42eaf908a261cd/pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f", size = 4296751 }, + { url = "https://files.pythonhosted.org/packages/38/8c/5fa3385163ee7080bc13026d59656267daaaaf3c728c233d530e2c2757c8/pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb", size = 4430378 }, + { url = "https://files.pythonhosted.org/packages/ca/1d/ad9c14811133977ff87035bf426875b93097fb50af747793f013979facdb/pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798", size = 2249588 }, + { url = "https://files.pythonhosted.org/packages/fb/01/3755ba287dac715e6afdb333cb1f6d69740a7475220b4637b5ce3d78cec2/pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de", size = 2567509 }, + { url = "https://files.pythonhosted.org/packages/c0/98/2c7d727079b6be1aba82d195767d35fcc2d32204c7a5820f822df5330152/pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84", size = 2254791 }, + { url = "https://files.pythonhosted.org/packages/eb/38/998b04cc6f474e78b563716b20eecf42a2fa16a84589d23c8898e64b0ffd/pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b", size = 3150854 }, + { url = "https://files.pythonhosted.org/packages/13/8e/be23a96292113c6cb26b2aa3c8b3681ec62b44ed5c2bd0b258bd59503d3c/pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003", size = 2982369 }, + { url = "https://files.pythonhosted.org/packages/97/8a/3db4eaabb7a2ae8203cd3a332a005e4aba00067fc514aaaf3e9721be31f1/pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2", size = 4333703 }, + { url = "https://files.pythonhosted.org/packages/28/ac/629ffc84ff67b9228fe87a97272ab125bbd4dc462745f35f192d37b822f1/pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a", size = 4412550 }, + { url = "https://files.pythonhosted.org/packages/d6/07/a505921d36bb2df6868806eaf56ef58699c16c388e378b0dcdb6e5b2fb36/pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8", size = 4461038 }, + { url = "https://files.pythonhosted.org/packages/d6/b9/fb620dd47fc7cc9678af8f8bd8c772034ca4977237049287e99dda360b66/pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8", size = 2253197 }, + { url = "https://files.pythonhosted.org/packages/df/86/25dde85c06c89d7fc5db17940f07aae0a56ac69aa9ccb5eb0f09798862a8/pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904", size = 2572169 }, + { url = "https://files.pythonhosted.org/packages/51/85/9c33f2517add612e17f3381aee7c4072779130c634921a756c97bc29fb49/pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3", size = 2256828 }, + { url = "https://files.pythonhosted.org/packages/36/57/42a4dd825eab762ba9e690d696d894ba366e06791936056e26e099398cda/pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2", size = 3119239 }, + { url = "https://files.pythonhosted.org/packages/98/f7/25f9f9e368226a1d6cf3507081a1a7944eddd3ca7821023377043f5a83c8/pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2", size = 2950803 }, + { url = "https://files.pythonhosted.org/packages/59/01/98ead48a6c2e31e6185d4c16c978a67fe3ccb5da5c2ff2ba8475379bb693/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b", size = 3281098 }, + { url = "https://files.pythonhosted.org/packages/51/c0/570255b2866a0e4d500a14f950803a2ec273bac7badc43320120b9262450/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2", size = 3323665 }, + { url = "https://files.pythonhosted.org/packages/0e/75/689b4ec0483c42bfc7d1aacd32ade7a226db4f4fac57c6fdcdf90c0731e3/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830", size = 3310533 }, + { url = "https://files.pythonhosted.org/packages/3d/30/38bd6149cf53da1db4bad304c543ade775d225961c4310f30425995cb9ec/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734", size = 3414886 }, + { url = "https://files.pythonhosted.org/packages/ec/3d/c32a51d848401bd94cabb8767a39621496491ee7cd5199856b77da9b18ad/pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316", size = 2567508 }, +] + +[[package]] +name = "pint" +version = "0.24.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flexcache" }, + { name = "flexparser" }, + { name = "platformdirs" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/bb/52b15ddf7b7706ed591134a895dbf6e41c8348171fb635e655e0a4bbb0ea/pint-0.24.4.tar.gz", hash = "sha256:35275439b574837a6cd3020a5a4a73645eb125ce4152a73a2f126bf164b91b80", size = 342225 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/16/bd2f5904557265882108dc2e04f18abc05ab0c2b7082ae9430091daf1d5c/Pint-0.24.4-py3-none-any.whl", hash = "sha256:aa54926c8772159fcf65f82cc0d34de6768c151b32ad1deb0331291c38fe7659", size = 302029 }, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 }, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 }, +] + +[[package]] +name = "pybtex" +version = "0.24.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "latexcodec" }, + { name = "pyyaml" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/9b/fd39836a6397fb363446d83075a7b9c2cc562f4c449292e039ed36084376/pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755", size = 402879 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/5f/40d8e90f985a05133a8895fc454c6127ecec3de8b095dd35bba91382f803/pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f", size = 561354 }, +] + +[[package]] +name = "pybtex-docutils" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "pybtex" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7e/84/796ea94d26188a853660f81bded39f8de4cfe595130aef0dea1088705a11/pybtex-docutils-1.0.3.tar.gz", hash = "sha256:3a7ebdf92b593e00e8c1c538aa9a20bca5d92d84231124715acc964d51d93c6b", size = 18348 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/b1/ce1f4596211efb5410e178a803f08e59b20bedb66837dcf41e21c54f9ec1/pybtex_docutils-1.0.3-py3-none-any.whl", hash = "sha256:8fd290d2ae48e32fcb54d86b0efb8d573198653c7e2447d5bec5847095f430b9", size = 6385 }, +] + +[[package]] +name = "pygments" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, +] + +[[package]] +name = "pyogrio" +version = "0.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "numpy" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a5/8f/5a784595524a79c269f2b1c880f4fdb152867df700c97005dda51997da02/pyogrio-0.10.0.tar.gz", hash = "sha256:ec051cb568324de878828fae96379b71858933413e185148acb6c162851ab23c", size = 281950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/ea/cba24d241858a72b58d8fcd0ad2276f9631fd4528b3062157637e43581eb/pyogrio-0.10.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:046eeeae12a03a3ebc3dc5ff5a87664e4f5fc0a4fb1ea5d5c45d547fa941072b", size = 15083657 }, + { url = "https://files.pythonhosted.org/packages/90/f8/a58795a2aee415c612aac8b425681d932b8983330884207fd1915d234d36/pyogrio-0.10.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:44380f4d9245c776f432526e29ce4d29238aea26adad991803c4f453474f51d3", size = 16457115 }, + { url = "https://files.pythonhosted.org/packages/45/86/74c37e3d4d000bdcd91b25929fe4abc5ad6d93d5f5fbc59a4c7d4f0ed982/pyogrio-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14fd3b72b4e2dc59e264607b265c742b0c5ec2ea9e748b115f742381b28dd373", size = 23721911 }, + { url = "https://files.pythonhosted.org/packages/a6/07/35e4127a878ecdcbaaf46f0f2d068b385a454b5b0cab44ea901adc5888a0/pyogrio-0.10.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:1fea7892f4633cab04d13563e47ec2e87dc2b5cd71b9546018d123184528c151", size = 22941003 }, + { url = "https://files.pythonhosted.org/packages/56/8b/67187ae03dce5cd6f5c5a2f41c405e77059f4cf498e0817b69cec094f022/pyogrio-0.10.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:3539596a76eb8a9d166d6f9d3f36731a8c5bd5c43901209d89dc66b9dc00f079", size = 23861913 }, + { url = "https://files.pythonhosted.org/packages/75/ca/b31083da2e6c4b598b6609a98c655977189fe8982c36d98ea4789a938045/pyogrio-0.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:eac90b2501656892c63bc500c12e71f3dbf7d66ddc5a7fb05cd480d25d1b7022", size = 16171065 }, + { url = "https://files.pythonhosted.org/packages/8d/2c/c761e6adeb81bd4029a137b3240e7214a8c9aaf225883356196afd6ef9d8/pyogrio-0.10.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5b1a51431a27a1cb3e4e19558939c1423106e06e7b67d6285f4fba9c2d0a91b9", size = 15083526 }, + { url = "https://files.pythonhosted.org/packages/c3/e5/983aa9ddf2ff784e973d6b2ec3e874065d6655a5329ca26311b0f3b9f92f/pyogrio-0.10.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:216d69cd77b2b4a0c9d7d449bc239f8b77f3d73f4a05d9c738a0745b236902d8", size = 16457867 }, + { url = "https://files.pythonhosted.org/packages/fa/9a/7103eee7aa3b6ec88e072ef18a05c3aae1ed96fe00009a7a5ce139b50f30/pyogrio-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2f0b75f0077ce33256aec6278c2a9c3b79bf0637ddf4f93d3ab2609f0501d96", size = 23926332 }, + { url = "https://files.pythonhosted.org/packages/8b/b2/2ca124343aba24b9a5dcd7c1f43da81e652849cfaf3110d3f507a80af0a1/pyogrio-0.10.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:0a47f702d29808c557d2ebea8542c23903f021eae44e16838adef2ab4281c71b", size = 23138693 }, + { url = "https://files.pythonhosted.org/packages/ae/15/501aa4823c142232169d54255ab343f28c4ea9e7fa489b8433dcc873a942/pyogrio-0.10.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:11e6c71d12da6b445e77d0fc0198db1bd35a77e03a0685e45338cbab9ce02add", size = 24062952 }, + { url = "https://files.pythonhosted.org/packages/94/8d/24f21e6a93ca418231aee3bddade7a0766c89c523832f29e08a8860f83e6/pyogrio-0.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:d0d74e91a9c0ff2f9abe01b556ff663977193b2d6922208406172d0fc833beff", size = 16172573 }, + { url = "https://files.pythonhosted.org/packages/b5/b5/3c5dfd0b50cbce6f3d4e42c0484647feb1809dbe20e225c4c6abd067e69f/pyogrio-0.10.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2d6558b180e020f71ab7aa7f82d592ed3305c9f698d98f6d0a4637ec7a84c4ce", size = 15079211 }, + { url = "https://files.pythonhosted.org/packages/b8/9a/1ba9c707a094976f343bd0177741eaba0e842fa05ecd8ab97192db4f2ec1/pyogrio-0.10.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:a99102037eead8ba491bc57825c1e395ee31c9956d7bff7b4a9e4fdbff3a13c2", size = 16442782 }, + { url = "https://files.pythonhosted.org/packages/5e/bb/b4250746c2c85fea5004cae93e9e25ad01516e9e94e04de780a2e78139da/pyogrio-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a4c373281d7cbf560c5b61f8f3c7442103ad7f1c7ac4ef3a84572ed7a5dd2f6", size = 23899832 }, + { url = "https://files.pythonhosted.org/packages/bd/4c/79e47e40a8e54e79a45133786a0a58209534f580591c933d40c5ed314fe7/pyogrio-0.10.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:19f18411bdf836d24cdc08b9337eb3ec415e4ac4086ba64516b36b73a2e88622", size = 23081469 }, + { url = "https://files.pythonhosted.org/packages/47/78/2b62c8a340bcb0ea56b9ddf2ef5fd3d1f101dc0e98816b9e6da87c5ac3b7/pyogrio-0.10.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:1abbcdd9876f30bebf1df8a0273f6cdeb29d03259290008275c7fddebe139f20", size = 24024758 }, + { url = "https://files.pythonhosted.org/packages/43/97/34605480f06b0ad9611bf58a174eccc6f3673275f3d519cf763391892881/pyogrio-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a3e09839590d71ff832aa95c4f23fa00a2c63c3de82c1fbd4fb8d265792acfc", size = 16160294 }, + { url = "https://files.pythonhosted.org/packages/14/4a/4c8e4f5b9edbca46e0f8d6c1c0b56c0d4af0900c29f4bea22d37853c07f3/pyogrio-0.10.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:c90478209537a31dcc65664a87a04c094bb0e08efe502908a6682b8cec0259bf", size = 15076879 }, + { url = "https://files.pythonhosted.org/packages/5f/be/7db0644eef9ef3382518399aaf3332827c43018112d2a74f78784fd496ec/pyogrio-0.10.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:fec45e1963b7058e5a1aa98598aed07c0858512c833d6aad2c672c3ec98bbf04", size = 16440405 }, + { url = "https://files.pythonhosted.org/packages/96/77/f199230ba86fe88b1f57e71428c169ed982de68a32d6082cd7c12d0f5d55/pyogrio-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28cb139f8a5d0365ede602230104b407ae52bb6b55173c8d5a35424d28c4a2c5", size = 23871511 }, + { url = "https://files.pythonhosted.org/packages/25/ac/ca483bec408b59c54f7129b0244cc9de21d8461aefe89ece7bd74ad33807/pyogrio-0.10.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:cea0187fcc2d574e52af8cfab041fa0a7ad71d5ef6b94b49a3f3d2a04534a27e", size = 23048830 }, + { url = "https://files.pythonhosted.org/packages/d7/3e/c35f2d8dad95b24e568c468f09ff60fb61945065465e0ec7868400596566/pyogrio-0.10.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:7c02b207ea8cf09c501ea3e95d29152781a00d3c32267286bc36fa457c332205", size = 23996873 }, + { url = "https://files.pythonhosted.org/packages/27/5d/0deb16d228362a097ee3258d0a887c9c0add4b9678bb4847b08a241e124d/pyogrio-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:02e54bcfb305af75f829044b0045f74de31b77c2d6546f7aaf96822066147848", size = 16158260 }, +] + +[[package]] +name = "pyparsing" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/d5/e5aeee5387091148a19e1145f63606619cb5f20b83fccb63efae6474e7b2/pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c", size = 920984 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84", size = 106921 }, +] + +[[package]] +name = "pyproj" +version = "3.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/c2/0572c8e31aebf0270f15f3368adebd10fc473de9f09567a0743a3bc41c8d/pyproj-3.7.0.tar.gz", hash = "sha256:bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813", size = 225577 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/fa/8a769da6bb8e26b1028c19d048b88373a40bd8e17a893e07b9889d1aed03/pyproj-3.7.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d5c7e7d24b967e328a5efd013f466804a1f226d1106ac7efc47dcc99360dbc8f", size = 6270121 }, + { url = "https://files.pythonhosted.org/packages/82/65/ee312dc4cdd2499cc5984144e05c582604afd76ba01289d89d74b50ab654/pyproj-3.7.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:448958c46bd3fe2da91c89ba551ac5835e63073ca861422c6eb1af89979dfab1", size = 4633387 }, + { url = "https://files.pythonhosted.org/packages/f8/0d/d300194f021e3d56b30bb45bd19447bb00761c62f5342371bd389b774f82/pyproj-3.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f673ca345bb92afc93d4235938ca0c9a76237aa7addf42a95965c8dc8cad9b49", size = 6330358 }, + { url = "https://files.pythonhosted.org/packages/52/30/c82c12cea9a5c17fac146212cd914ec587f646eef91986dcb7f629fe0f7f/pyproj-3.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee60895f60cbd1a9c903ab2bc22adea63004296a1c28b8775a11cf50905cf085", size = 9227537 }, + { url = "https://files.pythonhosted.org/packages/09/94/34bd5a5e637e8839beb17cc09410785bad24098ef01e52f66fe32bcf74fa/pyproj-3.7.0-cp310-cp310-win32.whl", hash = "sha256:0dd31b0740ee010934234f848d2d092c66146cb8d0ba009a64e41d192caa7686", size = 5822094 }, + { url = "https://files.pythonhosted.org/packages/9e/04/33835c6ca0edf266b56495555c375994c42f914eb65a639b363d6f2c47f9/pyproj-3.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:7943d85ba39e89c51b920339ff63162d63bf89da161f0acb6206b0d39b11661e", size = 6230436 }, + { url = "https://files.pythonhosted.org/packages/e2/8f/15ff6ab10a08050e94afcd544962a1a930d0bb7ca102ad39795a847eb340/pyproj-3.7.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:e66d8d42dbdf232e121546c5a1dec097caf0454e4885c09a8e03cdcee0753c03", size = 6272213 }, + { url = "https://files.pythonhosted.org/packages/2d/4d/610fe2a17de71b4fe210af69ce25f2d65379ba0a48299129894d0d0988ee/pyproj-3.7.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7764b64a0aefe40134a2828b3a40be88f6c8b7832c45d8a9f2bd592ace4b2a3b", size = 4634548 }, + { url = "https://files.pythonhosted.org/packages/d6/27/0327d0b0fcdfc4cf72696a2effca2963e524dcd846a0274ba503f8bf2648/pyproj-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53c442c5081dc95346996f5c4323fde2caafc69c6e60b4707aa46e88244f1e04", size = 6333913 }, + { url = "https://files.pythonhosted.org/packages/3c/e5/2cb256148c730b9c3f74bfb3c03904f5070499c6dcaea153073a9642c6c6/pyproj-3.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5b305d4d5d7697885681d9b660623e328227612823d5c660e0a9566cb48838", size = 9460363 }, + { url = "https://files.pythonhosted.org/packages/ba/a3/4aa1e8e78ad18aa170efd2c94c1931bf2a34c526683b874d06e40fa323f6/pyproj-3.7.0-cp311-cp311-win32.whl", hash = "sha256:de2b47d748dc41cccb6b3b713d4d7dc9aa1046a82141c8665026908726426abc", size = 5820551 }, + { url = "https://files.pythonhosted.org/packages/26/0c/b084e8839a117eaad8cb4fbaa81bbb24c6f183de0ee95c6c4e2770ab6f09/pyproj-3.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:38cba7c4c5679e40242dd959133e95b908d3b912dd66291094fd13510e8517ff", size = 6231788 }, + { url = "https://files.pythonhosted.org/packages/bd/19/be806b711e9ebfb80411c653054157db128fffdd7f8493e3064136c8d880/pyproj-3.7.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:8cbec92bdd6e9933ca08795c12717d1384e9b51cf4b1acf0d753db255a75c51e", size = 6261400 }, + { url = "https://files.pythonhosted.org/packages/99/3b/8497995e8cae0049d013679c6a7ac6c57b816d590c733a388748dafe5af5/pyproj-3.7.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8c4a8e4d3ba76c3adac3c087544cf92f7f9a19ea34946904a13fca48cc1c0106", size = 4637848 }, + { url = "https://files.pythonhosted.org/packages/ea/f7/2a5b46d6f8da913d58d44942ab06ca4803b5424b73259b15344cf90040f6/pyproj-3.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82624fb42aa31f6b1a860fbc0316babd07fd712642bc31022df4e9b4056bf463", size = 6324856 }, + { url = "https://files.pythonhosted.org/packages/36/83/c257771077bcf9da20d0e97abc834f9037c219986cc76d40183903a30464/pyproj-3.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34e1bbb3f89c68d4a6835c40b2da8b27680eec60e8cc7cdb08c09bcc725b2b62", size = 9525831 }, + { url = "https://files.pythonhosted.org/packages/d6/50/a635de79def69fe03cdef3a4bd3bec780c30987bce3a15dd7099afb2506f/pyproj-3.7.0-cp312-cp312-win32.whl", hash = "sha256:952515d5592167ad4436b355485f82acebed2a49b46722159e4584b75a763dd3", size = 5811864 }, + { url = "https://files.pythonhosted.org/packages/a1/8b/96bc8c8f3eca4eb7fa3758fde0b755d1df30a19f494376e3ee8de1ef4e79/pyproj-3.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:0692f806224e8ed82fe4acfa57268ff444fdaf9f330689f24c0d96e59480cce1", size = 6224720 }, + { url = "https://files.pythonhosted.org/packages/bf/da/a17c452bea1ff4cd58d6dc573055b9c8fb6af114b7d2c694782aec770865/pyproj-3.7.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:94e8b903a9e83448fd2379c49dec3e8cd83c9ed36f54354e68b601cef56d5426", size = 6254898 }, + { url = "https://files.pythonhosted.org/packages/c2/31/ab07b389f2caa527c95ab2ea1940d28879bd2a19e67b2529cb3e94648d26/pyproj-3.7.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:64cb5c17d6f6305a8b978a40f95560c87c5b363fcac40632337955664437875a", size = 4628612 }, + { url = "https://files.pythonhosted.org/packages/1d/24/def3ded6529db3e3d8351ad73481730249ab57d8d876d502f86d7958ce06/pyproj-3.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c54e9bdda7ab9c4a5af50f9d6e6ee7704e05fafd504896b96ed1208c7aea098", size = 6315895 }, + { url = "https://files.pythonhosted.org/packages/dd/14/07314f78302105d199fb25e73376d723efe9c2ef3906463aae209913a6d3/pyproj-3.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24fa4e9e0abba875f9524808410cc520067eaf38fd5549ed0ef7c43ac39923c9", size = 9466144 }, + { url = "https://files.pythonhosted.org/packages/00/f2/2a116920db3496e3ff3c94d7d8d15da41374f35cfe1b9e79682eca500a61/pyproj-3.7.0-cp313-cp313-win32.whl", hash = "sha256:b9e8353fc3c79dc14d1f5ac758a1a6e4eee04102c3c0b138670f121f5ac52eb4", size = 5807180 }, + { url = "https://files.pythonhosted.org/packages/f8/33/3c8c6302717096b54aa14ccbb271045ba04629e21cbf348f2f2dc94f69b4/pyproj-3.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:10a8dc6ec61af97c89ff032647d743f8dc023645773da42ef43f7ae1125b3509", size = 6218036 }, +] + +[[package]] +name = "pytest" +version = "8.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761", size = 1445919 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/92/76a1c94d3afee238333bc0a42b82935dd8f9cf8ce9e336ff87ee14d9e1cf/pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6", size = 343083 }, +] + +[[package]] +name = "pytest-cov" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"] }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/3b/48e79f2cd6a61dbbd4807b4ed46cb564b4fd50a76166b1c4ea5c1d9e2371/pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35", size = 22949 }, +] + +[[package]] +name = "pytest-xdist" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108 }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, +] + +[[package]] +name = "pytz" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199 }, + { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758 }, + { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463 }, + { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280 }, + { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239 }, + { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802 }, + { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527 }, + { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052 }, + { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774 }, + { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 }, + { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 }, + { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 }, + { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 }, + { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 }, + { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 }, + { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 }, + { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 }, + { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 }, + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "roseau-load-flow" +version = "0.11.0" +source = { editable = "." } +dependencies = [ + { name = "certifi" }, + { name = "geopandas" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "pint" }, + { name = "platformdirs" }, + { name = "pyproj" }, + { name = "roseau-load-flow-engine" }, + { name = "shapely" }, + { name = "typing-extensions" }, +] + +[package.optional-dependencies] +graph = [ + { name = "networkx" }, +] +plot = [ + { name = "matplotlib" }, +] + +[package.dev-dependencies] +dev = [ + { name = "coverage", extra = ["toml"] }, + { name = "coverage-conditional-plugin" }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "pytest-xdist" }, +] +doc = [ + { name = "furo" }, + { name = "myst-parser" }, + { name = "sphinx" }, + { name = "sphinx-autoapi" }, + { name = "sphinx-copybutton" }, + { name = "sphinx-inline-tabs" }, + { name = "sphinx-math-dollar" }, + { name = "sphinx-sitemap" }, + { name = "sphinxcontrib-bibtex" }, + { name = "sphinxcontrib-googleanalytics" }, + { name = "sphinxext-opengraph" }, +] + +[package.metadata] +requires-dist = [ + { name = "certifi", specifier = ">=2023.5.7" }, + { name = "geopandas", specifier = ">=1.0.0" }, + { name = "matplotlib", marker = "extra == 'plot'", specifier = ">=3.7.2" }, + { name = "networkx", marker = "extra == 'graph'", specifier = ">=3.0.0" }, + { name = "numpy", specifier = ">=1.21.5" }, + { name = "pandas", specifier = ">=1.4.0" }, + { name = "pint", specifier = ">=0.21.0" }, + { name = "platformdirs", specifier = ">=4.0.0" }, + { name = "pyproj", specifier = ">=3.3.0" }, + { name = "roseau-load-flow-engine", specifier = "==0.16.0" }, + { name = "shapely", specifier = ">=2.0.0" }, + { name = "typing-extensions", specifier = ">=4.6.2" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "coverage", extras = ["toml"], specifier = ">=7.0.5" }, + { name = "coverage-conditional-plugin", specifier = ">=0.9.0" }, + { name = "pytest", specifier = ">=8.0.0" }, + { name = "pytest-cov", specifier = ">=5.0.0" }, + { name = "pytest-xdist", specifier = ">=3.1.0" }, +] +doc = [ + { name = "furo", specifier = ">=2022.9.29" }, + { name = "myst-parser", specifier = ">=0.16.1" }, + { name = "sphinx", specifier = ">=8.0.2" }, + { name = "sphinx-autoapi", specifier = ">=3.0.0" }, + { name = "sphinx-copybutton", specifier = ">=0.5.1" }, + { name = "sphinx-inline-tabs", specifier = ">=2022.1.2b11" }, + { name = "sphinx-math-dollar", specifier = ">=1.2.1" }, + { name = "sphinx-sitemap", specifier = ">=2.5.1" }, + { name = "sphinxcontrib-bibtex", specifier = ">=2.5.0" }, + { name = "sphinxcontrib-googleanalytics", specifier = ">=0.3" }, + { name = "sphinxext-opengraph", specifier = ">=0.9.1" }, +] + +[[package]] +name = "roseau-load-flow-engine" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/89/c99dab2afcd39f58478a608be3e65afda4b8aabf1467156847aa7d7db777/roseau_load_flow_engine-0.16.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:d87639ff1d114d0185abf6636b1c20bf5a81a1fab9d6409d8812bcc2f2faf4de", size = 1174466 }, + { url = "https://files.pythonhosted.org/packages/3c/b9/6a9c2908d851de0ec3e364846ff0f5a8e47cc127623a5b2daef0472a5496/roseau_load_flow_engine-0.16.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:9d432c787b952257cce7cf4006968e531fdf1f77fda122834e5a2ee8dfdee0f2", size = 3354758 }, + { url = "https://files.pythonhosted.org/packages/9c/6a/d3a233193235ba30f894234205c837cd1f3d8cba87d3692ae40c099eaa91/roseau_load_flow_engine-0.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:15a5bbb010cfc47a6d62ba314bfecc94fa98da1c35fedf74a9d75419fb1e2fd3", size = 1491019 }, + { url = "https://files.pythonhosted.org/packages/0b/57/ac22b9f375406a346e95e707afc0879c288fdc824582d71be953fa31a1d0/roseau_load_flow_engine-0.16.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:fef12047bc79bebf143426c45194152a7fc028076e9da5f7258830f358f8a2d9", size = 1173017 }, + { url = "https://files.pythonhosted.org/packages/82/1e/bcc2fa5524ec05000e64f6cada06c2ad7c394c1acb53750496bf3df89c3c/roseau_load_flow_engine-0.16.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:bf875c832f6fe09584991f8de4858f35b1fd160c6d630b5cf2af0a796a4e33c9", size = 3355283 }, + { url = "https://files.pythonhosted.org/packages/30/fc/0cedf605184797ae47c7d21916a9e1f33717cb15887efa687a7b4bdf5b6f/roseau_load_flow_engine-0.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:5177889c1ddee1f63c60323fd92a769069b7e041c273034cc6b1a8b75f75868d", size = 1489621 }, + { url = "https://files.pythonhosted.org/packages/0c/17/110f5668302578c6577b5e0a0070fcc62b8e540fb863da58ea9d6a1df164/roseau_load_flow_engine-0.16.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:4ecb3cdbd089a26bd7fd2d708015ac5afef346fcd9504282be597f169143ab87", size = 1172512 }, + { url = "https://files.pythonhosted.org/packages/ac/7f/cf65a8f7309e572e0fcb85379ee9715bb6e8ec3da61ea59333ddf068d75b/roseau_load_flow_engine-0.16.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ace67f1c40c72f1212921ffadabd450c0027fd68570516413d4e7c55992c08ab", size = 3353561 }, + { url = "https://files.pythonhosted.org/packages/ed/2d/15f70f95f4f205c585fbe771fcc7a12c77d48d60d9efe2324fcb21ed34de/roseau_load_flow_engine-0.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:d74720b20c6ae91d90a0ad77ce84f01b0c6db92dc2ea37790f4b404af8fb21f6", size = 1489274 }, + { url = "https://files.pythonhosted.org/packages/48/49/a30c528bb5ee5192e18bb963553038f9cdeb41516b2e281c9dc975778816/roseau_load_flow_engine-0.16.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:456b90ca6c1ec39f1239825d86ebc9fe032a4d1403ca592db0160d9efa2a067c", size = 1173748 }, + { url = "https://files.pythonhosted.org/packages/a8/7b/b8c41b063cf9daa688f8b4aa431e6c58fceef72b1e063728c6661bad52f9/roseau_load_flow_engine-0.16.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5c6ae05d0d0a11c9ce096e2da39a6798879850d4f904bde6de5894e51cca111e", size = 3352772 }, + { url = "https://files.pythonhosted.org/packages/9c/2f/c1d678ccbc094d5a7b4e664de8f43049e3de5179f4ededf9d3eda8935dff/roseau_load_flow_engine-0.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:022b19e682bc3315bf5be4dcd3d8729347f33169b30e127bce55ce43e8cd04f2", size = 1488704 }, +] + +[[package]] +name = "setuptools" +version = "75.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/54/292f26c208734e9a7f067aea4a7e282c080750c4546559b58e2e45413ca0/setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6", size = 1337429 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/21/47d163f615df1d30c094f6c8bbb353619274edccf0327b185cc2493c2c33/setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d", size = 1224032 }, +] + +[[package]] +name = "shapely" +version = "2.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4a/89/0d20bac88016be35ff7d3c0c2ae64b477908f1b1dfa540c5d69ac7af07fe/shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6", size = 282361 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/d4/f84bbbdb7771f5b9ade94db2398b256cf1471f1eb0ca8afbe0f6ca725d5a/shapely-2.0.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29a34e068da2d321e926b5073539fd2a1d4429a2c656bd63f0bd4c8f5b236d0b", size = 1449635 }, + { url = "https://files.pythonhosted.org/packages/03/10/bd6edb66ed0a845f0809f7ce653596f6fd9c6be675b3653872f47bf49f82/shapely-2.0.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c84c3f53144febf6af909d6b581bc05e8785d57e27f35ebaa5c1ab9baba13b", size = 1296756 }, + { url = "https://files.pythonhosted.org/packages/af/09/6374c11cb493a9970e8c04d7be25f578a37f6494a2fecfbed3a447b16b2c/shapely-2.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ad2fae12dca8d2b727fa12b007e46fbc522148a584f5d6546c539f3464dccde", size = 2381960 }, + { url = "https://files.pythonhosted.org/packages/2b/a6/302e0d9c210ccf4d1ffadf7ab941797d3255dcd5f93daa73aaf116a4db39/shapely-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3304883bd82d44be1b27a9d17f1167fda8c7f5a02a897958d86c59ec69b705e", size = 2468133 }, + { url = "https://files.pythonhosted.org/packages/8c/be/e448681dc485f2931d4adee93d531fce93608a3ee59433303cc1a46e21a5/shapely-2.0.6-cp310-cp310-win32.whl", hash = "sha256:3ec3a0eab496b5e04633a39fa3d5eb5454628228201fb24903d38174ee34565e", size = 1294982 }, + { url = "https://files.pythonhosted.org/packages/cd/4c/6f4a6fc085e3be01c4c9de0117a2d373bf9fec5f0426cf4d5c94090a5a4d/shapely-2.0.6-cp310-cp310-win_amd64.whl", hash = "sha256:28f87cdf5308a514763a5c38de295544cb27429cfa655d50ed8431a4796090c4", size = 1441141 }, + { url = "https://files.pythonhosted.org/packages/37/15/269d8e1f7f658a37e61f7028683c546f520e4e7cedba1e32c77ff9d3a3c7/shapely-2.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aeb0f51a9db176da9a30cb2f4329b6fbd1e26d359012bb0ac3d3c7781667a9e", size = 1449578 }, + { url = "https://files.pythonhosted.org/packages/37/63/e182e43081fffa0a2d970c480f2ef91647a6ab94098f61748c23c2a485f2/shapely-2.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a7a78b0d51257a367ee115f4d41ca4d46edbd0dd280f697a8092dd3989867b2", size = 1296792 }, + { url = "https://files.pythonhosted.org/packages/6e/5a/d019f69449329dcd517355444fdb9ddd58bec5e080b8bdba007e8e4c546d/shapely-2.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f32c23d2f43d54029f986479f7c1f6e09c6b3a19353a3833c2ffb226fb63a855", size = 2443997 }, + { url = "https://files.pythonhosted.org/packages/25/aa/53f145e5a610a49af9ac49f2f1be1ec8659ebd5c393d66ac94e57c83b00e/shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0", size = 2528334 }, + { url = "https://files.pythonhosted.org/packages/64/64/0c7b0a22b416d36f6296b92bb4219d82b53d0a7c47e16fd0a4c85f2f117c/shapely-2.0.6-cp311-cp311-win32.whl", hash = "sha256:d93b7e0e71c9f095e09454bf18dad5ea716fb6ced5df3cb044564a00723f339d", size = 1294669 }, + { url = "https://files.pythonhosted.org/packages/b1/5a/6a67d929c467a1973b6bb9f0b00159cc343b02bf9a8d26db1abd2f87aa23/shapely-2.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:c02eb6bf4cfb9fe6568502e85bb2647921ee49171bcd2d4116c7b3109724ef9b", size = 1442032 }, + { url = "https://files.pythonhosted.org/packages/46/77/efd9f9d4b6a762f976f8b082f54c9be16f63050389500fb52e4f6cc07c1a/shapely-2.0.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cec9193519940e9d1b86a3b4f5af9eb6910197d24af02f247afbfb47bcb3fab0", size = 1450326 }, + { url = "https://files.pythonhosted.org/packages/68/53/5efa6e7a4036a94fe6276cf7bbb298afded51ca3396b03981ad680c8cc7d/shapely-2.0.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83b94a44ab04a90e88be69e7ddcc6f332da7c0a0ebb1156e1c4f568bbec983c3", size = 1298480 }, + { url = "https://files.pythonhosted.org/packages/88/a2/1be1db4fc262e536465a52d4f19d85834724fedf2299a1b9836bc82fe8fa/shapely-2.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:537c4b2716d22c92036d00b34aac9d3775e3691f80c7aa517c2c290351f42cd8", size = 2439311 }, + { url = "https://files.pythonhosted.org/packages/d5/7d/9a57e187cbf2fbbbdfd4044a4f9ce141c8d221f9963750d3b001f0ec080d/shapely-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fea108334be345c283ce74bf064fa00cfdd718048a8af7343c59eb40f59726", size = 2524835 }, + { url = "https://files.pythonhosted.org/packages/6d/0a/f407509ab56825f39bf8cfce1fb410238da96cf096809c3e404e5bc71ea1/shapely-2.0.6-cp312-cp312-win32.whl", hash = "sha256:42fd4cd4834747e4990227e4cbafb02242c0cffe9ce7ef9971f53ac52d80d55f", size = 1295613 }, + { url = "https://files.pythonhosted.org/packages/7b/b3/857afd9dfbfc554f10d683ac412eac6fa260d1f4cd2967ecb655c57e831a/shapely-2.0.6-cp312-cp312-win_amd64.whl", hash = "sha256:665990c84aece05efb68a21b3523a6b2057e84a1afbef426ad287f0796ef8a48", size = 1442539 }, + { url = "https://files.pythonhosted.org/packages/34/e8/d164ef5b0eab86088cde06dee8415519ffd5bb0dd1bd9d021e640e64237c/shapely-2.0.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:42805ef90783ce689a4dde2b6b2f261e2c52609226a0438d882e3ced40bb3013", size = 1445344 }, + { url = "https://files.pythonhosted.org/packages/ce/e2/9fba7ac142f7831757a10852bfa465683724eadbc93d2d46f74a16f9af04/shapely-2.0.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6d2cb146191a47bd0cee8ff5f90b47547b82b6345c0d02dd8b25b88b68af62d7", size = 1296182 }, + { url = "https://files.pythonhosted.org/packages/cf/dc/790d4bda27d196cd56ec66975eaae3351c65614cafd0e16ddde39ec9fb92/shapely-2.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3fdef0a1794a8fe70dc1f514440aa34426cc0ae98d9a1027fb299d45741c381", size = 2423426 }, + { url = "https://files.pythonhosted.org/packages/af/b0/f8169f77eac7392d41e231911e0095eb1148b4d40c50ea9e34d999c89a7e/shapely-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c665a0301c645615a107ff7f52adafa2153beab51daf34587170d85e8ba6805", size = 2513249 }, + { url = "https://files.pythonhosted.org/packages/f6/1d/a8c0e9ab49ff2f8e4dedd71b0122eafb22a18ad7e9d256025e1f10c84704/shapely-2.0.6-cp313-cp313-win32.whl", hash = "sha256:0334bd51828f68cd54b87d80b3e7cee93f249d82ae55a0faf3ea21c9be7b323a", size = 1294848 }, + { url = "https://files.pythonhosted.org/packages/23/38/2bc32dd1e7e67a471d4c60971e66df0bdace88656c47a9a728ace0091075/shapely-2.0.6-cp313-cp313-win_amd64.whl", hash = "sha256:d37d070da9e0e0f0a530a621e17c0b8c3c9d04105655132a87cfff8bd77cc4c2", size = 1441371 }, +] + +[[package]] +name = "six" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 }, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/7b/af302bebf22c749c56c9c3e8ae13190b5b5db37a33d9068652e8f73b7089/snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", size = 86699 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a", size = 93002 }, +] + +[[package]] +name = "soupsieve" +version = "2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186 }, +] + +[[package]] +name = "sphinx" +version = "8.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "alabaster" }, + { name = "babel" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "docutils" }, + { name = "imagesize" }, + { name = "jinja2" }, + { name = "packaging" }, + { name = "pygments" }, + { name = "requests" }, + { name = "snowballstemmer" }, + { name = "sphinxcontrib-applehelp" }, + { name = "sphinxcontrib-devhelp" }, + { name = "sphinxcontrib-htmlhelp" }, + { name = "sphinxcontrib-jsmath" }, + { name = "sphinxcontrib-qthelp" }, + { name = "sphinxcontrib-serializinghtml" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125 }, +] + +[[package]] +name = "sphinx-autoapi" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "astroid" }, + { name = "jinja2" }, + { name = "pyyaml" }, + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4a/eb/cc243583bb1d518ca3b10998c203d919a8ed90affd4831f2b61ad09043d2/sphinx_autoapi-3.4.0.tar.gz", hash = "sha256:e6d5371f9411bbb9fca358c00a9e57aef3ac94cbfc5df4bab285946462f69e0c", size = 29292 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/d6/f2acdc2567337fd5f5dc091a4e58d8a0fb14927b9779fc1e5ecee96d9824/sphinx_autoapi-3.4.0-py3-none-any.whl", hash = "sha256:4027fef2875a22c5f2a57107c71641d82f6166bf55beb407a47aaf3ef14e7b92", size = 34095 }, +] + +[[package]] +name = "sphinx-basic-ng" +version = "1.0.0b2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/0b/a866924ded68efec7a1759587a4e478aec7559d8165fac8b2ad1c0e774d6/sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9", size = 20736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/dd/018ce05c532a22007ac58d4f45232514cd9d6dd0ee1dc374e309db830983/sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b", size = 22496 }, +] + +[[package]] +name = "sphinx-copybutton" +version = "0.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/2b/a964715e7f5295f77509e59309959f4125122d648f86b4fe7d70ca1d882c/sphinx-copybutton-0.5.2.tar.gz", hash = "sha256:4cf17c82fb9646d1bc9ca92ac280813a3b605d8c421225fd9913154103ee1fbd", size = 23039 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl", hash = "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e", size = 13343 }, +] + +[[package]] +name = "sphinx-inline-tabs" +version = "2023.4.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/f5/f8a2be63ed7be9f91a4c2bea0e25bcb56aa4c5cc37ec4d8ead8065f926b1/sphinx_inline_tabs-2023.4.21.tar.gz", hash = "sha256:5df2f13f602c158f3f5f6c509e008aeada199a8c76d97ba3aa2822206683bebc", size = 42664 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/60/1e4c9017d722b9c7731abc11f39ac8b083b479fbcefe12015b57e457a296/sphinx_inline_tabs-2023.4.21-py3-none-any.whl", hash = "sha256:06809ac613f7c48ddd6e2fa588413e3fe92cff2397b56e2ccf0b0218f9ef6a78", size = 6850 }, +] + +[[package]] +name = "sphinx-math-dollar" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/63/9227668066d044b6b6a582f000ade4b9e679978466555710dd2a15f21a3a/sphinx-math-dollar-1.2.1.tar.gz", hash = "sha256:03427240f21fdf23c7b8415289aa1a0e307ac32c198e02f840c59a4b1b0d950c", size = 25758 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/58/f4df1f1cd8a2bd7c5720870fcd1373fbd6de934f74c887bbc40eef9d8328/sphinx_math_dollar-1.2.1-py3-none-any.whl", hash = "sha256:0b1523a4d7023b9020ddf3a9301f651d64427a0f1d802af534a87eaf24fbdf19", size = 8074 }, +] + +[[package]] +name = "sphinx-sitemap" +version = "2.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/ed/96cc112b671e06df01c8306c25ce3331ccfece0d30235e32eb039afc8094/sphinx_sitemap-2.6.0.tar.gz", hash = "sha256:5e0c66b9f2e371ede80c659866a9eaad337d46ab02802f9c7e5f7bc5893c28d2", size = 6042 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/d4/dffb4da380be24fd390d284634735d6fba560980014050e52569c04d215b/sphinx_sitemap-2.6.0-py3-none-any.whl", hash = "sha256:7478e417d141f99c9af27ccd635f44c03a471a08b20e778a0f9daef7ace1d30b", size = 5632 }, +] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300 }, +] + +[[package]] +name = "sphinxcontrib-bibtex" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "pybtex" }, + { name = "pybtex-docutils" }, + { name = "setuptools", marker = "python_full_version >= '3.12'" }, + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c1/ce/054a8ec04063f9a27772fea7188f796edbfa382e656d3b76428323861f0e/sphinxcontrib_bibtex-2.6.3.tar.gz", hash = "sha256:7c790347ef1cb0edf30de55fc324d9782d085e89c52c2b8faafa082e08e23946", size = 117177 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/49/c23f9493c0a5d5881fb7ed3002e87708454fef860aa96a48e755d27bf6f0/sphinxcontrib_bibtex-2.6.3-py3-none-any.whl", hash = "sha256:ff016b738fcc867df0f75c29e139b3b2158d26a2c802db27963cb128be3b75fb", size = 40340 }, +] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530 }, +] + +[[package]] +name = "sphinxcontrib-googleanalytics" +version = "0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/79/07e26d53ecf4e8ddf2c27e5076cd7540ef1285d215ab88ae6cf7eb75ce88/sphinxcontrib-googleanalytics-0.4.tar.gz", hash = "sha256:4b19c1f0fce5df6c7da5633201b64a9e5b0cb3210a14fdb4134942ceee8c5d12", size = 2920 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/0d/6cadda83ad0ac9deae6d152e0defcbaeca93bea2ed5f502f93ff9e8bc369/sphinxcontrib_googleanalytics-0.4-py3-none-any.whl", hash = "sha256:a6574983f9a58e5864ec10d34dc99914c4d647108b22c9249c8f0038b0cb18b3", size = 3430 }, +] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705 }, +] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071 }, +] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743 }, +] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072 }, +] + +[[package]] +name = "sphinxext-opengraph" +version = "0.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/5b/4302fe33c88dbfb572e2c1cad26735164c23f16fb8dba94ddb1867d0ef06/sphinxext-opengraph-0.9.1.tar.gz", hash = "sha256:dd2868a1e7c9497977fbbf44cc0844a42af39ca65fe1bb0272518af225d06fc5", size = 1034511 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/0a/970b80b4fa1feeb6deb6f2e22d4cb14e388b27b315a1afdb9db930ff91a4/sphinxext_opengraph-0.9.1-py3-none-any.whl", hash = "sha256:b3b230cc6a5b5189139df937f0d9c7b23c7c204493b22646273687969dcb760e", size = 1005241 }, +] + +[[package]] +name = "tomli" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077 }, + { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429 }, + { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067 }, + { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030 }, + { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898 }, + { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 }, + { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 }, + { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 }, + { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310 }, + { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309 }, + { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, + { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, + { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, + { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 }, + { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 }, + { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, + { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, + { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, + { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 }, + { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 }, + { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708 }, + { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582 }, + { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543 }, + { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691 }, + { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170 }, + { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530 }, + { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666 }, + { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954 }, + { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724 }, + { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383 }, + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, +] + +[[package]] +name = "tzdata" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 }, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", size = 300677 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 }, +]