lanl-ansi / PowerModels.jl

A Julia/JuMP Package for Power Network Optimization
https://lanl-ansi.github.io/PowerModels.jl/stable/
Other
384 stars 145 forks source link

Move data parser to seperate package #894

Open noahrhodes opened 10 months ago

noahrhodes commented 10 months ago

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?)

ccoffrin commented 10 months ago

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.

jd-lara commented 8 months ago

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

It is possible to call

using PowerSystems
sys = PowerSystems.PowerModelsData(file)