├── requirements.txt ├── data ├── case_study_grid.xlsx └── profiles.csv ├── README.md ├── switch_evaluation.ipynb ├── results ├── results_timeseries.json └── results_switches.json └── grid.ipynb /requirements.txt: -------------------------------------------------------------------------------- 1 | pandapower 2 | python-igraph 3 | xlrd 4 | numba 5 | notebook 6 | -------------------------------------------------------------------------------- /data/case_study_grid.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e2nIEE/pandapower-paper/HEAD/data/case_study_grid.xlsx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pandapower case study 2 | 3 | This repository includes an exemplary case study that demonstrates the capabilities of pandapower. 4 | The case study showcases some pandapower functionality and is also used in a reference paper for pandapower, which has been accepted for publication in IEEE Transaction on Power Systems. A preprint of this paper is available on [arXiv](https://arxiv.org/abs/1709.06743). Please acknowledge the usage of pandapower by citing the Paper as follows: 5 | 6 | - **L. Thurner, A. Scheidler, F. Schäfer et al.**, “pandapower - an Open Source Python Tool for Convenient Modeling, Analysis and Optimization of Electric Power Systems,” IEEE Transaction on Power Systems (to be published), 2018. 7 | 8 | You can use the following BibTex entry: 9 | 10 | ``` 11 | @ARTICLE{pandapower.2018, 12 | author = {{Thurner}, L. and {Scheidler}, A. and {Sch{\"a}fer}, F. and {Menke}, J.-H. and {Dollichon}, J. and {Meier}, F. and {Meinecke}, S. and {Braun}, M.}, 13 | journal={IEEE Transactions on Power Systems}, 14 | title={pandapower - an Open Source Python Tool for Convenient Modeling, Analysis and Optimization of Electric Power Systems}, 15 | year={2018}, 16 | doi={10.1109/TPWRS.2018.2829021} 17 | } 18 | ``` 19 | 20 | The case study consists of three parts, which are available in interactive jupyter notebooks: 21 | 1. Definition of a 10kV ring main grid in radial operation ([grid.ipynb](grid.ipynb)) 22 | 2. Analysis of all possible switching states in the grid to analyse feasible switch positions considering radiality and short-circuit constraints ([switch_evaluation.ipynb](switch_evaluation.ipynb)) 23 | 3. Time series simulation for one day optimising switching states and transformer taps considering active power losses, line loading, transformer loading and voltage constraints ([time_series_simulation.ipynb](time_series_simulation.ipynb)) 24 | 25 | The case study works with pandapower 1.4.3. 26 | 27 | 28 | ## How to use it 29 | 30 | ### Get the source 31 | 32 | ``` 33 | git clone https://github.com/e2nIEE/pandapower-paper 34 | ``` 35 | 36 | ### Install 37 | 38 | It's recommended to use a virtualenv, it's up to you! 39 | 40 | ``` 41 | pip install -r requirements.txt 42 | ``` 43 | 44 | ### Start notebook server 45 | 46 | ``` 47 | jupyter notebook 48 | ``` 49 | -------------------------------------------------------------------------------- /data/profiles.csv: -------------------------------------------------------------------------------- 1 | Time,load,sgen 2 | 00:00,0.0676,0.84375 3 | 00:15,0.0608,0.890625 4 | 00:30,0.0549,0.9375 5 | 00:45,0.0499,0.984375 6 | 01:00,0.0462,1.03125 7 | 01:15,0.0436,1.078125 8 | 01:30,0.0419,1.125 9 | 01:45,0.0408,1.171875 10 | 02:00,0.0401,1.21875 11 | 02:15,0.0396,1.265625 12 | 02:30,0.0394,1.3125 13 | 02:45,0.0391,1.359375 14 | 03:00,0.0388,1.40625 15 | 03:15,0.0386,1.453125 16 | 03:30,0.0383,1.5 17 | 03:45,0.0383,1.453125 18 | 04:00,0.0384,1.5 19 | 04:15,0.0388,1.40625 20 | 04:30,0.0393,1.359375 21 | 04:45,0.04,1.265625 22 | 05:00,0.0409,1.3125 23 | 05:15,0.0431,1.40625 24 | 05:30,0.0477,1.3125 25 | 05:45,0.0558,1.21875 26 | 06:00,0.068,1.125 27 | 06:15,0.0828,1.21875 28 | 06:30,0.098,1.171875 29 | 06:45,0.1115,1.21875 30 | 07:00,0.1216,1.125 31 | 07:15,0.1285,0.984375 32 | 07:30,0.1327,1.03125 33 | 07:45,0.1348,0.84375 34 | 08:00,0.1354,0.9375 35 | 08:15,0.1348,0.890625 36 | 08:30,0.1331,0.9375 37 | 08:45,0.1307,0.984375 38 | 09:00,0.1277,1.078125 39 | 09:15,0.1246,1.171875 40 | 09:30,0.1215,1.125 41 | 09:45,0.11900000000000001,1.171875 42 | 10:00,0.1173,1.078125 43 | 10:15,0.1162,0.984375 44 | 10:30,0.1157,0.9375 45 | 10:45,0.1157,0.84375 46 | 11:00,0.1161,0.796875 47 | 11:15,0.11699999999999999,0.75 48 | 11:30,0.1187,0.5625 49 | 11:45,0.1215,0.515625 50 | 12:00,0.1254,0.5625 51 | 12:15,0.1296,0.515625 52 | 12:30,0.133,0.532670455 53 | 12:45,0.1348,0.49303977299999996 54 | 13:00,0.1342,0.45340909100000004 55 | 13:15,0.1317,0.41377840899999996 56 | 13:30,0.128,0.37414772700000004 57 | 13:45,0.124,0.334517045 58 | 14:00,0.1202,0.294886364 59 | 14:15,0.1168,0.255255682 60 | 14:30,0.1137,0.215625 61 | 14:45,0.1107,0.175994318 62 | 15:00,0.1079,0.28125 63 | 15:15,0.1055,0.1875 64 | 15:30,0.1035,0.234375 65 | 15:45,0.1024,0.375 66 | 16:00,0.1022,0.28125 67 | 16:15,0.1032,0.1875 68 | 16:30,0.1056,0.234375 69 | 16:45,0.1099,0.28125 70 | 17:00,0.11599999999999999,0.234375 71 | 17:15,0.1237,0.1875 72 | 17:30,0.1326,0.140625 73 | 17:45,0.1423,0.140625 74 | 18:00,0.1524,0.09375 75 | 18:15,0.1622,0.140625 76 | 18:30,0.1712,0.1875 77 | 18:45,0.1789,0.140625 78 | 19:00,0.1847,0.09375 79 | 19:15,0.1882,0.140625 80 | 19:30,0.1889,0.0 81 | 19:45,0.1864,0.140625 82 | 20:00,0.1807,0.328125 83 | 20:15,0.1727,0.375 84 | 20:30,0.1639,0.421875 85 | 20:45,0.1556,0.46875 86 | 21:00,0.1489,0.515625 87 | 21:15,0.1434,0.5625 88 | 21:30,0.1384,0.609375 89 | 21:45,0.1332,0.65625 90 | 22:00,0.1272,0.703125 91 | 22:15,0.1205,0.75 92 | 22:30,0.1133,0.796875 93 | 22:45,0.1057,0.84375 94 | 23:00,0.098,0.890625 95 | 23:15,0.0902,0.9375 96 | 23:30,0.0825,0.984375 97 | 23:45,0.0749,1.03125 98 | 24:00,0.0749,1.03125 99 | -------------------------------------------------------------------------------- /switch_evaluation.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Switching state evaluation" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "In this notebook, the possible switching states of the example network are evaluated. There exist 24 tie line switches in the network and the condition, that two switches need to be opened at all time to seperate the three feeders for a radial operation of the network." 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 3, 20 | "metadata": { 21 | "collapsed": true 22 | }, 23 | "outputs": [], 24 | "source": [ 25 | "import itertools\n", 26 | "import pandas as pd\n", 27 | "import os\n", 28 | "import networkx as nx\n", 29 | "\n", 30 | "import pandapower as pp\n", 31 | "import pandapower.shortcircuit as sc\n", 32 | "import pandapower.topology as top" 33 | ] 34 | }, 35 | { 36 | "cell_type": "markdown", 37 | "metadata": {}, 38 | "source": [ 39 | "Loading the network model from excel file:" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 4, 45 | "metadata": { 46 | "collapsed": false 47 | }, 48 | "outputs": [ 49 | { 50 | "name": "stderr", 51 | "output_type": "stream", 52 | "text": [ 53 | "hp.pandapower.std_types - WARNING: Be aware that the transformator parameters of '40 MVA 110/10 kV' has changed. The old parameter values are available in '40 MVA 110/10 kV v1.4.3 and older' on an interim basis.\n" 54 | ] 55 | } 56 | ], 57 | "source": [ 58 | "net = pp.from_excel(os.path.join(\"data\", \"case_study_grid.xlsx\"))" 59 | ] 60 | }, 61 | { 62 | "cell_type": "markdown", 63 | "metadata": {}, 64 | "source": [ 65 | "Defining a function checking for unsupplied buses:" 66 | ] 67 | }, 68 | { 69 | "cell_type": "code", 70 | "execution_count": 5, 71 | "metadata": { 72 | "collapsed": true 73 | }, 74 | "outputs": [], 75 | "source": [ 76 | "def is_supplied(net):\n", 77 | " return len(top.unsupplied_buses(net)) == 0" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 6, 83 | "metadata": { 84 | "collapsed": false 85 | }, 86 | "outputs": [ 87 | { 88 | "data": { 89 | "text/plain": [ 90 | "True" 91 | ] 92 | }, 93 | "execution_count": 6, 94 | "metadata": {}, 95 | "output_type": "execute_result" 96 | } 97 | ], 98 | "source": [ 99 | "is_supplied(net)" 100 | ] 101 | }, 102 | { 103 | "cell_type": "markdown", 104 | "metadata": {}, 105 | "source": [ 106 | "Defining a function checking for meshing in the network:" 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "execution_count": 7, 112 | "metadata": { 113 | "collapsed": true 114 | }, 115 | "outputs": [], 116 | "source": [ 117 | "def is_radial(net):\n", 118 | " mg = top.create_nxgraph(net, multi=False)\n", 119 | " mg.add_edge(0, 1)\n", 120 | " for cycle in nx.cycle_basis(mg):\n", 121 | " if any([mg[b1][b2][\"type\"] == \"l\" for b1, b2 in zip(cycle, cycle[1:]) if \"type\" in mg[b1][b2]]):\n", 122 | " return False\n", 123 | " return True" 124 | ] 125 | }, 126 | { 127 | "cell_type": "code", 128 | "execution_count": 8, 129 | "metadata": { 130 | "collapsed": false 131 | }, 132 | "outputs": [ 133 | { 134 | "data": { 135 | "text/plain": [ 136 | "True" 137 | ] 138 | }, 139 | "execution_count": 8, 140 | "metadata": {}, 141 | "output_type": "execute_result" 142 | } 143 | ], 144 | "source": [ 145 | "is_radial(net)" 146 | ] 147 | }, 148 | { 149 | "cell_type": "markdown", 150 | "metadata": {}, 151 | "source": [ 152 | "Defining a function checking the feasibilty of the short cirsuit currents:" 153 | ] 154 | }, 155 | { 156 | "cell_type": "code", 157 | "execution_count": 9, 158 | "metadata": { 159 | "collapsed": true 160 | }, 161 | "outputs": [], 162 | "source": [ 163 | "def sc_feasible(net):\n", 164 | " sc.calc_sc(net, case=\"min\", fault=\"2ph\")\n", 165 | " return net.res_bus_sc.ikss_ka.min() > 1.1, net.res_bus_sc.ikss_ka.min()" 166 | ] 167 | }, 168 | { 169 | "cell_type": "code", 170 | "execution_count": 10, 171 | "metadata": { 172 | "collapsed": false 173 | }, 174 | "outputs": [ 175 | { 176 | "data": { 177 | "text/plain": [ 178 | "(True, 1.2132331877930074)" 179 | ] 180 | }, 181 | "execution_count": 10, 182 | "metadata": {}, 183 | "output_type": "execute_result" 184 | } 185 | ], 186 | "source": [ 187 | "sc_feasible(net)" 188 | ] 189 | }, 190 | { 191 | "cell_type": "markdown", 192 | "metadata": {}, 193 | "source": [ 194 | "The function analyze_switch_positions iterates over all possible switching states and determines the valid switching states, where the grid is radial, all buses are supplied and the short circuit current is high enough." 195 | ] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "execution_count": 11, 200 | "metadata": { 201 | "collapsed": true 202 | }, 203 | "outputs": [], 204 | "source": [ 205 | "def analyze_switch_positions(net):\n", 206 | " switch_positions = {}\n", 207 | " for i, (s1, s2) in enumerate(itertools.combinations(net.switch.index, 2)):\n", 208 | " net.switch.closed.loc[[s1, s2]] = False\n", 209 | " supplied = is_supplied(net)\n", 210 | " radial = is_radial(net)\n", 211 | " sc_valid, sc_ka = sc_feasible(net) if (supplied and radial) else (None, None)\n", 212 | " valid = supplied and radial and sc_valid\n", 213 | " switch_positions[i] = {\"supplied\": supplied, \"radial\": radial, \"sc_valid\": sc_valid,\n", 214 | " \"valid\": valid, \"min_sc\": sc_ka, \"switches\": [s1, s2]}\n", 215 | " net.switch.closed = True\n", 216 | " return pd.DataFrame.from_dict(switch_positions).T" 217 | ] 218 | }, 219 | { 220 | "cell_type": "code", 221 | "execution_count": 12, 222 | "metadata": { 223 | "collapsed": false 224 | }, 225 | "outputs": [], 226 | "source": [ 227 | "sw = analyze_switch_positions(net)" 228 | ] 229 | }, 230 | { 231 | "cell_type": "markdown", 232 | "metadata": {}, 233 | "source": [ 234 | "As an example, the first 5 rows of the result are printed:" 235 | ] 236 | }, 237 | { 238 | "cell_type": "code", 239 | "execution_count": 13, 240 | "metadata": { 241 | "collapsed": false 242 | }, 243 | "outputs": [ 244 | { 245 | "data": { 246 | "text/html": [ 247 | "
\n", 248 | "\n", 261 | "\n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | "
min_scradialsc_validsuppliedswitchesvalid
0NoneTrueNoneFalse[0, 1]False
1NoneFalseNoneFalse[0, 2]False
2NoneFalseNoneFalse[0, 3]False
3NoneFalseNoneFalse[0, 4]False
4NoneFalseNoneFalse[0, 5]False
\n", 321 | "
" 322 | ], 323 | "text/plain": [ 324 | " min_sc radial sc_valid supplied switches valid\n", 325 | "0 None True None False [0, 1] False\n", 326 | "1 None False None False [0, 2] False\n", 327 | "2 None False None False [0, 3] False\n", 328 | "3 None False None False [0, 4] False\n", 329 | "4 None False None False [0, 5] False" 330 | ] 331 | }, 332 | "execution_count": 13, 333 | "metadata": {}, 334 | "output_type": "execute_result" 335 | } 336 | ], 337 | "source": [ 338 | "sw.head()" 339 | ] 340 | }, 341 | { 342 | "cell_type": "markdown", 343 | "metadata": {}, 344 | "source": [ 345 | "The overall results can now be analysed using pandas:" 346 | ] 347 | }, 348 | { 349 | "cell_type": "code", 350 | "execution_count": 14, 351 | "metadata": { 352 | "collapsed": false 353 | }, 354 | "outputs": [ 355 | { 356 | "name": "stdout", 357 | "output_type": "stream", 358 | "text": [ 359 | "number of switching states: 276\n", 360 | "number of switching state with meshings: 95\n", 361 | "number of switching state with unsupplied stations: 85\n", 362 | "number of switching states with topology problem: 96\n", 363 | "number of switching state violating short circuit: 100\n", 364 | "Overall valid switching states: 80\n" 365 | ] 366 | } 367 | ], 368 | "source": [ 369 | "print(\"number of switching states: %u\" % len(sw.index))\n", 370 | "print(\"number of switching state with meshings: %u\" % len(sw[sw.radial == False]))\n", 371 | "print(\"number of switching state with unsupplied stations: %u\" % len(sw[sw.supplied == False]))\n", 372 | "print(\"number of switching states with topology problem: %u\"%len(sw[(sw.supplied==False)|(sw.radial==False)]))\n", 373 | "print(\"number of switching state violating short circuit: %u\" % len(sw[sw.sc_valid == False]))\n", 374 | "print(\"Overall valid switching states: %u\" % (len(sw[sw.valid])))" 375 | ] 376 | } 377 | ], 378 | "metadata": { 379 | "anaconda-cloud": {}, 380 | "kernelspec": { 381 | "display_name": "Python [conda env:Anaconda36]", 382 | "language": "python", 383 | "name": "conda-env-Anaconda36-py" 384 | }, 385 | "language_info": { 386 | "codemirror_mode": { 387 | "name": "ipython", 388 | "version": 3 389 | }, 390 | "file_extension": ".py", 391 | "mimetype": "text/x-python", 392 | "name": "python", 393 | "nbconvert_exporter": "python", 394 | "pygments_lexer": "ipython3", 395 | "version": "3.6.3" 396 | } 397 | }, 398 | "nbformat": 4, 399 | "nbformat_minor": 2 400 | } 401 | -------------------------------------------------------------------------------- /results/results_timeseries.json: -------------------------------------------------------------------------------- 1 | {"switches":{"00:00":[4,6],"00:15":[4,6],"00:30":[5,6],"00:45":[5,6],"01:00":[5,6],"01:15":[4,6],"01:30":[5,6],"01:45":[5,6],"02:00":[5,6],"02:15":[5,6],"02:30":[3,18],"02:45":[3,18],"03:00":[3,18],"03:15":[3,18],"03:30":[3,18],"03:45":[3,18],"04:00":[3,18],"04:15":[3,18],"04:30":[3,18],"04:45":[5,6],"05:00":[3,18],"05:15":[3,18],"05:30":[5,6],"05:45":[5,6],"06:00":[5,6],"06:15":[5,6],"06:30":[4,6],"06:45":[5,6],"07:00":[4,19],"07:15":[5,13],"07:30":[5,13],"07:45":[5,8],"08:00":[5,13],"08:15":[5,13],"08:30":[5,13],"08:45":[5,13],"09:00":[4,13],"09:15":[4,18],"09:30":[5,18],"09:45":[4,18],"10:00":[5,18],"10:15":[5,13],"10:30":[5,13],"10:45":[5,13],"11:00":[5,13],"11:15":[5,13],"11:30":[5,16],"11:45":[5,16],"12:00":[5,16],"12:15":[5,16],"12:30":[5,16],"12:45":[5,16],"13:00":[5,16],"13:15":[5,16],"13:30":[5,16],"13:45":[5,15],"14:00":[5,15],"14:15":[5,15],"14:30":[5,15],"14:45":[5,15],"15:00":[5,15],"15:15":[5,15],"15:30":[5,15],"15:45":[5,16],"16:00":[5,16],"16:15":[5,15],"16:30":[5,15],"16:45":[5,15],"17:00":[5,15],"17:15":[5,15],"17:30":[5,15],"17:45":[5,15],"18:00":[5,15],"18:15":[5,15],"18:30":[5,15],"18:45":[5,15],"19:00":[5,15],"19:15":[5,15],"19:30":[5,16],"19:45":[5,15],"20:00":[5,15],"20:15":[5,15],"20:30":[5,15],"20:45":[5,16],"21:00":[5,16],"21:15":[5,16],"21:30":[5,16],"21:45":[5,16],"22:00":[5,13],"22:15":[4,13],"22:30":[5,13],"22:45":[5,13],"23:00":[4,13],"23:15":[5,18],"23:30":[4,6],"23:45":[5,6],"24:00":[5,6]},"losses":{"00:00":74.6851397356,"00:15":78.983402026,"00:30":85.088638521,"00:45":92.0330729518,"01:00":99.8156831212,"01:15":106.3206372596,"01:30":113.3166515483,"01:45":120.2765491485,"02:00":127.2769353361,"02:15":134.4586950987,"02:30":148.3474602583,"02:45":156.5686298705,"03:00":165.1575194254,"03:15":173.9744620209,"03:30":183.286372474,"03:45":174.387108488,"04:00":183.1432715488,"04:15":165.1575194254,"04:30":156.3171761697,"04:45":134.0236702737,"05:00":146.5607972372,"05:15":159.5973906923,"05:30":132.5328025513,"05:45":112.4384062366,"06:00":93.5633441515,"06:15":93.9853674066,"06:30":83.7260687514,"06:45":82.3608573934,"07:00":73.6426926316,"07:15":70.0252776915,"07:30":71.3918670372,"07:45":71.0038840287,"08:00":71.4188452536,"08:15":71.4933165999,"08:30":71.2590490726,"08:45":71.5669426108,"09:00":72.980968378,"09:15":75.6767585872,"09:30":74.2873624395,"09:45":77.2220763021,"10:00":73.2321351605,"10:15":70.9812161019,"10:30":69.8394522437,"10:45":68.4625410872,"11:00":69.1963684071,"11:15":69.5273049061,"11:30":73.7422358805,"11:45":75.8680575415,"12:00":75.53644195,"12:15":78.6169953168,"12:30":79.7184335325,"12:45":82.2554667586,"13:00":84.1168832489,"13:15":85.2834201758,"13:30":85.9671587898,"13:45":86.5312375044,"14:00":87.0705727327,"14:15":87.880215475,"14:30":88.9252369959,"14:45":90.9649054881,"15:00":83.0740525189,"15:15":87.4836605468,"15:30":83.7104519603,"15:45":76.5314059946,"16:00":80.7415190029,"16:15":86.3605187549,"16:30":84.6485334402,"16:45":83.937958784,"17:00":89.7136465688,"17:15":97.8232335088,"17:30":107.7444317335,"17:45":114.8517652788,"18:00":128.4447860587,"18:15":131.3624048139,"18:30":133.6796142594,"18:45":147.244287903,"19:00":160.1797347393,"19:15":156.8998945791,"19:30":188.2995174887,"19:45":154.9854878537,"20:00":125.5038150182,"20:15":114.336634299,"20:30":104.1115473985,"20:45":95.3602356006,"21:00":88.7194425902,"21:15":83.8397095703,"21:30":80.1860821053,"21:45":77.4613675289,"22:00":75.529293415,"22:15":71.5505471417,"22:30":70.5674362008,"22:45":70.2734701036,"23:00":71.5049939299,"23:15":74.4116978959,"23:30":77.7217861829,"23:45":82.5393312141,"24:00":82.5393312141},"max_line_loading":{"00:00":15.1178276828,"00:15":20.5106201437,"00:30":25.3608547052,"00:45":29.8286955951,"01:00":33.7448908661,"01:15":37.1971591381,"01:30":40.2670451531,"01:45":43.0848749196,"02:00":45.7329615261,"02:15":48.2942692848,"02:30":35.2105062032,"02:45":36.9045310419,"03:00":38.5954557344,"03:15":40.2552517134,"03:30":41.9398749387,"03:45":40.3391577913,"04:00":41.9119628452,"04:15":38.5954557344,"04:30":36.8483574107,"04:45":48.1303774951,"05:00":34.788237747,"05:15":37.3891414988,"05:30":47.3285859946,"05:45":39.265097964,"06:00":29.4436082814,"06:15":28.0408916858,"06:30":19.0657497113,"06:45":16.5713824718,"07:00":12.0216090292,"07:15":7.795583899,"07:30":7.8949090278,"07:45":9.8272876882,"08:00":9.848793503,"08:15":10.5602840146,"08:30":9.4068125932,"08:45":8.1299136615,"09:00":10.6997259577,"09:15":12.8117835457,"09:30":12.0369891792,"09:45":13.6073430613,"10:00":11.417207907,"10:15":10.0661162671,"10:30":7.9274204971,"10:45":7.8048164542,"11:00":8.7091641576,"11:15":9.7182454866,"11:30":11.6530784072,"11:45":12.4628175052,"12:00":12.3093544099,"12:15":14.157647918,"12:30":14.2662585546,"12:45":15.6344620297,"13:00":16.660549666,"13:15":17.4520283964,"13:30":17.9570521617,"13:45":18.3103416982,"14:00":18.4524371602,"14:15":19.5207667444,"14:30":20.6742299054,"14:45":21.8573114981,"15:00":16.1546304632,"15:15":19.8227106956,"15:30":16.8873697776,"15:45":11.8972692156,"16:00":15.0355724763,"16:15":19.1829663018,"16:30":17.4697185092,"16:45":16.5371851289,"17:00":20.3602783255,"17:15":24.5961386742,"17:30":29.4330885904,"17:45":32.1282112157,"18:00":37.3344339923,"18:15":37.677779353,"18:30":37.7977914284,"18:45":42.3558435626,"19:00":46.3970880046,"19:15":44.969235827,"19:30":45.9873537425,"19:45":44.4629569822,"20:00":33.2759906398,"20:15":28.6725306995,"20:30":24.1986327816,"20:45":21.0240990304,"21:00":17.7932251363,"21:15":15.483739204,"21:30":13.2992084176,"21:45":12.7582687969,"22:00":12.1338219877,"22:15":10.1685988438,"22:30":7.9923426247,"22:45":6.7814451842,"23:00":11.4795145666,"23:15":11.9891632202,"23:30":16.034261819,"23:45":21.7810350686,"24:00":21.7810350686},"max_trafo_loading":{"00:00":1.5564600918,"00:15":1.830335978,"00:30":2.0879264215,"00:45":2.3290635377,"01:00":2.5103834912,"01:15":2.7447571143,"01:30":2.9266679098,"01:45":3.097717473,"02:00":3.2615330987,"02:15":3.4216647601,"02:30":3.9234064111,"02:45":4.0767764582,"03:00":4.2300105423,"03:15":4.3822315735,"03:30":4.535195254,"03:45":4.3848635424,"04:00":4.5343186978,"04:15":4.2300105423,"04:30":4.0750186865,"04:45":3.4146040725,"05:00":3.9102109852,"05:15":4.1922480064,"05:30":3.4299149803,"05:45":2.9839062088,"06:00":2.4639800219,"06:15":2.4694833631,"06:30":2.0828619996,"06:45":1.9950476086,"07:00":1.5095977281,"07:15":0.9146505078,"07:30":0.9913928079,"07:45":0.3549131487,"08:00":0.6337669648,"08:15":0.4965452787,"08:30":0.6735380623,"08:45":0.863364793,"09:00":1.2299559211,"09:15":1.6088228528,"09:30":1.5115290702,"09:45":1.7087241916,"10:00":1.4337008528,"10:15":1.1312095826,"10:30":0.9893022665,"10:45":0.688153135,"11:00":0.5237666471,"11:15":0.361987496,"11:30":0.3658369842,"11:45":0.5613726675,"12:00":0.4807189956,"12:15":0.7022708739,"12:30":0.7072740674,"12:45":0.8652293266,"13:00":0.9815482779,"13:15":1.0646942624,"13:30":1.1268388924,"13:45":1.1837551801,"14:00":1.244227646,"14:15":1.3117813126,"14:30":1.3846654041,"14:45":1.4616616201,"15:00":1.0742667034,"15:15":1.3330777717,"15:30":1.1473564732,"15:45":0.6785335343,"16:00":0.9743066572,"16:15":1.2926084301,"16:30":1.1842496773,"16:45":1.1093736295,"17:00":1.3671840736,"17:15":1.6538682226,"17:30":1.9624458422,"17:45":2.1341842644,"18:00":2.4651446388,"18:15":2.4871999775,"18:30":2.4950631257,"18:45":2.7841427482,"19:00":3.0398911941,"19:15":2.9497760794,"19:30":3.4203284926,"19:45":2.9177030201,"20:00":2.2080679474,"20:15":1.9147845182,"20:30":1.6080093313,"20:45":1.3108086877,"21:00":1.0425689673,"21:15":0.7963030944,"21:30":0.5601914094,"21:45":0.3243409547,"22:00":0.1075216902,"22:15":0.302193475,"22:30":0.5720048337,"22:45":0.8515710516,"23:00":1.1499735617,"23:15":1.4380914126,"23:30":1.7488925965,"23:45":2.0368759427,"24:00":2.0368759427},"min_voltage":{"00:00":0.9709968103,"00:15":0.9710023086,"00:30":0.9710099478,"00:45":0.9710140127,"01:00":0.976926009,"01:15":0.9710172458,"01:30":0.9710225057,"01:45":0.9710245247,"02:00":0.9710262883,"02:15":0.9710278528,"02:30":0.9710289624,"02:45":0.9710298391,"03:00":0.9710305719,"03:15":0.9710311584,"03:30":0.9710316055,"03:45":0.9710311673,"04:00":0.9710316034,"04:15":0.9710305719,"04:30":0.9710298299,"04:45":0.9710277842,"05:00":0.9710288803,"05:15":0.9710304046,"05:30":0.9710278624,"05:45":0.9710230718,"06:00":0.9710159092,"06:15":0.9769133107,"06:30":0.9710063701,"06:45":0.9710074625,"07:00":0.9709949298,"07:15":0.9853333762,"07:30":0.9853351631,"07:45":0.9851959534,"08:00":0.997671808,"08:15":0.9963658451,"08:30":0.998189273,"08:45":1.0000249857,"09:00":0.9853379628,"09:15":0.9709969105,"09:30":0.9709978556,"09:45":0.9709990284,"10:00":0.9709962966,"10:15":0.9853388397,"10:30":0.9853354691,"10:45":0.985327875,"11:00":0.9861738554,"11:15":0.9844031801,"11:30":0.9923722185,"11:45":0.9919484049,"12:00":0.9917514862,"12:15":0.9911962193,"12:30":0.9970987253,"12:45":0.996600027,"13:00":0.9962532406,"13:15":0.9960270066,"13:30":0.9958769923,"13:45":0.9957459684,"14:00":0.995602092,"14:15":0.9954325942,"14:30":0.9952438167,"14:45":1.00013028,"15:00":1.0029919066,"15:15":1.0014816178,"15:30":1.0031177265,"15:45":1.00548234,"16:00":1.0037877068,"16:15":1.0018962675,"16:30":1.0028368698,"16:45":1.0027243538,"17:00":1.0012616355,"17:15":1.0096559809,"17:30":1.0075635963,"17:45":1.005803099,"18:00":1.002261144,"18:15":1.0021657959,"18:30":1.0022167814,"18:45":0.9990863849,"19:00":0.9962845734,"19:15":0.9973606294,"19:30":0.989064435,"19:45":0.9976952595,"20:00":1.0055664796,"20:15":1.0078742025,"20:30":1.0093805984,"20:45":1.0103537996,"21:00":1.0112238914,"21:15":1.0120166688,"21:30":1.0127763511,"21:45":1.0135467472,"22:00":1.01436506,"22:15":0.9999719903,"22:30":1.000104537,"22:45":1.0001119741,"23:00":0.9853366897,"23:15":0.9853461834,"23:30":0.9710004649,"23:45":0.9710088154,"24:00":0.9710088154},"max_voltage":{"00:00":0.9968059946,"00:15":0.9893058792,"00:30":0.992967415,"00:45":0.9963101779,"01:00":0.999179798,"01:15":1.0016821797,"01:30":1.0038103497,"01:45":1.0057524147,"02:00":1.0075510062,"02:15":1.009274588,"02:30":1.0109309376,"02:45":1.0124719659,"03:00":1.0140062494,"03:15":1.0155053783,"03:30":1.0170264806,"03:45":1.0155907884,"04:00":1.0169981267,"04:15":1.0140062494,"04:30":1.0124145272,"04:45":1.0091416262,"05:00":1.0104980296,"05:15":1.0127744046,"05:30":1.0081338062,"05:45":1.002271727,"06:00":0.9949028364,"06:15":0.9930092996,"06:30":0.9976044132,"06:45":0.9858655212,"07:00":0.9859171922,"07:15":0.9914203171,"07:30":1.0035343126,"07:45":1.0046883712,"08:00":1.0024191933,"08:15":1.0020039121,"08:30":1.002553898,"08:45":1.0031429198,"09:00":1.0064769246,"09:15":0.9982214165,"09:30":0.9974609678,"09:45":0.9996692879,"10:00":0.9970029145,"10:15":0.9943895999,"10:30":0.9928746718,"10:45":0.99081493,"11:00":1.0018544255,"11:15":1.0013582843,"11:30":1.0005116555,"11:45":1.0004784298,"12:00":1.0004880433,"12:15":1.0004476286,"12:30":1.0126003233,"12:45":1.0125711524,"13:00":1.0125504708,"13:15":1.0125371416,"13:30":1.0125286497,"13:45":1.0125222766,"14:00":1.0125203767,"14:15":1.0125168468,"14:30":1.0125120471,"14:45":1.0152721098,"15:00":1.0152862648,"15:15":1.0152769731,"15:30":1.0152837403,"15:45":1.0152999285,"16:00":1.0152898661,"16:15":1.0152784948,"16:30":1.0152823829,"16:45":1.0152849859,"17:00":1.0152755316,"17:15":1.0249186316,"17:30":1.0248605881,"17:45":1.0248186306,"18:00":1.0247487388,"18:15":1.0247272349,"18:30":1.0247091022,"18:45":1.0246449538,"19:00":1.0245876121,"19:15":1.0245968985,"19:30":1.0243150799,"19:45":1.024606325,"20:00":1.0247378489,"20:15":1.0247981893,"20:30":1.0248586007,"20:45":1.0249236212,"21:00":1.0249825424,"21:15":1.025031908,"21:30":1.0250754383,"21:45":1.0251159543,"22:00":1.0252815114,"22:15":1.0136627332,"22:30":1.0145134204,"22:45":1.0040938215,"23:00":1.0077363134,"23:15":0.9993841237,"23:30":0.9964950601,"23:45":0.9892490384,"24:00":0.9892490384},"tp_2w":{"00:00":2.0,"00:15":2.0,"00:30":2.0,"00:45":2.0,"01:00":1.0,"01:15":2.0,"01:30":2.0,"01:45":2.0,"02:00":2.0,"02:15":2.0,"02:30":2.0,"02:45":2.0,"03:00":2.0,"03:15":2.0,"03:30":2.0,"03:45":2.0,"04:00":2.0,"04:15":2.0,"04:30":2.0,"04:45":2.0,"05:00":2.0,"05:15":2.0,"05:30":2.0,"05:45":2.0,"06:00":2.0,"06:15":1.0,"06:30":2.0,"06:45":2.0,"07:00":2.0,"07:15":1.0,"07:30":1.0,"07:45":1.0,"08:00":0.0,"08:15":0.0,"08:30":0.0,"08:45":0.0,"09:00":1.0,"09:15":2.0,"09:30":2.0,"09:45":2.0,"10:00":2.0,"10:15":1.0,"10:30":1.0,"10:45":1.0,"11:00":0.0,"11:15":0.0,"11:30":0.0,"11:45":0.0,"12:00":0.0,"12:15":0.0,"12:30":0.0,"12:45":0.0,"13:00":0.0,"13:15":0.0,"13:30":0.0,"13:45":0.0,"14:00":0.0,"14:15":0.0,"14:30":0.0,"14:45":-1.0,"15:00":-1.0,"15:15":-1.0,"15:30":-1.0,"15:45":-1.0,"16:00":-1.0,"16:15":-1.0,"16:30":-1.0,"16:45":-1.0,"17:00":-1.0,"17:15":-1.0,"17:30":-1.0,"17:45":-1.0,"18:00":-1.0,"18:15":-1.0,"18:30":-1.0,"18:45":-1.0,"19:00":-1.0,"19:15":-1.0,"19:30":-1.0,"19:45":-1.0,"20:00":-1.0,"20:15":-1.0,"20:30":-1.0,"20:45":-1.0,"21:00":-1.0,"21:15":-1.0,"21:30":-1.0,"21:45":-1.0,"22:00":-1.0,"22:15":0.0,"22:30":0.0,"22:45":0.0,"23:00":1.0,"23:15":1.0,"23:30":2.0,"23:45":2.0,"24:00":2.0},"tp_3w":{"00:00":1.0,"00:15":2.0,"00:30":2.0,"00:45":2.0,"01:00":2.0,"01:15":2.0,"01:30":2.0,"01:45":2.0,"02:00":2.0,"02:15":2.0,"02:30":2.0,"02:45":2.0,"03:00":2.0,"03:15":2.0,"03:30":2.0,"03:45":2.0,"04:00":2.0,"04:15":2.0,"04:30":2.0,"04:45":2.0,"05:00":2.0,"05:15":2.0,"05:30":2.0,"05:45":2.0,"06:00":2.0,"06:15":2.0,"06:30":1.0,"06:45":2.0,"07:00":2.0,"07:15":1.0,"07:30":0.0,"07:45":0.0,"08:00":0.0,"08:15":0.0,"08:30":0.0,"08:45":0.0,"09:00":0.0,"09:15":1.0,"09:30":1.0,"09:45":1.0,"10:00":1.0,"10:15":1.0,"10:30":1.0,"10:45":1.0,"11:00":1.0,"11:15":1.0,"11:30":0.0,"11:45":0.0,"12:00":0.0,"12:15":0.0,"12:30":-1.0,"12:45":-1.0,"13:00":-1.0,"13:15":-1.0,"13:30":-1.0,"13:45":-1.0,"14:00":-1.0,"14:15":-1.0,"14:30":-1.0,"14:45":-1.0,"15:00":-1.0,"15:15":-1.0,"15:30":-1.0,"15:45":-1.0,"16:00":-1.0,"16:15":-1.0,"16:30":-1.0,"16:45":-1.0,"17:00":-1.0,"17:15":-2.0,"17:30":-2.0,"17:45":-2.0,"18:00":-2.0,"18:15":-2.0,"18:30":-2.0,"18:45":-2.0,"19:00":-2.0,"19:15":-2.0,"19:30":-2.0,"19:45":-2.0,"20:00":-2.0,"20:15":-2.0,"20:30":-2.0,"20:45":-2.0,"21:00":-2.0,"21:15":-2.0,"21:30":-2.0,"21:45":-2.0,"22:00":-2.0,"22:15":-1.0,"22:30":-1.0,"22:45":0.0,"23:00":0.0,"23:15":1.0,"23:30":1.0,"23:45":2.0,"24:00":2.0},"min_sc":{"00:00":1.1954464795,"00:15":1.1954464795,"00:30":1.1954464795,"00:45":1.1954464795,"01:00":1.1954464795,"01:15":1.1954464795,"01:30":1.1954464795,"01:45":1.1954464795,"02:00":1.1954464795,"02:15":1.1954464795,"02:30":1.2282104488,"02:45":1.2282104488,"03:00":1.2282104488,"03:15":1.2282104488,"03:30":1.2282104488,"03:45":1.2282104488,"04:00":1.2282104488,"04:15":1.2282104488,"04:30":1.2282104488,"04:45":1.1954464795,"05:00":1.2282104488,"05:15":1.2282104488,"05:30":1.1954464795,"05:45":1.1954464795,"06:00":1.1954464795,"06:15":1.1954464795,"06:30":1.1954464795,"06:45":1.1954464795,"07:00":1.5327348304,"07:15":1.2487597994,"07:30":1.2487597994,"07:45":1.1077440696,"08:00":1.2487597994,"08:15":1.2487597994,"08:30":1.2487597994,"08:45":1.2487597994,"09:00":1.2487597994,"09:15":1.5327348304,"09:30":1.5327348304,"09:45":1.5327348304,"10:00":1.5327348304,"10:15":1.2487597994,"10:30":1.2487597994,"10:45":1.2487597994,"11:00":1.2487597994,"11:15":1.2487597994,"11:30":1.6533898442,"11:45":1.6533898442,"12:00":1.6533898442,"12:15":1.6533898442,"12:30":1.6533898442,"12:45":1.6533898442,"13:00":1.6533898442,"13:15":1.6533898442,"13:30":1.6533898442,"13:45":1.4054270881,"14:00":1.4054270881,"14:15":1.4054270881,"14:30":1.4054270881,"14:45":1.4054270881,"15:00":1.4054270881,"15:15":1.4054270881,"15:30":1.4054270881,"15:45":1.6533898442,"16:00":1.6533898442,"16:15":1.4054270881,"16:30":1.4054270881,"16:45":1.4054270881,"17:00":1.4054270881,"17:15":1.4054270881,"17:30":1.4054270881,"17:45":1.4054270881,"18:00":1.4054270881,"18:15":1.4054270881,"18:30":1.4054270881,"18:45":1.4054270881,"19:00":1.4054270881,"19:15":1.4054270881,"19:30":1.6533898442,"19:45":1.4054270881,"20:00":1.4054270881,"20:15":1.4054270881,"20:30":1.4054270881,"20:45":1.6533898442,"21:00":1.6533898442,"21:15":1.6533898442,"21:30":1.6533898442,"21:45":1.6533898442,"22:00":1.2487597994,"22:15":1.2487597994,"22:30":1.2487597994,"22:45":1.2487597994,"23:00":1.2487597994,"23:15":1.5327348304,"23:30":1.1954464795,"23:45":1.1954464795,"24:00":1.1954464795}} -------------------------------------------------------------------------------- /results/results_switches.json: -------------------------------------------------------------------------------- 1 | {"min_sc":{"0":null,"1":null,"2":null,"3":null,"4":null,"5":0.8382010166,"6":0.8382010166,"7":0.892442874,"8":0.892442874,"9":0.892442874,"10":0.892442874,"11":1.178796586,"12":1.178796586,"13":1.178796586,"14":1.178796586,"15":1.2151942149,"16":1.2151942149,"17":1.2151942149,"18":1.2151942149,"19":0.9619019838,"20":0.9619019838,"21":1.0168194716,"22":1.0168194716,"23":null,"24":null,"25":null,"26":null,"27":0.8382010166,"28":0.8382010166,"29":0.892442874,"30":0.892442874,"31":0.892442874,"32":0.892442874,"33":1.178796586,"34":1.178796586,"35":1.178796586,"36":1.178796586,"37":1.2151942149,"38":1.2151942149,"39":1.2151942149,"40":1.2151942149,"41":0.9619019838,"42":0.9619019838,"43":1.0168194716,"44":1.0168194716,"45":null,"46":null,"47":null,"48":0.791992754,"49":0.791992754,"50":0.8491996747,"51":0.8491996747,"52":0.8491996747,"53":0.8491996747,"54":1.189133273,"55":1.189133273,"56":1.189133273,"57":1.189133273,"58":1.2282104488,"59":1.2282104488,"60":1.2282104488,"61":1.2282104488,"62":0.9301836266,"63":0.9301836266,"64":0.9862361862,"65":0.9862361862,"66":null,"67":null,"68":0.791992754,"69":0.791992754,"70":0.8491996747,"71":0.8491996747,"72":0.8491996747,"73":0.8491996747,"74":1.189133273,"75":1.189133273,"76":1.189133273,"77":1.189133273,"78":1.2282104488,"79":1.2282104488,"80":1.2282104488,"81":1.2282104488,"82":0.9301836266,"83":0.9301836266,"84":0.9862361862,"85":0.9862361862,"86":null,"87":1.1954464795,"88":1.1954464795,"89":1.1077440696,"90":1.1077440696,"91":0.9666892635,"92":0.9666892635,"93":1.2487597994,"94":1.2487597994,"95":1.4054270881,"96":1.4054270881,"97":1.6533898442,"98":1.6533898442,"99":1.5327348304,"100":1.5327348304,"101":0.9301836266,"102":0.9301836266,"103":0.9862361862,"104":0.9862361862,"105":1.1954464795,"106":1.1954464795,"107":1.1077440696,"108":1.1077440696,"109":0.9666892635,"110":0.9666892635,"111":1.2487597994,"112":1.2487597994,"113":1.4054270881,"114":1.4054270881,"115":1.6533898442,"116":1.6533898442,"117":1.5327348304,"118":1.5327348304,"119":0.9301836266,"120":0.9301836266,"121":0.9862361862,"122":0.9862361862,"123":null,"124":null,"125":null,"126":null,"127":null,"128":1.2487597994,"129":1.2487597994,"130":1.2132331878,"131":1.2132331878,"132":1.1775514362,"133":1.1775514362,"134":1.011636035,"135":1.011636035,"136":0.7118286999,"137":0.7118286999,"138":0.7832971137,"139":0.7832971137,"140":null,"141":null,"142":null,"143":null,"144":1.2487597994,"145":1.2487597994,"146":1.2132331878,"147":1.2132331878,"148":1.1775514362,"149":1.1775514362,"150":1.011636035,"151":1.011636035,"152":0.7118286999,"153":0.7118286999,"154":0.7832971137,"155":0.7832971137,"156":null,"157":null,"158":null,"159":1.1556855605,"160":1.1556855605,"161":1.1556855605,"162":1.1556855605,"163":1.2301006533,"164":1.2301006533,"165":1.0768774985,"166":1.0768774985,"167":0.7577352756,"168":0.7577352756,"169":0.8281065111,"170":0.8281065111,"171":null,"172":null,"173":1.1556855605,"174":1.1556855605,"175":1.1556855605,"176":1.1556855605,"177":1.2301006533,"178":1.2301006533,"179":1.0768774985,"180":1.0768774985,"181":0.7577352756,"182":0.7577352756,"183":0.8281065111,"184":0.8281065111,"185":null,"186":0.9956576358,"187":0.9956576358,"188":0.9956576358,"189":0.9956576358,"190":1.0597684614,"191":1.0597684614,"192":1.0597684614,"193":1.0597684614,"194":0.7577352756,"195":0.7577352756,"196":0.8281065111,"197":0.8281065111,"198":0.9956576358,"199":0.9956576358,"200":0.9956576358,"201":0.9956576358,"202":1.0597684614,"203":1.0597684614,"204":1.0597684614,"205":1.0597684614,"206":0.7577352756,"207":0.7577352756,"208":0.8281065111,"209":0.8281065111,"210":null,"211":null,"212":null,"213":null,"214":null,"215":null,"216":null,"217":null,"218":null,"219":null,"220":null,"221":null,"222":null,"223":null,"224":null,"225":null,"226":null,"227":null,"228":null,"229":null,"230":null,"231":null,"232":null,"233":null,"234":null,"235":null,"236":null,"237":null,"238":null,"239":null,"240":null,"241":null,"242":null,"243":null,"244":null,"245":null,"246":null,"247":null,"248":null,"249":null,"250":null,"251":null,"252":null,"253":null,"254":null,"255":null,"256":null,"257":null,"258":null,"259":null,"260":null,"261":null,"262":null,"263":null,"264":null,"265":null,"266":null,"267":null,"268":null,"269":null,"270":null,"271":null,"272":null,"273":null,"274":null,"275":null},"radial":{"0":true,"1":false,"2":false,"3":false,"4":false,"5":true,"6":true,"7":true,"8":true,"9":true,"10":true,"11":true,"12":true,"13":true,"14":true,"15":true,"16":true,"17":true,"18":true,"19":true,"20":true,"21":true,"22":true,"23":false,"24":false,"25":false,"26":false,"27":true,"28":true,"29":true,"30":true,"31":true,"32":true,"33":true,"34":true,"35":true,"36":true,"37":true,"38":true,"39":true,"40":true,"41":true,"42":true,"43":true,"44":true,"45":false,"46":false,"47":false,"48":true,"49":true,"50":true,"51":true,"52":true,"53":true,"54":true,"55":true,"56":true,"57":true,"58":true,"59":true,"60":true,"61":true,"62":true,"63":true,"64":true,"65":true,"66":false,"67":false,"68":true,"69":true,"70":true,"71":true,"72":true,"73":true,"74":true,"75":true,"76":true,"77":true,"78":true,"79":true,"80":true,"81":true,"82":true,"83":true,"84":true,"85":true,"86":false,"87":true,"88":true,"89":true,"90":true,"91":true,"92":true,"93":true,"94":true,"95":true,"96":true,"97":true,"98":true,"99":true,"100":true,"101":true,"102":true,"103":true,"104":true,"105":true,"106":true,"107":true,"108":true,"109":true,"110":true,"111":true,"112":true,"113":true,"114":true,"115":true,"116":true,"117":true,"118":true,"119":true,"120":true,"121":true,"122":true,"123":false,"124":false,"125":false,"126":false,"127":false,"128":true,"129":true,"130":true,"131":true,"132":true,"133":true,"134":true,"135":true,"136":true,"137":true,"138":true,"139":true,"140":false,"141":false,"142":false,"143":false,"144":true,"145":true,"146":true,"147":true,"148":true,"149":true,"150":true,"151":true,"152":true,"153":true,"154":true,"155":true,"156":false,"157":false,"158":false,"159":true,"160":true,"161":true,"162":true,"163":true,"164":true,"165":true,"166":true,"167":true,"168":true,"169":true,"170":true,"171":false,"172":false,"173":true,"174":true,"175":true,"176":true,"177":true,"178":true,"179":true,"180":true,"181":true,"182":true,"183":true,"184":true,"185":false,"186":true,"187":true,"188":true,"189":true,"190":true,"191":true,"192":true,"193":true,"194":true,"195":true,"196":true,"197":true,"198":true,"199":true,"200":true,"201":true,"202":true,"203":true,"204":true,"205":true,"206":true,"207":true,"208":true,"209":true,"210":false,"211":false,"212":false,"213":false,"214":false,"215":false,"216":false,"217":false,"218":false,"219":false,"220":false,"221":false,"222":false,"223":false,"224":false,"225":false,"226":false,"227":false,"228":false,"229":false,"230":false,"231":false,"232":false,"233":false,"234":false,"235":false,"236":false,"237":false,"238":false,"239":false,"240":false,"241":false,"242":false,"243":false,"244":false,"245":false,"246":false,"247":false,"248":false,"249":false,"250":false,"251":false,"252":false,"253":false,"254":false,"255":false,"256":false,"257":false,"258":false,"259":false,"260":false,"261":false,"262":false,"263":false,"264":false,"265":false,"266":false,"267":false,"268":false,"269":false,"270":false,"271":false,"272":false,"273":false,"274":false,"275":false},"sc_valid":{"0":null,"1":null,"2":null,"3":null,"4":null,"5":false,"6":false,"7":false,"8":false,"9":false,"10":false,"11":true,"12":true,"13":true,"14":true,"15":true,"16":true,"17":true,"18":true,"19":false,"20":false,"21":false,"22":false,"23":null,"24":null,"25":null,"26":null,"27":false,"28":false,"29":false,"30":false,"31":false,"32":false,"33":true,"34":true,"35":true,"36":true,"37":true,"38":true,"39":true,"40":true,"41":false,"42":false,"43":false,"44":false,"45":null,"46":null,"47":null,"48":false,"49":false,"50":false,"51":false,"52":false,"53":false,"54":true,"55":true,"56":true,"57":true,"58":true,"59":true,"60":true,"61":true,"62":false,"63":false,"64":false,"65":false,"66":null,"67":null,"68":false,"69":false,"70":false,"71":false,"72":false,"73":false,"74":true,"75":true,"76":true,"77":true,"78":true,"79":true,"80":true,"81":true,"82":false,"83":false,"84":false,"85":false,"86":null,"87":true,"88":true,"89":true,"90":true,"91":false,"92":false,"93":true,"94":true,"95":true,"96":true,"97":true,"98":true,"99":true,"100":true,"101":false,"102":false,"103":false,"104":false,"105":true,"106":true,"107":true,"108":true,"109":false,"110":false,"111":true,"112":true,"113":true,"114":true,"115":true,"116":true,"117":true,"118":true,"119":false,"120":false,"121":false,"122":false,"123":null,"124":null,"125":null,"126":null,"127":null,"128":true,"129":true,"130":true,"131":true,"132":true,"133":true,"134":false,"135":false,"136":false,"137":false,"138":false,"139":false,"140":null,"141":null,"142":null,"143":null,"144":true,"145":true,"146":true,"147":true,"148":true,"149":true,"150":false,"151":false,"152":false,"153":false,"154":false,"155":false,"156":null,"157":null,"158":null,"159":true,"160":true,"161":true,"162":true,"163":true,"164":true,"165":false,"166":false,"167":false,"168":false,"169":false,"170":false,"171":null,"172":null,"173":true,"174":true,"175":true,"176":true,"177":true,"178":true,"179":false,"180":false,"181":false,"182":false,"183":false,"184":false,"185":null,"186":false,"187":false,"188":false,"189":false,"190":false,"191":false,"192":false,"193":false,"194":false,"195":false,"196":false,"197":false,"198":false,"199":false,"200":false,"201":false,"202":false,"203":false,"204":false,"205":false,"206":false,"207":false,"208":false,"209":false,"210":null,"211":null,"212":null,"213":null,"214":null,"215":null,"216":null,"217":null,"218":null,"219":null,"220":null,"221":null,"222":null,"223":null,"224":null,"225":null,"226":null,"227":null,"228":null,"229":null,"230":null,"231":null,"232":null,"233":null,"234":null,"235":null,"236":null,"237":null,"238":null,"239":null,"240":null,"241":null,"242":null,"243":null,"244":null,"245":null,"246":null,"247":null,"248":null,"249":null,"250":null,"251":null,"252":null,"253":null,"254":null,"255":null,"256":null,"257":null,"258":null,"259":null,"260":null,"261":null,"262":null,"263":null,"264":null,"265":null,"266":null,"267":null,"268":null,"269":null,"270":null,"271":null,"272":null,"273":null,"274":null,"275":null},"supplied":{"0":false,"1":false,"2":false,"3":false,"4":false,"5":true,"6":true,"7":true,"8":true,"9":true,"10":true,"11":true,"12":true,"13":true,"14":true,"15":true,"16":true,"17":true,"18":true,"19":true,"20":true,"21":true,"22":true,"23":false,"24":false,"25":false,"26":false,"27":true,"28":true,"29":true,"30":true,"31":true,"32":true,"33":true,"34":true,"35":true,"36":true,"37":true,"38":true,"39":true,"40":true,"41":true,"42":true,"43":true,"44":true,"45":true,"46":false,"47":false,"48":true,"49":true,"50":true,"51":true,"52":true,"53":true,"54":true,"55":true,"56":true,"57":true,"58":true,"59":true,"60":true,"61":true,"62":true,"63":true,"64":true,"65":true,"66":false,"67":false,"68":true,"69":true,"70":true,"71":true,"72":true,"73":true,"74":true,"75":true,"76":true,"77":true,"78":true,"79":true,"80":true,"81":true,"82":true,"83":true,"84":true,"85":true,"86":true,"87":true,"88":true,"89":true,"90":true,"91":true,"92":true,"93":true,"94":true,"95":true,"96":true,"97":true,"98":true,"99":true,"100":true,"101":true,"102":true,"103":true,"104":true,"105":true,"106":true,"107":true,"108":true,"109":true,"110":true,"111":true,"112":true,"113":true,"114":true,"115":true,"116":true,"117":true,"118":true,"119":true,"120":true,"121":true,"122":true,"123":true,"124":false,"125":false,"126":false,"127":false,"128":true,"129":true,"130":true,"131":true,"132":true,"133":true,"134":true,"135":true,"136":true,"137":true,"138":true,"139":true,"140":false,"141":false,"142":false,"143":false,"144":true,"145":true,"146":true,"147":true,"148":true,"149":true,"150":true,"151":true,"152":true,"153":true,"154":true,"155":true,"156":true,"157":false,"158":false,"159":true,"160":true,"161":true,"162":true,"163":true,"164":true,"165":true,"166":true,"167":true,"168":true,"169":true,"170":true,"171":false,"172":false,"173":true,"174":true,"175":true,"176":true,"177":true,"178":true,"179":true,"180":true,"181":true,"182":true,"183":true,"184":true,"185":true,"186":true,"187":true,"188":true,"189":true,"190":true,"191":true,"192":true,"193":true,"194":true,"195":true,"196":true,"197":true,"198":true,"199":true,"200":true,"201":true,"202":true,"203":true,"204":true,"205":true,"206":true,"207":true,"208":true,"209":true,"210":true,"211":false,"212":false,"213":false,"214":false,"215":false,"216":false,"217":false,"218":false,"219":false,"220":false,"221":false,"222":false,"223":false,"224":false,"225":false,"226":false,"227":false,"228":false,"229":false,"230":false,"231":true,"232":false,"233":false,"234":false,"235":false,"236":false,"237":false,"238":false,"239":false,"240":false,"241":false,"242":false,"243":false,"244":false,"245":false,"246":false,"247":false,"248":true,"249":false,"250":false,"251":false,"252":false,"253":false,"254":false,"255":false,"256":false,"257":false,"258":false,"259":false,"260":false,"261":true,"262":false,"263":false,"264":false,"265":false,"266":false,"267":false,"268":false,"269":false,"270":true,"271":false,"272":false,"273":false,"274":false,"275":true},"switches":{"0":[0,1],"1":[0,2],"2":[0,3],"3":[0,4],"4":[0,5],"5":[0,6],"6":[0,7],"7":[0,8],"8":[0,9],"9":[0,10],"10":[0,11],"11":[0,12],"12":[0,13],"13":[0,14],"14":[0,15],"15":[0,16],"16":[0,17],"17":[0,18],"18":[0,19],"19":[0,20],"20":[0,21],"21":[0,22],"22":[0,23],"23":[1,2],"24":[1,3],"25":[1,4],"26":[1,5],"27":[1,6],"28":[1,7],"29":[1,8],"30":[1,9],"31":[1,10],"32":[1,11],"33":[1,12],"34":[1,13],"35":[1,14],"36":[1,15],"37":[1,16],"38":[1,17],"39":[1,18],"40":[1,19],"41":[1,20],"42":[1,21],"43":[1,22],"44":[1,23],"45":[2,3],"46":[2,4],"47":[2,5],"48":[2,6],"49":[2,7],"50":[2,8],"51":[2,9],"52":[2,10],"53":[2,11],"54":[2,12],"55":[2,13],"56":[2,14],"57":[2,15],"58":[2,16],"59":[2,17],"60":[2,18],"61":[2,19],"62":[2,20],"63":[2,21],"64":[2,22],"65":[2,23],"66":[3,4],"67":[3,5],"68":[3,6],"69":[3,7],"70":[3,8],"71":[3,9],"72":[3,10],"73":[3,11],"74":[3,12],"75":[3,13],"76":[3,14],"77":[3,15],"78":[3,16],"79":[3,17],"80":[3,18],"81":[3,19],"82":[3,20],"83":[3,21],"84":[3,22],"85":[3,23],"86":[4,5],"87":[4,6],"88":[4,7],"89":[4,8],"90":[4,9],"91":[4,10],"92":[4,11],"93":[4,12],"94":[4,13],"95":[4,14],"96":[4,15],"97":[4,16],"98":[4,17],"99":[4,18],"100":[4,19],"101":[4,20],"102":[4,21],"103":[4,22],"104":[4,23],"105":[5,6],"106":[5,7],"107":[5,8],"108":[5,9],"109":[5,10],"110":[5,11],"111":[5,12],"112":[5,13],"113":[5,14],"114":[5,15],"115":[5,16],"116":[5,17],"117":[5,18],"118":[5,19],"119":[5,20],"120":[5,21],"121":[5,22],"122":[5,23],"123":[6,7],"124":[6,8],"125":[6,9],"126":[6,10],"127":[6,11],"128":[6,12],"129":[6,13],"130":[6,14],"131":[6,15],"132":[6,16],"133":[6,17],"134":[6,18],"135":[6,19],"136":[6,20],"137":[6,21],"138":[6,22],"139":[6,23],"140":[7,8],"141":[7,9],"142":[7,10],"143":[7,11],"144":[7,12],"145":[7,13],"146":[7,14],"147":[7,15],"148":[7,16],"149":[7,17],"150":[7,18],"151":[7,19],"152":[7,20],"153":[7,21],"154":[7,22],"155":[7,23],"156":[8,9],"157":[8,10],"158":[8,11],"159":[8,12],"160":[8,13],"161":[8,14],"162":[8,15],"163":[8,16],"164":[8,17],"165":[8,18],"166":[8,19],"167":[8,20],"168":[8,21],"169":[8,22],"170":[8,23],"171":[9,10],"172":[9,11],"173":[9,12],"174":[9,13],"175":[9,14],"176":[9,15],"177":[9,16],"178":[9,17],"179":[9,18],"180":[9,19],"181":[9,20],"182":[9,21],"183":[9,22],"184":[9,23],"185":[10,11],"186":[10,12],"187":[10,13],"188":[10,14],"189":[10,15],"190":[10,16],"191":[10,17],"192":[10,18],"193":[10,19],"194":[10,20],"195":[10,21],"196":[10,22],"197":[10,23],"198":[11,12],"199":[11,13],"200":[11,14],"201":[11,15],"202":[11,16],"203":[11,17],"204":[11,18],"205":[11,19],"206":[11,20],"207":[11,21],"208":[11,22],"209":[11,23],"210":[12,13],"211":[12,14],"212":[12,15],"213":[12,16],"214":[12,17],"215":[12,18],"216":[12,19],"217":[12,20],"218":[12,21],"219":[12,22],"220":[12,23],"221":[13,14],"222":[13,15],"223":[13,16],"224":[13,17],"225":[13,18],"226":[13,19],"227":[13,20],"228":[13,21],"229":[13,22],"230":[13,23],"231":[14,15],"232":[14,16],"233":[14,17],"234":[14,18],"235":[14,19],"236":[14,20],"237":[14,21],"238":[14,22],"239":[14,23],"240":[15,16],"241":[15,17],"242":[15,18],"243":[15,19],"244":[15,20],"245":[15,21],"246":[15,22],"247":[15,23],"248":[16,17],"249":[16,18],"250":[16,19],"251":[16,20],"252":[16,21],"253":[16,22],"254":[16,23],"255":[17,18],"256":[17,19],"257":[17,20],"258":[17,21],"259":[17,22],"260":[17,23],"261":[18,19],"262":[18,20],"263":[18,21],"264":[18,22],"265":[18,23],"266":[19,20],"267":[19,21],"268":[19,22],"269":[19,23],"270":[20,21],"271":[20,22],"272":[20,23],"273":[21,22],"274":[21,23],"275":[22,23]},"valid":{"0":false,"1":false,"2":false,"3":false,"4":false,"5":false,"6":false,"7":false,"8":false,"9":false,"10":false,"11":true,"12":true,"13":true,"14":true,"15":true,"16":true,"17":true,"18":true,"19":false,"20":false,"21":false,"22":false,"23":false,"24":false,"25":false,"26":false,"27":false,"28":false,"29":false,"30":false,"31":false,"32":false,"33":true,"34":true,"35":true,"36":true,"37":true,"38":true,"39":true,"40":true,"41":false,"42":false,"43":false,"44":false,"45":false,"46":false,"47":false,"48":false,"49":false,"50":false,"51":false,"52":false,"53":false,"54":true,"55":true,"56":true,"57":true,"58":true,"59":true,"60":true,"61":true,"62":false,"63":false,"64":false,"65":false,"66":false,"67":false,"68":false,"69":false,"70":false,"71":false,"72":false,"73":false,"74":true,"75":true,"76":true,"77":true,"78":true,"79":true,"80":true,"81":true,"82":false,"83":false,"84":false,"85":false,"86":false,"87":true,"88":true,"89":true,"90":true,"91":false,"92":false,"93":true,"94":true,"95":true,"96":true,"97":true,"98":true,"99":true,"100":true,"101":false,"102":false,"103":false,"104":false,"105":true,"106":true,"107":true,"108":true,"109":false,"110":false,"111":true,"112":true,"113":true,"114":true,"115":true,"116":true,"117":true,"118":true,"119":false,"120":false,"121":false,"122":false,"123":false,"124":false,"125":false,"126":false,"127":false,"128":true,"129":true,"130":true,"131":true,"132":true,"133":true,"134":false,"135":false,"136":false,"137":false,"138":false,"139":false,"140":false,"141":false,"142":false,"143":false,"144":true,"145":true,"146":true,"147":true,"148":true,"149":true,"150":false,"151":false,"152":false,"153":false,"154":false,"155":false,"156":false,"157":false,"158":false,"159":true,"160":true,"161":true,"162":true,"163":true,"164":true,"165":false,"166":false,"167":false,"168":false,"169":false,"170":false,"171":false,"172":false,"173":true,"174":true,"175":true,"176":true,"177":true,"178":true,"179":false,"180":false,"181":false,"182":false,"183":false,"184":false,"185":false,"186":false,"187":false,"188":false,"189":false,"190":false,"191":false,"192":false,"193":false,"194":false,"195":false,"196":false,"197":false,"198":false,"199":false,"200":false,"201":false,"202":false,"203":false,"204":false,"205":false,"206":false,"207":false,"208":false,"209":false,"210":false,"211":false,"212":false,"213":false,"214":false,"215":false,"216":false,"217":false,"218":false,"219":false,"220":false,"221":false,"222":false,"223":false,"224":false,"225":false,"226":false,"227":false,"228":false,"229":false,"230":false,"231":false,"232":false,"233":false,"234":false,"235":false,"236":false,"237":false,"238":false,"239":false,"240":false,"241":false,"242":false,"243":false,"244":false,"245":false,"246":false,"247":false,"248":false,"249":false,"250":false,"251":false,"252":false,"253":false,"254":false,"255":false,"256":false,"257":false,"258":false,"259":false,"260":false,"261":false,"262":false,"263":false,"264":false,"265":false,"266":false,"267":false,"268":false,"269":false,"270":false,"271":false,"272":false,"273":false,"274":false,"275":false}} -------------------------------------------------------------------------------- /grid.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Creating an example network " 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "This jupyter notebook shows the creation of the example network for the case study. We create a grid with 2 external grids, two transformers (1 two-winding transformer and 1 three winding transformer)." 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 1, 20 | "metadata": { 21 | "collapsed": true 22 | }, 23 | "outputs": [], 24 | "source": [ 25 | "import pandapower as pp\n", 26 | "import pandapower.plotting as plot\n", 27 | "from numpy import pi\n", 28 | "import os\n", 29 | "import matplotlib.pyplot as plt" 30 | ] 31 | }, 32 | { 33 | "cell_type": "markdown", 34 | "metadata": {}, 35 | "source": [ 36 | "To make the creation of all the buses and lines simpler, we wrap the process of creating a bus and a line into one function." 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 2, 42 | "metadata": { 43 | "collapsed": true 44 | }, 45 | "outputs": [], 46 | "source": [ 47 | "def create_bus_with_line(net, last_bus, length_km, std_type):\n", 48 | " new_bus = pp.create_bus(net, vn_kv=10.)\n", 49 | " lidx = pp.create_line(net, last_bus, new_bus, std_type=std_type, length_km=length_km)\n", 50 | " pp.create_switch(net, bus=last_bus, element=lidx, et=\"l\")\n", 51 | " pp.create_switch(net, bus=new_bus, element=lidx, et=\"l\")\n", 52 | " return new_bus" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": 3, 58 | "metadata": { 59 | "collapsed": true 60 | }, 61 | "outputs": [], 62 | "source": [ 63 | "def create_example_net():\n", 64 | " # An empty network object is created, that will be filled in the next steps.\n", 65 | " net = pp.create_empty_network()\n", 66 | "\n", 67 | " #create slack nodes\n", 68 | " hvb = pp.create_buses(net, 2, vn_kv=110.)\n", 69 | " pp.create_ext_grid(net, hvb[0], s_sc_min_mva=2500, rx_min=0.3)\n", 70 | " pp.create_ext_grid(net, hvb[1], s_sc_min_mva=3000, rx_min=0.2)\n", 71 | "\n", 72 | " #create a first bus\n", 73 | " lb = pp.create_bus(net, vn_kv=10.)\n", 74 | " # we start with the transformer at the first high voltage bus\n", 75 | " pp.create_transformer(net, hvb[0], lb, std_type=\"40 MVA 110/10 kV\", df=0.1)\n", 76 | " # define the standard types for this network\n", 77 | " std_types = [\"70-AL1/11-ST1A 10.0\", \"NA2XS2Y 1x240 RM/25 6/10 kV\"]\n", 78 | " # create several lines and busses below the first transformer\n", 79 | " for length, std_type in zip([1.8, 2.4, 3.6, 4.8, 4.8, 1.2], [0, 1, 0, 1, 1, 1]):\n", 80 | " lb = create_bus_with_line(net, lb, length_km=length, std_type=std_types[std_type])\n", 81 | " lb = 5\n", 82 | " # create several lines and busses below bus 5\n", 83 | " for length, std_type in zip([1.2, 3., 4.8, 3.6, 1.2, 0.6], [1, 1, 1, 0, 1, 0]):\n", 84 | " lb = create_bus_with_line(net, lb, length_km=length, std_type=std_types[std_type])\n", 85 | " # we create another the transformer (this time a 3w transformer) at the other high voltage bus\n", 86 | " # and connect it to bus 8\n", 87 | " pp.create_transformer3w(net, hvb[1], 8, lb, \"63/25/38 MVA 110/10/10 kV\")\n", 88 | " net.line.loc[net.line.index[net.line.type == \"ol\"], \"endtemp_degree\"] = 100 #overhead lines\n", 89 | " net.line.loc[net.line.index[net.line.type == \"cs\"], \"endtemp_degree\"] = 20 #cables\n", 90 | "\n", 91 | " #add constraints\n", 92 | " net.line[\"max_loading_percent\"] = 50\n", 93 | " net.trafo[\"max_loading_percent\"] = 50\n", 94 | " net.bus[\"max_vm_pu\"] = 1.03\n", 95 | " net.bus[\"min_vm_pu\"] = 0.97\n", 96 | "\n", 97 | " #create load and generation elements\n", 98 | " for bus in [3, 6, 10, 13]:\n", 99 | " pp.create_sgen(net, bus, p_kw=-1280, sn_kva=1280, k=1.2)\n", 100 | " for bus in [3, 4, 5, 6, 7, 9, 10, 11, 12, 13]:\n", 101 | " pp.create_load(net, bus, p_kw=3.5e3)\n", 102 | "\n", 103 | " # create a valid original switching state\n", 104 | " net.switch.closed.loc[[6, 14]] = False\n", 105 | " \n", 106 | " return net" 107 | ] 108 | }, 109 | { 110 | "cell_type": "markdown", 111 | "metadata": {}, 112 | "source": [ 113 | "Here we execute the function defined above." 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": 4, 119 | "metadata": { 120 | "collapsed": true 121 | }, 122 | "outputs": [], 123 | "source": [ 124 | "net = create_example_net()" 125 | ] 126 | }, 127 | { 128 | "cell_type": "markdown", 129 | "metadata": {}, 130 | "source": [ 131 | "Printing the representation of the pandapower network shows us which and how much elements the networks contains." 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 5, 137 | "metadata": { 138 | "collapsed": false 139 | }, 140 | "outputs": [ 141 | { 142 | "data": { 143 | "text/plain": [ 144 | "This pandapower network includes the following parameter tables:\n", 145 | " - switch (24 elements)\n", 146 | " - sgen (4 elements)\n", 147 | " - trafo (1 element)\n", 148 | " - load (10 elements)\n", 149 | " - bus (15 elements)\n", 150 | " - trafo3w (1 element)\n", 151 | " - line (12 elements)\n", 152 | " - ext_grid (2 elements)" 153 | ] 154 | }, 155 | "execution_count": 5, 156 | "metadata": {}, 157 | "output_type": "execute_result" 158 | } 159 | ], 160 | "source": [ 161 | "net" 162 | ] 163 | }, 164 | { 165 | "cell_type": "markdown", 166 | "metadata": {}, 167 | "source": [ 168 | "In the following, generic geocoordinates are created for the buses, so that it can be plotted. This is done through an interface to the ipython library. In order to use this feature, two additional python packages need to be installed:\n", 169 | "\n", 170 | "- pycairo\n", 171 | "- python-igraph (not igraph!)\n", 172 | "\n", 173 | "Alternatively, the grid with created coordinates is included in the data folder and can be loaded from the hard drive. The grid was saved with the pp.to_excel function and can be loaded again by setting the from_disk variable to True:" 174 | ] 175 | }, 176 | { 177 | "cell_type": "code", 178 | "execution_count": 6, 179 | "metadata": { 180 | "collapsed": true 181 | }, 182 | "outputs": [], 183 | "source": [ 184 | "from_disk = False\n", 185 | "if from_disk:\n", 186 | " net = pp.from_excel(os.path.join(\"data\", \"case_study_grid.xlsx\"))\n", 187 | "else:\n", 188 | " plot.create_generic_coordinates(net)\n", 189 | " net.bus_geodata.columns = list(net.bus_geodata.columns)[::-1] # swap x and y axis ro rotate plot" 190 | ] 191 | }, 192 | { 193 | "cell_type": "markdown", 194 | "metadata": {}, 195 | "source": [ 196 | "We define and execute the function plot_grid for a visual representation of the network: " 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 7, 202 | "metadata": { 203 | "collapsed": true 204 | }, 205 | "outputs": [], 206 | "source": [ 207 | "def plot_grid(net):\n", 208 | " tie_lines = set(net.switch.element[~net.switch.closed.values].values)\n", 209 | " lines = set(net.line.index) - tie_lines\n", 210 | "\n", 211 | " #plot buses\n", 212 | " bc = plot.create_bus_collection(net, size=.04, zorder=10, color=\"b\")\n", 213 | "\n", 214 | " #plot lines and switches\n", 215 | " lc = plot.create_line_collection(net, lines, linewidths=3., use_bus_geodata=True, color=\"k\")\n", 216 | " olr = plot.create_line_collection(net, lines=tie_lines, color='k', linewidths=2.0,\n", 217 | " use_bus_geodata=True, linestyles=\"dashed\")\n", 218 | " sc = plot.create_line_switch_collection(net, size=0.1, distance_to_bus=.12, use_line_geodata=True,\n", 219 | " zorder=12, color=\"k\")\n", 220 | "\n", 221 | " #plot transformers\n", 222 | " t31, t32 = plot.create_trafo3w_collection(net, linewidths=2.)\n", 223 | " t21, t22 = plot.create_trafo_collection(net, linewidths=2.)\n", 224 | "\n", 225 | " #plot load and generation elements\n", 226 | " orient = [pi/2 if i==6 else pi for i in range(len(net.load))]\n", 227 | " lc1, lc2 = plot.create_load_collection(net, size=0.1, orientation=orient, linewidths=2.)\n", 228 | " sc1, sc2 = plot.create_sgen_collection(net, size=0.12, orientation=2*pi, linewidths=1.)\n", 229 | " sl1, sl2 = plot.create_ext_grid_collection(net, size=0.4, orientation=3*pi/2, linewidths=2.)\n", 230 | " plot.draw_collections([bc, lc, olr, lc1, lc2, sc1, sc2, sc, t21, t22, t31, t32, sl1, sl2], figsize=(9,4))\n", 231 | " plt.show()" 232 | ] 233 | }, 234 | { 235 | "cell_type": "code", 236 | "execution_count": 8, 237 | "metadata": { 238 | "collapsed": false 239 | }, 240 | "outputs": [ 241 | { 242 | "data": { 243 | "image/png": "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\n", 244 | "text/plain": [ 245 | "" 246 | ] 247 | }, 248 | "metadata": {}, 249 | "output_type": "display_data" 250 | } 251 | ], 252 | "source": [ 253 | "plot_grid(net)" 254 | ] 255 | } 256 | ], 257 | "metadata": { 258 | "anaconda-cloud": {}, 259 | "kernelspec": { 260 | "display_name": "Python [default]", 261 | "language": "python", 262 | "name": "python3" 263 | }, 264 | "language_info": { 265 | "codemirror_mode": { 266 | "name": "ipython", 267 | "version": 3 268 | }, 269 | "file_extension": ".py", 270 | "mimetype": "text/x-python", 271 | "name": "python", 272 | "nbconvert_exporter": "python", 273 | "pygments_lexer": "ipython3", 274 | "version": "3.5.2" 275 | } 276 | }, 277 | "nbformat": 4, 278 | "nbformat_minor": 2 279 | } 280 | --------------------------------------------------------------------------------