{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Basic Agent Sudy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is recommended to have a look at the [0_basic_functionalities](0_basic_functionalities.ipynb), [1_Observation_Agents](1_Observation_Agents.ipynb), [2_Action_GridManipulation](3_TrainingAnAgent.ipynb) and [3_TrainingAnAgent](3_TrainingAnAgent.ipynb) notebooks before getting into this one." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Objectives**\n", "\n", "In this notebook we will expose how to study an Agent. For this notebook to be interested, we first use a dummy agent, and then we look at how to study its behaviour from the file saved.\n", "\n", "This notebook will also show you how to use the Graphical User Interface built for analyzing grid2Op agents called \"Grid2Viz\".\n", "\n", "It is more than recommended to know how to define an Agent and use a Runner before doing this tutotial!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluate the performance of a simple Agen" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "import sys\n", "import grid2op\n", "import copy\n", "import numpy as np\n", "import shutil\n", "import seaborn as sns\n", "import plotly.graph_objects as go\n", "\n", "from tqdm.notebook import tqdm\n", "from grid2op.Agent import PowerLineSwitch\n", "from grid2op.Reward import L2RPNReward\n", "from grid2op.Runner import Runner\n", "from grid2op.Chronics import GridStateFromFileWithForecasts, Multifolder\n", "path_agents = \"study_agent_getting_started\"\n", "max_iter = 30" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the next cell we evaluate the agent \"PowerLineSwitch\" and save the results of this evaluation in \"study_agent_getting_started\"" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/benjamin/Documents/grid2op_test/getting_started/grid2op/MakeEnv.py:686: UserWarning:\n", "\n", "Your are using only 2 chronics for this environment. More can be download by running, from a command line:\n", "python -m grid2op.download --name \"case14_realistic\" --path_save PATH\\WHERE\\YOU\\WANT\\TO\\DOWNLOAD\\DATA\n", "\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "702e251860eb4998b95644255246fbdc", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, description='episode', max=2.0, style=ProgressStyle(description_width=…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "be12d015a1be41418600a224376554bd", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, description='episode', max=30.0, style=ProgressStyle(description_width…" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "285e4c0316674a34986c400dd48cbd8b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, description='episode', max=30.0, style=ProgressStyle(description_width…" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "The results for the evaluated agent are:\n", "\tFor chronics with id 000\n", "\t\t - cumulative reward: 496.772954\n", "\t\t - number of time steps completed: 30 / 30\n", "\tFor chronics with id 001\n", "\t\t - cumulative reward: 515.620095\n", "\t\t - number of time steps completed: 30 / 30\n" ] } ], "source": [ "scoring_function = L2RPNReward\n", "env = grid2op.make(reward_class=L2RPNReward)\n", "# env.chronics_handler.set_max_iter(max_iter)\n", "shutil.rmtree(os.path.abspath(path_agents), ignore_errors=True)\n", "if not os.path.exists(path_agents):\n", " os.mkdir(path_agents)\n", "\n", "# make a runner for this agent\n", "path_agent = os.path.join(path_agents, \"PowerLineSwitch\")\n", "shutil.rmtree(os.path.abspath(path_agent), ignore_errors=True)\n", "\n", "runner = Runner(**env.get_params_for_runner(),\n", " agentClass=PowerLineSwitch\n", " )\n", "res = runner.run(path_save=path_agent, nb_episode=2, \n", " max_iter=max_iter,\n", " pbar=tqdm)\n", "print(\"The results for the evaluated agent are:\")\n", "for _, chron_id, cum_reward, nb_time_step, max_ts in res:\n", " msg_tmp = \"\\tFor chronics with id {}\\n\".format(chron_id)\n", " msg_tmp += \"\\t\\t - cumulative reward: {:.6f}\\n\".format(cum_reward)\n", " msg_tmp += \"\\t\\t - number of time steps completed: {:.0f} / {:.0f}\".format(nb_time_step, max_ts)\n", " print(msg_tmp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Looking at the results, understand the behaviour of the Agent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The content of the folder is the following:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['000',\n", " 'dict_env_modification_space.json',\n", " '001',\n", " 'dict_action_space.json',\n", " 'dict_observation_space.json']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "os.listdir(path_agent)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "000 dict_action_space.json\t dict_observation_space.json\r\n", "001 dict_env_modification_space.json\r\n" ] } ], "source": [ "!ls $path_agent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can load the data corresponding to episode 1 for example, we can load the actions and the observations and de-serialize them properly into proper objects. This is now automatically done with the class \"EpisodeData\" that can be used as follow:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from grid2op.EpisodeData import EpisodeData\n", "episode_studied = \"001\"\n", "this_episode = EpisodeData.from_disk(path_agent, episode_studied)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspect the actions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now we can start to study the given agent, for example, let's inspect its actions and wonder how many powerlines it has disconnected (for example, this is probably not the best thing to do here...)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "line_disc = 0\n", "line_reco = 0\n", "for act in this_episode.actions:\n", " dict_ = act.as_dict() # representation of an action as a dictionnary, see the documentation for more information\n", " if \"change_line_status\" in dict_:\n", " if \"set_bus_vect\" in dict_:\n", " line_reco += 1\n", " else:\n", " line_disc += 1\n", "line_disc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also wonder how many times this Agent acted on the powerline with id $14$, and inspect how many times it has change its status:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id_line_inspected = 13\n", "line_disconnected = 0\n", "for act in this_episode.actions:\n", " dict_ = act.effect_on(line_id=id_line_inspected) # which effect has this action action on the substation with given id\n", " # other objects are: load_id, gen_id, line_id or substation_id\n", " if dict_['change_line_status'] or dict_[\"set_line_status\"] != 0:\n", " line_disconnected += 1\n", "line_disconnected" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspect the modification of the environment" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, we might want to inspect the number of hazards and maintenance of a total scenario, to see how difficult it was." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nb_hazards = 0\n", "nb_maintenance = 0\n", "for act in this_episode.env_actions:\n", " dict_ = act.as_dict() # representation of an action as a dictionnary, see the documentation for more information\n", " if \"nb_hazards\" in dict_:\n", " nb_hazards += 1\n", " if \"nb_maintenance\" in dict_:\n", " nb_maintenance += 1\n", "nb_maintenance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspect the observations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, let's look at the value consumed by load 1. For this cell to work, it requires plotly for displaying the results." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ], "y": [ 87.4, 85.8, 87.1, 87.8, 86.9, 86.6, 85.2, 85.4, 83.4, 85.3, 82.7, 82.7, 83.3, 81.2, 82.2, 82.2, 81.3, 82.6, 82.4, 82.9, 81.6, 82.3, 82.5, 81.4, 83.1, 81.6, 81.5, 80.9, 80.9, 80.9, 80.8 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Consumption of load 1" }, "xaxis": { "title": { "text": "Time step" } }, "yaxis": { "title": { "text": "Load (MW)" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.graph_objects as go\n", "load_id = 1\n", "# extract the data\n", "val_load1 = np.zeros(len(this_episode.observations))\n", "for i, obs in enumerate(this_episode.observations):\n", " dict_ = obs.state_of(load_id=load_id) # which effect has this action action on the substation with id 1\n", " # other objects are: load_id, gen_id, line_id or substation_id\n", " # see the documentation for more information.\n", " val_load1[i] = dict_['p']\n", "\n", "# plot it\n", "fig = go.Figure(data=[go.Scatter(x=[i for i in range(len(val_load1))],\n", " y=val_load1)])\n", "fig.update_layout(title=\"Consumption of load {}\".format(load_id),\n", " xaxis_title=\"Time step\",\n", " yaxis_title=\"Load (MW)\")\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or the values of generator 3 (it's supposed to represent a solar energy source)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ], "y": [ 75.57900088523799, 70.84698172409249, 76.95658162146563, 71.31450725445501, 74.58030951364829, 73.71127151638619, 73.32105212149457, 74.34606591504476, 72.17799439761842, 72.58058205350451, 69.57158302582786, 69.16791721913629, 71.35700525823687, 66.82981126172206, 69.03187291339927, 68.57645047173364, 70.34136980048768, 69.51804864150623, 71.44571631742635, 71.57627376638486, 68.18572909119185, 67.83510574330373, 73.47824551057212, 69.13488613683349, 71.38350041811711, 69.9678993040545, 69.2187892648742, 68.79897928362018, 68.91580579918926, 70.41966607149955, 67.74209298382824 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Production of generator 4" }, "xaxis": { "title": { "text": "Time step" } }, "yaxis": { "title": { "text": "Production (MW)" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gen_id = 4\n", "# extract the data\n", "val_lgen3 = np.zeros(len(this_episode.observations))\n", "for i, obs in enumerate(this_episode.observations):\n", " dict_ = obs.state_of(gen_id=gen_id) # which effect has this action action on the substation with id 1\n", " # other objects are: load_id, gen_id, line_id or substation_id\n", " # see the documentation for more information.\n", " val_lgen3[i] = dict_['p']\n", "\n", "# plot it\n", "fig = go.Figure(data=[go.Scatter(x=[i for i in range(len(val_lgen3))],\n", " y=val_lgen3)])\n", "fig.update_layout(title=\"Production of generator {}\".format(gen_id),\n", " xaxis_title=\"Time step\",\n", " yaxis_title=\"Production (MW)\")\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the same fashion, we might want to get the flows on powerline connecting bus 3 to bus 4 (without knowing its id by using the appropriate method of the observation_space):" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ], "y": [ 138.4017424785358, 63.16057136732613, 66.07588682408385, 63.77981283702956, 67.49467359567859, 65.87722356479519, 63.963554721216035, 66.58081305309501, 63.66123498134033, 64.71082421420287, 60.87655713402235, 61.7520350034303, 65.4093811572164, 59.579091672245866, 62.48618052523357, 63.28826868255224, 63.651317164696685, 63.36323128442804, 64.97779743620029, 63.92928191826769, 60.64646261292145, 61.256597033662004, 65.11277357973503, 61.552977158869005, 64.09252768875488, 64.59538771679821, 63.22343793714577, 61.05243685567725, 61.63949510999398, 63.50414278684731, 62.4095555036831 ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Flow on powerline 6 (going from 3 to 4)" }, "xaxis": { "title": { "text": "Time step" } }, "yaxis": { "title": { "text": "Production (MW)" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from_ = 3\n", "to_ = 4\n", "found_ids = this_episode.observations.helper.get_lines_id(from_=from_, to_=to_)\n", "line_id = found_ids[0]\n", "\n", "# extract the data\n", "val_l3_4 = np.zeros(len(this_episode.observations))\n", "for i, obs in enumerate(this_episode.observations):\n", " dict_ = obs.state_of(line_id=line_id) # which effect has this action action on the substation with id 1\n", " # other objects are: load_id, gen_id, line_id or substation_id\n", " # see the documentation for more information.\n", " val_l3_4[i] = dict_[\"origin\"]['a']\n", "\n", "# plot it\n", "fig = go.Figure(data=[go.Scatter(x=[i for i in range(len(val_l3_4))],\n", " y=val_l3_4)])\n", "fig.update_layout(title=\"Flow on powerline {} (going from {} to {})\".format(line_id, from_, to_),\n", " xaxis_title=\"Time step\",\n", " yaxis_title=\"Production (MW)\")\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quick display of a grid using an observation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bellow you can find an example on how to plot a observation and the underlying powergrid. This is an example, the results doesn't look really great. It uses plotly and requires the layout of the grid (eg the coordinates of the substations) to be specified.\n", "\n", "Note also that this code is not optimized at all." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/benjamin/Documents/grid2op_test/getting_started/grid2op/Plot/Plotting.py:47: UserWarning:\n", "\n", "Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3UAAANOCAYAAAC2syVOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeXjU1d3//+eZLXuArJAEQlhFASONSKCgsqg3LpG6gNatWrWWn3azVrRWvVtr/da1iltvW+0mrVrF1qWCW6vgAoiiCBEIhEBYQkISkslkmfP7Y0KUigpkZj6ZyetxXblI5jNzznsiIK+c8zlvY61FREREREREYpPL6QJERERERETk0CnUiYiIiIiIxDCFOhERERERkRimUCciIiIiIhLDFOpERERERERimMfpAg5EVlaWHTx4sNNliIiIiIiIOGL58uU11trs/V2LiVA3ePBgli1b5nQZIiIiIiIijjDGbPqia9p+KSIiIiIiEsMU6kRERERERGKYQp2IiIiIiEgMU6gTERERERGJYQp1IiIiIiIiMUyhTkREREREJIYp1ImIiIiIiMQwhToREREREZEYplAnIiIiIiISwxTqREREREREYphCnYiIiIiISAxTqBMREREREYlhCnUiIiIiIiIxTKFOREREREQkhinUiYiIiIiIxDCFOhERERERkRimUCciIiIiIhLDFOpERERERERimEKdiIiIiIhIDFOoExERERERiWEKdSIiIiIiIjFMoU5ERERERCSGKdSJiIiIiIjEMIU6ERERERGRGKZQJyIiIiIiEsMU6kRERERERGKYQp2IfKk1a9ZQWlpKQkICt99++z7XLr74YnJychg9evQhvd4Yw3nnndf1dXt7O9nZ2ZxyyilYa8nKyqKurg6A6upqjDG88cYbXc/Pzs5m165d4XibIiIiIjFLoU5EvlRGRga/+c1vuPrqqz937aKLLuLFF1885NenpKTw4Ycf4vf7AVi0aBH5+flAKPBNmDCBpUuXArBkyRKOOuoolixZAsDatWvJzMwkMzOzW+9PREREJNYp1InIl8rJyeHoo4/G6/V+7tqUKVPIyMg45NcDzJw5k+eeew6Axx9/nHPOOafr2sSJE7tC3JIlS/jBD36wT8ibNGnSIb0nERERkXiiUCcijpozZw4LFiygpaWFDz74gGOOOabr2qRJk7pC3TvvvMOsWbPYvHkzEAp1EydOdKRmERERkZ5EoU5EHDV27Fg2btzI448/zsyZM/e5dvTRR/Pee+/R1NREW1sbqampDBkyhHXr1mmlTkRERKSTQp2IfM78+fMpLi6muLiYrVu3Rny+0047jauvvnqfrZcAycnJDB8+nN/97neMGzcOgAkTJvD888+zY8cORo4cGfHaRERERHo6j9MFiEjPM3fuXObOnRu1+S6++GL69u3LmDFjeO211/a5NnHiRO6++25uuukmAEpLSznvvPOYMGECxpio1SgiIiLSU2mlTkS+1LZt2ygoKODOO+/kF7/4BQUFBTQ0NABwzjnnUFpaytq1aykoKOCRRx4B4MEHH+TBBx/8ytfvVVBQwFVXXbXf+SdNmsSGDRsoLS0FYNy4cVRVVel+OhEREZFOxlrrdA1fqaSkxC5btszpMkSkGz766CMAjjjiCIcrEREREYk9xpjl1tqS/V3T9ksRiYr6+nqnSxARERGJS9p+KVH17rvv4vF4ePLJJ/d7/fHHH2fMmDGMHTuWk046iZqaGiDU5Do5OZnGxsau537/+9/HGENNTQ0/+MEPuPvuu7uunXjiiXz729/u+vpHP/oRd955Z4TelYiIiIiIcxTqJGo6Ojr4yU9+wgknnLDf6+3t7Xzve9/j1Vdf5YMPPmDs2LHcd999XdeHDRvGwoULAQgGg7zyyivk5+cD+/YzCwaD1NTUdG33A/U0ExEREZH4pVAnUXPvvfdyxhlnkJOTs9/r1lqstTQ1NWGtpaGhgby8vK7rc+bM4a9//SsAr732GpMmTcLjCe0gnjhxIkuXLgVC926NHj2atLQ06urqCAQCfPzxx11H4ouIiIiIxBOFOomKLVu28PTTT3PFFVd84XO8Xi8PPPAAY8aMIS8vj9WrV3PJJZd0XR8xYgQ7d+6krq6Oxx9/nDlz5nRdy8vLw+PxUFlZyZIlSygtLeWYY45h6dKlLFu2jDFjxuDz+SL6HkVEREREnKBQJ1Hx/e9/n9tuuw2X64t/y7W1tfHAAw/w3nvvsXXrVsaOHcutt966z3O+8Y1vsGDBAt5++20mT568z7WJEyeyZMmSrlBXWlra9fWkSZMi8r5ERERERJym0y8lYubPn89vf/tbIHTy4d6VtZqaGp5//nk8Hg+nn3561/NXrlwJwNChQwE4++yz+dWvfrXPmLNnz+ZrX/saF1544ecC4t776latWsXo0aMZOHAgd9xxB+np6XzrW9+K2PsUEREREXGSQp1EzNy5c5k7d+7nHr/ooos45ZRT9gl0APn5+axevZqdO3eSnZ3NokWLGDVq1D7PKSws5JZbbmH69OmfG3fixIncfvvtDBkyBLfbTUZGBrt37+ajjz7qCpciIiIiIvFGoU4cV1xczMqVK8nLy+PGG29kypQpeL1eCgsLefTRRz/3/Msvv3y/44wZM4aamhrOPffcfR7bs2cPWVlZkSpfRERERMRRxlrrdA1fqaSkxC5btszpMsQBwWCQ1tZWEhMTnS5Fumlvywm1lhARERE5eMaY5dbakv1d00Ep0qMtXbqUFStWOF2GiIiIiEiPpVAnPVr//v3ZtWsXDQ0NTpciIiIiItIjKdRJjzZo0CDcbjcVFRVOlyIiIiIi0iMp1EmP5vV6KSgooKqqitbWVqfLERERERHpcRTqpMcrKioiGAyyadMmp0sREREREelxFOqkx0tLSyM7O5uNGzcSDAadLkdEREREpEdRqJOYUFRUREtLC9u2bXO6FBERERGRHkWhTmJCTk4OycnJOjBFREREROS/KNRJTDDGUFRURG1tLfX19U6XIyIiIiLSYyjUScwYOHAgbrebDRs2OF2KiIiIiEiPoVAnMcPr9TJw4EC2bt1KIBBwuhwRERERkR5BoU5iitobiIiIiIjsS6FOYkpqaio5OTlqbyAiIiIi0kmhTmJOUVERgUCA6upqp0sREREREXGcQp3EnOzsbFJSUtTeQEREREQEhTqJQXvbG9TV1VFXV+d0OSIiIiIijlKok5g0cOBAPB6PVutEREREpNdTqJOY5PF4GDRoEFu3bqWlpcXpckREREREHKNQJzFr8ODBWGvV3kBEREREejWFOolZKSkp5Obmqr2BiIiIiPRqCnUS04qKimhtbWXr1q1OlyIiIiIi4giFOolp2dnZpKWlsWHDBqdLERERERFxhEKdxLyioiLq6+upra11uhQRERERkahTqJOYV1BQgNfrVXsDEREREemVFOok5rndbgYNGkR1dTV+v9/pckREREREokqhTuLC4MGDAdTeQERERER6HYU6iQvJycnk5uayadMmOjo6nC5HRERERCRqFOokbgwZMoTW1la2bNnidCkiIiIiIlGjUCdxIzMzk/T0dB2YIiIiIiK9ikKdxJWioiIaGhrYtWuX06WIiIiIiESFQp3Elfz8fHw+n5qRi4iIiEiv0e1QZ4xJNMa8Y4x53xjzkTHm5s7Hi4wxbxtj1hlj/mqM8XU+ntD59brO64O7W4PIXm63m8LCQrZv305zc7PT5YiIiIiIRFw4VuoCwFRr7ZFAMXCSMWYCcBtwl7V2GFAHXNL5/EuAus7H7+p8nkjYFBYWArBx40ZnCxERERERiYJuhzobsqfzS2/nhwWmAk92Pv4YcHrn52WdX9N5fZoxxnS3DpG9kpKSGDBgAJWVlWpvICIiIiJxLyz31Blj3MaYlcAOYBGwHthtrW3vfEoVkN/5eT6wGaDzej2QuZ8xLzPGLDPGLNu5c2c4ypRepKioiLa2NqqqqpwuRUREREQkosIS6qy1HdbaYqAAGA8cFoYxH7bWllhrS7Kzs7tdo/QuGRkZ9OnTR+0NRERERCTuhfX0S2vtbuBVoBToa4zxdF4qAPZ2hN4CDATovN4H0PnzEnZDhgyhsbERrfSKiIiISDwLx+mX2caYvp2fJwEzgI8JhbszO592IbCw8/NnO7+m8/or1lrb3TpE/lteXh4JCQlarRMRERGRuOb56qd8pQHAY8YYN6GQ+Ddr7T+NMauBBcaYXwDvAY90Pv8R4I/GmHVALTAnDDWIfI7L5aKwsJDy8nKamppISUlxuiQRERERkbDrdqiz1n4AHLWfxzcQur/uvx9vAc7q7rwiB6KwsJBPPvmEjRs3csQRRzhdjoiIiIhI2IX1njqRniYxMZG8vDwqKytpb2//6heIiIiIiMQYhTqJe0VFRbS3t6u9gYiIiIjEJYU6iXv9+vWjX79+bNiwAZ3JIyIiIiLxRqFOeoWioiKamprU3kBERERE4k44Tr8U6fEGDBhAYmIiFRUV5OTkfO56VVUVL7/8MpWVlfj9fpKSkhg0aBDTpk2joKDAgYrjQ0NDA6+99hoffvgha9euxePxsGLFCo499lhGjx6NMcbpEkVERERinlbqpFfY295gx44d7NmzB4Da2lrmzZvHYYcdRnFxMc899xytra2kpKTQ2trKc889R3FxMaNGjeK6666jrq7O4XcRG9rb23nooYeYNGkS+fn53HvvvTQ0NJCenk5CQgLvv/8+s2bNYsCAAVx44YV8/PHHTpcsIiIiEtO0Uie9xt72BuXl5bz22mvceuutnHHGGfzlL3+huLgYl+vzP+MIBoOsXLmShx9+mJEjR3Ldddfx3e9+F5/P58A76NmstTz33HP8+Mc/Ji8vjxtvvJHJkyeTlJS03+dXVFTwxBNPMGXKFM466yxuuumm/a6iioiIiMiXM7FwcERJSYldtmyZ02VIHHjppZe4/PLLOeyww7jjjjs4/PDDD/i1q1ev5sc//jFVVVU8//zz5OfnR7DS2NLa2soll1zC8uXLuf322/mf//mfA95auWvXLn7xi1/w5z//mSeeeIJjjz02wtWKiIiIxB5jzHJrbcn+rmn7pfQaH330EZdccgmnnXYaf//73w8q0AEcfvjh/POf/+Scc85h0qRJ2jbYqaGhgZNPPpnGxkaWL1/OzJkzD+peuczMTO666y4ef/xxzjrrLJ544okIVisiIiISf7T9UnqFvWHj9ttv5/zzzz/kcYwxXHvtteTl5XH88cfz/PPPM27cuDBWGlt2797N1KlTGT9+PPfddx8ez6H/lTJt2jReeuklTjnlFHbv3s2ll14axkpFRERE4pdCncS97du3M2vWLO6//37OOOOMsIx5wQUXkJyczKxZs3j33Xd75b1gwWCQ8847j9LSUu67776wnGRZXFzM66+/zqRJkxgxYoS2YoqIiIgcAG2/lLgWDAa54IILOP/888MW6PY688wz+eY3v8kFF1zQK5ua//rXv6a+vp677747rK0Jhg4dyh/+8AfOPfdcampqwjauiIiISLxSqJO49uCDD1JfX8/NN98ckfFvvvlmamtreeihhyIyfk+1atUqbr/9dv70pz/h9XrDPv4JJ5zAueeeyxVXXBH2sUVERETijU6/lLjV1NTE0KFDWbx4MaNHj47YPKtWrWLGjBmsX7+elJSUiM3Tk5SVlTFt2jSuuuqqiM0RCAQYPnw4TzzxBMccc0zE5hERERGJBTr9Unql+++/nylTpkQ00AGMGTOGr3/96zz44IMRnaenWLFiBcuWLeOyyy6L6DwJCQnMmzcvYqusIiIiIvFCK3USl/au0i1atIgxY8ZEfL4PPviAE088kfXr15OcnBzx+ZwUjVW6vQKBAMOGDeOpp55i/PjxEZ9PREREpKfSSp30On/84x+ZOHFiVAIdwNixYznmmGP405/+FJX5nPLJJ5/w9ttvR63dQEJCAtdccw233357VOYTERER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fv0YPnz4Ib3euD2dIW8ApmBYKORlF0DK3pC3HbZugMo12O2V2HqFPBEREYktCnUSl84//3weeughWltbozJfa2srDz30EOedd15U5nPKiSeeyKpVq/joo4+iNue9997L+eefH7bxjNuDSe2DyfrvkNcH2gJQuzfkre0MebuwrS0KeSIiItJjKdRJXJowYQIjRozoatAdab///e8ZNWoU48ePj8p8TklOTuZHP/oRP//5z6My39q1a/nXv/7F3LlzIzbHpyEvD1MwHAaO6Ax56Z0hbxtsWQ+V5djtm7ENoZAnIiIi0lOoT53ErTfffJPzzjuPtWvX4vP5IjZPa2srw4cPZ8GCBZSWlkZsnp5iz549DB06lFdeeYUjjjgionOdf/75jBw5kp/+9KcRnefL2Pa2UOsEf1OojUJ75+qvyxNqnZAU6pNnfNFvdi8iIiK9x5f1qdNKncStSZMmMWzYMB544IGIzjN//nwOO+ywXhHoAFJTU/nhD3/ItddeG9Etie+99x4vvviiI83OP8t4vJjUvpjsfMzA4VAwHLLyITkVAn7YVQ1b1mEr12J3VGEbarFtAUdrFhERkd5FK3US18rLy5k4cSL/+c9/GDVqVNjHX716NVOmTGHp0qWHfJBHLAoEAowfP57vfe97XHzxxWEf3+/3U1JSwrx583r8fYq2LRBawdu7ktfRFrrg9n5mJS8Z49VKnoiIiBy6L1up80S7GJFoGjFiBLfeeitnnnkmb731FmlpaWEbu7GxkTPPPJPbbrutVwU6gISEBP785z9z/PHH87WvfY0jjzwybGNba7niiis48sgj+eY3vxm2cSPFeBPAmxDqi0dnyNsb8FqaoKk+9LjHC4kpnR/JGG/ktgSLiIhI76KVOol71louu+wytmzZwpNPPklycnK3x2xqauLMM89k4MCBPPzww2GoMjYtWLCAa6+9lsWLFzNs2LBuj2et5X//93956qmnWLp0KSkpKWGo0lm2NRAKd3tX84LtoQse37735Hm8zhYqIiIiPZruqZNezRjD/PnzycrKYtq0adTU1HRrvJ07dzJt2jRyc3OZP39+mKqMTXPmzGHevHlMnjyZd999t1tjdXR0MHfuXJ5++mlefPHFuAh0AMaXgEnPwOQUYApHQv5QyOwPvkRoboSdW2BzObbqE2zNVuye+tDhLCIiIiIHSKFOegWf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FE899RTjx48nNTX1gufr2mooyHO0LAgJlYROiBZGkjohxHl17dqV6OhoysvLSUpKoqampt7xJ554goKCAr799luCg4OvON4tt9zCRx99xG233UZmZuYV308IIdoSrTXz58/Hy8uLhISEJikyddddd/Hmm28yffp0jh49eu64VeVQeAwMC4R0Q3l6X3FcIUTTkqROCHFBnTt3JiYmhsrKSpKSkqiurgbg008/JSEhgRUrVuDt3XQ/4CdMmMDixYuZOXNmgyRSCCHas7///e+kpqby7rvvNml7gunTp7NgwQJuvfVWbDZbvWO6vBhK8h0VLjuGojyavi2CEOLKSaEUIUSjFBYWsnHjRry8vOjVqxdxcXGsXr2amJiYJo+ltWbmzJn069ePl156qcnvL4QQrc2BAwcYO3Ys69atIyIiosnvb5omkyZN4rrrruN3v/vdqQqX+VBdIRUuhWghpPqlEKJJFBUVsXHjRt544w0GDBjA0qVLmy1Wfn4+V111FZs2baJv377NFkcIIVqD2267jcjISBYtWtRsMXJychgxYgTpu3bR1VtBbQ10CEJ1CGq2mEKIxrtQUifLL4UQjRYcHEx4eDg//vgjv/rVr5o1VqdOnZg/fz7PP/98s8YRQoiWbvfu3axbt46HH364WeP06NGDu355B5+9tcyR0AV2koROiFZCkjohxCVZtmwZDzzwAEOGDGn2WI888ggJCQkcPHiw2WMJIURLtWTJEh577DH8/Jq/4uRjv36Y7xLXcNJuQflceSEWIYRrSFInhGi0Y8eO8fHHH/P444+7JF5ISAgPPPAAL7/8skviCSFES5OZmcn333/P/PnzXRKvW59+dI+M4dVlb7oknhCiaUhSJ4RotNWrVzN58mQ6derkspjz5s3j008/xW63uyymEEK0FJ999hmzZs1qkvYFjTX3znmsXLmS1lB3QQjhIEmdEKLREhISmDZtmktj9u3bly5durBx40aXxhVCiJZg1apVLn/fHTlyJDU1NezZs8elcYUQl0+SOiFEo5SVlfHTTz9x4403ujz2tGnTWLVqlcvjCiGEOx07doz09HSuvfZal8ZVSjF16lR53xWiFZGkTgjRKN9//z0xMTEEBAS4PPbUqVP58ssvXR5XCCHc6ZtvvuH666/Hy8vL5bHlfVeI1kWSOiFEo+zevZtRo0a5Jfbw4cPJzMzE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iYiIiLQvJXUinUBlZSV79+4lISHB78oYNOdwgnr4OUERERERaR9K6kQ6gcNlDBISEnwbSBs7XN5g9+7dvg5FRERE5JSlpE7Exw4nPf369SM0NNTX4bSpyMhIevbsyc6dO1XeQERERKSdKKkT8bG8vDzq6upOiQVSmpKUlERVVRV79+71dSgiIiIipyQldSI+tnPnTm/B7lPR4ULqWjBFREREpH0oqRM5SYsQAxXPAAAPqklEQVQXL2b48OEMGzaM9PR0cnJyvG3vvvsuKSkpDBw4kPnz5zd5/O7duzn//PO5++67+elPf8rbb78NwOrVqzHG8MILL3j3zc7OxhjDE088QU5ODqmpqd62JUuWEBoaSl1dHQCbN29m+PDhrT6/b775htTUVO8rMjKSp556igMHDjB58mQGDRrE5MmTKSkpafL4gIAAUlNTGTlyJE888QSjRo0CYMKECcTHxx91O+bll19OREQEAFdccQVvvvmmty0lJYVHHnnE+/6qq65i6dKlrT4/ERERkVOFkjqRk5SUlMRHH33E5s2bmTNnDrfffjvgfkZu1qxZvPPOO3z99dcsWbKEr7/+utHxjzzyCNOnTycnJ4fXXnuNO+64w9t21lln8be//c37fsmSJYwYMQKAYcOGsXv3bsrKygDIyspiyJAhfP7559736enprT6/lJQUsrOzyc7OZtOmTYSFhXHFFVcwf/58Jk6cyLfffsvEiRObTVpDQ0O9x7/zzjuEhIR427p168aaNWsAOHjwIHv27PG2ZWRkkJWVBbhr94WHh7N27Vpv+9q1a9vk/EREREROFUrqRE5Seno60dHRAIwdO5a8vDwANmzYwMCBA0lOTiY4OJgZM2awbNmyRscbY7yFuUtLS4mJifG2JSQkUF1dTWFhIdZa3n33XS666CIAHA4HaWlprF+/HoBNmzYxa9YsbyKUlZVFRkZGm57rqlWrGDBgAAkJCSxbtoybbroJgJtuuumoWbUTNWPGDDIzMwFYunQpV155pbctPT39qHO57LLL2LdvH9ZanE4noaGh9O3btw3OSkREROTUoKROpA28+OKL3qQrPz+fuLg4b1tsbCz5+fmNjvnNb37DX/7yF2JjY7n44ot5+umnj2q/+uqree2118jKymLUqFF06dLF23Z4NquiogKHw8GECROOSoTaeiYrMzOTa6+9FoDCwkL69esHQN++fSksLGzymOrqatLS0hg7dmyjxG/ixIl8/PHHNDQ0kJmZyY9+9CNv2+jRo/nyyy+pra0lKyuLcePGkZKSwpYtW9rl3ERERET8nZI6kVb68MMPefHFF3n88cdbdNySJUu4+eabycvL4+233+aGG27A5XJ526dPn85rr73GkiVLvAnVYYdnszZs2MCYMWMYMGAA27dvZ9++fZSXlzNgwIA2OTeA2tpali9fzjXXXNOozRiDMabJ43bt2sXGjRv5v//7P372s5/x3XffedsCAgI499xzyczMpKqqisTERG9bly5dGDp0KJ999hnr1q3jnHPOYdy4cWRlZbXLLKSIiIiIv1NSJ9ICzzzzjHfhkIKCAr744gtmzpzJsmXL6NGjBwD9+/cnNzfXe0xeXh79+/dv1NeLL77I9OnTARg3bhzV1dUUFxd72/v27UtQUBArVqxg4sSJRx07duxYPv30U9asWcO4ceMA94xgZmam931beeeddxg1ahR9+vQB3KtZHn4Gbs+ePfTu3bvJ4w6fc3JyMhMmTPA+83fYjBkzuPvuu73/DY6UkZHBxx9/TFlZGdHR0YwdO9ab1GmmTkRERORoSupEWmDWrFnexT/q6+u58sorefXVVxk8eLB3nzFjxvDtt9/idDqpra0lMzOTqVOnNuorPj6eVatWAbBlyxaqq6vp1avXUfvMmzePxx9/nICAgKO2d+3albi4OF566SVvEjdu3DieeuqpNp/J+veZwqlTp/LKK68A8MorrzBt2rRGx5SUlFBTUwNAcXExa9as4cwzzzxqn/POO48HH3yw0SwkuGcin3vuOe/iMMOHD2fdunXs3r2bs846q83OTURERORUoKRO5CTNmzeP/fv3c8cdd5CamkpaWhoAgYGB/M///A9TpkxhyJAhTJ8+naFDhwLw0EMPsXz5cgCefPJJnn/+eUaMGMG1117Lyy+/3OhWxvT0dC6//PImx8/IyKCmpsb7/N64cePYsWNHm85kVVRUsGLFiqMWMnnggQdYsWIFgwYNYuXKlTzwwAMAbNy4kZkzZwLuJDUtLY0RI0Zw/vnn88ADDzRK6owxzJ49m549ezYaNz09nR07dngT1sDAQHr37k1aWhoOhz62RERERI5kjqwV1VmlpaXZjRs3+joMEREREb9xeAEt3bYucmowxmyy1qY11aavvEVERERERPxYoK8DEBEREZG2FxUV5esQRKSDaKZOREREpBM5ePAgV199NWeccQZDhgxh7dq1ZGdnM3bsWO8z3Bs2bGj2+EOHDhEbG8vChQu9z3QnJiZy3nnnHbVfamqqd/GpkSNHkp2dDUB9fT0RERH85S9/8e47evRoPvvss7Y+VRFpI0rqRERERDqRe+65hwsvvJCtW7eSk5PDkCFDuP/++5k7dy7Z2dnMmzeP+++/v9nj58yZw/jx4xttLysr85bc2bJly1FtGRkZ3mfwcnJyGDx4sPd9RUUF3333nXdFYhHpfJTUiYiIiHQSpaWlfPzxx9x6660ABAcH061bN4wxHDp0yLtPTExMk8dv2rSJwsJCLrjggkZt06dP569//SvQuFxNenq6N4nLysriJz/5iXfmbsOGDYwePbpReR0R6TyU1ImIiIh0Ek6nk169enHLLbcwcuRIZs6cSUVFBU899RT33XcfcXFxzJ49m8cee6zRsS6Xi3vvvZcnnniiyb6vuuoqli5dCsBbb73FZZdd5m07cqYuKyuL8ePH06VLF8rKysjKytIKmiKdnJI6ERERkU6ivr6ezz77jJ/+9Kd8/vnnhIeHM3/+fBYuXMiCBQvIzc1lwYIF3pm8I/3pT3/i4osvJjY2tsm+e/ToQXR0NJmZmQwZMoSwsDBvW0JCArW1tezdu5etW7eSkpLCmDFjWL9+PVlZWWRkZLTbOYtI62n1SxEREZFOIjY2ltjYWM455xwArr76aubPn88nn3zCH/7wBwCuueYaZs6c2ejYtWvX8q9//Ys//elPlJeXU1tbS0REBPPnz/fu86Mf/YhZs2bx8ssvNzo+PT2d1157jX79+mGMYezYsaxZs4YNGzYwbty49jlhEWkTSupEREREOom+ffsSFxfHN998Q0pKCqtWreLMM89kx44dfPTRR0yYMIEPPviAQYMGNTp28eLF3p9ffvllNm7ceFRCB3DFFVewZ88epkyZQkFBwVFt6enpPPXUU9x8880AjBs3jvvuu4++ffuqPIJIJ6ekTkRERKQTefrpp7nuuuuora0lOTmZl156iWnTpnHPPfdQX19PSEgIixYtAmDjxo08++yzvPDCCyfUd9euXfnlL3/ZZFtGRgY///nPvbNy/fr1o6GhQc/TifgBY631dQzHlZaWZjdu3OjrMERERERERHzCGLPJWpvWVJsWShEREREREfFjSupERERERET8mJI6ERERERERP6akTkRERERExI8pqRMREREREfFjSupERERERET8mJI6ERERERERP6akTkRERERExI8pqRMREREREfFjSupERERERET8mJI6ERERERERP6akTkRERERExI8pqRMREREREfFjSupERERERET8mJI6ERERERERP6akTkRERERExI8pqRMREREREfFjSupERERERET8mJI6ERERERERP6akTkRERERExI8pqRMREREREfFjSupERERERET8mJI6ERERERERP6akTkRERERExI8pqRMREREREfFjSupERERERET8mJI6ERERERERP2astb6O4biMMfuAXb6OQzqNnkCxr4MQQdeidB66FqUz0HUoncWpei0mWGt7NdXgF0mdyJGMMRuttWm+jkNE16J0FroWpTPQdSidxel4Ler2SxERERERET+mpE5ERERERMSPKakTf7TI1wGIeOhalM5C16J0BroOpbM47a5FPVMnIiIiIiLixzRTJyIiIiIi4seU1ImIiIiIiPgxJXXSqRljfm+M2WqM+cIY84YxptsRbQ8aY7YbY74xxkw5YvuFnm3bjTEP+CZyOZXpGpOOZIyJM8Z8aIz52hjzlTHmHs/27saYFcaYbz3/Rnu2G2PMHz3X5xfGmFG+PQM5lRhjAowxnxtj/uF5n2SMWe+53v5qjAn2bO/ieb/d057oy7jl1GKM6WaMed3zN+IWY8y40/0zUUmddHYrgLOstcOBbcCDAMaYM4EZwFDgQuBPnv/RBADPABcBZwLXevYVaRO6xsQH6oF7rbVnAmOBWZ5r7gFglbV2ELDK8x7c1+Ygz+t2YGHHhyynsHuALUe8fxxYYK0dCJQAt3q23wqUeLYv8Own0lb+ALxrrT0DGIH7mjytPxOV1EmnZq1931pb73m7Doj1/DwNyLTW1lhrncB24GzPa7u1doe1thbI9Owr0lZ0jUmHstbusdZ+5vm5DPcfL/1xX3eveHZ7Bbjc8/M04M/WbR3QzRjTr4PDllOQMSYWuAR4wfPeAD8EXvfs8u/X4eHr83Vgomd/kVYxxkQB44EXAay1tdbag5zmn4lK6sSf/Afwjufn/kDuEW15nm3NbRdpK7rGxGc8t7CNBNYDfay1ezxNe4E+np91jUp7eQq4H3B53vcADh7x5euR15r3OvS0l3r2F2mtJGAf8JLnVuAXjDHhnOafiUrqxOeMMSuNMV828Zp2xD7/hfsWpMW+i1RExHeMMRHA34GfWWsPHdlm3fWJVKNI2o0x5lKgyFq7ydexyGkvEBgFLLTWjgQq+P5WS+D0/EwM9HUAItbaScdqN8bcDFwKTLTfF1bMB+KO2C3Ws41jbBdpC8e69kTahTEmCHdCt9hau9SzudAY089au8dzK1GRZ7uuUWkPGcBUY8zFQAgQifu5pm7GmEDPbNyR19rh6zDPGBMIRAH7Oz5sOQXlAXnW2vWe96/jTupO689EzdRJp2aMuRD3rR5TrbWVRzQtB2Z4VtdKwv3w6wbgU2CQZzWuYNyLqSzv6LjllKZrTDqU5zmkF4Et1tr/PqJpOXCT5+ebgGVHbL/Rs+LbWKD0iFuSRE6KtfZBa22stTYR9+feB9ba64APgas9u/37dXj4+rzas/9pNXMi7cNauxfINcakeDZNBL7mNP9M1EyddHb/A3QBVnier15nrf2JtfYrY8zfcP8S1wOzrLUNAMaYO4H3gADgf621X/kmdDkVWWvrdY1JB8sAbgA2G2OyPdt+BcwH/maMuRXYBUz3tL0NXIx7AalK4JaODVdOM78EMo0xjwCf41m8wvPvq8aY7cAB3ImgSFu5C1js+XJ1B+7POQen8Wei0ZcmIiIiIiIi/ku3X4qIiIiIiPgxJXUiIiIiIiJ+TEmdiIiIiIiIH1NSJyIiIiIi4seU1ImIiIiIiPgxJXUiIiIiIiJ+TEmdiIiIiIiIH/v/tgUbAahLoH8AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from grid2op.Plot import Plotting\n", "obs = copy.deepcopy(this_episode.observations[-1])\n", "# and change the topology (just to have something to represent)\n", "obs.topo_vect[3:9] = [2,2,1,1,2,1]\n", "\n", "plot_helper = Plotting(observation_space=this_episode.observation_space, display_mod=\"matplotlib\")\n", "fig = plot_helper.plot_obs(obs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this plot, we can see that the \"action\" (that is implemented here only to demonstrate the plotting utility) has the following effect.\n", "\n", "After its application, the disconnected powerline, the load and the \"diagonal\" poweline going right are connected together on bus 1 (small node represented in orange).\n", "\n", "And the other elements: the power plants, the horizontal line and the diagonal powerline going up left are connecte together on bus 2. This is represented by the blue dot." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Synching Observation and Action" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As stated in the documentation, at row i, it's the observation at time \"i\" and the action at time \"i\". So at row i of the numpy matrices, we see what the agent saw when he took his actions. We have \"an agent view\".\n", "\n", "In case we want to see the impact of an Action, it is then necessary to:\n", "\n", "- look at action i\n", "- look at observation i+1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using the dedicated grid2viz framework\n", "\n", "Grid2viz is a package that has been developped to help you visualize the behaviour of your agent. \n", "\n", "It is available for now in a github repository [grid2viz](https://github.com/mjothy/grid2viz). In the few following cells we will demonstrate how to use it to inspect in more detail the log of the agents generated by the runner (second cell of this notebook).\n", "\n", "\n", "We will first run some other agents to show the full potential of grid2viz (optional). Then we emphasize a constraint on the use of grid2viz: the folder tree must respect a certain order. Then we show how to install it and finally how to launch it on the data generated by this notebook.\n", "\n", "![](https://raw.githubusercontent.com/mjothy/grid2viz/master/grid2viz/assets/screenshots/scenario_overview.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### More agents to compare\n", "\n", "This section is not mandatory, but it is better to show the full capabilities of grid2viz. We will first run 2 others agents: the do nothing agent, and the topology greedy agents." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The results for the DoNothingAgent agent are:\n", "\tFor chronics with id 000\n", "\t\t - cumulative reward: 482.929717\n", "\t\t - number of time steps completed: 30 / 30\n", "\tFor chronics with id 001\n", "\t\t - cumulative reward: 501.151587\n", "\t\t - number of time steps completed: 30 / 30\n" ] } ], "source": [ "# make a runner for this agent\n", "from grid2op.Agent import DoNothingAgent, TopologyGreedy\n", "\n", "for agentClass, agentName in zip([DoNothingAgent], # , TopologyGreedy\n", " [\"DoNothingAgent\"]): # , \"TopologyGreedy\"\n", " path_agent = os.path.join(path_agents, agentName)\n", " shutil.rmtree(os.path.abspath(path_agent), ignore_errors=True)\n", " runner = Runner(**env.get_params_for_runner(),\n", " agentClass=agentClass\n", " )\n", " res = runner.run(path_save=path_agent, nb_episode=2, \n", " max_iter=max_iter)\n", " print(\"The results for the {} agent are:\".format(agentName))\n", " for _, chron_id, cum_reward, nb_time_step, max_ts in res:\n", " msg_tmp = \"\\tFor chronics with id {}\\n\".format(chron_id)\n", " msg_tmp += \"\\t\\t - cumulative reward: {:.6f}\\n\".format(cum_reward)\n", " msg_tmp += \"\\t\\t - number of time steps completed: {:.0f} / {:.0f}\".format(nb_time_step, max_ts)\n", " print(msg_tmp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Caution" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Grid2Viz for now require a specific organization of the folders. You must:\n", "- use the runner to save the results of your experiment, using the \"path_save\" argument\n", "- the agent must be \"alone\" in this directory: you should save it to an empty directory\n", "- the path where the agent is stored must contain only folder of agents.\n", "\n", "These contraints give the following \"architecture\":\n", "\n", "+ regular directory\n", " + runner log\n", " + agent log 1\n", " - scenario log 1\n", " - scenario log 2\n", " ...\n", " - scenario log n\n", " + agent log 2\n", " - scenario log 1\n", " ...\n", " - scenario log p\n", " + agent log 3\n", " - scenario log 1\n", " ...\n", " + other folders\n", "+ other folders\n", "\n", "An example is given in the \"path_agents\" directory used in this notebook." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "study_agent_getting_started:\r\n", "DoNothingAgent\tPowerLineSwitch\r\n", "\r\n", "study_agent_getting_started/DoNothingAgent:\r\n", "000 dict_action_space.json\t dict_observation_space.json\r\n", "001 dict_env_modification_space.json\r\n", "\r\n", "study_agent_getting_started/DoNothingAgent/000:\r\n", "actions.npy\t\t\t episode_meta.json _parameters.json\r\n", "agent_exec_times.npy\t\t episode_times.json rewards.npy\r\n", "disc_lines_cascading_failure.npy observations.npy\r\n", "env_modifications.npy\t\t other_rewards.json\r\n", "\r\n", "study_agent_getting_started/DoNothingAgent/001:\r\n", "actions.npy\t\t\t episode_meta.json _parameters.json\r\n", "agent_exec_times.npy\t\t episode_times.json rewards.npy\r\n", "disc_lines_cascading_failure.npy observations.npy\r\n", "env_modifications.npy\t\t other_rewards.json\r\n", "\r\n", "study_agent_getting_started/PowerLineSwitch:\r\n", "000 dict_action_space.json\t dict_observation_space.json\r\n", "001 dict_env_modification_space.json\r\n", "\r\n", "study_agent_getting_started/PowerLineSwitch/000:\r\n", "actions.npy\t\t\t episode_meta.json _parameters.json\r\n", "agent_exec_times.npy\t\t episode_times.json rewards.npy\r\n", "disc_lines_cascading_failure.npy observations.npy\r\n", "env_modifications.npy\t\t other_rewards.json\r\n", "\r\n", "study_agent_getting_started/PowerLineSwitch/001:\r\n", "actions.npy\t\t\t episode_meta.json _parameters.json\r\n", "agent_exec_times.npy\t\t episode_times.json rewards.npy\r\n", "disc_lines_cascading_failure.npy observations.npy\r\n", "env_modifications.npy\t\t other_rewards.json\r\n" ] } ], "source": [ "!ls -R $path_agents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If the command \"tree\" is installed on your machine, you can uncomment the following cell to have a better layout." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# !tree $path_agents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Installation\n", "\n", "Grid2Viz is not yet on pypi, the python package repository. So you need a specific command to install it. It can be done super easily by running the cell bellow (more information can be found on the grid2iz github)." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "To install it, either uncomment the cell bellow, or type, in a command prompt:\n", "\t/usr/bin/python3.6 -m pip install git+https://github.com/mjothy/grid2viz.git --user --extra-index-url https://test.pypi.org/simple/\n" ] } ], "source": [ "import sys\n", "print(\"To install it, either uncomment the cell bellow, or type, in a command prompt:\\n{}\".format(\n", " (\"\\t{} -m pip install git+https://github.com/mjothy/grid2viz.git --user --extra-index-url https://test.pypi.org/simple/\".format(sys.executable))))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# !$sys.executable -m pip install git+https://github.com/mjothy/grid2viz --user --extra-index-url https://test.pypi.org/simple/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Usage" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the above package is installed, you can now start to study what your agent did (NB the agent must have been run with a runner and the \"path_save\" argument in order for grid2viz to work properly." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "You can start this server either by running the next cell, or by typing in a cmd:\n", "\t\t/usr/bin/python3.6 -m grid2viz.main --path /home/benjamin/Documents/grid2op_test/getting_started/study_agent_getting_started\n" ] } ], "source": [ "print(\"You can start this server either by running the next cell, or by typing in a cmd:\\n\"\\\n", " \"\\t\\t{} -m grid2viz.main --path {}\".format(sys.executable, os.path.abspath(path_agents)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For performance optimization, grid2viz uses a cache. This notebook being an example, it is recommended to clear the cache before starting the grid2viz app. Of course, if you study different generation of your agent, it is NOT recommended to clear the cache before any study." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "shutil.rmtree(os.path.join(os.path.abspath(path_agents), \"_cache\"), ignore_errors=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!$sys.executable -m grid2viz.main --path=$path_agents" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 2 }