{ "cells": [ { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import pulp" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "curve = [\n", " \"Apr'21\", 2.921,\n", " \"May'21\", 2.892,\n", " \"Jun'21\", 2.922,\n", " \"Jul'21\", 2.96,\n", " \"Aug'21\", 2.974,\n", " \"Sep'21\", 2.966,\n", " \"Oct'21\", 3.007,\n", " \"Nov'21\", 3.07,\n", " \"Dec'21\", 3.203,\n", " \"Jan'22\", 3.294,\n", " \"Feb'22\", 3.216,\n", " \"Mar'22\", 3.03,\n", " \"Apr'22\", 2.568,\n", " \"May'22\", 2.48,\n", " \"Jun'22\", 2.525,\n", " \"Jul'22\", 2.562,\n", " \"Aug'22\", 2.57,\n", " \"Sep'22\", 2.559,\n", " \"Oct'22\", 2.592,\n", " \"Nov'22\", 2.681,\n", " \"Dec'22\", 2.87,\n", " \"Jan'23\", 2.987,\n", " \"Feb'23\", 2.939,\n", " \"Mar'23\", 2.779,\n", " \"Apr'23\", 2.388\n", "]" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "df = pd.DataFrame( data={ 'Contract': curve[0::2], 'Price': curve[1::2]})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Forward curve exhibits strong seasonality" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df.plot(x='Contract', y='Price')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Storage contract parameters" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "N=12 # number of months to use\n", "max_storage_capacity = 100000\n", "max_daily_injection = pd.DataFrame(data=[(0.0,2000),(0.5,2000),(1.1,2000)], columns=['ratchet', 'mdiq'] )\n", "max_daily_withdrawal = pd.DataFrame( data=[(0.0,4000),(0.5,4000),(1.1,4000)], columns=['ratchet', 'mdwq'] )" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# injection / withdrawal quantities\n", "I=[None]*N\n", "W=[None]*N\n", "for i in range(N):\n", " I[i] = pulp.LpVariable(f'I_{i}', lowBound=0, cat='Integer')\n", " W[i] = pulp.LpVariable(f'W_{i}', lowBound=0, cat='Integer')" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "# number of days in each injection / drawing month\n", "days = list( map( lambda x: ((x+pd.DateOffset(months=1))-x).days, df.Contract.apply( lambda x: pd.to_datetime( '1-' + x ))))\n", "\n", "# number of calendar days in the simulation\n", "K = sum( days[0:N])\n", "\n", "prices = list(df.Price)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is main problem formulation. It is split by injection and withdrawal operation" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "injection_charges=[None]*N\n", "total_injection=[None]*N\n", "daily_injection=[None]*K\n", "\n", "# for each injection month\n", "for i in range(N):\n", " total_injection[i] = I[i]*10000\n", " injection_charges[i] = -total_injection[i] * prices[i]\n", " \n", "for i in range(N):\n", " lb = sum(days[0:i])\n", " ub = sum(days[:i+1])\n", " daily_injection[lb:ub] = [ total_injection[i] / days[i] ] * days[i]\n", "\n", "withdrawal_credit=[None]*N\n", "total_draw=[None]*N\n", "daily_draw=[None]*K\n", "\n", "# for each drawing month\n", "for j in range(N):\n", " total_draw[j] = W[j]*10000\n", " withdrawal_credit[j] = total_draw[j] * prices[j]\n", " \n", "for i in range(N):\n", " lb = sum(days[0:i])\n", " ub = sum(days[:i+1])\n", " daily_draw[lb:ub] = [ total_draw[i] / days[i] ] * days[i]\n", "\n", "daily_storage=[None]*K\n", "for i in range(K):\n", " if i == 0:\n", " daily_storage[i] = daily_injection[i] - daily_draw[i]\n", " else:\n", " daily_storage[i] = daily_injection[i] - daily_draw[i] + daily_storage[i-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we are defining set of binary variables that will help to partition ratchets" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# ratchet range control variables \n", "irc = [[None] * 2 for _ in range(K-1)]\n", "wrc = [[None] * 2 for _ in range(K-1)]\n", "\n", "for i in range(0,K-1):\n", " for j in range(max_daily_injection.shape[0]-1):\n", " irc[i][j] = pulp.LpVariable(f'ic_{i+1}_{j}', cat='Binary')\n", "\n", " for j in range(max_daily_withdrawal.shape[0]-1):\n", " wrc[i][j] = pulp.LpVariable(f'wc_{i+1}_{j}', cat='Binary')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Build_model** is a function that defines constraints. The trick here is to use big M technique " ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "def build_model( max_daily_injection, max_daily_withdrawal):\n", " m = pulp.LpProblem(\"WithRatchetsDaily\", pulp.LpMaximize)\n", "\n", " # target function\n", " m += pulp.lpSum(withdrawal_credit) + pulp.lpSum(injection_charges)\n", "\n", " # add constraints\n", " for i in range(K):\n", " m += daily_storage[i] >= 0\n", " m += daily_storage[i] <= max_storage_capacity\n", "\n", " # storage is empty on day 0\n", " m += daily_injection[0] <= max_daily_injection.loc[0, 'mdiq']\n", " m += daily_draw[0] <= max_daily_withdrawal.loc[ 0, 'mdwq']\n", "\n", " M1 = -200 # lower boundary for the ratchet range\n", " M2 = 200 # higher boundary for the ratchet range\n", "\n", " # ratchet control\n", " for i in range(K-1):\n", "\n", " # injection\n", " # only one range is allowed\n", " m += pulp.lpSum( irc[i] ) == 1\n", "\n", " # first range\n", " m += irc[i][0] * max_daily_injection.loc[0,'ratchet'] + (1 - irc[i][0] ) * M1 \\\n", " <= daily_storage[i] / max_storage_capacity\n", " m += irc[i][0] * max_daily_injection.loc[1,'ratchet'] + (1 - irc[i][0] ) * M2 \\\n", " >= daily_storage[i] / max_storage_capacity\n", "\n", " # second range\n", " m += irc[i][1] * max_daily_injection.loc[1,'ratchet'] + (1 - irc[i][1] ) * M1 \\\n", " <= daily_storage[i] / max_storage_capacity\n", " m += irc[i][1] * max_daily_injection.loc[2,'ratchet'] + (1 - irc[i][1] ) * M2 \\\n", " >= daily_storage[i] / max_storage_capacity\n", "\n", " # daily rate constraint\n", " m += daily_injection[i+1] <= irc[i][0] * max_daily_injection.loc[1,'mdiq'] + \\\n", " irc[i][1] * max_daily_injection.loc[2,'mdiq']\n", "\n", " # withdrawal\n", " # only one range is allowed\n", " m += pulp.lpSum( wrc[i] ) == 1\n", "\n", " # first range\n", " m += wrc[i][0] * max_daily_withdrawal.loc[0,'ratchet'] + ( 1 - wrc[i][0] ) * M1 \\\n", " <= daily_storage[i] / max_storage_capacity\n", " m += wrc[i][0] * max_daily_withdrawal.loc[1,'ratchet'] + ( 1 - wrc[i][0]) * M2 \\\n", " >= daily_storage[i] / max_storage_capacity\n", "\n", " # second range\n", " m += wrc[i][1] * max_daily_withdrawal.loc[1,'ratchet'] + ( 1 - wrc[i][1] ) * M1 \\\n", " <= daily_storage[i] / max_storage_capacity\n", " m += wrc[i][1] * max_daily_withdrawal.loc[2,'ratchet'] + ( 1 - wrc[i][1]) * M2 \\\n", " >= daily_storage[i] / max_storage_capacity\n", "\n", " # daily rate constraint\n", " m += daily_draw[i+1] <= wrc[i][0] * max_daily_withdrawal.loc[1,'mdwq'] + \\\n", " wrc[i][1] * max_daily_withdrawal.loc[2,'mdwq']\n", "\n", " # ensure that storage is empty on the last day \n", " m += daily_storage[K-1] == 0\n", " \n", " return m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Baseline scenario. Max daily injection quantity is flat at 2000 Dth per day " ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('Optimal', 39519.99999999997)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m = build_model( max_daily_injection, max_daily_withdrawal )\n", "solver = pulp.getSolver('PULP_CBC_CMD')\n", "m.solve(solver)\n", "pulp.LpStatus[m.status], pulp.value(m.objective) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following cell shows required hedges. For example we need to buy 4 April'2021 contracts and sell 12 Sep'2021 contracts" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I_0 = 4.0\n", "I_1 = 6.0\n", "I_10 = 5.0\n", "I_3 = 6.0\n", "I_4 = 6.0\n", "I_5 = 6.0\n", "I_6 = 6.0\n", "I_8 = 6.0\n", "W_10 = 5.0\n", "W_3 = 6.0\n", "W_4 = 12.0\n", "W_6 = 6.0\n", "W_8 = 6.0\n", "W_9 = 10.0\n" ] } ], "source": [ "for variable in m.variables():\n", " if variable.varValue != 0.0 and variable.name[:2] in ('I_', 'W_'):\n", " print( \"{} = {}\".format(variable.name, variable.varValue) )" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA8wAAAD5CAYAAADyd7ztAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABqcUlEQVR4nO3deXxU5dXA8d+ZmYR9B9kVqwgi7pSlVUANFJe6tlaLFTfAtSptRauvtlZb7VsW40JFRcWluFf0VTEoolZR0Sqyg4iyI/sSSGYmz/vHcwdGTCDJTObe++R8P598krlzZ+bJZGZyzz3nOY8YY1BKKaWUUkoppdT3RfwegFJKKaWUUkopFUQaMCullFJKKaWUUuXQgFkppZRSSimllCqHBsxKKaWUUkoppVQ5NGBWSimllFJKKaXKoQGzUkoppZRSSilVjpjfA8i2SCRi6tWr5/cwlFJKKaWUAqC4uDhujMn3exwi8oYxZlAl9osCM4EVxpjTRORAYBLQAvgU+I0xplRE6gATgWOB9cCvjDFLvfu4CbgUSAK/NcZMqYnfSama5lzAXK9ePbZv3+73MJRSSimllAJARGb5PQZPy0rudy0wD2jsXb4bGGOMmSQi/8QGwuO87xuNMQeLyHnefr8SkW7AecBhQDtgqogcYoxJZvF3USontCRbKaWUUkopBYCIdABOBR72LgtwIvC8t8vjwJnez2d4l/GuP8nb/wxgkjGmxBjzNbAY6JmTX0CpLNOAWSmllFJKKZUyFrgBKPMutwA2GWMS3uXlQHvv5/bAMgDv+s3e/ru2l3MbpUJFA2allFJKKaVqh5YiMjPta1j6lSJyGrDWGPOpT+NTKnCcm8OslFJKKaWUKtc6Y0yPvVz/U+B0ETkFqIudw3wP0FREYl4WuQOwwtt/BdARWC4iMaAJtvlXantK+m2UChXNMCullFJKKaUwxtxkjOlgjOmEbdr1tjFmMDAN+IW32xDgZe/nyd5lvOvfNsYYb/t5IlLH67DdGfg4R7+GUlm1z4BZRCaIyFoRmZ22rbmIFInIIu97M2+7iEihiCwWkVkickzabYZ4+y8SkSFp248VkS+92xR6jQIqfAyllFJKKaVUTo0ERojIYuwc5Ue87Y8ALbztI4AbAYwxc4BngbnAG8BV2iFbhZXYk0B72UGkL7ANmGiM6e5t+zuwwRhzl4jcCDQzxoz0yjeuAU4BegH3GGN6iUhz7FpuPQCDXb/tWGPMRhH5GPgt8BHwGlBojHm9osfY1y/UoEEDo8tKKaWUUkqpoBCRT/dRCp2rccwMwjiUCpN9zmE2xrwrIp322HwG0N/7+XHgHeyZpzOwgbUBZohIUxFp6+1bZIzZACAiRcAgEXkHaGyMmeFtn4htU//6Xh5DqUoxBh5+GJYt2/e+yh8tW8LVfT4l8srL+945LE44wX6F3Pvvw5tv+j0KVZvstx9cdRXYOjOllFIqGKrb9Ku1MWaV9/NqoLX3c0Ut5Pe2fXk52/f2GD/gdfgbBpCfn1/V30U56oMPYJjX+1EPwIInVdzyy9530nbGS278kYyBN96Aj8M9TSseh/PPh+XL3fizqOBLfR706gU//rG/Y1FKKaXSZdwl2xhjRGTvdd01/BjGmPHAeLAl2TU5FhUeY8ZAs2Y2w9yggd+jUXuKx+Ggg+CbhSW07dEDPvnE7yFl7vTTbZQZcv/+t/01Jk+Gn//c79Go2mDNGmjTBt56SwNmpZRSwVLdLtlrvFJrvO9rve0VtZDf2/YO5Wzf22MotU9LlsBLL8Hw4RosB1VeHvz2t7BlQ5xtJY6scBeJQDL8PU0KC+FHP4JTTvF7JKq2aN0ajjgCior8HolSSin1fdUNmNNbyO/ZWv5Cr1t2b2CzV1Y9BRgoIs28btcDgSnedVtEpLfXHftCym9Tn/4YSu1TYaGNXa6+2u+RqL257DKoE0mwYrVDAXNZmd+jyMhnn9n5y1dfDdGo36NRtUlBgX3tFRf7PRKllFJqt8osK/Uv4EOgi4gsF5FLgbuAASKyCCjwLoPtcr0EWAw8BFwJ4DX7+gvwifd1e6oBmLfPw95tvsI2/GIvj6HUXm3eDI88Ar/6FbRvv+/9lX+aNoUObeKsXJfHihX73D34HAiY773XVmVcfLHfI1G1zYABUFoK//mP3yNRSimldqtMl+zzK7jqpHL2NcBVFdzPBGBCOdtnAt3L2b6+vMdQal8efhi2bYPrr/d7JKoy2rdO8NXKetx/P/z1r36PJkMhD5jXroWnn4ahQ+3JDKVy6fjj7VSNqVNt8KyUUkoFQXVLspUKpETClmP36wfHHuv3aFRl1I0maNE6j3/+E0K/hHo0GuqA+aGHbIZPpzIoPzRoAD/5ic5jVkopFSwaMCunvPgifPutZpdDJR6nU+cYGzfC44/7PZgMhbjpVzwODzwAP/sZdO3q92hUbVVQAP/9L6xb5/dIlFJKKUsDZuUMY2DUKDj4YDjtNL9HoyotkaD5fjF+/GMYOzbUCdpQl2S/+CKsXGk7lyvll1Qp9ttv+zsOpZRSKkUDZuWMDz+Ejz+G667T7r6hEo8jeXmMGAGLFsH//Z/fA8pAiAPmwkJ7smnQIL9HomqzY4+FJk3sPGallFIqCDRgVs4YPdo2KhoyZJ+7qiBJJCAW45xzoEMH+3cMrZAGzDNnwgcfwDXX2F9BKb/EYnDCCRowK6WUCg49NFJO+PpreOklGD4cGjb0ezSqShIJyMsjL8+WA7/zjp3DGEohbfpVWGjfNxdd5PdIlLLzmL/+Gr76yu+RKKWUUhowK0cUFtrMmHb3DaF43KaVsMsZNWgAY8b4PKbqCmHTr9WrYdIku+5y48Z+j0YpGzCDZpmVUkoFgwbMKvQ2b7ZrL//qV7akV4WMV5INtqT+0kvhX/+yDahCJ4Ql2ePH23MWerJJBcUhh0DHjhowK6WUCgYNmFXoPfIIbNumS0mFVjwOeXm7Lv72tzZJe//9Po6pukIWMJeWwrhxcPLJNkhRKghEbJb57bdDV7ChlFLKQRowq1BLJOCee6BvX9tdVYVQWoYZ4KCD4Mwz4Z//hO3b/RtWtYQsYH7+eVuSrUtJqaApKIANG0Lcz0AppZQzNGBWofbii/DttzBihN8jUdXmNf1KN2KEPVieONGnMVVXyJp+FRbazPLAgX6PRKnvO+kk+13LspXKLRGpKyIfi8gXIjJHRP7sbX9MRL4Wkc+9r6O87SIihSKyWERmicgxafc1REQWeV+6hokKLQ2YVaiNGWMzkqed5vdIVLWlNf1K+elPoUcP+/cNUfwZqqZfH31kv3QpKRVErVvDEUdowKyUD0qAE40xRwJHAYNEpLd33R+MMUd5X597204GOntfw4BxACLSHLgN6AX0BG4TkWY5+y2UyiI9TFKh9eGHMGMGXHedTeypEDLGBph7BMwiNsu8aBG89ppPY6uOEJVk33svNGqk65ar4CoogPffhx07/B6JUrWHsbZ5F/O8L7OXm5wBTPRuNwNoKiJtgZ8BRcaYDcaYjUARMKgmx65UTdGAWYXW6NG2q7KuHRtiiYT9vkdJNsAvfmG7no8eneMxZSIkAfOqVfDss3DJJTZoViqICgqgpMQGzUqprGkpIjPTvobtuYOIREXkc2AtNuj9yLvqTq/seoyI1PG2tQeWpd18ubetou1KhY4GzCqUvv7azl8eNgwaNvR7NKraUgHzHhlmsDH0NdfAtGnw+ee5HVa1hSRgfvBB+9TrUlIqyI4/3n4OaFm2Ulm1zhjTI+1r/J47GGOSxpijgA5ATxHpDtwEdAV+DDQHRuZy0Er5SQNmFUr33mtjk2uu8XskKiN7yTADDB0KDRrYucyhEIKmXyUltgP5KafAwQf7PRqlKtawIfTpowGzUn4xxmwCpgGDjDGrvLLrEuBR7LxkgBVAx7SbdfC2VbRdqdDRgFmFzubN8PDDcO65tmRXhVg8br+Xk2EGaNbMlg3/61+wcmUOx1VdIWj69dxzsGaNLiWlwmHAALu01Lp1fo9EqdpBRFqJSFPv53rAAGC+Ny8ZERHgTGC2d5PJwIVet+zewGZjzCpgCjBQRJp5zb4GetuUCh0NmFXoPPIIbN0K11/v90hUxvZSkp1y7bV2t/vvz9GYMhHwkmxj7LrlXbvaQESpoCsosK/badP8HolStUZbYJqIzAI+wc5hfhV4SkS+BL4EWgJ3ePu/BiwBFgMPAVcCGGM2AH/x7uMT4HZvm1KhU/FRqlIBlEjYtWOPP94uO6RCLpVhrqAkG+yyYWecYcuIb74Z6tfP0diqI7U+kzG21XfAfPQRzJxpTz4EcHhK/UCPHtC4MRQVwS9/6fdolHKfMWYWcHQ520+sYH8DXFXBdROACVkdoFI+0AyzCpWXXoJvvrFLDikHVCLDDPbvvWEDTJyYgzFlIhUwBzTLXFhog48LL/R7JEpVTiwGJ5yg85iVUkr5RwNmFSqjR9uM489/7vdIVFbso+lXynHH2UzTmDGBjUWt1ILgARzkypV2/vKll2pneRUuBQV2ZYQlS/weiVJKqdpIA2YVGh9+CDNm2DmtqbhEhdw+mn6liNg56wsXwmuv5WBc1ZXKMAew8dc//2mHdVW5hXNKBVdqvr1mmZVSSvlBA2YVGmPGQJMmcPHFfo9EZU0lS7LBzl9s3z7gS0wFtCQ7tZTUaafZCg2lwuSQQ+yKCEVFfo9EKaVUbaQBswqFpUvhhRdg+HAtJ3VKJZp+peTl2aWQ3n4bPv+8ZodVbQENmJ95Br77TpeSUuEkYsuy3347kMUbSimlHKcBswqFwkJ70HT11X6PRGVVFTLMAEOH2i7Zgc0yBzBgNsa+fw49FE46ye/RKFU9BQW28V9gT5YppZRylgbMKvC2bIGHH4Zzz4WOHf0ejcqqSjb9SmnWDC65BP71L1i1qgbHVV0BbPr14Yfw6ac2u6xLSamwKiiw33Ues1JKqVzTdZhV4D3yCGzdqktJOamSTb/SXXutXUf4/vvhjjtqaFzVFcCmX4WF0LQp/OY3fo9EqUp4/314/vkfbG4NPNEC6t8PBPFkWUUGDoRTTvF7FEoppTKgAbMKtEQC7rkHjj/eLiukHFPFkmyAgw+GM86AcePgj3+0JdqBEbCS7OXLbexx/fXQoIHfo1GqEv7+d/i//4NGjX5w1Tk7oWQ9mMcgFMUS27bBBx9owKyUUiGnAbMKtH//G775JsBzVlVmqtD0K93119vXxhNP2EZwgRGwgPmf/7RzmHUpKRUaO3ZAr1420NzDtNfg1FOh6PndJdqBdtZZuni0Uko5QOcwq0AbPRp+9CM4/XS/R6JqRDUyzGArDo491p5ICUhsagUoYN65Ex580L53OnXyezRKVVJpKdSpU+5Vffvac2uhmcecn29/H6WUUqGWUcAsIteLyBwRmS0i/xKRuiJyoIh8JCKLReQZEcn39q3jXV7sXd8p7X5u8rYvEJGfpW0f5G1bLCI3ZjJWFT4zZtiGRdddt7uXknJMFZt+pYjYOe0LFsDrr9fAuKorQE2/Jk2Cdet0KSkVMiUlNtAsR8OG0KePBsxKKaVyq9oBs4i0B34L9DDGdAeiwHnA3cAYY8zBwEbgUu8mlwIbve1jvP0QkW7e7Q4DBgEPiEhURKLA/cDJQDfgfG9fVUuMGQNNmsDFF/s9ElVjqtH0K+WXv4T27W0VQmAEpOmXMXbuf/fu0L+/r0NRqmr2kmEGW4r92Wewfn0Ox1RdGjArpZQTMi3JjgH1RCQG1Mf2rjwRSLW4fBw40/v5DO8y3vUniYh42ycZY0qMMV8Di4Ge3tdiY8wSY0wpMMnbV9UCS5faZkXDhtmsgnJUNUuywSalr7kG3n4bvvgiy+OqroCUZL//vl2vVpeSUqGzlwwz2IDZGPu+D7y8PA2YlVLKAdUOmI0xK4B/AN9iA+XNwKfAJmOMdxTMcqC993N7YJl324S3f4v07XvcpqLtqha49157oH/NNX6PRNWoajb9Shk2zHbJDkxTuIAEzIWFds3qwYN9HYZSVVdSstcM849/DI0bh6QsWzPMSinlhExKspthM74HAu2ABtiS6pwTkWEiMlNEZiZSGSsVWlu2wEMP2ZLbjh39Ho2qURlkmMEGhRdfDE8/DauCsDZrAALmb7+Fl16CoUMDtuSWUpWxj5LsWAxOOEEDZqWUUrmTSUl2AfC1MeY7Y0wceBH4KdDUK9EG6ACs8H5eAXQE8K5vAqxP377HbSra/gPGmPHGmB7GmB6xah54q+CYMAG2brVLBynHVbPpV7prr7V388ADWRpTJgLQ9GvcOFuyeuWVvg1BqerbR0k22LLsJUtCsGKTBswqhLwGvh+LyBdeY98/e9uz1tRXqbDJJGD+FugtIvW9ucgnAXOBacAvvH2GAC97P0/2LuNd/7Yxxnjbz/PecAcCnYGPgU+Azt4bNB/bGGxyBuNVIZBI2GZFxx0HPXv6PRpV4zJo+pXSubNdOmncOCguztK4qsvnpl87dsD48XDmmXDAAb4MQanM7CPDDLvXYA58ljk/3/5TC0DXfKWqoAQ40RhzJHAUMEhEepOlpr65/EWUypZM5jB/hG3e9RnwpXdf44GRwAgRWYydo/yId5NHgBbe9hHAjd79zAGexQbbbwBXGWOS3jznq4EpwDzgWW9f5bB//9s2/Boxwu+RqJzIsCQ7ZcQI2zX3iSeyMKZM+FyS/fTTsGGDLiWlQqwSGeYuXWyH/FAEzLD7xKBSIWCsbd7FPO/LkL2mvkqFTkZHqcaY24Db9ti8hHLeEMaYncAvK7ifO4E7y9n+GvBaJmNU4TJmDPzoRzZjqGqBDJt+pRx/PBxzDIwda+fuRjLt/19dPgbMxthmX0ccAX375vzhlcqOfTT9AtsQsqAAXnnFvtV8e7/vSypgrkTWXKkg8TLBnwIHY5d4/YpKNvUVkfSmvjPS7lab96rQCuq/GVULzZgBH3xg56RGtWindshShlnEZpnnz4c33sjCuKrLx4D53Xdh1ixdSkqFWDJp3zuVCC4HDLDVFJ9/XvPDqrb0gFmp4GiZapTrfQ3bcwev0vMobP+gnkDXXA9SqSDRgFkFxpgx0KSJ7XqsaoksNP1K+eUvbZnm6NEZ31X1+dj0q7AQmjeHX/865w+tVHaUlNjv+yjJBjjpJPu9qKgGx5MpLclWwbQu1SjX+xpf0Y7GmE3Y3kR9yF5TX6VCRwNmFQjffAMvvGDLaRs18ns0Kmey0PQrJT8frr4a3noLvvgi47urHp+afn3zjZ3/P2wY1KuX04dWKntSmdhKZJjbtIHu3QM+j1kzzCqERKSViDT1fq4HDMD2EspWU1+lQkcDZhUI995rv19zjb/jUDmWSNisbJZqiIcNs2sPjx2blburOp9Ksh94wD6FV1yR04dVKruqkGEGO4/5vfdsd/hA0oBZhVNbYJqIzMKuWFNkjHmVLDX1zelvolSWaMCsfLdlCzz0kC2p3X9/v0ejcioez0p2OaV5c1vS/9RTsGpV1u628nwImIuL7fvnrLP0/aNCLhUwV7JB1oAB9iYffFCDY8qEBswqhIwxs4wxRxtjjjDGdDfG3O5tX2KM6WmMOdgY80tjTIm3fad3+WDv+iVp93WnMeYgY0wXY8zrfv1OSmVKA2bluwkTbNB8/fV+j0TlXCKR1YAZbNO4RMJmXXPOhznMTz0FGzfqUlLKAanAspIZ5r597cdHYMuyNWBWSiknaMCsfJVMwj33wE9/Cj11db7aJ5HISsOvdJ07w89/DuPG+VCqmeMMc2opqaOOguOOy8lDKlVzqphhbtgQ+vQJcOOv1GebBsxKKRVqGjArX/3737B0qV0SSNVCWS7JThkxAtavhyeeyPpd712Om3698w7Mnq1LSSlHVKHpV0pBAXz2mX2/B45mmJVSygkaMCtfjR4NBx4IZ5zh90iUL2ogwwy2VPOYY+xSZTntv5XjDHNhIbRsCeefn5OHU6pmVbHpF9iA2RiYNq2GxpQJDZiVUsoJGjAr33z0kW3Wcu21u6d+qlqmhjLMInZO/Pz5MGVK1u++YjkMmL/+GiZPtp3B69at8YdTquZVsSQb7FSeRo0COo9ZA2allHKCBszKN2PGQOPGcMklfo9E+aYGmn6lnHsutGtnqxhyJodNv3QpKeWcKjb9AvvxccIJAZ3HrAGzUko5QQNm5Ytvv4Xnn7fZsUaN/B6N8k08XiMl2WCPVa+5xmaeZs2qkYf4oRxlmLdvh4cfhnPOgQ4davShlMqdamSYwZZlL1livwJFA2allHKCBszKF/fea79fc42/41A+q8EMM9gTMvXr22qGnMhR068nn4RNm3QpKeWYajT9AhswA7z1VpbHkykNmJVSygkaMKuc27oVxo+HX/wC9t/f79EoX9VQ06+U5s3hoovg6adh9eoae5jdcpBhTi0ldcwx8JOf1NjDKJV71Wj6BdC1q51+Ebh5zKnfIx73dxxKKaUyogGzyrkJE2DLFl1KSlFjTb/SXXutfZgHHqjRh7FyEDC//TbMnatLSSkHVbMkWwQGDLAZ5px2xd8XzTArpZQTNGBWOZVMwj332MxYz55+j0b5roZLsgEOOQROOw3GjYMdO2r0oXLS9KuwEFq1gl/9qsYeQil/VKPpV0pBgV2L+fPPszukjGjArJRSTtCAWeXUyy/b5XA0u6yAGm36lW7ECFi3zs79rVE1nGFesgReeQUuv1yXklIOqmaGGeCkk+z3QJVla8CslFJO0IBZ5dTo0XDggXDmmX6PRAVCDjLMAP36wdFH2+ZfNVqyWcMB8/332yT25ZfXyN0r5a9qNv0CaNsWDjtMA2allFLZpwGzypmPP4b//MfOKU1VrqparoabfqWI2CzzvHkwZUoNPlANdsnetg0eeQR++Uvb4Egp51Sz6VfKgAHw3nuwc2cWx5SJ1GebBsxKKRVqGjCrnBkzBho3hksu8XskKjBy0PQr5dxzbRaqRpeYqsEM88SJsHmzLiWlHJZhwFxQYIPl//wni2PKRDRqz9ZpwKyUUqGmAbPKiW+/heeeg6FDoVEjv0ejAiNHJdlgj8GvuQaKiuDLL2voQWqo6VdZmV27/Mc/hl69snrXSgVHaanNylaz/XvfvvbjJDBl2SL2g0cDZqWUCjUNmFVO3Huv/X7NNf6OQwVMjpp+pQwfDvXr12CWuYYyzFOnwvz5upSUclxJSbXmL6c0agS9ewcoYAYNmJVSygEaMKsat3UrPPQQnHMOHHCA36NRgZLDDDNA8+YwZAg89RSsXl0DD1BDAXNhIbRubecvK+Ws0tKMAmawZdmffgobNmRpTJnSgFmFjIh0FJFpIjJXROaIyLXe9j+JyAoR+dz7OiXtNjeJyGIRWSAiP0vbPsjbtlhEbvTj91EqGzRgVjXu0Uft3EtdSkr9QI6afqW77jp7/DpuXA3ceQ00/Vq0CP7v/2xn7AxjCaWCraSk2vOXUwYMAGNg2rQsjSlTGjCr8EkAvzPGdAN6A1eJSDfvujHGmKO8r9cAvOvOAw4DBgEPiEhURKLA/cDJQDfg/LT7USpUNGBWNSqZhLFj4Sc/0bmXqhw5bPqVcsgh8POfwwMPwI4dWb7zGsgw33+/PacwfHjW7lKpYMqwJBvsPP9GjWyvgkDQgFmFjDFmlTHmM+/nrcA8oP1ebnIGMMkYU2KM+RpYDPT0vhYbY5YYY0qBSd6+SoWOBsyqRk2eDF9/rdllVYEcl2SnjBgB69bBk09m+Y6z3PRr61aYMGF3h2+lnFZamnGGOS8P+vcP0DxmDZhV8LQUkZlpX8Mq2lFEOgFHAx95m64WkVkiMkFEmnnb2gPL0m623NtW0XalQkcDZlWjRo+GTp3gzDP9HokKpBw3/Urp1w+OOso2/zImi3ec5Qzz44/boFmXklK1QhYyzGDnMX/1lT1Z67v8fPs5p1RwrDPG9Ej7Gl/eTiLSEHgBuM4YswUYBxwEHAWsAkblasBK+U0DZlVjPv4Y3n8frr12d+JNqe/xKcMsYrPM8+bBlClZvOMsBsyppaR69YKePTO+O6WCLwtNv8DOYwZ4662M7ypzmmFWISQiedhg+SljzIsAxpg1xpikMaYMeAhbcg2wAuiYdvMO3raKtisVOhowqxozZgw0bgyXXOL3SFRg+dD0K+VXv7JlzqNHZ/FOs9j06803YeFCzS6rWiQLTb8AunaFdu0CMo9ZA2YVMiIiwCPAPGPM6LTt6RODzgJmez9PBs4TkToiciDQGfgY+AToLCIHikg+tjHY5Fz8DkplW+5TO6pWWLYMnnvOZpcbN/Z7NCqwfGj6lZKfD1dfDTffDLNnQ/fuWbjTLGaYCwuhTRv4xS8yviulwiFLJdkitiz7//7PvhUjfqYGNGBW4fNT4DfAlyLyubftj9gu10cBBlgKDAcwxswRkWeBudgO21cZY5IAInI1MAWIAhOMMXNy92solT2aYVY14t577dxQzY6pvfKpJDtl+HCoV89WQ2RFlpp+LVwIr78OV1yRlYSbUuGQhaZfKQUFsH49fPFFVu6u+vLyNGBWoWKMed8YI8aYI9KXkDLG/MYYc7i3/XRjzKq029xpjDnIGNPFGPN62vbXjDGHeNfd6c9vpFTmMgqYRaSpiDwvIvNFZJ6I9BGR5iJSJCKLvO/NvH1FRAq9xctnicgxafczxNt/kYgMSdt+rIh86d2m0CsTUQG3bRuMH28zYwcc4PdoVGAZ42tJNkCLFnDRRbZb9po1WbjDLGWY77tPl5JStVCWMswAJ51kv/veLVszzEopFXqZZpjvAd4wxnQFjsSu1XYj8JYxpjPwlncZ7MLlnb2vYdhue4hIc+A2oBe2gcBtaa3qxwFD0243KMPxqhx49FHYvBmuv97vkahAS83z9THDDHbaQGmpXZc5Y1kImLdsse+h886D1q2zMCalwiJLTb/AzmE+7DANmJVSSmWu2gGziDQB+mIbA2CMKTXGbMIuSv64t9vjwJnez2cAE401A2jqNRD4GVBkjNlgjNkIFAGDvOsaG2NmGGMMMDHtvlRAJZMwdiz06QO9e/s9GhVoiYT97mOGGaBLFzjtNBg3DnbsyPDOstD067HHbJXGNddkOBalwiZLTb9SCgrg3Xdh586s3WXVacCslFKhl0mG+UDgO+BREfmviDwsIg2A1mnzGlYDqRxJVRc2b+/9vOf2HxCRYakF2BOpg3Dli8mTYckSu2SPUnuVWpvU5wwz2Nfrd9/BU09leEcZZphTS0n16QM//nGGY1EqbLJYkg02YN65Ez74IGt3WXUaMCulVOhlEjDHgGOAccaYo4Ht7C6/BsDLDJsMHqNSjDHjUwuwxwJw8F2bjRkDnTrBmWf6PRIVeKmTWwF4z/bvD0cdZV+/JpNPrAybfr3xBixerM3yVC2VxaZfAP362bekr2XZGjArpVToZRIwLweWG2M+8i4/jw2g16TWavO+r/Wur+rC5iu8n/fcrgLqk0/gvffswX4AYiAVdKkMs88l2WCXobn+epg7165/XG0ZZpgLC+3cy3POyWAMSoVVljPMjRrZqUEaMCullMpEtQNmY8xqYJmIdPE2nYRdg20ykOp0PQR42ft5MnCh1y27N7DZK92eAgwUkWZes6+BwBTvui0i0tvrjn1h2n2pABozxh6gXHqp3yNRoRCgDDPYJltt28Lo0RncSaqRfzUC5vnzYcoUu5RUAM4hKJV7WWz6lTJgAMycCRs2ZPVuK08DZqWUCr1Mu2RfAzwlIrOAo4C/AncBA0RkEVDgXQZ4DVgCLAYeAq4EMMZsAP4CfOJ93e5tw9vnYe82XwG71nZTwbJsGTz7LAwdCo0b+z0aFQoBafqVkp8PV19tM8yzZ1fzTkTsVzWaft13nx3DsGHVfGylwsyYrDf9AjuP2RiYNi2rd1t5+fm7q2mUUkqFUkapHWPM50CPcq46qZx9DXBVBfczAZhQzvaZQPdMxqhy47777EGJdvZVlRagpl8pw4fDHXfYTu8PP1zNO4lEqpxh3rzZdsc+/3zYb79qPq5SYZZI2H8iWc4w9+wJDRvasmxfpjpohlkppUIv0wyzUmzbBg8+aA9GOnXyezQqNAJWkg3QogUMGQJPPglr1lTzTqLRKgfMjz4K27frCSdVi6WCyixnmPPybFM/3+YxpwLmjLoJKqWU8pMGzCpjjz5qM2S6lJSqkgA1/Up33XW2MnTcuGreQRUzzMmkXUrqpz+FY4+t5mMqFXYlJfZ7ljPMYOcxL14MS5dm/a73LXUCQJe8VEqp0NKAWWUkmYR77rGdSHv39ns0KlQCmGEG6NIFTj0VHnjAruFaZVUMmF9/3a5drktJqVotlWGugYC5oMB+9yXLnAqYtSxbKaVCSwNmlZFXXoGvvtLssqqGgDX9SjdiBHz3HTz1VDVuHIlUqelXYSG0bw9nnVWNx1LKFakMc5ZLsgEOPdR2wPclYE59vmnArJRSoaUBs8rI6NFwwAF6sK+qIYBNv1JOOAGOPNK+vqs89bAKGea5c6GoCK66KpDnDZTKnRosyRaxWea33qr2EunVpxlmpZQKPQ2YVbXNnAnvvQfXXhvImEcFXUBLssEeYI8YYQPaN9+s4o2r0PTr3nttfDB0aNXHqJRTaqjpV0pBAaxbB7Nm1cjdV0wDZqWUCj0NmFW1jRkDjRrBpZf6PRIVSgFt+pVy3nnQpo19nVdJJTPMGzfCxIkweDC0bFm9MSrljBrMMMPuecxFRTVy9xXTgFkppUJPA2ZVLcuWwbPPwmWXQePGfo9GhVKAM8xgj3OvvhqmTIHZs6tww0oGzBMmQHGxLiWlFFCjTb8A2rWDbt18mMesAbMKGRHpKCLTRGSuiMwRkWu97c1FpEhEFnnfm3nbRUQKRWSxiMwSkWPS7muIt/8iERni1++kVKY0YFbVct99NibQzr6q2gLc9Ctl+HCoVw/Gjq3CjSrR9CuZtO+hvn3hqKMyGaFSjqjBpl8pBQV2GlG1ut9XlwbMKnwSwO+MMd2A3sBVItINuBF4yxjTGXjLuwxwMtDZ+xoGjAMbYAO3Ab2AnsBtqSBbqbDRgFlV2bZtMH48nH02dOrk92hUaAW46VdKy5Zw4YXw5JOwdm0lb1SJDPOrr9o1YfWEk1KeGi7JBhsw79gBH35YYw/xQxowq5Axxqwyxnzm/bwVmAe0B84AHvd2exw40/v5DGCisWYATUWkLfAzoMgYs8EYsxEoAgbl7jdRKnuCe6SqAuuxx2DTJl1KSmUo4CXZKdddBw8+COPGwW237Xv/smiEl+Y8xwV3PlnhPqUlILfABfPhgjuzN9ZsO6PLGUz6xSS/h6Fqgxpu+gXQv7/tyTd1qu2EnxMaMKsQE5FOwNHAR0BrY8wq76rVQGvv5/bAsrSbLfe2VbRdqdAJ9pGqCpxk0pan9u4Nffr4PRoVagFv+pXStSuceircfz+MHAl16+59/63x7WzZsZlLj76KBnkNfnD9d+vg0QnQrx/06llDg86ChRsW8sycZ7jqx1dx/AHH+z0c5bocZJgbNbL/u4qK4M5cnahKBcypzzul/NdSRGamXR5vjBm/504i0hB4AbjOGLNFRHZdZ4wxIlLVRReVCi0NmFWVvPoqfPUV/PWvfo9EhV5IMswA119vyzmfemrvXeE379zMptIt7N+oPRefcl+5+wwfDnXfhxcmQYsWNTTgLCiOF3NQ4UHcMu0W3hnyDukHS0plXQ03/UopKIDbb7dd6pvlYjalZphV8KwzxvTY2w4ikocNlp8yxrzobV4jIm2NMau8kuvURKUVQMe0m3fwtq0A+u+x/Z3Mh69U7gX/SFXl3E1Tb2LRhkXlXjd9OtQbAs8Y2yU76GKRGLf2u5Vurbr5PZSsWDnnI76+4ldEShN+DyVj+323nYOAK6b8lu/++8NMbNA0GQojZsDrjSreZ/mW5TxFGUe3OqLc6zdsgCeegAsuCHawDFA/rz43H38zW393DR880I5IJOr3kDJmohFa//0BDvrpaX4PJStWzP6QpVee78TnQavvijkYKMuL1WhzlYIC+POfYdo024ejxmnArEJG7NnRR4B5xpjRaVdNBoYAd3nfX07bfrWITMI2+NrsBdVTgL+mNfoaCNyUi99BqWzTgFl9z/bS7dz1n7to3aA1Let/f3HYHTthHdDmIFiw3p/xVUWZKWPeunkc1eYoZwLmJS88zHHvfcPXrfJIxMLds68MmHFIA2YkvyG+Lvi/S8NOsGIFzFwKDRtWvF/jek1pXqdpudc98ohtOhSWpaSGdh1MnfevYX2j79jQMNz/LiLGcNDqUt55yp2AecnzD3G8I58HCZNk6oFwSIMk+9fg4/TqZd+/U6dqwKxUBX4K/Ab4UkQ+97b9ERsoPysilwLfAOd6170GnAIsBoqBiwGMMRtE5C/AJ95+txtjNuTkN1Aqy8J9BKSybkvJFgD+3P/PDO8x/HvXXXABfDcZ5i+DJk38GF3VxJNx8u/IJ1EW/uxLiknYeXB1pr3HgYf18nk0mesM/NfvQVRSSYntCt/1SHjjjb3sWNi13C7ZiYRdSqp/fzii/AR04NTBZpVb3HY3LX73O59Hk5mS7VugYZPdUwEcYLzfpe67H9C2614rLANv4hcTGfLvIXyVV7OVDHl59j1YVFSjD/P9BwQNmFVoGGPeByqag3NSOfsb4KoK7msCMCF7o1PKH+E+Ja2yLhUwN67T+Hvbly+HZ56x8zfDECyDLccGnAyYY3Xr+TyS2qdOHbjqKpgyBebM2cuOFSwr9cor8O23IVtKKgRrZVdWXt369geHAuZUI6lYnfB/HuRF7GssF5/XBQWweLFd2q3GaYZZKaVCTwNm9T2bSzYDPwyY77vPxgBhOtgXEaISJZ50pzupiduDrmhezTbGUeW7/HLbJXvs2L3sVEHAXFgIBxwAP/95jQ0v+0KwVnZlRaIxysCpbsWpz4NY/j5at4dA6gRnLj6vCwrs97feqvGH0oBZKaUcoAGz+p7yMszbttl1aM8+Gw480K+RVU8sEnMqw0zc/i4uHCCHUcuWMGSIbdy1dm0FO0Uidv21NLNmwTvv2Ax1qGLPEHUyr4xEFKcyzKmS7Gh++E+g5bIiqFs3aNvWzmOucRowK6VU6LlxFKSyJhUwN6m7u+768cdh0ya7tE7Y5EXziJc5mFFyoAQzrK67zp5A+uc/4dZby9khGv1Bhvnee6Fevb0vSRVIIVkru7LiEZzKMON9HuTVqe/zQDKXF7WvsVx8XovYLPMbb9i3aqQmUwcaMCtVq3z66af7xWKxh4HuaGIyLMqA2YlE4rJjjz223HSIBszqe/bMMCeTtvy0Vy/o08fHgVWTcxnmhGaY/da1K5xyCtx/P9xwgy3R/p49SrLXr4cnn4QLL4TmzXM71oy5lmGOgCSS+94xLBz6PMh1z4mCAlspMmsWHHVUDT6QFzAntm2lbMe2Gnyg7ItEY068tpTKpVgs9nCbNm0ObdWq1cZIJGL8Ho/at7KyMvnuu++6rV69+mHg9PL2ceMoSGXNngHzq6/a5ih33mnPyodNXiTPyYB5VwMj5YsRI+wB99NPwyWX7HHlHgHzww/Dzp3hWUrqexxq+gWQiMoPyuVDzaGAOZdNvwBO8nr9Tp1aswFzWV4MBGL/cyv8T3klKcEVj8DnT43lqPOu9XsoSoVJdw2WwyUSiZhWrVptXr16dfeK9tGAWX1PKmBulN8IgDFjYP/9c7ReZQ2IRWJONf0iHqcMe+Zf+efEE+3SUKNHw8UX73EyKS1gTiRsJvrEE6F7hR/DAeZQ0y+AZEQQp0qy4yQiEKvRmuLcyGXTL4D27eHQQ23A/Pvf19zjlEYMF54DJ8vBHNg0RE1ANm2i/3OfsHVuWBb+UyowIhosh4/3N6vwn6kbR0Eqa7aUbKFerB550Tw+/RSmT4d//CO8x8uxSIyEcSvDnIhCvt/jqOVE7Jz+iy+2B9wDBqRdmdb06+WXYdkyO4c5lBwryU5G3SvJTkTc+EfuxzKABQW2AqSkxC4bVxMSZQme6w49Bwzn4p/UYGSeZasXfgbPHbtrKUOllKrNwn9aWmXV5p2bd5VjjxkDDRvCZZf5PKgM5EXznMswx/VdGwjnnw+tW9ss8/ekNf0qLIROneC003I+vOxwrOlXIhpxK2COJ5z5PMhl06+UAQNgxw744IOae4zU/59UyXlYxPJtY8lUo0mllKrNHPlXq7JlS+kWGtdpzIoV8MwzNlhu0mTftwsq15p+SSJJQt+1gVCnDlx9te20O3du2hVeSfbnn8O779p9olG/Rpkh5zLMgjg0h1kSCZKREDaXKIcfGeZ+/ex7syaXl0qdAEidEAiLVJ8MU+rQCWelVEbefffd+hdddFHHbN3f7bffvt/WrVtDcVQbikGq3NlSsoUmdZtw3302Sfbb3/o9osy42PQrEXXjANkFl19uu2SPHZu20QuY770X6tcvpylYmDjW9CsZFSIuZZiTSeJhPRmzh1w3/QJo3NiuAFGjAbOXYU6dEAiLXWt7a4ZZKeXp27dv8WOPPbYsW/f34IMPtt62bVuVYtFEwp9j+nB9gqsat6VkCw1ijXnwQTjrLDgwRD1KyhOLxJxah9mljJILWra0y0U9/rjtJN+qFRCJEN+R4Kmn7BznZs38HmUGnGv6FXErwxxPkHTkBFqum36lFBTAHXfAxo01815NnQAIW0n2rrW9fTo4VcoFl1xCx9mzyeqyJt27UzxhAvsMWv/whz+0fe6551q0aNEi3q5du9Kjjz66uEmTJslHH320VTwel06dOpU8//zzXzdq1KhswoQJzf72t7+1i0QiplGjRsmZM2cuKO8+X3311UajRo1qPW3atMUjRoxot2zZsvxvvvmmzsqVK/Mvv/zyNbfccku5axhv2bIlcvrpp/9o1apV+WVlZXLDDTesXLNmTd7atWvz+vXrd0izZs0SH3300cIHH3yw+ahRo9oYY6SgoGDTuHHjVgDUr1//6MGDB3/37rvvNi4sLPy2qKio0RtvvNG0pKQk0qNHj21PPfXUN5FIhOnTp9cfOnRop0gkQr9+/ba8/fbbTRYtWjQnkUhw1VVXdfjPf/7TqLS0VIYOHbr2D3/4w7qqPO+aYVbfs6VkC5tWN2bjRrt0TtjlRd3KMEsiSSLmxgGyK667zjYNGjfO2xCJsGZlkpKSkC4llc61DHPMrQyzJJPOnEDzoyQbbMBcVgbTptXM/Ye9JBuXusorVUtMnz69/iuvvNJs7ty5c6ZOnbpo1qxZDQAGDx68cfbs2fMWLFgwt0uXLjsKCwtbAtx1111t33zzzYULFiyY+8Ybbyyu7OMsXry47vTp0xd+8skn8/7xj3+0KykpKfcf0osvvti4TZs28QULFsxdtGjRnLPPPnvLLbfcsna//faLT58+feFHH320cOnSpXl/+tOf2r/zzjsL586dO+e///1vgyeeeKIpwI4dOyK9evXavmDBgrk/+9nPtv3hD39YO3v27HmLFi2as2PHjsikSZOaAFx22WUHPvDAA9/Mnz9/bjQa3dWpfOzYsS2bNGmSnD179rwvvvhi3uOPP95q/vz5Veqf60baQGXNlpItrJ/XmJ49oU8fv0eTOdeWldIMc/AceiicfLJdPuqGGyA/EmXN6jIKCqBbN79HlyHXMszRiFsBs0NTNPxo+gXQu7dtbjl1as0snxjWpl+RaIykoAGzUhmoTCa4JkyfPr3hySefvKl+/fqmfv36ZsCAAZsAPv3003q33npr+61bt0a3b98e7dev32aAHj16bBs8eHCnc845Z+PgwYM3VvZxBg4cuKlevXqmXr16iebNm8eXL18eO+igg37woXHMMcfsuPnmmzteccUV7c8444zNgwYN2rbnPu+//36D3r17b23Xrl0C4Fe/+tWG6dOnN/zNb36zKRqNctFFF+0a1+uvv95o9OjRbXbu3BnZtGlTrFu3bjvWrVu3bfv27ZGCgoLtAEOGDNlQVFTUFGDq1KmN58+fX3/y5MnNALZu3RqdO3du3a5du1Z6zknGGWYRiYrIf0XkVe/ygSLykYgsFpFnRCTf217Hu7zYu75T2n3c5G1fICI/S9s+yNu2WERuzHSsat/Wb93C1nWNGTFij7VlQ8q5pl/JpDMlmC4ZMQLWroV//QvWfBchUVoW+vn/gHNNv8qiESLJMr+HkTWRRJIyRz4P/Mow5+XZ5l81NY85dQIgbHOYAdtgUgNmpZwxbNiwA++7775vFy5cOHfkyJErS0pKIgBPP/30t3fcccfKZcuW5R977LHdVq9eXanuGHXq1NmVxY1GoyQSiXL/IR1xxBEln3322dzDDz98x//8z/+0//3vf9+2KuPOz88vi3nHIcXFxfK73/3ugBdffPGrhQsXzr3gggvW7dy5c6/xrDFGRo0a9e38+fPnzp8/f+6KFSu+PPvss7dUZQzZKMm+FpiXdvluYIwx5mBgI3Cpt/1SYKO3fYy3HyLSDTgPOAwYBDzgBeFR4H7gZKAbcL63r6ohxhi2xjfTuG5jzjnH79Fkh2tNvyRRpgFzAJ10Ehx+uF1i6utvItSrU8Ypp/g9qixwrCTbtYBZkkkSUTdmVvnR9CuloAAWLYJvvsn+fe/KMIesJBuwDeXi7vz/VKq26Nev37YpU6Y0KS4uls2bN0emTp3aFKC4uDiy//77x0tKSmTSpEnNU/vPmTOnzoknnrh97NixK5s1a5ZYsmRJlcqV92Xp0qV5jRo1Krvyyis3jBgxYvXnn39eH6BBgwbJzZs3RwCOP/747R999FGjVatWxRKJBM8991zz/v37/yATXVxcHAFo06ZNYvPmzZFXXnmlGUDLli2TDRo0KHv77bcbADzxxBO7fr8BAwZsHjduXKtUyfisWbPqbNmypUr/PDM65SkiHYBTgTuBESIiwInAr71dHgf+BIwDzvB+BngeuM/b/wxgkjGmBPhaRBYDPb39FhtjlniPNcnbN30BF5VFH3yyAyJJjuvR2JWEErFIjB2JHX4PI2siiQTJiBsHyC4Rgeuvtx2x1xPhoA5l4V1KKp1jJdll0QixUncCABczzH5MoSkosN/feiv7Xe3D2vQLIBERJOnO+0Wp2qJfv37FgwYN2tytW7fDWrRoEe/SpcuOJk2aJG+88caVPXv2PLR58+aJY445Ztu2bduiANdff32HpUuX1jHGyHHHHbeld+/eWT1w/vTTT+vddNNNHSKRCLFYzDzwwAPfAAwZMmTdoEGDDmndunXpRx99tPC2225b0a9fv0NSTb8uuOCCTXveV8uWLZODBw/+7tBDDz2sVatWiSOPPHJ76roHH3xw6eWXX35AJBKhT58+Wxs1apT0fr91S5curXP44YcfaoyR5s2bx1977bWvqvI7ZHoUNBa4AWjkXW4BbDLGpD5hlwPtvZ/bg63lN8YkRGSzt397YEbafabfZtke23tlOF61F3eP3QJd4KTjQrzw8h6ca/qVLCOpTb8C6de/hptuAlkXoWVTR+bJOpZhTsai5O9wZ5kcSZQ5cwLNr5JsgMMOgzZtoKgo+wFzWJt+gc0wi2aYax0RmQCcBqw1xnT3tv0JGAp85+32R2PMa951N2GrSJPAb40xU7ztg4B7gCjwsDHmrlz+HrXdbbfdtnr06NErt27dGunTp0+XXr16FR933HHFI0eO/G7Pfd98881KBY+nnXba1tNOO20rwOjRo1emX7do0aI5Fd3unHPO2XLOOef8IOF58803r7355pt3ddYePnz4huHDh2/Yc7/i4uL/pl8uLCxcWVhYuHLP/Y499tgdCxcunAvwxz/+sQ2wHWy5+H333bcCWLGv37Ei1Q6YRST1ZvpURPpX936yQUSGAcMA8vOzWkVQa7z+Orzypg2Y2zRr7Pdwssa1pl+RRJKkIyWYrqlTByZOhMP+J0p0hyNlv47NYTbRCNGEI38bIJJMkoy58XngV9MvsBUiBQUwZYrtmJ3NcxBhXYcZIBEVDZhrp8eA+4CJe2wfY4z5R/qGPaZVtgOmisgh3tX3AwOwCa9PRGSyMUarRHPkggsuOGDRokX1SkpK5Lzzzlt/3HHHFfs9ppr27LPPNhk1alTbZDIp7du3L3n66aeXZuu+M/kE/ylwuoicAtQFGmPPJDUVkZiXZe7A7mh+BdARWC4iMaAJsD5te0r6bSra/j3GmPHAeIAGDRqY8vZRFdu6FYYPh05dtrAUaFzHrYDZpQxzJFlGmQbMgTVwIDA+AvMdCcpcK8mORYkm3fkX4dLngZ8ZZrAB85NPwpdfwpFHZu9+d2WYQ1iSnYwKousw1zrGmHfTG/Pug06rDKhXXnnl6+re9oUXXmh88803d0jf1rFjx5KioqK9ZqJXr14d7d+/f5c9t7/zzjsL2rRpU+Old0OHDt04dOjQSnf5ropqHwUZY24CbgLwMsy/N8YMFpHngF8Ak4AhwMveTSZ7lz/0rn/bGGNEZDLwtIiMxp6d6gx8DAjQWUQOxAbK57F7brTKoj/+EZYvh3se2MJvP3UrYHat6ZdLB8jOikRsmsoFjpVkm2iUqCt/G7zPA0cyzH4HzCedZL9PnZrdgHnXHOYQlmQno4IkHZleotK1FJGZaZfHe4mnfblaRC4EZgK/M8ZsRKdVOqmiEup9adOmTXL+/PlOnhSpif+0I7ENwBZj5yg/4m1/BGjhbR8B3AhgjJkDPIs96/QGcJUxJullqK8GpmC7cD/r7auy6IMP7PqxV18NHQ7aDLgVMMciMV9K/GpKNJHUgDnoXAqYNcMcaC59HkQkQkQivk2h6dABuna185izKazrMAMkohEicQ2YHbTOGNMj7asywfI44CDgKGAVMKomB6hU0GTlKMgY8w7wjvfzEnaXY6TvsxP4ZQW3vxPbaXvP7a8Br2VjjOqHSkrgssugY0f461/hhcV2STKXAmbXmn5FkmUkYy60X3ZYJAKuZGVcyzA7FjBHkoYyJ9qxW35PoRkwAB5+2P5vrFMnO/cZ5nWYk9GIZpgVAMaYNamfReQh4FXvYsbTKpUKAzdOTatqufNOmDcPHnwQGjaELSXuBcwxcavpVzRZhnEko+SsaNSdDLNzTb+ixBxahzmaLKPMoRNoeZE8XyuCCgpgxw748MPs3WeY12FORkUzzAoAEWmbdvEsYLb382TgPBGp402hTE2r/ARvWqWI5GOnVU7O5ZiVyiY98q6lvvwS/vY3uOACGDTIbnMyYHau6Zdx6gDZSVqSHVg2w+z3KLLHtRNofn9e9+tnz3dNnZq9+wzzOszJWISIZphrHRH5F7bfUBcRWS4ilwJ/F5EvRWQWcAJwPei0yrAYMWJEu1tvvbV1Rdf//e9/b3Xfffe1ADjnnHM6Pfroo82q+hj9+vU7eN26dXs9QL3uuuva/fvf/260t33Ks2DBgvx//vOfzVOX33333foXXXRRx73dJtvcOApSVZJM2lLspk1hzJjd27eUbKFurC75UXeW5sqL+puxyLZYsgzjUAmmk1wKmF3LMOflEStzpyQ7mnCvJNvPiqAmTaBnTxsw33FHdu4zzOswl0UjRByqyFCVY4w5v5zNj5SzLbW/TqsMuRtuuOEHazNX1fTp0xfva5+xY8f+YO3kyli0aFGdZ555pvnll1++AaBv377Fffv2zekyWW4cBakqKSyEjz+Gp5+Gli13b99SssWp7DL4n7HINs0wh4BLAXM8blNuIn6PJDuibs1hjpaVYfLc+TwIQs+JAQNssLxxIzSrco7lh8Lc9CsZixJNaIZZqeq65OVLOs5eO7t+Nu+z+37diyecMWHZvvYbOXJkm2eeeaZlixYt4u3atSs9+uiji0eNGtXy0UcfbRWPx6VTp04lzz///NeNGjUqGzFiRLuGDRsmb7/99l1z1SdPntyosLBwv6lTp34F8NJLLzV+4IEHWlW0tFT79u0Pnzlz5rwtW7ZETj755M49e/bcNnPmzIatW7cunTJlyuKGDRuac845p9Npp522+eKLL9743nvv1R8xYkTH4uLiSLNmzRJPPfXU0gMOOCA+e/bsOsOGDTtg/fr1sWg0ap577rklN998c/slS5bU7dq1a7fzzz9/3bHHHrtj1KhRradNm7Z4zZo10cGDB3f69ttv69SrV69s/Pjx3/Tq1WvHiBEj2i1btiz/m2++qbNy5cr8yy+/fM0tt9yytrrPuzu1XKpSliyBW26BU0+F8877/nVbSt0LmF1bVipaZjAaMAeba02/HGn4BWDyYsQcOZcBEE0apypOgnCCs6DAnu96553s3F+Ym36VxSJEEg69YZSqJd577736L730UvMvv/xyblFR0aIvvviiAcDgwYM3zp49e96CBQvmdunSZUdhYWHLiu7jtNNO2/rVV1/VXblyZQxgwoQJLS6++OJ1lXn8b7/9tu5vf/vbtYsXL57TpEmT5MSJE793+rGkpER++9vf7v/yyy9/NWfOnHlDhgxZ9/vf/749wK9//esDL7/88rULFiyYO3PmzPn7779//M4771zRo0ePbfPnz5972223fS/oveGGG9odeeSRxQsXLpz7l7/8ZcWQIUMOTF23ePHiutOnT1/4ySefzPvHP/7RrqSkpNpn/8P3CR5QLf9e4WsuULZsgcQ18EFTaPW/e1xXsoXDWx/uy7hqit8lftkWc+wA2UmuNf1ypBwbgFiMPEf+NGAD5jKH/j5+N/0C6NULGjSwZdlnnZX5/YV5HeayaJSolmQrVW2VyQTXhGnTpjU85ZRTNjVq1KgMYODAgZsAPv3003q33npr+61bt0a3b98e7dev3+aK7iMSiXDuueeuf+ihh5pfddVV6z/77LOGL7744teVefz27duX/OQnP9kBcPTRRxcvXbr0e+sO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69dvc0X3EYlEOPfcc9c/9NBDza+66qr1n332WcMXX3zx6/L2fffddxv07t17a7t27RIAZ5999oaFCxfums919tlnb4x5xxIbNmyI/upXvzpw6dKldUXExONxAejfv//We+65p/WPfvSj0oEDB25+5513Gm/dujWyfPnyOkceeaTvZ7k1wxxyxsCVV9rj2vHjQcTvEQWLS02/kl7jlVTjIhVQLgXMjpVkR+vY/98uNP1KfR64FjAHsRpowADbI+Tbb6t+2zCvw5x67ycdqMhQGWttjFnl/bwaSDWQag+kB4XLvW0VbVc+GjZs2IH33XfftwsXLpw7cuTIlSUlJXuNA6+44or1zz77bItHHnmk+c9//vON1Z1/3LBhw10HRCNHjmzfr1+/rYsWLZrzyiuvLC4tLY0A9O3bt3jWrFn133333Yb9+/ff2r179+KxY8e27N69e3G1HjTLNGAOuWefhVdegdtvh4MO8ns0weNUhrlUM8yh4FrArBnmQEpVnLh0Ai0vErymX2DnMQO89VbVbxvmkuyItyKDC+uWq+9pKSIz076GVeXGXjbZgWUg3HXiiSdue+2115pu27ZNNm7cGCkqKmoKUFxcHNl///3jJSUlMmnSpH02JujUqVO8devW8VGjRrUdNmxYhXOI+/btu/2jjz5qtHr16mhJSYm89NJLFZbfb9myJdqhQ4dSgAcffHBXSXjdunVN27Zt46+88kqzE088cdvxxx+/9f77729z3HHH+V6ODRowh9r69XDNNXDssXDddX6PJphcavqVOsh3ac6ik9KbfoVdPO5WhjnfZphNPHhZzKra/XngThPAIJZkA3TvDvvtV715zGFu+rWrJFsDZtesM8b0SPsaX4nbrPFKrfG+r/W2rwA6pu3XwdtW0XaVA8cdd1zxWWedtaF79+6HFRQUdD7iiCO2A9x4440re/bseWiPHj26du7cuVKlVuedd976tm3blh5zzDEV7n/AAQfER44cubJ3796H9ujRo+shhxxS4b4jR45c/ac//anDoYce2i2R+P7nfZ8+fba2aNEi0bBhQzNgwIBta9asyTvhhBO2VfLXrlHupA5qoREjYONGO7fKoSRQVrnU9CtVRurSAbKTtOlXYO3OMIe/xHT354E7J9DyosFr+gV2qlNBgQ2Yq7paXDwZ4jnMDq1brjI2GRgC3OV9fzlt+9Ui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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_result = pd.DataFrame( data={\n", " 'gas_in_storage': map(lambda x: pulp.value(x) , daily_storage),\n", " 'daily_injection': map(lambda x: pulp.value(x), daily_injection),\n", " 'daily_draw': map(lambda x: pulp.value(x), daily_draw),\n", "})\n", "\n", "fig, ax = plt.subplots()\n", "ax3 = ax.twinx()\n", "rspine = ax3.spines['right']\n", "rspine.set_position(('axes', 1.05))\n", "ax3.set_frame_on(True)\n", "ax3.patch.set_visible(False)\n", "fig.subplots_adjust(right=1.7)\n", "\n", "df_result['gas_in_storage'].plot(ax=ax, style='b-')\n", "df_result['daily_injection'].plot(ax=ax3, style='g-')\n", "df_result['daily_draw'].plot(ax=ax3, style='r-')\n", "\n", "ax3.legend([ax.get_lines()[0], ax3.get_lines()[0], ax3.get_lines()[1]], ['gas_in_storage','daily_injection', 'daily_draw'], bbox_to_anchor=(1.35, 0.5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We're going to run simulation when injection ratchet is reduced to 1000 Dth per day at 50% storage level. Note that profit now is lower by 11% vs flat ratchet scenario" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('Optimal', 35269.999999999985)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max_daily_injection2 = pd.DataFrame(data=[(0.0,2000),(0.5,2000),(1.1,1000)], columns=['ratchet', 'mdiq'] )\n", "max_daily_withdrawal2 = pd.DataFrame( data=[(0.0,2000),(0.5,2000),(1.1,4000)], columns=['ratchet', 'mdwq'] )\n", "\n", "m = build_model( max_daily_injection2, max_daily_withdrawal2 )\n", "solver = pulp.getSolver('PULP_CBC_CMD')\n", "m.solve(solver)\n", "pulp.LpStatus[m.status], pulp.value(m.objective)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Injection and withdrawal ratchets look like this now" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "max_daily_injection2.plot(x='ratchet',y='mdiq', style='g-', drawstyle=\"steps\" )\n", "max_daily_withdrawal2.plot(x='ratchet',y='mdwq',style='b-', drawstyle=\"steps\")" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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CHDfffc1fe+99+bOmTNn5rvvvjt/V59n/vz5VSdOnDj366+/nvXggw82y8vLs+L2e+2112o3adIkf86cOTPnzZs34/TTT1936623Lt9tt93yJ06cOPfLL7+cu2DBgip33HFH848//njuzJkzZ3zzzTc1nnnmmboAmzZtyjjkkEM2zpkzZ+af//znDTfccMPy6dOnz5o3b96MTZs2ZYwZM6YOwN///vc9hg0b9tPs2bNnZmZmbm3AMnjw4IZ16tQpnD59+qypU6fOevrppxvNnj07uzTHNL2HQGSXOedHl5s399PGKgsF5jQQxRHmwvQfYY41LVNglqRJ46ZfMW3aQLdu8MgjfhWKnJywKyoHBWaRctmVkeCKMHHixJonnHDCr9WrV3fVq1d3xx9//K8AkydPrnb77bc3X79+febGjRszO3fuvBagQ4cOG7p3797qjDPOWNO9e/c1u/o8Xbt2/bVatWquWrVqBfXr189fuHBh1p/+9KffXcd10EEHbbrlllta/uMf/2h+6qmnru3WrduG7ff573//W+PQQw9d36xZswKAs88+e/XEiRNrXnDBBb9mZmZy0UUXba3rnXfeqfXQQw812bx5c8avv/6a1aZNm00rV67csHHjxowuXbpsBOjRo8fqCRMm1AV4//33a8+ePbv62LFj6wGsX78+c+bMmVX32WefLbv6u5b7o1wzyzSzb8zs7eDnPczsSzObb2Yvmll2sD0n+Hl+cHuruMe4Kdg+x8z+HLe9W7Btvpn1L2+tldn48fDZZ3DrrVC1atjVJI8CcxqIWNMv8CPM6R6Yt17DXKRrmCVJ0nxKdkzfvrBsGbzwQtiVlJMCs0ik9OzZc49HHnnk57lz587s16/f4ry8vAyA559//ue777578S+//JJ98MEHt1m6dOkufXKZk5OzdRQ3MzOTgoKCYkeY999//7wpU6bM3G+//Tbddtttza+//vqmpak7Ozu7KCs4v8rNzbXrrrvuD6+99tr3c+fOnXn++eev3Lx58w7fOJxzNnDgwJ9nz549c/bs2TMXLVo07fTTTy9VMEjEO9M1QHxPyPuBQc65PYE1wKXB9kuBNcH2QcF+mFkb4BygLdANGBaE8ExgKHAC0AY4N9hXSsk5H5RbtYJLLgm7muSKBea1m9eGXImUKKJTsqMSmDXCLEkTkcDcpQu0a+eXmErrVdkU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HQXmVBXhpl+Zlt4n/grMknQRnJId07s37Lcf9OkDabPypQJzpWVmNYDjgdfiNj9gZtPM7DvgGOBaKPnSyiSXLDvQt2/fZrfffnvjkm5/4IEHGj3yyCMNAM4444xWo0aNqlfa5+jcufOeK1eu3OGJT58+fZq98cYbtUr72HPmzMl+9NFH68d+/uSTT6pfdNFFLXd0n0SLyFmqxGzY4JuLdOkCnTuHXU1qiI0wO+fYQZdHCUNshDliU7Kruoy0f63FmpZpWSlJmggH5qws3wDsqKPg3nvhnt9dhJaCFJgrLefcRnwfovhtF+xg/2IvrZT0cOONN67Y+V47NnHixPk722fw4MGLy/LY8+bNy3nxxRfrX3HFFasBjjrqqNyjjjoqqctkKTBHzH/+AytWpGE3zgpUO6c2+UX55BXmUTWratjlSLyIjjBnu/Q/6dcIsyRdhAMzwJFHwgUX+Guae/SAvfcOu6KdUGAWKZdL3ryk5fTl0xO6oFy73drljjx15C87269fv35NXnzxxYYNGjTIb9as2ZYDDzwwd+DAgQ1HjRrVKD8/31q1apX3yiuv/FirVq2ivn37NqtZs2bhXXfdtfU69bFjx9YaMmTIbu+///73AK+//nrtYcOGNSppaanmzZvvN2nSpFnr1q3LOOGEE/bq2LHjhkmTJtVs3LjxlvHjx8+vWbOmO+OMM1qddNJJay+++OI1n376afW+ffu2zM3NzahXr17Bc889t+APf/hD/vTp03N69uz5h1WrVmVlZma6l19++Ydbbrml+Q8//FB1n332aXPuueeuPPjggzcNHDiw8UcffTR/2bJlmd27d2/1888/51SrVq1oxIgRPx1yyCGb+vbt2+yXX37J/umnn3IWL16cfcUVVyy79dZbl5f1uEf3nakS+vVX34nzpJPg0EPDriZ11M6pDaBp2akook2/qkbgs0gFZkm6iDb9ivfAA1Ctmm8A5lzY1eyEArNIWvr000+rv/766/WnTZs2c8KECfOmTp1aA6B79+5rpk+fPmvOnDkzW7duvWnIkCENS3qMk046af33339fdfHixVkAI0eObHDxxRev3JXn//nnn6teffXVy+fPnz+jTp06haNHj95mindeXp5dffXVu7/55pvfz5gxY1aPHj1WXn/99c0BzjvvvD2uuOKK5XPmzJk5adKk2bvvvnv+Pffcs6hDhw4bZs+ePXPAgAHbhN4bb7yxWfv27XPnzp0785///OeiHj167BG7bf78+VUnTpw49+uvv5714IMPNsvLyyvz1L/0P6uTrQYN8qH5rrvCriS11KlaB4DWj7RO6+tKq2RW4ZnTnqHLH7uEXUriRLTpV45GmEVKL6JNv+I1aeJngF1zDbz2GpxxRtgV7YACs0i57MpIcEX46KOPap544om/1qpVqwiga9euvwJMnjy52u233958/fr1mRs3bszs3LlziWuuZmRkcNZZZ616/PHH6/fq1WvVlClTar722ms/7srzN2/ePO/www/fBHDggQfmLliwICf+9u+++y5n3rx51Y499ti9AYqKimjUqFH+mjVrMpYtW5Z94YUX/gpQvXp1B+zwo8Wvvvqq1quvvjof4JRTTlnfs2fPrNWrV2fEfu9q1aq5atWqFdSvXz9/4cKFWX/605/KdJ1ZRM5SZeVKH5jPPBMOPDDsalJLtz27cd1h17G5YHPYpZRZfmE+I6aM4Nul30YrMEd0SnaOS/+Tfq3DLEkX8SnZMVde6Zd+7NMHunWDGjXCrqgECswikdKzZ889XnnllfmHHXbYpiFDhjSYOHHiDhtw/eMf/1j1l7/8Zc+qVau6k08+eU2VXZwNmJ2dvTXkZmZmuk2bNm3zH7tzzvbcc89N33777ez47WvWrEnoG0BOTk58HRQUFGiEubL79799w6877wy7ktTTsHpDHuz6YNhllMuWwi2MmDKCvIK8sEtJrIg2/dIIs0gZVJLAHGsAduSRfjWLf/0r7IpKoMAskpaOPfbYDZdcckmru+++e0l+fr5NmDChbo8ePVbk5uZm7L777vl5eXk2ZsyY+k2bNt3hJ+KtWrXKb9y4cf7AgQObvvvuu3MTVd/++++/efXq1Vnvv/9+jS5dumzMy8uzadOm5XTo0GFzkyZNtjzzzDN1L7jggl83bdpkBQUFVqdOncINGzYUOxJxyCGHrB81alSDf//730vefvvtWvXq1SuoX79+UaJqjYn+O1MlsHSpb/bVvTu0aRN2NVIRYh2LtxRuCbmSBNMIc8pSYJakqySBGaBTJ9/4a+BAmD175/uHQoFZJC116tQp97TTTlvdrl27tl26dNlr//333wjQv3//xR07dty3Q4cO++y11167NO3ynHPOWdW0adMtBx10UEKmaZqZq1q1qhszZsz3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nXn22WfvsWDBgqpm5vLz8w3g6KOPXv/www83/uMf/7ila9euaz/++OPa69evz1i4cGFO+/btQx8t0jtTmpgwAT791E/JrlZt5/tL9ERyHeYojjBnGFWKUmUh1fLJysjSOsySPArMW8UagC1b5peRDK0IUGCunBzwnplNNrOewbbGcSF4KRBrItUciA+GC4NtkmJ69uy5xyOPPPLz3LlzZ/br129xXl7eDv/D/cc//rHqpZdeavDkk0/WP/nkk9eU9frjmjVrbp13169fv+adO3deP2/evBlvvfXW/C1btmQAHHXUUbnfffdd9U8++aTm0Ucfvb5du3a5gwcPbtiuXbvcMj1pgumdKQ0454PyH/4Al14adjUSlpysnOh1yS4o8CdloV2kl3gFGVAlIiPMmpItSaXAvI3/+z+47DIYMgSmTQuhAAXmqGpoZpPivnoWs08n59xB+OnWvczsqPgbg9HkaHwyHEHHHnvshnHjxtXdsGGDrVmzJmPChAl1AXJzczN23333/Ly8PBszZkz9nT1Oq1at8hs3bpw/cODApj179izxGuKjjjpq45dffllr6dKlmXl5efb666+X2GV73bp1mS1atNgC8Nhjj22dEl61alXXtGnT/Lfeeqvescceu+HII49cP3To0CadOnUKfTo2KDCnhbfegq+/9stJ5eSEXY2EJTsjgiPMBQWRavgFkJ8JmbqGWaT01PTrd+69F+rU8Q3AXLLjiQJzVK10znWI+xqx/Q7OuUXBn8uB14GOwDIzawoQ/Lk82H0R0DLu7i2CbRKSTp065Z522mmr27Vr17ZLly577b///hsB+vfvv7hjx477dujQYZ+99tpr86481jnnnLOqadOmWw466KAS9//DH/6Q369fv8WHHnrovh06dNhn7733LnHffv36Lb3jjjta7Lvvvm0KCrY9vzjssMPWN2jQoKBmzZru+OOP37Bs2bIqxxxzzIZd/LUrlLmk/w9csWrUqOE2btwYdhkJU1QEBx4Iubkwa1akZq5KKV017iqem/Ycq/utDruUxOnbFx5/HNanxAeICTGvcRZr99qdDv/9IexSyq3tsLa0adSGl//2ctilSGWQnQ3XX+9Tomz1+OPQsyc88wycf36Sn9zMf1p/551JfuLoMbPJcQ20wqxj0o7qMLMaQIZzbn3w/QTgLuA4YJVz7j4z6w/Ud87daGZ/AXrju2QfAgxxznWs+N8kNU2dOnVB+/btQ+3onEgXXnjh7gceeGDutddeG5nfqSRTp05t2L59+1bF3ab4leJeeQW++w6ee05hubKL7DrMEXth52dAlkaYRUpPU7KLdemlvgHY9dfDySf7EeekyczUCHPl0xh43a8WRRbwvHPuXTP7GnjJzC4FfgLOCvYfhw/L8/HLSl2c/JKlIrRt23bfatWqFT322GOhNC9LJdE6U42YggL/wW7btnD22WFXI2GLbNOvqE3JzoCswmjM3FFglqRSYC5WRgYMHQodO8KAATB4cBKfXIG50nHO/QC0L2b7Kvwo8/bbHdArCaVJks2YMWPW9tv233//fWKNumJGjx79Y8eOHTclr7LkU2BOYc8/D3PmwKuvamlK8ctK5RflU+SKyLCInFRGcoTZaR1mkdJyzn8pMBerQwe4/HL4z3/g4ouh/e/iTAVRYBaRON99993ssGsIg96ZUlR+vl9K4sAD4bTTwq5GUkF2ZjYA+YURWuYnik2/MlxkRpirZFSJ1utNUldR8CmTAnOJ7rkH6tVLcgOwjAwFZpHSKSoqishSGZVI8HdW4nCH3plS1KhR8OOPcPfdkVpxR8ohFpgjtbRUfn70RpjNkRmRwKwRZkmaWGDWdKoS1a8P998Pn33mG4AlhUaYRUpr+ooVK+ooNKePoqIiW7FiRR1gekn7lPlM1cxaAqPxzQEcMMI597CZ1QdeBFoBC4CznHNrzHcPeBjfGCAXuMg5NyV4rB7ArcFD3+2cezrYfjDwFFAN31TgGhe1tt7F2LwZ/vlPOOwwOOGEsKuRVJGT5dcUi9R1zBGbku2cC5p+ReO/qayMLDYX7NLKEyLloxHmXXLxxb5r9g03wCmnQN26FfyECswipVJQUPD3pUuXPrF06dJ2aGAyXRQB0wsKCv5e0g7lOVMtAK5zzk0xs1rAZDObAFwEfBDXdr4/0A+/+PlewdchwHDgkCBgDwA64IP3ZDMb65xbE+xzGfAlPjB3A94pR81pYcQIWLgQnn5ao8vym9gIc6QCc8SafhW6QvIz0AizSGkpMO+SjAwYNsxf03z77TBkSAU/oQKzSKkcfPDBy4FTwq5DEqvM70zOuSWxEWLn3HpgFtAcOBV4OtjtaeCvwfenAqOd9wVQN1j4/M/ABOfc6iAkTwC6BbfVds59EYwqj457rMjauNEvQXnMMXDssWFXI6kkJ9OPMOcVRGhKdsRGmPML8ynIgMzCaHT9qpJZhfwiXcMsSaDAvMsOOgj+8Q/fOfvbbyv4yRSYRUQSM1XAzFoBB+JHghs755YENy3FT9kGH6bj1/FaGGzb0faFxWwv7vl7mtkkM5tUUJDeoyFDh8KyZX5Ktki8SI4wR6zpV0FRAfmZkBGhKdkaYZakiIUyXcO8S+6+Gxo08A3Aiiry8zkFZhGR8gdmM6sJvAr0cc6ti78tGBmu8DNH59wI51wH51yHrDQerVq3zjf0OOEEOOKIsKuRVKOmX6mvoKjAjzAXRGOEWYFZkkYjzKVSrx488AD8738wenQFPpECs4hI+QKzmVXBh+XnnHOvBZuXBdOpCf5cHmxfBLSMu3uLYNuOtrcoZntkDR4Mq1drdFmKp6ZfqW9rYI7IlGwFZkkaBeZSu/BCOPxwuPFGWLOmgp5EgVlEpOyBOeh6/SQwyzn3UNxNY4Eewfc9gDfjtl9o3qHA2mDq9nigq5nVM7N6QFdgfHDbOjM7NHiuC+MeK3JWr4aBA/2aywcfHHY1kooiOSU7Yk2/8ovyyc+AjIgEZq3DLEmjwFxqGRn+Mq5Vq+C22yroSRSYRUTKNcJ8BHABcKyZfRt8nQjcBxxvZvOALsHP4Ltc/wDMBx4HrgRwzq0G/gl8HXzdFWwj2OeJ4D7fE+EO2Q8+COvXw513hl2JpCo1/Up9sRHmqARmjTBL0igwl8kBB/jrmIcPhylTKuAJFJhFRMq+rJRz7r9ASYseHVfM/g7oVcJjjQRGFrN9EtCurDWmi+XL4eGH4ZxzYL/9wq5GUlUkR5ij2vRLgVmkdNT0q8zuugtefNEH588+S/BnDgrMIiJaUDsV3Hcf5OXBHXeEXYmkMjX9Sn1bR5gLonGCqcAsSaMR5jKrWxf+/W/44gt46qkEP7gCs4iIAnPYFi2CYcOgRw/Ye++wq5FUpqZfqS+2DnNURpirZGgdZkkSBeZyueAC6NQJ+vXzPVESRoFZRESBOWx33+3PEyqsYYdERiSnZEes6VdBUYFv+qURZpHSUWAuFzPfAGzNGrj11gQ+sAKziIgCc5h+/BGeeAIuuwxatQq7Gkl1avqV+mJTsk2BWaR0FJjLbf/9oXdvePRRmDw5QQ+qwCwiosAcprvu8lnhllvCrkTSQSRHmNX0K6UpMEvSqOlXQtx5J+y2G1x55W+fQZSLArOIiAJzWObMgdGj/Ztas2ZhVyPpQE2/Ul9+kb+G2YqKEnS2Gq4qmVUoKCrAL3IgUoE0wpwQder4ZSq/+gqefDIBD6jAXOmYWUsz+8jMZprZDDO7Jth+h5kt2m4p2dh9bjKz+WY2x8z+HF71IhVD70whueMOqFbNN+gQ2RWRbfoVtRHm2P+qBek/MpuV4T/MKHQ6YZYKpsCcMN27w5FHQv/+sGpVOR9MgbkyKgCuc861AQ4FeplZm+C2Qc65A4KvcQDBbecAbYFuwDAz01QRiRS9M4Xgu+9gzBi45ho/dUpkV0RySnbERphj1zAD/ndLc7HArGnZUuEUmBMm1gBs7Vq4+eZyPpgCc6XjnFvinJsSfL8emAU038FdTgXGOOfynHM/AvOBjhVfqUjy6J0pBAMG+GlT118fdiWSTqpk+JFYNf1KXbFlpYBIjTDnF6Z/+JcUp8CcUPvtB1dfDY8/7qdnl5kCcxQ1NLNJcV89S9rRzFoBBwJfBpt6m9l3ZjbSzOoF25oDv8TdbSE7DtgiaUfvTEk2aRK88QZcdx3Uq7fT3UW2MjOyM7OjNcIcxSnZsYloEQjMsQ9pNMIsFU5NvxLujjugcWPo1ascmVeBOYpWOuc6xH2NKG4nM6sJvAr0cc6tA4YDfwIOAJYAA5NVsEjYFJiT7LbboEEDPx1bpLSyM7PV9CuFaUq2SBlphDnhateGgQP9B/VPPFHGB1FgrpTMrAo+LD/nnHsNwDm3zDlX6JwrAh7nt2nXi4CWcXdvEWwTiQy9MyXRf/8L777rG33Vrh12NZKOcjJzojPC7Jw/EYvaCHMEp2QrMEuFU2CuEOeeC507w003wcqVZXgABeZKx8wMeBKY5Zx7KG5707jdTgOmB9+PBc4xsxwz2wPYCyjPhQAiKUfvTEniHNx662/To0TKIlJTsmOBMkIjzLFlpfwP0Rlhzi9K/99FUpwCc4WINQBbt86H5lLLzIzEEnlSKkcAFwDHbreE1ANmNs3MvgOOAa4FcM7NAF4CZgLvAr2c09IKEi3ROVNNcR9+CBMnwpAhUL162NVIusrJyonOlOwIBuZtpmRHYIS5SqauYZYkUWCuMG3bQp8+fnr2pZfCoYeW4s4aYa50nHP/BayYm8bt4D73APdUWFEiIdM7UxLERpdbtoSeJfYiFNm5SI4wR21KdoSafmlKtiSNmn5VqAEDoFmzMjQAU2AWEVFgToZx4+CLL3zDr5ycsKuRdJadmR2dZaViU5ajOsIcoSnZCsxS4TTCXKFq1YKHHoIpU2BEsT2RS6DALCKiwFzRiop8UP7jH+Gii8KuRtJdpJp+RXCEOb8wP5JNv7QOs1Q4BeYKd9ZZcOyxcPPNsGLFLt5JgVlERIG5or3+OnzzjV8PMUK5QEISqSnZGmFOeVqHWZJGgbnCmcEjj8CGDdC//y7eSYFZRESBuSIVFsLtt8M++8B554VdjUSBmn6ltqg1/dKUbEkaBeak2Hdf6NsXRo6Ezz/fhTsoMIuIKDBXpDFjYOZMuOsu9TGRxIjkCHOEpl5s0/QrAiPMCsySNGr6lTS33QbNm8OVV+5CFlZgFhFRYK4o+fl+Gnb79nDGGWFXI1ERqaZfERxh3mYd5giNMGsdZqlwGmFOmpo1YdAg+PZbePTRneyswCwiosBcUUaPhvnz4Z//1Pu/JI6afqW2gqKCSDX90jrMkjQKzEl15pnQpQvccgssX76DHRWYRUQUmCtCXp6fhn3IIXDSSWFXI1ESySnZERphLigqwGUG/61qSrbIrlNgTioz+M9/IDcX+vXbwY4KzCIiCswV4Ykn4Oef4e67/ZuSSKKo6VdqKygqwGUF12BGYIRZgVmSRoE56fbZB667Dp56Cj77rISdFJhFRBSYEy031wflzp3huOPCrkaiJjsjgiPMEZqSnV+Yj4t9ABChEWatwywVTk2/QnHrrdCyJfTqVcJnfArMIiIKzIk2bBgsXeqvXdbosiSamn6ltqiNMGsdZkkajTCHokYN3wBs6lQYPryYHRSYRUQUmBNp/Xq47z7485/hyCPDrkaiKCdLTb9SWUFRwW+/TwQCs6ZkS9IoMIfm9NOha1c/2rxs2XY3KjCLiCgwJ9LDD8OqVX50WaQiqOlXaisoKvjt94nQlGwFZqlwCsyhiTUA27QJbrxxuxsVmEVEFJgTZc0aePBBOPVU+L//C7saiaqczBzyi/IpckVhl1J+EZySnV+U/9vvE6ERZq3DLBVOgTlUe+8NN9zgl8T89NO4GzIzwTn/JSJSSemdKUEGDoS1a/1yUiIVJTszG4hIE6YINv0qKCrAVYnOCLPWYZakUdOv0N18M+y++3YNwGJ/HxplFpFKLOUDs5l1M7M5ZjbfzPqHXU9xVq6EwYPh7LNh//3DrkaiLBaYI7G0VARHmAuKCrAsXcMsUmoaYQ5djRr+XGbaNHjkkWCjAnOllA7n3iLJlNLvTGaWCQwFTgDaAOeaWZtwq/q9+vVh5EiNLkvFy8nKAYjGdcwRbPqVX5QfyaZfkZjRIKlNgTkl/PWv0K0b3H47LFmCAnMllC7n3iLJlOrvTB2B+c65H5xzW4AxwKkh1/Q7GRlw1ln+GiCRihQbYY5EYFbTr5SnEWZJGgXmlGAGQ4ZAXp6/plmBuVJKi3NvkWRK9TPV5sAvcT8vBA4JqZYda9s27AqkEjhr868csR42ProH80nvhb5rbSqkMXD8CyewuEF22OUkxM9rf2afOnv6HwYNgmefDbegcqrpHNNXQubwfsy3W8IuRyKs9qZCdgOOe/Z4ltaLzqyTdFX7JnhuBTR5axUPAnP+0JBCS+/3nJjdpi+kYdOGYZeRytLn3FskSVI9MO8SM+sJ9ATIzg7pxLuNZqtIxcvOz2XD8iyKXPp/2r8C+KZOVerv3Z66GdE4EWvTqA0n7XUS3DofZs8Ou5xyywCKljvWbVkfdikScSuAyXWr0mDP/akfkf8P0lnrejAtH77cYz1vLJ1JVlEEVmYINNEshoZmNinu5xHOuRGhVSOSBlI9MC8CWsb93CLYto3gH/oIgBo1aoSz9sHLL4fytFK5VCd6H/N2C7uAinBA2AUkzn5hFyCVyglhFyASfSudcx12cPsunXuLVCap/jHb18BeZraHmWUD5wBjQ65JRERERCSKdO4tsp2UHmF2zhWYWW9gPJAJjHTOzQi5LBERERGRyNG5t8jvmXPhzGCuKDVq1HAbN24MuwwREREREQDMbPJOpkInq45JqVCHSDpJ9SnZIiIiIiIiIqFQYBYREREREREphgKziIiIiIiISDEUmEVERERERESKocAsIiIiIiIiUoyUXlaqLHJzc52ZbQrp6bOAgpCeO6p0TBNPxzTxdEwTT8c08XRME0/HNPGiekz3D7uAwMqwCxBJN5FbVipMatWfeDqmiadjmng6pomnY5p4OqaJp2OaeDqmIpJqNCVbREREREREpBgKzCIiIiIiIiLFUGBOrBFhFxBBOqaJp2OaeDqmiadjmng6pomnY5p4OqYiklJ0DbOIiIiIiIhIMTTCLCIiIiIiIlIMBeYEMLNuZjbHzOabWf+w60lXZrbAzKaZ2bdmNinYVt/MJpjZvODPemHXmcrMbKSZLTez6XHbij2G5g0JXrffmdlB4VWeuko4pneY2aLgtfqtmZ0Yd9tNwTGdY2Z/Dqfq1GZmLc3sIzObaWYzzOyaYLteq2W0g2Oq12oZmVlVM/vKzKYGx/TOYPseZvZlcOxeNLPsYHtO8PP84PZWof4CKWgHx/QpM/sx7nV6QLBd//ZFJHQKzOVkZpnAUOAEoA1wrpm1CbeqtHaMc+6AuCUl+gMfOOf2Aj4IfpaSPQV0225bScfwBGCv4KsnMDxJNaabp/j9MQUYFLxWD3DOjQMI/u2fA7QN7jMs+D9CtlUAXOecawMcCvQKjp1eq2VX0jEFvVbLKg841jnXHjgA6GZmhwL344/pnsAa4NJg/0uBNcH2QcF+sq2SjinADXGv02+Dbfq3LyKhU2Auv47AfOfcD865LcAY4NSQa4qSU4Gng++fBv4aXimpzzn3CbB6u80lHcNTgdHO+wKoa2ZNk1JoGinhmJbkVGCMcy7POfcjMB//f4TEcc4tcc5NCb5fD8wCmqPXapnt4JiWRK/VnQhebxuCH6sEXw44Fngl2L796zT2+n0FOM7MLDnVpocdHNOS6N++iIROgbn8mgO/xP28kB2fpEjJHPCemU02s57BtsbOuSXB90uBxuGUltZKOoZ67ZZP72CK4Mi4SwV0TEspmLZ6IPAleq0mxHbHFPRaLTMzyzSzb4HlwATge+BX51xBsEv8cdt6TIPb1wINklpwGtj+mDrnYq/Te4LX6SAzywm26XUqIqFTYJZU0sk5dxB+ClYvMzsq/kbnW7qrrXs56BgmzHDgT/gphUuAgaFWk6bMrCbwKtDHObcu/ja9VsummGOq12o5OOcKnXMHAC3wI/D7hFtR+tv+mJpZO+Am/LH9P6A+0C+8CkVEtqXAXH6LgJZxP7cItkkpOecWBX8uB17Hn5wsi02/Cv5cHl6FaaukY6jXbhk555YFJ31FwOP8NpVVx3QXmVkVfLB7zjn3WrBZr9VyKO6Y6rWaGM65X4GPgMPw04Kzgpvij9vWYxrcXgdYldxK00fcMe0WXFLgnHN5wCj0OhWRFKLAXH5fA3sFXTOz8U1UxoZcU9oxsxpmViv2PdAVmI4/lj2C3XoAb4ZTYVor6RiOBS4MupAeCqyNmw4rO7DdNXSn4V+r4I/pOUG33D3wjWq+SnZ9qS64rvNJYJZz7qG4m/RaLaOSjqleq2VnZo3MrG7wfTXgePy14R8BZwa7bf86jb1+zwQ+DGZKSKCEYzo77oMyw18THv861b99EQlV1s53kR1xzhWYWW9gPJAJjHTOzQi5rHTUGHg96I+SBTzvnHvXzL4GXjKzS4GfgLNCrDHlmdkLwNFAQzNbCAwA7qP4YzgOOBHf7CcXuDjpBaeBEo7p0cGyJw5YAFwO4JybYWYvATPxXYt7OecKQyg71R0BXABMC65lBLgZvVbLo6Rjeq5eq2XWFHg66B6eAbzknHvbzGYCY8zsbuAb/AcVBH8+Y2bz8Y0Czwmj6BRX0jH90MwaAQZ8C1wR7K9/+yISOtOHnyIiIiIiIiK/pynZIiIiIiIiIsVQYBYREREREREphgKziIiIiIiISDEUmEVERERERESKocAsIiIiIiIiUgwFZhEREREREZFiKDCLiIiIiIiIFEOBWURERERERKQY/x99HwR+BiFPhgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_result = pd.DataFrame( data={\n", " 'gas_in_storage': map(lambda x: pulp.value(x) , daily_storage),\n", " 'daily_injection': map(lambda x: pulp.value(x), daily_injection),\n", " 'daily_draw': map(lambda x: pulp.value(x), daily_draw),\n", "})\n", "\n", "fig, ax = plt.subplots()\n", "ax3 = ax.twinx()\n", "rspine = ax3.spines['right']\n", "rspine.set_position(('axes', 1.05))\n", "ax3.set_frame_on(True)\n", "ax3.patch.set_visible(False)\n", "fig.subplots_adjust(right=1.7)\n", "\n", "df_result['gas_in_storage'].plot(ax=ax, style='b-')\n", "df_result['daily_injection'].plot(ax=ax3, style='g-')\n", "df_result['daily_draw'].plot(ax=ax3, style='r-')\n", "\n", "ax3.legend([ax.get_lines()[0], ax3.get_lines()[0], ax3.get_lines()[1]], ['gas_in_storage','daily_injection', 'daily_draw'], bbox_to_anchor=(1.35, 0.5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this experiment we're going to use very steep ratchet. A reduction by 75% of max daily injection rate when storage is above 50% of max storage level. Such contract is now worth 23% less then flat ratchet scenario" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('Optimal', 30400.000000000015)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max_daily_injection3 = pd.DataFrame(data=[(0.0,2000),(0.5,2000),(1.1,500)], columns=['ratchet', 'mdiq'] )\n", "max_daily_withdrawal3 = pd.DataFrame( data=[(0.0,1000),(0.5,1000),(1.1,4000)], columns=['ratchet', 'mdwq'] )\n", "m = build_model( max_daily_injection3, max_daily_withdrawal3 )\n", "solver = pulp.getSolver('PULP_CBC_CMD')\n", "m.solve(solver)\n", "pulp.LpStatus[m.status], pulp.value(m.objective)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df_result = pd.DataFrame( data={\n", " 'gas_in_storage': map(lambda x: pulp.value(x) , daily_storage),\n", " 'daily_injection': map(lambda x: pulp.value(x), daily_injection),\n", " 'daily_draw': map(lambda x: pulp.value(x), daily_draw),\n", "})\n", "\n", "fig, ax = plt.subplots()\n", "ax3 = ax.twinx()\n", "rspine = ax3.spines['right']\n", "rspine.set_position(('axes', 1.05))\n", "ax3.set_frame_on(True)\n", "ax3.patch.set_visible(False)\n", "fig.subplots_adjust(right=1.7)\n", "\n", "df_result['gas_in_storage'].plot(ax=ax, style='b-')\n", "df_result['daily_injection'].plot(ax=ax3, style='g-')\n", "df_result['daily_draw'].plot(ax=ax3, style='r-')\n", "\n", "ax3.legend([ax.get_lines()[0], ax3.get_lines()[0], ax3.get_lines()[1]], ['gas_in_storage','daily_injection', 'daily_draw'], bbox_to_anchor=(1.35, 0.5))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }