Case I/O#

AMS supprots multiple case formats.

Still, first import the ams library and configure the logger level.

[1]:
import os

import ams
[2]:
ams.config_logger(stream_level=20)

Input#

AMS Execel#

[3]:
sp_xlsx = ams.load(ams.get_case('ieee14/ieee14_uced.xlsx'),
                   setup=True,
                   no_output=True,)

sp_xlsx.summary()
Parsing input file "/Users/jinningwang/work/ams/ams/cases/ieee14/ieee14_uced.xlsx"...
SFR: unused data {'zone': 'ZONE1'}
SFR: unused data {'zone': 'ZONE2'}
SR: unused data {'zone': 'ZONE1'}
SR: unused data {'zone': 'ZONE2'}
NSR: unused data {'zone': 'ZONE1'}
NSR: unused data {'zone': 'ZONE2'}
Input file parsed in 0.2057 seconds.
System set up in 0.0028 seconds.
-> Systen size:
Base: 100 MVA; Frequency: 60 Hz
14 Buses; 20 Lines; 5 Static Generators
Active load: 2.24 p.u.; Reactive load: 0.95 p.u.
-> Data check results:
ACED: ACOPF
DCED: DCOPF, DCOPF2, ED, RTED
DCUC: UC
DED: DOPF
PF: DCPF, PFlow, CPF, PFlow0, DCPF0

AMS JSON#

[4]:
sp_json = ams.load(ams.get_case('ieee14/ieee14.json'),
                   setup=True,
                   no_output=True,)

sp_json.summary()
Parsing input file "/Users/jinningwang/work/ams/ams/cases/ieee14/ieee14.json"...
Input file parsed in 0.0026 seconds.
Zero line rates detacted in rate_c, adjusted to 999.
System set up in 0.0028 seconds.
-> Systen size:
Base: 100 MVA; Frequency: 60 Hz
14 Buses; 20 Lines; 5 Static Generators
Active load: 2.24 p.u.; Reactive load: 0.95 p.u.
-> Data check results:
PF: DCPF, PFlow, CPF, PFlow0, DCPF0

MATPOWER#

[5]:
sp_mp = ams.load(ams.get_case('matpower/case14.m'),
                 setup=True,
                 no_output=True,)

sp_mp.summary()
Parsing input file "/Users/jinningwang/work/ams/ams/cases/matpower/case14.m"...
Input file parsed in 0.0087 seconds.
Zero line rates detacted in rate_a, rate_b, rate_c, adjusted to 999.
System set up in 0.0030 seconds.
-> Systen size:
Base: 100.0 MVA; Frequency: 60 Hz
14 Buses; 20 Lines; 5 Static Generators
Active load: 2.59 p.u.; Reactive load: 0.74 p.u.
-> Data check results:
ACED: ACOPF
DCED: DCOPF, DCOPF2
DED: DOPF
PF: DCPF, PFlow, CPF, PFlow0, DCPF0

Note that AMS also supports PYPOWER format py-file.

PSS/E RAW#

AMS also supports PSS/E RAW format for power flow analysis.

[6]:
sp_raw = ams.load(ams.get_case('ieee14/ieee14.raw'),
                  setup=True,
                  no_output=True,)

sp_raw.summary()
Parsing input file "/Users/jinningwang/work/ams/ams/cases/ieee14/ieee14.raw"...
Input file parsed in 0.0109 seconds.
Zero line rates detacted in rate_c, adjusted to 999.
System set up in 0.0032 seconds.
-> Systen size:
Base: 100.0 MVA; Frequency: 60.0 Hz
14 Buses; 20 Lines; 5 Static Generators
Active load: 2.24 p.u.; Reactive load: 0.95 p.u.
-> Data check results:
PF: DCPF, PFlow, CPF, PFlow0, DCPF0

Output#

Vice versa, AMS supports multiple output formats.

[7]:
ams.io.xlsx.write(system=sp_xlsx,
                  outfile='out.xlsx',)
xlsx file written to "out.xlsx"
[7]:
True
[8]:
os.remove('out.xlsx')

Similarly, JSON output formats can be achieved by using ams.io.json.write.