{ "cells": [ { "cell_type": "code", "execution_count": 33, "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": 34, "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-test/historical_cross_border_flows.csv\",\n", " index_col=0,\n", " header=0,\n", " parse_dates=True,\n", ")\n", "\n", "n = pypsa.Network(\"../results/validation-test/networks/elec_s_37_ec_lv1.0_Ept.nc\")\n", "n.loads.carrier = \"load\"\n", "\n" ] }, { "cell_type": "code", "execution_count": 15, "id": "b38a3232", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8759" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(historic.index)" ] }, { "cell_type": "code", "execution_count": 16, "id": "489739b8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8760" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(n.snapshots)" ] }, { "cell_type": "code", "execution_count": 17, "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": 18, "id": "8e5b5b18", "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "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": 19, "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": 39, "id": "118dcec1", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Link | \n", "13589 | \n", "14801 | \n", "14802 | \n", "14803 | \n", "14804+1 | \n", "14805 | \n", "14807 | \n", "14809 | \n", "14811 | \n", "14814 | \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", "306.021022 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.994919 | \n", "-586.349671 | \n", "-299.995129 | \n", "499.994357 | \n", "999.999735 | \n", "... | \n", "-599.995142 | \n", "-1999.793718 | \n", "1999.999827 | \n", "0.0 | \n", "101.525354 | \n", "-368.184732 | \n", "-299.906447 | \n", "-599.996152 | \n", "79.733672 | \n", "1999.993880 | \n", "
2019-01-01 01:00:00 | \n", "246.940275 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.998353 | \n", "-585.720153 | \n", "-299.998477 | \n", "499.998597 | \n", "999.999631 | \n", "... | \n", "-599.998304 | \n", "-670.595964 | \n", "1999.999827 | \n", "0.0 | \n", "101.629627 | \n", "-340.695427 | \n", "-299.920608 | \n", "-599.998677 | \n", "103.422705 | \n", "1999.997651 | \n", "
2019-01-01 02:00:00 | \n", "165.782955 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.998845 | \n", "-585.396121 | \n", "-299.998852 | \n", "499.854378 | \n", "999.999576 | \n", "... | \n", "-599.998906 | \n", "-1240.684746 | \n", "1999.999760 | \n", "0.0 | \n", "100.678589 | \n", "-414.675908 | \n", "-299.918366 | \n", "-599.999069 | \n", "124.523559 | \n", "1999.998841 | \n", "
2019-01-01 03:00:00 | \n", "537.286186 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.768030 | \n", "-586.586377 | \n", "-299.791592 | \n", "-475.867907 | \n", "999.999827 | \n", "... | \n", "-599.763651 | \n", "-1999.608847 | \n", "1999.999840 | \n", "0.0 | \n", "97.666894 | \n", "23.101582 | \n", "-299.908898 | \n", "-599.793144 | \n", "39.524225 | \n", "1675.361102 | \n", "
2019-01-01 04:00:00 | \n", "603.293394 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-599.850296 | \n", "-530.693281 | \n", "-299.874600 | \n", "152.401079 | \n", "999.999817 | \n", "... | \n", "-599.847669 | \n", "-1998.517008 | \n", "1999.999799 | \n", "0.0 | \n", "104.415540 | \n", "136.926554 | \n", "-299.902522 | \n", "-599.879325 | \n", "23.117590 | \n", "567.179336 | \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", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 20:00:00 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 21:00:00 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 22:00:00 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 23:00:00 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
8760 rows × 29 columns
\n", "\n", " | AL - GR | \n", "AL - ME | \n", "AL - MK | \n", "AL - RS | \n", "AT - CH | \n", "AT - CZ | \n", "AT - DE | \n", "AT - HU | \n", "AT - IT | \n", "AT - SI | \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", "-467.945477 | \n", "-238.111809 | \n", "0.0 | \n", "-83.913827 | \n", "-231.815415 | \n", "391.030654 | \n", "-5721.002469 | \n", "1678.132690 | \n", "160.772995 | \n", "1281.462546 | \n", "... | \n", "73.146905 | \n", "326.779803 | \n", "0.0 | \n", "699.999959 | \n", "-5098.776485 | \n", "1999.993880 | \n", "599.994411 | \n", "-205.193427 | \n", "1389.804474 | \n", "-599.996152 | \n", "
2019-01-01 01:00:00 | \n", "-451.771144 | \n", "-244.093387 | \n", "0.0 | \n", "-40.352418 | \n", "181.697125 | \n", "-127.521697 | \n", "-6749.183802 | \n", "1447.401439 | \n", "127.988310 | \n", "888.454222 | \n", "... | \n", "159.628489 | \n", "233.170549 | \n", "0.0 | \n", "699.999959 | \n", "-5098.776484 | \n", "1999.997651 | \n", "599.997833 | \n", "111.138218 | \n", "1170.428199 | \n", "-599.998677 | \n", "
2019-01-01 02:00:00 | \n", "-404.052764 | \n", "-268.437166 | \n", "0.0 | \n", "-9.478829 | \n", "-462.761139 | \n", "-518.251814 | \n", "-7200.281177 | \n", "1037.655084 | \n", "29.944450 | \n", "206.947774 | \n", "... | \n", "240.228711 | \n", "70.812789 | \n", "0.0 | \n", "699.999958 | \n", "-5098.776484 | \n", "1999.998841 | \n", "599.998886 | \n", "235.173342 | \n", "955.808995 | \n", "-599.999069 | \n", "
2019-01-01 03:00:00 | \n", "41.246537 | \n", "-461.353663 | \n", "0.0 | \n", "-226.627012 | \n", "-930.853197 | \n", "1408.610412 | \n", "-4158.894467 | \n", "1252.900396 | \n", "52.896824 | \n", "383.694400 | \n", "... | \n", "23.034022 | \n", "-256.831410 | \n", "0.0 | \n", "699.999958 | \n", "-5098.776484 | \n", "1675.361102 | \n", "-599.570911 | \n", "-1656.358034 | \n", "2071.952584 | \n", "-599.793144 | \n", "
2019-01-01 04:00:00 | \n", "29.284632 | \n", "-473.920125 | \n", "0.0 | \n", "-186.422145 | \n", "-755.808493 | \n", "909.437332 | \n", "-3957.827396 | \n", "1119.510030 | \n", "103.569299 | \n", "467.267865 | \n", "... | \n", "109.618432 | \n", "-272.042536 | \n", "0.0 | \n", "699.999962 | \n", "-5098.776488 | \n", "567.179336 | \n", "-599.823190 | \n", "-1824.844349 | \n", "1589.657117 | \n", "-599.879325 | \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", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 20:00:00 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 21:00:00 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 22:00:00 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
2019-12-31 23:00:00 | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "0.000000 | \n", "0.000000 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "
8760 rows × 67 columns
\n", "