{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ " # [EEP 147]: ESG Analysis 2.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\"alternateBig Creek Hydroelectric Project - Southern California Edison
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook expands upon the ESG Analysis notebook and can be utilized for analysis of rounds in the Electricity Strategy Game. Any of the following code can be changed to create new or different visualizations. Running through the cells will allow you to visualize and calculate the profit that your plants have generated in a given hour. You will also be able to calculate cumulative profits, emissions, and expected emissions for rounds 4-6, incorporating user-specified permit prices." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First on our agenda is to import **dependencies** -- packages in Python that add to the basic functions in Python -- same as before." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "from datascience import *\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import numpy as np\n", "import pandas as pd\n", "plt.style.use('fivethirtyeight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let's select your portfolio. In the cell below, assign **section** to the section number that corresponds to your own according to the following table.\n", "\n", "| Number | Section Time |\n", "|---------|---------------|\n", "| 1 | Wednesday 8am |\n", "| 2 | Friday 2pm |\n", "| 3 | Wednesday 9am |\n", "| 4 | Friday 4pm |\n", "\n", "Assign **YOUR_PORTFOLIO** to the name of your portfolio from the following choices:\n", "\n", "**'Bay Views',\n", " 'Beachfront',\n", " 'Big Coal',\n", " 'Big Gas',\n", " 'East Bay',\n", " 'Fossil Light',\n", " 'Old Timers'**\n", " \n", "The variable **periods_completed** should be set to the most recently concluded round.\n", "\n", "The variable **period** should be set to the round that you want to analyze.\n", "\n", "The variable **hour** should be set to the hour that you want to analyze.\n", "\n", "The variable **permit_price_456** should contain expected (or realized) permit prices in each of rounds *[4, 5, 6]*.\n", "\n", "The variable **rps_demand_reduction_6** should contain expected demand reductions (as a fraction) in each of hours *[1, 2, 3, 4]* due to the RPS standard that will be implemented in Round 6.\n", "\n", "The variable **pab_periods** should contain each of the periods for which there was or will be a pay-as-bid auction. This shouldn't change.\n", "\n", "The variable **bid_own_as_mc** should be set to *True* if you would like to default future bids for your own portfolio to marginal cost (inclusive of permit price for rounds 4, 5, and 6). If setting to *False*, you would need to go into the respective bids_.CSV file and manually edit other teams' future bids. Note that even if *True*, the current round and hour's bids can be adjusted manually down below (after the bids_ variables are defined).\n", "\n", "The variable **bid_others_as_mc** should be set to *True* if you would like to default future bids for other teams' portfolios to marginal cost (inclusive of permit price for rounds 4, 5, and 6). If setting to *False*, you would need to go into the respective bids_.CSV file and manually edit other teams' future bids." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "section = 1\n", "YOUR_PORTFOLIO = \"Big Coal\"\n", "periods_completed = 3\n", "period = 3\n", "hour = 4\n", "permit_price_456 = [10, 10, 10]\n", "rps_demand_reduction_6 = [.15, .15, .15, .15]\n", "pab_periods = [1]\n", "bid_own_as_mc = True\n", "bid_others_as_mc = True" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next we import the demand realizations (for past rounds) and forecasts (for future rounds) and assign the current demand." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "16522.86029\n" ] } ], "source": [ "demand_table = Table.read_table('demand.csv')\n", "demand_df = demand_table.to_df()\n", "for hour_i in [1,2,3,4]:\n", " demand_df.loc[(demand_df[\"round\"] == 6) & (demand_df[\"hour\"] == hour_i), \"load\"] *= (1 - rps_demand_reduction_6[hour_i-1])\n", "demand_table = Table.from_df(demand_df)\n", "demand = demand_table.where(\"round\", period).where(\"hour\", hour)[\"load\"].item()\n", "print(demand)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next we import our tables, one for each discussion section, and one with individualized information about our plants." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "bids_1 = Table.read_table('S1_bids.csv').sort('PORTFOLIO')\n", "bids_2 = Table.read_table('S2_bids.csv').sort('PORTFOLIO')\n", "bids_3 = Table.read_table('S3_bids.csv').sort('PORTFOLIO')\n", "bids_4 = Table.read_table('S4_bids.csv').sort('PORTFOLIO')\n", "ESG = Table.read_table('ESGPorfolios_forcsv.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following will print a list of plants available at the current portfolio. Creating a vector of the " ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PLANT
0Four Corners
1ALAMITOS_7
2HUNTINGTON_BEACH_1-2
3HUNTINGTON_BEACH_5
4REDONDO_5-6
5REDONDO_7-8
\n", "
" ], "text/plain": [ " PLANT\n", "0 Four Corners\n", "1 ALAMITOS_7\n", "2 HUNTINGTON_BEACH_1-2\n", "3 HUNTINGTON_BEACH_5\n", "4 REDONDO_5-6\n", "5 REDONDO_7-8" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bids_1.where(\"PERIOD\", period).where(\"PORTFOLIO\", YOUR_PORTFOLIO.replace(\" \", \"_\")).sort(\"PLANT_ID\").to_df()[[\"PLANT\"]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can decide if we want to change the bids of our plants in the current hour for the current round. To change your team's bids for the current round and hour, set **edit_bids** = *True*. Then set **new_bids** to be a vector of bid prices of plants in the order listed in the above table. For example, if my portfolio has four plants, I should see four rows in the above table, numbered 0 through 3. I should set **new_bids** equal to a vector of length 4, with the first element refering to the bid for the plant in row 0, the second element refering to the bid for the plant in row 1, etc.., separated by commas so my vector would have:\n", "\n", "*[plant_0_bid, plant_1_bid, plant_2_bid, plant_3_bid]*" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "edit_bids = False\n", "new_bids = []" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The table below should now display the names and bids that your team and others in your discussion section assigned for each individual plant." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TEAM TEAM_ID PORTFOLIO PORTFOLIO_ID PLANT PLANT_ID PERIOD PRICE1 PRICE2 PRICE3 PRICE4
Debreu 4 Bay_Views 3 MORRO_BAY_1-2 31 3 38.78 38.78 38.78 38.78
Debreu 4 Bay_Views 3 MORRO_BAY_3-4 32 3 36.61 36.61 36.61 36.61
Debreu 4 Bay_Views 3 MOSS_LANDING_6 33 3 32.56 32.56 32.56 32.56
Debreu 4 Bay_Views 3 MOSS_LANDING_7 34 3 32.56 32.56 32.56 32.56
Debreu 4 Bay_Views 3 OAKLAND 35 3 61.17 61.17 61.17 61.17
Arrow 1 Beachfront 4 COOLWATER 41 3 42.39 42.39 42.39 42.39
Arrow 1 Beachfront 4 ETIWANDA_1-4 42 3 42.67 42.67 42.67 42.67
Arrow 1 Beachfront 4 ETIWANDA_5 43 3 62.89 62.89 62.89 62.89
Arrow 1 Beachfront 4 ELLWOOD 44 3 75.61 75.61 75.61 75.61
Arrow 1 Beachfront 4 MANDALAY_1-2 45 3 39.06 39.06 39.06 39.06
Arrow 1 Beachfront 4 MANDALAY_3 46 3 52.06 52.06 52.06 52.06
Arrow 1 Beachfront 4 ORMOND_BEACH_1 47 3 38.06 38.06 38.06 38.06
Arrow 1 Beachfront 4 ORMOND_BEACH_2 48 3 38.06 38.06 38.06 38.06
Becker 2 Big_Coal 1 Four Corners 11 3 42.38 42.38 45.5 41.94
Becker 2 Big_Coal 1 ALAMITOS_7 12 3 73.73 73.72 73.72 73.72
Becker 2 Big_Coal 1 HUNTINGTON_BEACH_1-2 13 3 42.38 42.38 45.5 41.94
Becker 2 Big_Coal 1 HUNTINGTON_BEACH_5 14 3 66.5 66.5 66.5 66.5
Becker 2 Big_Coal 1 REDONDO_5-6 15 3 42.38 42.38 45.5 41.94
Becker 2 Big_Coal 1 REDONDO_7-8 16 3 42.38 42.38 45.5 41.94
Coase 3 Big_Gas 2 EL_SEGUNDO_1-2 21 3 44.83 44.83 44.99 44.83
Coase 3 Big_Gas 2 EL_SEGUNDO_3-4 22 3 41.22 41.22 44.99 41.22
Coase 3 Big_Gas 2 LONG_BEACH 23 3 52.5 52.5 52.5 52.5
Coase 3 Big_Gas 2 NORTH_ISLAND 24 3 65.5 65.5 65.5 65.5
Coase 3 Big_Gas 2 ENCINA 25 3 41.67 41.67 44.99 41.67
Coase 3 Big_Gas 2 KEARNY 26 3 500 500 500 500
Coase 3 Big_Gas 2 SOUTH_BAY 27 3 43.83 43.83 44.99 43.83
Friedman 5 East_Bay 5 PITTSBURGH_1-4 51 3 42.97 46.97 56.97 44.97
Friedman 5 East_Bay 5 PITTSBURGH_5-6 52 3 46.97 44.45 56 42.58
Friedman 5 East_Bay 5 PITTSBURG_7 53 3 60 60 65 60
Friedman 5 East_Bay 5 CONTRA_COSTA_4-5 54 3 58.29 58.29 58.28 58.5
Friedman 5 East_Bay 5 CONTRA_COSTA_6-7 55 3 42.97 44.5 69.97 47.21
Friedman 5 East_Bay 5 POTRERO_HILL 56 3 69.9 69.9 69.9 69.9
Krugman 7 Low_Fossil 7 HUMBOLDT 71 3 47.44 47.44 47.44 47.44
Krugman 7 Low_Fossil 7 HELMS 72 3 0.5 0.5 0.5 0.5
Krugman 7 Low_Fossil 7 HUNTERS_POINT_1-2 73 3 49.17 49.17 49.17 49.17
Krugman 7 Low_Fossil 7 HUNTERS_POINT_4 74 3 75.89 75.89 75.89 75.89
Krugman 7 Low_Fossil 7 DIABLO_CANYON_1 75 3 11.5 11.5 11.5 11.5
Heckman 6 Old_Timers 6 BIG_CREEK 61 3 0 0 0 0
Heckman 6 Old_Timers 6 MOHAVE_1 62 3 34.5 34.5 34.5 34.5
Heckman 6 Old_Timers 6 MOHAVE_2 63 3 34.5 34.5 34.5 34.5
Heckman 6 Old_Timers 6 HIGHGROVE 64 3 49.61 49.61 80 49.61
Heckman 6 Old_Timers 6 SAN_BERNARDINO 65 3 53.94 53.94 100 53.94
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bids = globals()['bids_' + str(section)]\n", "bids.where(\"PERIOD\", period).show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recall the table ESG, which we used in the introductory notebook. Let's add in the permit cost per MWH using the permit price. This is just the tons per MWH times the permit price. We can add this to variable cost to get a new total variable cost. The first few rows are shown below." ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Group Group_num UNIT NAME Capacity_MW Heat_Rate_MMBTUperMWh Fuel_Price_USDperMMBTU Fuel_Cost_USDperMWH Var_OandM_USDperMWH Total_Var_Cost_USDperMWH Carbon_tonsperMWH FixedCst_OandM_perDay Plant_ID
Big Coal 1 FOUR CORNERS 1900 11.67 3 35 1.5 36.5 1.1 8000 11
Big Coal 1 ALAMITOS 7 250 16.05 4.5 72.22 1.5 73.72 0.85 0 12
Big Coal 1 HUNTINGTON BEACH 1&2 300 8.67 4.5 39 1.5 40.5 0.46 2000 13
Big Coal 1 HUNTINGTON BEACH 5 150 14.44 4.5 65 1.5 66.5 0.77 2000 14
Big Coal 1 REDONDO 5&6 350 8.99 4.5 40.44 1.5 41.94 0.48 3000 15
\n", "

... (37 rows omitted)

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ESG.show(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will need both of these tables to generate an analysis of how our round went, so in the following cell we will join the tables based on the column **Plant_ID**. We will then replace any bids as previously assigned with MC or a custom vector for the current hour. \n", "\n", "A table will then print listing the plant's original MC, the plant's MC after accounting for the current round's permit price, and the current round's bids that are currently set. **Current_Bids** should always be set greater than or equal to **MC_with_Permit_Price**. To experiment with different values for **Current_Bids**, use the **edit_bids** and **new_bids** variables above." ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PLANTMC_originalMC_with_Permit_PriceCurrent_Bids
0Four Corners36.5036.5041.94
1HUNTINGTON_BEACH_1-240.5040.5041.94
2REDONDO_5-641.9441.9441.94
3REDONDO_7-841.9441.9441.94
4HUNTINGTON_BEACH_566.5066.5066.50
5ALAMITOS_773.7273.7273.72
\n", "
" ], "text/plain": [ " PLANT MC_original MC_with_Permit_Price Current_Bids\n", "0 Four Corners 36.50 36.50 41.94\n", "1 HUNTINGTON_BEACH_1-2 40.50 40.50 41.94\n", "2 REDONDO_5-6 41.94 41.94 41.94\n", "3 REDONDO_7-8 41.94 41.94 41.94\n", "4 HUNTINGTON_BEACH_5 66.50 66.50 66.50\n", "5 ALAMITOS_7 73.72 73.72 73.72" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted_joined_table_all = bids.join(\"PLANT_ID\", ESG, \"Plant_ID\").sort(\"PLANT_ID\")\n", "sorted_joined_df_all = sorted_joined_table_all.to_df()\n", "\n", "sorted_joined_df_all[\"Permit_Cost_USDperMWH\"] = 0\n", "for i in range(len(permit_price_456)):\n", " sorted_joined_df_all.loc[sorted_joined_df_all[\"PERIOD\"] == i+4, \"Permit_Cost_USDperMWH\"] = permit_price_456[i] * sorted_joined_df_all[\"Carbon_tonsperMWH\"]\n", "sorted_joined_df_all[\"Var_Cost_USDperMWH\"] = sorted_joined_df_all[\"Total_Var_Cost_USDperMWH\"] + sorted_joined_df_all[\"Permit_Cost_USDperMWH\"]\n", "\n", "for hour_i in [1,2,3,4]:\n", " if bid_own_as_mc:\n", " sorted_joined_df_all.loc[(sorted_joined_df_all[\"Group\"] == YOUR_PORTFOLIO) & (sorted_joined_df_all[\"PERIOD\"] > periods_completed), \"PRICE\" + str(hour_i)] = sorted_joined_df_all.loc[(sorted_joined_df_all[\"Group\"] == YOUR_PORTFOLIO) & (sorted_joined_df_all[\"PERIOD\"] > periods_completed), \"Var_Cost_USDperMWH\"]\n", " if bid_others_as_mc:\n", " sorted_joined_df_all.loc[(sorted_joined_df_all[\"Group\"] != YOUR_PORTFOLIO) & (sorted_joined_df_all[\"PERIOD\"] > periods_completed), \"PRICE\" + str(hour_i)] = sorted_joined_df_all.loc[(sorted_joined_df_all[\"Group\"] != YOUR_PORTFOLIO) & (sorted_joined_df_all[\"PERIOD\"] > periods_completed), \"Var_Cost_USDperMWH\"]\n", "\n", "if edit_bids:\n", " sorted_joined_df_all.loc[(sorted_joined_df_all[\"Group\"] == YOUR_PORTFOLIO) & (sorted_joined_df_all[\"PERIOD\"] == period), \"PRICE\" + str(hour)] = new_bids\n", "sorted_joined_table_all = Table.from_df(sorted_joined_df_all) \n", "sorted_joined_table_all = sorted_joined_table_all.sort(\"PRICE\" + str(hour), descending = False)\n", "sorted_joined_table = sorted_joined_table_all.where(\"PERIOD\", period)\n", "sorted_joined_table.where(\"Group\", YOUR_PORTFOLIO).to_df().rename(columns={'Total_Var_Cost_USDperMWH':'MC_original', 'Var_Cost_USDperMWH':'MC_with_Permit_Price', 'PRICE' + str(hour):'Current_Bids'})[[\"PLANT\", \"MC_original\", \"MC_with_Permit_Price\", \"Current_Bids\"]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great! Now we have a table that has our bids for this round as well as information about the capacity of our plants as well as their marginal cost of production. Now we can continue and make plots similar to those in the introductory notebook, that will allow us to examine how we performed in this given hour. Run the following series of cells to generate a legend as well as a plot of plant capacity versus plant bid price, with bids ordered from least to greatest." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "def find_x_pos(widths):\n", " cumulative_widths = [0]\n", " cumulative_widths.extend(np.cumsum(widths))\n", " half_widths = [i/2 for i in widths]\n", " x_pos = []\n", " for i in range(0, len(half_widths)):\n", " x_pos.append(half_widths[i] + cumulative_widths[i])\n", " return x_pos\n" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "width = sorted_joined_table.column(\"Capacity_MW\")\n", "width\n", "height = sorted_joined_table.column('PRICE' + str(hour))\n", "height\n", "new_x = find_x_pos(width)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "energy_colors_dict = {}\n", "count = 0\n", "colors = ['#EC5F67', '#F29056', '#F9C863', '#99C794', '#5FB3B3', '#6699CC', '#C594C5']\n", "for i in sorted(set(sorted_joined_table['Group'])):\n", " energy_colors_dict[i] = colors[count]\n", " count += 1" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "colors_mapped = list(pd.Series(sorted_joined_table['Group']).map(energy_colors_dict))\n", "sorted_joined_table = sorted_joined_table.with_column('Color', colors_mapped)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(5,1))\n", "plt.bar(energy_colors_dict.keys(), 1, color = energy_colors_dict.values())\n", "plt.xticks(rotation=60)\n", "plt.title('Legend')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "image/png": "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KleufMd1SdcDmbOzs6TrDw1IUv369SVdv7x56dKlHJdjb9yn9texvfEgxl8faLjh4MGDOnfuXJ6zpnlp0qSJVq1apQ0bNqhDhw759m3atKlWr16tuLi42/p3rmbNmqpZs6Z69uypgIAAbdu2LdexAu5XzNgBBnVjOZPo6GjNmDEj17+wsDBJ9+6s3ZAhQ3T58mW99NJLuT4def78+Vv6+bRSpUopNDTUum7aX/3888/6/PPP83xvsWLF1L9/f6WlpVk/1wEDBth9bEmaOHGijhw5kmvbqlWr9Ntvv6lEiRIKDAyUJFWrVk1t2rTR8ePHNX36dJv++/bt07x581S6dGn17NnTur1hw4YqVqyYli5dqoyMDOv2zMzMHA+t2Ovpp59W+fLlNX/+/FyXpDl+/Lj1n5955hmZzWZNnjzZ5p7JGywWi+Li4nTp0iVJ0uHDh3NdIzAjI0OZmZkqWbKkSpRgjgK4gW8DYEA7duzQb7/9pjp16qh58+Z59uvTp4/efvttLV++XO+8845cXFwKvJb8ljtp2rSpXTfc56Vv37766aefNHv2bAUEBKhNmzby8vLS2bNndfToUe3cuVOPP/54jmUy8jNu3Dht3bpVM2fO1Pfff69HHnlEycnJ+uKLL9S2bVutXbs2z3vm/vnPf2rixIn6888/Vbt27VyfEM3PBx98oIkTJ6p+/fpq2LChKlWqpHPnzumnn36yhqDx48fb3Ms2depUdejQQe+++662bt2qpk2b6uTJk1q5cqWys7Otl3BvqFy5snr37q3FixerZcuWateunbKzs7Vx40Z5eXnZdZ/c37m6uurjjz/Ws88+q65du6pNmzZ6+OGHlZGRoX379umXX36xhrOKFSvq008/1TPPPKN27dqpVatW8vX1VcmSJXX8+HF99913+uOPP3T48GGVKlVKv/zyi/75z38qICBAdevWVZUqVZSenq7169frzJkzGjp0qHUmEwDBDjCkGzNwN56ezEulSpX0xBNPaOXKlVq+fLldi+jeqryeWJWu/8LCnQQ7SZo0aZLatWunuXPnavv27Tpz5owqVKigqlWrauDAgerevfst7c/d3V3//e9/NX78eH3zzTf68ccf5e3trSlTpsjZ2Vlr167N8yniSpUqqUOHDlq1apWee+65PO9Jy8uSJUu0ceNG7dixQxs3blRqaqpMJpOqVKmi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6hV8hQAAALBLvsFuy5Ytio6OliSZTCatXLlSK1euzLWvj4+PJk6cWPAVAgAAwC75Brthw4ZpwIABslgs8vX11ZQpU/Tkk0/a9DGZTCpbtqycnZ0LtVAAAADkL99g5+zsbA1sP/zwg9zd3QlwAAAAd6l8g91feXp6Kisry2bbmTNn9Nlnn+ns2bN68sknFRAQUOAFAgAAwD52B7thw4Zp79692rZtmyQpKytLwcHB1iVQZsyYoS+//FKBgYGFUykAAADyZfdyJzt27NATTzxhfb1s2TIdOnRIn3/+ufbu3Stvb29Nnjy5UIoEAADAzdkd7E6dOiVPT0/r66+//lpNmzZV+/btVbVqVT3zzDP66aefCqVIAAAA3Jzdwc7Z2Vlnz56VJF25ckU7duzQY489Zm0vW7aszp8/X+AFAgAAwD5232PXoEEDffbZZ3r88cf11VdfKSMjQx06dLC2//7773J3dy+UIgEAAHBzdge7sWPHKjQ0VC1btpTFYtGTTz6pRo0aWdvXrl2roKCgQikSAAAAN2d3sGvYsKHi4+O1a9cuVahQQa1atbK2paen69lnn1XLli0LpUgAAADcnN3BTpLc3d3VuXPnHNvNZrOGDRtWYEUBAADg1t1SsJOkTZs2af369Tp69KgkycvLSyEhITYPUgAAAKDo2R3sLl68qOeee07r16+XJOuDEuvXr9fHH3+sDh06aP78+SpVqlThVAoAAIB82b3cycSJE7Vu3TqNGDFChw4d0v79+7V//379/vvvGjlypL7++mtFR0cXZq0AAADIh93BLjY2Vn379tXYsWNlNput2ytUqKDXXntNTz/9tJYuXVooRQIAAODm7A52KSkpNsub/F2jRo2UkpJSIEUBAADg1tkd7KpWrart27fn2b59+3ZVrVq1QIoCAADArbM72PXp00dffPGFwsPDlZSUpKtXr+ratWtKSkrSiBEjtGrVKj399NOFWSsAAADyYfdTsa+88op+//13zZ8/XwsWLFCxYtcz4bVr12SxWNSnTx+98sorhVYoAAAA8md3sCtevLhiYmL04osv6r///a+OHTsmSapevbratWunBg0aFFqRAAAAuLlbXqC4QYMGhDgAAIC7UL732F28eFGjRo3S7Nmz893J7NmzNWrUKF25csXuA3/88cdq3ry5qlevrurVq6tt27bWxY8lyWKxKCoqSr6+vqpcubI6duyoffv22ewjPT1dgwYNkpeXl7y8vDRo0CClp6fbXQMAAICR5BvsFixYoAULFig4ODjfnbRp00YLFizQwoUL7T5w1apV9dZbb2nLli3avHmzWrVqpb59++qXX36RJE2fPl2zZs1SdHS0Nm3aJDc3N4WGhur8+fPWfQwcOFAJCQmKjY1VbGysEhISNHjwYLtrAAAAMJJ8g93KlSvVsWNH1apVK9+d1K5dW507d9ayZcvsPnDHjh3Vtm1b1apVS97e3nr99dfl4uKib7/9VhaLRTExMXr55ZfVpUsX+fn5KSYmRhkZGYqNjZUkJSYmasOGDZo2bZoCAwMVGBio999/X+vXr1dSUpLddQAAABhFvsFu7969euSRR+zaUVBQkPbu3XtbRVy9elXLly9XZmamAgMDdeTIESUnJ6t169bWPk5OTmrevLl2794tSYqPj5eLi4uCgoKsfZo1ayZnZ2drHwAAgPtJvg9PZGdny8nJya4dlSlTRllZWbd08L1796pdu3bKzs6Ws7OzFi5cqHr16lmDmZubm01/Nzc3nThxQtL1X8JwdXWVyWSytptMJlWqVOmmv4BRFDN6zBoaC+NpLIynsTCexnOvjGnWhawcrwu7dh8fn3zb8w127u7uOnjwoF0HOnjwYI4gdjM+Pj7atm2bzp07p1WrViksLExffvnlLe3jdtzsQ7lTSUlJhX4MFB3G01gYT2NhPI3nXhpTp7JOOV47uvZ8L8W2aNFCS5cuVWZmZr47yczM1JIlS/SPf/zjlg5eqlQp1apVSwEBAXrzzTfl7++vDz74QB4eHpKk1NRUm/6pqalyd3eXdD10pqWlyWKxWNstFotOnTpl7QMAAHA/yTfYDR06VCkpKerZs6f1EujfnThxQr1799apU6c0dOjQOyrm2rVrunTpkmrUqCEPDw9t3rzZ2padna24uDjrPXWBgYHKyMhQfHy8tU98fLwyMzNt7rsDAAC4X+R7Kfbhhx/W1KlTNWLECDVo0EAtW7ZUvXr15OLiooyMDP3666/atm2brly5ovfee08PP/yw3QceN26c2rVrp2rVqlmfdt2+fbuWLl0qk8mksLAwTZ06VT4+PvL29taUKVPk7Oys7t27S5Lq1q2r4OBghYeHa9q0aZKk8PBwtW/f3uHToAAAAI5w01+e6Nevn3x9fRUVFaUtW7Zo06ZN1rbixYurZcuWGj16tJo1a3ZLB05OTtagQYOUkpKi8uXLq169eoqNjVWbNm0kScOHD1dWVpZGjRql9PR0NW7cWCtWrFC5cuWs+5gzZ44iIiLUrVs3SVJISIgmTZp0S3UAAAAYhV0/KRYYGKgvvvhCmZmZOnDggM6fP69y5cqpdu3acnFxua0Dx8TE5NtuMpkUGRmpyMjIPPuYzeab/ioGAADA/eKWfivW2dmZ34kFAAC4S+X78AQAAADuHQQ7AAAAgyDYAQAAGATBDgAAwCAIdgAAAAZxS0/FStLhw4e1fft2nTp1St26dVP16tVeYVvQAAAgAElEQVR1+fJlnTp1SpUqVVLJkiULo04AAADchN3BzmKxaOTIkZo/f76uXbsmk8mkhg0bqnr16srOzlZQUJAiIiLu+GfFAAAAcHvsvhQ7depUffLJJ4qIiNDXX38ti8VibStXrpw6deqkL7/8slCKBAAAwM3ZHewWLlyovn37avTo0apTp06Odj8/Px08eLBAiwMAAID97A52x48fV9OmTfNsd3Z21vnz5wukKAAAANw6u4Odu7u7jh07lmf7nj175OnpWSBFAQAA4NbZHew6deqkefPm6fDhw9ZtJpNJkrRp0yYtXrxYXbt2LfACAQAAYB+7g11kZKQqV66sli1b6sUXX5TJZNL06dPVoUMHde/eXfXq1dOIESMKs1YAAADkw+5gV6FCBW3YsEFDhw7VH3/8oRIlSmjr1q1KS0vTyJEj9fXXX6ts2bKFWSsAAADycUsLFDs5OWn06NEaPXp0YdUDAACA28RPigEAABhEnjN277333i3vzGQycZ8dAACAg+QZ7N55551b3hnBDgAAwHHyDHanTp0qyjoAAABwh/IMdsWLFy/KOgAAAHCHbumpWEnKzMzUjh07dPToUUmSl5eXWrRoIWdn5wIvDgAAAPa7pWA3a9YsRUdHKyMjQxaLxbrdxcVFo0eP1tChQwu8QAAAANjH7mA3a9YsjR07Vo888ogGDhyo2rVrS5IOHDigOXPm6I033pDJZNKQIUMKrVgAAADkze5g9+GHH+rRRx/VF198Yf2NWElq0KCBQkND1bVrV3344YcEOwAAAAexe4HitLQ0derUySbUWXdSrJg6d+6stLS0Ai0OAAAA9rM72NWvX1+JiYl5ticmJqpBgwYFUhQAAABund2XYidNmqTu3burRo0aGjBggMqWLStJunDhgubOnavVq1dr2bJlhVYoAAAA8pdnsGvevHnOziVK6I033tD48ePl4eEhSUpOTtaVK1dUuXJlhYWFaceOHYVXLQAAAPKUZ7ArX758jvvpKlSooBo1aths8/T0LJzKAAAAcEvyDHbr1q0ryjoAAABwh+x+eAIAAAB3t1v+SbGrV6/qwIEDOnfunK5du5ajPSgoqEAKAwAAwK2xO9hZLBZNmDBBH330kTIyMvLsd/r06QIpDAAAALfG7kuxM2bM0JQpU9S5c2fNnDlTFotFr7/+uiZPnqy6devK399fsbGxhVkrAAAA8mF3sPv000/VqVMnzZw5Ux06dJAkNWrUSM8//7w2b96sy5cvKz4+vtAKBQAAQP7sDnbHjh3T448/fv1Nxa6/7dKlS5KkMmXKqHfv3lq0aFEhlAgAAAB72B3szGazsrOzJV1f465kyZI6fvy4td3JyYnfigUAAHAgu4Odr6+v9u7de/1NxYqpcePGmjdvnpKTk3XixAnNnz9f3t7ehVYoAAAA8mf3U7HdunXT3LlzlZ2drTJlymjs2LF66qmn9NBDD13fUYkSWrhwYaEVCgAAgPzZHez69eunfv36WV+3aNFCcXFxWrt2rYoXL67g4GDVqVOnUIoEAADAzd3yAsV/VatWLQ0bNqygagEAAMAd4CfFAAAADCLPGbtGjRqpWLFi2rVrl0qUKKFGjRrJZDLluzOTyaTvvvuuwIsEAADAzeUZ7Jo0aSJJ1jB34zUAAADuTnkGu9mzZ+f7GgAAAHcXu+6xy8rK0vDhw7V69erCrgcAAAC3ya5g5+TkpNjYWKWnpxd2PQAAALhNdj8VGxAQoF9++aUwawEAAMAdsDvYTZgwQStXrtQnn3yiK1euFGZNAAAAuA12L1AcFhamYsWK6ZVXXlFkZKSqVq2qMmXK2PQxmUzasWNHgRcJAACAm7M72JUvX14VKlTQgw8+WJj1AAAA4DbZHezWrVtXmHUAAADgDvGTYgAAAAZh94zdDVevXtWBAwd07tw5Xbt2LUd7UFBQgRQGAACAW2N3sLNYLJowYYI++ugjZWRk5Nnv9OnTdu1v6tSpWrNmjQ4cOKBSpUqpSZMmevPNN+Xn52dzzIkTJ2rBggVKT09X48aNNWXKFD300EPWPunp6YqIiLBeKu7QoYMmTZoks9ls76kBAAAYgt2XYmfMmKEpU6aoc+fOmjlzpiwWi15//XVNnjxZdevWlb+/v2JjY+0+8Pbt2/X8889r/fr1Wr16tUqUKKGuXbvqzJkz1j7Tp0/XrFmzFB0drU2bNsnNzU2hoaE6f/68tc/AgQOVkJCg2NhYxcbGKiEhQYMHD7a7DgAAAKOwe8bu008/VadOnTRz5kzrrFyjRo306KOPqm/fvmrdurXi4+PVunVru/a3YsUKm9cfffSRvLy8tGvXLoWEhMhisSgmJkYvv/yyunTpIkmKiYmRj4+PYmNj1b9/fyUmJmrDhg1at26dAgMDJUnvv/++QkJClJSUJB8fH3tPDwAA4J5n94zdsWPH9Pjjj19/U7Hrb7t06ZIkqUyZMurdu7cWLVp024VkZGTo2rVr1kuoR44cUXJysk1QdHJyUvPmzbV7925JUnx8vFxcXGzu62vWrJmcnZ2tfQAAAO4Xdgc7s9ms7OxsSdfXtCtZsqSOHz9ubXdyclJaWtptF/Lqq6/K39/fOvOWnJwsSXJzc7Pp5+bmppSUFElSSkqKXF1dZTKZrO0mk0mVKlWy9gEAALhf2H0p1tfXV3v37pV0fcaucePGmjdvnkJCQnTt2jXNnz9f3t7et1XEa6+9pl27dmndunUqXrz4be3jViQlJRniGCg6jKexMJ7Gwngaz70yplkXsnK8Luzab3abmd3Brlu3bpo7d66ys7NVpkwZjR07Vk899ZT1CdUSJUpo4cKFt1xgZGSkVqxYoTVr1qhmzZrW7R4eHpKk1NRUVa9e3bo9NTVV7u7ukiR3d3elpaXJYrFYZ+0sFotOnTpl7ZObwr73jvv7jIXxNBbG01gYT+O5l8bUqaxTjteOrt3uYNevXz/169fP+rpFixaKi4vT2rVrVbx4cQUHB6tOnTq3dPDRo0friy++0Jo1a3K8t0aNGvLw8NDmzZvVqFEjSVJ2drbi4uI0fvx4SVJgYKAyMjIUHx9vvc8uPj5emZmZrKcHAADuO/kGu0OHDqlWrVp5tteqVUvDhg27rQOPHDlSS5Ys0cKFC2U2m6331Dk7O8vFxUUmk0lhYWGaOnWqfHx85O3trSlTpsjZ2Vndu3eXJNWtW1fBwcEKDw/XtGnTJEnh4eFq3769wxMzAABAUcs32DVu3FhNmjRRz5499dRTT8nV1bXADjxnzhxJsi5lcsPo0aMVGRkpSRo+fLiysrI0atQo6wLFK1asULly5Wz2ExERoW7dukmSQkJCNGnSpAKrEwAA4F6Rb7B74YUXtHLlSkVEROi1115T69at1bNnTz3xxBNycnLK7603lZ6eftM+JpNJkZGR1qCXG7PZrNmzZ99RLQAAAEaQ73InkyZN0v79+7Vs2TKFhoZq586dGjhwoOrUqaMXX3xRmzdvlsViKapaAQAAkI+bPjxRrFgxBQcHKzg4WFlZWVq7dq2WLVum5cuXa+nSpXJ3d9dTTz2lnj17KiAgoChqBgAAQC7sXqBYur4Icffu3bVkyRIlJiZq0qRJqlmzpmJiYtS6dWueRAUAAHCgWwp2f/XAAw9o4MCBioqKsv62672yoCAAAIAR2b2O3V8dOnRIS5cu1fLly3Xw4EGZTCa1bNlSPXv2LOj6AAAAYCe7g11ycrKWL1+u2NhY7dmzRxaLRX5+fho3bpy6d++uqlWrFmadAAAAuIl8g925c+e0evVqxcbGavv27bp69aqqVaumYcOGqWfPnqpXr15R1QkAAICbyDfY1alTR5cuXZKLi4t69+6tnj17qmXLltbfZQUAAMDdI99g9/jjj6tXr14KCQlR6dKli6omAAAA3IZ8g91//vOfoqoDAAAAd+i2lzsBAADA3YVgBwAAYBAEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAG4dBgt2PHDvXu3VsPPfSQzGazFi1aZNNusVgUFRUlX19fVa5cWR07dtS+ffts+qSnp2vQoEHy8vKSl5eXBg0apPT09KI8DQAAgLuCQ4NdZmam/Pz8NHHiRDk5OeVonz59umbNmqXo6Ght2rRJbm5uCg0N1fnz5619Bg4cqISEBMXGxio2NlYJCQkaPHhwUZ4GAADAXaGEIw/erl07tWvXTpL00ksv2bRZLBbFxMTo5ZdfVpcuXSRJMTEx8vHxUWxsrPr376/ExERt2LBB69atU2BgoCTp/fffV0hIiJKSkuTj41O0JwQAAOBAd+09dkeOHFFycrJat25t3ebk5KTmzZtr9+7dkqT4+Hi5uLgoKCjI2qdZs2Zydna29gEAALhfOHTGLj/JycmSJDc3N5vtbm5uOnHihCQpJSVFrq6uMplM1naTyaRKlSopJSUlz30nJSUVQsVFfwwUHcbTWBhPY2E8jedeGdOsC1k5Xhd27Te7GnnXBrvCVNiXaLkMbCyMp7EwnsbCeBrPvTSmTmWdcrx2dO137aVYDw8PSVJqaqrN9tTUVLm7u0uS3N3dlZaWJovFYm23WCw6deqUtQ8AAMD94q4NdjVq1JCHh4c2b95s3Zadna24uDjrPXWBgYHKyMhQfHy8tU98fLwyMzNt7rsDAAC4Hzj0UmxGRoYOHTokSbp27Zr++OMPJSQkqGLFiqpevbrCwsI0depU+fj4yNvbW1OmTJGzs7O6d+8uSapbt66Cg4MVHh6uadOmSZLCw8PVvn17h0+FAgAAFDWHBrsff/xRTz75pPV1VFSUoqKi1KdPH8XExGj48OHKysrSqFGjlJ6ersaNG2vFihUqV66c9T1z5sxRRESEunXrJkkKCQnRpEmTivxcAAAAHM2hwa5ly5b5/kqEyWRSZGSkIiMj8+xjNps1e/bswigPAADgnnLX3mMHAACAW0OwAwAAMAiCHQAAgEEQ7AAAAAyCYAcAAGAQBDsAAACDINgBAAAYBMEOAADAIAh2AAAABuHQX54AAAC42419O1onT2fm2H4q7aiaqYkDKsobwQ4AANz33h//mi6m/Zlr23fHrqp+rzdzbP9z5cjCLuuWEewAAMB9Y1r0WF3MOJlj+7FfkvRBl7q5vmfTobx/1/5uQ7ADAAD3jYsZJzWub4Uc2/tHXHZANQWPYAcAAAxrzIQJOnnunPV1yRNHJNV3XEGFjGAHAAAM6+S5c3Lp2NH6+vyH8Q6spvCx3AkAAIBBMGMHAADueW9Hj9fpjNOSpLSDv6le7aqSpD+OnpevIwsrYgQ7AABwzzudcVrNnr6+ptzGd/dYH5DY8GaaI8sqcgQ7AABwz/n7unN/nD4j3WWLBTsCwQ4AANwTpo4Zq+yTyZKk46m/Keap/1t3LnT9RUeVdVch2AEAgEL392VH8nLhwgWVLVs217Zi3/2gmHoNJUnDjhtj3bmCRrADAACF4q9h7tCRI6r/0ks3fY9LPm3pu78toMqMi+VOAABAobixhpxLx466fPWqo8u5LxDsAAAADIJLsQAAoMBEj4/W+dPnJUlHTx6Vn4Prud8Q7AAAgNXflxH54WSaqtWpbff7T+1N06tPvSpJ2rlyfIHXh/wR7AAAgNXFtD/1WsNS1teh6y9bF/61x8pXvyyMsmAngh0AAPeZsW9H6+TpTOvr9MMH5FujliTp9JFjUkP7Z+hwdyHYAQBwH/hrmPv9yFE17jXW2nY2aZz6NOkjSfp30jaH1IeCQbADAOAuZ+/ivvk5nHRSjXteD3O/HeTeN6Mi2AEAcIfejh6v0xmn8+2z/7c/VPVB79vav72L++bn0pSP7uj9uDcQ7AAA9z17gll+jhw9ol6vdsu3zw/j/pBLx463tf/LM2bc1vtw/yHYAbir3en/cP8u60KWnMo6Ke3gb6pXu2qB7bco/HbwmOrUrn7Lbfa0367EvUdVp/rtfY47j5+Vm3fdm3fMRVbiT6rv5aELWVkq6+R0W/v4q4TTZ9T9tR63/f6D7x644xqAgkCwA1Do7iSc2TMTcjs2vrtH4/pWKPD9Fqbn30nMs+b82uxpv139IzJslsa4FW2OW257Buvq3p3//7i3d+y/C11/sUD2AzgawQ6A3aaOGavsk8m5th1IOaI6tXKfubmT2RBmQgDAfgQ74B7x99Xgb9VvR46rTo1qd1TD0V+O6d8P575Q6bDje/OcuWE2BACKBsEOKEL5zXjdzPHU3xTz1O3djyRJLx64/UtmNwzac+mO3g8AKFwEOxjeX3+Q+nZkZWXpRPIJ1apZ645rOfXzt5r5cMBtvXfY8ct3fHwAgLER7FAo7mRm6oakY8fkU/3On+L77dQFjerx2h3tY8LnE6yrst+JaT/uuuN9AACQF4IdCkX2yWRFuDxwR/sYeiHxjvchSQP+PHvH+wAA4F5QzNEFAAAAoGAQ7AAAAAyCYAcAAGAQBDsAAACDINgBAAAYBMEOAADAIAh2AAAABkGwAwAAMAiCHQAAgEEQ7AAAAAyCYAcAAGAQBDsAAACDKOHoAuA4Y9+O1snTmYWyb9Pho9LDDxTKvgEAQO4Idvexk6cz9UCzfoWy7+QfdhbKfgEAQN64FAsAAGAQBDsAAACDMEywmzNnjurXry8PDw89+uij2rmTS4EAAOD+Yohgt2LFCr366qt65ZVXtHXrVgUGBqpHjx46duyYo0sDAAAoMoYIdrNmzdLTTz+tZ599VnXr1tXkyZPl4eGhefPmObo0AACAImNKT0+3OLqIO3Hp0iVVqVJFc+fOVdeuXa3bR44cqV9//VVfffWVA6sDAAAoOvf8jF1aWpquXr0qNzc3m+1ubm5KSUlxUFUAAABF754PdgAAALjung92rq6uKl68uFJTU222p6amyt3d3UFVAQAAFL17PtiVKlVKAQEB2rx5s832zZs3KygoyEFVAQAAFD1D/KTYkCFDNHjwYDVu3FhBQUGaN2+eTp48qf79+zu6NAAAgCJzz8/YSdJTTz2lqKgoTZ48WS1bttSuXbu0dOlSeXl5FWkdLJJ894mKipLZbLb5q1OnjrXdYrEoKipKvr6+qly5sjp27Kh9+/bZ7CM9PV2DBg2Sl5eXvLy8NGjQIKWnp9v02bt3r5544glVrlxZDz30kKKjo2Wx3NMPnN81duzYod69e+uhhx6S2WzWokWLbNqLcgxXrVqloKAgubu7KygoSGvWrCmckzawm41nWFhYju9scHCwTZ+LFy9q1KhRqlWrlqpWrarevXvr+PHjNn2OHTumXr16qWrVqqpVq5YiIiJ06dIlmz7bt2/Xo48+Kg8PDzVo0IAlsm7D1KlT9fjjj6t69eqqXbu2evXqpV9//dWmD9/RomWIYCdJAwcO1M8//6yUlBRt2bJFLVq0KNLjs0jy3cvHx0eJiYnWv78G7unTp2vWrFmKjo7Wpk2b5ObmptDQUJ0/f97aZ+DAgUpISFBsbKxiY2OVkJCgwYMHW9vPnTun0NBQubu7a9OmTZo4caJmzJihmTNnFul5GlVmZqb8/Pw0ceJEOTk55WgvqjGMj4/XgAED1KNHD23btk09evTQc889p++++65wPwCDudl4StJjjz1m851dtmyZTXtkZKTWrFmjuXPn6quvvtL58+fVq1cvXb16VZJ09epV9erVSxkZGfrqq680d+5crV69WmPGjLHu4/Dhw+rZs6cCAwO1detWjRgxQhEREVq1alXhnbwBbd++Xc8//7zWr1+v1atXq0SJEuratavOnDlj7cN3tGjd8+vY3S3atGmjevXq6d///rd1W6NGjdSlSxe9+eabDqzs/hYVFaXVq1crLi4uR5vFYpGvr69eeOEFjRw5UpKUlZUlHx8fvf322+rfv78SExMVFBSkdevWqVmzZpKkuLg4hYSE6Ntvv5WPj4/mzp2rcePG6bfffrP+j2ry5MmaN2+efv31V5lMpqI7YYOrVq2aJk2apL59+0oq2jHs37+/zpw5o5UrV1rr6dKliypVqqS5c+cW8SdhDH8fT+n6jN3p06e1ZMmSXN9z9uxZeXt7a9asWerZs6ck6Y8//pC/v79iY2PVpk0bffPNN+rZs6d+/vlneXp6SpKWLFmif/3rX0pKSlL58uX15ptvas2aNfrhhx+s+x42bJj279+vb775phDP2tgyMjLk5eWlRYsWKSQkhO+oAxhmxs6RLl26pD179qh169Y221u3bq3du3c7qCrccPjwYfn6+qp+/foaMGCADh8+LEk6cuSIkpOTbcbNyclJzZs3t45bfHy8XFxcbB7EadasmZydnW36PPLIIzazD23atNGJEyd05MiRIjjD+1dRjuG3336b4zvepk0bvuOFIC4uTt7e3mrcuLH+9a9/2ax6sGfPHl2+fNlmLDw9PVW3bl2b8axbt6411EnXx+rixYvas2ePtU9u4/njjz/q8uXLhXl6hpaRkaFr167JbDZL4jvqCAS7AsAiyXevJk2a6IMPPlBsbKz+/e9/Kzk5We3atdPp06eVnJwsSfmOW0pKilxdXW1m3UwmkypVqmTTJ7d93GhD4SnKMUxOTuY7XgSCg4P14YcfatWqVXrnnXf0/fffq3Pnzrp48aKk6+NRvHhxubq62rzv72P+97G6sTTWzcb8ypUrSktLK6zTM7xXX31V/v7+CgwMlMR31BEM8VQskJe2bdvavG7SpIkCAgK0ePFiNW3a1EFVAchLt27drP9cr149BQQEyN/fX+vXr1fnzp0dWBlu5rXXXtOuXbu0bt06FS9e3NHl3LeYsSsALJJ873BxcZGvr68OHTokDw8PScp33Nzd3ZWWlmbz5JXFYtGpU6ds+uS2jxttKDxFOYYeHh58xx2gSpUqqlq1qg4dOiTp+nhcvXo1x6za38f872N148rKzca8RIkSOWYDcXORkZFavny5Vq9erZo1a1q38x0tegS7AsAiyfeO7OxsJSUlycPDQzVq1JCHh4fNuGVnZysuLs46boGBgcrIyFB8fLy1T3x8vDIzM236xMXFKTs729pn8+bNqlKlimrUqFFEZ3Z/KsoxbNq0Kd9xB0hLS9OJEyesASEgIEAlS5a0GYvjx49bb8CXro9nYmKizRIomzdvVunSpRUQEGDtk9t4NmzYUCVLlizs0zKU0aNHW0PdX5eTkviOOkLxV199dZyjizCCcuXKKSoqSpUrV1aZMmU0efJk7dy5UzNnzlSFChUcXd59a+zYsSpVqpSuXbumAwcOaNSoUTp06JDef/99mc1mXb16VdOmTVPt2rV19epVjRkzRsnJyZo2bZpKly6tSpUq6bvvvlNsbKz8/f11/PhxhYeHq1GjRtZH8WvXrq1PPvlEP//8s3x8fBQXF6c33nhDL7/88n33H5TCkJGRof379ys5OVmfffaZ/Pz8VL58eV26dEkVKlQosjGsUqWKJkyYoFKlSsnV1VULFizQokWLNH36dFWtWtWRH9E9Jb/xLF68uMaPHy8XFxdduXJFP//8s4YNG6arV69q8uTJKl26tMqUKaOTJ09qzpw5qlevns6ePavw8HCVL19eb731looVK6aaNWtqzZo12rRpk+rVq6f9+/dr5MiR6tGjh5588klJ0oMPPqjp06crNTVV1atX11dffaX33ntP77zzjnx9fR38Kd07Ro4cqc8//1zz58+Xp6enMjMzlZmZKen6pIfJZOI7WsRY7qQAzZkzR9OnT1dycrIeeughTZgwocjX04OtAQMGaOfOnUpLS1OlSpXUpEkTjRkzxvofbovFookTJ2r+/PlKT09X48aNNWXKFPn5+Vn3kZ6eroiICH399deSpJCQEE2aNMn61Jd0feHMkSNH6ocffpDZbFb//v01evRoljopANu2bbP+z/iv+vTpo5iYmCIdwxs39B8+fFgPPvigxo4dy31ftyi/8Zw6dar69u2rhIQEnT17Vh4eHmrZsqXGjBlj84TrxYsXNXbsWMXGxio7O1utWrXSe++9Z9Pn2LFjGjlypLZu3aoyZcqoR48eevvtt1W6dGlrn+3bt+u1117T/v37VblyZb388ssaMGBA4X4ABvPX79BfjR49WpGRkZKK9r+zfEcJdgAAAIbBPXYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg2AHAHVq0aJHMZrOOHDni6FIA3OcIdgAc5tSpUxo3bpyaNWumqlWrqkqVKmrevLnGjRunEydOOLq8O7Js2TJ98MEHhXqMsLAwmc1meXp6KisrK0f7sWPHVLFiRZnNZkVFRUmS9uzZI7PZrOnTp+foP3jwYJnNZs2cOTNH28CBA+Xm5qYLFy4U/IkA+H/t3X9M1dUfx/En3Cu5GHT5JY0QaRewkCxuhNd0Kv0ihs0lF0RX7SIS1h/NNreouK0FA6vNf1jaxiqsqLiXX1rDX6sxtT7XKJcTBRxUehHbbhi/1qjFvd8/7vjMywXFXxfh+35sbPA573vuuZ+/XpxzPufeNBLshBAz4pdffmH58uXs3r0bg8FAWVkZFRUVPProo3z66aesXbt2poc4bfn5+fzxxx/ExcWp1+rr69m9e/ctf2+NRsPo6Kh6Yv/l6uvrvb5pAeCBBx4gJCQERVF86u12O1qtFrvdPmnb0qVLufPOOxZm8gkAAAjLSURBVG/e4IUQN512pgcghPj/Mzg4yHPPPQdAa2sr999/v1e7xWKZdEbpdqXRaNBoNDPy3lqtltWrV2Oz2Vi/fr1Xm81m46mnnmLfvn3qNY1GQ1paGj/++CNut1v9OqaLFy9y7tw58vLyfL5I3eFw0Nvby7p16279BxJC3BCZsRNC+F1NTQ29vb2Ul5f7hDqAu+66i7feekv9+4cffqCgoICUlBQWLFjA4sWLeeWVV/jrr7+8XldZWYlOp6Ozs5MtW7YQFxfHokWL2LZtGyMjI161LS0tbNiwgeTkZBYsWEBKSgoWi4XR0VGf8XR3d1NYWEhCQgLR0dEYDAZKSkrU9ol77LKzszl48CAOhwOdTqf+uFwuUlJSyM/P93mP//77j8TERAoKCq7tZgImk4lvv/3W636cPn2aM2fOkJub61NvNBq5dOkSXV1d6rXjx48TFBTE1q1bcTqddHd3e7UBLF++/JrHJoTwL5mxE0L43f79+5k/fz7PPvvstOqbm5sZGhrCbDYTFRVFe3s7n332GR0dHRw6dMjrS8ABNm/eTExMDBaLhVOnTlFTU8OFCxew2WxqTW1tLXfccQfFxcWEhobS1tbGrl27uHDhAh9//LFa19HRQWZmJoGBgZjNZuLj4zl//jyNjY3s2LFj0vFu376doaEh+vr6qKioUK8HBgaSl5dHVVUVly5dIjw8XG377rvvcDqdk4a+q8nOzmbbtm3s3bsXs9kMeJZhY2NjJw1jRqMR8Cyv3nfffQAoisJDDz1EamoqoaGhKIpCQkKCWgcS7ISYDSTYCSH8rrOzk4SEBIKCgqZV//bbb/vs7UpPT6eoqAi73e4TOGJiYrDZbGrgi46O5v3336e1tZU1a9YAUF1d7dVnQUEBer2e8vJy3nnnHWJjYwFPSBsbG+PIkSPEx8er9RaLZcrxZmRkEBMTw8DAABs2bPBqy8/PZ+fOnTQ2NrJlyxb1utVqJTIykscff3xa9+RywcHBZGVlYbVaMZvNuN1u6uvrMZlMPqEX4JFHHkGr1aIoihoE7XY7q1atIiAggPT0dOx2O88//zzgCX2JiYlERERc89iEEP4lS7FCCL8bHh4mJCRk2vXjAcztdjM0NER/fz/p6emA5yGMiYqKirwCzdatWwE4cOCAT58ul4vBwUH6+/sxGo243W5OnjwJeJ7a/f7779m0aZNXqAMmDUzTkZSUxMMPP0xdXZ16bWRkhJaWFnJyctBqr+//bZPJhKIo9Pb2YrfbcTgcky7DguezL126VJ2JGxkZob29nWXLlgGowQ48+yE7Ojpktk6IWUKCnRDC70JCQhgeHp52fW9vL5s3byYuLo64uDj0ej0PPvggAENDQz71er3e6++IiAh0Oh3nz59Xr43vP7vnnntYtGgRer2e7Oxsrz5///13gEn3Ad6IjRs30tbWxm+//QbA119/zd9//31dy7DjnnjiCXQ6HQ0NDdhsNpKTk1myZMmU9UajkXPnznHx4kV++uknxsbG1GC3bNkyenp6cDqdtLW14XK51OVbIcTtTYKdEMLvFi9eTHd3N//+++9Va8fGxli/fj2tra28+uqrfP755zQ1NdHQ0AB4Ztyu1eDgIM888wydnZ2Ulpby5Zdf0tzcrJ47dz19XoucnByCgoLUWTur1UpSUhKpqanX3ee8efNYt24ddXV17N27d8rZunGX77NTFAW9Xk9UVBQAaWlpaDQaFEWR/XVCzDKyx04I4XdZWVkcP36c5uZm8vLyrlh7+vRpzp49y65du9i0aZN6vaenZ8rX9PT0qBv/Afr7+xkYGFDPmTt69Cj9/f3s2bOHlStXqnUTj/m49957Ac8DFDdTWFgYmZmZ6p64I0eO8MYbb9xwvyaTiZqaGgICAsjJybli7XhQUxSFrq4urxm54OBgUlJSsNvtnDx5krvvvlu9F0KI25vM2Akh/M5sNhMTE0NpaanXkRvjhoeHKSsrA1DPh3O73V41VVVVU/ZfXV3tVf/hhx8CkJmZOWWfLpeLDz74wKufiIgIVqxYwRdffKEuy46bOJ6JgoODGRwcnLJu48aN/Prrr7z++uu4XK6rBtzpWLFiBaWlpezYscPrsOTJREVFodfrOXbsGD///LO6DDsuPT2do0ePcuLECVmGFWIWkRk7IYTf6XQ6amtryc3NZfXq1ZhMJgwGA4GBgZw5c4aGhgbCwsKwWCwkJSWh1+spLS2lr6+PsLAwDh8+TF9f35T99/X1kZubS2ZmJu3t7ezZs4fHHnuMjIwMwLMMGR4ezksvvURxcTFarZZ9+/b5nHUH8N5775GVlcWaNWsoKCggPj4eh8NBY2MjJ06cmHIMqampNDY2UlJSQlpaGoGBgV6zaE8++SSRkZE0NTWxcuVKFi5ceAN31CMgIIDt27dPu95oNFJbW6v+PrGturp60jYhxO1LZuyEEDMiNTUVRVEoLi6mra2NN998k5KSEo4dO4bZbKalpQXw7B376quvMBgMVFVVUV5eTkhIiLrHbjIfffQROp2OsrIympqaeOGFF6ipqVHbw8LCsFqtxMbGUllZyc6dO0lOTlZn9i63ZMkSDh8+zKpVq/jkk0947bXXaGpq4umnn77i5yssLCQ/Px+r1cqLL75IYWGhV/u8efPUoDfxSBR/GQ9s4eHhJCYmerVdPoMnwU6I2SNgYGDgyusJQggxS1RWVvLuu+/S1dVFdHT0TA/nqiwWC9XV1Zw9e5bQ0NCZHo4QYg6QGTshhJgB//zzD3V1daxdu1ZCnRDippE9dkII4UdOp5PW1la++eYbnE4nL7/8sk/Nn3/+ydjY2JR9aDQaIiMjb+UwhRCzlAQ7IYTwo87OToqKioiMjKSiogKDweBTk5GRgcPhmLKPhQsXcurUqVs5TCHELCV77IQQ4jZjt9sZHR2dsn3+/PnyQIMQYlIS7IQQQggh5gh5eEIIIYQQYo6QYCeEEEIIMUdIsBNCCCGEmCMk2AkhhBBCzBES7IQQQggh5oj/AeLhubeheFzfAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "plt.figure(figsize=(9,6))\n", "plt.bar(new_x, height, width=width, color=sorted_joined_table['Color'], edgecolor = \"black\")\n", "#plt.xticks(y_pos, bars)\n", "# Add title and axis names\n", "plt.title('All Energy Sources')\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Variable Cost')\n", "\n", "plt.show()\n", "\n", "plt.figure(figsize=(5,1))\n", "plt.bar(energy_colors_dict.keys(), 1, color = energy_colors_dict.values())\n", "plt.xticks(rotation=60)\n", "plt.title('Legend')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can examine the plot above to determine our market price using the capacity demanded that we entered at the top of this notebook." ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "def price_calc(demand, sorted_table, hour):\n", " price = 0\n", " sum_cap = 0\n", " for i in range(0,len(sorted_table['Capacity_MW'])):\n", " if sum_cap + sorted_table['Capacity_MW'][i] > demand:\n", " price = sorted_table['PRICE' + str(hour)][i]\n", " break\n", " else:\n", " sum_cap += sorted_table['Capacity_MW'][i]\n", " price = sorted_table['PRICE' + str(hour)][i]\n", " return price" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "def price_line_plot(price):\n", " plt.axhline(y=price, color='r', linewidth = 2)\n", " print(\"Price: \" + str(price))" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "def demand_plot(demand):\n", " plt.axvline(x=demand, color='r', linewidth = 2)\n", " print(\"Capacity: \" + str(demand))" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hour: 4\n", "Price: 44.83\n", "Capacity: 16522.86029\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAGpCAYAAAAA1HueAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xt8zvX/x/Hn5TwbLs02OYzYWNOY0ya+VMwpcsiZvoqkFr4ixqKSygw5fNFKiEJh5JDim8PXcayTVmINOSS2GRe2NsL1+8PX9etqB9fYds3H4367uen6vN/X5/P6XO+uet7en8/nfZksFotVAAAAuOsVcXYBAAAAyBsEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdADtLly6V2WzW0qVL7bYHBAQoICDASVUBABxBsAPuEVFRUTKbzTKbzfrmm2/y/XgBAQG242X35+/hEVJiYqLGjRunJk2aqFKlSvLy8lKdOnXUrl07vfbaa/r555+dXSKAQqyYswsAUDAWL14sk8kkq9WqRYsWqVGjRgVy3BdeeEHlypXLso0ZQHsHDx5Ux44dlZKSIn9/f/Xu3Vvly5dXSkqKvvvuO82ePVvly5eXv7+/s0sFUEgR7IB7wJ49e3To0CH16NFDMTEx+uyzzzRp0iSVLVs2348dGhqqatWq5ftxjOCVV15RSkqKxo4dq7Fjx2Zq/+2333T+/HknVAbgbsGlWOAesGjRIknSU089pT59+igtLU0rV650blF/s3PnTpnNZoWGhur48eMaOHCgatSoIS8vLz366KPauHFjtu9du3atOnfurOrVq8vT01MNGjTQhAkTdPHixUx9b14ivnz5siIiItSgQQN5eHjYBakzZ87oxRdflI+PjypWrKh//OMfWrZsma3GiIgIW9/WrVurfPnyOnbsWJa1LVy4UGazWW+99dYtP4N9+/ZJujHLmZUqVapkOcuZlJSksLAw1atXT56ennrggQfUq1cv7d69O1Pf7O6hvCmreylvviciIkJff/21unfvrmrVqslsNstisdj6JSQkaOjQoapbt648PT1Vs2ZNtWnTRnPmzMl0nKNHj2rYsGF66KGHbH379eun/fv3Z+p76dIlTZ06VU2bNpW3t7cqV66sunXr6qmnntLOnTuzPA/gXkWwAwzu/PnzWrdunapWraoWLVqoX79+MplMWrx4sbNLy9LJkyfVqlUrnThxQr169VLXrl118OBB9e3bVzt27MjU/+WXX9bTTz+tw4cPq2PHjho8eLA8PT01c+ZMtWvXTpcuXcryOP3799fixYv18MMPKzQ0VL6+vpKk5ORktW7dWsuWLZOvr69CQ0NVt25djRo1Su+9916m/QwcOFBWq1UfffRRlsf58MMPVaRIET399NO3PPfy5ctLko4cOXLLvjedOHFCjz32mObNm6cqVapoyJAhateunXbs2KEnnngiT+9jjI2N1eOPP66rV6+qf//+6tmzp4oWLSpJ2rRpk1q0aKGlS5eqVq1aGjJkiLp06aKiRYtq2rRpdvvZvn27WrRooU8++UT16tXTCy+8oJYtW2rLli1q27attmzZYutrtVrVvXt3vf3223JxcVG/fv00aNAgNWnSRPv379f27dvz7PwAI+BSLGBwn3zyiTIyMtSnTx+ZTCZVr15dTZs21e7du/Xdd9+pQYMG+Xr8qKiobO+xCw0Nldlsttu2a9euTJcie/TooW7dumn27Nlq0aKFbfvy5cu1YMECdezYUR988IFcXFxsbVOnTtXbb7+tyZMn6+2338507JMnT2r37t1yd3e32/7GG2/o5MmTGjJkiN37QkND1apVq0z76dq1q8aNG6clS5YoPDxcxYsXt7V98803+vHHH9W2bVtVrVo1u4/Ibl9z5sxR7969NXDgQDVv3lwPPfRQps/or0aOHKlTp05l+syGDh2qkJAQjRw5Uo8++qgqV658y+PfyrZt2zRz5kw988wzdttTUlL03HPP6c8//9SaNWv0yCOP2LX/9ttvtn++cOGCBgwYoOLFi2vz5s3y8/OztcXHx6tVq1YaMmSIfvjhB5UsWVI///yz9u3bp8cff1zLli2z26/VauXSNPA3zNgBBnfzoYm+ffvatvXr10/S/1+izU/vvfeeIiMjs/xz4cKFTP2rVq2q0aNH221r1aqVqlSpom+//dZu+7vvvquiRYtq9uzZdqFOuhF43N3dtWLFiizrGjduXKZQd+XKFa1atUplypRRWFiYXVtAQIB69+6daT+lSpXSU089paSkJG3YsMGu7cMPP5QkDRgwIMsa/u7VV1/V008/rfPnzysyMlIdO3ZU9erVVb9+fY0YMSLTE7G///67Nm/erMqVK2vkyJF2bXXq1NHAgQN1+fJlLV++3KHj30pAQECmUCdJy5Yt08WLF/XMM89kCnXSjUvIN3366ac6d+6cxowZYxfqJKl27drq37+/zpw5k2km7u/jK0kmk0n33XffbZ4NYEzM2AEGtmfPHsXHx6tZs2aqXr26bXvnzp0VFham1atX6+2331aZMmXyrYYffvghVw9PBAQE2C7v/VWVKlUUGxtre/3HH38oLi5O5cuXz/ISqSSVKFFCp0+f1rlz5zIFgIYNG2bqn5CQoPT0dAUFBWU5y9ikSZMsL7kOHDhQc+bM0YcffqguXbpIujEz9dlnn6lKlSpq06ZNzif9PyVLltSsWbM0btw4bd68Wd9++61++OEHff/99/rwww/18ccfa/r06erfv7+kG5+tJAUHB6tEiRKZ9vfoo49q7ty5tn53KqvPTJJt+ZyQkJBb7uPmfYQHDhywu1fxpsOHD0u6MXvXpk0b+fn5KSAgQKtWrdKJEyf0+OOPKzg4WA0aNFCpUqVu91QAwyLYAQZ2c0bur7N1kuTq6qouXbpoyZIlio6OdnhGqSBkd9m2aNGiun79uu21xWKR1WrVuXPnFBkZmeM+U1NTMwU7Ly+vTP1uPmzh4eGR5X48PT2z3F69enW1atVKmzdv1pEjR1SzZk19+umn+uOPPzRixAgVKZK7iyOenp7q27evbdzOnz+v119/XR999JFGjx6tdu3aydPT01ZvdnXdPMesZkZvR3bHubn/+++//5b7OHfunCTp448/zrFfWlqapBvjvn79ek2dOlXr1q3TG2+8IUkqXbq0unbtqokTJ2aaeQXuZVyKBQzq/PnzWrt2rSRpyJAhmRYHXrJkiaSCuRybH24u1eLv7y+LxZLjH29v70zvN5lMmbbdnLlMTk7O8phJSUnZ1vPss8/a1giUbnyuxYoV0z//+c/cnlom5cuX18yZM1WlShVdvnxZe/fulfT/n0F2dSUmJtr1k2QLmdeuXcvyPTmFwKw+M+n/w/jp06dzOg27Wv773//mOGZ/vV/QbDbr7bff1o8//qj9+/fr3XffVWBgoJYuXZrlpWHgXsaMHWBQy5Yt0+XLlxUQEKDAwMAs+2zZskU//PCD9u/fn22fwsrNzU3+/v5KSEhQSkpKnsza1KpVSy4uLjp48KAuXLiQafbwZqDKSps2beTt7a1ly5YpJCREBw8eVKdOnVSxYsU7rku6EchcXV0l3XhoQJLq1q0r6cblzStXrmS6HHvzPrW/ju3NBzH++kDDTUeOHNHFixeznTXNTqNGjbR27Vpt3rxZ7dq1y7Fv48aNtW7dOsXExNzWv3PVq1dX9erV1bNnTwUGBmrnzp1ZjhVwr2LGDjCom8uZREZGavbs2Vn+CQ0NlXT3ztoNGTJEf/75p1588cUsn468dOlSrn4+rUSJEuratatt3bS/+vHHH/Xpp59m+94iRYpowIABSklJsX2uAwcOdPjYkjR58mQdP348y7a1a9fql19+UbFixRQUFCRJqly5slq1aqVTp05p1qxZdv0PHjyohQsXqmTJkurZs6dte/369VWkSBGtWLFCqamptu1paWmZHlpxVN++fVW2bFktWrQoyyVpTp06Zfvnp556SmazWVOnTrW7Z/Imq9WqmJgYXblyRZJ07NixLNcITE1NVVpamooXL65ixZijAG7i2wAY0O7du/XLL7+oVq1aatq0abb9+vTpozfffFOrVq3SW2+9JTc3tzyvJaflTho3buzQDffZ6devn3744QfNmzdPgYGBatWqlby9vXXhwgWdOHFCe/bs0WOPPZZpmYycTJgwQTt27NCcOXP07bff6uGHH1ZiYqI+++wztW7dWhs2bMj2nrl//vOfmjx5sn7//XfVrFkzyydEc/Luu+9q8uTJqlu3rurXr68KFSro4sWL+uGHH2whaOLEiXb3sk2fPl3t2rXT22+/rR07dqhx48Y6c+aM1qxZo4yMDNsl3JsqVqyo3r17a9myZWrevLnatGmjjIwMbdmyRd7e3g7dJ/d37u7u+uCDD/T000+rS5cuatWqlR566CGlpqbq4MGD+umnn2zhrHz58vroo4/01FNPqU2bNmrRooX8/PxUvHhxnTp1St98841+++03HTt2TCVKlNBPP/2kf/7znwoMDFTt2rV1//33y2KxaNOmTTp//ryGDh1qm8kEQLADDOnmDNzNpyezU6FCBT3++ONas2aNVq1a5dAiurmV3ROr0o1fWLiTYCdJU6ZMUZs2bbRgwQLt2rVL58+fV7ly5VSpUiUNGjRI3bt3z9X+PD099Z///EcTJ07UV199pe+//14+Pj6aNm2aXF1dtWHDhmyfIq5QoYLatWuntWvX6plnnsn2nrTsLF++XFu2bNHu3bu1ZcsWJScny2Qy6f7771ev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tWtXXbp0ydZn0KBBiouLU3R0tKKjoxUXF6fnn3/e1n7x4kV17dpVnp6e2rp1qyZPnqzZs2drzpw5BXqeRpWWliZ/f39NnjxZLi4umdoLagxjY2M1cOBA9ejRQzt37lSPHj30zDPP6JtvvsnfD8BgbjWekvToo4/afWdXrlxp1x4eHq7169drwYIF+uKLL3Tp0iX16tVL165dkyRdu3ZNvXr1Umpqqr744gstWLBA69at07hx42z7OHbsmHr27KmgoCDt2LFDI0eOVFhYmNauXZt/J29Au3bt0rPPPqtNmzZp3bp1KlasmLp06aLz58/b+vAdLVh3/Tp2hUWrVq1Up04d/fvf/7Zta9CggTp37qzXX3/diZXd2yIiIrRu3TrFxMRkarNarfLz89Nzzz2nUaNGSZLS09Pl6+urN998UwMGDFB8fLyCg4O1ceNGNWnSRJIUExOj9u3b6+uvv5avr68WLFigCRMm6JdffrH9j2rq1KlauHChfv75Z5lMpoI7YYOrXLmypkyZon79+kkq2DEcMGCAzp8/rzVr1tjq6dy5sypUqKAFCxYU8CdhDH8fT+nGjN25c+e0fPnyLN9z4cIF+fj4aO7cuerZs6ck6bffflNAQICio6PVqlUrffXVV+rZs6d+/PFHValSRZK0fPly/etf/1JCQoLKli2r119/XevXr9d3331n2/ewYcN06NAhffXVV/l41saWmpoqb29vLV26VO3bt+c76gSGmbFzpitXrmj//v1q2bKl3faWLVtq3759TqoKNx07dkx+fn6qW7euBg4cqGPHjkmSjh8/rsTERLtxc3FxUdOmTW3jFhsbKzc3N7sHcZo0aSJXV1e7Pg8//LDd7EOrVq10+vRpHT9+vADO8N5VkGP49ddfZ/qOt2rViu94PoiJiZGPj48aNmyof/3rX3arHuzfv19//vmn3VhUqVJFtWvXthvP2rVr20KddGOsLl++rP3799v6ZDWe33//vf7888/8PD1DS01N1fXr12U2myXxHXUGgl0eYJHkwqtRo0Z69913FR0drX//+99KTExUmzZtdO7cOSUmJkpSjuOWlJQkd3d3u1k3k8mkChUq2PXJah8325B/CnIMExMT+Y4XgJCQEL333ntau3at3nrrLX377bfq1KmTLl++LOnGeBQtWlTu7u527/v7mP99rG4ujXWrMb969apS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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "price = price_calc(demand, sorted_joined_table, hour)\n", "plt.figure(figsize=(9,6))\n", "plt.bar(new_x, height, width=width, color=sorted_joined_table['Color'], edgecolor = \"black\")\n", "plt.title('All Energy Sources')\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Variable Cost')\n", "\n", "print('Hour: ' + str(hour))\n", "price_line_plot(price)\n", "demand_plot(demand)\n", "\n", "plt.show()\n", "\n", "plt.figure(figsize=(5,1))\n", "plt.bar(energy_colors_dict.keys(), 1, color = energy_colors_dict.values())\n", "plt.xticks(rotation=60)\n", "plt.title('Legend')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we have a market price. Let us construct the same plot, but this time only considering the plants that are part of our portfolio." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "your_source = sorted_joined_table.where(\"Group\", YOUR_PORTFOLIO)\n", "width_yours = your_source.column(\"Capacity_MW\")\n", "height_yours = your_source.column('PRICE' + str(hour))\n", "height_yours_marginal_cost = your_source.column(\"Var_Cost_USDperMWH\")\n", "new_x_yours = find_x_pos(width_yours)\n", "label_yours = your_source.column(\"PLANT\")" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Price: 44.83\n" ] }, { "data": { "image/png": "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LSqVPsEY+JcE15X4+Hh169ZN3bp1U3x8vCQ5/aVqs9kc/3355Zc1cuRIx1h2draOHz+utm3bSpI8PT1199136/Lly3r88ccVHBysxx9/XJcvX9bWrVs1btw4DR48WJs2bVK3bt00evRotW/fXhs3bpQkrVu3TsHBwerRo4djWrdu3TRu3Di9+OKLmjNnjrp166aQkJBiBUYU7cEHH3QKJMUxfPhwRUdHO01buXKlU/hq1qyZqlatWuDyMTExCg8PlyR5eXnpgQce0Oeffy5J6t27t9auXVvoWZY/O3PmTIH/SOf59ddfdcstt8jHx8ff+sgvAAAgAElEQVRxpnjlypUKDw+XyWSSJLVs2VLdu3dXdna2srOzFRMTo6FDh0qSvL2989W3fft25eTkFLg9Pz8/hYWFKS4uTj/++KNatmwpb29vSdKoUaOcAvEflStXTqGhoXrsscd06tQpp7FLly7p999/19ixY9W/f3/9/PPPxepNWSnuWfxOnTrp9OnTjp7mvecF9bSo99xsNmvo0KGKi4vT+vXrNXjw4GL1NM/atWvVu3fvfNP9/f114cIFZWRk6JZbbinWPuH6wRk5GNrHH3+sHTt2qG7dupo1a5beeustrVixQpI0cOBAde7cudBlQ0JCdPfd//so+4kTJwo8S7B69Wo1bNhQ8+bN09SpU7Vq1SpZLBZdunRJH3/8sSTp+eef10svvaRLly5pwoQJ6tKli959913FxMQoJydHAwcOVLdu3ZSWlqZnnnlGtWrVUr9+/RQTEyMvLy/Z7dfVc7lLTd77K+V+hP+ee+4pdN5q1aopICBA33zzTbHXHxAQoLi4OB07dswx7cKFC6pYsaKk3MuEe/fu1TvvvKO77ror3/IXLlyQl5eX43WtWrW0Z88e1a5dWx4eHgoODlZMTEyRNcyYMUOLFy/W4cOHHZfpTpw44bhd4LffftPGjRt15MgRzZgxQ1FRUXrppZe0cOFCpaWlOc5A/tFNN90km82mn376SU8++aRuu+22Qusr6peIGjVq6L///a/i4uL02muvOaZXrFhRFy9eLHCZt956S61atdKnn36qqVOn6s0333SMpaWlae/evfrmm2+Umpqql19+WYsXLy6yP2Xh448/1saNG5WZmanPP/9cK1euVJ8+fWQymRQUFKR//OMf+ZaxWCxKS0sr1nv+x8unf1ajRg3t2bNHdrtdjRs3dkwvqqeSlJqaKpPJVODfUR06dNBdd92l7Oxsffrpp8VtA64TnJGDoQ0ePFixsbGaNWuWJMlkMqlq1aqqWrWqPDw8nOb9c1jKuxySp3r16jpx4kS+bfz666+64447JEl33nmn416noKAgp2UtFotq1qypjIwMpaWl6aefflJoaKj69eun5ORk2e12WSwW1apVS5IUERGhcePGacyYMUpNTf2Lnbg+5b2/sbGx6tq1q5KTk3XhwgXH+J//UR05cqTee++9Em1j2LBhmjNnjuN1hQoVlJWVJUl6//33ZbPZHK//zNPTU5mZmY7XR44ckdVqdbx+6KGHrniWcPTo0Vq3bp2WLl2q119/XZIcl+4iIyM1fPhwxcfHq1y5cpo+fbp+/PFHVapUScuXL1ffvn11/PjxfOu8dOmSYmNjdeedd2rmzJlF1rd9+3an8aioKMflvaNHj2r9+vUaMGCAzpw545gvKytLN910U4H7U61aNUm5vyjt37/fEUptNpuqVq2qhg0bqnr16mrUqFG+M3bXyuDBgxUfH68WLVro8OHDknIvrcbGxhYY4qTcIOXj41Os9/yzzz4rdNtHjx6V1WqV1Wp1eu+K6qkkrVmzxnE27o89PX36tD755BN988032rhxo1599dXiNQHXDYIcris5OTk6ffq04zKIlBvgLly4oL179zrN++d71Dw8POTn56cvv/xSUu4/hrt27dKtt97qOGvx7bff6tZbb823fN6lrbzt+fj4qHHjxo5/HLZt2yaTyeS0TNOmTRUdHa327du75KyEEfXu3dtxM/eFCxd0+PBhWSwWx3hAQIDOnTvndIbtSjp37qyEhATHP8733XefZsyY4Rgv6tJoSEiI49JsZmamlixZou7duzvGzWaz6tevX6yzhNWqVSs02CQnJ6tVq1by9/dXkyZN9NRTTykuLk6hoaF67733HL+kfPvtt9q0aZPKly8vDw8PhYSEOO6XOnfuXIH1Wa1WJSUlSco9uzRmzBjNnz9f6enpmjJlinr27KmnnnpKH3/8sc6dOydJmjVrluM2hT87e/asJCkhIUG33nqrI5TGxsaqUqVK8vb21vnz53X06NEiLyVfC+PGjdP06dOvON+2bdtkNpsdPc17zwvrad26dQt8z9PT07VkyRLde++96t69e7F7KuXeJxcSEiJJTj0tV66cvLy85OnpqapVqzrWhxvHVV9aPX36tL7++mulpqaqc+fO8vX1Lc26gKvy3HPPqV+/fpKkiRMnSpKGDBmiXr16qVu3bldc/u2339aECRP0xhtvKDs7W+PHj5fNZtPKlSsVHBwsPz8/jR07Vjt37ixyPeXKldOTTz7pdLlm2rRpTvM8/fTTSkpK0sWLF53OmqBwXl5eqlu3roKDg5WTk6OxY8c6hWhJeuKJJ9S3b98SrXfQoEF66623JEmPPvqo3nzzTQUHB6tChQry9fVVkyZNClwuLCxML774onr37q1z587phRdeyHfpa+TIkZo7t/Anwc+YMUOffPKJLl26pDfeeEOS86XV7Oxs1apVSz179tTy5cuVkpKixYsX68iRIwoKCtJDDz2kZ555RrfddpsqVqyojh07Oi6lhoWFacyYMYqLi9OAAQM0btw4p/qmTZum33//XcnJyXr//ffVrFkzzZgxQ8uWLdPFixd17NgxffHFF/riiy/UpEkTDRw4UCaTSc2aNdPo0aML3J9Ro0bJbDarQoUKjjPlfzR+/HgNGDBAly9f1ttvv13Eu1L2AgMDdeLECaWkpDj+X/Xw8NCqVaskSaGhoSpfvrysVqvj/98/vuc5OTn5eirlHk9/vMSZ11NJmjBhgvz8/CTl/h1QnJ6ePn1aGRkZqlOnTr6xypUrq0uXLo57I5999tm/3hgYiik9Pb3EN+f84x//0PTp03X+/HmZTCb95z//UadOnZSWlqbbb79db7zxRqGfZjI6vnolF32gB3noQy76kIs+0IM8fEVXrrI+Hkp8Rm7+/PmaPHmyHn74Yd17770KCwtzjPn4+Kh379767LPPrtsgt/iDGapYLvPKM17nMjPPy8urkqvLcCl6kOt67MNPv/yuBgH5z34U5Up9SDt1Ruvivna8Lu/hoUGhHa5JbZIU/+UeHTme5nh95+0Batyg5Ou50jpvreNTYB+utm4j+iv/T5TF++QqKcePSCq9IIeClTjIvf/+++rbt6+ioqJ08uTJfOPNmjXL93H+64n9QpomleJvGMZVzdUFuAF6kOv668Pjkw9o0tCS7teV5q8mPVX7aktyuLraJA1t/5e3/VfWedV1G9Jf2M+yeJ9c5NHXLrm6hBtCiT/scOjQIXXq1KnQcbPZ7LJPIgEAANxIShzkzGZzkY9K2L9/v9NHsQEAAFA2ShzkevTooQ8//LDAs24//PCDFixYUOCTpwEAAFC6Shzk8r6v8J577tGkSZNkMpm0aNEiPfbYY+ratausVutVffx5+vTpMpvNmjBhgmOa3W5XZGSkgoKC5OfnJ5vNpv3795d43QAAANejEgc5q9Wq+Ph49ezZUzExMbLb7fr000+1ceNG/e1vf9OGDRtK/F1vu3bt0gcffJDvWU1RUVGaOXOmpkyZos2bN8tisahfv35OTxgHAAC4UV3VNztUr15dUVFR+vXXX5WYmKgDBw7o0KFD+te//lXg98AVJSMjQ0888YT+9a9/yWw2O6bb7XZFR0dr7NixCg0NVePGjRUdHa2zZ886HqwIAABwI/vLX9FVvXp1+fr65vu6o+LKC2odO3Z0mp6UlKTk5GR16dLFMc3Ly0tt27ZVQkLCX6oZAADgelDi58hFRERo/fr1hX53YMuWLdW7d2/Hlz8X5cMPP9TBgwc1e/bsfGPJycmS5PQ9inmvi/oexcTExCtuFwCKkp1T+Perupo711YUo9YN9+EOx1Bm5vmryhnFXeZqvgGixEHu888/V//+/Qsd79evn1auXHnFIJeYmKjXXntN69at00033VTSMgrF16IA+Ks8ynm4uoRCuXNtRTFq3XAf7nAMeXlVKnHOKOuv6Crx9dAjR47I39+/0HF/f38dOXLkiuv56quvlJaWpjZt2sjHx0c+Pj7avn275s6dKx8fH8cHJv78zLrU1FT5+vqWtGwAAIDrTonPyFWpUkVJSUmFjh86dEgVK1a84npsNpvuvPNOp2lPPvmkAgICNG7cONWvX19Wq1VxcXFq0aKFJCkrK0s7duzQa6+9VtKyAQAArjslDnIdO3bUv//9bz366KOqU8f5i3yTkpL073//u8iv8MpjNpudPqUqSZUqVdLNN9+sxo0bS5LCw8M1ffp0BQYGqn79+po2bZq8vb01cODAkpYNAABw3SlxkJs4caI2bNigtm3basiQIWrUqJEkad++fVqyZInKlSunF154oVSKGzNmjDIzMzVhwgSlp6erZcuWWrFihapUqVIq6wcAADCyEge5gIAArV+/XuPHj8/3adN27drp7bffvuqb+mJjY51em0wmRUREKCIi4qrWBwAAcD0rcZCTpEaNGik2NlZpaWk6dOiQJOnWW28t8Tc6AAAA4OpdVZDLk/dpUwAAAFx7Vwxy27dvl5R72fSPr68kb34AAACUjSsGuZCQEJlMJh0/flyenp6O14Wx2+0ymUw6efJkqRYKAAAAZ1cMcjExMZIkT09PSdKqVauKDHIAAAC4Nq4Y5Nq3b+/0ukOHDmVWDAAAAIqvRF/Rdf78ed1yyy2aNm1aWdUDAACAYipRkKtUqZKqV6+uqlWrllU9AAAAKKYSBTlJ6tu3r/7zn/8oJyenLOoBAABAMZX4OXIhISHaunWrevXqpYcfflj16tWTl5dXvvlatmxZKgUCAACgYCUOcqGhoY4/79q1K98nWHn8CAAAwLVR4iA3c+bMsqgDAAAAJVTsIJeVlaU1a9YoOTlZt9xyi3r27Ck/P7+yrA0AAABFKFaQO3bsmHr37q2kpCTZ7XZJkre3t5YsWcJz5QAAAFykWJ9anTx5sn777TeNGjVKS5cuVWRkpCpUqKDnnnuurOsDAABAIYp1Ri4+Pl4PPPCAJk+e7Jjm6+urYcOG6ciRI6pVq1aZFQgAAICCFeuMXHJyslq3bu00rU2bNrLb7Tp8+HCZFAYAAICiFSvIZWdnq2LFik7T8l5nZWWVflUAAAC4omJ/avXQoUP6+uuvHa9Pnz4tSUpMTFTlypXzzc8DgQEAAMpWsYNcZGSkIiMj801/9tlnnV7zQGAAAIBro1hBjocAAwAAuJ9iBbkhQ4aUdR0AAAAooWJ92AEAAADuhyAHAABgUAQ5AAAAgyLIAQAAGBRBDgAAwKAIcgAAAAZFkAMAADAoghwAAIBBEeQAAAAMiiAHAABgUAQ5AAAAgyLIAQAAGJTLgtycOXPUtm1b1alTR3Xq1FH37t21fv16x7jdbldkZKSCgoLk5+cnm82m/fv3u6pcAAAAt+OyIFezZk29+uqr2rJli+Li4tSxY0cNHTpUP/zwgyQpKipKM2fO1JQpU7R582ZZLBb169dPZ86ccVXJAAAAbsVlQc5ms6l79+667bbbVL9+fb300kuqXLmydu3aJbvdrujoaI0dO1ahoaFq3LixoqOjdfbsWS1btsxVJQMAALgVt7hHLjs7W8uXL9e5c+d09913KykpScnJyerSpYtjHi8vL7Vt21YJCQkurBQAAMB9lHflxvfu3asePXooKytL3t7e+uijj9SkSRNHWLNYLE7zWywWHTt2rMh1JiYmllm9AG4M2TnZri6hUO5cW1GMWjfchzscQ5mZ568qZxR3mcDAwBKv26VBLjAwUFu3btXp06e1cuVKhYeHa/Xq1X95nQDwV3iU83B1CYVy59qKYtS64T7c4Rjy8qpU4pyRmJhYptnEpZdWPT09ddttt6l58+Z65ZVX1LRpU82aNUtWq1WSlJqa6jR/amqqfH19XVEqAACA23GLe+Ty5OTk6OLFi6pbt66sVqvi4uIcY1lZWdqxY4dat27twgoBAADch8surU6aNEk9evRQrVq1HJ9G3bZtmz755BOZTCaFh4dr+vTpCgwMVP369TVt2jR5e3tr4MCBrioZAADArbgsyCUnJ2v48OFKSUlR1apV1aRJEy1btkxdu3aVJI0ZM0aZmZmaMGGC0tPT1bJlS61YsUJVqlRxVckAAABuxWVBLjo6ushxk8mkiIgIRUREXKOKAAAAjMWt7pEDAABA8RHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRHkAAAADMplQW769Om69957VadOHQUEBGjQoEHat2+f0zx2u12RkZEKCgqSn5+fbDab9u/f76KKAQAA3IvLgty2bdv0+OOPa/369Vq1apXKly+vvn376tSpU455oqKiNHPmTE2ZMkWbN2+WxWJRv379dObMGVeVDQAA4DbKu2rDK1ascHr9/vvvy9/fXzt37lRwcLDsdruio6M1duxYhYaGSpKio6MVGBioZcuWKSwszBVlAwAAuA23uUfu7NmzysnJkdlsliQlJSUpOTlZXbp0cczj5eWltm3bKiEhwVVlAgAAuA23CXLPP/+8mjZtqrvvvluSlJycLEmyWCxO81ksFqWkpFzz+gAAANyNyy6t/tHEiRO1c+dOrVu3Th4eHn9pXYmJiaVUFYAbVXZOtqtLKJQ711YUo9YN9+EOx1Bm5vmryhnFXSYwMLDE63Z5kIuIiNCKFSsUExOjevXqOaZbrVZJUmpqqurUqeOYnpqaKl9f30LXdzVNAIA/8ij3136hLEvuXFtRjFo33Ic7HENeXpVKnDMSExPLNJu49NLqc889p+XLl2vVqlVq0KCB01jdunVltVoVFxfnmJaVlaUdO3aodevW17pUAAAAt+OyM3Ljx4/X0qVL9dFHH8lsNjvuifP29lblypVlMpkUHh6u6dOnKzAwUPXr19e0adPk7e2tgQMHuqpsAAAAt+GyIDd37lxJcjxaJM9zzz2niIgISdKYMWOUmZmpCRMmKD09XS1bttSKFStUpUqVa14vAACAu3FZkEtPT7/iPCaTSREREY5gBwAAgP9xm8ePAAAAoGQIcgAAAAZFkAMAADAoghwAAIBBEeQAAAAMiiAHAABgUAQ5AAAAgyLIAQAAGBRBDgAAwKAIcgAAAAZFkAMAADAoghwAAIBBEeQAAAAMiiAHAABgUAQ5AAAAgyLIAQAAGBRBDgAAwKAIcgAAAAZFkAMAADAoghwAAIBBEeQAAAAMiiAHAABgUAQ5AAAAgyLIAQAAGBRBDgAAwKAIcgAAAAZFkAMAADAoghwAAIBBEeQAAAAMiiAHAABgUAQ5AAAAgyLIAQAAGBRBDgAAwKAIcgAAAAbl0iC3fft2DR48WI0aNZLZbNaiRYucxu12uyIjIxUUFCQ/Pz/ZbDbt37/fRdUCAAC4F5cGuXPnzqlx48Z666235OXllW88KipKM2fO1JQpU7R582ZZLBb169dPZ86ccUG1AAAA7sWlQa5Hjx56+eWXFRoaqnLlnEux2+2Kjo7W2LFjFRoaqsaNGys6Olpnz57VsmXLXFQxAACA+3Dbe+SSkpKUnJysLl26OKZ5eXmpbdu2SkhIcGFlAAAA7sFtg1xycrIkyWKxOE23WCxKSUlxRUkAAABupbyrCyhtiYmJri4BgMFl52S7uoRCuXNtRTFq3XAf7nAMZWaev6qcUdxlAgMDS7xutw1yVqtVkpSamqo6deo4pqempsrX17fQ5a6mCQDwRx7lPFxdQqHcubaiGLVuuA93OIa8vCqVOGckJiaWaTZx20urdevWldVqVVxcnGNaVlaWduzYodatW7uwMgAAAPfg0jNyZ8+e1cGDByVJOTk5Onz4sHbv3q2bb75ZderUUXh4uKZPn67AwEDVr19f06ZNk7e3twYOHOjKsgEAANyCS4Pct99+q/vuu8/xOjIyUpGRkXrggQcUHR2tMWPGKDMzUxMmTFB6erpatmypFStWqEqVKi6sGgAAwD24NMh16NBB6enphY6bTCZFREQoIiLiGlYFAABgDG57jxwAAACKRpADAAAwKIIcAACAQRHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRHkAAAADIogBwAAYFAEOQAAAIMiyAEAABgUQQ4AAMCgCHIAAAAGRZADAAAwKIIcAACAQRkiyM2dO1fNmjWT1WpVp06d9OWXX7q6JAAAAJdz+yC3YsUKPf/883rmmWf0xRdf6O6779bf/vY3/f77764uDQAAwKXcPsjNnDlTQ4YM0SOPPKKGDRtq6tSpslqtmj9/vqtLAwAAcClTenq63dVFFObixYuqUaOG5s2bp759+zqmjx8/Xvv27dOaNWtcWB0AAIBrufUZubS0NGVnZ8tisThNt1gsSklJcVFVAAAA7sGtgxwAAAAK59ZBzsfHRx4eHkpNTXWanpqaKl9fXxdVBQAA4B7cOsh5enqqefPmiouLc5oeFxen1q1bu6gqAAAA91De1QVcyZNPPqkRI0aoZcuWat26tebPn6/jx48rLCzM1aUBAAC4lFufkZOk/v37KzIyUlOnTlWHDh20c+dOffLJJ/L397/mtVzPDyaOjIyU2Wx2+mnQoIFj3G63KzIyUkFBQfLz85PNZtP+/fud1pGenq7hw4fL399f/v7+Gj58uNLT06/1rhTb9u3bNXjwYDVq1Ehms1mLFi1yGi+tfd67d6969+4tPz8/NWrUSFOmTJHd7j4fFr9SH8LDw/MdG926dXOa58KFC5owYYJuu+021axZU4MHD9aRI0ec5vn99981aNAg1axZU7fddpueffZZXbx4scz3rzimT5+ue++9V3Xq1FFAQIAGDRqkffv2Oc1zIxwPxenDjXA8zJkzR23btlWdOnVUp04dde/eXevXr3eM3wjHwpV6cCMcBwWZPn26zGazJkyY4Jjm6uPB7YOcJA0bNkx79uxRSkqKtmzZonbt2l3zGm6EBxMHBgbqwIEDjp8/BtWoqCjNnDlTU6ZM0ebNm2WxWNSvXz+dOXPGMc+wYcO0e/duLVu2TMuWLdPu3bs1YsQIV+xKsZw7d06NGzfWW2+9JS8vr3zjpbHPp0+fVr9+/eTr66vNmzfrrbfe0rvvvqt//etf12Qfi+NKfZCkzp07Ox0bn376qdN4RESEYmJiNG/ePK1Zs0ZnzpzRoEGDlJ2dLUnKzs7WoEGDdPbsWa1Zs0bz5s3TqlWr9MILL5T5/hXHtm3b9Pjjj2v9+vVatWqVypcvr759++rUqVOOeW6E46E4fZCu/+OhZs2aevXVV7VlyxbFxcWpY8eOGjp0qH744QdJN8axcKUeSNf/cfBnu3bt0gcffKAmTZo4TXf18eDWz5FzJ127dlWTJk00Y8YMx7QWLVooNDRUr7zyigsrKx2RkZFatWqVduzYkW/MbrcrKChITzzxhMaPHy9JyszMVGBgoF5//XWFhYXpwIEDat26tdatW6c2bdpIknbs2KHg4GDt2rVLgYGB13R/SqpWrVp6++23NXToUEmlt8/z5s3TpEmT9NNPPzlC0tSpUzV//nzt27dPJpPJNTtciD/3Qcr9zfvkyZNaunRpgctkZGSofv36mjlzpu6//35J0uHDh9W0aVMtW7ZMXbt21YYNG3T//fdrz549ql27tiRp6dKlGj16tBITE1W1atWy37kSOHv2rPz9/bVo0SIFBwffsMfDn/sg3ZjHgyTVq1dPr7zyih599NEb8liQ/teDsLCwG+44yMjIUKdOnTRjxgxNmTJFjRs31tSpU93i7wZDnJFztYsXL+q7775Tly5dnKZ36dJFCQkJLqqq9B06dEhBQUFq1qyZHnvsMR06dEiSlJSUpOTkZKf99/LyUtu2bR37/9VXX6ly5cpOH0Jp06aNvL29Ddmj0trnr776Svfcc4/Tma6uXbvq2LFjSkpKukZ789ft2LFD9evXV8uWLTV69GinT5J/9913unTpklOvateurYYNGzr1oWHDho6/rKXcPly4cEHffffdtduRYjp79qxycnJkNpsl3bjHw5/7kOdGOh6ys7O1fPlynTt3TnffffcNeSz8uQd5bqTjYOzYsQoNDVXHjh2dprvD8eD2H3ZwBzfCg4lbtWqlWbNmKTAwUCdOnNDUqVPVo0cP7dy5U8nJyZJU4P4fO3ZMkpSSkiIfHx+n3xpMJpOqV69uyB6V1j6npKSoZs2a+daRN1avXr2y2oVS061bN913332qW7eufvvtN02ePFl9+vRRfHy8KlSooJSUFHl4eMjHx8dpuT/+/5GSkpKvl3mPF3LH4+P5559X06ZNHf9o3ajHw5/7IN04x8PevXvVo0cPZWVlydvbWx999JGaNGni+If3RjgWCuuBdOMcB5L04Ycf6uDBg5o9e3a+MXf4u4EgB0lS9+7dnV63atVKzZs31+LFi3XXXXe5qCq4gwEDBjj+3KRJEzVv3lxNmzbV+vXr1adPHxdWVjYmTpyonTt3at26dfLw8HB1OS5TWB/+r717j6m6/AM4/uYisBQ83JUQqANeQA2QEC+ZZkUMnUtAUauBl5C2nG4UGGAkDvxpmU7TNi0xo5Srt6nlUifKOYI5DS+gSCngJTwGiIpO4PcH8zuPXNQ6isjntbHJ9/nwnOd5fMTPeb7P9zldZT54eHiQl67safwAAA5oSURBVJdHbW0tW7duJTo6mh07dnR0s56qtsbA09Ozy8yDs2fPsnDhQnbv3k23bt06ujmtklurj6ArHkzco0cP+vfvT1lZGY6OjgDt9t/BwQGdTqf3hE1TUxNXr17tlGNkqD47ODi0Wse9ss6od+/eODk5UVZWBjT3o6GhAZ1Opxf34Fg9OA73VrqfpXGYP38+2dnZbNu2Te8dcFebD22NQ2ue1/lgZmbGyy+/jLe3N59//jmDBg1i9erVXWoutDUGrXle50FBQQE6nY6AgABsbW2xtbXl0KFDrFu3DltbW2xsbICOnQ+SyD2CrngwcX19PWfPnsXR0RFXV1ccHR31+l9fX49Go1H67+/vT11dHQUFBUpMQUEBN27c6JRjZKg++/v7o9FoqK+vV2L27dtH7969cXV1fUq9MSydTselS5eU/9C8vb3p1q2b3lhVVlYqG3yheRxKSkr0jh7Yt28f5ubmeHt7P90OtCE2NlZJXu4/ege61nxobxxa87zOhwc1NjZy586dLjUXHnRvDFrzvM6D4OBg8vPzycvLU758fHwICQkhLy8Pd3f3Dp8PJnFxcUkG7PNzy9LSktTUVHr16oWFhQVLly4lPz+fVatW0bNnz45u3n+WkJCAmZkZjY2NlJaW8sknn1BWVsbXX3+NSqWioaGB5cuXo1araWhoID4+nitXrrB8+XLMzc2xs7PjyJEjZGVlMWjQICorK5k3bx6+vr7P7BEkdXV1FBcXc+XKFTZu3IinpydWVlbcuXOHnj17GqTParWa9evXU1RUhIeHBxqNhgULFjB37txnJsFtbxxMTExYuHAhPXr04O7duxQVFfHxxx/T0NDA0qVLMTc3x8LCgsuXL7Nu3Tq8vLyoqalh3rx5WFlZ8cUXX2BsbIybmxvbt29n7969eHl5UVxcTExMDGFhYYwfP76jh4CYmBg2bdpEWloazs7O3Lhxgxs3bgDNb+SMjIy6xHx42DjU1dV1ifmQlJSk/D6srKxkzZo1ZGRkkJSUpPz9P+9zob0xcHR07BLzAMDCwgJ7e3u9r8zMTFxcXJg2bdoz8btBjh95DOvWrWPFihVcuXKFAQMGkJKS0iFn2j0J06dPJz8/H51Oh52dHX5+fsTHx9O/f3+geRl48eLFpKWlUV1dzZAhQ/jyyy/x9PRU6qiurubTTz9l165dAAQFBbFkyZIWT7w9K/Ly8lr9ZTFlyhTWrFljsD6fPHmSmJgYjh49ikqlIjIyktjY2GfmeIH2xmHZsmVMmzaNP/74g5qaGhwdHXnttdeIj4/Xe9Ls9u3bJCQkkJWVRX19PaNGjeKrr77SiykvLycmJoYDBw5gYWFBWFgYycnJmJubP5V+tqetORobG8v8+fMBw/0beJbnw8PG4datW11iPkRHR5OXl8fff/+NlZUVXl5ezJkzh7FjxwJdYy60NwZdZR60JTg4WDl+BDp+PkgiJ4QQQgjRSckeOSGEEEKITkoSOSGEEEKITkoSOSGEEEKITkoSOSGEEEKITkoSOSGEEEKITkoSOSGEEEKITkoSOSGEaEd6ejoqlYrz5893dFOEEKIFSeSEEE/E1atXSUpKIiAgACcnJ3r37s3w4cNJSkri0qVLHd28/yQzM7PNz5w0lOjoaFQqFc7Ozty6datFeXl5OdbW1qhUKlJTUwE4duwYKpWKFStWtIiPiopCpVKxatWqFmUzZ87E3t6emzdvGr4jQognShI5IYTBHTt2jGHDhrFmzRp8fX1JTk4mJSWF4cOH88MPPzBu3LiObuIjCw8P5/Lly7i4uCjXsrKyWLNmzRN/bRMTE+rr65XT4O+XlZXV4vT7QYMGYWlpiUajaRGv1WoxNTVFq9W2WjZ48GBeeOEFwzVeCPFUmHZ0A4QQz5eamhree+89APbv38+AAQP0yhMTE1tdMXpWmZiYYGJi0iGvbWpqyuuvv05mZiYTJ07UK8vMzOTtt99m27ZtyjUTExP8/PwoKCigqalJ+WifS5cucf78eSZNmqT34d7QvLJXUVHBhAkTnnyHhBAGJytyQgiDSktLo6KigkWLFrVI4gB69uzJggULlO/z8/OJjIxk4MCBODg40K9fP+bMmcM///yj93OpqamoVCqKi4uZOXMmLi4uuLq6MnfuXOrq6vRid+7cyeTJk/H09MTBwYGBAweSmJhIfX19i/aUlpYyY8YM3N3dcXR0xNfXl7i4OKX8wT1ywcHB/PLLL5SXl6NSqZSvxsZGBg4cSHh4eIvXuHv3Lh4eHkRGRj7eYAKhoaH89ttveuNx8uRJTp06RVhYWIv4gIAArl27RklJiXLt8OHDmJmZMXv2bKqqqigtLdUrAxg2bNhjt00I0fFkRU4IYVC7du3CwsKCd99995Hit2zZQm1tLREREdjb23PixAk2btzI6dOn+fXXX1t8YPT06dNxcnIiMTGRoqIi0tLSqKysJDMzU4lJT0/H3NycqKgorKysKCwsZPXq1VRWVvL9998rcadPnyYwMBBjY2MiIiJwc3PjwoUL5OTksHjx4lbbGxMTQ21tLRcvXiQlJUW5bmxszKRJk1i5ciXXrl3DxsZGKdu7dy9VVVWtJnkPExwczNy5c9m6dSsRERFA821VZ2fnVpOvgIAAoPl2af/+/QHQaDR4e3vj4+ODlZUVGo0Gd3d3JQ4kkROis5JETghhUMXFxbi7u2NmZvZI8UlJSS32Zvn7+zNr1iy0Wm2LBMPJyYnMzEwlwXN0dGTp0qXs37+f0aNHA7B27Vq9OiMjI1Gr1SxatIiFCxfi7OwMNCdlDQ0NHDhwADc3NyU+MTGxzfaOGTMGJycnqqurmTx5sl5ZeHg4y5YtIycnh5kzZyrXMzIysLOzY+zYsY80Jvfr3r07QUFBZGRkEBERQVNTE1lZWYSGhrZIcgFeffVVTE1N0Wg0SuKn1WoZNWoURkZG+Pv7o9Vqef/994HmJM/DwwNbW9vHbpsQouPJrVUhhEFdv34dS0vLR46/l3A1NTVRW1uLTqfD398faH5o4kGzZs3SS2Bmz54NwO7du1vU2djYSE1NDTqdjoCAAJqamjh+/DjQ/FTtoUOHmDp1ql4SB7SaID2Kvn37MmTIEDZv3qxcq6urY+fOnYSEhGBq+u/eO4eGhqLRaKioqECr1VJeXt7qbVVo7vvgwYOVlba6ujpOnDjB0KFDAZREDpr3M54+fVpW44ToxCSRE0IYlKWlJdevX3/k+IqKCqZPn46LiwsuLi6o1WpeeeUVAGpra1vEq9Vqve9tbW1RqVRcuHBBuXZv/9iLL76Iq6srarWa4OBgvTr/+usvgFb38f0XU6ZMobCwkD///BOA7du3c/PmzX91W/WeN998E5VKRXZ2NpmZmXh6euLl5dVmfEBAAOfPn+fSpUscOXKEhoYGJZEbOnQo586do6qqisLCQhobG5XbsUKIzkcSOSGEQfXr14/S0lLu3Lnz0NiGhgYmTpzI/v37mTdvHj/++CO5ublkZ2cDzStqj6umpobx48dTXFxMQkICP//8M1u2bFHOffs3dT6OkJAQzMzMlFW5jIwM+vbti4+Pz7+us1u3bkyYMIHNmzezdevWNlfj7rl/n5xGo0GtVmNvbw+An58fJiYmaDQa2R8nxHNA9sgJIQwqKCiIw4cPs2XLFiZNmtRu7MmTJzlz5gyrV69m6tSpyvVz5861+TPnzp1TNuoD6HQ6qqurlXPe8vLy0Ol0bNiwgZEjRypxDx678dJLLwHNDzwYkrW1NYGBgcqetgMHDvDZZ5/953pDQ0NJS0vDyMiIkJCQdmPvJWYajYaSkhK9Fbfu3bszcOBAtFotx48fp1evXspYCCE6H1mRE0IYVEREBE5OTiQkJOgdgXHP9evXSU5OBlDOZ2tqatKLWblyZZv1r127Vi/+22+/BSAwMLDNOhsbG/nmm2/06rG1tWXEiBH89NNPym3Wex5sz4O6d+9OTU1Nm3FTpkyhrKyM+fPn09jY+NCE9lGMGDGChIQEFi9erHc4cWvs7e1Rq9UcPHiQ33//Xbmteo+/vz95eXkcPXpUbqsK0cnJipwQwqBUKhXp6emEhYXx+uuvExoaiq+vL8bGxpw6dYrs7Gysra1JTEykb9++qNVqEhISuHjxItbW1uzZs4eLFy+2Wf/FixcJCwsjMDCQEydOsGHDBt544w3GjBkDNN9WtLGxITo6mqioKExNTdm2bVuLs+YAlixZQlBQEKNHjyYyMhI3NzfKy8vJycnh6NGjbbbBx8eHnJwc4uLi8PPzw9jYWG+V7K233sLOzo7c3FxGjhxJnz59/sOINjMyMiImJuaR4wMCAkhPT1f+/GDZ2rVrWy0TQnQusiInhDA4Hx8fNBoNUVFRFBYWEh8fT1xcHAcPHiQiIoKdO3cCzXu/Nm3ahK+vLytXrmTRokVYWloqe+Ra891336FSqUhOTiY3N5cPPviAtLQ0pdza2pqMjAycnZ1JTU1l2bJleHp6Kit39/Py8mLPnj2MGjWK9evXExsbS25uLu+88067/ZsxYwbh4eFkZGTw4YcfMmPGDL3ybt26KYndg0eUPC33EjQbGxs8PDz0yu5foZNETojOzai6urr9ewhCCPEMSE1N5X//+x8lJSU4Ojp2dHMeKjExkbVr13LmzBmsrKw6ujlCiOeUrMgJIYSB3b59m82bNzNu3DhJ4oQQT5TskRNCCAOpqqpi//797Nixg6qqKj766KMWMVevXqWhoaHNOkxMTLCzs3uSzRRCPEckkRNCCAMpLi5m1qxZ2NnZkZKSgq+vb4uYMWPGUF5e3mYdffr0oaio6Ek2UwjxHJE9ckII8RRptVrq6+vbLLewsJAHEIQQj0wSOSGEEEKITkoedhBCCCGE6KQkkRNCCCGE6KQkkRNCCCGE6KQkkRNCCCGE6KQkkRNCCCGE6KT+D4/JSw1yuIbkAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "plt.figure(figsize=(9,6))\n", "plt.bar(new_x_yours, height_yours, width=width_yours, color = energy_colors_dict[YOUR_PORTFOLIO], edgecolor = \"black\")\n", "plt.title(YOUR_PORTFOLIO)\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Price')\n", "for new_x_i, height_i, label_i in zip(new_x_yours, height_yours, label_yours):\n", " plt.text(new_x_i, height_i, label_i,\n", " ha='center', va='bottom', fontsize=8)\n", "price_line_plot(price)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's reduce our problem further to only include the plants that are actually operational under the new market price. Run the following cell to see the plants that will operate given our market price, and then we can begin the process of calculating our profit." ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Price: 44.83\n" ] }, { "data": { "image/png": "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ZWVp8ODBkiQHBwdFRUWpd+/eevbZZ/Xll19an9O2atUqOTs767333rM+7kOSnnvuOY0ePVrt27dXr169VKFCBe3YsUOHDh1S9+7dtWHDhuK2EsAtgtAGoFy69pEfTk5O8vDwUPfu3TV8+HA99NBDRdrGo48+qurVq2vWrFn66quv5OzsrODgYG3atEmTJ0+W9L9r34rivvvu065du/TJJ59o/fr12rRpk/UL4+vVq6cRI0boySeflL+/v/U9zZs315YtWzRr1ixt2bJF3377rapVqyaz2ayXXnrJ5jtUJWno0KFydnZWVFSUlixZIldXV91///2aO3euVq1aRWgDbmN8YTyA205WVpbuueceXblyRYcOHbJ3OQBQJFzTBuCWlZqaqr/++stmmcVi0axZs3TixAn17NnTTpUBQPEx0wbglrVlyxY98cQTeuihh+Tr66uMjAzt2rVLe/fuVe3atRUbG5vvc9wAoLwhtAG4Zf3xxx+aNm2a4uPjde7cOf3999/y8fFRt27d9NJLLxXrAbsAYG+ENgAAAAPgmjYAAAADILQBAAAYAKENAADAAAhtxXTkyBF7l1Du0aPC0aOioU+Fo0eFo0eFo0eFKw89IrQBAAAYAKENAADAAAhtAAAABkBoAwAAMABCGwAAgAEQ2gAAAAyA0AYAAGAAhDYAAAADILQBAAAYAKENAADAAAhtAAAABkBoAwAAMABCGwAAgAE4pKSkWOxdREmqZjLZuwQAAIBiS01JKXA9M20AAAAGUMHeBZS0wlLqzTpy5IgCAgJK9TOMjh4Vjh4VDX0qHD0qHD0qHD0qXHnoETNtAAAABkBoAwAAMABCGwAAgAEQ2gAAAAyA0AYAAGAAhDYAAAADILQBAAAYAKENAADAAAhtAAAABkBoAwAAMABCG24727Zt09133y2z2Syz2azU1NSb3mZycrKeeuopmc1mde/eXZs2bSqBSgEA+B9CG25LAwcO1Nq1a7V27VpVq1at2O/Pzs62eT1u3DgNGzZMa9eu1apVq4q0zeu3cSOfi9Kxbds2TZs2zfo6LCxMn3zyiT755BObZQkJCVq8eLGaNGmirKwsSZLZbNb27dtlNpv1wAMPWH9BiIqKktls1t9//62IiAh1797duq2cP2dlZemNN95Qz549FRISouHDh2vv3r0ym83q3LmzAgICZDab9dprrykrK0sTJkzQiBEjFBISom+//dZae+3atZXy/7+HOSwsTEePHs21j4sXL1bLli1lNpvVs2dPnT17VpKsy8xms1566SXr+Oeff141a9ZUz5491bt3b/35559q1aqV6tSpI19fXwUFBeny5cvy9fVVjx49FBoaqsGDB+uJJ56w7tuECRNkNpsVEhKiAQMGyM/PT5MnT85V7549e9SqVSvVrFlT9evXl9lsVmxsrLWWb7/9ViEhITKbzZowYYK199czm83q0aOHRowYoa1bt+Za/8cff2jAgAHq2bOnzd9teZPzi+a1vc/ZN7PZrMcff1ySrH9voaGhGj58uPXv9PreF3as5BwbvXr1Uq9evW6492azWe3atdOgQYNyrY+KilKnTp3UpUsX7dy5s0T7dSu75b4wHrgRW7Zssf6QnjRpkjp06KDu3btrw4YNkq7+A7R27VqZzWa1aNFCZ86c0QcffCDp6j+IZ86cUXBwsCTJ2dlZrVq10t9//60RI0bo1KlT8vHx0fvvv6+4uDjNnTtXGRkZGjlypGbOnKnAwED99NNPmjJlijp37qwNGzYoMjJSWVlZGjdunDp37qzOnTuradOmcnV11V133aWlS5fK1dVV06ZNU7NmzezTNFhVrlxZa9asUWhoqCSpTZs2Wrt2rbZt26atW7dq0qRJkqQ1a9ZY33P+/Hn9/PPPuvfee63LPvnkEzk7O1vH7dmzR3Xr1tXatWuVkJCgN954w3rcffTRR/Lw8ND7778vHx8f9evXz3os1KpVS59++qn++c9/Flj3yJEj9cQTT2j58uVavny5nn/+eXl4eGjt2rW5xh48eFB16tTR4sWLtWHDBr377rtKSkrSoUOHVLlyZf3444/WH+AxMTFydXXVsmXL9Nprr0mSFi1aZN12RkaGQkNDNW7cOJ04cSJXvRUrVtSQIUNUpUoVWSwW/fnnn3rzzTfVqFEjOTs7a/bs2YqOjpabm5vmzJmjjz/+WE899VSe+7hq1Sr9/vvveX7R97Rp0zR37lx5eHgU2KfyYODAgZo0aZKWLl2q6OhoSVf3rUIF2x/jK1euVIUKFbR161a9+OKL+uyzz3L1Pq9j5dpfIqT/HRspKSl67LHHit37nGNo7ty5qlq1aq71n3/+ubZu3aozZ85o7NixWrx4cYn06VbHTBtuS1988YXMZrOee+45SdKMGTMUExOjmJgYTZ8+vcD39uzZ0/qDU5LOnTuX5z/6a9asUcOGDbV+/Xo1atRIq1atkiRduXJFc+bMUZcuXXT+/HlNnjxZy5Yt08KFC5Wdna133nlHq1ev1po1a/T2229Lunr69aWXXtL06dO1bt066/p77rmnpFqCm/D444/r448/LtZ7hg8frqioKJtlK1eutAlaTZs2lbu7e57vX716tcLCwiRJbm5ueuyxx/T1119Lknr06KH169fnOwtyvQsXLuT5gzXHsWPH5O3tLX9/f3399ddKTU3V3r175ePjI2dnZ0lSixYtVKlSJZv3tW7dWleuXFFWVlauep944gnt27cvz3pdXFyss9UVKlRQ1apVNXjwYMXGxmrjxo0aOHCg3NzcJEnPPfecTRi+lqOjo0JDQzVhwgSdP3/eZt2VK1d0/PhxjRo1Sn379tVvv/1WpF7ZW1Ev53jwwQeVlpaWZ++Lc6yYTKYb6n2O9evXq0ePHrmW+/r66tKlS0pNTdUdd9xRpH0CM224TeX81prDwcHB+sPRycnJZqzFYrF5ff3MloeHh86dO5frM37//XdrqLr33nu1e/dueXp62gQtDw8PeXp6Srr6j3FycrIOHz5snbE5d+6cLBaLPD09VatWLUlSeHi4XnzxRTk7O2vixIny8vK6oR6gYF988YXi4uIkSUeOHNH999+f79hq1arJz89PP/30U5G37+fnp9jYWJ0+fdq67NKlS3J1dZUkjRgxQvv27dO///1v3Xfffbnef+nSJZuQVKtWLe3du1e1a9eWk5OTQkJCtHr16gJrePvtt/X555/rxIkT1lNm586dk9lsliS1b99e48eP15o1a9S2bVvNmzdP8fHx8vLyUsuWLXXu3Dn16tVLDg4OatSokf71r39Jkvr06SNHR0ddunRJLi4uSk5OzrPeb7/9VtWqVcu33szMTOss4I8//qi9e/fKYrEoMDDQOsbV1VWXL1/Oc/8++eQTVa9eXe+8845mzZpl8wtZcnKy9u3bp59++klJSUl65ZVX9PnnnxfYL3v64osv9M033+jixYv6+uuvtXLlyjx7fy1PT898e3/9sXLtKdDr3XnnncXuvSQlJSXJwcEhz19q27Vrp/vuu09ZWVlavnx5Udtw2yO0Abp6rVhaWpokWX/jtFgsunTpko4cOWIz1tHRdoLayclJNWvW1A8//KDg4GBd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WrVqpWeeeUbx8fG5woSPj4+WL19uDXPe3t6aNWuWtmzZog4dOkiS5s+fb7PNoUOHys/PT9OmTdPrr7+u2rVrS7oawLKysvTdd9+pXr161vGTJ0/Ot96HHnpIPj4+SklJ0YABA2zWDRw4UHPmzFFMTIyGDRtmXb5s2TJ5eHioU6dORerJtdzc3BQSEqJly5ZpyJAhslgsio6OVr9+/XIFWkm67777VKFCBcXFxVlDXnx8vNq3by8HBwe1atVK8fHx+sc//iHpaqALCAhQjRo1il0bgLLF6VEAJerChQuqWrVqkcfnhCuLxaK0tDQlJyerVatWkq7e0HC9Z555xiasPPvss5KkDRs25Npmdna2UlNTlZycrDZt2shiseiXX36RdPXu1u+//16DBg2yCWyS8gxDRdGgQQO1aNFCS5cutS5LT0/XunXr9Mgjj6hChRv7Pblfv36Ki4vTiRMnFB8fr+PHj+d5alS6uu9Nmza1zqClp6fr119/VevWrSXJGtqkq9cfHjhwgFk2wCAIbQBKVNWqVXXhwoUijz9x4oSeeuop+fr6ytfXV35+frrnnnskSWlpabnG+/n52byuUaOGTCaT/vjjD+uynOu9atWqpbp168rPz09ms9lmm8eOHZOkPK+7uxmPPfaYdu3apd9//12StHr1av311183dGo0R+fOnWUymbRixQotX75cgYGBCgoKynd8mzZtlJCQoNOnT+s///mPsrKyrKGtdevW+u9//6ukpCTt2rVL2dnZ1lOqAMo3QhuAEtWwYUP99ttvunz5cqFjs7Ky1LdvX23ZskWjR4/WZ599pi+//FIrVqyQdHWmrLhSU1P18MMP6+DBg5o0aZKWLFmir776yvpctRvZZnE88sgjcnZ2ts62LVu2TA0aNNC99957w9usWLGiQkNDtXTpUq1cuTLfWbYc117XFhcXJz8/P3l6ekqSWrZsKScnJ8XFxXE9G2AwXNMGoESFhIRox44d+uqrr/Too48WOHbfvn06fPiw5s2bp0GDBlmX//e//833Pf/973+tF9FLUnJyslJSUqzPUdu2bZuSk5P18ccf64EHHrCOu/5RF3fddZekqzcjlKTq1aurW7du1mvQvvvuO02YMOGmt9uvXz8tWrRIDg4OeuSRRwocmxPC4uLidOjQIZuZNDc3N919992Kj4/XL7/8opo1a1p7AaB8Y6YNQIkaMmSIfHx8NGnSJJvHTuS4cOGCpk6dKknW559ZLBabMe+8806+258/f77N+Pfee0+S1K1bt3y3mZ2drblz59psp0aNGmrbtq0+//xz66nSHNfXcz03NzelpqbmO+6xxx7T0aNHFR4eruzs7ELDa1G0bdtWkyZN0owZM2we9JsXT09P+fn5afv27frxxx+tp0ZztGrVStu2bdNPP/3EqVHAQJhpA1CiTCaTFi9erP79++vBBx9Uv3791Lx5czk6Omr//v1asWKFqlevrsmTJ6tBgwby8/PTpEmTdOrUKVWvXl2bNm3SqVOn8t3+qVOn1L9/f3Xr1k2//vqrPv74Y3Xs2FEPPfSQpKunBu+44w6FhYVpxIgRqlChglatWpXrWW6S9OabbyokJEQdOnTQ0KFDVa9ePR0/flwxMTH66aef8q3h3nvvVUxMjF5++WW1bNlSjo6ONrNfXbp0kYeHh7788ks98MADqlOnzk109CoHBweNGTOmyOPbtGmjxYsXW/98/br58+fnuQ5A+cVMG4ASd++99youLk4jRozQrl27NHHiRL388svavn27hgwZonXr1km6eq3WF198oebNm+udd97RtGnTVLVqVes1bXn56KOPZDKZNHXqVH355Zd64okntGjRIuv66tWra9myZapdu7YiIiI0Z84cBQYGWmfkrhUUFKRNmzapffv2WrhwocaPH68vv/xS3bt3L3D/nn76aQ0cOFDLli3T8OHD9fTTT9usr1ixojXEXf9YkLKSE8buuOMOBQQE2Ky7duaN0AYYh0NKSkrB5wEAoByIiIjQzJkzdejQIXl7e9u7nEJNnjxZ8+fP1+HDh+Xu7m7vcgDcAphpA4ASdunSJS1dulQ9e/YksAEoMVzTBgAlJCkpSVu2bNGaNWuUlJSk5557LteYc+fOKSsrK99tODk5ycPDozTLBGBQhDYAKCEHDx7UM888Iw8PD02fPl3NmzfPNeahhx7S8ePH891GnTp1tHfv3tIsE4BBcU0bAJSh+Ph4ZWZm5rve1dWVmwMA5InQBgAAYADciAAAAGAAhDYAAAADILQBAAAYAKENAADAAAhtAAAABvD/AMlo9c3hBhUgAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nonmarg_capacity = sum(sorted_joined_table.where('PRICE' + str(hour), are.below(price))[\"Capacity_MW\"])\n", "marg_capacity = sum(sorted_joined_table.where('PRICE' + str(hour), are.equal_to(price))[\"Capacity_MW\"])\n", "marg_demand = demand - nonmarg_capacity\n", "marg_proportion = marg_demand / marg_capacity\n", "\n", "marginal_plants = np.where(height_yours == price)[0]\n", "width_yours2 = width_yours.copy()\n", "width_yours2[marginal_plants] = width_yours2[marginal_plants] * marg_proportion\n", "new_x_yours2 = find_x_pos(width_yours2)\n", "\n", "\n", "plt.figure(figsize=(9,6))\n", "num_x = len(your_source.where('PRICE' + str(hour), are.below_or_equal_to(price))[1])\n", "plt.bar(new_x_yours2[:num_x], height_yours[:num_x], width=width_yours2[:num_x], \n", " color = energy_colors_dict[YOUR_PORTFOLIO],\n", " edgecolor = \"black\")\n", "plt.title(YOUR_PORTFOLIO)\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Price')\n", "for new_x_i, height_i, label_i in zip(new_x_yours2[:num_x], height_yours[:num_x], label_yours[:num_x]):\n", " plt.text(new_x_i, height_i, label_i,\n", " ha='center', va='bottom', fontsize=8)\n", "price_line_plot(price)\n", "\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot above allows us to see how the prices we have set correspond to the market price. However, in order to look at the profits that we are making, we should look at our marginal cost rather than our bid prices. We do this in the plot below, allowing us to compare the market price of energy in this hour to the marginal costs for running the plants that have a bid price that was below the market price. We should include the permit price in marginal cost: even if we are grandfathered permits, the ability to sell the permits represents an opportunity cost." ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Price: 44.83\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(9,6))\n", "num_x = len(your_source.where('PRICE' + str(hour), are.below_or_equal_to(price))[1])\n", "plt.bar(new_x_yours2[:num_x], height_yours_marginal_cost[:num_x], width=width_yours2[:num_x], \n", " color = energy_colors_dict[YOUR_PORTFOLIO],\n", " edgecolor = \"black\")\n", "plt.title(YOUR_PORTFOLIO)\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Marginal Cost (total)')\n", "for new_x_i, height_i, label_i in zip(new_x_yours2[:num_x], height_yours_marginal_cost[:num_x], label_yours[:num_x]):\n", " plt.text(new_x_i, height_i, label_i,\n", " ha='center', va='bottom', fontsize=8)\n", "price_line_plot(price)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can finally calculate profit. The graphic above should show the market price line along with the marginal costs for operating our plants. Thus we can calculate profit by calculating the area between the red line and the blue boxes, as that will give us the total revenue - total cost. The function defined below is designed to perform that calculation." ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "def profit(sorted_table, price, marg_prop, hour):\n", " capacity_subset = sum(sorted_table.where('PRICE' + str(hour), are.below(price))[\"Capacity_MW\"])\n", " capacity_subset += sum(sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Capacity_MW\"] * marg_prop)\n", " revenue = capacity_subset * price\n", " cost = 0\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.below(price))[\"Var_Cost_USDperMWH\"])):\n", " cost += sorted_table.where('PRICE' + str(hour), are.below(price))[\"Var_Cost_USDperMWH\"][i]\\\n", " * sorted_table.where('PRICE' + str(hour), are.below(price))[\"Capacity_MW\"][i]\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Var_Cost_USDperMWH\"])):\n", " cost += sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Var_Cost_USDperMWH\"][i]\\\n", " * (sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Capacity_MW\"][i] * marg_prop)\n", " return revenue - cost\n", "\n", "def profit_pab(sorted_table, price, marg_prop, hour):\n", " revenue = 0\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.below(price))['PRICE' + str(hour)])):\n", " revenue += sorted_table.where('PRICE' + str(hour), are.below(price))['PRICE' + str(hour)][i]\\\n", " * sorted_table.where('PRICE' + str(hour), are.below(price))[\"Capacity_MW\"][i]\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.equal_to(price))['PRICE' + str(hour)])):\n", " revenue += sorted_table.where('PRICE' + str(hour), are.equal_to(price))['PRICE' + str(hour)][i]\\\n", " * (sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Capacity_MW\"][i] * marg_prop)\n", " cost = 0\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.below(price))[\"Var_Cost_USDperMWH\"])):\n", " cost += sorted_table.where('PRICE' + str(hour), are.below(price))[\"Var_Cost_USDperMWH\"][i]\\\n", " * sorted_table.where('PRICE' + str(hour), are.below(price))[\"Capacity_MW\"][i]\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Var_Cost_USDperMWH\"])):\n", " cost += sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Var_Cost_USDperMWH\"][i]\\\n", " * (sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Capacity_MW\"][i] * marg_prop)\n", " return revenue - cost" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10768.0" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "profit_pab(your_source, price, marg_proportion, hour)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now calculate the amount of emissions in the current hour." ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "def emissions(sorted_table, price, marg_prop, hour):\n", " emissions = 0\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.below(price))[\"Var_Cost_USDperMWH\"])):\n", " emissions += sorted_table.where('PRICE' + str(hour), are.below(price))[\"Carbon_tonsperMWH\"][i]\\\n", " * sorted_table.where('PRICE' + str(hour), are.below(price))[\"Capacity_MW\"][i]\n", " for i in range(len(sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Var_Cost_USDperMWH\"])):\n", " emissions += sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Carbon_tonsperMWH\"][i]\\\n", " * (sorted_table.where('PRICE' + str(hour), are.equal_to(price))[\"Capacity_MW\"][i] * marg_prop)\n", " return emissions" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2852.0" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "emissions(your_source, price, marg_proportion, hour)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's calculate a few more things. First, calculate total profits (up through and including the current round)." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "# Load in auction prices.\n", "auction_results = Table.read_table('auction_results.csv').where(\"world_id\", 'S' + str(section))\n", "\n", "def team_profit(portfolio, period):\n", " # Merge auction results with sorted joined table\n", " full_table = sorted_joined_table_all.join(\"TEAM\", auction_results, \"team\")\n", " team_table = full_table.where(\"Group\", portfolio)\n", " team_profit = -team_table.to_df().loc[0, \"adjustment\"] * 1.05**(period-1)\n", " for period_i in range(1, (period+1)):\n", " period_table = full_table.where(\"PERIOD\", period_i)\n", " period_team_table = team_table.where(\"PERIOD\", period_i)\n", " \n", " period_team_profit = -sum(period_team_table[\"FixedCst_OandM_perDay\"])\n", "\n", " for hour_i in range(1, 5):\n", " period_table_sort = period_table.sort(\"PRICE\" + str(hour_i), descending = False)\n", " period_team_table_sort = period_team_table.sort(\"PRICE\" + str(hour_i), descending = False)\n", "\n", " demand_i = demand_table.where(\"round\", period_i).where(\"hour\", hour_i)[\"load\"].item()\n", " price_i = price_calc(demand_i, period_table_sort, hour_i)\n", "\n", " nonmarg_capacity_i = sum(period_table_sort.where('PRICE' + str(hour_i), are.below(price_i))[\"Capacity_MW\"])\n", " marg_capacity_i = sum(period_table_sort.where('PRICE' + str(hour_i), are.equal_to(price_i))[\"Capacity_MW\"])\n", " marg_demand_i = demand_i - nonmarg_capacity_i\n", " marg_proportion_i = marg_demand_i / marg_capacity_i\n", "\n", " if period_i in pab_periods:\n", " period_team_profit += profit_pab(period_team_table_sort, price_i, marg_proportion_i, hour_i)\n", " else:\n", " period_team_profit += profit(period_team_table_sort, price_i, marg_proportion_i, hour_i)\n", " \n", " team_profit += period_team_profit * 1.05**(period-period_i)\n", " if period_i == period:\n", " team_profit_today = period_team_profit\n", " \n", " output_df = pd.DataFrame.from_dict({\"Current Round: \":team_profit_today, \"Total: \":team_profit}, orient = 'index', columns = [portfolio + ' Profit']).round().astype(int)\n", " \n", " return output_df" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Big Coal Profit
Current Round:125867
Total:1083252
\n", "
" ], "text/plain": [ " Big Coal Profit\n", "Current Round: 125867\n", "Total: 1083252" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "team_profit(YOUR_PORTFOLIO, period)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "def total_emissions(portfolio, period):\n", " full_table = sorted_joined_table_all\n", " team_table = full_table.where(\"Group\", portfolio)\n", " team_emissions_4_6 = 0\n", " team_emissions_4_today = 0\n", " for period_i in range(1, 7):\n", " period_table = full_table.where(\"PERIOD\", period_i)\n", " period_team_table = team_table.where(\"PERIOD\", period_i)\n", " \n", " period_team_emissions = 0\n", "\n", " for hour_i in range(1, 5):\n", " period_table_sort = period_table.sort(\"PRICE\" + str(hour_i), descending = False)\n", " period_team_table_sort = period_team_table.sort(\"PRICE\" + str(hour_i), descending = False)\n", "\n", " demand_i = demand_table.where(\"round\", period_i).where(\"hour\", hour_i)[\"load\"].item()\n", " price_i = price_calc(demand_i, period_table_sort, hour_i)\n", "\n", " nonmarg_capacity_i = sum(period_table_sort.where('PRICE' + str(hour_i), are.below(price_i))[\"Capacity_MW\"])\n", " marg_capacity_i = sum(period_table_sort.where('PRICE' + str(hour_i), are.equal_to(price_i))[\"Capacity_MW\"])\n", " marg_demand_i = demand_i - nonmarg_capacity_i\n", " marg_proportion_i = marg_demand_i / marg_capacity_i\n", "\n", " period_team_emissions += emissions(period_team_table_sort, price_i, marg_proportion_i, hour_i)\n", " \n", " if period_i == period:\n", " team_emissions_today = period_team_emissions\n", " if period_i > 3:\n", " team_emissions_4_6 += period_team_emissions\n", " if (period_i > 3) & (period_i <= period):\n", " team_emissions_4_today += period_team_emissions\n", " \n", " output_df = pd.DataFrame.from_dict({\"Current Round: \":team_emissions_today, \"Rounds 4 - Current: \":team_emissions_4_today, \"Expected Rounds 4-6\":team_emissions_4_6}, orient = 'index', columns = [portfolio + \" Emissions\"]).round().astype(int)\n", " \n", " return output_df" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Big Coal Emissions
Current Round:11408
Rounds 4 - Current:0
Expected Rounds 4-630678
\n", "
" ], "text/plain": [ " Big Coal Emissions\n", "Current Round: 11408\n", "Rounds 4 - Current: 0\n", "Expected Rounds 4-6 30678" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "total_emissions(YOUR_PORTFOLIO, period)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have the ability to estimate the amount of profit our plants will generate based on a given amount of demand! Again, this does not include considerations of credit or carbon emmissions, but it should give you a general sens of how your plants performed for this hour. Try going back to the start of the notebook and changing the hour you are examining, or add more cells to do a deeper analysis of your performance on your own to make better decisions for your team in the future." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Conclusion and Resources" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Congratulations! You have completed your Jupyter Notebook for the ESG. If you have questions, please do not hesitate to post them on the dedicated Piazza thread (https://piazza.com/class/jr2lknh4q311x1?cid=41)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Module Developers: Alec Kan, Alma Pineda, Aarish Irfan, Elaine Chien, and Octavian Sima.\n", "\n", "Data Science Modules: http://data.berkeley.edu/education/modules" ] } ], "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.7" } }, "nbformat": 4, "nbformat_minor": 2 }