From bc289bbed263410ad2b38f6c0689d7a2de363212 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 09:21:30 -0700 Subject: [PATCH 01/22] fix issue examples path issue --- docs/tutorials/available_outputs.md | 2 +- docs/tutorials/parametric_manager.md | 2 +- docs/tutorials/project_manager.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tutorials/available_outputs.md b/docs/tutorials/available_outputs.md index e89df3bf..7e2bb784 100644 --- a/docs/tutorials/available_outputs.md +++ b/docs/tutorials/available_outputs.md @@ -39,7 +39,7 @@ pd.options.display.float_format = '{:,.0f}'.format # Ensure the correct examples directory is used when running this in docs or in examples here = Path(".").resolve() -example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here +example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here / "examples" config = load_config(example_dir / "configs/example_fixed_project.yaml") project = ProjectManager(config) diff --git a/docs/tutorials/parametric_manager.md b/docs/tutorials/parametric_manager.md index 47fd49d1..0d778fb5 100644 --- a/docs/tutorials/parametric_manager.md +++ b/docs/tutorials/parametric_manager.md @@ -32,7 +32,7 @@ from matplotlib.ticker import StrMethodFormatter from ORBIT import ParametricManager, load_config here = Path(".").resolve() -example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here +example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here / "examples" config = load_config(example_dir / "configs/example_fixed_project.yaml") config["turbine"] = "15MW_generic" diff --git a/docs/tutorials/project_manager.md b/docs/tutorials/project_manager.md index aeac455d..d6d1cc75 100644 --- a/docs/tutorials/project_manager.md +++ b/docs/tutorials/project_manager.md @@ -29,7 +29,7 @@ from ORBIT import ProjectManager # Ensure the correct examples directory is used when running this in docs or in examples here = Path(".").resolve() -example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here +example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here / "examples" ``` ## Compiling Input Requirements Dynamically From ee870f22d0fb82da7b9297b92dd86614b4307dd6 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 10:38:30 -0700 Subject: [PATCH 02/22] remove description of deprecated feature --- docs/tutorials/introduction.md | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/docs/tutorials/introduction.md b/docs/tutorials/introduction.md index 68f986e6..6cd7e71e 100644 --- a/docs/tutorials/introduction.md +++ b/docs/tutorials/introduction.md @@ -154,40 +154,6 @@ print(f"Total Substructure Cost: ${monopile_design.total_cost / 1e6:,.2f} M") pprint(monopile_design.design_result) ``` -### Overriding Values from the Design Phase - -In the example above, the `MonopileDesign` phase will produce the input parameters "monopile and -"transition_piece". It is also possible to supply some of the values for these designs if they are -known, and let `MonopileDesign` fill in the rest. For example, if the user knows the dimensions of -the monopile but not the transition piece, the "monopile" dictionary can be added to the project config above: - -```{code-cell} ipython3 -design_config_custom = { - "site": { - "depth": 25, - "mean_windspeed": 9.5, - }, - "plant": { - "num_turbines": 50, - }, - "turbine": { - "rotor_diameter": 220, - "hub_height": 120, - "rated_windspeed": 13, - }, - "monopile": { - "type": "Monopile", - "mass": 800, - "length": 100, - }, -} - -monopile_design = MonopileDesign(design_config_custom) -monopile_design.run() -monopile_design_result = monopile_design.design_result -pprint(monopile_design_result) -``` - ### Installation Phases ORBIT's installation phases tend to require more inputs and provide implicit pathways to model From 87e95b66987299e49ebe1292d6bbab72a60d4252 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 10:39:42 -0700 Subject: [PATCH 03/22] fix units typo --- docs/tutorials/introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/introduction.md b/docs/tutorials/introduction.md index 6cd7e71e..ee68b1b9 100644 --- a/docs/tutorials/introduction.md +++ b/docs/tutorials/introduction.md @@ -247,7 +247,7 @@ to turbine and cable configuration files, these should be stored in the YAML for - Any other custom input that will override logistics defaults. - `transport_specs` - Transit related parameters and constraints. - `transit_speed`: Average transiting speed, km/h. - - `max_waveheight`: Maximum operational wave height, m/s. + - `max_waveheight`: Maximum operational wave height, m. - `max_windspeed`: Maximum operational wind speed, m/s. - `storage_specs` - Storage related parameters. Required to transport items on deck. From cd9fcdd5f5009f0388678eb9b94554db95b4a9bb Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 10:44:11 -0700 Subject: [PATCH 04/22] add caveat on sample wtiv file --- docs/tutorials/project_manager.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/tutorials/project_manager.md b/docs/tutorials/project_manager.md index d6d1cc75..7291a949 100644 --- a/docs/tutorials/project_manager.md +++ b/docs/tutorials/project_manager.md @@ -133,7 +133,9 @@ or the installations may use different installation vessels. In these cases, it is necessary to define phase specific input parameters using the phase's name as the dictionary key. Below, we can see how we model a differing staging port where a separate WTIV -will be used with its much further port distance. +will be used with its much further port distance. Please note that the turbine installation's +WTIV "other_wtiv" is not a valid vessel configuration file, so this demonstration setup will fail +if used. Please note that phase-specific configurations will always override their general counterparts. From 646ae06f4aae752d1787d1ec1f3cff921120450b Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 10:48:39 -0700 Subject: [PATCH 05/22] add project_time --- docs/tutorials/available_outputs.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/tutorials/available_outputs.md b/docs/tutorials/available_outputs.md index 7e2bb784..aa856bad 100644 --- a/docs/tutorials/available_outputs.md +++ b/docs/tutorials/available_outputs.md @@ -77,11 +77,13 @@ print(f"Project Installation Time (days): {project.project_time / 24:,.1f}") The `installation_time` provides the sum total installation time of all phases, in hours, without accounting for timing overlaps, whereas the `project_days` provides the total number of days between -the start and completion of the project. +the start and completion of the project. Similar to `project_days`, `project_time` provides the total +elapsed simulation time, accounting for overlapping installation phases. ```{code-cell} ipython3 print(f"Total Installation Time: {project.installation_time / 24:.0f} days") print(f"Total Elapsed Time: {project.project_days} days") +print(f"Total Elapsed Time: {project.project_time:,.0f} hours") ``` ## All Outputs At Once From 46966d560fdd17cda9801a4563a12e0ab1a41609 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 11:08:21 -0700 Subject: [PATCH 06/22] fix typo --- docs/tutorials/introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/introduction.md b/docs/tutorials/introduction.md index ee68b1b9..ed7abb33 100644 --- a/docs/tutorials/introduction.md +++ b/docs/tutorials/introduction.md @@ -168,7 +168,7 @@ a series of default vessls in `library/vessels/` to support all possible install For more details on vessel configurations, please see the [vessels section](#vessels). ```{code-cell} ipython3 -install_config = deepcopy(monopile_design_result) +install_config = deepcopy(monopile_design.design_result) install_config["wtiv"] = "example_wtiv" install_config["feeder"] = "example_feeder" install_config["num_feeders"] = 2 From 9a2cf0aa59bc90bccacc6e452bbba261ec463cc6 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 11:13:36 -0700 Subject: [PATCH 07/22] add clarificaitons and fix typos --- docs/tutorials/available_outputs.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/available_outputs.md b/docs/tutorials/available_outputs.md index aa856bad..b247bb30 100644 --- a/docs/tutorials/available_outputs.md +++ b/docs/tutorials/available_outputs.md @@ -164,8 +164,8 @@ print(f"System (procurement) CapEx (millions, USD): {project.system_capex / 1e6: print(f"System (procurement) CapEx (USD) per kW: {project.system_capex_per_kw:,.2f}") ``` -To view the individual component system costs, users can inspect the `system_costs` dictionary where -costs are summarized by each modeled or input system. +To view the individual component system costs related to each installation phase, users can +inspect the `system_costs` dictionary where costs are summarized by each modeled or input system. ```{code-cell} ipython3 for name, capex in project.system_costs.items(): @@ -214,8 +214,8 @@ for all of these subcategories, however the values can also be overridden in the `project_parameters` subdict. ```{code-cell} ipython3 -print(f"Turbine CapEx (millions, USD): {project.project_capex / 1e6:,.2f}") -print(f"Turbine CapEx (USD) per kW: {project.project_capex_per_kw:,.2f}") +print(f"Project CapEx (millions, USD): {project.project_capex / 1e6:,.2f}") +print(f"Project CapEx (USD) per kW: {project.project_capex_per_kw:,.2f}") ``` ### Soft CapEx @@ -263,6 +263,7 @@ print(f"Procurement Contingency CapEx (millions, USD): {project.procurement_cont print(f"Installation Contingency CapEx (millions, USD): {project.installation_contingency_capex() / 1e6:,.2f}") print(f"Construction Financing CapEx (millions, USD): {project.construction_financing_capex() / 1e6:,.2f}") ``` + ### All Other CapEx Categories #### Supply Chain CapEx From 3d8d08958f410de1695c736013ac2a2fe76045e7 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 16:18:13 -0700 Subject: [PATCH 08/22] clarify turbine installations in progress calcs --- docs/tutorials/available_outputs.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/available_outputs.md b/docs/tutorials/available_outputs.md index b247bb30..460edb54 100644 --- a/docs/tutorials/available_outputs.md +++ b/docs/tutorials/available_outputs.md @@ -403,10 +403,11 @@ mp_vessel_summary The `ProjectManager` includes a basic cash flow and net present value (NPV) model. The project must have the array, export, and substation installation models configured for this model to be applicable. The model will find the point in the project logs where the substation and export -cable installations were completed and where each completed string of array cables was installed. -When all three of these conditions are met, the project can begin to generate energy and produce -revenue. The revenue generation is then superimposed on the monthly spend of the installation -models for the `project.cash_flow`. Please note this assumes a fixed operational expenditure (OpEx). +cable installations were completed and where each completed string of array cables and turbines +was installed. When all three of these conditions are met, the project can begin to generate energy +and produce revenue. The revenue generation is then superimposed on the monthly spend of the +installation models for the `project.cash_flow`. Please note this assumes a fixed operational +expenditure (OpEx). The NPV of the project can then be calculated and is available through `npv`. The underlying financial assumptions for this model are also contained within the `project_parameters` section of From b6602e86b41dd7dba6d438f6d7c540b873f0dabc Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Wed, 22 Apr 2026 16:26:23 -0700 Subject: [PATCH 09/22] fix examples path finder and update parametric example phrasing --- docs/topical_guides/cost_curves.md | 11 ++++++++- .../fixed_bottom_installations.md | 11 ++++++++- docs/topical_guides/supply_chains.md | 11 ++++++++- docs/tutorials/available_outputs.md | 11 ++++++++- docs/tutorials/parametric_manager.md | 24 +++++++++++++++---- docs/tutorials/project_manager.md | 11 ++++++++- 6 files changed, 69 insertions(+), 10 deletions(-) diff --git a/docs/topical_guides/cost_curves.md b/docs/topical_guides/cost_curves.md index 84ac2729..facef6c6 100644 --- a/docs/topical_guides/cost_curves.md +++ b/docs/topical_guides/cost_curves.md @@ -257,7 +257,16 @@ mpl.rcParams["figure.autolayout"] = True # Ensure the correct examples directory is used when running this in docs or in examples here = Path(".").resolve() -example_dir = here.parents[1] / "examples" if here.stem == "topical_guides" else here +match here.stem: + case "examples": + example_dir = here + case "topical_guides": + example_dir = here.parents[1] / "examples" + case "ORBIT": + example_dir = here / "examples" + case _: + msg = "Please manually change `example_dir` if running in a custom location." + raise FileNotFoundError(msg) ``` ## Configuration diff --git a/docs/topical_guides/fixed_bottom_installations.md b/docs/topical_guides/fixed_bottom_installations.md index 89cb80b1..b77ace4e 100644 --- a/docs/topical_guides/fixed_bottom_installations.md +++ b/docs/topical_guides/fixed_bottom_installations.md @@ -43,7 +43,16 @@ pd.options.display.float_format = '{:,.0f}'.format # Set the example path for use in the docs and standalone examples usage here = Path(".").resolve() -example_path = here.parents[1] / "examples" if here.stem == "topical_guides" else here +match here.stem: + case "examples": + example_path = here + case "topical_guides": + example_path = here.parents[1] / "examples" + case "ORBIT": + example_path = here / "examples" + case _: + msg = "Please manually change `example_path` if running in a custom location." + raise FileNotFoundError(msg) weather = pd.read_csv( example_path / "data/example_weather.csv", parse_dates=["datetime"] diff --git a/docs/topical_guides/supply_chains.md b/docs/topical_guides/supply_chains.md index 422e0d12..bfb6f3b9 100644 --- a/docs/topical_guides/supply_chains.md +++ b/docs/topical_guides/supply_chains.md @@ -32,7 +32,16 @@ from ORBIT.phases.install import MonopileInstallation, JacketInstallation # Set the example path for use in the docs and standalone examples usage here = Path(".").resolve() -example_path = here.parents[1] / "examples" if here.stem == "topical_guides" else here +match here.stem: + case "examples": + example_path = here + case "topical_guides": + example_path = here.parents[1] / "examples" + case "ORBIT": + example_path = here / "examples" + case _: + msg = "Please manually change `example_path` if running in a custom location." + raise FileNotFoundError(msg) weather = pd.read_csv( example_path / "data/example_weather.csv", parse_dates=["datetime"] diff --git a/docs/tutorials/available_outputs.md b/docs/tutorials/available_outputs.md index 460edb54..9beb9382 100644 --- a/docs/tutorials/available_outputs.md +++ b/docs/tutorials/available_outputs.md @@ -39,7 +39,16 @@ pd.options.display.float_format = '{:,.0f}'.format # Ensure the correct examples directory is used when running this in docs or in examples here = Path(".").resolve() -example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here / "examples" +match here.stem: + case "examples": + example_dir = here + case "tutorials": + example_dir = here.parents[1] / "examples" + case "ORBIT": + example_dir = here / "examples" + case _: + msg = "Please manually change `example_dir` if running in a custom location." + raise FileNotFoundError(msg) config = load_config(example_dir / "configs/example_fixed_project.yaml") project = ProjectManager(config) diff --git a/docs/tutorials/parametric_manager.md b/docs/tutorials/parametric_manager.md index 0d778fb5..183f84c2 100644 --- a/docs/tutorials/parametric_manager.md +++ b/docs/tutorials/parametric_manager.md @@ -32,7 +32,16 @@ from matplotlib.ticker import StrMethodFormatter from ORBIT import ParametricManager, load_config here = Path(".").resolve() -example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here / "examples" +match here.stem: + case "examples": + example_dir = here + case "tutorials": + example_dir = here.parents[1] / "examples" + case "ORBIT": + example_dir = here / "examples" + case _: + msg = "Please manually change `example_dir` if running in a custom location." + raise FileNotFoundError(msg) config = load_config(example_dir / "configs/example_fixed_project.yaml") config["turbine"] = "15MW_generic" @@ -116,7 +125,13 @@ im = ax.imshow(installation_arr.values, vmin=290, vmax=380) cbar = fig.colorbar(im, ax=ax, shrink=0.8) cbar.ax.set_ylabel("Installation CapEx (millions, USD)", rotation=-90, va="bottom") -ax.set_xticks(range(len(installation_arr.columns)), labels=installation_arr.columns, rotation=45, ha="right", rotation_mode="anchor") +ax.set_xticks( + range(len(installation_arr.columns)), + labels=installation_arr.columns, + rotation=45, + ha="right", + rotation_mode="anchor" +) ax.set_yticks(range(len(installation_arr.index)), labels=installation_arr.index) ax.set_xlabel("Site Distance (km)") @@ -125,9 +140,8 @@ ax.set_ylabel("Site Depth (m)") fig.tight_layout() ``` -However, the system CapEx only increases as the site's depth increases because only the site's -distance to port changes, and not the distance to landfall, meaning the export cable length will -not change across scenarios. This can be seen in the below bar graph. +The system CapEx in this example does not change with site distance. The increase in system CapEx +with depth can be seen in the bar graph below. ```{code-cell} ipython3 fig = plt.figure() diff --git a/docs/tutorials/project_manager.md b/docs/tutorials/project_manager.md index 7291a949..77687a83 100644 --- a/docs/tutorials/project_manager.md +++ b/docs/tutorials/project_manager.md @@ -29,7 +29,16 @@ from ORBIT import ProjectManager # Ensure the correct examples directory is used when running this in docs or in examples here = Path(".").resolve() -example_dir = here.parents[1] / "examples" if here.stem == "tutorials" else here / "examples" +match here.stem: + case "examples": + example_dir = here + case "tutorials": + example_dir = here.parents[1] / "examples" + case "ORBIT": + example_dir = here / "examples" + case _: + msg = "Please manually change `example_dir` if running in a custom location." + raise FileNotFoundError(msg) ``` ## Compiling Input Requirements Dynamically From aac43046c4c6d16deabdcc251183a9a686c40b8d Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:21:44 -0700 Subject: [PATCH 10/22] properly add port storage capacity --- ORBIT/phases/install/install_phase.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/ORBIT/phases/install/install_phase.py b/ORBIT/phases/install/install_phase.py index 478b96a1..bd96464a 100644 --- a/ORBIT/phases/install/install_phase.py +++ b/ORBIT/phases/install/install_phase.py @@ -79,14 +79,10 @@ def setup_simulation(self): def initialize_port(self): """Initializes a Port object with N number of cranes.""" - self.port = Port(self.env) - - try: - cranes = self.config["port"]["num_cranes"] - self.port.crane = simpy.Resource(self.env, cranes) - - except KeyError: - self.port.crane = simpy.Resource(self.env, 1) + port_config = self.config.get("port", {}) + cranes = port_config.get("num_cranes", 1) + self.port = Port(self.env, **port_config) + self.port.crane = simpy.Resource(self.env, cranes) def run(self, until=None): """ From 57f1dcf649a213baff5c16948085e61a57b8bd89 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:22:18 -0700 Subject: [PATCH 11/22] remove unused substructure storage limit input --- ORBIT/phases/install/jacket_install/standard.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ORBIT/phases/install/jacket_install/standard.py b/ORBIT/phases/install/jacket_install/standard.py index 07126b1e..87697513 100644 --- a/ORBIT/phases/install/jacket_install/standard.py +++ b/ORBIT/phases/install/jacket_install/standard.py @@ -68,7 +68,6 @@ class JacketInstallation(InstallPhase): "enabled": "(optional, default: False)", "substructure_delivery_time": "h (optional, default: 168)", "num_substructures_delivered": "int (optional: default: 1)", - "substructure_storage": "int (optional, default: inf)", }, } @@ -137,7 +136,6 @@ def initialize_substructure_delivery(self): delivery_time = self.supply_chain.get( "substructure_delivery_time", 168 ) - # storage = self.supply_chain.get("substructure_storage", "inf") supply_chain = SubstructureDelivery( "Jacket", self.num_jackets, From 0bbc4c1114d284d0296b9d34e42a0f2b7943fc70 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:22:38 -0700 Subject: [PATCH 12/22] remove unused substructure storage limit input --- ORBIT/phases/install/monopile_install/standard.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ORBIT/phases/install/monopile_install/standard.py b/ORBIT/phases/install/monopile_install/standard.py index e8068450..90951925 100644 --- a/ORBIT/phases/install/monopile_install/standard.py +++ b/ORBIT/phases/install/monopile_install/standard.py @@ -69,7 +69,6 @@ class MonopileInstallation(InstallPhase): "enabled": "(optional, default: False)", "substructure_delivery_time": "h (optional, default: 168)", "num_substructures_delivered": "int (optional: default: 1)", - "substructure_storage": "int (optional, default: inf)", }, } @@ -121,7 +120,6 @@ def initialize_substructure_delivery(self): delivery_time = self.supply_chain.get( "substructure_delivery_time", 168 ) - # storage = self.supply_chain.get("substructure_storage", "inf") supply_chain = SubstructureDelivery( "Monopile", self.num_monopiles, From fb3992b4b9c210c34ae61b58c1685a91eb336886 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:16:06 -0700 Subject: [PATCH 13/22] update export system guide --- docs/topical_guides/export_cable_system.md | 68 +++++++++++++++++----- 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/docs/topical_guides/export_cable_system.md b/docs/topical_guides/export_cable_system.md index 886bae68..a438d6e6 100644 --- a/docs/topical_guides/export_cable_system.md +++ b/docs/topical_guides/export_cable_system.md @@ -25,6 +25,7 @@ from copy import deepcopy import numpy as np import pandas as pd import matplotlib.pyplot as plt +from matplotlib.ticker import StrMethodFormatter from ORBIT.phases.design import ElectricalDesign from ORBIT import ProjectManager, ParametricManager @@ -46,7 +47,7 @@ base_config = { "site": { "distance": 100, "depth": 20, - "distance_to_landfall": 50, + "distance_to_landfall": 80, }, "plant": { "capacity": 1000, @@ -106,20 +107,21 @@ capex_df ## Setup The Parametric Runs -From the two base cases above, we see that HVDC cables are more cost effective than HVAC by -roughly 30%. However, the offshore substation (OSS) is over three times the cost of an HVAC OSS. -To compare this sensitivity and see if there is an point that these technologies cross we'll use -the `ParametricManager` and sweep each cable for a range of plant capacities. +From the two base cases above, we see that HVDC cables are more cost effective than HVAC at roughly +30% of the HVAC cable costs. However, the offshore substation (OSS) is over three times the cost of +an HVAC OSS. To compare this sensitivity and see if there is an point that these technologies cross +we'll use the `ParametricManager` and sweep each cable for a range of plant capacities. ```{code-cell} ipython3 +capacity_range = np.arange(100, 4100, 100) parameters = { "export_system_design.cables": ["XLPE_1000mm_220kV", "HVDC_2000mm_320kV"], - "plant.capacity": np.arange(100, 2100, 100), + "plant.capacity": capacity_range, } results = { "cable_cost": lambda run: run.total_cable_cost, - "oss_cost": lambda run: run.substation_cost, + "oss_cost": lambda run: run.total_substation_cost, "num_cables": lambda run: run.num_cables, "num_substations": lambda run: run.num_substations, } @@ -127,25 +129,29 @@ results = { ```{code-cell} ipython3 parametric = ParametricManager( - base_config, parameters, results, module = ElectricalDesign, product=True + base_config, parameters, results, module=ElectricalDesign, product=True ) parametric.run() ``` ## Compare the Cost vs Capacity Trade Off -The inflection point of the below graph shows that for a project that has less than 700 MW of -capacity, HVAC is more cost effective, and for projects greater than 700 MW should, HVDC is more -cost effective. +The inflection point of the below graph shows that for projects with about 100 km of export cabling +that 1,400 MW of capacity is the point at which HVDC becomes more cost effective than HVAC. + +Not shown in this example, but generally for near shore projects, HVAC will be more cost effective, +but as the cabling length grows, the project size required for the economics to favor HVDC shrinks. ```{code-cell} ipython3 df = pd.DataFrame(parametric.results) -fig = plt.figure(figsize=(6,4), dpi=200) -ax = fig.subplots(1) - hvac_df = df[df["export_system_design.cables.XLPE_1000mm_220kV.name"] == "XLPE_1000mm_220kV"] hvdc_df = df[df["export_system_design.cables.HVDC_2000mm_320kV.name"] == "HVDC_2000mm_320kV"] +``` + +```{code-cell} ipython3 +fig = plt.figure(figsize=(6,4), dpi=200) +ax = fig.subplots(1) ax.plot( hvac_df["plant.capacity"], @@ -159,6 +165,12 @@ ax.plot( label="HVDC", ) +ax.set_xlim(0, capacity_range.max()) +ax.set_ylim(0, 2500) + +ax.xaxis.set_major_formatter(StrMethodFormatter("{x:,.0f}")) +ax.yaxis.set_major_formatter(StrMethodFormatter("{x:,.0f}")) + ax.set_ylabel("CapEx [$M]") ax.set_xlabel("Capacity [MW]") ax.legend() @@ -166,3 +178,31 @@ ax.grid() fig.tight_layout() ``` + +Comparing the below figure to the CapEx figure above, highlights that CapEx increases for the HVDC +system correspond to an increase in the number of substations (each requires a single cable), +whereas for HVAC system, these increases primarily correspond to an increase in the number of export +cables with a smaller increase stemming from the substation requiremensts. + +```{code-cell} ipython3 +fig = plt.figure(figsize=(6,4), dpi=200) +ax = fig.subplots(1) + +ax.plot(hvac_df["plant.capacity"], hvac_df["num_substations"], c="tab:blue", ls="--", label="HVAC Substations") +ax.plot(hvac_df["plant.capacity"], hvac_df["num_cables"], c="tab:blue", ls="-", label="HVAC Export Cables") +ax.plot(hvdc_df["plant.capacity"], hvdc_df["num_substations"], c="tab:orange", ls="dotted", label="HVDC Substations") +ax.plot(hvdc_df["plant.capacity"], hvdc_df["num_cables"], c="tab:orange", ls="-", label="HVDC Substations") + +ax.set_xlim(0, capacity_range.max()) +ax.set_ylim(0, 2500) + +ax.xaxis.set_major_formatter(StrMethodFormatter("{x:,.0f}")) +ax.yaxis.set_major_formatter(StrMethodFormatter("{x:,.0f}")) + +ax.set_xlabel("Capacity [MW]") +ax.set_ylabel("Export Infrastructure Requirements") +ax.legend() +ax.grid() + +fig.tight_layout() +``` From a07677fb27edf33e62a16eb5daf0941b54c1c46d Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:22:02 -0700 Subject: [PATCH 14/22] fix typo --- docs/topical_guides/export_cable_system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topical_guides/export_cable_system.md b/docs/topical_guides/export_cable_system.md index a438d6e6..314bebe9 100644 --- a/docs/topical_guides/export_cable_system.md +++ b/docs/topical_guides/export_cable_system.md @@ -194,7 +194,7 @@ ax.plot(hvdc_df["plant.capacity"], hvdc_df["num_substations"], c="tab:orange", l ax.plot(hvdc_df["plant.capacity"], hvdc_df["num_cables"], c="tab:orange", ls="-", label="HVDC Substations") ax.set_xlim(0, capacity_range.max()) -ax.set_ylim(0, 2500) +ax.set_ylim(0, 16) ax.xaxis.set_major_formatter(StrMethodFormatter("{x:,.0f}")) ax.yaxis.set_major_formatter(StrMethodFormatter("{x:,.0f}")) From 7d4529ef0a2af4fe53330e9bd3d040229dfe40e1 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:23:18 -0700 Subject: [PATCH 15/22] add missing fig.show() --- docs/topical_guides/supply_chains.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/topical_guides/supply_chains.md b/docs/topical_guides/supply_chains.md index bfb6f3b9..311d475a 100644 --- a/docs/topical_guides/supply_chains.md +++ b/docs/topical_guides/supply_chains.md @@ -210,4 +210,5 @@ ax.set_xlabel("Simulation Time (h)") ax.set_ylabel("Substructures") ax.legend() +fig.show() ``` From 14588e89725cc792cdbea755313c4a15b835798d Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 12:43:56 -0700 Subject: [PATCH 16/22] rerun examples from docs --- examples/available_outputs.ipynb | 247 ++++++++++++---------- examples/cable_installation.ipynb | 32 +-- examples/cost_curves.ipynb | 101 +++++---- examples/custom_array.ipynb | 90 ++++---- examples/export_cable_system.ipynb | 188 +++++++++++----- examples/fixed_bottom_installations.ipynb | 71 ++++--- examples/introduction.ipynb | 155 ++++---------- examples/parametric_manager.ipynb | 184 ++++++++-------- examples/project_manager.ipynb | 75 ++++--- examples/supply_chains.ipynb | 55 +++-- 10 files changed, 630 insertions(+), 568 deletions(-) diff --git a/examples/available_outputs.ipynb b/examples/available_outputs.ipynb index 17dc6d54..b9d1c958 100644 --- a/examples/available_outputs.ipynb +++ b/examples/available_outputs.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "71bb88c1", + "id": "96e2b6cc", "metadata": {}, "source": [ "(outputs-tutorial)=\n", @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "88bc2df7", + "id": "e1e99872", "metadata": {}, "outputs": [ { @@ -48,7 +48,16 @@ "\n", "# Ensure the correct examples directory is used when running this in docs or in examples\n", "here = Path(\".\").resolve()\n", - "example_dir = here.parents[1] / \"examples\" if here.stem == \"tutorials\" else here\n", + "match here.stem:\n", + " case \"examples\":\n", + " example_dir = here\n", + " case \"tutorials\":\n", + " example_dir = here.parents[1] / \"examples\"\n", + " case \"ORBIT\":\n", + " example_dir = here / \"examples\"\n", + " case _:\n", + " msg = \"Please manually change `example_dir` if running in a custom location.\"\n", + " raise FileNotFoundError(msg)\n", "\n", "config = load_config(example_dir / \"configs/example_fixed_project.yaml\")\n", "project = ProjectManager(config)\n", @@ -57,7 +66,7 @@ }, { "cell_type": "markdown", - "id": "caf5e2a3", + "id": "b3df62c1", "metadata": {}, "source": [ "## Project Details\n", @@ -71,7 +80,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "d00a78c2", + "id": "8668ca13", "metadata": {}, "outputs": [ { @@ -145,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "d798d3db", + "id": "a6e5fde8", "metadata": {}, "source": [ "### Project Parameterizaions\n", @@ -161,7 +170,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "3e1d137e", + "id": "ad5bfbe3", "metadata": {}, "outputs": [ { @@ -184,20 +193,21 @@ }, { "cell_type": "markdown", - "id": "583413a8", + "id": "6c126757", "metadata": {}, "source": [ "### Event Timing\n", "\n", "The `installation_time` provides the sum total installation time of all phases, in hours, without\n", "accounting for timing overlaps, whereas the `project_days` provides the total number of days between\n", - "the start and completion of the project." + "the start and completion of the project. Similar to `project_days`, `project_time` provides the total\n", + "elapsed simulation time, accounting for overlapping installation phases." ] }, { "cell_type": "code", "execution_count": 4, - "id": "0b35ac5d", + "id": "fec233c9", "metadata": {}, "outputs": [ { @@ -205,18 +215,20 @@ "output_type": "stream", "text": [ "Total Installation Time: 617 days\n", - "Total Elapsed Time: 245 days\n" + "Total Elapsed Time: 245 days\n", + "Total Elapsed Time: 5,866 hours\n" ] } ], "source": [ "print(f\"Total Installation Time: {project.installation_time / 24:.0f} days\")\n", - "print(f\"Total Elapsed Time: {project.project_days} days\")" + "print(f\"Total Elapsed Time: {project.project_days} days\")\n", + "print(f\"Total Elapsed Time: {project.project_time:,.0f} hours\")" ] }, { "cell_type": "markdown", - "id": "64f3a272", + "id": "b723cea5", "metadata": {}, "source": [ "## All Outputs At Once\n", @@ -233,7 +245,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "622dae5c", + "id": "fb6bfd6b", "metadata": {}, "outputs": [ { @@ -354,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "0a295cb7", + "id": "b4dd8355", "metadata": {}, "source": [ "## CapEx\n", @@ -378,7 +390,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "d314feb0", + "id": "fa4743bf", "metadata": {}, "outputs": [ { @@ -397,7 +409,7 @@ }, { "cell_type": "markdown", - "id": "dae4f2d5", + "id": "d5cc067d", "metadata": {}, "source": [ "### Categorical CapEx Breakdowns\n", @@ -410,7 +422,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "b022c1a1", + "id": "5c602bc3", "metadata": {}, "outputs": [ { @@ -442,7 +454,7 @@ }, { "cell_type": "markdown", - "id": "0a5c4c0c", + "id": "b986ccdd", "metadata": {}, "source": [ "Like in the previous examples, the `capex_breakdown_per_kw` will provide each category's associated\n", @@ -452,7 +464,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "86087579", + "id": "19493aad", "metadata": {}, "outputs": [ { @@ -484,7 +496,7 @@ }, { "cell_type": "markdown", - "id": "854a9dc3", + "id": "3ed31010", "metadata": {}, "source": [ "### BOS CapEx\n", @@ -496,7 +508,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "e02ff6e4", + "id": "47ef45a9", "metadata": {}, "outputs": [ { @@ -515,7 +527,7 @@ }, { "cell_type": "markdown", - "id": "956fd69b", + "id": "babc35eb", "metadata": {}, "source": [ "### System CapEx\n", @@ -530,7 +542,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "0de00ef2", + "id": "0a1dcdc4", "metadata": {}, "outputs": [ { @@ -549,17 +561,17 @@ }, { "cell_type": "markdown", - "id": "5253f59c", + "id": "77aba791", "metadata": {}, "source": [ - "To view the individual component system costs, users can inspect the `system_costs` dictionary where\n", - "costs are summarized by each modeled or input system." + "To view the individual component system costs related to each installation phase, users can\n", + "inspect the `system_costs` dictionary where costs are summarized by each modeled or input system." ] }, { "cell_type": "code", "execution_count": 11, - "id": "f6b000f8", + "id": "06b8e58f", "metadata": {}, "outputs": [ { @@ -581,7 +593,7 @@ }, { "cell_type": "markdown", - "id": "a48a3bf6", + "id": "c1bf64fe", "metadata": {}, "source": [ "### Installation Capex\n", @@ -597,7 +609,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "61506376", + "id": "f78cb449", "metadata": {}, "outputs": [ { @@ -616,7 +628,7 @@ }, { "cell_type": "markdown", - "id": "efc63a57", + "id": "a9fc7571", "metadata": {}, "source": [ "To view the individual component installation costs, users can inspect the `installation_costs`\n", @@ -627,7 +639,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "e2c57386", + "id": "5ec7d1d8", "metadata": {}, "outputs": [ { @@ -650,7 +662,7 @@ }, { "cell_type": "markdown", - "id": "8102094e", + "id": "70801cf2", "metadata": {}, "source": [ "### Turbine CapEx\n", @@ -662,7 +674,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "96483c47", + "id": "98d9ce8f", "metadata": {}, "outputs": [ { @@ -681,7 +693,7 @@ }, { "cell_type": "markdown", - "id": "abe5b7c2", + "id": "a939acc2", "metadata": {}, "source": [ "### Project CapEx\n", @@ -696,26 +708,26 @@ { "cell_type": "code", "execution_count": 15, - "id": "311d90fc", + "id": "6de31413", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Turbine CapEx (millions, USD): 355.00\n", - "Turbine CapEx (USD) per kW: 591.67\n" + "Project CapEx (millions, USD): 355.00\n", + "Project CapEx (USD) per kW: 591.67\n" ] } ], "source": [ - "print(f\"Turbine CapEx (millions, USD): {project.project_capex / 1e6:,.2f}\")\n", - "print(f\"Turbine CapEx (USD) per kW: {project.project_capex_per_kw:,.2f}\")" + "print(f\"Project CapEx (millions, USD): {project.project_capex / 1e6:,.2f}\")\n", + "print(f\"Project CapEx (USD) per kW: {project.project_capex_per_kw:,.2f}\")" ] }, { "cell_type": "markdown", - "id": "3ea8367a", + "id": "c35a8f78", "metadata": {}, "source": [ "### Soft CapEx\n", @@ -730,7 +742,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "5cc775a5", + "id": "afbcbb0d", "metadata": {}, "outputs": [ { @@ -749,7 +761,7 @@ }, { "cell_type": "markdown", - "id": "ca2df6ba", + "id": "6e06e816", "metadata": {}, "source": [ "The soft CapEx can also be broken down using both the `soft_capex_breakdown` and the `capex_detailed_soft_capex_breakdown`, which also provide a capacity-noramlized variation by adding\n", @@ -761,7 +773,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "2b40f38d", + "id": "deb2d685", "metadata": {}, "outputs": [ { @@ -785,7 +797,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "75b589d2", + "id": "546ea0d9", "metadata": {}, "outputs": [ { @@ -822,7 +834,7 @@ }, { "cell_type": "markdown", - "id": "67f0d176", + "id": "e4f55353", "metadata": {}, "source": [ "The soft CapEx values are also available as independent values:\n", @@ -838,7 +850,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "3f073ee5", + "id": "dd213af7", "metadata": {}, "outputs": [ { @@ -865,7 +877,7 @@ }, { "cell_type": "markdown", - "id": "f28d9ad5", + "id": "3733fe37", "metadata": {}, "source": [ "### All Other CapEx Categories\n", @@ -882,7 +894,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "6dda18bd", + "id": "dbb3ba97", "metadata": {}, "outputs": [ { @@ -901,7 +913,7 @@ }, { "cell_type": "markdown", - "id": "7201b4d4", + "id": "92e5eb8e", "metadata": {}, "source": [ "#### Onshore Substation CapEx\n", @@ -912,7 +924,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "e1b74645", + "id": "749cf55e", "metadata": {}, "outputs": [ { @@ -931,7 +943,7 @@ }, { "cell_type": "markdown", - "id": "ef5198a6", + "id": "5170a93b", "metadata": {}, "source": [ "#### Overnight CapEx\n", @@ -942,7 +954,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "c33616fb", + "id": "434be0b7", "metadata": {}, "outputs": [ { @@ -959,7 +971,7 @@ }, { "cell_type": "markdown", - "id": "d5266e63", + "id": "bede2a49", "metadata": {}, "source": [ "## Logging\n", @@ -977,7 +989,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "94789b34", + "id": "3ff45cac", "metadata": {}, "outputs": [ { @@ -1005,7 +1017,7 @@ }, { "cell_type": "markdown", - "id": "df4b1233", + "id": "7687e468", "metadata": {}, "source": [ "The `project_logs` provides a list of the when a component installation was completed using the\n", @@ -1035,7 +1047,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "b32ad896", + "id": "04053042", "metadata": {}, "outputs": [ { @@ -1123,7 +1135,7 @@ }, { "cell_type": "markdown", - "id": "c6b258dd", + "id": "130e87e3", "metadata": {}, "source": [ "Below, we can see the installation timing is not quite realistic given the WTIV is used for the\n", @@ -1135,7 +1147,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "c6cd0603", + "id": "608fa575", "metadata": {}, "outputs": [ { @@ -1173,7 +1185,7 @@ }, { "cell_type": "markdown", - "id": "7e0bf8cc", + "id": "47106886", "metadata": {}, "source": [ "### Detailed Event Timing\n", @@ -1186,7 +1198,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "179a2eb1", + "id": "a1802dae", "metadata": {}, "outputs": [ { @@ -1370,7 +1382,7 @@ }, { "cell_type": "markdown", - "id": "fc8fd3b7", + "id": "1f418051", "metadata": {}, "source": [ "Using the data frame we can filter produce vessel timing summaries for a single phase or a single\n", @@ -1385,7 +1397,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "dc0b2276", + "id": "23d5f338", "metadata": {}, "outputs": [ { @@ -1544,7 +1556,7 @@ }, { "cell_type": "markdown", - "id": "b2b0dfe5", + "id": "12f00ca4", "metadata": {}, "source": [ "## Cash Flow and Net Present Value\n", @@ -1552,10 +1564,11 @@ "The `ProjectManager` includes a basic cash flow and net present value (NPV) model. The project must\n", "have the array, export, and substation installation models configured for this model to be\n", "applicable. The model will find the point in the project logs where the substation and export\n", - "cable installations were completed and where each completed string of array cables was installed.\n", - "When all three of these conditions are met, the project can begin to generate energy and produce\n", - "revenue. The revenue generation is then superimposed on the monthly spend of the installation\n", - "models for the `project.cash_flow`. Please note this assumes a fixed operational expenditure (OpEx).\n", + "cable installations were completed and where each completed string of array cables and turbines\n", + "was installed. When all three of these conditions are met, the project can begin to generate energy\n", + "and produce revenue. The revenue generation is then superimposed on the monthly spend of the\n", + "installation models for the `project.cash_flow`. Please note this assumes a fixed operational\n", + "expenditure (OpEx).\n", "\n", "The NPV of the project can then be calculated and is available through `npv`. The underlying\n", "financial assumptions for this model are also contained within the `project_parameters` section of\n", @@ -1565,7 +1578,7 @@ { "cell_type": "code", "execution_count": 28, - "id": "cd431583", + "id": "7adef23a", "metadata": {}, "outputs": [ { @@ -1582,7 +1595,7 @@ }, { "cell_type": "markdown", - "id": "957f095d", + "id": "773de592", "metadata": {}, "source": [ "Below, we highlight the first 12 months of the project cash flow. In the 10th month we can see that\n", @@ -1593,7 +1606,7 @@ { "cell_type": "code", "execution_count": 29, - "id": "b08c82b4", + "id": "a6433bad", "metadata": {}, "outputs": [ { @@ -1775,61 +1788,61 @@ "source_map": [ 12, 28, - 47, 56, - 58, - 69, - 74, - 82, - 85, - 97, - 99, - 118, - 121, + 65, + 67, + 78, + 83, + 92, + 96, + 108, + 110, 129, 132, - 137, 140, - 147, - 150, - 160, - 163, - 168, + 143, + 148, + 151, + 158, + 161, 171, + 174, + 179, 182, - 185, - 191, - 194, - 201, - 204, - 214, - 217, - 227, - 230, - 237, - 242, - 245, + 193, + 196, + 202, + 205, + 212, + 215, + 225, + 228, + 238, + 241, + 248, + 253, 256, - 263, + 267, 274, - 277, - 283, 286, - 292, - 294, - 307, - 309, - 334, - 340, - 347, - 367, - 375, - 378, - 388, - 396, - 412, - 414, - 420 + 289, + 295, + 298, + 304, + 306, + 319, + 321, + 346, + 352, + 359, + 379, + 387, + 390, + 400, + 408, + 425, + 427, + 433 ] }, "nbformat": 4, diff --git a/examples/cable_installation.ipynb b/examples/cable_installation.ipynb index cbe8946a..3d486b36 100644 --- a/examples/cable_installation.ipynb +++ b/examples/cable_installation.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "146ab067", + "id": "a67ff5bb", "metadata": {}, "source": [ "# Cable Laying and Burying\n", @@ -15,7 +15,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "827f7203", + "id": "c2616b98", "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "markdown", - "id": "78b1baec", + "id": "19c28a11", "metadata": {}, "source": [ "Below, we set up a base configuration using an imagined cable and sections (25 each of 1km and 2km cable sections) designed for simplicity." @@ -37,7 +37,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "66223ce4", + "id": "e75b4c57", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "7ddd128c", + "id": "605be840", "metadata": {}, "source": [ "## Single Cable Laying and Burying Process\n", @@ -71,7 +71,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "faf15b7c", + "id": "db5d6aec", "metadata": {}, "outputs": [ { @@ -92,7 +92,7 @@ }, { "cell_type": "markdown", - "id": "e106d8b0", + "id": "4ed5b81d", "metadata": {}, "source": [ "## Separate Cable Laying and Burying Processes\n", @@ -110,7 +110,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "d6306178", + "id": "590f3cb3", "metadata": {}, "outputs": [], "source": [ @@ -124,7 +124,7 @@ }, { "cell_type": "markdown", - "id": "5a241b8b", + "id": "efdf6b7d", "metadata": {}, "source": [ "## Including a Trenching Vessel\n", @@ -138,7 +138,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "124af83a", + "id": "195bef54", "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "e2984c17", + "id": "ba563d9e", "metadata": {}, "source": [ "## Viewing the results\n", @@ -166,7 +166,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "cd9532be", + "id": "17f13240", "metadata": {}, "outputs": [ { @@ -391,7 +391,7 @@ }, { "cell_type": "markdown", - "id": "107b8bd2", + "id": "bc986738", "metadata": {}, "source": [ "Now, we demonstrate the separate process by combining the separate laying and burying steps taken\n", @@ -404,7 +404,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "faa4519e", + "id": "05ee803b", "metadata": {}, "outputs": [ { @@ -665,7 +665,7 @@ }, { "cell_type": "markdown", - "id": "56292aae", + "id": "0cc1236e", "metadata": {}, "source": [ "Similar to the above, when we add trenching as a separate step, we have three discrete stages to\n", @@ -675,7 +675,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "e989a1bb", + "id": "8cf8ee2d", "metadata": {}, "outputs": [ { diff --git a/examples/cost_curves.ipynb b/examples/cost_curves.ipynb index 07b268e0..1254b888 100644 --- a/examples/cost_curves.ipynb +++ b/examples/cost_curves.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "ec3350cd", + "id": "d12bb241", "metadata": {}, "source": [ "# Cost Curve Creator\n", @@ -45,7 +45,7 @@ }, { "cell_type": "markdown", - "id": "d863381b", + "id": "f1dadcd4", "metadata": {}, "source": [ "## Practical Guidance\n", @@ -238,7 +238,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "af501f9a", + "id": "02b544cc", "metadata": {}, "outputs": [], "source": [ @@ -262,12 +262,21 @@ "\n", "# Ensure the correct examples directory is used when running this in docs or in examples\n", "here = Path(\".\").resolve()\n", - "example_dir = here.parents[1] / \"examples\" if here.stem == \"topical_guides\" else here" + "match here.stem:\n", + " case \"examples\":\n", + " example_dir = here\n", + " case \"topical_guides\":\n", + " example_dir = here.parents[1] / \"examples\"\n", + " case \"ORBIT\":\n", + " example_dir = here / \"examples\"\n", + " case _:\n", + " msg = \"Please manually change `example_dir` if running in a custom location.\"\n", + " raise FileNotFoundError(msg)" ] }, { "cell_type": "markdown", - "id": "72f822c5", + "id": "a998061d", "metadata": {}, "source": [ "## Configuration\n", @@ -278,7 +287,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "cc5371be", + "id": "1a9ce7f2", "metadata": {}, "outputs": [], "source": [ @@ -291,7 +300,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "91b814a1", + "id": "8c6342c6", "metadata": {}, "outputs": [], "source": [ @@ -307,7 +316,7 @@ }, { "cell_type": "markdown", - "id": "02a7ca94", + "id": "dc5a8ee7", "metadata": {}, "source": [ "## Curve Fit Library" @@ -316,7 +325,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "bef59908", + "id": "e3f60851", "metadata": {}, "outputs": [], "source": [ @@ -385,7 +394,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "1b8c255a", + "id": "d53a211e", "metadata": {}, "outputs": [], "source": [ @@ -672,7 +681,7 @@ }, { "cell_type": "markdown", - "id": "560266a2", + "id": "b03a3dad", "metadata": {}, "source": [ "# ORBIT Design Phase Cost Curves\n", @@ -687,7 +696,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "7dc932ae", + "id": "e0df91ff", "metadata": {}, "outputs": [ { @@ -748,7 +757,7 @@ }, { "cell_type": "markdown", - "id": "3b1aecc0", + "id": "f781b447", "metadata": {}, "source": [ "## Semi-Submersible Substructure\n", @@ -763,13 +772,13 @@ { "cell_type": "code", "execution_count": 7, - "id": "eedfb82a", + "id": "776b83dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -813,7 +822,7 @@ }, { "cell_type": "markdown", - "id": "8e9a19bb", + "id": "8642cdc9", "metadata": {}, "source": [ "## Mooring System\n", @@ -831,7 +840,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "fb89733f", + "id": "52495b94", "metadata": {}, "outputs": [ { @@ -937,7 +946,7 @@ }, { "cell_type": "markdown", - "id": "72dd9ccc", + "id": "783b5dc4", "metadata": {}, "source": [ "## Array System\n", @@ -953,7 +962,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "818ffcf1", + "id": "90796c83", "metadata": {}, "outputs": [ { @@ -1044,7 +1053,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "6e5f9ae7", + "id": "b7a79d8c", "metadata": {}, "outputs": [ { @@ -1121,7 +1130,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "abc5a865", + "id": "fe3e8127", "metadata": {}, "outputs": [ { @@ -1172,7 +1181,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "b7f6e121", + "id": "d18b49b0", "metadata": {}, "outputs": [ { @@ -1189,7 +1198,7 @@ }, { "cell_type": "markdown", - "id": "04ff85d1", + "id": "b695d65e", "metadata": {}, "source": [ "## Export System\n", @@ -1205,7 +1214,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "f99eea12", + "id": "8c506bc9", "metadata": {}, "outputs": [ { @@ -1298,7 +1307,7 @@ }, { "cell_type": "markdown", - "id": "0e12a849", + "id": "4682b28a", "metadata": {}, "source": [ "## Offshore Floating Substation\n", @@ -1310,7 +1319,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "fa3639ba", + "id": "7f6b2cb0", "metadata": {}, "outputs": [ { @@ -1388,27 +1397,27 @@ 12, 51, 239, - 261, - 267, - 274, + 270, + 276, 283, - 287, - 350, - 630, - 640, - 668, - 678, - 700, - 713, - 792, - 803, - 877, - 927, - 961, - 963, - 974, - 1041, - 1048 + 292, + 296, + 359, + 639, + 649, + 677, + 687, + 709, + 722, + 801, + 812, + 886, + 936, + 970, + 972, + 983, + 1050, + 1057 ] }, "nbformat": 4, diff --git a/examples/custom_array.ipynb b/examples/custom_array.ipynb index 46d2cb0a..6315e93d 100644 --- a/examples/custom_array.ipynb +++ b/examples/custom_array.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "45445547", + "id": "a10ecf9f", "metadata": {}, "source": [ "(custom-array-layou)=\n", @@ -24,7 +24,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "60871d9e", + "id": "1d0d05ff", "metadata": {}, "outputs": [ { @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "88005772", + "id": "a9c9a2be", "metadata": {}, "source": [ "## Contents\n", @@ -90,7 +90,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "ddb99c23", + "id": "b37d663c", "metadata": {}, "outputs": [ { @@ -114,7 +114,7 @@ }, { "cell_type": "markdown", - "id": "845984a7", + "id": "41e8b387", "metadata": {}, "source": [ "### Key Differences In A Custom Layout Configuration\n", @@ -135,7 +135,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "03f77fd0", + "id": "b1879070", "metadata": {}, "outputs": [ { @@ -232,7 +232,7 @@ }, { "cell_type": "markdown", - "id": "4a4ed1c9", + "id": "8cd52d8e", "metadata": {}, "source": [ "### Custom Array Layout CSV Explanation\n", @@ -265,7 +265,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "f56d68a1", + "id": "27014c6a", "metadata": {}, "outputs": [ { @@ -480,7 +480,7 @@ }, { "cell_type": "markdown", - "id": "6a5227d7", + "id": "d6082723", "metadata": {}, "source": [ "(case_1)=\n", @@ -498,7 +498,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "87a2ae1e", + "id": "60ed628b", "metadata": {}, "outputs": [ { @@ -534,7 +534,7 @@ }, { "cell_type": "markdown", - "id": "621645d6", + "id": "bce1cfaf", "metadata": {}, "source": [ "There are a few items worth noting in the layout:\n", @@ -550,7 +550,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "299dd110", + "id": "58fe30c4", "metadata": {}, "outputs": [], "source": [ @@ -563,7 +563,7 @@ }, { "cell_type": "markdown", - "id": "dcf316f5", + "id": "8c2a8b13", "metadata": {}, "source": [ "(case_2)=\n", @@ -581,7 +581,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "421e5c36", + "id": "2c9300b3", "metadata": {}, "outputs": [ { @@ -605,7 +605,7 @@ }, { "cell_type": "markdown", - "id": "783ed027", + "id": "9a0b1d0b", "metadata": {}, "source": [ "The below figure demonstrates the meaning of the straight-line distance between two points." @@ -614,7 +614,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "41d9d40f", + "id": "3d8516ee", "metadata": {}, "outputs": [ { @@ -644,7 +644,7 @@ }, { "cell_type": "markdown", - "id": "74290bb8", + "id": "e7a52bbe", "metadata": {}, "source": [ "Here the cable length and bury speed are still set to 0 to indicate that they are unknown, which\n", @@ -655,7 +655,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "4e1b64ef", + "id": "fc772548", "metadata": {}, "outputs": [ { @@ -918,7 +918,7 @@ }, { "cell_type": "markdown", - "id": "419f9308", + "id": "9a911334", "metadata": {}, "source": [ "For later comparison, we'll show the cabling costs for the straight-line cabling assumption." @@ -927,7 +927,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "b030f439", + "id": "09ab9f17", "metadata": {}, "outputs": [ { @@ -952,7 +952,7 @@ }, { "cell_type": "markdown", - "id": "5b736ea0", + "id": "92904937", "metadata": {}, "source": [ "(case_3)=\n", @@ -977,7 +977,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "58abce19", + "id": "74b6c992", "metadata": {}, "outputs": [ { @@ -1192,7 +1192,7 @@ }, { "cell_type": "markdown", - "id": "52e7351b", + "id": "0dd90ea9", "metadata": {}, "source": [ "Using the distance-based location data requires us to set `distance` to True in the\n", @@ -1203,7 +1203,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "a99166a4", + "id": "92e2ac16", "metadata": {}, "outputs": [ { @@ -1228,7 +1228,7 @@ }, { "cell_type": "markdown", - "id": "6b1381fd", + "id": "96ea979d", "metadata": {}, "source": [ "Alternatively, we can set the `distance=True` when calling the `CustomArraySystemDesign`, however\n", @@ -1241,7 +1241,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "0a712533", + "id": "59be7287", "metadata": {}, "outputs": [ { @@ -1271,7 +1271,7 @@ }, { "cell_type": "markdown", - "id": "191e1574", + "id": "7d76b9db", "metadata": {}, "source": [ "Overall, the cabling cost is highly similar, with the difference being attributed to the method\n", @@ -1281,7 +1281,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "8d672377", + "id": "6e80e0a5", "metadata": {}, "outputs": [ { @@ -1306,7 +1306,7 @@ }, { "cell_type": "markdown", - "id": "3bd78f55", + "id": "c4eda75a", "metadata": {}, "source": [ "(case_4)=\n", @@ -1328,7 +1328,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "4f24d4cc", + "id": "03d5f8fe", "metadata": {}, "outputs": [ { @@ -1365,7 +1365,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "8137a6f8", + "id": "2ac85403", "metadata": {}, "outputs": [ { @@ -1390,7 +1390,7 @@ }, { "cell_type": "markdown", - "id": "435443e8", + "id": "78c54483", "metadata": {}, "source": [ "(case_5)=\n", @@ -1414,7 +1414,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "e66e4561", + "id": "400869e8", "metadata": {}, "outputs": [ { @@ -1441,7 +1441,7 @@ }, { "cell_type": "markdown", - "id": "78305359", + "id": "94a69651", "metadata": {}, "source": [ "Note that there are now cable lengths defined as well as burial speeds for the installation phase." @@ -1450,7 +1450,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "c37c9d5d", + "id": "9b70f1c6", "metadata": {}, "outputs": [ { @@ -1713,7 +1713,7 @@ }, { "cell_type": "markdown", - "id": "1a467bd3", + "id": "3cbbf50c", "metadata": {}, "source": [ "Once again, the cabling costs have increased." @@ -1722,7 +1722,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "0093034d", + "id": "efea3b81", "metadata": {}, "outputs": [ { @@ -1747,7 +1747,7 @@ }, { "cell_type": "markdown", - "id": "05599cc6", + "id": "07cd9507", "metadata": {}, "source": [ "(running)=\n", @@ -1766,7 +1766,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "8a053a62", + "id": "17dcdac3", "metadata": {}, "outputs": [], "source": [ @@ -1792,7 +1792,7 @@ }, { "cell_type": "markdown", - "id": "1e1652b0", + "id": "97a9b8ab", "metadata": {}, "source": [ "### Run And Inspect The Simulation Results\n", @@ -1805,7 +1805,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "ea5bef83", + "id": "1a96bb56", "metadata": {}, "outputs": [ { @@ -1834,7 +1834,7 @@ }, { "cell_type": "markdown", - "id": "e8f4114f", + "id": "2ceeb9c6", "metadata": {}, "source": [ "(project_manager)=\n", @@ -1849,7 +1849,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "1d7f213c", + "id": "525d1ce8", "metadata": {}, "outputs": [ { @@ -1911,7 +1911,7 @@ }, { "cell_type": "markdown", - "id": "67552380", + "id": "4e61ac01", "metadata": {}, "source": [ "Below, we can see that the results coming from the `ProjectManager` are the same as the additive\n", @@ -1921,7 +1921,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "b1a64e9b", + "id": "b9154b8a", "metadata": {}, "outputs": [ { diff --git a/examples/export_cable_system.ipynb b/examples/export_cable_system.ipynb index 224ff192..496be5e2 100644 --- a/examples/export_cable_system.ipynb +++ b/examples/export_cable_system.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "68197eff", + "id": "3ec17b3e", "metadata": {}, "source": [ "# HVAC vs HVDC Systems\n", @@ -17,7 +17,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "91eaff96", + "id": "36a85172", "metadata": {}, "outputs": [], "source": [ @@ -26,6 +26,7 @@ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", + "from matplotlib.ticker import StrMethodFormatter\n", "\n", "from ORBIT.phases.design import ElectricalDesign\n", "from ORBIT import ProjectManager, ParametricManager\n", @@ -36,7 +37,7 @@ }, { "cell_type": "markdown", - "id": "326d01cc", + "id": "4c3f3aba", "metadata": {}, "source": [ "## Setup The Models\n", @@ -50,7 +51,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "ba8b8a25", + "id": "f15f5c08", "metadata": {}, "outputs": [], "source": [ @@ -59,7 +60,7 @@ " \"site\": {\n", " \"distance\": 100,\n", " \"depth\": 20,\n", - " \"distance_to_landfall\": 50,\n", + " \"distance_to_landfall\": 80,\n", " },\n", " \"plant\": {\n", " \"capacity\": 1000,\n", @@ -79,7 +80,7 @@ }, { "cell_type": "markdown", - "id": "4000381a", + "id": "94410ddb", "metadata": {}, "source": [ "Now we can create an HVAC and HVDC variation of the `base_config`" @@ -88,7 +89,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "5e35bc1b", + "id": "0e2f57d5", "metadata": {}, "outputs": [ { @@ -120,7 +121,7 @@ }, { "cell_type": "markdown", - "id": "7e1eeca6", + "id": "e4dac097", "metadata": {}, "source": [ "## Compare the Results" @@ -129,15 +130,15 @@ { "cell_type": "code", "execution_count": 4, - "id": "57d646ad", + "id": "09298b10", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "HVAC CapEx per kW: $2,974.90 \n", - "HVDC CapEx per kW: $3,377.08\n" + "HVAC CapEx per kW: $3,248.11 \n", + "HVDC CapEx per kW: $3,453.34\n" ] } ], @@ -149,7 +150,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "2a7cc423", + "id": "8df1a894", "metadata": {}, "outputs": [ { @@ -185,18 +186,18 @@ " \n", " \n", " Export System\n", - " 318,311,296\n", - " 95,436,000\n", + " 498,419,536\n", + " 149,436,000\n", " \n", " \n", " Offshore Substation\n", - " 245,496,817\n", + " 249,766,921\n", " 795,031,033\n", " \n", " \n", " Export System Installation\n", - " 49,953,788\n", - " 14,008,968\n", + " 75,818,732\n", + " 20,475,204\n", " \n", " \n", " Offshore Substation Installation\n", @@ -205,7 +206,7 @@ " \n", " \n", " Onshore Substation\n", - " 195,273,630\n", + " 200,437,705\n", " 254,763,736\n", " \n", " \n", @@ -215,8 +216,8 @@ " \n", " \n", " Soft\n", - " 496,606,631\n", - " 548,577,239\n", + " 554,406,805\n", + " 564,374,443\n", " \n", " \n", " Project\n", @@ -230,13 +231,13 @@ "text/plain": [ " HVAC CapEx HVDC CapEx\n", "Category \n", - "Export System 318,311,296 95,436,000\n", - "Offshore Substation 245,496,817 795,031,033\n", - "Export System Installation 49,953,788 14,008,968\n", + "Export System 498,419,536 149,436,000\n", + "Offshore Substation 249,766,921 795,031,033\n", + "Export System Installation 75,818,732 20,475,204\n", "Offshore Substation Installation 3,861,208 3,861,208\n", - "Onshore Substation 195,273,630 254,763,736\n", + "Onshore Substation 200,437,705 254,763,736\n", "Turbine 1,310,400,000 1,310,400,000\n", - "Soft 496,606,631 548,577,239\n", + "Soft 554,406,805 564,374,443\n", "Project 355,000,000 355,000,000" ] }, @@ -263,32 +264,33 @@ }, { "cell_type": "markdown", - "id": "59a6ea9d", + "id": "f9a597dd", "metadata": {}, "source": [ "## Setup The Parametric Runs\n", "\n", - "From the two base cases above, we see that HVDC cables are more cost effective than HVAC by\n", - "roughly 30%. However, the offshore substation (OSS) is over three times the cost of an HVAC OSS.\n", - "To compare this sensitivity and see if there is an point that these technologies cross we'll use\n", - "the `ParametricManager` and sweep each cable for a range of plant capacities." + "From the two base cases above, we see that HVDC cables are more cost effective than HVAC at roughly\n", + "30% of the HVAC cable costs. However, the offshore substation (OSS) is over three times the cost of\n", + "an HVAC OSS. To compare this sensitivity and see if there is an point that these technologies cross\n", + "we'll use the `ParametricManager` and sweep each cable for a range of plant capacities." ] }, { "cell_type": "code", "execution_count": 6, - "id": "bebd4a27", + "id": "385fd8c4", "metadata": {}, "outputs": [], "source": [ + "capacity_range = np.arange(100, 4100, 100)\n", "parameters = {\n", " \"export_system_design.cables\": [\"XLPE_1000mm_220kV\", \"HVDC_2000mm_320kV\"],\n", - " \"plant.capacity\": np.arange(100, 2100, 100),\n", + " \"plant.capacity\": capacity_range,\n", "}\n", "\n", "results = {\n", " \"cable_cost\": lambda run: run.total_cable_cost,\n", - " \"oss_cost\": lambda run: run.substation_cost,\n", + " \"oss_cost\": lambda run: run.total_substation_cost,\n", " \"num_cables\": lambda run: run.num_cables,\n", " \"num_substations\": lambda run: run.num_substations,\n", "}" @@ -297,37 +299,52 @@ { "cell_type": "code", "execution_count": 7, - "id": "45fa7f1f", + "id": "c1cd9ad9", "metadata": {}, "outputs": [], "source": [ "parametric = ParametricManager(\n", - " base_config, parameters, results, module = ElectricalDesign, product=True\n", + " base_config, parameters, results, module=ElectricalDesign, product=True\n", ")\n", "parametric.run()" ] }, { "cell_type": "markdown", - "id": "d1d1ceab", + "id": "8fc4fc37", "metadata": {}, "source": [ "## Compare the Cost vs Capacity Trade Off\n", "\n", - "The inflection point of the below graph shows that for a project that has less than 700 MW of\n", - "capacity, HVAC is more cost effective, and for projects greater than 700 MW should, HVDC is more\n", - "cost effective." + "The inflection point of the below graph shows that for projects with about 100 km of export cabling\n", + "that 1,400 MW of capacity is the point at which HVDC becomes more cost effective than HVAC.\n", + "\n", + "Not shown in this example, but generally for near shore projects, HVAC will be more cost effective,\n", + "but as the cabling length grows, the project size required for the economics to favor HVDC shrinks." ] }, { "cell_type": "code", "execution_count": 8, - "id": "d565bca4", + "id": "aa18f8cf", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.DataFrame(parametric.results)\n", + "\n", + "hvac_df = df[df[\"export_system_design.cables.XLPE_1000mm_220kV.name\"] == \"XLPE_1000mm_220kV\"]\n", + "hvdc_df = df[df[\"export_system_design.cables.HVDC_2000mm_320kV.name\"] == \"HVDC_2000mm_320kV\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "eaa20623", "metadata": {}, "outputs": [ { "data": { - "image/png": "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0yVCOkWc+34XcGcETgA01lBKBVQLFy7UPWftevLz85NbbrnF4e9tXRvKGn5VNdXu6NGjDn9fAAAAoKF8sOGg5J4p1Y09OITuJpgHazih8RbRVusamenzdTGqw0kFPGrdJBUwPf3009p4amqqrFmzRtu+7rrrpFmzZg5/723btukWMbeKjIyU8PBwLZDavn27lJWVsXA4AAAAnN7p4lJ5e1WybmzwReHSpU3lm/MA7orACY1D3bGtERbRxvnz8fGRW2+9VWbOnCm//fabbNmyRXr16iUffPCB1vXUEIuFK+rcP/zwg21/4MCBuucTEhLks88+06bUrVy5UgYPHuzwGgAAAABHWrghTXIKinVjUxLaG1YPYASm1AGwsQ+UVNBkP52uRYsWMmzYMIe/59KlS2Xfvn3adr9+/SQiIkL3/Lhx42zbU6dOdfj7AwAAAI50prhM5lToburc1CJd27B2E8yFwAmATZ8+faRTp07a9qJFi2TdunWyd+9ebV91P6kuKEdSU+UmT55s23/qqaeqnOp36aWXatvqTnnWIKwurJ1RAAAAQGNZtClNsk+dveGO1dVRFsPqAYxC4ARAx3oXuqysLJk0aZJt3NHT6VSYpQKu9PR0bf+2226TG264odJxHh4e2iLmgYGBto6nt956SywWS41B1kMPPSQ333yzlJSUOLRuAAAAoDqFJWUye6V+7dpOoRZpf+7my4BpsIYTAJ0777xTnn32WW1tpV27dmljnTt31tZzqo+MjAzZuXOnbT8/P19bkFwtEP7tt99qgZOVWoz8nXfeqfZcXbp0kU8++UTGjBkjp06dkgceeEBmzZql3TGvd+/e2nQ/1cmUlpYmy5YtkyVLlkheXt55ff4AAADA+Vq85ZBk5eu7m65pS3cTzInACYBOdHS0JCUlyfLlyyt1PdWHCq3Uoybt2rXTptHdd999tZ5PrR+1du1auf/++7WPKsyyD7QqUnfce/755yUkhLnyAAAAaHhFpWUya4W+u6lfTDOJaXLMsJoAIxE4AajknnvusQVOnp6eWtfThfD29pYmTZpIaGioxMbGal1JKtQaOnSodv66uuSSS2TNmjXy008/yRdffCGrVq2SzMxMOX78uDblrnXr1lonllr3acSIEeLv739BdQMAAAB19cnWdDmcW6gbuz+xvZz4ncAJ5kTgBLgYFdSo6W718e67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b1hNAAAAcKO71FktX75clixZItu3b5fs7Gw5c+ZMjXel8/DwkAMH9He1uVCbNm2S2267rcrnjh07JitXrtQer776qnzwwQdaeFSdF154QV566SWxWM795vbo0aOybNky7bFw4UL55JNPtACpOurP4Oabb5alS5fqxtPS0rTXqyDqL3/5izz//PPn9fkCAGCUDzemSX5RqW3fw0NkUkKsoTUBAADAjQKnrKwsufXWW7UgR6kuZFIBk/1zar8htG3bVq644grp2bOntt26dWstNEpPT9cCos8++0wLxG644QYtoLr00ksrnWPOnDny4osvattxcXHy9NNPS7du3SQzM1PefPNNLVz7+uuvZfz48fLhhx9WW4t63ho2qZoefvhhadOmjezYsUP+/ve/a4GbCrZUjZMmTWqQPw8AABytsKRM5q/R36n2mi4REtsi2LCaAAAA4EaBU0lJiQwbNkx++eUXLUy67LLLJDIyUgtjVKCkpo0dP35cfv75Zzl8+LA21qNHD+natWuD1KNCHdU9VJ0xY8ZoXVgjRoyQ4uJiLVRSAZQ9Ve8TTzyhbUdHR8uGDRskPDzc9vx1112nvf7LL7/UOpRUUKSm6lX0008/adP7lOuvv14+//xz8fI6e4vo3r17a4GXCsVUver9Ro8eLc2aNXPYnwUAAA3l820Zciy/SDc2OTHOsHoAAADgZms4LViwQLZt26Ztv/vuu1qw9M9//tP2/HvvvacFMxkZGVqwozp5du/erYU26nhHswY6Nbnpppvkoosu0rZXr15d6fl58+ZJbm6utv3KK6/owibre7z11lu291LT86ry2muvaR+9vb11x1up86rzKydPntTeFwAAZ1dmKZe5q5J1Y/3jmsulbZsaVhMAAADcLHD69NNPtY/XXHON3HPPPbUGPWranVrAe+zYsbJv3z4xSpMmTbSPhYWFlZ5THVBKSEiIjBw5ssrXR0VFyZVXXqlt//jjj5Kfn697Xu2rcUUdp46vijq/eh9FdUABAODsvtt1RFKyC3RjdDcBAACYR6METmqBcOvUuapUXM9JrYek1jEqKCjQ1kIywu+//65NAVQ6deqke05Ns1PrOimXX365Fo5VR90FTykqKpItW7bontu8ebN2LvvjqqLO369fP9tr1BRFAACclfp/ffZK/Q0/urQJkUEd9N3AAAAAcF+NEjip9Y6U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r149c+ONN5p58+aFLeO1114zKSkpET20bDgHDhwww4cPN82bNzflypUzxYsXNw0aNDB33323+eWXXzz65Mkn0jo677zzwpb1ySefmO7du7vbjP7X33o+UhkZGWbMmDGmbdu25qSTTjJFixY1tWvXNv379zcrV66M8dMmL9VfpHXtPL7++utMZbBPJ4Zt27aZGTNmmCFDhpiLL77YVKhQwf3eb7jhhhyXl0j77Y4dO+zn+tvf/mZKlSplH5rWczt37jTJxou61n72wQcfmAEDBth9rWzZsqZQoUKmfPnyplWrVuaRRx4xW7du9fQYEokVK1bY7UPbibYXbTfafrQdaXtKNl7UdaIeo7WsXqPXqgyVpTKfeeYZ+x7JJta63rhxY47P5zVq1AhYFvt14l9P+eN8HQMfgITRtm1bn3bLcI/rr7/ed/jw4aDlTJw4MaJy9NCyofz000++unXrBn19qVKlfNOnT8+FbyP/i7SO2rVrF7SMY8eO+fr06RPy9X379rXLhbJ9+3Zf8+bNg5ZRuHBh37hx43LhW8j/VH+R1rUeBQoU8G3atClTGezTiSHU9967d++Iy0m0/XbhwoW+SpUqBS2ncuXKvkWLFvmSSax1/eOPP/pKlCgRdn/V/vbuu+96dgwJZ+zYsb60tLSgr2/RooXdrpKJF/t1Ih6jP/74Y7tssHLq1atn3yuZxFrX6enpOTqf69GhQ4eAZbFfJ/71lHC+jl1qLMEqAN7avHmz/b9KlSrmqquushHwU0891Rw7dsx8++23ZsSIEeb33383b7zxhjl69Kh5++23w5b56aef2vKCUYQ+mL1795rOnTubn376yf7dr18/07NnTxuRnzNnjhk6dKjZs2ePufrqq838+fNNkyZNovrcyU53vwcOHBh0vu5KBjN48GAzfvx4O920aVNz77332rslGzZssHdHly1bZl599VV7J+Wpp54KWIa2L92l+e677+zfl19+ua1r3QldtGiReeKJJ+xdQd2BqVq1qr0riMhNnDjR7N+/P+Qyq1atsvuRXHDBBfZ7DoZ9OjHo2Kysgc8++yzHr02k/fa3334zXbt2Ndu3bzepqanmH//4h+nSpYudp0yA5557zmzZssUus3Tp0pDbV34VTV1rP9q3b5+dbt26tf1OmzVrZrOb9F0r82ncuHF2uWuvvdbeoQ53bNXrdTyJ1qxZ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o2m0a9cu2/zzzjvPdoIpGiXDWTar1157zZ1WR3zwtr25LkxEFyf+6dO66+WkA+uOyMKFCwOWoeedOyZaPuvdMo2M5twBmTx5st3+AqGevfPJJ5/YCw+vf5yyTye+RNtv1deIhuaWiRMnBl1vpxwtq9cgcgsWLLB1qE5ctf99+umn5rTTTvP0PRTIUhMRR6B+SS677LKA24U/bUfanpy76aFGzkTiHqP96zrYfq1MOyfTVv0NnX/++Tn+PMjdjGX26/heT3G+9pAPQMI4fPiwr0OHDvqFYR933HFHjstIT0/3ff/99yGXmT59ui8tLc2+R9GiRX2bNm0KuNxDDz3krsvw4cOzzV+wYIEvNTXVzm/Xrl2O1zWZffzxx76jR48Gnb9161Zf06ZN3e9/xIgR2ZZZu3atr2DBgnZ+s2bNfAcOHMg0X3/rec1XPa1bty7ge40fP959n0GDBmWbv379el+pUqXs/Dp16oRcb4R3xRVXuN/30qVLwy7PPp24VDfO99m7d++IXpNo+22vXr3ccqZMmZJt/uTJk3P8GfOjaOp62bJlvjJlytjXFC9e3Ddv3rwcv+9XX33l2717d9D5R44csevjrFvXrl2DLlerVi27jLYLbR9ZDRw40C1n4sSJvmSV07pOxGN027Zt3WOIXpOVynbe5+GHH/Ylq2j2a387d+5067Vx48YRv479OvGvp4TztTdS9I+XASwA0bviiivMBx98YKfbt29vnn/++ZDtt9PS0rLdqfj666/tnapWrVqZrl27mjPOOMMd8lPtl6dOnWofzq6v4ZidTkyz2rt3r2nWrJmb4qkRVnr27GmH2ZwzZ4556qmn7GgJ+lt3cZs0aeLZd5HfKeVWTatU56or/a3vUen2qkONZOSk3iuN9osvvgjYefP9999vU4SladOm9u6NsqHUv8OwYcPMsmXL3OVUX4EcO3bM3m2dP3++/Vvr1K9fP9uRtUZeefzxx822bdvs3ZIZM2Z41gQsGamTVvXfomyH008/3Sxfvjzsa9inE8e8efNsvygO7aP33HOPm7ret2/fTMvfcMMNActJpP1WnYueddZZNutO2XZ333237che9LoRI0bYO+1q/qk7xckyYECsda26POecc2wdyMiRI22ntaFov846RLfKff/99+2damXAaJj0UqVK2f1UzaWUNeM0F9FrdbddTUEC0Yh4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", + "image/png": "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dExcHBOn4+dO5f07uK8hbDpvz5490rNnTzl9+rRefW7KlCn6H/KiiI6OduznNRxNDVnLaZibvZ78DGnLqZ6CtMW5nvwMuXOW13xQWXtPFTTMgndR/5HkGfsunq9v4/n6Np6vb+P5+j6esW/j+ZasxNR0ufmbFbLzeMGmkCmI9LhE8TcMoxORw4cPS48ePfSrxWKRL774QgYMGFDkep2Dl7wmznbuEZR13iN7PSoAOnPmTL7qqVChgmFInfoXVvny5fPVFhW42cOmgszBBAAAAACANxn346ZiDZr8ld+HTWqiriuvvFJ2796t37/33nty4403uqVu5xXltm7dmuu59uNBQUFSv379QtWjhv/ZJ9xu3Lhxju3ZuXOnPjevtuRUDwAAAAAA3u6HtYdk2qrcO2OgcPx6GN3Zs2elV69esnnzZv3+tddek3vuucdt9bdr105Pxq3mSHKeeDwrdXzZsmWOa4KDgw3HO3bs6NhX9XTo0MFlPatWrXL0SLr88suzHVf1/P333/qc//77T8+Z5Iq6h52regAAAAAA8GZ7YxPkyVkbDGWRIYEypkcDCQywiMWSWXb+RY+Cyny9UGY/6cI5av/CefZjRw/tl7GFX3vMK/lt2JSYmCh9+vSR1atX6/dPPfWUPPbYY269h5onqXv37vLLL7/Ib7/9poevuZrTaNasWRIXF6f31QTlWXXt2lVKly6tw7GvvvpKHn30Ucc3urNJkyY59l3VM3DgQHn11Vf1/pdffukybLJarfL111/r/TJlysgVV1xR4M8NAAAAAICnSknPkHsnr5aE1AxD+cuDmsvA1lXdfr8dO1JkrPgXvxxGp3oSqTBm6dKl+v0DDzwgL730UoHr2bt3rw591KYCIVcefvhh/aqGraleUxkZGdmG8dlDLhXujB49OlsdqnfU/fffr/e3bNkib775ZrZz/v33X/n888/1fpcuXXQPqazUKnCdOnXS++pcdU1Wb731lr6H/euStZcVAAAAAADe7PX522TjocwOH3ZDL65WLEGTv/LLnk0jR46UhQsX6v1u3brJrbfeKhs3bszxfBX2NGjQoFD3UvWPGDFCr273448/6vmhxowZI1WqVJENGzbIyy+/LPv379fnjh8/XsqWLeuynkceeUSmTp0q27dv1z2b1LxLql61SsGiRYvklVde0YGWej9x4sQc2/POO+/o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dQC+pVjCpkmTJkmTJk3cWuemTZukefPmbqvv+PHjsmLFCr2tXLlSbydPntTHRo0apT+DO4wbN06ef/75fJ27aNEi6dq1a67nxMbGyrvvvitz5syRvXv36rJatWrJwIED5YEHHpDy5cvn614bN26U9957T3777Tc5fPiwREVFSaNGjeS6666T0aNHS1AQ48UBAAAAdziXki73TV4taRkXRoCoARtvD2slMVGhprYNAIqD3yYKlSpVEm+zfPlyHSodPXrUUL5hwwa9ffbZZzqEat++fa71fPrpp3LvvfdKamqqoyw5OVmWLFmity+//FJ+/vlniYmJKbbPAgAAAPiLZ+dslL0nEw1ld3apKx3r8/M2AN/kt2GTsxo1auhePQsXLizW+6hAKDe1a+c8VvvAgQPSr18/OXHihO519OCDD0rfvn31sZ9++kkmTJggR44c0ef8999/Uq1aNZf1zJs3T+68806xWq06cHvqqafkkksukVOnTukQatasWbq316BBg/QcXIGBgUX81AAAAID/mrX6oMxac8hQ1qp6GXnwygamtQkAvCpsUgFGcWnatKlb63/22WelXbt2elOhixqSllvY4w7NmjUr9LUqFFJBk/L999/L0KFDHcc6deokF198sQwfPlwPD3z66addDgNMS0uT++67T38dS5UqJUuXLpW6des6jl911VVyzz33yP/+9z/dw+mbb76Rm266qdBtBgAAAPzZntgEeWbORkNZdGiQvDeytQQHBpjWLgAobn77bzg1j5LqGeQNw+nUsLnvvvtO7/fq1csQNNkNGzZMH1NUSJR1qJ0ye/Zs2b17t95/4oknDEGT3RtvvCFly5Z17AMAAAAouNR0q9w/eY0kpGYYyl+5prlULxdhWrsAoCT4bdjkTX788UdHr66bb745x/PsvZDUueqarNR8TlnPzSoiIkIHV8rmzZtl+/btRW4/AAAA4G9en79VNhw6aygb3ra69GtZxbQ2AUBJIWzyAmpIm12XLl1yPM/5mBoil1M9DRs2lMqVKxe6HgAAAAA5W7TtuHy2ZI+hrG6FSHmuv3tX7AYAT0XYVIJ69uwpFStWlJCQEP3atWtXee211+T06dO5Xqd6GCmlS5fONSS66KKL9FxMypYtWwzHzp07pycZV9Rk6LlxPp61HgAAAAA5Ox6XLA9PW2coCwkKkPdGtpGIENZn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wBjCJgAAAAAAABhD2AQAAAAAAABjCJsAAAAAAABgDGETAAAAAAAAjCFsAgAAAAAAgDGETQAAAAAAADCGsAkAACCb2rNnj4qJidG3Tz75RGV1gwYNcrbX87ZkyRIV6W655Ravrx0AgEhE2AQAAELu3LlzavLkyapLly6qRo0aqlixYipXrlyqePHiqk6dOurxxx9XP/zwg7p06VK4NxVhIgGUZyhTsGBBderUKb+PO336tCpcuLBrmHXx4kVVqFAhff/111/vc12WZel9017P+PHjfS7/6aefOsuOGTMmHa8WAIDIQtgEAABC6quvvlLVq1dXHTt2VJ9//rnasWOHOnr0qLpw4YI6cuSI+umnn9QHH3ygWrRooWrWrKnmzp0b7k3OtqS1kx1+SCuorOTXX391bvXq1fO7/IkTJ9SsWbP8Ljd79myVnJzsOj9nzpzqpptu0tM///yzz2W3bNmi903b8uXLfT635/ybb745xbwJEyY4r1fCVAAAIllsuDcAAABEj9dee00NHDjQ+b8ESq1bt1a1atVS8fHx+ou9hE9z5sxRCxYsUAkJCap///7qzjvvDOt2Z1UVK1bUrW+yo6uuuirgZfPkyaPOnDmjw0kJKX2RZTwf440EQd9//71uObdq1Sp12223+QyPJKCSFlGBhk3SQk/2aU+VKlVypkuWLOlzPQAAZHe0bAIAACEhLTvsoEm+bEvXpvnz56snn3xSNWvWTHdpat68uerVq5eaN2+ebnUi/wckkBQSQB44cMB1ub/++kvvU6JNmzauy3m2Olq2bJnrcva89u3b67+7du1Sf/75p+tzSzgqGjVqxHhMAICoRtgEAACC7o8//tChksifP79aunSpatKkid+WL9L65P/+7/9CtJXIqlq2bKlKly6tWxfJWF9uZJ50x5RlpdWcG+m2Jy2fhK/WSva8++67T1WuXNnn8r660AEAEG0ImwAAQNC99dZbzuDOr776qh4UPBA5cuRQnTp1SnP/sWPHdEspmSfdlQoUKKDi4uJ0yNCqVSs1duxYPQh5eq7iNn36dN2SSlpd5c2bV29jv3791N9//+1zGzdv3qxef/11/byXX365yp07t96eqlWrqq5du6o1a9aoQK1cuVI98sgjekwrGcRaXpOs86677lLvvfdemm1xuxqdPbh2t27dUnTj8nYVuMOHD+ttlv8/9thj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", "text/plain": [ "
" ] @@ -337,14 +354,9 @@ } ], "source": [ - "df = pd.DataFrame(parametric.results)\n", - "\n", "fig = plt.figure(figsize=(6,4), dpi=200)\n", "ax = fig.subplots(1)\n", "\n", - "hvac_df = df[df[\"export_system_design.cables.XLPE_1000mm_220kV.name\"] == \"XLPE_1000mm_220kV\"]\n", - "hvdc_df = df[df[\"export_system_design.cables.HVDC_2000mm_320kV.name\"] == \"HVDC_2000mm_320kV\"]\n", - "\n", "ax.plot(\n", " hvac_df[\"plant.capacity\"],\n", " (hvac_df[\"cable_cost\"] + hvac_df[\"oss_cost\"]) / 1e6,\n", @@ -357,6 +369,12 @@ " label=\"HVDC\",\n", ")\n", "\n", + "ax.set_xlim(0, capacity_range.max())\n", + "ax.set_ylim(0, 2500)\n", + "\n", + "ax.xaxis.set_major_formatter(StrMethodFormatter(\"{x:,.0f}\"))\n", + "ax.yaxis.set_major_formatter(StrMethodFormatter(\"{x:,.0f}\"))\n", + "\n", "ax.set_ylabel(\"CapEx [$M]\")\n", "ax.set_xlabel(\"Capacity [MW]\")\n", "ax.legend()\n", @@ -364,6 +382,57 @@ "\n", "fig.tight_layout()" ] + }, + { + "cell_type": "markdown", + "id": "ed6dad1c", + "metadata": {}, + "source": [ + "Comparing the below figure to the CapEx figure above, highlights that CapEx increases for the HVDC\n", + "system correspond to an increase in the number of substations (each requires a single cable),\n", + "whereas for HVAC system, these increases primarily correspond to an increase in the number of export\n", + "cables with a smaller increase stemming from the substation requiremensts." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f6879452", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AAAAohPBJiAGXXTRRb7b7733XoHu+7///c9dlyhRws4///yg27zzzjuWnZ0d8HVB7Ny5026++WZr1qyZ3Xnnnfbdd9/Z0qVLbfv27e57K1eutG+++cbuvfdea9y4sZ1zzjm2fPnyAj0HoifzJyeOPwAAAJDYSliCWrNmjf3yyy/uMnXqVHdZv369+16fPn1cxkRh6YSqdevWvk/sGzRoEJCVAuyvXr16Wfny5W3Lli0u2HT//feHdD+9JydPnuxud+3a1WrUqJFnQKpcuXK2detWFyxYtWqV1apVK9/nWLdunZ1++un2008/ua81TwW1TjrpJKtbt66VLFnSVq9e7eYxbNgwmz9/vn388cd2zDHH2E033WSFpSyZnj175rtdKK8BhRep4w8AAAAgeiRssCm3k+yicN9991EagmJVpkwZd0Kv8jadrOvE/uijj873fu+++64vY+niiy8Ous2PP/5oCxYscLdVZnfVVVdZZmamC2rddttteT5+VlaWnX322b5Aw2mnnWZvvPGGVa9efZ9tNf/BgweH9LihUGmWgryInEgefwAAAADRgzI6M6tfv77L8igKv/32m+sJk5aW5j7RB4rLueeeGxBECoW3XcWKFXPNAvJK5qpWreqy/Dp16hSQ7ZSXZ555xsaNG+duqyfP8OHDgwYaPOoLpZLA6dOnW9u2bUN6DYheHH8AAAAACR1sUvbR559/7so51EvklVde2e/HVPbH5Zdf7q779+9vVapUKZK5AsF07NjRlSXJRx99ZOnp6Xlu//PPP9u8efPc7bPOOssFRHPatWuXK2kSZaio5MnrD/Xnn3/a77//nuvj796925544gl3W4/95ptvur5QodDrUJlVuOn1KsihnkUKDufVbP2WW27x9Td66623gjZyVxNs+fvvv9326lmkLLRq1arZqaeeal999VVI85oxY4ZdccUV1rRpU3d/za1Nmzbu94qabudG5breHL1SYJWqde/e3WrXru2Oh1ZU8xqrDxo0yHffYM3UC1L+WxzHf+bMma48UoErbZOamupKO7VfFAj1MqhC9e+//7qS01atWrnH0e/oE0880T744AMrCvp7cs8999gRRxzhHlvzrVevnvtZUilqXvR3Q8dFr7VmzZpWqlQpFxRu3ry5Cww/+eSTNmvWrCKZJwAAAFDcEraMzv8kqyg/1dcn9Do5UFNc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u1bw5fzzz893+4yMDFu/fr0Lauln+NFHH7Xu3btbo0aN7KWXXipQOe2xxx5rJ510kj3zzDP222+/2T///OOCPZs2bbK5c+e6xQT02urWrWtPPvlkoQJamu/VV19tRxxxhL344ov2xx9/uMfPzMy0bdu22cKFC+2rr76yhx56yM3ljTfesHiloKYXNAwHLzjqfcAAAAAAFKU1m3faY1/OCRhreEAZu/bEJhGbEyLYIPzWW291J7hPP/20nXvuuS6DAUDh9erVy8qXL29btmxxwSb1QwvF4sWLbfLkye52165drUaNGkG3UyCmZ8+evq83b95sGzZssF9//dW+/vpr+/HHH23ZsmV2zTXX2OjRo+3TTz+10qVL5/q8yoQ6++yzfdmNrVq1snPOOcfatWtn1apVc0GgpUuXuiDQqFGjbOPGjXbbbbfZpZde6rKSCuK6667zLUpQq1Ytu/LKK619+/bueXbs2OEyxKZMmWIjR450rwGRy/QDAAAACmLQ6Fm2ZVdGwNjDvdpYWsmUiM0JEQw2VaxY0Z2gnn766e6kTyey5513nisBAlBwZcqUcT9PygSaP3++/fTTT3b00Ufnez+VqGVn76ltvvjii3Pdrk6dOta6det9xk877TS77777XLDpwgsvdMGrL774wmW0fPjhh0EzaP766y/7z3/+40rjlE2loLMyj5KT902sVFbT2rVrbdCgQfbCCy9YQc2cOdOVCYrK51QmlzNYdcwxx7jfP88++6x9++23bl8CAAAAiG7j5qyxMX+uChjrfWgd69CkasTmhAgHmw488EB3rZPNf//9166//nq74YYbXB+Y/E70dPKqshcAgZQlqGCTF0QKNdjkBYD9M5cKSkHjX375xTX9X7FihX388cduPsq48qfAlvoweT2Y3nrrLRekyosykJ5//nk78cQTXb+oglBWlBdMU1A7v6yoLl26FOjxAQAAAITf9t0ZNmDEzICxSmVK2j2nHhSxOSEKejapbEWXNWvWuK91MqheLPra+15eFwD76tixo+ttJB999FG+ja5//vlnmzdvnrt91llnWVpa2n49v4LFXrmaDBkyZJ9txowZ43omiTKx8gs0+TvzzDOtbNmyBZqTf1mcGoEXd68j/6bvoZSFqS/VFVdc4fpdaf+rzE/lhcpMy4v6TamBu/ZJ8+bN3X0VMGzatKl16tTJBg8e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3zZl0fqAsX4dGlqr2hUjNicAABJBWHo29evXr9D3TUpKsjfeeKNI5wMAAID4tmHbbnt4zKyAsTqVStvNXZpFbE4AACSKsASbhg4d6oJGhUl9JtgEAACAgnp4zGzbuD09YOyBnq2sTKmw/PsLAEBCC8tf2/r16+cbbNq2bZutX7/eF2CqWrWqlSlTJhzTAwAAQBz5ceE6++zXFQFj3dvUtE4H1YjYnAAASCRhCTYtWbIkpO02btxoH3zwgd13331WqVIlGzVqlDVv3txiwe7du+2dd96xTz75xP7880/bsGGDlSxZ0urUqWPt27e3yy+/3F0DAACg+OxMz7QBw2cGjJVPLWH3n94qYnMCACDRRFWD8MqVK9s111xjkydPtjVr1li3bt1cACraLV261A477DAXUPrmm29s9erVLvikbK158+a5MsIOHTrYDTfc4DK3AAAAUDxeHL/QFq3bFjB2xynNrUaFtIjNCQCARBNVwSaPspkUmFFG1JNPPmnRLD093U499VT766+/3Ndt27Z1waUpU6a4wJOytMqWLeu+99xzz9mjjz4a4RkDAADEpwVrttpL4xcEjB1Sr5Kdf1SDiM0JAIBEFJXBJuncubO7HjZsmEWzkSNH+gJNxxxzjP3666/Wp08fO/roo61Lly42aNAgmzBhgiupEwWbMjIyIjxrAACA+KLs8f7DZ1h65t4s8pTkJBvSu427BgAA4RO1waZy5cq562XLllk0+/HHH3237777bktJSdlnm8MPP9xOO+00d/vff/+12bNnh3WOAAAA8e6TaSvsl8UbAsYuO7aRHVSrQsTmBABAooraYNNvv/3mrr2MoGil3kyeAw88MNftGjduHPQ+AAAA2D/rtu6yh78I/DCvbuXSdlOnZhGbEwAAiSwqg02LFy+2gQMHWlJSkh1yyCEWzfxXy1u0aFGu2y1cuNBd6zU1bdo0LHMDAABIBA+PmW2bdqQHjD14RmsrXWrfjHMAAFD8SoThOeydd97Jd5usrCy38ty0adNcH6Tt27e7wMxVV11l0ey8886zAQMG2ObNm10/pu7du+9TSqcsrTFjxrjb559/vlWoQDo3AABAUZg0f50N/+3vgLHT2tayE5tXj9icAABIdGEJNvXt29cFjgrS4FG0It0555xj0axq1ar2v//9zwWdJk+ebO3atbObbrrJmjVrZlu3bnVjWlFPpXOHHXZYgVfXW7FiRZ7fX7Vqle/2rl27bMeOHYV+LYgdO3fuDHob8Ytjnpg47okpHMf9n8277KEv59m8NVvN9vbTjknrtgW2JyifWsLu6HJgzP1PxM97YuK4J554OuYpv79rJf5812zHv5GeStQrtTHxWukkZXuRnWKUnBx6tV6lSpXsuOOOs2uuuca6du1qsWLOnDkukPTGG2/4gmWeGjVquObhl19+uZUpU6ZAj1uQIN3rr7/ugl8AAAC50WJtT/6ZYn9vj88V2s4+MNM61IjxCBoARLkqW+fasfMfjvQ0YsaKzVlW76mt7vby5cutbt26Fu9KhKsHUygBqfLly7tgU6xR1pJKBVX+Fyx2988//9i7775rjRo1sh49ekRkjgAAADJhVVLcBpoalc+2Y6oTaAKA4lZ//cRITwFRLiyZTfFs27Zt1q1bN5s4caLr1XTrrbfaJZdc4lamU1rkzz//bA888IBNmjTJZSk98cQTdssttxRpGd2RRx7pbs+YMSNg1TvEL723fvjhB3dbmYBpaWmRnhKKGcc8MXHcE1NxHve//91hp7/4s+1Iz7J4U7VsKXun76HWqGpZi0X8vCcmjnviiYtjnpVpac+3saQdGyI9k5ixgswmFJRWzVOgSVRC16dPH9/3SpUqZV26dLETTzzRlQSOGzfObr/9duvUqZMdfPDBIT1+Qd6EqampVrp06UK8CsQy/YHiuCcWjnli4rgnpqI87vp88eGvZgQEmlStP7hXG6taLtViWWqJZDukfiWrkFbS4gE/74mJ4554YvaYL/3RLGegqdcrZqkshJWbXctXmj11uSWSsASbVD6mMrmvv/7amjRpEtJ9li1bZieccILLBlq4cKFFI/3T9uabb7rbagjuH2jyV6JECXvwwQetY8eObtW9oUOH2lNPPRXm2QIAgET2xYzVNm7u2oCxC46qb+cdWT9icwIAxKA5e1Za96nR2uzgcyM1m5iQlTLfEk1Ygk1Lly51QSP1NgpVenq6LVmypEANssNNvZg2bNgT0T300EPz3Pbwww8PaCYOAAAQLpt3ptvAz/8KGKtWPtVuP7lFxOYEAIhB6sIz+/PAsRanRmo2iGKhLxOHoBlLnoyMjHyDZ8HuBwAAUNwe/2qurd2yK2Bs4OmtrGLp+Cg7AwCEyT9/mf27NHCsxWmRmg2iWNQGmzZt2uSuy5QpY9GqSpUqVqHCnrrUKVOm5BlwmjBhQkBZIQAAQDhMX7rR3v058MTgxObVrHubmhGbEwAgTkroKtY3q9kmUrNBFIvaYNO7777rrhs0aGDRSn2oTj11T8rgypUr7eGHHw663caNG+3OO+/0fX3aaUR+AQBA8UvPzLJ7hs9wVQ+e0iVT7IGeraO6VQEAIErNGb1vCR1/TxBEsdRznXTSSUHHL7nkEitbNu/laHft2mWLFi2yNWvWuH+CtIpbNLvvvvts5MiRtn37drcy3fTp012j8AMPPNAta/nTTz/Z008/7Rqei1aii/bXBAAA4sPrExfbnNVbAsZu7tLU6lWJ3sxxAECU+neZ2eo/A8fo14RwBpvGjx/vAkVarc2j21OnTi3Q4yhgc/fdd1s0a9GihQs2nXfeebZu3Tr7/PPP3SW3INwnn3wS9jkCAIDEs2z9dntm7LyAsYNqVbBLOlDODwAoghK60lXM6h8TqdkgEYNNxx13XEBqtvoV6WutyJZXZpO2SUtLs1q1aln79u3t3HPPzTcTKhp07tzZrTD3xhtv2Jdffml//fWX/fvvv64ReM2aNa1du3Z2/vnnW48ePUhZBwAAxU4f8g0YOdN2pmf5xvQvyJDebaxkStR2UQAAxFKwqXk3sxQWv0KYM5ty9jaSoUOHWsuWLS0eHXDAAXbHHXe4CwAAQCR9/ucq+2He2oCxi49uYIfUqxSxOQEAYtj2DWZLJweOUUKHPIQlDHnxxRe7jJ7KlSuH4+kAAAAS1qbt6fbA57MCxmpUSLXbTm4esTkBAGLcvK/Msvdmy1qJ0mYHnhjJGSHKhSXYpIwmAAAAFL9Hv55j67buChgb1KOVlU8rGbE5AQDirISuSSezUiw2gdxRtA8AABAnpi3ZYO//vGcFXE/ng6rbya1qRmxOAIAYt3u72YKxgWOU0CEagk0zZsxwK8s1bdrU/v7773y31zZNmjSxxo0b27x5gauoAAAAYF+7M7Ks//AZAWNlSqXYoJ6tWaAEAFB4C783y9ix9+ukFLNmp0RyRogBYQk2vfvuu7ZkyRIXQKpTp06+22ubZs2aufvovgAAAMjbaxMX2bx/tgaM3dKlmdWpVDpicwIAxGEJXYP2ZmWqRGo2iBFhCTZNmDDBfaLWo0ePkO/Ts2dPt2zv2LE50vUAAAAQYMm6bfbs2PkBY63rVLC+7RtGbE4AgDiQmWE278vAsRanRWo2iCFhCTZ5pXBt27YN+T6tW7d213Pnzi22eQEAAMQ6fTh378iZtitj7ypByUlmQ3q1tRIptOcEAOyHZVPMdmwMHGvRPVKzQQwJy38gW7fuSekuV65cyPfxtt28eXOxzQsAACDWjfx9pU2cvy5grE/7htambsWIzQkAEKcldDXbmlWqH6nZIIaEJdhUuXJld7169eqQ7+NtW758+WKbFwAAQCz7d/tue3D0rICxWhXT7NauzSM2JwBAnMjONpszOnDsoNMjNRvEmLAEm7QKnXz11Vch3+fLL/fUhWpFOgAAAOzrkS/n2PptuwPGBvVoZeVSS0RsTgCAOLH6T7NNywPHWpwaqdkgxoQl2HTyySe7fgKvvvqqzZ49O9/t//rrL3vttddcU/FTTmFJRQAAgJx+WbzBPpwaeBLQtWUN69qqZsTmBACI4xK6yg3NqreM1GwQY8ISbLr66qutbNmytnPnTjvppJNs9OgcqXh+Ro0aZZ07d7YdO3ZY6dKl7dprrw3HFAEAAGLGroxMu3vYnwFjZUul2KCerSI2JwBAnAebtApdUlKkZoMYE5Yc66pVq9rLL79sF110ka1Zs8Z69uxpBx54oHXs2NFq1arltlm1apVNnDjRFi9e7LKglNX00ksvWY0aNcIxRQAAgJjxyoRFtnDttoCx205ubrUqlo7YnAAAcWTDYrN/ZgaOUUKHAghbQf8FF1xgWVlZLstp+/bttnDhQlu0aFHANgoyibKgFGi68MILwzU9AACAmLBo7VZ7ftyCgLG2dSvaxcc0jNicAABxZu4XgV+XqWpW76hIzQYxKCxldB5lNi1YsMDuuusua9OmjS/A5GUytW3b1u655x63DYEmAACAQPqfacCImbY7I8s3lpxkNrhXG0vRDQAAisLsHK1vmnczS06J1GwQg8K+VEnNmjVt8ODB7pKRkWEbNmxw41WqVLESJVg5BQAAIDfDfv3bfly4PmCsX4dG1rpOxYjNCQAQZ7auNVv+0779moACiGh0R8Gl6tWrR3IKAAAAMWHDtt320JhZAWN1KpW2m7s0i9icAABxaN5XZtl7M2itZFmzA4+P5IwQg8JaRgcAAIDCGfLFbNu4PT1g7IGeraxsKpnhAIBiXIWuSSezkixAgYIh2AQAABDlpixcb59MXxEw1q11Tet0EKv2AgCK0K6tZgu/DxyjhA6FEJaPwg488MBC31eNw7VyHQAAQCLalZFp9wyfETBWLrWEDezRKmJzAgDEqYVjzTJ37f06uYRZs66RnBFiVFiCTUuWLClQcEkrrfh/DQAAkKheHLfQFq3bFjB2xynNrUaFtIjNCQCQICV0DTuala4cqdkghoUl2NSnT598t9m2bZvNmzfP/vzzTxdgOvTQQ61NmzbhmB4AAEBUUpDppfGBGd6H1KtkFxzVIGJzAgDEqcz0Pc3B/VFCh2gONr311lshb/vXX3/ZpZdeajNmzLD+/ftb7969i3VuAAAA0UiJ3gNHz7XdmXtXBEpJTrLBvdq4awAAitTSyWY7NwWONe8WqdkgxkVdg/BWrVrZd999Z7Vr17aLL77Y5syZE+kpAQAAhN3Pa5Ns6tJ/A8Yu69jIWtauELE5AQASqISu9qFmFetGajaIcVEXbJJy5crZLbfcYtu3b7fHH3880tMBAAAIq63pZiOXBv6bVrdyabuxc9OIzQkAEOfptDmDTZTQId6CTXLEEUe467Fjx0Z6KgAAAGE1Ykmybc8ILJV78IzWVqZUWDogAAASzcrfzDb/HThGsAn7IWr/Y/FWpPvnn38iPRUAABADpixcbx9OXWabd6RbLNudkWlT1wV+Hnhq21p2YvPqEZsTACDO5cxqqtLYrFrzSM0GcSBqg01ff/21u65YsWKkpwIAAKLcH8v/tYvf/NnSM/d8WBVPyqeVsPtPaxnpaQAA4tk+JXSnmiWxGAXirIzuww8/tCFDhlhSUpJ17Ngx0tMBAABRLCMzy+4eNiMuA01y5yktrHqFtEhPAwAQr9YvNFs7O3CMEjrEQmZTv3798t0mKyvLNm7caL/++qutXLnSldGVKFHC7rrrrnBMEQAAxKihPy6xWas2Wzzq2LiKnX9k/UhPAwCQSFlNZaub1W0XqdkgToQl2DR06FCXpVSQXk0VKlSw119/3dcoHAAAIKcVG7fbk9/MCxhrXK2snX1EPYtV6enpNm/ePKuSanbT2W0sOZkyBgBAOEvoupslR2URFGJIWIJN9evXzzfYlJycbOXLl7dGjRrZ8ccfbxdeeKFVrVo1HNMDAAAxSB9Q3TfyL9uRnhkw/th/DrbDG1S2WLVjxw77Zttcdzu1REqkpwMAiGdb15gt/zlwjBI6xEqwacmSJeF4GgAAkEC+nLnavp+zJmDsgqPqx3SgCQCAsJr7hT6+2ft1qXJmjY6L5IwQJ8iNAwAAMWfzznQbOOqvgLFq5VPtjlNaRGxOAADEfAld0y5mJVIjNRvEkbA2CO/WrZudddZZ4XhKAAAQx574eq6t2bIrYOz+01taxdIlIzYnAABiyq4tZovGB45RQodYCja9/fbb7vqcc84Jx9MBAIA49uuyjfa/n5YGjJ3QvJqd2qZWxOYEAEDMWfCdWebuvV8nl9yT2QTEShldtWrV3HWNGjXC8XQAACBOpWdmWf9hM+z/F6910kom24M9W4e88i0AADCz2aMDv1avprSKkZoN4kxYgk0tW7Z010uXBn4KCQAAUBBvTlpsc1ZvCRi7uXMzq1elTMTmBABAzMnYbTb/m8CxFqdGajaIQ2EJNl144YVueWKvnA4AAKCglm/Ybk99Ny9grEXN8tavY6OIzQkAgJi0ZKLZrs2BY827R2o2iENhCTZdcskl1qlTJxs5cqQNHDjQBZ4AAABCpf8dBoyYaTvTs3xjqpob0ruNlUxhcV0AAPZrFbq67cwq0PsQMdYgfOLEiXbbbbfZ2rVr7cEHH7SPPvrINQtv27atVa5c2VJSUvK8/3HHHReOaQIAgCg1+s9VNmHe2oCxi45uYIfWrxyxOQEAEJOysszmfhE4RgkdYjHYdMIJJwQ07Zw3b54LOoVC98vIyCjG2QEAgGi2aUe6Dfp8VsBY9fKpdtvJzSM2JwAAYtbK38y2rAoca3FapGaDOBWWYJNQOgcAAArjsa/m2LqtuwLGBvVoZRXSSkZsTgAAxKw5nwd+XbWZWdWmkZoN4lRYgk3jxo0Lx9MAAIA4M33pBnvv52UBY51aVLdTWteM2JwAAIirfk2U0CFWg03HH398OJ4GAADEkfTMLOs/bGbAWJlSKfbAGa0DyvMBAECI1s4zWxe4sisldCgOLN8CAACi0msTF9ncf7YEjN3SpZnVqVQ6YnMCACCmzc2R1VS+llntwyI1G8SxsASb+vXrZ5deeqmtWpWjCVketHKddz8AAJBYlq7fZs98Nz9grFXtCta3fcOIzQkAgLgroWve3SyZHBQUvbC8q4YOHeouGzduDPk+mzdv9t0PAAAkDi0qMmDETNuVkeUbS04yG9K7jZVI4R9iAAAKZfMqsxVTA8fo14Riwn9sAAAgqoz6Y6VNnL8uYOziYxpa27qVIjYnAABi3twvAr9OrWDW8NhIzQZxLmqDTTt37nTXqampkZ4KAAAIk3+377YHR88KGKtZIc1u7dosYnMCACAuS+iadjUrUSpSs0Gci9pg0+TJk911jRo1Ij0VAAAQJo9+NcfWbd0dMDaoZysrn1YyYnMCACDm7dxktviHwLGDWIUOxadEcTzoAw88EHT8xRdftOrVq+d53127dtnChQtt1KhRblnjDh06FMcUAQBAlPll8Qb74JflAWNdWtawk1vVjNicAACIC/O/NctK3/t1SimzJp0jOSPEuWIJNg0cONAFinI2+3zppZdCfgxtn5aWZrfffnsxzBAAAEST3RlZ1n/4jICxsqVSbFCPVhGbEwAAcVtCd+AJZqnlIzUbJIBiK6NTsMi7KPCki/9Ybhf1aGrYsKFdcMEFNmXKFDv44IOLa4oAACBKvDJhoS1YszVg7Nauza12pdIRmxMAAHEhY9eezCZ/rEKHWMxsysrau1SxJCcnu2DTzJkzrWXLlsXxlAAAIEYtXrfNnhu3IGCsTZ2K1qd9w4jNCQCAuKFeTbu3+A0kmTXvHsEJIREUS7App/r167tgU6lSdLoHAAB7Kat5wIgZrozOk5xkNqR3G0vRDQAAsH/mjA78ut5RZuXy7qUMxESwacmSJeF4GgAAEGOG//a3TV6wPmDskg6NrHWdihGbEwAAcUNVR3O+CByjhA6x3LMJAAAgLxu37baHxswOGKtdMc1u6dIsYnMCACCu/D3NbNuawDGCTYiXYFN6errNmjXLXXbt2rXP93fu3Gm33nqr1atXz0qXLu36Oj333HPhmBoAAIiQIV/Otg3bdgeMPdCztZVNDUviNQAA8W/254FfVzvI7IDGkZoNEkhY/psbPny4nXfeeValShVbsWLFPt/v1auXffPNN65vg8yZM8duuukmmzt3rj3//PMWS5YtW2ZvvPGGjRkzxpYuXWpbtmyxatWquRX2TjzxRDv77LOtdevWkZ4mAAAR9dOi9fbxtMD/CU5pVdM6t6wRsTkBABBXdH6ds18TWU2Ip2DT119/7QJJZ5xxhqWmpgZ8T0EZfV8NxOvWrWvt2rWzX375xf7++2976aWX7Pzzz7f27dtbLFA21t13323btm0LGFeATZdJkybZ5s2b7emnn47YHAEAiLRdGZnWf/iMgLFyqSVsYI9WEZsTAABxZ+1csw2LAscOOi1Ss0GCCUuw6ddff3XBpOOPP36f77355pvuulmzZi7IVL58edu0aZMLMCnD6fXXX4+JYNNDDz1k9957r++1XH755S5wVrFiRVu/fr399ttvLsMrOZk2WQCAxPbS+IW2aG3gBzO3n9zcalZMi9icAACIOzmzmirUMat1SKRmgwQTlmDTmjV7GpI1adIkYDwrK8vGjh3rAlHXX3+9CzSJAjTXXXedXXvttTZlyhSLdnoNXqDp4osvdgGykiVLBmzTqVMnu+2222z37sDeFAAAJJKFa7fai+MWBowdXK+SXXh0g4jNCQCAuDRnzL4ldElJkZoNEkxY0mzWrVvnrtX829/vv//uysrk1FMDa0e9vkbLly+3aKaA2dVXX+1uH3zwwa5fU85Ak79SpUqFcXYAAEQPldTfM3yG7c7M8o2lJCfZ4F6t3TUAACgim/42W/lr4Bj9mhBvwSavT5MXdPL88MMP7lq9mho0CPxE08tyyszMtGimxubz5893t++8804rUYIVdAAACObT6Svsp0UbAsYu7djIWtWuGLE5AQAQl+Z+Efh1WiWzBh0iNRskoLAEm7xA0s8//xww/vnnn7sSuuOOO26f+2zYsOefUa3kFs0++eQTd63XcdpppwXMX0Eo73UAAJDINmzbbYO/mB0wVqdSabupc9OIzQkAgITp19TsFLOU3CtwgKIWljScE0880f766y+3WluvXr3soIMOslGjRtn48ePd97t3777PfWbOnOmua9WqZdHsp59+ctcNGzZ02Vjvv/++DRkyxDd//4bh6kuVczU+AADyKjv7dV2SLduaZL9+PT+ms2dnrNhkG7enB4w9dEZrK1Mqdl8TUKS2rLLG/3xhaekbreTYyWYx/POO0JXMyLBWK5bsuc1xTwjhOebZZksmBQ5RQocwC8tvMwVZXn31VdcoXL2YKleubBs3bnT/RKuE7swzzwxanqZsobZt21o092vSinlStWpVu/HGG+3ZZ5/dZ7t58+bZ7bff7lajGzNmjFWqVCnk51ixYkWe31+1apXv9q5du2zHjh0Feg2ITTt37gx6G/GLY56YHv9mnr09P2XPF6uiu4dhQZ3Ssrod3aA8f7eC4Oc9Ae3eZqXe62WtN+05AbW1kZ4Qwnky5ltCieOeECJxzLNLpNnOOu3N+JsbMbt27bJEk5StiE+Yys369etn27btXepY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jvHV55FHHqn0sdcdfLY7sMIvzZw50xoXF2dVu9DZJTk52bpt2zajuxnwXO2f0pd+/fq5bMNsNltvuOGGcu9/4403avXKc/ToUWu3bt1cthEeHm794IMPquGv4N/K+7tfe+21Hn2s3Nxc68UXX+zy8YKCgqyTJ0+usB313k9KSnLZjjp2zJo1q8J2AvU44619PmnSJLePEYsWLSq3rRUrVlgbNmzo8v6NGjWyrly5ssI+vf/++9awsDCX7XTv3l07ltQ0ffr0cWs/jB071lpQUHDGj8d7PfD2O+933zFv3jy39kPdunWtv/322xk9lq+dw3nqteOPvLXfP/nkE7ff66pueTjGV5+1a9daQ0JCKnXsrQif7WURbPJDa9assUZGRmovkpiYGOuzzz5rXbZsmXXBggXWm266SfcCyszMNLq7Ac22L2677Tbrhg0bXF527tzpso1HH33U3s7ZZ59t/frrr62rVq3S/lfbttvGjx/vso3i4mJr79697XVHjx5t/fXXX7UTijfeeMNav359+0Hwl19+qaa/hn9yPCg3a9bMOnjw4GoLNl1xxRX2tvv372+dMWOGtq8/+ugja+vWre23vffeey7bUO959d631VXHBHVsUMcIdaxQxwxVHhUVpX3QuhLIxxlv7XPHL5/lHR/UJTs722U7e/bssdarV09rR504Pfzww9bFixdrF3XddjKl3ud79+512c7PP/+sHQNU3QYNGmjHBnWMUMcKdcyw9VUdS9QxpSaxvb8aN25sveeee6w//PCD9t5bvny59ZVXXrE2adLE/vyvvPLKM3483uuBt995v/tW0CExMVELIr7++uvWadOmaft86dKl1m+//dY6ZswYa3BwsPb8VTBu3bp1VX4sXzqH89Rrx195a787BpvmzJlT7nv9xIkTLtvhGF99VHDXFry1vX88EWzis70sgk1+/Euc+lBQL5rSXnzxRfsLSJ3cwDhnuh+2bt1q//A/99xztYi5o5ycHK3c9npwFZ1WBzlbX26//fYyt6v72SLfbdq0sRYVFVWpvzXRxIkTtV8PDh06pG2np6dXS+BBHfxt7Q4fPrzMyb36VVMFPtTtCQkJ1oyMDKftTJgwwd6OOhaUpk6qbK+p8kbUBfJxxlv73PHL55m45ppr7O189zDWVYsAACL8SURBVN13ZW5XJ9EV9b+wsNDaqlUrrY46Fmzfvr1MHXXscPfXWH8zbNgw7e/k6ku1ev85nvz98ccfVX4s3uuBud95v/sOd4Jn06dPtz//UaNG1YhzOE+8dvyZt/a7Y7BJnT9UFcf46vPqq69qzzclJUUL9Hoi2MRnu3MEm/yM+hXD9sK45ZZbXEZr27VrZ38xq5MKGONM38RqRJStDfXrizOqvLyTEMX2eqhdu7Z2cuPMc889V+5JCKzVGngYOnSo/UPB1S+K6pfQ8j6A1Hs9Pj5eu13tc1fD8tWxw9aO+sWlNI4zer4cbDp48KB9dMKQIUNc1lO3qTqqrrpPeV8y1LHAGXXsqFWrllanffv21kCjApC2v9Fdd91V5XZ4rwfmfuf97n/atm1rn1bl7+dwnnrtBIIz3e+eCDZxjK8+u3fvto8O+v3333XH5jMJNvHZ7hwJwv3MjBkz7NdV4kpngoKCZOzYsdr1kydPyqJFi7zWP3iOilX99NNP2nWV1O28885zWk+Vt23bVruu6p+OcZVIS0uTLVu2aNf//e9/S1RUlNN2HBMfT58+3WPPAxXLysqSBQsWaNcHDhyoJQ51ZvTo0VoiT1f7SL3XT506pV2/9tprtWNBVfY1xxn/MXPmTLFYLOXuK8d9ruqq+5S3z10lQVfHDnUMUTZv3qwdWwJJ//797dd37NhRpTZ4rwfmfvcU3u/eFRsbq/2fn5/v9+dwnnrtBIIz2e+ewjG++txxxx2SnZ2t/V1VonhP4LPdNYJNfsa2KorKJt+1a1eX9RzfPEuXLvVK3+BZ6enpcuDAAe16RQdD2+379++XXbt26W5zXEmnvHbUiglq9R2F14x3/fXXX1JYWFjhPlIrpthOWNV9ioqKqrSvzz33XPsJq7N9zXHGf7i7zyvaV7Z21JcedSyoajs1WUFBgf16cHBwldrgvR6Y+91TeL97z9atW2XdunX2YJG/n8N56rVT053pfvcUjvHV47vvvtNWG1Yrsr388ssea5fPdtcINvkZ268barnOkJAQl/UcD5C2+8A433//vbRv3147MKhfTJKSkrSIdXlRZPVLok1FH3jl7e+qtLN3717Jyckpty48pyr7SC2BvG3btiq1o44d6hji6vjAccb71BK5aullxyWYn3/+eTlx4kS597Ptc7V8c3lfGhs1amT/Na30vlK/8Kn3/Jkea2q6P/74w369Xbt2VWqD97r/8cR+L433u29Sy4Cr99orr7yifQlT7z3l3nvvrXRbvnYO54nXTk3lyf1emhpV0rhxY+29XrduXS3Q8MQTT2iBxfJwjPc8NXrnnnvu0a6/8MIL2v7wFD7bXSPY5EfUcM5jx45p110Nz7OpVauWFs1UbCcVMI46eKg3cV5ennait337dvn8889lwIABMmrUKPuQSUf79u2zX69ofycmJtqvl97fVWlHDeN2vB+ql6f3tXrvJyQkuNXO0aNHdb/cc5wxxrx587R9oX7lUv+rL7jjx4+XVq1a2adiOGPb5xXtK8d97oljhLN2ajI1pUQFA2xs04sqi/d6YO730ni/+45PP/1UTCaTdlGvcTU66IEHHpDDhw9rtz/66KNy1VVXVbpdXzuH88Rrpyaprv1e2u+//y4HDx7U3uvHjx+XlStXyrPPPqsFAd577z2X9+MY73kPP/ywHDp0SHr16iU33HCDR9vms90116Eu+Bw1H9QmJiamwvrqxaN+2VDBDRhDjWS69NJL5cILL9Six2q/2U4s3333Xe2DR82rHTFihHbyGRoaWqX9bTtQKKX3t6faQfXx9L529/jg2E54eHil+2Jrh+NM1XXq1ElGjhwp3bt31379VCekahj/l19+KXPnztV+ibvssstk1qxZMnTo0DL3r8o+5xhRea+++qqsWrXKnnOhvGHp5eG9Hpj73Yb3u//o0qWLvP/++9KtW7cq3d/XzuE88doJBGe6321U4FgdM3r27GkPCuzcuVN+/PFH+eGHH7SAwK233qoFu26++eYy9+cY71lLliyRDz/8UBvlo75/qb+7J/HZ7hrBJj/imKhODcesiO1Fp0bTwBhqmKyzyPSgQYPkrrvu0k4m165dqwWf3nnnHbn77rurtL9t+9rZ/vZUO6g+nt7XlTk+lG6H44z3qCH6kydPLlPeo0cPLWmj+tVTnYyazWa58cYbteTEERERZ7zPOUZUjjo+q1+5FTXlSR2rq4r3emDud4X3u29SwT+V/8T2HNXfXeV1UUl3r7zySnnttdfkkksuqXS7vnYO54nXTk1SXftdUTMWVKqM0gENFcC6/PLLtZxBKhClgs333Xef9qN06amNHOM9R+VSUgE9NeJP/b07duzo8cfgs901ptH5EceTDlsSsvLYhtRFRkZWa7/gWnlDIBs0aKD9umEbzfTmm29WeX87Dp8svb891Q6qj6f3dWWOD6Xb4TjjPRUNkb7lllvsQ71Voln1i2hpVdnnHCPct2nTJu2Lg8qtoP5OKv+eCjxUFe/1wNzvCu9336T2i/ryqS4qGHDFFVfItGnTtFQHaiSKGnmuplxVlq+dw3nitVOTVNd+t+XFKm/kjApiTZw40Z4v6qOPPipTh2O850yZMkVSU1OlWbNmMmnSpGp5DD7bXSPY5IdLcSruDHWzJQd0ZwgdjKGG2apRTorK42RbuaSy+9sxEWTp/e2pdlB9PL2vK3N8KN0Oxxnfor6AOktUfCb7nGOE+6tJqUTOKmmzWoXsm2++kb59+55Rm7zXA3O/u4v3u++45pprZMyYMVrerjvvvFMyMjIqdX9fO4fzxGsnEJzpfneXGmljC0h56r2ucIzXU0Gm5557zv6jvuPUM0/is901gk1+REUq69Spo12vKHmzOkmyvXgcE5HB96hV6mwcV6dwTOpW0f52TOpWen9XpR31AehOEkl4hqf3tXrvq9wf7rRTr1493VBcjjP+cXwovc/dSehv2+el91WTJk088vqrSVTgf+DAgdr/6nj48ccfa790nyne64G5393F+9232Pa9eu3/9ttvlbqvr53DeeK1EyjOZL+7S42UtB1/y3uvc4w/87x7anSP+nFfjSJTPx6UvmzcuNFef+HChfbyyqzKzWe7awSb/IztRESNgrEtzekqkuvppXpRPVwNtXU86XTcn5Xd31VpRx1wqiv6j7Kqso9UksOkpKQqtaOOHSo/gavjA8cZ31FREkvbvlIrWqpVVlxRq+FkZmY63VfqVzDbScaZHGtqCrWKixpxqqZS2H4NVTl1PIH3emDud3fxfvct6kucze7duyt1X187h/PEaydQnMl+99T7nWO8Z9imiKnjusrF5eziOGX56aeftperBZ3cxWe7awSb/Ezv3r21/1UU8u+//3ZZz3FIplriEb5r8+bN9utqdRqbli1b2redDbF1tHjxYvsvli1atHD6mqmoHXXykZaWpl3nNeNdKl+ALYlfeftI/TqzYsUK+30cVy+szL5evXq1/ZcMZ/ua44zvHx8qu88r2le2dtTKWOV9Eanp+1x9ERsyZIj9766Wvb/jjjs81j7v9cDc7+7i/e5bHEecVHaKia+dw3nqtRMIzmS/u0sFMmzL05/Je51jvG/gs70cVviVlStXWtVuU5dbbrnFaR2z2Wxt166dVichIcFaWFjo9X7CPTt37rSGhYVp+6p169Zlbr/tttvs+3v58uVO21Dltjq333670zq210Pt2rWtOTk5Tus899xz9na+++67M3xmNVd6err973Tttdd6rN2hQ4dqbYaEhFj37t3rtM7XX39tf+wXX3yxzO0FBQXW+Ph47Xa1zy0Wi9N21LHD1s6qVavK3M5xxjv73B033nij/bH/7//+r8ztBw8etAYFBWm3DxkyxGU76jZVR9VV9ynt22+/tT+OOhY4o44dtWrV0uq0b9/eWtOo59erVy/73+Hxxx+vlsfhvR6Y+90dvN99y8UXX2z/Oy1atKjS9/elczhPvXYCwZnud3c888wz9sd4+umny9zOMd57Jk2a5JH9zWe7cwSb/FCfPn3sL+Zly5aVuV29eG0vMPUGgjFmzpxpLSoqcnn7oUOHrGeffbZ9X02dOrVMna1bt1qDg4O1288991xrbm6u7na1rcptr4e0tDSnj/XRRx/ZH+eOO+4oc/v27dutcXFx2u1t2rQpt9+BriqBB8f79OvXz2mdBQsW2Otceuml1uLiYt3tR48etTZr1sz+oZCRkeG0nQkTJpT7QaaOGeq1Ul5fFI4z1bvP169fb922bVu5bbz33nv2Nho2bGjNzs52Wu+aa66x1/v+++/L3K6+eFTUf3WS0apVK62OOhaoY0Jp6ouQrZ1PPvnEWpOoE7zBgwfbn98999xTpXZ4r/sXb+133u++RT2fvLy8cuu88sor9uffsmXLMu9TxXZ78+bNnbbha+dwnnjt+DNv7Hd1LFizZk25jzFr1iz7D82RkZHWffv2Oa3HMd53gk18tlcdwSY/pA5i6uCkXhwxMTHWKVOmaL+MLFy40HrzzTfbXzjJycnWzMxMo7sbsNSHUOPGja133XWX9auvvtLe6GvXrrXOmzdP++W0bt269n3Vu3dva35+vtN2Hn30UXs9FZz65ptvrH/99Zf2v2Owavz48S77og54jr/cXnbZZdbffvtNi3y/+eab1vr169t/yfrll1+q8a/if5YsWaKdoNguL730kv3vqP6mjre5OiF350NKueKKK+z1+vfvb/3pp5+0ff3xxx9rI99st6kvJa6o97x679vqqmOCOjaoY4Q6Vqhjhu0ER70eXQnk44w39rm6n/oSMnDgQC3QPHfuXOvff/+tvSc/++wz3RdgVU8F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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(6,4), dpi=200)\n", + "ax = fig.subplots(1)\n", + "\n", + "ax.plot(hvac_df[\"plant.capacity\"], hvac_df[\"num_substations\"], c=\"tab:blue\", ls=\"--\", label=\"HVAC Substations\")\n", + "ax.plot(hvac_df[\"plant.capacity\"], hvac_df[\"num_cables\"], c=\"tab:blue\", ls=\"-\", label=\"HVAC Export Cables\")\n", + "ax.plot(hvdc_df[\"plant.capacity\"], hvdc_df[\"num_substations\"], c=\"tab:orange\", ls=\"dotted\", label=\"HVDC Substations\")\n", + "ax.plot(hvdc_df[\"plant.capacity\"], hvdc_df[\"num_cables\"], c=\"tab:orange\", ls=\"-\", label=\"HVDC Substations\")\n", + "\n", + "ax.set_xlim(0, capacity_range.max())\n", + "ax.set_ylim(0, 16)\n", + "\n", + "ax.xaxis.set_major_formatter(StrMethodFormatter(\"{x:,.0f}\"))\n", + "ax.yaxis.set_major_formatter(StrMethodFormatter(\"{x:,.0f}\"))\n", + "\n", + "ax.set_xlabel(\"Capacity [MW]\")\n", + "ax.set_ylabel(\"Export Infrastructure Requirements\")\n", + "ax.legend()\n", + "ax.grid()\n", + "\n", + "fig.tight_layout()" + ] } ], "metadata": { @@ -395,18 +464,21 @@ "source_map": [ 12, 22, - 34, - 43, - 65, - 69, - 82, - 86, - 91, - 105, - 114, - 128, - 133, - 141 + 35, + 44, + 66, + 70, + 83, + 87, + 92, + 106, + 115, + 130, + 135, + 145, + 152, + 180, + 187 ] }, "nbformat": 4, diff --git a/examples/fixed_bottom_installations.ipynb b/examples/fixed_bottom_installations.ipynb index 076acb6e..0acca988 100644 --- a/examples/fixed_bottom_installations.ipynb +++ b/examples/fixed_bottom_installations.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "3e2604a7", + "id": "09d41119", "metadata": {}, "source": [ "# Fixed-Bottom Substructure Installation Models in ORBIT\n", @@ -24,14 +24,14 @@ { "cell_type": "code", "execution_count": 1, - "id": "2a61ba19", + "id": "79817ccb", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_67167/4204870401.py:19\n", + "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_84557/691410628.py:28\n", "Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n" ] } @@ -53,7 +53,16 @@ "\n", "# Set the example path for use in the docs and standalone examples usage\n", "here = Path(\".\").resolve()\n", - "example_path = here.parents[1] / \"examples\" if here.stem == \"topical_guides\" else here\n", + "match here.stem:\n", + " case \"examples\":\n", + " example_path = here\n", + " case \"topical_guides\":\n", + " example_path = here.parents[1] / \"examples\"\n", + " case \"ORBIT\":\n", + " example_path = here / \"examples\"\n", + " case _:\n", + " msg = \"Please manually change `example_path` if running in a custom location.\"\n", + " raise FileNotFoundError(msg)\n", "\n", "weather = pd.read_csv(\n", " example_path / \"data/example_weather.csv\", parse_dates=[\"datetime\"]\n", @@ -62,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "47980b31", + "id": "22af3f68", "metadata": {}, "source": [ "## Load The Configurations\n", @@ -75,7 +84,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "54511a8d", + "id": "921867b1", "metadata": {}, "outputs": [], "source": [ @@ -89,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "68655c33", + "id": "3c82d8e5", "metadata": {}, "source": [ "The primary differences between these projects deal with the installation strategies, and\n", @@ -106,7 +115,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "a3921e1b", + "id": "74fab8c3", "metadata": {}, "outputs": [ { @@ -135,7 +144,7 @@ }, { "cell_type": "markdown", - "id": "900b2e0b", + "id": "c7c4ba64", "metadata": {}, "source": [ "## Run The Three Cases\n", @@ -146,7 +155,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "7ef2bd2a", + "id": "8c436392", "metadata": {}, "outputs": [ { @@ -170,7 +179,7 @@ }, { "cell_type": "markdown", - "id": "28102681", + "id": "52ae2a11", "metadata": {}, "source": [ "## Results Comparison\n", @@ -181,7 +190,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "cb0066c9", + "id": "03f5f6eb", "metadata": {}, "outputs": [ { @@ -397,7 +406,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "1e0e325c", + "id": "e29c8f53", "metadata": {}, "outputs": [], "source": [ @@ -499,7 +508,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "d9186b72", + "id": "22965056", "metadata": {}, "outputs": [ { @@ -519,7 +528,7 @@ }, { "cell_type": "markdown", - "id": "a6578d44", + "id": "861dbc8e", "metadata": {}, "source": [ "### Substructure and Turbine Installation CapEx Breakdown" @@ -528,7 +537,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "b12b38f5", + "id": "b46d1405", "metadata": {}, "outputs": [ { @@ -613,7 +622,7 @@ }, { "cell_type": "markdown", - "id": "2071302f", + "id": "e6b83e32", "metadata": {}, "source": [ "### Comparing Installation Timing\n", @@ -628,7 +637,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "1599489e", + "id": "dfb1c90f", "metadata": {}, "outputs": [ { @@ -705,20 +714,20 @@ "source_map": [ 12, 29, - 51, - 59, - 66, - 78, - 85, - 91, + 60, + 68, + 75, + 87, + 94, 100, - 106, - 119, - 215, - 217, - 221, - 225, - 235 + 109, + 115, + 128, + 224, + 226, + 230, + 234, + 244 ] }, "nbformat": 4, diff --git a/examples/introduction.ipynb b/examples/introduction.ipynb index cff7af9a..71df2b65 100644 --- a/examples/introduction.ipynb +++ b/examples/introduction.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "f334f957", + "id": "406f9072", "metadata": {}, "source": [ "(intro-tutorial)=\n", @@ -22,7 +22,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "9dcdfbab", + "id": "bed35a4a", "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "markdown", - "id": "a349c44b", + "id": "937daa19", "metadata": {}, "source": [ "While this introduction will focus on the monopile design and installation to highlight working with\n", @@ -48,7 +48,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "2f89d2af", + "id": "2916417a", "metadata": {}, "outputs": [ { @@ -76,7 +76,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "100d6e72", + "id": "67385d3a", "metadata": {}, "outputs": [ { @@ -103,7 +103,7 @@ }, { "cell_type": "markdown", - "id": "08c026c8", + "id": "253ba543", "metadata": {}, "source": [ "## Configuration Basics\n", @@ -120,7 +120,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "2865ce7a", + "id": "f09d16da", "metadata": {}, "outputs": [ { @@ -158,7 +158,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "55776e22", + "id": "68f44070", "metadata": {}, "outputs": [ { @@ -175,9 +175,7 @@ " 'num_substructures_delivered': 'int (optional: '\n", " 'default: 1)',\n", " 'substructure_delivery_time': 'h (optional, '\n", - " 'default: 168)',\n", - " 'substructure_storage': 'int (optional, default: '\n", - " 'inf)'},\n", + " 'default: 168)'},\n", " 'num_feeders': 'int (optional)',\n", " 'plant': {'num_turbines': 'int'},\n", " 'port': {'monthly_rate': 'USD/mo (optional)',\n", @@ -196,7 +194,7 @@ }, { "cell_type": "markdown", - "id": "b1b02e2b", + "id": "50403423", "metadata": {}, "source": [ "### Design Models\n", @@ -212,7 +210,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "90cfe686", + "id": "aaac6532", "metadata": {}, "outputs": [], "source": [ @@ -235,7 +233,7 @@ }, { "cell_type": "markdown", - "id": "6d341b45", + "id": "71be9899", "metadata": {}, "source": [ "Similar to `expected_config`, every design and installation model contains a `run` method that runs\n", @@ -245,7 +243,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "8fc19091", + "id": "72d2a047", "metadata": {}, "outputs": [ { @@ -280,7 +278,7 @@ }, { "cell_type": "markdown", - "id": "ad9b9b26", + "id": "e1e7c43f", "metadata": {}, "source": [ "### Incomplete or Incorrect Configurations\n", @@ -296,7 +294,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "8d5c9834", + "id": "9178e7fe", "metadata": {}, "outputs": [ { @@ -322,7 +320,7 @@ }, { "cell_type": "markdown", - "id": "6ec943f9", + "id": "9ef5d104", "metadata": {}, "source": [ "### Optional Inputs\n", @@ -336,7 +334,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "bf800c4e", + "id": "98a91aaa", "metadata": {}, "outputs": [ { @@ -391,74 +389,7 @@ }, { "cell_type": "markdown", - "id": "5b7d1c97", - "metadata": {}, - "source": [ - "### Overriding Values from the Design Phase\n", - "\n", - "In the example above, the `MonopileDesign` phase will produce the input parameters \"monopile and\n", - "\"transition_piece\". It is also possible to supply some of the values for these designs if they are\n", - "known, and let `MonopileDesign` fill in the rest. For example, if the user knows the dimensions of\n", - "the monopile but not the transition piece, the \"monopile\" dictionary can be added to the project config above:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "42e5fa42", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'monopile': {'deck_space': np.float64(54.48035485737655),\n", - " 'diameter': np.float64(7.381080873244551),\n", - " 'embedment_length': np.float64(28.73789461200757),\n", - " 'length': np.float64(63.737894612007565),\n", - " 'mass': np.float64(1015.3457502626202),\n", - " 'moment': np.float64(12.250526562877912),\n", - " 'thickness': np.float64(0.08016080873244551),\n", - " 'unit_cost': np.float64(3691797.147954887)},\n", - " 'transition_piece': {'deck_space': np.float64(56.87275152687858),\n", - " 'diameter': np.float64(7.541402490709443),\n", - " 'length': 25,\n", - " 'mass': np.float64(406.9956472415284),\n", - " 'thickness': np.float64(0.08016080873244551),\n", - " 'unit_cost': np.float64(4039838.794519411)}}\n" - ] - } - ], - "source": [ - "design_config_custom = {\n", - " \"site\": {\n", - " \"depth\": 25,\n", - " \"mean_windspeed\": 9.5,\n", - " },\n", - " \"plant\": {\n", - " \"num_turbines\": 50,\n", - " },\n", - " \"turbine\": {\n", - " \"rotor_diameter\": 220,\n", - " \"hub_height\": 120,\n", - " \"rated_windspeed\": 13,\n", - " },\n", - " \"monopile\": {\n", - " \"type\": \"Monopile\",\n", - " \"mass\": 800,\n", - " \"length\": 100,\n", - " },\n", - "}\n", - "\n", - "monopile_design = MonopileDesign(design_config_custom)\n", - "monopile_design.run()\n", - "monopile_design_result = monopile_design.design_result\n", - "pprint(monopile_design_result)" - ] - }, - { - "cell_type": "markdown", - "id": "f0aaf118", + "id": "b9150550", "metadata": {}, "source": [ "### Installation Phases\n", @@ -477,8 +408,8 @@ }, { "cell_type": "code", - "execution_count": 11, - "id": "f3d77c25", + "execution_count": 10, + "id": "c75fdcfc", "metadata": {}, "outputs": [ { @@ -520,7 +451,7 @@ " \"mass\": 1015.3457502626202,\n", " \"moment\": 12.250526562877912,\n", " \"thickness\": 0.08016080873244551,\n", - " \"unit_cost\": 3691797.147954887\n", + " \"unit_cost\": 3553710.1259191707\n", " },\n", " \"num_feeders\": 2,\n", " \"plant\": {\n", @@ -537,7 +468,7 @@ " \"length\": 25,\n", " \"mass\": 406.9956472415284,\n", " \"thickness\": 0.08016080873244551,\n", - " \"unit_cost\": 4039838.794519411\n", + " \"unit_cost\": 1831480.4125868778\n", " },\n", " \"turbine\": {\n", " \"hub_height\": 120,\n", @@ -578,7 +509,7 @@ } ], "source": [ - "install_config = deepcopy(monopile_design_result)\n", + "install_config = deepcopy(monopile_design.design_result)\n", "install_config[\"wtiv\"] = \"example_wtiv\"\n", "install_config[\"feeder\"] = \"example_feeder\"\n", "install_config[\"num_feeders\"] = 2\n", @@ -594,7 +525,7 @@ }, { "cell_type": "markdown", - "id": "3d17771d", + "id": "70ca0d72", "metadata": {}, "source": [ "### Loading and Saving Configurations\n", @@ -662,7 +593,7 @@ " - Any other custom input that will override logistics defaults.\n", "- `transport_specs` - Transit related parameters and constraints.\n", " - `transit_speed`: Average transiting speed, km/h.\n", - " - `max_waveheight`: Maximum operational wave height, m/s.\n", + " - `max_waveheight`: Maximum operational wave height, m.\n", " - `max_windspeed`: Maximum operational wind speed, m/s.\n", "- `storage_specs` - Storage related parameters. Required to transport items\n", " on deck.\n", @@ -712,8 +643,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "19a33009", + "execution_count": 11, + "id": "29ddeb12", "metadata": {}, "outputs": [ { @@ -743,9 +674,7 @@ " 'num_substructures_delivered': 'int (optional: '\n", " 'default: 1)',\n", " 'substructure_delivery_time': 'h (optional, '\n", - " 'default: 168)',\n", - " 'substructure_storage': 'int (optional, default: '\n", - " 'inf)'},\n", + " 'default: 168)'},\n", " 'num_feeders': 'int (optional)',\n", " 'orbit_version': '1.2.6',\n", " 'plant': {'num_turbines': 'int'},\n", @@ -818,7 +747,7 @@ }, { "cell_type": "markdown", - "id": "42712e7e", + "id": "e342aa4b", "metadata": {}, "source": [ "Now, we can combine the monopile design and installation configurations that were\n", @@ -828,8 +757,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "id": "8cb6846f", + "execution_count": 12, + "id": "b1f1a850", "metadata": {}, "outputs": [ { @@ -879,7 +808,7 @@ }, { "cell_type": "markdown", - "id": "79ba6184", + "id": "8922225e", "metadata": {}, "source": [ "To continue with the previous subsection's demonstration, we can also save the final configuration\n", @@ -888,8 +817,8 @@ }, { "cell_type": "code", - "execution_count": 14, - "id": "001f9e67", + "execution_count": 13, + "id": "e2c8de0f", "metadata": {}, "outputs": [ { @@ -966,15 +895,13 @@ 120, 129, 155, - 164, - 189, - 204, - 217, - 331, - 335, - 341, - 356, - 361 + 170, + 183, + 297, + 301, + 307, + 322, + 327 ] }, "nbformat": 4, diff --git a/examples/parametric_manager.ipynb b/examples/parametric_manager.ipynb index 63938e71..256c72ae 100644 --- a/examples/parametric_manager.ipynb +++ b/examples/parametric_manager.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "a5dc525f", + "id": "a5ded7a7", "metadata": {}, "source": [ "(parametric-manager-tutorial)=\n", @@ -20,7 +20,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "0a63554f", + "id": "e8a3d626", "metadata": {}, "outputs": [], "source": [ @@ -33,7 +33,16 @@ "from ORBIT import ParametricManager, load_config\n", "\n", "here = Path(\".\").resolve()\n", - "example_dir = here.parents[1] / \"examples\" if here.stem == \"tutorials\" else here\n", + "match here.stem:\n", + " case \"examples\":\n", + " example_dir = here\n", + " case \"tutorials\":\n", + " example_dir = here.parents[1] / \"examples\"\n", + " case \"ORBIT\":\n", + " example_dir = here / \"examples\"\n", + " case _:\n", + " msg = \"Please manually change `example_dir` if running in a custom location.\"\n", + " raise FileNotFoundError(msg)\n", "\n", "config = load_config(example_dir / \"configs/example_fixed_project.yaml\")\n", "config[\"turbine\"] = \"15MW_generic\"\n", @@ -43,7 +52,7 @@ }, { "cell_type": "markdown", - "id": "a50380fb", + "id": "26fb581d", "metadata": {}, "source": [ "## Setting Up The Parameterized Inputs\n", @@ -57,7 +66,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "57180340", + "id": "629c78b3", "metadata": {}, "outputs": [], "source": [ @@ -69,7 +78,7 @@ }, { "cell_type": "markdown", - "id": "859a0255", + "id": "717bed20", "metadata": {}, "source": [ "Similar to the parameterized inputs, we must also define the desired outputs. However, outputs must\n", @@ -80,7 +89,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "1c4c1a28", + "id": "992b52a1", "metadata": {}, "outputs": [], "source": [ @@ -92,7 +101,7 @@ }, { "cell_type": "markdown", - "id": "968931c8", + "id": "62c742ba", "metadata": {}, "source": [ "## Previewing and Running The Model\n", @@ -111,7 +120,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "bc9bcd46", + "id": "e839ffbe", "metadata": {}, "outputs": [ { @@ -119,16 +128,16 @@ "output_type": "stream", "text": [ "ORBIT library intialized at '/Users/rhammond/GitHub_Public/ORBIT/library'\n", - "10 runs elapsed time: 3.68s\n", - "70 runs estimated time: 25.78s\n" + "10 runs elapsed time: 3.65s\n", + "70 runs estimated time: 25.53s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "10 runs elapsed time: 3.68s\n", - "70 runs estimated time: 25.78s\n" + "10 runs elapsed time: 3.65s\n", + "70 runs estimated time: 25.53s\n" ] }, { @@ -161,90 +170,90 @@ " \n", " \n", " 0\n", - " 10\n", - " 40\n", - " 3.090517e+08\n", - " 1.008934e+09\n", + " 30\n", + " 140\n", + " 3.374312e+08\n", + " 1.116196e+09\n", " \n", " \n", " 1\n", - " 50\n", - " 60\n", - " 3.243595e+08\n", - " 1.232635e+09\n", - " \n", - " \n", - " 2\n", " 60\n", - " 40\n", - " 3.189682e+08\n", - " 1.294177e+09\n", - " \n", - " \n", - " 3\n", " 60\n", - " 160\n", - " 3.605703e+08\n", + " 3.252670e+08\n", " 1.294177e+09\n", " \n", " \n", - " 4\n", + " 2\n", " 30\n", - " 140\n", - " 3.374312e+08\n", + " 180\n", + " 3.485496e+08\n", " 1.116196e+09\n", " \n", " \n", - " 5\n", - " 70\n", - " 40\n", - " 3.200748e+08\n", - " 1.357158e+09\n", + " 3\n", + " 30\n", + " 200\n", + " 3.501844e+08\n", + " 1.116196e+09\n", " \n", " \n", - " 6\n", + " 4\n", " 20\n", " 40\n", " 3.121054e+08\n", " 1.061392e+09\n", " \n", " \n", - " 7\n", - " 30\n", - " 160\n", - " 3.445249e+08\n", - " 1.116196e+09\n", + " 5\n", + " 50\n", + " 200\n", + " 3.648620e+08\n", + " 1.232635e+09\n", " \n", " \n", - " 8\n", + " 6\n", " 70\n", - " 160\n", - " 3.607486e+08\n", + " 140\n", + " 3.536470e+08\n", " 1.357158e+09\n", " \n", " \n", - " 9\n", + " 7\n", + " 50\n", + " 180\n", + " 3.615505e+08\n", + " 1.232635e+09\n", + " \n", + " \n", + " 8\n", " 10\n", - " 160\n", - " 3.401039e+08\n", + " 120\n", + " 3.303689e+08\n", " 1.008934e+09\n", " \n", + " \n", + " 9\n", + " 50\n", + " 120\n", + " 3.419372e+08\n", + " 1.232635e+09\n", + " \n", " \n", "\n", "" ], "text/plain": [ " site.depth site.distance Installation System\n", - "0 10 40 3.090517e+08 1.008934e+09\n", - "1 50 60 3.243595e+08 1.232635e+09\n", - "2 60 40 3.189682e+08 1.294177e+09\n", - "3 60 160 3.605703e+08 1.294177e+09\n", - "4 30 140 3.374312e+08 1.116196e+09\n", - "5 70 40 3.200748e+08 1.357158e+09\n", - "6 20 40 3.121054e+08 1.061392e+09\n", - "7 30 160 3.445249e+08 1.116196e+09\n", - "8 70 160 3.607486e+08 1.357158e+09\n", - "9 10 160 3.401039e+08 1.008934e+09" + "0 30 140 3.374312e+08 1.116196e+09\n", + "1 60 60 3.252670e+08 1.294177e+09\n", + "2 30 180 3.485496e+08 1.116196e+09\n", + "3 30 200 3.501844e+08 1.116196e+09\n", + "4 20 40 3.121054e+08 1.061392e+09\n", + "5 50 200 3.648620e+08 1.232635e+09\n", + "6 70 140 3.536470e+08 1.357158e+09\n", + "7 50 180 3.615505e+08 1.232635e+09\n", + "8 10 120 3.303689e+08 1.008934e+09\n", + "9 50 120 3.419372e+08 1.232635e+09" ] }, "execution_count": 4, @@ -260,7 +269,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "6838f066", + "id": "2465ce19", "metadata": {}, "outputs": [], "source": [ @@ -269,7 +278,7 @@ }, { "cell_type": "markdown", - "id": "d238d215", + "id": "c200f03e", "metadata": {}, "source": [ "The results are saved as a pandas DataFrame in the `results` attribute where each row represents a\n", @@ -287,7 +296,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "ce4f8dd7", + "id": "db37ebd4", "metadata": {}, "outputs": [], "source": [ @@ -298,7 +307,7 @@ }, { "cell_type": "markdown", - "id": "71e63d76", + "id": "6dd7a53b", "metadata": {}, "source": [ "As mentioned in the [`ProjectManager` tutorial](#project-manager-tutorial), the system CapEx will\n", @@ -309,7 +318,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "3ea01b83", + "id": "45e4d948", "metadata": {}, "outputs": [ { @@ -332,7 +341,13 @@ "cbar = fig.colorbar(im, ax=ax, shrink=0.8)\n", "cbar.ax.set_ylabel(\"Installation CapEx (millions, USD)\", rotation=-90, va=\"bottom\")\n", "\n", - "ax.set_xticks(range(len(installation_arr.columns)), labels=installation_arr.columns, rotation=45, ha=\"right\", rotation_mode=\"anchor\")\n", + "ax.set_xticks(\n", + " range(len(installation_arr.columns)),\n", + " labels=installation_arr.columns,\n", + " rotation=45,\n", + " ha=\"right\",\n", + " rotation_mode=\"anchor\"\n", + ")\n", "ax.set_yticks(range(len(installation_arr.index)), labels=installation_arr.index)\n", "\n", "ax.set_xlabel(\"Site Distance (km)\")\n", @@ -343,18 +358,17 @@ }, { "cell_type": "markdown", - "id": "ec7e7b47", + "id": "8ab55ae5", "metadata": {}, "source": [ - "However, the system CapEx only increases as the site's depth increases because only the site's\n", - "distance to port changes, and not the distance to landfall, meaning the export cable length will\n", - "not change across scenarios. This can be seen in the below bar graph." + "The system CapEx in this example does not change with site distance. The increase in system CapEx\n", + "with depth can be seen in the bar graph below." ] }, { "cell_type": "code", "execution_count": 8, - "id": "719699f5", + "id": "ef883521", "metadata": {}, "outputs": [ { @@ -414,19 +428,19 @@ "source_map": [ 12, 25, - 41, 50, - 55, - 61, - 66, - 80, - 85, - 87, - 100, - 104, - 110, - 126, - 132 + 59, + 64, + 70, + 75, + 89, + 94, + 96, + 109, + 113, + 119, + 141, + 146 ] }, "nbformat": 4, diff --git a/examples/project_manager.ipynb b/examples/project_manager.ipynb index b26ccd67..c1aa4376 100644 --- a/examples/project_manager.ipynb +++ b/examples/project_manager.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "9478458d", + "id": "e1e1d050", "metadata": {}, "source": [ "(project-manager-tutorial)=\n", @@ -16,7 +16,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "6920b148", + "id": "4818aa5e", "metadata": {}, "outputs": [], "source": [ @@ -30,12 +30,21 @@ "\n", "# Ensure the correct examples directory is used when running this in docs or in examples\n", "here = Path(\".\").resolve()\n", - "example_dir = here.parents[1] / \"examples\" if here.stem == \"tutorials\" else here" + "match here.stem:\n", + " case \"examples\":\n", + " example_dir = here\n", + " case \"tutorials\":\n", + " example_dir = here.parents[1] / \"examples\"\n", + " case \"ORBIT\":\n", + " example_dir = here / \"examples\"\n", + " case _:\n", + " msg = \"Please manually change `example_dir` if running in a custom location.\"\n", + " raise FileNotFoundError(msg)" ] }, { "cell_type": "markdown", - "id": "e2ae08ce", + "id": "2973b778", "metadata": {}, "source": [ "## Compiling Input Requirements Dynamically\n", @@ -49,7 +58,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "d41c67a5", + "id": "02e961d6", "metadata": {}, "outputs": [ { @@ -79,9 +88,7 @@ " 'num_substructures_delivered': 'int (optional: '\n", " 'default: 1)',\n", " 'substructure_delivery_time': 'h (optional, '\n", - " 'default: 168)',\n", - " 'substructure_storage': 'int (optional, default: '\n", - " 'inf)'},\n", + " 'default: 168)'},\n", " 'num_feeders': 'int (optional)',\n", " 'orbit_version': '1.2.6',\n", " 'plant': {'num_turbines': 'int'},\n", @@ -165,7 +172,7 @@ }, { "cell_type": "markdown", - "id": "df262a90", + "id": "78c56bf1", "metadata": {}, "source": [ "Using the results of the `expected_config`, the following configuration is now created to minimally\n", @@ -177,7 +184,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "48928a3e", + "id": "11aec5e9", "metadata": {}, "outputs": [ { @@ -233,7 +240,7 @@ }, { "cell_type": "markdown", - "id": "8c24275e", + "id": "5e1dc009", "metadata": {}, "source": [ "## Weather Profiles\n", @@ -246,7 +253,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "f4af9ed8", + "id": "ef4e7fb0", "metadata": {}, "outputs": [], "source": [ @@ -258,7 +265,7 @@ }, { "cell_type": "markdown", - "id": "9571184e", + "id": "e57cb557", "metadata": {}, "source": [ "## Accessing Individual Models\n", @@ -271,7 +278,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "f0e592e0", + "id": "517dfeba", "metadata": {}, "outputs": [ { @@ -289,7 +296,7 @@ }, { "cell_type": "markdown", - "id": "b493365f", + "id": "360869bf", "metadata": {}, "source": [ "## Phase-Specific Configurations\n", @@ -303,7 +310,9 @@ "\n", "In these cases, it is necessary to define phase specific input parameters using the phase's name as\n", "the dictionary key. Below, we can see how we model a differing staging port where a separate WTIV\n", - "will be used with its much further port distance.\n", + "will be used with its much further port distance. Please note that the turbine installation's\n", + "WTIV \"other_wtiv\" is not a valid vessel configuration file, so this demonstration setup will fail\n", + "if used.\n", "\n", "Please note that phase-specific configurations will always override their general counterparts.\n", "\n", @@ -379,7 +388,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "35618341", + "id": "edd27173", "metadata": {}, "outputs": [], "source": [ @@ -441,7 +450,7 @@ }, { "cell_type": "markdown", - "id": "38ca24c0", + "id": "e39f7d6d", "metadata": {}, "source": [ "Now, we can make a quick visualization to see how the start timing plays out. Notice how the\n", @@ -453,7 +462,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "a26f44da", + "id": "ba61100c", "metadata": {}, "outputs": [ { @@ -486,7 +495,7 @@ }, { "cell_type": "markdown", - "id": "12e2f746", + "id": "cfed5170", "metadata": {}, "source": [ "(phase-dependent-timing)=\n", @@ -501,7 +510,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "6ae740ad", + "id": "190917d4", "metadata": {}, "outputs": [ { @@ -574,20 +583,20 @@ "source_map": [ 12, 21, - 33, 42, 51, - 58, - 99, - 107, - 112, - 120, - 123, - 208, - 263, - 270, - 285, - 295 + 60, + 67, + 108, + 116, + 121, + 129, + 132, + 219, + 274, + 281, + 296, + 306 ] }, "nbformat": 4, diff --git a/examples/supply_chains.ipynb b/examples/supply_chains.ipynb index 2a35070d..f1619650 100644 --- a/examples/supply_chains.ipynb +++ b/examples/supply_chains.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "14d6b17a", + "id": "13964945", "metadata": {}, "source": [ "# Modeling Supply Chains\n", @@ -18,14 +18,14 @@ { "cell_type": "code", "execution_count": 1, - "id": "096f0ce3", + "id": "9e654992", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_67354/774869178.py:14\n", + "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_84633/3771038313.py:23\n", "Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n" ] } @@ -42,7 +42,16 @@ "\n", "# Set the example path for use in the docs and standalone examples usage\n", "here = Path(\".\").resolve()\n", - "example_path = here.parents[1] / \"examples\" if here.stem == \"topical_guides\" else here\n", + "match here.stem:\n", + " case \"examples\":\n", + " example_path = here\n", + " case \"topical_guides\":\n", + " example_path = here.parents[1] / \"examples\"\n", + " case \"ORBIT\":\n", + " example_path = here / \"examples\"\n", + " case _:\n", + " msg = \"Please manually change `example_path` if running in a custom location.\"\n", + " raise FileNotFoundError(msg)\n", "\n", "weather = pd.read_csv(\n", " example_path / \"data/example_weather.csv\", parse_dates=[\"datetime\"]\n", @@ -51,7 +60,7 @@ }, { "cell_type": "markdown", - "id": "fe9147db", + "id": "06901751", "metadata": {}, "source": [ "## Preparing The Cases\n", @@ -66,7 +75,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "964661b7", + "id": "1b0056b5", "metadata": {}, "outputs": [ { @@ -113,7 +122,7 @@ }, { "cell_type": "markdown", - "id": "df869027", + "id": "c918d452", "metadata": {}, "source": [ "## Comparing Results\n", @@ -124,7 +133,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "21aa4a1b", + "id": "2c90db07", "metadata": {}, "outputs": [ { @@ -145,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "7385904a", + "id": "b476c468", "metadata": {}, "source": [ "### Installation Timing\n", @@ -158,7 +167,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "b216db6f", + "id": "ea15fbf5", "metadata": {}, "outputs": [], "source": [ @@ -187,7 +196,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "bd04e781", + "id": "b200738d", "metadata": {}, "outputs": [ { @@ -248,7 +257,7 @@ }, { "cell_type": "markdown", - "id": "efb1b48a", + "id": "2700873f", "metadata": {}, "source": [ "### Port Storage" @@ -257,13 +266,13 @@ { "cell_type": "code", "execution_count": 6, - "id": "07a80fb2", + "id": "44b7f209", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -347,15 +356,15 @@ "source_map": [ 12, 23, - 40, - 50, - 82, - 88, - 92, - 100, - 123, - 166, - 170 + 49, + 59, + 91, + 97, + 101, + 109, + 132, + 175, + 179 ] }, "nbformat": 4, From 67a87adfe625ea271fc58be5f26fa7ee6448e97c Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 13:28:30 -0700 Subject: [PATCH 17/22] fix overnight capital cost bug --- ORBIT/manager.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ORBIT/manager.py b/ORBIT/manager.py index 83d8bc36..f3fc997f 100644 --- a/ORBIT/manager.py +++ b/ORBIT/manager.py @@ -1598,9 +1598,11 @@ def onshore_substation_capex_per_kw(self): @property def overnight_capex(self): - """Returns the overnight capital cost of the project.""" + """Returns the overnight capital cost of the project, which is all + capital costs excluding grid connection and construction financing. + """ - return self.system_capex + self.turbine_capex + return self.total_capex - self.construction_financing_capex() @property def soft_capex(self): From d49b58e7909a061077b6896f59b70d1c8fdfa4dd Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 13:30:44 -0700 Subject: [PATCH 18/22] update overnight capex definition in examples --- docs/tutorials/available_outputs.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/tutorials/available_outputs.md b/docs/tutorials/available_outputs.md index 9beb9382..3edd996b 100644 --- a/docs/tutorials/available_outputs.md +++ b/docs/tutorials/available_outputs.md @@ -299,7 +299,9 @@ print(f"Turbine CapEx (USD) per kW: {project.turbine_capex_per_kw:,.2f}") #### Overnight CapEx -The `overnight_capex` provides the overnight capital cost (system and turbine CapEx) of the project. +The `overnight_capex` provides the overnight capital cost of the project as defined by the +[NLR Annual Technology Baseline (ATB)](https://atb.nrel.gov/electricity/2024b/definitions). +This is all capital costs excluding grid connection costs and construction financing. ```{code-cell} ipython3 print(f"Overnight CapEx (millions, USD): {project.overnight_capex / 1e6:,.2f}") From f4288f4b82aeb15a1425e27529d400927bffadd5 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 13:39:16 -0700 Subject: [PATCH 19/22] rerun docs --- examples/available_outputs.ipynb | 148 +++++++++++----------- examples/cable_installation.ipynb | 32 ++--- examples/cost_curves.ipynb | 50 ++++---- examples/custom_array.ipynb | 98 +++++++------- examples/export_cable_system.ipynb | 34 ++--- examples/fixed_bottom_installations.ipynb | 34 ++--- examples/introduction.ipynb | 48 +++---- examples/parametric_manager.ipynb | 136 ++++++++++---------- examples/project_manager.ipynb | 32 ++--- examples/supply_chains.ipynb | 41 +++--- 10 files changed, 331 insertions(+), 322 deletions(-) diff --git a/examples/available_outputs.ipynb b/examples/available_outputs.ipynb index b9d1c958..09bacc64 100644 --- a/examples/available_outputs.ipynb +++ b/examples/available_outputs.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "96e2b6cc", + "id": "0fd1f668", "metadata": {}, "source": [ "(outputs-tutorial)=\n", @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "e1e99872", + "id": "d2463c33", "metadata": {}, "outputs": [ { @@ -66,7 +66,7 @@ }, { "cell_type": "markdown", - "id": "b3df62c1", + "id": "822f485e", "metadata": {}, "source": [ "## Project Details\n", @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "8668ca13", + "id": "524bd59d", "metadata": {}, "outputs": [ { @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "a6e5fde8", + "id": "2cdd4213", "metadata": {}, "source": [ "### Project Parameterizaions\n", @@ -170,7 +170,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "ad5bfbe3", + "id": "0b783e4a", "metadata": {}, "outputs": [ { @@ -193,7 +193,7 @@ }, { "cell_type": "markdown", - "id": "6c126757", + "id": "fe534968", "metadata": {}, "source": [ "### Event Timing\n", @@ -207,7 +207,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "fec233c9", + "id": "ac7b1ec4", "metadata": {}, "outputs": [ { @@ -228,7 +228,7 @@ }, { "cell_type": "markdown", - "id": "b723cea5", + "id": "1ce33db1", "metadata": {}, "source": [ "## All Outputs At Once\n", @@ -245,7 +245,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "fb6bfd6b", + "id": "e4aad215", "metadata": {}, "outputs": [ { @@ -330,8 +330,8 @@ " 'npv': np.float64(1493975142.6594274),\n", " 'onshore_substation_capex': 0,\n", " 'onshore_substation_capex_kw': None,\n", - " 'overnight_capex': np.float64(1785429373.3358586),\n", - " 'overnight_capex_per_kw': np.float64(2975.715622226431),\n", + " 'overnight_capex': np.float64(2722170269.4985),\n", + " 'overnight_capex_per_kw': np.float64(4536.9504491641665),\n", " 'project_capex': 355000000,\n", " 'project_capex_per_kw': 591.6666666666666,\n", " 'project_time': np.float64(5865.619557282503),\n", @@ -366,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "b4dd8355", + "id": "9e6d0adb", "metadata": {}, "source": [ "## CapEx\n", @@ -390,7 +390,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "fa4743bf", + "id": "33324f21", "metadata": {}, "outputs": [ { @@ -409,7 +409,7 @@ }, { "cell_type": "markdown", - "id": "d5cc067d", + "id": "df768a45", "metadata": {}, "source": [ "### Categorical CapEx Breakdowns\n", @@ -422,7 +422,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "5c602bc3", + "id": "06302eea", "metadata": {}, "outputs": [ { @@ -454,7 +454,7 @@ }, { "cell_type": "markdown", - "id": "b986ccdd", + "id": "f667c336", "metadata": {}, "source": [ "Like in the previous examples, the `capex_breakdown_per_kw` will provide each category's associated\n", @@ -464,7 +464,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "19493aad", + "id": "3fb82555", "metadata": {}, "outputs": [ { @@ -496,7 +496,7 @@ }, { "cell_type": "markdown", - "id": "3ed31010", + "id": "ea61ae6a", "metadata": {}, "source": [ "### BOS CapEx\n", @@ -508,7 +508,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "47ef45a9", + "id": "e2f104ef", "metadata": {}, "outputs": [ { @@ -527,7 +527,7 @@ }, { "cell_type": "markdown", - "id": "babc35eb", + "id": "80899058", "metadata": {}, "source": [ "### System CapEx\n", @@ -542,7 +542,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "0a1dcdc4", + "id": "07c4792b", "metadata": {}, "outputs": [ { @@ -561,7 +561,7 @@ }, { "cell_type": "markdown", - "id": "77aba791", + "id": "856ce3c4", "metadata": {}, "source": [ "To view the individual component system costs related to each installation phase, users can\n", @@ -571,7 +571,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "06b8e58f", + "id": "8eb88b72", "metadata": {}, "outputs": [ { @@ -593,7 +593,7 @@ }, { "cell_type": "markdown", - "id": "c1bf64fe", + "id": "31cf41d7", "metadata": {}, "source": [ "### Installation Capex\n", @@ -609,7 +609,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "f78cb449", + "id": "dd016548", "metadata": {}, "outputs": [ { @@ -628,7 +628,7 @@ }, { "cell_type": "markdown", - "id": "a9fc7571", + "id": "bdf65fa3", "metadata": {}, "source": [ "To view the individual component installation costs, users can inspect the `installation_costs`\n", @@ -639,7 +639,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "5ec7d1d8", + "id": "58226dfd", "metadata": {}, "outputs": [ { @@ -662,7 +662,7 @@ }, { "cell_type": "markdown", - "id": "70801cf2", + "id": "d9a7daa7", "metadata": {}, "source": [ "### Turbine CapEx\n", @@ -674,7 +674,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "98d9ce8f", + "id": "a89477a1", "metadata": {}, "outputs": [ { @@ -693,7 +693,7 @@ }, { "cell_type": "markdown", - "id": "a939acc2", + "id": "015de72e", "metadata": {}, "source": [ "### Project CapEx\n", @@ -708,7 +708,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "6de31413", + "id": "d786e7ca", "metadata": {}, "outputs": [ { @@ -727,7 +727,7 @@ }, { "cell_type": "markdown", - "id": "c35a8f78", + "id": "89b73339", "metadata": {}, "source": [ "### Soft CapEx\n", @@ -742,7 +742,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "afbcbb0d", + "id": "63bbc594", "metadata": {}, "outputs": [ { @@ -761,7 +761,7 @@ }, { "cell_type": "markdown", - "id": "6e06e816", + "id": "6138a96b", "metadata": {}, "source": [ "The soft CapEx can also be broken down using both the `soft_capex_breakdown` and the `capex_detailed_soft_capex_breakdown`, which also provide a capacity-noramlized variation by adding\n", @@ -773,7 +773,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "deb2d685", + "id": "55214cf0", "metadata": {}, "outputs": [ { @@ -797,7 +797,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "546ea0d9", + "id": "e36c24ce", "metadata": {}, "outputs": [ { @@ -834,7 +834,7 @@ }, { "cell_type": "markdown", - "id": "e4f55353", + "id": "e8b7140d", "metadata": {}, "source": [ "The soft CapEx values are also available as independent values:\n", @@ -850,7 +850,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "dd213af7", + "id": "ca2b4ed1", "metadata": {}, "outputs": [ { @@ -877,7 +877,7 @@ }, { "cell_type": "markdown", - "id": "3733fe37", + "id": "1e6e03de", "metadata": {}, "source": [ "### All Other CapEx Categories\n", @@ -894,7 +894,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "dbb3ba97", + "id": "767fe3f9", "metadata": {}, "outputs": [ { @@ -913,7 +913,7 @@ }, { "cell_type": "markdown", - "id": "92e5eb8e", + "id": "6a8c694c", "metadata": {}, "source": [ "#### Onshore Substation CapEx\n", @@ -924,7 +924,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "749cf55e", + "id": "9d1d30c5", "metadata": {}, "outputs": [ { @@ -943,25 +943,27 @@ }, { "cell_type": "markdown", - "id": "5170a93b", + "id": "10d1fe62", "metadata": {}, "source": [ "#### Overnight CapEx\n", "\n", - "The `overnight_capex` provides the overnight capital cost (system and turbine CapEx) of the project." + "The `overnight_capex` provides the overnight capital cost of the project as defined by the\n", + "[NLR Annual Technology Baseline (ATB)](https://atb.nrel.gov/electricity/2024b/definitions).\n", + "This is all capital costs excluding grid connection costs and construction financing." ] }, { "cell_type": "code", "execution_count": 22, - "id": "434be0b7", + "id": "a71a79eb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Overnight CapEx (millions, USD): 1,785.43\n" + "Overnight CapEx (millions, USD): 2,722.17\n" ] } ], @@ -971,7 +973,7 @@ }, { "cell_type": "markdown", - "id": "bede2a49", + "id": "894475c4", "metadata": {}, "source": [ "## Logging\n", @@ -989,7 +991,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "3ff45cac", + "id": "a5fd46d6", "metadata": {}, "outputs": [ { @@ -1017,7 +1019,7 @@ }, { "cell_type": "markdown", - "id": "7687e468", + "id": "26e0d4cc", "metadata": {}, "source": [ "The `project_logs` provides a list of the when a component installation was completed using the\n", @@ -1047,7 +1049,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "04053042", + "id": "93215656", "metadata": {}, "outputs": [ { @@ -1135,7 +1137,7 @@ }, { "cell_type": "markdown", - "id": "130e87e3", + "id": "f8e119c0", "metadata": {}, "source": [ "Below, we can see the installation timing is not quite realistic given the WTIV is used for the\n", @@ -1147,7 +1149,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "608fa575", + "id": "5942b578", "metadata": {}, "outputs": [ { @@ -1185,7 +1187,7 @@ }, { "cell_type": "markdown", - "id": "47106886", + "id": "cd60bcf4", "metadata": {}, "source": [ "### Detailed Event Timing\n", @@ -1198,7 +1200,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "a1802dae", + "id": "9c5a29c9", "metadata": {}, "outputs": [ { @@ -1382,7 +1384,7 @@ }, { "cell_type": "markdown", - "id": "1f418051", + "id": "38d08241", "metadata": {}, "source": [ "Using the data frame we can filter produce vessel timing summaries for a single phase or a single\n", @@ -1397,7 +1399,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "23d5f338", + "id": "29282d68", "metadata": {}, "outputs": [ { @@ -1556,7 +1558,7 @@ }, { "cell_type": "markdown", - "id": "12f00ca4", + "id": "f870d0a0", "metadata": {}, "source": [ "## Cash Flow and Net Present Value\n", @@ -1578,7 +1580,7 @@ { "cell_type": "code", "execution_count": 28, - "id": "7adef23a", + "id": "2947fb29", "metadata": {}, "outputs": [ { @@ -1595,7 +1597,7 @@ }, { "cell_type": "markdown", - "id": "773de592", + "id": "0e608023", "metadata": {}, "source": [ "Below, we highlight the first 12 months of the project cash flow. In the 10th month we can see that\n", @@ -1606,7 +1608,7 @@ { "cell_type": "code", "execution_count": 29, - "id": "a6433bad", + "id": "3130bec0", "metadata": {}, "outputs": [ { @@ -1828,21 +1830,21 @@ 289, 295, 298, - 304, 306, - 319, + 308, 321, - 346, - 352, - 359, - 379, - 387, - 390, - 400, - 408, - 425, + 323, + 348, + 354, + 361, + 381, + 389, + 392, + 402, + 410, 427, - 433 + 429, + 435 ] }, "nbformat": 4, diff --git a/examples/cable_installation.ipynb b/examples/cable_installation.ipynb index 3d486b36..12dc19d5 100644 --- a/examples/cable_installation.ipynb +++ b/examples/cable_installation.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "a67ff5bb", + "id": "b08cae42", "metadata": {}, "source": [ "# Cable Laying and Burying\n", @@ -15,7 +15,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "c2616b98", + "id": "91e40275", "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "markdown", - "id": "19c28a11", + "id": "22ee3db1", "metadata": {}, "source": [ "Below, we set up a base configuration using an imagined cable and sections (25 each of 1km and 2km cable sections) designed for simplicity." @@ -37,7 +37,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "e75b4c57", + "id": "a9595de2", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "605be840", + "id": "f0e97641", "metadata": {}, "source": [ "## Single Cable Laying and Burying Process\n", @@ -71,7 +71,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "db5d6aec", + "id": "b7fa19de", "metadata": {}, "outputs": [ { @@ -92,7 +92,7 @@ }, { "cell_type": "markdown", - "id": "4ed5b81d", + "id": "6068ec18", "metadata": {}, "source": [ "## Separate Cable Laying and Burying Processes\n", @@ -110,7 +110,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "590f3cb3", + "id": "ae5dff3b", "metadata": {}, "outputs": [], "source": [ @@ -124,7 +124,7 @@ }, { "cell_type": "markdown", - "id": "efdf6b7d", + "id": "f9620066", "metadata": {}, "source": [ "## Including a Trenching Vessel\n", @@ -138,7 +138,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "195bef54", + "id": "a598af4d", "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "ba563d9e", + "id": "a596cf70", "metadata": {}, "source": [ "## Viewing the results\n", @@ -166,7 +166,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "17f13240", + "id": "e3334ada", "metadata": {}, "outputs": [ { @@ -391,7 +391,7 @@ }, { "cell_type": "markdown", - "id": "bc986738", + "id": "ec7021f2", "metadata": {}, "source": [ "Now, we demonstrate the separate process by combining the separate laying and burying steps taken\n", @@ -404,7 +404,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "05ee803b", + "id": "a43d93fd", "metadata": {}, "outputs": [ { @@ -665,7 +665,7 @@ }, { "cell_type": "markdown", - "id": "0cc1236e", + "id": "6ee695fe", "metadata": {}, "source": [ "Similar to the above, when we add trenching as a separate step, we have three discrete stages to\n", @@ -675,7 +675,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "8cf8ee2d", + "id": "ee42daa8", "metadata": {}, "outputs": [ { diff --git a/examples/cost_curves.ipynb b/examples/cost_curves.ipynb index 1254b888..5dc94b44 100644 --- a/examples/cost_curves.ipynb +++ b/examples/cost_curves.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "d12bb241", + "id": "5a72c7fd", "metadata": {}, "source": [ "# Cost Curve Creator\n", @@ -45,7 +45,7 @@ }, { "cell_type": "markdown", - "id": "f1dadcd4", + "id": "9c580c63", "metadata": {}, "source": [ "## Practical Guidance\n", @@ -238,7 +238,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "02b544cc", + "id": "ab48a882", "metadata": {}, "outputs": [], "source": [ @@ -276,7 +276,7 @@ }, { "cell_type": "markdown", - "id": "a998061d", + "id": "9497ed24", "metadata": {}, "source": [ "## Configuration\n", @@ -287,7 +287,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "1a9ce7f2", + "id": "ef5993bf", "metadata": {}, "outputs": [], "source": [ @@ -300,7 +300,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "8c6342c6", + "id": "4da58cc1", "metadata": {}, "outputs": [], "source": [ @@ -316,7 +316,7 @@ }, { "cell_type": "markdown", - "id": "dc5a8ee7", + "id": "be9c0a3b", "metadata": {}, "source": [ "## Curve Fit Library" @@ -325,7 +325,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "e3f60851", + "id": "630d9fd3", "metadata": {}, "outputs": [], "source": [ @@ -394,7 +394,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "d53a211e", + "id": "a4fb841f", "metadata": {}, "outputs": [], "source": [ @@ -681,7 +681,7 @@ }, { "cell_type": "markdown", - "id": "b03a3dad", + "id": "d4d6b03b", "metadata": {}, "source": [ "# ORBIT Design Phase Cost Curves\n", @@ -696,7 +696,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "e0df91ff", + "id": "70e92ff2", "metadata": {}, "outputs": [ { @@ -757,7 +757,7 @@ }, { "cell_type": "markdown", - "id": "f781b447", + "id": "c749fc7b", "metadata": {}, "source": [ "## Semi-Submersible Substructure\n", @@ -772,13 +772,13 @@ { "cell_type": "code", "execution_count": 7, - "id": "776b83dc", + "id": "20841a85", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -822,7 +822,7 @@ }, { "cell_type": "markdown", - "id": "8642cdc9", + "id": "4d8001bd", "metadata": {}, "source": [ "## Mooring System\n", @@ -840,7 +840,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "52495b94", + "id": "a8bd2e8e", "metadata": {}, "outputs": [ { @@ -946,7 +946,7 @@ }, { "cell_type": "markdown", - "id": "783b5dc4", + "id": "58071344", "metadata": {}, "source": [ "## Array System\n", @@ -962,7 +962,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "90796c83", + "id": "7f61969b", "metadata": {}, "outputs": [ { @@ -1053,7 +1053,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "b7a79d8c", + "id": "ab2e471f", "metadata": {}, "outputs": [ { @@ -1130,7 +1130,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "fe3e8127", + "id": "418fbfa9", "metadata": {}, "outputs": [ { @@ -1181,7 +1181,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "d18b49b0", + "id": "5dc225c0", "metadata": {}, "outputs": [ { @@ -1198,7 +1198,7 @@ }, { "cell_type": "markdown", - "id": "b695d65e", + "id": "0505931f", "metadata": {}, "source": [ "## Export System\n", @@ -1214,7 +1214,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "8c506bc9", + "id": "c1450435", "metadata": {}, "outputs": [ { @@ -1307,7 +1307,7 @@ }, { "cell_type": "markdown", - "id": "4682b28a", + "id": "b19ff95b", "metadata": {}, "source": [ "## Offshore Floating Substation\n", @@ -1319,7 +1319,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "7f6b2cb0", + "id": "dfd9141b", "metadata": {}, "outputs": [ { diff --git a/examples/custom_array.ipynb b/examples/custom_array.ipynb index 6315e93d..11c7ca8c 100644 --- a/examples/custom_array.ipynb +++ b/examples/custom_array.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "a10ecf9f", + "id": "f5b563c4", "metadata": {}, "source": [ "(custom-array-layou)=\n", @@ -24,7 +24,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "1d0d05ff", + "id": "0e1ea871", "metadata": {}, "outputs": [ { @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "a9c9a2be", + "id": "3f37cf39", "metadata": {}, "source": [ "## Contents\n", @@ -90,7 +90,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "b37d663c", + "id": "8014ac92", "metadata": {}, "outputs": [ { @@ -114,7 +114,7 @@ }, { "cell_type": "markdown", - "id": "41e8b387", + "id": "d09af158", "metadata": {}, "source": [ "### Key Differences In A Custom Layout Configuration\n", @@ -135,7 +135,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "b1879070", + "id": "f26cd47f", "metadata": {}, "outputs": [ { @@ -232,7 +232,7 @@ }, { "cell_type": "markdown", - "id": "8cd52d8e", + "id": "8b611486", "metadata": {}, "source": [ "### Custom Array Layout CSV Explanation\n", @@ -265,7 +265,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "27014c6a", + "id": "75ffa2d8", "metadata": {}, "outputs": [ { @@ -480,7 +480,7 @@ }, { "cell_type": "markdown", - "id": "d6082723", + "id": "dfdee4bb", "metadata": {}, "source": [ "(case_1)=\n", @@ -498,7 +498,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "60ed628b", + "id": "cfac8033", "metadata": {}, "outputs": [ { @@ -534,7 +534,7 @@ }, { "cell_type": "markdown", - "id": "bce1cfaf", + "id": "59c10d78", "metadata": {}, "source": [ "There are a few items worth noting in the layout:\n", @@ -550,7 +550,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "58fe30c4", + "id": "28c50a32", "metadata": {}, "outputs": [], "source": [ @@ -563,7 +563,7 @@ }, { "cell_type": "markdown", - "id": "8c2a8b13", + "id": "92d80222", "metadata": {}, "source": [ "(case_2)=\n", @@ -581,7 +581,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "2c9300b3", + "id": "71fbf955", "metadata": {}, "outputs": [ { @@ -605,7 +605,7 @@ }, { "cell_type": "markdown", - "id": "9a0b1d0b", + "id": "4302a72b", "metadata": {}, "source": [ "The below figure demonstrates the meaning of the straight-line distance between two points." @@ -614,7 +614,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "3d8516ee", + "id": "e72e7c3e", "metadata": {}, "outputs": [ { @@ -644,7 +644,7 @@ }, { "cell_type": "markdown", - "id": "e7a52bbe", + "id": "9953a5c4", "metadata": {}, "source": [ "Here the cable length and bury speed are still set to 0 to indicate that they are unknown, which\n", @@ -655,7 +655,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "fc772548", + "id": "39f5dc50", "metadata": {}, "outputs": [ { @@ -918,7 +918,7 @@ }, { "cell_type": "markdown", - "id": "9a911334", + "id": "af7164e4", "metadata": {}, "source": [ "For later comparison, we'll show the cabling costs for the straight-line cabling assumption." @@ -927,7 +927,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "09ab9f17", + "id": "65fe5a4f", "metadata": {}, "outputs": [ { @@ -952,7 +952,7 @@ }, { "cell_type": "markdown", - "id": "92904937", + "id": "964d5e17", "metadata": {}, "source": [ "(case_3)=\n", @@ -977,7 +977,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "74b6c992", + "id": "c17eb505", "metadata": {}, "outputs": [ { @@ -1192,7 +1192,7 @@ }, { "cell_type": "markdown", - "id": "0dd90ea9", + "id": "81bc8258", "metadata": {}, "source": [ "Using the distance-based location data requires us to set `distance` to True in the\n", @@ -1203,7 +1203,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "92e2ac16", + "id": "f7c94215", "metadata": {}, "outputs": [ { @@ -1228,7 +1228,7 @@ }, { "cell_type": "markdown", - "id": "96ea979d", + "id": "50bb3104", "metadata": {}, "source": [ "Alternatively, we can set the `distance=True` when calling the `CustomArraySystemDesign`, however\n", @@ -1241,7 +1241,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "59be7287", + "id": "54f172bb", "metadata": {}, "outputs": [ { @@ -1271,7 +1271,7 @@ }, { "cell_type": "markdown", - "id": "7d76b9db", + "id": "e86e74e3", "metadata": {}, "source": [ "Overall, the cabling cost is highly similar, with the difference being attributed to the method\n", @@ -1281,7 +1281,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "6e80e0a5", + "id": "ae37fa81", "metadata": {}, "outputs": [ { @@ -1306,7 +1306,7 @@ }, { "cell_type": "markdown", - "id": "c4eda75a", + "id": "0d775ea7", "metadata": {}, "source": [ "(case_4)=\n", @@ -1328,7 +1328,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "03d5f8fe", + "id": "60bbeb9b", "metadata": {}, "outputs": [ { @@ -1365,7 +1365,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "2ac85403", + "id": "fa018a23", "metadata": {}, "outputs": [ { @@ -1390,7 +1390,7 @@ }, { "cell_type": "markdown", - "id": "78c54483", + "id": "ecd7225e", "metadata": {}, "source": [ "(case_5)=\n", @@ -1414,7 +1414,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "400869e8", + "id": "ebf01a97", "metadata": {}, "outputs": [ { @@ -1441,7 +1441,7 @@ }, { "cell_type": "markdown", - "id": "94a69651", + "id": "e9de3884", "metadata": {}, "source": [ "Note that there are now cable lengths defined as well as burial speeds for the installation phase." @@ -1450,7 +1450,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "9b70f1c6", + "id": "9255aa54", "metadata": {}, "outputs": [ { @@ -1713,7 +1713,7 @@ }, { "cell_type": "markdown", - "id": "3cbbf50c", + "id": "adcfc729", "metadata": {}, "source": [ "Once again, the cabling costs have increased." @@ -1722,7 +1722,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "efea3b81", + "id": "c1ce2679", "metadata": {}, "outputs": [ { @@ -1747,7 +1747,7 @@ }, { "cell_type": "markdown", - "id": "07cd9507", + "id": "75b930cd", "metadata": {}, "source": [ "(running)=\n", @@ -1766,7 +1766,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "17dcdac3", + "id": "a2dd2906", "metadata": {}, "outputs": [], "source": [ @@ -1792,7 +1792,7 @@ }, { "cell_type": "markdown", - "id": "97a9b8ab", + "id": "99fb8056", "metadata": {}, "source": [ "### Run And Inspect The Simulation Results\n", @@ -1805,7 +1805,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "1a96bb56", + "id": "9e320f09", "metadata": {}, "outputs": [ { @@ -1818,6 +1818,14 @@ "with exclusions | $24,784,480.17 | 2,391\n", "custom | $31,792,520.58 | 3,088\n" ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "with exclusions | $24,784,480.17 | 2,391\n", + "custom | $31,792,520.58 | 3,088\n" + ] } ], "source": [ @@ -1834,7 +1842,7 @@ }, { "cell_type": "markdown", - "id": "2ceeb9c6", + "id": "9309c34c", "metadata": {}, "source": [ "(project_manager)=\n", @@ -1849,7 +1857,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "525d1ce8", + "id": "0a270833", "metadata": {}, "outputs": [ { @@ -1911,7 +1919,7 @@ }, { "cell_type": "markdown", - "id": "4e61ac01", + "id": "345b78e2", "metadata": {}, "source": [ "Below, we can see that the results coming from the `ProjectManager` are the same as the additive\n", @@ -1921,7 +1929,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "b9154b8a", + "id": "c867550f", "metadata": {}, "outputs": [ { diff --git a/examples/export_cable_system.ipynb b/examples/export_cable_system.ipynb index 496be5e2..b47da63a 100644 --- a/examples/export_cable_system.ipynb +++ b/examples/export_cable_system.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "3ec17b3e", + "id": "8d34989f", "metadata": {}, "source": [ "# HVAC vs HVDC Systems\n", @@ -17,7 +17,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "36a85172", + "id": "ffec497e", "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "markdown", - "id": "4c3f3aba", + "id": "15556700", "metadata": {}, "source": [ "## Setup The Models\n", @@ -51,7 +51,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "f15f5c08", + "id": "746d2a89", "metadata": {}, "outputs": [], "source": [ @@ -80,7 +80,7 @@ }, { "cell_type": "markdown", - "id": "94410ddb", + "id": "b16269fd", "metadata": {}, "source": [ "Now we can create an HVAC and HVDC variation of the `base_config`" @@ -89,7 +89,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "0e2f57d5", + "id": "cbd14783", "metadata": {}, "outputs": [ { @@ -121,7 +121,7 @@ }, { "cell_type": "markdown", - "id": "e4dac097", + "id": "860aa6b4", "metadata": {}, "source": [ "## Compare the Results" @@ -130,7 +130,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "09298b10", + "id": "1bec2d97", "metadata": {}, "outputs": [ { @@ -150,7 +150,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "8df1a894", + "id": "0dffa8f9", "metadata": {}, "outputs": [ { @@ -264,7 +264,7 @@ }, { "cell_type": "markdown", - "id": "f9a597dd", + "id": "69691f8f", "metadata": {}, "source": [ "## Setup The Parametric Runs\n", @@ -278,7 +278,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "385fd8c4", + "id": "f87d025a", "metadata": {}, "outputs": [], "source": [ @@ -299,7 +299,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "c1cd9ad9", + "id": "61ff94bd", "metadata": {}, "outputs": [], "source": [ @@ -311,7 +311,7 @@ }, { "cell_type": "markdown", - "id": "8fc4fc37", + "id": "b31bbd2a", "metadata": {}, "source": [ "## Compare the Cost vs Capacity Trade Off\n", @@ -326,7 +326,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "aa18f8cf", + "id": "a9acdcbe", "metadata": {}, "outputs": [], "source": [ @@ -339,7 +339,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "eaa20623", + "id": "fa0af890", "metadata": {}, "outputs": [ { @@ -385,7 +385,7 @@ }, { "cell_type": "markdown", - "id": "ed6dad1c", + "id": "3bb22e8c", "metadata": {}, "source": [ "Comparing the below figure to the CapEx figure above, highlights that CapEx increases for the HVDC\n", @@ -397,7 +397,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "f6879452", + "id": "dcf70e60", "metadata": {}, "outputs": [ { diff --git a/examples/fixed_bottom_installations.ipynb b/examples/fixed_bottom_installations.ipynb index 0acca988..e320f1ce 100644 --- a/examples/fixed_bottom_installations.ipynb +++ b/examples/fixed_bottom_installations.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "09d41119", + "id": "ee4d73af", "metadata": {}, "source": [ "# Fixed-Bottom Substructure Installation Models in ORBIT\n", @@ -24,14 +24,14 @@ { "cell_type": "code", "execution_count": 1, - "id": "79817ccb", + "id": "75981bc6", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_84557/691410628.py:28\n", + "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_80870/691410628.py:28\n", "Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n" ] } @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "22af3f68", + "id": "f8d3cf40", "metadata": {}, "source": [ "## Load The Configurations\n", @@ -84,7 +84,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "921867b1", + "id": "8e3e4002", "metadata": {}, "outputs": [], "source": [ @@ -98,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "3c82d8e5", + "id": "55129831", "metadata": {}, "source": [ "The primary differences between these projects deal with the installation strategies, and\n", @@ -115,7 +115,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "74fab8c3", + "id": "528d93ed", "metadata": {}, "outputs": [ { @@ -144,7 +144,7 @@ }, { "cell_type": "markdown", - "id": "c7c4ba64", + "id": "39cf8f44", "metadata": {}, "source": [ "## Run The Three Cases\n", @@ -155,7 +155,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "8c436392", + "id": "6b440830", "metadata": {}, "outputs": [ { @@ -179,7 +179,7 @@ }, { "cell_type": "markdown", - "id": "52ae2a11", + "id": "60adff75", "metadata": {}, "source": [ "## Results Comparison\n", @@ -190,7 +190,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "03f5f6eb", + "id": "4fee78e7", "metadata": {}, "outputs": [ { @@ -406,7 +406,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "e29c8f53", + "id": "5b7fee1f", "metadata": {}, "outputs": [], "source": [ @@ -508,7 +508,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "22965056", + "id": "49182c4b", "metadata": {}, "outputs": [ { @@ -528,7 +528,7 @@ }, { "cell_type": "markdown", - "id": "861dbc8e", + "id": "e9594138", "metadata": {}, "source": [ "### Substructure and Turbine Installation CapEx Breakdown" @@ -537,7 +537,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "b46d1405", + "id": "4c4659bb", "metadata": {}, "outputs": [ { @@ -622,7 +622,7 @@ }, { "cell_type": "markdown", - "id": "e6b83e32", + "id": "0ab92db8", "metadata": {}, "source": [ "### Comparing Installation Timing\n", @@ -637,7 +637,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "dfb1c90f", + "id": "7bee3bf9", "metadata": {}, "outputs": [ { diff --git a/examples/introduction.ipynb b/examples/introduction.ipynb index 71df2b65..c13e2366 100644 --- a/examples/introduction.ipynb +++ b/examples/introduction.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "406f9072", + "id": "b85fa3b0", "metadata": {}, "source": [ "(intro-tutorial)=\n", @@ -22,7 +22,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "bed35a4a", + "id": "4e9dd69a", "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "markdown", - "id": "937daa19", + "id": "83f4828f", "metadata": {}, "source": [ "While this introduction will focus on the monopile design and installation to highlight working with\n", @@ -48,7 +48,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "2916417a", + "id": "991c5dcc", "metadata": {}, "outputs": [ { @@ -76,7 +76,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "67385d3a", + "id": "89e91b49", "metadata": {}, "outputs": [ { @@ -103,7 +103,7 @@ }, { "cell_type": "markdown", - "id": "253ba543", + "id": "0013b2fb", "metadata": {}, "source": [ "## Configuration Basics\n", @@ -120,7 +120,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "f09d16da", + "id": "175b8b4d", "metadata": {}, "outputs": [ { @@ -158,7 +158,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "68f44070", + "id": "9cfe47ff", "metadata": {}, "outputs": [ { @@ -194,7 +194,7 @@ }, { "cell_type": "markdown", - "id": "50403423", + "id": "35bb55ce", "metadata": {}, "source": [ "### Design Models\n", @@ -210,7 +210,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "aaac6532", + "id": "d9514c64", "metadata": {}, "outputs": [], "source": [ @@ -233,7 +233,7 @@ }, { "cell_type": "markdown", - "id": "71be9899", + "id": "9ee45f96", "metadata": {}, "source": [ "Similar to `expected_config`, every design and installation model contains a `run` method that runs\n", @@ -243,7 +243,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "72d2a047", + "id": "7ca24767", "metadata": {}, "outputs": [ { @@ -278,7 +278,7 @@ }, { "cell_type": "markdown", - "id": "e1e7c43f", + "id": "3271369d", "metadata": {}, "source": [ "### Incomplete or Incorrect Configurations\n", @@ -294,7 +294,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "9178e7fe", + "id": "4beed079", "metadata": {}, "outputs": [ { @@ -320,7 +320,7 @@ }, { "cell_type": "markdown", - "id": "9ef5d104", + "id": "c8471e9b", "metadata": {}, "source": [ "### Optional Inputs\n", @@ -334,7 +334,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "98a91aaa", + "id": "b80f7d55", "metadata": {}, "outputs": [ { @@ -389,7 +389,7 @@ }, { "cell_type": "markdown", - "id": "b9150550", + "id": "e4844761", "metadata": {}, "source": [ "### Installation Phases\n", @@ -409,7 +409,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "c75fdcfc", + "id": "e0c317ed", "metadata": {}, "outputs": [ { @@ -525,7 +525,7 @@ }, { "cell_type": "markdown", - "id": "70ca0d72", + "id": "73ef9a82", "metadata": {}, "source": [ "### Loading and Saving Configurations\n", @@ -644,7 +644,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "29ddeb12", + "id": "d6d4cc90", "metadata": {}, "outputs": [ { @@ -747,7 +747,7 @@ }, { "cell_type": "markdown", - "id": "e342aa4b", + "id": "bf59883e", "metadata": {}, "source": [ "Now, we can combine the monopile design and installation configurations that were\n", @@ -758,7 +758,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "b1f1a850", + "id": "bf1633b9", "metadata": {}, "outputs": [ { @@ -808,7 +808,7 @@ }, { "cell_type": "markdown", - "id": "8922225e", + "id": "55869dd3", "metadata": {}, "source": [ "To continue with the previous subsection's demonstration, we can also save the final configuration\n", @@ -818,7 +818,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "e2c8de0f", + "id": "0e904497", "metadata": {}, "outputs": [ { diff --git a/examples/parametric_manager.ipynb b/examples/parametric_manager.ipynb index 256c72ae..8ea498f2 100644 --- a/examples/parametric_manager.ipynb +++ b/examples/parametric_manager.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "a5ded7a7", + "id": "030ffe73", "metadata": {}, "source": [ "(parametric-manager-tutorial)=\n", @@ -20,7 +20,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "e8a3d626", + "id": "6e0ff03a", "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ }, { "cell_type": "markdown", - "id": "26fb581d", + "id": "cf9d5c39", "metadata": {}, "source": [ "## Setting Up The Parameterized Inputs\n", @@ -66,7 +66,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "629c78b3", + "id": "01835554", "metadata": {}, "outputs": [], "source": [ @@ -78,7 +78,7 @@ }, { "cell_type": "markdown", - "id": "717bed20", + "id": "9869e251", "metadata": {}, "source": [ "Similar to the parameterized inputs, we must also define the desired outputs. However, outputs must\n", @@ -89,7 +89,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "992b52a1", + "id": "9af934fd", "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ }, { "cell_type": "markdown", - "id": "62c742ba", + "id": "1ff77b2a", "metadata": {}, "source": [ "## Previewing and Running The Model\n", @@ -120,7 +120,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "e839ffbe", + "id": "6f1b4d31", "metadata": {}, "outputs": [ { @@ -128,16 +128,16 @@ "output_type": "stream", "text": [ "ORBIT library intialized at '/Users/rhammond/GitHub_Public/ORBIT/library'\n", - "10 runs elapsed time: 3.65s\n", - "70 runs estimated time: 25.53s\n" + "10 runs elapsed time: 3.67s\n", + "70 runs estimated time: 25.70s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "10 runs elapsed time: 3.65s\n", - "70 runs estimated time: 25.53s\n" + "10 runs elapsed time: 3.67s\n", + "70 runs estimated time: 25.70s\n" ] }, { @@ -170,73 +170,73 @@ " \n", " \n", " 0\n", - " 30\n", - " 140\n", - " 3.374312e+08\n", - " 1.116196e+09\n", + " 40\n", + " 200\n", + " 3.552323e+08\n", + " 1.173294e+09\n", " \n", " \n", " 1\n", - " 60\n", - " 60\n", - " 3.252670e+08\n", - " 1.294177e+09\n", + " 10\n", + " 120\n", + " 3.303689e+08\n", + " 1.008934e+09\n", " \n", " \n", " 2\n", - " 30\n", - " 180\n", - " 3.485496e+08\n", - " 1.116196e+09\n", + " 10\n", + " 60\n", + " 3.173222e+08\n", + " 1.008934e+09\n", " \n", " \n", " 3\n", - " 30\n", - " 200\n", - " 3.501844e+08\n", - " 1.116196e+09\n", + " 10\n", + " 100\n", + " 3.273726e+08\n", + " 1.008934e+09\n", " \n", " \n", " 4\n", - " 20\n", + " 50\n", " 40\n", - " 3.121054e+08\n", - " 1.061392e+09\n", + " 3.160221e+08\n", + " 1.232635e+09\n", " \n", " \n", " 5\n", - " 50\n", - " 200\n", - " 3.648620e+08\n", - " 1.232635e+09\n", + " 20\n", + " 180\n", + " 3.478866e+08\n", + " 1.061392e+09\n", " \n", " \n", " 6\n", - " 70\n", - " 140\n", - " 3.536470e+08\n", - " 1.357158e+09\n", + " 60\n", + " 120\n", + " 3.471536e+08\n", + " 1.294177e+09\n", " \n", " \n", " 7\n", - " 50\n", - " 180\n", - " 3.615505e+08\n", - " 1.232635e+09\n", + " 30\n", + " 40\n", + " 3.126626e+08\n", + " 1.116196e+09\n", " \n", " \n", " 8\n", - " 10\n", - " 120\n", - " 3.303689e+08\n", - " 1.008934e+09\n", + " 60\n", + " 140\n", + " 3.536998e+08\n", + " 1.294177e+09\n", " \n", " \n", " 9\n", - " 50\n", - " 120\n", - " 3.419372e+08\n", - " 1.232635e+09\n", + " 20\n", + " 100\n", + " 3.296871e+08\n", + " 1.061392e+09\n", " \n", " \n", "\n", @@ -244,16 +244,16 @@ ], "text/plain": [ " site.depth site.distance Installation System\n", - "0 30 140 3.374312e+08 1.116196e+09\n", - "1 60 60 3.252670e+08 1.294177e+09\n", - "2 30 180 3.485496e+08 1.116196e+09\n", - "3 30 200 3.501844e+08 1.116196e+09\n", - "4 20 40 3.121054e+08 1.061392e+09\n", - "5 50 200 3.648620e+08 1.232635e+09\n", - "6 70 140 3.536470e+08 1.357158e+09\n", - "7 50 180 3.615505e+08 1.232635e+09\n", - "8 10 120 3.303689e+08 1.008934e+09\n", - "9 50 120 3.419372e+08 1.232635e+09" + "0 40 200 3.552323e+08 1.173294e+09\n", + "1 10 120 3.303689e+08 1.008934e+09\n", + "2 10 60 3.173222e+08 1.008934e+09\n", + "3 10 100 3.273726e+08 1.008934e+09\n", + "4 50 40 3.160221e+08 1.232635e+09\n", + "5 20 180 3.478866e+08 1.061392e+09\n", + "6 60 120 3.471536e+08 1.294177e+09\n", + "7 30 40 3.126626e+08 1.116196e+09\n", + "8 60 140 3.536998e+08 1.294177e+09\n", + "9 20 100 3.296871e+08 1.061392e+09" ] }, "execution_count": 4, @@ -269,7 +269,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "2465ce19", + "id": "c926cbc2", "metadata": {}, "outputs": [], "source": [ @@ -278,7 +278,7 @@ }, { "cell_type": "markdown", - "id": "c200f03e", + "id": "d9d5b19a", "metadata": {}, "source": [ "The results are saved as a pandas DataFrame in the `results` attribute where each row represents a\n", @@ -296,7 +296,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "db37ebd4", + "id": "38617f00", "metadata": {}, "outputs": [], "source": [ @@ -307,7 +307,7 @@ }, { "cell_type": "markdown", - "id": "6dd7a53b", + "id": "62bc4e3d", "metadata": {}, "source": [ "As mentioned in the [`ProjectManager` tutorial](#project-manager-tutorial), the system CapEx will\n", @@ -318,7 +318,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "45e4d948", + "id": "c0012b37", "metadata": {}, "outputs": [ { @@ -358,7 +358,7 @@ }, { "cell_type": "markdown", - "id": "8ab55ae5", + "id": "96593c3b", "metadata": {}, "source": [ "The system CapEx in this example does not change with site distance. The increase in system CapEx\n", @@ -368,7 +368,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "ef883521", + "id": "76804bd0", "metadata": {}, "outputs": [ { diff --git a/examples/project_manager.ipynb b/examples/project_manager.ipynb index c1aa4376..447a93be 100644 --- a/examples/project_manager.ipynb +++ b/examples/project_manager.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "e1e1d050", + "id": "40f26563", "metadata": {}, "source": [ "(project-manager-tutorial)=\n", @@ -16,7 +16,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "4818aa5e", + "id": "493daf61", "metadata": {}, "outputs": [], "source": [ @@ -44,7 +44,7 @@ }, { "cell_type": "markdown", - "id": "2973b778", + "id": "0ae279af", "metadata": {}, "source": [ "## Compiling Input Requirements Dynamically\n", @@ -58,7 +58,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "02e961d6", + "id": "1bac9038", "metadata": {}, "outputs": [ { @@ -172,7 +172,7 @@ }, { "cell_type": "markdown", - "id": "78c56bf1", + "id": "9afe6886", "metadata": {}, "source": [ "Using the results of the `expected_config`, the following configuration is now created to minimally\n", @@ -184,7 +184,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "11aec5e9", + "id": "3fe91517", "metadata": {}, "outputs": [ { @@ -240,7 +240,7 @@ }, { "cell_type": "markdown", - "id": "5e1dc009", + "id": "a03b910a", "metadata": {}, "source": [ "## Weather Profiles\n", @@ -253,7 +253,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "ef4e7fb0", + "id": "d0b9e892", "metadata": {}, "outputs": [], "source": [ @@ -265,7 +265,7 @@ }, { "cell_type": "markdown", - "id": "e57cb557", + "id": "f6e6d1d3", "metadata": {}, "source": [ "## Accessing Individual Models\n", @@ -278,7 +278,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "517dfeba", + "id": "7d0bb0c7", "metadata": {}, "outputs": [ { @@ -296,7 +296,7 @@ }, { "cell_type": "markdown", - "id": "360869bf", + "id": "f2c7bbbd", "metadata": {}, "source": [ "## Phase-Specific Configurations\n", @@ -388,7 +388,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "edd27173", + "id": "c5aca8db", "metadata": {}, "outputs": [], "source": [ @@ -450,7 +450,7 @@ }, { "cell_type": "markdown", - "id": "e39f7d6d", + "id": "924b34e7", "metadata": {}, "source": [ "Now, we can make a quick visualization to see how the start timing plays out. Notice how the\n", @@ -462,7 +462,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "ba61100c", + "id": "b8ab1555", "metadata": {}, "outputs": [ { @@ -495,7 +495,7 @@ }, { "cell_type": "markdown", - "id": "cfed5170", + "id": "b1f6af13", "metadata": {}, "source": [ "(phase-dependent-timing)=\n", @@ -510,7 +510,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "190917d4", + "id": "971afa48", "metadata": {}, "outputs": [ { diff --git a/examples/supply_chains.ipynb b/examples/supply_chains.ipynb index f1619650..d2ff882a 100644 --- a/examples/supply_chains.ipynb +++ b/examples/supply_chains.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "13964945", + "id": "2582dbd4", "metadata": {}, "source": [ "# Modeling Supply Chains\n", @@ -18,14 +18,14 @@ { "cell_type": "code", "execution_count": 1, - "id": "9e654992", + "id": "64254049", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_84633/3771038313.py:23\n", + "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_81014/3771038313.py:23\n", "Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n" ] } @@ -60,7 +60,7 @@ }, { "cell_type": "markdown", - "id": "06901751", + "id": "c28a82d1", "metadata": {}, "source": [ "## Preparing The Cases\n", @@ -75,7 +75,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "1b0056b5", + "id": "288c6d1f", "metadata": {}, "outputs": [ { @@ -122,7 +122,7 @@ }, { "cell_type": "markdown", - "id": "c918d452", + "id": "e5df4077", "metadata": {}, "source": [ "## Comparing Results\n", @@ -133,7 +133,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "2c90db07", + "id": "e1ed148c", "metadata": {}, "outputs": [ { @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "b476c468", + "id": "073cc099", "metadata": {}, "source": [ "### Installation Timing\n", @@ -167,7 +167,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "ea15fbf5", + "id": "5ad74435", "metadata": {}, "outputs": [], "source": [ @@ -196,7 +196,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "b200738d", + "id": "2bbad375", "metadata": {}, "outputs": [ { @@ -257,7 +257,7 @@ }, { "cell_type": "markdown", - "id": "2700873f", + "id": "2ffae9f7", "metadata": {}, "source": [ "### Port Storage" @@ -266,18 +266,16 @@ { "cell_type": "code", "execution_count": 6, - "id": "44b7f209", + "id": "2fe8dfec", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "UserWarning: /var/folders/q5/tfpytqxn0r396dfg7rk5sj8rwq9tvv/T/ipykernel_81014/3727144123.py:34\n", + "FigureCanvasAgg is non-interactive, and thus cannot be shown\n" + ] }, { "data": { @@ -323,7 +321,8 @@ "ax.set_xlabel(\"Simulation Time (h)\")\n", "ax.set_ylabel(\"Substructures\")\n", "\n", - "ax.legend()" + "ax.legend()\n", + "fig.show()" ] } ], From 2e6032aa61cae5a0e5b30c2e3255b5868820d748 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 14:09:16 -0700 Subject: [PATCH 20/22] add citation to readme --- README.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 66b83dde..172d43e2 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,31 @@ Offshore Renewables Balance of system and Installation Tool - Rob Hammond -## Documentation +## Documentationa Please visit the documentation site at https://nlrwindsystems.github.io/ORBIT/ +## Citing ORBIT + +Please cite this repository using the following citation, or with proceeding Bibtex. + +> Nunemaker, Jacob, Shields, Matthew, Hammond, Robert, et al., +> "ORBIT: Offshore Renewables Balance-of-System and Installation Tool," (2020), +> https://doi.org/10.2172/1660132 + +```bibtex +@techreport{orbit_tech_report, + author={Nunemaker, Jacob and Shields, Matthew and Hammond, Robert and Duffy, Patrick}, + title={ORBIT: Offshore Renewables Balance-of-System and Installation Tool}, + institution={National Renewable Energy Laboratory (NREL), Golden, CO (United States)}, + doi={10.2172/1660132}, + url={https://www.osti.gov/biblio/1660132}, + place={United States}, + year={2020}, + month={08} +} +``` + ## Installation `pip install orbit-nrel` From 9626134ad0224a0bf2b4976d931cc6d39d12d451 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 14:15:13 -0700 Subject: [PATCH 21/22] add citation more prominently --- CITATION.bib | 10 ++++++++++ README.md | 1 + 2 files changed, 11 insertions(+) create mode 100644 CITATION.bib diff --git a/CITATION.bib b/CITATION.bib new file mode 100644 index 00000000..85829eef --- /dev/null +++ b/CITATION.bib @@ -0,0 +1,10 @@ +@techreport{orbit_tech_report, + author={Nunemaker, Jacob and Shields, Matthew and Hammond, Robert and Duffy, Patrick}, + title={ORBIT: Offshore Renewables Balance-of-System and Installation Tool}, + institution={National Renewable Energy Laboratory (NREL), Golden, CO (United States)}, + doi={10.2172/1660132}, + url={https://www.osti.gov/biblio/1660132}, + place={United States}, + year={2020}, + month={08} +} diff --git a/README.md b/README.md index 172d43e2..b398ad22 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ Offshore Renewables Balance of system and Installation Tool [![PyPI downloads](https://img.shields.io/pypi/dm/orbit-nrel?link=https%3A%2F%2Fpypi.org%2Fproject%2Forbit-nrel%2F)](https://pypi.org/project/orbit-nrel/) [![Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![image](https://img.shields.io/pypi/pyversions/orbit-nrel.svg)](https://pypi.python.org/pypi/orbit-nrel) +[![DOI:10.2172/1660132](https://zenodo.org/badge/DOI/10.2172/1660132.svg)](https://doi.org/10.2172/1660132) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/NLRWindSystems/ORBIT/dev?filepath=examples) [![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) From 012320647ca1376673a2af2c8ab5cadfe6ebe1b6 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Fri, 24 Apr 2026 14:15:23 -0700 Subject: [PATCH 22/22] update changelog --- CHANGELOG.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bcae3fa..45b2a0be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,11 +8,22 @@ directly into the documentation site. - The `save_config` function is now compatible with the `ProjectManager.config` object, allowing for direct saving without user modification. -- Fixes a bug in `CustomArraySystemDesign.create_project_csv()` where the output file location does - not adjust to the user's `folder` input. - Adds a contributor's guide to clearly delineate how to install and use the various developer's tools. - Modernize and streamline the installation instructions. +- Converts all the materials found in `examples/` to either tutorials or topical guides in the + documentation. +- Adds a documentation build shell script to help automatically clean existing documentation site + materials, build the documentation, copy over the output example Jupyter Notebooks to `examples/`, + and run the pre-commit workflow for basic file handling. +- Places the ORBIT tech report citation more prominently throughout the repository and documentation. + +### Bug Fixes + +- Fixes a bug in `CustomArraySystemDesign.create_project_csv()` where the output file location does + not adjust to the user's `folder` input. +- Corrects the `ProjectManager.overnight_capex` to reflect the definition provided in the ATB as all + capital costs excluding construction financing and grid connection costs. ### Deprecations