Breakthrough-Energy/PowerSimData

Allow Grids to be loaded from CSVs with an arbitrary number of non-essential data columns

Closed this issue ยท 2 comments

๐Ÿš€

  • Is your feature request essential for your project?

Describe the workflow you want to enable

Allow Grid objects to be loaded from CSVs with an arbitrary number of non-essential data columns, for example data on asset ownership, names, transmission line routing, etc.

Describe your proposed implementation

This will require refactoring how the case.mat files are generated, since currently the data tables are generated by dropping specified columns, rather than only writing certain columns.

The more complicated design issue is how to work with extra Grid information in the context of the current Scenario object framework. Currently, the information that's dropped from the tables that get interpreted by the simulation engine (those required for the power flow) get added to the case.mat file as additional tables which get re-loaded later by a Scenario in Analyze state which is reading the grid.mat file that gets produced by REISE.jl as a record of the exact power system parameters that were used in optimization (since REISE.jl makes some modifications to things like ramp rates, Pmin values, and linearization of cost curves). If we don't pass the extra information to the case.mat file to be read later, then we can only infer information by looking at the corresponding information in the base grid, which may have have changed since the Scenario was run, and won't cover any additions to the Grid that were made as part of the scenario setup. If we do pass extra information into the case.mat file for some grid models, then we end up with grid.mat objects with different sets of extra information that need to be interpreted differently.

Additional context

The corresponding PreREISE issue to write extra information to the HIFLD grid model CSVs is Breakthrough-Energy/PreREISE#242.

This could also be relevant for Grids/Scenarios that are converted from PyPSA: we may want to be able to accept additional columns during translation, without breaking the ability to run PCMs.

Addressed in #701