Save and Load Networks

Advantage

Disadvantage

Example: saving
case9241pegase

pickle

Allows storing of objects
- large filesize
- Stored objects might become
incompatible when loading
with different versions
- Savetime: 1.2s
- Loadtime: 0.65s
- Filesize: 18.4 MB

Excel

Human readable
- Long time to save and load
- Needs libraries that are not part of
standard python distribution
- Savetime: 23.9s
- Loadtime: 10.9s
- Filesize: 4.9 MB

SQL

- Savetime: 1.32s
- Loadtime: 0.6s
- Filesize: 5.1 MB

json

can be interpreted in
other languages
potential insecurity with additional
translation in json notation
-Savetime: 0.19s
-Loadtime: 0.79s
- Filesize: 5.3 MB

pickle

pandapower.to_pickle(net, filename)

Saves a pandapower Network with the pickle library.

Parameters:
  • net (pandapowerNet) – The pandapower format network

  • filename (str) – The absolute or relative path to the output file or an writable file-like objects

Example:
>>> from pandapower import to_pickle
>>> to_pickle(net, os.path.join("C:", "example_folder", "example1.p"))  # absolute path
>>> to_pickle(net, "example2.p")  # relative path
Return type:

None

pandapower.from_pickle(filename, convert=True)

Load a pandapower format Network from pickle file

Parameters:
  • filename (str or file) – The absolute or relative path to the input file or file-like object

  • convert (bool) – If True, converts the format of the net loaded from pickle from the older version of pandapower to the newer version format, default True

Returns:

The pandapower network

Return type:

pandapowerNet

Example:
>>> from pandapower import from_pickle
>>> net1 = from_pickle(os.path.join("C:", "example_folder", "example1.p")) #absolute path
>>> net2 = from_pickle("example2.p") #relative path

Excel

Using excel is highly discouraged as to_excel uses pandas to_excel which is a lossy conversion. Loading from excel may result in a different network.

pandapower.to_excel(net, filename, include_empty_tables=False, include_results=True)

Saves a pandapower Network to an Excel file.

Parameters:
  • net (pandapowerNet) – The pandapower format network

  • filename (str) – The absolute or relative path to the output file

  • include_empty_tables (bool) – empty element tables are saved as Excel sheet, default False

  • include_results (bool) – results are included in the Excel sheet, default True

Example:
>>> from pandapower import to_excel
>>> to_excel(net, os.path.join("C:", "example_folder", "example1.xlsx"))  # absolute path
>>> to_excel(net, "example2.xlsx")  # relative path
pandapower.from_excel(filename, convert=True, add_basic_std_types=True)

Load a pandapower network from an Excel file

Parameters:
  • filename (str) – The absolute or relative path to the input file.

  • convert (bool) – If True, converts the format of the net loaded from Excel from the older version of pandapower to the newer version format, default True

  • add_basic_std_types (bool) – If True, Adds missing standard-types from pandapower standard type library, default True.

Returns:

The pandapower network

Return type:

pandapowerNet

Example:
>>> from pandapower import from_excel
>>> net1 = from_excel(os.path.join("C:", "example_folder", "example1.xlsx"))
>>> net2 = from_excel("example2.xlsx") #relative path

Json

pandapower.to_json(net: pandapowerNet, filename: None = None, encryption_key: str | None = None, indent: int | str | None = 2, sort_keys: bool = False) str
pandapower.to_json(net: pandapowerNet, filename: str | TextIO, encryption_key: str | None = None, indent: int | str | None = 2, sort_keys: bool = False) None

Saves a pandapower Network in JSON format. The index columns of all pandas DataFrames will be saved in ascending order. net elements which name begins with “_” (internal elements) will not be saved. Std types will also not be saved.

Parameters:
  • net (pandapowerNet) – The pandapower format network

  • filename (str or file) – The absolute or relative path to the output file or a file-like object, if ‘None’ the function returns a json string, default None

  • encryption_key (str or None) – If given, the pandapower network is stored as an encrypted json string, default None

  • indent (int or str or None) – indentation to use for the json. String or amount of spaces to use, defaut 2

  • sort_keys (bool) – sort dictionaries by key, default False

Example:
>>> from pandapower.file_io import to_json
>>> to_json(net, "example.json")
pandapower.from_json(filename_or_str, convert=True, encryption_key=None, elements_to_deserialize=None, keep_serialized_elements=True, add_basic_std_types=False, replace_elements=None, empty_dict_like_object=None, ignore_unknown_objects=False, drop_invalid_geodata=False, omit_tables=None, omit_modules=None)

Load a pandapower network from a JSON file. The index of the returned network is not necessarily in the same order as the original network. Index columns of all pandas DataFrames are sorted in ascending order.

