File IO
General Data Formats
PowerModels.parse_file
— Functionparse_file(file; import_all)
Parses a Matpower .m file
or PTI (PSS(R)E-v33) .raw file
into a PowerModels data structure. All fields from PTI files will be imported if import_all
is true (Default: false).
Parses the iostream from a file
PowerModels.parse_json
— FunctionParses json from iostream or string
Matpower Data Files
The following method is the main exported methods for parsing Matpower data files:
PowerModels.parse_matpower
— FunctionParses the matpwer data from either a filename or an IO object
We also provide the following (internal) helper methods:
PowerModels.export_matpower
— MethodExport power network data in the matpower format
PowerModels.export_matpower
— MethodExport power network data in the matpower format
PowerModels.parse_matpower
— MethodParses the matpwer data from either a filename or an IO object
PowerModels._add_dcline_costs!
— Methodadds dcline costs, if gen costs exist
PowerModels._check_keys
— MethodPowerModels._export_cost_data
— MethodExport cost data
PowerModels._export_extra_data
— FunctionExport fields of a component type
PowerModels._get_default
— FunctionGet a default value for dict entry
PowerModels._matpower_to_powermodels!
— MethodConverts a Matpower dict into a PowerModels dict
PowerModels._merge_bus_name_data!
— Methodmerges bus name data into buses, if names exist
PowerModels._merge_generator_cost_data!
— Methodmerges generator cost functions into generator data, if costs exist
PowerModels._merge_generic_data!
— Methodmerges Matpower tables based on the table extension syntax
PowerModels._mp2pm_branch!
— Methodsets all branch transformer taps to 1.0, to simplify branch models
PowerModels._mp2pm_dcline!
— Methodadds pmin and pmax values at to and from buses
PowerModels._mp_cost_data
— MethodPowerModels._parse_matpower_string
— MethodPowerModels._split_loads_shunts!
— Method_split_loads_shunts!(data)
Seperates Loads and Shunts in data
under separate "load" and "shunt" keys in the PowerModels data format. Includes references to originating bus via "loadbus" and "shuntbus" keys, respectively.
PTI Data Files (PSS/E)
Note: This feature supports the parsing and conversion of PTI files into a PowerModels format for the following power network components: buses, loads, shunts (fixed and approximation of switched), branches, two-winding and three-winding transformers (incl. magnetizing admittance), generators, two-terminal dc lines, and voltage source converter HVDC lines.
The following method is the main exported method for parsing PSS(R)E v33 specified PTI data files:
PowerModels.parse_pti
— Functionparse_pti(filename::String)
Open PTI raw file given by filename
, returning a Dict
of the data parsed into the proper types.
parse_pti(io::IO)
Reads PTI data in io::IO
, returning a Dict
of the data parsed into the proper types.
PowerModels.parse_psse
— Functionparse_psse(filename::String; kwargs...)::Dict
Parses directly from file
function parse_psse(io::IO; kwargs...)::Dict
Parses directly from iostream
The following internal helper methods are also provided:
PowerModels.parse_psse
— Methodfunction parse_psse(io::IO; kwargs...)::Dict
Parses directly from iostream
PowerModels.parse_psse
— Methodparse_psse(filename::String; kwargs...)::Dict
Parses directly from file
PowerModels._create_starbus_from_transformer
— Methodcreate_starbus(pm_data, transformer)
Creates a starbus from a given three-winding transformer
. "sourceid" is given by `["busi", "name", "I", "J", "K", "CKT"]` where "bus_i" and "name" are the modified names for the starbus, and "I", "J", "K" and "CKT" come from the originating transformer, in the PSS(R)E transformer specification.
PowerModels._find_max_bus_id
— Method_find_max_bus_id(pm_data)
Returns the maximum bus id in pm_data
PowerModels._get_bus_value
— Method_get_bus_value(bus_i, field, pm_data)
Returns the value of field
of bus_i
from the PowerModels data. Requires "bus" Dict to already be populated.
PowerModels._import_remaining!
— MethodImports remaining keys from data_in
into data_out
, excluding keys in exclude
PowerModels._init_bus!
— Method_init_bus!(bus, id)
Initializes a bus
of id id
with default values given in the PSS(R)E specification.
PowerModels._psse2pm_branch!
— Method_psse2pm_branch!(pm_data, pti_data)
Parses PSS(R)E-style Branch data into a PowerModels-style Dict. "source_id" is given by ["I", "J", "CKT"]
in PSS(R)E Branch specification.
PowerModels._psse2pm_bus!
— Method_psse2pm_bus!(pm_data, pti_data)
Parses PSS(R)E-style Bus data into a PowerModels-style Dict. "source_id" is given by ["I", "NAME"] in PSS(R)E Bus specification.
PowerModels._psse2pm_dcline!
— Method_psse2pm_dcline!(pm_data, pti_data)
Parses PSS(R)E-style Two-Terminal and VSC DC Lines data into a PowerModels compatible Dict structure by first converting them to a simple DC Line Model. For Two-Terminal DC lines, "sourceid" is given by ["IPR", "IPI", "NAME"]
in the PSS(R)E Two-Terminal DC specification. For Voltage Source Converters, "sourceid" is given by ["IBUS1", "IBUS2", "NAME"]
, where "IBUS1" is "IBUS" of the first converter bus, and "IBUS2" is the "IBUS" of the second converter bus, in the PSS(R)E Voltage Source Converter specification.
PowerModels._psse2pm_generator!
— Method_psse2pm_generator!(pm_data, pti_data)
Parses PSS(R)E-style Generator data in a PowerModels-style Dict. "source_id" is given by ["I", "ID"]
in PSS(R)E Generator specification.
PowerModels._psse2pm_load!
— Method_psse2pm_load!(pm_data, pti_data)
Parses PSS(R)E-style Load data into a PowerModels-style Dict. "source_id" is given by ["I", "ID"]
in the PSS(R)E Load specification.
PowerModels._psse2pm_shunt!
— Method_psse2pm_shunt!(pm_data, pti_data)
Parses PSS(R)E-style Fixed and Switched Shunt data into a PowerModels-style Dict. "source_id" is given by ["I", "ID"]
for Fixed Shunts, and ["I", "SWREM"]
for Switched Shunts, as given by the PSS(R)E Fixed and Switched Shunts specifications.
PowerModels._psse2pm_transformer!
— Method_psse2pm_transformer!(pm_data, pti_data)
Parses PSS(R)E-style Transformer data into a PowerModels-style Dict. "source_id" is given by ["I", "J", "K", "CKT", "winding"]
, where "winding" is 0 if transformer is two-winding, and 1, 2, or 3 for three-winding, and the remaining keys are defined in the PSS(R)E Transformer specification.
PowerModels._pti_to_powermodels!
— Method_pti_to_powermodels!(pti_data)
Converts PSS(R)E-style data parsed from a PTI raw file, passed by pti_data
into a format suitable for use internally in PowerModels. Imports all remaining data from the PTI file if import_all
is true (Default: false).
PowerModels.parse_pti
— Methodparse_pti(io::IO)
Reads PTI data in io::IO
, returning a Dict
of the data parsed into the proper types.
PowerModels.parse_pti
— Methodparse_pti(filename::String)
Open PTI raw file given by filename
, returning a Dict
of the data parsed into the proper types.
PowerModels._get_line_elements
— Method_get_line_elements(line)
Internal function. Uses regular expressions to extract all separate data elements from a line of a PTI file and populate them into an Array{String}
. Comments, typically indicated at the end of a line with a '/'
character, are also extracted separately, and Array{Array{String}, String}
is returned.
PowerModels._parse_elements
— MethodThis is an experimental method for parsing elements and setting defaults at the same time. It is not currently working but would reduce memory allocations if implemented correctly.
PowerModels._parse_line_element!
— Method_parse_line_element!(data, elements, section)
Internal function. Parses a single "line" of data elements from a PTI file, as given by elements
which is an array of the line, typically split at ,
. Elements are parsed into data types given by section
and saved into data::Dict
.
PowerModels._parse_pti_data
— Method_parse_pti_data(data_string, sections)
Internal function. Parse a PTI raw file into a Dict
, given the data_string
of the file and a list of the sections
in the PTI file (typically given by default by get_pti_sections()
.
PowerModels._populate_defaults!
— Method_populate_defaults!(pti_data)
Internal function. Populates empty fields with PSS(R)E PTI v33 default values