{ "cells": [ { "cell_type": "markdown", "id": "0691b600", "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": "c27e3c4d", "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": "9752bc03", "metadata": {}, "source": [ "The resulting topology is shown below:" ] }, { "cell_type": "code", "execution_count": 2, "id": "99cebf66", "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": "849683ea", "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": "9cfcf3c0", "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": "4db46b38", "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": "7a7ca7de", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open tunnel objective: -659181.0787454857\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": "2706dc1c", "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": "39de0254", "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.16618013562004, 78.01934390465746, 77.87251397615137, 77.72569150440837, 77.57887760371925, 77.43207334954899, 77.28527977968938, 77.13849789537608, 76.99172866237056, 56.94484143685712, 0.0, 0.0, 0.0, 0.0, 0.0, 76.88152075410001, 76.73475728660922, 76.58800779437955, 76.44127316118777, 76.29455423880397, 72.96913205563499, 76.00907119189344, 56.256945648696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.22010906076439, 56.14687252770005, 56.07365219271904, 56.00044856521246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 75.7519624733412, 75.60527801805155, 75.45861167196325, 75.31196416699194, 75.16533620750894, 55.666710714499594, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.220495265653526, 75.70822393000878, 75.56164032826092, 75.41507832176853, 75.26853850887075, 75.12202146427235, 74.97552773973466, 74.82905786474575 ] }, { "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.319885272738055, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -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.30272804162124, -43.616306399531, -43.929085492987404, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -43.18663118781341, -43.49891894618994, -43.810401480824865, -44.121083082901414, -44.430968588425294, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -49.99926637773532, -44.50169502620604, -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.08574567774085, 93.90381199058106, 93.72217670811233, 93.54083676878084, 93.35978914800603, 93.17903085761607, 92.9985589452945, 92.81837049403785, 92.6918953783443, 92.72280159710293, 92.75244583570081, 92.78082910619999, 92.86392106778392, 92.89330926065979, 92.71296037115299, 92.5328936912008, 92.35310635347021, 92.17359552466569, 91.99435840502211, 91.82538990149291, 91.64667306827073, 91.5221983641632, 91.55880899313863, 91.59415393865082, 91.62823391907148, 91.66104970574416, 91.69260212902873, 91.72289208529799, 91.59607718148007, 91.46950940766426, 91.34318534677101, 91.21710163597231, 91.2491968970713, 91.28002929734586, 91.3638489967865, 91.44832745225787, 91.53345316240072, 91.5688106203714, 91.3898537743674, 91.21116504252278, 91.03274172382079, 90.85458114882674, 90.67668067922806, 90.55331235150219, 90.59275358436862, 90.67957009647634, 90.76699388992083, 90.85501479308243, 90.9436228874832, 91.0328084984659, 91.07802285633818, 91.12196771445949, 91.16464354185155, 91.20605083528524, 91.24619012178026, 91.28506196151118, 91.32266695097027, 91.35900572654877, 91.45054978391147, 91.53690030535722, 91.41338359803363, 91.23577991648688, 91.05843076236135, 90.88133359257023, 90.70448589332811, 90.52788517973346, 90.3515289953585, 90.17541491184673 ] }, { "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.29618800941891, 94.17782329188765, 94.05916323121915, 93.94021085199395, 93.82096914238392, 93.70144105470548, 93.58162950596211, 93.49310462165568, 93.46219840289703, 93.43255416429915, 93.40417089379997, 93.59107893221605, 93.56169073934016, 93.44203962884696, 93.32210630879915, 93.20189364652973, 93.08140447533427, 92.96064159497782, 92.8455292437721, 92.72424607699428, 92.6337207811018, 92.59711015212638, 92.56176520661418, 92.52768522619353, 92.49486943952084, 92.46331701623627, 92.43302705996702, 92.34484196378493, 92.25640973760075, 92.16773379849398, 92.07881750929268, 92.0467222481937, 92.01588984791914, 92.2020701484785, 92.38759169300714, 92.57246598286429, 92.53710852489361, 92.41606537089758, 92.29475410274219, 92.1731774214442, 92.05133799643824, 91.92923846603692, 91.83760679376277, 91.79816556089634, 91.98134904878862, 92.16392525534414, 92.34590435218253, 92.52729625778177, 92.70811064679908, 92.6628962889268, 92.61895143080548, 92.57627560341344, 92.53486830997974, 92.49472902348471, 92.45585718375379, 92.4182521942947, 92.3819134187162, 92.58229347319676, 92.765942951751, 92.6744596590746, 92.55206334062134, 92.42941249474687, 92.306509664538, 92.18335736378009, 92.05995807737474, 91.93631426174969, 91.81242834526145 ] } ], "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": "9ec7a2ac", "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": "b12ffb5b", "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.157656326125746, 61.05289377950082, 60.949216333339386, 60.84661066277194, 60.74506365131018, 60.64456238659312, 60.545094156243394, 60.44664644383003, 60.3492069249351, 60.252763463319894, 60.1573041071888, 60.062817085546165, 42.15837189785284, -10.302072919544976, -9.881412865961611, -9.461090166390466, -27.697320527978793, -9.796064291957471, 60.11629650226652, 60.02222665073177, 59.929112576859566, 59.83694293484396, 59.74570654785306, 56.32283450973258, 59.57227774072915, 41.49156803584087, -12.203542991805993, -11.78164850406681, -11.359993473550505, -10.93859555756125, -10.517474428190397, -10.09665208975266, 42.271634605970654, 42.18925793860497, 42.10802029774664, 42.02790359956458, -10.698420366327912, -10.277466758186726, -27.939899813546432, -28.159485157121367, -28.37523671428073, -11.785819323560354, 59.65228200133055, 59.56291061486718, 59.47443956733241, 59.386858331349416, 59.30015653289399, 41.12277590862008, -13.147077622143087, -28.93883736924205, -29.141264481492534, -29.340301053868934, -29.536031466921834, -29.72853699423097, -15.071452624094075, -14.648286040437116, -14.22527579735221, -13.802431144562942, -13.379762165010835, -12.957279910304038, -12.534996486367284, -12.112925192831351, -30.514685787567636, -28.78350714858253, 41.172235774530364, 59.201227182250605, 59.11638470850816, 59.03238993037637, 58.94923308070231, 58.866904531550034, 58.78539479165209, 58.70469450392038 ] }, { "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.84234367387426, 38.94710622049918, 39.05078366666063, 39.15338933722806, 39.25493634868982, 39.35543761340685, 39.45490584375659, 39.55335355616992, 39.65079307506484, 39.74723653668004, 39.84269589281122, 39.93718291445391, 29.508294768813904, 10.302072919544973, 9.881412865961611, 9.46109016639047, 27.69732052797879, 9.79606429195747, 39.88370349773347, 39.977773349268226, 40.070887423140434, 40.16305706515603, 40.25429345214694, 38.37078373523796, 40.427722259270844, 30.17509863082579, 12.20354299180599, 11.781648504066812, 11.359993473550505, 10.93859555756125, 10.517474428190395, 10.09665208975266, 29.395032060696018, 29.477408728061697, 29.558646368920016, 29.638763067102072, 10.698420366327914, 10.277466758186728, 27.939899813546436, 28.15948515712137, 28.37523671428073, 11.785819323560352, 40.34771799866945, 40.43708938513281, 40.52556043266758, 40.6131416686506, 40.69984346710599, 30.543890758046576, 13.147077622143087, 28.93883736924205, 29.141264481492538, 29.340301053868934, 29.536031466921838, 29.72853699423097, 15.071452624094073, 14.648286040437117, 14.22527579735221, 13.80243114456294, 13.379762165010835, 12.957279910304038, 12.534996486367284, 12.112925192831351, 30.514685787567636, 28.78350714858253, 30.4944308921363, 40.79877281774939, 40.88361529149184, 40.96761006962363, 41.050766919297686, 41.13309546844997, 41.21460520834791, 41.29530549607961 ] }, { "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.84234367387426, 38.947106220499165, 39.0507836666606, 39.15338933722807, 39.25493634868982, 39.35543761340686, 39.45490584375661, 39.55335355616997, 39.6507930750649, 39.7472365366801, 39.842695892811214, 39.937182914453835, 29.508294768813812, 10.302072919544973, 9.881412865961611, 9.46109016639047, -62.302679472021204, 9.79606429195747, 39.88370349773347, 39.97777334926822, 40.07088742314043, 40.16305706515604, 40.25429345214694, 38.37078373523796, 40.427722259270844, 30.17509863082579, 12.20354299180599, 11.781648504066812, 11.359993473550505, 10.93859555756125, 10.517474428190395, 10.09665208975266, 29.39503206069601, 29.477408728061693, 29.55864636892001, 29.63876306710207, 10.698420366327914, 10.277466758186728, -62.06010018645357, -61.84051484287862, -61.62476328571927, 11.785819323560352, 40.347717998669445, 40.437089385132815, 40.52556043266758, 40.61314166865059, 40.69984346710599, 30.543890758046572, 13.147077622143087, -61.06116263075795, -60.858735518507466, -60.65969894613107, -60.46396853307816, -60.271463005769036, 15.071452624094073, 14.648286040437117, 14.22527579735221, 13.80243114456294, 13.379762165010835, 12.957279910304038, 12.534996486367284, 12.112925192831351, -66.79335149351796, -61.21649285141747, 30.4944308921363, 40.79877281774939, 40.88361529149184, 40.96761006962363, 41.05076691929769, 41.133095468449966, 41.2146052083479, 41.2953054960796 ] }, { "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.30803728108559, -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": [ 2.1316282072803006e-14, 2.842170943040401e-14, 0.0, -2.1316282072803006e-14, -1.4210854715202004e-14, -2.1316282072803006e-14, 1.4210854715202004e-14, -7.105427357601002e-15, 0.0, -2.1316282072803006e-14, 1.2789769243681803e-13, 8.526512829121202e-14, -7.105427357601002e-15, 2.3096191625882057e-11, -8.472689216887375e-11, -9.589307126134372e-11, 8.597567102697212e-13, 6.745537461938511e-11, 2.7711166694643907e-13, 2.2737367544323206e-13, 2.3447910280083306e-13, 2.0605739337042905e-13, 2.1316282072803006e-13, 2.3447910280083306e-13, 2.7000623958883807e-13, 3.694822225952521e-13, 3.801403636316536e-12, -3.5491609651217004e-11, -3.9401371054736956e-11, -4.3218761902608094e-11, 4.305711343022267e-11, 4.356337512945174e-11, 7.034373084024992e-13, 7.673861546209082e-13, 3.0969573572292575e-09, 3.97140098584714e-09, -4.7481840681484755e-08, -4.879989923267658e-08, 1.9739943013519223e-10, 2.000106746891106e-10, 2.021884881742153e-10, -1.7763863269237845e-08, 2.0521895294223214e-10, 2.0329338212832226e-10, 2.0153123614363722e-10, 1.9977619558630977e-10, 1.9799273331955192e-10, 5.7942344255934586e-09, -2.1191729260294778e-08, 2.1249491055641556e-10, 2.1793766791233793e-10, 2.227373840923974e-10, 2.26947349801776e-10, 2.3067059373715892e-10, -7.514959321497372e-09, -7.647969368917984e-09, -7.797563483791237e-09, -8.555410602184566e-09, -2.1419364060193402e-09, -2.704560131405742e-09, -1.0970275354793557e-08, -1.140855943049246e-08, 1.7860450896023394e-09, 8.03005661964562e-10, 7.882263730607519e-10, 4.1394798699911917e-10, 4.091162963959505e-10, 4.04369870921073e-10, 3.9968028886505635e-10, 3.950688665099733e-10, 3.9047165500960546e-10, 3.85902865218668e-10 ] }, { "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": [ -2.1316282072803006e-14, -2.842170943040401e-14, 1.4210854715202004e-14, 2.1316282072803006e-14, 1.4210854715202004e-14, -7.105427357601002e-15, -2.842170943040401e-14, -4.973799150320701e-14, -5.684341886080802e-14, -3.552713678800501e-14, -9.947598300641403e-14, 0.0, 9.237055564881302e-14, -2.3099744339560857e-11, 8.472689216887375e-11, 9.589662397502252e-11, -8.633094239485217e-13, -6.745715097622451e-11, -2.7711166694643907e-13, -2.2737367544323206e-13, -2.3447910280083306e-13, -2.0605739337042905e-13, -2.1316282072803006e-13, -2.3447910280083306e-13, -2.7000623958883807e-13, -3.730349362740526e-13, -3.803179993155936e-12, 3.5493386008056405e-11, 3.9401371054736956e-11, 4.3218761902608094e-11, -4.305888978706207e-11, -4.356337512945174e-11, -6.892264536872972e-13, -7.602807272633072e-13, -3.0969573572292575e-09, -3.971397433133461e-09, 4.7481842457841594e-08, 4.879990100903342e-08, -1.9739587742151343e-10, -2.000071219754318e-10, -2.021884881742153e-10, 1.7763861492881006e-08, -2.0521895294223214e-10, -2.0330759298303747e-10, -2.0153123614363722e-10, -1.9976198473159457e-10, -1.9800694417426712e-10, -5.794237978307137e-09, 2.1191729260294778e-08, -2.1249491055641556e-10, -2.1793411519865913e-10, -2.227373840923974e-10, -2.269437970880972e-10, -2.3067059373715892e-10, 7.514957545140533e-09, 7.647971145274823e-09, 7.797563483791237e-09, 8.555408825827726e-09, 2.1419364060193402e-09, 2.704560131405742e-09, 1.0970275354793557e-08, 1.140855943049246e-08, -1.7860450896023394e-09, -8.03005661964562e-10, -7.882263730607519e-10, -4.1394798699911917e-10, -4.091162963959505e-10, -4.04369870921073e-10, -3.9968028886505635e-10, -3.950688665099733e-10, -3.9047165500960546e-10, -3.859170760733832e-10 ] }, { "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": [ -2.1316282072803006e-14, -4.263256414560601e-14, -1.4210854715202004e-14, 2.842170943040401e-14, 1.4210854715202004e-14, 7.105427357601002e-15, -7.105427357601002e-15, 0.0, 0.0, 2.1316282072803006e-14, -1.0658141036401503e-13, -7.815970093361102e-14, 0.0, -2.3099744339560857e-11, 8.472689216887375e-11, 9.589662397502252e-11, -8.597567102697212e-13, -6.745715097622451e-11, -2.7711166694643907e-13, -2.3447910280083306e-13, -2.4158453015843406e-13, -1.9895196601282805e-13, -2.1316282072803006e-13, -2.3447910280083306e-13, -2.7000623958883807e-13, -3.730349362740526e-13, -3.803179993155936e-12, 3.5493386008056405e-11, 3.9401371054736956e-11, 4.3218761902608094e-11, -4.305888978706207e-11, -4.356337512945174e-11, -6.963318810448982e-13, -7.638334409421077e-13, -3.096964462656615e-09, -3.97140098584714e-09, 4.7481842457841594e-08, 4.879990100903342e-08, -1.9739587742151343e-10, -1.999893584070378e-10, -2.021920408878941e-10, 1.7763861492881006e-08, -2.0522605836958974e-10, -2.0330048755567987e-10, -2.0153123614363722e-10, -1.9976909015895217e-10, -1.9800694417426712e-10, -5.794241531020816e-09, 2.1191729260294778e-08, -2.1249491055641556e-10, -2.1793766791233793e-10, -2.227409368060762e-10, -2.26947349801776e-10, -2.3067059373715892e-10, 7.514957545140533e-09, 7.647971145274823e-09, 7.797563483791237e-09, 8.555408825827726e-09, 2.1419364060193402e-09, 2.704560131405742e-09, 1.0970275354793557e-08, 1.140855943049246e-08, -1.786034431461303e-09, -8.03005661964562e-10, -7.882263730607519e-10, -4.1394798699911917e-10, -4.091162963959505e-10, -4.04369870921073e-10, -3.9967318343769875e-10, -3.950759719373309e-10, -3.9048586586432066e-10, -3.859241815007408e-10 ] }, { "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, 1.4210854715202004e-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": "5ed7e067", "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": "2416b38b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimized gate objective: -666358.3709399446\n", "Difference from open tunnel objective: -7177.292194458889\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": "4cdd4f68", "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": "2d1a64c2", "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": [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.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": [ 78.60671447386858, 78.45986668019985, 78.31302147348856, 78.16618013562005, 78.01934390465743, 77.8725139761514, 77.7256915044084, 77.57887760371926, 77.43207334954899, 77.28527977968938, 77.13849789537609, 76.99172866237058, 56.944841436857125, 0.0, 0.0, 0.0, 0.0, 56.96586627798112, 76.77014949985278, 76.62340890445809, 76.47668368779003, 76.32997468269186, 76.18328269149913, 76.0366084869364, 56.275791167537704, 56.202760732736145, 56.12975074429103, 10.352538113368817, 10.352523694694591, 10.35240113107991, 56.02565234565572, 55.952600471874554, 55.879568763298664, 55.80655748508544, 55.733566883425425, 55.66059718631316, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 75.56614948697211, 75.41930213755865, 75.2724576535555, 75.12561730736383, 74.9787823278272, 55.54287952504265, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.3058445256507, 75.84272486937164, 75.69629193088078, 75.54981646968375, 75.40330125196782, 75.25674895432583, 75.11016216659532, 74.96354339459857 ] }, { "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.31988527275081, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -42.25399019382686, -49.99979192347906, -43.09547275500958, -43.49173048764416, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -42.7289723185939, -43.12595916594803, -43.52215627918226, -43.91756601250649, -44.31219071078266, -44.706032709571126, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -49.999146161644376, -45.131406470575165, -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.63336834968311, 94.4505207006831, 94.26798086869478, 94.08574567774085, 93.90381199058108, 93.72217670811234, 93.54083676878085, 93.35978914800604, 93.17903085761608, 92.9985589452945, 92.81837049403786, 92.6918953783443, 92.7228015970351, 92.75244583565556, 92.78082910617721, 92.86392106776165, 92.73721509813778, 92.5573179594121, 92.37769844271419, 92.19835373511825, 92.01928105692663, 91.8404776611786, 91.66194083316834, 91.5377102832771, 91.41369147925444, 91.2898815558485, 91.2907905851164, 91.29080966540386, 91.28995604363405, 91.16549727713564, 91.0412533502963, 90.9172213504868, 90.79339840970184, 90.66978170372622, 90.54636845131236, 90.58569834428954, 90.62376116694954, 90.89376116694953, 91.1918386563498, 91.46183865634981, 91.73183865634981, 91.54843331732931, 91.36534156482745, 91.18256015225589, 91.00008587277287, 90.81791555875381, 90.68873393555467, 90.95873393555466, 91.22873393555466, 91.49873393555467, 91.76873393555466, 92.03873393555466, 92.30873393555466, 92.30873393555466, 92.30873393555466, 92.30873393555466, 92.30873393555466, 92.30873393555466, 92.30873393555466, 92.30873393555466, 92.30873393555466, 92.59848461950753, 92.86848461950753, 92.72505118955064, 92.5333836346336, 92.34211755055875, 92.15124855989434, 91.96077234394686, 91.77068464172231, 91.58098124891065, 91.39165801689532 ] }, { "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.41425432225915, 94.29618800941893, 94.17782329188766, 94.05916323121915, 93.94021085199395, 93.82096914238392, 93.7014410547055, 93.58162950596213, 93.49310462165569, 93.46219840296489, 93.43255416434442, 93.40417089382278, 93.59107893223835, 93.5027849018622, 93.38268204058788, 93.26230155728578, 93.14164626488173, 93.02071894307335, 92.89952233882137, 92.77805916683162, 92.68728971672287, 92.59630852074552, 92.50511844415146, 92.45920941488356, 92.4141903345961, 92.3700439563659, 92.27950272286432, 92.18874664970366, 92.09777864951317, 92.00660159029813, 91.91521829627375, 91.8236315486876, 91.78430165571042, 91.74623883305043, 91.74623883305043, 91.74623883305043, 91.74623883305043, 91.74623883305043, 91.62964417207091, 91.51273592457277, 91.39551733714433, 91.27799161662735, 91.16016193064642, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.07434355384557, 91.00277698380245, 90.89444453871947, 90.78571062279431, 90.67657961345871, 90.5670558294062, 90.45714353163075, 90.3468469244424, 90.23617015645773 ] } ], "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": "13eac013", "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": "fe179e9c", "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.15765632612571, 61.05289377950078, 60.94921633333939, 60.84661066277193, 60.74506365131018, 60.64456238659312, 60.54509415624339, 60.44664644383007, 60.34920692493514, 60.25276346331993, 60.157304107188665, 60.062817085546094, 42.15837189785287, -10.302072896933364, -9.881412873487914, -9.461090173879022, -27.697320528145987, 42.235323207952774, 59.96571290856045, 59.87317223263302, 59.78156919865011, 59.69089273053963, 59.601131916009656, 59.512276003416844, 41.41018329708331, 41.3396013408838, 41.2699744686461, -0.303009755967798, -0.006360095819905709, 0.2845405899351938, 41.48625549946938, 41.414642279781106, 41.34399993650223, 41.27431359498755, 41.20556865854061, 41.137750804617575, -13.109964325729035, -12.6876075533304, -90.0, -99.35916313342352, -90.0, -90.0, 61.13511300682814, 61.030584167286875, 60.927137523852466, 60.82475982767201, 60.72343800635726, 43.0605410663803, -90.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, -96.58356131762324, -90.0, 47.81114331896255, 63.88918497234476, 63.75536135827777, 63.62299688813796, 63.492071982493414, 63.362567408182166, 63.234464270554334, 63.107744005104074 ] }, { "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.9471062204992, 39.05078366666058, 39.153389337228035, 39.254936348689775, 39.35543761340684, 39.45490584375658, 39.5533535561699, 39.65079307506484, 39.74723653668005, 39.8426958928113, 39.93718291445387, 29.508294768813748, 10.302072896933362, 9.8814128734879, 9.461090173879022, 27.697320528145987, 29.431343458713883, 40.03428709143954, 40.12682776736699, 40.21843080134989, 40.30910726946037, 40.39886808399034, 40.487723996583156, 30.25648336958335, 30.32706532578285, 30.396692198020563, 15.303009755967798, 15.006360095819911, 14.715459410064813, 30.180411167197274, 30.25202438688555, 30.32266673016443, 30.392353071679114, 30.461098008126047, 30.528915862049082, 13.109964325729038, 12.687607553330405, 90.0, 99.35916313342352, 90.0, 90.0, 38.86488699317186, 38.969415832713125, 39.072862476147534, 39.175240172327975, 39.27656199364274, 28.606125600286347, 90.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, 96.58356131762324, 90.0, 23.85552334770411, 36.11081502765524, 36.24463864172225, 36.37700311186205, 36.5079280175066, 36.63743259181784, 36.76553572944567, 36.89225599489593 ] }, { "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.94710622049923, 39.050783666660614, 39.15338933722808, 39.254936348689824, 39.35543761340688, 39.4549058437566, 39.55335355616994, 39.65079307506487, 39.74723653668007, 39.84269589281134, 39.9371829144539, 29.508294768813805, 10.30207289693337, 9.88141287348791, 9.461090173879015, -62.30267947185402, 29.431343458713883, 40.03428709143954, 40.126827767367, 40.21843080134989, 40.30910726946037, 40.39886808399034, 40.487723996583156, 30.25648336958335, 30.327065325782854, 30.396692198020563, 15.3030097559678, 15.00636009581992, 14.715459410064812, 30.180411167197274, 30.25202438688555, 30.32266673016443, 30.392353071679114, 30.461098008126047, 30.528915862049082, 13.109964325729035, 12.687607553330402, 0.0, 0.0, 0.0, 0.0, 38.86488699317186, 38.969415832713125, 39.07286247614753, 39.175240172327975, 39.27656199364274, 28.606125600286347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 23.855523347704107, 36.11081502765525, 36.24463864172225, 36.37700311186205, 36.50792801750661, 36.637432591817834, 36.76553572944567, 36.89225599489593 ] }, { "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, -99.35916313342352, -90.0, -90.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -90.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, -96.58356131762324, -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, -2.1316282072803006e-14, 2.1316282072803006e-14, -3.552713678800501e-14, 0.0, 7.105427357601002e-15, 0.0, 3.552713678800501e-14, 2.1316282072803006e-14, -2.842170943040401e-14, -2.842170943040401e-14, 1.4210854715202004e-14, 2.1316282072803006e-14, 2.263475451513841e-08, -6.66880062283326e-09, -6.928960516461302e-09, -6.782130412830156e-11, -4.1806202943917015e-10, -2.1380230919021415e-11, -2.1096013824717375e-11, -2.084021843984374e-11, -2.0605739337042905e-11, -2.042810365310288e-11, -2.0129675704083638e-11, 5.3343924832915945e-09, -3.1815261536394246e-10, -1.1881908790201123e-09, -1.274732004952206e-07, -1.2302564726847376e-07, -1.1056900328654251e-07, 1.299248708619416e-09, 1.201783561555203e-09, 2.0568009517774044e-09, 2.0143815504525264e-09, 1.9728645384020638e-09, 8.247766913882515e-09, 2.103275775766633e-08, 2.7198533203431907e-08, 0.0, -2.842170943040401e-14, 0.0, 0.0, -2.9011864910444274e-08, 1.6571277683397057e-09, 1.6225172316808312e-09, 1.5887167137407232e-09, 1.5556906873825938e-09, 6.592728141185944e-09, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -2.842170943040401e-14, 0.0, -8.012413843516697e-09, 1.3866667813999811e-09, 1.3565681911131833e-09, 1.3272583032630791e-09, 1.2985665875930863e-09, 1.1806946531578433e-09, 1.1609060379669245e-09, 1.2221832434988755e-09 ] }, { "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, -7.105427357601002e-15, -4.973799150320701e-14, 7.105427357601002e-15, -4.263256414560601e-14, -3.552713678800501e-14, -2.842170943040401e-14, -6.394884621840902e-14, -4.973799150320701e-14, 0.0, 0.0, -4.263256414560601e-14, -5.684341886080802e-14, -2.263475629149525e-08, 6.6687864119785445e-09, 6.928960516461302e-09, 6.782130412830156e-11, 4.1806202943917015e-10, 2.1366020064306213e-11, 2.1096013824717375e-11, 2.084021843984374e-11, 2.0605739337042905e-11, 2.042810365310288e-11, 2.0129675704083638e-11, -5.334388930577916e-09, 3.1815616807762126e-10, 1.1881944317337911e-09, 1.2747320177197707e-07, 1.2302565366439921e-07, 1.105690117242375e-07, -1.2992522613330948e-09, -1.201783561555203e-09, -2.0567973990637256e-09, -2.0143851031662052e-09, -1.9728645384020638e-09, -8.247774019309873e-09, -2.1032754204952653e-08, -2.719852787436139e-08, 0.0, 2.842170943040401e-14, 0.0, 0.0, 2.9011864910444274e-08, -1.6571277683397057e-09, -1.6225172316808312e-09, -1.5887309245954384e-09, -1.5556906873825938e-09, -6.592728141185944e-09, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.842170943040401e-14, 0.0, 8.012417396230376e-09, -1.3866667813999811e-09, -1.356553980258468e-09, -1.327244092408364e-09, -1.298552376738371e-09, -1.1806946531578433e-09, -1.1609060379669245e-09, -1.2221832434988755e-09 ] }, { "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, 2.1316282072803006e-14, -1.4210854715202004e-14, 4.973799150320701e-14, 7.105427357601002e-15, 0.0, -7.105427357601002e-15, -2.842170943040401e-14, -2.1316282072803006e-14, 2.1316282072803006e-14, 4.263256414560601e-14, -1.4210854715202004e-14, 0.0, -2.2634749186067893e-08, 6.668797070119581e-09, 6.9289534110339446e-09, 6.780709327358636e-11, 4.1806202943917015e-10, 2.1366020064306213e-11, 2.1103119252074976e-11, 2.084021843984374e-11, 2.0605739337042905e-11, 2.042810365310288e-11, 2.0129675704083638e-11, -5.334388930577916e-09, 3.1815972079130006e-10, 1.1881944317337911e-09, 1.274732035483339e-07, 1.230256625461834e-07, 1.1056900994788066e-07, -1.2992522613330948e-09, -1.201783561555203e-09, -2.0567973990637256e-09, -2.0143851031662052e-09, -1.9728645384020638e-09, -8.247774019309873e-09, -2.103275775766633e-08, -2.7198531427075068e-08, 0.0, 0.0, 0.0, 0.0, 2.9011864910444274e-08, -1.6571277683397057e-09, -1.6225243371081888e-09, -1.5887309245954384e-09, -1.5556906873825938e-09, -6.592728141185944e-09, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.012413843516697e-09, -1.3866596759726235e-09, -1.356553980258468e-09, -1.327244092408364e-09, -1.2985452713110135e-09, -1.1807017585852009e-09, -1.1609060379669245e-09, -1.2221832434988755e-09 ] }, { "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, -2.842170943040401e-14, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -2.842170943040401e-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 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": "8209dd62", "metadata": {}, "source": [ "## advanced_tunnel_model.py" ] }, { "cell_type": "code", "execution_count": 10, "id": "409b3e82", "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.12.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 }