Parameters:
  • filename_or_str (str or file) – The absolute or relative path to the input file or file-like object

  • convert (bool) – If True, converts the format of the net loaded from json from the older version of pandapower to the newer version format, default True

  • encryption_key (str or None) – If given, key to decrypt an encrypted pandapower network, default None

  • elements_to_deserialize (list or None) – Deserialize only certain pandapower elements. If None all elements are deserialized, default None

  • keep_serialized_elements (bool) – Keep serialized elements if given. Default: Serialized elements are kept, default True

  • add_basic_std_types (bool) – Add missing standard-types from pandapower standard type library, default False

  • replace_elements (dict or None) – Keys are replaced by values found in json string. Both key and value are supposed to be strings, default None

  • empty_dict_like_object (dict or pandapowerNet or None) – If None, the output of pandapower.create_empty_network() is used as an empty element to be filled by the data of the json string. Give another dict-like object to start filling that alternative object with the json data, default None

  • ignore_unknown_objects (bool) – If set to True, ignore any objects that cannot be deserialized instead of raising an error, default False

Returns:

The pandapower network

Return type:

pandapowerNet

Example:
>>> from pandapower.file_io import from_json
>>> net = from_json("example.json")

SQL

pandapower.to_sqlite(net, filename, include_results=False)

Saves pandapowerNet an SQLite format

Parameters:
  • net (grid model) – pandapowerNet

  • filename (path to a text file where the data will be stored) – str

  • include_results (whether result tables should be included) – bool

pandapower.from_sqlite(filename)

Loads a grid model from SQLite format

Parameters:

filename (path to the text file where the data are stored)

Returns:

net – pandapowerNet

Return type:

the grid model

PostgreSQL

pandapower.to_postgresql(net, host, user, password, database, schema, include_results=False, grid_id=None, grid_id_column='grid_id', grid_catalogue_name='grid_catalogue', index_name=None, port=None)

Uploads a pandapowerNet to a PostgreSQL database. The database must exist, the element tables are created if they do not exist. JSON serialization (e.g. for controller objects) is not implemented yet.

Parameters:
  • net (pandapowerNet) – the grid model to be uploaded to the database

  • host (str) – hostname for connecting to the database

  • user (str) – username for logging in

  • password (str)

  • database (str) – name of the database

  • schema (str) – name of the database schema (e.g. ‘postgres’)

  • include_results (bool) – specify whether the power flow results are included when the grid is uploaded

  • grid_id (int) – unique grid_id that will be used to identify the data for the grid model, default None. If None, it will be set automatically by PostgreSQL

  • grid_id_column (str) – name of the column for “grid_id” in the PosgreSQL tables, default=”grid_id”.

  • grid_catalogue_name (str) – name of the catalogue table that includes all grid_id values and the timestamp when the grid data were added

  • index_name (str) – name of the custom column to be used inplace of index in the element tables if it is not the standard DataFrame index

  • port (int | None) – the port to use for the PostgreSQL connection

Returns:

returns either the user-specified grid_id or the automatically generated grid_id of the grid model

Return type:

int

pandapower.from_postgresql(grid_id, host, user, password, database, schema, grid_id_column='grid_id', grid_catalogue_name='grid_catalogue', empty_dict_like_object=None, grid_tables=None, port=None)

Downloads an existing pandapowerNet from a PostgreSQL database.

Parameters:
  • grid_id (int) – unique grid_id that will be used to identify the data for the grid model

  • host (str) – hostname for connecting to the database

  • user (str) – username for logging in

  • password (str)

  • database (str) – name of the database

  • schema (str) – name of the database schema (e.g. ‘postgres’)

  • grid_id_column (str) – name of the column for “grid_id” in the PosgreSQL tables, default=”grid_id”.

  • grid_catalogue_name (str) – name of the catalogue table that includes all grid_id values and the timestamp when the grid data were added

  • empty_dict_like_object (dict | None) – If None, the output of pandapower.create_empty_network() is used as an empty element to be filled by the grid data. Give another dict-like object to start filling that alternative object with the data.

  • grid_tables

  • port (int | None) – port for connecting to the database

Returns:

the loaded pandapower network

pandapower.delete_postgresql_net(grid_id, host, user, password, database, schema, grid_id_column='grid_id', grid_catalogue_name='grid_catalogue', port=None)

Removes a grid model from the PostgreSQL database.

Parameters:
  • grid_id (int) – unique grid_id that will be used to identify the data for the grid model

  • host (str) – hostname for the DB, e.g. “localhost”

  • user (str)

  • password (str)

  • database (str) – name of the database

  • schema (str) – name of the database schema (e.g. ‘postgres’)

  • grid_id_column (str) – name of the column for “grid_id” in the PosgreSQL tables, default=”grid_id”.

  • grid_catalogue_name (str) – name of the catalogue table that includes all grid_id values and the timestamp when the grid data were added

  • port (int | None) – port at which the database is listening

Return type:

None