Skip to content

Instantly share code, notes, and snippets.

@jkrstulo
Created May 25, 2017 15:35
Show Gist options
  • Save jkrstulo/f03eb7f433a0d35034c05be95b78d410 to your computer and use it in GitHub Desktop.
Save jkrstulo/f03eb7f433a0d35034c05be95b78d410 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reading from db to files"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" Connecting to PostgreSQL...\n",
"\t ... reading network dataset\n",
"\t reading line from sql... 545 line successfully read!\n",
"\t reading series_comp from sql... 1 series_comp successfully read!\n",
"\t reading transformer2w from sql... 301 transformer2w successfully read!\n",
"\t reading transformer3w from sql... 242 transformer3w successfully read!\n",
"\t reading bus_segment.rst from sql... 2416 bus_segment.rst successfully read!\n",
"\t reading cnode from sql... 9627 cnode successfully read!\n",
"\t reading switch from sql... 9217 switch successfully read!\n",
"\t reading load from sql... 526 load successfully read!\n",
"\t reading generator from sql... 150 generator successfully read!\n",
"\t reading shunt_comp from sql... 25 shunt_comp successfully read!\n",
"\t reading equiv_inj from sql... 37 equiv_inj successfully read!\n",
"\t reading basepower from sql... 1 basepower successfully read!\n"
]
}
],
"source": [
"from hatems.from_db import postgres_to_pandas_to_csv\n",
"\n",
"db_name = 'pnet' ## chose database name: 'pnet_v3', 'pnet_v4', 'pnet_dms1'\n",
"\n",
"update_fl = True # set to True if you want files update although exist\n",
"\n",
"read_params = {\n",
" 'pnet': {'resultsetid_meas': 482425745,\n",
" 'resultsetid_estim': 482425746,\n",
" 'resultsetid_switch': 482425745,\n",
" 'parent_level': 2},\n",
"}\n",
"\n",
"path_to_write = '/Users/jko/Koncar/code/pycode/from_db/'\n",
"dir_name = 'pnet'\n",
"\n",
"postgres_to_pandas_to_csv(db_name, username='jakov', password='jakov', host='192.168.28.32', port=5432,\n",
" read_sql_parameters=read_params['pnet'], path_to_write=path_to_write,\n",
" dir_name=dir_name)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Creating a network object from files"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"There are some missing values in generator.p_mw or q_mva\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"reading files...\n",
"basepower.csv\n",
"bus_segment.csv\n",
"bus_segment.rst.csv\n",
"cnode.csv\n",
"equiv_inj.csv\n",
"generator.csv\n",
"line.csv\n",
"load.csv\n",
"series_comp.csv\n",
"shunt_comp.csv\n",
"switch.csv\n",
"transformer2w.csv\n",
"transformer3w.csv\n",
"transformers.csv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"There are some cnodeid in switch which does not appear in pnet.cnode!\n"
]
}
],
"source": [
"from hatems.create import create_from_files_db\n",
"\n",
"path = '/Users/jko/Koncar/code/pycode/from_db/pnet'\n",
"\n",
"pnet = create_from_files_db(path)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The network created with all of its elements:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"This network includes the following parameter tables:\n",
" - cnode (9627 elements)\n",
" - line (545 elements)\n",
" - series_comp (1 elements)\n",
" - transformer2w (301 elements)\n",
" - transformer3w (242 elements)\n",
" - switch (9217 elements)\n",
" - load (526 elements)\n",
" - shunt_comp (25 elements)\n",
" - generator (108 elements)\n",
" - equiv_inj (37 elements)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pnet"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Running a topology processor\n",
"processes all closed switches and merges cnodes to buses...Afterwards the largest island (connected graph) is identified and all networks elements not connected to that island are eliminated from the network."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"TP completed in 0.17376800000000037 s\n",
"After TP the network has:\n",
"\t 2947 islands \n",
"\t the largest island contains 864 buses\n"
]
}
],
"source": [
"from hatems.topology_processor import run_tp as tp\n",
"tp(pnet)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Connectivity check:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"pnet is connected\n"
]
}
],
"source": [
"from hatems.topology_processor import is_connected\n",
"print('pnet is connected') if is_connected(pnet) else print('NOT CONNECTED!?')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Building a bus-branch model\n",
"conversion of all 2-terminal or 3-terminal elements to branches"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"This network includes the following parameter tables:\n",
" - cnode (6103 elements)\n",
" - line (473 elements)\n",
" - transformer2w (178 elements)\n",
" - transformer3w (190 elements)\n",
" - switch (5818 elements)\n",
" - load (400 elements)\n",
" - shunt_comp (3 elements)\n",
" - generator (57 elements)\n",
" - equiv_inj (31 elements)\n",
" bus-branch model:\n",
" - bus (1054 elements)\n",
" - branch (1221 elements)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from hatems.build_busbranch import _build_branches\n",
"\n",
"_build_branches(pnet, pp_method=False)\n",
"pnet"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Converter to pandapower\n",
"created network can be converted to [pandapower](https://pandapower.readthedocs.io/en/v1.3.0/)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pandapower network created:\n",
" This pandapower network includes the following parameter tables:\n",
" - bus (1054 elements)\n",
" - load (358 elements)\n",
" - sgen (51 elements)\n",
" - gen (47 elements)\n",
" - shunt (3 elements)\n",
" - ext_grid (1 elements)\n",
" - line (473 elements)\n",
" - trafo (178 elements)\n",
" - trafo3w (190 elements)\n"
]
}
],
"source": [
"from hatems.converter.pandapower import from_pnet\n",
"from_pnet(pnet)\n",
"\n",
"net = pnet['_ppnet']"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment