{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Table of Contents\n", "* [1. Checks and tests of processed dataset](#1.-Checks-and-tests-of-processed-dataset)\n", "\t* [1.1 Prepare environment](#1.1-Prepare-environment)\n", "\t* [1.2 Import processed data](#1.2-Import-processed-data)\n", "\t* [1.3 Print results of technology levels](#1.3-Print-results-of-technology-levels)\n", "\t\t* [1.3.1 Technology level 1](#1.3.1-Technology-level-1)\n", "\t\t* [1.3.2 Technology level 2](#1.3.2-Technology-level-2)\n", "\t\t* [1.3.3 Technology level 3](#1.3.3-Technology-level-3)\n", "\t* [1.4 Comparison of different technology levels for all countries](#1.4-Comparison-of-different-technology-levels-for-all-countries)\n", "\t* [1.5 Comparison of different technology levels for a selection](#1.5-Comparison-of-different-technology-levels-for-a-selection)\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# 1. Checks and tests of processed dataset" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## 1.1 Prepare environment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import pandas as pd\n", "# Jan: Alle imports außer pandas und logging werden nicht genutzt\n", "import numpy as np\n", "import os.path\n", "import yaml # http://pyyaml.org/, pip install pyyaml, conda install pyyaml\n", "import json\n", "import subprocess\n", "import sqlite3 \n", "\n", "%matplotlib inline\n", "import logging\n", "logger = logging.getLogger('notebook')\n", "logger.setLevel('INFO')\n", "nb_root_logger = logging.getLogger()\n", "formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s',\n", " datefmt='%d %b %Y %H:%M:%S')\n", "nb_root_logger.handlers[0].setFormatter(formatter)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.2 Import processed data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data_file = 'aggregated_capacity.csv'\n", "# Jan: os.path.join verwenden\n", "filepath = 'data_final/'+data_file\n", "data = pd.read_csv(filepath, index_col=0)\n", "\n", "data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.3 Print results of technology levels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following, national generation capacities are compared to each other at the different technology levels." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.3.1 Technology level 1" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Jan: Leerzeichen um ==, keine Leerzeichen um =, wenn diese ein named \n", "# argument sind. Außerdem sind die Argumente nicht untereinander, was es \n", "# mehr leserlich macht. Whitespace um , \n", "# FRAUKE: Finde ich sehr praktisch da so einen Vergleich zu bekommen der Angaben,\n", "## allerdings ist es leider auf der x-Achse unleserlich, da so viel Info drinsteckt.\n", "## Vorschlag: Ein plot pro Land, könnte man mit ner Funktion umsetzen\n", "pivot_capacity_level1 = pd.pivot_table(data[data.technology_level_1==True],\n", " index=('country','year','source'),\n", " # Jan: Braucht man die folgenden ( ) ?\n", " columns = ('technology'),\n", " values='capacity',\n", " aggfunc=sum,\n", " margins=False)\n", "\n", "pivot_capacity_plot=pivot_capacity_level1.plot(kind='bar',stacked=True, legend=True, figsize=(12, 6))\n", "pivot_capacity_plot.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))\n", "pivot_capacity_plot.set_ylim(0,250000)\n", "\n", "pivot_capacity_plot\n", "pivot_capacity_level1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### 1.3.2 Technology level 2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# FRAUKE: Noch mehr Infos, auch hier lieber pro Land eine Grafik\n", "# FRAUKE: Farben angeben, die sich nicht doppeln\n", "pivot_capacity_level2 = pd.pivot_table(data[data.technology_level_2==True],\n", " index=('country','year','source'),\n", " columns = ('technology'),\n", " values='capacity',\n", " aggfunc=sum,\n", " margins=False)\n", "\n", "pivot_capacity_plot=pivot_capacity_level2.plot(kind='bar',stacked=True, legend=True, figsize=(12, 6))\n", "pivot_capacity_plot.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))\n", "pivot_capacity_plot.set_ylim(0,250000)\n", "\n", "pivot_capacity_plot\n", "pivot_capacity_level2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.3.3 Technology level 3" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# FRAUKE: hier gilt das gleiche wie bei der Technology level 2 Grafik\n", "# Jan: Leerzeichen...\n", "pivot_capacity_level3 = pd.pivot_table(data[data.technology_level_3==True],\n", " index=('country','year','source'),\n", " columns = ('technology'),\n", " values='capacity',\n", " aggfunc=sum,\n", " margins=False)\n", "\n", "# Jan: Whitespace around = \n", "pivot_capacity_plot=pivot_capacity_level3.plot(kind='bar',stacked=True, legend=True, figsize=(12, 6))\n", "pivot_capacity_plot.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))\n", "pivot_capacity_plot.set_ylim(0,250000)\n", "\n", "pivot_capacity_plot\n", "pivot_capacity_level3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.4 Comparison of different technology levels for all countries" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following, the installed capacities at the different technology levels are compared to each other. In any case, the total sum of all technologies within a certain technology level should match with other technology levels." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# FRAUKE: Kapzität ohne Nachkommastellen angeben, dann wird die Tabell übersichtlicher\n", "# FRAUKE: Die Idee der Grafik ist gut, aber so wie es gerade ist kann man leider nicht\n", "## viel erkennen, man sieht nur schwarze unterschiedlich hohe Balken\n", "# Jan: Wenn man parameter = ['capacity_definition','source','year','type','country']\n", "# setzt kann man diesen Abschnitt übersichtlicher machen. Besser wäre\n", "# ein noch mehr beschreibender Name. Z.B.: grouping_para o.ä.\n", "capacity_total_0 = pd.DataFrame(data[data['technology_level_0']==True]\n", " .groupby(['capacity_definition','source','year','type','country'])['capacity'].sum())\n", "capacity_total_1 = pd.DataFrame(data[data['technology_level_1']==True]\n", " .groupby(['capacity_definition','source','year','type','country'])['capacity'].sum())\n", "capacity_total_2 = pd.DataFrame(data[data['technology_level_2']==True]\n", " .groupby(['capacity_definition','source','year','type','country'])['capacity'].sum())\n", "capacity_total_3 = pd.DataFrame(data[data['technology_level_3']==True]\n", " .groupby(['capacity_definition','source','year','type','country'])['capacity'].sum())\n", "\n", "capacity_total_comparison = pd.DataFrame(capacity_total_0)\n", "capacity_total_comparison = pd.merge(capacity_total_0, capacity_total_1,left_index=True,right_index=True,how='left')\n", "capacity_total_comparison = capacity_total_comparison.rename(columns={'capacity_x': 'technology level 0',\n", " 'capacity_y': 'technology level 1'})\n", "capacity_total_comparison = pd.merge(capacity_total_comparison, capacity_total_2,left_index=True,right_index=True,how='left')\n", "capacity_total_comparison = pd.merge(capacity_total_comparison, capacity_total_3,left_index=True,right_index=True,how='left')\n", "capacity_total_comparison = capacity_total_comparison.rename(columns={'capacity_x': 'technology level 2',\n", " 'capacity_y': 'technology level 3'})\n", "\n", "\n", "capacity_total_comparison = capacity_total_comparison.sortlevel(['country','year'])\n", "\n", "capacity_total_pivot_plot = capacity_total_comparison.plot(kind='bar',stacked=False, legend=True, figsize=(12, 6))\n", "capacity_total_pivot_plot.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))\n", "#capacity_total_pivot_plot.set_ylim(0,250000)\n", "\n", "capacity_total_pivot_plot\n", "capacity_total_comparison" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Identification of differences between technology levels for each country, source, and year. Generally, differences between the technology levels should be zero, but could differ in particular for ENTSO-E data." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# FRAUKE: Habt ihr ne Vermutung warum das bei ENTSO-E differs? Dann ruhig als Kommentar\n", "## hinschreiben\n", "capacity_total_difference = capacity_total_comparison.diff(periods=1,axis=1)\n", "capacity_total_difference = capacity_total_difference[(capacity_total_difference['technology level 1'] > 0.01) | \n", " (capacity_total_difference['technology level 1'] < -0.01) |\n", " (capacity_total_difference['technology level 2'] > 0.01) | \n", " (capacity_total_difference['technology level 2'] < -0.01) |\n", " (capacity_total_difference['technology level 3'] > 0.01) | \n", " (capacity_total_difference['technology level 3'] < -0.01)]\n", "capacity_total_difference" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.5 Comparison of different technology levels for a selection" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# FRAUKE: Kommentar warum ihr das hier für entsoe macht wäre gut\n", "capacity_total_comparison = pd.DataFrame(capacity_total_comparison.stack()).reset_index().rename(\n", " columns={'level_5': 'technology_level',0: 'capacity'})\n", "\n", "capacity_total_pivot = pd.pivot_table(\n", " # select specific country for comparison\n", "# capacity_total_comparison[capacity_total_comparison['country']=='SK'],\n", " # select specific source for comparison \n", " capacity_total_comparison[capacity_total_comparison['source']=='entsoe'],\n", " index=('country','year','source'),\n", " columns='technology_level', \n", " values='capacity',\n", " aggfunc=sum,\n", " margins=False)\n", "\n", "capacity_total_pivot_plot = capacity_total_pivot.plot(kind='bar',stacked=False, legend=True, figsize=(12, 6))\n", "capacity_total_pivot_plot.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))\n", "#capacity_total_pivot_plot.set_ylim(0,250000)\n", "\n", "capacity_total_pivot_plot\n", "capacity_total_pivot" ] } ], "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.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }