{ "cells": [ { "cell_type": "code", "execution_count": 90, "id": "e61f2a4e", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import pypsa\n", "\n", "import matplotlib.pyplot as plt\n", "import country_converter as coco" ] }, { "cell_type": "code", "execution_count": 91, "id": "73333588", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:pypsa.io:Imported network elec_s_37_ec_lv1.0_Ept.nc has buses, carriers, generators, global_constraints, lines, links, loads, storage_units\n" ] } ], "source": [ "cc = coco.CountryConverter()\n", "historic = pd.read_csv(\n", " \"../resources/validation/historical_cross_border_flows.csv\",\n", " index_col=0,\n", " header=0,\n", " parse_dates=True,\n", ")\n", "\n", "n = pypsa.Network(\"../results/validation/networks/elec_s_37_ec_lv1.0_Ept.nc\")\n", "n.loads.carrier = \"load\"" ] }, { "cell_type": "code", "execution_count": 92, "id": "b38a3232", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8759" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(historic.index)" ] }, { "cell_type": "code", "execution_count": 93, "id": "489739b8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8760" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(n.snapshots)" ] }, { "cell_type": "code", "execution_count": 94, "id": "a79b025a", "metadata": {}, "outputs": [], "source": [ "if len(historic.index) > len(n.snapshots):\n", " print(\"yes\")\n", " historic = historic.resample(n.snapshots.inferred_freq).mean().loc[n.snapshots]" ] }, { "cell_type": "code", "execution_count": 95, "id": "376cea9d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['AL',\n", " 'AT',\n", " 'BA',\n", " 'BE',\n", " 'BG',\n", " 'CH',\n", " 'CZ',\n", " 'DE',\n", " 'DK',\n", " 'EE',\n", " 'ES',\n", " 'FI',\n", " 'FR',\n", " 'GB',\n", " 'GR',\n", " 'HR',\n", " 'HU',\n", " 'IE',\n", " 'IT',\n", " 'LT',\n", " 'LU',\n", " 'LV',\n", " 'ME',\n", " 'MK',\n", " 'NL',\n", " 'NO',\n", " 'PL',\n", " 'PT',\n", " 'RO',\n", " 'RS',\n", " 'SE',\n", " 'SI',\n", " 'SK']" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_country" ] }, { "cell_type": "code", "execution_count": 96, "id": "f99d6d7d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['AL',\n", " 'AT',\n", " 'BA',\n", " 'BE',\n", " 'BG',\n", " 'CH',\n", " 'CZ',\n", " 'DE',\n", " 'DK',\n", " 'EE',\n", " 'ES',\n", " 'FI',\n", " 'FR',\n", " 'GB',\n", " 'GR',\n", " 'HR',\n", " 'HU',\n", " 'IE',\n", " 'IT',\n", " 'LT',\n", " 'LU',\n", " 'LV',\n", " 'ME',\n", " 'MK',\n", " 'NL',\n", " 'NO',\n", " 'PL',\n", " 'PT',\n", " 'RO',\n", " 'RS',\n", " 'SE',\n", " 'SI',\n", " 'SK']" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_country[:len(all_country)]" ] }, { "cell_type": "code", "execution_count": 97, "id": "8e5b5b18", "metadata": {}, "outputs": [], "source": [ "all_country = sorted(\n", " list(\n", " set(\n", " [link[:2] for link in historic.columns[1:]]\n", " + [link[5:] for link in historic.columns[1:]]\n", " )\n", " )\n", ")\n", "\n", "color_country = {\n", " \"AL\": \"#440154\",\n", " \"AT\": \"#482677\",\n", " \"BA\": \"#43398e\",\n", " \"BE\": \"#3953a4\",\n", " \"BG\": \"#2c728e\",\n", " \"CH\": \"#228b8d\",\n", " \"CZ\": \"#1f9d8a\",\n", " \"DE\": \"#29af7f\",\n", " \"DK\": \"#3fbc73\",\n", " \"EE\": \"#5ec962\",\n", " \"ES\": \"#84d44b\",\n", " \"FI\": \"#addc30\",\n", " \"FR\": \"#d8e219\",\n", " \"GB\": \"#fde725\",\n", " \"GR\": \"#f0f921\",\n", " \"HR\": \"#f1c25e\",\n", " \"HU\": \"#f4a784\",\n", " \"IE\": \"#f78f98\",\n", " \"IT\": \"#f87ea0\",\n", " \"LT\": \"#f87a9a\",\n", " \"LU\": \"#f57694\",\n", " \"LV\": \"#f3758d\",\n", " \"ME\": \"#f37685\",\n", " \"MK\": \"#f37b7c\",\n", " \"NL\": \"#f28774\",\n", " \"NO\": \"#f1976b\",\n", " \"PL\": \"#efaa63\",\n", " \"PT\": \"#ebb160\",\n", " \"RO\": \"#e6c260\",\n", " \"RS\": \"#e2d75e\",\n", " \"SE\": \"#dedc5b\",\n", " \"SI\": \"#d9e35a\",\n", " \"SK\": \"#d3e75a\",\n", "}" ] }, { "cell_type": "code", "execution_count": 98, "id": "0b3c8b87", "metadata": {}, "outputs": [], "source": [ "optimized_links = n.links_t.p0.rename(\n", " columns=dict(n.links.bus0.str[:2] + \" - \" + n.links.bus1.str[:2])\n", ")\n", "optimized_lines = n.lines_t.p0.rename(\n", " columns=dict(n.lines.bus0.str[:2] + \" - \" + n.lines.bus1.str[:2])\n", ")\n", "optimized = pd.concat([optimized_links, optimized_lines], axis=1)\n", "\n", "# Drop internal country connection\n", "optimized.drop([c for c in optimized.columns if c[:2] == c[5:]], axis=1, inplace=True)\n", "\n", "# align columns name\n", "for c1 in optimized.columns:\n", " for c2 in optimized.columns:\n", " if c1[:2] == c2[5:] and c2[:2] == c1[5:]:\n", " optimized = optimized.rename(columns={c1: c2})\n", "\n", "optimized = optimized.groupby(lambda x: x, axis=1).sum()" ] }, { "cell_type": "code", "execution_count": 99, "id": "118dcec1", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Link | \n", "13589 | \n", "14801 | \n", "14803 | \n", "14804+1 | \n", "14805 | \n", "14807 | \n", "14809 | \n", "14811 | \n", "14814 | \n", "14815 | \n", "... | \n", "14824 | \n", "14825 | \n", "14826 | \n", "14848 | \n", "5580 | \n", "5581 | \n", "5586+4 | \n", "5601 | \n", "5640 | \n", "6342 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
snapshot | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
2019-01-01 00:00:00 | \n", "870.371778 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-561.288142 | \n", "430.308831 | \n", "-299.997180 | \n", "337.746474 | \n", "999.999760 | \n", "495.575852 | \n", "... | \n", "-221.151605 | \n", "-808.276887 | \n", "1999.999855 | \n", "0.0 | \n", "245.491078 | \n", "-1372.933686 | \n", "-263.327288 | \n", "-599.996986 | \n", "89.983643 | \n", "1095.082216 | \n", "
2019-01-01 01:00:00 | \n", "900.328684 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-557.946421 | \n", "384.971428 | \n", "-299.998912 | \n", "47.451980 | \n", "999.999704 | \n", "495.724976 | \n", "... | \n", "-174.278532 | \n", "400.185124 | \n", "1999.999835 | \n", "0.0 | \n", "245.458980 | \n", "-1424.206302 | \n", "-250.399465 | \n", "-599.998821 | \n", "113.672912 | \n", "966.667217 | \n", "
2019-01-01 02:00:00 | \n", "249.479859 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-555.469074 | \n", "287.488748 | \n", "-299.998122 | \n", "-499.857947 | \n", "999.999802 | \n", "499.999866 | \n", "... | \n", "-227.621133 | \n", "1999.999387 | \n", "1999.999807 | \n", "0.0 | \n", "245.681571 | \n", "22.517291 | \n", "-268.756712 | \n", "-599.997887 | \n", "-300.720028 | \n", "1999.138024 | \n", "
2019-01-01 03:00:00 | \n", "173.406139 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-554.710286 | \n", "247.845165 | \n", "-299.998067 | \n", "-499.867501 | \n", "999.999797 | \n", "499.999852 | \n", "... | \n", "-214.216290 | \n", "1999.999356 | \n", "1999.999806 | \n", "0.0 | \n", "245.154125 | \n", "76.431973 | \n", "-269.658757 | \n", "-599.997851 | \n", "-290.866514 | \n", "1999.119122 | \n", "
2019-01-01 04:00:00 | \n", "512.746771 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.999764 | \n", "14.643768 | \n", "-299.999742 | \n", "-499.875012 | \n", "999.999827 | \n", "499.999861 | \n", "... | \n", "-599.999792 | \n", "1999.999354 | \n", "1999.999807 | \n", "0.0 | \n", "245.010824 | \n", "325.010999 | \n", "-268.347655 | \n", "-599.999702 | \n", "-365.768660 | \n", "1999.999514 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
2019-12-31 19:00:00 | \n", "964.540896 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.998719 | \n", "130.517853 | \n", "-299.998938 | \n", "-499.945237 | \n", "-999.964014 | \n", "494.079192 | \n", "... | \n", "-599.998712 | \n", "-1999.779134 | \n", "-1999.957622 | \n", "0.0 | \n", "246.815112 | \n", "-637.668358 | \n", "-168.008664 | \n", "-599.998707 | \n", "-399.552507 | \n", "610.023175 | \n", "
2019-12-31 20:00:00 | \n", "943.176424 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.998739 | \n", "140.637471 | \n", "-299.998956 | \n", "-499.946787 | \n", "-999.960974 | \n", "494.510526 | \n", "... | \n", "-599.998725 | \n", "-1999.757083 | \n", "-1999.952702 | \n", "0.0 | \n", "246.859212 | \n", "-933.957167 | \n", "-266.083571 | \n", "-599.998718 | \n", "-399.564587 | \n", "500.412957 | \n", "
2019-12-31 21:00:00 | \n", "891.839375 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.998739 | \n", "142.367339 | \n", "-299.998947 | \n", "-499.946061 | \n", "-999.961649 | \n", "494.743824 | \n", "... | \n", "-599.998725 | \n", "-1999.771508 | \n", "-1999.954008 | \n", "0.0 | \n", "246.899460 | \n", "-1173.869214 | \n", "-279.810360 | \n", "-599.998715 | \n", "-399.589973 | \n", "423.084363 | \n", "
2019-12-31 22:00:00 | \n", "816.853731 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.998682 | \n", "114.615424 | \n", "-299.998848 | \n", "-499.945416 | \n", "-999.963326 | \n", "380.893988 | \n", "... | \n", "-599.998670 | \n", "-1999.799087 | \n", "-1999.958330 | \n", "0.0 | \n", "246.922186 | \n", "-1400.751829 | \n", "-282.303466 | \n", "-599.998646 | \n", "-399.620360 | \n", "387.864719 | \n", "
2019-12-31 23:00:00 | \n", "745.285364 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.842360 | \n", "113.228992 | \n", "-299.856195 | \n", "-499.943233 | \n", "-999.958757 | \n", "284.700560 | \n", "... | \n", "-599.842215 | \n", "-1999.759532 | \n", "-1999.948089 | \n", "0.0 | \n", "247.363163 | \n", "-1446.277064 | \n", "-282.498176 | \n", "-599.836290 | \n", "-399.709820 | \n", "-88.109124 | \n", "
8760 rows × 28 columns
\n", "\n", " | AL - GR | \n", "AL - ME | \n", "AL - RS | \n", "AT - CH | \n", "AT - CZ | \n", "AT - DE | \n", "AT - HU | \n", "AT - IT | \n", "AT - SI | \n", "BA - HR | \n", "... | \n", "ME - RS | \n", "MK - RS | \n", "NL - DK | \n", "NL - NO | \n", "NO - SE | \n", "PL - LT | \n", "PL - SE | \n", "PL - SK | \n", "RO - RS | \n", "SE - DE | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
snapshot | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
2019-01-01 00:00:00 | \n", "-813.096383 | \n", "-66.997033 | \n", "90.122387 | \n", "-334.350964 | \n", "-1419.171979 | \n", "-8021.299854 | \n", "1219.672105 | \n", "81.178633 | \n", "1943.880080 | \n", "-2052.165490 | \n", "... | \n", "240.784359 | \n", "467.928300 | \n", "0.0 | \n", "699.999990 | \n", "-3641.983223 | \n", "1095.082216 | \n", "-599.286283 | \n", "-406.491249 | \n", "66.468906 | \n", "-599.996986 | \n", "
2019-01-01 01:00:00 | \n", "-811.913532 | \n", "-43.007127 | \n", "118.703771 | \n", "-276.531718 | \n", "-920.847903 | \n", "-8021.300160 | \n", "1279.971376 | \n", "96.941098 | \n", "1943.880414 | \n", "-1968.762459 | \n", "... | \n", "271.790997 | \n", "509.340511 | \n", "0.0 | \n", "699.999991 | \n", "-3641.983223 | \n", "966.667217 | \n", "-599.378724 | \n", "-112.249764 | \n", "45.765885 | \n", "-599.998821 | \n", "
2019-01-01 02:00:00 | \n", "-849.050742 | \n", "60.668165 | \n", "106.413953 | \n", "-116.475215 | \n", "-1646.556117 | \n", "-8021.299824 | \n", "1074.504492 | \n", "231.967757 | \n", "1943.880461 | \n", "-1405.800141 | \n", "... | \n", "144.169409 | \n", "596.183673 | \n", "0.0 | \n", "699.999990 | \n", "-3641.983223 | \n", "1999.138024 | \n", "-255.953709 | \n", "-414.500838 | \n", "128.114928 | \n", "-599.997887 | \n", "
2019-01-01 03:00:00 | \n", "-844.053504 | \n", "78.823226 | \n", "118.496218 | \n", "-116.475168 | \n", "-1528.699567 | \n", "-8021.299774 | \n", "1155.636778 | \n", "231.967763 | \n", "1943.880432 | \n", "-1329.020893 | \n", "... | \n", "149.242187 | \n", "591.913311 | \n", "0.0 | \n", "699.999992 | \n", "-3641.983223 | \n", "1999.119122 | \n", "213.178174 | \n", "-416.631078 | \n", "-46.187510 | \n", "-599.997851 | \n", "
2019-01-01 04:00:00 | \n", "-817.426801 | \n", "80.289228 | \n", "106.080008 | \n", "-116.475208 | \n", "-1541.578103 | \n", "-8021.299854 | \n", "1174.339425 | \n", "231.967760 | \n", "1943.880431 | \n", "-1264.967180 | \n", "... | \n", "123.853717 | \n", "555.856044 | \n", "0.0 | \n", "699.999992 | \n", "-3641.983222 | \n", "1999.999514 | \n", "599.999543 | \n", "-389.460141 | \n", "-88.146056 | \n", "-599.999702 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
2019-12-31 19:00:00 | \n", "-713.851658 | \n", "290.099523 | \n", "291.921632 | \n", "85.639913 | \n", "-885.808706 | \n", "-603.158245 | \n", "433.376797 | \n", "245.019196 | \n", "961.062485 | \n", "-754.941275 | \n", "... | \n", "271.500708 | \n", "527.375223 | \n", "0.0 | \n", "699.999995 | \n", "-3641.983227 | \n", "610.023175 | \n", "599.998734 | \n", "-862.188345 | \n", "691.926637 | \n", "-599.998707 | \n", "
2019-12-31 20:00:00 | \n", "-716.342449 | \n", "332.365486 | \n", "307.162109 | \n", "-145.346916 | \n", "-722.802760 | \n", "-735.107399 | \n", "330.749333 | \n", "230.099300 | \n", "662.441593 | \n", "-541.766053 | \n", "... | \n", "258.483519 | \n", "557.564477 | \n", "0.0 | \n", "699.999995 | \n", "-3641.983228 | \n", "500.412957 | \n", "599.998735 | \n", "-954.387792 | \n", "525.041034 | \n", "-599.998718 | \n", "
2019-12-31 21:00:00 | \n", "-692.198580 | \n", "328.607261 | \n", "337.861027 | \n", "-198.431715 | \n", "-812.230978 | \n", "-920.845006 | \n", "343.788051 | \n", "226.670279 | \n", "592.900352 | \n", "-552.218274 | \n", "... | \n", "321.390084 | \n", "543.064436 | \n", "0.0 | \n", "699.999995 | \n", "-3641.983228 | \n", "423.084363 | \n", "599.998733 | \n", "-937.678575 | \n", "215.105589 | \n", "-599.998715 | \n", "
2019-12-31 22:00:00 | \n", "-579.180735 | \n", "255.271013 | \n", "329.608746 | \n", "80.718565 | \n", "-1325.201120 | \n", "-685.044286 | \n", "573.859954 | \n", "244.700375 | \n", "953.818883 | \n", "-925.730248 | \n", "... | \n", "379.020904 | \n", "366.164911 | \n", "0.0 | \n", "699.999995 | \n", "-3641.983228 | \n", "387.864719 | \n", "599.998663 | \n", "-542.872702 | \n", "63.538856 | \n", "-599.998646 | \n", "
2019-12-31 23:00:00 | \n", "-657.262919 | \n", "307.946932 | \n", "370.720186 | \n", "-135.014873 | \n", "-973.392049 | \n", "-1265.561333 | \n", "597.643574 | \n", "230.765951 | \n", "674.493600 | \n", "-566.550641 | \n", "... | \n", "405.404455 | \n", "510.335499 | \n", "0.0 | \n", "699.999995 | \n", "-3641.983226 | \n", "-88.109124 | \n", "599.395387 | \n", "-790.411235 | \n", "145.168693 | \n", "-599.836290 | \n", "
8760 rows × 65 columns
\n", "