From b707fb49cafc1db01a5cf6674192ef2e39f46200 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 26 Apr 2019 13:35:50 +0200 Subject: [PATCH 01/18] added the main tutorial --- tutorial/westeros/westeros_seasonality.ipynb | 616 +++++++++++++++++++ 1 file changed, 616 insertions(+) create mode 100644 tutorial/westeros/westeros_seasonality.ipynb diff --git a/tutorial/westeros/westeros_seasonality.ipynb b/tutorial/westeros/westeros_seasonality.ipynb new file mode 100644 index 000000000..964a98e9e --- /dev/null +++ b/tutorial/westeros/westeros_seasonality.ipynb @@ -0,0 +1,616 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# \"*Winter is coming!*\": A tutorial for adding sub-annual time steps to a MESSAGEix model\n", + "Seasonality or variations in demand and supply are common characteristics of an electricity system, and Westeros is not an exception. This tutorial helps to learn how to add the sub-annual time steps to a MESSAGEix model and investigate the impact of these sub-annual time steps on the results. This tutorial is structured as follows:\n", + "1. A short note on seasonality\n", + "2. Adding sub-annual time steps\n", + "3. Analyzing the results\n", + "\n", + "### Requirements for running this tutorial\n", + "- You have MESSAGEix framework installed and working\n", + "- You have run Westeros baseline scenario and solved it sucessfully" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Seasonal variations in demand and supply\n", + "The electricity demand can vary in different time scales, e.g., seasonally, monthly, daily, and hourly. In Westeros, the winter time is typically cold and long, which increases the demand for electricity and lighting. We investigate this seasonality in this tutorial, but the procedure discussed here can be adopted for studying different lengths of temporal resolution.\n", + "![image.png](attachment:image.png)" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArkAAAE7CAYAAADZzpn6AAAgAElEQVR4Ae2dC7wVVfm/38MdREFALqmIQoqimaiBpojXLAJNEwLSElC8IBV5qV9Bhl2pqJD+BgldFFQ0RQgrNEFEA0VEAUUFVMALCojcOQfY/8+zaB1nD/vss69zzt77u/gc9p6ZNevyrLVnvvOud60pi8ViMVMQAREQAREQAREQAREQgSIiUKeI6qKqiIAIiIAIiIAIiIAIiIAjIJGrjiACIiACIiACIiACIlB0BCRyi65JVSEREAEREAEREAEREAGJXPUBERABERABERABERCBoiMgkVt0TaoKiYAIiIAIiIAIiIAISOSqD4iACIiACIiACIiACBQdgbRF7uLFi+20005zf5dddpmtW7cuKRRWKPvDH/5Qec6MGTOSxs/1QfJ/5ZVX7KGHHopLmnJQj1TLs3nzZvvmN7/p/viukDmBqti/88479re//c127dqVeeJJzlyzZo3deuutduaZZ7q2/9a3vmVbt25Nckb2h6rqf9mnrBREQAREQAREQASSEUhb5AYTQzQgIJMFBOELL7yQLEpej7300ks2aNAge++99/KajxLPjgB96cYbb7TXX389u4SqOHvbtm3261//2ubNm2ef+9zn7JprrrELLrjAGjVqVMUZudmt/pcbjkpFBERABERABNIlUC/dE3x8xMGePXtswYIF1rNnT2vQoIE/FPf55ptvOuFC/HxZ6OIyDG3s27fPlTO0W5s1SKBPnz7GXzDs3bvX+MtX+PDDD42++PnPf97uuOMOa9KkSb6yiktX/S8OhzZEQAREQAREIDICGVtyTz31VOvWrZstXbrUNmzYkLDADNX+97//tWOOOca6d++eMI52ikCUBBo3bmx16mTc7aMsqvISAREQAREQARHIgkDGd/uDDz7Yunbt6qxjr776asIieFeFU045xQ4//PCEcbB0vfjii3G+kv3797epU6fazp07487BEte7d2+78847bdOmTfbHP/7RvvCFL1T6B3PO7t273TlYjX/4wx/atdde67b/+te/unjsC1uUV6xYUZk/Yvy6665zFmrKVlXYsmWLXX/99fbFL37R3njjjYTR5s+f7/KcPHmyIfirC/ik/vSnP7XzzjvPnYe1kzpS12AgrVWrVtnPfvYzZxH1PtJVcYMX3FavXm3P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SkCEZmvJDaat7yIgAiIgAiIgAsVFIGc+ucWFJf3a4MPJBC7eFuaHqtNPRWckI8CELiZ28bpnCdxkpHRMBERABERABEQgZ+4KpYiSiVsMX7MiARO4cAU4//zzK31bS5FJruvMqhK4QuATy4Qzhv81GSvXlJWeCIiACIiACBQfAYncLNqUyV033XRT5WoCTGJiQpdC7giwJB1+rj4MHTo0ry+e8PnoUwREQAREQAREoLAJSORm0X5+uS2sjJdffrnxhreqlsjKIpuSPpUJaawKgc/zVVdd5VZuwLKrIAIiIAIiIAIiIALJCGjiWTI6OiYCIiACIiACIiACIlCQBDTxrCCbTYUWAREQAREQAREQARFIRkAiNxkdHRMBERABERABERABEShIAhK5BdlsKrQIiIAIiIAIiIAIiEAyAhK5yejomAiIgAiIgAiIgAiIQEESkMgtyGZToUVABERABERABERABJIRkMhNRkfHREAEREAEREAEREAECpJAWuvkrlq1qiArqUKLgAiIgAiIgAiIgAiUBoGOHTu6isqSWxrtrVqKgAiIgAiIgAiIQEkRkMgtqeZWZUVABERABERABESgNAjojWel0c6qpQiIgAiIgAiIgAiUFAFZckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkZvjdl67dq3xV4xh586dVlFRUdBVow78FVsoxnoVY53od3v27HF9MBaLFU03LNa2ooGo265du4qmrXxFirHNirFOtNfevXt1zfAdN81Pidw0gVUXfcvHHxetyP3www+rq36tP077cMEothDbt88+/vjjoqoWN6zdu3cXVZ18ZT784AP/tSg++U1t2bKlKOoSrsSmjRvDu4pimzbbWmRttn37dqsoLy+K9glXoiivGRHcsyRywz1J2yIgAiIgAiIgAiIgAgVPQCK34JtQFRABERABERABERABEQgTkMgNE9G2CIiACIiACIiACIhAwROQyC34JlQFREAEREAEREAEREAEwgTyLnJfffVVwxlcQQREQAREQAREQAREQASiIlAvm4xYTmratGk2b948l8ytt95qHTt2dN8RtpMmTXLfBw8enE02OlcEREAEREAEREAEREAE0iKQlcidPXu2NW/e3CZMmGDr16+3mTNnWtu2be3999+3MWPGWJcuXQyBe9BBB6VVKEUWAREQAREQAREQAREQgWwIZCxysdSuWrXKevXq5fJv0aKFNW7c2ObOnWszZsywPn36VB7LpoA6VwREQAREQAREQAREQATSJZCxyCWjJk2aWNOmTV2e9evXd1ZdBG7QbSHdAim+CIiACIiACIiACIiACGRLIOcTz7Dger/cbAun80VABERABERABERABEQgEwJZWXITZdiqVatEu3O2D9/fiRMn2rp161yagwYNsm7dusWlP2vWLOcywc6wX3Bwslz4GPE5t3PnzhLqcUS1IQIiIAIiIAIiIAKFRSDnltx8Vh8f4FGjRtmAAQPcZLfRo0cbk9/Y78PChQvd9tixY10crMrTp083xC1h8eLF7nP8+PFOHAePIaB37dpl7du398npUwREQAREQAREQAREoAAJZGXJ3bFjhxOd4XpPnjy5clcia2nlwTS+IFIXLFjgJrR5d4g2bdpY165dbcWKFc7yymQ4RC6T4fyKDj179nRLma1Zs8bF2bBhg3Xq1MnwIcbqTPzy8nJXkvnz59tZZ53ljqVRNEUVAREQAREQAREQARGoZQQyFrmIyOHDh0dWHYToxo0brXv37nF5+tUd2Llt2zaLxWKVk+HYRzkRxYhbL47jEvjfBiK4UaNGhnBWOJDAf/9rtmRJE+vUqczOO8+sbt0D42iPCIiACIiACIiACNQWAhmL3Kgr4AUs+Y4bN86WL1/uihD0ySVOWVlZnMj15UTkErDerly50lmAvfBt0KCBLVmyxFlxfXx97icQi5n99Kdm771n1rBhfXv99Tr22GNmt91m1ratKImACIiACIiACIhA7SSQE5HLkH/QRYGqBsVnrqq+ZcsWNzHMv2DCT0Ij/fDks6ryxL0BkTts2LDKSWneistav1OmTHFvcEvFzeLll1+2zR99FJcVPr1NiujlF9OmmW3danb55WYffLDbWrQ4yJ57ro7de6/ZzTfHVV0bIiACIiACIiACIlBrCGQlcv1KBdSGiVz4uRL8fsRk3759K/dnW+tDDjnE+vXrV+lvi2vBRRdd5PxqTzzxxJSSp4wDBw50f5yAHy++vpdeemncpDQmtPFii6A7RDiDww47zPgLhrVr1lj5/ya5BfcX6vclS8w6dYov/fHHmz36aPw+bYmACIiACIiACIhAbSKQ1eoKfqWCsJBFSLKP4OPkq9LBJct4MQU+ubgthEMwXvDYsmXL3EQ0fHeDk9JYRmzz5s2VqzIEz/Hf27VrZ+E/0qlTJyusPvla8clzy5498UVBw9fL6vEoPj1tiYAIiIAIiIAIiECuCWSsxrDWYqllIpi34AYLxz6OEYe42QZcCRCqYQGLMG3ZsqXhV4vIxSc3GMe/fjiRyOUY5UvVCpxtHQrx/DPPNMP9efPm/aWnKZcuNWO/ggiIgAiIgAiIgAjUVgIZi1xWO9i5c2fCSV6+sohO4vgluvz+TD69aOZlDYhTAj65uBX4JcGwouKbG4yDywEiONHat0ErLukhhL0oZ1my5s2bJxTwmZS/UM+5+GKzU081+/vfzR5/vLHdf38da9bM7OqrC7VGKrcIiIAIiIAIiEApEMh40BnLaePGjZ3VtKplt7CoEoe4uQgsAYaP7IgRIyqTC09wQ+Ri3fVx/ASysLUZgbx06VLr379/ZVqJJqVVHizhLwjaiy7C9WS7HXtsYzvuuIyfjUqYoqouAiIgAiIgAiIQJYGMRS6iEQsqk7awkoZFJC4KHPNW1lxVCqE7YcKEpMkhhJNNGONkhPmQIUPi0qEOwUlpcQdLfOPww8327i23du1iJU5C1RcBERABERABESgEAlmZ5LB8EqZNmxbnd+tXV+CYj1MIMFRGERABERABERABERCB4iCQsSWX6nvLJ+vksu5sMITdCILH9F0EREAEREAEREAEREAE8kkgK5HrC4YfbKovY/Dn6FMEREAEREAEREAEREAE8kUgY3cFVji4++673QoH+Sqc0hUBERABERABERABERCBTAhkLHIzyUzniIAIiIAIiIAIiIAIiEAUBCRyo6CsPERABERABERABERABCIlkJVP7o4dO2zUqFFJC+zXqeVFDQoiIAIiIAIiIAIiIAIiEAWBrERukyZNbPTo0W7N2SgKqzxEQAREQAREQAREQAREIBUCcldIhZLiiIAIiIAIiIAIiIAIFBQBidyCai4VVgREQAREQAREQAREIBUCGbsr4GMbfi1uKhkqjgiIgAiIgAiIgAiIgAjkm4AsufkmrPRFQAREQAREQAREQAQiJ5C1yF21apWNGzfOeDmED7zmN7zPH9OnCIiACIiACIiACIiACOSbQFYiF4E7depU69evnwWXCOMVv7169bIRI0YYcRREQAREQAREQAREQAREIEoCGYvciooKW7BggQ0YMCDhEmIdO3a0QYMGuTjEVRABERABERABERABERCBqAhkLHLLy8tt586d1rRp0yrL2qFDBxeHuAoiIAIiIAIiIAIiIAIiEBWBjEUuBeSNZ9u2bYuqrMpHBERABERABERABERABFIikLHIxQcXl4QVK1ZUmdGiRYusXbt2cf66VUbWAREQAREQAREQAREQARHIEYGMRS759+zZ000smzVr1gHFYR+TzoijIAIiIAIiIAIiIAIiIAJREsj4ZfFua8kAACAASURBVBAUEmvu8OHDDUE7dOjQuHIz6YwVFhREQAREQAREQAREQAREIGoCWYlcX1jErAStp6FPERABERABERABERCBmiaQlbtCssLjqoB1Vy+FSEZJx0RABERABERABERABPJBICeW3GDBcF2YMWOG29WjRw/r27ev1a9fPxhF30VABERABERABERABEQgrwRyInJ5pe+kSZNs+fLlrrASt3ltMyUuAiIgAiIgAiIgAgVJYPVqs6eeqmcfbWpsp3/O7Oyz81eNrEQuLgljxoxxpUPYjh8/3tasWePecpa/ItfelNH4j85oblu3NrY6dcy6d6+9ZVXJREAEREAEREAERCBKAk8/bfbHP5p16FDHysrq2P33m73wgtm3v52fUmQscrHezpkzx0aPHp3wtb75KW7tTZVV1KZONWvZsr5VVOy1yZPNli0zGzKk9pZZJRMBERABERABERCBqAjcc4/ZOeeYHX74Xtu1s8IOamo2c6YZ4jcfFt2MRS7Lh/Xu3dsmTpxo69atM++iEBWo2pTP5s37Be7FF5tVlO+w7Tt22FFHmT3yiNnpp5udfHJtKq3KIgIiIAIiIAIiIALREsBNYe9es06dzHbu3J93gwZmRx5pxnvFapXIpXht2rSxkSNHWkVFhU2bNs2GDRvmSo3gLaWwahUWXJ5MzN56c3/NmzbFHG+2cqVEbin1BdVVBERABERABETgQAKNG5vt2mVWXh5/jO0mTeL35WorJ0uIsXrCwIEDbcKECcZLIObNm+cE75QpU5wAzlVha2s6NI5/KgmWkcakURVEQAREQAREQAREoJQJtGtndvzxZs89Z1ZRsZ8ERsLXXsvfHKaMRS4+uXfffbetX78+rs26devmxC6+uqtXr7a77rrLiFvMgUZr0cJs4UKzffvKXFVfecXsnXfMunUr5pqrbiIgAiIgAiIgAiKQGoEbbzQ3Mf++++rbww83doKXF+Z27Jja+enGytgnN5yRd1no1KmTIXS9K0M4XrFu33ST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v/8tPiIgAoVEQCK3kFpLZc2IQJMmZrt3x59aUWG2axc3sPj92hIBERAB3hh/6KHxHFq0MOO6sXlz/H5tiYAI1F4CGYtcVjLAp9Uv1VV7q6iSlTqBbt3MXn/dbOXK/SRYxvi558yOPdbsiCNKnY7qLwIiECbQsaPZu+/G73377f3Ct3nz+P3aEgERqL0EsvLJrb3VUslE4BMCxxxjNnSo2T33MFmyse3ZU98NRd544ydx9E0EREAEPIFevcwWLDB76imzg5rUs7376tiyZWbXXutj6FMERKAQCGQsclmHdtKkSbZ8+fKk9czn6gpJM9ZBEQgQ6NFj/0oKCxdss0NbNLHjjsu46wdS1VcREIFiJNCsmdmPf2w2c6bZ4hfqWrtPmd18M6+yL8baqk4iULwEMr7T464wfPjw4iWjmhUdAVZROProvXZQ01jR1U0VEgERyC0BfHKvusrs/PO2WMtWDaxRo4xvl7ktmFITARFImUDGPrkp56CIIiACIiACIiACIiACIhAxgaxFLm8GGzduXOVrdCn/woULD9gXcb2UnQiIgAiIgAiIgAiIQAkTyErkInCnTp1q/fr1M9wXfODVurxxjFfrEkdBBERABERABERABERABKIkkLHIraiosAULFtiAAQMSLiPWsWNHGzRokItDXAUREAEREAEREAEREAERiIpAxiK3vLzcdu7caU2bNq2yrB06dHBxiKsgAiIgAiIgAiIgAiIgAlERyFjkUsAdO3bYtm3boiqr8hEBERABERABERABERCBlAhkvCYKPri4JKxYscJ9Jspt0aJF1q5duzh/3UTxtE8EREAEREAEREAERCCewNNPm82YUcfefLOVHXtsmV1yiRlv8VRIjUBWltyePXu6iWWzZs06IDf2MemMOAoiIAIiIAIiIAIiIAKpE0DgTphg1qFDzC68YIe1axezcePMFi1KPY1Sj5mxJRdw/oUQCNqhvDc1EJh0xgoLCiIgAiIgAiIgAiIgAukRwH545plmxx5rtuHDfXZYa7O9e83++U+z005LL61SjZ2VyPXQELMStJ6GPkVABERABERABEQgOwLr15udemp8GocdZvbGG/H7tFU1gazcFapO1pyrAtbd8Isikp2jYyIgAiIgAiIgAiIgAmZHHGH27rvxJN57z+zII+P3aatqAjmx5AaTx3VhxowZblePHj2sb9++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IiACBU2AyRY1NYxa0OBU+KwI8GAZXG4RCyFDykHfw6wy0MkiIAJZE5C7QjUIuXAF3/YVXmmAC50fzgkP4ZM0xxnyCk8G4BhP/YkmdFRTJB0WAREI+OPhYxledkeARCDfBLw7Q3A4tTa7COWbh9IXgdpIQO4K1bQKIpXABc0LXvxe2A4OkzKrNixYvQBOdOHzaeE/w1tLgj5F1RRJh0VABERABERABERABKohIEtuNYAQsz54x24/MQELLc7+OFEzwxhndmbmIljxaWIJFiYiJFomiNmGjRo1qvGFw33d9CkCIiACIiACIiACxURAPrlptibC1r8Jhu8IWwICmP3sI+CewGzQ4DJj7sD/hllZy/Wzn/2s36VPERABERABERABERCBHBKQyE0DJu4J/LGWHe4GWGozCSwNde655xb00mKZ1FvniIAIiIAIiIAIiEBUBCRyUySNuGVNUtZYxT3BW25TPL0yGukQ/BqTlQf0RQREQAREQAREQAREIGcE5JObAkomkPEXXtAYVwXvnuAtu0xKSxZY7ojF4PnzgTe2aPKZp6FPERABERABERABEciegERuNQyxvCJwEy00j8jlGG/SYXUFBO8FF1yQNEV8df1yYlpCLCkqHRQBERABERABERCBjAlI5FaDDstr+FV1fq1cXA5YfcGvk8g6uVoKrBqgOiwCIiACIiACIiACERDQOrkRQFYWIiACIiACIiACIiAC0RLQxLNoeSs3ERABERABERABERCBCAhI5EYAWVmIgAiIgAiIgAiIgAhES0AiN1reyk0EREAEREAEREAERCACAhK5EUBWFiIgAiIgAiIgAiIgAtESkMiNlrdyEwEREAEREAEREAERiICARG4EkJWFCIiACIiACIiACIhAtAQkcqPlrdxEQAREQAREQAREQAQiICCRGwFkZSECIiACIiACIiACIhAtAYncaHkrNxEQAREQAREQAREQgQgISORGAFlZiIAIiIAIiIAIiIAIREtAIjda3spNBERABERABERABEQgAgISuRFAVhYiIAIiIAIiIAIiIALREpDIjZa3chMBERABERABERABEYiAgERuBJCVhQiIgAiIgAiIgAiIQLQEJHKj5a3cREAEREAEREAEREAEIiAgkRsBZGUhAiIgAiIgAiIgAiIQLQGJ3Gh5KzcREAEREAEREAEREIEICEjkRgBZWYiACIiACIiACIiACERLQCI3Wt7KTQREQAREQAREQAREIAICErkRQFYWIiACIiACIiACIiAC0RKQyI2Wt3ITAREQAREQAREQARGIgIBEbgSQlYUIiIAIiIAIiIAIiEC0BCRyo+Wt3ERABERABERABERABCIgIJEbAWRlIQIiIAIiIAIiIAIiEC0BidxoeSs3ERABERABERABERCBCAhI5EYAWVmIgAiIgAiIgAiIgAhES0AiN1reyk0EREAEREAEREAERCACAhK5EUBWFiIgAiIgAiIgAiIgAtESkMiNlrdyEwEREAEREAEREAERiICARG4EkJWFCIiACIiACIiACIhAtAQkcqPlrdxEQAREQAREQAREQAQiICCRGwFkZSECIiACIiACIiACIhAtAYncaHkrNxEQAREQAREQAREQgQgISORGAFlZiIAIiIAIiIAIiIAIREtAIjda3spNBERABERABERABEQgAgL10snjX//6l/3tb3+r9pSDDz7Y/u///s+OOuqoauNmE+Hll1+2X/ziF/a9733PPvOZz2STlM6tAQKTJ0+2V155xUaOHGnNmjXLeQlisZjNmzfPpkyZYtu2bbOuXbvaTTfdZA0bNsx5XjWZ4O7du23WrFnG75N6tmnTxi655BI7++yzrW7dupVFI97vf/97W7JkSeU+/+VTn/pUWu2wadMm+9WvfmX9+/c/4Le3Y8cOu/fee+3pp5+2xo0b24ABA+ycc86xsrIyn5358y+99FLr1q1b5X59EQEREAEREIFcEUhL5B5xxBF28cUXV+ZdXl5uCxYssBYtWtiJJ55Yub9BgwbWtGnTyu1kX9avX2//+c9/7Mtf/rIdcsghyaLqWJETqKiosOeee8727dvnBFq21V2zZo1NnTrVEHBf/OIXrVWrVkbfzGX4+OOP7YknnnBCjd9H1AHhOn78eCdcL7zwQjvhhBNs8eLFdvfdd9u6deucCPVCd+fOncbvrXPnztahQ4e4ovJ7TZXN+++/b3feeae9/fbbcWmwwYPFzJkz7c0337Sf//zn9s4779ikSZPcQ8wpp5xSGZ92PvTQQ+2zn/1s5T59EQEREAEREIFcEkhL5CJkg2KWG/yKFSvcTfOqq67KqFxYoLDm9erVK6PzdVLhEhg0aFBc4d999103UvCVr3wlbn+mG/TPrVu32nXXXWdBgZVpeonO++9//2uzZ8+20047LdHhvO9jNOPFF1+0r3/96/aFL3zBWUupK9ZqLKlYc/2IiueBlbdHjx5pl23Xrl1O0E+fPt2w1iYK8EZkn3vuuYbox6rMgzDl9G3w4YcfugdbLLzFZlVPxET7REAEREAEaoaAfHJrhrtyjZCAt2RGmGVkWWGtPvzww53I9u4A1BdBieBE2PqAiwCW39atW/tdaX1iFeevSZMmbuQl0clYcvfu3eus5xyvX7++4b60ceNGY+SH488++6y1b98+7oE5UVraJwIiIAIiIALZEEjLkptORgw9z58/32bMmOGGSLHYMDTZt29fa9eunbvZBv0Dr7/+ervgggsM6x43QqxBjz76qK1du9bF5caK322/fv2cdSjVsnCTv+OOO+z44493+eMryJAtQ6WUBUvXM888Yw8++KBt2LDBpT148OC4GzA3baxilIdzqUv37t3d+aTjg68zvpFYJTkPF4wzzzzT8D307hgcf+SRR+xb3/qWq+fcuXMNK9nRRx/tLHLHHntsnP+iTz/4+d5779m0adPcMDXCBYtZnz597KyzznLCgrjEoV5Yyrds2eL8MxmmvuyyyxwLRFGYz1//+lfHgaF94oX9OlNJk7w9i6ranzhBn1yGvvGvJuD3DZ+rr77a/vznPzt/Tnw/vYgjzurVq+1nP/uZ49WzZ093nv8v7HtKukE/8VzVgfLjqkD4/ve/75jSpvQP2pNRiieffNI++ugjJwyxnvbu3dv1Pc7BuvmHP/zBhg4d6ob433jjDTv55JPtxhtvdL7EcGCEJOgi5OvoPy+//HLjLxzofwjMoAsC9aYPNm/ePBw9pe1GjRrZwIED7fzzz7fXX3/d/vGPfxxwHm2EyCZ/fq/0A8R2y5YtXVkoA37SQ4YMqeynBySiHSIgAiIgAiKQAwJ1b7/99tszTQcxwQ3rsMMOqxyKJC18/+666y53kz/uuOOcGERcMbQ7Z84c69ixo7MmIcwQAFh4EDTc4BGNCIeJEyfakUce6SbQIBLr1Knjhj0RAp/73OfcDRPBiZBG2JFWouDLiI/g8uXLDb9FxAa+gpR95cqVTmgiPhDhy5Ytc8O/fEcYIVSZuPTAAw84i9nXvvY1O+aYY5zofeGFF9xkJibXEO/++++3hx56yN3cGRJmCHv79u3OcoUVDesaAoA8mfyDkKfuiJRPf/rT9tJLL7m4iINkQuStt95yghBRjng+77zzbPPmzfbYY4+5B4IuXbq4+iECGVbGH/Wiiy6ytm3bOgaIenw3ER5BPpTp85//vItPeog0jpMe/HngSCVNWGDxg0W4/XlYoH5MNGOYnaFrJiWxTXlee+011z7UCybkiQA+/fTT44a2aXc44NpAOwUDQov+QHqvvvqq48tQPv0Jf9Jc1cG7ASDcGHo/44wznN8v7MaMGeP6K/soI/XjYQZfVFx+EJv0X3jQ52BMGSk39V61apXrD/wmOnXqFKxe0u+ISvKgL9LGpFmvXj334Eh/pz/gf4tPLSIajohX2NDGycJJJ51kPICRXlW/PUQ1fX3hwoXOjQkxjDsHvy/qhr8u+dMfq8svWVl0TAREQAREQASqI5AXSy437UWLFsX5CVIQrJ/c/LHSjRgxwt0wEcgIHS98uAkjtk499VS74YYbKq09CFuEwVNPPeUsjQcddFB1dTvg+Le//W1nLeUAN1zEDkKR1RkQRAQ+mTWOGMLijOhiYhziGKuaH/pGlBAPIYfllxs7ggpBGbQ6Um4mBiGyqZtfRQAxggUymCaW3F/+8pcuHS+gwpXgPPghJljBAn4EBPU999zjyktZYIglD85MvCKwugAWbfLAEopg8QGxPXz48MqHFdJDBCHMeMhA2Keapmd2xRVXOOuyt8AiurDeI+YRVcGAqKdslBlfTsQdgX7AAw/8/D44IpARi7RjONBG1A1rKgHRSP8i0JapcEmlDkyWpKykR9l9m/EQgRsB/Y3yE+BJ/8eqzMMDfYZAe1I+LKSk4wPW22QWXB8v+MnDIdZlAn2JB0fv88rDCn2dB4N//vOfTnRy7PHHH3d8KS9l8P07mG4632lrRhSw3mLd5gGQdOFPHs8//7yzVGebTzplUlwREAEREIHSJJBzkYsVD4HLcDc3di9wwIuA5EaPNQdLaiILFW4Jt9xyywGtQTqs4pBp4KaPaPUBcUh6CIxgunzH0oSlisBNmRtyeNgeQUP9EGxYo0nvpz/9qU++8hPhgrClvuGAtTh4sydvb+ELx/Xb+DYiUBGeXuByjHS++c1v+mhOxGA9CwceDrDchQMiJDip0NcZSyP5IXJJL5U0YUI9WBoq2P60we9+97tw1km3EcYIWazelJH0EEuIXh4ogvySJvS/g/mugxfgjFYgfIMBP1TaHPcR+owPXtz77Uw/4ctDDZZvxDyDNN/97ned+EZMI/p50MEdAvFJ4PfIwwzx6c/wzjaQNu4I/PnAdeHf//63qz/l5PfFqguwoB+HXYT8efoUAREQAREQgUwJ5Fzk7tmzx1lxsB6Gh5EpJDd/braIgWQBv1yGfRmuZjh46dKlbiWHdEWNz4Oh0aDgSrbfx8P6hZWZmzZlwK81GLhxUw9cEhD1BPZhSUXUIsbwu2To2VuKg+eH60I+WNdIo6pAmbC6Bn2Bq4rLflxHYEg9sDTDEStbOCDEg5ZEjiP2EcXUIxiqS5Pj1MMLqeC56X6HG+Kb0QEEPtsIXnjzgJJpyFcdEJP0E8QiD2zBQHsj8LCI02d8SGSN9sfS+eS3RUCsImaxGj/88MM2bNgw91tM5JlEmXiA42GGh5NciNxEZeahhP6HdZtrBL7f9Lff/va37kHyT3/6kxtRCT6IJkpH+0RABERABEQgVQI5F7nVZZxMwHEu4hYh9sc//tGJXPZhFcTqi38n/qxRBtZsxeqGj3FVgclblBt/Y3xRvYDHMotbA8IUURVlQBBOmDDBiUPyRXTiIoDVMJHITVY2L8ZzmWay/ILHeODAIow/KUIJNw18q/Fv9q4fwfjVfa+JOgTLRH8KB883vD+bbdwoEKw84NAfYYUAJ4QfZtjmL199lHxxkcBqjDWbB0DW8MUdCSsufuBM0KNdJXKzaXWdKwIiIAIiECSQc5HLpBQsuPg0IqYQV8GATyDD5WErl4+DLywL2eMO8KMf/chNUPOWVVYliFLkUnasbNx4eStXsslgWKnwieWGjS8qwtyX268i4OuYzSdlQugFh7t9ekz2YfUILHdM9kFM4G8cHA5nKBt/1nCgrRAjQQGEJR2rJEtUcQwBn0qaWHC9sA8KUcQWljt44oucakAYIdpwg6F/MXP/yiuvrOSbajpR1AF+tD0ijvoG+zkPePCHDxby4PJeqdYhGA/GrD4Bj1tvvdVZ3v1xxDT1RUDTD7GEY9llgtyXvvQlH819YlVmdMX7bscdzMEGv1l+91/96lddWehXlM1b+rkesKwZFl4FERABERABEcgVgeTTqTPIhZsqw6VMckGUYOH0ASsaC8MjWLzFhvjE8fEYVudcZnIjML1QRDAwzMvNOF8WJ1/O4CfWMMqEgPRl5Dhl+PWvf2233XabO454QXQw0Qhh58vNuQh+L/qCaWfyneF6PwkMnj5QHiaJIbAQUJQHyy0TsLxwpfyIHQRtWCTjG4kw8wFBxmoYuCzAAP6ppskEMcQx7RVkxoMAs+0pP2I1HOgLuJWErZ2UgQl8cMTih1XfT/IKp5FsOx91oB7BOiJqsTLjokJ9gwG3D5jgZhEU/8E46XzngYcHENoFNsFAe2IZxYWB/sDKGvyecEvAncYH+g2rcsDYT87zx3LxSb/HB58VTSgDgYfFoOWYMuCjm6hP5KIMSkMEREAERKA0CRyoNHLAAR9KhC5WRW60LPGFcGVWOf6kTHzhxkvgxssxZoZzk+VGiABmTVpECYKIYWpWVcDyhQWINKIK+Dayfi9WWgQideGmzEQdyoVFEf9QxCQCB19DrNEMw/I2OIbZudFjreIz24A4YEkqVnbAusyb4hANzJJHWF177bWOH+Uhbyb30BZeBFNmhCTbwYDwxdLHxCzKjiUY4UT9aA+EZ6pp4lbCWqrB9mfyGsxoT7/iQDB/vjMCQL9AXCPmScdbz3H7oE+wbBurV3grYDiNZNsIuVzXAQvktm3bXN0Q4pQZaz7LeDHJjhU0EP0sfUf96SOsyuAfPKoqL6MWTAjD4p1slQX8aZkcyQoeLMuFgEbg0vb8lrCe8vBAH+U7K1WwqgjWXPoBZcLKSj7+wRM/cvqCX7e6qjKmsp+y8DAGE//gR//iQRfxi0sP7Y0VlzZWEAEREAEREIFcEciLyEWAIGT9yyBYNgqrEzPL/csgfAXw02PCC68K5YZ48803u8kpiEpEDVYybr68BIKbNkuQYbnKh9XJlyn4iUBAVGEVxeLF+qLcrFn39zvf+Y6b4MM2E4qYVMOQPuvqsg8rGhyow9ixY+2DDz7IyAIZLA/fyfuHP/yhexkES5gh/BnSx6qMUCBvXvOKoMK6y5JWWHixpuEH+Ze//MVNpAsKXYQYQoQXTGDpI71g/eCQapq0v2fGyyBof8qC4OMFE3xPFCgjIht+nMOLFfDHJcCfujH0XZVITpRmcF8+6oCoZJ1i/LERh7QLgvIHP/iBe6jD8uzFbfhlEMGyZfqdhwCWkuO3woMOwhGOLHnHWs08XPnAbw1Red999zk3B/bTRykz4p9+k8uAGwQvjOAVvzDxgWsBqynglsRqEPy+6ZdeZPt4+hQBERABERCBbAiUxYJjrdmkpHMLkoB/4xkWSf+2rtpYEYQ81koCPsfVWUJrYx1UJhEQAREQAREQgegI5NwnN7qiK6dSIoD1Hh/X4GuLS6n+qqsIiIAIiIAIiEB6BPLirpBeERRbBKomwHA/PqNMYsRlIV/ruFZdAh0RAREQAREQAREoRAKy5BZiq5VYmRG6vPyCN7r5CYslhkDVFQEREAEREAERSJOAfHLTBKboIiACIiACIiACIiACtZ+ALLm1v41UQhEQAREQAREQAREQgTQJSOSmCUzRRUAEREAEREAEREAEaj8Bidza30YqoQiIgAiIgAiIgAiIQJoEJHLTBKboIiACIiACIiACIiACtZ+ARG7tbyOVUAREQAREQAREQAREIE0CErlpAlN0ERABERABERABERCB2k/g/wPEdoQhp07HIwAAAABJRU5ErkJggg==" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Seasonality can be relevant to some supply technologies as well. For example, Westeros has more windy days in winter months compared to summer. This means the capacity factor of a wind power plant is higher in winter compared to summer. Figure below, rendered from renewables.ninja*, shows the monthly capacity factor of wind power plant somewhere near Westeros. \n", + "\n", + "\n", + " *You can also find the capacity factor of wind and solar PV for your location at www.renewables.ninja, as we found for a place near Westeros." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Implementation of seasonality\n", + "In this tutorial we add two sub-annual time steps, winter and summer. First, we load the baseline scenario, then we add the required sets related to seasonality, next we modify the parameters, and finally we analyze the results.\n", + "\n", + "### 2.1. Loading Westeros baseline scenario " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Importing required packages\n", + "import pandas as pd\n", + "import ixmp as ix\n", + "import message_ix\n", + "\n", + "from message_ix.utils import make_df\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Loading modelling platform\n", + "mp = ix.Platform(dbtype='HSQLDB')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Specifying model/scenario to be loaded from the database\n", + "model = 'Westeros Electrified'\n", + "scenario='baseline'\n", + "base = message_ix.Scenario(mp, model, scenario)\n", + "\n", + "# Cloning a scenario for adding time steps\n", + "scen = base.clone(model, 'westeros_seasonal','introducing seasonality', keep_solution=False)\n", + "scen.check_out()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.2 Modifying sets\n", + "First, we specify subannual time steps and add them to relevant MESSAGE sets. In the MESSAGEix framework set \"time\" is devoted for sub-annual time steps, denoted as index *h* in the mathematical formulation:\n", + "\n", + "| Set name | Math notation | Explanation |\n", + "|----------|---------------|----------------------------------------------|\n", + "| time | $h \\in H$ | subannual time periods |" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Adding sub-annual time steps\n", + "time_steps = ['winter', 'summer']\n", + "scen.add_set('time', time_steps)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We can see the elements of the set\n", + "scen.set('time')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Defining a new temporal level\n", + "scen.check_out()\n", + "time_level = 'season'\n", + "scen.add_set('lvl_temporal', time_level)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, the temporal hierarchy will be defined to map different levels of time with respect to \"year\", which is the parent temporal level for any \"time\". " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Adding temporal hierarchy\n", + "for t in time_steps:\n", + " scen.add_set('map_temporal_hierarchy', [time_level, t, 'year'])\n", + " \n", + "# We can see the content of the set\n", + "scen.set('map_temporal_hierarchy')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.3. Modifying parameters\n", + "In this Section, we modify some parameters based on the new time steps. In principle, we need to examine all parameters that have an index of \"time\" to see if we need to modify them or not." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# All parameters with at least one sub-annual time index\n", + "parameters = [p for p in scen.par_list() if 'time' in scen.idx_sets(p)]\n", + "\n", + "# Those parameters with \"time\" index that are not empty in our model\n", + "[p for p in parameters if not scen.par(p).empty]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Parameter \"duration_time\"\n", + "We start by modifying the parameter \"duration_time\", which shows the length of each subannual time step relative to the whole year:\n", + "\n", + "| Parameter | Index set| Explanation|\n", + "|-----------|----------| -----------|\n", + "| duration_time\t| time\t|duration of sub-annual time slices (relative to 1)| \n", + "\n", + "In our example, winter and summer are each half of the year." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Adding duration time\n", + "for t in time_steps:\n", + " scen.add_par('duration_time', [t], 0.5, '-')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### A function for modifying parameters\n", + "In this stage, we introduce a function that helps us to modify the parameters after adding new time steps. This function called \"yearly_to_season\" does the following:\n", + "- removing old values, where the \"time\" index was \"year\"\n", + "- populating data for new \"time\" indexes\n", + "- using the ratios defined by the user to convert yearly values to seasonal ones" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# A function for adding sub-annual data to a parameter\n", + "def yearly_to_season(scen, parameter, data, filters=None):\n", + " if filters:\n", + " old = scen.par(parameter, filters)\n", + " else:\n", + " old = scen.par(parameter)\n", + " scen.remove_par(parameter, old)\n", + " \n", + " # Finding \"time\" related indexes\n", + " time_idx = [x for x in scen.idx_names(parameter) if 'time' in x]\n", + " for h in data.keys():\n", + " new = old.copy()\n", + " for time in time_idx:\n", + " new[time] = h\n", + " new['value'] = data[h] * old['value']\n", + " scen.add_par(parameter, new)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Modifying electricity demand in sub-annual time steps\n", + "The seasonality in demand for electricity and lighting can be taken into account by estimating different values for each time step. For example, the share of electricity demand in winter and summer in Westeros is approximately 0.6 and 0.4 of the yearly demand. We can get the yearly demand from baseline scenario and divide it to the two seasons according to their shares." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Before modifying, let's look at \"demand\" in baseline\n", + "scen.par('demand')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Modifying demand for each season\n", + "demand_data = {'winter': 0.60, 'summer': 0.40}\n", + "yearly_to_season(scen, 'demand', demand_data)\n", + "\n", + "# let's look at \"demand\" now\n", + "scen.par('demand')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Modifying \"input\" and \"output\"\n", + "However, not all parameters that have subannual time steps need to divide their values for each time step. For example, \"output\" parameter shows the output efficiency, commodities and level of a technology. Hence, as far as the efficiency of a technology remains unchanged in different seasons, the value of \"output\" remains fixed. As such, we only need to add the sub-annual time steps but with the same value as for the yearly one." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Modifying input and output parameters for each season\n", + "# output\n", + "fixed_data = {'winter': 1, 'summer': 1}\n", + "yearly_to_season(scen, 'output', fixed_data)\n", + "\n", + "# input\n", + "yearly_to_season(scen, 'input', fixed_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Modifying dynamic constraints\n", + "Next, we modify dynamic constraints with a \"time\" index, i.e. growth and decline rates of activities. In the Westeros baseline scenario, there is only growth_activity_up, so this parameter will be modified for seasonality but with the same values. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Modifying growth rates for each season\n", + "yearly_to_season(scen, 'growth_activity_up', fixed_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Modifying capacity factor\n", + "We discussed about the variation in the capacity factor of wind power in each month. By averaging the values for the respective months, we reach a capacity factor of 0.46 for winter and 0.25 for summer in Westeros. For simplicity, the capacity factor of wind was 1 in the baseline scenario.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Modifying capacity factor\n", + "# Retrieving average yearly capacity factor of wind in the model\n", + "cf_wind = scen.par('capacity_factor', {'technology':'wind_ppl'})['value'].mean()\n", + "\n", + "# Passing seasonal capacity factors as shares of the yearly value\n", + "cf_data = {'winter': 0.46/cf_wind, 'summer': 0.25/cf_wind} \n", + "cf_filters = {'technology': 'wind_ppl'}\n", + "yearly_to_season(scen, 'capacity_factor', cf_data, cf_filters)\n", + "\n", + "# Capacity factor of other technologies remains unchanged in each season\n", + "cf_filters = {'technology': ['coal_ppl', 'bulb', 'grid']}\n", + "yearly_to_season(scen, 'capacity_factor', fixed_data, cf_filters)\n", + "\n", + "# Let's look at capacity factor in year 710\n", + "scen.par('capacity_factor', {'year_act':710, 'year_vtg':710})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Modifying historical activity\n", + "\"historical_activity\" is one of the parameters that the data should be divided between the seasons. In the absence of recorded data in Westeros before 690, we assume historical values can be divided by half for each season:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Modifying historical activity \n", + "hist_data = {'winter': 0.5, 'summer': 0.5}\n", + "yearly_to_season(scen, 'historical_activity', hist_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Economic parameters\n", + "Investment cost is defined per installed capacity per year and it is not related to subannual time steps, so it remains unchanged. Variable cost is time-dependent so the \"time\" index should be updated. However, as variable cost is defined per unit of activity, the \"value\" can remain unchanged for different time steps." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Modifying variable cost\n", + "yearly_to_season(scen, 'var_cost', fixed_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.4. Solving the model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "scen.commit(comment='introducing seasonality')\n", + "scen.set_as_default()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "scen.solve()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "scen.var('OBJ')['lvl']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Postprocessing and analyzing results\n", + "### 3.1. Plotting results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from tools import Plots\n", + "p = Plots(scen, country='Westeros', firstyear=700)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Activity\n", + "\n", + "How much energy is generated in each time period from the different potential sources?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "p.plot_activity(baseyear=True, subset=['coal_ppl', 'wind_ppl'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Installed capacity\n", + "\n", + "Given how many new plants are built, how many are actually used?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "p.plot_capacity(baseyear=True, subset=['coal_ppl', 'wind_ppl'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Electricity Price\n", + "\n", + "Electricity prices are **dual variables** of the optimization solution called **shadow prices** as well. They reflect the marginal cost of producing one more unit of electricity, hence, representing the marginal cost of the most expensive generator in the system. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "p.plot_prices(subset=['light'], baseyear=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3.2. Questions and discussion\n", + "1. Compare the objective value of this scenario with the baseline; which power system is more costly? Given the fact that electricity demand and the cost of technologies are equal between these two scenarios, how do you justify the change in the total costs?\n", + "\n", + "2. Compare the figure for \"Activity\" between this scenario and the baseline; do you observe any changes in the energy mix? The results show more wind integration in this scenario. What is the reason?\n", + " \n", + "3. If you check out the figure for \"Capacity\" in both scenarios, you'll notice that the increase in the installed capacity of wind is much higher than the growth in wind generation. Can you explain the reason?\n", + "\n", + "4. Rerun this tutorial for a scenario with 4 sub-annual time steps: winter, spring, summer and autumn (each one-forth of the whole year)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### *Discussion*: \n", + "The greater avilability of wind in wintertime coincides with the higher demand for electricity in winter compared to summer. Hence, when coal power plants are not able to cover the increased electricity demand in winter, the system needs more wind generation compared to the baseline (for example, see the results for \"Activity\" in 700):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "scen.var('ACT', {'year_act': 700})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Adding seasonality to the model shows the impact of this matching between wind and electricity demand on the results, which can be averaged out if the yearly demand is taken into account. The capacity factor of wind is near actual values in this scenario (0.46 in winter and 0.25 in summer), while it is 1 in the baseline scenario. Therefore, we observe relatively much higher installed capacity compared to the baseline, and as such a more expensive system. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Final note\n", + "\n", + "Thank you for trying this tutorial!\n", + "\n", + "Check us out on Github: https://github.com/iiasa/message_ix \n", + "\n", + "Get in touch with us online: https://groups.google.com/forum/message-ix \n", + "\n", + "And feel free to contact us with any further questions or feedback for improving this tutorial: zakeri@iiasa.ac.at" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "mp.close_db()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 1988f454bc13a102fdbddc31eea1688bdb9e163e Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 26 Apr 2019 13:52:06 +0200 Subject: [PATCH 02/18] Release notes updated --- RELEASE_NOTES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index d9ca46f18..a49fe7773 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -119,4 +119,5 @@ jdbc.pwd = ixmp - [#65](https://github.com/iiasa/message_ix/pull/65): Bugfix for downloading tutorials. Now downloads current installed version by default. - [#60](https://github.com/iiasa/message_ix/pull/60): Add basic ability to write and read model input to/from Excel - [#59](https://github.com/iiasa/message_ix/pull/59): Added MacOSX CI support -- [#187](https://github.com/iiasa/message_ix/pull/187): Test for cumulative bound on emissions \ No newline at end of file +- [#187](https://github.com/iiasa/message_ix/pull/187): Test for cumulative bound on emissions +- [#189](https://github.com/iiasa/message_ix/pull/189): Adding a Westeros tutorial for modelling seasonality \ No newline at end of file From 60598565c1bd24e9352c40d6bdfdcfcb4cf19404 Mon Sep 17 00:00:00 2001 From: behnam2015 <30926636+behnam2015@users.noreply.github.com> Date: Fri, 26 Apr 2019 17:28:32 +0200 Subject: [PATCH 03/18] typos corrected --- tutorial/westeros/westeros_seasonality.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorial/westeros/westeros_seasonality.ipynb b/tutorial/westeros/westeros_seasonality.ipynb index 964a98e9e..afd578739 100644 --- a/tutorial/westeros/westeros_seasonality.ipynb +++ b/tutorial/westeros/westeros_seasonality.ipynb @@ -5,14 +5,14 @@ "metadata": {}, "source": [ "# \"*Winter is coming!*\": A tutorial for adding sub-annual time steps to a MESSAGEix model\n", - "Seasonality or variations in demand and supply are common characteristics of an electricity system, and Westeros is not an exception. This tutorial helps to learn how to add the sub-annual time steps to a MESSAGEix model and investigate the impact of these sub-annual time steps on the results. This tutorial is structured as follows:\n", + "Seasonality or variation in demand and supply are common characteristics of an electricity system, and Westeros is not an exception. This tutorial helps to learn how to add sub-annual time steps to a MESSAGEix model and investigate the impact of these sub-annual time steps on the results. This tutorial is structured as follows:\n", "1. A short note on seasonality\n", "2. Adding sub-annual time steps\n", "3. Analyzing the results\n", "\n", "### Requirements for running this tutorial\n", "- You have MESSAGEix framework installed and working\n", - "- You have run Westeros baseline scenario and solved it sucessfully" + "- You have run Westeros baseline scenario and solved it successfully" ] }, { From ee6bde122ef1f315f886026ca2c7882dd65218f1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 29 Apr 2019 16:08:35 +0200 Subject: [PATCH 04/18] figures added to _static --- tutorial/westeros/_static/cf_wind.JPG | Bin 0 -> 31492 bytes tutorial/westeros/_static/load_seasons.JPG | Bin 0 -> 39957 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tutorial/westeros/_static/cf_wind.JPG create mode 100644 tutorial/westeros/_static/load_seasons.JPG diff --git a/tutorial/westeros/_static/cf_wind.JPG b/tutorial/westeros/_static/cf_wind.JPG new file mode 100644 index 0000000000000000000000000000000000000000..92c07dc9a771e5dd62fb1c295556fcad28d43507 GIT binary patch literal 31492 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 literal 0 HcmV?d00001 diff --git a/tutorial/westeros/_static/load_seasons.JPG b/tutorial/westeros/_static/load_seasons.JPG new file mode 100644 index 0000000000000000000000000000000000000000..7093ad39c2c14395f0b1f7ac8fdd7af8e2362146 GIT binary patch literal 39957 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 Date: Mon, 29 Apr 2019 16:11:29 +0200 Subject: [PATCH 05/18] tutorial updated for figures --- tutorial/westeros/westeros_seasonality.ipynb | 37 ++++++-------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/tutorial/westeros/westeros_seasonality.ipynb b/tutorial/westeros/westeros_seasonality.ipynb index afd578739..65d413d7e 100644 --- a/tutorial/westeros/westeros_seasonality.ipynb +++ b/tutorial/westeros/westeros_seasonality.ipynb @@ -16,30 +16,22 @@ ] }, { - "attachments": { - "image.png": { - "image/png": "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" - } - }, + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Seasonal variations in demand and supply\n", "The electricity demand can vary in different time scales, e.g., seasonally, monthly, daily, and hourly. In Westeros, the winter time is typically cold and long, which increases the demand for electricity and lighting. We investigate this seasonality in this tutorial, but the procedure discussed here can be adopted for studying different lengths of temporal resolution.\n", - "![image.png](attachment:image.png)" + "" ] }, { - "attachments": { - "image.png": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArkAAAE7CAYAAADZzpn6AAAgAElEQVR4Ae2dC7wVVfm/38MdREFALqmIQoqimaiBpojXLAJNEwLSElC8IBV5qV9Bhl2pqJD+BgldFFQ0RQgrNEFEA0VEAUUFVMALCojcOQfY/8+zaB1nD/vss69zzt77u/gc9p6ZNevyrLVnvvOud60pi8ViMVMQAREQAREQAREQAREQgSIiUKeI6qKqiIAIiIAIiIAIiIAIiIAjIJGrjiACIiACIiACIiACIlB0BCRyi65JVSEREAEREAEREAEREAGJXPUBERABERABERABERCBoiMgkVt0TaoKiYAIiIAIiIAIiIAISOSqD4iACIiACIiACIiACBQdgbRF7uLFi+20005zf5dddpmtW7cuKRRWKPvDH/5Qec6MGTOSxs/1QfJ/5ZVX7KGHHopLmnJQj1TLs3nzZvvmN7/p/viukDmBqti/88479re//c127dqVeeJJzlyzZo3deuutduaZZ7q2/9a3vmVbt25Nckb2h6rqf9mnrBREQAREQAREQASSEUhb5AYTQzQgIJMFBOELL7yQLEpej7300ks2aNAge++99/KajxLPjgB96cYbb7TXX389u4SqOHvbtm3261//2ubNm2ef+9zn7JprrrELLrjAGjVqVMUZudmt/pcbjkpFBERABERABNIlUC/dE3x8xMGePXtswYIF1rNnT2vQoIE/FPf55ptvOuFC/HxZ6OIyDG3s27fPlTO0W5s1SKBPnz7GXzDs3bvX+MtX+PDDD42++PnPf97uuOMOa9KkSb6yiktX/S8OhzZEQAREQAREIDICGVtyTz31VOvWrZstXbrUNmzYkLDADNX+97//tWOOOca6d++eMI52ikCUBBo3bmx16mTc7aMsqvISAREQAREQARHIgkDGd/uDDz7Yunbt6qxjr776asIieFeFU045xQ4//PCEcbB0vfjii3G+kv3797epU6fazp07487BEte7d2+78847bdOmTfbHP/7RvvCFL1T6B3PO7t273TlYjX/4wx/atdde67b/+te/unjsC1uUV6xYUZk/Yvy6665zFmrKVlXYsmWLXX/99fbFL37R3njjjYTR5s+f7/KcPHmyIfirC/ik/vSnP7XzzjvPnYe1kzpS12AgrVWrVtnPfvYzZxH1PtJVcYMX3FavXm3P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SkCEZmvJDaat7yIgAiIgAiIgAsVFIGc+ucWFJf3a4MPJBC7eFuaHqtNPRWckI8CELiZ28bpnCdxkpHRMBERABERABEQgZ+4KpYiSiVsMX7MiARO4cAU4//zzK31bS5FJruvMqhK4QuATy4Qzhv81GSvXlJWeCIiACIiACBQfAYncLNqUyV033XRT5WoCTGJiQpdC7giwJB1+rj4MHTo0ry+e8PnoUwREQAREQAREoLAJSORm0X5+uS2sjJdffrnxhreqlsjKIpuSPpUJaawKgc/zVVdd5VZuwLKrIAIiIAIiIAIiIALJCGjiWTI6OiYCIiACIiACIiACIlCQBDTxrCCbTYUWAREQAREQAREQARFIRkAiNxkdHRMBERABERABERABEShIAhK5BdlsKrQIiIAIiIAIiIAIiEAyAhK5yejomAiIgAiIgAiIgAiIQEESkMgtyGZToUVABERABERABERABJIRkMhNRkfHREAEREAEREAEREAECpJAWuvkrlq1qiArqUKLgAiIgAiIgAiIgAiUBoGOHTu6isqSWxrtrVqKgAiIgAiIgAiIQEkRkMgtqeZWZUVABERABERABESgNAjojWel0c6qpQiIgAiIgAiIgAiUFAFZckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkVsa7axaioAIiIAIiIAIiEBJEZDILanmVmVFQAREQAREQAREoDQISOSWRjurliIgAiIgAiIgAiJQUgQkckuquVVZERABERABERABESgNAhK5pdHOqqUIiIAIiIAIiIAIlBQBidySam5VVgREQAREQAREQARKg4BEbmm0s2opAiIgAiIgAiIgAiVFQCK3pJpblRUBERABERABERCB0iAgkZvjdl67dq3xV4xh586dVlFRUdBVow78FVsoxnoVY53od3v27HF9MBaLFU03LNa2ooGo265du4qmrXxFirHNirFOtNfevXt1zfAdN81Pidw0gVUXfcvHHxetyP3www+rq36tP077cMEothDbt88+/vjjoqoWN6zdu3cXVZ18ZT784AP/tSg++U1t2bKlKOoSrsSmjRvDu4pimzbbWmRttn37dqsoLy+K9glXoiivGRHcsyRywz1J2yIgAiIgAiIgAiIgAgVPQCK34JtQFRABERABERABERABEQgTkMgNE9G2CIiACIiACIiACIhAwROQyC34JlQFREAEREAEREAEREAEwgTyLnJfffVVwxlcQQREQAREQAREQAREQASiIlAvm4xYTmratGk2b948l8ytt95qHTt2dN8RtpMmTXLfBw8enE02OlcEREAEREAEREAEREAE0iKQlcidPXu2NW/e3CZMmGDr16+3mTNnWtu2be3999+3MWPGWJcuXQyBe9BBB6VVKEUWAREQAREQAREQAREQgWwIZCxysdSuWrXKevXq5fJv0aKFNW7c2ObOnWszZsywPn36VB7LpoA6VwREQAREQAREQAREQATSJZCxyCWjJk2aWNOmTV2e9evXd1ZdBG7QbSHdAim+CIiACIiACIiACIiACGRLIOcTz7Dger/cbAun80VABERABERABERABEQgEwJZWXITZdiqVatEu3O2D9/fiRMn2rp161yagwYNsm7dusWlP2vWLOcywc6wX3Bwslz4GPE5t3PnzhLqcUS1IQIiIAIiIAIiIAKFRSDnltx8Vh8f4FGjRtmAAQPcZLfRo0cbk9/Y78PChQvd9tixY10crMrTp083xC1h8eLF7nP8+PFOHAePIaB37dpl7du398npUwREQAREQAREQAREoAAJZGXJ3bFjhxOd4XpPnjy5clcia2nlwTS+IFIXLFjgJrR5d4g2bdpY165dbcWKFc7yymQ4RC6T4fyKDj179nRLma1Zs8bF2bBhg3Xq1MnwIcbqTPzy8nJXkvnz59tZZ53ljqVRNEUVAREQAREQAREQARGoZQQyFrmIyOHDh0dWHYToxo0brXv37nF5+tUd2Llt2zaLxWKVk+HYRzkRxYhbL47jEvjfBiK4UaNGhnBWOJDAf/9rtmRJE+vUqczOO8+sbt0D42iPCIiACIiACIiACNQWAhmL3Kgr4AUs+Y4bN86WL1/uihD0ySVOWVlZnMj15UTkErDerly50lmAvfBt0KCBLVmyxFlxfXx97icQi5n99Kdm771n1rBhfXv99Tr22GNmt91m1ratKImACIiACIiACIhA7SSQE5HLkH/QRYGqBsVnrqq+ZcsWNzHMv2DCT0Ij/fDks6ryxL0BkTts2LDKSWneistav1OmTHFvcEvFzeLll1+2zR99FJcVPr1NiujlF9OmmW3danb55WYffLDbWrQ4yJ57ro7de6/ZzTfHVV0bIiACIiACIiACIlBrCGQlcv1KBdSGiVz4uRL8fsRk3759K/dnW+tDDjnE+vXrV+lvi2vBRRdd5PxqTzzxxJSSp4wDBw50f5yAHy++vpdeemncpDQmtPFii6A7RDiDww47zPgLhrVr1lj5/ya5BfcX6vclS8w6dYov/fHHmz36aPw+bYmACIiACIiACIhAbSKQ1eoKfqWCsJBFSLKP4OPkq9LBJct4MQU+ubgthEMwXvDYsmXL3EQ0fHeDk9JYRmzz5s2VqzIEz/Hf27VrZ+E/0qlTJyusPvla8clzy5498UVBw9fL6vEoPj1tiYAIiIAIiIAIiECuCWSsxrDWYqllIpi34AYLxz6OEYe42QZcCRCqYQGLMG3ZsqXhV4vIxSc3GMe/fjiRyOUY5UvVCpxtHQrx/DPPNMP9efPm/aWnKZcuNWO/ggiIgAiIgAiIgAjUVgIZi1xWO9i5c2fCSV6+sohO4vgluvz+TD69aOZlDYhTAj65uBX4JcGwouKbG4yDywEiONHat0ErLukhhL0oZ1my5s2bJxTwmZS/UM+5+GKzU081+/vfzR5/vLHdf38da9bM7OqrC7VGKrcIiIAIiIAIiEApEMh40BnLaePGjZ3VtKplt7CoEoe4uQgsAYaP7IgRIyqTC09wQ+Ri3fVx/ASysLUZgbx06VLr379/ZVqJJqVVHizhLwjaiy7C9WS7HXtsYzvuuIyfjUqYoqouAiIgAiIgAiIQJYGMRS6iEQsqk7awkoZFJC4KHPNW1lxVCqE7YcKEpMkhhJNNGONkhPmQIUPi0qEOwUlpcQdLfOPww8327i23du1iJU5C1RcBERABERABESgEAlmZ5LB8EqZNmxbnd+tXV+CYj1MIMFRGERABERABERABERCB4iCQsSWX6nvLJ+vksu5sMITdCILH9F0EREAEREAEREAEREAE8kkgK5HrC4YfbKovY/Dn6FMEREAEREAEREAEREAE8kUgY3cFVji4++673QoH+Sqc0hUBERABERABERABERCBTAhkLHIzyUzniIAIiIAIiIAIiIAIiEAUBCRyo6CsPERABERABERABERABCIlkJVP7o4dO2zUqFFJC+zXqeVFDQoiIAIiIAIiIAIiIAIiEAWBrERukyZNbPTo0W7N2SgKqzxEQAREQAREQAREQAREIBUCcldIhZLiiIAIiIAIiIAIiIAIFBQBidyCai4VVgREQAREQAREQAREIBUCGbsr4GMbfi1uKhkqjgiIgAiIgAiIgAiIgAjkm4AsufkmrPRFQAREQAREQAREQAQiJ5C1yF21apWNGzfOeDmED7zmN7zPH9OnCIiACIiACIiACIiACOSbQFYiF4E7depU69evnwWXCOMVv7169bIRI0YYcRREQAREQAREQAREQAREIEoCGYvciooKW7BggQ0YMCDhEmIdO3a0QYMGuTjEVRABERABERABERABERCBqAhkLHLLy8tt586d1rRp0yrL2qFDBxeHuAoiIAIiIAIiIAIiIAIiEBWBjEUuBeSNZ9u2bYuqrMpHBERABERABERABERABFIikLHIxQcXl4QVK1ZUmdGiRYusXbt2cf66VUbWAREQAREQAREQAREQARHIEYGMRS759+zZ000smzVr1gHFYR+TzoijIAIiIAIiIAIiIAIiIAJREsj4ZfFua8kAACAASURBVBAUEmvu8OHDDUE7dOjQuHIz6YwVFhREQAREQAREQAREQAREIGoCWYlcX1jErAStp6FPERABERABERABERCBmiaQlbtCssLjqoB1Vy+FSEZJx0RABERABERABERABPJBICeW3GDBcF2YMWOG29WjRw/r27ev1a9fPxhF30VABERABERABERABEQgrwRyInJ5pe+kSZNs+fLlrrASt3ltMyUuAiIgAiIgAiIgAgVJYPVqs6eeqmcfbWpsp3/O7Oyz81eNrEQuLgljxoxxpUPYjh8/3tasWePecpa/ItfelNH4j85oblu3NrY6dcy6d6+9ZVXJREAEREAEREAERCBKAk8/bfbHP5p16FDHysrq2P33m73wgtm3v52fUmQscrHezpkzx0aPHp3wtb75KW7tTZVV1KZONWvZsr5VVOy1yZPNli0zGzKk9pZZJRMBERABERABERCBqAjcc4/ZOeeYHX74Xtu1s8IOamo2c6YZ4jcfFt2MRS7Lh/Xu3dsmTpxo69atM++iEBWo2pTP5s37Be7FF5tVlO+w7Tt22FFHmT3yiNnpp5udfHJtKq3KIgIiIAIiIAIiIALREsBNYe9es06dzHbu3J93gwZmRx5pxnvFapXIpXht2rSxkSNHWkVFhU2bNs2GDRvmSo3gLaWwahUWXJ5MzN56c3/NmzbFHG+2cqVEbin1BdVVBERABERABETgQAKNG5vt2mVWXh5/jO0mTeL35WorJ0uIsXrCwIEDbcKECcZLIObNm+cE75QpU5wAzlVha2s6NI5/KgmWkcakURVEQAREQAREQAREoJQJtGtndvzxZs89Z1ZRsZ8ERsLXXsvfHKaMRS4+uXfffbetX78+rs26devmxC6+uqtXr7a77rrLiFvMgUZr0cJs4UKzffvKXFVfecXsnXfMunUr5pqrbiIgAiIgAiIgAiKQGoEbbzQ3Mf++++rbww83doKXF+Z27Jja+enGytgnN5yRd1no1KmTIXS9K0M4XrFu33ST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v/8tPiIgAoVEQCK3kFpLZc2IQJMmZrt3x59aUWG2axc3sPj92hIBERAB3hh/6KHxHFq0MOO6sXlz/H5tiYAI1F4CGYtcVjLAp9Uv1VV7q6iSlTqBbt3MXn/dbOXK/SRYxvi558yOPdbsiCNKnY7qLwIiECbQsaPZu+/G73377f3Ct3nz+P3aEgERqL0EsvLJrb3VUslE4BMCxxxjNnSo2T33MFmyse3ZU98NRd544ydx9E0EREAEPIFevcwWLDB76imzg5rUs7376tiyZWbXXutj6FMERKAQCGQsclmHdtKkSbZ8+fKk9czn6gpJM9ZBEQgQ6NFj/0oKCxdss0NbNLHjjsu46wdS1VcREIFiJNCsmdmPf2w2c6bZ4hfqWrtPmd18M6+yL8baqk4iULwEMr7T464wfPjw4iWjmhUdAVZROProvXZQ01jR1U0VEgERyC0BfHKvusrs/PO2WMtWDaxRo4xvl7ktmFITARFImUDGPrkp56CIIiACIiACIiACIiACIhAxgaxFLm8GGzduXOVrdCn/woULD9gXcb2UnQiIgAiIgAiIgAiIQAkTyErkInCnTp1q/fr1M9wXfODVurxxjFfrEkdBBERABERABERABERABKIkkLHIraiosAULFtiAAQMSLiPWsWNHGzRokItDXAUREAEREAEREAEREAERiIpAxiK3vLzcdu7caU2bNq2yrB06dHBxiKsgAiIgAiIgAiIgAiIgAlERyFjkUsAdO3bYtm3boiqr8hEBERABERABERABERCBlAhkvCYKPri4JKxYscJ9Jspt0aJF1q5duzh/3UTxtE8EREAEREAEREAERCCewNNPm82YUcfefLOVHXtsmV1yiRlv8VRIjUBWltyePXu6iWWzZs06IDf2MemMOAoiIAIiIAIiIAIiIAKpE0DgTphg1qFDzC68YIe1axezcePMFi1KPY1Sj5mxJRdw/oUQCNqhvDc1EJh0xgoLCiIgAiIgAiIgAiIgAukRwH545plmxx5rtuHDfXZYa7O9e83++U+z005LL61SjZ2VyPXQELMStJ6GPkVABERABERABEQgOwLr15udemp8GocdZvbGG/H7tFU1gazcFapO1pyrAtbd8Isikp2jYyIgAiIgAiIgAiIgAmZHHGH27rvxJN57z+zII+P3aatqAjmx5AaTx3VhxowZblePHj2sb9++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IiACBU2AyRY1NYxa0OBU+KwI8GAZXG4RCyFDykHfw6wy0MkiIAJZE5C7QjUIuXAF3/YVXmmAC50fzgkP4ZM0xxnyCk8G4BhP/YkmdFRTJB0WAREI+OPhYxledkeARCDfBLw7Q3A4tTa7COWbh9IXgdpIQO4K1bQKIpXABc0LXvxe2A4OkzKrNixYvQBOdOHzaeE/w1tLgj5F1RRJh0VABERABERABERABKohIEtuNYAQsz54x24/MQELLc7+OFEzwxhndmbmIljxaWIJFiYiJFomiNmGjRo1qvGFw33d9CkCIiACIiACIiACxURAPrlptibC1r8Jhu8IWwICmP3sI+CewGzQ4DJj7sD/hllZy/Wzn/2s36VPERABERABERABERCBHBKQyE0DJu4J/LGWHe4GWGozCSwNde655xb00mKZ1FvniIAIiIAIiIAIiEBUBCRyUySNuGVNUtZYxT3BW25TPL0yGukQ/BqTlQf0RQREQAREQAREQAREIGcE5JObAkomkPEXXtAYVwXvnuAtu0xKSxZY7ojF4PnzgTe2aPKZp6FPERABERABERABEciegERuNQyxvCJwEy00j8jlGG/SYXUFBO8FF1yQNEV8df1yYlpCLCkqHRQBERABERABERCBjAlI5FaDDstr+FV1fq1cXA5YfcGvk8g6uVoKrBqgOiwCIiACIiACIiACERDQOrkRQFYWIiACIiACIiACIiAC0RLQxLNoeSs3ERABERABERABERCBCAhI5EYAWVmIgAiIgAiIgAiIgAhES0AiN1reyk0EREAEREAEREAERCACAhK5EUBWFiIgAiIgAiIgAiIgAtESkMiNlrdyEwEREAEREAEREAERiICARG4EkJWFCIiACIiACIiACIhAtAQkcqPlrdxEQAREQAREQAREQAQiICCRGwFkZSECIiACIiACIiACIhAtAYncaHkrNxEQAREQAREQAREQgQgISORGAFlZiIAIiIAIiIAIiIAIREtAIjda3spNBERABERABERABEQgAgISuRFAVhYiIAIiIAIiIAIiIALREpDIjZa3chMBERABERABERABEYiAgERuBJCVhQiIgAiIgAiIgAiIQLQEJHKj5a3cREAEREAEREAEREAEIiAgkRsBZGUhAiIgAiIgAiIgAiIQLQGJ3Gh5KzcREAEREAEREAEREIEICEjkRgBZWYiACIiACIiACIiACERLQCI3Wt7KTQREQAREQAREQAREIAICErkRQFYWIiACIiACIiACIiAC0RKQyI2Wt3ITAREQAREQAREQARGIgIBEbgSQlYUIiIAIiIAIiIAIiEC0BCRyo+Wt3ERABERABERABERABCIgIJEbAWRlIQIiIAIiIAIiIAIiEC0BidxoeSs3ERABERABERABERCBCAhI5EYAWVmIgAiIgAiIgAiIgAhES0AiN1reyk0EREAEREAEREAERCACAhK5EUBWFiIgAiIgAiIgAiIgAtESkMiNlrdyEwEREAEREAEREAERiICARG4EkJWFCIiACIiACIiACIhAtAQkcqPlrdxEQAREQAREQAREQAQiICCRGwFkZSECIiACIiACIiACIhAtAYncaHkrNxEQAREQAREQAREQgQgISORGAFlZiIAIiIAIiIAIiIAIREtAIjda3spNBERABERABERABEQgAgL10snjX//6l/3tb3+r9pSDDz7Y/u///s+OOuqoauNmE+Hll1+2X/ziF/a9733PPvOZz2STlM6tAQKTJ0+2V155xUaOHGnNmjXLeQlisZjNmzfPpkyZYtu2bbOuXbvaTTfdZA0bNsx5XjWZ4O7du23WrFnG75N6tmnTxi655BI7++yzrW7dupVFI97vf/97W7JkSeU+/+VTn/pUWu2wadMm+9WvfmX9+/c/4Le3Y8cOu/fee+3pp5+2xo0b24ABA+ycc86xsrIyn5358y+99FLr1q1b5X59EQEREAEREIFcEUhL5B5xxBF28cUXV+ZdXl5uCxYssBYtWtiJJ55Yub9BgwbWtGnTyu1kX9avX2//+c9/7Mtf/rIdcsghyaLqWJETqKiosOeee8727dvnBFq21V2zZo1NnTrVEHBf/OIXrVWrVkbfzGX4+OOP7YknnnBCjd9H1AHhOn78eCdcL7zwQjvhhBNs8eLFdvfdd9u6deucCPVCd+fOncbvrXPnztahQ4e4ovJ7TZXN+++/b3feeae9/fbbcWmwwYPFzJkz7c0337Sf//zn9s4779ikSZPcQ8wpp5xSGZ92PvTQQ+2zn/1s5T59EQEREAEREIFcEkhL5CJkg2KWG/yKFSvcTfOqq67KqFxYoLDm9erVK6PzdVLhEhg0aFBc4d999103UvCVr3wlbn+mG/TPrVu32nXXXWdBgZVpeonO++9//2uzZ8+20047LdHhvO9jNOPFF1+0r3/96/aFL3zBWUupK9ZqLKlYc/2IiueBlbdHjx5pl23Xrl1O0E+fPt2w1iYK8EZkn3vuuYbox6rMgzDl9G3w4YcfugdbLLzFZlVPxET7REAEREAEaoaAfHJrhrtyjZCAt2RGmGVkWWGtPvzww53I9u4A1BdBieBE2PqAiwCW39atW/tdaX1iFeevSZMmbuQl0clYcvfu3eus5xyvX7++4b60ceNGY+SH488++6y1b98+7oE5UVraJwIiIAIiIALZEEjLkptORgw9z58/32bMmOGGSLHYMDTZt29fa9eunbvZBv0Dr7/+ervgggsM6x43QqxBjz76qK1du9bF5caK322/fv2cdSjVsnCTv+OOO+z44493+eMryJAtQ6WUBUvXM888Yw8++KBt2LDBpT148OC4GzA3baxilIdzqUv37t3d+aTjg68zvpFYJTkPF4wzzzzT8D307hgcf+SRR+xb3/qWq+fcuXMNK9nRRx/tLHLHHntsnP+iTz/4+d5779m0adPcMDXCBYtZnz597KyzznLCgrjEoV5Yyrds2eL8MxmmvuyyyxwLRFGYz1//+lfHgaF94oX9OlNJk7w9i6ranzhBn1yGvvGvJuD3DZ+rr77a/vznPzt/Tnw/vYgjzurVq+1nP/uZ49WzZ093nv8v7HtKukE/8VzVgfLjqkD4/ve/75jSpvQP2pNRiieffNI++ugjJwyxnvbu3dv1Pc7BuvmHP/zBhg4d6ob433jjDTv55JPtxhtvdL7EcGCEJOgi5OvoPy+//HLjLxzofwjMoAsC9aYPNm/ePBw9pe1GjRrZwIED7fzzz7fXX3/d/vGPfxxwHm2EyCZ/fq/0A8R2y5YtXVkoA37SQ4YMqeynBySiHSIgAiIgAiKQAwJ1b7/99tszTQcxwQ3rsMMOqxyKJC18/+666y53kz/uuOOcGERcMbQ7Z84c69ixo7MmIcwQAFh4EDTc4BGNCIeJEyfakUce6SbQIBLr1Knjhj0RAp/73OfcDRPBiZBG2JFWouDLiI/g8uXLDb9FxAa+gpR95cqVTmgiPhDhy5Ytc8O/fEcYIVSZuPTAAw84i9nXvvY1O+aYY5zofeGFF9xkJibXEO/++++3hx56yN3cGRJmCHv79u3OcoUVDesaAoA8mfyDkKfuiJRPf/rT9tJLL7m4iINkQuStt95yghBRjng+77zzbPPmzfbYY4+5B4IuXbq4+iECGVbGH/Wiiy6ytm3bOgaIenw3ER5BPpTp85//vItPeog0jpMe/HngSCVNWGDxg0W4/XlYoH5MNGOYnaFrJiWxTXlee+011z7UCybkiQA+/fTT44a2aXc44NpAOwUDQov+QHqvvvqq48tQPv0Jf9Jc1cG7ASDcGHo/44wznN8v7MaMGeP6K/soI/XjYQZfVFx+EJv0X3jQ52BMGSk39V61apXrD/wmOnXqFKxe0u+ISvKgL9LGpFmvXj334Eh/pz/gf4tPLSIajohX2NDGycJJJ51kPICRXlW/PUQ1fX3hwoXOjQkxjDsHvy/qhr8u+dMfq8svWVl0TAREQAREQASqI5AXSy437UWLFsX5CVIQrJ/c/LHSjRgxwt0wEcgIHS98uAkjtk499VS74YYbKq09CFuEwVNPPeUsjQcddFB1dTvg+Le//W1nLeUAN1zEDkKR1RkQRAQ+mTWOGMLijOhiYhziGKuaH/pGlBAPIYfllxs7ggpBGbQ6Um4mBiGyqZtfRQAxggUymCaW3F/+8pcuHS+gwpXgPPghJljBAn4EBPU999zjyktZYIglD85MvCKwugAWbfLAEopg8QGxPXz48MqHFdJDBCHMeMhA2Keapmd2xRVXOOuyt8AiurDeI+YRVcGAqKdslBlfTsQdgX7AAw/8/D44IpARi7RjONBG1A1rKgHRSP8i0JapcEmlDkyWpKykR9l9m/EQgRsB/Y3yE+BJ/8eqzMMDfYZAe1I+LKSk4wPW22QWXB8v+MnDIdZlAn2JB0fv88rDCn2dB4N//vOfTnRy7PHHH3d8KS9l8P07mG4632lrRhSw3mLd5gGQdOFPHs8//7yzVGebTzplUlwREAEREIHSJJBzkYsVD4HLcDc3di9wwIuA5EaPNQdLaiILFW4Jt9xyywGtQTqs4pBp4KaPaPUBcUh6CIxgunzH0oSlisBNmRtyeNgeQUP9EGxYo0nvpz/9qU++8hPhgrClvuGAtTh4sydvb+ELx/Xb+DYiUBGeXuByjHS++c1v+mhOxGA9CwceDrDchQMiJDip0NcZSyP5IXJJL5U0YUI9WBoq2P60we9+97tw1km3EcYIWazelJH0EEuIXh4ogvySJvS/g/mugxfgjFYgfIMBP1TaHPcR+owPXtz77Uw/4ctDDZZvxDyDNN/97ned+EZMI/p50MEdAvFJ4PfIwwzx6c/wzjaQNu4I/PnAdeHf//63qz/l5PfFqguwoB+HXYT8efoUAREQAREQgUwJ5Fzk7tmzx1lxsB6Gh5EpJDd/braIgWQBv1yGfRmuZjh46dKlbiWHdEWNz4Oh0aDgSrbfx8P6hZWZmzZlwK81GLhxUw9cEhD1BPZhSUXUIsbwu2To2VuKg+eH60I+WNdIo6pAmbC6Bn2Bq4rLflxHYEg9sDTDEStbOCDEg5ZEjiP2EcXUIxiqS5Pj1MMLqeC56X6HG+Kb0QEEPtsIXnjzgJJpyFcdEJP0E8QiD2zBQHsj8LCI02d8SGSN9sfS+eS3RUCsImaxGj/88MM2bNgw91tM5JlEmXiA42GGh5NciNxEZeahhP6HdZtrBL7f9Lff/va37kHyT3/6kxtRCT6IJkpH+0RABERABEQgVQI5F7nVZZxMwHEu4hYh9sc//tGJXPZhFcTqi38n/qxRBtZsxeqGj3FVgclblBt/Y3xRvYDHMotbA8IUURVlQBBOmDDBiUPyRXTiIoDVMJHITVY2L8ZzmWay/ILHeODAIow/KUIJNw18q/Fv9q4fwfjVfa+JOgTLRH8KB883vD+bbdwoEKw84NAfYYUAJ4QfZtjmL199lHxxkcBqjDWbB0DW8MUdCSsufuBM0KNdJXKzaXWdKwIiIAIiECSQc5HLpBQsuPg0IqYQV8GATyDD5WErl4+DLywL2eMO8KMf/chNUPOWVVYliFLkUnasbNx4eStXsslgWKnwieWGjS8qwtyX268i4OuYzSdlQugFh7t9ekz2YfUILHdM9kFM4G8cHA5nKBt/1nCgrRAjQQGEJR2rJEtUcQwBn0qaWHC9sA8KUcQWljt44oucakAYIdpwg6F/MXP/yiuvrOSbajpR1AF+tD0ijvoG+zkPePCHDxby4PJeqdYhGA/GrD4Bj1tvvdVZ3v1xxDT1RUDTD7GEY9llgtyXvvQlH819YlVmdMX7bscdzMEGv1l+91/96lddWehXlM1b+rkesKwZFl4FERABERABEcgVgeTTqTPIhZsqw6VMckGUYOH0ASsaC8MjWLzFhvjE8fEYVudcZnIjML1QRDAwzMvNOF8WJ1/O4CfWMMqEgPRl5Dhl+PWvf2233XabO454QXQw0Qhh58vNuQh+L/qCaWfyneF6PwkMnj5QHiaJIbAQUJQHyy0TsLxwpfyIHQRtWCTjG4kw8wFBxmoYuCzAAP6ppskEMcQx7RVkxoMAs+0pP2I1HOgLuJWErZ2UgQl8cMTih1XfT/IKp5FsOx91oB7BOiJqsTLjokJ9gwG3D5jgZhEU/8E46XzngYcHENoFNsFAe2IZxYWB/sDKGvyecEvAncYH+g2rcsDYT87zx3LxSb/HB58VTSgDgYfFoOWYMuCjm6hP5KIMSkMEREAERKA0CRyoNHLAAR9KhC5WRW60LPGFcGVWOf6kTHzhxkvgxssxZoZzk+VGiABmTVpECYKIYWpWVcDyhQWINKIK+Dayfi9WWgQideGmzEQdyoVFEf9QxCQCB19DrNEMw/I2OIbZudFjreIz24A4YEkqVnbAusyb4hANzJJHWF177bWOH+Uhbyb30BZeBFNmhCTbwYDwxdLHxCzKjiUY4UT9aA+EZ6pp4lbCWqrB9mfyGsxoT7/iQDB/vjMCQL9AXCPmScdbz3H7oE+wbBurV3grYDiNZNsIuVzXAQvktm3bXN0Q4pQZaz7LeDHJjhU0EP0sfUf96SOsyuAfPKoqL6MWTAjD4p1slQX8aZkcyQoeLMuFgEbg0vb8lrCe8vBAH+U7K1WwqgjWXPoBZcLKSj7+wRM/cvqCX7e6qjKmsp+y8DAGE//gR//iQRfxi0sP7Y0VlzZWEAEREAEREIFcEciLyEWAIGT9yyBYNgqrEzPL/csgfAXw02PCC68K5YZ48803u8kpiEpEDVYybr68BIKbNkuQYbnKh9XJlyn4iUBAVGEVxeLF+qLcrFn39zvf+Y6b4MM2E4qYVMOQPuvqsg8rGhyow9ixY+2DDz7IyAIZLA/fyfuHP/yhexkES5gh/BnSx6qMUCBvXvOKoMK6y5JWWHixpuEH+Ze//MVNpAsKXYQYQoQXTGDpI71g/eCQapq0v2fGyyBof8qC4OMFE3xPFCgjIht+nMOLFfDHJcCfujH0XZVITpRmcF8+6oCoZJ1i/LERh7QLgvIHP/iBe6jD8uzFbfhlEMGyZfqdhwCWkuO3woMOwhGOLHnHWs08XPnAbw1Red999zk3B/bTRykz4p9+k8uAGwQvjOAVvzDxgWsBqynglsRqEPy+6ZdeZPt4+hQBERABERCBbAiUxYJjrdmkpHMLkoB/4xkWSf+2rtpYEYQ81koCPsfVWUJrYx1UJhEQAREQAREQgegI5NwnN7qiK6dSIoD1Hh/X4GuLS6n+qqsIiIAIiIAIiEB6BPLirpBeERRbBKomwHA/PqNMYsRlIV/ruFZdAh0RAREQAREQAREoRAKy5BZiq5VYmRG6vPyCN7r5CYslhkDVFQEREAEREAERSJOAfHLTBKboIiACIiACIiACIiACtZ+ALLm1v41UQhEQAREQAREQAREQgTQJSOSmCUzRRUAEREAEREAEREAEaj8Bidza30YqoQiIgAiIgAiIgAiIQJoEJHLTBKboIiACIiACIiACIiACtZ+ARG7tbyOVUAREQAREQAREQAREIE0CErlpAlN0ERABERABERABERCB2k/g/wPEdoQhp07HIwAAAABJRU5ErkJggg==" - } - }, + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Seasonality can be relevant to some supply technologies as well. For example, Westeros has more windy days in winter months compared to summer. This means the capacity factor of a wind power plant is higher in winter compared to summer. Figure below, rendered from renewables.ninja*, shows the monthly capacity factor of wind power plant somewhere near Westeros. \n", - "\n", + "\n", "\n", " *You can also find the capacity factor of wind and solar PV for your location at www.renewables.ninja, as we found for a place near Westeros." ] @@ -85,9 +77,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Specifying model/scenario to be loaded from the database\n", @@ -138,13 +128,10 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Defining a new temporal level\n", - "scen.check_out()\n", "time_level = 'season'\n", "scen.add_set('lvl_temporal', time_level)" ] @@ -208,7 +195,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "# Adding duration time\n", @@ -424,9 +413,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "scen.solve()" @@ -541,9 +528,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "scen.var('ACT', {'year_act': 700})" From 4982b6d6a28a13215cbf7ae4052c7d31e65ec861 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 4 Jul 2019 14:08:19 +0200 Subject: [PATCH 06/18] text editing, capacity factor of wind, add unit to Westeros baseline --- tutorial/westeros/westeros_baseline.ipynb | 93 ++++++++++------------- 1 file changed, 40 insertions(+), 53 deletions(-) diff --git a/tutorial/westeros/westeros_baseline.ipynb b/tutorial/westeros/westeros_baseline.ipynb index f5165d62a..b3d5a725c 100644 --- a/tutorial/westeros/westeros_baseline.ipynb +++ b/tutorial/westeros/westeros_baseline.ipynb @@ -12,12 +12,14 @@ "\n", "### *Integrated Assessment Modeling for the 21st Century*\n", "\n", - "Please refer to the [user guidelines](https://github.com/iiasa/message_ix/blob/master/NOTICE.rst)\n", - "for additional information on using *MESSAGEix*, including the recommended citation and how to name new models.\n", - "\n", "This tutorial is based on a presentation by Matthew Gidden ([@gidden](https://github.com/gidden))\n", "for a summer school at the the **Centre National de la Recherche Scientifique (CNRS)**\n", - "on *Integrated Assessment Modeling* in June 2018." + "on *Integrated Assessment Modeling* in June 2018.\n", + "\n", + "For information on how to install `MESSAGEix`, please refer to [Installation page](https://message.iiasa.ac.at/en/stable/getting_started.html) and for getting `MESSAGEix`tutorials, please follow the steps mentioned in [Tutorials](https://message.iiasa.ac.at/en/stable/tutorials.html).\n", + "\n", + "Please refer to the [user guidelines](https://github.com/iiasa/message_ix/blob/master/NOTICE.rst)\n", + "for additional information on using *MESSAGEix*, including the recommended citation and how to name new models." ] }, { @@ -50,25 +52,6 @@ "" ] }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "## Simple installation\n", - "\n", - "When working with Python, you can easily install `MESSAGEix` yourself and get all the tutorials:\n", - "\n", - "```shell\n", - "$ conda install -c conda-forge message-ix # install the MESSAGEix package and all dependencies\n", - "\n", - "$ messageix-dl # download all tutorials to your current directory\n", - "```" - ] - }, { "cell_type": "markdown", "metadata": { @@ -94,20 +77,20 @@ "source": [ "## MESSAGEix: the mathematical paradigm\n", "\n", - "At its core, *MESSAGEix* is an optimization problem:\n", + "At its core, *MESSAGEix* is an optimization model:\n", "\n", "> $\\min \\quad ~c^T \\cdot x$ \n", "> $~s.t. \\quad A \\cdot x \\leq b$\n", "\n", "More explicitly, the model...\n", "- optimizes an **objective function**, nominally minimizing total **system costs**\n", - "- under a system of **constraints** equations (inequalities or equality conditions)\n", + "- under a system of **constraints** (inequalities or equality conditions)\n", "\n", "The mathematical implementation includes a number of features that make it particularly geared towards the modelling of *energy-water-land systems* in the context of *climate change mitigation and sustainable development*.\n", "\n", "Throughout this document, the mathematical formulation follows the convention that\n", "- decision **VARIABLES** ($x$) are capitalized\n", - "- **parameters** ($A$, $b$) are lower case" + "- input **parameters** ($A$, $b$) are lower case" ] }, { @@ -118,7 +101,7 @@ } }, "source": [ - "## MESSAGEix: connected to the *ix modeling platform*\n", + "## MESSAGEix: connected to the *ix modeling platform (ixmp)*\n", "\n", "The *modeling platform for integrated and cross-cutting analysis* (ixmp) provides a powerful framework for working with scenarios, including a database infrastucture for data version control and interfaces to scientific programming languages.\n", "\n", @@ -135,7 +118,7 @@ "source": [ "## Ready, steady, go!\n", "\n", - "First, we import all the packages we need." + "First, we import all the packages we need. We import a utility function called *make_df*, which can be used to wrap the input data into dataframes that can be saved in model parameters." ] }, { @@ -165,7 +148,7 @@ } }, "source": [ - "The `Platform` is your connection to a database for storing model input data and scenario results." + "The *MESSAGEix* model is built using the *ixmp* `Platform`. The `Platform` is your connection to a database for storing model input data and scenario results." ] }, { @@ -189,7 +172,7 @@ } }, "source": [ - "Once connected, we create a new `Scenario` to build our model." + "Once connected, we create a new `Scenario` to build our model. A `Scenario` instance will contain all the model input data and results." ] }, { @@ -227,7 +210,7 @@ } }, "source": [ - "The model horizon will span 3 decades. Let's assume that we're far in the future after the events of A Song of Ice and Fire (which occur ~300 years after Aegon the conqueror).\n", + "The model horizon will span 3 decades (690-720). Let's assume that we're far in the future after the events of A Song of Ice and Fire (which occur ~300 years after Aegon the conqueror).\n", "\n", "| Math Notation | Model Meaning |\n", "|---------------|------------------------------|\n", @@ -289,7 +272,7 @@ } }, "source": [ - "And we fill in the energy system's `commodities`, `levels`, `technologies`, and `mode` (defining how certain technologies operate). \n", + "And we fill in the energy system's `commodities`, `levels`, `technologies`, and `modes` (i.e., modes of operation of technologies). This information defines how certain technologies operate. \n", "\n", "\n", "| Math Notation | Model Meaning|\n", @@ -363,13 +346,13 @@ } }, "source": [ - "The `COMMODITY_BALANCE` equation ensures that `demand` for each `commodity` is met at each `level` in the energy system.\n", + "The `COMMODITY_BALANCE_GT` and `COMMODITY_BALANCE_LT` equations ensure that `demand` for each `commodity` is met at each `level` in the energy system.\n", "\n", "$\\sum_{\\substack{n^L,t,m \\\\ y^V \\leq y}} \\text{output}_{n^L,t,y^V,y,m,n,c,l} \\cdot \\text{ACT}_{n^L,t,y^V,y,m}$\n", "$- \\sum_{\\substack{n^L,t,m, \\\\ y^V \\leq y}} \\text{input}_{n^L,t,y^V,y,m,n,c,l} \\cdot \\text{ACT}_{n^L,t,m,y}$ \n", "$\\geq \\text{demand}_{n,c,l,y} \\quad \\forall \\ l \\in L$\n", "\n", - "While `demand` must be met, it can also be *exceeded* allowing the model to plan for future periods of demand for storable commodities.\n" + "While `demand` must be met, supply can *exceed* demand allowing the model to plan for meeting demand in future periods by storing storable commodities.\n" ] }, { @@ -461,6 +444,7 @@ }, "outputs": [], "source": [ + "# We use add_par for adding data to a MESSAGEix parameter\n", "scenario.add_par(\"demand\", light_demand)" ] }, @@ -472,7 +456,7 @@ } }, "source": [ - "In order to add values for the reference energy system, we define some common keys.\n", + "In order to define the input and output commodites of each technology, we define some common keys.\n", "\n", "- **Input** quantities require `_origin` keys that specify where the inputs are *received from*.\n", "- **Output** quantities require `_dest` keys that specify where the outputs are *transferred to*." @@ -517,7 +501,7 @@ "- receives *input* in the form of the \"electricity\" *commodity* at the \"final [energy]\" *level*, and\n", "- *outputs* the commodity \"light\" at the \"useful [energy]\" level.\n", "\n", - "Because there are no other commodities or forms of useful energy in Westeros, we specify that 100% of the input and output are from/to these commodities/levels." + "The `value` in the input and output parameter is used to represent the effiecieny of a technology (efficiency = output/input). For example, input of 1.0 and output of 1.0 for a technology shows that the efficiency of that technology is 100% in converting input commodity to output commodity." ] }, { @@ -547,7 +531,7 @@ } }, "source": [ - "Next, the electrical `grid`, which…\n", + "Next, we parameterize the electrical `grid`, which…\n", "\n", "- receives electricity at the \"secondary\" energy level.\n", "- also outputs electricity, but at the \"final\" energy level (to be used by the light bulb).\n", @@ -626,7 +610,7 @@ "source": [ "The model has a number of \"reality\" constraints, which relate built *capacity* (`CAP`) to available power, or the *activity* (`ACT`) of that technology.\n", "\n", - "The **capacity constraint** limits the total time a each technology can operate.\n", + "The **capacity constraint** limits the activity of a technology to the installed capacity multiplied by a capacity factor. Capacity factor or is the fraction of installed capacity that can be active in a certain period (here the sub-annual time step *h*).\n", "\n", "$$\\sum_{m} \\text{ACT}_{n,t,y^V,y,m,h}\n", " \\leq \\text{duration_time}_{h} \\cdot \\text{capacity_factor}_{n,t,y^V,y,h} \\cdot \\text{CAP}_{n,t,y^V,y}\n", @@ -675,7 +659,7 @@ "source": [ "capacity_factor = {\n", " 'coal_ppl': 1,\n", - " 'wind_ppl': 1,\n", + " 'wind_ppl': 0.4,\n", " 'bulb': 1, \n", "}\n", "\n", @@ -753,7 +737,7 @@ "source": [ "## Technological Diffusion and Contraction\n", "\n", - "We know from historical precedent that energy systems can not be transformed instantaneously. Therefore, we use a family of constraints on activity and capacity." + "We know from historical precedent that energy systems can not be transformed instantaneously. Therefore, we use a family of dynamic constraints on activity and capacity. These constraints define the upper and lower limit of the domain of activity and capacity over time based on their value in the previous time step, an initial value, and growth/decline rates." ] }, { @@ -827,9 +811,9 @@ } }, "source": [ - "## Defining an Energy Mix\n", + "## Defining an Energy Mix (Model Calibration)\n", "\n", - "To model the transition of an energy system, one must start with the existing system which are defined by the parameters `historical_activity` and `historical_capacity`. These parameters define the energy mix before the model horizon. \n", + "To model the transition of an energy system, one must start with the existing system which are defined by the parameters `historical_activity` and `historical_new_capacity`. These parameters define the energy mix before the model horizon. \n", "\n", "We begin by defining a few key values:\n", "\n", @@ -1010,8 +994,11 @@ "base_inv_cost = {\n", " 'node_loc': country,\n", " 'year_vtg': model_horizon,\n", - " 'unit': 'USD/GWa',\n", - "}" + " 'unit': 'USD/kW',\n", + "}\n", + "\n", + "# Adding a new unit to the library\n", + "mp.add_unit('USD/kW') " ] }, { @@ -1065,7 +1052,7 @@ " 'node_loc': country,\n", " 'year_vtg': vintage_years,\n", " 'year_act': act_years,\n", - " 'unit': 'USD/GWa',\n", + " 'unit': 'USD/kWa',\n", "}" ] }, @@ -1079,7 +1066,7 @@ }, "outputs": [], "source": [ - "# in $ / kW\n", + "# in $ / kWa\n", "costs = {\n", " 'coal_ppl': 30,\n", " 'wind_ppl': 10,\n", @@ -1121,7 +1108,7 @@ " 'year_act': act_years,\n", " 'mode': 'standard',\n", " 'time': 'year',\n", - " 'unit': 'USD/GWa',\n", + " 'unit': 'USD/kWa',\n", "}" ] }, @@ -1135,7 +1122,7 @@ }, "outputs": [], "source": [ - "# in $ / MWh\n", + "# in $ / kWa\n", "costs = {\n", " 'coal_ppl': 30,\n", " 'grid': 50,\n", @@ -1173,7 +1160,7 @@ "## Time to Solve the Model\n", "\n", "First, we *commit* the model structure and input data (sets and parameters).\n", - "In the `ixmp` backend, this creates a new model version in the database, which is assigned a number automatically:" + "In the `ixmp` backend, this creates a new model version in the database, which is assigned a version number automatically:" ] }, { @@ -1259,7 +1246,7 @@ "source": [ "## Plotting Results\n", "\n", - "We make use of some custom code; see `tools.py` in the tutorial directory." + "We make use of some custom code for plotting the results; see `tools.py` in the tutorial directory." ] }, { @@ -1312,7 +1299,7 @@ "source": [ "### Capacity\n", "\n", - "Given how many new plants are built, how many are actually used?" + "How much capacity of each plant is installed in each period?" ] }, { @@ -1338,9 +1325,9 @@ "source": [ "### Electricity Price\n", "\n", - "And how much does the electricity cost? These prices are taken from the **dual variables** of the solution and are given the name **shadow prices**. They reflect the marginal price of electricity, taken from the most expensive producer. \n", + "And how much does the electricity cost? These prices are in fact **shadow prices** taken from the **dual variables** of the model solution. They reflect the marginal cost of electricity generation (i.e., the additional cost of the system for supplying one more unit of electricity), which is in fact the marginal cost of the most expensive generator. \n", "\n", - "Note that the price drop when the most expensive technology is no longer in the system." + "Note the price drop when the most expensive technology is no longer in the system." ] }, { From a3a40ff657dfbaec57869d65d33c7a14781d8249 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 4 Jul 2019 14:22:12 +0200 Subject: [PATCH 07/18] Westeros emission bounds slightly edited --- tutorial/westeros/westeros_baseline.ipynb | 2 +- tutorial/westeros/westeros_emissions_bounds.ipynb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tutorial/westeros/westeros_baseline.ipynb b/tutorial/westeros/westeros_baseline.ipynb index b3d5a725c..76225a368 100644 --- a/tutorial/westeros/westeros_baseline.ipynb +++ b/tutorial/westeros/westeros_baseline.ipynb @@ -16,7 +16,7 @@ "for a summer school at the the **Centre National de la Recherche Scientifique (CNRS)**\n", "on *Integrated Assessment Modeling* in June 2018.\n", "\n", - "For information on how to install `MESSAGEix`, please refer to [Installation page](https://message.iiasa.ac.at/en/stable/getting_started.html) and for getting `MESSAGEix`tutorials, please follow the steps mentioned in [Tutorials](https://message.iiasa.ac.at/en/stable/tutorials.html).\n", + "For information on how to install `MESSAGEix`, please refer to [Installation page](https://message.iiasa.ac.at/en/stable/getting_started.html) and for getting `MESSAGEix` tutorials, please follow the steps mentioned in [Tutorials](https://message.iiasa.ac.at/en/stable/tutorials.html).\n", "\n", "Please refer to the [user guidelines](https://github.com/iiasa/message_ix/blob/master/NOTICE.rst)\n", "for additional information on using *MESSAGEix*, including the recommended citation and how to name new models." diff --git a/tutorial/westeros/westeros_emissions_bounds.ipynb b/tutorial/westeros/westeros_emissions_bounds.ipynb index d95e1e7c2..7bd258b4a 100644 --- a/tutorial/westeros/westeros_emissions_bounds.ipynb +++ b/tutorial/westeros/westeros_emissions_bounds.ipynb @@ -95,7 +95,7 @@ "source": [ "## Define a Bound on Emissions\n", "\n", - "The `type_year: cumulative` assigns an upper bound on the *average emissions per year* over the entire time horizon." + "The `type_year: cumulative` assigns an upper bound on the *weighted average of emissions* over the entire time horizon." ] }, { @@ -184,7 +184,7 @@ "source": [ "### Capacity\n", "\n", - "Given how many new plants are built, how many are actually used?" + "How much capacity of each plant is installed in each period?" ] }, { @@ -202,9 +202,9 @@ "source": [ "### Electricity Price\n", "\n", - "And how much does the electricity cost? These prices are taken from the **dual variables** of the solution and are given the name **shadow prices**. They reflect the marginal price of electricity, taken from the most expensive producer. \n", + "And how much does the electricity cost? These prices are in fact **shadow prices** taken from the **dual variables** of the model solution. They reflect the marginal cost of electricity generation (i.e., the additional cost of the system for supplying one more unit of electricity), which is in fact the marginal cost of the most expensive generator. \n", "\n", - "Note that the price drop when the most expensive technology is no longer in the system." + "Note the price drop when the most expensive technology is no longer in the system." ] }, { From acdcec4d6802f47ffd63b620559af644d42b5f04 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Jul 2019 13:07:11 +0200 Subject: [PATCH 08/18] westeros emission taxes text edited --- tutorial/westeros/westeros_emissions_taxes.ipynb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tutorial/westeros/westeros_emissions_taxes.ipynb b/tutorial/westeros/westeros_emissions_taxes.ipynb index 489a27f22..22becbab3 100644 --- a/tutorial/westeros/westeros_emissions_taxes.ipynb +++ b/tutorial/westeros/westeros_emissions_taxes.ipynb @@ -85,7 +85,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "When setting a cumlulative bound, the optimization model choses an emission trajectory that pushes the cost towards the end of the model horizon. As a consequence, the shadow price or dual variable of the constraint increase exponentially at the discount rate." + "When setting a cumlulative bound, the undiscounted price of emission is the same in different model years (see the marginals of equation `EMISSION_CONSTRAINT`). After considering the year-to-year discount factor, we observe an ascending trend in emission prices shown in `PRICE_EMISSION` above. This means the emission price in later years is higher because as the value of money in the future is lower compared to today. " ] }, { @@ -94,9 +94,9 @@ "source": [ "## Make a new scenario with emission bounds by year\n", "\n", - "In the previous example, we imposed a bound on emissions over the entire model horizon by using the `type_year 'cumulative'`. Now, we will create a similar scenario, but the constraint will be defined per year.\n", + "In the previous example, we imposed a bound on emissions over the entire model horizon by using the `type_year` as 'cumulative' in the parameter `bound_emission`. Now, we will create a similar scenario, but the emission constraint will be defined per year.\n", "\n", - "For the sake of comparison, the per-year emission values will be chosen exactly in line with the optimal emission trajectory from the previous scenario." + "For the sake of comparison, the per-year emission values will be chosen exactly in line with the optimal emission trajectory obtained from the solution of the previous scenario." ] }, { @@ -174,7 +174,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Comparing the emission prices between the two scenarios, we see that the values are identical in the year 710 and close in the year 720. However, the bound in the year 700 is not binding, so the shadow price is 0 (and is not shown here)." + "Comparing the emission prices between the two scenarios at this stage, we see that the values are not identical. The reason is that when we introduce emission bounds per year, the price of emission in each year reflects the cost occuring when reducing one more unit of emission in that year. However, in the scenario with a cumulative bound over the entire model horizon, the price of emission reflects the cost of the system in reducing one more unit of emission in any year decided by the model to minimize the costs." ] }, { From f0230c05dc11e8b5dea3d379b344a4119d313525 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 8 Jul 2019 10:01:14 +0200 Subject: [PATCH 09/18] firm capacity text edited --- .../westeros/westeros_firm_capacity.ipynb | 47 ++++++++----------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/tutorial/westeros/westeros_firm_capacity.ipynb b/tutorial/westeros/westeros_firm_capacity.ipynb index e94c1de63..889176df7 100644 --- a/tutorial/westeros/westeros_firm_capacity.ipynb +++ b/tutorial/westeros/westeros_firm_capacity.ipynb @@ -4,11 +4,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Westeros Tutorial - Firm capacity\n", + "# Westeros Tutorial Part IV - Firm Capacity\n", "\n", - "In the previous part, we showed how to introduce emissions into a stylized energy systems model, and what happens if you put a constraint on total CO2 emissions.\n", + "In the previous part, we showed how to introduce emissions into a stylized energy system model, and what happens if you put a constraint on total CO2 emissions.\n", "\n", - "In this tutorial notebook, we will illustrate how to add other considerations, in particular the requirement to have sufficient dispatchable (firm) capacity." + "In this tutorial notebook, we will illustrate how to add other constraints, in particular the requirement to have sufficient dispatchable (firm) capacity." ] }, { @@ -65,16 +65,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Add Renewable Formulation" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Load Factors - Describing the Electricity Sector\n", - "#### Peak load \n", - "If we further specify our demand, we will find that the demand for electricity (!not the demand for useful light but for electricity!) has a peak load that is different from the annual average load; e.g: if annual average load is 5 GWh peak load during midday might be 10GW --> the peak load factor is equal to 2." + "## Improving the Representation of Electricity Sector\n", + "### Peak load factor\n", + "The input demand for electricity (notice: not the demand for useful light but for electricity) in the model shows the average electricity demand in the given time (which in our example is a year). However, power systems need enough installed capacity not only to cover the average electricity demand but also to meet the peak demand, i.e., maximum load throughout that time. This feature can be specified in the model using parameter `peak_load_factor`. For example, if annual average load is 5 GWa peak load amy be 10GW, hence, the peak load factor is equal to 2." ] }, { @@ -91,7 +84,7 @@ " 'year': model_horizon,\n", " 'time' : 'year',\n", " 'value' : 2,\n", - " 'unit' : '???'})\n", + " 'unit' : '-'})\n", "\n", "scen.add_par('peak_load_factor', peak_load_factor)" ] @@ -100,9 +93,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Describing the Renewable Technologies Reliability\n", - "### rating and reliability --> Ensuring enough Firm Capacity\n", - "we assume, that up to a share of 20% of total electricity supply, the capacity of wind_ppl adds by 80% to the firm capacity of the power system (r1). The remaining 90% installed capacity, however only 5% contribute to the firm capcity (r2). The coal power plant supplies full reliability independet of the supply share.\n" + "## Reliability of Power System\n", + "In roder to meet demand reliably, the power system needs to maintain dispatchable or so called firm capacity at any time. Some technologies like coal power plants can fully contribute to the required firm capacity, i.e., 1 MW installed capacity of these technologies provide 1 MW firm capacity. However, some other technologies such as variable renewables such as wind are not fully reliable when the power system needs them. As such, the capacity value of wind power plant is considered to be lower than 1. In this example, we assume that 10% of electricity supply by wind is 80% reliable, while he remaining 90% installed capacity can only contribute by 5% to the required firm capcity. As such, we divide wind power into two parts with two different ratings (r1 and r2) and we define this through parameter `rating_bin`.\n" ] }, { @@ -115,7 +107,7 @@ " 'node': country,\n", " 'commodity': 'electricity',\n", " 'level' : 'secondary', \n", - " 'unit': '???',\n", + " 'unit': '-',\n", " 'time': 'year',\n", " 'year_act': model_horizon})" ] @@ -126,23 +118,24 @@ "metadata": {}, "outputs": [], "source": [ - "# add the ratings as a set \n", + "# adding wind ratings to the respective set \n", "scen.add_set('rating', ['r1', 'r2'])\n", "\n", - "# for Wind PPL\n", - "rating_bin = make_df(base_reliability, technology= 'wind_ppl', value = 0.5, rating= 'r1')\n", + "# adding rating bins for wind power plant\n", + "rating_bin = make_df(base_reliability, technology= 'wind_ppl', value = 0.1, rating= 'r1')\n", "scen.add_par('rating_bin', rating_bin)\n", "\n", - "reliability_factor = make_df(base_reliability, technology= 'wind_ppl', value = 0.5, rating= 'r1')\n", - "scen.add_par('reliability_factor', reliability_factor)\n", - "\n", - "rating_bin = make_df(base_reliability, technology= 'wind_ppl', value = 0.5, rating= 'r2')\n", + "rating_bin = make_df(base_reliability, technology= 'wind_ppl', value = 0.9, rating= 'r2')\n", "scen.add_par('rating_bin', rating_bin)\n", "\n", - "reliability_factor = make_df(base_reliability, technology= 'wind_ppl', value = 0.25, rating= 'r2')\n", + "# adding reliability factor for each rating of wind power plant\n", + "reliability_factor = make_df(base_reliability, technology= 'wind_ppl', value = 0.8, rating= 'r1')\n", + "scen.add_par('reliability_factor', reliability_factor)\n", + "\n", + "reliability_factor = make_df(base_reliability, technology= 'wind_ppl', value = 0.05, rating= 'r2')\n", "scen.add_par('reliability_factor', reliability_factor)\n", "\n", - "# for Coal PPL\n", + "# considering coal power plant as firm capacity (adding a reliability factor of 1)\n", "reliability_factor = make_df(base_reliability, technology= 'coal_ppl', value = 1, rating= 'firm')\n", "scen.add_par('reliability_factor', reliability_factor)" ] From 87c6e8656a98b9dd215045b8eaade086e230abce Mon Sep 17 00:00:00 2001 From: behnamz <30926636+behnam2015@users.noreply.github.com> Date: Fri, 20 Sep 2019 09:31:28 +0200 Subject: [PATCH 10/18] updated tutorial landing page for the links to the master branch --- tutorial/README.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tutorial/README.rst b/tutorial/README.rst index afe26604f..4d012bcdd 100644 --- a/tutorial/README.rst +++ b/tutorial/README.rst @@ -62,11 +62,11 @@ Westeros Electrified This tutorial demonstrates how to model a very simple energy system, and then uses it to illustrate a range of framework features. -1. `Build the baseline model `_. -2. `Introduce emissions `_ and a bound on the emissions. -3. `Limit emissions using a tax `_ instead of a bound. -4. `Represent both coal and wind electricity `_, using a “firm capacity” formulation: each generation technology can supply some firm capacity, but the variable, renewable technology (wind) supplies less than coal. -5. Represent coal and wind electricity using a different, `“flexibility requirement” formulation `_, wherein wind *requires* and coal *supplies* flexibility. +1. `Build the baseline model `_. +2. `Introduce emissions `_ and a bound on the emissions. +3. `Limit emissions using a tax `_ instead of a bound. +4. `Represent both coal and wind electricity `_, using a “firm capacity” formulation: each generation technology can supply some firm capacity, but the variable, renewable technology (wind) supplies less than coal. +5. Represent coal and wind electricity using a different, `“flexibility requirement” formulation `_, wherein wind *requires* and coal *supplies* flexibility. Austrian energy system ---------------------- @@ -74,7 +74,7 @@ Austrian energy system This tutorial demonstrates a stylized representation of a national electricity sector model, with several fossil and renewable power plant types. -1. Prepare the base model version, in `Python `__ or in `R `__. -2. Plot results, in `Python `__ or in `R `__. -3. `Run a single policy scenario `_. -4. Run multiple policy scenarios. This tutorial has two notebooks: `an introduction with some exercises `_ and `completed code for the exercises `_. +1. Prepare the base model version, in `Python `__ or in `R `__. +2. Plot results, in `Python `__ or in `R `__. +3. `Run a single policy scenario `_. +4. Run multiple policy scenarios. This tutorial has two notebooks: `an introduction with some exercises `_ and `completed code for the exercises `_. From 7a5abff6edec3f954aaf69194b0eb03d1a309b07 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 20 Sep 2019 10:43:03 +0200 Subject: [PATCH 11/18] flexible_generation text edited and link and question added --- .../westeros_flexible_generation.ipynb | 69 +++++++++++-------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/tutorial/westeros/westeros_flexible_generation.ipynb b/tutorial/westeros/westeros_flexible_generation.ipynb index e3a34cc2e..d4c2d3bb1 100644 --- a/tutorial/westeros/westeros_flexible_generation.ipynb +++ b/tutorial/westeros/westeros_flexible_generation.ipynb @@ -50,12 +50,14 @@ "metadata": {}, "outputs": [], "source": [ + "# We clone a scenario from the baseline scenario\n", "model = 'Westeros Electrified'\n", "scen = base.clone(model, 'flexibile_generation',\n", " 'illustration of flexible-generation formulation',\n", " keep_solution=False)\n", "scen.check_out()\n", "\n", + "# we get the years of installing capacities (vintage) and years of those capacities being active\n", "year_df = scen.vintage_and_active_years()\n", "vintage_years, act_years = year_df['year_vtg'], year_df['year_act']\n", "model_horizon = scen.set('year')\n", @@ -68,9 +70,7 @@ "source": [ "## Add a carbon tax\n", "\n", - "Note that the example below is not feasible with a strict bound on emissions, hence this tutorial uses a tax.\n", - "\n", - "Below, we repeat the set-up of the emissions formulation from the \"emissions bounds\" tutorial." + "Then, we add a carbon tax to motivate the use of low-carbon technologies in the system. We do this similar to the process explained in the [tutorial for adding emission tax](https://github.com/iiasa/message_ix/blob/master/tutorial/westeros/westeros_emissions_taxes.ipynb)" ] }, { @@ -119,11 +119,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Describing the Renewable Technologies Flexibility \n", - "\n", - "### Flexibility of demand and supply\n", + "## Describing flexibility requirements\n", "\n", - "The wind power plant has a flexibility demand of 5% of its activity. The coal powerplant can provide 20% of its activity as flexibility." + "Demand and supply of electricity varies over time. To meet the demand at any time, the suppy technologies must be flexible enough to ramp up and down their generation. Some renewable energy technologies like wind power are \"variable\", meaning that their generation changes based on wind availability and not based on the electricity demand. As such, to balance the variability of wind power, the system requires flexibility from other units." ] }, { @@ -137,7 +135,7 @@ " 'commodity': 'electricity',\n", " 'level' : 'secondary',\n", " 'mode': 'standard',\n", - " 'unit': '???',\n", + " 'unit': '-',\n", " 'time': 'year',\n", " 'year_vtg': vintage_years,\n", " 'year_act': act_years,\n", @@ -147,7 +145,7 @@ " 'node': country,\n", " 'commodity': 'electricity',\n", " 'level' : 'secondary', \n", - " 'unit': '???',\n", + " 'unit': '-',\n", " 'time': 'year',\n", " 'year_act': model_horizon})" ] @@ -158,29 +156,37 @@ "metadata": {}, "outputs": [], "source": [ - "# add the ratings as a set \n", + "# adding two different ratings for flexibility \n", "scen.add_set('rating', ['r1', 'r2'])\n", "\n", - "# For the Load \n", - "flexibility_factor = make_df(base_flexibility_factor, technology= 'grid', rating= 'unrated', value = -0.1)\n", - "scen.add_par('flexibility_factor',flexibility_factor)\n", + "# assuming a flexibility requirment of 10% for load \n", + "flexibility_factor = make_df(base_flexibility_factor, technology='grid', rating='unrated', value=-0.1)\n", + "scen.add_par('flexibility_factor', flexibility_factor)\n", "\n", - "# For the Wind PPL\n", - "rating_bin = make_df(base_rating, technology= 'wind_ppl', value = 0.2, rating= 'r1')\n", + "# dividing wind generation into two parts (bins) for each rating (r1=20% and r2=80%) \n", + "rating_bin = make_df(base_rating, technology='wind_ppl', value=0.2, rating='r1')\n", "scen.add_par('rating_bin', rating_bin)\n", - "\n", - "flexibility_factor = make_df(base_flexibility_factor, technology= 'wind_ppl', rating= 'r1', value = -0.2)\n", - "scen.add_par('flexibility_factor',flexibility_factor)\n", - "\n", - "rating_bin = make_df(base_rating, technology= 'wind_ppl', value = 0.8, rating= 'r2')\n", + "rating_bin = make_df(base_rating, technology='wind_ppl', value=0.8, rating='r2')\n", "scen.add_par('rating_bin', rating_bin)\n", "\n", - "flexibility_factor = make_df(base_flexibility_factor, technology= 'wind_ppl', rating= 'r2', value = -0.7)\n", - "scen.add_par('flexibility_factor',flexibility_factor)\n", + "# assuming a flexibility requirment of 25% for wind in rating r1\n", + "flexibility_factor = make_df(base_flexibility_factor, technology='wind_ppl', rating='r1', value=-0.25)\n", + "scen.add_par('flexibility_factor', flexibility_factor)\n", + "\n", + "# assuming a flexibility requirment of 45% for wind in rating r2\n", + "flexibility_factor = make_df(base_flexibility_factor, technology='wind_ppl', rating='r2', value=-0.45)\n", + "scen.add_par('flexibility_factor', flexibility_factor)\n", "\n", - "# For the Coal PPL\n", - "flexibility_factor = make_df(base_flexibility_factor, technology= 'coal_ppl', rating= 'unrated', value = 1)\n", - "scen.add_par('flexibility_factor',flexibility_factor)" + "# assuming a flexibility provision of 80% for coal power plant\n", + "flexibility_factor = make_df(base_flexibility_factor, technology='coal_ppl', rating='unrated', value=0.8)\n", + "scen.add_par('flexibility_factor', flexibility_factor)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we could see, the need for flexibility is added by negative values to the parameter `flexibility_factor`, while the provision of flexibility is specified by positive values. For more information please refer to the [mathematical specification of flexibility](https://message.iiasa.ac.at/en/stable/model/MESSAGE/model_core.html#system-reliability-and-flexibility-requirements) in the model." ] }, { @@ -272,18 +278,21 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "mp.close_db()" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "## Questions and discussion\n", + "- Run the same scenario with and without adding `flexibility_factor`. what is the difference in the results when we consider the flexibility requirements?" + ] } ], "metadata": { From cd725ac706e6bbe467e002e645bc031d746607cb Mon Sep 17 00:00:00 2001 From: behnamz <30926636+behnam2015@users.noreply.github.com> Date: Fri, 20 Sep 2019 11:25:41 +0200 Subject: [PATCH 12/18] Update RELEASE_NOTES.md --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index b0319bd4e..ee687bf55 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -31,6 +31,7 @@ other improvements. See the ixmp release notes for further details. - [#154](https://github.com/iiasa/message_ix/pull/154): Enable documentation build on ReadTheDocs. - [#138](https://github.com/iiasa/message_ix/pull/138): Update documentation and tutorials. - [#131](https://github.com/iiasa/message_ix/pull/131): Update clone function argument `scen` to `scenario` with planned deprecation of the former. +- [#232](https://github.com/iiasa/message_ix/pull/189): Adding a Westeros tutorial for modelling seasonality and updating the existing ones # v1.1.0 @@ -145,4 +146,3 @@ jdbc.pwd = ixmp - [#65](https://github.com/iiasa/message_ix/pull/65): Bugfix for downloading tutorials. Now downloads current installed version by default. - [#60](https://github.com/iiasa/message_ix/pull/60): Add basic ability to write and read model input to/from Excel - [#59](https://github.com/iiasa/message_ix/pull/59): Added MacOSX CI support -- [#189](https://github.com/iiasa/message_ix/pull/189): Adding a Westeros tutorial for modelling seasonality \ No newline at end of file From 1c41ea84c3f07e86a73d68d7b14f0e774ce32c70 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 20 Sep 2019 11:44:11 +0200 Subject: [PATCH 13/18] updated test_tutorial for the new objective value --- tests/test_tutorials.py | 2 +- tutorial/westeros/westeros_seasonality.ipynb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_tutorials.py b/tests/test_tutorials.py index 0b9efef3f..e2b718bd0 100644 --- a/tests/test_tutorials.py +++ b/tests/test_tutorials.py @@ -26,7 +26,7 @@ # b. Expected objective value. tutorials = [ (('westeros', 'westeros_baseline'), - [('solve-objective-value', 207544.09375)]), + [('solve-objective-value', 233404.359375)]), # on Python 2: # 'solve-objective-value', 187445.953125), (('westeros', 'westeros_emissions_bounds'), []), diff --git a/tutorial/westeros/westeros_seasonality.ipynb b/tutorial/westeros/westeros_seasonality.ipynb index 65d413d7e..f338ff1f2 100644 --- a/tutorial/westeros/westeros_seasonality.ipynb +++ b/tutorial/westeros/westeros_seasonality.ipynb @@ -4,8 +4,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# \"*Winter is coming!*\": A tutorial for adding sub-annual time steps to a MESSAGEix model\n", - "Seasonality or variation in demand and supply are common characteristics of an electricity system, and Westeros is not an exception. This tutorial helps to learn how to add sub-annual time steps to a MESSAGEix model and investigate the impact of these sub-annual time steps on the results. This tutorial is structured as follows:\n", + "# \"*Winter is coming!*\": Modeling of seasonality in MESSAGEix\n", + "Seasonality or variation in demand and supply are common characteristics of an electricity system, and Westeros is not an exception. This tutorial helps to learn how to add sub-annual time steps to a MESSAGEix model and investigate the impact of the seasonality on the results. This tutorial is structured as follows:\n", "1. A short note on seasonality\n", "2. Adding sub-annual time steps\n", "3. Analyzing the results\n", From 0035fa607f159322ad1925884dfb8d21ee9c9e8b Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 20 Sep 2019 13:22:31 +0200 Subject: [PATCH 14/18] figures of seasonality tutorial updated --- tutorial/westeros/_static/cf_wind.JPG | Bin 31492 -> 0 bytes tutorial/westeros/_static/cf_wind.png | Bin 0 -> 61042 bytes tutorial/westeros/_static/load_seasons.JPG | Bin 39957 -> 0 bytes tutorial/westeros/_static/load_seasons.png | Bin 0 -> 76122 bytes tutorial/westeros/westeros_seasonality.ipynb | 8 ++++---- 5 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 tutorial/westeros/_static/cf_wind.JPG create mode 100644 tutorial/westeros/_static/cf_wind.png delete mode 100644 tutorial/westeros/_static/load_seasons.JPG create mode 100644 tutorial/westeros/_static/load_seasons.png diff --git a/tutorial/westeros/_static/cf_wind.JPG b/tutorial/westeros/_static/cf_wind.JPG deleted file mode 100644 index 92c07dc9a771e5dd62fb1c295556fcad28d43507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31492 zcmeFa1yogSw?De*PC;pq5Tv^sDG?As8tLxtkOpZ4q`OPHOIlJuK)SoTxf@^e{oXUq z`R@J3z2}a<+p*khZJzzaTr+<2H=hN!QfPM5daJf4A21m18(P0kAxiz^#DLp z5}*VC02Y7*;{w1zXUL$7r+$V2Bp27mGXO+H{5=1OEnwsB#K3TO!psW%(`Nvn3A*w$wRcX?`Q68K z#Jt>AI(nQho``&F0lMNL{x%nTdwW`YCR%eVeL4mX4h}kcMmk1D8c+)wYezF1O$Qn? zYm#prJkhn*wlcJ^F*G+Ly6aF=%iPw6huGHEP=`}bQ;$VUM~8(*OOr{5hJisxlSWgA ziGfCkiAjfzg@K(>k3oz0+weNtKSsB(wKDlSwvINPu8FRxu9=NBNE!@u#B_g6`ad-$ zNJKvd{YUYG)(C3DDP*OqX`}lDbnxEYVj6m88b%Je@3)F$K_%S8XP zGyfk+i3Oe+K!tg#1Tbf5i1~N#NgV{71X~i0j{yz`xb_k9Ph4Ok6+F zuC5sf;@X3-?Cm5V1i(N+K|?{pKtn;p!oa}7qalDW20SJTDk2&dCJr_hCe{O70`iBr z_+r8Fk%244GaPe?6wUc1l1&=Kvm4ULgu#@7&rtZ6f_Jh96SQ3K?N!R4h8`M4haDT z1qmu)g1Lfz4nU$op+960fW9ZA2}5j&!T35n6_!M>qy_WEr#(_8Eh|qr`1=pAuyM#9 zkyAXTWM*MyW9Q%$dLk?$DklC^R_>*|f})bLwvMizzJZ~UwT-Qvy@R8Zm$#3vpMOAL zMC9A3=$Lo0acSupnOWI6xp}2!dVKD^5Q%hRlNSI#iVQN`@g1=A7JWsZNx3sS-`=2e$^Z(Y$ek|DQH9asadh;Jc6pD- z9r0GNu^|B`8jSAMz|k3rH?c3Uv;+^tNucDOGm4XY0K2Lvttf;WGi>#vF$%+}??Z;W zA|^-`P?kU9$5?6~x}=H`0oDmt6cB?3X@LMmTFz!%@(G<^1-|UZ!^T!)n$D;?vul49 zGYiWEZFXibr@)n4V4k?{7VuHJ1>opnP$v0G+{?KevU?7>Lz%Gp?N%$TLyj}&`$W{V zKh(-+Tji9!QWCNx?tp#X|Jom$bdh}2gE^6?-B%@Eok~k8BXycG zwF{CU$azeh9|}X}AC8xVXYuYIgl+*^_3>HVTflsq&|vl!a5;B&$GdzEwLz7%mmEO0 zj~BNd4f&dR`jsg!QAR`$PIj+!u2yG=7es>25i=koEHlQ!x229^#F-tn>gqeH5=vz^ zeTiB*HMhv#VPOD%jM?QtBC{V|Vs4sy7HmT{Oh+BD0QLSJoEN+N^T}>iQ*w45OEp&j zLq-_DP~dhEr@Nvq-}}()iI%~dau^|T|Iphg#RfoXJMI^KW<59vCXDg?f93H?Vc{Ce zMS5RB_S2W=4P#zkv<|VOaRCGd=n++d?M+Yl{`lP(&@9L!arqC@6p$Hpqr zWyCY`N$lW)38u0jJ-_$S;sKuR4R%Rg)mi4EbIrD1;Kb$@!IJ@OINEVo(*g$*0%XqT zFl_UL2ufE{pH}vzL(okH%!@KjIs1x9(Z-u`_1fXyn~`zwwP8v_#*OYpOrL2l$Y;;p z0_AFTs#UKv4Jj21{w`%>DV^NkxI7<+Rv@ z;XX!eI6Y257MeG2ReR8uj6%(Va<5`EFM>O3XjCE=or(pW@x8D-UK#CzTY`nS zYgV{<-WAclTT}t}L=XX1Q`4JghD%%vsDds9Q5{=mW+-@zSOD_CJX!Ee{9ct<`G~1r zc}-~lEaLuK+uj`!xdV2h8Nq_Y6+6YTVw5nD;=tpG+xH;V{*w6~RDFPzw< zod7Sfy^ioy7le`G@_cFHRk^*{M28#Ws<>M~PdkBu$ZC5S-v|Z4g>;Z*09d!@C5l4YCN)f*D z?i0IbPZ%W*8a=LhI$6dYSm8`v5K<y-gtij4{Elo+xO>MUJ+gbl$~b?&CZ;usb#M1g;U}nE_pL;E5vx?wWesgR zQp_i!J@?PW$rRYRt!{yFr>ZN)u@mVNwcV4LtMlu`tKGBf=~ITfox|a5mi0!uL4~#( zl#wGlIXYXjo(J!G^GZYGep&%wJwtj61e~_3Bdx*2n=+D*?xefF<$8QDN7iv(!Sp}@U-ADs*lB%F5codffD!l^&od9xUBtL<^W~%a) z#6Aqj2g;It?vKsdkj|PgB%U9_nm~n+vcsg_QY%S%?cZY=oQ!xTB)=Duo-@97@s?)3 zJI&C^@e)L@ zXeiOv#|SJ7=s}753zCd<7-wZS=tz3H4TB^#?<1u@73e1}=XRYJv@^zuAEh@YuFF<=d;I)ROz#19xG)XWG$@@nnMMq!yaH$b9~;5+HN0cz6G$A z`^Yv0vTgwbr3q2D6lp{RfC_it zO&Z2J8aaRmOx2j6ML3eIWEtM)tc=~8U0|v5FLVhOG&JAEYsWoDr>;Clx|f7)g&P$8 z3IZ?ycZa`X7-C6=UaQS&uyl6JYw$)gb%{YiP|S|bA`Ot+#$_i8v-+YvhWRMe-nqbq zd&H(syB#Gn@qvOX>#m9+cdmZmV+>!EYS?KnN;9qVRjxO3ZkYQ?RT&O!!oz0u4|6xz zBsF2i&6vkqmHTi-8Wmzm2&d^Ui^KR^G+QubW%lg-X?Sr9TgNj`vUzK+8wv~=B;M^{ zl;~B-cw%XY9wdIDv`|@wgoqrI{?N2l7dfZKC13qHrOG+SoVmq1{(dNwjx`lhZXLD; zGPDyO&dxE9`pdEMP+-kCPtEX@fTZdHTWxSU?D8ZA0#)9eOJ)zsJ8i5r0peii_9T!q z2zE_%&~I_7D36JjB^~1&;nNLap$eiS<$6!X-_=5tkYfTPJWBY17kbQwhGT~%6h$RN zI{Vc<6CF`+VaBUD)VUl=aR_WaHo!yLelHIReqmDn%wRp;Xmr3=A|NwjW`|g0Z3(gj zBFK~Laz0vOlgd?MF|#jt%gwZ6%v%{d(h@hkNK7-lYc45DU1p!4VKKne1|LRXANn=q zLH-6#=8>e{9)CfGzv8`E-0UNwh}zlzK8Q5=@FEP-90xng`L>#_L>12{ed$>hbIB3( zK?ok_=0XgU<}ucv{}LlGYP$<|9{Ubz3W8o_KAz@~b!v|Z=Jigo z4c&d?i~Ff58y{`)tu`)jk1MAQh;0!wdJ@0|7YQ;Tyuz5=7{3_V#l)HA&acfo7b-vI z=CQ;J?p=s@pb0~vp3nB>L@Jc+f?pcTdZZTRIaw_9*HFzTZmXjwsf5o`8^#@`*dVX!}ujJ zwX7;+hBeHyT}IH;0_cayl-YlaKJD<}RaIrcN}L+&JV^)(b$`br0N@}^8UbrF;6)i? z9`KP@P`1my1z8rCncO(tp{jZyJvJgWtox@ zL1>oqs@`dt5ZyZ>1tkBc$_C&h73XbEh5Gv}k1@DVx zzg~tQ8=`R8=_^Vv!RpG-jX0bJ6BT9i5etSoRdxR1wH#p7{EI{(H)pyYYqhOsqRkUK zKG{4SCG(p$0Y{r3OoROQ{Ik>(!0|Al#EG=YSLPmU@RE$xThbJHrL6H14H6~2bQO|o z3@Dg^#e5r%0B%iUbK{LJ2l41~{?wO+E+mGPtyVwY)Hba$lhHLzrgpwaOux${1a8i9 zTY2mRWpOtUr!pYFhkkFz#~8j(6Te5KDzXO;%qMAw#JvN#DTBZ}@`UI5*xEr}wqCDx&p94Ju9Qz3os;V0AW|uM5XVae0Phwk;Ne=AvUT@Q zq8QY@X&*UKM_D^nH%+V{6?>F44;(~kpT`>vkb4NR&*c=FBaTl`UcK0Fm^vvFHnlxL zA=VG_jxm8`9pz?4fx)MMC@3kd8n)Rq#-+H*H&%?slC|WL;r|P$Wq(Z+?vjQ7O-GKq z@#HOFCEev745+95az!`+LatMh2ZW3K57zR2UWuMGG@X)O`JD|yT~PXczxZ@rY<}I% z_wa@p%q=kW$HlLm7lEvTV5DB$95X7Z{zA<=fK*|x(?~Ye!Yw+03@%2aC3J z^s)OHAOBNNP=iOaprpreLOuR2>7fFB1C;d8Zs{zt_cIzDKmR$)pWpVN`}A+k%IYKu zt=1h2$@$f2vK(tD!%$&+sbHl99U|N-9WKEfnjOms*f0NyfiQ)B$l_;rK$Gx)WEFop z|3{VkBbNU|#3EnW6u2Q6p6?0mra{^F7tL`;b^JO0$l!mS4m^uioby>p5)PplDXXi* zYOGXw^LU~9^49^@m6S;%$xea~!s88;+|Gccm8-2K=-`S_gf#z*;%Km5@Ui1)pYJugXc zelfy#aOJ-F?#7nor;Y@*V3gqjjFL3MwzmL5#4S*50IvM_!A@u<&Cf<4ffB#BjN-s< zrx7x~$+!g?XM0CRej6mPWsK5_DNxyW>{|2+uIY$G_BT2a92)AQR~I&MbgJ~(Rm^q! zO~o&B0Ci8Kp_s!RB9@sWd&BqW7O-_Ml>Ciag;k`YAdhAzII2LL-2_o#4!6MCqbv{s zeMdt7bwKLDX1<#Pi!e08Z8|%OxgM59_Vj?KNc(Z1y(5m+_TYFFoeJU#Lpj{1S$>}b zMqo>a+>$;<1yb=vMm4vq|FIFS`Z3`iXp)1$faKpH-aDh53fm|Dh* zPVUFd=+xn2so|eW3s8tWIRkrd`bIzq&Dp$gT1_m$pLPfhFR3jA85s*H>m=Ek zATvvOmcO7xO)!$k(ihBwgnhRUP|Q0$J*idm9;@}v~9613&Rqz6Z2m6eV z$%mQ6G(zCWB9>(8|4g7d8h2k#}+V96BjQkXWn3qnoqzTcar|F(-!}zK~4DgPh=Q)_)h*8fT&pY1&sS^D7yk!gdk~sU@I1?Ki z4h1tOI#qC&IdXF)v>#D8=5+RlGbLOXByedSeY|q4Lfb$W#!q|F#N0=dF-b~PipQF{L5P5Q_@>45WSk`U zr~zY2vXn7Q1aUYTzB!tRvJ{zL!!i&!nxJB8jhk{K**nh4N2GzDdfaPfCFe^i;vD4V zHD!lS+1Gn&DF)S$oK)Ry&P>Pqju{L(^rq?jZdJa`pl(H|LjG zQ-EWDEUepoN_|sS?(r=^c;{D|M*r5$Pg8%MedQ*3vvCV3$NjL@JIj3-f9*oJOLz@A z^7+3sdswqu;BIA-&p6?IcW-z=QneXrP5I##?%c!IHvOPBlFz4afzE`cow(lzg8zp_ zdp!Di8$j~=r$wj0<@_zbq~epm>%{6XWuJa8=bPzJD0KzXy=v#IRh)@RQ-Z@i2CHm9gNm54(DfLoE>ecW;QG* z)uvq27CvwlsC+z!jHn(U)h`~#!rG)rfsZRnsx6AN)}$V4#qZT)bEw>za3C^+v|{A6 zUraIz9`mJM#Zjt^cE+}edTdCIh#=y_irMN5i3&q{uk%$!nJ^&psr-!^jA+%c2?Q+7 z7(zp7TZB02MTGd#YS7CKiWJ0c!fUnFYc~mySC9|ZH@F2hcKJ3B)UV;o4SrL{_r7%7 zLUhqd`fs7H(|KHt`atD5y3U)L&{bI(yXNmC0VP%OUEpYaF`}TpzfO1Q>p`ks%lo$c z&8g^6^zVvUaSOa~pEX}GGWw}Gzgxi1C?WZL;ugrc1zxk=cpDl0W@|otiwEkb4=zSN z!@GAbHSN$H|C1dxO@FteNcY-*F(bWOKpp0?^A->QnIqf98Q%=w1>E1d`56(v#y)XS z?4w`%?qj~bgM*qJ-UUrLHuwEiy34HJjTJogA6ERk`cwY%iVeVxeu=?f<8k*`qsVY} z{0;Z^E@ah{>(2tX+j<0V9tM|Pu_IbMAW_brnN?Ze3!qi<(3^OJXG&7D>GKlm-Q2xq zZg3|EeyFR;62)h>K%q%b=@Xk7JT_dr!|H@N3djfxus)$QQCk$hqq7S1j%^xkrJlwW zMkw6Usijr!F&?P5B&wBF!}UD+DSf1jAFCuy5u{R|QhCEZ%_WxcrJlyZAi>@w774)+ z4bRklju-;H%9{-!CTlL4@yY)& zpPanFqkAMtAq`1vxE!VFgEeo@upym-%@R7FjIOS_@g{5I{p3z8X*9NJE7-yNsSI@Y zhB205L>BQOTlt=&Dbve#vD);A?YSn4C<0g{!2le=x7<|ueUGD zHv1`$^^93#%DS_qvq{k<^lkJQ1|A11Vr7KxLYcW)IN7DZGpq~pi0{})tm{;lOq-K6 z9F;yxW)Bg0z9o@MBz&kF<#-PFs49&S>v?}(L=^64tkT>aFd`l2Iaey^emc|%HTAyh zl&wW#wy={MF&Pl7EfT=HCDiGGZcpC053Q-YcKScHY-F;&LN zz460c=#99ltpV_9H(F*yoL!D8t&KZA{cP$MU0iMpBN$rTaxM? zC{_B-TZuOp`Bt@m&X&(+VbL|~c7v6Xq!A3HC=&GiW;n3!%V)R17{k?uk>7V5^D{!H z)q>E1xcd~#uStmTW%{~=Sd)$Gn>d$f0mf}0Yv4s1D^5f>be?@ zPXV-8_;2dM0041Le_ajg2RbZFSI*E_&rZjT+5x3Z@+3dTy&JpOnWw#+Si)GO?qQ=t zx~)QI-p)hues)sJ$OI3h!1Uay0oY34A;pJD8|IX3iP$5kL95Fz7%lwrDRv`0GQf?g zF4aWt(Y)QH%r~*%Ju;nElBR4Wp|lXSl&2!UK?^2UkAGhJ=0(Ew`fk{>)ip&;5i7eK zct#7Te}YkWX|~Rpm-0<_nOuc*xskn6NXH0LhZ4g`P!Q2ZUl_1ENVX-RuiHTktEZ9%>If@W7E1WrNRkQLZM^PBQ0!DdSGalQq#J z9)E7HmW-MaqKYum8M6hZ1HoQCdJ6Ey-%}hm^vP+?Rb#a-5doOu)I!eRK+q45kn__^ z{Aln4la1=t6^yT)kQJ{`=t5~f5!_kDo0q$H_F056p+>8ydFT$QRmeUY*=8{&t9k!U zg1{~bmQwV&z!IUh{MuVpb?T^hp#54ezVC5@WNq4zzTCd*`-;wT`F5)g|3(M=P~NY3 z(6@~LcUA)Rr}OwPc#WUV;|}VXpDJAZ&YOV!n%Cs~3gv!dUxe)cB4=uiGzaeh8VH&+m64s|H@g;Xt zW!LPj%lhJ(TGQ#E>mjC7QRUGz5B6P@E8h2m^-9ip!sh7Bjp`>(1w%|im!+jUFkTT3 z-F!ZB?r>*GW0G}yH{q^XLaC}^o48#eW<W+Dcqt+SX1tWW$5`j#R(E0*i61R@+B`g~I}P=fHNpN(ukTEV?(z*N{{G08ep73(yVPlRr}#KG?) zNn3q$?vj%6gC_+&E!^nr`Nz}#Z669LJ}{K2k0#YcL_P!MkMk7YlgM8_n3Hb2s?zok*2c>RrLy)$aQIZ03kj042|El&Y2J2qCz zGN#JcIn*hsX7aZJdy6&0n34q6<{h*r281Ecr^?wnuODqf@KmI$@y@Z*Zc*^`x9fG9 zM=34^&FOf+-vX2S1DACOTod0#UGC^Wuf_w zJ*(Z}jV{uR4YQ3N_})creGoS(`L|$qN1cI~ z!?<@gm>{)vk^rf#pTO_q{9xDq3yNKTQ@Nh=(Yvw8^pEzCA*7c>TzF8JQS$>B_##{5 zGhcAI{7^_0--?w2v-JJYuw9Fo`9+3kn@%bd;v|BT(PEhbk+`{CCiWLj@_fGabhL>M z=Eu16j+`(dsA1>ESTu)tI!g&Cnf9_5RiBp!_OEW_*Eg-yc5FdeoyFVlsU7A&`JBJS z!8->gGqS5waer_Uij6JO5w+aotx!oq8CW-%Of^<_b65YoQ`xa8@4|UOW@$~}j5C)P zWBL2omu0xAkkGQ9x;H00C^FM#H>_1QxMW{e__C=9wqYryTU~-S8iR$G2B{%qgjtuH zwgux+gpxe{n1YRm)bA<sFnW^rfHh{+xu1s zCGhOsn8Opy1NsPRv|lDz7-b#1jG_j6r=H+dQQTT``rNlg7(?!BeM$boo1@7@X+b!B!bDQ0P6jU`$5g4O zhaJwL7F2eDLs6nnjf`y`6%|+{p$_k6jm5l(>u|=>@D&S4fHIVzXK&_#9)(UbPs{mAMgL__7{8X%z`nV+s#5m)9$! zPSQ)%#|y?$SHmK67|-`c6MqOl`$0MyT9oLXCo(M1QT68Xo>FB^?Wb*a|`8unM&r|nHl0JGe>{YiT1Vw*So`^-w`Ik z!^sqLrSaj|YHb`>eth@Qq(mqZ&vqQyuwd5KoDX8AO9xQ=(RwVKrJ(8}x_&~$w`{=F z8o#h%r_3TY_^k#Z$#RRRb@#HEOot-|*o2HQ!%84)TLf`ZwH~+!#o8}?wK12-!?Zd| z0qC6*B~mfM zAX?54tIlP%0sZkBFg;=!LN#Vo{=BW$`+(YjRQI_mMfc`R!I&N$MhOxNuFAz_-94;v z5O7-fiL(A9?90O+h2XCV)?dlfZ;0ZK)c&gk_QOg2j-a3;=@xo5*RAgByM^Yj3%| zC_8O~b2+1G-QJR?zvzvb*?kTiYGK0Yx;MlwAG22=$iwR}*N&dU@XT?kY|=p(MqlJf z;C~ePA}*z*;7Eaz^}wLhEI}KyiY2PBb+@|GSH6RdTQh_YCoT}^`-G_yz{!8mjrH!57PiK$!^`hB3z@ZawPy5$ z+)jH3_7?4|J2Rc3?6mfhXyd|f)It`w^HOkGuy=yfe&Dxn?8FqBf;;0I7F;N@ z@<+k1hLuY$CEt`hZ^u`AT5iIb4>36U;EfIL<>ojG5*bO7oKH#w9O;)RQdGI4E}l^J z4@GCPBDF)?W?3V4G@qB!L<3o;N<32e2drOr-vaQvQPiBRkF$53&bQ5_GNuo4K{3k$ z<9qo1#R7Fcoxd;D$Mt3URh*zr9zT*HBO@J|bHgf*rR3ff55iyfVEk5U12vM_?sp{T zlZ^vhf2BG8%X0;^dE;AP3$%?{Az7!k{^0mBc}iJyMeGX&`>V5lH;+LWb73nS{otaN zeL0-_C22*;))vL@McwgRAHSUSd$}y|N`S{s%e zv^0Fyw%`nFxRe?6XTFDgd@#F<`zgo=feW|`NK4Vf8*%QwMMXyxqz{YRT9m?2u}6s+ z`B$5?BdXbp^NgzQ&tjz3d@8_Ih+Y(wffu68qi4E5qr(l=JaICer6-XmHgkIWj zN1w{SSf2tll4?>=UZz#6Ni5LJ zye*lYaWHZ=1>2004f6>Fabp=#a<3BaD8g94$;xn zJ^ibvbS&zKeV0uosx0kqU4sk!thUKlObe?SI9k}dQ;4{(J^P*7*aZbPk>_ zRqHrl^E(wlQB1k_w$$(zz@VEF8@OMXGdoc(;4eoX^_Jsi|2%LpNawJhqC8qsbWyl6 zn>6Ub_EZ;XQYvMdR+p4det|(ayUb?WT$8`aNdK6 z0hRDwnDn!wmM-Y3t$Ins(#`MXt~mOuWU+TJ zjI7kKvkaVxbBoWZDQtnB2fP$L@!P4|ovdIzZXTE(cnTa*e%BYuto&S+wF}AqRHsRe zs-QY6F!r@{Qp89P7%O25H_WQWz5cpv)lKrATfjSHx^ZOE?iR>$3???8g8m@$(dShG zY$tXKifCG?&9(LR4e2OzaoM^1mn6|$`_==KyHykQE5S#mF_B)8KHEPsmxt2_c0pwN97AK7QT&$mQW%FJ54o7V3kq`5$E6rF4YNC)m01IWBkmEnAxi7 zY12_@`(F3>3+_A)6LCK=kM`igq4FQBa5XXyaJqgw`l2DC8$Du7qcF{XQk&BLkRA>q z%du$YTfMEAv8J|hh?nFnMy|yC#q*D!t@JxLIrsQ>BRz-1HDXdWRK#0t-XIzYMzH z)ddO*=N+FEIgO`6v5D^GHCm_A{csDrn>wRcUp7> z)}`eU#`SPD*k=pZvOr+)FY@bfyq+QbEOLP_(7m#dclgA;)KR^`X0n#RZ5{hEy%2E1 z#B4L@L-BHv%r$T~h$^>v&sjh$sIp~*=O@rYjWTo6DJV{Ma>LW8ThY|8H+AAfHu8aa zgtX>aTFD2o_0TA3&_nJpo>q*Ylti_%Y!M+}QfpCiu$<#KU@P^|oK<|8n#kj&0MU*X zNAv11_hRb%dNsihxS75Vkon1!3nX~{&c3pPH%YO0gHVCrjq1O6r*{#h^Di`K-b_YO zp*cb;_uT3I7|xth+$HpW?s50r(vt1AADz#!?;doWDV(A$&#MiIVY7%i;fA;G?2oiw zK8oCpytvPN%Ts@PUL>s4narb=~zZmnUgJvF>nQ0Oj0 z*K>z+)x#=7VCEak36ZpK7IW9Vma8uz+g5EuL+>oTT1nA%U-v3D9KsTx%jd2ie5qhtELG!>s0%-$($!{wuOL`mvY zzdh)I9$PjhRMC%aCPCngQdG5R9vsPV>rNTU(IthOVeN+2dEx}ri>5bEMc|7R@z4df z*OQoD4}Zgk7D)4nlFSWH&EJ<-S)9GysFdI2q)22dmgfL4>BeA)ToG#(e9X%yL!n^j zwC~3wbvNjT!v%_K_p@^cFMD)25C+@JJ%p(pN?62f$XvH`VvWc2jYo+zMYa>I zu4I%T5GT)NG5b;JXNTVF&x(7M$u_R6Qtk58R)xwo5ko3|EFaGUK4#M^jMrC<>O<9p zX{V>R1;ZOj-=&$dF7I~Il2tqck%MM!Zj_F?JPL@;$>!RlTFjlK8GPF#+^mAsVUxNcBCec{%|SZ5pM|#w#2$6R4G_V?~Om{@bJ9~ zzAJp$z1FyAZVw|>RaiLRzA5kTZF^l#2P8ne4)Q=|+Ax3+q)7L~@P!>^Pk)}{U;Pro z1Hgv@ZGyVXfFN+&I#neQ9P3&0srRNu4pqu1W9L_`pf&i(Ns`!M2>b{JS}!t>vjcX` z=K?<*zN$jaOpWP9H3>+EN)$mBAAoorlKp!86F-4Pt^FIitt%!?>r`QV)ASkT`cmAs z@Fle1x@OQHr9c)X-BGn+Db!8bcz&keeiEUg<@)sCL_+TH!RZ@fO=RoWk()vGMIC{_ zz}|JiC@=Of4Q-^(o>DtrK$u-=3Z#yOBWCKiP4EgZ(D4g>Mv|1BZFb>Ln0t;JB4zKT zBP7$r8x=eSQ}xA5uz(}sRsfarEUiJ_L3}@{%rSkPUR@}krYXjfY%tg~@Zq!C>lJK{ zht4(}>!PhmSfkW@^N5#f*)i9#C%Y9l$0#u?`uals)|2eJuY7)Ls`U)j&@RjD*7f6u z{jogFkuotB3(V)<4qfJn9=LCpv}a0frF|!OD&uJed`%jA@+TLJIb6nE#JuUT>?Zpe z1|T?!W&(kEZNGM9_kao>!A?O>*@9LR32~=XlMJzwutjVOxbDdjWDa)h=r~Y5vX*qu zA-#gLKbCBixuytBd6`tZN!zUBB`nW=Lee|lc%_RDuguMp4@g=csX+XYqGn{6)F@~_ zIpW-5Ah5(twJmrHEKCgty%nC~NR4ePld ztXJ8?1Rdt9r$>^d6u?f92rZrat*{@sGrKKst#V%4x+>DW@?lbqk)cLfi_=ThCwMjF z=u&Q2{}c7@aQZ@UR4iti;o?dB^!F1w@}MpI=qUnL_JHHzH1bt%UgM z7i>f-3o?yf%maFb67~UAcQ_gsMwqW?# zHMoxjCQ2_Mm;xzU!oFAd`b*5r0#;Uw3FWLVqG0V{Myby-9-!X?0{?9@=o0Dsv3iyQ zqX(}D-+R3ru7GPC9M!W#eBa-?YOx(Ax82V)5(Iz^s0#yD6MC@)MvY`%YWw*0_r>)Q zGK0OX&O`4tA@3{#5zxSrMu@j{Y|8jqXY1&ogWbmu?OSuzrnTk8QS>F$)~Fhj2huKf z>xXwLYBeg4Q<=DbPp(!4Dp~S#G`iWSE%a0;wkig93Hh)G>?uUfbd8CUtmrBq8E5#NHtH8s6^01=uYf^#h`1oj0MiQ+=AU>fnf z9O&=U*kD|I^(;Wq!{N3#wqV=IYqr*=3A>5VFDK$BYxA8k1j8-e8`9ZNx7SjTIXhcx zv&yc^avj38N*hK@Wnk_Vs$zi;~q(Lg*HpI>(!@hYJ4b_y7F<8P>#fWxgZx^NGnX z1KHb;9I|T-;kP^} z(T8qp$IV~TJQzX(NZqi9%X9P;j9JTjL*V^TyK(P@ScnO|-f%k2sTe>|F|y-K{xacE zw5w?u?#%dP$k7?2l**I@OyFFKe^+JXIRx>)ZUY})`}uebs2K7iVEsA&-yn-3A^Ed6 zrfJ=_C%Y({pvQ82S!*v*Q7dr`G?qPD*jskP`SD#beNxY|FU`)ko8DIxa+&B!v)&AR z6!L@~v~pZ!KZ33@0Mc^s^#&aRZ1`1YSaR!#=suSC!7{pvlLPKHt9W|X0EWC-Ns)>{ zvc{$I(_6r-A><<+1%#i=Ttav!eyMBz)Bi>(^4uo~_qlHRF3HBOoXo*4<)&emQqmt*fiT((|_#@EpGOD+LU%j^Bf=bOj zso`U?%9nZ}7sjU1hftEB3T3~alSnVJ$@fDQHF{|kfs}E_7lrL>N;8TEKf93Y%*kUZk6$k9?ZdC8@mzOreP2@33!H~b601@*w>~16m+nlbY zV=socRx~Ove3sKi%{j=IC$3);(o+M?qze_?0t*u6D59pTDr&C=Y#)Z;s!+5=@?w>uMdoA`XDDwl2vMU= zi;x9BnyfQi7M~DX(m3AjN5KHi;IGH#!2iE|uR#fHI(Sy0eyM#6q({_Vtnv~WD%8%t zwngHT@EfR&?>ShU$xnD%;HU+|ZvgB!R=B6H-!EDF@X$5)Ri`Fo8DaGONOmiF>mZxc z0rr-a<3ujSJ?Pj6{-)eQIY#To6?EGy*gY8=z4`AhwjPFvShs9g2-&`(+q;^1I7A%M zvAY#BY7ghA|M>YwvS-^R=JFvhB&qSLRPTafHU)};?_LHE;kXCP!+(&F~0oj|*O(o^v^CahdQ}qtc z`Wq4v8%eHKgBv-Q2n-6D6->xzGA|8Ga;ms37JNR%inA#F!u1O$b)`NHYI5RvZDY$- zb4FCRy_Pv-DHJKDfHcEbjC=jze7@zTbkdV69A2u1Q5e2UTdw!X<~ykPr6aXo02g zgZ+s@ym1yyt{xYvobk1C%6?gKC07$))uc2vcoM-7C1oXoXTfh)uVB2uC0=|*lQ*GE z9?R37@aah`gf$~7v@}HIj0gA5?hQH*UGsfj#+WuX6i0KUy23EB!c3pa9Q4N=hRD~w zOUI;$8uXt>w8pO3^4FXyM(b!sE|SvmqmIL2wgO4lm+4+kJOC1+xsx(*<97Xyxn{je z4D3cHk1@+C{99Hi&ciyZ&B)DhrQJSfF5*+3zPxFSC+i0s6P7BJHu{%T| z;(!HP_4|ewRROlJpvoNP1`Z^SYg=WQl3|*#A!``-YPg(N1eR$h7Tz(r0{_17PGQQK zXQ#mD!W|U}#hdN|Bd{>61oUSqq4lp7%}EgXNp1TEKx87igT$*5vb~$6xSiO%XQ$?7 zr*M$b!zH+l+NWR@T0|-^xC6IEEdF zVr(p{mgwPl>MKL3Z#E~e7m;}Of*~?+sUalT_m%~9D6V;8aA~E!>L>Xp{lF8$S5

ZWG%N%Vvx#!>g7m5?B>CDK8N|wIjHRoFnERS%UkO;0 z#;16r63c!BZ{?%!!s?#O2belIz3pZm8i1Z1ShrDQSX3yh96EjDN8;6_cAMYhC`7#w-o=7?^X;=lk6A zs;xoGvJiL&HRp93U)E|9_|S+(iUuY$B;ib!>px`2vd37SgLQSSzJ5K-4A!>hMlg~x z%q^O0;MAB;b`n!Cu&mtBgH_C(CBmyk(Nh-`0^8lZP+N=&D)mj)iu!FcBjjqiqpCif zg^Yg`IL+%ASk3iv3_y##5`r!`la?N3Hg#4juOA-XdJuD{-s%`3wZSVhDTJtygj$21p?)Yy-}TbeXOF*sEBaZqOhSI@hQc`szlGy!A81Sewr|-K|59rC)be8KDONo3nV0`C58U;`V4viko2hlDj`KOM+A!zDf~o3F3{TP}UjR2G zKiO(8bbNW#x{VL#i@g4I_wAN$)%$a~XAACluzDevGLPpiw!$7B8H0B<-i52O?F_bl zST?)rSL)8K;@_uFuoN~)^4%Ac{=?7Vx(N&0D}@f$jyIp0FudnuFawhQU(3|HIL@M(GtMpHS|3b3vnan!=>&rg4M6urSTo#ux-RZUO{>W(&?^5}dnSv!lrP~AN zIUZ;AU?!@?;A8UoKZD>O=Z~gS<|$sy(aHID>Llxw-+a%yS0v9}{65tIIBWU$qU+cB z-G8#P^A~6D3W*Y%b2~m@N8eMm%x@E%+!k9K9kzKc@v5-x-o=vDxBX=+<_GL(PhI={ zrrmk9uh!pOLU*t$vtJisT%5l6@1$Sc^WVxk)vKM&wOP6RPJi=!(>BWqUvyvIS{HjO zI{wz)tzY+q8`zn<8nK5RJaNKC&cT%bR(}1qf2Y6kf05t(bAB#xA7|d1%4(}G&&&O; zoXz)}9Ck4;C-?n2lb@*pLeFk??aAR#=qWpKP!b4aGnglTd~<8=*R{u{*DgNI-)?ha z*5}Zs&}ohWT4%xpKl2zcY(Lw|Q#Nb!BVPT8>wlsb#b*TFz8!h<)_JY0mNloMQg1LF z~nlQpM%4OZOf2U3mLITwr!|Z{qsE3oB#SYjiqoi%41ZvB|A~arO6E zZfh6(2dO2RsagU1{sm%oxa*8Ip@7Fh5% zWiy9H#$9`>dyT#GaqOAC=BA|u&V0oa+zi|!W46sqU!7g2xb@l|_oc2&>(h>_l$9NN zey-?Kf=%mm?%u^2F~XCMd|P|h?%B8JZ{zbf{1%^D@bU2Pr<2chBpbAto(zo^8`yE7g$Pk${{wmkW<#vjk65&s!7 z-(8+{@U2*C=Y)4g+V7H^IDdM)GM>15sqe#Ft#6luKk_YH?Y!yL@4$RL-&f_gm0H_d zEhMD(@~_Ri=V@YQd^(f;R=UT{Ma>odh7AwP<=FfsZ8ezB%sM4&?6&bk+WKn2OIvmq zSFevzP^`=3KFYM=B+Jfo25U|+#t3)4`%*6yo%KB^%5>|s`PDMnhFkXbsPqamwlfHE zoILnk%Z-C==lLIw`T6_gUYUhopS|^Na_Z5$XI?EAS{W9xY5#%UWj!f8li2K{E?xZc z*6;VRpo+<%8~>fTy1d diff --git a/tutorial/westeros/_static/cf_wind.png b/tutorial/westeros/_static/cf_wind.png new file mode 100644 index 0000000000000000000000000000000000000000..e267b7a7e6cf563768b54b69b9082dc789a7820f GIT binary patch literal 61042 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 Sq*LqU9~VbYhcde}ss9hRv(3!_ literal 0 HcmV?d00001 diff --git a/tutorial/westeros/_static/load_seasons.JPG b/tutorial/westeros/_static/load_seasons.JPG deleted file mode 100644 index 7093ad39c2c14395f0b1f7ac8fdd7af8e2362146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39957 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

