We currently treat the availability constraints defined in process_availabilities.csv as if they apply to each individual time slice, but this is not correct.
There is a time_slice column in the file, which, despite the name, defines the TimeSliceSelection to which the entry should apply: this can be the whole year (annual), a specific season (e.g. winter) or a specific time slice (e.g. winter.day). The intent, according to @ahawkes, was that the constraint be applied at the same time slice level as this column (see TimeSliceSelection::level()), but what actually happens is individual constraints are added for each time slice in the TimeSliceSelection.
For example:
process_id,regions,years,time_slice,limit_type,value
GASDRV,all,all,annual,up,0.9
What the code currently does is add an upper limit for every individual time slice in the year, but it should be for the whole year (i.e. you can have more than 90% availability for a given time slice, as long as the constraint holds over the whole year).
Fixing this will unfortunately have ramifications all over the place, because we tacitly assume that the time slice level of activity limits is daynight in various places. You'll have to check everywhere that we use Process::activity_limits and Asset::activity_limits.
See discussion on #363.
We currently treat the availability constraints defined in
process_availabilities.csvas if they apply to each individual time slice, but this is not correct.There is a
time_slicecolumn in the file, which, despite the name, defines theTimeSliceSelectionto which the entry should apply: this can be the whole year (annual), a specific season (e.g.winter) or a specific time slice (e.g.winter.day). The intent, according to @ahawkes, was that the constraint be applied at the same time slice level as this column (seeTimeSliceSelection::level()), but what actually happens is individual constraints are added for each time slice in theTimeSliceSelection.For example:
What the code currently does is add an upper limit for every individual time slice in the year, but it should be for the whole year (i.e. you can have more than 90% availability for a given time slice, as long as the constraint holds over the whole year).
Fixing this will unfortunately have ramifications all over the place, because we tacitly assume that the time slice level of activity limits is
daynightin various places. You'll have to check everywhere that we useProcess::activity_limitsandAsset::activity_limits.See discussion on #363.