PowerModels.jl icon indicating copy to clipboard operation
PowerModels.jl copied to clipboard

Move data parser to seperate package

Open noahrhodes opened this issue 2 years ago • 2 comments

Sometimes I want to read a matpower file, but don't want to load/precompile JuMP and all the rest of the package dependencies of PowerModels.

One aspect of this is that PGLib.jl and PowerPlots.jl both end up having JuMP as a dependency even though they are only a data provider and plotting package.

Is there any interest in moving the file parsing to be a separate package from PowerModels? (would this require a change across the InfrastructureModels ecosystem?)

noahrhodes avatar Nov 03 '23 15:11 noahrhodes

This is a good idea that has been requested for a few years. So far it has not happened due to these technical points.

The primary technical challenge is determine a data model that will be used in a would-be standalone data power parsing package. Right now the PowerModels parsers are intertwined with the PowerModels data model based on Dicts, which is probably not the right data model for a high performance stand-alone package.

For example, there is a nice discussion here about how a better data model can increase performance of the PSSE parser. https://discourse.julialang.org/t/ann-powerflowdata-jl-a-parser-for-pss-e-format-raw-power-flow-data-files/71722/9

A secondary technical challenge for a stand alone Matpower parser is that PowerModels uses some generic parsing functionality from InfrastructureModels. So a would-be stand alone package will need to extract some subset of that functionality.

ccoffrin avatar Nov 08 '23 18:11 ccoffrin

@noahrhodes You can parse files using PowerSystems.jl without requiring the modeling layers.

It is possible to call

using PowerSystems
sys = PowerSystems.PowerModelsData(file)

jd-lara avatar Dec 20 '23 15:12 jd-lara