Skip to content

Commit 2b7e641

Browse files
authored
Merge pull request #1018 from EnergySystemsModellingLab/fix-availability-constraints-v2
Rework activity limits code (v2)
2 parents 19f72c2 + 6634df6 commit 2b7e641

40 files changed

+6233
-5717
lines changed
Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,24 @@
1-
process_id,regions,commission_years,time_slice,limit_type,value
2-
GASDRV,all,all,annual,up,0.9
3-
OAGRSV,all,all,annual,up,0.9
4-
GASPRC,all,all,annual,up,0.9
5-
OILREF,all,all,annual,up,0.9
6-
OILRF2,all,all,annual,up,0.9
7-
GASCGT,all,all,annual,up,0.9
8-
TPETCR,all,all,annual,up,1
9-
TDIECR,all,all,annual,up,1
10-
TELCCR,all,all,annual,up,1
11-
THYBCR,all,all,annual,up,1
12-
RGASBR,all,all,annual,up,1
13-
RELCHP,all,all,annual,up,1
14-
WNDFRM,all,all,winter.night,up,0.486418015
15-
WNDFRM,all,all,winter.day,up,0.543166784
16-
WNDFRM,all,all,winter.peak,up,0.504433498
17-
WNDFRM,all,all,winter.evening,up,0.493173821
18-
WNDFRM,all,all,peak.night,up,0.312697296
19-
WNDFRM,all,all,peak.day,up,0.489120338
20-
WNDFRM,all,all,peak.peak,up,0.454890922
21-
WNDFRM,all,all,peak.evening,up,0.331034483
22-
WNDFRM,all,all,summer.night,up,0.17951141
23-
WNDFRM,all,all,summer.day,up,0.349950739
24-
WNDFRM,all,all,summer.peak,up,0.342294159
25-
WNDFRM,all,all,summer.evening,up,0.202674173
26-
WNDFRM,all,all,autumn.night,up,0.3513019
27-
WNDFRM,all,all,autumn.day,up,0.460745954
28-
WNDFRM,all,all,autumn.peak,up,0.396340605
29-
WNDFRM,all,all,autumn.evening,up,0.364813512
30-
H2YGEN,all,all,annual,up,1
31-
H2YPRO,all,all,annual,up,1
32-
BIOPRO,all,all,annual,up,1.0
33-
BIOPLL,all,all,annual,up,0.95
34-
RBIOBL,all,all,annual,up,1.0
1+
process_id,regions,commission_years,time_slice,limits
2+
GASDRV,all,all,annual,..0.9
3+
OAGRSV,all,all,annual,..0.9
4+
GASPRC,all,all,annual,..0.9
5+
OILREF,all,all,annual,..0.9
6+
OILRF2,all,all,annual,..0.9
7+
GASCGT,all,all,annual,..0.9
8+
WNDFRM,all,all,winter.night,..0.486418015
9+
WNDFRM,all,all,winter.day,..0.543166784
10+
WNDFRM,all,all,winter.peak,..0.504433498
11+
WNDFRM,all,all,winter.evening,..0.493173821
12+
WNDFRM,all,all,peak.night,..0.312697296
13+
WNDFRM,all,all,peak.day,..0.489120338
14+
WNDFRM,all,all,peak.peak,..0.454890922
15+
WNDFRM,all,all,peak.evening,..0.331034483
16+
WNDFRM,all,all,summer.night,..0.17951141
17+
WNDFRM,all,all,summer.day,..0.349950739
18+
WNDFRM,all,all,summer.peak,..0.342294159
19+
WNDFRM,all,all,summer.evening,..0.202674173
20+
WNDFRM,all,all,autumn.night,..0.3513019
21+
WNDFRM,all,all,autumn.day,..0.460745954
22+
WNDFRM,all,all,autumn.peak,..0.396340605
23+
WNDFRM,all,all,autumn.evening,..0.364813512
24+
BIOPLL,all,all,annual,..0.95
Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
1-
process_id,regions,commission_years,time_slice,limit_type,value
2-
GASDRV,all,all,annual,up,0.9
3-
GASPRC,all,all,annual,up,0.9
4-
BIOPRO,all,all,annual,up,1.0
5-
BIOPLL,all,all,annual,up,0.95
6-
GASCGT,all,all,annual,up,0.9
7-
RGASBR,all,all,annual,up,1.0
8-
RELCHP,all,all,annual,up,1.0
9-
RBIOBL,all,all,annual,up,1.0
10-
WNDFRM,all,all,winter.night,up,0.486418015
11-
WNDFRM,all,all,winter.day,up,0.543166784
12-
WNDFRM,all,all,winter.peak,up,0.504433498
13-
WNDFRM,all,all,winter.evening,up,0.493173821
14-
WNDFRM,all,all,peak.night,up,0.312697296
15-
WNDFRM,all,all,peak.day,up,0.489120338
16-
WNDFRM,all,all,peak.peak,up,0.454890922
17-
WNDFRM,all,all,peak.evening,up,0.331034483
18-
WNDFRM,all,all,summer.night,up,0.17951141
19-
WNDFRM,all,all,summer.day,up,0.349950739
20-
WNDFRM,all,all,summer.peak,up,0.342294159
21-
WNDFRM,all,all,summer.evening,up,0.202674173
22-
WNDFRM,all,all,autumn.night,up,0.3513019
23-
WNDFRM,all,all,autumn.day,up,0.460745954
24-
WNDFRM,all,all,autumn.peak,up,0.396340605
25-
WNDFRM,all,all,autumn.evening,up,0.364813512
1+
process_id,regions,commission_years,time_slice,limits
2+
GASDRV,all,all,annual,..0.9
3+
GASPRC,all,all,annual,..0.9
4+
BIOPLL,all,all,annual,..0.95
5+
GASCGT,all,all,annual,..0.9
6+
WNDFRM,all,all,winter.night,..0.486418015
7+
WNDFRM,all,all,winter.day,..0.543166784
8+
WNDFRM,all,all,winter.peak,..0.504433498
9+
WNDFRM,all,all,winter.evening,..0.493173821
10+
WNDFRM,all,all,peak.night,..0.312697296
11+
WNDFRM,all,all,peak.day,..0.489120338
12+
WNDFRM,all,all,peak.peak,..0.454890922
13+
WNDFRM,all,all,peak.evening,..0.331034483
14+
WNDFRM,all,all,summer.night,..0.17951141
15+
WNDFRM,all,all,summer.day,..0.349950739
16+
WNDFRM,all,all,summer.peak,..0.342294159
17+
WNDFRM,all,all,summer.evening,..0.202674173
18+
WNDFRM,all,all,autumn.night,..0.3513019
19+
WNDFRM,all,all,autumn.day,..0.460745954
20+
WNDFRM,all,all,autumn.peak,..0.396340605
21+
WNDFRM,all,all,autumn.evening,..0.364813512
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
process_id,regions,commission_years,time_slice,limit_type,value
2-
gassupply1,R1,all,annual,up,0.9
3-
gasCCGT,R1,all,annual,up,0.9
4-
windturbine,R1,all,annual,up,0.4
5-
gasboiler,R1,all,annual,up,1.0
6-
heatpump,R1,all,annual,up,1.0
1+
process_id,regions,commission_years,time_slice,limits
2+
gassupply1,R1,all,annual,..0.9
3+
gasCCGT,R1,all,annual,..0.9
4+
windturbine,R1,all,annual,..0.4
Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1-
process_id,regions,commission_years,time_slice,limit_type,value
2-
GASDRV,all,all,annual,up,0.9
3-
GASPRC,all,all,annual,up,0.9
4-
GASCGT,all,all,annual,up,0.9
5-
RGASBR,all,all,annual,up,1.0
6-
RELCHP,all,all,annual,up,1.0
7-
WNDFRM,all,all,winter.night,up,0.486418015
8-
WNDFRM,all,all,winter.day,up,0.543166784
9-
WNDFRM,all,all,winter.peak,up,0.504433498
10-
WNDFRM,all,all,winter.evening,up,0.493173821
11-
WNDFRM,all,all,peak.night,up,0.312697296
12-
WNDFRM,all,all,peak.day,up,0.489120338
13-
WNDFRM,all,all,peak.peak,up,0.454890922
14-
WNDFRM,all,all,peak.evening,up,0.331034483
15-
WNDFRM,all,all,summer.night,up,0.17951141
16-
WNDFRM,all,all,summer.day,up,0.349950739
17-
WNDFRM,all,all,summer.peak,up,0.342294159
18-
WNDFRM,all,all,summer.evening,up,0.202674173
19-
WNDFRM,all,all,autumn.night,up,0.3513019
20-
WNDFRM,all,all,autumn.day,up,0.460745954
21-
WNDFRM,all,all,autumn.peak,up,0.396340605
22-
WNDFRM,all,all,autumn.evening,up,0.364813512
1+
process_id,regions,commission_years,time_slice,limits
2+
GASDRV,all,all,annual,..0.9
3+
GASPRC,all,all,annual,..0.9
4+
GASCGT,all,all,annual,..0.9
5+
WNDFRM,all,all,winter.night,..0.486418015
6+
WNDFRM,all,all,winter.day,..0.543166784
7+
WNDFRM,all,all,winter.peak,..0.504433498
8+
WNDFRM,all,all,winter.evening,..0.493173821
9+
WNDFRM,all,all,peak.night,..0.312697296
10+
WNDFRM,all,all,peak.day,..0.489120338
11+
WNDFRM,all,all,peak.peak,..0.454890922
12+
WNDFRM,all,all,peak.evening,..0.331034483
13+
WNDFRM,all,all,summer.night,..0.17951141
14+
WNDFRM,all,all,summer.day,..0.349950739
15+
WNDFRM,all,all,summer.peak,..0.342294159
16+
WNDFRM,all,all,summer.evening,..0.202674173
17+
WNDFRM,all,all,autumn.night,..0.3513019
18+
WNDFRM,all,all,autumn.day,..0.460745954
19+
WNDFRM,all,all,autumn.peak,..0.396340605
20+
WNDFRM,all,all,autumn.evening,..0.364813512
Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,24 @@
1-
process_id,regions,commission_years,time_slice,limit_type,value
2-
GASDRV,all,all,annual,up,0.9
3-
OAGRSV,all,all,annual,up,0.9
4-
GASPRC,all,all,annual,up,0.9
5-
OILREF,all,all,annual,up,0.9
6-
OILRF2,all,all,annual,up,0.9
7-
GASCGT,all,all,annual,up,0.9
8-
TPETCR,all,all,annual,up,1
9-
TDIECR,all,all,annual,up,1
10-
TELCCR,all,all,annual,up,1
11-
THYBCR,all,all,annual,up,1
12-
RGASBR,all,all,annual,up,1
13-
RELCHP,all,all,annual,up,1
14-
WNDFRM,all,all,winter.night,up,0.486418015
15-
WNDFRM,all,all,winter.day,up,0.543166784
16-
WNDFRM,all,all,winter.peak,up,0.504433498
17-
WNDFRM,all,all,winter.evening,up,0.493173821
18-
WNDFRM,all,all,peak.night,up,0.312697296
19-
WNDFRM,all,all,peak.day,up,0.489120338
20-
WNDFRM,all,all,peak.peak,up,0.454890922
21-
WNDFRM,all,all,peak.evening,up,0.331034483
22-
WNDFRM,all,all,summer.night,up,0.17951141
23-
WNDFRM,all,all,summer.day,up,0.349950739
24-
WNDFRM,all,all,summer.peak,up,0.342294159
25-
WNDFRM,all,all,summer.evening,up,0.202674173
26-
WNDFRM,all,all,autumn.night,up,0.3513019
27-
WNDFRM,all,all,autumn.day,up,0.460745954
28-
WNDFRM,all,all,autumn.peak,up,0.396340605
29-
WNDFRM,all,all,autumn.evening,up,0.364813512
30-
BIOPRO,all,all,annual,up,1.0
31-
BIOPLL,all,all,annual,up,0.95
32-
RBIOBL,all,all,annual,up,1.0
1+
process_id,regions,commission_years,time_slice,limits
2+
GASDRV,all,all,annual,..0.9
3+
OAGRSV,all,all,annual,..0.9
4+
GASPRC,all,all,annual,..0.9
5+
OILREF,all,all,annual,..0.9
6+
OILRF2,all,all,annual,..0.9
7+
GASCGT,all,all,annual,..0.9
8+
WNDFRM,all,all,winter.night,..0.486418015
9+
WNDFRM,all,all,winter.day,..0.543166784
10+
WNDFRM,all,all,winter.peak,..0.504433498
11+
WNDFRM,all,all,winter.evening,..0.493173821
12+
WNDFRM,all,all,peak.night,..0.312697296
13+
WNDFRM,all,all,peak.day,..0.489120338
14+
WNDFRM,all,all,peak.peak,..0.454890922
15+
WNDFRM,all,all,peak.evening,..0.331034483
16+
WNDFRM,all,all,summer.night,..0.17951141
17+
WNDFRM,all,all,summer.day,..0.349950739
18+
WNDFRM,all,all,summer.peak,..0.342294159
19+
WNDFRM,all,all,summer.evening,..0.202674173
20+
WNDFRM,all,all,autumn.night,..0.3513019
21+
WNDFRM,all,all,autumn.day,..0.460745954
22+
WNDFRM,all,all,autumn.peak,..0.396340605
23+
WNDFRM,all,all,autumn.evening,..0.364813512
24+
BIOPLL,all,all,annual,..0.95
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
process_id,regions,commission_years,time_slice,limit_type,value
2-
gassupply1,R1;R2,all,annual,up,0.9
3-
gasCCGT,R1;R2,all,annual,up,0.9
4-
windturbine,R1;R2,all,annual,up,0.4
5-
gasboiler,R1;R2,all,annual,up,1.0
6-
heatpump,R1;R2,all,annual,up,1.0
1+
process_id,regions,commission_years,time_slice,limits
2+
gassupply1,R1;R2,all,annual,..0.9
3+
gasCCGT,R1;R2,all,annual,..0.9
4+
windturbine,R1;R2,all,annual,..0.4
Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
$schema: https://specs.frictionlessdata.io/schemas/table-schema.json
22
description: |
3-
Defines how much of a process's capacity is available throughout the year.
3+
Defines constraints on process availabilities throughout the year.
44
55
notes:
6-
- Must be provided for every process.
7-
- Only one type of limit can be supplied for each combination of process/region/year/time slice.
6+
- Limits can be combined across multiple time periods. For example, users could provide a limit
7+
of "..0.9" for "winter.day" and "..0.5" for "winter", indicating that the activity can reach
8+
up to 90% during winter days, so long as activity does not exceed 50% across winter as a whole.
9+
- Incompatible limits will be flagged at the input validation stage. For example, a limit of
10+
"..0.01" for "winter" would likely be incompatible with a limit of "0.9.." for "winter.day".
11+
- If a limit is provided for any time slice (or season) for a particular process/region/year, it
12+
must be provided for all time slices (or seasons).
813

