Skip to content

Commit 0645fd5

Browse files
authored
Merge pull request #242 from iiasa/wat_SSP_upd2
Flexible setup of constraints for cooling technologies
2 parents b15268e + eb7aa18 commit 0645fd5

17 files changed

+423
-79
lines changed

doc/water/index.rst

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
MESSAGEix-Nexus (:mod:`.model.water`)
22
*************************************
33

4+
.. note:: The current version of :mod:`.model.water` is configured to work with scenarios that have technology set elements including ``csp_sm1_ppl`` and ``csp_sm3_ppl`` instead of ``solar_th_ppl``.
5+
Previous versions (in :mod:`message_ix_models` v2024.8.6 and earlier) were configured to work with scenarios including the technology ``solar_th_ppl``.
6+
See further discussion at :pull:`242`.
7+
48
:mod:`message_ix_models.model.water` adds water usage and demand related representation to the MESSAGEix-GLOBIOM global model.
59
The resulting model is referred to as **“MESSAGEix-Nexus”**.
610
This work extends the water sector linkage described by Parkinson et al. (2019) :cite:`parkinson-2019`.

doc/whatsnew.rst

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ What's new
44
Next release
55
============
66

7-
- Fix the nexus/cooling function and adding test for checking some input data (:pull:`236`).
7+
- Make setup of constraints for cooling technologies flexible and update solar csp tech. name (:pull:`242`).
8+
- Fix the nexus/cooling function and add test for checking some input data (:pull:`236`).
89
- Add :doc:`/project/circeular` project code and documentation (:pull:`232`).
910
- Update water availability data and major code editing to allow a new test suite for the water module (:pull:`106`).
1011
- Expand :doc:`repro` with sections on :ref:`repro-doc` and :ref:`versioning`, including :ref:`a list of external model names and ‘versions’ <model-names>` like “MESSAGEix-GLOBIOM 2.0” (:issue:`224`, :pull:`226`).
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:669c1dd152ff47b2b203a29decd8ded056a6ca76d7823af8665c29d274e68625
3-
size 31012
2+
oid sha256:7b20ea1a29b19485f529db6bd25eb98495b82db58a39826cf27da5bb7e2be15b
3+
size 26173
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:f03cf7b25a4eb15af32252a5498f7534ab1298a540b9e4041905084b4054b9e3
3-
size 7094
2+
oid sha256:e234d4a8238dc36e38b7836e74b52c54522c6d11bb5fc0441d5bfea616fbc698
3+
size 5154
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:f4b53fd2df77644122011041ba958ff0fd84646bdfb81a4bd918ee10e6a8dd15
3-
size 7138
2+
oid sha256:9137797fc3b6e1f67e3b5224014b8bd7c82fac39eca5d006232c766dff9af446
3+
size 5198
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:e54b2a38792540e3e83e0ae4812286137235ab0f9fb7c9a26f70f6d9bb910339
3-
size 7528
2+
oid sha256:64f8064f5971680fd928e35df10c13ba24b202f3328a8686e61536ba69586fcb
3+
size 5492
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:71d69e10931793d6a410226ea2098530cc568f80f4dec5e8587c9f7d5aa8d69e
3-
size 50969
2+
oid sha256:72ee20f7102b8f71ab9fed966b042d2bc59d74d0c2d404dd5ca469d180d09f77
3+
size 52407
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:024f4981a4232caf1c206f6c2206b118d4230164a4e4dd9dafa21aa6887f0c04
3-
size 11413
2+
oid sha256:500138012d5bf33da1ba44745053cada82ce594a091a286887f3c591b9513a4d
3+
size 12039
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:ed4e738f2dc9667ea9faa1f5420c78b52007de701aa96f29f44cce18c658c404
3-
size 11457
2+
oid sha256:9a9420d1197e1d5856441b4cf211dd360ea8c7432490e8e568266e186c01f8fa
3+
size 12083
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:2962d1cfbae328fdc027823e2de151020500047d01f3ab3ba855b95bd3e80ded
3-
size 11903
2+
oid sha256:9639f5b03a8deaff90f211cb146ffbf0cdf83ab3bf88927ab738bc0bcd8936a4
3+
size 12545

message_ix_models/data/water/set.yaml

+60-3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ nexus:
5050
- cooling__loil_ppl
5151
- cooling__nuc_hc
5252
- cooling__solar_th_ppl
53+
- cooling__csp_sm1_ppl
54+
- cooling__csp_sm3_ppl
5355