(ere{SI+TphgHHRJw&w4D9=D8KORx} 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" + "" ] }, { @@ -31,7 +31,7 @@ "metadata": {}, "source": [ "Seasonality can be relevant to some supply technologies as well. For example, Westeros has more windy days in winter months compared to summer. This means the capacity factor of a wind power plant is higher in winter compared to summer. Figure below, rendered from renewables.ninja*, shows the monthly capacity factor of wind power plant somewhere near Westeros. \n", - "\n", + "\n", "\n", " *You can also find the capacity factor of wind and solar PV for your location at www.renewables.ninja, as we found for a place near Westeros." ] From ac808078881b530de9126d979bdafc9a093f0a4e Mon Sep 17 00:00:00 2001 From: Behnam Zakeri <30926636+behnam-zakeri@users.noreply.github.com> Date: Mon, 23 Sep 2019 00:16:30 +0200 Subject: [PATCH 15/18] Update westeros_seasonality.ipynb --- tutorial/westeros/westeros_seasonality.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial/westeros/westeros_seasonality.ipynb b/tutorial/westeros/westeros_seasonality.ipynb index 45c974de0..7e0f739e9 100644 --- a/tutorial/westeros/westeros_seasonality.ipynb +++ b/tutorial/westeros/westeros_seasonality.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# \"*Winter is coming!*\": Modeling of variability in supply and demand\n", + "# \"*Winter is coming!*\": Modeling of variability in energy supply and demand\n", "Time-dependent variations in demand and supply are common characteristics of an electricity system, and Westeros is not an exception. This tutorial helps to learn how to add sub-annual time steps to a MESSAGEix model and investigate the impact of the variability in supply and demand. This tutorial is structured as follows:\n", "1. A short note on seasonality\n", "2. Adding sub-annual time steps\n", From f3085e902f4facb0585b7881366cf311c5bc8274 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 24 Sep 2019 12:11:25 +0200 Subject: [PATCH 16/18] plotting units updated for capacity related figures --- tutorial/utils/plotting.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorial/utils/plotting.py b/tutorial/utils/plotting.py index c7ecbee42..b96bb2d35 100644 --- a/tutorial/utils/plotting.py +++ b/tutorial/utils/plotting.py @@ -79,7 +79,7 @@ def plot_capacity(self, baseyear=False, subset=None): df = self.model_data('CAP', baseyear=baseyear, subset=subset) df.plot.bar(stacked=True) plt.title('{} Energy System Capacity'.format(self.country.title())) - plt.ylabel('GWa') + plt.ylabel('GW') plt.xlabel('Year') plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5)) @@ -91,7 +91,7 @@ def plot_new_capacity(self, baseyear=False, subset=None): df = pd.concat([h, m]) if not h.empty else m df.plot.bar(stacked=True) plt.title('{} Energy System New Capcity'.format(self.country.title())) - plt.ylabel('GWa') + plt.ylabel('GW') plt.xlabel('Year') plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5)) From a36ac906998abb6f8b605892176fb15adb9e6f9c Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 24 Sep 2019 12:17:57 +0200 Subject: [PATCH 17/18] cleanup and making units consistent --- RELEASE_NOTES.md | 4 ++- tests/test_tutorials.py | 3 ++- tutorial/westeros/westeros_baseline.ipynb | 6 ++--- .../westeros/westeros_emissions_bounds.ipynb | 12 ++++++--- .../westeros/westeros_emissions_taxes.ipynb | 25 +++++++++++-------- .../westeros_flexible_generation.ipynb | 17 ++++++++----- tutorial/westeros/westeros_seasonality.ipynb | 6 ++--- 7 files changed, 44 insertions(+), 29 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index ee687bf55..66f31b6d0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,8 @@ # Next Release +- [#232](https://github.com/iiasa/message_ix/pull/232): Adding a Westeros tutorial for modelling seasonality and updating the existing ones + # v1.2.0 MESSAGEix 1.2.0 adds an option to set the commodity balance to strict equality, @@ -31,7 +33,7 @@ other improvements. See the ixmp release notes for further details. - [#154](https://github.com/iiasa/message_ix/pull/154): Enable documentation build on ReadTheDocs. - [#138](https://github.com/iiasa/message_ix/pull/138): Update documentation and tutorials. - [#131](https://github.com/iiasa/message_ix/pull/131): Update clone function argument `scen` to `scenario` with planned deprecation of the former. -- [#232](https://github.com/iiasa/message_ix/pull/189): Adding a Westeros tutorial for modelling seasonality and updating the existing ones + # v1.1.0 diff --git a/tests/test_tutorials.py b/tests/test_tutorials.py index e2b718bd0..2a30dae5e 100644 --- a/tests/test_tutorials.py +++ b/tests/test_tutorials.py @@ -26,7 +26,8 @@ # b. Expected objective value. tutorials = [ (('westeros', 'westeros_baseline'), - [('solve-objective-value', 233404.359375)]), + [('solve-objective-value', 238193.291167)]), + # on Python 2: # 'solve-objective-value', 187445.953125), (('westeros', 'westeros_emissions_bounds'), []), diff --git a/tutorial/westeros/westeros_baseline.ipynb b/tutorial/westeros/westeros_baseline.ipynb index 76225a368..2f077d7fc 100644 --- a/tutorial/westeros/westeros_baseline.ipynb +++ b/tutorial/westeros/westeros_baseline.ipynb @@ -659,7 +659,7 @@ "source": [ "capacity_factor = {\n", " 'coal_ppl': 1,\n", - " 'wind_ppl': 0.4,\n", + " 'wind_ppl': 0.36,\n", " 'bulb': 1, \n", "}\n", "\n", @@ -1052,7 +1052,7 @@ " 'node_loc': country,\n", " 'year_vtg': vintage_years,\n", " 'year_act': act_years,\n", - " 'unit': 'USD/kWa',\n", + " 'unit': 'USD/kW',\n", "}" ] }, @@ -1066,7 +1066,7 @@ }, "outputs": [], "source": [ - "# in $ / kWa\n", + "# in $ / kW\n", "costs = {\n", " 'coal_ppl': 30,\n", " 'wind_ppl': 10,\n", diff --git a/tutorial/westeros/westeros_emissions_bounds.ipynb b/tutorial/westeros/westeros_emissions_bounds.ipynb index 7bd258b4a..640b58d3d 100644 --- a/tutorial/westeros/westeros_emissions_bounds.ipynb +++ b/tutorial/westeros/westeros_emissions_bounds.ipynb @@ -72,7 +72,7 @@ "metadata": {}, "outputs": [], "source": [ - "# first we introduce the emission specis CO2 and the emission category GHG\n", + "# first we introduce the emission of CO2 and the emission category GHG\n", "scen.add_set('emission', 'CO2')\n", "scen.add_cat('emission', 'GHG', 'CO2')\n", "\n", @@ -82,10 +82,14 @@ " 'year_vtg': vintage_years,\n", " 'year_act': act_years,\n", " 'mode': 'standard',\n", - " 'unit': 'USD/GWa',\n", + " 'unit': 'tCO2/kWa',\n", "}\n", "\n", - "emission_factor = make_df(base_emission_factor, technology= 'coal_ppl', emission= 'CO2', value = 100.)\n", + "# adding new units to the model library (needed only once)\n", + "mp.add_unit('tCO2/kWa')\n", + "mp.add_unit('MtCO2')\n", + "\n", + "emission_factor = make_df(base_emission_factor, technology= 'coal_ppl', emission= 'CO2', value = 7.4)\n", "scen.add_par('emission_factor', emission_factor)" ] }, @@ -105,7 +109,7 @@ "outputs": [], "source": [ "scen.add_par('bound_emission', key=[country, 'GHG', 'all', 'cumulative'],\n", - " val=4000., unit='tCO2')" + " val=500., unit='MtCO2')" ] }, { diff --git a/tutorial/westeros/westeros_emissions_taxes.ipynb b/tutorial/westeros/westeros_emissions_taxes.ipynb index 22becbab3..c2a1fac03 100644 --- a/tutorial/westeros/westeros_emissions_taxes.ipynb +++ b/tutorial/westeros/westeros_emissions_taxes.ipynb @@ -85,7 +85,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "When setting a cumlulative bound, the undiscounted price of emission is the same in different model years (see the marginals of equation `EMISSION_CONSTRAINT`). After considering the year-to-year discount factor, we observe an ascending trend in emission prices shown in `PRICE_EMISSION` above. This means the emission price in later years is higher because as the value of money in the future is lower compared to today. " + "When setting a cumlulative bound, the undiscounted price of emission is the same in different model years (see the marginals of equation `EMISSION_CONSTRAINT`). However, considering the year-to-year discount factor, we observe an ascending trend in emission prices shown in `PRICE_EMISSION` above. This means the emission price in later years is higher as the value of money in the future is lower compared to today. " ] }, { @@ -133,7 +133,7 @@ " 'node': 'Westeros',\n", " 'type_year': horizon,\n", " 'type_tec': 'all',\n", - " 'unit': 'tCO2',\n", + " 'unit': 'MtCO2',\n", " 'type_emission': 'GHG',\n", " 'value': emissions.set_index('year').loc[[700, 710, 720]].lvl\n", "}\n", @@ -174,7 +174,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Comparing the emission prices between the two scenarios at this stage, we see that the values are not identical. The reason is that when we introduce emission bounds per year, the price of emission in each year reflects the cost occuring when reducing one more unit of emission in that year. However, in the scenario with a cumulative bound over the entire model horizon, the price of emission reflects the cost of the system in reducing one more unit of emission in any year decided by the model to minimize the costs." + "Comparing the emission prices between the two scenarios at this stage, we see that the values are not identical. The reason is that when we introduce emission bounds per year, the price of emission in each year reflects the cost occuring when reducing one more unit of emission in that year. However, in the scenario with a cumulative bound over the entire model horizon, the price of emission reflects the cost of the system in reducing one more unit of emission over the entire model horizon." ] }, { @@ -220,19 +220,24 @@ " 'node': 'Westeros',\n", " 'type_year': [700, 710, 720],\n", " 'type_tec': 'all',\n", - " 'unit': 'tCO2',\n", + " 'unit': 'USD/tCO2',\n", " 'type_emission': 'GHG',\n", " 'value': emission_prices.set_index('year').loc[[700, 710, 720]].lvl\n", "}\n", "\n", + "# in case you need to add the new unit to the platform\n", + "mp.add_unit('USD/tCO2')\n", + "\n", "tax_emission = make_df(base_tax_emission)\n", "scen_tax.add_par('tax_emission', tax_emission)" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 16, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "scen_tax.commit(comment='setting taxes on emissions')" @@ -260,11 +265,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Comparing the emissions trajectory in the tax scenario to the outcome in the cumulative budget constraint scenario, we notice that the values in the years 700 and 720 are identical, but the value in 710 is different.\n", - "\n", - "This is the flip side of having an identical shadow price on the constraint in the two previous examples - at that price, the costs between wind and coal (with the tax) are exactly equal, hence the optimal solution is not unique.\n", - "\n", - "This is usually only an issue in small, stylized problems..." + "# Question\n", + "- How does these prices compare to the scenario with a cumulative emission bound (`scen_bd`)?\n", + "- Try setting the emission tax again by using emission prices obtained from the scenario with yearly bounds on emissions (`scen_bd_by_year`). What is the difference in emissions (i.e., variable `EMISS`)?" ] }, { diff --git a/tutorial/westeros/westeros_flexible_generation.ipynb b/tutorial/westeros/westeros_flexible_generation.ipynb index d4c2d3bb1..fa69afe4b 100644 --- a/tutorial/westeros/westeros_flexible_generation.ipynb +++ b/tutorial/westeros/westeros_flexible_generation.ipynb @@ -89,26 +89,31 @@ " 'year_vtg': vintage_years,\n", " 'year_act': act_years,\n", " 'mode': 'standard',\n", - " 'unit': 'USD/GWa',\n", + " 'unit': 'tCO2/kWa',\n", "}\n", "\n", - "emission_factor = make_df(base_emission_factor, technology= 'coal_ppl', emission= 'CO2', value = 100)\n", + "# adding the new unit to the model library\n", + "mp.add_unit('tCO2/kWa')\n", + "\n", + "emission_factor = make_df(base_emission_factor, technology= 'coal_ppl', emission= 'CO2', value = 7.4)\n", "scen.add_par('emission_factor', emission_factor)" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 9, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "base_tax_emission = {\n", " 'node': country,\n", " 'type_year': [700,710,720],\n", " 'type_tec': 'all',\n", - " 'unit': 'tCO2',\n", + " 'unit': 'USD/tCO2',\n", " 'type_emission': 'GHG',\n", - " 'value': [1., 2., 3.]\n", + " 'value': [10., 20., 30.]\n", "}\n", "\n", "tax_emission = make_df(base_tax_emission)\n", diff --git a/tutorial/westeros/westeros_seasonality.ipynb b/tutorial/westeros/westeros_seasonality.ipynb index 7e0f739e9..be93f1acd 100644 --- a/tutorial/westeros/westeros_seasonality.ipynb +++ b/tutorial/westeros/westeros_seasonality.ipynb @@ -86,7 +86,7 @@ "base = message_ix.Scenario(mp, model, scenario)\n", "\n", "# Cloning a scenario for adding time steps\n", - "scen = base.clone(model, 'westeros_seasonal','introducing seasonality', keep_solution=False)\n", + "scen = base.clone(model, 'westeros_seasonal', 'introducing seasonality', keep_solution=False)\n", "scen.check_out()" ] }, @@ -335,7 +335,7 @@ "source": [ "# Modifying capacity factor\n", "# Retrieving average yearly capacity factor of wind in the model\n", - "cf_wind = scen.par('capacity_factor', {'technology':'wind_ppl'})['value'].mean()\n", + "cf_wind = scen.par('capacity_factor', {'technology': 'wind_ppl'})['value'].mean()\n", "\n", "# Passing seasonal capacity factors as shares of the yearly value\n", "cf_data = {'winter': 0.46/cf_wind, 'summer': 0.25/cf_wind} \n", @@ -538,7 +538,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Adding seasonality to the model shows the impact of this matching between wind and electricity demand on the results, which can be averaged out if the yearly demand is taken into account. The capacity factor of wind is near actual values in this scenario (0.46 in winter and 0.25 in summer), while it is 1 in the baseline scenario. Therefore, we observe relatively much higher installed capacity compared to the baseline, and as such a more expensive system. " + "Adding seasonality to the model shows the impact of any coincidence or mismatch between wind generation and electricity demand. This seasonality can be averaged out if the yearly values are taken into account. The capacity factor of wind is different in winter and summer, while it was an average yearly value in the baseline scenario. Without any bound or tax on emissions, coal is the cheapest option. Wind will be installed only when coal cannot ramp up quickly to meet the whole demand, mainly in winter. Therefore, we observe relatively much higher installed capacity for wind compared in this scenario to the baseline, even wind is more expensive. Thus, we see a more expensive system when considering seasonality (compare the objective values). " ] }, { From 41c10cc6b5c886d73e5b1465bb3ffd1daedae8f1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 26 Sep 2019 12:01:32 +0200 Subject: [PATCH 18/18] updates after Paul's comments --- tutorial/README.rst | 1 + tutorial/westeros/westeros_baseline.ipynb | 14 +++++++--- .../westeros/westeros_emissions_taxes.ipynb | 25 ++++++++++------- .../westeros/westeros_firm_capacity.ipynb | 15 +++++++++-- .../westeros_flexible_generation.ipynb | 4 +-- tutorial/westeros/westeros_seasonality.ipynb | 27 ++++++++++++------- 6 files changed, 60 insertions(+), 26 deletions(-) diff --git a/tutorial/README.rst b/tutorial/README.rst index 4d012bcdd..3c9ce7cba 100644 --- a/tutorial/README.rst +++ b/tutorial/README.rst @@ -67,6 +67,7 @@ uses it to illustrate a range of framework features. 3. `Limit emissions using a tax `_ instead of a bound. 4. `Represent both coal and wind electricity `_, using a “firm capacity” formulation: each generation technology can supply some firm capacity, but the variable, renewable technology (wind) supplies less than coal. 5. Represent coal and wind electricity using a different, `“flexibility requirement” formulation `_, wherein wind *requires* and coal *supplies* flexibility. +6. `Variablity in energy supply and demand `_, by adding two sub-annual time steps (winter and summer). Austrian energy system ---------------------- diff --git a/tutorial/westeros/westeros_baseline.ipynb b/tutorial/westeros/westeros_baseline.ipynb index 2f077d7fc..1cf7be74f 100644 --- a/tutorial/westeros/westeros_baseline.ipynb +++ b/tutorial/westeros/westeros_baseline.ipynb @@ -47,7 +47,7 @@ "source": [ "## Online documentation\n", "\n", - "The full framework documentation is available at [https://messageix.iiasa.ac.at](https://messageix.iiasa.ac.at)\n", + "The full framework documentation is available at [https://message.iiasa.ac.at](https://message.iiasa.ac.at)\n", " \n", "" ] @@ -77,7 +77,7 @@ "source": [ "## MESSAGEix: the mathematical paradigm\n", "\n", - "At its core, *MESSAGEix* is an optimization model:\n", + "At its core, *MESSAGEix* is an optimization problem:\n", "\n", "> $\\min \\quad ~c^T \\cdot x$ \n", "> $~s.t. \\quad A \\cdot x \\leq b$\n", @@ -347,6 +347,8 @@ }, "source": [ "The `COMMODITY_BALANCE_GT` and `COMMODITY_BALANCE_LT` equations ensure that `demand` for each `commodity` is met at each `level` in the energy system.\n", + "The equation is copied below in this tutorial notebook, but every model equation is available for reference in\n", + "the [Mathematical formulation](https://message.iiasa.ac.at/en/stable/model/MESSAGE/model_core.html#) section of the MESSAGEix documentation.\n", "\n", "$\\sum_{\\substack{n^L,t,m \\\\ y^V \\leq y}} \\text{output}_{n^L,t,y^V,y,m,n,c,l} \\cdot \\text{ACT}_{n^L,t,y^V,y,m}$\n", "$- \\sum_{\\substack{n^L,t,m, \\\\ y^V \\leq y}} \\text{input}_{n^L,t,y^V,y,m,n,c,l} \\cdot \\text{ACT}_{n^L,t,m,y}$ \n", @@ -501,7 +503,9 @@ "- receives *input* in the form of the \"electricity\" *commodity* at the \"final [energy]\" *level*, and\n", "- *outputs* the commodity \"light\" at the \"useful [energy]\" level.\n", "\n", - "The `value` in the input and output parameter is used to represent the effiecieny of a technology (efficiency = output/input). For example, input of 1.0 and output of 1.0 for a technology shows that the efficiency of that technology is 100% in converting input commodity to output commodity." + "The `value` in the input and output parameter is used to represent the effiecieny of a technology (efficiency = output/input).\n", + "For example, input of 1.0 and output of 1.0 for a technology shows that the efficiency of that technology is 100% in converting\n", + "the input commodity to the output commodity." ] }, { @@ -1325,7 +1329,9 @@ "source": [ "### Electricity Price\n", "\n", - "And how much does the electricity cost? These prices are in fact **shadow prices** taken from the **dual variables** of the model solution. They reflect the marginal cost of electricity generation (i.e., the additional cost of the system for supplying one more unit of electricity), which is in fact the marginal cost of the most expensive generator. \n", + "And how much does the electricity cost? These prices are in fact **shadow prices** taken from the **dual variables** of the model solution.\n", + "They reflect the marginal cost of electricity generation (i.e., the additional cost of the system for supplying one more unit of\n", + "electricity), which is in fact the marginal cost of the most expensive operating generator. \n", "\n", "Note the price drop when the most expensive technology is no longer in the system." ] diff --git a/tutorial/westeros/westeros_emissions_taxes.ipynb b/tutorial/westeros/westeros_emissions_taxes.ipynb index c2a1fac03..38cab3358 100644 --- a/tutorial/westeros/westeros_emissions_taxes.ipynb +++ b/tutorial/westeros/westeros_emissions_taxes.ipynb @@ -85,7 +85,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "When setting a cumlulative bound, the undiscounted price of emission is the same in different model years (see the marginals of equation `EMISSION_CONSTRAINT`). However, considering the year-to-year discount factor, we observe an ascending trend in emission prices shown in `PRICE_EMISSION` above. This means the emission price in later years is higher as the value of money in the future is lower compared to today. " + "When setting a cumlulative bound, the undiscounted price of emission is the same in different model years (see the marginals of\n", + "equation `EMISSION_CONSTRAINT`). However, considering the year-to-year discount factor, we observe an ascending trend in\n", + "emission prices shown in `PRICE_EMISSION` above. This means the emission price in later years is higher as the value of money in\n", + "the future is lower compared to today. " ] }, { @@ -94,9 +97,11 @@ "source": [ "## Make a new scenario with emission bounds by year\n", "\n", - "In the previous example, we imposed a bound on emissions over the entire model horizon by using the `type_year` as 'cumulative' in the parameter `bound_emission`. Now, we will create a similar scenario, but the emission constraint will be defined per year.\n", + "In the previous example, we imposed a bound on emissions over the entire model horizon by using the `type_year` as 'cumulative'\n", + "in the parameter `bound_emission`. Now, we will create a similar scenario, but the emission constraint will be defined per year.\n", "\n", - "For the sake of comparison, the per-year emission values will be chosen exactly in line with the optimal emission trajectory obtained from the solution of the previous scenario." + "For the sake of comparison, the per-year emission values will be chosen exactly in line with the optimal emission trajectory\n", + "obtained from the solution of the previous scenario." ] }, { @@ -174,7 +179,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Comparing the emission prices between the two scenarios at this stage, we see that the values are not identical. The reason is that when we introduce emission bounds per year, the price of emission in each year reflects the cost occuring when reducing one more unit of emission in that year. However, in the scenario with a cumulative bound over the entire model horizon, the price of emission reflects the cost of the system in reducing one more unit of emission over the entire model horizon." + "Comparing the emission prices between the two scenarios at this stage, we see that the values are not identical.\n", + "The reason is that when we introduce emission bounds per year, the price of emission in each year reflects the cost occuring\n", + "when reducing one more unit of emission in that year.\n", + "However, in the scenario with a cumulative bound over the entire model horizon, the price of emission reflects the cost of the\n", + "system in reducing one more unit of emission over the entire model horizon." ] }, { @@ -234,10 +243,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "scen_tax.commit(comment='setting taxes on emissions')" @@ -265,7 +272,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Question\n", + "# Exercises\n", "- How does these prices compare to the scenario with a cumulative emission bound (`scen_bd`)?\n", "- Try setting the emission tax again by using emission prices obtained from the scenario with yearly bounds on emissions (`scen_bd_by_year`). What is the difference in emissions (i.e., variable `EMISS`)?" ] diff --git a/tutorial/westeros/westeros_firm_capacity.ipynb b/tutorial/westeros/westeros_firm_capacity.ipynb index 889176df7..d9b482d81 100644 --- a/tutorial/westeros/westeros_firm_capacity.ipynb +++ b/tutorial/westeros/westeros_firm_capacity.ipynb @@ -67,7 +67,13 @@ "source": [ "## Improving the Representation of Electricity Sector\n", "### Peak load factor\n", - "The input demand for electricity (notice: not the demand for useful light but for electricity) in the model shows the average electricity demand in the given time (which in our example is a year). However, power systems need enough installed capacity not only to cover the average electricity demand but also to meet the peak demand, i.e., maximum load throughout that time. This feature can be specified in the model using parameter `peak_load_factor`. For example, if annual average load is 5 GWa peak load amy be 10GW, hence, the peak load factor is equal to 2." + "The input demand for electricity (notice: not the demand for useful light but for electricity) in the model shows the average\n", + "electricity demand in the given time (which in our example is a year).\n", + "However, power systems need enough installed capacity not only to cover the average electricity demand but also to meet the peak\n", + "demand, i.e., maximum load throughout that time.\n", + "This feature can be specified in the model using parameter `peak_load_factor`.\n", + "For example, if annual average load is 5 GW, the peak load may be twice as high, at 10 GW; hence, the peak load factor is equal\n", + "to 2." ] }, { @@ -94,7 +100,12 @@ "metadata": {}, "source": [ "## Reliability of Power System\n", - "In roder to meet demand reliably, the power system needs to maintain dispatchable or so called firm capacity at any time. Some technologies like coal power plants can fully contribute to the required firm capacity, i.e., 1 MW installed capacity of these technologies provide 1 MW firm capacity. However, some other technologies such as variable renewables such as wind are not fully reliable when the power system needs them. As such, the capacity value of wind power plant is considered to be lower than 1. In this example, we assume that 10% of electricity supply by wind is 80% reliable, while he remaining 90% installed capacity can only contribute by 5% to the required firm capcity. As such, we divide wind power into two parts with two different ratings (r1 and r2) and we define this through parameter `rating_bin`.\n" + "In order to meet demand reliably, the power system needs to maintain dispatchable or so-called firm capacity at any time.\n", + "Some technologies like coal power plants can fully contribute to the required firm capacity, i.e.,\n", + "1 MW installed capacity of these technologies provide 1 MW firm capacity.\n", + "However, some other technologies such as variable renewables like wind are not fully reliable when the power system needs them.\n", + "As such, the capacity value of wind power plant is considered to be lower than 1.\n", + "In this example, we assume that 10% of electricity supply by wind is 80% reliable, while the remaining 90% installed capacity can only contribute by 5% to the required firm capacity. As such, we divide wind power into two parts with two different ratings (r1 and r2) and we define this through parameter `rating_bin`.\n" ] }, { diff --git a/tutorial/westeros/westeros_flexible_generation.ipynb b/tutorial/westeros/westeros_flexible_generation.ipynb index fa69afe4b..128c46812 100644 --- a/tutorial/westeros/westeros_flexible_generation.ipynb +++ b/tutorial/westeros/westeros_flexible_generation.ipynb @@ -70,7 +70,7 @@ "source": [ "## Add a carbon tax\n", "\n", - "Then, we add a carbon tax to motivate the use of low-carbon technologies in the system. We do this similar to the process explained in the [tutorial for adding emission tax](https://github.com/iiasa/message_ix/blob/master/tutorial/westeros/westeros_emissions_taxes.ipynb)" + "Then, we add a carbon tax to motivate the use of low-carbon technologies in the system. We do this similar to the process explained in the tutorial for adding emissions taxes (`westeros_emission_taxes.ipynb`)." ] }, { @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": true }, diff --git a/tutorial/westeros/westeros_seasonality.ipynb b/tutorial/westeros/westeros_seasonality.ipynb index be93f1acd..363ef5b55 100644 --- a/tutorial/westeros/westeros_seasonality.ipynb +++ b/tutorial/westeros/westeros_seasonality.ipynb @@ -5,14 +5,19 @@ "metadata": {}, "source": [ "# \"*Winter is coming!*\": Modeling of variability in energy supply and demand\n", - "Time-dependent variations in demand and supply are common characteristics of an electricity system, and Westeros is not an exception. This tutorial helps to learn how to add sub-annual time steps to a MESSAGEix model and investigate the impact of the variability in supply and demand. This tutorial is structured as follows:\n", + "Time-dependent variations in demand and supply are common characteristics of an electricity system, and Westeros is not an\n", + "exception. This tutorial helps to learn how to add sub-annual time steps to a MESSAGEix model and investigate the impact of the\n", + "variability in supply and demand. It is structured as follows:\n", "1. A short note on seasonality\n", "2. Adding sub-annual time steps\n", "3. Analyzing the results\n", "\n", "### Requirements for running this tutorial\n", "- You have MESSAGEix framework installed and working\n", - "- You have run Westeros baseline scenario and solved it successfully" + "- You have run Westeros baseline scenario and solved it successfully\n", + "\n", + "This tutorial was developed by Behnam Zakeri ([@behnam-zakeri](https://github.com/behnam-zakeri)) for the course Energy\n", + "Economics and Modeling held at the International Summer School in Energy Technology, St. Petersburg Polytechnique University in August 2018." ] }, { @@ -189,7 +194,8 @@ "|-----------|----------| -----------|\n", "| duration_time\t| time\t|duration of sub-annual time slices (relative to 1)| \n", "\n", - "In our example, winter and summer are each half of the year." + "In our example, winter and summer are defined as each half of the year. However, the duration of time steps can be\n", + "different in a MESSAGEix model, e.g., winter 0.4 and summer 0.6. But the sum of the duration times must be equal to 1." ] }, { @@ -213,7 +219,10 @@ "In this stage, we introduce a function that helps us to modify the parameters after adding new time steps. This function called \"yearly_to_season\" does the following:\n", "- removing old values, where the \"time\" index was \"year\"\n", "- populating data for new \"time\" indexes\n", - "- using the ratios defined by the user to convert yearly values to seasonal ones" + "- using the ratios defined by the user to convert yearly values to seasonal ones\n", + "\n", + "This is a common code pattern when modelling using MESSAGEix:\n", + "writing re-usable code that helps modify existing parameter data to reflect some desired change in the reference energy system." ] }, { @@ -279,7 +288,7 @@ "metadata": {}, "source": [ "### Modifying \"input\" and \"output\"\n", - "However, not all parameters that have subannual time steps need to divide their values for each time step. For example, \"output\" parameter shows the output efficiency, commodities and level of a technology. Hence, as far as the efficiency of a technology remains unchanged in different seasons, the value of \"output\" remains fixed. As such, we only need to add the sub-annual time steps but with the same value as for the yearly one." + "However, not all parameters that have subannual time steps need to divide their annual values for each time step. For example, \"output\" parameter shows the output efficiency, commodities and the level of a technology. Hence, as far as the efficiency of a technology remains unchanged in different seasons, the value of \"output\" will be the same. As such, we only need to add the sub-annual time steps but with the same value as for the yearly one." ] }, { @@ -324,7 +333,7 @@ "metadata": {}, "source": [ "### Modifying capacity factor\n", - "We discussed about the variation in the capacity factor of wind power in each month. By averaging the values for the respective months, we reach a capacity factor of 0.46 for winter and 0.25 for summer in Westeros. For simplicity, the capacity factor of wind was 1 in the baseline scenario.\n" + "We discussed about the variation in the capacity factor of wind power in each month. By averaging the values for the respective months, we reach a capacity factor of 0.46 for winter and 0.25 for summer in Westeros.\n" ] }, { @@ -334,11 +343,11 @@ "outputs": [], "source": [ "# Modifying capacity factor\n", - "# Retrieving average yearly capacity factor of wind in the model\n", + "# Let's get the yearly capacity factor of wind in the baseline scenario\n", "cf_wind = scen.par('capacity_factor', {'technology': 'wind_ppl'})['value'].mean()\n", "\n", - "# Passing seasonal capacity factors as shares of the yearly value\n", - "cf_data = {'winter': 0.46/cf_wind, 'summer': 0.25/cf_wind} \n", + "# Converting yearly capacity factor to seasonal\n", + "cf_data = {'winter': 0.46 / cf_wind, 'summer': 0.25 / cf_wind} \n", "cf_filters = {'technology': 'wind_ppl'}\n", "yearly_to_season(scen, 'capacity_factor', cf_data, cf_filters)\n", "\n",