Add a System to the Catalog
This page guides developers in how to add new PowerSystems.Systems to the PowerSystemCaseBuilder.jl SystemCatalog. If you are a user rather than a developer, please refer to how to Select and Load a Power System instead.
Defining System Data and Adding It To The Catalog
Adding a new PowerSystems.System to PowerSystemCaseBuilder.jl requires coordinated changes to two repositories: the system is defined and described through custom functions in PowerSystemCaseBuilder.jl, while the underlying data is hosted in the PowerSystemsTestData repository.
The steps to complete these changes are:
Create a new folder in the
PowerSystemsTestDatarepository and add theSystem's input data files, such as.csv,.raw,.dyr,.m, and/or.jlfilesDefine a custom
build_*function that loads or compiles yourSystemin the appropriate file inPowerSystemCaseBuilder.jl'ssrc/library/directory. The files are organized according toSystemCategory. See the existing files insrc/library/for examples.Define a new
SystemDescriptorinsrc/system_descriptor_data.jl, with:- The
build_functionargument pointing to your newbuild_*function - The
raw_dataargument pointing to either the directory you added inPowerSystemsTestData, or a.jl,.raw, or.mfile within it. See the existing systems for examples.
- The
Testing the New System Locally
Before opening pull requests for both PowerSystemCaseBuilder.jl and PowerSystemsTestData, ensure that your new System builds correctly by testing it locally:
- Change the
DATA_DIRdefinition inPowerSystemCaseBuilder.jl'ssrc/definitions.jlto point to your local fork/clone ofPowerSystemsTestData - In a new Julia REPL,
Pkg.developPowerSystemCaseBuilder.jl, pointing to your local fork/clone - Try using
build_systemon your newSystemand check for errors and accuracy - Finally, revert changes to the
DATA_DIRdefinition before submitting pull requests