From 05befac53d12c46ea69a3de5690022bb32c92626 Mon Sep 17 00:00:00 2001 From: pesap Date: Wed, 22 Jan 2025 21:20:49 -0700 Subject: [PATCH] fix: Sienna exporter incompatibility when starting from ReEDS (#108) We missed on the testing the full translation from ReEDS to Sienna. This PR incorporate more robust testing and fixes the incompatibility issues. List of changes: - New test that will run entire workflows, - Added `from_json` and `to_json` from `infrasy` to allow deserialization from the CLI, - Simplify storage export for the `SiennaExporter`, - Added `row["active_power_limits"] = MinMax(min=0, max=row["active_power"])` for `ReEDSParser` --- .bumpversion.cfg | 2 +- pyproject.toml | 2 +- src/r2x/__version__.py | 2 +- src/r2x/api.py | 7 + src/r2x/exporter/sienna.py | 10 +- src/r2x/models/generators.py | 6 +- src/r2x/parser/reeds.py | 5 + src/r2x/runner.py | 2 +- tests/conftest.py | 6 + tests/data/pjm_2area/pjm_2area.json | 3409 +++++++++++++++++ ...219808dd-249b-42a6-b595-5874714ab36a.arrow | Bin 0 -> 1866 bytes ...243f8343-1cb8-4b7d-bc15-4071c9bbf6bc.arrow | Bin 0 -> 1498 bytes ...438fe77a-de0a-4efb-a7bc-4333a443eb9e.arrow | Bin 0 -> 1866 bytes ...50a58a3d-278a-4086-815b-335f0f8de9ca.arrow | Bin 0 -> 1498 bytes ...5551fac2-022d-4bc1-9a26-27023d711f11.arrow | Bin 0 -> 1866 bytes ...69f095a6-f463-432f-8d3a-8f213cf1a4f5.arrow | Bin 0 -> 1866 bytes ...6dabfb7d-f972-46ad-bf70-e0ef37ac6e05.arrow | Bin 0 -> 1498 bytes ...8138e2ac-18b6-4596-be52-8c57b67e065b.arrow | Bin 0 -> 1866 bytes ...965fbe57-347f-4236-8652-5af635201d41.arrow | Bin 0 -> 1866 bytes ...bb361b6a-b68c-471d-8ef7-adb116227983.arrow | Bin 0 -> 1866 bytes ...cfb7db62-1fef-4517-ad3c-c8ec0e190c50.arrow | Bin 0 -> 1866 bytes ...d172a186-8ec7-4090-abe3-31bbc5169dd6.arrow | Bin 0 -> 1866 bytes ...e6fba6b1-ed13-44ba-b714-9735b71f2770.arrow | Bin 0 -> 1498 bytes ...ea4f20b9-11a1-409d-a7c0-df616debe3ca.arrow | Bin 0 -> 1866 bytes ...ea9071cf-9f40-453e-ba36-d2365e92fad6.arrow | Bin 0 -> 1866 bytes ...fc686965-990b-4fb9-b905-27f096fdd432.arrow | Bin 0 -> 1866 bytes .../time_series_metadata.db | Bin 0 -> 24576 bytes tests/test_runner.py | 17 + tests/test_translations.py | 30 + 29 files changed, 3489 insertions(+), 9 deletions(-) create mode 100644 tests/data/pjm_2area/pjm_2area.json create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/219808dd-249b-42a6-b595-5874714ab36a.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/243f8343-1cb8-4b7d-bc15-4071c9bbf6bc.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/438fe77a-de0a-4efb-a7bc-4333a443eb9e.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/50a58a3d-278a-4086-815b-335f0f8de9ca.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/5551fac2-022d-4bc1-9a26-27023d711f11.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/69f095a6-f463-432f-8d3a-8f213cf1a4f5.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/6dabfb7d-f972-46ad-bf70-e0ef37ac6e05.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/8138e2ac-18b6-4596-be52-8c57b67e065b.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/965fbe57-347f-4236-8652-5af635201d41.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/bb361b6a-b68c-471d-8ef7-adb116227983.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/cfb7db62-1fef-4517-ad3c-c8ec0e190c50.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/d172a186-8ec7-4090-abe3-31bbc5169dd6.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/e6fba6b1-ed13-44ba-b714-9735b71f2770.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/ea4f20b9-11a1-409d-a7c0-df616debe3ca.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/ea9071cf-9f40-453e-ba36-d2365e92fad6.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/fc686965-990b-4fb9-b905-27f096fdd432.arrow create mode 100644 tests/data/pjm_2area/pjm_2area_time_series/time_series_metadata.db create mode 100644 tests/test_translations.py diff --git a/.bumpversion.cfg b/.bumpversion.cfg index ac34b2e3..2c226a03 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.0.0 +current_version = 1.0.1 commit = true tag = true diff --git a/pyproject.toml b/pyproject.toml index a59aaf0c..f7dad331 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ "Operating System :: OS Independent", ] dependencies = [ - "infrasys~=0.2.3", + "infrasys~=0.2.4", "jsonschema~=4.23", "loguru~=0.7.2", "pandas~=2.2", diff --git a/src/r2x/__version__.py b/src/r2x/__version__.py index 5404fb1d..95f395c2 100644 --- a/src/r2x/__version__.py +++ b/src/r2x/__version__.py @@ -1,3 +1,3 @@ # This file containts the version # noqa: D100 -__version__ = "v1.0.0" +__version__ = "v1.0.1" __data_model_version__ = "0.0.1" diff --git a/src/r2x/api.py b/src/r2x/api.py index 86ce5bf2..68d984ad 100644 --- a/src/r2x/api.py +++ b/src/r2x/api.py @@ -32,6 +32,13 @@ def version(self): """The version property.""" return __data_model_version__ + def to_json(self, filename: Path | str, overwrite=False, indent=None, data=None) -> None: # noqa: D102 + return super().to_json(filename, overwrite=overwrite, indent=indent, data=data) + + @classmethod + def from_json(cls, filename: Path | str, upgrade_handler: Callable | None = None, **kwargs) -> "System": # noqa: D102 + return super().from_json(filename=filename, upgrade_handler=upgrade_handler, **kwargs) # type: ignore + def export_component_to_csv( self, component: type[Component], diff --git a/src/r2x/exporter/sienna.py b/src/r2x/exporter/sienna.py index c568b72a..cb1d8065 100644 --- a/src/r2x/exporter/sienna.py +++ b/src/r2x/exporter/sienna.py @@ -418,15 +418,17 @@ def process_storage_data(self, fname="storage.csv") -> None: "unit_type", ] - generic_storage = get_export_records( - list(self.system.to_records(Storage)), + storage_list = get_export_records( + list( + self.system.to_records( + Generator, filter_func=lambda x: isinstance(x, Storage | HydroPumpedStorage) + ) + ), partial(apply_property_map, property_map=self.property_map), partial(apply_flatten_key, keys_to_flatten={"active_power_limits"}), partial(apply_pint_deconstruction, unit_map=self.unit_map), # partial(apply_valid_properties, valid_properties=output_fields), ) - hydro_pump = list(self.system.to_records(HydroPumpedStorage)) - storage_list = generic_storage + hydro_pump if not storage_list: logger.warning("No storage devices found") diff --git a/src/r2x/models/generators.py b/src/r2x/models/generators.py index df5fce2f..0d1ab27d 100644 --- a/src/r2x/models/generators.py +++ b/src/r2x/models/generators.py @@ -2,6 +2,7 @@ from typing import Annotated, Any +from pint import Quantity from pydantic import Field, NonNegativeFloat, field_serializer from r2x.models.core import Device, MinMax @@ -131,7 +132,10 @@ class Generator(Device): @field_serializer("active_power_limits") def serialize_active_power_limits(self, min_max: MinMax) -> dict[str, Any]: if min_max is not None: - return {"min": min_max.min, "max": min_max.max} + return { + "min": min_max.min.magnitude if isinstance(min_max.min, Quantity) else min_max.min, + "max": min_max.max.magnitude if isinstance(min_max.max, Quantity) else min_max.max, + } class RenewableGen(Generator): diff --git a/src/r2x/parser/reeds.py b/src/r2x/parser/reeds.py index 6d799b83..ddb1725f 100644 --- a/src/r2x/parser/reeds.py +++ b/src/r2x/parser/reeds.py @@ -484,6 +484,11 @@ def _construct_generators(self) -> None: # noqa: C901 row["must_run"] = ( True if row["tech"] in self.reeds_config.defaults["commit_technologies"] else None ) + + # NOTE: If there is a point when ReEDs enforces minimum capacity for a technology here is where we + # will need to change it. + row["active_power_limits"] = MinMax(min=0, max=row["active_power"]) + valid_fields = { key: value for key, value in row.items() if key in gen_model.model_fields if value is not None } diff --git a/src/r2x/runner.py b/src/r2x/runner.py index a7aea792..3a284604 100644 --- a/src/r2x/runner.py +++ b/src/r2x/runner.py @@ -7,11 +7,11 @@ from importlib.resources import files from pathlib import Path -from infrasys.system import System from loguru import logger from r2x.exporter.handler import get_exporter +from .api import System from .config_scenario import Scenario, get_scenario_configuration from .exporter import exporter_list from .parser import parser_list diff --git a/tests/conftest.py b/tests/conftest.py index 081d5c92..b3609028 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -13,6 +13,7 @@ DATA_FOLDER = "tests/data" OUTPUT_FOLDER = "r2x_output" DEFAULT_SCENARIO = "pacific" +DEFAULT_INFRASYS = "pjm_2area" @pytest.fixture @@ -31,6 +32,11 @@ def reeds_data_folder(pytestconfig): return pytestconfig.rootpath.joinpath(DATA_FOLDER).joinpath(DEFAULT_SCENARIO) +@pytest.fixture +def infrasys_data_folder(pytestconfig): + return pytestconfig.rootpath.joinpath(DATA_FOLDER).joinpath(DEFAULT_INFRASYS) + + @pytest.fixture def default_scenario() -> str: return DEFAULT_SCENARIO diff --git a/tests/data/pjm_2area/pjm_2area.json b/tests/data/pjm_2area/pjm_2area.json new file mode 100644 index 00000000..ffc1ba22 --- /dev/null +++ b/tests/data/pjm_2area/pjm_2area.json @@ -0,0 +1,3409 @@ +{ + "components": [ + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "Area" + } + }, + "available": true, + "category": null, + "ext": {}, + "load_response": 0.0, + "name": "init", + "peak_active_power": 0.0, + "peak_reactive_power": 0.0, + "uuid": "085faa90-9594-432b-a819-583a8a2f3c28" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "Area" + } + }, + "available": true, + "category": null, + "ext": {}, + "load_response": 0.0, + "name": "Area2", + "peak_active_power": 0.0, + "peak_reactive_power": 0.0, + "uuid": "11bfd9ec-4d2c-4ee5-98e9-7f590cf580ca" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "LoadZone" + } + }, + "available": true, + "category": null, + "ext": {}, + "name": "init", + "uuid": "7e902015-b6b7-43c0-a468-880ddf69dec1" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "LoadZone" + } + }, + "available": true, + "category": null, + "ext": {}, + "name": "Area2", + "uuid": "11cbfd75-6c03-46de-b78c-0bad9285ab19" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "085faa90-9594-432b-a819-583a8a2f3c28" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PV", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "7e902015-b6b7-43c0-a468-880ddf69dec1" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeE_2", + "number": 25, + "uuid": "d1a7bb26-c7fb-43f4-b8a9-5899416a3131" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "11bfd9ec-4d2c-4ee5-98e9-7f590cf580ca" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PQ", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "11cbfd75-6c03-46de-b78c-0bad9285ab19" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeB_1", + "number": 12, + "uuid": "3b49a132-bed9-4499-9a85-62bdf7aded88" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "085faa90-9594-432b-a819-583a8a2f3c28" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PV", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "7e902015-b6b7-43c0-a468-880ddf69dec1" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeA_2", + "number": 21, + "uuid": "9bb3e450-adcf-497b-a5ad-e7747a282967" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "11bfd9ec-4d2c-4ee5-98e9-7f590cf580ca" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PV", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "11cbfd75-6c03-46de-b78c-0bad9285ab19" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeA_1", + "number": 11, + "uuid": "cb15615b-af86-4cb8-a2dc-22cca168f423" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "085faa90-9594-432b-a819-583a8a2f3c28" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PQ", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "7e902015-b6b7-43c0-a468-880ddf69dec1" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeB_2", + "number": 22, + "uuid": "0cc6551f-815e-47a9-b24b-971869a237a1" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "11bfd9ec-4d2c-4ee5-98e9-7f590cf580ca" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "REF", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "11cbfd75-6c03-46de-b78c-0bad9285ab19" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeD_1", + "number": 14, + "uuid": "f2409a01-6bc5-476e-b495-c72ad24a134c" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "11bfd9ec-4d2c-4ee5-98e9-7f590cf580ca" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PV", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "11cbfd75-6c03-46de-b78c-0bad9285ab19" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeE_1", + "number": 15, + "uuid": "381ad0cf-b7e4-42fb-90f0-da4323b2b984" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "11bfd9ec-4d2c-4ee5-98e9-7f590cf580ca" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PV", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "11cbfd75-6c03-46de-b78c-0bad9285ab19" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeC_1", + "number": 13, + "uuid": "a39544e9-15e4-4782-a665-f57f41763bbf" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "085faa90-9594-432b-a819-583a8a2f3c28" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "REF", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "7e902015-b6b7-43c0-a468-880ddf69dec1" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeD_2", + "number": 24, + "uuid": "ef2108d0-e91e-4acb-a97f-04de7feabee0" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "base", + "type": "ACBus" + } + }, + "angle": null, + "area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "085faa90-9594-432b-a819-583a8a2f3c28" + } + } + }, + "available": true, + "base_voltage": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Voltage" + } + }, + "units": "kilovolt", + "value": 230 + }, + "bus_type": "PV", + "category": null, + "ext": {}, + "load_zone": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "7e902015-b6b7-43c0-a468-880ddf69dec1" + } + } + }, + "magnitude": 1.0, + "name": "Bus_nodeC_2", + "number": 23, + "uuid": "e3ea2277-867e-4549-b9ff-384d74c97913" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "e3ea2277-867e-4549-b9ff-384d74c97913" + } + } + }, + "name": "5_2", + "r": 0.00297, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 40.53 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "ef2108d0-e91e-4acb-a97f-04de7feabee0" + } + } + }, + "uuid": "18967bd0-4649-43e2-a784-3d6840beb0b9", + "x": 0.0297 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "ef2108d0-e91e-4acb-a97f-04de7feabee0" + } + } + }, + "name": "6_2", + "r": 0.00297, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 2 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "d1a7bb26-c7fb-43f4-b8a9-5899416a3131" + } + } + }, + "uuid": "4ff5babe-e6eb-446b-93ee-efd6a3f96ffe", + "x": 0.0297 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "9bb3e450-adcf-497b-a5ad-e7747a282967" + } + } + }, + "name": "1_2", + "r": 0.00281, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 2 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "0cc6551f-815e-47a9-b24b-971869a237a1" + } + } + }, + "uuid": "5398f054-6d62-4305-9d9c-3673936143f4", + "x": 0.0281 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "cb15615b-af86-4cb8-a2dc-22cca168f423" + } + } + }, + "name": "1_1", + "r": 0.00281, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 2 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "3b49a132-bed9-4499-9a85-62bdf7aded88" + } + } + }, + "uuid": "b696f77a-0ba6-40ac-8423-69856a5df948", + "x": 0.0281 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "f2409a01-6bc5-476e-b495-c72ad24a134c" + } + } + }, + "name": "6_1", + "r": 0.00297, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 2 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "381ad0cf-b7e4-42fb-90f0-da4323b2b984" + } + } + }, + "uuid": "238921d1-54e9-4029-b1df-dbf665f33064", + "x": 0.0297 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "0cc6551f-815e-47a9-b24b-971869a237a1" + } + } + }, + "name": "4_2", + "r": 0.00108, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 11.148 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "e3ea2277-867e-4549-b9ff-384d74c97913" + } + } + }, + "uuid": "4dae6600-5bb8-466f-80a3-e96a7dc59bc6", + "x": 0.0108 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "cb15615b-af86-4cb8-a2dc-22cca168f423" + } + } + }, + "name": "3_1", + "r": 0.00064, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 18.812 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "381ad0cf-b7e4-42fb-90f0-da4323b2b984" + } + } + }, + "uuid": "ea53b4b9-0391-442a-ba3c-052ef42d5346", + "x": 0.0064 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "3b49a132-bed9-4499-9a85-62bdf7aded88" + } + } + }, + "name": "4_1", + "r": 0.00108, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 11.148 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "a39544e9-15e4-4782-a665-f57f41763bbf" + } + } + }, + "uuid": "9bac7d2c-866b-4d24-a4b4-2d39d376f35a", + "x": 0.0108 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "a39544e9-15e4-4782-a665-f57f41763bbf" + } + } + }, + "name": "5_1", + "r": 0.00297, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 40.53 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "f2409a01-6bc5-476e-b495-c72ad24a134c" + } + } + }, + "uuid": "c55f3063-b15c-4ebb-ad02-3b48856c9b4e", + "x": 0.0297 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "9bb3e450-adcf-497b-a5ad-e7747a282967" + } + } + }, + "name": "2_2", + "r": 0.00304, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 2 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "ef2108d0-e91e-4acb-a97f-04de7feabee0" + } + } + }, + "uuid": "c25054f6-29a7-4b67-8655-e4d75c7b8c67", + "x": 0.0304 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "9bb3e450-adcf-497b-a5ad-e7747a282967" + } + } + }, + "name": "3_2", + "r": 0.00064, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 18.812 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "d1a7bb26-c7fb-43f4-b8a9-5899416a3131" + } + } + }, + "uuid": "267f3a8d-84e1-4290-ad64-0fd4d2fbea70", + "x": 0.0064 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "Line" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "cb15615b-af86-4cb8-a2dc-22cca168f423" + } + } + }, + "name": "2_1", + "r": 0.00304, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 2 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "f2409a01-6bc5-476e-b495-c72ad24a134c" + } + } + }, + "uuid": "9c020d1a-160a-42ec-a37e-ac8651eb22cd", + "x": 0.0304 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "MonitoredLine" + } + }, + "available": true, + "b": null, + "category": null, + "ext": {}, + "from_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "a39544e9-15e4-4782-a665-f57f41763bbf" + } + } + }, + "losses": null, + "name": "inter_area_line", + "r": 0.003, + "rating": null, + "rating_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": -1000 + }, + "rating_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 1000 + }, + "services": null, + "to_bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "e3ea2277-867e-4549-b9ff-384d74c97913" + } + } + }, + "uuid": "0f0fc666-cbc1-40a0-9758-ac11a09c8810", + "x": 0.03 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.branch", + "serialized_type": "base", + "type": "AreaInterchange" + } + }, + "available": true, + "category": null, + "ext": {}, + "from_area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "085faa90-9594-432b-a819-583a8a2f3c28" + } + } + }, + "max_power_flow": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 150.0 + }, + "min_power_flow": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": -150.0 + }, + "name": "1_2", + "services": null, + "to_area": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "Area", + "uuid": "11bfd9ec-4d2c-4ee5-98e9-7f590cf580ca" + } + } + }, + "uuid": "deba583e-c8c8-40a9-9386-2ab6b45e52e7" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "cb15615b-af86-4cb8-a2dc-22cca168f423" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 0 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 0 + }, + "must_run": null, + "name": "Alta_1", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0.4 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 2.0, + "startup_cost": 4.0, + "unit_type": "ST", + "uuid": "e86ce5e7-9388-4d59-9dda-3a1baf0d571a", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "381ad0cf-b7e4-42fb-90f0-da4323b2b984" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 3 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 5 + }, + "must_run": null, + "name": "Brighton_1", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.1125 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.1125 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 6 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 0.75, + "startup_cost": 1.5, + "unit_type": "ST", + "uuid": "1abdec23-2f52-43a0-ac9f-f8f98a9a4cf7", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "9bb3e450-adcf-497b-a5ad-e7747a282967" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 0 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 0 + }, + "must_run": null, + "name": "Alta_2", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0.4 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 2.0, + "startup_cost": 4.0, + "unit_type": "ST", + "uuid": "ad230747-f4d2-4b97-9991-7a2d1b62873b", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "d1a7bb26-c7fb-43f4-b8a9-5899416a3131" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 3 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 5 + }, + "must_run": null, + "name": "Brighton_2", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.1125 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.1125 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 6 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 0.75, + "startup_cost": 1.5, + "unit_type": "ST", + "uuid": "d932899b-c69e-4e82-aaa7-718349888d0e", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "9bb3e450-adcf-497b-a5ad-e7747a282967" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 1 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 2 + }, + "must_run": null, + "name": "Park City_2", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.04425 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.04425 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 1.7 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 0.75, + "startup_cost": 1.5, + "unit_type": "ST", + "uuid": "969bdcd1-7c09-4fb2-860b-24138262d779", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "a39544e9-15e4-4782-a665-f57f41763bbf" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 2 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 3 + }, + "must_run": null, + "name": "Solitude_1", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0624 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0624 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 5.2 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 1.5, + "startup_cost": 3.0, + "unit_type": "ST", + "uuid": "16dd6569-b77b-4ab5-897b-90aa26f46e30", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "cb15615b-af86-4cb8-a2dc-22cca168f423" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 1 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 2 + }, + "must_run": null, + "name": "Park City_1", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.04425 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.04425 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 1.7 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 0.75, + "startup_cost": 1.5, + "unit_type": "ST", + "uuid": "6b91891c-1888-4ff9-bf1c-255e872f2803", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "f2409a01-6bc5-476e-b495-c72ad24a134c" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 1 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 2 + }, + "must_run": null, + "name": "Sundance_1", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0375 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0375 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 2 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 2.0, + "startup_cost": 4.0, + "unit_type": "ST", + "uuid": "04e00fde-1afc-49e6-a375-b9655054045d", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "e3ea2277-867e-4549-b9ff-384d74c97913" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 2 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 3 + }, + "must_run": null, + "name": "Solitude_2", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0624 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0624 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 5.2 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 1.5, + "startup_cost": 3.0, + "unit_type": "ST", + "uuid": "8e91675c-78df-4e01-bd77-ec1057647cf5", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "ThermalStandard" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 100 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "ef2108d0-e91e-4acb-a97f-04de7feabee0" + } + } + }, + "category": "thermal", + "ext": {}, + "forced_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "fuel": "coal", + "mean_time_to_repair": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 10.0 + }, + "min_down_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 1 + }, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Time" + } + }, + "units": "hour", + "value": 2 + }, + "must_run": null, + "name": "Sundance_2", + "operation_cost": null, + "planned_outage_rate": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "Percentage" + } + }, + "units": "dimensionless", + "value": 0.0 + }, + "prime_mover_type": "ST", + "ramp_down": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0375 + }, + "ramp_up": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "PowerRate" + } + }, + "units": "megawatt / minute", + "value": 0.0375 + }, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 2 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": 2.0, + "startup_cost": 4.0, + "unit_type": "ST", + "uuid": "886df1a8-5586-463f-9f5f-03f05af9f1d9", + "vom_price": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "VOMPrice" + } + }, + "units": "usd / megawatt_hour", + "value": 0 + } + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "RenewableDispatch" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 384 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "a39544e9-15e4-4782-a665-f57f41763bbf" + } + } + }, + "category": "solar", + "ext": {}, + "forced_outage_rate": null, + "mean_time_to_repair": null, + "min_down_time": null, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": null, + "must_run": null, + "name": "PVBus5", + "operation_cost": null, + "planned_outage_rate": null, + "prime_mover_type": "PV", + "ramp_down": null, + "ramp_up": null, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 1 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": null, + "startup_cost": null, + "unit_type": "PV", + "uuid": "af761c59-2c58-4fc1-9446-abae962b8e13", + "vom_price": null + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.generators", + "serialized_type": "base", + "type": "RenewableDispatch" + } + }, + "active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 451.0 + }, + "active_power_limits": null, + "available": true, + "base_mva": 1.0, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "9bb3e450-adcf-497b-a5ad-e7747a282967" + } + } + }, + "category": "wind", + "ext": {}, + "forced_outage_rate": null, + "mean_time_to_repair": null, + "min_down_time": null, + "min_rated_capacity": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 0 + }, + "min_up_time": null, + "must_run": null, + "name": "WindBus1", + "operation_cost": null, + "planned_outage_rate": null, + "prime_mover_type": "WT", + "ramp_down": null, + "ramp_up": null, + "rating": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 1 + }, + "reactive_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ApparentPower" + } + }, + "units": "megavolt_ampere", + "value": 0 + }, + "services": null, + "shutdown_cost": null, + "startup_cost": null, + "unit_type": "WT", + "uuid": "73951f45-a38a-4516-b13f-41e4c0422940", + "vom_price": null + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.load", + "serialized_type": "base", + "type": "PowerLoad" + } + }, + "active_power": null, + "available": true, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "ef2108d0-e91e-4acb-a97f-04de7feabee0" + } + } + }, + "category": null, + "ext": {}, + "max_active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 3.8018438042 + }, + "max_reactive_power": null, + "name": "Bus4_2", + "operation_cost": null, + "reactive_power": null, + "services": null, + "uuid": "5b803789-f084-489b-9f62-7120f99b1e8a" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.load", + "serialized_type": "base", + "type": "PowerLoad" + } + }, + "active_power": null, + "available": true, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "e3ea2277-867e-4549-b9ff-384d74c97913" + } + } + }, + "category": null, + "ext": {}, + "max_active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 3.6900248687 + }, + "max_reactive_power": null, + "name": "Bus3_2", + "operation_cost": null, + "reactive_power": null, + "services": null, + "uuid": "46de99fd-af6c-4e25-b1ba-8bff64b7bbd3" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.load", + "serialized_type": "base", + "type": "PowerLoad" + } + }, + "active_power": null, + "available": true, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "0cc6551f-815e-47a9-b24b-971869a237a1" + } + } + }, + "category": null, + "ext": {}, + "max_active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 3.6900248687 + }, + "max_reactive_power": null, + "name": "Bus2_2", + "operation_cost": null, + "reactive_power": null, + "services": null, + "uuid": "e927cdd1-5683-4069-ad00-9c28223fed63" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.load", + "serialized_type": "base", + "type": "PowerLoad" + } + }, + "active_power": null, + "available": true, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "3b49a132-bed9-4499-9a85-62bdf7aded88" + } + } + }, + "category": null, + "ext": {}, + "max_active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 3.6900248687 + }, + "max_reactive_power": null, + "name": "Bus2_1", + "operation_cost": null, + "reactive_power": null, + "services": null, + "uuid": "d79e1942-ad28-44ab-8ece-35e9038a3590" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.load", + "serialized_type": "base", + "type": "PowerLoad" + } + }, + "active_power": null, + "available": true, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "f2409a01-6bc5-476e-b495-c72ad24a134c" + } + } + }, + "category": null, + "ext": {}, + "max_active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 3.8018438042 + }, + "max_reactive_power": null, + "name": "Bus4_1", + "operation_cost": null, + "reactive_power": null, + "services": null, + "uuid": "6ce90e5a-5210-44ad-bedf-0069311a7b14" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.load", + "serialized_type": "base", + "type": "PowerLoad" + } + }, + "active_power": null, + "available": true, + "base_power": null, + "bus": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "ACBus", + "uuid": "a39544e9-15e4-4782-a665-f57f41763bbf" + } + } + }, + "category": null, + "ext": {}, + "max_active_power": { + "__metadata__": { + "fields": { + "module": "r2x.units", + "serialized_type": "quantity", + "type": "ActivePower" + } + }, + "units": "megawatt", + "value": 3.6900248687 + }, + "max_reactive_power": null, + "name": "Bus3_1", + "operation_cost": null, + "reactive_power": null, + "services": null, + "uuid": "bfd1c39f-77c5-481a-a532-a7f66dc6eb63" + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.services", + "serialized_type": "base", + "type": "Reserve" + } + }, + "available": true, + "category": null, + "direction": "UP", + "duration": 3600.0, + "ext": {}, + "load_risk": 0.5, + "max_requirement": 0.0, + "name": "SpinUp-pjm", + "region": { + "__metadata__": { + "fields": { + "module": "r2x.models.topology", + "serialized_type": "composed_component", + "type": "LoadZone", + "uuid": "7e902015-b6b7-43c0-a468-880ddf69dec1" + } + } + }, + "reserve_type": "SPINNING", + "time_frame": 3600.0, + "uuid": "add37ab8-f42d-40d0-b738-da7987f44566", + "vors": 0.05 + }, + { + "__metadata__": { + "fields": { + "module": "r2x.models.core", + "serialized_type": "base", + "type": "ReserveMap" + } + }, + "available": true, + "category": null, + "ext": {}, + "mapping": { + "SPINNING": [ + "WindBus1", + "PVBus5" + ] + }, + "name": "pjm_reserve_map", + "uuid": "0954956f-bcb2-4af4-8da3-91bfbb5d0e7c" + } + ], + "data_format_version": "0.0.1", + "description": "Test system for PJM", + "name": "pjm 2-area system", + "time_series": { + "directory": "pjm_2area_time_series" + }, + "uuid": "568011de-c5e4-4aa9-b381-a14c2e632d9f" +} diff --git a/tests/data/pjm_2area/pjm_2area_time_series/219808dd-249b-42a6-b595-5874714ab36a.arrow b/tests/data/pjm_2area/pjm_2area_time_series/219808dd-249b-42a6-b595-5874714ab36a.arrow new file mode 100644 index 0000000000000000000000000000000000000000..df62d9efb296b2997278877192d19582a4551fc7 GIT binary patch literal 1866 zcmc&#jXRZR7=If|b=sU*Xss-!vXIXx{Cri?R4hr7oJvcfvMx$!tFXQ(>PRBVd_>aH zEY`=NrJ|hG#`-v4ocB2IagdU;kFw`IZP(ggu=~31-~0TYkNdfw=X&1X?G+TXB*c!Q zhKc1;6lFl1qQ+1hY9ysc>5~?*5xRs^gy|F1{ToR)VMfFa2jSC?5X>(*J@JG%0$9ql8Xt$9waPS#E?vmIyKIY#mvoFgd`i;Xu@yXqY+ zviW6@7P}v79BKj?XEWqzccpZ6DHGD~siz$#FotlBHe2=#Y#wYrWyJrnHCrO1y zyVbWHTN&gDGQT`z&cIr*+UH!Y68zV~SI@uN^&ke0w;N`Bt^zR^9nY}g)t&#?z> zO-l=HRx&smYxA;z*NuT&r7I(>X^j1JO2WkOE=a~7P9Jrq6WJX$9Wp-|CiyILb^cj` zdq*r$F4Ek5h=!=*XJi!1xS$ds)QfhCWYszgNZfeod|rs`2{aY zj<4Jvj1j14T$BEKWb0N1s*ZXkgkDrY5UaL7VWmLj(29nG+i6^halfrLr=ho-YuS)Q zW8XINRV7@ znw1(ShV<2e8 zOY!iYNLaRu#@XyY`VSoL#><&8s`hhABnlnAQ0g;?xs@C9Ae=#pnWgVzF$2Tt?P0D> z3<|As9?koWfze>$-Hsp?PP8EkQt7($w_1 z5(IL+7A!H7KwDXt*16JSM@u`&|*484I8LxoP$+&htM~SAWgO~Mu892$Fty!DT zAbl`rX?zufnu3vAxg89am7ICE(St$K46ZuPfkC$5c0yJO14&52?(186@J4<5VVG!h zY)5Jz;u9@}&8O99{Q3s}Qj-eXzl%FH5Tb;RFqhG}Lc@8mZ0$#z<(PKjie#cvhDFYP z>2nkkG&GE^K3gHi*H({H4Amk`*Wm*%LZhI7zBWrfq{#Ghk=cOm4O4u0s=-BAfExq;{cK@P!cE%W z0FdMWs%HnQ5`db)$P6;e2CM@}0D%e+8<`lVSs0rb>l!8}S?HQ1nWyL`B^#RRni!ZH zCR-*YrI{rqGXTv3na2j!#RMin?&|=uK=y$E4}%y`9^^tEu&oTtEDRDr@e9mgX&}J` z<=Gykv24cXD{?2FT(_6{q;XX9_F?-jetr&@w@aYv zDRT=x-GkMgqwc~NYY4f~a6*IyHWsLS0f~dk2p(W511f=dfILvS2P*R{fTRYP1t||! ZfP{fy0)#>;cOU`-RaPDVTJH!h(*b3W=~Ms! literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/438fe77a-de0a-4efb-a7bc-4333a443eb9e.arrow b/tests/data/pjm_2area/pjm_2area_time_series/438fe77a-de0a-4efb-a7bc-4333a443eb9e.arrow new file mode 100644 index 0000000000000000000000000000000000000000..31c5f0e54e6c64b7158d6773d35237d1592e0ed4 GIT binary patch literal 1866 zcmc&#jXRZR7=Ihe>eQT4Xnk1BHVbj&qww?9mraW$lO#v96e{bY;ApZ@Ah*Q*PibIX03@Ag=A~r&waEdTPg8F|W=_bsWxDi1^GJlkAmeJoaM(DAz z+;l4l5VIui$a9H~a(0feSsgVi!p1Qwnr{=~%#XBjQ=p_ zLpHxG(qi{xjYCZ$<7|c;-L90LK4nV!Jq>ij1V$6i(Phh?fz5->=M?dO>~-XS*nhwO z#(90tH`lQWw#7 zaeIIE9dmstQbW)6K1`6{`!TD`w?s&={neRiRsK>Od|4_8YLmh9*q)@C@=gRiS^t!u ztiU&JcSj4=G%m}2-@kFA5>*Gh5<|XMLKvrUIAX0t<Ct*-;b*g9~==K9H{1;h>MVcd#89;(A7>@J4MYbSfjwb*v{&=vS_&c z797%6sKlmvld^Y0l$btZ*ta-|#OjmuqNIaMp$&=ZY1yKK3_S!^l0s_LMc+J z&2rM>C6K+`o$|q1F|w=7&GL7Mk)~~ym8_8RVWJe-{9%bKp-F8drwH-Q>7Ml-fGBJTFlnoWDqvug8R&N21-GRj~7pkh8oM# zu!J7a{YlFz4)x(-^WlmTyFR#UV5KRQJ<$_*qd{! zE?j}F)mfrF0Sathp6_P}}uT+K%Vz1}L-VI}rYHsEGK*C_chwY)R zO$>^x58j{m2Lt25qFWt-Y8-c)qR3--)DFjWJAQNp$4 zFV*nA#Lc&iR-tE^Bq3Z$Bd0mtD)5p5djrl~>T&GEQ2D8-mK+(jmydE4S4-g^nmi+O zt`q@WuLYl(OCeb}Jhb(Y6a&`Z-SnxIBhJn;j~TCo&(ZjH0Y`PD^KVB7C zz#wz*;F5$Y1~r8vH*z}|EG<1TuF-=*@<&`vJdZ)H@J3=zDFbP6V)~U0J$S7?{g{ws zduU5q9}<$RM9s%FX#Do7;9Qd$n}3WyHV~|Wo+yveyGX-n@Koe`>lOIm$VKU7l^mZq zEzF#wl%k>G?dp>i5`1g@Aa#O9jOm+e>Vq$eVY*~$Z#;QF{kCI$Ect32^?2eJ#3%P( zH#XQ$PYG7f*)y}6%pt1IDn5rWw$89M#)aUAy4HX7H-{Z2_NG3w{Qs&=SIFL8x*GZy Do+s#7 literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/50a58a3d-278a-4086-815b-335f0f8de9ca.arrow b/tests/data/pjm_2area/pjm_2area_time_series/50a58a3d-278a-4086-815b-335f0f8de9ca.arrow new file mode 100644 index 0000000000000000000000000000000000000000..73601aff7f9db1167b5a2147b686a801e80f8fba GIT binary patch literal 1498 zcmZ<^3i1y(WMKFY1Tz>I7zBWrfq{#Ghk=cOm4O4u0s=-BAfExq;{cK@P!cE%W z0FdMWs%HnQ5`db)$P6;e2CM@}0D%e+n;ImVS|l2$=o*<@B<=Gykv24cXD{?2FT(_6{q;XX9_F?-jetr&@w@aYv zDRT=x-GkMgqwc~NYY4f~a6*IyHWsLS0f~dk2p(W511f=dfILvS2P*R{fTRYP1t||! ZfP{fy0)#>;cOU`-RaPDVTJH!h(*c>}=&S$$ literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/5551fac2-022d-4bc1-9a26-27023d711f11.arrow b/tests/data/pjm_2area/pjm_2area_time_series/5551fac2-022d-4bc1-9a26-27023d711f11.arrow new file mode 100644 index 0000000000000000000000000000000000000000..db5e9193d619dcfd3bf81c29a349fd0e098da3ed GIT binary patch literal 1866 zcmc&#i(8CY82@Y+Vc3SKT%$I$y3C}A>erQIL#-r9Dzc(NJVh!Nl}k!tl9Z%PDap!4 zt;>`Zy3Mj%>oT{RZ<=qKN~Bqf_M5@8`~~|y&-?q%?_A#Vp7WgV_d5IdEcIg%#2{^1 z1VQN1P7uQh2BA%85ju2>wjr7{CupWaqvl7XyJ@CJyDp77^!%afS-Kx%4AD@1SR6~>~o(N@RPRjjH@o z=$2|fl`)8MA2VdAcO^752?M&{NlQIU!*H52)Y+=epvps)&js2)*@wuV*q7h`;(R#g z=j&86`oBCvXO^Tr~B`15VTX+|)jcE;Rn%#w#x@CD5 zt0-hdTD;B;=|tbXqE$iWBu0EUC1!kJ2ZW=KCJ#N=j?6ZTHnE2o6J3|v+5RC!)3LN> zBTXR^05#vY&_Fk zblJ2MaU)y!zcS^p-{awXpq_%kG^OSDrJY!wIXNV$n?z>7K1TOk32f#)+dVSB9Wxzo zX}hg#$GwQ|^_6c#s2uMfR&z**b@3gkt5^c`GM7Adu;-(pamVVnx1QtVf&s~$g6Ehp z|Ng_h-hAxpyQDkpwg4IBjB}B}A~2it5Bc6{hnemASveadcpTAQ{#6Qzxqtfkx8zE( zty;h6Ykw)G3>kFGk0o*UKz@uTi$tHEe%LAn3I1T4tZuaoR;z;s#=Fb#q{@0tu6`$8 zWZU$GThRC5HQH-%6N$#`2g=R2J8*1H;;vxh4m=9AesI)H3}+2ec_>$i_;SPa#3%to z?+(XLzsyHknUP`kem)YF^`e3e0z?*_bJ}!5gsbc{$Ef2H9BV8sbC64MN}P1qB29+8 z0Iw}hUKBXu;oXn9^m{5*qRK@M(HdhL^!6o6*m9%=?%)5 zaBLI9Fz-Dtc(Mo`tpg$cgb*z*#u@7v0yHV==Jav+P@LD?l6hEw(?=JN@KuQLxQWlZ zu$#pB%zt_hAMM2JSrPKqi!#LWthdW_C`8=Lig*-AA;HMh?Wusmm>I1Bc6Ai;%#J^C z|C@qdf8N73A34t2Pn2X)U0Bkf`!tp8!S#fq+PU^U=nl~A(VCqOz+z)cN++=2( zgvrpgLJ%D!C6Qjg$JFPh1gYMaZg$OX$3XFg^$qDF>?$1fMcDybQ9Dnw1q zu=4XI0vt4ZnlMJe$CMov)qXelFjzJzbm2Gw*pXc0k~|S^{oWouw2(w;uVsu2twRgm zZZ+J^k-<$_Rb1RF!+!m5xK_>-ct(p36(m!*n`@;(uAopd%Fe=IJB6?bo_bmI|9bXC zZFoh07qd5`lR2Prw*Dtq43cCGydyRYm1z0dFYxS#uZuIK&TUV(vM1lv>8 zAh8^ZqKt@B)Ch`04W$eyL((EPM4xbqFhhd+ehv9a8A zD+my?B<}3WpYG}u;cUZqbmrMO@*Ma!E~|JEHZFVzdtMaZKEjdjM3Go*yrH^P@9B`u zFN3t${aE8rrKeAsl73GE-7tX>gmZM+vS(oPVDmXc{2zN8`5*S*@4s>0 zp7Y&x?962IT4tYCj*K-X^V9e;G)K?D{Mk~hKGWx)`$NwRgJ4*7HR|nG z+;(hckSomGvEPD$jc|p}*=iL8Z$z)3A6MZgkt9DYfx+aw+;P6qUAQ#1HSC^a7g`z? z71%Cga46RHWqxEQ`fimh3%8*$^7F|F6T&(m9djUk*r|48x7oJI=gBeAXR)jEFH+n) zn0en^Uy78_i``G+CActhrTLZ!33k3YH>tv3io>sq1wkz`c%ImoSXJ7NfamL9L?$Wl zjoX6}LN$$RvfmDF+^9swA+Lmx3rYxMH4ewDl_(!rTDNaAjVm$kw>1_t47PKv>XK-z zJ#oL}yj3TXMzx54IotIx;;{?O77Ud%wB?C?!t%eZelbwZ(jcD+EW~zGoZLp z^b{Y=x_x&?fEZi*&KV8AF2SKn&Z*c48MyZg_XOQ&hqd$SX?bfDco@@O`CbMMmtTWJ zTJn|HRBKZ5euxs2hYb1_CepaMt1!XOo<^Us34fV}hIp_|)v#QJ>C3|hCd^jhQ4McJ zzDXyZ%GYzpBE#u!rUzPTQO3#jk2OO62z9A@?3XBhKmlF9&v{iIM`fX;jUKVm^^K- zZKetZq5c~@{TT@4Bf1|7$$Ki-qQ+Yd*$N9M?HvYTLoT~dYh|Dm6#01Z)TpbnEDnqB z0^OUqr0hr!o-`gUE3)f>Yw?>p(G(3h#ye9L4r*kE<_RsvtMJd`H#QR!h$ROrcPRxTa1}WxNzKe|4d z!20l`*}pR|?k~987O2Kaw~2}zrV9(3j2`c&dvH0Wq~67?2i>9iJq90YATWx*ne>$! z-dDM~mV6bumPq2ml{B&%w_62XRbYR>xvO1{?HDLMv$`ouhMlFuT*Z}A_=hG=rCs^y5av&><}DB*KFu2sNMp@F~el7TM+C;79LQF#o~ z`wuUQuV7G>KXfCvjltsLQ={uW7$kkl)x_}_WD9R6WEC@z1}AL4zM%_m)u$I@6K#)d zN$o*=qLrxeqz3i7ZwM|nsImEnxD$QBD(H!F7`-brocqs2OGCAC2)upT9g&YaP8;z_+iB~%6sh+ zyonCYd9~4On?MC$ZB1!uuL|Fqd?cLi#Xw{}e@{_5gPZx&_2?xG%0|1|ntsiI|AC)z z4*6eCKC6$e>hHp)K%SYGxCi6xGj1&D>4tWpv)>rI7zBWrfq{#Ghk=cOm4O4u0s=-BAfExq;{cK@P!cE%W z0FdMWs%HnQ5`db)$P6;e2CM@}0D%e+o24Wsr6rlC=%!hk8|j*uC8p>mrI{P(rW&NC z8Jj02o243Wy#L|P4-j&i|6Z=uCvz-Ji6@1n+^7VrikP`vD{>TH|Rxn{rYY8 zyn0%57i`>SzuaoZjiOgu?Wabj@mwt4W^d}Z)}rzDcKb7{&R)?r0;L1KqU|lkOwOF lKxLim9*mIsg$Y4HWUS;*Ik4L@JCvZ+{-BsoUQLe08ZLajodl-iL*l8H!K znqqw%S}Mv}Hn!UN;=IRskAsw)waT9NRM*yDu=~31-~0TYkNdfw=X&1X?G+ffB-oy! zhKc1;6lFx5qQ+1hY9wVq8Il&U5&DEvgc%ale}$x*Fk|9I1P#gjQMy@1uVReQV`I7L zRuCX&N!-QW(Iv_uBGSg*h0n8ba(3m}@S~g^Y+NFp=ka;-qUQ3P`4ox8#v7?y^_C9V z{4z<4-H$a6HJOaF8FF;HQhNH7De3n#&q4u#9!OX$gkO(-+$x0 zJm-Jcu`^T5>zKV-IWpIpEJ}}-p(SPk7R{Gp9j7Jjv5f>t7b^3c2gLAoobPEWlE6LH zB&O@G3}fwnkU#oBftq!7r|0B#gBrYd)_}{vA*QZ5pq_!DY<>9C8EOa)cp-ZJ=%@-mizEfA{7G?O}JEdeGXq zw9s}XgM)FlPYU?m7`RcoGTes7*iWY?P6_LRbi)3OQ71Z)(_z~oUns}BKFeHrze;iE zK-OJzeJN5y&-Xq^kl@_dHRj($NU;6InQ4{&QXG0-A_!`g!SmSOr0TLx1Uy>*n4he` zw{G{w2-P&M$bLVtaibEI2fY$Q&M6^`(>NTlR-$5PMg87QG%m%u-_%&pFxbkqs!yh| z?%3VZvsT?m9@i@ViK~X&)`dYkn;4kR(As@g(T!y})A;GVG;%_>b9!AAaQ^VYmT^U$ znC)?8r0a9!~F24nb zv=%7wRh>!c+aXF!A2IA(ltknD&Z0y=dm01ACebT3G{nOls>W3+%v}{eG-bXDf7Cjz zE->lF!#wAK7+Z1={uBI%zogNUcT2neY8MX7OWPb_(S>`Fj<@#v%HgF)Yj+n&ky2%r zofa>F?D?LQnP0AzN+Xti8n`Y{W(PIqeLTf?^*pM>XoJEla`@ zdO-IlEiXUZhX+mHl^5If!L{T?z34p+IL6!46b@=+h2{$_Cadt=`)rE(0u967?Ax{B z3T&>*O!erH!>sUyC}NrnUF}2s5K4+xZ;OMUb0oNh~E;)j(jBa6S18 zHM}o#^DLuP=vgjF2v^d`ZrW-Ucv*pc0cS4vICWyE>{L{9whY_LM!AZsr0@?-o{{m9 z6aieXkC&KBAz3&)wE3_U1J>W)@~M#{&dxHInV^Kv(fD=&M}@}dy%!98892)yu8GWN zkTG~@X+kA~>VlCQxg89am7Eyg;K3kyHdhnx$RI~}Gcmh_fiyUA>(vcCc&R@9n3!aH z_?xsoBqUjhnvQGGuvf=OQ%MDJXr#VIH5&(p$u1k=}Z_^LZhPJ zF43Fl(1K?h&9(?s@YU9qmG!Hz!{mM8TrUP9^F_OhGZT*3%lmqvUCi^FK;BQk?KmGxz8Xh89{C0F$^F-k z3-;4fg4J{O%&aDJh^n)S&moMhGi;4W!;ey_W~|H42!g6O9$ ziy#O?+6iJX!65VrJ;H!)(KbMr<^;_QXw?0PbT`e6Xg8$MfSx~4JInB6i~%~DSkBrN zG|*;2yAy}a4PV2aVa;-w!L@dzB5+-!No1S)>#rbf~ z&(~>YCYV)I2h~!ft~H*Q%$1-qVm9V^i?NQ;nDok8gt#kZISoBRc(J_QOavmhBpOGw zJ(OUG?a$Je-^x(AuKN76>~;{nk1pylDcDC;H~7_1Fpz8reKSdk{08e}op>c`?N;1% zXrz$MPv4bhPQjYL!t;Ek0=)NvcP~#W@S8xCn;c7FLQeKbuZRv@8POc_z@Y<8b&K+B zmQgqoW%D{Wyd6Dvik5|1lNj>dgxJv`Z4eJXlrr#4D>7SbTBLKO80)#%iSvgT4-Th4 zG}9F$G5B)lvltOB4OwZnElh;n?=Orm^A+RhyFy+-lLT(34#rg!x5Dq`hF9V7GW_WL zXfR(%;)dj}!<#nAQFg>VHt3QZ{3wh66;Pq zEV^jfj`*QX!e5z6IPaVru(zIq$t1Py_oeMvoH;%`xsya@@NPz@qYUhs&vp#WZ^cyC z8~R>LTX83{b4}$N2`WbiaclOAu{xnGZJC`2-OL4#U7UqzXxzH|?TzO+KD$qLtKd1t z%({Djm!A;ZdoCCbx+%hua>kjcFbS9s^Y;hbYK0YN&9t1gGCYoKE&nQ&gyWxqK~1@G zY_2vg`Z`FC2?P4Q^5aO{-kTrmV@IOL$e6oKMMBu$qNrQ0!1U#zeWSemmJ&4;7KI@(9U!~o zmXsXp!n6A0B?Y!!a4LLXBbcZH!)SMs%wCD~;2ggBCF*p zIJbku+01{s4;*U8>uHh7=JN`~30PYc1{5OiWJNv-p^#{1>Gf1ZVZ@Z?V5d3?c~(cC zc>hhos5kF^i@y@5oyW?us17V>FnpRucHwGbQLUqM7dnG=yY$AXz%z`w9sh$89@m-K z7F-27mWX0PrdcUt;imm$sX!u1Y^R`eC0Thovs!S3RLPQr3Ae1qdBrOXn;kLf;V zp_v$>x&3|HkBQM^_0v7iN-3gjEwZTLa(JGMZssu*sN){IqUS|{Eq$?aRSt!e-lL0R z$|zLi>ThDUP*_}eW>~E&h4`sVRWyr2CjV}1Mj-`pVC>GD8$0kpeY!Cs&gR&*q%Oq7 zSqkb;t5Cb|7VmPM5?g)J)ux;D-tO8O`Y${% literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/bb361b6a-b68c-471d-8ef7-adb116227983.arrow b/tests/data/pjm_2area/pjm_2area_time_series/bb361b6a-b68c-471d-8ef7-adb116227983.arrow new file mode 100644 index 0000000000000000000000000000000000000000..4435798ea2a1d135e50e121164994cdde641e679 GIT binary patch literal 1866 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 E2|?)Q&;S4c literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/e6fba6b1-ed13-44ba-b714-9735b71f2770.arrow b/tests/data/pjm_2area/pjm_2area_time_series/e6fba6b1-ed13-44ba-b714-9735b71f2770.arrow new file mode 100644 index 0000000000000000000000000000000000000000..ebca68b69921923c59408cbc220e6f37b8a9ff81 GIT binary patch literal 1498 zcmZ<^3i1y(WMKFY1Tz>I7zBWrfq{#Ghk=cOm4O4u0s=-BAfExq;{cK@P!cE%W z0FdMWs%HnQ5`db)$P6;e2CM@}0D%e+r<$cDC7LA}>ZYa`8ta;vBqi!5nH!quTACZ1 z0vTyW=H>RZ=m@3UuH65DiV!fyLbJ%PVo_V2de;N^AroxooE zi?QMg|7~{KpYCZ{va^4a{nY>B`Ff@6>~#Z=F8lFjgZ-Z=A~{biH`(6}dXZhfew#h7 zp4Qw28@Jgnx0-RI=+##HsgY?s7mK&qoBFM_XuQ4M{>-YgSG0|Q>M}P4rb%zMKNRay zz29T2y==G~ljNz*_J97ExSZ42Vn6Es(eNKlKZyJbDqleP8dOH`081HA3B&{BfyzBl knP&kcHNY%Ld9VT`3`vV0sQ3O`@9(o`%-l65h4HK$Y@H*m!sbTUT17@X@*E?h!lUdX!YC4pjW<%e>K!ez z`DKw7yB}*DY9bkDGvsJ@rF3*DW76-gryV9RhH#EHTlNfW9&A3RiNCg2kzcd7zyHN~ zbzRET8M4+JEzXFRqBUkA7B7%s1E)3pnUxsH7pn?d21M|-U*K*m6vH*m zD5mSK6k~0^mp%Phj@k|NXJ+SjgBrYdPLIpLE~dW4uYrNSbW`Y`(^V*LvC7a%QK6By z_NGHCgM2~um;22aSP9m8ovBrV|5Etk=`kgK7K#fqk{C=a$ba8ErUw@%w1?br=s{c4 z@*?Zi3=YLvKQ9dL#=woT)uC22#(p|AX;MfRB;yZcjyl*>PnCne4+PIq8R7Lt~1>hCdRIpXQx#8N^tl^DLs)l`AXOpS03Zrg+uad zC6DpJ{F}GG^b=wGz*&RQSH(C~%{dttCI$Cy@t%Ndov?I_nq9D7j{C8l)$e4{aQZDU zsI5?eE%ioa?*%C^b;PiDaWakT-xMeL@MsJe8bz;G(+~}JD4W(OVY?=DXwm{D9@N>d zEi~%Jll(aYG1lZBe8>9^Z=}(he@nCJY8MX9P2V17)`fc!_O}jr%iy6yYxWdMkXmh$ zlO8XI^u^xP8RtaEt}->r|5}7}O|!IQy%=$2C*3z5k>Y|~wp;vRIS#f~R=KJaI4aB7 zYn`n`QLyi3cV7m4*_ht@0`i_JHK_AcLAus#j^-AFkP$z+&TeO*;FoxL*sIV`V_q7P z*aNyhd1b|sK0IpvwxYzQ56-188-&x;;27>om)oh39b6zVo2bMK&vU7&i!}6mb8gp# z%CWsVE6uG#29u(f!mue)bhQtK2T>BVd72%H5J=nR4 zL6PO*2MhjSU^rNGyTf0F6E2hGc}x$MwirCzPxs-+w6aDgmp=3c>-On=s0QC4@p{VV zDtKPz=9@<=(X&#V7^)wEc(#1D4<2@~V{~&c-~C8LxoXvG{gAM~SBBeHZn-8O)JASr<{j zAan5W^290zHH9M+xE%~ul%9OI(TzdMEUr4QWm14&@g&a0by@JfC9F(KLd z$hP!8Bqm!3n@_0GxceIaLX!$xe~3Rm5U7NXFptr>M8k3Lbi}kxa?Ch-Nis<(!xG0u zne!A9G&GE^K2;&cZp(*h6VxJ1-C9#0cu54~IDuJ3krY>c=}a6|N~5yh zCdrfN(89kHOm^^<@Yd9om-j32wb4fcTMq_8)5UvAG8tSiwAGuvqbVTXymsn0C`ziQJ}vbTq}hW-Nt Cv*<7Y literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/ea9071cf-9f40-453e-ba36-d2365e92fad6.arrow b/tests/data/pjm_2area/pjm_2area_time_series/ea9071cf-9f40-453e-ba36-d2365e92fad6.arrow new file mode 100644 index 0000000000000000000000000000000000000000..44cc32df9ab747cdf0c4e93380a058f067357f3f GIT binary patch literal 1866 zcmcs+QC6ut&1>R61DfcYRHRFdZaiUA)lUl=MRA|fInW1@gcE=c52Dv&Qw)ImfL zkq`tC6C)uX112gclNRJ-UNCoPlkv(H)Qe%mWBa9OYe zMGX_nqbSOVI7N-2IMhhWfHEX4Vk7hkrwB77sQ)*TZo-U-8xb@l^GE4s8T}n&gdQ8q zO}ByoF-zjn5w7-g9HRI(u6!qZ8z*O8v`u6L&&6iFBhSS-+SQRCvEGFuvDkPcb*tXe zA)8+oX|emU#-S#XaW+GaZdXcApE4!=o(8&M0%Hj0=(1(cz~;f`bC&o&_B!%E?7!cC z)qy?lN`g&#zc!i+=)(+cw6^^NJlV?nG{fZHIi39Fu)kxVro# z#l1t>_s#XCNDaNz`y@evi(}WBe;y&hu2<)$R{2YD3Av62dr*<8f;xDu-4z?B7n~O04^BjRg&ZbgorH zGL4NV@0VS$>PGUoHu3jdHQdq{1?_2OU^-oE_eo_pR^(2N%;=?&8@h|rJ68ecc~5qZ zEAGTBk82}+S9Ri6Y;Sb!3mIxBh435pO0hnr>%eLU3HrH9AG*7V(bBqo&7aqv;@E;A z#f_4uc<-azcfSY_W5>XGqtVwTI9$y+9Ty=3_kQu-pc|dAc8Q){ut9-`v7Oa#Wzm@X zb8tvop%UBbP0HR0QDWMNVc+5;8aMY8C;BBuh!5I4|k}V)~H~=CVXhpd=(zm z@zxfabmLjR^FWL(xd;F8{==JSwC3N@Zob}yLvzx0L|Am;K@{)KL0>t%^l0tgLMc+J z&2rM>C6K+`monpm7}-_kX8F6tNYggUN;XIkS9aQS(@_~NIc9srA5q{?Yh{(YT8ZQG zjD5D*DinqKZ}IeJAdrvgeJCXFsZxtNZ#86VEu6J?7=(@Z&V6<}1ErwE$BU;%Lycu= zSV9lz{-l)^NBi)k`B+7XT_0RaUp0u{*MMWZD^203Ms{d{&|;zrFTF3Ms4vqn?9I7b z7p}mL>a0|c4mr$6%Fxw56d6KE(dKP&cs)mgdzz*>0|GHLXY{w^?vvoe!6jpZ zG%`HACl;OEN#jiJAN~6dcH_6%vFi47DkO<`pQ#KP#NNt_eGtYV)!fSWv4p{dneCyj zO$>^xk35?HI|JjvqPrb|YMgSLtjJ?}u(ZYK@d3II-=&r{&UNcUZ>WBs!4wSyMhQ2Q zKUKr~DmUMfuR_mCNkX`iMox3ORp3+zT;CXN1UBy9y4AEpA+%z0*(qz{QZ{=d>J^)pRJ23 zV30X@WO+grgPOvTTe%$!R+OH8yU~L|@+__QNIeee}AOqWlIS~yVx$2g%yMUf2Ge(X#bRZ63> z-!9Rc=+J^cx0>w~sNk!uD=+U?VYkT#LVGU;BJ;(2OEMYUEVS37S2C!0+tt?eGY0(k z{EYL+|9a|KV@%Cp54HvJ%)G>Xc-JB8#>&24XqUS9jVJG?-*%jjWuzJ>Jf8anMUwlk z8yD=Srv$6#?3r0j<`7k96`w;GTW8oBGne2@UF*O4o5KzhdsClT{(se`>tt^)T@C#U D+*Rj9 literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/fc686965-990b-4fb9-b905-27f096fdd432.arrow b/tests/data/pjm_2area/pjm_2area_time_series/fc686965-990b-4fb9-b905-27f096fdd432.arrow new file mode 100644 index 0000000000000000000000000000000000000000..707baf1d34d06d47581dbfb0cd1fcca42ef9a767 GIT binary patch literal 1866 zcmcs+QC6ut&1>1Yg+fSIBY70DY$MuCr)h7=|w5+b65j!6Ok?BSS$Ml?X~uI&vzdC>~q$+-}Vm=e<#wF zqQ;38QWRxIoT4UE9BLwELYa~lu?fb6Q-qlkH2xb&H(?gU%?O&3`I8K@%>Irs!HA9J zZCF8om>qFp9M6l#=XpBv`7Q!S521kXDB!zzI=U?oy6}0z_3J&{-6#@^jW^M->Nx|l z`Q?xnyB}*DY6cl+GvpX{rHqUzE7I?0Vi+bcnQ)FFTlNfW9&A3Ri2q|xBmcwx`~5f0 z({nz%j-8oq)6DGGE0MF&a%q-OfzJ3PSh`q_O`OimUmaygJzrPSF(O5f`(i&Ui3~m& zmhpYJ6`11umGa>mDl~3tK0UvvAJpibvnE^yZt=|>VJ!?y6`N!Kn5RW~hhvsenij3D zYp#2AGAI(~etf`|fund$;ORyUL{B7-9~NuyokUiemBL_7Nzscz@dG$Ny*uWX#{jz8 zmX|rLVvwKc^joQ*A0yYQR>eBfnDX|Vl$kMokeeUOo^+xY1wBqZ%3vjC1+L)pevsqV zq1@Xx#&TptpBucNEW?*m*4k`eC&TV1XJ*%h%5nH{r6{6H0l#DWQyZ##5%zHNuYxoc zKJmUYS*)dTN%7O6ty|To%lA)-`ce&XqR#E8gBrDC@3rjTM&m+)&vl(G4U=75`<65s zn~vSCI&0sLw5eUvZ@F4{?+T9itet_?JiYU~wf$I8Fk6r{NTVQnH)qgG1(l!Vta6oMn7iz*kGB*Zo!eGFy7UV^Uoxh; zQt=C3T6F#9$6-?J7&&A1{AC&P>p3S9*D1igUA{NsN-rFE8|Ig6RN-zyZ~b#QG`xO{ zjOr>?1asDdo*pUHE>xSJ2rE%20u5s zuPL?c$Acozk$5L^525Cv;~&uIEV`lJe7O&Y7G&;NXWNH6aqc$`1}WihMC^APxzPg*2%b>LX+&Q!T+ksDniww@uRX`C$hb9mpue*88+LEC*=gH(z8M;cQG3D*h}?!++2u(1!iCu1=EweDzs z8-p^3!#^+noq@$@+0CACEslH7QWY`-Sk_^7?*Ki7Z!)S{y}XAo7;QXc^0E#hv*fF3 z?`sioky~UZ)L>wxEIC$9Bd>jzefUKc4uqY#IN;HXvFcMBI`S0QT|J2}t(PM-I&EI| zB00ji{%^ixBZn+_d~C-NIYu15xDnW>M541@A!DvaU~y8nh@(N9aQ}IeAO@bw2W#U> z7-WwgUY=aXprLf)R&Ec26_qEZwfZthd!4IGa%WH=zMhg-$v_^Nvg`7e0X$WoVN6eT zIrd9mu*czE#&n$&bG9`!M_!P^YWd4?Z_bdxEm3S+Q>MVB?|YLcRnn*( zc1{T(I<(}`R_mQ24TAJd)z!lqd}{fM*u|fL#AfN#y5-(;KOitYk%nwUUbd5vT|q;`enQjbMk(Mou&rb3A8BoeHaoUAot%i zH8R9V4OY+DGqak^A*#+QK8G;2&agGci{NX9)_?Ukj~yoVtUj~+|Ef)w$=?2k8u}Ng CWad}^ literal 0 HcmV?d00001 diff --git a/tests/data/pjm_2area/pjm_2area_time_series/time_series_metadata.db b/tests/data/pjm_2area/pjm_2area_time_series/time_series_metadata.db new file mode 100644 index 0000000000000000000000000000000000000000..60d01d27fce678f3bd7e92b807f0de02f1f254d9 GIT binary patch literal 24576 zcmeI4yK@^w9LG-7DdWw=^g{?S_b zeTBdm9!LNQAOR$R1dsp{Kmter2_OL^@WKQd#nOp){ldey(`KUX$=zDksdc+)lBEq* z>!^0BI<EIzjxxqtYv$WOh{~jxJ zKWLoGWZ1s(gK+d?4~t-5+Pr>kZ2>e_DF1Dgw^;tWv_AjW+|SmxFD%5@e8b~2r8liD z;=V(+PFhdSDdB16NKPmflz0wLhzMhcBs!o$qNH+Tv6(h+*Hsl*ZuWG~9Oe;+!pC-; zv%L@Pe>KFtnuxRXj;ign?y7bWEAA*?5T8+pc%DdzREZ{z6L1$&3?=n$n21+eB6+Yn zRw=7z?bS(ptLygaXx*AP`?;wOb7P|ISGb9Eqe?$9p_3vq*YY4R_fFJ1-1=Y-g1_vF zW|n5V&sqbx(CpUhaH(mQe(LFcVRW}2Y@}oop5$s0sjKGgY#Xl9AcCK@XI5)92z;=r zQ&mqoz0*c3>DGIO(xz^U&Ti-QXz}2(s&{&YeolH<2hEp>V_GzmRh86+*^{E9R`>Sy z9-mnpRZOg9n8<(;s+A_5PeURSHzskUVnVOvxk*T=ru5|%}=XXvVmPE-<9b(VR=FA~EweCJ%xmtr&N% zub8#1Gu9KX0xd-#DNzZ9e#3(XKtgXschw7&|PZ z->@)jXFxUQd`I{&3Wc#uXlmAp0uoVQ64&*$qa)~8US+-{bQsXs=Y+*RjDEFg#XK({ zLJGwLCL=}NJi7T;=1qA}98u-KoPDA62K--Ierm1!T0Xh_XZefr_sdUL-e39pHBac# z91=hRNB{{S0VIF~kN^@u0!RP}Oeb)8af=YEAaz1xmunJ+u@B38R1o32@C+){L6F3O zl7TxprJh_&TpHNQ^T>0WtvKHqq^%QX|&qBoe?R~pNB{{S z0VIF~kN^@u0!RP}AOR$R1P%j%Q^l=>%;PJ$U?S#mk()OW^LR!TO~gDtL38gFw~poUeK33TOW^Ro{L}Go zj(v{)|LFfe*cLE!u%BFfGR`vS|BwFv|AQSP=>Ol}A!s(LnXNu~`m`DN${nITM(F=P zu9!T7o1?85^#31MOrBBhkyZ@)|BvilANEXnraUuH4f_A1|NqPFn?5wkG4ubz@-G&A z@IV4c00|%gB!C2v01`j~NB{{Sf&UDF$7hy??*TCHP0RCqeDe8T{