5456
add:
5557
- electr
@@ -210,9 +212,16 @@ nexus:
210212
- nuc_hc__ot_saline
211213
- solar_th_ppl__ot_fresh
212214
- solar_th_ppl__cl_fresh
213-
- solar_th_ppl__cl_fresh
214215
- solar_th_ppl__ot_saline
215216
- solar_th_ppl__air
217+
- csp_sm1_ppl__ot_fresh
218+
- csp_sm1_ppl__cl_fresh
219+
- csp_sm1_ppl__ot_saline
220+
- csp_sm1_ppl__air
221+
- csp_sm3_ppl__ot_fresh
222+
- csp_sm3_ppl__cl_fresh
223+
- csp_sm3_ppl__ot_saline
224+
- csp_sm3_ppl__air
216225
- extract__freshwater_supply
217226
- extract__freshwater_instream
218227
- extract__saline_supply
@@ -318,6 +327,14 @@ nexus:
318327
- solar_th_ppl__cl_fresh
319328
- solar_th_ppl__ot_saline
320329
- solar_th_ppl__air
330+
- csp_sm1_ppl__ot_fresh
331+
- csp_sm1_ppl__cl_fresh
332+
- csp_sm1_ppl__ot_saline
333+
- csp_sm1_ppl__air
334+
- csp_sm3_ppl__ot_fresh
335+
- csp_sm3_ppl__cl_fresh
336+
- csp_sm3_ppl__ot_saline
337+
- csp_sm3_ppl__air
321338

322339
# cat_addon includes cooling technology addons for parent technologies
323340
type_addon:
@@ -345,6 +362,8 @@ nexus:
345362
- cooling__nuc_hc
346363
- cooling__nuc_lc
347364
- cooling__solar_th_ppl
365+
- cooling__csp_sm1_ppl
366+
- cooling__csp_sm3_ppl
348367

349368
map_tec_addon:
350369
add:
@@ -370,7 +389,8 @@ nexus:
370389
- [loil_ppl, cooling__loil_ppl]
371390
- [nuc_hc, cooling__nuc_hc]
372391
- [nuc_lc, cooling__nuc_lc]
373-
# - [solar_th_ppl, cooling__solar_th_ppl]
392+
- [csp_sm1_ppl, cooling__csp_sm1_ppl]
393+
- [csp_sm3_ppl, cooling__csp_sm3_ppl]
374394

375395

376396
cat_addon:
@@ -468,6 +488,14 @@ nexus:
468488
- [cooling__solar_th_ppl, solar_th_ppl__cl_fresh]
469489
- [cooling__solar_th_ppl, solar_th_ppl__ot_saline]
470490
- [cooling__solar_th_ppl, solar_th_ppl__air]
491+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_fresh]
492+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__cl_fresh]
493+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_saline]
494+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__air]
495+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_fresh]
496+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__cl_fresh]
497+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_saline]
498+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__air]
471499

472500
type_tec:
473501
add:
@@ -611,6 +639,8 @@ cooling:
611639
- cooling__loil_ppl
612640
- cooling__nuc_hc
613641
- cooling__solar_th_ppl
642+
- cooling__csp_sm1_ppl
643+
- cooling__csp_sm3_ppl
614644

615645
add:
616646
- electr
@@ -747,9 +777,16 @@ cooling:
747777
- nuc_hc__ot_saline
748778
- solar_th_ppl__ot_fresh
749779
- solar_th_ppl__cl_fresh
750-
- solar_th_ppl__cl_fresh
751780
- solar_th_ppl__ot_saline
752781
- solar_th_ppl__air
782+
- csp_sm1_ppl__ot_fresh
783+
- csp_sm1_ppl__cl_fresh
784+
- csp_sm1_ppl__ot_saline
785+
- csp_sm1_ppl__air
786+
- csp_sm3_ppl__ot_fresh
787+
- csp_sm3_ppl__cl_fresh
788+
- csp_sm3_ppl__ot_saline
789+
- csp_sm3_ppl__air
753790
- extract__upstream_landuse
754791
- extract__saline_supply
755792
- extract__freshwater_supply
@@ -856,6 +893,14 @@ cooling:
856893
- solar_th_ppl__cl_fresh
857894
- solar_th_ppl__ot_saline
858895
- solar_th_ppl__air
896+
- csp_sm1_ppl__ot_fresh
897+
- csp_sm1_ppl__cl_fresh
898+
- csp_sm1_ppl__ot_saline
899+
- csp_sm1_ppl__air
900+
- csp_sm3_ppl__ot_fresh
901+
- csp_sm3_ppl__cl_fresh
902+
- csp_sm3_ppl__ot_saline
903+
- csp_sm3_ppl__air
859904

860905
# cat_addon includes cooling technology addons for parent technologies
861906
type_addon:
@@ -883,6 +928,8 @@ cooling:
883928
- cooling__nuc_hc
884929
- cooling__nuc_lc
885930
- cooling__solar_th_ppl
931+
- cooling__csp_sm1_ppl
932+
- cooling__csp_sm3_ppl
886933

887934
map_tec_addon:
888935
add:
@@ -909,6 +956,8 @@ cooling:
909956
- [nuc_hc, cooling__nuc_hc]
910957
- [nuc_lc, cooling__nuc_lc]
911958
# - [solar_th_ppl, cooling__solar_th_ppl]
959+
- [csp_sm1_ppl, cooling__csp_sm1_ppl]
960+
- [csp_sm3_ppl, cooling__csp_sm3_ppl]
912961

913962

