{ "cells": [ { "cell_type": "markdown", "id": "e3892781", "metadata": {}, "source": [ "(advanced-tunnel)=\n", "# Advanced tunnel example\n", "\n", "This example will guide you through how to model more complex [](tunnel) networks in SHOP by implementing the topology shown in Figure 1. The system has three [reservoirs](reservoir), one [](plant) with two [generators](generator), and a plant with a single [](pump). All objects in the system are connected through a tunnel network. Reservoir 1 and Reservoir 2 are identical in size and elevation, but Reservoir 1 is closer to the generating plant in terms of the loss factor of the tunnel between the reservoir and plant. Reservoir 3 is only used to refill Reservoir 1 and Reservoir 2 through pumping the water directly into the tunnel network, close to Reservoir 2. In addition, there is an adjustable gate between the node and Reservoir 2 which can be closed to force all the pumped water into Reservoir 1 (and Plant 1 if it is running at the same time). When the gate is open, the water pumped into the tunnel network will be split among Reservoir 1 and Reservoir 2 (assuming Plant 1 is not operating), where most will end up in Reservoir 2 due to the loss factors in the tunnel network.\n", "\n", "|![](advanced_tunnel_drawing.png)|\n", "|---|\n", "| Figure 1: Topology of a more advanced tunnel network system. |\n", "\n", "\n", "The intersections connecting multiple tunnels are indicated with black dots in Figure 1, one right above Plant 1 and one named \"Node\" where the pumped water will enter. Note that these nodes are not represented as explicit objects in SHOP and should not be confused with the old [](junction) object. \n", "\n", "The corresponding SHOP model is defined in the build_model() function in the advanced_tunnel_model.py script, which is imported together with other packages below:" ] }, { "cell_type": "code", "execution_count": 1, "id": "a82fd7ad", "metadata": {}, "outputs": [], "source": [ "from pyshop import ShopSession\n", "import pandas as pd\n", "import plotly.graph_objects as go\n", "from plotly.subplots import make_subplots\n", "\n", "from advanced_tunnel_model import build_model" ] }, { "cell_type": "markdown", "id": "ae6489b8", "metadata": {}, "source": [ "The resulting topology is shown below:" ] }, { "cell_type": "code", "execution_count": 2, "id": "32a48c3d", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "reservoir_rsv1\n", "\n", "rsv1\n", "\n", "\n", "\n", "river_spill_rsv1\n", "\n", "spill_rsv1\n", "\n", "\n", "\n", "reservoir_rsv1->river_spill_rsv1\n", "\n", "\n", "\n", "\n", "tunnel_rsv1_plant1\n", "\n", "rsv1_plant1\n", "\n", "\n", "\n", "reservoir_rsv1->tunnel_rsv1_plant1\n", "\n", "\n", "\n", "\n", "reservoir_rsv2\n", "\n", "rsv2\n", "\n", "\n", "\n", "river_spill_rsv2\n", "\n", "spill_rsv2\n", "\n", "\n", "\n", "reservoir_rsv2->river_spill_rsv2\n", "\n", "\n", "\n", "\n", "tunnel_rsv2_node\n", "\n", "rsv2_node\n", "\n", "\n", "\n", "reservoir_rsv2->tunnel_rsv2_node\n", "\n", "\n", "\n", "\n", "reservoir_rsv3\n", "\n", "rsv3\n", "\n", "\n", "\n", "river_spill_rsv3\n", "\n", "spill_rsv3\n", "\n", "\n", "\n", "reservoir_rsv3->river_spill_rsv3\n", "\n", "\n", "\n", "\n", "plant_plant1\n", "\n", "plant1\n", "\n", "\n", "\n", "plant_plant2\n", "\n", "plant2\n", "\n", "\n", "\n", "plant_plant2->reservoir_rsv3\n", "\n", "\n", "\n", "\n", "tunnel_rsv1_plant1->plant_plant1\n", "\n", "\n", "\n", "\n", "tunnel_node_plant1\n", "\n", "node_plant1\n", "\n", "\n", "\n", "tunnel_node_plant1->plant_plant1\n", "\n", "\n", "\n", "\n", "tunnel_rsv2_node->tunnel_node_plant1\n", "\n", "\n", "\n", "\n", "tunnel_node_plant2\n", "\n", "node_plant2\n", "\n", "\n", "\n", "tunnel_rsv2_node->tunnel_node_plant2\n", "\n", "\n", "\n", "\n", "tunnel_node_plant2->plant_plant2\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop = build_model()\n", "shop.model.build_connection_tree()" ] }, { "cell_type": "markdown", "id": "4010beed", "metadata": {}, "source": [ "Note that the tunnel from Reservoir 1 and from the Node are connected directly to Plant 1, which assumes that the tunnel loss from the intersection above the plant is covered in the [main_loss](plant:main_loss) attribute on the plant. In this case, the main loss is set to zero. All reservoirs have connected [](river) objects that will serve as spillways to the ocean if the reservoirs are overflowing. \n", "\n", "The model is initialized with historical spot prices from NO1 and a slightly higher water value for Reservoir 1 compared to Reservoir 2. Reservoir 3 has a lower water value than the other reservoirs, which means that it could be beneficial to pump the water if the prices are low enough. There is zero inflow into Reservoir 1 and Reservoir 2, while Reservoir 3 has a constant inflow of 20 m3/s.\n", "\n", "The loss factors in the four tunnels are printed below. Note that the loss from the Reservoir 2 down to Plant 1 through the tunnels \"rsv2_node\" and \"node_plant1\" is substantially higher than the loss from Reservoir 1 down to Plant 1 (\"rsv1_plant1\")." ] }, { "cell_type": "code", "execution_count": 3, "id": "d37cb19c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rsv1_plant1 0.002\n", "node_plant1 0.004\n", "rsv2_node 0.001\n", "node_plant2 0.001\n" ] } ], "source": [ "for t in shop.model.tunnel:\n", " print(t.get_name(), t.loss_factor.get())" ] }, { "cell_type": "markdown", "id": "9d30be4c", "metadata": {}, "source": [ "## Open gate\n", "\n", "The base model does not contain any gate in the tunnel as indicated in Figure 1. This means that the tunnel \"rsv2_node\" is always open in this first model run:" ] }, { "cell_type": "code", "execution_count": 4, "id": "1c8fa2a8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open tunnel objective: -659639.1644133304\n" ] } ], "source": [ "#Run a standard optimization\n", "\n", "shop.set_universal_mip(\"off\",[])\n", "shop.start_sim([],[3])\n", "shop.set_universal_mip(\"on\",[])\n", "shop.start_sim([],[2])\n", "shop.set_code(['incremental'], [])\n", "shop.start_sim([],[5])\n", "\n", "open_tunnel_objective = shop.model.objective.average_objective.total.get()\n", "print(\"Open tunnel objective:\",open_tunnel_objective)" ] }, { "cell_type": "markdown", "id": "4af016a9", "metadata": {}, "source": [ "The figures below show that Plant 1 produces power when the prices are high, while some pumping from Plant 2 occurs in the low price hours. As the reservoir levels indicate, most of the water for production is drawn from Reservoir 1 due to the relatively high tunnel losses from Reservoir 2 down to Plant 1. Note that SHOP does not \"want\" to draw more water from Reservoir 1 since this has a higher water value, it is simply the physics of the tunnel network (mass and pressure balance) that enforces this behaviour:" ] }, { "cell_type": "code", "execution_count": 5, "id": "3a8973bd", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "Plant 1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 78.60671447386856, 78.45986668019985, 78.31302147348858, 78.16618013562005, 78.01934390465746, 77.8725139761514, 77.7256915044084, 77.57887760371926, 77.43207334954899, 77.2852797796894, 76.73380230066992, 62.44826186951205, 56.96770544856805, 0.0, 0.0, 0.0, 0.0, 0.0, 76.89801910544587, 76.76705145554126, 76.62029876298894, 76.47356073482248, 76.32683822988045, 72.99967529761683, 56.382401405053216, 56.309308032853885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.27157824523995, 56.19833049345, 56.12509855835354, 56.05188297065422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.23202436022676, 75.72058125581127, 75.57390078402466, 75.42723858749851, 75.28059539191932, 55.74755503774912, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.10825754538537, 56.03534186636121, 0.0, 0.0, 0.0, 0.0, 56.14095925434685, 75.59714557135557, 75.45062993611023, 75.3041376539117, 75.15766925290833, 75.01122523966514, 74.86480609979397, 74.71841229856551 ] }, { "name": "Plant 2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -45.34277934734148, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -43.358126362931756, -43.67168845495549, -43.98445345006394, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -43.272238356677114, -43.58452678477643, -43.89600953313352, -44.20669059250734, -44.51657458223678, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -49.99927466974842, -44.4710102028904, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0 ] }, { "name": "Price", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "xaxis": "x", "y": [ 189.12, 187.39000000000001, 184.27, 179.78, 178.54000000000002, 184.03, 184.95000000000002, 185.18, 184.42000000000002, 178.4, 172.78, 169.99, 159.03, 151.01000000000002, 145.76000000000002, 140.70000000000002, 91.14, 151.31, 173.18, 184.13, 187.78, 187.19, 182.69, 172.39000000000001, 166.76000000000002, 158.85000000000002, 148.35000000000002, 144.24, 144.54000000000002, 144.57000000000002, 150.92000000000002, 148.76000000000002, 153.59, 159.29000000000002, 159.85000000000002, 161.07000000000002, 150.0, 127.21, 97.24, 70.02, 93.63, 107.46, 166.73000000000002, 182.44, 185.4, 185.41, 179.98000000000002, 163.29000000000002, 108.11999999999999, 83.67, 86.77, 83.67, 88.05999999999999, 95.25, 131.0, 148.9, 144.14000000000001, 151.96, 158.75, 153.20000000000002, 151.3, 130.01000000000002, 50.010000000000005, 77.6, 154.45000000000002, 175.79000000000002, 179.12, 186.70000000000002, 194.3, 202.3, 201.24, 195.53 ], "yaxis": "y2" } ], "layout": { "barmode": "stack", "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Production and market price" }, "xaxis": { "anchor": "y", "domain": [ 0.0, 0.94 ] }, "yaxis": { "anchor": "x", "domain": [ 0.0, 1.0 ], "title": { "text": "Production [MW]" } }, "yaxis2": { "anchor": "x", "overlaying": "y", "side": "right", "title": { "text": "Energy price [€/MWh]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "Rsv 1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00", "2022-04-19T00:00:00" ], "y": [ 95.0, 94.81652703102162, 94.63336834968312, 94.4505207006831, 94.26798086869479, 94.08574567774086, 93.90381199058108, 93.72217670811234, 93.54083676878085, 93.35978914800606, 93.1790308576161, 92.99982594080994, 92.85961048080884, 92.73302927257768, 92.76360588979976, 92.79292078311957, 92.82097498681921, 92.90397349215151, 92.93306147434328, 92.75269891951852, 92.57256943531277, 92.39271993100724, 92.2131475657457, 92.03384953231483, 91.86481748561124, 91.73989668236372, 91.61519700051325, 91.65120743274228, 91.68595251586248, 91.71943299266165, 91.75164966165762, 91.78260338357205, 91.81229508884317, 91.68530191048455, 91.55855833157516, 91.43206089572354, 91.305806201545, 91.33738709231571, 91.36770549508256, 91.45136778366138, 91.53569159241961, 91.6206653462673, 91.65560805286442, 91.53029591944271, 91.35139924877514, 91.17277008566595, 90.9944057361992, 90.81630353793749, 90.69266203594296, 90.73142178697339, 90.81797678813999, 90.90514347721785, 90.99291157194276, 91.08127104730727, 91.17021212603126, 91.2148854867011, 91.25828954423076, 91.300424779175, 91.3412917008781, 91.2181865388334, 91.09527795246474, 91.13584272912506, 91.17513986714808, 91.26774395735401, 91.35517820679716, 91.23272916660413, 91.05589663018324, 90.87931092849936, 90.70296960685148, 90.52687023858549, 90.35101042469934, 90.17538779345549, 90.0 ] }, { "name": "Rsv 2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00", "2022-04-19T00:00:00" ], "y": [ 95.0, 94.88347296897838, 94.76663165031688, 94.6494792993169, 94.53201913130522, 94.41425432225914, 94.29618800941893, 94.17782329188765, 94.05916323121915, 93.94021085199395, 93.8209691423839, 93.70220957774485, 93.6062742332799, 93.51785544151106, 93.48727882428898, 93.45796393096917, 93.42990972726953, 93.61691122193724, 93.58782323974548, 93.46826561222255, 93.3483950964283, 93.22824460073383, 93.10781696599537, 92.98711499942625, 92.8720661913759, 92.78198699462341, 92.69168667647388, 92.65567624424486, 92.62093116112464, 92.58745068432549, 92.55523401532952, 92.52428029341507, 92.49458858814396, 92.40658176650257, 92.31832534541196, 92.22982278126358, 92.14107747544213, 92.10949658467142, 92.07917818190457, 92.26551589332574, 92.45119208456752, 92.63621833071983, 92.60127562412269, 92.51158775754442, 92.39048442821199, 92.26911359132119, 92.14747794078792, 92.02558013904965, 91.93422164104418, 91.89546189001375, 92.07890688884714, 92.26174019976928, 92.44397210504438, 92.62561262967985, 92.80667155095587, 92.76199819028602, 92.71859413275635, 92.67645889781213, 92.63559197610903, 92.54369713815373, 92.4516057245224, 92.41104094786206, 92.37174380983905, 92.57118571732265, 92.75375146787951, 92.66120050807253, 92.53803304449342, 92.4146187461773, 92.29096006782517, 92.16705943609118, 92.04291924997732, 91.91854188122117, 91.79392967467666 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Reservoir levels" }, "yaxis": { "title": { "text": "Level [masl]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot production/consumption and market price\n", "fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n", "fig.update_layout(barmode=\"stack\", title=\"Production and market price\")\n", "fig.update_yaxes(title_text=\"Energy price [€/MWh]\", secondary_y=True)\n", "fig.update_yaxes(title_text=\"Production [MW]\", secondary_y=False)\n", "\n", "plant1_prod = shop.model.plant.plant1.production.get()\n", "plant2_cons = shop.model.plant.plant2.consumption.get()\n", "price = shop.model.market.spot.sale_price.get()\n", "fig.add_trace(go.Scatter(x=plant1_prod.index, y=plant1_prod.values, name=\"Plant 1\"))\n", "fig.add_trace(go.Scatter(x=plant2_cons.index, y=-plant2_cons.values, name=\"Plant 2\"))\n", "fig.add_trace(go.Scatter(x=price.index, y=price.values, name=\"Price\"),secondary_y=True)\n", "fig.show()\n", "\n", "#Plot reservoir levels of Reservoir 1 and 2\n", "fig = go.Figure()\n", "rsv1_head = shop.model.reservoir.rsv1.head.get()\n", "rsv2_head = shop.model.reservoir.rsv2.head.get()\n", "fig.add_trace(go.Scatter(x=rsv1_head.index, y=rsv1_head.values, name=\"Rsv 1\"))\n", "fig.add_trace(go.Scatter(x=rsv2_head.index, y=rsv2_head.values, name=\"Rsv 2\"))\n", "fig.update_layout(title=\"Reservoir levels\")\n", "fig.update_yaxes(title_text=\"Level [masl]\")\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "822be0ed", "metadata": {}, "source": [ "The [flow](tunnel:flow) in the tunnel network is shown below, and confirms that most of the pumped water ends up in Reservoir 2 instead of Reservoir 1. The split is about 70/30, which is again due to the mass and pressure balance of the tunnel network at each point in time.\n", "\n", "Note that the tunnel flow does not deviate from the post-calculated [physical flow](tunnel:physical_flow) attribute, which means that the linearization of the tunnel network equations is stable." ] }, { "cell_type": "code", "execution_count": 6, "id": "6db53098", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "rsv1_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 61.157656326125704, 61.05289377950081, 60.94921633333939, 60.846610662771965, 60.7450636513102, 60.64456238659318, 60.54509415624341, 60.44664644383006, 60.34920692493513, 60.25276346331994, 59.73497226871656, 46.738486667035, 42.193736077052286, -10.192205740696291, -9.771631106599207, -9.351401233214709, -27.666168444097295, -9.695994063923894, 60.12085160825177, 60.04316140191829, 59.94983476850827, 59.8574550871778, 59.766011143626564, 56.34401556786277, 41.64026774917177, 41.56656061682326, -12.003477409674895, -11.581694373401124, -11.160158933054896, -10.738889665323509, -10.317907304810651, -9.897235090373918, 42.331059452870946, 42.24785963646639, 42.165811950538675, 42.08489805951313, -10.5269635902366, -10.106134255614565, -27.88742952627579, -28.107936252741528, -28.32458461589869, -11.647568865708182, 41.77071114057425, 59.63222355585735, 59.5430543697288, 59.45478315558113, 59.36739942057458, 41.21383399817559, -12.919917010141875, -28.851667055535316, -29.05556302595423, -29.25603157496797, -29.453158454841677, -29.647026241327833, -14.891120223282087, -14.468019176555035, -14.045078314743776, -13.62230723436712, 41.03505401490093, 40.96952878955364, -13.521592220106918, -13.099046007673858, -30.8680300686428, -29.14474981438209, 40.816346731007364, 58.9441788069631, 58.86190056129149, 58.780440549293864, 58.699789422001544, 58.61993796204633, 58.54087708128776, 58.46259781849403 ] }, { "name": "node_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 38.84234367387429, 38.94710622049918, 39.05078366666061, 39.15338933722803, 39.2549363486898, 39.355437613406835, 39.4549058437566, 39.55335355616994, 39.650793075064875, 39.747236536680056, 39.586521546353936, 31.9784481549808, 29.47293058961448, 10.19220574069629, 9.771631106599207, 9.351401233214707, 27.666168444097288, 9.695994063923893, 39.852542507636805, 39.9568385980817, 40.05016523149173, 40.1425449128222, 40.23398885637344, 38.349602683452744, 30.026398917494898, 30.100106049843397, 12.003477409674893, 11.581694373401126, 11.160158933054896, 10.738889665323509, 10.317907304810651, 9.897235090373918, 29.33560721379572, 29.418807030200274, 29.50085471612799, 29.581768607153528, 10.5269635902366, 10.106134255614567, 27.887429526275785, 28.107936252741528, 28.324584615898697, 11.647568865708182, 29.89595552609241, 40.367776444142656, 40.4569456302712, 40.545216844418874, 40.63260057942542, 30.45283266849108, 12.919917010141875, 28.851667055535312, 29.05556302595423, 29.25603157496797, 29.453158454841677, 29.647026241327833, 14.891120223282087, 14.468019176555035, 14.045078314743776, 13.62230723436712, 30.63161265176573, 30.697137877113015, 13.521592220106918, 13.09904600767386, 30.8680300686428, 29.14474981438209, 30.850319935659293, 41.055821193036905, 41.13809943870851, 41.219559450706136, 41.300210577998456, 41.380062037953685, 41.45912291871223, 41.53740218150597 ] }, { "name": "rsv2_node", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 38.84234367387429, 38.94710622049918, 39.05078366666061, 39.15338933722803, 39.2549363486898, 39.35543761340683, 39.454905843756606, 39.55335355616994, 39.650793075064875, 39.74723653668006, 39.586521546353815, 31.97844815498068, 29.47293058961437, 10.192205740696291, 9.771631106599207, 9.351401233214709, -62.33383155590271, 9.695994063923894, 39.8525425076368, 39.9568385980817, 40.05016523149173, 40.14254491282221, 40.23398885637343, 38.349602683452744, 30.0263989174949, 30.100106049843397, 12.003477409674895, 11.581694373401124, 11.160158933054896, 10.738889665323509, 10.317907304810651, 9.897235090373918, 29.33560721379572, 29.418807030200277, 29.500854716127993, 29.58176860715353, 10.5269635902366, 10.106134255614565, -62.11257047372422, -61.89206374725847, -61.6754153841013, 11.647568865708182, 29.895955526092408, 40.367776444142656, 40.4569456302712, 40.54521684441887, 40.63260057942542, 30.45283266849108, 12.919917010141875, -61.14833294446468, -60.944436974045765, -60.74396842503203, -60.54684154515832, -60.352973758672164, 14.891120223282087, 14.468019176555035, 14.045078314743776, 13.62230723436712, 30.63161265176573, 30.69713787711301, 13.521592220106918, 13.099046007673858, -66.48063582786912, -60.8552501856179, 30.8503199356593, 41.0558211930369, 41.1380994387085, 41.219559450706136, 41.300210577998456, 41.38006203795368, 41.45912291871223, 41.53740218150597 ] }, { "name": "node_plant2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -90.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -90.0, -90.0, -90.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -90.0, -90.0, -90.0, -90.0, -90.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -97.34866589651196, -90.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Tunnel flow" }, "yaxis": { "title": { "text": "Flow [m3/s]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "rsv1_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, -7.105427357601002e-15, -7.105427357601002e-15, -1.4210854715202004e-14, 7.105427357601002e-15, 2.842170943040401e-14, 0.0, 1.4210854715202004e-14, -2.1316282072803006e-14, 1.2079226507921703e-13, 2.842170943040401e-14, 0.0, 2.7608137997958693e-11, -8.642331295050099e-11, -9.617018292829016e-11, 8.206768598029157e-13, 7.480771557766275e-11, 2.716404878810863e-11, -1.7053025658242404e-13, -1.7053025658242404e-13, -1.4210854715202004e-13, -1.7763568394002505e-13, -1.9895196601282805e-13, -3.481659405224491e-13, -3.055333763768431e-13, -2.382094521635736e-12, -4.5416115312946204e-11, -4.857270141656045e-11, -5.085531995518977e-11, 4.7696957494736125e-11, 4.9469761620457575e-11, 1.4921397450962104e-13, 1.5631940186722204e-13, 1.7763568394002505e-13, 1.7053025658242404e-13, 2.6558311105873145e-11, -6.322231627109431e-11, 3.410605131648481e-13, 4.227729277772596e-13, 4.050093593832571e-13, 4.2025760649266886e-10, -2.6290081223123707e-12, -1.1866063687193673e-12, -1.1510792319313623e-12, -1.1013412404281553e-12, -1.1084466677857563e-12, -2.3234747459355276e-12, 1.5936940656047227e-10, -3.709033080667723e-12, -3.5846881019097054e-12, -3.502975687297294e-12, -3.3715252811816754e-12, -3.247180302423658e-12, -5.1656456889759284e-11, -4.268940756446682e-11, -5.7690741073201934e-11, -7.334186591378966e-10, 4.412470389070222e-12, 4.355626970209414e-12, 2.2820856315775018e-10, 6.432188115468307e-12, 8.71835936777643e-12, 2.1458390619955026e-12, 2.0747847884194925e-12, 9.166001291305292e-13, 9.094947017729282e-13, 9.166001291305292e-13, 8.810729923425242e-13, 8.384404281969182e-13, 8.384404281969182e-13, 8.029132914089132e-13 ] }, { "name": "node_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 7.105427357601002e-15, 7.105427357601002e-15, 1.4210854715202004e-14, 7.105427357601002e-15, -2.842170943040401e-14, 0.0, -1.4210854715202004e-14, 2.1316282072803006e-14, 2.1316282072803006e-14, 1.0302869668521453e-13, 1.1723955140041653e-13, -2.7609914354798093e-11, 8.642331295050099e-11, 9.616840657145076e-11, -8.277822871605167e-13, -7.480949193450215e-11, -2.716404878810863e-11, 1.7053025658242404e-13, 1.7053025658242404e-13, 1.4210854715202004e-13, 1.7763568394002505e-13, 1.9895196601282805e-13, 3.694822225952521e-13, 3.090860900556436e-13, 2.3803181647963356e-12, 4.5417891669785604e-11, 4.857270141656045e-11, 5.085531995518977e-11, -4.7696957494736125e-11, -4.9469761620457575e-11, -1.4566126083082054e-13, -1.5631940186722204e-13, -1.7763568394002505e-13, -1.7053025658242404e-13, -2.6558311105873145e-11, 6.322409262793371e-11, -3.446132268436486e-13, -4.227729277772596e-13, -3.979039320256561e-13, -4.2025760649266886e-10, 2.6290081223123707e-12, 1.1866063687193673e-12, 1.1510792319313623e-12, 1.1013412404281553e-12, 1.1084466677857563e-12, 2.334132886971929e-12, -1.5936940656047227e-10, 3.7054803669889225e-12, 3.5846881019097054e-12, 3.502975687297294e-12, 3.3715252811816754e-12, 3.247180302423658e-12, 5.1656456889759284e-11, 4.268940756446682e-11, 5.7690741073201934e-11, 7.334186591378966e-10, -4.412470389070222e-12, -4.359179683888215e-12, -2.2820856315775018e-10, -6.430411758628907e-12, -8.71835936777643e-12, -2.1458390619955026e-12, -2.071232074740692e-12, -9.166001291305292e-13, -9.094947017729282e-13, -9.166001291305292e-13, -8.810729923425242e-13, -8.242295734817162e-13, -8.384404281969182e-13, -8.029132914089132e-13 ] }, { "name": "rsv2_node", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 7.105427357601002e-15, 7.105427357601002e-15, 1.4210854715202004e-14, 0.0, -2.1316282072803006e-14, 0.0, -1.4210854715202004e-14, 2.842170943040401e-14, -9.947598300641403e-14, -1.7763568394002505e-14, 7.105427357601002e-15, -2.7608137997958693e-11, 8.642331295050099e-11, 9.617018292829016e-11, -8.242295734817162e-13, -7.480771557766275e-11, -2.717115421546623e-11, 1.7053025658242404e-13, 1.7053025658242404e-13, 1.4921397450962104e-13, 1.6342482922482304e-13, 1.9895196601282805e-13, 3.730349362740526e-13, 3.090860900556436e-13, 2.382094521635736e-12, 4.5416115312946204e-11, 4.857270141656045e-11, 5.085531995518977e-11, -4.7696957494736125e-11, -4.9469761620457575e-11, -1.4566126083082054e-13, -1.5276668818842154e-13, -1.7408297026122455e-13, -1.6697754290362354e-13, -2.6558311105873145e-11, 6.322231627109431e-11, -3.481659405224491e-13, -4.263256414560601e-13, -3.979039320256561e-13, -4.2025760649266886e-10, 2.62545540863357e-12, 1.1866063687193673e-12, 1.1510792319313623e-12, 1.0942358130705543e-12, 1.1084466677857563e-12, 2.334132886971929e-12, -1.5936940656047227e-10, 3.723243935382925e-12, 3.588240815588506e-12, 3.502975687297294e-12, 3.375077994860476e-12, 3.247180302423658e-12, 5.1656456889759284e-11, 4.268940756446682e-11, 5.7690741073201934e-11, 7.334186591378966e-10, -4.412470389070222e-12, -4.362732397567015e-12, -2.2820856315775018e-10, -6.432188115468307e-12, -8.72546479513403e-12, -2.1316282072803006e-12, -2.064126647383091e-12, -9.237055564881302e-13, -9.166001291305292e-13, -9.166001291305292e-13, -8.810729923425242e-13, -8.313350008393172e-13, -8.384404281969182e-13, -8.029132914089132e-13 ] }, { "name": "node_plant2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -4.263256414560601e-14, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Optimized tunnel flow deviation from post-calculated flow" }, "yaxis": { "title": { "text": "Flow [m3/s]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot the flow in all tunnels, negative values indicate flow in the opposite direction of the connection\n", "fig = go.Figure()\n", "for t in shop.model.tunnel:\n", " flow = t.flow.get()\n", " fig.add_trace(go.Scatter(x=flow.index, y=flow.values, name=t.get_name()))\n", "\n", "fig.update_layout(title=\"Tunnel flow\")\n", "fig.update_yaxes(title_text=\"Flow [m3/s]\")\n", "fig.show()\n", "\n", "#Plot the deviation of the flow from the post-calculated flow\n", "fig = go.Figure()\n", "for t in shop.model.tunnel:\n", " flow = t.flow.get()\n", " pflow = t.physical_flow.get()\n", " fig.add_trace(go.Scatter(x=flow.index, y=flow.values-pflow.values, name=t.get_name()))\n", "\n", "fig.update_layout(title=\"Optimized tunnel flow deviation from post-calculated flow\")\n", "fig.update_yaxes(title_text=\"Flow [m3/s]\")\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "fe5a0789", "metadata": {}, "source": [ "## Gate optimization\n", "\n", "Now, an adjustable gate can be inserted in tunnel \"rsv2_node\". Instead of having the tunnel open at all times like in the first model run, SHOP can now optimize the gate opening. The gate is modelled as a binary gate, which is either fully open or fully closed. A [gate_adjustment_cost](tunnel:gate_adjustment_cost) of 1000 € is added to the gate to avoid excessive switching of the gate position between time steps. Gate optimization problems are in general difficult to solve as the gate position can drastically change the flow in the network. For this system, it is beneficial to set the CPLEX parameter \"Mip emphasis switch\" (id 2058) to 3, which means that CPLEX will prioritize shrinking in the best bound for the MIP problem (see the CPLEX documentation https://www.ibm.com/docs/en/icos/20.1.0?topic=parameters-mip-emphasis-switch). Any integer CPLEX parameter can be set with the [cplex_int_params](global_settings:cplex_int_params) attribute. The MIP gap is also set to 1500 €, which is the same as adjusting the gate position 1.5 times." ] }, { "cell_type": "code", "execution_count": 7, "id": "973fd06c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimized gate objective: 0.0\n", "Difference from open tunnel objective: 659639.1644133304\n" ] } ], "source": [ "shop = build_model()\n", "\n", "#Add a binary gate\n", "t3 = shop.model.tunnel[\"rsv2_node\"]\n", "t3.gate_opening_curve.set(pd.Series([0,1], index=[0,1]))\n", "t3.initial_opening.set(1)\n", "t3.gate_adjustment_cost.set(1000)\n", "\n", "gs = shop.model.global_settings.global_settings\n", "gs.cplex_int_params.set(pd.Series([3],index=[2058]))\n", "\n", "#Run a standard optimization model\n", "shop.set_mipgap(\"absolute\",1500)\n", "shop.set_universal_mip(\"off\",[])\n", "shop.start_sim([],[3])\n", "shop.set_universal_mip(\"on\",[])\n", "shop.start_sim([],[2])\n", "shop.set_code(['incremental'], [])\n", "shop.start_sim([],[5])\n", "\n", "optimized_gate_objective = shop.model.objective.average_objective.total.get()\n", "print(\"Optimized gate objective:\",optimized_gate_objective)\n", "print(\"Difference from open tunnel objective:\",optimized_gate_objective - open_tunnel_objective)" ] }, { "cell_type": "markdown", "id": "cfc318e7", "metadata": {}, "source": [ "The objective function has improved when the gate position is free to optimize. The figures below show that the gate is mostly open, but it is closed off in two periods towards the end of the optimization to allow all of the pumped water from Reservoir 3 to flow into Reservoir 1 instead of mostly into Reservoir 2. This makes it possible to draw down Reservoir 2 more than Reservoir 1, which has a higher water value." ] }, { "cell_type": "code", "execution_count": 8, "id": "47a9af9b", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "rsv2_node", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Gate opening" } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "Plant 1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] }, { "name": "Plant 2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0 ] }, { "name": "Price", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "xaxis": "x", "y": [ 189.12, 187.39000000000001, 184.27, 179.78, 178.54000000000002, 184.03, 184.95000000000002, 185.18, 184.42000000000002, 178.4, 172.78, 169.99, 159.03, 151.01000000000002, 145.76000000000002, 140.70000000000002, 91.14, 151.31, 173.18, 184.13, 187.78, 187.19, 182.69, 172.39000000000001, 166.76000000000002, 158.85000000000002, 148.35000000000002, 144.24, 144.54000000000002, 144.57000000000002, 150.92000000000002, 148.76000000000002, 153.59, 159.29000000000002, 159.85000000000002, 161.07000000000002, 150.0, 127.21, 97.24, 70.02, 93.63, 107.46, 166.73000000000002, 182.44, 185.4, 185.41, 179.98000000000002, 163.29000000000002, 108.11999999999999, 83.67, 86.77, 83.67, 88.05999999999999, 95.25, 131.0, 148.9, 144.14000000000001, 151.96, 158.75, 153.20000000000002, 151.3, 130.01000000000002, 50.010000000000005, 77.6, 154.45000000000002, 175.79000000000002, 179.12, 186.70000000000002, 194.3, 202.3, 201.24, 195.53 ], "yaxis": "y2" } ], "layout": { "barmode": "stack", "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Production and market price" }, "xaxis": { "anchor": "y", "domain": [ 0.0, 0.94 ] }, "yaxis": { "anchor": "x", "domain": [ 0.0, 1.0 ], "title": { "text": "Production [MW]" } }, "yaxis2": { "anchor": "x", "overlaying": "y", "side": "right", "title": { "text": "Energy price [€/MWh]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "Rsv 1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00", "2022-04-19T00:00:00" ], "y": [ 95.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0 ] }, { "name": "Rsv 2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00", "2022-04-19T00:00:00" ], "y": [ 95.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Reservoir levels" }, "yaxis": { "title": { "text": "Level [masl]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot resulting gate opening\n", "gate_opening = t3.gate_opening.get()\n", "fig = go.Figure()\n", "fig.add_trace(go.Scatter(x=gate_opening.index, y=gate_opening.values, name=t3.get_name()))\n", "fig.update_layout(title=\"Gate opening\")\n", "fig.show()\n", "\n", "#Plot production/consumption and market price\n", "fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n", "fig.update_layout(barmode=\"stack\", title=\"Production and market price\")\n", "fig.update_yaxes(title_text=\"Energy price [€/MWh]\", secondary_y=True)\n", "fig.update_yaxes(title_text=\"Production [MW]\", secondary_y=False)\n", "\n", "plant1_prod = shop.model.plant.plant1.production.get()\n", "plant2_cons = shop.model.plant.plant2.consumption.get()\n", "price = shop.model.market.spot.sale_price.get()\n", "fig.add_trace(go.Scatter(x=plant1_prod.index, y=plant1_prod.values, name=\"Plant 1\"))\n", "fig.add_trace(go.Scatter(x=plant2_cons.index, y=-plant2_cons.values, name=\"Plant 2\"))\n", "fig.add_trace(go.Scatter(x=price.index, y=price.values, name=\"Price\"),secondary_y=True)\n", "fig.show()\n", "\n", "#Plot reservoir levels\n", "fig = go.Figure()\n", "rsv1_head = shop.model.reservoir.rsv1.head.get()\n", "rsv2_head = shop.model.reservoir.rsv2.head.get()\n", "fig.add_trace(go.Scatter(x=rsv1_head.index, y=rsv1_head.values, name=\"Rsv 1\"))\n", "fig.add_trace(go.Scatter(x=rsv2_head.index, y=rsv2_head.values, name=\"Rsv 2\"))\n", "fig.update_layout(title=\"Reservoir levels\")\n", "fig.update_yaxes(title_text=\"Level [masl]\")\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "2e9af30f", "metadata": {}, "source": [ "As the flows in the tunnel network show, all the pumped water flows into Reservoir 1 when the gate is closed. Note that the gate is left open in the first pumping period that lasts for 1 hour, this is likely due to the gate adjustment cost of 1000 € making it unprofitable to change." ] }, { "cell_type": "code", "execution_count": 9, "id": "419d8e76", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "rsv1_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] }, { "name": "node_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] }, { "name": "rsv2_node", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] }, { "name": "node_plant2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Tunnel flow" }, "yaxis": { "title": { "text": "Flow [m3/s]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "rsv1_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] }, { "name": "node_plant1", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] }, { "name": "rsv2_node", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] }, { "name": "node_plant2", "type": "scatter", "x": [ "2022-04-16T00:00:00", "2022-04-16T01:00:00", "2022-04-16T02:00:00", "2022-04-16T03:00:00", "2022-04-16T04:00:00", "2022-04-16T05:00:00", "2022-04-16T06:00:00", "2022-04-16T07:00:00", "2022-04-16T08:00:00", "2022-04-16T09:00:00", "2022-04-16T10:00:00", "2022-04-16T11:00:00", "2022-04-16T12:00:00", "2022-04-16T13:00:00", "2022-04-16T14:00:00", "2022-04-16T15:00:00", "2022-04-16T16:00:00", "2022-04-16T17:00:00", "2022-04-16T18:00:00", "2022-04-16T19:00:00", "2022-04-16T20:00:00", "2022-04-16T21:00:00", "2022-04-16T22:00:00", "2022-04-16T23:00:00", "2022-04-17T00:00:00", "2022-04-17T01:00:00", "2022-04-17T02:00:00", "2022-04-17T03:00:00", "2022-04-17T04:00:00", "2022-04-17T05:00:00", "2022-04-17T06:00:00", "2022-04-17T07:00:00", "2022-04-17T08:00:00", "2022-04-17T09:00:00", "2022-04-17T10:00:00", "2022-04-17T11:00:00", "2022-04-17T12:00:00", "2022-04-17T13:00:00", "2022-04-17T14:00:00", "2022-04-17T15:00:00", "2022-04-17T16:00:00", "2022-04-17T17:00:00", "2022-04-17T18:00:00", "2022-04-17T19:00:00", "2022-04-17T20:00:00", "2022-04-17T21:00:00", "2022-04-17T22:00:00", "2022-04-17T23:00:00", "2022-04-18T00:00:00", "2022-04-18T01:00:00", "2022-04-18T02:00:00", "2022-04-18T03:00:00", "2022-04-18T04:00:00", "2022-04-18T05:00:00", "2022-04-18T06:00:00", "2022-04-18T07:00:00", "2022-04-18T08:00:00", "2022-04-18T09:00:00", "2022-04-18T10:00:00", "2022-04-18T11:00:00", "2022-04-18T12:00:00", "2022-04-18T13:00:00", "2022-04-18T14:00:00", "2022-04-18T15:00:00", "2022-04-18T16:00:00", "2022-04-18T17:00:00", "2022-04-18T18:00:00", "2022-04-18T19:00:00", "2022-04-18T20:00:00", "2022-04-18T21:00:00", "2022-04-18T22:00:00", "2022-04-18T23:00:00" ], "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Optimized tunnel flow deviation from post-calculated flow" }, "yaxis": { "title": { "text": "Flow [m3/s]" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot tunnel flow\n", "fig = go.Figure()\n", "for t in shop.model.tunnel:\n", " flow = t.flow.get()\n", " fig.add_trace(go.Scatter(x=flow.index, y=flow.values, name=t.get_name()))\n", "\n", "fig.update_layout(title=\"Tunnel flow\")\n", "fig.update_yaxes(title_text=\"Flow [m3/s]\")\n", "fig.show()\n", "\n", "#Plot deviation from post-calculated tunnel flow\n", "fig = go.Figure()\n", "for t in shop.model.tunnel:\n", " flow = t.flow.get()\n", " pflow = t.physical_flow.get()\n", " fig.add_trace(go.Scatter(x=flow.index, y=flow.values-pflow.values, name=t.get_name()))\n", "\n", "fig.update_layout(title=\"Optimized tunnel flow deviation from post-calculated flow\")\n", "fig.update_yaxes(title_text=\"Flow [m3/s]\")\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "b3d3f9af", "metadata": {}, "source": [ "## advanced_tunnel_model.py" ] }, { "cell_type": "code", "execution_count": 10, "id": "b49886c8", "metadata": { "Collapsed": "false", "tags": [ "remove-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "import pandas as pd\n", "from pyshop import ShopSession\n", "\n", "def build_model():\n", " \n", " shop = ShopSession()\n", " starttime = pd.Timestamp('2022-04-16')\n", " endtime = pd.Timestamp('2022-04-19')\n", " shop.set_time_resolution(starttime=starttime, endtime=endtime, timeunit='hour') \n", " \n", " rsv1 = shop.model.reservoir.add_object(\"rsv1\")\n", " rsv1.max_vol.set(12)\n", " rsv1.lrl.set(90)\n", " rsv1.hrl.set(100)\n", " rsv1.vol_head.set(pd.Series([90, 100, 101], index=[0, 12, 14], name=0))\n", "\n", " spill1 = shop.model.river.add_object(\"spill_rsv1\")\n", " spill1.upstream_elevation.set(100)\n", " spill1.up_head_flow_curve.set([pd.Series([0,1000],index=[100,101], name=0)])\n", " spill1.flow_cost.set(100)\n", " rsv1.connect_to(spill1)\n", " \n", " rsv2 = shop.model.reservoir.add_object(\"rsv2\")\n", " rsv2.max_vol.set(12)\n", " rsv2.lrl.set(90)\n", " rsv2.hrl.set(100)\n", " rsv2.vol_head.set(pd.Series([90, 100, 101], index=[0, 12, 14], name=0))\n", "\n", " spill2 = shop.model.river.add_object(\"spill_rsv2\")\n", " spill2.upstream_elevation.set(100)\n", " spill2.up_head_flow_curve.set([pd.Series([0,1000],index=[100,101], name=0)])\n", " spill2.flow_cost.set(100)\n", " rsv2.connect_to(spill2)\n", " \n", " rsv3 = shop.model.reservoir.add_object(\"rsv3\")\n", " rsv3.max_vol.set(12)\n", " rsv3.lrl.set(40)\n", " rsv3.hrl.set(50)\n", " rsv3.vol_head.set(pd.Series([40, 50, 51], index=[0, 12, 14], name=0))\n", "\n", " spill3 = shop.model.river.add_object(\"spill_rsv3\")\n", " spill3.upstream_elevation.set(50)\n", " spill3.up_head_flow_curve.set([pd.Series([0,1000],index=[50,51], name=0)])\n", " spill3.flow_cost.set(100)\n", " rsv3.connect_to(spill3)\n", " \n", " plant1 = shop.model.plant.add_object(\"plant1\")\n", " plant1.outlet_line.set(0)\n", " plant1.main_loss.set([0.0002])\n", " plant1.penstock_loss.set([0.0001])\n", "\n", " p1g1 = shop.model.generator.add_object(\"plant1_g1\")\n", " plant1.connect_to(p1g1)\n", " p1g1.penstock.set(1)\n", " p1g1.p_min.set(10)\n", " p1g1.p_max.set(100)\n", " p1g1.p_nom.set(100)\n", " p1g1.startcost.set(500)\n", " p1g1.turb_eff_curves.set([pd.Series([77,91,94.75,95,94,93.4], index=[15,60,90,100,120,125], name=90),\n", " pd.Series([78,92,95.75,96,95,94.4], index=[15,60,90,100,120,125], name=100)])\n", "\n", " p1g2 = shop.model.generator.add_object(\"plant1_g2\")\n", " plant1.connect_to(p1g2)\n", " p1g2.penstock.set(1)\n", " p1g2.p_min.set(10)\n", " p1g2.p_max.set(100)\n", " p1g2.p_nom.set(100)\n", " p1g2.startcost.set(500)\n", " p1g2.turb_eff_curves.set([pd.Series([77,91,94.75,95,94,93.4], index=[15,60,90,100,120,125], name=90),\n", " pd.Series([78,92,95.75,96,95,94.4], index=[15,60,90,100,120,125], name=100)])\n", "\n", " plant2 = shop.model.plant.add_object(\"plant2\")\n", " plant2.outlet_line.set(40)\n", " plant2.main_loss.set([0.0002])\n", " plant2.penstock_loss.set([0.0001])\n", "\n", " p2p1 = shop.model.pump.add_object(\"plant2_p1\")\n", " plant2.connect_to(p2p1)\n", " p2p1.penstock.set(1)\n", " p2p1.p_min.set(12)\n", " p2p1.p_max.set(50)\n", " p2p1.p_nom.set(50)\n", " p2p1.startcost.set(500)\n", " p2p1.turb_eff_curves.set([pd.Series([80, 95, 90], index=[25, 90, 100], name=40),\n", " pd.Series([82, 97, 92], index=[25, 90, 100], name=50)]) \n", " \n", " t1 = shop.model.tunnel.add_object(\"rsv1_plant1\")\n", " t1.start_height.set(89)\n", " t1.end_height.set(89)\n", " t1.loss_factor.set(0.002)\n", "\n", " t2 = shop.model.tunnel.add_object(\"node_plant1\")\n", " t2.start_height.set(89)\n", " t2.end_height.set(89)\n", " t2.loss_factor.set(0.004)\n", "\n", " t3 = shop.model.tunnel.add_object(\"rsv2_node\")\n", " t3.start_height.set(89)\n", " t3.end_height.set(89)\n", " t3.loss_factor.set(0.001)\n", "\n", " t4 = shop.model.tunnel.add_object(\"node_plant2\")\n", " t4.start_height.set(89)\n", " t4.end_height.set(89)\n", " t4.loss_factor.set(0.001)\n", " \n", " price = pd.Series(\n", " [189.13, 187.4, 184.28, 179.79, 178.55, 184.04, 184.96, 185.19, 184.43, 178.41, 172.79, 170, 159.04, 151.02, 145.77, 140.71, 91.15, 151.32, 173.19, 184.14, 187.79, 187.2, 182.7, 172.4, 166.77, 158.86, 148.36, 144.25, 144.55, 144.58, 150.93, 148.77, 153.6, 159.3, 159.86, 161.08, 150.01, 127.22, 97.25, 70.03, 93.64, 107.47, 166.74, 182.45, 185.41, 185.42, 179.99, 163.3, 108.13, 83.68, 86.78, 83.68, 88.07, 95.26, 131.01, 148.91, 144.15, 151.97, 158.76, 153.21, 151.31, 130.02, 50.02, 77.61, 154.46, 175.8, 179.13, 186.71, 194.31, 202.31, 201.25, 195.54, 192.99, 187.38, 185.6, 185.41, 185.97, 192.53, 196.88, 204.7, 285.98, 247.53, 202.89, 193.53, 189.69, 185.28, 182.22, 181.75, 184.18, 189.16, 196.09, 203.57, 206.68, 206.65, 191.96, 185.45],\n", " index=[starttime+pd.Timedelta(hours=t) for t in range(24*4)]\n", " )\n", " price_mean = price.mean()\n", " \n", " rsv1.start_head.set(95)\n", " rsv2.start_head.set(95)\n", " rsv3.start_head.set(45)\n", "\n", " rsv1.energy_value_input.set(0.9*price_mean)\n", " rsv2.energy_value_input.set(0.8*price_mean)\n", " rsv3.energy_value_input.set(0.5*price_mean)\n", " \n", " spot = shop.model.market.add_object(\"spot\")\n", " spot.buy_price.set(price + 0.01)\n", " spot.sale_price.set(price - 0.01)\n", " spot.max_sale.set(9999)\n", " spot.max_buy.set(9999)\n", "\n", " rsv3.inflow.set(20) \n", " \n", " \n", " rsv1.connect_to(t1)\n", " t2.connect_to(plant1)\n", " t1.connect_to(plant1)\n", "\n", " rsv2.connect_to(t3)\n", " t3.connect_to(t2)\n", " t3.connect_to(t4)\n", " t4.connect_to(plant2)\n", " plant2.connect_to(rsv3) \n", " \n", " return shop\n" ] } ], "source": [ "with open('advanced_tunnel_model.py', 'r') as f:\n", " print(f.read())" ] } ], "metadata": { "jupytext": { "text_representation": { "extension": ".md", "format_name": "myst", "format_version": 0.13, "jupytext_version": "1.16.2" } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.9" }, "source_map": [ 12, 28, 35, 39, 42, 50, 53, 59, 71, 75, 99, 105, 126, 132, 156, 160, 191, 195, 216, 219 ] }, "nbformat": 4, "nbformat_minor": 5 }