{
"cells": [
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"from notepad import WaterStorage, Heatpump\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Tsource (VDG) | \n",
" Tsink (VDG) | \n",
" MW (VDG) | \n",
" Tsource (NDG) | \n",
" Tsink (NDG) | \n",
" MW (NDG) | \n",
" Unnamed: 7 | \n",
" Unnamed: 8 | \n",
" Unnamed: 9 | \n",
" Unnamed: 10 | \n",
" Unnamed: 11 | \n",
" Unnamed: 12 | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2018-11-01 00:00:00 | \n",
" 64.986977 | \n",
" 143.358798 | \n",
" 0.000000 | \n",
" 20.514811 | \n",
" 147.621126 | \n",
" 0.000000 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:10:00 | \n",
" 64.942589 | \n",
" 140.647419 | \n",
" 0.000000 | \n",
" 19.280056 | \n",
" 147.842503 | \n",
" 0.000000 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:20:00 | \n",
" 54.578777 | \n",
" 138.960493 | \n",
" 0.000000 | \n",
" 17.950905 | \n",
" 148.138964 | \n",
" 0.000000 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:30:00 | \n",
" 65.195641 | \n",
" 139.936392 | \n",
" 0.000000 | \n",
" 23.053127 | \n",
" 147.864660 | \n",
" 0.000000 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:40:00 | \n",
" 65.137703 | \n",
" 139.834265 | \n",
" 0.000000 | \n",
" 43.948387 | \n",
" 147.306191 | \n",
" 0.000000 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 2018-11-01 15:50:00 | \n",
" 64.977669 | \n",
" 157.649509 | \n",
" 20.631462 | \n",
" 64.929398 | \n",
" 166.147289 | \n",
" 6.785675 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 16:00:00 | \n",
" 64.951965 | \n",
" 157.755094 | \n",
" 20.621554 | \n",
" 64.830673 | \n",
" 165.059628 | \n",
" 6.795409 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 16:10:00 | \n",
" 64.940338 | \n",
" 157.860450 | \n",
" 20.594887 | \n",
" 64.749290 | \n",
" 164.350482 | \n",
" 6.795437 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 16:20:00 | \n",
" 64.940338 | \n",
" 157.965580 | \n",
" 20.589894 | \n",
" 64.489296 | \n",
" 163.434915 | \n",
" 6.804813 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 16:30:00 | \n",
" 64.940338 | \n",
" 158.070484 | \n",
" 20.799079 | \n",
" 64.245148 | \n",
" 163.312629 | \n",
" 6.876395 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
100 rows × 12 columns
\n",
"
"
],
"text/plain": [
" Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n",
"2018-11-01 00:00:00 64.986977 143.358798 0.000000 20.514811 \n",
"2018-11-01 00:10:00 64.942589 140.647419 0.000000 19.280056 \n",
"2018-11-01 00:20:00 54.578777 138.960493 0.000000 17.950905 \n",
"2018-11-01 00:30:00 65.195641 139.936392 0.000000 23.053127 \n",
"2018-11-01 00:40:00 65.137703 139.834265 0.000000 43.948387 \n",
"... ... ... ... ... \n",
"2018-11-01 15:50:00 64.977669 157.649509 20.631462 64.929398 \n",
"2018-11-01 16:00:00 64.951965 157.755094 20.621554 64.830673 \n",
"2018-11-01 16:10:00 64.940338 157.860450 20.594887 64.749290 \n",
"2018-11-01 16:20:00 64.940338 157.965580 20.589894 64.489296 \n",
"2018-11-01 16:30:00 64.940338 158.070484 20.799079 64.245148 \n",
"\n",
" Tsink (NDG) MW (NDG) Unnamed: 7 Unnamed: 8 \\\n",
"2018-11-01 00:00:00 147.621126 0.000000 NaN NaN \n",
"2018-11-01 00:10:00 147.842503 0.000000 NaN NaN \n",
"2018-11-01 00:20:00 148.138964 0.000000 NaN NaN \n",
"2018-11-01 00:30:00 147.864660 0.000000 NaN NaN \n",
"2018-11-01 00:40:00 147.306191 0.000000 NaN NaN \n",
"... ... ... ... ... \n",
"2018-11-01 15:50:00 166.147289 6.785675 NaN NaN \n",
"2018-11-01 16:00:00 165.059628 6.795409 NaN NaN \n",
"2018-11-01 16:10:00 164.350482 6.795437 NaN NaN \n",
"2018-11-01 16:20:00 163.434915 6.804813 NaN NaN \n",
"2018-11-01 16:30:00 163.312629 6.876395 NaN NaN \n",
"\n",
" Unnamed: 9 Unnamed: 10 Unnamed: 11 Unnamed: 12 \n",
"2018-11-01 00:00:00 NaN NaN NaN NaN \n",
"2018-11-01 00:10:00 NaN NaN NaN NaN \n",
"2018-11-01 00:20:00 NaN NaN NaN NaN \n",
"2018-11-01 00:30:00 NaN NaN NaN NaN \n",
"2018-11-01 00:40:00 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2018-11-01 15:50:00 NaN NaN NaN NaN \n",
"2018-11-01 16:00:00 NaN NaN NaN NaN \n",
"2018-11-01 16:10:00 NaN NaN NaN NaN \n",
"2018-11-01 16:20:00 NaN NaN NaN NaN \n",
"2018-11-01 16:30:00 NaN NaN NaN NaN \n",
"\n",
"[100 rows x 12 columns]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_excel('Demand_Data_Smurfit_Preprocessed.xlsx', sheet_name='nov2018', index_col=0)\n",
"data[:100]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Tsource (VDG) | \n",
" Tsink (VDG) | \n",
" MW (VDG) | \n",
" Tsource (NDG) | \n",
" Tsink (NDG) | \n",
" MW (NDG) | \n",
" Unnamed: 7 | \n",
" Unnamed: 8 | \n",
" Unnamed: 9 | \n",
" Unnamed: 10 | \n",
" Unnamed: 11 | \n",
" Unnamed: 12 | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2018-11-01 00:00:00 | \n",
" 64.986977 | \n",
" 143.358798 | \n",
" 0.0 | \n",
" 20.514811 | \n",
" 147.621126 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:10:00 | \n",
" 64.942589 | \n",
" 140.647419 | \n",
" 0.0 | \n",
" 19.280056 | \n",
" 147.842503 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:20:00 | \n",
" 54.578777 | \n",
" 138.960493 | \n",
" 0.0 | \n",
" 17.950905 | \n",
" 148.138964 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:30:00 | \n",
" 65.195641 | \n",
" 139.936392 | \n",
" 0.0 | \n",
" 23.053127 | \n",
" 147.864660 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:40:00 | \n",
" 65.137703 | \n",
" 139.834265 | \n",
" 0.0 | \n",
" 43.948387 | \n",
" 147.306191 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 00:50:00 | \n",
" 65.358078 | \n",
" 139.731901 | \n",
" 0.0 | \n",
" 42.203876 | \n",
" 147.547612 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 01:00:00 | \n",
" 65.084549 | \n",
" 139.629295 | \n",
" 0.0 | \n",
" 18.354761 | \n",
" 148.337477 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 01:10:00 | \n",
" 64.810524 | \n",
" 139.526447 | \n",
" 0.0 | \n",
" 19.050589 | \n",
" 148.183192 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 01:20:00 | \n",
" 65.073433 | \n",
" 139.423357 | \n",
" 0.0 | \n",
" 19.903652 | \n",
" 149.186865 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2018-11-01 01:30:00 | \n",
" 65.007141 | \n",
" 139.320026 | \n",
" 0.0 | \n",
" 21.213211 | \n",
" 147.764356 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n",
"2018-11-01 00:00:00 64.986977 143.358798 0.0 20.514811 \n",
"2018-11-01 00:10:00 64.942589 140.647419 0.0 19.280056 \n",
"2018-11-01 00:20:00 54.578777 138.960493 0.0 17.950905 \n",
"2018-11-01 00:30:00 65.195641 139.936392 0.0 23.053127 \n",
"2018-11-01 00:40:00 65.137703 139.834265 0.0 43.948387 \n",
"2018-11-01 00:50:00 65.358078 139.731901 0.0 42.203876 \n",
"2018-11-01 01:00:00 65.084549 139.629295 0.0 18.354761 \n",
"2018-11-01 01:10:00 64.810524 139.526447 0.0 19.050589 \n",
"2018-11-01 01:20:00 65.073433 139.423357 0.0 19.903652 \n",
"2018-11-01 01:30:00 65.007141 139.320026 0.0 21.213211 \n",
"\n",
" Tsink (NDG) MW (NDG) Unnamed: 7 Unnamed: 8 \\\n",
"2018-11-01 00:00:00 147.621126 0.0 NaN NaN \n",
"2018-11-01 00:10:00 147.842503 0.0 NaN NaN \n",
"2018-11-01 00:20:00 148.138964 0.0 NaN NaN \n",
"2018-11-01 00:30:00 147.864660 0.0 NaN NaN \n",
"2018-11-01 00:40:00 147.306191 0.0 NaN NaN \n",
"2018-11-01 00:50:00 147.547612 0.0 NaN NaN \n",
"2018-11-01 01:00:00 148.337477 0.0 NaN NaN \n",
"2018-11-01 01:10:00 148.183192 0.0 NaN NaN \n",
"2018-11-01 01:20:00 149.186865 0.0 NaN NaN \n",
"2018-11-01 01:30:00 147.764356 0.0 NaN NaN \n",
"\n",
" Unnamed: 9 Unnamed: 10 Unnamed: 11 Unnamed: 12 \n",
"2018-11-01 00:00:00 NaN NaN NaN NaN \n",
"2018-11-01 00:10:00 NaN NaN NaN NaN \n",
"2018-11-01 00:20:00 NaN NaN NaN NaN \n",
"2018-11-01 00:30:00 NaN NaN NaN NaN \n",
"2018-11-01 00:40:00 NaN NaN NaN NaN \n",
"2018-11-01 00:50:00 NaN NaN NaN NaN \n",
"2018-11-01 01:00:00 NaN NaN NaN NaN \n",
"2018-11-01 01:10:00 NaN NaN NaN NaN \n",
"2018-11-01 01:20:00 NaN NaN NaN NaN \n",
"2018-11-01 01:30:00 NaN NaN NaN NaN "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start, end = '2018-11-01 00:00:00', '2018-11-01 16:30:00'\n",
"df = data[start:end]\n",
"df[:10]\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"df = df.resample('15T', origin=start).mean()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Tsource (VDG) | \n",
" Tsink (VDG) | \n",
" MW (VDG) | \n",
" Tsource (NDG) | \n",
" Tsink (NDG) | \n",
" MW (NDG) | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2018-11-01 00:00:00 | \n",
" 64.964783 | \n",
" 142.003109 | \n",
" 0.0 | \n",
" 19.897433 | \n",
" 147.731814 | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 2018-11-01 00:15:00 | \n",
" 54.578777 | \n",
" 138.960493 | \n",
" 0.0 | \n",
" 17.950905 | \n",
" 148.138964 | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 2018-11-01 00:30:00 | \n",
" 65.166672 | \n",
" 139.885329 | \n",
" 0.0 | \n",
" 33.500757 | \n",
" 147.585426 | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 2018-11-01 00:45:00 | \n",
" 65.358078 | \n",
" 139.731901 | \n",
" 0.0 | \n",
" 42.203876 | \n",
" 147.547612 | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 2018-11-01 01:00:00 | \n",
" 64.947536 | \n",
" 139.577871 | \n",
" 0.0 | \n",
" 18.702675 | \n",
" 148.260335 | \n",
" 0.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n",
"2018-11-01 00:00:00 64.964783 142.003109 0.0 19.897433 \n",
"2018-11-01 00:15:00 54.578777 138.960493 0.0 17.950905 \n",
"2018-11-01 00:30:00 65.166672 139.885329 0.0 33.500757 \n",
"2018-11-01 00:45:00 65.358078 139.731901 0.0 42.203876 \n",
"2018-11-01 01:00:00 64.947536 139.577871 0.0 18.702675 \n",
"\n",
" Tsink (NDG) MW (NDG) \n",
"2018-11-01 00:00:00 147.731814 0.0 \n",
"2018-11-01 00:15:00 148.138964 0.0 \n",
"2018-11-01 00:30:00 147.585426 0.0 \n",
"2018-11-01 00:45:00 147.547612 0.0 \n",
"2018-11-01 01:00:00 148.260335 0.0 "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df=df.drop(['Unnamed: 7', 'Unnamed: 8', 'Unnamed: 9', 'Unnamed: 10', 'Unnamed: 11', 'Unnamed: 12'], axis=1)\n",
"df[:5]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.90,\n",
" energy_density = 50 * 10e-3,\n",
" volume = 500,\n",
" lifetime = 25,\n",
" temperature = 368, #K\n",
" min_storagelevel = 5,\n",
" max_storagelevel = 23\n",
" \n",
")\n",
"waterstorage.set_freq('15T')\n",
"waterstorage.storagelevel = 3\n",
"waterstorage.set_storagelevel(15)\n",
"waterstorage.storagelevel\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"def hp_mass_flow (hp_capacity, Tsink, Tref, Cp):\n",
" return hp_capacity /(Cp*(Tsink - Tref)) \n",
"\n",
"def process_mass_flow (demand, Tsink, Tref, Cp):\n",
" return demand /(Cp*(Tsink - Tref)) \n",
"\n",
"def COP_calculation(Tsink, Tsource):\n",
" return Tsink / (Tsink - Tsource)\n",
"\n",
"from numpy.polynomial import Polynomial\n",
"\n",
"def cop_curve(Tsink, Tsource):\n",
" c0 = Tsink / (Tsink - Tsource) \n",
" return Polynomial([c0])\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'name': 'Heatpump',\n",
" 'max_th_power': 40,\n",
" 'min_th_power': 5,\n",
" 'cop_curve': }"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# heatpump = Heatpump(\"heatpump1\", 50, cop_curve, 10)\n",
"# heatpump.set_heat_output(50, Tsource=333, Tsink=413)\n",
"cop_curve(140, 13)\n",
"\n",
"heatpump = Heatpump(\n",
" name='Heatpump',\n",
" max_th_power=40,\n",
" min_th_power=5,\n",
" cop_curve=cop_curve\n",
")\n",
"\n",
"heatpump.__dict__\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"341.450974129671"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Tsink = 413 #K\n",
"Tsource = 333 #K\n",
"Tref = 273 #K\n",
"hp_capacity = 31 #MW\n",
"demand = 25 #MW\n",
"Cp = 4190 #J/kgK\n",
"MW_to_J_per_s = 1000_000\n",
"hp_capacity *= MW_to_J_per_s\n",
"demand *= MW_to_J_per_s\n",
"\n",
"charge_mass_flow = hp_mass_flow (hp_capacity, Tsink, Tref, Cp) - process_mass_flow (demand, Tsink, Tref, Cp)\n",
"charged_heat = (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n",
"charged_heat\n",
"\n",
"efficiency = 0.9\n",
"Tstorage = 95 + 273\n",
"discharged_heat = charged_heat * efficiency #MW\n",
"discharge_mass_flow = discharged_heat * MW_to_J_per_s /(Cp*(Tstorage - Tref))\n",
"discharge_mass_flow\n",
"process_mass_flow\n",
"\n",
"def Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow):\n",
" return (Tstorage * discharge_mass_flow + Tsource * process_mass_flow)/ (discharge_mass_flow + process_mass_flow)\n",
" \n",
"\n",
"Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow (demand, Tsink, Tref, Cp))\n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"def test_heatpump_and_waterstorage_system(Tsink, Tsource, process_demand_MW, e_price, waterstorage_level):\n",
" \"\"\"\n",
" 1. Follow a certain logic based on given price:\n",
" - If price is low --> Heatpump at full power, and charge the heatbuffer\n",
" - If price is high --> Discharge the heat buffer, and increase Tsource, which will increase COP\n",
" 2. Above logic should adhere to a couple of constraints:\n",
" - Storage levels\n",
" - Capacity of the heat pump \n",
" - Process demand\n",
" - ....\n",
" 3. This function should contain: \n",
" - Heat pump \n",
" - Water storage\n",
" - Interactions / logic between them\n",
" 4. Output of the function:\n",
" - Power of the heatpump \n",
" - \"New\" water storage level\n",
" \"\"\"\n",
" waterstorage.storage_level = waterstorage_level\n",
" \n",
" if e_price < 50:\n",
" hp_load = heatpump.max_th_power #bunu yoxla heat pump-a birbasa set load demek olmur. Ve funksiyada heatpump obyekti var ama o evvel initialize olunmayib\n",
" energy_to_storage = hp_load - process_demand_MW\n",
" waterstorage.charge(energy_to_storage)\n",
" waterstorage.charged_energy = waterstorage.MW_to_MWh(energy_to_storage)\n",
" waterstorage_level = waterstorage.storage_level\n",
" new_cl = waterstorage.storage_level + waterstorage.charged_energy\n",
" if e_price > 100:\n",
" Tstorage = 320\n",
" energy_from_storage = discharged_heat\n",
" waterstorage_level = waterstorage.storage_level\n",
" waterstorage.discharged_energy = waterstorage.MW_to_MWh(energy_from_storage)\n",
" new_cl = waterstorage.storage_level - waterstorage.discharged_energy\n",
" def Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow):\n",
" return (\n",
" (Tstorage * discharge_mass_flow + Tsource * process_mass_flow)\n",
" / (discharge_mass_flow + process_mass_flow)\n",
" )\n",
" new_Tsource = Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow (demand, Tsink, Tref, Cp))\n",
" new_COP = COP_calculation (Tsink, new_Tsource)\n",
" hp_load = heatpump.set_heat_output(process_demand_MW, Tsink, Tsource) #bu da hemcinin set load assetin funksiyasidir, \n",
" #heatpump da overwrite edilib. men evezinde yazdim ki set_heat_output\n",
" #sen gor hansi funksiya sene lazimdir.\n",
"\n",
" return hp_load, new_cl, waterstorage_level"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((-5.319148936170213, 25), 21.65, 23)"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results = test_heatpump_and_waterstorage_system(\n",
" Tsink = 150+273, \n",
" Tsource = 60+273, \n",
" process_demand_MW = 25, \n",
" e_price = 130, \n",
" waterstorage_level = 23\n",
")\n",
"\n",
"results"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"for i in df.index:\n",
" # df.loc[i, 'hpload'] = test_heatpump_and_waterstorage_system(df.loc[i, 'Tsink (VDG)']+273, df.loc[i, 'Tsource (VDG)']+273, df.loc[i, 'MW (VDG)'], 30, 23)[0][1]\n",
" df.loc[i, 'new_cl'] = test_heatpump_and_waterstorage_system(df.loc[i, 'Tsink (VDG)']+273, df.loc[i, 'Tsource (VDG)']+273, df.loc[i, 'MW (VDG)'], 30, 23)[1]\n",
" df.loc[i, 'storage_level'] = test_heatpump_and_waterstorage_system(df.loc[i, 'Tsink (VDG)']+273, df.loc[i, 'Tsource (VDG)']+273, df.loc[i, 'MW (VDG)'], 30, 23)[2]"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Tsource (VDG) | \n",
" Tsink (VDG) | \n",
" MW (VDG) | \n",
" Tsource (NDG) | \n",
" Tsink (NDG) | \n",
" MW (NDG) | \n",
" new_cl | \n",
" storage_level | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2018-11-01 00:00:00 | \n",
" 64.964783 | \n",
" 142.003109 | \n",
" 0.000000 | \n",
" 19.897433 | \n",
" 147.731814 | \n",
" 0.000000 | \n",
" 33.000000 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 00:15:00 | \n",
" 54.578777 | \n",
" 138.960493 | \n",
" 0.000000 | \n",
" 17.950905 | \n",
" 148.138964 | \n",
" 0.000000 | \n",
" 33.000000 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 00:30:00 | \n",
" 65.166672 | \n",
" 139.885329 | \n",
" 0.000000 | \n",
" 33.500757 | \n",
" 147.585426 | \n",
" 0.000000 | \n",
" 33.000000 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 00:45:00 | \n",
" 65.358078 | \n",
" 139.731901 | \n",
" 0.000000 | \n",
" 42.203876 | \n",
" 147.547612 | \n",
" 0.000000 | \n",
" 33.000000 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 01:00:00 | \n",
" 64.947536 | \n",
" 139.577871 | \n",
" 0.000000 | \n",
" 18.702675 | \n",
" 148.260335 | \n",
" 0.000000 | \n",
" 33.000000 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 2018-11-01 15:30:00 | \n",
" 65.016212 | \n",
" 157.229508 | \n",
" 20.716926 | \n",
" 64.996845 | \n",
" 167.135901 | \n",
" 6.798455 | \n",
" 27.820769 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 15:45:00 | \n",
" 64.977669 | \n",
" 157.649509 | \n",
" 20.631462 | \n",
" 64.929398 | \n",
" 166.147289 | \n",
" 6.785675 | \n",
" 27.842134 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 16:00:00 | \n",
" 64.946152 | \n",
" 157.807772 | \n",
" 20.608221 | \n",
" 64.789982 | \n",
" 164.705055 | \n",
" 6.795423 | \n",
" 27.847945 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 16:15:00 | \n",
" 64.940338 | \n",
" 157.965580 | \n",
" 20.589894 | \n",
" 64.489296 | \n",
" 163.434915 | \n",
" 6.804813 | \n",
" 27.852526 | \n",
" 23.0 | \n",
"
\n",
" \n",
" | 2018-11-01 16:30:00 | \n",
" 64.940338 | \n",
" 158.070484 | \n",
" 20.799079 | \n",
" 64.245148 | \n",
" 163.312629 | \n",
" 6.876395 | \n",
" 27.800230 | \n",
" 23.0 | \n",
"
\n",
" \n",
"
\n",
"
67 rows × 8 columns
\n",
"
"
],
"text/plain": [
" Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n",
"2018-11-01 00:00:00 64.964783 142.003109 0.000000 19.897433 \n",
"2018-11-01 00:15:00 54.578777 138.960493 0.000000 17.950905 \n",
"2018-11-01 00:30:00 65.166672 139.885329 0.000000 33.500757 \n",
"2018-11-01 00:45:00 65.358078 139.731901 0.000000 42.203876 \n",
"2018-11-01 01:00:00 64.947536 139.577871 0.000000 18.702675 \n",
"... ... ... ... ... \n",
"2018-11-01 15:30:00 65.016212 157.229508 20.716926 64.996845 \n",
"2018-11-01 15:45:00 64.977669 157.649509 20.631462 64.929398 \n",
"2018-11-01 16:00:00 64.946152 157.807772 20.608221 64.789982 \n",
"2018-11-01 16:15:00 64.940338 157.965580 20.589894 64.489296 \n",
"2018-11-01 16:30:00 64.940338 158.070484 20.799079 64.245148 \n",
"\n",
" Tsink (NDG) MW (NDG) new_cl storage_level \n",
"2018-11-01 00:00:00 147.731814 0.000000 33.000000 23.0 \n",
"2018-11-01 00:15:00 148.138964 0.000000 33.000000 23.0 \n",
"2018-11-01 00:30:00 147.585426 0.000000 33.000000 23.0 \n",
"2018-11-01 00:45:00 147.547612 0.000000 33.000000 23.0 \n",
"2018-11-01 01:00:00 148.260335 0.000000 33.000000 23.0 \n",
"... ... ... ... ... \n",
"2018-11-01 15:30:00 167.135901 6.798455 27.820769 23.0 \n",
"2018-11-01 15:45:00 166.147289 6.785675 27.842134 23.0 \n",
"2018-11-01 16:00:00 164.705055 6.795423 27.847945 23.0 \n",
"2018-11-01 16:15:00 163.434915 6.804813 27.852526 23.0 \n",
"2018-11-01 16:30:00 163.312629 6.876395 27.800230 23.0 \n",
"\n",
"[67 rows x 8 columns]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "variable=storage_level
index=%{x}
value=%{y}",
"legendgroup": "storage_level",
"line": {
"color": "#636efa",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "storage_level",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
"2018-11-01T00:00:00",
"2018-11-01T00:15:00",
"2018-11-01T00:30:00",
"2018-11-01T00:45:00",
"2018-11-01T01:00:00",
"2018-11-01T01:15:00",
"2018-11-01T01:30:00",
"2018-11-01T01:45:00",
"2018-11-01T02:00:00",
"2018-11-01T02:15:00",
"2018-11-01T02:30:00",
"2018-11-01T02:45:00",
"2018-11-01T03:00:00",
"2018-11-01T03:15:00",
"2018-11-01T03:30:00",
"2018-11-01T03:45:00",
"2018-11-01T04:00:00",
"2018-11-01T04:15:00",
"2018-11-01T04:30:00",
"2018-11-01T04:45:00",
"2018-11-01T05:00:00",
"2018-11-01T05:15:00",
"2018-11-01T05:30:00",
"2018-11-01T05:45:00",
"2018-11-01T06:00:00",
"2018-11-01T06:15:00",
"2018-11-01T06:30:00",
"2018-11-01T06:45:00",
"2018-11-01T07:00:00",
"2018-11-01T07:15:00",
"2018-11-01T07:30:00",
"2018-11-01T07:45:00",
"2018-11-01T08:00:00",
"2018-11-01T08:15:00",
"2018-11-01T08:30:00",
"2018-11-01T08:45:00",
"2018-11-01T09:00:00",
"2018-11-01T09:15:00",
"2018-11-01T09:30:00",
"2018-11-01T09:45:00",
"2018-11-01T10:00:00",
"2018-11-01T10:15:00",
"2018-11-01T10:30:00",
"2018-11-01T10:45:00",
"2018-11-01T11:00:00",
"2018-11-01T11:15:00",
"2018-11-01T11:30:00",
"2018-11-01T11:45:00",
"2018-11-01T12:00:00",
"2018-11-01T12:15:00",
"2018-11-01T12:30:00",
"2018-11-01T12:45:00",
"2018-11-01T13:00:00",
"2018-11-01T13:15:00",
"2018-11-01T13:30:00",
"2018-11-01T13:45:00",
"2018-11-01T14:00:00",
"2018-11-01T14:15:00",
"2018-11-01T14:30:00",
"2018-11-01T14:45:00",
"2018-11-01T15:00:00",
"2018-11-01T15:15:00",
"2018-11-01T15:30:00",
"2018-11-01T15:45:00",
"2018-11-01T16:00:00",
"2018-11-01T16:15:00",
"2018-11-01T16:30:00"
],
"xaxis": "x",
"y": [
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23,
23
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"legend": {
"title": {
"text": "variable"
},
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"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,
"#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,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
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,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
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,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
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,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
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,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"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,
"#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,
"#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,
"#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,
"#f0f921"
]
],
"sequentialminus": [
[
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,
"#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
}
}
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
"2018-11-01",
"2018-11-01 16:30"
],
"title": {
"text": "index"
},
"type": "date"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
22,
24
],
"title": {
"text": "value"
},
"type": "linear"
}
}
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAABHsAAAFoCAYAAADHK/d8AAAAAXNSR0IArs4c6QAAIABJREFUeF7t3X/sXfWd3/mPcWKbUA+hngBrkiWFHQ0IBTZUbKxWaKPWq5nBjeiitZImVUr4jbUjWEMs85XCH0QyXge8oOmSgDGhow6byCu2ETWTkZgpK7qVZ1BpSYpC1IYN24wF6biEIS3GAbz63OTcnu/x/d5z7v287uvzOef75J8Z4Hve73Mfn/s19jP33u+akydPngz8hQACCCCAAAIIIIAAAggggAACCCAwCIE1xJ5BnCMPAgEEEEAAAQQQQAABBBBAAAEEEBgJEHt4IiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSWPWx5/jxE+Hu+x4Lh585Mj7Wxx/cHa647KJTjvn5F18O1962N6z07wf0vOChIIAAAggggAACCCCAAAIIIIBATwVWfex54823wje//d2w44tXhw0b1oUYdJb2HAgP77sjXHD+5vGxVqEn/gNiT0+f7dw2AggggAACCCCAAAIIIIAAAqtAYNXHnuYZx/izY/cDYect28ev7nnl1aPha1//Vti14++FpXsfXfbvVsFzhIeIAAIIIIAAAggggAACCCCAAAI9EiD2NA4rhp2lvY+GPbtv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7OGJgAACCCCAAAIIIIAAAggggAACCAxIgNgzoMPkoSCAAAIIIIAAAggggAACCCCAAALEHp4DCCCAAAIIIIAAAggggAACCCCAwIAEiD0DOkweCgIIIIAAAggggAACCCCAAAIIIEDs4TmAAAIIIIAAAggggAACCCCAAAIIDEiA2DOgw+ShIIAAAggggAACCCCAAAIIIIAAAsQengMIIIAAAggggAACCCCAAAIIIIDAgASIPQM6TB4KAggggAACCCCAAAIIIIAAAgggQOzhOYAAAggggAACCCCAAAIIIIAAAggMSIDYM6DD5KEggAACCCCAAAIIIIAAAggggAACxB6eAwgggAACCCCAAAIIIIAAAggggMCABIg9AzpMHgoCCCCAAAIIIIAAAggggAACCCBA7OE5gAACCCCAAAIIIIAAAggggAACCAxIgNgzoMPkoSCAAAIIIIAAAggggAACCCCAAALEHp4DCCCAAAIIIIAAAggggAACCCCAwIAEiD0DOkweCgIIIIAAAggggAACCCCAAAIIIEDs4TmAAAIIIIAAAggggAACCCCAAAIIDEiA2DOgw+ShIIAAAggggAACCCCAAAIIIIAAAsQengMIIIAAAggggAACCCCAAAIIIIDAgASIPQM6TB4KAggggAACCCCAAAIIIIAAAgggQOzhOYAAAggggAACCCCAAAIIIIAAAggMSIDYM6DD5KEggAACCCCAAAIIIIAAAggggAACxB6eAwgggAACCCCAAAIIIIAAAggggMCABP5/KPP3iW5xE/wAAAAASUVORK5CYII=",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import plotly.express as px\n",
"\n",
"fig = px.line(df['storage_level'])\n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"interpreter": {
"hash": "dd1accba5c44bbc1a722925963d63420d7a225a16ee8ad40deae87a5c5fb7f29"
},
"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.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}