914963
cat_addon:
@@ -1006,6 +1055,14 @@ cooling:
10061055
- [cooling__solar_th_ppl, solar_th_ppl__cl_fresh]
10071056
- [cooling__solar_th_ppl, solar_th_ppl__ot_saline]
10081057
- [cooling__solar_th_ppl, solar_th_ppl__air]
1058+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_fresh]
1059+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__cl_fresh]
1060+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_saline]
1061+
- [cooling__csp_sm1_ppl, csp_sm1_ppl__air]
1062+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_fresh]
1063+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__cl_fresh]
1064+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_saline]
1065+
- [cooling__csp_sm3_ppl, csp_sm3_ppl__air]
10091066

10101067

10111068
unit:

message_ix_models/data/water/technology.yaml

+98
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,54 @@ nexus:
576576
technology using parasitic electricity
577577
input: {commodity: electr}
578578

579+
csp_sm1_ppl__ot_fresh:
580+
description: >-
581+
Solar thermal power plant with storage cooling by once through cooling
582+
technology using freshwater supply
583+
input: {commodity: freshwater_supply}
584+
585+
csp_sm1_ppl__cl_fresh:
586+
description: >-
587+
Solar thermal power plant with storage cooling by closed loop cooling
588+
technology using freshwater supply & parasitic electricity
589+
input: {commodity: freshwater_supply,electr}
590+
591+
csp_sm1_ppl__ot_saline:
592+
description: >-
593+
Solar thermal power plant with storage cooling by once through cooling
594+
technology using freshwater supply
595+
input: {commodity: saline_supply_ppl}
596+
597+
csp_sm1_ppl__air:
598+
description: >-
599+
Solar thermal power plant with storage cooling by once through cooling
600+
technology using parasitic electricity
601+
input: {commodity: electr}
602+
603+
csp_sm3_ppl__ot_fresh:
604+
description: >-
605+
Solar thermal power plant with storage cooling by once through cooling
606+
technology using freshwater supply
607+
input: {commodity: freshwater_supply}
608+
609+
csp_sm3_ppl__cl_fresh:
610+
description: >-
611+
Solar thermal power plant with storage cooling by closed loop cooling
612+
technology using freshwater supply & parasitic electricity
613+
input: {commodity: freshwater_supply,electr}
614+
615+
csp_sm3_ppl__ot_saline:
616+
description: >-
617+
Solar thermal power plant with storage cooling by once through cooling
618+
technology using freshwater supply
619+
input: {commodity: saline_supply_ppl}
620+
621+
csp_sm3_ppl__air:
622+
description: >-
623+
Solar thermal power plant with storage cooling by once through cooling
624+
technology using parasitic electricity
625+
input: {commodity: electr}
626+
579627
urban_t_d:
580628
description: >-
581629
Urban water transmission & distribution
@@ -1324,3 +1372,53 @@ cooling:
13241372
technology using parasitic electricity
13251373
input: {commodity: electr}
13261374

1375+
csp_sm1_ppl__ot_fresh:
1376+
description: >-
1377+
Solar thermal power plant with storage cooling by once through cooling
1378+
technology using freshwater supply
1379+
input: {commodity: freshwater_supply}
1380+
1381+
csp_sm1_ppl__cl_fresh:
1382+
description: >-
1383+
Solar thermal power plant with storage cooling by closed loop cooling
1384+
technology using freshwater supply & parasitic electricity
1385+
input: {commodity: freshwater_supply,electr}
1386+
1387+
csp_sm1_ppl__ot_saline:
1388+
description: >-
1389+
Solar thermal power plant with storage cooling by once through cooling
1390+
technology using freshwater supply
1391+
input: {commodity: saline_supply_ppl}
1392+
1393+
csp_sm1_ppl__air:
1394+
description: >-
1395+
Solar thermal power plant with storage cooling by once through cooling
1396+
technology using parasitic electricity
1397+
input: {commodity: electr}
1398+
1399+
csp_sm3_ppl__ot_fresh:
1400+
description: >-
1401+
Solar thermal power plant with storage cooling by once through cooling
1402+
technology using freshwater supply
1403+
input: {commodity: freshwater_supply}
1404+
1405+
csp_sm3_ppl__cl_fresh:
1406+
description: >-
1407+
Solar thermal power plant with storage cooling by closed loop cooling
1408+
technology using freshwater supply & parasitic electricity
1409+
input: {commodity: freshwater_supply,electr}
1410+
1411+
csp_sm3_ppl__ot_saline:
1412+
description: >-
1413+
Solar thermal power plant with storage cooling by once through cooling
1414+
technology using freshwater supply
1415+
input: {commodity: saline_supply_ppl}
1416+
1417+
csp_sm3_ppl__air:
1418+
description: >-
1419+
Solar thermal power plant with storage cooling by once through cooling
1420+
technology using parasitic electricity
1421+
input: {commodity: electr}
1422+
1423+
1424+

message_ix_models/model/water/cli.py

+3
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,9 @@ def cooling(context, regions, rcps, rels):
267267
# Build
268268
build(context, scen)
269269

270+
# Set scenario as default
271+
scen.set_as_default()
272+
270273
# Solve
271274
scen.solve(solve_options={"lpmethod": "4"}, case=caseName)
272275

0 commit comments

Comments
 (0)