diff --git a/CHANGELOG.md b/CHANGELOG.md index 71a84509..2e7679e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,11 @@ -## Unreleased (TBD) +## v0.7.1 (4 May 2023) + +- Features + - `Metrics.process_times()` now includes the time_to_start, representing the time between when a request is submitted, and when the repairs officially start. + - Expand the acceptable date formats for the weather profiles to allow for year-first. + +## v0.7.0 (3 May 2023) + - Replace Flake8 and Pylint in the pre-commit workflow with ruff, and fix/ignore the resulting errors as appropriate - Features: - Weather data now has the ability to contain more than just the required "windspeed" and "waveheight" columns. This will allow for easier expansion of the weather model in the future, and increase compatibility with other NREL techno economic modeling frameworks. diff --git a/docs/jupyter_execute/examples/how_to.ipynb b/docs/jupyter_execute/examples/how_to.ipynb index 321441ed..6d429045 100644 --- a/docs/jupyter_execute/examples/how_to.ipynb +++ b/docs/jupyter_execute/examples/how_to.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "6419de46", + "id": "8e5a10ac", "metadata": {}, "source": [ "# How To Use WOMBAT\n", @@ -19,7 +19,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "4603906f", + "id": "eb23074d", "metadata": {}, "outputs": [], "source": [ @@ -42,7 +42,7 @@ }, { "cell_type": "markdown", - "id": "e11f130d", + "id": "6fd19fc7", "metadata": {}, "source": [ "## Defining the Simulation\n", @@ -522,7 +522,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "c5cf8413", + "id": "5ff13dd4", "metadata": {}, "outputs": [], "source": [ @@ -531,7 +531,7 @@ }, { "cell_type": "markdown", - "id": "2e6c3f72", + "id": "c4869a25", "metadata": {}, "source": [ "### The configuration file\n", @@ -552,7 +552,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "9175d40c", + "id": "5ab7ebed", "metadata": {}, "outputs": [], "source": [ @@ -561,7 +561,7 @@ }, { "cell_type": "markdown", - "id": "f8aff3c5", + "id": "976d588b", "metadata": {}, "source": [ "```{code-block} yaml\n", @@ -605,7 +605,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "0d8f6170", + "id": "635d8f82", "metadata": {}, "outputs": [], "source": [ @@ -617,7 +617,7 @@ }, { "cell_type": "markdown", - "id": "5282e11d", + "id": "c086a01e", "metadata": {}, "source": [ "### Option 2: `Simulation()`\n", @@ -639,7 +639,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "387ffd28", + "id": "2934d795", "metadata": {}, "outputs": [], "source": [ @@ -651,7 +651,7 @@ }, { "cell_type": "markdown", - "id": "a996f429", + "id": "90fe0fb4", "metadata": {}, "source": [ "## Run the analysis\n", @@ -678,14 +678,14 @@ { "cell_type": "code", "execution_count": 6, - "id": "99697b5b", + "id": "dbf71a70", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Run time: 0.78 minutes\n" + "Run time: 0.81 minutes\n" ] } ], @@ -703,7 +703,7 @@ }, { "cell_type": "markdown", - "id": "3253f074", + "id": "1786a185", "metadata": {}, "source": [ "## Metric computation\n", @@ -715,7 +715,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "0cbb8493", + "id": "623c0b62", "metadata": {}, "outputs": [ { @@ -737,7 +737,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "6af5457b", + "id": "f8652c4e", "metadata": {}, "outputs": [ { @@ -770,7 +770,7 @@ }, { "cell_type": "markdown", - "id": "ab784af6", + "id": "8440317a", "metadata": {}, "source": [ "## Optional: Delete the logging files\n", @@ -781,7 +781,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "831c6a40", + "id": "8ee02167", "metadata": {}, "outputs": [], "source": [ diff --git a/docs/jupyter_execute/examples/metrics_demonstration.ipynb b/docs/jupyter_execute/examples/metrics_demonstration.ipynb index b305b377..52c9cd0e 100644 --- a/docs/jupyter_execute/examples/metrics_demonstration.ipynb +++ b/docs/jupyter_execute/examples/metrics_demonstration.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "915f2058", + "id": "ad049dd1", "metadata": {}, "source": [ "# Demonstration of the Available Metrics\n", @@ -15,7 +15,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "1a98ac3a", + "id": "4d281bb5", "metadata": { "tags": [ "output_scroll" @@ -44,7 +44,7 @@ }, { "cell_type": "markdown", - "id": "5d820649", + "id": "3571f11b", "metadata": {}, "source": [ "## Table of Contents\n", @@ -87,7 +87,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "74a9ae24", + "id": "b822dbb8", "metadata": { "tags": [ "output_scroll" @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "1cd7fe39", + "id": "ec262cbb", "metadata": {}, "source": [ "## Common Parameter Explanations\n", @@ -166,7 +166,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "12898cbf", + "id": "075cd29d", "metadata": { "tags": [ "output_scroll" @@ -178,23 +178,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
00.9700.97
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 3, @@ -209,7 +209,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "0617dd2a", + "id": "d2d53000", "metadata": { "tags": [ "output_scroll" @@ -221,23 +221,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
00.9700.97
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -251,7 +251,7 @@ }, { "cell_type": "markdown", - "id": "790dd1fb", + "id": "d379665d", "metadata": {}, "source": [ "Note that in the two above examples, that the values are equal. This is due to the fact that the example simulation does not have any operating reduction applied to failures, unless it's a catastrophic failure, so\n", @@ -261,7 +261,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "9eb82803", + "id": "7323ff22", "metadata": { "tags": [ "output_scroll" @@ -273,181 +273,181 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 S00T1S00T2S00T3S00T4S00T5S00T6S00T7S00T8S00T9S00T10S00T11S00T12S00T13S00T14S00T15S00T16S00T17S00T18S00T19S00T20S00T21S00T22S00T23S00T24S00T25S00T26S00T27S00T28S00T29S00T30S00T31S00T32S00T33S00T34S00T35S00T36S00T37S00T38S00T39S00T40S00T41S00T42S00T43S00T44S00T45S00T46S00T47S00T48S00T49S00T50S00T51S00T52S00T53S00T54S00T55S00T56S00T57S00T58S00T59S00T60S00T61S00T62S00T63S00T64S00T65S00T66S00T67S00T68S00T69S00T70S00T71S00T72S00T73S00T74S00T75S00T76S00T77S00T78S00T79S00T80S00T1S00T2S00T3S00T4S00T5S00T6S00T7S00T8S00T9S00T10S00T11S00T12S00T13S00T14S00T15S00T16S00T17S00T18S00T19S00T20S00T21S00T22S00T23S00T24S00T25S00T26S00T27S00T28S00T29S00T30S00T31S00T32S00T33S00T34S00T35S00T36S00T37S00T38S00T39S00T40S00T41S00T42S00T43S00T44S00T45S00T46S00T47S00T48S00T49S00T50S00T51S00T52S00T53S00T54S00T55S00T56S00T57S00T58S00T59S00T60S00T61S00T62S00T63S00T64S00T65S00T66S00T67S00T68S00T69S00T70S00T71S00T72S00T73S00T74S00T75S00T76S00T77S00T78S00T79S00T80
00.970.970.970.970.970.970.950.970.970.970.970.980.970.970.970.960.970.950.970.980.970.970.970.970.960.970.970.970.980.970.970.960.970.970.970.970.970.970.960.970.970.970.970.970.970.960.970.970.970.970.970.970.970.960.970.970.970.970.970.980.950.950.970.970.970.950.940.970.960.970.970.980.970.970.970.970.970.970.950.9600.970.970.970.970.970.970.970.970.970.980.970.970.970.970.970.960.970.970.970.960.970.970.970.970.970.970.970.950.970.970.960.970.970.930.970.970.970.970.970.960.970.970.960.980.970.970.960.970.970.980.970.970.970.950.970.970.970.970.970.970.970.950.970.960.970.970.960.970.970.970.950.950.980.970.960.970.970.970.950.96
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -463,7 +463,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "6d77f4d6", + "id": "a490aeb5", "metadata": { "tags": [ "output_scroll" @@ -475,11 +475,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -488,50 +488,50 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
year
20030.9920030.99
20040.9620040.97
20050.9720050.96
20060.9720060.97
20070.9720070.97
20080.9720080.96
20090.9720090.97
20100.9720100.97
20110.9720110.97
20120.9720120.97
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -547,7 +547,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "a9000bec", + "id": "444629c7", "metadata": { "tags": [ "output_scroll" @@ -559,11 +559,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -572,58 +572,58 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
month
10.9810.98
20.9720.97
30.9630.96
40.9640.96
50.9650.96
60.9660.96
70.9670.96
80.9680.96
90.9790.97
100.98100.98
110.98110.98
120.98120.98
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -639,7 +639,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "49df195d", + "id": "da679c81", "metadata": { "tags": [ "output_scroll" @@ -651,12 +651,12 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -666,500 +666,500 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
  windfarmwindfarm
year
200310.99200310.99
20.9920.98
30.9930.99
40.9940.99
50.9850.99
60.9760.99
70.9870.99
80.9880.97
90.9990.98
100.99100.99
110.99110.99
120.99120.99
200410.96200410.96
20.9520.96
30.9430.96
40.9540.96
50.9650.96
60.9660.96
70.9570.96
80.9580.96
90.9890.96
100.99100.97
110.99110.97
120.99120.98
200510.96200510.96
20.9520.95
30.9530.96
40.9540.95
50.9650.95
60.9660.95
70.9670.95
80.9780.95
90.9990.98
100.99100.99
110.99110.99
120.98120.98
200610.97200610.97
20.9520.96
30.9530.96
40.9640.95
50.9550.95
60.9560.94
70.9670.96
80.9680.96
90.9990.98
100.99100.99
110.98110.99
120.99120.98
200710.97200710.97
20.9620.95
30.9530.96
40.9540.96
50.9550.96
60.9660.96
70.9670.96
80.9680.96
90.9890.96
100.98100.98
110.97110.97
120.98120.98
200810.98200810.99
20.9720.96
30.9630.95
40.9640.95
50.9550.96
60.9560.96
70.9570.95
80.9680.95
90.9690.96
100.98100.99
110.99110.98
120.99120.98
200910.99200910.98
20.9720.97
30.9630.96
40.9640.96
50.9650.96
60.9660.96
70.9670.96
80.9580.96
90.9590.95
100.96100.97
110.99110.98
120.99120.98
201010.99201010.98
20.9920.98
30.9630.96
40.9540.95
50.9650.95
60.9660.96
70.9670.96
80.9680.96
90.9590.96
100.96100.97
110.98110.99
120.99120.99
201110.99201110.99
20.9920.99
30.9630.96
40.9540.96
50.9550.95
60.9660.95
70.9670.96
80.9680.96
90.9690.96
100.97100.97
110.98110.99
120.97120.96
201210.99201210.98
20.9920.99
30.9830.98
40.9640.96
50.9650.96
60.9660.96
70.9570.96
80.9580.96
90.9690.95
100.96100.96
110.97110.98
120.99120.98
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -1174,7 +1174,7 @@ }, { "cell_type": "markdown", - "id": "3283e742", + "id": "69cc9ad6", "metadata": {}, "source": [ "## Capacity Factor\n", @@ -1195,7 +1195,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "eec6c0c2", + "id": "8133749c", "metadata": { "tags": [ "output_scroll" @@ -1206,7 +1206,7 @@ "name": "stdout", "output_type": "stream", "text": [ - " Net capacity factor: 46.26%\n", + " Net capacity factor: 46.21%\n", "Gross capacity factor: 47.67%\n" ] } @@ -1220,7 +1220,7 @@ }, { "cell_type": "markdown", - "id": "ca813dd5", + "id": "60bd8a0e", "metadata": {}, "source": [ "## Task Completion Rate\n", @@ -1241,7 +1241,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "71b3727a", + "id": "4c91a13a", "metadata": { "tags": [ "output_scroll" @@ -1252,9 +1252,9 @@ "name": "stdout", "output_type": "stream", "text": [ - " Scheduled Task Completion Rate: 96.11%\n", - "Unscheduled Task Completion Rate: 99.87%\n", - " Overall Task Completion Rate: 99.58%\n" + " Scheduled Task Completion Rate: 96.53%\n", + "Unscheduled Task Completion Rate: 99.85%\n", + " Overall Task Completion Rate: 99.59%\n" ] } ], @@ -1269,7 +1269,7 @@ }, { "cell_type": "markdown", - "id": "8d408e5d", + "id": "f25bfc64", "metadata": {}, "source": [ "## Equipment Costs\n", @@ -1289,7 +1289,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "c198cb5e", + "id": "7e802957", "metadata": { "tags": [ "output_scroll" @@ -1301,23 +1301,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 equipment_costequipment_cost
090,214,942.42093,368,489.84
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 11, @@ -1333,7 +1333,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "b0b6c560", + "id": "a0fd1b57", "metadata": { "tags": [ "output_scroll" @@ -1345,31 +1345,31 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 Crew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift VesselCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift Vessel
06,391,000.006,391,000.006,391,000.002,166,621.2468,875,321.1806,391,000.006,391,000.006,391,000.002,447,597.4871,747,892.36
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 12, @@ -1384,7 +1384,7 @@ }, { "cell_type": "markdown", - "id": "b369281e", + "id": "9f306032", "metadata": {}, "source": [ "## Service Equipment Utilization Rate\n", @@ -1401,7 +1401,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "cb43c28b", + "id": "c98e736f", "metadata": { "tags": [ "output_scroll" @@ -1413,31 +1413,31 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 Crew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift VesselCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift Vessel
01.001.001.000.930.9501.001.001.000.930.95
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 13, @@ -1452,7 +1452,7 @@ }, { "cell_type": "markdown", - "id": "58965da9", + "id": "34def680", "metadata": {}, "source": [ "## Vessel-Crew Hours at Sea\n", @@ -1473,7 +1473,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "641a3438", + "id": "3a6b4647", "metadata": { "tags": [ "output_scroll" @@ -1485,23 +1485,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 Total Crew Hours at SeaTotal Crew Hours at Sea
0126,172.820127,471.78
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 14, @@ -1517,7 +1517,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "3f1b267f", + "id": "1e361e4b", "metadata": { "tags": [ "output_scroll" @@ -1529,16 +1529,16 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1552,100 +1552,100 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 Total Crew Hours at SeaCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift VesselTotal Crew Hours at SeaCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Heavy Lift VesselField Support Vessel
year
20037,470.751,626.001,701.251,724.50602.001,817.00
200415,055.343,347.753,329.253,252.751,213.003,912.59
200512,348.953,267.753,271.003,241.25652.001,916.95
200613,297.863,197.253,199.253,204.000.003,697.36
200714,486.713,421.003,422.253,473.75639.343,530.38
200812,873.473,533.253,509.753,624.500.002,205.97
200913,021.463,564.503,503.253,626.25621.001,706.46
201012,700.003,392.003,422.753,384.00607.001,894.25
201112,715.613,360.753,360.503,407.25662.731,924.38
201212,202.663,468.503,499.253,474.250.001,760.6620037,476.251,697.001,688.501,718.751,725.50646.50
200413,059.653,720.253,659.003,683.501,996.900.00
200514,373.433,281.003,213.753,221.503,985.07672.11
200612,807.413,253.503,266.253,343.001,676.831,267.83
200714,011.873,526.503,382.503,449.753,653.120.00
200814,321.743,269.753,348.253,390.253,695.49618.00
200914,476.493,385.753,427.753,480.503,530.49652.00
201012,382.003,443.253,422.003,409.252,107.500.00
201113,245.703,394.753,422.753,357.501,928.251,142.45
201211,317.253,569.503,568.253,454.000.00725.50
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 15, @@ -1660,7 +1660,7 @@ }, { "cell_type": "markdown", - "id": "6891c356", + "id": "044a0551", "metadata": {}, "source": [ "## Number of Tows\n", @@ -1683,7 +1683,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "dd5cdfa8", + "id": "8019c0f3", "metadata": { "tags": [ "output_scroll" @@ -1695,23 +1695,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 total_towstotal_tows
0000
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 16, @@ -1727,7 +1727,7 @@ }, { "cell_type": "markdown", - "id": "7b0f7c45", + "id": "e9220727", "metadata": {}, "source": [ "## Labor Costs\n", @@ -1747,7 +1747,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "3189b01a", + "id": "bb0c3576", "metadata": { "tags": [ "output_scroll" @@ -1771,7 +1771,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "9f68d6fc", + "id": "a2997274", "metadata": { "tags": [ "output_scroll" @@ -1783,27 +1783,27 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 hourly_labor_costsalary_labor_costtotal_labor_costhourly_labor_costsalary_labor_costtotal_labor_cost
00000000
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 18, @@ -1819,7 +1819,7 @@ }, { "cell_type": "markdown", - "id": "25d5af4a", + "id": "9e294f63", "metadata": {}, "source": [ "## Equipment and Labor Costs\n", @@ -1849,7 +1849,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "64fb0e43", + "id": "fd5861a7", "metadata": { "tags": [ "output_scroll" @@ -1861,11 +1861,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1874,42 +1874,42 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 total_costtotal_cost
reason
Maintenance3,024,127.60Maintenance3,037,289.06
Repair19,181,455.73Repair18,840,259.07
Crew Transfer1,143,552.08Crew Transfer1,141,625.00
Site Travel0.00Site Travel0.00
Mobilization6,500,000.00Mobilization6,500,000.00
Weather Delay25,435,914.53Weather Delay26,594,012.00
No Requests14,472,904.46No Requests16,682,026.60
Not in Shift20,456,988.02Not in Shift20,573,278.10
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 19, @@ -1925,7 +1925,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "5fa75264", + "id": "ec499560", "metadata": { "tags": [ "output_scroll" @@ -1937,15 +1937,15 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1958,74 +1958,74 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 hourly_labor_costsalary_labor_costtotal_labor_costequipment_costtotal_costhourly_labor_costsalary_labor_costtotal_labor_costequipment_costtotal_cost
reason
Maintenance0003,024,127.603,024,127.60Maintenance0003,037,289.063,037,289.06
Repair00019,181,455.7319,181,455.73Repair00018,840,259.0718,840,259.07
Crew Transfer0001,143,552.081,143,552.08Crew Transfer0001,141,625.001,141,625.00
Site Travel0000.000.00Site Travel0000.000.00
Mobilization0006,500,000.006,500,000.00Mobilization0006,500,000.006,500,000.00
Weather Delay00025,435,914.5325,435,914.53Weather Delay00026,594,012.0026,594,012.00
No Requests00014,472,904.4614,472,904.46No Requests00016,682,026.6016,682,026.60
Not in Shift00020,456,988.0220,456,988.02Not in Shift00020,573,278.1020,573,278.10
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 20, @@ -2040,7 +2040,7 @@ }, { "cell_type": "markdown", - "id": "6f70fb7a", + "id": "2b56ea1d", "metadata": {}, "source": [ "## Component Costs\n", @@ -2068,7 +2068,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "26681a17", + "id": "0d3784b5", "metadata": { "tags": [ "output_scroll" @@ -2080,11 +2080,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2093,14 +2093,14 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 total_costtotal_cost
component
turbine107,260,681.19turbine108,318,338.24
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 21, @@ -2116,7 +2116,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "159f330c", + "id": "96a8e046", "metadata": { "tags": [ "output_scroll" @@ -2128,15 +2128,15 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2149,32 +2149,32 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  materials_costtotal_labor_costequipment_costtotal_costmaterials_costtotal_labor_costequipment_costtotal_cost
component
turbinedelay0045,741,545.7845,741,545.78turbinedelay0047,024,665.1047,024,665.10
maintenance003,024,127.603,024,127.60maintenance003,037,289.063,037,289.06
repair0019,181,455.7319,181,455.73repair0018,840,259.0718,840,259.07
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 22, @@ -2189,7 +2189,7 @@ }, { "cell_type": "markdown", - "id": "9eeda99f", + "id": "1bf66376", "metadata": {}, "source": [ "## Fixed Cost Impacts\n", @@ -2208,7 +2208,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "ed0d2fd6", + "id": "ab26d796", "metadata": { "tags": [ "output_scroll" @@ -2243,7 +2243,7 @@ }, { "cell_type": "markdown", - "id": "c2e9232e", + "id": "52956b2f", "metadata": {}, "source": [ "**Example Usage**:" @@ -2252,7 +2252,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "353b7515", + "id": "54c5e00e", "metadata": { "tags": [ "output_scroll" @@ -2264,23 +2264,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 operationsoperations
016,013,230.75016,013,230.75
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -2298,7 +2298,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "7de633e8", + "id": "30ba9f7a", "metadata": { "tags": [ "output_scroll" @@ -2310,35 +2310,35 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 operations_management_administrationinsuranceannual_leases_feesoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelaboroperations_management_administrationinsuranceannual_leases_feesoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelabor
00.000.000.000.000.000.0016,013,230.7500.000.000.000.000.000.0016,013,230.75
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 25, @@ -2354,7 +2354,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "aa013edd", + "id": "ade25c50", "metadata": { "tags": [ "output_scroll" @@ -2366,51 +2366,51 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 project_management_administrationmarine_managementweather_forecastingcondition_monitoringbrokers_feeoperations_all_riskbusiness_interruptionthird_party_liabilitystorm_coveragesubmerge_land_lease_coststransmission_charges_rightsoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelaborproject_management_administrationmarine_managementweather_forecastingcondition_monitoringbrokers_feeoperations_all_riskbusiness_interruptionthird_party_liabilitystorm_coveragesubmerge_land_lease_coststransmission_charges_rightsoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelabor
00.000.000.000.000.000.000.000.000.000.000.000.000.000.0016,013,230.7500.000.000.000.000.000.000.000.000.000.000.000.000.000.0016,013,230.75
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 26, @@ -2425,7 +2425,7 @@ }, { "cell_type": "markdown", - "id": "59e795ab", + "id": "ca6f6cf6", "metadata": {}, "source": [ "## OpEx\n", @@ -2441,7 +2441,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "b0fc07e6", + "id": "fa4672ea", "metadata": { "tags": [ "output_scroll" @@ -2453,11 +2453,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2466,50 +2466,50 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 OpExOpEx
year
200311,366,345.82200310,692,976.76
200420,416,838.30200412,868,950.61
200512,364,720.63200522,293,942.56
200618,430,481.96200612,763,056.41
200716,112,377.46200717,834,138.21
200815,649,631.17200820,338,893.83
200912,322,537.97200914,910,931.89
201012,646,976.33201016,848,153.83
201113,140,776.45201112,612,934.61
201211,947,487.0720126,492,241.87
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -2523,7 +2523,7 @@ }, { "cell_type": "markdown", - "id": "5c50c60d", + "id": "6180ac75", "metadata": {}, "source": [ "## Process Times\n", @@ -2536,7 +2536,7 @@ { "cell_type": "code", "execution_count": 28, - "id": "248932f6", + "id": "c189c88b", "metadata": { "tags": [ "output_scroll" @@ -2548,14 +2548,15 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2563,56 +2564,63 @@ " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 time_to_completionprocess_timedowntimeNtime_to_completionprocess_timedowntimetime_to_startN
category    
annual service1,805,444.2397,113.5097,113.50720annual service1,808,167.7897,760.5097,760.501,676,666.26720
major repair74,420.422,255.752,255.7528major repair120,837.832,652.402,652.40118,275.0032
major replacement139,040.438,766.398,766.3952major replacement141,374.228,864.098,864.09127,685.5355
manual reset328,131.1842,130.0042,130.005,876manual reset342,975.1442,423.2542,423.25309,944.945,859
medium repair15,397.3210,266.5010,266.50209medium repair17,526.5810,964.5010,952.506,918.33217
minor repair104,113.7434,369.0034,369.002,307minor repair108,278.9035,275.0035,275.0075,850.062,349
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -2626,7 +2634,7 @@ }, { "cell_type": "markdown", - "id": "55c51905", + "id": "ecdea61f", "metadata": {}, "source": [ "## Power Production\n", @@ -2647,7 +2655,7 @@ { "cell_type": "code", "execution_count": 29, - "id": "62fadbec", + "id": "5b20c38e", "metadata": { "tags": [ "output_scroll" @@ -2659,23 +2667,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
Project Energy Production (kWh)9,733,332,312.00Project Energy Production (kWh)9,723,360,505.50
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 29, @@ -2691,7 +2699,7 @@ { "cell_type": "code", "execution_count": 30, - "id": "f1bc8d4a", + "id": "cb1f085e", "metadata": { "tags": [ "output_scroll" @@ -2703,23 +2711,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
Project Energy Production (MWh)9,733,332.31Project Energy Production (MWh)9,723,360.51
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 30, @@ -2735,7 +2743,7 @@ { "cell_type": "code", "execution_count": 31, - "id": "a3f0d88d", + "id": "20146f50", "metadata": { "tags": [ "output_scroll" @@ -2747,23 +2755,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
Project Energy Production (GWh)9,733.33Project Energy Production (GWh)9,723.36
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 31, @@ -2778,7 +2786,7 @@ }, { "cell_type": "markdown", - "id": "071bb68f", + "id": "8b8e38fc", "metadata": {}, "source": [ "## Net Present Value\n", @@ -2797,7 +2805,7 @@ { "cell_type": "code", "execution_count": 32, - "id": "37ee98b4", + "id": "73e2cf34", "metadata": { "tags": [ "output_scroll" @@ -2809,11 +2817,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2822,50 +2830,50 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 OpExOpEx
year
200311,366,345.82200310,692,976.76
200420,416,838.30200412,868,950.61
200512,364,720.63200522,293,942.56
200618,430,481.96200612,763,056.41
200716,112,377.46200717,834,138.21
200815,649,631.17200820,338,893.83
200912,322,537.97200914,910,931.89
201012,646,976.33201016,848,153.83
201113,140,776.45201112,612,934.61
201211,947,487.0720126,492,241.87
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 32, @@ -2879,7 +2887,7 @@ }, { "cell_type": "markdown", - "id": "058fc729", + "id": "9f643e62", "metadata": {}, "source": [ "## PySAM-Powered Results\n", @@ -2899,7 +2907,7 @@ { "cell_type": "code", "execution_count": 33, - "id": "03c6bbcb", + "id": "5bdf2e42", "metadata": { "tags": [ "raises-exception" @@ -2914,7 +2922,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[33], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_npv\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2082\u001b[0m, in \u001b[0;36mMetrics.pysam_npv\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2062\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax net present values (NPV).\u001b[39;00m\n\u001b[1;32m 2063\u001b[0m \n\u001b[1;32m 2064\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2079\u001b[0m \u001b[38;5;124;03m Final, project-level NPV, in $.\u001b[39;00m\n\u001b[1;32m 2080\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2081\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2082\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2083\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_npv()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2084\u001b[0m )\n\u001b[1;32m 2085\u001b[0m npv \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_npv\n\u001b[1;32m 2086\u001b[0m npv \u001b[38;5;241m=\u001b[39m npv[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2105\u001b[0m, in \u001b[0;36mMetrics.pysam_npv\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2085\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax net present values (NPV).\u001b[39;00m\n\u001b[1;32m 2086\u001b[0m \n\u001b[1;32m 2087\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2102\u001b[0m \u001b[38;5;124;03m Final, project-level NPV, in $.\u001b[39;00m\n\u001b[1;32m 2103\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2104\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2105\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2106\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_npv()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2107\u001b[0m )\n\u001b[1;32m 2108\u001b[0m npv \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_npv\n\u001b[1;32m 2109\u001b[0m npv \u001b[38;5;241m=\u001b[39m npv[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_npv()' cannot be calculated!" ] } @@ -2925,7 +2933,7 @@ }, { "cell_type": "markdown", - "id": "4ed47df4", + "id": "949c017b", "metadata": {}, "source": [ "### Real Levelized Cost of Energy (LCOE)" @@ -2934,7 +2942,7 @@ { "cell_type": "code", "execution_count": 34, - "id": "ae052dae", + "id": "df7a3c66", "metadata": { "tags": [ "raises-exception" @@ -2949,7 +2957,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[34], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_lcoe_real\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2110\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_real\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2090\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the real levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2091\u001b[0m \n\u001b[1;32m 2092\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2107\u001b[0m \u001b[38;5;124;03m Real LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2108\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2109\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2110\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2111\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_real()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2112\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2113\u001b[0m )\n\u001b[1;32m 2114\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_real \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2133\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_real\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2113\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the real levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2114\u001b[0m \n\u001b[1;32m 2115\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2130\u001b[0m \u001b[38;5;124;03m Real LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2131\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2133\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2134\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_real()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2135\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2136\u001b[0m )\n\u001b[1;32m 2137\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_real \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_lcoe_real()' cannot be calculated!" ] } @@ -2960,7 +2968,7 @@ }, { "cell_type": "markdown", - "id": "0a6cc2ff", + "id": "47becd33", "metadata": {}, "source": [ "### Nominal Levelized Cost of Energy (LCOE)" @@ -2969,7 +2977,7 @@ { "cell_type": "code", "execution_count": 35, - "id": "0dde35c2", + "id": "9ae52907", "metadata": { "tags": [ "raises-exception" @@ -2984,7 +2992,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[35], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_lcoe_nominal\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2137\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_nominal\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2117\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the nominal levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2118\u001b[0m \n\u001b[1;32m 2119\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2134\u001b[0m \u001b[38;5;124;03m Nominal LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2135\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2136\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2137\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2138\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_nominal()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2139\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2140\u001b[0m )\n\u001b[1;32m 2141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_nom \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2160\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_nominal\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2140\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the nominal levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2141\u001b[0m \n\u001b[1;32m 2142\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2157\u001b[0m \u001b[38;5;124;03m Nominal LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2158\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2159\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2160\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2161\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_nominal()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2162\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2163\u001b[0m )\n\u001b[1;32m 2164\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_nom \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_lcoe_nominal()' cannot be calculated!" ] } @@ -2995,7 +3003,7 @@ }, { "cell_type": "markdown", - "id": "11b7fe56", + "id": "f6fe646b", "metadata": {}, "source": [ "### After-tax Internal Return Rate (IRR)" @@ -3004,7 +3012,7 @@ { "cell_type": "code", "execution_count": 36, - "id": "2ccdc3dc", + "id": "03677ced", "metadata": { "tags": [ "raises-exception" @@ -3019,7 +3027,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[36], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_irr\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2164\u001b[0m, in \u001b[0;36mMetrics.pysam_irr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2144\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax internal return rate (IRR).\u001b[39;00m\n\u001b[1;32m 2145\u001b[0m \n\u001b[1;32m 2146\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2161\u001b[0m \u001b[38;5;124;03m Annual after-tax IRR value, in %.\u001b[39;00m\n\u001b[1;32m 2162\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2163\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2164\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2165\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_irr()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2166\u001b[0m )\n\u001b[1;32m 2167\u001b[0m irr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_irr\n\u001b[1;32m 2168\u001b[0m irr \u001b[38;5;241m=\u001b[39m irr[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2187\u001b[0m, in \u001b[0;36mMetrics.pysam_irr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2167\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax internal return rate (IRR).\u001b[39;00m\n\u001b[1;32m 2168\u001b[0m \n\u001b[1;32m 2169\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2184\u001b[0m \u001b[38;5;124;03m Annual after-tax IRR value, in %.\u001b[39;00m\n\u001b[1;32m 2185\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2186\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2187\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2188\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_irr()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2189\u001b[0m )\n\u001b[1;32m 2190\u001b[0m irr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_irr\n\u001b[1;32m 2191\u001b[0m irr \u001b[38;5;241m=\u001b[39m irr[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_irr()' cannot be calculated!" ] } @@ -3030,7 +3038,7 @@ }, { "cell_type": "markdown", - "id": "5e844acc", + "id": "866e421c", "metadata": {}, "source": [ "### Combined PySAM Outputs" @@ -3039,7 +3047,7 @@ { "cell_type": "code", "execution_count": 37, - "id": "f544d67c", + "id": "43809ef4", "metadata": { "tags": [ "raises-exception" @@ -3054,7 +3062,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[37], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_all_outputs\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2195\u001b[0m, in \u001b[0;36mMetrics.pysam_all_outputs\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2172\u001b[0m \u001b[38;5;124;03m\"\"\"Returns all the possible PySAM outputs that are included in this module as\u001b[39;00m\n\u001b[1;32m 2173\u001b[0m \u001b[38;5;124;03mcolumns in the following order.\u001b[39;00m\n\u001b[1;32m 2174\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2192\u001b[0m \u001b[38;5;124;03m Project financial values values.\u001b[39;00m\n\u001b[1;32m 2193\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2194\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2195\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2196\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_all_outputs()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2197\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2198\u001b[0m )\n\u001b[1;32m 2199\u001b[0m financials \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2200\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_npv(),\n\u001b[1;32m 2201\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_nominal(),\n\u001b[1;32m 2202\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_real(),\n\u001b[1;32m 2203\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_irr(),\n\u001b[1;32m 2204\u001b[0m ]\n\u001b[1;32m 2205\u001b[0m descriptions \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2206\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax NPV ($)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2207\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNominal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2208\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2209\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax IRR (\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2210\u001b[0m ]\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2218\u001b[0m, in \u001b[0;36mMetrics.pysam_all_outputs\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2195\u001b[0m \u001b[38;5;124;03m\"\"\"Returns all the possible PySAM outputs that are included in this module as\u001b[39;00m\n\u001b[1;32m 2196\u001b[0m \u001b[38;5;124;03mcolumns in the following order.\u001b[39;00m\n\u001b[1;32m 2197\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2215\u001b[0m \u001b[38;5;124;03m Project financial values values.\u001b[39;00m\n\u001b[1;32m 2216\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2217\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2218\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2219\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_all_outputs()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2220\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2221\u001b[0m )\n\u001b[1;32m 2222\u001b[0m financials \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2223\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_npv(),\n\u001b[1;32m 2224\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_nominal(),\n\u001b[1;32m 2225\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_real(),\n\u001b[1;32m 2226\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_irr(),\n\u001b[1;32m 2227\u001b[0m ]\n\u001b[1;32m 2228\u001b[0m descriptions \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2229\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax NPV ($)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2230\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNominal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2231\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2232\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax IRR (\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2233\u001b[0m ]\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_all_outputs()' cannot be calculated!" ] } diff --git a/docs/jupyter_execute/examples/strategy_demonstration.ipynb b/docs/jupyter_execute/examples/strategy_demonstration.ipynb index 40a42fad..872d164c 100644 --- a/docs/jupyter_execute/examples/strategy_demonstration.ipynb +++ b/docs/jupyter_execute/examples/strategy_demonstration.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b6887b60", + "id": "26631dc7", "metadata": {}, "source": [ "# Servicing Strategies\n", @@ -43,7 +43,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "feaba6d6", + "id": "469f4bdd", "metadata": {}, "outputs": [], "source": [ @@ -62,7 +62,7 @@ }, { "cell_type": "markdown", - "id": "fd6255f6", + "id": "04f673bc", "metadata": {}, "source": [ "## Simulation and results setup\n", @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "9929708b", + "id": "1d9bb2c8", "metadata": {}, "outputs": [], "source": [ @@ -116,7 +116,7 @@ }, { "cell_type": "markdown", - "id": "ba36ef23", + "id": "23499abb", "metadata": {}, "source": [ "## Run the simulations and display the results" @@ -125,7 +125,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "1e8c6ffd", + "id": "c4e30ff7", "metadata": {}, "outputs": [ { @@ -162,22 +162,22 @@ " \n", " base_scheduled\n", " 0.03\n", - " 0.65\n", + " 0.69\n", " \n", " \n", " base_requests\n", " 0.03\n", - " 0.80\n", + " 0.84\n", " \n", " \n", " base_downtime\n", " 0.03\n", - " 0.70\n", + " 0.75\n", " \n", " \n", " base_tow_to_port\n", " 0.03\n", - " 1.34\n", + " 1.37\n", " \n", " \n", "\n", @@ -186,10 +186,10 @@ "text/plain": [ " Load Time (min) Run Time (min)\n", "Scenario \n", - "base_scheduled 0.03 0.65\n", - "base_requests 0.03 0.80\n", - "base_downtime 0.03 0.70\n", - "base_tow_to_port 0.03 1.34" + "base_scheduled 0.03 0.69\n", + "base_requests 0.03 0.84\n", + "base_downtime 0.03 0.75\n", + "base_tow_to_port 0.03 1.37" ] }, "execution_count": 3, @@ -274,7 +274,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "12c5ae4c", + "id": "d9d16576", "metadata": {}, "outputs": [ { @@ -335,31 +335,31 @@ " \n", " \n", " power production\n", - " 9,760.78\n", - " 9,719.20\n", - " 9,777.28\n", - " 9,620.49\n", + " 9,765.09\n", + " 9,713.69\n", + " 9,778.04\n", + " 9,631.34\n", " \n", " \n", " task completion rate\n", " 0.99\n", + " 1.00\n", " 0.99\n", - " 0.99\n", - " 0.90\n", + " 0.93\n", " \n", " \n", " annual direct O&M cost\n", - " 18.12\n", - " 17.19\n", - " 5.41\n", - " 12.86\n", + " 17.32\n", + " 16.07\n", + " 5.45\n", + " 11.98\n", " \n", " \n", " annual vessel cost\n", - " 12.24\n", - " 11.42\n", + " 11.84\n", + " 10.40\n", " 1.92\n", - " 2.13\n", + " 2.09\n", " \n", " \n", " ctv cost\n", @@ -371,14 +371,14 @@ " \n", " fsv cost\n", " 0.27\n", - " 0.19\n", + " 0.22\n", " 0.00\n", " 0.00\n", " \n", " \n", " hlv cost\n", - " 10.06\n", - " 9.31\n", + " 9.66\n", + " 8.27\n", " 0.00\n", " 0.00\n", " \n", @@ -387,14 +387,14 @@ " 0.00\n", " 0.00\n", " 0.00\n", - " 0.21\n", + " 0.18\n", " \n", " \n", " annual repair cost\n", - " 4.27\n", - " 4.17\n", - " 1.89\n", - " 7.14\n", + " 3.88\n", + " 4.07\n", + " 1.93\n", + " 6.28\n", " \n", " \n", " annual technician cost\n", @@ -419,7 +419,7 @@ " \n", " \n", " hlv utilization\n", - " 0.99\n", + " 1.00\n", " 0.96\n", " 0.00\n", " 0.00\n", @@ -441,19 +441,19 @@ "availability - production based 0.97 0.97 0.97 \n", "capacity factor - net 0.46 0.46 0.46 \n", "capacity factor - gross 0.48 0.48 0.48 \n", - "power production 9,760.78 9,719.20 9,777.28 \n", - "task completion rate 0.99 0.99 0.99 \n", - "annual direct O&M cost 18.12 17.19 5.41 \n", - "annual vessel cost 12.24 11.42 1.92 \n", + "power production 9,765.09 9,713.69 9,778.04 \n", + "task completion rate 0.99 1.00 0.99 \n", + "annual direct O&M cost 17.32 16.07 5.45 \n", + "annual vessel cost 11.84 10.40 1.92 \n", "ctv cost 1.92 1.92 1.92 \n", - "fsv cost 0.27 0.19 0.00 \n", - "hlv cost 10.06 9.31 0.00 \n", + "fsv cost 0.27 0.22 0.00 \n", + "hlv cost 9.66 8.27 0.00 \n", "tow cost 0.00 0.00 0.00 \n", - "annual repair cost 4.27 4.17 1.89 \n", + "annual repair cost 3.88 4.07 1.93 \n", "annual technician cost 1.60 1.60 1.60 \n", "ctv utilization 1.00 1.00 1.00 \n", "fsv utilization 1.00 0.93 0.00 \n", - "hlv utilization 0.99 0.96 0.00 \n", + "hlv utilization 1.00 0.96 0.00 \n", "tow utilization 0.00 0.00 0.00 \n", "\n", " base_tow_to_port \n", @@ -461,15 +461,15 @@ "availability - production based 0.96 \n", "capacity factor - net 0.46 \n", "capacity factor - gross 0.48 \n", - "power production 9,620.49 \n", - "task completion rate 0.90 \n", - "annual direct O&M cost 12.86 \n", - "annual vessel cost 2.13 \n", + "power production 9,631.34 \n", + "task completion rate 0.93 \n", + "annual direct O&M cost 11.98 \n", + "annual vessel cost 2.09 \n", "ctv cost 1.92 \n", "fsv cost 0.00 \n", "hlv cost 0.00 \n", - "tow cost 0.21 \n", - "annual repair cost 7.14 \n", + "tow cost 0.18 \n", + "annual repair cost 6.28 \n", "annual technician cost 1.60 \n", "ctv utilization 1.00 \n", "fsv utilization 0.00 \n", diff --git a/examples/how_to.ipynb b/examples/how_to.ipynb index 321441ed..6d429045 100644 --- a/examples/how_to.ipynb +++ b/examples/how_to.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "6419de46", + "id": "8e5a10ac", "metadata": {}, "source": [ "# How To Use WOMBAT\n", @@ -19,7 +19,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "4603906f", + "id": "eb23074d", "metadata": {}, "outputs": [], "source": [ @@ -42,7 +42,7 @@ }, { "cell_type": "markdown", - "id": "e11f130d", + "id": "6fd19fc7", "metadata": {}, "source": [ "## Defining the Simulation\n", @@ -522,7 +522,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "c5cf8413", + "id": "5ff13dd4", "metadata": {}, "outputs": [], "source": [ @@ -531,7 +531,7 @@ }, { "cell_type": "markdown", - "id": "2e6c3f72", + "id": "c4869a25", "metadata": {}, "source": [ "### The configuration file\n", @@ -552,7 +552,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "9175d40c", + "id": "5ab7ebed", "metadata": {}, "outputs": [], "source": [ @@ -561,7 +561,7 @@ }, { "cell_type": "markdown", - "id": "f8aff3c5", + "id": "976d588b", "metadata": {}, "source": [ "```{code-block} yaml\n", @@ -605,7 +605,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "0d8f6170", + "id": "635d8f82", "metadata": {}, "outputs": [], "source": [ @@ -617,7 +617,7 @@ }, { "cell_type": "markdown", - "id": "5282e11d", + "id": "c086a01e", "metadata": {}, "source": [ "### Option 2: `Simulation()`\n", @@ -639,7 +639,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "387ffd28", + "id": "2934d795", "metadata": {}, "outputs": [], "source": [ @@ -651,7 +651,7 @@ }, { "cell_type": "markdown", - "id": "a996f429", + "id": "90fe0fb4", "metadata": {}, "source": [ "## Run the analysis\n", @@ -678,14 +678,14 @@ { "cell_type": "code", "execution_count": 6, - "id": "99697b5b", + "id": "dbf71a70", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Run time: 0.78 minutes\n" + "Run time: 0.81 minutes\n" ] } ], @@ -703,7 +703,7 @@ }, { "cell_type": "markdown", - "id": "3253f074", + "id": "1786a185", "metadata": {}, "source": [ "## Metric computation\n", @@ -715,7 +715,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "0cbb8493", + "id": "623c0b62", "metadata": {}, "outputs": [ { @@ -737,7 +737,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "6af5457b", + "id": "f8652c4e", "metadata": {}, "outputs": [ { @@ -770,7 +770,7 @@ }, { "cell_type": "markdown", - "id": "ab784af6", + "id": "8440317a", "metadata": {}, "source": [ "## Optional: Delete the logging files\n", @@ -781,7 +781,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "831c6a40", + "id": "8ee02167", "metadata": {}, "outputs": [], "source": [ diff --git a/examples/metrics_demonstration.ipynb b/examples/metrics_demonstration.ipynb index b305b377..a13265d2 100644 --- a/examples/metrics_demonstration.ipynb +++ b/examples/metrics_demonstration.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "915f2058", + "id": "ad049dd1", "metadata": {}, "source": [ "# Demonstration of the Available Metrics\n", @@ -15,7 +15,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "1a98ac3a", + "id": "4d281bb5", "metadata": { "tags": [ "output_scroll" @@ -44,7 +44,7 @@ }, { "cell_type": "markdown", - "id": "5d820649", + "id": "3571f11b", "metadata": {}, "source": [ "## Table of Contents\n", @@ -87,7 +87,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "74a9ae24", + "id": "b822dbb8", "metadata": { "tags": [ "output_scroll" @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "1cd7fe39", + "id": "ec262cbb", "metadata": {}, "source": [ "## Common Parameter Explanations\n", @@ -166,7 +166,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "12898cbf", + "id": "075cd29d", "metadata": { "tags": [ "output_scroll" @@ -178,23 +178,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
00.9700.97
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 3, @@ -209,7 +209,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "0617dd2a", + "id": "d2d53000", "metadata": { "tags": [ "output_scroll" @@ -221,23 +221,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
00.9700.97
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -251,7 +251,7 @@ }, { "cell_type": "markdown", - "id": "790dd1fb", + "id": "d379665d", "metadata": {}, "source": [ "Note that in the two above examples, that the values are equal. This is due to the fact that the example simulation does not have any operating reduction applied to failures, unless it's a catastrophic failure, so\n", @@ -261,7 +261,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "9eb82803", + "id": "7323ff22", "metadata": { "tags": [ "output_scroll" @@ -273,181 +273,181 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 S00T1S00T2S00T3S00T4S00T5S00T6S00T7S00T8S00T9S00T10S00T11S00T12S00T13S00T14S00T15S00T16S00T17S00T18S00T19S00T20S00T21S00T22S00T23S00T24S00T25S00T26S00T27S00T28S00T29S00T30S00T31S00T32S00T33S00T34S00T35S00T36S00T37S00T38S00T39S00T40S00T41S00T42S00T43S00T44S00T45S00T46S00T47S00T48S00T49S00T50S00T51S00T52S00T53S00T54S00T55S00T56S00T57S00T58S00T59S00T60S00T61S00T62S00T63S00T64S00T65S00T66S00T67S00T68S00T69S00T70S00T71S00T72S00T73S00T74S00T75S00T76S00T77S00T78S00T79S00T80S00T1S00T2S00T3S00T4S00T5S00T6S00T7S00T8S00T9S00T10S00T11S00T12S00T13S00T14S00T15S00T16S00T17S00T18S00T19S00T20S00T21S00T22S00T23S00T24S00T25S00T26S00T27S00T28S00T29S00T30S00T31S00T32S00T33S00T34S00T35S00T36S00T37S00T38S00T39S00T40S00T41S00T42S00T43S00T44S00T45S00T46S00T47S00T48S00T49S00T50S00T51S00T52S00T53S00T54S00T55S00T56S00T57S00T58S00T59S00T60S00T61S00T62S00T63S00T64S00T65S00T66S00T67S00T68S00T69S00T70S00T71S00T72S00T73S00T74S00T75S00T76S00T77S00T78S00T79S00T80
00.970.970.970.970.970.970.950.970.970.970.970.980.970.970.970.960.970.950.970.980.970.970.970.970.960.970.970.970.980.970.970.960.970.970.970.970.970.970.960.970.970.970.970.970.970.960.970.970.970.970.970.970.970.960.970.970.970.970.970.980.950.950.970.970.970.950.940.970.960.970.970.980.970.970.970.970.970.970.950.9600.970.970.970.970.970.970.970.970.970.980.970.970.970.970.970.960.970.970.970.960.970.970.970.970.970.970.970.950.970.970.960.970.970.930.970.970.970.970.970.960.970.970.960.980.970.970.960.970.970.980.970.970.970.950.970.970.970.970.970.970.970.950.970.960.970.970.960.970.970.970.950.950.980.970.960.970.970.970.950.96
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -463,7 +463,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "6d77f4d6", + "id": "a490aeb5", "metadata": { "tags": [ "output_scroll" @@ -475,11 +475,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -488,50 +488,50 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
year
20030.9920030.99
20040.9620040.97
20050.9720050.96
20060.9720060.97
20070.9720070.97
20080.9720080.96
20090.9720090.97
20100.9720100.97
20110.9720110.97
20120.9720120.97
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -547,7 +547,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "a9000bec", + "id": "444629c7", "metadata": { "tags": [ "output_scroll" @@ -559,11 +559,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -572,58 +572,58 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
month
10.9810.98
20.9720.97
30.9630.96
40.9640.96
50.9650.96
60.9660.96
70.9670.96
80.9680.96
90.9790.97
100.98100.98
110.98110.98
120.98120.98
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -639,7 +639,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "49df195d", + "id": "da679c81", "metadata": { "tags": [ "output_scroll" @@ -651,12 +651,12 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -666,500 +666,500 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
  windfarmwindfarm
year
200310.99200310.99
20.9920.98
30.9930.99
40.9940.99
50.9850.99
60.9760.99
70.9870.99
80.9880.97
90.9990.98
100.99100.99
110.99110.99
120.99120.99
200410.96200410.96
20.9520.96
30.9430.96
40.9540.96
50.9650.96
60.9660.96
70.9570.96
80.9580.96
90.9890.96
100.99100.97
110.99110.97
120.99120.98
200510.96200510.96
20.9520.95
30.9530.96
40.9540.95
50.9650.95
60.9660.95
70.9670.95
80.9780.95
90.9990.98
100.99100.99
110.99110.99
120.98120.98
200610.97200610.97
20.9520.96
30.9530.96
40.9640.95
50.9550.95
60.9560.94
70.9670.96
80.9680.96
90.9990.98
100.99100.99
110.98110.99
120.99120.98
200710.97200710.97
20.9620.95
30.9530.96
40.9540.96
50.9550.96
60.9660.96
70.9670.96
80.9680.96
90.9890.96
100.98100.98
110.97110.97
120.98120.98
200810.98200810.99
20.9720.96
30.9630.95
40.9640.95
50.9550.96
60.9560.96
70.9570.95
80.9680.95
90.9690.96
100.98100.99
110.99110.98
120.99120.98
200910.99200910.98
20.9720.97
30.9630.96
40.9640.96
50.9650.96
60.9660.96
70.9670.96
80.9580.96
90.9590.95
100.96100.97
110.99110.98
120.99120.98
201010.99201010.98
20.9920.98
30.9630.96
40.9540.95
50.9650.95
60.9660.96
70.9670.96
80.9680.96
90.9590.96
100.96100.97
110.98110.99
120.99120.99
201110.99201110.99
20.9920.99
30.9630.96
40.9540.96
50.9550.95
60.9660.95
70.9670.96
80.9680.96
90.9690.96
100.97100.97
110.98110.99
120.97120.96
201210.99201210.98
20.9920.99
30.9830.98
40.9640.96
50.9650.96
60.9660.96
70.9570.96
80.9580.96
90.9690.95
100.96100.96
110.97110.98
120.99120.98
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -1174,7 +1174,7 @@ }, { "cell_type": "markdown", - "id": "3283e742", + "id": "69cc9ad6", "metadata": {}, "source": [ "## Capacity Factor\n", @@ -1195,7 +1195,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "eec6c0c2", + "id": "8133749c", "metadata": { "tags": [ "output_scroll" @@ -1206,7 +1206,7 @@ "name": "stdout", "output_type": "stream", "text": [ - " Net capacity factor: 46.26%\n", + " Net capacity factor: 46.21%\n", "Gross capacity factor: 47.67%\n" ] } @@ -1220,7 +1220,7 @@ }, { "cell_type": "markdown", - "id": "ca813dd5", + "id": "60bd8a0e", "metadata": {}, "source": [ "## Task Completion Rate\n", @@ -1241,7 +1241,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "71b3727a", + "id": "4c91a13a", "metadata": { "tags": [ "output_scroll" @@ -1252,9 +1252,9 @@ "name": "stdout", "output_type": "stream", "text": [ - " Scheduled Task Completion Rate: 96.11%\n", - "Unscheduled Task Completion Rate: 99.87%\n", - " Overall Task Completion Rate: 99.58%\n" + " Scheduled Task Completion Rate: 96.53%\n", + "Unscheduled Task Completion Rate: 99.85%\n", + " Overall Task Completion Rate: 99.59%\n" ] } ], @@ -1269,7 +1269,7 @@ }, { "cell_type": "markdown", - "id": "8d408e5d", + "id": "f25bfc64", "metadata": {}, "source": [ "## Equipment Costs\n", @@ -1289,7 +1289,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "c198cb5e", + "id": "7e802957", "metadata": { "tags": [ "output_scroll" @@ -1301,23 +1301,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 equipment_costequipment_cost
090,214,942.42093,368,489.84
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 11, @@ -1333,7 +1333,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "b0b6c560", + "id": "a0fd1b57", "metadata": { "tags": [ "output_scroll" @@ -1345,31 +1345,31 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 Crew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift VesselCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift Vessel
06,391,000.006,391,000.006,391,000.002,166,621.2468,875,321.1806,391,000.006,391,000.006,391,000.002,447,597.4871,747,892.36
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 12, @@ -1384,7 +1384,7 @@ }, { "cell_type": "markdown", - "id": "b369281e", + "id": "9f306032", "metadata": {}, "source": [ "## Service Equipment Utilization Rate\n", @@ -1401,7 +1401,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "cb43c28b", + "id": "c98e736f", "metadata": { "tags": [ "output_scroll" @@ -1413,31 +1413,31 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 Crew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift VesselCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift Vessel
01.001.001.000.930.9501.001.001.000.930.95
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 13, @@ -1452,7 +1452,7 @@ }, { "cell_type": "markdown", - "id": "58965da9", + "id": "34def680", "metadata": {}, "source": [ "## Vessel-Crew Hours at Sea\n", @@ -1473,7 +1473,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "641a3438", + "id": "3a6b4647", "metadata": { "tags": [ "output_scroll" @@ -1485,23 +1485,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 Total Crew Hours at SeaTotal Crew Hours at Sea
0126,172.820127,471.78
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 14, @@ -1517,7 +1517,7 @@ { "cell_type": "code", "execution_count": 15, - "id": "3f1b267f", + "id": "1e361e4b", "metadata": { "tags": [ "output_scroll" @@ -1529,16 +1529,16 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1552,100 +1552,100 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 Total Crew Hours at SeaCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Field Support VesselHeavy Lift VesselTotal Crew Hours at SeaCrew Transfer Vessel 1Crew Transfer Vessel 2Crew Transfer Vessel 3Heavy Lift VesselField Support Vessel
year
20037,470.751,626.001,701.251,724.50602.001,817.00
200415,055.343,347.753,329.253,252.751,213.003,912.59
200512,348.953,267.753,271.003,241.25652.001,916.95
200613,297.863,197.253,199.253,204.000.003,697.36
200714,486.713,421.003,422.253,473.75639.343,530.38
200812,873.473,533.253,509.753,624.500.002,205.97
200913,021.463,564.503,503.253,626.25621.001,706.46
201012,700.003,392.003,422.753,384.00607.001,894.25
201112,715.613,360.753,360.503,407.25662.731,924.38
201212,202.663,468.503,499.253,474.250.001,760.6620037,476.251,697.001,688.501,718.751,725.50646.50
200413,059.653,720.253,659.003,683.501,996.900.00
200514,373.433,281.003,213.753,221.503,985.07672.11
200612,807.413,253.503,266.253,343.001,676.831,267.83
200714,011.873,526.503,382.503,449.753,653.120.00
200814,321.743,269.753,348.253,390.253,695.49618.00
200914,476.493,385.753,427.753,480.503,530.49652.00
201012,382.003,443.253,422.003,409.252,107.500.00
201113,245.703,394.753,422.753,357.501,928.251,142.45
201211,317.253,569.503,568.253,454.000.00725.50
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 15, @@ -1660,7 +1660,7 @@ }, { "cell_type": "markdown", - "id": "6891c356", + "id": "044a0551", "metadata": {}, "source": [ "## Number of Tows\n", @@ -1683,7 +1683,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "dd5cdfa8", + "id": "8019c0f3", "metadata": { "tags": [ "output_scroll" @@ -1695,23 +1695,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 total_towstotal_tows
0000
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 16, @@ -1727,7 +1727,7 @@ }, { "cell_type": "markdown", - "id": "7b0f7c45", + "id": "e9220727", "metadata": {}, "source": [ "## Labor Costs\n", @@ -1747,7 +1747,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "3189b01a", + "id": "bb0c3576", "metadata": { "tags": [ "output_scroll" @@ -1771,7 +1771,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "9f68d6fc", + "id": "a2997274", "metadata": { "tags": [ "output_scroll" @@ -1783,27 +1783,27 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 hourly_labor_costsalary_labor_costtotal_labor_costhourly_labor_costsalary_labor_costtotal_labor_cost
00000000
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 18, @@ -1819,7 +1819,7 @@ }, { "cell_type": "markdown", - "id": "25d5af4a", + "id": "9e294f63", "metadata": {}, "source": [ "## Equipment and Labor Costs\n", @@ -1849,7 +1849,7 @@ { "cell_type": "code", "execution_count": 19, - "id": "64fb0e43", + "id": "fd5861a7", "metadata": { "tags": [ "output_scroll" @@ -1861,11 +1861,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1874,42 +1874,42 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 total_costtotal_cost
reason
Maintenance3,024,127.60Maintenance3,037,289.06
Repair19,181,455.73Repair18,840,259.07
Crew Transfer1,143,552.08Crew Transfer1,141,625.00
Site Travel0.00Site Travel0.00
Mobilization6,500,000.00Mobilization6,500,000.00
Weather Delay25,435,914.53Weather Delay26,594,012.00
No Requests14,472,904.46No Requests16,682,026.60
Not in Shift20,456,988.02Not in Shift20,573,278.10
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 19, @@ -1925,7 +1925,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "5fa75264", + "id": "ec499560", "metadata": { "tags": [ "output_scroll" @@ -1937,15 +1937,15 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1958,74 +1958,74 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 hourly_labor_costsalary_labor_costtotal_labor_costequipment_costtotal_costhourly_labor_costsalary_labor_costtotal_labor_costequipment_costtotal_cost
reason
Maintenance0003,024,127.603,024,127.60Maintenance0003,037,289.063,037,289.06
Repair00019,181,455.7319,181,455.73Repair00018,840,259.0718,840,259.07
Crew Transfer0001,143,552.081,143,552.08Crew Transfer0001,141,625.001,141,625.00
Site Travel0000.000.00Site Travel0000.000.00
Mobilization0006,500,000.006,500,000.00Mobilization0006,500,000.006,500,000.00
Weather Delay00025,435,914.5325,435,914.53Weather Delay00026,594,012.0026,594,012.00
No Requests00014,472,904.4614,472,904.46No Requests00016,682,026.6016,682,026.60
Not in Shift00020,456,988.0220,456,988.02Not in Shift00020,573,278.1020,573,278.10
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 20, @@ -2040,7 +2040,7 @@ }, { "cell_type": "markdown", - "id": "6f70fb7a", + "id": "2b56ea1d", "metadata": {}, "source": [ "## Component Costs\n", @@ -2068,7 +2068,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "26681a17", + "id": "0d3784b5", "metadata": { "tags": [ "output_scroll" @@ -2080,11 +2080,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2093,14 +2093,14 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 total_costtotal_cost
component
turbine107,260,681.19turbine108,318,338.24
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 21, @@ -2116,7 +2116,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "159f330c", + "id": "96a8e046", "metadata": { "tags": [ "output_scroll" @@ -2128,15 +2128,15 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2149,32 +2149,32 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  materials_costtotal_labor_costequipment_costtotal_costmaterials_costtotal_labor_costequipment_costtotal_cost
component
turbinedelay0045,741,545.7845,741,545.78turbinedelay0047,024,665.1047,024,665.10
maintenance003,024,127.603,024,127.60maintenance003,037,289.063,037,289.06
repair0019,181,455.7319,181,455.73repair0018,840,259.0718,840,259.07
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 22, @@ -2189,7 +2189,7 @@ }, { "cell_type": "markdown", - "id": "9eeda99f", + "id": "1bf66376", "metadata": {}, "source": [ "## Fixed Cost Impacts\n", @@ -2208,7 +2208,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "ed0d2fd6", + "id": "ab26d796", "metadata": { "tags": [ "output_scroll" @@ -2243,7 +2243,7 @@ }, { "cell_type": "markdown", - "id": "c2e9232e", + "id": "52956b2f", "metadata": {}, "source": [ "**Example Usage**:" @@ -2252,7 +2252,8 @@ { "cell_type": "code", "execution_count": 24, - "id": "353b7515", + + "id": "54c5e00e", "metadata": { "tags": [ "output_scroll" @@ -2264,23 +2265,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 operationsoperations
016,013,230.75016,013,230.75
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -2298,7 +2299,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "7de633e8", + "id": "30ba9f7a", "metadata": { "tags": [ "output_scroll" @@ -2310,35 +2311,35 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 operations_management_administrationinsuranceannual_leases_feesoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelaboroperations_management_administrationinsuranceannual_leases_feesoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelabor
00.000.000.000.000.000.0016,013,230.7500.000.000.000.000.000.0016,013,230.75
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 25, @@ -2354,7 +2355,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "aa013edd", + "id": "ade25c50", "metadata": { "tags": [ "output_scroll" @@ -2366,51 +2367,51 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 project_management_administrationmarine_managementweather_forecastingcondition_monitoringbrokers_feeoperations_all_riskbusiness_interruptionthird_party_liabilitystorm_coveragesubmerge_land_lease_coststransmission_charges_rightsoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelaborproject_management_administrationmarine_managementweather_forecastingcondition_monitoringbrokers_feeoperations_all_riskbusiness_interruptionthird_party_liabilitystorm_coveragesubmerge_land_lease_coststransmission_charges_rightsoperating_facilitiesenvironmental_health_safety_monitoringonshore_electrical_maintenancelabor
00.000.000.000.000.000.000.000.000.000.000.000.000.000.0016,013,230.7500.000.000.000.000.000.000.000.000.000.000.000.000.000.0016,013,230.75
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 26, @@ -2425,7 +2426,7 @@ }, { "cell_type": "markdown", - "id": "59e795ab", + "id": "ca6f6cf6", "metadata": {}, "source": [ "## OpEx\n", @@ -2441,7 +2442,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "b0fc07e6", + "id": "fa4672ea", "metadata": { "tags": [ "output_scroll" @@ -2453,11 +2454,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2466,50 +2467,50 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 OpExOpEx
year
200311,366,345.82200310,692,976.76
200420,416,838.30200412,868,950.61
200512,364,720.63200522,293,942.56
200618,430,481.96200612,763,056.41
200716,112,377.46200717,834,138.21
200815,649,631.17200820,338,893.83
200912,322,537.97200914,910,931.89
201012,646,976.33201016,848,153.83
201113,140,776.45201112,612,934.61
201211,947,487.0720126,492,241.87
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -2523,7 +2524,7 @@ }, { "cell_type": "markdown", - "id": "5c50c60d", + "id": "6180ac75", "metadata": {}, "source": [ "## Process Times\n", @@ -2536,7 +2537,7 @@ { "cell_type": "code", "execution_count": 28, - "id": "248932f6", + "id": "c189c88b", "metadata": { "tags": [ "output_scroll" @@ -2548,14 +2549,15 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2563,56 +2565,63 @@ " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 time_to_completionprocess_timedowntimeNtime_to_completionprocess_timedowntimetime_to_startN
category    
annual service1,805,444.2397,113.5097,113.50720annual service1,808,167.7897,760.5097,760.501,676,666.26720
major repair74,420.422,255.752,255.7528major repair120,837.832,652.402,652.40118,275.0032
major replacement139,040.438,766.398,766.3952major replacement141,374.228,864.098,864.09127,685.5355
manual reset328,131.1842,130.0042,130.005,876manual reset342,975.1442,423.2542,423.25309,944.945,859
medium repair15,397.3210,266.5010,266.50209medium repair17,526.5810,964.5010,952.506,918.33217
minor repair104,113.7434,369.0034,369.002,307minor repair108,278.9035,275.0035,275.0075,850.062,349
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -2626,7 +2635,7 @@ }, { "cell_type": "markdown", - "id": "55c51905", + "id": "ecdea61f", "metadata": {}, "source": [ "## Power Production\n", @@ -2647,7 +2656,7 @@ { "cell_type": "code", "execution_count": 29, - "id": "62fadbec", + "id": "5b20c38e", "metadata": { "tags": [ "output_scroll" @@ -2659,23 +2668,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
Project Energy Production (kWh)9,733,332,312.00Project Energy Production (kWh)9,723,360,505.50
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 29, @@ -2691,7 +2700,7 @@ { "cell_type": "code", "execution_count": 30, - "id": "f1bc8d4a", + "id": "cb1f085e", "metadata": { "tags": [ "output_scroll" @@ -2703,23 +2712,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
Project Energy Production (MWh)9,733,332.31Project Energy Production (MWh)9,723,360.51
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 30, @@ -2735,7 +2744,7 @@ { "cell_type": "code", "execution_count": 31, - "id": "a3f0d88d", + "id": "20146f50", "metadata": { "tags": [ "output_scroll" @@ -2747,23 +2756,23 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 windfarmwindfarm
Project Energy Production (GWh)9,733.33Project Energy Production (GWh)9,723.36
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 31, @@ -2778,7 +2787,7 @@ }, { "cell_type": "markdown", - "id": "071bb68f", + "id": "8b8e38fc", "metadata": {}, "source": [ "## Net Present Value\n", @@ -2797,7 +2806,7 @@ { "cell_type": "code", "execution_count": 32, - "id": "37ee98b4", + "id": "73e2cf34", "metadata": { "tags": [ "output_scroll" @@ -2809,11 +2818,11 @@ "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2822,50 +2831,50 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
 OpExOpEx
year
200311,366,345.82200310,692,976.76
200420,416,838.30200412,868,950.61
200512,364,720.63200522,293,942.56
200618,430,481.96200612,763,056.41
200716,112,377.46200717,834,138.21
200815,649,631.17200820,338,893.83
200912,322,537.97200914,910,931.89
201012,646,976.33201016,848,153.83
201113,140,776.45201112,612,934.61
201211,947,487.0720126,492,241.87
\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 32, @@ -2879,7 +2888,7 @@ }, { "cell_type": "markdown", - "id": "058fc729", + "id": "9f643e62", "metadata": {}, "source": [ "## PySAM-Powered Results\n", @@ -2899,7 +2908,7 @@ { "cell_type": "code", "execution_count": 33, - "id": "03c6bbcb", + "id": "5bdf2e42", "metadata": { "tags": [ "raises-exception" @@ -2914,7 +2923,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[33], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_npv\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2082\u001b[0m, in \u001b[0;36mMetrics.pysam_npv\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2062\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax net present values (NPV).\u001b[39;00m\n\u001b[1;32m 2063\u001b[0m \n\u001b[1;32m 2064\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2079\u001b[0m \u001b[38;5;124;03m Final, project-level NPV, in $.\u001b[39;00m\n\u001b[1;32m 2080\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2081\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2082\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2083\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_npv()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2084\u001b[0m )\n\u001b[1;32m 2085\u001b[0m npv \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_npv\n\u001b[1;32m 2086\u001b[0m npv \u001b[38;5;241m=\u001b[39m npv[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2105\u001b[0m, in \u001b[0;36mMetrics.pysam_npv\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2085\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax net present values (NPV).\u001b[39;00m\n\u001b[1;32m 2086\u001b[0m \n\u001b[1;32m 2087\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2102\u001b[0m \u001b[38;5;124;03m Final, project-level NPV, in $.\u001b[39;00m\n\u001b[1;32m 2103\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2104\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2105\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2106\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_npv()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2107\u001b[0m )\n\u001b[1;32m 2108\u001b[0m npv \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_npv\n\u001b[1;32m 2109\u001b[0m npv \u001b[38;5;241m=\u001b[39m npv[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_npv()' cannot be calculated!" ] } @@ -2925,7 +2934,7 @@ }, { "cell_type": "markdown", - "id": "4ed47df4", + "id": "949c017b", "metadata": {}, "source": [ "### Real Levelized Cost of Energy (LCOE)" @@ -2934,7 +2943,7 @@ { "cell_type": "code", "execution_count": 34, - "id": "ae052dae", + "id": "df7a3c66", "metadata": { "tags": [ "raises-exception" @@ -2949,7 +2958,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[34], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_lcoe_real\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2110\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_real\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2090\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the real levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2091\u001b[0m \n\u001b[1;32m 2092\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2107\u001b[0m \u001b[38;5;124;03m Real LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2108\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2109\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2110\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2111\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_real()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2112\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2113\u001b[0m )\n\u001b[1;32m 2114\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_real \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2133\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_real\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2113\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the real levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2114\u001b[0m \n\u001b[1;32m 2115\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2130\u001b[0m \u001b[38;5;124;03m Real LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2131\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2133\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2134\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_real()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2135\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2136\u001b[0m )\n\u001b[1;32m 2137\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_real \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_lcoe_real()' cannot be calculated!" ] } @@ -2960,7 +2969,7 @@ }, { "cell_type": "markdown", - "id": "0a6cc2ff", + "id": "47becd33", "metadata": {}, "source": [ "### Nominal Levelized Cost of Energy (LCOE)" @@ -2969,7 +2978,7 @@ { "cell_type": "code", "execution_count": 35, - "id": "0dde35c2", + "id": "9ae52907", "metadata": { "tags": [ "raises-exception" @@ -2984,7 +2993,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[35], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_lcoe_nominal\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2137\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_nominal\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2117\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the nominal levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2118\u001b[0m \n\u001b[1;32m 2119\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2134\u001b[0m \u001b[38;5;124;03m Nominal LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2135\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2136\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2137\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2138\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_nominal()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2139\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2140\u001b[0m )\n\u001b[1;32m 2141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_nom \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2160\u001b[0m, in \u001b[0;36mMetrics.pysam_lcoe_nominal\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2140\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the nominal levelized cost of energy (LCOE) from PySAM.\u001b[39;00m\n\u001b[1;32m 2141\u001b[0m \n\u001b[1;32m 2142\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2157\u001b[0m \u001b[38;5;124;03m Nominal LCOE, in $/kW.\u001b[39;00m\n\u001b[1;32m 2158\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2159\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2160\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2161\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_lcoe_nominal()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2162\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2163\u001b[0m )\n\u001b[1;32m 2164\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mlcoe_nom \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m100.0\u001b[39m\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_lcoe_nominal()' cannot be calculated!" ] } @@ -2995,7 +3004,7 @@ }, { "cell_type": "markdown", - "id": "11b7fe56", + "id": "f6fe646b", "metadata": {}, "source": [ "### After-tax Internal Return Rate (IRR)" @@ -3004,7 +3013,7 @@ { "cell_type": "code", "execution_count": 36, - "id": "2ccdc3dc", + "id": "03677ced", "metadata": { "tags": [ "raises-exception" @@ -3019,7 +3028,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[36], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_irr\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2164\u001b[0m, in \u001b[0;36mMetrics.pysam_irr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2144\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax internal return rate (IRR).\u001b[39;00m\n\u001b[1;32m 2145\u001b[0m \n\u001b[1;32m 2146\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2161\u001b[0m \u001b[38;5;124;03m Annual after-tax IRR value, in %.\u001b[39;00m\n\u001b[1;32m 2162\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2163\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2164\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2165\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_irr()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2166\u001b[0m )\n\u001b[1;32m 2167\u001b[0m irr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_irr\n\u001b[1;32m 2168\u001b[0m irr \u001b[38;5;241m=\u001b[39m irr[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2187\u001b[0m, in \u001b[0;36mMetrics.pysam_irr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2167\u001b[0m \u001b[38;5;124;03m\"\"\"Returns the project-level after-tax internal return rate (IRR).\u001b[39;00m\n\u001b[1;32m 2168\u001b[0m \n\u001b[1;32m 2169\u001b[0m \u001b[38;5;124;03mSee here for more:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2184\u001b[0m \u001b[38;5;124;03m Annual after-tax IRR value, in %.\u001b[39;00m\n\u001b[1;32m 2185\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2186\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2187\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2188\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_irr()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2189\u001b[0m )\n\u001b[1;32m 2190\u001b[0m irr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model\u001b[38;5;241m.\u001b[39mOutputs\u001b[38;5;241m.\u001b[39mcf_project_return_aftertax_irr\n\u001b[1;32m 2191\u001b[0m irr \u001b[38;5;241m=\u001b[39m irr[\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39myears)]\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_irr()' cannot be calculated!" ] } @@ -3030,7 +3039,7 @@ }, { "cell_type": "markdown", - "id": "5e844acc", + "id": "866e421c", "metadata": {}, "source": [ "### Combined PySAM Outputs" @@ -3039,7 +3048,7 @@ { "cell_type": "code", "execution_count": 37, - "id": "f544d67c", + "id": "43809ef4", "metadata": { "tags": [ "raises-exception" @@ -3054,7 +3063,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[37], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpysam_all_outputs\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2195\u001b[0m, in \u001b[0;36mMetrics.pysam_all_outputs\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2172\u001b[0m \u001b[38;5;124;03m\"\"\"Returns all the possible PySAM outputs that are included in this module as\u001b[39;00m\n\u001b[1;32m 2173\u001b[0m \u001b[38;5;124;03mcolumns in the following order.\u001b[39;00m\n\u001b[1;32m 2174\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2192\u001b[0m \u001b[38;5;124;03m Project financial values values.\u001b[39;00m\n\u001b[1;32m 2193\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2194\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2195\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2196\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_all_outputs()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2197\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2198\u001b[0m )\n\u001b[1;32m 2199\u001b[0m financials \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2200\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_npv(),\n\u001b[1;32m 2201\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_nominal(),\n\u001b[1;32m 2202\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_real(),\n\u001b[1;32m 2203\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_irr(),\n\u001b[1;32m 2204\u001b[0m ]\n\u001b[1;32m 2205\u001b[0m descriptions \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2206\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax NPV ($)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2207\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNominal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2208\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2209\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax IRR (\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2210\u001b[0m ]\n", + "File \u001b[0;32m~/GitHub_Public/WOMBAT/wombat/core/post_processor.py:2218\u001b[0m, in \u001b[0;36mMetrics.pysam_all_outputs\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2195\u001b[0m \u001b[38;5;124;03m\"\"\"Returns all the possible PySAM outputs that are included in this module as\u001b[39;00m\n\u001b[1;32m 2196\u001b[0m \u001b[38;5;124;03mcolumns in the following order.\u001b[39;00m\n\u001b[1;32m 2197\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2215\u001b[0m \u001b[38;5;124;03m Project financial values values.\u001b[39;00m\n\u001b[1;32m 2216\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2217\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinancial_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2218\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 2219\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo SAM inputs were provided, and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpysam_all_outputs()\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m cannot\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2220\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m be calculated!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2221\u001b[0m )\n\u001b[1;32m 2222\u001b[0m financials \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2223\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_npv(),\n\u001b[1;32m 2224\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_nominal(),\n\u001b[1;32m 2225\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_lcoe_real(),\n\u001b[1;32m 2226\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpysam_irr(),\n\u001b[1;32m 2227\u001b[0m ]\n\u001b[1;32m 2228\u001b[0m descriptions \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 2229\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax NPV ($)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2230\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNominal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2231\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReal LCOE ($/kW)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2232\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAfter Tax IRR (\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 2233\u001b[0m ]\n", "\u001b[0;31mNotImplementedError\u001b[0m: No SAM inputs were provided, and 'pysam_all_outputs()' cannot be calculated!" ] } diff --git a/examples/strategy_demonstration.ipynb b/examples/strategy_demonstration.ipynb index 40a42fad..872d164c 100644 --- a/examples/strategy_demonstration.ipynb +++ b/examples/strategy_demonstration.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b6887b60", + "id": "26631dc7", "metadata": {}, "source": [ "# Servicing Strategies\n", @@ -43,7 +43,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "feaba6d6", + "id": "469f4bdd", "metadata": {}, "outputs": [], "source": [ @@ -62,7 +62,7 @@ }, { "cell_type": "markdown", - "id": "fd6255f6", + "id": "04f673bc", "metadata": {}, "source": [ "## Simulation and results setup\n", @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "9929708b", + "id": "1d9bb2c8", "metadata": {}, "outputs": [], "source": [ @@ -116,7 +116,7 @@ }, { "cell_type": "markdown", - "id": "ba36ef23", + "id": "23499abb", "metadata": {}, "source": [ "## Run the simulations and display the results" @@ -125,7 +125,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "1e8c6ffd", + "id": "c4e30ff7", "metadata": {}, "outputs": [ { @@ -162,22 +162,22 @@ " \n", " base_scheduled\n", " 0.03\n", - " 0.65\n", + " 0.69\n", " \n", " \n", " base_requests\n", " 0.03\n", - " 0.80\n", + " 0.84\n", " \n", " \n", " base_downtime\n", " 0.03\n", - " 0.70\n", + " 0.75\n", " \n", " \n", " base_tow_to_port\n", " 0.03\n", - " 1.34\n", + " 1.37\n", " \n", " \n", "\n", @@ -186,10 +186,10 @@ "text/plain": [ " Load Time (min) Run Time (min)\n", "Scenario \n", - "base_scheduled 0.03 0.65\n", - "base_requests 0.03 0.80\n", - "base_downtime 0.03 0.70\n", - "base_tow_to_port 0.03 1.34" + "base_scheduled 0.03 0.69\n", + "base_requests 0.03 0.84\n", + "base_downtime 0.03 0.75\n", + "base_tow_to_port 0.03 1.37" ] }, "execution_count": 3, @@ -274,7 +274,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "12c5ae4c", + "id": "d9d16576", "metadata": {}, "outputs": [ { @@ -335,31 +335,31 @@ " \n", " \n", " power production\n", - " 9,760.78\n", - " 9,719.20\n", - " 9,777.28\n", - " 9,620.49\n", + " 9,765.09\n", + " 9,713.69\n", + " 9,778.04\n", + " 9,631.34\n", " \n", " \n", " task completion rate\n", " 0.99\n", + " 1.00\n", " 0.99\n", - " 0.99\n", - " 0.90\n", + " 0.93\n", " \n", " \n", " annual direct O&M cost\n", - " 18.12\n", - " 17.19\n", - " 5.41\n", - " 12.86\n", + " 17.32\n", + " 16.07\n", + " 5.45\n", + " 11.98\n", " \n", " \n", " annual vessel cost\n", - " 12.24\n", - " 11.42\n", + " 11.84\n", + " 10.40\n", " 1.92\n", - " 2.13\n", + " 2.09\n", " \n", " \n", " ctv cost\n", @@ -371,14 +371,14 @@ " \n", " fsv cost\n", " 0.27\n", - " 0.19\n", + " 0.22\n", " 0.00\n", " 0.00\n", " \n", " \n", " hlv cost\n", - " 10.06\n", - " 9.31\n", + " 9.66\n", + " 8.27\n", " 0.00\n", " 0.00\n", " \n", @@ -387,14 +387,14 @@ " 0.00\n", " 0.00\n", " 0.00\n", - " 0.21\n", + " 0.18\n", " \n", " \n", " annual repair cost\n", - " 4.27\n", - " 4.17\n", - " 1.89\n", - " 7.14\n", + " 3.88\n", + " 4.07\n", + " 1.93\n", + " 6.28\n", " \n", " \n", " annual technician cost\n", @@ -419,7 +419,7 @@ " \n", " \n", " hlv utilization\n", - " 0.99\n", + " 1.00\n", " 0.96\n", " 0.00\n", " 0.00\n", @@ -441,19 +441,19 @@ "availability - production based 0.97 0.97 0.97 \n", "capacity factor - net 0.46 0.46 0.46 \n", "capacity factor - gross 0.48 0.48 0.48 \n", - "power production 9,760.78 9,719.20 9,777.28 \n", - "task completion rate 0.99 0.99 0.99 \n", - "annual direct O&M cost 18.12 17.19 5.41 \n", - "annual vessel cost 12.24 11.42 1.92 \n", + "power production 9,765.09 9,713.69 9,778.04 \n", + "task completion rate 0.99 1.00 0.99 \n", + "annual direct O&M cost 17.32 16.07 5.45 \n", + "annual vessel cost 11.84 10.40 1.92 \n", "ctv cost 1.92 1.92 1.92 \n", - "fsv cost 0.27 0.19 0.00 \n", - "hlv cost 10.06 9.31 0.00 \n", + "fsv cost 0.27 0.22 0.00 \n", + "hlv cost 9.66 8.27 0.00 \n", "tow cost 0.00 0.00 0.00 \n", - "annual repair cost 4.27 4.17 1.89 \n", + "annual repair cost 3.88 4.07 1.93 \n", "annual technician cost 1.60 1.60 1.60 \n", "ctv utilization 1.00 1.00 1.00 \n", "fsv utilization 1.00 0.93 0.00 \n", - "hlv utilization 0.99 0.96 0.00 \n", + "hlv utilization 1.00 0.96 0.00 \n", "tow utilization 0.00 0.00 0.00 \n", "\n", " base_tow_to_port \n", @@ -461,15 +461,15 @@ "availability - production based 0.96 \n", "capacity factor - net 0.46 \n", "capacity factor - gross 0.48 \n", - "power production 9,620.49 \n", - "task completion rate 0.90 \n", - "annual direct O&M cost 12.86 \n", - "annual vessel cost 2.13 \n", + "power production 9,631.34 \n", + "task completion rate 0.93 \n", + "annual direct O&M cost 11.98 \n", + "annual vessel cost 2.09 \n", "ctv cost 1.92 \n", "fsv cost 0.00 \n", "hlv cost 0.00 \n", - "tow cost 0.21 \n", - "annual repair cost 7.14 \n", + "tow cost 0.18 \n", + "annual repair cost 6.28 \n", "annual technician cost 1.60 \n", "ctv utilization 1.00 \n", "fsv utilization 0.00 \n", diff --git a/wombat/__init__.py b/wombat/__init__.py index 7a5b54f2..af5c4695 100644 --- a/wombat/__init__.py +++ b/wombat/__init__.py @@ -4,4 +4,4 @@ from wombat.core.library import create_library_structure -__version__ = "0.7.0" +__version__ = "0.7.1" diff --git a/wombat/core/environment.py b/wombat/core/environment.py index 0f09b274..a63b4a70 100644 --- a/wombat/core/environment.py +++ b/wombat/core/environment.py @@ -425,8 +425,16 @@ def _weather_setup( timestamp_parsers=[ "%m/%d/%y %H:%M", "%m/%d/%y %I:%M", + "%m/%d/%y %H:%M:%S", + "%m/%d/%y %I:%M:%S", "%m/%d/%Y %H:%M", "%m/%d/%Y %I:%M", + "%m/%d/%Y %H:%M:%S", + "%m/%d/%Y %I:%M:%S", + "%Y-%m-%d %H:%M", + "%Y-%m-%d %I:%M", + "%Y-%m-%d %H:%M:%S", + "%Y-%m-%d %I:%M:%S", ] ) weather = ( diff --git a/wombat/core/post_processor.py b/wombat/core/post_processor.py index 9a80f6d0..46324d39 100644 --- a/wombat/core/post_processor.py +++ b/wombat/core/post_processor.py @@ -1905,6 +1905,26 @@ def process_times(self) -> pd.DataFrame: .sort_index() ) + # Summarize the time to first repair/maintenance activity + submitted_df = ( + events_valid.loc[ + events_valid.action.isin(("repair request", "maintenance request")), + ["request_id", "env_time"], + ] + .set_index("request_id") + .sort_index() + ) + action_df = ( + events_valid.loc[ + events_valid.action.isin(("repair", "maintenance")), + ["request_id", "env_time"], + ] + .groupby("request_id") + .min() + .sort_index() + ) + time_to_repair_df = action_df.subtract(submitted_df, axis="index") + # Create the timing dataframe timing = pd.DataFrame([], index=request_df_min.index) timing = timing.join(reason_df[["reason"]]).rename( @@ -1925,6 +1945,9 @@ def process_times(self) -> pd.DataFrame: .diff(axis=1)[["env_time_max"]] .rename(columns={"env_time_max": "downtime"}) ) + timing = timing.join( + time_to_repair_df.rename(columns={"env_time": "time_to_start"}) + ) timing["N"] = 1 # Return only the categorically summed data