914
fields:
1015
- name: process_id
@@ -25,15 +30,13 @@ fields:
2530
type: string
2631
description: The time slices(s) to which this entry applies
2732
notes: |
28-
Can be a single time slice (e.g. `winter.day`), a whole season (e.g. `winter`) or `annual`,
29-
representing the whole year
30-
- name: limit_type
33+
Can be a single time slice (e.g. `winter.day`), a season (e.g. `winter`) or `annual`. If a
34+
season or `annual`, this means that limit will apply to the season/year as a whole.
35+
- name: limits
3136
type: string
32-
description: The type of limit
33-
notes: |
34-
Can be `lo` (a lower bound), `up` (an upper bound) or `fx` (indicating that the availability
35-
is constant)
36-
- name: value
37-
type: number
38-
description: The proportion of capacity which is available
39-
notes: Must be >0 and <=1
37+
description: Lower and upper limits on the availability of the process within the specified time slice(s)
38+
notes:
39+
A string in the format `min..max`, where `min` and `max` are decimal numbers between 0 and 1
40+
inclusive (e.g. "0.2..0.9"). 0 represents no availability, and 1 represents full availability.
41+
Either `min` or `max` can be omitted (e.g "0.2.." or "..0.9"), which will set the
42+
corresponding limit to 0 or 1, respectively.

0 commit comments

Comments
 (0)