GenXProject / GenX.jl

GenX: a configurable power system capacity expansion model for studying low-carbon energy futures. More details at : https://genx.mit.edu
https://genxproject.github.io/GenX.jl/
GNU General Public License v2.0
276 stars 117 forks source link

Reduce columns of Generators_variability.csv file #549

Open xuqingyu opened 1 year ago

xuqingyu commented 1 year ago

Hi Colleagues, It is likely that some generators share the same time-series. For example, most thermal units use all 1s and many wind/solar farms that only differ in CAPEX. I would like to suggest creating a column called VARIABILITY in generators_data.csv that store the column names of Generators_variability.csv file. In load_generators_variability.jl, we reorder the columns in gen_var according to the entries in VARIABILITY.

So that the size of Generators_variability.csv can be greatly reduced, and new generators that share the same variaiblity can be easily added without modifying Generators_variability.csv file.

I have tested it successfully. Best, Qingyu

cfe316 commented 1 year ago

Hi Qingyu,

I think this is generally a good idea, and I've been thinking of a variant of this, but I like your concept as well.

Right now there's an ugly limitation that (internally) pP_Max is a matrix which is indexed by resource number. In general, as you mention, not all resources need a timeseries --- but some might want multiple timeseries. I think another good solution would be

Different types of resources could handle a VARIABILITY column differently (perhaps with intelligent defaults, like searching for a column with the same name as the resource).