From 629211475a6dd29e4291718765a0a7a36e0c62a5 Mon Sep 17 00:00:00 2001 From: adrivinca Date: Thu, 23 Feb 2023 16:45:37 +0100 Subject: [PATCH 1/4] Adding message-ix-models code as in PR #91 including the water module --- nest/.gitattributes | 3 + nest/.github/codecov.yml | 3 + nest/.github/pull_request_template.md | 53 + nest/.github/workflows/lint.yaml | 64 + nest/.github/workflows/publish.yaml | 47 + nest/.github/workflows/pytest.yaml | 112 + nest/.gitignore | 137 + nest/.readthedocs.yml | 16 + nest/LICENSE | 201 + nest/README.rst | 30 + nest/conftest.py | 2 + nest/doc/Makefile | 20 + nest/doc/_static/combined-logo-white.png | Bin 0 -> 56233 bytes nest/doc/_static/combined-logo-white.svg | 376 ++ nest/doc/_static/custom.css | 77 + nest/doc/_static/favicon.svg | 65 + nest/doc/_static/logo-white.png | Bin 0 -> 22635 bytes .../_static/message-ix-models-logo-white.svg | 85 + nest/doc/_template/autosummary-class.rst | 34 + nest/doc/_template/autosummary-module.rst | 68 + nest/doc/api/disutility.rst | 126 + nest/doc/api/model-bare.rst | 50 + nest/doc/api/model-build.rst | 46 + nest/doc/api/model-emissions.rst | 15 + nest/doc/api/model.rst | 83 + nest/doc/api/project.rst | 7 + nest/doc/api/testing.rst | 33 + nest/doc/api/tools.rst | 50 + nest/doc/api/util.rst | 178 + nest/doc/api/workflow.rst | 165 + nest/doc/cli.rst | 177 + nest/doc/conf.py | 107 + nest/doc/data.rst | 262 ++ nest/doc/develop.rst | 47 + nest/doc/distrib.rst | 41 + nest/doc/index.rst | 65 + nest/doc/install.rst | 20 + nest/doc/make.bat | 35 + nest/doc/migrate.rst | 48 + nest/doc/pkg-data/codelists.rst | 55 + nest/doc/pkg-data/iiasa-se.rst | 33 + nest/doc/pkg-data/node.rst | 87 + nest/doc/pkg-data/relation.rst | 43 + nest/doc/pkg-data/year.rst | 36 + nest/doc/releasing.rst | 50 + nest/doc/repro.rst | 79 + nest/doc/whatsnew.rst | 166 + nest/message_ix_models/__init__.py | 34 + nest/message_ix_models/cli.py | 138 + .../message_ix_models/data/cd_links/unit.yaml | 106 + nest/message_ix_models/data/commodity.yaml | 311 ++ .../data/edits/messageix-transport-core.yaml | 70 + .../data/edits/messageix-transport-input.yaml | 128 + .../data/iiasa-se/def-regions.yaml | 13 + .../data/iiasa-se/mappings-R12.yaml | 67 + nest/message_ix_models/data/level.yaml | 41 + nest/message_ix_models/data/node/ADVANCE.yaml | 35 + nest/message_ix_models/data/node/ISR.yaml | 10 + nest/message_ix_models/data/node/R11.yaml | 77 + nest/message_ix_models/data/node/R12.yaml | 82 + nest/message_ix_models/data/node/R14.yaml | 89 + nest/message_ix_models/data/node/R32.yaml | 196 + nest/message_ix_models/data/node/RCP.yaml | 50 + nest/message_ix_models/data/node/ZMB.yaml | 10 + nest/message_ix_models/data/relation/A.yaml | 154 + nest/message_ix_models/data/relation/B.yaml | 324 ++ .../data/relation/CD-LINKS.yaml | 1939 ++++++++++ nest/message_ix_models/data/technology.yaml | 3020 +++++++++++++++ .../advance_compare_20171018-134445.csv.zip | 3 + nest/message_ix_models/data/unit.yaml | 2 + .../data/water/.gitattributes | 4 + nest/message_ix_models/data/water/README.txt | 9 + .../water/availability/e-flow_2p6_R11.csv | 3 + .../water/availability/e-flow_2p6_ZMB.csv | 3 + .../availability/e-flow_5y_m_2p6_ZMB.csv | 3 + .../availability/e-flow_5y_m_7p0_ZMB.csv | 3 + .../e-flow_5y_m_no_climate_ZMB.csv | 3 + .../water/availability/e-flow_6p0_R11.csv | 3 + .../water/availability/e-flow_7p0_ZMB.csv | 3 + .../availability/e-flow_no_climate_R11.csv | 3 + .../availability/e-flow_no_climate_ZMB.csv | 3 + .../gw_energy_intensity_depth_R11.csv | 3 + .../gw_energy_intensity_depth_ZMB.csv | 3 + .../historical_new_cap_gw_sw_km3_year_R11.csv | 3 + .../historical_new_cap_gw_sw_km3_year_ZMB.csv | 3 + .../water/availability/qr_5y_2p6_high_R11.csv | 3 + .../water/availability/qr_5y_2p6_high_ZMB.csv | 3 + .../water/availability/qr_5y_2p6_low_R11.csv | 3 + .../water/availability/qr_5y_2p6_low_ZMB.csv | 3 + .../water/availability/qr_5y_2p6_med_R11.csv | 3 + .../water/availability/qr_5y_2p6_med_ZMB.csv | 3 + .../water/availability/qr_5y_6p0_high_R11.csv | 3 + .../water/availability/qr_5y_6p0_low_R11.csv | 3 + .../water/availability/qr_5y_6p0_med_R11.csv | 3 + .../water/availability/qr_5y_7p0_high_ZMB.csv | 3 + .../water/availability/qr_5y_7p0_low_ZMB.csv | 3 + .../water/availability/qr_5y_7p0_med_ZMB.csv | 3 + .../availability/qr_5y_m_2p6_low_ZMB.csv | 3 + .../availability/qr_5y_m_7p0_low_ZMB.csv | 3 + .../qr_5y_m_no_climate_low_ZMB.csv | 3 + .../qr_5y_no_climate_high_R11.csv | 3 + .../qr_5y_no_climate_high_ZMB.csv | 3 + .../availability/qr_5y_no_climate_low_R11.csv | 3 + .../availability/qr_5y_no_climate_low_ZMB.csv | 3 + .../availability/qr_5y_no_climate_med_R11.csv | 3 + .../availability/qr_5y_no_climate_med_ZMB.csv | 3 + .../availability/qtot_5y_2p6_high_R11.csv | 3 + .../availability/qtot_5y_2p6_high_ZMB.csv | 3 + .../availability/qtot_5y_2p6_low_R11.csv | 3 + .../availability/qtot_5y_2p6_low_ZMB.csv | 3 + .../availability/qtot_5y_2p6_med_R11.csv | 3 + .../availability/qtot_5y_2p6_med_ZMB.csv | 3 + .../availability/qtot_5y_6p0_high_R11.csv | 3 + .../availability/qtot_5y_6p0_low_R11.csv | 3 + .../availability/qtot_5y_6p0_med_R11.csv | 3 + .../availability/qtot_5y_7p0_high_ZMB.csv | 3 + .../availability/qtot_5y_7p0_low_ZMB.csv | 3 + .../availability/qtot_5y_7p0_med_ZMB.csv | 3 + .../availability/qtot_5y_m_2p6_low_ZMB.csv | 3 + .../availability/qtot_5y_m_7p0_low_ZMB.csv | 3 + .../qtot_5y_m_no_climate_low_ZMB.csv | 3 + .../qtot_5y_no_climate_high_R11.csv | 3 + .../qtot_5y_no_climate_high_ZMB.csv | 3 + .../qtot_5y_no_climate_low_R11.csv | 3 + .../qtot_5y_no_climate_low_ZMB.csv | 3 + .../qtot_5y_no_climate_med_R11.csv | 3 + .../qtot_5y_no_climate_med_ZMB.csv | 3 + nest/message_ix_models/data/water/config.yaml | 10 + .../basins_by_region_simpl_R11.csv | 3 + .../basins_by_region_simpl_R12.csv | 3 + .../basins_by_region_simpl_ZMB.csv | 3 + .../water/delineation/basins_country_R11.csv | 3 + .../water/delineation/basins_country_ZMB.csv | 3 + .../data/water/demands/.gitattributes | 4 + .../water/demands/country_region_map_key.csv | 3 + .../demands/harmonized/R11/all_rates_SSP2.csv | 3 + ...regional_manufacturing_return_baseline.csv | 3 + ...onal_manufacturing_withdrawal_baseline.csv | 3 + ...egional_rural_connection_rate_baseline.csv | 3 + .../ssp2_regional_rural_return_baseline.csv | 3 + ...regional_rural_treatment_rate_baseline.csv | 3 + ...sp2_regional_rural_withdrawal_baseline.csv | 3 + ...egional_urban_connection_rate_baseline.csv | 3 + ...regional_urban_recycling_rate_baseline.csv | 3 + .../ssp2_regional_urban_return2_baseline.csv | 3 + .../ssp2_regional_urban_return_baseline.csv | 3 + ...regional_urban_treatment_rate_baseline.csv | 3 + ...p2_regional_urban_withdrawal2_baseline.csv | 3 + ...sp2_regional_urban_withdrawal_baseline.csv | 3 + ...regional_manufacturing_return_baseline.csv | 3 + ...onal_manufacturing_withdrawal_baseline.csv | 3 + ...egional_rural_connection_rate_baseline.csv | 3 + .../ssp2_regional_rural_return_baseline.csv | 3 + ...regional_rural_treatment_rate_baseline.csv | 3 + ...sp2_regional_rural_withdrawal_baseline.csv | 3 + ...egional_urban_connection_rate_baseline.csv | 3 + ...regional_urban_recycling_rate_baseline.csv | 3 + .../ssp2_regional_urban_return2_baseline.csv | 3 + .../ssp2_regional_urban_return_baseline.csv | 3 + ...regional_urban_treatment_rate_baseline.csv | 3 + ...p2_regional_urban_withdrawal2_baseline.csv | 3 + ...sp2_regional_urban_withdrawal_baseline.csv | 3 + .../data/water/demands/harmonized/Thumbs.db | Bin 0 -> 72704 bytes .../demands/harmonized/ZMB/all_rates_SSP2.csv | 3 + .../harmonized/ZMB/ssp2_m_water_demands.csv | 3 + ...regional_manufacturing_return_baseline.csv | 3 + ...onal_manufacturing_withdrawal_baseline.csv | 3 + ...egional_rural_connection_rate_baseline.csv | 3 + .../ssp2_regional_rural_return_baseline.csv | 3 + ...regional_rural_treatment_rate_baseline.csv | 3 + ...sp2_regional_rural_withdrawal_baseline.csv | 3 + ...egional_urban_connection_rate_baseline.csv | 3 + ...regional_urban_recycling_rate_baseline.csv | 3 + .../ssp2_regional_urban_return2_baseline.csv | 3 + .../ssp2_regional_urban_return_baseline.csv | 3 + ...regional_urban_treatment_rate_baseline.csv | 3 + ...p2_regional_urban_withdrawal2_baseline.csv | 3 + ...sp2_regional_urban_withdrawal_baseline.csv | 3 + ...p2_regional_irrigation_withdrawal_base.csv | 3 + ...sp2_regional_manufacturing_return_base.csv | 3 + ...regional_manufacturing_return_baseline.csv | 3 + ...sp2_regional_manufacturing_return_sdg6.csv | 3 + ...regional_manufacturing_withdrawal_base.csv | 3 + ...onal_manufacturing_withdrawal_baseline.csv | 3 + ...regional_manufacturing_withdrawal_sdg6.csv | 3 + .../ssp2_regional_pop_scarcity_baseline.csv | 3 + ...egional_rural_connection_rate_baseline.csv | 3 + ...p2_regional_rural_connection_rate_sdg6.csv | 3 + .../ssp2_regional_rural_return_base.csv | 3 + .../ssp2_regional_rural_return_baseline.csv | 3 + .../ssp2_regional_rural_return_sdg6.csv | 3 + ...regional_rural_treatment_rate_baseline.csv | 3 + ...sp2_regional_rural_treatment_rate_sdg6.csv | 3 + .../ssp2_regional_rural_withdrawal_base.csv | 3 + ...regional_rural_withdrawal_baseline_old.csv | 3 + .../ssp2_regional_rural_withdrawal_sdg6.csv | 3 + ...egional_urban_connection_rate_baseline.csv | 3 + ...p2_regional_urban_connection_rate_sdg6.csv | 3 + ...ional_urban_desalination_rate_baseline.csv | 3 + ...regional_urban_recycling_rate_baseline.csv | 3 + ...sp2_regional_urban_recycling_rate_sdg6.csv | 3 + .../ssp2_regional_urban_return2_base.csv | 3 + .../ssp2_regional_urban_return2_baseline.csv | 3 + .../ssp2_regional_urban_return2_sdg6.csv | 3 + .../ssp2_regional_urban_return_base.csv | 3 + .../ssp2_regional_urban_return_baseline.csv | 3 + .../ssp2_regional_urban_return_sdg6.csv | 3 + ...regional_urban_treatment_rate_baseline.csv | 3 + .../ssp2_regional_urban_withdrawal2_base.csv | 3 + ...p2_regional_urban_withdrawal2_baseline.csv | 3 + .../ssp2_regional_urban_withdrawal2_sdg6.csv | 3 + .../ssp2_regional_urban_withdrawal_base.csv | 3 + ...sp2_regional_urban_withdrawal_baseline.csv | 3 + .../ssp2_regional_urban_withdrawal_sdg6.csv | 3 + .../water/infrastructure/desalination.xlsx | Bin 0 -> 14799 bytes .../infrastructure/extraction_techs.xlsx | Bin 0 -> 13915 bytes ...cal_capacity_desalination_km3_year_R11.csv | 3 + ...cal_capacity_desalination_km3_year_ZMB.csv | 3 + ...ed_desalination_potential_km3_year_R11.csv | 3 + ...ed_desalination_potential_km3_year_ZMB.csv | 3 + .../infrastructure/water_distribution.xlsx | Bin 0 -> 15469 bytes .../POWER_PLANTS_2016_Raptis.csv | 3 + .../cool_techs_country_share.csv | 3 + .../cool_techs_region_share.csv | 3 + .../cool_techs_region_share_R11.csv | 3 + .../cool_techs_region_share_R12.csv | 3 + .../cooltech_cost_and_shares_country.csv | 3 + .../cooltech_cost_and_shares_ssp_msg.csv | 3 + .../cooltech_cost_and_shares_ssp_msg_R11.csv | 3 + .../cooltech_cost_and_shares_ssp_msg_R12.csv | 3 + .../enhanced_fsu_cool_techs_share.csv | 3 + .../power_plant_cooling_impact_MESSAGE.xlsx | Bin 0 -> 24537 bytes .../raptis_types_map_cooling_type.csv | 3 + .../raptis_types_map_unit_type.csv | 3 + .../ppl_cooling_tech/tech_names_ssp_msg.csv | 3 + .../tech_water_performance_ssp_msg.csv | 3 + nest/message_ix_models/data/water/set.yaml | 1025 ++++++ .../data/water/technology.yaml | 1326 +++++++ nest/message_ix_models/data/year/A.yaml | 41 + nest/message_ix_models/data/year/B.yaml | 64 + nest/message_ix_models/model/__init__.py | 4 + nest/message_ix_models/model/bare.py | 170 + nest/message_ix_models/model/build.py | 169 + nest/message_ix_models/model/cli.py | 22 + nest/message_ix_models/model/config.py | 41 + nest/message_ix_models/model/data.py | 12 + nest/message_ix_models/model/disutility.py | 236 ++ nest/message_ix_models/model/emissions.py | 78 + nest/message_ix_models/model/structure.py | 330 ++ .../message_ix_models/model/water/__init__.py | 3 + nest/message_ix_models/model/water/build.py | 271 ++ nest/message_ix_models/model/water/cli.py | 272 ++ .../model/water/data/__init__.py | 62 + .../model/water/data/demands.py | 922 +++++ .../model/water/data/deprecated/Figures.R | 213 ++ .../deprecated/add_water_infrastructure.R | 3229 +++++++++++++++++ .../water/data/deprecated/cooling_tech_av.R | 905 +++++ .../model/water/data/infrastructure.py | 886 +++++ .../model/water/data/irrigation.py | 212 ++ .../calculate_ppl_cooling_technology_shares.r | 229 ++ .../water/data/pre-processing/desalination.R | 945 +++++ .../model/water/data/pre-processing/e-flow.py | 629 ++++ .../generate_water_constraints.R | 697 ++++ .../generate_water_constraints_monthly.r | 251 ++ .../pre-processing/groundwater_harmonize.r | 236 ++ .../water/data/pre-processing/hydro_agg_3.py | 247 ++ .../data/pre-processing/hydro_agg_spatial.R | 49 + .../data/pre-processing/hydro_agg_temp.py | 335 ++ .../data/pre-processing/hydro_agg_temp1.py | 485 +++ .../data/pre-processing/hydro_agg_temp2.py | 362 ++ .../data/pre-processing/shp_to_raster.py | 121 + .../model/water/data/water_for_ppl.py | 819 +++++ .../model/water/data/water_supply.py | 812 +++++ .../model/water/doc/files.rst | 23 + .../model/water/doc/index.rst | 167 + .../model/water/reporting.py | 1174 ++++++ nest/message_ix_models/model/water/utils.py | 158 + nest/message_ix_models/project/__init__.py | 0 nest/message_ix_models/py.typed | 0 nest/message_ix_models/testing.py | 399 ++ nest/message_ix_models/tests/__init__.py | 1 + .../message_ix_models/tests/model/__init__.py | 1 + .../tests/model/test_bare.py | 69 + .../tests/model/test_build.py | 103 + .../message_ix_models/tests/model/test_cli.py | 5 + .../tests/model/test_config.py | 27 + .../tests/model/test_disutility.py | 275 ++ .../tests/model/test_emissions.py | 54 + .../tests/model/test_structure.py | 259 ++ nest/message_ix_models/tests/test_cli.py | 58 + nest/message_ix_models/tests/test_import.py | 3 + nest/message_ix_models/tests/test_testing.py | 36 + nest/message_ix_models/tests/test_util.py | 373 ++ nest/message_ix_models/tests/test_workflow.py | 144 + .../message_ix_models/tests/tools/__init__.py | 0 .../tests/tools/test_advance.py | 49 + nest/message_ix_models/tests/util/__init__.py | 1 + .../tests/util/test_cache.py | 109 + .../tests/util/test_click.py | 60 + .../tests/util/test_config.py | 133 + .../tests/util/test_context.py | 251 ++ .../tests/util/test_logging.py | 40 + .../message_ix_models/tests/util/test_node.py | 152 + .../tests/util/test_scenarioinfo.py | 212 ++ .../message_ix_models/tests/util/test_sdmx.py | 25 + nest/message_ix_models/tools/__init__.py | 0 nest/message_ix_models/tools/advance.py | 171 + nest/message_ix_models/util/__init__.py | 577 +++ nest/message_ix_models/util/_convert_units.py | 76 + nest/message_ix_models/util/_logging.py | 191 + nest/message_ix_models/util/cache.py | 95 + nest/message_ix_models/util/click.py | 193 + nest/message_ix_models/util/common.py | 271 ++ nest/message_ix_models/util/config.py | 156 + nest/message_ix_models/util/context.py | 394 ++ nest/message_ix_models/util/importlib.py | 43 + nest/message_ix_models/util/node.py | 133 + nest/message_ix_models/util/scenarioinfo.py | 332 ++ nest/message_ix_models/util/sdmx.py | 99 + nest/message_ix_models/workflow.py | 244 ++ nest/pyproject.toml | 37 + nest/setup.cfg | 49 + nest/setup.py | 3 + 323 files changed, 35029 insertions(+) create mode 100644 nest/.gitattributes create mode 100644 nest/.github/codecov.yml create mode 100644 nest/.github/pull_request_template.md create mode 100644 nest/.github/workflows/lint.yaml create mode 100644 nest/.github/workflows/publish.yaml create mode 100644 nest/.github/workflows/pytest.yaml create mode 100644 nest/.gitignore create mode 100644 nest/.readthedocs.yml create mode 100644 nest/LICENSE create mode 100644 nest/README.rst create mode 100644 nest/conftest.py create mode 100644 nest/doc/Makefile create mode 100644 nest/doc/_static/combined-logo-white.png create mode 100644 nest/doc/_static/combined-logo-white.svg create mode 100644 nest/doc/_static/custom.css create mode 100644 nest/doc/_static/favicon.svg create mode 100644 nest/doc/_static/logo-white.png create mode 100644 nest/doc/_static/message-ix-models-logo-white.svg create mode 100644 nest/doc/_template/autosummary-class.rst create mode 100644 nest/doc/_template/autosummary-module.rst create mode 100644 nest/doc/api/disutility.rst create mode 100644 nest/doc/api/model-bare.rst create mode 100644 nest/doc/api/model-build.rst create mode 100644 nest/doc/api/model-emissions.rst create mode 100644 nest/doc/api/model.rst create mode 100644 nest/doc/api/project.rst create mode 100644 nest/doc/api/testing.rst create mode 100644 nest/doc/api/tools.rst create mode 100644 nest/doc/api/util.rst create mode 100644 nest/doc/api/workflow.rst create mode 100644 nest/doc/cli.rst create mode 100644 nest/doc/conf.py create mode 100644 nest/doc/data.rst create mode 100644 nest/doc/develop.rst create mode 100644 nest/doc/distrib.rst create mode 100644 nest/doc/index.rst create mode 100644 nest/doc/install.rst create mode 100644 nest/doc/make.bat create mode 100644 nest/doc/migrate.rst create mode 100644 nest/doc/pkg-data/codelists.rst create mode 100644 nest/doc/pkg-data/iiasa-se.rst create mode 100644 nest/doc/pkg-data/node.rst create mode 100644 nest/doc/pkg-data/relation.rst create mode 100644 nest/doc/pkg-data/year.rst create mode 100644 nest/doc/releasing.rst create mode 100644 nest/doc/repro.rst create mode 100644 nest/doc/whatsnew.rst create mode 100644 nest/message_ix_models/__init__.py create mode 100644 nest/message_ix_models/cli.py create mode 100644 nest/message_ix_models/data/cd_links/unit.yaml create mode 100644 nest/message_ix_models/data/commodity.yaml create mode 100644 nest/message_ix_models/data/edits/messageix-transport-core.yaml create mode 100644 nest/message_ix_models/data/edits/messageix-transport-input.yaml create mode 100644 nest/message_ix_models/data/iiasa-se/def-regions.yaml create mode 100644 nest/message_ix_models/data/iiasa-se/mappings-R12.yaml create mode 100644 nest/message_ix_models/data/level.yaml create mode 100644 nest/message_ix_models/data/node/ADVANCE.yaml create mode 100644 nest/message_ix_models/data/node/ISR.yaml create mode 100644 nest/message_ix_models/data/node/R11.yaml create mode 100644 nest/message_ix_models/data/node/R12.yaml create mode 100644 nest/message_ix_models/data/node/R14.yaml create mode 100644 nest/message_ix_models/data/node/R32.yaml create mode 100644 nest/message_ix_models/data/node/RCP.yaml create mode 100644 nest/message_ix_models/data/node/ZMB.yaml create mode 100644 nest/message_ix_models/data/relation/A.yaml create mode 100644 nest/message_ix_models/data/relation/B.yaml create mode 100644 nest/message_ix_models/data/relation/CD-LINKS.yaml create mode 100644 nest/message_ix_models/data/technology.yaml create mode 100644 nest/message_ix_models/data/test/advance/advance_compare_20171018-134445.csv.zip create mode 100644 nest/message_ix_models/data/unit.yaml create mode 100644 nest/message_ix_models/data/water/.gitattributes create mode 100644 nest/message_ix_models/data/water/README.txt create mode 100644 nest/message_ix_models/data/water/availability/e-flow_2p6_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_2p6_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_5y_m_2p6_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_5y_m_7p0_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_5y_m_no_climate_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_6p0_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_7p0_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_no_climate_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/e-flow_no_climate_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_2p6_high_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_2p6_high_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_2p6_low_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_2p6_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_2p6_med_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_2p6_med_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_6p0_high_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_6p0_low_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_6p0_med_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_7p0_high_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_7p0_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_7p0_med_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_m_2p6_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_m_7p0_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_m_no_climate_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_6p0_high_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_6p0_low_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_6p0_med_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_7p0_high_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_7p0_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_7p0_med_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_m_2p6_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_m_7p0_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_m_no_climate_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_ZMB.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_R11.csv create mode 100644 nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_ZMB.csv create mode 100644 nest/message_ix_models/data/water/config.yaml create mode 100644 nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R11.csv create mode 100644 nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R12.csv create mode 100644 nest/message_ix_models/data/water/delineation/basins_by_region_simpl_ZMB.csv create mode 100644 nest/message_ix_models/data/water/delineation/basins_country_R11.csv create mode 100644 nest/message_ix_models/data/water/delineation/basins_country_ZMB.csv create mode 100644 nest/message_ix_models/data/water/demands/.gitattributes create mode 100644 nest/message_ix_models/data/water/demands/country_region_map_key.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/all_rates_SSP2.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_recycling_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_recycling_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/Thumbs.db create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/all_rates_SSP2.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_m_water_demands.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_manufacturing_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_manufacturing_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_rural_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_rural_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_rural_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_rural_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_urban_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_urban_recycling_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_urban_return2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_urban_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_urban_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_urban_withdrawal2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/ZMB/ssp2_regional_urban_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_irrigation_withdrawal_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_manufacturing_return_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_manufacturing_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_manufacturing_return_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_manufacturing_withdrawal_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_manufacturing_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_manufacturing_withdrawal_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_pop_scarcity_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_connection_rate_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_return_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_return_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_treatment_rate_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_withdrawal_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_withdrawal_baseline_old.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_rural_withdrawal_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_connection_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_connection_rate_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_desalination_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_recycling_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_recycling_rate_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_return2_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_return2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_return2_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_return_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_return_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_return_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_treatment_rate_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_withdrawal2_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_withdrawal2_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_withdrawal2_sdg6.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_withdrawal_base.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_withdrawal_baseline.csv create mode 100644 nest/message_ix_models/data/water/demands/harmonized/old_R11/ssp2_regional_urban_withdrawal_sdg6.csv create mode 100644 nest/message_ix_models/data/water/infrastructure/desalination.xlsx create mode 100644 nest/message_ix_models/data/water/infrastructure/extraction_techs.xlsx create mode 100644 nest/message_ix_models/data/water/infrastructure/historical_capacity_desalination_km3_year_R11.csv create mode 100644 nest/message_ix_models/data/water/infrastructure/historical_capacity_desalination_km3_year_ZMB.csv create mode 100644 nest/message_ix_models/data/water/infrastructure/projected_desalination_potential_km3_year_R11.csv create mode 100644 nest/message_ix_models/data/water/infrastructure/projected_desalination_potential_km3_year_ZMB.csv create mode 100644 nest/message_ix_models/data/water/infrastructure/water_distribution.xlsx create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/POWER_PLANTS_2016_Raptis.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cool_techs_country_share.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cool_techs_region_share.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cool_techs_region_share_R11.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cool_techs_region_share_R12.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cooltech_cost_and_shares_country.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cooltech_cost_and_shares_ssp_msg.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cooltech_cost_and_shares_ssp_msg_R11.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/cooltech_cost_and_shares_ssp_msg_R12.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/enhanced_fsu_cool_techs_share.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/power_plant_cooling_impact_MESSAGE.xlsx create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_cooling_type.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_unit_type.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/tech_names_ssp_msg.csv create mode 100644 nest/message_ix_models/data/water/ppl_cooling_tech/tech_water_performance_ssp_msg.csv create mode 100644 nest/message_ix_models/data/water/set.yaml create mode 100644 nest/message_ix_models/data/water/technology.yaml create mode 100644 nest/message_ix_models/data/year/A.yaml create mode 100644 nest/message_ix_models/data/year/B.yaml create mode 100644 nest/message_ix_models/model/__init__.py create mode 100644 nest/message_ix_models/model/bare.py create mode 100644 nest/message_ix_models/model/build.py create mode 100644 nest/message_ix_models/model/cli.py create mode 100644 nest/message_ix_models/model/config.py create mode 100644 nest/message_ix_models/model/data.py create mode 100644 nest/message_ix_models/model/disutility.py create mode 100644 nest/message_ix_models/model/emissions.py create mode 100644 nest/message_ix_models/model/structure.py create mode 100644 nest/message_ix_models/model/water/__init__.py create mode 100644 nest/message_ix_models/model/water/build.py create mode 100644 nest/message_ix_models/model/water/cli.py create mode 100644 nest/message_ix_models/model/water/data/__init__.py create mode 100644 nest/message_ix_models/model/water/data/demands.py create mode 100644 nest/message_ix_models/model/water/data/deprecated/Figures.R create mode 100644 nest/message_ix_models/model/water/data/deprecated/add_water_infrastructure.R create mode 100644 nest/message_ix_models/model/water/data/deprecated/cooling_tech_av.R create mode 100644 nest/message_ix_models/model/water/data/infrastructure.py create mode 100644 nest/message_ix_models/model/water/data/irrigation.py create mode 100644 nest/message_ix_models/model/water/data/pre-processing/calculate_ppl_cooling_technology_shares.r create mode 100644 nest/message_ix_models/model/water/data/pre-processing/desalination.R create mode 100644 nest/message_ix_models/model/water/data/pre-processing/e-flow.py create mode 100644 nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints.R create mode 100644 nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints_monthly.r create mode 100644 nest/message_ix_models/model/water/data/pre-processing/groundwater_harmonize.r create mode 100644 nest/message_ix_models/model/water/data/pre-processing/hydro_agg_3.py create mode 100644 nest/message_ix_models/model/water/data/pre-processing/hydro_agg_spatial.R create mode 100644 nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp.py create mode 100644 nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp1.py create mode 100644 nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp2.py create mode 100644 nest/message_ix_models/model/water/data/pre-processing/shp_to_raster.py create mode 100644 nest/message_ix_models/model/water/data/water_for_ppl.py create mode 100644 nest/message_ix_models/model/water/data/water_supply.py create mode 100644 nest/message_ix_models/model/water/doc/files.rst create mode 100644 nest/message_ix_models/model/water/doc/index.rst create mode 100644 nest/message_ix_models/model/water/reporting.py create mode 100644 nest/message_ix_models/model/water/utils.py create mode 100644 nest/message_ix_models/project/__init__.py create mode 100644 nest/message_ix_models/py.typed create mode 100644 nest/message_ix_models/testing.py create mode 100644 nest/message_ix_models/tests/__init__.py create mode 100644 nest/message_ix_models/tests/model/__init__.py create mode 100644 nest/message_ix_models/tests/model/test_bare.py create mode 100644 nest/message_ix_models/tests/model/test_build.py create mode 100644 nest/message_ix_models/tests/model/test_cli.py create mode 100644 nest/message_ix_models/tests/model/test_config.py create mode 100644 nest/message_ix_models/tests/model/test_disutility.py create mode 100644 nest/message_ix_models/tests/model/test_emissions.py create mode 100644 nest/message_ix_models/tests/model/test_structure.py create mode 100644 nest/message_ix_models/tests/test_cli.py create mode 100644 nest/message_ix_models/tests/test_import.py create mode 100644 nest/message_ix_models/tests/test_testing.py create mode 100644 nest/message_ix_models/tests/test_util.py create mode 100644 nest/message_ix_models/tests/test_workflow.py create mode 100644 nest/message_ix_models/tests/tools/__init__.py create mode 100644 nest/message_ix_models/tests/tools/test_advance.py create mode 100644 nest/message_ix_models/tests/util/__init__.py create mode 100644 nest/message_ix_models/tests/util/test_cache.py create mode 100644 nest/message_ix_models/tests/util/test_click.py create mode 100644 nest/message_ix_models/tests/util/test_config.py create mode 100644 nest/message_ix_models/tests/util/test_context.py create mode 100644 nest/message_ix_models/tests/util/test_logging.py create mode 100644 nest/message_ix_models/tests/util/test_node.py create mode 100644 nest/message_ix_models/tests/util/test_scenarioinfo.py create mode 100644 nest/message_ix_models/tests/util/test_sdmx.py create mode 100644 nest/message_ix_models/tools/__init__.py create mode 100644 nest/message_ix_models/tools/advance.py create mode 100644 nest/message_ix_models/util/__init__.py create mode 100644 nest/message_ix_models/util/_convert_units.py create mode 100644 nest/message_ix_models/util/_logging.py create mode 100644 nest/message_ix_models/util/cache.py create mode 100644 nest/message_ix_models/util/click.py create mode 100644 nest/message_ix_models/util/common.py create mode 100644 nest/message_ix_models/util/config.py create mode 100644 nest/message_ix_models/util/context.py create mode 100644 nest/message_ix_models/util/importlib.py create mode 100644 nest/message_ix_models/util/node.py create mode 100644 nest/message_ix_models/util/scenarioinfo.py create mode 100644 nest/message_ix_models/util/sdmx.py create mode 100644 nest/message_ix_models/workflow.py create mode 100644 nest/pyproject.toml create mode 100644 nest/setup.cfg create mode 100644 nest/setup.py diff --git a/nest/.gitattributes b/nest/.gitattributes new file mode 100644 index 0000000..da70138 --- /dev/null +++ b/nest/.gitattributes @@ -0,0 +1,3 @@ +# Reduce the number of merge conflicts +doc/whatsnew.rst merge=union +*.zip filter=lfs diff=lfs merge=lfs -text diff --git a/nest/.github/codecov.yml b/nest/.github/codecov.yml new file mode 100644 index 0000000..01fa01a --- /dev/null +++ b/nest/.github/codecov.yml @@ -0,0 +1,3 @@ +comment: + layout: "diff, files" + behavior: once diff --git a/nest/.github/pull_request_template.md b/nest/.github/pull_request_template.md new file mode 100644 index 0000000..c6d9465 --- /dev/null +++ b/nest/.github/pull_request_template.md @@ -0,0 +1,53 @@ + + +**Required:** write a single sentence that describes the changes made by this PR. + + + +## How to review + +**Required:** describe specific things that reviewer(s) must do, in order to ensure that the PR achieves its goal. +If no review is required, write “No review:” and describe why. + + + +## PR checklist + + +- [ ] Continuous integration checks all ✅ + +- [ ] Add or expand tests; coverage checks both ✅ +- [ ] Add, expand, or update documentation. +- [ ] Update doc/whatsnew. + diff --git a/nest/.github/workflows/lint.yaml b/nest/.github/workflows/lint.yaml new file mode 100644 index 0000000..45308a4 --- /dev/null +++ b/nest/.github/workflows/lint.yaml @@ -0,0 +1,64 @@ +name: Lint + +on: + push: + branches: [ main ] + pull_request: + branches: [ main, "migrate-*"] + +env: + # Maximum McCabe complexity for code + max-complexity: 15 + +jobs: + lint: + runs-on: ubuntu-latest + + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + # If the "Latest version testable on GitHub Actions" in pytest.yaml + # is not the latest 3.x stable version, adjust here to match: + # python-version: "3.x" + python-version: "3.10" + cache: pip + cache-dependency-path: "**/setup.cfg" + + - name: Upgrade pip and install requirements + run: | + python -m pip install --upgrade pip + pip install black flake8 isort mypy setuptools-scm twine wheel + + - name: Check "black" code style + run: black --check . + + - name: Lint with flake8 & isort + run: | + flake8 --count --max-complexity=${{ env.max-complexity }} --show-source --statistics + isort --check-only . + + - name: Check out ixmp + uses: actions/checkout@v3 + with: + repository: iiasa/ixmp + path: ixmp + + - name: Check out message-ix + uses: actions/checkout@v3 + with: + repository: iiasa/message_ix + path: message-ix + + - name: Check typing with mypy + # Give the paths to ixmp and message_ix sources. These need not be + # installed for static type checking + env: + MYPYPATH: "./ixmp/:./message-ix/" + # Also install stub packages and others that provide type hints + run: | + pip install genno iam-units pytest sdmx1 types-PyYAML types-setuptools + mypy ./message_ix_models diff --git a/nest/.github/workflows/publish.yaml b/nest/.github/workflows/publish.yaml new file mode 100644 index 0000000..12dfc37 --- /dev/null +++ b/nest/.github/workflows/publish.yaml @@ -0,0 +1,47 @@ +name: Publish + +on: + push: + branches: [ main ] + tags: [ "v*" ] + release: + types: [ published ] + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + # If the "Latest version testable on GitHub Actions" in pytest.yaml + # is not the latest 3.x stable version, adjust here to match: + # python-version: "3.x" + python-version: "3.10" + cache: pip + cache-dependency-path: "**/setup.cfg" + + - name: Upgrade pip, setuptools-scm, twine, wheel + run: python -m pip install --upgrade pip setuptools-scm twine wheel + + - name: Build package + run: | + python3 setup.py bdist_wheel sdist + twine check dist/* + + - name: Publish to TestPyPI + uses: pypa/gh-action-pypi-publish@v1.5.0 + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + with: + user: __token__ + password: ${{ secrets.TESTPYPI_TOKEN }} + repository_url: https://test.pypi.org/legacy/ + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@v1.5.0 + if: github.event_name == 'release' + with: + user: __token__ + password: ${{ secrets.PYPI_TOKEN }} diff --git a/nest/.github/workflows/pytest.yaml b/nest/.github/workflows/pytest.yaml new file mode 100644 index 0000000..713f3e6 --- /dev/null +++ b/nest/.github/workflows/pytest.yaml @@ -0,0 +1,112 @@ +name: Test + +on: + push: + branches: [ main ] + pull_request: + branches: [ main , "migrate-*"] + schedule: + # 05:00 UTC = 06:00 CET = 07:00 CEST + - cron: "0 5 * * *" + +env: + # For setuptools-scm. With fetch --tags below, this ensures that enough + # history is fetched to contain the latest tag, so that setuptools-scm can + # generate the version number. Update: + # - See https://github.com/iiasa/message-ix-models/releases, at "NN commits to + # main since this release". The value should be at least equal to NN + the + # number of commits on any PR branch. + # - Reset to a lower value, e.g. 100, after a new release. + depth: 100 + +jobs: + pytest: + strategy: + matrix: + # One job per OS; latest python version testable on GitHub actions. + # These should match the versions used in the "pytest" workflows of both + # ixmp and message_ix. + version: + - { os: macos-latest, python: "3.10" } + - { os: ubuntu-latest, python: "3.10" } + - { os: windows-latest, python: "3.10" } + # Versions of both ixmp and message_ix to use + upstream-version: + - v3.4.0 # Minimum version given in setup.cfg + - v3.5.0 + - v3.6.0 # Latest released version + - main # Development version + + fail-fast: false + + runs-on: ${{ matrix.version.os }} + name: ${{ matrix.version.os }}-py${{ matrix.version.python }}-upstream-${{ matrix.upstream-version }} + + steps: + - name: Cancel previous runs that have not completed + uses: styfle/cancel-workflow-action@0.11.0 + + - name: Check out ixmp + uses: actions/checkout@v3 + with: + repository: iiasa/ixmp + ref: ${{ matrix.upstream-version }} + path: ixmp + fetch-depth: ${{ env.depth }} + + - name: Check out message-ix + uses: actions/checkout@v3 + with: + repository: iiasa/message_ix + ref: ${{ matrix.upstream-version }} + path: message-ix + fetch-depth: ${{ env.depth }} + + - name: Check out message-ix-models + uses: actions/checkout@v3 + with: + lfs: true + path: message-ix-models + fetch-depth: ${{ env.depth }} + + - name: Fetch tags (for setuptools-scm) + run: | + (cd ixmp; git fetch --tags --depth=${{ env.depth }}) + (cd message-ix; git fetch --tags --depth=${{ env.depth }}) + (cd message-ix-models; git fetch --tags --depth=${{ env.depth }}) + shell: bash + + - uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.version.python }} + cache: pip + cache-dependency-path: "**/setup.cfg" + + - name: Upgrade pip + run: python -m pip install --upgrade pip + + - uses: iiasa/actions/setup-gams@main + with: + version: 25.1.1 + license: ${{ secrets.GAMS_LICENSE }} + + - name: Install packages and dependencies + run: | + pip install ./ixmp + pip install ./message-ix[tests] + pip install ./message-ix-models[tests] + + - name: Run test suite using pytest + working-directory: message-ix-models + run: pytest message_ix_models -rA --verbose --color=yes --cov-report=xml --cov-report=term-missing + + - name: Test documentation build using Sphinx + if: startsWith(matrix.os, 'ubuntu') + env: + RTD_TOKEN_MESSAGE_DATA: ${{ secrets.RTD_TOKEN_MESSAGE_DATA }} + run: make --directory=message-ix-models/doc html + + - name: Upload test coverage to Codecov.io + uses: codecov/codecov-action@v3 + with: + root_dir: message-ix-models diff --git a/nest/.gitignore b/nest/.gitignore new file mode 100644 index 0000000..3adc2ad --- /dev/null +++ b/nest/.gitignore @@ -0,0 +1,137 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +doc/_autosummary/ +doc/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# PyCharm +/**/.idea + +# Generated and temporary data files +debug/ +cache/ diff --git a/nest/.readthedocs.yml b/nest/.readthedocs.yml new file mode 100644 index 0000000..e7c5532 --- /dev/null +++ b/nest/.readthedocs.yml @@ -0,0 +1,16 @@ +version: 2 + +# Also build PDF format docs +formats: +- pdf + +build: + os: ubuntu-22.04 + tools: + python: "3.10" + +python: + install: + - method: pip + path: . + extra_requirements: [docs] diff --git a/nest/LICENSE b/nest/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/nest/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/nest/README.rst b/nest/README.rst new file mode 100644 index 0000000..9f35d9a --- /dev/null +++ b/nest/README.rst @@ -0,0 +1,30 @@ +Tools for MESSAGEix-GLOBIOM models +********************************** + +.. image:: https://img.shields.io/pypi/v/message-ix-models.svg + :alt: PyPI version + :target: https://pypi.python.org/pypi/message-ix-models/ + +.. image:: https://readthedocs.com/projects/iiasa-energy-program-message-ix-models/badge/?version=latest&token=e26aafa64d5e0792f1198aa1cc328a453f7bc63360efbe1031a13f13c7ba286f + :alt: Documentation status + :target: https://docs.messageix.org/projects/models/en/latest/?badge=latest + +.. image:: https://github.com/iiasa/message-ix-models/actions/workflows/pytest.yaml/badge.svg + :alt: Test status + :target: https://github.com/iiasa/message-ix-models/actions/workflows/pytest.yaml + +.. image:: https://codecov.io/gh/iiasa/message-ix-models/branch/main/graph/badge.svg + :alt: Test coverage + :target: https://codecov.io/gh/iiasa/message-ix-models + +``message_ix_models`` provides tools for research using the MESSAGEix-GLOBIOM family of models. +These models are built in the `MESSAGEix framework `_ and on the `ix modeling platform (ixmp) `_. + +See the `online documentation `_ for further information. + +License +======= + +Copyright © 2020–2023 IIASA Energy, Climate, and Environment (ECE) program + +Licensed under the Apache License, version 2.0. diff --git a/nest/conftest.py b/nest/conftest.py new file mode 100644 index 0000000..5c73f57 --- /dev/null +++ b/nest/conftest.py @@ -0,0 +1,2 @@ +# Modules containing fixtures to use in testing +pytest_plugins = ["ixmp.testing", "message_ix_models.testing"] diff --git a/nest/doc/Makefile b/nest/doc/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/nest/doc/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/nest/doc/_static/combined-logo-white.png b/nest/doc/_static/combined-logo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..87ee1f855d90c6d941e768f79083ee88bd1c958b GIT binary patch literal 56233 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%0D##h8h>#3yg9 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nest/doc/_static/custom.css b/nest/doc/_static/custom.css new file mode 100644 index 0000000..097100d --- /dev/null +++ b/nest/doc/_static/custom.css @@ -0,0 +1,77 @@ +/* + +IIASA blue + three-stage gradient to white +- #00589d / #3f81b5 / #7fabce / #bfd5e6 + +IIASA secondary colours + two-stage gradient to white +- #62c5c0 / #96d8d5 / #caebea +- #247f6e +- #fdbb40 +- #ee6a6b +- #6a4c93 + +*/ + +/* Overall backgrounds */ +.wy-nav-side, .wy-side-nav-search, .wy-nav-top { + background: #00589d; +} + +/* White line between search & menu panels */ +.wy-side-nav-search { + border-bottom: 1px solid #ffffff; +} + +/* Text colours of menu items: general */ +.wy-menu-vertical a { + color: #ffffff; +} + +/* …: current items levels 1–3 */ +.wy-menu-vertical li.on a, +.wy-menu-vertical li.current > a, +.wy-menu-vertical li.toctree-l3.current > a { + color: #00589d; +} + +/* …: current item level 4 */ +.wy-menu-vertical li.toctree-l3 > a { + color: #000000; +} + +/* Borders around current items */ +.wy-menu-vertical li.current a { + border-right: 1px solid #00589d; +} + +.wy-menu-vertical li.toctree-l1.current > a { + border-bottom: 1px solid #00589d; + border-right: none; +} + +/* Gradient colouring of sub-menus */ +.wy-menu-vertical li.current, +.wy-menu-vertical li.toctree-l2.current > a { + background: #bfd5e6; /* blue */ +} + + +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { + background: #7fabce; /* blue */ +} + +.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { + background: #3f81b5; /* blue */ + color: #ffffff; +} + +/* Hovered links; all the same colour */ +.wy-menu-vertical li > a:hover, +.wy-menu-vertical li.current > a:hover, +.wy-menu-vertical li.current li.toctree-l2 > a:hover, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover, +.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover { + /* white on purple */ + background: #6a4c93; + color: #ffffff; +} diff --git a/nest/doc/_static/favicon.svg b/nest/doc/_static/favicon.svg new file mode 100644 index 0000000..285224a --- /dev/null +++ b/nest/doc/_static/favicon.svg @@ -0,0 +1,65 @@ + + + + diff --git a/nest/doc/_static/logo-white.png b/nest/doc/_static/logo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..583cbab47a2764078ab271d1c488659140acead5 GIT binary patch literal 22635 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 D;wM84 literal 0 HcmV?d00001 diff --git a/nest/doc/_static/message-ix-models-logo-white.svg b/nest/doc/_static/message-ix-models-logo-white.svg new file mode 100644 index 0000000..63960db --- /dev/null +++ b/nest/doc/_static/message-ix-models-logo-white.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + diff --git a/nest/doc/_template/autosummary-class.rst b/nest/doc/_template/autosummary-class.rst new file mode 100644 index 0000000..ec37d3c --- /dev/null +++ b/nest/doc/_template/autosummary-class.rst @@ -0,0 +1,34 @@ +.. From https://stackoverflow.com/a/62613202/2362198 + +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :show-inheritance: + :inherited-members: + + {% block methods %} + .. automethod:: __init__ + + {% if methods %} + .. rubric:: {{ _('Methods') }} + + .. autosummary:: + {% for item in methods %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Attributes') }} + + .. autosummary:: + {% for item in attributes %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} diff --git a/nest/doc/_template/autosummary-module.rst b/nest/doc/_template/autosummary-module.rst new file mode 100644 index 0000000..68d7c0f --- /dev/null +++ b/nest/doc/_template/autosummary-module.rst @@ -0,0 +1,68 @@ +.. From https://stackoverflow.com/a/62613202/2362198 + +{{ fullname | escape | underline}} + +.. automodule:: {{ fullname }} + + {% block attributes %} + {% if attributes %} + .. rubric:: Module Attributes + + .. autosummary:: + :toctree: + {% for item in attributes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block functions %} + {% if functions %} + .. rubric:: {{ _('Functions') }} + + .. autosummary:: + :toctree: + {% for item in functions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block classes %} + {% if classes %} + .. rubric:: {{ _('Classes') }} + + .. autosummary:: + :toctree: + :template: autosummary-class.rst + {% for item in classes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block exceptions %} + {% if exceptions %} + .. rubric:: {{ _('Exceptions') }} + + .. autosummary:: + :toctree: + {% for item in exceptions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + +{% block modules %} +{% if modules %} +.. rubric:: Modules + +.. autosummary:: + :toctree: + :template: autosummary-module.rst + :recursive: +{% for item in modules %} + {{ item }} +{%- endfor %} +{% endif %} +{% endblock %} diff --git a/nest/doc/api/disutility.rst b/nest/doc/api/disutility.rst new file mode 100644 index 0000000..088e821 --- /dev/null +++ b/nest/doc/api/disutility.rst @@ -0,0 +1,126 @@ +.. currentmodule:: message_ix_models.model.disutility + +Consumer disutility +******************* + +This module provides a generalized consumer disutility formulation, currently used by :mod:`message_data.model.transport`. +The formulation rests on the concept of “consumer groups”; each consumer group may have a distinct disutility associated with using the outputs of each technology. +A set of ‘pseudo-’/‘virtual’/non-physical “usage technologies” converts the outputs of the actual technologies into the commodities demanded by each group, while also requiring input of a costly “disutility” commodity. + + +Method & usage +============== + +Use this code by calling :func:`add`, which takes arguments that describe the concrete usage: + +Consumer groups + This is a list of :class:`.Code` objects describing the consumer groups. + The list must be 1-dimensional, but can be composed (as in :mod:`message_data.model.transport`) from multiple dimensions. + +Technologies + This is a list of :class:`.Code` objects describing the technologies for which the consumers in the different groups experience disutility. + Each object must be have 'input' and 'output' annotations (:attr:`.Code.anno`); each of these is a :class:`dict` with the keys 'commodity', 'input', and 'unit', describing the source or sink for the technology. + +Template + This is also a :class:`.Code` object, similar to those in ``technologies``; see below. + +The code creates a source technology for the “disutility” commodity. +The code does *not* perform the following step(s) needed to completely parametrize the formulation: + +- Set consumer group-specific ``demand`` parameter values for new commodities. +- Set the amounts of “disutility” commodities used as ``input`` to the new usage technologies. + +These must be parametrized based on the particular application. + +Detailed example +================ + +This example is similar to the one used in :func:`.test_disutility.test_minimal`: + +.. code-block:: python + + # Two consumer groups + groups = [Code(id="g0"), Code(id="g1")] + + # Two technologies, for which groups may have different disutilities. + techs = [Code(id="t0"), Code(id="t1")] + + # Add generalized disutility formulation to some technologies + disutility.add( + scenario, + groups=groups, + technologies=techs, + + template=Code( + # Template for IDs of conversion technologies + id="usage of {technology} by {group}", + + # Templates for inputs of conversion technologies + input=dict( + # Technology-specific output commodity + commodity="output of {technology}", + level="useful", + unit="kg", + ), + + # Templates for outputs of conversion technologies + output=dict( + # Consumer-group–specific demand commodity + commodity="demand of group {group}", + level="useful", + unit="kg", + ), + ), + **options, + ) + + +:func:`add` uses :func:`get_spec` to generate a specification that adds the following: + +- For the set ``commodity``: + + - The single element “disutility”. + - One element per `technologies`, using the `template` “input” annotation, e.g. “output of t0” generated from ``output of {technology}`` and the id “t0”. + These **may** already be present in the `scenario`; if not, the spec causes them to be added. + - One elements per `groups`, using the `template` “output” annotation, e.g. “demand of group g1” generated from ``demand of group {group}`` and the id “g1”. + These **may** already be present in the `scenario`; if not, the spec causes them to be added. + +- For the set ``technology``: + + - The single element “disutility source”. + - One element per each combination of disutility-affected technology (`technologies`) and consumer group (`groups`). + For example, “usage of t0 by g1” generated from ``usage of {technology} by {group}``, and the ids “t0” and “g1”. + +The spec is applied to the target scenario using :func:`.model.build.apply_spec`. +If the arguments produce a spec that is inconsistent with the target scenario, an exception will by raised at this point. + + +Next, :func:`add` uses :func:`data_conversion` and :func:`data_source` to generate: + +- ``output`` and ``var_cost`` parameter data for “disutility source”. + This technology outputs the unitless commodity “disutility” at a cost of 1.0 per unit. + +- ``input`` and ``output`` parameter data for the new usage technologies. + For example, the new technology “usage of t0 by g1”… + + - …takes input from the *technology-specific* commodity “output of t0”. + - …takes input from the common commodity “disutility”, in an amount specific to group “g1”. + - …outputs to a *group-specific* commodity “demand of group g1”. + +Note that the `technologies` towards which the groups have disutility are assumed to already be configured to ``output`` to the corresponding commodities. +For example, the technology “t0” outputs to the commodity “output of t0”; the ``output`` values for this technology are **not** added/introduced by :func:`add`. + +.. _disutility-units: + +(Dis)utility is generally dimensionless. +In :mod:`pint` and thus also :mod:`message_ix_models`, this should be represented by ``""``. +However, to work around `iiasa/ixmp#425 `__, :func:`data_conversion` and :func:`data_source` return data with ``"-"`` as units. +See :issue:`45` for more information. + +Code reference +============== + +See also :mod:`message_ix_models.tests.model.test_disutility`. + +.. automodule:: message_ix_models.model.disutility + :members: diff --git a/nest/doc/api/model-bare.rst b/nest/doc/api/model-bare.rst new file mode 100644 index 0000000..5ba5903 --- /dev/null +++ b/nest/doc/api/model-bare.rst @@ -0,0 +1,50 @@ +Reproduce the RES (:mod:`.model.bare`) +************************************** + +In contrast to :mod:`.model.create`, this module creates the RES 'from scratch'. +:func:`.create_res` begins by creating a new, totally empty :class:`.Scenario` and adding data to it (instead of cloning and modifying an existing scenario). + +.. note:: Currently, the Scenario returned by :func:`.create_res`… + + - is not complete, nor the official/preferred version of MESSAGEix-GLOBIOM, and as such **must not** be used for actual research, + - however, it **should** be used for creating unit tests of other code that is designed to operate on MESSAGEix-GLOBIOM scenarios; code that works against the bare RES should also work against MESSAGEix-GLOBIOM scenarios. + +:func:`.bare.get_spec` can also be used directly, to get a *description* of the RES based on certain settings/options, but without any need to connect to a database, load an existing Scenario, or call :func:`.bare.create_res`. +This can be useful in code that processes data into a form compatible with MESSAGEix-GLOBIOM. + +Configuration +============= + +The code obeys the settings on the :class:`.model.Config` instance stored at ``context.model``. + + +Code reference +============== + +.. currentmodule:: message_ix_models.model.bare + +.. automodule:: message_ix_models.model.bare + :members: + :exclude-members: get_spec + +.. automethod:: message_ix_models.model.bare.get_spec + + Since the RES is the base for all variants of MESSAGEix-GLOBIOM, the 'require' and 'remove' portions of the spec are empty. + + For the 'add' section, :func:`message_ix_models.model.structure.get_codes` is used to retrieve data from the YAML files in :mod:`message_ix_models`. + + Settings are retrieved from `context`, as above. + + +.. currentmodule:: message_ix_models.model.data + +.. automodule:: message_ix_models.model.data + :members: + + +.. Roadmap +.. ======= + +.. todo:: With `ixmp#212 `_ merged, + some :mod:`.model.bare` code could be moved to a new class and method like + :meth:`.MESSAGE_GLOBIOM.initialize`. diff --git a/nest/doc/api/model-build.rst b/nest/doc/api/model-build.rst new file mode 100644 index 0000000..378465c --- /dev/null +++ b/nest/doc/api/model-build.rst @@ -0,0 +1,46 @@ +Building models (:mod:`.model.build`) +************************************* + +:func:`.apply_spec` can be used to be build (compose, assemble, construct, …) models given three pieces of information: + +- A :class:`.message_ix.Scenario` to be used as a base. + This scenario may be empty. +- A specification, or :class:`.Spec`, which is trio of :class:`.ScenarioInfo` objects; see below. +- An optional function that adds or produces `data` to add to the `scenario`. + +The spec is applied as follows: + +1. For each :mod:`ixmp` set that exists in `scenario`: + + a. **Required** elements from :attr:`.Spec.require`, if any, are checked. + + If they are missing, :func:`apply_spec` raises :class:`ValueError`. + This indicates that `spec` is not compatible with the given `scenario`. + + b. Elements from :attr:`.Spec.remove`, if any, are **removed**. + + Any parameter values which reference these set elements are also removed, using :func:`.strip_par_data`. + + c. New set elements from :attr:`.Spec.add`, if any, are **added**. + +2. Elements in ``spec.add.set["unit"]`` are added to the Platform on which + `scenario` is stored. + +3. The `data` argument, a function, is called with `scenario` as the first argument, and a keyword argument `dry_run` from :func:`.apply_spec`. + `data` may either add to `scenario` directly (by calling :meth:`.Scenario.add_par` and similar methods); or it can return a :class:`dict` that can be passed to :func:`.add_par_data`. + + +The following modules use this workflow and can be examples for developing similar code: + +- :mod:`.model.bare` +- :mod:`.model.disutility` +- :mod:`message_data.model.transport` + + +Code reference +============== + +.. currentmodule:: message_ix_models.model.build + +.. automodule:: message_ix_models.model.build + :members: diff --git a/nest/doc/api/model-emissions.rst b/nest/doc/api/model-emissions.rst new file mode 100644 index 0000000..8e2e81d --- /dev/null +++ b/nest/doc/api/model-emissions.rst @@ -0,0 +1,15 @@ +Emissions data (:mod:`.model.emissions`) +======================================== + +.. currentmodule:: message_ix_models.model.emissions + +:mod:`.model.emissions` contains codes for working with emissions data, including policies on emissions. + +In general, models created with :mod:`message_ix_models`: + +- Use tonnes of carbon equivalent ("t C") as units for mass of emissions. +- Use "USD / t C" as units for price of emissions. + Because (as of 2022-07-20) :mod:`iam_units` treats "USD" as an alias for "USD_2005", this is implicitly USD_2005 / t C. + +.. automodule:: message_ix_models.model.emissions + :members: diff --git a/nest/doc/api/model.rst b/nest/doc/api/model.rst new file mode 100644 index 0000000..28f6465 --- /dev/null +++ b/nest/doc/api/model.rst @@ -0,0 +1,83 @@ +Models and variants (:mod:`~message_ix_models.model`) +***************************************************** + +.. currentmodule:: message_ix_models.model + +.. automodule:: message_ix_models.model + :members: + +:mod:`.model.structure`: Model structure information +==================================================== + +.. currentmodule:: message_ix_models.model.structure + +.. automodule:: message_ix_models.model.structure + :members: + :exclude-members: get_codes + + .. autosummary:: + + codelists + generate_product + generate_set_elements + get_codes + get_region_codes + process_units_anno + process_commodity_codes + process_technology_codes + +.. autofunction:: get_codes + + The available code lists are reproduced as part of this documentation. + The returned code objects have annotations that vary by set. + See: + + - :doc:`/pkg-data/codelists` + - :doc:`/pkg-data/node` + + Also available is :file:`cd_links/unit.yaml`. + This is a project-specific list of units appearing in CD-LINKS scenarios. + + **Example:** + + .. code-block:: python + + >>> from message_ix_models.model.structure import get_codes + >>> codes = get_codes("node/R14") + + # Show the codes + >>> codes + [, + , + , + ... + , + , + ... + , + , + ] + + # Retrieve one code matching a certain ID + >>> world = codes[codes.index("World")] + + # Get its children's IDs strings, e.g. for a "node" dimension + >>> [str(c) for c in world.child] + ['R11_AFR', + 'R11_CPA', + 'R11_EEU', + 'R11_FSU', + 'R11_LAM', + 'R11_MEA', + 'R11_NAM', + 'R11_PAO', + 'R11_PAS', + 'R11_SAS', + 'R11_WEU'] + + # Navigate from one ISO 3166-3 country code to its parent + >>> AUT = codes[codes.index("AUT")] + >>> AUT.parent + + + .. seealso:: :func:`.adapt_R11_R14` diff --git a/nest/doc/api/project.rst b/nest/doc/api/project.rst new file mode 100644 index 0000000..71ce7d4 --- /dev/null +++ b/nest/doc/api/project.rst @@ -0,0 +1,7 @@ +Specific research projects (:mod:`.project`) +******************************************** + +.. currentmodule:: message_ix_models.project + +.. automodule:: message_ix_models.project + :members: diff --git a/nest/doc/api/testing.rst b/nest/doc/api/testing.rst new file mode 100644 index 0000000..7d55232 --- /dev/null +++ b/nest/doc/api/testing.rst @@ -0,0 +1,33 @@ +Test utilities and fixtures (:mod:`.testing`) +********************************************* + +.. currentmodule:: message_ix_models.testing + +:doc:`Fixtures `: + +.. autosummary:: + + mix_models_cli + session_context + test_context + user_context + +:doc:`Marks `: + +.. autosummary:: + + NIE + not_ci + +Others: + +.. autosummary:: + + EXPORT_OMIT + CliRunner + bare_res + export_test_data + pytest_addoption + +.. automodule:: message_ix_models.testing + :members: diff --git a/nest/doc/api/tools.rst b/nest/doc/api/tools.rst new file mode 100644 index 0000000..2057c07 --- /dev/null +++ b/nest/doc/api/tools.rst @@ -0,0 +1,50 @@ +General purpose modeling tools +****************************** + +“Tools” can include, *inter alia*: + +- Codes for retrieving data from specific data sources and adapting it for use with :mod:`message_ix_models`. +- Codes for modifying scenarios; although tools for building models should go in :mod:`message_ix_models.model`. + +On this page: + +.. contents:: + :local: + :backlinks: none + +.. currentmodule:: message_ix_models.tools + +.. automodule:: message_ix_models.tools + :members: + + +ADVANCE data +============ + +.. currentmodule:: message_ix_models.tools.advance + +.. autosummary:: + get_advance_data + advance_data + +.. autodata:: LOCATION + +This is a location relative to a parent directory. +The specific parent directory depends on whether :mod:`message_data` is available: + +Without :mod:`message_data`: + The code finds the data within :ref:`local-data` (see discussion there for how to configure this location). + Users should: + + 1. Visit https://tntcat.iiasa.ac.at/ADVANCEWP2DB/dsd?Action=htmlpage&page=about and register for access to the data. + 2. Log in. + 3. Download the snapshot with the file name given in :data:`LOCATION` to a subdirectory :file:`advance/` within their local data directory. + +With :mod:`message_data`: + The code finds the data within :ref:`private-data`. + The snapshot is stored directly in the repository using Git LFS. + +.. automodule:: message_ix_models.tools.advance + :members: + :exclude-members: LOCATION + :private-members: diff --git a/nest/doc/api/util.rst b/nest/doc/api/util.rst new file mode 100644 index 0000000..bfab7c2 --- /dev/null +++ b/nest/doc/api/util.rst @@ -0,0 +1,178 @@ +Low-level utilities (:mod:`~message_ix_models.util`) +**************************************************** + + +.. currentmodule:: message_ix_models.util + +Submodules: + +.. autosummary:: + + click + context + importlib + _logging + scenarioinfo + +Commonly used: + +.. autosummary:: + + ~config.Config + ~config.ConfigHelper + ~context.Context + ~scenarioinfo.ScenarioInfo + ~scenarioinfo.Spec + adapt_R11_R12 + adapt_R11_R14 + as_codes + broadcast + cached + check_support + convert_units + copy_column + ffill + identify_nodes + load_package_data + load_private_data + local_data_path + make_io + make_matched_dfs + make_source_tech + maybe_query + merge_data + ~node.nodes_ex_world + package_data_path + private_data_path + same_node + same_time + series_of_pint_quantity + +.. automodule:: message_ix_models.util + :members: + +.. autodata:: message_ix_models.util.cache.SKIP_CACHE + + +:mod:`.util.click` +================== + +.. currentmodule:: message_ix_models.util.click + +.. automodule:: message_ix_models.util.click + :members: + +:mod:`.util.config` +=================== + +.. currentmodule:: message_ix_models.util.config + +.. automodule:: message_ix_models.util.config + :members: + :exclude-members: Config + +:mod:`.util.context` +==================== + +.. currentmodule:: message_ix_models.util.context + +.. automodule:: message_ix_models.util.context + :members: + :exclude-members: Context + +.. autoclass:: Context + :members: + :exclude-members: clone_to_dest + + Context is a subclass of :class:`dict`, so common methods like :meth:`~dict.copy` and :meth:`~dict.setdefault` may be used to handle settings. + To be forgiving, it also provides attribute access; ``context.foo`` is equivalent to ``context["foo"]``. + + A Context instance always has the following members: + + - ``core``: an instance of :class:`message_ix_models.Config`. + - ``model``: an instance of :class:`message_ix_models.model.Config`. + + Attributes of these classes may be accessed by shorthand, e.g. ``context.regions`` is shorthand for ``context.model.regions``. + + Context provides additional methods to do common tasks that depend on configurable settings: + + .. autosummary:: + clone_to_dest + close_db + delete + get_cache_path + get_local_path + get_platform + get_scenario + handle_cli_args + only + use_defaults + + .. The following Context methods and attribute are **deprecated**: + + .. autosummary:: + (currently none) + + .. automethod:: clone_to_dest + + To use this method, either decorate a command with :func:`common_params`: + + .. code-block:: python + + from message_data.tools.cli import common_params + + @click.command() + @common_params("dest") + @click.pass_obj + def foo(context, dest): + scenario, mp = context.clone_to_dest() + + or, store the settings :attr:`.Config.dest_scenario` and optionally :attr:`.Config.dest_platform` on `context`: + + .. code-block:: python + + c = Context.get_instance() + + c.dest_scenario = dict(model="foo model", scenario="foo scenario") + scenario_mp = context.clone_to_dest() + + The resulting scenario has the indicated model- and scenario names. + + If ``--url`` (or ``--platform``, ``--model``, ``--scenario``, and optionally ``--version``) are given, the identified scenario is used as a 'base' scenario, and is cloned. + If ``--url``/``--platform`` and ``--dest`` refer to different Platform instances, then this is a two-platform clone. + + If no base scenario can be loaded, :func:`.bare.create_res` is called to generate a base scenario. + + +:mod:`.util.importlib` +====================== + +.. currentmodule:: message_ix_models.util.importlib + +.. automodule:: message_ix_models.util.importlib + :members: + +:mod:`.util._logging` +===================== + +.. currentmodule:: message_ix_models.util._logging + +.. automodule:: message_ix_models.util._logging + :members: + +:mod:`.util.node` +================== + +.. currentmodule:: message_ix_models.util.node + +.. automodule:: message_ix_models.util.node + :members: + :exclude-members: identify_nodes + +:mod:`.util.scenarioinfo` +========================= + +.. currentmodule:: message_ix_models.util.scenarioinfo + +.. automodule:: message_ix_models.util.scenarioinfo + :members: diff --git a/nest/doc/api/workflow.rst b/nest/doc/api/workflow.rst new file mode 100644 index 0000000..2e2ee18 --- /dev/null +++ b/nest/doc/api/workflow.rst @@ -0,0 +1,165 @@ +Multi-scenario workflows (:mod:`.workflow`) +******************************************* + +.. contents:: + :local: + :backlinks: none + +Concept & design +================ + +Research with MESSAGEix models often involves multiple scenarios that are related to one another or derived from one another by certain modifications. +Together, the solutions/reported information from these scenarios provide the output data used in research products, e.g. a plot comparing total emissions in a policy scenario to a reference scenario. + +:mod:`.model.build` provides tools to build models or scenarios based on (possibly empty) base scenarios; and :mod:`~message_ix_models.tools` provides tools for manipulating scenarios or model input data (parameters). +The :class:`.Workflow` API provided in this module allows researchers to use these pieces and atomic, reusable functions to define arbitrarily complex workflows involving many, related scenarios; and then to solve, report, or otherwise operate on those scenarios. + +The generic pattern for workflows is: + +- Each scenario has zero or 1 (or more?) base/precursor/antecedent scenarios. + These must exist before the target scenario can be created. +- A workflow ‘step’ includes: + + 1. A precursor scenario is obtained. + + It may be returned by a prior workflow step, or loaded from a :class:`Platform`. + 2. (Optional) The precursor scenario is cloned to a target model name and scenario name. + 3. A function is called to operate on the scenario. + This function may do zero or more of: + + - Apply structure or data modifications, for example: + + - Set up a model variant, e.g. adding the MESSAGEix-Materials structure to a base MESSAGEix-GLOBIOM model. + - Change policy variables via constraint parameters. + - Any other possible modification. + + - Solve the target scenario. + - Invoke reporting. + 4. The resulting function is passed to the next workflow step. + +- A workflow can consist of any number of scenarios and steps. +- The same precursor scenario can be used as the basis for multiple target scenarios. +- A workflow is :meth:`.Workflow.run` starting with the earliest precursor scenario, ending with 1 or many target scenarios. + +The implementation is based on the observation that these form a graph (specifically, a directed, acyclic graph, or DAG) of nodes (= scenarios) and edges (= steps), in the same way that :mod:`message_ix.reporting` calculations do; and so the :mod:`dask` DAG features (via :mod:`genno`) can be used to organize the workflow. + +Usage +===== + +General +------- + +Define a workflow using ordinary Python functions, each handling the modifications/manipulations in an atomic workflow step. +These functions **must**: + +- Accept at least 2 arguments: + + 1. A :class:`Context` instance. + 2. The precursor scenario. + 3. Optionally additional, keyword-only arguments. + +- Return either: + + - a :class:`.Scenario` object, that can be the same object provided as an argument, or a different scenario, e.g. a clone or a different scenario, even from a different platform. + - :class:`None`. + In this case, any modifications implemented by the step should be reflected in the :class:`.Scenario` given as an argument. + +The functions **may**: + +- call any other code, and +- be as short (one line) or long (many lines) as desired; + +and they **should**: + +- respond in documented, simple ways to settings on the Context argument and/or their keyword argument(s), if any. + +.. code-block:: python + + def changes_a(s: Scenario) -> None: + """Change a scenario by modifying structure data, but not data.""" + with s.transact(): + s.add_set("technology", "test_tech") + + # Here, invoke other code to further modify `s` + + def changes_b(s: Scenario, value=100.0) -> None: + """Change a scenario by modifying parameter data, but not structure. + + This function takes an extra argument, `values`, so functools.partial() + can be used to supply different values when it is used in different + workflow steps. See below. + """ + with s.transact(): + s.add_par( + "technical_lifetime", + make_df( + "technical_lifetime", + node_loc=s.set("node")[0], + year_vtg=s.set("year")[0], + technology="test_tech", + value=100.0, + unit="y", + ), + ) + + # Here, invoke other code to further modify `s` + +With the steps defined, the workflow is composed using a :class:`.Workflow` instance. +Call :meth:`.Workflow.add_step` to define each target model with its precursor and the function that will create the former from the latter: + +.. code-block:: python + + from message_ix_models import Context, Workflow + + # Create the workflow + ctx = Context.get_instance() + wf = Workflow(ctx) + + # "Model name/base" is loaded from an existing platform + wf.add_step( + "base", + None, + target="ixmp://example-platform/Model name/base#123", + ) + + # "Model/A" is created from "Model/base" by calling changes_a() + wf.add_step("A", "base", changes_a, target="Model/A") + + # "Model/B1" is created from "Model/A" by calling changes_b() with the + # default value + wf.add_step("B1", "A", changes_b, target="Model/B1") + + # "Model/B2" is similar, but uses a different value + wf.add_step("B2", "A", partial(changes_b, value=200.0), target="model/B2") + +Finally, the workflow is triggered using :meth:`.Workflow.run`, giving either one step name or a list of names. +The indicated scenarios are created (and solved, if the workflow steps involve solving); if this requires any precursor scenarios, those are first created and solved, etc. as required. +Other, unrelated scenarios/steps are not created. + +.. code-block:: python + + s1, s2 = wf.run(["B1", "B2"]) + +Usage examples +-------------- + +- :mod:`message_data.projects.navigate.workflow` + +.. todo:: + + Expand with discussion of workflow patterns common in research projects using MESSAGEix, e.g.: + + - Run the same scenario with multiple emissions budgets. + +API reference +============= + +.. currentmodule:: message_ix_models.workflow + +.. automodule:: message_ix_models.workflow + :members: + :exclude-members: WorkflowStep + +.. autoclass:: WorkflowStep + :members: + :special-members: __call__ diff --git a/nest/doc/cli.rst b/nest/doc/cli.rst new file mode 100644 index 0000000..ed7a2ff --- /dev/null +++ b/nest/doc/cli.rst @@ -0,0 +1,177 @@ +Command-line interface +********************** + +This page describes how to use the :program:`mix-models` command-line interface (CLI) to perform common tasks. +:program:`mix-models` is organized into **commands** and **subcommands**, sometimes in multiple levels. +Our goal is that the *semantics* of all commands are similar, so that interacting with each command feels similar. + +.. contents:: + :local: + + +Controlling CLI behaviour +========================= + +To support a variety of complex use-cases, the MESSAGEix stack takes configuration and inputs from several places: + +:mod:`ixmp` configuration file: :file:`config.json` +--------------------------------------------------- +:mod:`ixmp` keeps track of named Platforms and their associated databases, and stores information in its :file:`config.json` file. +See :mod:`ixmp.config`. +List existing platforms:: + + $ ixmp platform list + +To add a specific database, you can use the ixmp CLI [1]_:: + + $ ixmp platform add [PLATFORMNAME] jdbc oracle [COMPUTER]:[PORT]/[SERVICENAME] [USERNAME] [PASSWORD] + +You may also want to make this the *default* platform. +Unless told otherwise, :mod:`message_ix_models` creates :class:`~.Platform` objects without any arguments (``mp = ixmp.Platform()``); this loads the default platform. +Set the default:: + + $ ixmp platform add default [PLATFORMNAME] + +:mod:`message_ix` stores only one configuration value in :file:`config.json`: ``'message model dir'``, the path to the GAMS model files. +MESSAGEix-GLOBIOM uses the GAMS model files from the current :mod:`message_ix` ``master`` branch, so you should not set this, or unset it when using :mod:`message_ix_models`. + +:mod:`message_ix_models` will use the :file:`config.json` value ``"message_local_data"`` for local data, if it is set and not overridden. + +.. [1] ``[COMPUTER]`` is in this case either the hostname or the IP address. + +Environment variables +--------------------- +Some code responds to environment variables. +For example, ixmp responds to ``IXMP_DATA``, which tells it where to find the file :file:`config.json`. + +:mod:`message_ix_models` responds to ``MESSAGE_LOCAL_DATA``; see :ref:`the discussion of local data `. + + +CLI parameters (arguments and options) +-------------------------------------- + +Each command has zero or more arguments and options. +**Arguments** are mandatory and follow the command name in a certain order. +**Options**, as the name implies, are not required. +If an option is omitted, a default value is used; the code and ``--help`` text make clear what the default behaviour is. + +Arguments and options are **hierarchical**. +Consider the following examples:: + + $ mix-data --opt0=foo cmd1 --opt1=bar arg1 cmd2 --opt2=baz arg2 + $ mix-data --opt0=foo cmd1 arg1 cmd3 --opt3=baz arg3a arg3b + +In these examples: + +- ``--opt0`` is an option that (potentially) affects **any** command, including the subcommands ``cmd2`` or ``cmd3``. +- ``--opt1`` and ``arg1`` are an option and mandatory argument to the command ``cmd1``. + They might not have any relevance to other ``mix-data`` commands. +- ``cmd2`` and ``cmd3`` are distinct subcommands of ``cmd1``. + + - They *may* respond to ``--opt1`` and ``arg1``, and to ``--opt0``; at least, they *must* not contradict them. + - They each may have their own options and arguments, which can be distinct. + +.. tip:: Use ``--help`` for any (sub)command to read about its behaviour. + If the help text does not make the behaviour clear, `file an issue `_. + +Configuration files and metadata +-------------------------------- +For some features of the code, the default behaviour is very elaborate and serves for most uses; but we also provide the option to override it. +This default behaviour or optional behaviour is defined by reading an input file. +These are stored in the :ref:`package data ` directory. + +For example, ``mix-models report`` loads reporting configuration from :file:`message_ix_models/data/report/global.yaml`, a YAML file with hundreds of lines. +Optionally, a different file can be used:: + + $ mix-models report --config other + +…looks for a file :file:`other.yaml` in the :ref:`local data ` directory or current working directory. Or:: + + $ mix-models report --config /path/to/another/file.yaml + +…can be used to point to a file in a different directory. + + +Important CLI options and commands +================================== + +.. _cli-help: + +Top-level options and commands +------------------------------ +``mix-models --help`` describes these:: + + $ mix-models --help + Usage: mix-models [OPTIONS] COMMAND [ARGS]... + + Command-line interface for MESSAGEix-GLOBIOM model tools. + + Every tool and script in this repository is accessible through this CLI. + Scripts are grouped into commands and sub-commands. For help on specific + (sub)commands, use --help, e.g.: + + mix-models cd-links --help + mix-models cd-links run --help + + The top-level options --platform, --model, and --scenario are used by + commands that access specific message_ix scenarios; these can also be + specified with --url. + + For more information, see + https://docs.messageix.org/projects/models2/en/latest/cli.html + + Options: + --url ixmp://PLATFORM/MODEL/SCENARIO[#VERSION] + Scenario URL. + --platform PLATFORM Configured platform name. + --model MODEL Model name for some commands. + --scenario SCENARIO Scenario name for some commands. + --version INTEGER Scenario version. + --local-data PATH Base path for local data. + -v, --verbose Print DEBUG-level log messages. + --help Show this message and exit. + + Commands: + cd-links CD-LINKS project. + dl Retrieve data from primary sources. + engage ENGAGE project. + iiasapp Import power plant capacity. + material Model with materials accounting. + prep-submission Prepare scenarios for submission to database. + report Postprocess results. + res MESSAGE-GLOBIOM reference energy system (RES). + techs Export data from data/technology.yaml to CSV. + transport MESSAGEix-Transport variant. + +To explain further: + +``--platform PLATFORM`` or ``--url`` + By default, message_data connects to the default ixmp Platform. + These options direct it to work with a different Platform. + +``--model MODEL --scenario SCENARIO`` or ``--url`` + Many commands use an *existing* :class:`~.Scenario` as a starting point, and begin by cloning that Scenario to a new (model name, scenario name). + For any such command, these top-level options define the starting point/initial Scenario to clone/‘baseline’. + + In contrast, see ``--output-model``, below. + + +Common options +-------------- +Since :mod:`message_ix_models.model` and :mod:`message_ix_models.project` codes often perform similar tasks, their CLI options and arguments are provided in :mod:`.util.click` for easy re-use. +These include: + +``ssp`` argument + This takes one of the values 'SSP1', 'SSP2', or 'SSP3'. + + Commands that will not work for one or more of the SSPs should check the argument value given by the user and raise :class:`NotImplementedError`. + +``--output-model NAME`` option + This option is a counterpart to the top-level ``--url/--model/--scenario`` options. + A command that starts from one Scenario, and builds one or more Scenarios from it will clone *to* a new (model name, scenario name); + ``--output-model`` gives the model name. + + Current code generates a variety of fixed (non-configurable) scenario names; use ``--help`` for each command to see which. + + +To employ these in new code, refer to the example of existing code. diff --git a/nest/doc/conf.py b/nest/doc/conf.py new file mode 100644 index 0000000..9dc3491 --- /dev/null +++ b/nest/doc/conf.py @@ -0,0 +1,107 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full list see +# the documentation: https://www.sphinx-doc.org/en/master/usage/configuration.html + +import os +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + import sphinx.application + +# -- Project information --------------------------------------------------------------- + +project = "message-ix-models" +copyright = "2020–2023, IIASA Energy, Climate, and Environment (ECE) Program" +author = "IIASA Energy, Climate, and Environment (ECE) Program" + + +# -- General configuration ------------------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions coming +# with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.extlinks", + "sphinx.ext.intersphinx", + "sphinx.ext.napoleon", + "sphinx.ext.todo", + "sphinx.ext.viewcode", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_template"] + +# List of patterns, relative to source directory, that match files and directories to +# ignore when looking for source files. This pattern also affects html_static_path and +# html_extra_path. +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + + +def setup(app: "sphinx.application.Sphinx") -> None: + """Copied from pytest's conf.py to enable intersphinx references to these.""" + app.add_crossref_type( + "fixture", + "fixture", + objname="built-in fixture", + indextemplate="pair: %s; fixture", + ) + + +# -- Options for HTML output ----------------------------------------------------------- + +# A list of CSS files. +html_css_files = ["custom.css"] + +html_favicon = "_static/favicon.svg" + +# The name of an image file (relative to this directory) to place at the top of the +# sidebar. +html_logo = "_static/combined-logo-white.png" + +# Add any paths that contain custom static files (such as style sheets) here, relative +# to this directory. They are copied after the builtin static files, so a file named +# "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +# The theme to use for HTML and HTML Help pages. See the documentation for a list of +# builtin themes. +html_theme = "sphinx_rtd_theme" + +# -- Options for sphinx.ext.autosummary ------------------------------------------------ + +autosummary_generate = True + + +# -- Options for sphinx.ext.extlinks --------------------------------------------------- + +extlinks = { + "issue": ("https://github.com/iiasa/message-ix-models/issue/%s", "GH #%s"), + "pull": ("https://github.com/iiasa/message-ix-models/pull/%s", "PR #%s"), +} + + +# -- Options for sphinx.ext.intersphinx ------------------------------------------------ + +# For message-data, see: https://docs.readthedocs.io/en/stable/guides +# /intersphinx.html#intersphinx-with-private-projects +_token = os.environ.get("RTD_TOKEN_MESSAGE_DATA", "") + +intersphinx_mapping = { + "genno": ("https://genno.readthedocs.io/en/stable", None), + "ixmp": ("https://docs.messageix.org/projects/ixmp/en/latest/", None), + "message-ix": ("https://docs.messageix.org/en/latest/", None), + "m-data": ( + f"https://{_token}:@docs.messageix.org/projects/models-internal/en/latest/", + None, + ), + "pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None), + "pytest": ("https://docs.pytest.org/en/stable/", None), + "python": ("https://docs.python.org/3/", None), + "sdmx": ("https://sdmx1.readthedocs.io/en/stable/", None), +} + +# -- Options for sphinx.ext.todo ------------------------------------------------------- + +todo_include_todos = True diff --git a/nest/doc/data.rst b/nest/doc/data.rst new file mode 100644 index 0000000..a2642a7 --- /dev/null +++ b/nest/doc/data.rst @@ -0,0 +1,262 @@ +Data, metadata, and configuration +********************************* + +Many, varied kinds of data are used to prepare and modify MESSAGEix-GLOBIOM scenarios. +Other data are produced by code as incidental or final output. +These can be categorized in several ways. +One is by the purpose they serve: + +- **data**—actual numerical values—used or produced by code, +- **metadata**, information describing where data is, how to manipulate it, how it is structured, etc.; +- **configuration** that otherwise affects how code works. + +Another is whether they are **input** or **output** data. + +This page describes how to store and handle such files in both :mod:`message_ix_models` and :mod:`message_data`. + +.. contents:: + :local: + + +.. _data-goes-where: + +Choose locations for data +========================= + +These are listed in order of preference. + +.. _package-data: + +(1) :file:`message_ix_models/data/` +----------------------------------- + +- Files in this directory are **public**, and are packaged, published, and installable from PyPI with :mod:`message_ix_models`; in standard Python terms, these are “package data”. +- This is the preferred location for: + + - General-purpose metadata. + - Basic configuration, e.g. for reporting, not specific to any model variant or project. + - Data for publicized model variants and completed/published projects. + +- Data here can be loaded with :func:`.load_package_data` or other, more specialized code. +- Documentation files like :file:`doc/pkg-data/*.rst` describe the contents of these files. + For example: :doc:`pkg-data/node`. + +.. _private-data: + +(2) :file:`data/` directory in the :mod:`message_data` repo +----------------------------------------------------------- + +- Files in this directory are **private** and not installable from PyPI (because :mod:`message_data` is not installable). +- This is the preferred location for: + + - Data for model variants and projects under current development. + - Specific data files that cannot be made public, e.g. due to licensing issues. + +- Data here can be loaded with :func:`.load_private_data` or other, more specialized code. + +.. _local-data: + +(3) Other, system-specific (“local”) directories +------------------------------------------------ + +- These are the preferred location for: + + 1. Caches i.e. temporary data files used to speed up other code. + 2. Output e.g. data or figure files generated by reporting. + 3. Data files not distributed with :mod:`message_ix_models`, e.g. those with access conditions (registration, payment, etc.). + +- These kinds of data **must not** be committed to :mod:`message_ix_models`. + Caches and output **should not** be committed to :mod:`message_data`. +- Each user **may** configure a location for these data, appropriate to their system. + + This setting can be made in multiple ways. + In order of ascending precedence: + + 1. The default location is the *current working directory*, i.e. whichever directory the :doc:`cli` is invoked in, or in which Python code is run that imports and uses :mod:`message_ix_models`. + 2. The :mod:`ixmp` configuration file setting ``message local data``. + 3. The ``MESSAGE_LOCAL_DATA`` environment variable. + 4. The ``--local-data`` CLI option and related options such as ``--cache-path`` or the ``--output`` option to the ``report`` command. + 5. Code that directly modifies the ``local_data`` setting on :class:`.Context`. + + - This location **should** be outside the Git-controlled directories for :mod:`message_ix_models` or :mod:`message_data`. + If not, use :file:`.gitignore` files to hide these from Git. + +- Use :meth:`.Context.get_local_path` and :func:`.local_data_path` to construct paths under this directory. + + +General guidelines +================== + +Always consider: “Will this code work on another researcher's computer?” + +Prefer text formats + …such as e.g. CSV and YAML. + CSV files up to several thousand lines are compressed by Git automatically, and Git can handle diffs to these files easily. + +*Do not* hard-code paths + Data stored with (1) or (2) above can be retrieved with the utility funtions mentioned, instead of hard-coded paths. + + For system-specific paths (3) only, get a :obj:`.Context` object and use it to get an appropriate :class:`.Path` object pointing to a file + + .. code-block:: python + + # Store a base path + project_path = context.get_local_path("myproject", "output") + + # Use the Path object to generate a subpath + run_id = "foo" + output_file = project_path.joinpath("reporting", run_id, "all.xlsx") + +Keep input and output data separate + Where possible, use (1) or (2) above for the former, and (3) for the latter. + +Use a consistent scheme for data locations + For a submodule for a specific model variant or project named, e.g. ``message_ix_models.model.[name]`` or ``message_ix_models.project.[name]``, keep input data in a well-organized directory under: + + - :file:`[base]/[name]/` —preferred, flatter, + - :file:`[base]/model/[name]/`, + - :file:`[base]/project/[name]/`, + - or similar, + + where ``[base]`` is (1) or (2), above. + + Keep *project-specific configuration files* in the same locations, or (less preferable) alongside Python code files: + + .. code-block:: python + + # Located in `message_ix_models/data/`: + config = load_package_data("myproject", "config.yaml") + + # Located in `data/` in the message_data repo: + config = load_private_data("myproject", "config.yaml") + + # Located in the same directory as the code + config = yaml.safe_load(open(Path(__file__).with_name("config.yaml"))) + + Use a similar scheme for output data, except under (3). + +Re-use configuration + Configuration to run a set of scenarios or to prepare reported submissions **should** re-use or extend existing, general-purpose code. + Do not duplicate code or configuration. + Instead, adjust or selectively overwrite its behaviour via project-specific configuration read from a file. + + +.. _binary-input-data: + +Large/binary input data +======================= + +These data, such as Microsoft Excel spreadsheets, **must not** be committed as ordinary Git objects. +This is because the entire file is re-added to the Git history for even small modifications, making it very large (see `issue #37 `_). + +Instead, use one of the following patterns, in order of preference. +Whichever pattern is used, code for handling large input data must be in :mod:`message_ix_models`, even if the data itself is private, e.g. in :mod:`message_data` or another location. + +Fetch from a remote source +-------------------------- + +Use a configuration file in :mod:`message_ix_models` to store metadata, i.e. the Internet location and other information needed to retrieve the data. +Then, write code that retrieves the data and caches it locally: + +.. code-block:: python + + import requests + + # Load some configuration + config = yaml.safe_load(load_package_data("big-data-source", "config.yaml")) + + # Local paths for the cached raw files and extracted file(s) + cache_path = context.get_cache_path("big-data-source") + downloaded = cache_path / "downloaded_file.zip" + extracted = cache_path / "extracted_file.csv" + + with open(downloaded) as f: + remote_data = requests.get(config["url"]) + # Handle the data, writing to `f` + + # Extract the data from `downloaded` to `extracted` + +This pattern is preferred because it can be replicated by anyone, and the reference data is public. + +Use Git Large File Storage (LFS) +-------------------------------- + +`Git LFS `_ is a Git extension that allows for storing large, binary files without bloating the commit history. +Essentially, Git stores a one-line text file with a hash of the full file, and the full file is stored separately. +The IIASA GitHub account has up to 300 GB of space for LFS objects. + +To use this pattern, simply ``git add ...`` and ``git commit`` files in an appropriate location (above). +New or unusual binary file extensions may require a ``git lfs`` command or modification to :file:`.gitattributes` to ensure they are tracked by LFS and not by ordinary Git history. +See the Git LFS documentation at the link above for more detail. + + +Retrieve data from existing databases +------------------------------------- + +These include the same IIASA ENE ixmp databases that are used to store scenarios. +Documentation **must** be provided that ensures this data is reproducible, i.e. any original source and code to create the database used by :mod:`message_data`. + + +Other patterns +-------------- + +Some other patterns exist, but should not be repeated in new code, and should be migrated to one of the above patterns. + +- SQL queries against a Oracle/JDBC database. See :ref:`message_data:data-iea` (in :mod:`message_data`) and `issue #53 `_ for a description of how to replace/simplify this code. + + +Configuration +============= + +:class:`.Context` objects are used to carry configuration, environment information, and other data between parts of the code. +Scripts and user code can also store values in a Context object. + +.. code-block:: python + + # Get an existing instance of Context. There is always at + # least 1 instance available + c = Context.get_instance() + + # Store a value using attribute syntax + c.foo = 42 + + # Store a value with spaces in the name using item syntax + c["PROJECT data source"] = "Source A" + + # my_function() responds to 'foo' or 'PROJECT data source' + my_function(c) + + # Store a sub-dictionary of values + c["PROJECT2"] = {"setting A": 123, "setting B": 456} + + # Create a subcontext with all the settings of `c` + c2 = deepcopy(c) + + # Modify one setting + c2.foo = 43 + + # Run code with this alternate setting + my_function(c2) + + +For the CLI, every command decorated with ``@click.pass_obj`` gets a first positional argument ``context``, which is an instance of this class. +The settings are populated based on the command-line parameters given to ``mix-models`` or (sub)commands. + +.. _context: + +Top-level settings +------------------ + +These are defined by :class:`message_ix_models.Config`. + +Specific modules for model variants, projects, etc. **should**: + +- Define a single :mod:`dataclass ` to express the configuration options they understand. + See for example :class:`.model.Config` (for constructing new models), and :class:`message_data.model.buildings.Config` (for the MESSAGEix-Buildings model variant / linkage). +- Store this on the :class:`Context` at a simple key. + For example :class:`.model.Config` is stored at ``context.model`` or ``context["model"]``. +- Retrieve and respect configuration from existing objects, i.e. only duplicate settings with the same meaning when strictly necessary. +- Communicate to other modules by setting the appropriate configuration values. + +.. autoclass:: message_ix_models.Config + :members: diff --git a/nest/doc/develop.rst b/nest/doc/develop.rst new file mode 100644 index 0000000..99cabf1 --- /dev/null +++ b/nest/doc/develop.rst @@ -0,0 +1,47 @@ +Development practices +********************* + +This page describes development practices for :mod:`message_ix_models` and :mod:`message_data` intended to help reproducibility, interoperability, and reusability. + +In the following, the bold-face words **required**, **optional**, etc. have specific meanings as described in `IETF RFC 2119 `_. + +On other pages: + +- :doc:`message-ix:contributing` in the MESSAGEix docs. + *All* of these apply to contributions to :mod:`message_ix_models` and :mod:`message_data`, including the :ref:`message-ix:code-style`. +- :doc:`data`, for how to add and handle these. + +On this page: + +.. contents:: + :local: + :backlinks: none + +.. _check-support: + +Advertise and check compatibility +================================= + +There are multiple choices of the base structure for a model in the MESSAGEix-GLOBIOM family, e.g. different :doc:`pkg-data/node` and :doc:`pkg-data/year`. + +Code that will only work with certain structures… + +- **must** be documented, and include in its documentation any such limitation, e.g. “:func:`example_func` only produces data for R11 and year list B.” +- **should** use :func:`.check_support` in individual pieces of code to pre-emptively check and raise an exception. + This prevents inadvertent use of the code where its data will be invalid: + +.. code-block:: python + + def myfunc(context, *args): + """A function that only works on R11 and years ‘B’.""" + + check_support( + context, + dict(regions=["R11"], years=["B"]), + "Example data produced" + ) + + # … function code to execute if the check passes + +Code **may** also check a :class:`.Context` instance and automatically adapt data from certain structures to others, e.g. by interpolating data for certain periods or areas. +To help with validation, code that does this **should** log on the :data:`logging.INFO` level to advertise these steps. diff --git a/nest/doc/distrib.rst b/nest/doc/distrib.rst new file mode 100644 index 0000000..9dbae15 --- /dev/null +++ b/nest/doc/distrib.rst @@ -0,0 +1,41 @@ +Distributed computing +********************* + +This page introduces considerations, tools, and features for using **distributed** or **high-throughput computing** with MESSAGEix-GLOBIOM. + +.. contents:: + :local: + :backlinks: none + +Overview +======== + +Scenarios in the MESSAGEix-GLOBIOM global model family are characterized by: + +- ca. 100 MB of data, depending on storage format (e.g. in a :class:`.JDBCBackend` local, HyperSQL database, or :ref:`ixmp:excel-data-format` in Excel files). +- :meth:`.solve` times of between 10 and 60 minutes, depending on hardware and configuration, plus similar amounts of time to run the legacy reporting in :mod:`message_data`. +- Memory usage of ~10 GB or more using :class:`.JDBCBackend`, currently the only supported backend. + +These resource needs can be a bottleneck in applications, for example: + +- where many/related scenarios must be solved. +- when iteration (repeatedly solving 1 or more scenarios) is a key approach in developing code that sets up scenarios. + +To improve research productivity, researchers may choose to run scenarios or ‘workflows’ (a combination of solving scenarios and pre- and post-processing steps or codes) through **distributed computing**, i.e. not on their local machine. +Hardware and software environments for distributed computing can vary widely, and can be categorized in multiple ways, such as: + +1. More powerful single-CPU systems, accessed remotely. +2. Cloud services, e.g. Google Compute Engine; Amazon AWS; Github Actions; etc. providing access to one or more machines. +3. Dedicated cluster systems (sometimes labelled **high-throughput computing**, HTC, or **high-performance computing**, HPC, systems) for scientific computing, operated by a variety of parties. + +Tooling +======= + +- :mod:`message_ix_models` and related packages (:mod:`ixmp`, :mod:`message_ix`, :mod:`message_data`) aim to provide *simple, general-purpose features* that allow working with a variety of distributed systems. +- Specific configuration necessarily depends on the specific system(s) in use and the researcher's application. +- These features should not duplicate features of existing tools such as + `Slurm `_, + `HTCondor `_, etc., but rather allow :mod:`message_ix` & co. to be used with/through those. +- The individual features, tools, utilities, etc. should each be simple, i.e. `do one thing, and do it well `__. + +.. todo:: Extend. diff --git a/nest/doc/index.rst b/nest/doc/index.rst new file mode 100644 index 0000000..08a5e5f --- /dev/null +++ b/nest/doc/index.rst @@ -0,0 +1,65 @@ +Tools for MESSAGEix-GLOBIOM models +********************************** + +:mod:`message_ix_models` provides tools for research using the **MESSAGEix-GLOBIOM family of models** developed by the IIASA Energy, Climate, and Environment (ECE) Program and its collaborators. +This ‘family’ includes single-country and other models derived from the main, global model; all built in the `MESSAGEix framework `_ and on the `ix modeling platform (ixmp) `_. + +Among other tasks, the tools allow modelers to: + +- retrieve input data from various upstream sources, +- process/transform upstream data into model input parameters, +- create, populate, modify, and parametrize scenarios, +- conduct model runs, +- set up model *variants* with additional details or features, and +- report quantities computed from model outputs. + +.. toctree:: + :maxdepth: 1 + :caption: User guide + + install + data + cli + repro + distrib + +.. toctree:: + :maxdepth: 2 + :caption: API reference + + api/model + api/model-bare + api/model-build + api/model-emissions + api/disutility + api/project + api/tools + api/util + api/testing + api/workflow + +.. toctree:: + :maxdepth: 2 + :caption: Package data + + pkg-data/node + pkg-data/relation + pkg-data/year + pkg-data/codelists + pkg-data/iiasa-se + +.. toctree:: + :maxdepth: 2 + :caption: Development + + develop + whatsnew + migrate + releasing + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/nest/doc/install.rst b/nest/doc/install.rst new file mode 100644 index 0000000..9b57bd8 --- /dev/null +++ b/nest/doc/install.rst @@ -0,0 +1,20 @@ +Installation +************ + +From PyPI +========= + +1. Run:: + + $ pip install message-ix-models + + +From source +=========== + +1. Clone the code. +2. Run [1]_:: + + $ pip install --no-use-pep517 --editable . + +.. [1] See `pypa/pip#7953 `_. diff --git a/nest/doc/make.bat b/nest/doc/make.bat new file mode 100644 index 0000000..922152e --- /dev/null +++ b/nest/doc/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/nest/doc/migrate.rst b/nest/doc/migrate.rst new file mode 100644 index 0000000..11eb3a4 --- /dev/null +++ b/nest/doc/migrate.rst @@ -0,0 +1,48 @@ +Migrating from :mod:`message_data` +********************************** + +:mod:`message_ix_models` coexists with the private repository/package currently named :mod:`message_data`. +The latter is the location for code related to new research that has not yet been completed and published, data that must remain closed-source permanently, etc. + +Over time: + +- All other code will be migrated from :mod:`message_data` to :mod:`message_ix_models`. +- Code and data for individual projects will be moved from :mod:`message_data` to :mod:`message_ix_models` at a suitable point during the process of publication. + (This point may vary from project to project.) +- :mod:`message_data` may be renamed. + +This page gives some practices and tips for using the two packages together. + +Always import via :mod:`message_ix_models` + The package installs :class:`.MessageDataFinder` into Python's import system (`importlib `_), which changes its default behaviour as follows: if + + 1. A module :samp:`message_ix_models.model.{model_name}` or :samp:`message_ix_models.project.{project_name}` is imported, and + 2. This module does not actually exist in :mod:`message_ix_models`, + 3. Then the code will instead file the respective modules :samp:`message_data.model.{model_name}` or :samp:`message_data.project.{project_name}`. + + Even when using code that currently or temporarily lives in :mod:`message_data`, access it like this: + + .. code-block:: python + + # Code in message_data/model/mymodelvariant.py + from message_ix_models.model import mymodelvariant + + mymodelvariant.build(...) + + This code is *future-proof*: it will not need adjustment if/when “mymodelvariant” is eventually moved from :mod:`message_data` to :mod:`message_ix_models`. + +Use the :program:`mix-models` command-line interface (CLI) + All CLI commands and subcommands defined in :mod:`message_data` are also made available through the :mod:`message_ix_models` CLI, the executable :program:`mix-models`. + + Use this program in documentation examples and in scripts. + In a similar manner to the point above, these documents and scripts will remain correct if/when code is moved. + +Don't import from :mod:`message_data` in :mod:`message_ix_models` + The open-source code should not depend on any private code. + If this appears necessary, the code in :mod:`message_data` can probably be moved to :mod:`message_ix_models`. + +Use :mod:`message_ix_models.tools` and :mod:`~message_ix_models.util` in :mod:`message_data` + The former have stricter quality standards and are more transparent, which is better for reproducibility. + + At some points, similar code may appear in both packages as it is being migrated. + In such cases, always import and use the code in :mod:`message_ix_models`, making any adjustments that are necessary. diff --git a/nest/doc/pkg-data/codelists.rst b/nest/doc/pkg-data/codelists.rst new file mode 100644 index 0000000..29e5e6b --- /dev/null +++ b/nest/doc/pkg-data/codelists.rst @@ -0,0 +1,55 @@ +Other code lists +**************** + +.. contents:: + :local: + +.. _commodity-yaml: + +Commodities (``commodity.yaml``) +================================ + +Each of these codes has the following annotations: + +``level`` + Level where this commodity typically (not exclusively) occurs. +``unit`` + Units typically associated with this commodity. + +.. literalinclude:: ../../message_ix_models/data/commodity.yaml + :language: yaml + +.. _level-yaml: + +Levels (``level.yaml``) +======================= + +This code list has no annotations and no hierarchy. + +.. literalinclude:: ../../message_ix_models/data/level.yaml + :language: yaml + + +.. _technology-yaml: + +Technologies (``technology.yaml``) +================================== + +.. warning:: This list is *only for reference*; particular MESSAGE-GLOBIOM scenarios may not contain all these technologies, or may contain other technologies not listed. + +Each of these codes has the following annotations: + +``sector`` + A categorization of the technology. +``input`` + (``commodity``, ``level``) for input to the technology. +``output`` + (``commodity``, ``level``) for output from the technology. +``vintaged`` + :obj:`True` if the technology is subject to vintaging. +``type`` + Same as ``output[1]``. + + +.. literalinclude:: ../../message_ix_models/data/technology.yaml + :language: yaml diff --git a/nest/doc/pkg-data/iiasa-se.rst b/nest/doc/pkg-data/iiasa-se.rst new file mode 100644 index 0000000..3c95b51 --- /dev/null +++ b/nest/doc/pkg-data/iiasa-se.rst @@ -0,0 +1,33 @@ +IIASA Scenario Explorer metadata +******************************** + +Each instance of the IIASA Scenario Explorer (e.g. https://data.ene.iiasa.ac.at/ar6/) requires a distinct collection of information about the structure of model output data to be accepted. +The process of providing this structure information is termed **“model registration,”** and is partly documented at https://nomenclature-iamc.readthedocs.io, including the expected `directory and file layout `_. +The process must be repeated for additional Scenario Explorer instances. + +:mod:`message_ix_models` includes, in :file:`data/iiasa-se/`, files that can be used for such registration. +As of 2022-08-15, these are exactly the files use in the NAVIGATE project instance of the Scenario Explorer. +These files **should**: + +- …match the actual structure and metadata of models/scenarios generated by :mod:`message_ix_models`, +- …be used as the basis for, and/or be updated to match, files used for registration in other Scenario Explorer instances. + +.. contents:: + :local: + :backlinks: none + +:file:`mappings-R12.yaml` +========================= + +This file would be placed at e.g. :file:`mappings/MESSAGEix-GLOBIOM_1.1-R12.yaml` in a registration repository. + +.. literalinclude:: ../../message_ix_models/data/iiasa-se/mappings-R12.yaml + :language: yaml + +:file:`def-regions.yaml` +======================== + +This file would be placed at e.g. :file:`definitions/region/MESSAGEix-GLOBIOM_1.1-R12.yaml` in a registration repository. + +.. literalinclude:: ../../message_ix_models/data/iiasa-se/def-regions.yaml + :language: yaml diff --git a/nest/doc/pkg-data/node.rst b/nest/doc/pkg-data/node.rst new file mode 100644 index 0000000..bdf3c4a --- /dev/null +++ b/nest/doc/pkg-data/node.rst @@ -0,0 +1,87 @@ +.. _node-yaml: + +Node code lists +*************** + +The codes in these lists denote **regions** and **countries**. + +When loaded using :func:`.get_codes`, the :attr:`.Code.child` attribute is a list of child codes. +See the function documentation for how to retrieve these. + +.. seealso:: :func:`.adapt_R11_R12`, :func:`.adapt_R11_R14`, :func:`.identify_nodes`. + +.. contents:: + :local: + +Models with global scope +======================== + +.. _R32: + +32-region aggregation (``R32``) +------------------------------- + +.. literalinclude:: ../../message_ix_models/data/node/R32.yaml + :language: yaml + +.. _R14: + +14-region aggregation (``R14``) +------------------------------- + +.. literalinclude:: ../../message_ix_models/data/node/R14.yaml + :language: yaml + +.. _R11: + +11-region aggregation (``R11``) +------------------------------- + +.. literalinclude:: ../../message_ix_models/data/node/R11.yaml + :language: yaml + +.. _R12: + +12-region aggregation (``R12``) +------------------------------- + +.. literalinclude:: ../../message_ix_models/data/node/R12.yaml + :language: yaml + +.. _RCP: + +5-region aggregation (``RCP``) +------------------------------- + +.. literalinclude:: ../../message_ix_models/data/node/RCP.yaml + :language: yaml + + +Others +====== + +These include models scoped to a single country or region, or a subset of all countries or regions, as well as code lists used in specific data sets from which :mod:`message_ix_models` handles data. + +.. _ADVANCE-nodes: + +ADVANCE project (``ADVANCE``) +----------------------------- + +.. literalinclude:: ../../message_ix_models/data/node/ADVANCE.yaml + :language: yaml + +.. _ISR: + +Israel (``ISR``) +---------------- + +.. literalinclude:: ../../message_ix_models/data/node/ISR.yaml + :language: yaml + +.. _ZMB: + +Zambia (``ZMB``) +---------------- + +.. literalinclude:: ../../message_ix_models/data/node/ZMB.yaml + :language: yaml \ No newline at end of file diff --git a/nest/doc/pkg-data/relation.rst b/nest/doc/pkg-data/relation.rst new file mode 100644 index 0000000..bcd3db2 --- /dev/null +++ b/nest/doc/pkg-data/relation.rst @@ -0,0 +1,43 @@ +.. _relation-yaml: + +Relations (:file:`relation/*.yaml`) +*********************************** + +These lists provide codes (ID, optional name and description) for the ``relation`` :ref:`MESSAGEix set `. +See the :doc:`MESSAGEix documentation ` sections on: + +- :ref:`message-ix:section_of_generic_relations`. +- :ref:`message-ix:section_parameter_generic_relations`. + +The codes in these lists have the following annotations: + +``group`` + 1 or more strings identifying (a) group(s) to which the relations belong(s). + +``parameters`` + 1 or more strings indicating relation parameters for which there should be entries corresponding to this relation ID. + For example, "activity, lower" indicates there should be ``relation_activity`` and ``relation_lower`` values for this relation ID. + +``technology-entry`` + .. todo:: Describe the meaning of this annotation. + +.. contents:: + :local: + +List ``A`` +---------- + +.. literalinclude:: ../../message_ix_models/data/relation/A.yaml + :language: yaml + +List ``B`` +---------- + +.. literalinclude:: ../../message_ix_models/data/relation/B.yaml + :language: yaml + +List ``CD-LINKS`` +----------------- + +.. literalinclude:: ../../message_ix_models/data/relation/CD-LINKS.yaml + :language: yaml diff --git a/nest/doc/pkg-data/year.rst b/nest/doc/pkg-data/year.rst new file mode 100644 index 0000000..ba35810 --- /dev/null +++ b/nest/doc/pkg-data/year.rst @@ -0,0 +1,36 @@ +.. _year-yaml: + +Years or time periods (:file:`year/*.yaml`) +******************************************* + +- See also: + + - The discussion of :doc:`message-ix:time` in the :mod:`message_ix` documentation, which explains the standard sense of time periods used across the MESSAGEix framework and specific models based on it. + - :meth:`.ScenarioInfo.year_from_codes` + +- These are not the only possible meanings of these codes; others may be used in data from other sources. + + For instance, the ID ``2020`` could be used to represent the period from 2017-07-01 to 2022-06-30. + These lists alone cannot resolve these differences; they exist only to provide clarity about the sense used in :mod:`message_ix_models`. + +- When working with data from other sources, :mod:`message_ix_models` code **must**: + + - Explicitly note (e.g. in comments or docstrings) any differing time discretization used in the other data. + - Perform appropriate conversion *or* record a decision to use the data directly, without conversion. + +- It is **optional** for code to fill Scenario parameters for the full set of historical years. + + For instance, when working with list ``B``, code for a model variant or project could only populate parameter values for the historical periods ``2010`` and ``2015``, but not ``2005`` and earlier. + This **should** be described and documented on at the scope (function or module) where such subsets are selected from the full codelist. + +List ``A`` +---------- + +.. literalinclude:: ../../message_ix_models/data/year/A.yaml + :language: yaml + +List ``B`` +---------- + +.. literalinclude:: ../../message_ix_models/data/year/B.yaml + :language: yaml diff --git a/nest/doc/releasing.rst b/nest/doc/releasing.rst new file mode 100644 index 0000000..9409dd6 --- /dev/null +++ b/nest/doc/releasing.rst @@ -0,0 +1,50 @@ +Releasing +********* + +Version numbers +=============== + +:mod:`message_ix_models` uses date-based version numbers like ``Y.M.D``. +Thus version ``2021.2.23`` is released on 23 February 2021. +This is to establish a more direct correspondence between outputs of the code and the version(s) used to produce it. + +Procedure +========= + +Before releasing, check: + +- https://github.com/iiasa/message-ix-models/actions?query=branch:main to ensure that the push and scheduled builds are passing. +- https://readthedocs.com/projects/iiasa-energy-program-message-ix-models/builds/ to ensure that the docs build is passing. + +Address any failures before releasing. + +1. Edit :file:`doc/whatsnew.rst`. + Comment the heading "Next release", then insert another heading below it, at the same level, with the version number and date. + Make a commit with a message like "Mark vX.Y.Z in doc/whatsnew". + +2. Tag the release candidate version, i.e. with a ``rcN`` suffix, and push:: + + $ git tag v1.2.3rc1 + $ git push --tags origin main + +3. Check: + + - at https://github.com/iiasa/message-ix-models/actions?query=workflow:publish that the workflow completes: the package builds successfully and is published to TestPyPI. + - at https://test.pypi.org/project/message-ix-models/ that: + + - The package can be downloaded, installed and run. + - The README is rendered correctly. + + Address any warnings or errors that appear. + If needed, make a new commit and go back to step (2), incrementing the rc number. + +4. (optional) Tag the release itself and push:: + + $ git tag v1.2.3 + $ git push --tags origin main + + This step (but *not* step (2)) can also be performed directly on GitHub; see (5), next. + +5. Visit https://github.com/iiasa/message-ix-models/releases and mark the new release: either using the pushed tag from (4), or by creating the tag and release simultaneously. + +6. Check at https://github.com/iiasa/message-ix-models/actions?query=workflow:publish and https://pypi.org/project/message-ix-models/ that the distributions are published. diff --git a/nest/doc/repro.rst b/nest/doc/repro.rst new file mode 100644 index 0000000..366c646 --- /dev/null +++ b/nest/doc/repro.rst @@ -0,0 +1,79 @@ +Reproducibility +*************** + +On this page: + +.. contents:: + :local: + :backlinks: none + +Elsewhere: + +- A `high-level introduction `_, to how testing supports validity, reproducibility, interoperability, and reusability, in :mod:`message_ix_models` and related packages. +- :doc:`api/testing` (:mod:`message_ix_models.testing`), on a separate page. + +Strategy +======== + +The code in :mod:`.model.bare` generates a “bare” reference energy system. +This is a Scenario that has the same *structure* (ixmp 'sets') as actual instances of the MESSAGEix-GLOBIOM global model, but contains no *data* (ixmp 'parameter' values). +Code that operates on the global model can be tested on the bare RES; if it works on that scenario, this is one indication (necessary, but not always sufficient) that it should work on fully-populated scenarios. +Such tests are faster and lighter than testing on fully-populated scenarios, and make it easier to isolate errors in the code that is being tested. + +Test suite (:mod:`message_ix_models.tests`) +=========================================== + +:mod:`message_ix_models.tests` contains a suite of tests written using `Pytest `_. + +The following is automatically generated documentation of all modules, test classes, functions, and fixtures in the test suite. +Each test **should** have a docstring explaining what it checks. + +.. currentmodule:: message_ix_models + +.. autosummary:: + :toctree: _autosummary + :template: autosummary-module.rst + :recursive: + + tests + +Running the test suite +====================== + +Some notes for running the test suite. + +:func:`.cached` is used to cache the data resulting from slow operations, like parsing large input files. +Data are stored in a location described by the :class:`.Context` setting ``cache_path``. +The test suite interacts with caches in two ways: + +- ``--local-cache``: Giving this option causes pytest to use whatever cache directory is configured for normal runs/usage of :mod:`message_ix_models` or :command:`mix-models`. +- By default (without ``--local-cache``), the test suite uses :ref:`pytest's built-in cache fixture `. + This creates and uses a temporary directory, usually :file:`.pytest_cache/d/cache/` within the repository root. + This location is used *only* by tests, and not by normal runs/usage of the code. + +In either case: + +- The tests use existing cached data in these locations and skip over code that generates this data. + If the generating code is changed, the cached data **must** be deleted in order to actually check that the code runs properly. +- Running the test suite with ``--local-cache`` causes the local cache to be populated, and this will affect subsequent runs. +- The continuous integration (below) services don't preserve caches, so code always runs. + +Continuous testing +================== + +The test suite (:mod:`message_ix_models.tests`) is run using GitHub Actions for new commits on the ``main`` branch, or on any branch associated with a pull request. + +Because it is closed-source and requires access to internal IIASA resources, including databases, continuous integration for :mod:`message_data` is handled by an internal server running `TeamCity `_: https://ene-builds.iiasa.ac.at/project/message (requires authorization) + + +.. _export-test-data: + +Prepare data for testing +======================== + +Use the ``export-test-data`` CLI command:: + + mix-models --url="ixmp://ixmp-dev/ENGAGE_SSP2_v4.1.7/baseline" export-test-data + +See also the documentation for :func:`export_test_data`. +Use the :command:`--exclude`, :command:`--nodes`, and :command:`--techs` options to control the content of the resulting file. diff --git a/nest/doc/whatsnew.rst b/nest/doc/whatsnew.rst new file mode 100644 index 0000000..ac14e2c --- /dev/null +++ b/nest/doc/whatsnew.rst @@ -0,0 +1,166 @@ +What's new +********** + +.. Next release +.. ============ + +2023.2.8 +======== + +- Codelists for the ``relation`` :ref:`MESSAGEix set ` (:pull:`85`): + + - Add :ref:`three relation codelists `. + - The :doc:`“bare” reference energy system ` now includes relations from the codelist indicated by :attr:`.model.Config.relations`; default "A". + +- :ref:`commodity-yaml` (:pull:`85`): + + - Add "biomass", "non-comm", "rc_spec", and "rc_therm". + - Add "report" annotations for some items. + These include string fragments to be used in variable names when reporting data in the IAMC data structure. + +- :func:`.generate_product` (and :func:`.generate_set_elements`) can handle a :doc:`regular expression ` to select a subset of codes for the Cartesian product (:pull:`85`). +- New utility method :meth:`.Context.write_debug_archive` writes a ZIP archive containing files listed by :attr:`.Config.debug_paths` (:pull:`85`). +- :class:`.WorkflowStep` can store and apply keyword options for the optional :meth:`~.message_ix.Scenario.clone` step at the start of the step execution (:pull:`85`). +- Bugfix: :meth:`.WorkflowStep.__call__` ensures that :attr:`.Config.scenario_info` on the :class:`.Context` instance passed to its callback matches the target scenario (:pull:`85`). + +2022.11.7 +========= + +- Add the :ref:`ZMB` node code list (:pull:`83`). +- Add the utility :func:`same_time`, to copy the set time in paramenters (:pull:`83`). +- New :class:`~message_ix_models.Config` and :class:`.model.Config` :py:mod:`dataclasses` for clearer description/handling of recognized settings stored on :class:`.Context` (:pull:`82`). + :class:`.ConfigHelper` for convenience/utility functionality in :mod:`message_ix_models`-based code. +- New functions :func:`.generate_product`, :func:`.generate_set_elements`, :func:`.get_region_codes` in :mod:`.model.structure` (:pull:`82`). +- Revise and improve the :doc:`Workflow API ` (:pull:`82`). +- Adjust for pandas 1.5.0 (:pull:`81`). + +2022.8.17 +========= + +- Add :func:`.nodes_ex_world` and use this in :func:`.disutility.data_conversion` instead of expected a "World" node ID to be the first element in :attr:`.ScenarioInfo.N` (:pull:`78`). +- Add example files and documentation for :doc:`pkg-data/iiasa-se` (:pull:`78`). +- Expand :file:`~` (i.e. ``$HOME``) in the ``"message local data"`` :ref:`configuration setting ` (:pull:`78`). + +2022.7.25 +========= + +- Add :func:`get_advance_data`, and related tools for data from the ADVANCE project, including the :ref:`node codelist ` for the data (:pull:`76`). +- Add unit annotations to :ref:`commodity-yaml` (:pull:`76`). +- New utility methods :meth:`.ScenarioInfo.io_units` to derive units for ``input`` and ``output`` parameters from :meth:`.units_for` commodity stocks and technology activities (:pull:`76`). +- Transfer :func:`.add_tax_emission` from :mod:`message_data`, improve, and add tests (:pull:`76`). +- Unit annotations on commodity and technology codes are copied to child codes using :func:`.process_units_anno` (:pull:`76`). +- :func:`.make_matched_dfs` accepts :class:`pint.Quantity` to set both magnitude and units in generated data (:pull:`76`). +- :func:`.strip_par_data` also removes the set element for which data is being stripped (:pull:`76`). +- The common CLI options :program:`--verbose` and :program:`--dry-run` are stored on :class:`.Context` automatically (:pull:`76`). +- New utility method :meth:`.Context.set_scenario` (:pull:`76`). +- :data:`iam_units.registry` is the default unit registry even when :mod:`message_data` is not installed (:pull:`76`). +- Expand :func:`.broadcast` to allow :class:`~.pandas.DataFrame` with multiple dimensions as input (:pull:`74`). + +2022.5.6 +======== + +- Bump minimum required version of :mod:`message_ix` to v3.4.0 from v3.2.0 (:pull:`71`). +- Add a documentation page on :doc:`distrib` (:pull:`59`). +- Add :func:`.testing.not_ci` for marking tests not to be run on continuous integration services; improve :func:`~.testing.session_context` (:pull:`62`). +- :func:`.apply_spec` also adds elements of the "node" set using :meth:`.ixmp.Platform.add_region` (:pull:`62`). +- Add new logo the documentation (:pull:`68`). +- Add :class:`.Workflow`; see :doc:`api/workflow` (:pull:`60`). + +2022.3.30 +========= + +- Add :func:`adapt_R11_R12`, a function for adapting data from the :ref:`R11` to the :ref:`R12` node lists (:pull:`56`). +- Work around `iiasa/ixmp#425 `__ in :func:`.disutility.data_conversion` (:ref:`docs `, :pull:`55`). + +2022.3.3 +======== + +- Change the node name in R12.yaml from R12_CPA to R12_RCPA (:pull:`49`). +- Register “message local data” ixmp configuration file setting and use to set the :attr:`.Context.local_path` when provided. + See :ref:`local-data` (:pull:`47`) + +2022.1.26 +========= + +- New :class:`.Spec` class for easier handling of specifications of model (or model variant) structure (:pull:`39`) +- New utility function :func:`.util.local_data_path` (:pull:`39`). +- :func:`.repr` of :class:`.Context` no longer prints a (potentially very long) list of all keys and settings (:pull:`39`). +- :func:`.as_codes` accepts a :class:`.dict` with :class:`.Code` values (:pull:`39`). + +Earlier releases +================ + +2021.11.24 +---------- + +- Add :command:`--years` and :command:`--nodes` to :func:`.common_params` (:pull:`35`). +- New utility function :func:`.structure.codelists` (:pull:`35`). + +2021.7.27 +--------- + +- Improve caching using mod:`genno` v1.8.0 (:pull:`29`). + +2021.7.22 +--------- + +- Migrate utilities :func:`cached`, :func:`.check_support`, :func:`.convert_units`, :func:`.maybe_query`, :func:`.series_of_pint_quantity` (:pull:`27`) +- Add :data:`.testing.NIE`. +- Add the ``--jvmargs`` option to :command:`pytest` (see :func:`.pytest_addoption`). +- Remove :meth:`.Context.get_config_file`, :meth:`.get_path`, :meth:`.load_config`, and :meth:`.units`, all deprecated since 2021-02-28. + +2021.7.6 +-------- + +- Add :func:`identify_nodes`, a function for identifying a :doc:`pkg-data/node` based on a :class:`.Scenario` (:pull:`24`). +- Add :func:`adapt_R11_R14`, a function for adapting data from the :ref:`R11` to the :ref:`R14` node lists (:pull:`24`). +- Add :func:`.export_test_data` and :command:`mix-models export-test-data` command (:pull:`16`). + See :ref:`export-test-data`. +- Allow use of pytest's persistent cache across test sessions (:pull:`23`). + See :doc:`repro`. +- Add the :ref:`R12` node code list (:pull:`14`). + +2021.4.7 +-------- + +- Add :mod:`.model.disutility`, code for setting up structure and data for generalized consumer disutility (:pull:`13`) + +2021.3.24 +--------- + +- Add :doc:`pkg-data/year`, YAML data files, :meth:`.ScenarioInfo.year_from_codes` and associated tests (:issue:`11`, :pull:`12`) + +2021.3.22 +--------- + +- Migrate :mod:`.model.bare`, :mod:`.model.build`, :mod:`.model.cli`, and associated documentation (:pull:`9`) +- Migrate utilities: :class:`.ScenarioInfo`, :func:`.add_par_data`, :func:`.eval_anno`, :func:`.iter_parameters`, and :func:`.strip_par_data`. + +2021.3.3 +-------- + +- Migrate :mod:`.util.click`, :mod:`.util.logging`; expand documentation (:pull:`8`:). +- :meth:`.Context.clone_to_dest` method replaces :func:`clone_to_dest` function. +- Build PDF documentation on ReadTheDocs. +- Allow CLI commands from both :mod:`message_ix_models` and :mod:`message_data` via :program:`mix-models`. +- Migrate :program:`mix-models techs` CLI command. + +2021.2.28 +--------- + +- Migrate :class:`.Context` class and :mod:`.testing` module from :mod:`message_data` (:pull:`5`:). +- Add :func:`.load_private_data`, :func:`.package_data_path`, :func:`.private_data_path`. +- Document: :doc:`data` and :doc:`cli`. +- Update :doc:`node codelists ` to ensure they contain both current and former ISO 3166 codes for countries that have changed status (:pull:`6`:). + For instance, ANT dissolved into BES, CUW, and SXM in 2010; all four are included in R11_LAM so this list can be used to handle data from either before or after 2010. + +2021.2.26 +--------- + +- Add :func:`.get_codes` and related code lists (:pull:`2`:). +- Add :class:`.MessageDataFinder` and document :doc:`migrate` (:pull:`3`:). + +2021.2.23 +--------- + +Initial release. diff --git a/nest/message_ix_models/__init__.py b/nest/message_ix_models/__init__.py new file mode 100644 index 0000000..1cf94ca --- /dev/null +++ b/nest/message_ix_models/__init__.py @@ -0,0 +1,34 @@ +import sys + +import pint +from iam_units import registry +from pkg_resources import DistributionNotFound, get_distribution + +from message_ix_models.util._logging import setup as setup_logging +from message_ix_models.util.config import Config +from message_ix_models.util.context import Context +from message_ix_models.util.importlib import MessageDataFinder +from message_ix_models.util.scenarioinfo import ScenarioInfo, Spec +from message_ix_models.workflow import Workflow + +# Expose utility classes +__all__ = ["Config", "Context", "ScenarioInfo", "Spec", "Workflow"] + +try: + # Version string for reference in other code + __version__ = get_distribution(__name__).version +except DistributionNotFound: # pragma: no cover + # Package is not installed + __version__ = "999" + +# No logging to stdout (console) by default +setup_logging(console=False) + +# Use iam_units.registry as the default pint.UnitsRegistry +pint.set_application_registry(registry) + +# Ensure at least one Context instance is created +Context() + +# Use this finder only if others fail +sys.meta_path.append(MessageDataFinder()) diff --git a/nest/message_ix_models/cli.py b/nest/message_ix_models/cli.py new file mode 100644 index 0000000..4df15ab --- /dev/null +++ b/nest/message_ix_models/cli.py @@ -0,0 +1,138 @@ +"""Command-line interface for MESSAGEix-GLOBIOM model tools. + +Every tool and script in this repository is accessible through this CLI. Scripts are +grouped into commands and sub-commands. For help on specific (sub)commands, use --help, +e.g.: + + \b + mix-models cd-links --help + mix-models cd-links run --help + +The top-level options --platform, --model, and --scenario are used by commands that +access specific message_ix scenarios; these can also be specified with --url. + +For more information, see https://docs.messageix.org/projects/models2/en/latest/cli.html +""" +import logging +import sys +from pathlib import Path + +import click + +from message_ix_models.util._logging import mark_time +from message_ix_models.util._logging import setup as setup_logging +from message_ix_models.util.click import common_params +from message_ix_models.util.context import Context + +log = logging.getLogger(__name__) + + +# Main command group. The code in this function is ALWAYS executed, so it should only +# include tasks that are common to all CLI commands. +@click.group(help=__doc__) +@click.option( + "--url", metavar="ixmp://PLATFORM/MODEL/SCENARIO[#VERSION]", help="Scenario URL." +) +@click.option("--platform", metavar="PLATFORM", help="Configured platform name.") +@click.option( + "--model", "model_name", metavar="MODEL", help="Model name for some commands." +) +@click.option( + "--scenario", + "scenario_name", + metavar="SCENARIO", + help="Scenario name for some commands.", +) +@click.option("--version", type=int, help="Scenario version.") +@click.option("--local-data", type=Path, help="Base path for local data.") +@common_params("verbose") +@click.pass_context +def main(click_ctx, **kwargs): + # Start timer + mark_time(quiet=True) + + # Log to console + setup_logging(level="DEBUG" if kwargs.pop("verbose") else "INFO", console=True) + + # Store the most recently created instance of message_ix_models.Context. click + # carries this object to any subcommand decorated with @click.pass_obj. + # NB this can't be Context.only(). When click.testing.CliRunner is used, there may + # already be ≥2 Context instances created elsewhere in the test session before + # this function is called to run CLI commands within the test session. + click_ctx.obj = Context.get_instance(-1) + + # Handle command-line parameters + click_ctx.obj.handle_cli_args(**kwargs) + + # Close any database connections when the CLI exits + click_ctx.call_on_close(click_ctx.obj.close_db) + + +@main.command("export-test-data") +@click.option("--exclude", default="", help="Sheets to exclude.") +@click.option("--nodes", default="R11_AFR,R11_CPA", help="Nodes to include.") +@click.option("--techs", default="coal_ppl", help="Technologies to include.") +@click.pass_obj +def export_test_data_cmd(ctx, exclude, nodes, techs): + """Prepare data for testing. + + Option values for --exclude, --nodes, and --techs must be comma-separated lists. + """ + from message_ix_models.testing import export_test_data + + # Store CLI options on the Context + ctx.export_exclude = list(filter(None, exclude.split(","))) # Exclude empty string + ctx.export_nodes = nodes.split(",") + ctx.export_techs = techs.split(",") + + mark_time() + + # Export + export_test_data(ctx) + + mark_time() + + +@main.command(hidden=True) +@click.pass_obj +def debug(ctx): + """Hidden command for debugging.""" + # Print the local data path + log.debug(ctx.local_data) + + +#: List of submodules providing CLI (sub)commands accessible through `mix-models`. +#: Each of these should contain a function named ``cli`` decorated with @click.command +#: or @click.group. +submodules = [ + "message_ix_models.model.cli", + "message_ix_models.model.structure", + "message_ix_models.model.water.cli", +] + +try: + import message_data.cli +except ImportError: + # message_data is not installed or contains some ImportError of its own + from traceback import format_exception + + # Display information for debugging + etype, value, tb = sys.exc_info() + print("", *format_exception(etype, value, tb, limit=-1, chain=False)[1:], sep="\n") +else: # pragma: no cover (needs message_data) + # Also add message_data submodules + submodules.extend( + f"message_data.{name}" for name in message_data.cli.MODULES_WITH_CLI + ) + +for name in submodules: + # Import the module and retrieve the click.Command object + __import__(name) + cmd = getattr(sys.modules[name], "cli") + + # Avoid replacing message-ix-models CLI with message_data CLI + if cmd.name in main.commands: # pragma: no cover (needs message_data) + log.warning(f"Skip {repr(cmd.name)} CLI from {repr(name)}; already defined") + continue + + main.add_command(cmd) diff --git a/nest/message_ix_models/data/cd_links/unit.yaml b/nest/message_ix_models/data/cd_links/unit.yaml new file mode 100644 index 0000000..d747a0f --- /dev/null +++ b/nest/message_ix_models/data/cd_links/unit.yaml @@ -0,0 +1,106 @@ +# Units appearing in CD-LINKS scenarios +# +# This list should ONLY be used when trying to load such scenarios on to a +# Platform without such units defined. + +- "-" +- "???" +- "%" +- "billion US$2010/yr" +- "cases" +- "EJ_final" +- "EJ_primary" +- "EJ/yr" +- "G$" +- "GW" +- "GW/a" +- "GWa" +- "GWa/a" +- "Index (2005 = 1)" +- "kcal/cap/day" +- "kg" +- "kg/kWa" +- "km" +- "km3" +- "km3/yr" +- "kt BC/yr" +- "kt CF4/yr" +- "kt CH4/yr" +- "kt CO/yr" +- "kt HFC125/yr" +- "kt HFC134a-equiv/yr" +- "kt HFC134a/yr" +- "kt HFC143a/yr" +- "kt HFC227ea/yr" +- "kt HFC23/yr" +- "kt HFC245fa/yr" +- "kt HFC32/yr" +- "kt HFC43-10/yr" +- "kt N2O/yr" +- "kt NH3/yr" +- "kt NOx/yr" +- "kt OC/yr" +- "kt SF6/yr" +- "kt SO2/yr" +- "kt VOC/yr" +- "Mha" +- "million" +- "million ha" +- "million m3/yr" +- "million t DM/yr" +- "Mm3" +- "Mt" +- "Mt BC/yr" +- "Mt C-eq/yr" +- "Mt C/yr" +- "Mt CH4/yr" +- "Mt CO/yr" +- "Mt CO2-equiv/yr" +- "Mt CO2/yr" +- "Mt CO2eq/yr" +- "Mt NH3/yr" +- "Mt NOx/yr" +- "Mt OC/yr" +- "Mt SO2/yr" +- "Mt VOC/yr" +- "MtCO2" +- "MtCO2eq/year" +- "MUSD/a" +- "MW" +- "MWa" +- "price_MESSAGE" +- "t" +- "t DM/ha/yr" +- "T$" +- "tC" +- "tCO2" +- "tCO2/ha" +- "tCO2/kWa" +- "Tg N/yr" +- "Tg P/yr" +- "TUSD" +- "US$2005/GJ" +- "US$2005/t CO2" +- "US$2010/GJ or local currency/GJ" +- "US$2010/kW" +- "US$2010/kW/yr" +- "US$2010/kWh" +- "US$2010/t CO2 or local currency/t CO2" +- "USD" +- "USD/(tC/yr)" +- "USD/(tC/yr)/yr" +- "USD/GWa" +- "USD/kg" +- "USD/km" +- "USD/kW" +- "USD/kW/a" +- "USD/kWa" +- "USD/tC" +- "USD/tCE/yr" +- "USD/tCO2" +- "USD2000_GJprim" +- "USD2000_tCO2eq" +- "y" +- "year" +- "years" +- "ZJ" diff --git a/nest/message_ix_models/data/commodity.yaml b/nest/message_ix_models/data/commodity.yaml new file mode 100644 index 0000000..e02911e --- /dev/null +++ b/nest/message_ix_models/data/commodity.yaml @@ -0,0 +1,311 @@ +biomass: + units: GWa + report: Solids|Biomass + +coal: + name: Coal + units: GWa + report: Solids|Fossil + +crudeoil: + name: Crude oil + description: >- + For secondary energy, use 'fueloil', 'lightoil', etc. + level: primary + units: GWa + report: Oil + +d_heat: + name: (?) District heat + description: >- + FIXME provide an unambiguous description of what this commodity represents. + report: Heat + +electr: + name: Electricity + units: GWa + report: Electricity + +ethanol: + name: Ethanol + units: GWa + report: Liquids|Biomass + +freshwater_supply: + name: (?) Fresh water + description: >- + FIXME provide an unambiguous description of what this commodity represents. + +fueloil: + name: Fuel oil + description: Heavy fuel oil. + level: secondary + units: GWa + +gas: + name: Natural Gas + units: GWa + report: Gases + +hydrogen: + name: Gaseous hydrogen + units: GWa + +lh2: + name: Liquid hydrogen + units: GWa + +lightoil: + name: Light oil + description: Includes gasoline, diesel oil. + # level: secondary + units: GWa + report: Liquids|Oil + +methanol: + name: Methanol + units: GWa + report: Liquids|Coal + +non-comm: + name: Non-commercial biomass + units: GWa + report: Solids|Biomass|Traditional + +rc_spec: + name: Residential and commercial non-substitutable fuels + +rc_therm: + name: Residential and commercial thermal + +transport: + name: Transportation + description: >- + For MESSAGEix-Transport, this commodity is not used; it is replaced by a + disaggregated set of transport service demands (representing e.g. light- + duty vehicles, civil aviation, freight transport, etc.) + level: useful + units: GWa + +# The following codes also appear in a recent (2020-02-28) SSP2 scenario, but +# are not currently used by model.bare.create_res. +# +# Aff_CO2_G4M +# Agri_CH4 +# Agri_N2O +# Agri_N2O_calc +# Agricultural Demand +# Agricultural Demand|Bioenergy +# Agricultural Demand|Bioenergy|1st generation +# Agricultural Demand|Bioenergy|2nd generation +# Agricultural Demand|Feed +# Agricultural Demand|Feed|Crops +# Agricultural Demand|Food +# Agricultural Demand|Food|Crops +# Agricultural Demand|Food|Livestock +# Agricultural Demand|Non-Food +# Agricultural Demand|Non-Food|Crops +# Agricultural Demand|Non-Food|Livestock +# Agricultural Production +# Agricultural Production|Energy Crops +# Agricultural Production|Livestock +# Agricultural Production|Non-Energy Crops +# Agricultural Production|Non-Energy Crops|Cereals +# BCA_LandUseChangeEM +# BCA_SavanBurnEM +# Biodiesel_G1 +# bioenergy +# Bioethanol_G1 +# CalAnim +# CalCrop +# CalTot +# CH4_LandUseChangeEM +# CH4_SavanBurnEM +# CO_LandUseChangeEM +# CO_SavanBurnEM +# CO2_oil +# CO2_rem +# cooling__bio_hpl +# cooling__bio_istig +# cooling__bio_istig_ccs +# cooling__bio_ppl +# cooling__coal_adv +# cooling__coal_adv_ccs +# cooling__coal_ppl +# cooling__coal_ppl_u +# cooling__foil_hpl +# cooling__foil_ppl +# cooling__gas_cc +# cooling__gas_cc_ccs +# cooling__gas_hpl +# cooling__gas_ppl +# cooling__geo_hpl +# cooling__geo_ppl +# cooling__igcc +# cooling__igcc_ccs +# cooling__loil_cc +# cooling__loil_ppl +# cooling__nuc_hc +# cooling__nuc_lc +# cooling__solar_th_ppl +# CrpLnd +# crude_1 +# crude_2 +# crude_3 +# crude_4 +# crude_5 +# crude_6 +# crude_7 +# crude_8 +# Def_CO2_G4M +# Def_CO2_GLO +# dumagr +# dumfert +# Emissions|CH4|Land Use +# Emissions|CH4|Land Use|Agricultural Waste Burning +# Emissions|CH4|Land Use|Agriculture +# Emissions|CH4|Land Use|Agriculture|AWM +# Emissions|CH4|Land Use|Agriculture|Enteric Fermentation +# Emissions|CH4|Land Use|Agriculture|Rice +# Emissions|CH4|Land Use|Savannah Burning +# Emissions|CO2|Land Use +# Emissions|CO2|Land Use|Negative +# Emissions|CO2|Land Use|Positive +# Emissions|N2O|Land Use +# Emissions|N2O|Land Use|Agricultural Waste Burning +# Emissions|N2O|Land Use|Agriculture +# Emissions|N2O|Land Use|Agriculture|AWM +# Emissions|N2O|Land Use|Agriculture|Cropland Soils +# Emissions|N2O|Land Use|Agriculture|Pasture +# Emissions|N2O|Land Use|Savannah Burning +# EnergyRoundwood +# exports +# Fertilizer Use|Nitrogen +# Fertilizer Use|Phosphorus +# Fmg_CO2_G4M +# Food Demand +# Food Demand|Crops +# Food Demand|Livestock +# Food Energy Demand +# Food Energy Demand|Livestock +# ForestBiomass +# ForestBiomass_G4M +# ForestHarvestDF_G4M +# ForestHarvestFM_G4M +# ForestHarvestTot_G4M +# ForestHarvestTot_GLO +# Forestry Demand|Roundwood +# Forestry Demand|Roundwood|Industrial Roundwood +# Forestry Demand|Roundwood|Wood Fuel +# Forestry Production|Forest Residues +# Forestry Production|Roundwood +# Forestry Production|Roundwood|Industrial Roundwood +# Forestry Production|Roundwood|Wood Fuel +# freshwater_instream +# FuelWood +# FuelWood_G4M +# gas +# gas_1 +# gas_2 +# gas_3 +# gas_4 +# gas_5 +# gas_6 +# gas_7 +# gas_8 +# gas_afr +# gas_cpa +# gas_eeu +# gas_nam +# gas_pao +# gas_pas +# gas_sas +# gas_weu +# GrsLnd +# i_feed +# i_spec +# i_therm +# IrriWithdrawal +# Land Cover +# Land Cover|Cropland +# Land Cover|Cropland|Cereals +# Land Cover|Cropland|Energy Crops +# Land Cover|Cropland|Irrigated +# Land Cover|Forest +# Land Cover|Forest|Afforestation and Reforestation +# Land Cover|Forest|Forestry +# Land Cover|Forest|Managed +# Land Cover|Forest|Natural Forest +# Land Cover|Other Natural Land +# Land Cover|Pasture +# lh2 +# lignite +# LiquidTotal +# LNG +# LoggingResidues +# LU_CO2 +# LU_GHG +# LucGrs_CO2 +# LucOth_CO2 +# NewFor_G4M +# NH3_LandUseChangeEM +# NH3_ManureEM +# NH3_RiceEM +# NH3_SavanBurnEM +# NH3_SoilEM +# NOx_LandUseChangeEM +# NOx_SavanBurnEM +# NOx_SoilEM +# nucfuel +# OCA_LandUseChangeEM +# OCA_SavanBurnEM +# oil_st +# Olc_CO2_GLO +# Olc_CO2_GLO_neg +# Olc_CO2_GLO_pos +# OldFor_G4M +# OtherLnd +# OthSolidNonComm +# PlantationBiomass +# PlantationHarvest_GLO +# PltArt +# PltFor +# PltFor_gr +# Price_BIO +# Price_CO2 +# Price|Agriculture|Non-Energy Crops and Livestock|Index +# Price|Agriculture|Non-Energy Crops|Index +# Price|Primary Energy|Biomass +# pu +# puq +# puq2 +# saline_supply +# SawmillResidues +# SawmillResidues_G4M +# shipping +# SO2_LandUseChangeEM +# SO2_SavanBurnEM +# SolidExogenous +# SolidExogenous_G4M +# SolidTotal +# SolidTotal_G4M +# TCE +# TimberIndust +# TimberIndust_G4M +# Tot_CO2_G4M +# total_cost +# TotalLnd +# TotFor_G4M +# u5 +# u5q +# u5t +# upstream_landuse +# uq +# uranium +# VOC_LandUseChangeEM +# VOC_SavanBurnEM +# water_constraint +# Water|Withdrawal|Irrigation +# Yield|Cereal +# Yield|Oilcrops +# Yield|Sugarcrops diff --git a/nest/message_ix_models/data/edits/messageix-transport-core.yaml b/nest/message_ix_models/data/edits/messageix-transport-core.yaml new file mode 100644 index 0000000..7b5951a --- /dev/null +++ b/nest/message_ix_models/data/edits/messageix-transport-core.yaml @@ -0,0 +1,70 @@ +format: 1 + +title: MESSAGEix-Transport model core +description: |- + These are the data represented in the model core of MESSAGEix-Transport. This + model uses the same, generic MESSAGE mathematical formulation as the + MESSAGEix-GLOBIOM global model (without transport detail), and so this data + description also applies to other instances ("scenarios") of that model. + + All of the core data are available directly as output, as well as aggregated + and derived quantities. + + [Choose one: “For derived output quantities, see the separate `....yaml`.” + OR “In this file, derived output quantities are denoted with [...].”] + +provider: + organisation: International Institute for Applied Systems Analysis (IIASA) + contact: kishimot@iiasa.ac.at + +classifiers: +- "Kind :: Model core" + +dimension: + time: + scope: 2015 to 2110 + resolution: 5- or 10-year periods + description: Periods are labelled with their final year. + space: + scope: global + resolution: R11 regions + description: |- + See https://docs.messageix.org/projects/models2/en/latest/pkg-data/node.html + or https://github.com/iiasa/message-ix-models/blob/main/message_ix_models/data/node/R11.yaml + # TODO add mode, technology: same as in messageix-transport-input.yaml + +measure: + stock: + description: Quantity of transport vehicles. + +quantity: +- measure: activity + kind: core + dimensions: [time, space, mode, technology] + +- measure: freight activity + kind: core + dimensions: [time, space, mode, technology] + description: >- + For freight truck `technology` only. + +- measure: passenger activity + kind: core + dimensions: [time, space, mode, technology] + description: >- + For non-LDV `mode` only. For these modes & technologies, there is no + distinction by `consumer_group`. + +- measure: passenger activity + kind: core + dimensions: [time, space, technology, consumer_group] + description: >- + For LDV `technology` only. The model core optimizes the activity of each + `consumer_group` by each `LDV` technology. + +- measure: stock + kind: derived + dimensions: [time, space, mode, technology] + units: 10^3 vehicles + description: >- + Excluding aviation `mode` and associated technologies. diff --git a/nest/message_ix_models/data/edits/messageix-transport-input.yaml b/nest/message_ix_models/data/edits/messageix-transport-input.yaml new file mode 100644 index 0000000..0dbad13 --- /dev/null +++ b/nest/message_ix_models/data/edits/messageix-transport-input.yaml @@ -0,0 +1,128 @@ +format: 1 + +title: MESSAGEix-Transport inputs +description: |- + These data are ingested by the setup/calibration code for MESSAGEix-Transport. + This code takes an instance ("scenario") of the MESSAGEix-GLOBIOM global model + and alters it to add the detailed transport structure. + + See the description `messageix-transport-core.yaml` for the data in the core + model formulation. Data that exactly matches the core formulation can also be + used as input; this file describes non-core data that can be transformed/used + with existing code & methods. + + This setup code was originally developed for use with data from the US-TIMES + and MA³T models. + +provider: + organisation: International Institute for Applied Systems Analysis (IIASA) + contact: kishimot@iiasa.ac.at + +classifiers: +- "Kind :: Model input" + +dimension: + time: + scope: historical (1990-2020) to 2100 + resolution: 5- or 10-year periods, or annual + description: Data at <5 year resolution can be aggregated. + space: + scope: global + resolution: country or R11 regions + description: Data at the country resolution can be aggregated. + census_division: + scope: Continental United States + resolution: 9 census regions, or total + description: >- + Census divisons of the United States. This is used to map data from + US-TIMES and MA³T. + area_type: + scope: all areas within a given spatial unit + resolution: >- + 3-point scale: urban, suburban, or rural. + description: Urbanization or urban form of a sub-national area. + attitude: + scope: all people in a given (sub-)population + resolution: >- + 3-point scale: early adopter, early majority, late majority + description: >- + New technology adoption attitude or propensity, in particular towards new + transport technologies, modes, options, etc. + driver_type: + scope: all vehicle drivers in a given (sub-)population + resolution: >- + 3-point scale: moderate, average, frequent + description: >- + The amount of annual driving done by a person, relative to others in the + population. + consumer_group: + scope: all people in a given population + resolution: 27-point scale; see description + description: |- + Group of people within a population that have similar transport demand/ + activity, behaviour, etc. characteristics. In MESSAGEix-Transport, this is + operationalized as the Cartesian product of the `area_type`, `attitude`, + and `driver_type` concepts/dimensions. + + E.g. the label "RUEMF" means the subset of people who live in rural + areas ("RU"), have early majority ("EM") technology attitudes, and are + frequent drivers ("F"). + mode: + scope: the points listed below; excluding e.g. pipelines + resolution: >- + 5-point scale: air, bus, rail, LDV, 2-3 wheelers + description: |- + Mode or medium of passenger transport. In the MESSAGEix-Transport setup + code, this is operationalized in a way that includes both different + vehicle types (e.g. bus, LDV, 2W+3W) and the `mode` concept in the iTEM + sense (e.g. "Road" for all 3 of these). + technology: + scope: All transport technologies + description: The powertrain technology of a transport vehicle. + resolution: |- + 43 distinct labels. Some of these are only valid in combination with + certain other values for the `mode` dimension. In particular, the number + of labels is: + + - Rail: 6 + - 2-3 wheelers: 2 + - LDV: 12 + - Aviation: 4 + - Bus: 10 + + As well, for freight road (not included in the `mode` dimension, above), + there are 9 `technology` labels. + +measure: + population: + description: Count of people in a given area or category. + disutility cost: + description: >- + Monetary equivalent to the intangible/non-monetary disutility + (‘inconvenience’, etc.) that a person has towards using a specific + technology; separate from the real, monetary costs of obtaining or using + that technology. + travel speed: + description: Average travel speed by a particular means of transport. + +quantity: +- measure: population + dimensions: [time, space, consumer_group] + units: persons + description: >- + With these dimensions, this data captures the "shares" or division of the + total population across the consumer groups. + +- measure: disutility cost + dimensions: [time, space, technology, consumer_group] + units: USD_2015 + description: >- + These data only cover the 12 `technology` labels associated with the LDV + `mode`. + +- measure: travel speed + dimensions: [time, space, mode] + units: km/h + description: >- + The code uses the assumption that travel speeds are the same for every + `technology` with the same `mode`. diff --git a/nest/message_ix_models/data/iiasa-se/def-regions.yaml b/nest/message_ix_models/data/iiasa-se/def-regions.yaml new file mode 100644 index 0000000..df13608 --- /dev/null +++ b/nest/message_ix_models/data/iiasa-se/def-regions.yaml @@ -0,0 +1,13 @@ +- MESSAGEix-GLOBIOM 1.1-R12: + - MESSAGEix-GLOBIOM 1.1-R12|Sub-saharan Africa + - MESSAGEix-GLOBIOM 1.1-R12|China + - MESSAGEix-GLOBIOM 1.1-R12|Rest Centrally Planned Asia + - MESSAGEix-GLOBIOM 1.1-R12|Eastern Europe + - MESSAGEix-GLOBIOM 1.1-R12|Former Soviet Union + - MESSAGEix-GLOBIOM 1.1-R12|Latin America and the Caribbean + - MESSAGEix-GLOBIOM 1.1-R12|Middle East and North Africa + - MESSAGEix-GLOBIOM 1.1-R12|North America + - MESSAGEix-GLOBIOM 1.1-R12|Pacific OECD + - MESSAGEix-GLOBIOM 1.1-R12|Other Pacific Asia + - MESSAGEix-GLOBIOM 1.1-R12|South Asia + - MESSAGEix-GLOBIOM 1.1-R12|Western Europe diff --git a/nest/message_ix_models/data/iiasa-se/mappings-R12.yaml b/nest/message_ix_models/data/iiasa-se/mappings-R12.yaml new file mode 100644 index 0000000..0131a9e --- /dev/null +++ b/nest/message_ix_models/data/iiasa-se/mappings-R12.yaml @@ -0,0 +1,67 @@ +# Model 'registration' file for use with `nomenclature` package/IIASA Scenario Explorer +# workflows +# +# TODO generate programmatically from node codelists + +model: +- MESSAGEix-GLOBIOM 1.1-BM-R12 +- MESSAGEix-GLOBIOM 1.1-BMT-R12 +- MESSAGEix-GLOBIOM 1.1-M-R12 +- MESSAGEix-GLOBIOM 1.1-MT-R12 + +native_regions: +- R12_AFR: MESSAGEix-GLOBIOM 1.1-R12|Sub-saharan Africa +- R12_CHN: MESSAGEix-GLOBIOM 1.1-R12|China +- R12_EEU: MESSAGEix-GLOBIOM 1.1-R12|Eastern Europe +- R12_FSU: MESSAGEix-GLOBIOM 1.1-R12|Former Soviet Union +- R12_LAM: MESSAGEix-GLOBIOM 1.1-R12|Latin America and the Caribbean +- R12_MEA: MESSAGEix-GLOBIOM 1.1-R12|Middle East and North Africa +- R12_NAM: MESSAGEix-GLOBIOM 1.1-R12|North America +- R12_PAO: MESSAGEix-GLOBIOM 1.1-R12|Pacific OECD +- R12_PAS: MESSAGEix-GLOBIOM 1.1-R12|Other Pacific Asia +- R12_RCPA: MESSAGEix-GLOBIOM 1.1-R12|Rest Centrally Planned Asia +- R12_SAS: MESSAGEix-GLOBIOM 1.1-R12|South Asia +- R12_WEU: MESSAGEix-GLOBIOM 1.1-R12|Western Europe + +common_regions: +- World: + - R12_AFR + - R12_CHN + - R12_EEU + - R12_FSU + - R12_LAM + - R12_MEA + - R12_NAM + - R12_PAO + - R12_PAS + - R12_RCPA + - R12_SAS + - R12_WEU +# R5 regions +- R5ASIA: + - R12_CHN + - R12_PAS + - R12_RCPA + - R12_SAS +- R5LAM: + - R12_LAM +- R5MAF: + - R12_AFR + - R12_MEA +- R5OECD90+EU: + - R12_EEU + - R12_NAM + - R12_PAO + - R12_WEU +- R5REF: + - R12_FSU +# Individual countries +- CHN: + - R12_CHN +- EU: + - R12_EEU + - R12_WEU +- IND: + - R12_SAS +- USA: + - R12_NAM diff --git a/nest/message_ix_models/data/level.yaml b/nest/message_ix_models/data/level.yaml new file mode 100644 index 0000000..4257921 --- /dev/null +++ b/nest/message_ix_models/data/level.yaml @@ -0,0 +1,41 @@ +primary: + name: Primary Energy + description: >- + A form found in nature that has not been subjected to any human engineered + conversion process. + +secondary: + name: Secondary Energy + description: Forms which have been transformed from primary energy. + +final: + name: Final Energy + description: >- + Represents end-use demands of the end-use sectors (e.g. industry, transport, + residential, commercial and agriculture). + +import: + name: Imports + +useful: + name: Useful Energy + description: >- + Represents energy-service demands (or activity levels) of the end-use + sectors in non-energy units. + +water_supply: + name: Water Supply + description: >- + FIXME provide an unambiguous description of what this level represents. + +# The following codes also appear in a recent (2020-02-28) SSP2 scenario, but +# are not currently used by model.bare.create_res. +# +# cooling +# export +# land_use_reporting +# land_use +# piped-gas +# resource +# stocks +# water_supply_constraint diff --git a/nest/message_ix_models/data/node/ADVANCE.yaml b/nest/message_ix_models/data/node/ADVANCE.yaml new file mode 100644 index 0000000..d11440c --- /dev/null +++ b/nest/message_ix_models/data/node/ADVANCE.yaml @@ -0,0 +1,35 @@ +# Node code list for the ADVANCE project +# +# Source: https://db1.ene.iiasa.ac.at/ADVANCEDB/dsd?Action=htmlpage&page=10 +# Transcribed 2022-07-22 by P.N. Kishimoto +# + +World: + # Countries represented individually + child: [BRA, CHN, IND, JPN, RUS, USA] + +EU: + description: >- + European Union (28 member states from the accession of HRV in 2013 to the + withdrawal of GBR in 2020). + child: [AUT, BEL, BGR, CYP, CZE, DEU, DNK, ESP, EST, FIN, FRA, GBR, GRC, HRV, HUN, IRL, ITA, LTU, LUX, LVA, MLT, NLD, POL, PRT, ROU, SVK, SVN, SWE] + +OECD90+EU: + description: Includes the OECD 1990 countries as well as EU members and candidates. + child: [ALB, AUS, AUT, BEL, BGR, BIH, CAN, CHE, CYP, CZE, DEU, DNK, ESP, EST, FIN, FJI, FRA, GBR, GRC, GUM, HRV, HUN, IRL, ISL, ITA, JPN, LTU, LUX, LVA, MKD, MLT, MNE, NCL, NLD, NOR, NZL, POL, PRT, PYF, ROU, SLB, SRB, SVK, SVN, SWE, TUR, USA, VUT, WSM] + +REF: + description: Countries from the Reforming Ecomonies of the Former Soviet Union. + child: [ARM, AZE, BLR, GEO, KAZ, KGZ, MDA, RUS, TJK, TKM, UKR, UZB] + +ASIA: + description: The region includes most Asian countries with the exception of the Middle East, Japan and Former Soviet Union states. + child: [AFG, BGD, BRN, BTN, CHN, HKG, IDN, IND, KHM, KOR, LAO, LKA, MAC, MDV, MMR, MNG, MYS, NPL, PAK, PHL, PNG, PRK, SGP, THA, TMP, TWN, VNM] + +MAF: + description: This region includes the countries of the Middle East and Africa. + child: [DZA, AGO, ARE, BDA, BEN, BFA, BHR, BWA, CAF, CIV, CMR, COD, COG, COM, CPV, DJI, EGY, ERI, ESH, ETH, GAB, GHA, GIN, GMB, GNB, GNQ, IRN, IRQ, ISR, JOR, KEN, KWT, LBN, LBR, LBY, LSO, MAR, MDG, MLI, MOZ, MRT, MUS, MWI, NAM, NER, NGA, OMN, QAT, REU, RQA, SAU, SDN, SEN, SLE, SOM, SWZ, SYR, TCD, TGO, TUN, TZA, UGA, YEM, ZAF, ZMB, ZWE] + +LAM: + description: This region includes the countries of Latin America and the Caribbean. + child: [ARG, ANT, BHS, BLZ, BOL, BRA, BRB, CHL, COL, CRA, CUB, DOM, EDU, GLP, GTM, GUY, HND, HTI, JAM, MEX, MTQ, NIC, PAN, PER, PRI, PRY, SLV, SUR, TTO, URY, VEN] diff --git a/nest/message_ix_models/data/node/ISR.yaml b/nest/message_ix_models/data/node/ISR.yaml new file mode 100644 index 0000000..8fc7f42 --- /dev/null +++ b/nest/message_ix_models/data/node/ISR.yaml @@ -0,0 +1,10 @@ +# Codes for the "node" dimension of the MESSAGE-IL model + +World: + name: World + description: MESSAGE-IL regions + +Israel: + name: Israel + parent: World + child: [ISR] diff --git a/nest/message_ix_models/data/node/R11.yaml b/nest/message_ix_models/data/node/R11.yaml new file mode 100644 index 0000000..924bb55 --- /dev/null +++ b/nest/message_ix_models/data/node/R11.yaml @@ -0,0 +1,77 @@ +# Region code list +# +# - See message_data.tools.regions. +# - The ISO 3166-1 alpha-3 codes are not defined in this file, but loaded from +# a copy of the ISO database, e.g. in pycountry. +# - Among others, there are no assignments for: +# - ATA Antarctica +# - IOT British Indian Ocean Territory +# - SGS South Georgia + +World: + name: World + description: R11 regions + +R11_AFR: + parent: World + name: Sub-Saharan Africa + child: [AGO, BDI, BEN, BFA, BWA, CAF, CIV, CMR, COD, COG, COM, CPV, DJI, ERI, ETH, GAB, GHA, GIN, GMB, GNB, GNQ, KEN, LBR, LSO, MDG, MLI, MOZ, MRT, MUS, MWI, MYT, NAM, NER, NGA, REU, RWA, SEN, SHN, SLE, SOM, STP, SWZ, SYC, TCD, TGO, TZA, UGA, ZAF, ZMB, ZWE] + +R11_CPA: + parent: World + name: Centrally Planned Asia + child: [CHN, HKG, KHM, LAO, MNG, PRK, VNM] + +R11_EEU: + parent: World + name: Central and Eastern Europe + description: >- + Serbia and Montenegro (SCG) and Yugoslavia (YUG) still included in this list, + even though their ISO 3166-1 codes were deleted in 2006 and 2003, respectively. + child: [ALB, BGR, BIH, CZE, EST, HRV, HUN, LTU, LVA, MKD, MNE, POL, ROU, SCG, SRB, SVK, SVN, YUG] + +R11_FSU: + parent: World + name: Former Soviet Union + child: [ARM, AZE, BLR, GEO, KAZ, KGZ, MDA, RUS, TJK, TKM, UKR, UZB] + +R11_LAM: + parent: World + name: Latin America and The Caribbean + description: >- + The source includes “Netherlands Antilles” which has a provisional ISO 3166-2 alpha-3 code (ANT), + but is not a country. It was dissolved in 2010 into BES, CUW and SXM, also included. + child: [ABW, AIA, ANT, ARG, ATG, BES, BHS, BLZ, BMU, BOL, BRA, BRB, CHL, COL, CRI, CUB, CUW, CYM, DMA, DOM, ECU, FLK, GLP, GRD, GTM, GUF, GUY, HND, HTI, JAM, KNA, LCA, MEX, MSR, MTQ, NIC, PAN, PER, PRY, SLV, SUR, SXM, TCA, TTO, URY, VCT, VEN, VGB] + +R11_MEA: + parent: World + name: Middle East and North Africa + child: [ARE, BHR, DZA, EGY, ESH, IRN, IRQ, ISR, JOR, KWT, LBN, LBY, MAR, OMN, PSE, QAT, SAU, SDN, SSD, SYR, TUN, YEM] + +R11_NAM: + parent: World + name: North America + child: [CAN, GUM, PRI, SPM, USA, VIR] + +R11_PAO: + parent: World + name: Pacific OECD + child: [AUS, JPN, NZL] + +R11_PAS: + parent: World + name: Other Pacific Asia + description: >- + Trust Territory of the Pacific Islands (PCI) still included in this list, + but it was dissolved into MHL, FSM, MNP and PLW in 1986. + child: [ASM, BRN, CCK, COK, CXR, FJI, FSM, IDN, KIR, KOR, MAC, MHL, MMR, MNP, MYS, NCL, NFK, NIU, NRU, PCI, PCN, PHL, PLW, PNG, PYF, SGP, SLB, THA, TKL, TLS, TON, TUV, TWN, VUT, WLF, WSM] + +R11_SAS: + parent: World + name: South Asia + child: [AFG, BGD, BTN, IND, LKA, MDV, NPL, PAK] + +R11_WEU: + parent: World + name: Western Europe + child: [AND, AUT, BEL, CHE, CYP, DEU, DNK, ESP, FIN, FRA, FRO, GBR, GIB, GRC, GRL, IMN, IRL, ISL, ITA, LIE, LUX, MCO, MLT, NLD, NOR, PRT, SJM, SMR, SWE, TUR, VAT] diff --git a/nest/message_ix_models/data/node/R12.yaml b/nest/message_ix_models/data/node/R12.yaml new file mode 100644 index 0000000..09df520 --- /dev/null +++ b/nest/message_ix_models/data/node/R12.yaml @@ -0,0 +1,82 @@ +# Region code list +# +# - See message_data.tools.regions. +# - The ISO 3166-1 alpha-3 codes are not defined in this file, but loaded from +# a copy of the ISO database, e.g. in pycountry. +# - Among others, there are no assignments for: +# - ATA Antarctica +# - IOT British Indian Ocean Territory +# - SGS South Georgia + +World: + name: World + description: R12 regions + +R12_AFR: + parent: World + name: Sub-Saharan Africa + child: [AGO, BDI, BEN, BFA, BWA, CAF, CIV, CMR, COD, COG, COM, CPV, DJI, ERI, ETH, GAB, GHA, GIN, GMB, GNB, GNQ, KEN, LBR, LSO, MDG, MLI, MOZ, MRT, MUS, MWI, MYT, NAM, NER, NGA, REU, RWA, SEN, SHN, SLE, SOM, STP, SWZ, SYC, TCD, TGO, TZA, UGA, ZAF, ZMB, ZWE] + +R12_RCPA: + parent: World + name: Rest Centrally Planned Asia + child: [KHM, LAO, MNG, PRK, VNM] + +R12_CHN: + parent: World + name: China + child: [CHN, HKG] + +R12_EEU: + parent: World + name: Central and Eastern Europe + description: >- + Serbia and Montenegro (SCG) and Yugoslavia (YUG) still included in this list, + even though their ISO 3166-1 codes were deleted in 2006 and 2003, respectively. + child: [ALB, BGR, BIH, CZE, EST, HRV, HUN, LTU, LVA, MKD, MNE, POL, ROU, SCG, SRB, SVK, SVN, YUG] + +R12_FSU: + parent: World + name: Former Soviet Union + child: [ARM, AZE, BLR, GEO, KAZ, KGZ, MDA, RUS, TJK, TKM, UKR, UZB] + +R12_LAM: + parent: World + name: Latin America and The Caribbean + description: >- + The source includes “Netherlands Antilles” which has a provisional ISO 3166-2 alpha-3 code (ANT), + but is not a country. It was dissolved in 2010 into BES, CUW and SXM, also included. + child: [ABW, AIA, ANT, ARG, ATG, BES, BHS, BLZ, BMU, BOL, BRA, BRB, CHL, COL, CRI, CUB, CUW, CYM, DMA, DOM, ECU, FLK, GLP, GRD, GTM, GUF, GUY, HND, HTI, JAM, KNA, LCA, MEX, MSR, MTQ, NIC, PAN, PER, PRY, SLV, SUR, SXM, TCA, TTO, URY, VCT, VEN, VGB] + +R12_MEA: + parent: World + name: Middle East and North Africa + child: [ARE, BHR, DZA, EGY, ESH, IRN, IRQ, ISR, JOR, KWT, LBN, LBY, MAR, OMN, PSE, QAT, SAU, SDN, SSD, SYR, TUN, YEM] + +R12_NAM: + parent: World + name: North America + child: [CAN, GUM, PRI, SPM, USA, VIR] + +R12_PAO: + parent: World + name: Pacific OECD + child: [AUS, JPN, NZL] + +R12_PAS: + parent: World + name: Other Pacific Asia + description: >- + Trust Territory of the Pacific Islands (PCI) still included in this list, + but it was dissolved into MHL, FSM, MNP and PLW in 1986. + child: [ASM, BRN, CCK, COK, CXR, FJI, FSM, IDN, KIR, KOR, MAC, MHL, MMR, MNP, MYS, NCL, NFK, NIU, NRU, PCI, PCN, PHL, PLW, PNG, PYF, SGP, SLB, THA, TKL, TLS, TON, TUV, TWN, VUT, WLF, WSM] + +R12_SAS: + parent: World + name: South Asia + child: [AFG, BGD, BTN, IND, LKA, MDV, NPL, PAK] + +R12_WEU: + parent: World + name: Western Europe + child: [AND, AUT, BEL, CHE, CYP, DEU, DNK, ESP, FIN, FRA, FRO, GBR, GIB, GRC, GRL, IMN, IRL, ISL, ITA, LIE, LUX, MCO, MLT, NLD, NOR, PRT, SJM, SMR, SWE, TUR, VAT] diff --git a/nest/message_ix_models/data/node/R14.yaml b/nest/message_ix_models/data/node/R14.yaml new file mode 100644 index 0000000..197c4b4 --- /dev/null +++ b/nest/message_ix_models/data/node/R14.yaml @@ -0,0 +1,89 @@ +# Region code list +# +# - See message_data.tools.regions. +# - The ISO 3166-1 alpha-3 codes are not defined in this file, but loaded from +# a copy of the ISO database, e.g. in pycountry. +# - Among others, there are no assignments for: +# - ATA Antarctica +# - IOT British Indian Ocean Territory +# - SGS South Georgia + +World: + name: World + description: R14 regions + +R14_AFR: + parent: World + name: Sub-Saharan Africa + child: [AGO, BDI, BEN, BFA, BWA, CAF, CIV, CMR, COD, COG, COM, CPV, DJI, ERI, ETH, GAB, GHA, GIN, GMB, GNB, GNQ, KEN, LBR, LSO, MDG, MLI, MOZ, MRT, MUS, MWI, MYT, NAM, NER, NGA, REU, RWA, SDN, SEN, SHN, SLE, SOM, STP, SWZ, SYC, TCD, TGO, TZA, UGA, ZAF, ZMB, ZWE] + +R14_CAS: + parent: World + name: Central Asia + child: [KAZ, KGZ, TJK, TKM, UZB] + +R14_CPA: + parent: World + name: Centrally Planned Asia + child: [CHN, KHM, LAO, MAC, MNG, PRK, TWN, VNM] + +R14_EEU: + parent: World + name: Central and Eastern Europe + description: >- + Serbia and Montenegro (SCG) and Yugoslavia (YUG) still included in this list, + even though their ISO 3166-1 codes were deleted in 2006 and 2003, respectively. + child: [ALB, BGR, BIH, CZE, EST, HRV, HUN, LTU, LVA, MKD, MNE, POL, ROU, SCG, SRB, SVK, SVN, YUG] + +R14_LAM: + parent: World + name: Latin America and The Caribbean + description: >- + The source includes “Netherlands Antilles” which has a provisional ISO 3166-2 alpha-3 code (ANT), + but is not a country. It was dissolved in 2010 into BES, CUW and SXM, also included. + child: [ABW, AIA, ANT, ARG, ATG, BES, BHS, BLZ, BMU, BOL, BRA, BRB, CHL, COL, CRI, CUB, CUW, CYM, DMA, DOM, ECU, FLK, GLP, GRD, GTM, GUF, GUY, HND, HTI, JAM, LCA, MEX, MSR, MTQ, NIC, PAN, PER, PRI, PRY, SLV, SUR, SXM, TCA, TTO, URY, VCT, VEN, VGB] + +R14_MEA: + parent: World + name: Middle East and North Africa + child: [ARE, BHR, DZA, EGY, ESH, IRN, IRQ, ISR, JOR, KWT, LBN, LBY, MAR, OMN, PSE, QAT, SAU, SDN, SSD, SYR, TUN, YEM] + +R14_NAM: + parent: World + name: North America + child: [CAN, GUM, SPM, USA] + +R14_PAO: + parent: World + name: Pacific OECD + child: [AUS, JPN, NZL] + +R14_PAS: + parent: World + name: Other Pacific Asia + child: [ASM, BRN, CCK, COK, CXR, FJI, FSM, IDN, KIR, KOR, MHL, MMR, MNP, MYS, NCL, NFK, NIU, NRU, PCN, PHL, PLW, PNG, PYF, SGP, SLB, THA, TKL, TLS, TON, TUV, VUT, WLF, WSM] + +R14_RUS: + parent: World + name: Russia + child: [RUS] + +R14_SAS: + parent: World + name: South Asia + child: [AFG, BGD, BTN, IND, LKA, MDV, NPL, PAK] + +R14_SCS: + parent: World + name: Caspian States + child: [ARM, AZE, GEO] + +R14_UBM: + parent: World + name: Ukraine, Belarus, and Moldova + child: [BLR, MDA, UKR] + +R14_WEU: + parent: World + name: Western Europe + child: [AND, AUT, BEL, CHE, CYP, DEU, DNK, ESP, FIN, FRA, FRO, GBR, GIB, GRC, GRL, IMN, IRL, ISL, ITA, LIE, LUX, MCO, MLT, NLD, NOR, PRT, SJM, SMR, SWE, TUR, VAT] diff --git a/nest/message_ix_models/data/node/R32.yaml b/nest/message_ix_models/data/node/R32.yaml new file mode 100644 index 0000000..bb5976a --- /dev/null +++ b/nest/message_ix_models/data/node/R32.yaml @@ -0,0 +1,196 @@ +World: + name: World + description: |- + Region code list for the SSP 32-region aggregation. + + Source: https://tntcat.iiasa.ac.at/SspDb/dsd?Action=htmlpage&page=about + +R32ANUZ: + parent: World + name: Australia & New Zealand + description: This region includes Australia and New Zealand. + child: [AUS, NZL] + +R32BRA: + parent: World + name: Brazil + child: [BRA] + +R32CAN: + parent: World + name: Canada + child: [CAN] + +R32CAS: + parent: World + name: Central Asia + description: This region includes the countries of Central Asia. + child: [ARM, AZE, GEO, KAZ, KGZ, TJK, TKM, UZB] + +R32CHN: + parent: World + name: China excl. Taiwan + description: China (Mainland, Hongkong, Macao; excl. Taiwan). + child: [CHN, HKG, MAC] + +R32EEU: + parent: World + name: Eastern Europe + description: |- + Eastern Europe (excl. former Soviet Union and EU member states). + + The source page describes “the former Yugoslav Republic of Macedonia”; this entity was renamed in 2018 to “North Macedonia”. + child: [ALB, BIH, HRV, MKD, MNE, SRB] + +R32EEU-FSU: + parent: World + name: Former Soviet Union in Eastern Europe + description: Eastern Europe, former Soviet Union (excl. Russia and EU members). + child: [BLR, MDA, UKR] + +R32EFTA: + parent: World + name: European Free Trade Association + description: |- + This region includes Iceland, Norway, Switzerland. + + The source omits Liechtenstein, but it is included as a child. + child: [ISL, LIE, NOR, CHE] + +R32EU12-H: + parent: World + name: EU member states new in 2004, high income + description: New EU member states that joined as of 2004 - high income. + child: [CYP, CZE, EST, HUN, MLT, POL, SVK, SVN] + +R32EU12-M: + parent: World + name: EU member states new in 2004, middle income + description: New EU member states that joined as of 2004 - medium income. + child: [BGR, LTU, LVA, ROU] + +R32EU15: + parent: World + name: EU member states pre-2004 + description: This region includes European Union member states that joined prior to 2004. + child: [AUT, BEL, DEU, DNK, ESP, FIN, FRA, GBR, GRC, IRL, ITA, LUX, NLD, PRT, SWE] + +R32IDN: + parent: World + name: Indonesia + child: [IDN] + +R32IND: + parent: World + name: India + child: [IND] + +R32JPN: + parent: World + name: Japan + child: [JPN] + +R32KOR: + parent: World + name: Republic of Korea + child: [KOR] + +R32LAM-L: + parent: World + name: Latin America, low income + description: This region includes the countries of Latin America (excl. Brazil, Mexico) - low income. + child: [BLZ, GTM, HND, HTI, NIC] + +R32LAM-M: + parent: World + name: Latin America, middle & high income + description: |- + This region includes the countries of Latin America (excl. Brazil, Mexico) - medium and high income. + + The source includes “Netherlands Antilles” which has a provisional ISO 3166-2 alpha-3 code (ANT), but is not a country. It was dissolved in 2010 into BES, CUW and SXM, also included. + child: [ABW, AIA, ANT, BES, BHS, BMU, BOL, BRB, CHL, COL, CRI, CUB, CUW, DMA, DOM, ECU, GLP, GRD, GUF, GUY, JAM, KNA, LCA, PAN, PER, PRY, MTQ, SLV, SUR, SXM, TTO, URY, VCT, VEN] + +R32MEA-H: + parent: World + name: Middle East & Asia, high income + description: This region includes the countries of Middle East Asia - high income. + child: [ARE, BHR, ISR, KWT, OMN, QAT, SAU] + +R32MEA-M: + parent: World + name: Middle East & Asia, low & middle income + description: This region includes the countries of Middle East Asia - low and medium income. + child: [IRN, IRQ, JOR, LBN, PSE, SYR, YEM] + +R32MEX: + parent: World + name: Mexico + child: [MEX] + +R32NAF: + parent: World + name: North Africa + description: This region includes the countries of North Africa. + child: [DZA, EGY, ESH, LBY, MAR, TUN] + +R32OAS-CPA: + parent: World + name: Other Asia + description: This region includes the countries of Other Asia - former Centrally Planned Asia. + child: [KHM, LAO, MNG, VNM] + +R32OAS-L: + parent: World + name: Other Asia, low income + description: This region includes the countries of Other Asia - low income. + child: [BGD, FJI, FSM, MMR, NPL, PHL, PNG, PRK, SLB, TLS, TON, VUT, WSM] + +R32OAS-M: + parent: World + name: Other Asia, middle & high income + description: This region includes the countries of Other Asia - medium and high income. + child: [BRN, BTN, GUM, LKA, MDV, MYS, NCL, PYF, SGP, THA] + +R32PAK: + parent: World + name: Pakistan & Afghanistan + description: This region includes Pakistan and Afghanistan. + child: [AFG, PAK] + +R32RUS: + parent: World + name: Russian Federation + child: [RUS] + +R32SAF: + parent: World + name: South Africa + child: [ZAF] + +R32SSA-L: + parent: World + name: Sub-Saharan Africa, low income + description: This region includes the countries of Subsahara Africa (excl. South Africa) - low income. + child: [BDI, BEN, BFA, CAF, CIV, CMR, COD, COG, COM, CPV, DJI, ERI, ETH, GHA, GIN, GMB, GNB, KEN, LBR, LSO, MDG, MLI, MOZ, MRT, MWI, NER, NGA, RWA, SDN, SEN, SLE, SOM, SSD, STP, SWZ, TCD, TGO, TZA, UGA, ZMB, ZWE] + +R32SSA-M: + parent: World + name: Sub-Saharan Africa, middle & high income + description: This region includes the countries of Subsahara Africa (excl. South Africa) - medium and high income. + child: [AGO, BWA, GAB, GNQ, MUS, MYT, NAM, REU, SYC] + +R32TUR: + parent: World + name: Turkey + child: [TUR] + +R32TWN: + parent: World + name: Taiwan + child: [TWN] + +R32USA: + parent: World + name: United States of America + description: United States of America. + child: [PRI, USA, VIR] diff --git a/nest/message_ix_models/data/node/RCP.yaml b/nest/message_ix_models/data/node/RCP.yaml new file mode 100644 index 0000000..e5a391d --- /dev/null +++ b/nest/message_ix_models/data/node/RCP.yaml @@ -0,0 +1,50 @@ +# Codes for the "node" dimension of the Representative Concentration Pathways +# +# - See message_data.tools.regions. +# - Since ixmp does not support the "." character in IDs, the names "R5.2ASIA" +# are transformed to "R5_ASIA" etc. The original code is left in a +# description. +# - The ISO 3166-1 alpha-3 codes are not defined in this file, but loaded from +# a copy of the ISO database, e.g. in pycountry. +# - Among others, there are no assignments for: +# - ATA Antarctica +# - IOT British Indian Ocean Territory +# - SGS South Georgia + +World: + name: World + description: RCP regions + +R5_ASIA: + parent: World + description: |- + Officially "R5.2ASIA". + + Trust Territory of the Pacific Islands (PCI) still included in this list, but it was dissolved into MHL, FSM, MNP and PLW in 1986. + child: [AFG, ASM, BGD, BRN, BTN, CCK, CHN, COK, CXR, FJI, FSM, GUM, HKG, IDN, IND, KHM, KIR, KOR, LAO, LKA, MAC, MDV, MHL, MMR, MNG, MNP, MYS, MYT, NCL, NFK, NIU, NPL, NRU, PAK, PCI, PCN, PHL, PLW, PNG, PRK, PYF, SGP, SLB, SYC, THA, TKL, TLS, TON, TUV, TWN, VNM, VUT, WSM] + +R5_LAM: + parent: World + description: |- + Officially "R5.2LAM". + + The source includes “Netherlands Antilles” which has a provisional ISO 3166-2 alpha-3 code (ANT), but is not a country. It was dissolved in 2010 into BES, CUW and SXM, also included. + child: [ABW, AIA, ANT, ARG, ATG, BES, BHS, BLZ, BMU, BOL, BRA, BRB, CHL, COL, CRI, CUB, CUW, CYM, DMA, DOM, ECU, GLP, GRD, GTM, GUF, GUY, HND, HTI, JAM, KNA, LCA, MEX, MSR, MTQ, NIC, PAN, PER, PRY, SLV, SUR, SXM, TTO, URY, VCT, VEN] + +R5_MAF: + parent: World + description: Officially "R5.2MAF". + child: [AGO, ARE, BDI, BEN, BFA, BHR, BWA, CAF, CIV, CMR, COD, COG, COM, CPV, DJI, DZA, EGY, ERI, ESH, ETH, GAB, GHA, GIN, GMB, GNB, GNQ, IRN, IRQ, ISR, JOR, KEN, KWT, LBN, LBR, LBY, LSO, MAR, MDG, MLI, MOZ, MRT, MUS, MWI, NAM, NER, NGA, OMN, PSE, QAT, REU, RWA, SAU, SDN, SEN, SLE, SOM, SSD, STP, SWZ, SYR, TCD, TGO, TUN, TZA, UGA, YEM, ZAF, ZMB, ZWE] + +R5_OECD: + parent: World + description: |- + Officially "R5.2OECD". + + Serbia and Montenegro (SCG) and Yugoslavia (YUG) still included in this list, even though their ISO 3166-1 codes were deleted in 2006 and 2003, respectively. + child: [ALB, AND, AUS, AUT, BEL, BGR, BIH, CAN, CHE, CYP, CZE, DEU, DNK, ESP, EST, FIN, FLK, FRA, FRO, GBR, GIB, GRC, GRL, HRV, HUN, IMN, IRL, ISL, ITA, JPN, LIE, LTU, LUX, LVA, MCO, MKD, MLT, MNE, NLD, NOR, NZL, POL, PRI, PRT, ROU, SCG, SHN, SJM, SMR, SPM, SRB, SVK, SVN, SWE, TCA, TUR, USA, VAT, VGB, VIR, WLF, YUG] + +R5_REF: + parent: World + description: Officially "R5.2REF". + child: [ARM, AZE, BLR, GEO, KAZ, KGZ, MDA, RUS, TJK, TKM, UKR, UZB] diff --git a/nest/message_ix_models/data/node/ZMB.yaml b/nest/message_ix_models/data/node/ZMB.yaml new file mode 100644 index 0000000..3c50a10 --- /dev/null +++ b/nest/message_ix_models/data/node/ZMB.yaml @@ -0,0 +1,10 @@ +# Codes for the "node" dimension of the MESSAGE-ZM model + +World: + name: World + description: MESSAGE-ZM regions + +Zambia: + name: Zambia + parent: World + child: [ZMB] diff --git a/nest/message_ix_models/data/relation/A.yaml b/nest/message_ix_models/data/relation/A.yaml new file mode 100644 index 0000000..e2501df --- /dev/null +++ b/nest/message_ix_models/data/relation/A.yaml @@ -0,0 +1,154 @@ +# Relation codes +# +# This set includes all those expected by code in message_data as of 2023-02-04. +# It is the union of entries from: +# +# - data/buildings/set.yaml +# - data/transport/set.yaml +# +# The descriptions are derived from CD-LINKS.yaml + +BCA_Emission: + description: >- + Emissions of BCA. + + Weight as BCA, kg BCA per kW·a. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +CH4_Emission: + description: >- + Emissions of CH4 + + Weight as CH4, kg CH4 per kW·a. + group: emission_factor + parameters: activity, lower, upper + technology-entry: 1 + +CO_Emission: + description: >- + Emissions of CO (weight as CO, kg CO per kWyr) + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +CO2_r_c: + description: CO₂ emissions of residential and commercial buildings sector. + +CO2_trp: + description: CO₂ emissions of transport sector. + +HFC_Emission: + description: >- + Emissions of HFC (weight as HFC, kg HFC-134a-equivalent per kWyr) + group: emission_factor + parameters: activity, lower, upper + technology-entry: 1 + +HFC_foam_red: + description: >- + Constraint to link HFC emissions from insulation foams to reduction + efficiency of abatement technologies. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +HFC_mobile_red: + description: >- + Constraint to link HFC emissions from mobile air conditioning to reduction + efficiency of abatement technologies. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +HFC_rescom_red: + description: >- + Constraint to link HFC emissions from residential & commercial refrigeration + & AC to reduction efficiency of abatement technologies. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +N2O_Emission: + description: >- + Emissions of N₂O + + Weight as N₂O, kg N₂O per kW·a. + group: emission_factor + parameters: activity, lower, upper + technology-entry: 1 + +NH3_Emission: + description: >- + Emissions of NH₃ + + Weight as NH₃, kg NH₃ per kW·a. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +NOx_Emission: + description: >- + Emissions of nitrous oxides (NOx) + + Weight as NOx, kg NOx per kW·a. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +OCA_Emission: + description: >- + Emissions of OCA + + Weight as OCA, kg OCA per kW·a. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +oper_res: + description: Operating reserve equation for electricity systems integration. + technology-entry: 1 + parameters: activity, lower + group: renewable formulation + +SF6_Emission: + description: >- + Emissions of SF₆ + + Weight as SF₆, kg SF₆ per kW·a. + group: emission_factor + parameters: activity, lower, upper + technology-entry: 1 + +SF6_mag_red: + description: >- + Constraint to link SF₆ emissions from electrical equipment to reduction + efficiency of abatement technologies. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +SO2_Emission: + description: >- + Emissions of SO₂ + + Weight as SO₂, kg SO₂ per kW·a. + group: emission_factor + parameters: activity, lower + technology-entry: 1 + +solar_th_pot: + description: Solar thermal potential + technology-entry: 1 + parameters: activity, upper + group: renewable formulation + +VOC_Emission: + description: >- + Emissions of volatile organic compounds (VOCs) + + Weight as VOC, kg VOC per kW·a. + group: emission_factor + parameters: activity, lower + technology-entry: 1 diff --git a/nest/message_ix_models/data/relation/B.yaml b/nest/message_ix_models/data/relation/B.yaml new file mode 100644 index 0000000..8294c49 --- /dev/null +++ b/nest/message_ix_models/data/relation/B.yaml @@ -0,0 +1,324 @@ +# Relation codes +# +# This set includes all values appearing in: +# ixmp://ixmp-dev/MESSAGEix-GLOBIOM 1.1-BMT-R12 (NAVIGATE)/NPi-ref#2 + +- BCA_Emission +- BCA_Emission_bunkers +- CF4_Emission +- CF4_alm_red +- CH4_Emission +- CH4_Emission_bunkers +- CH4_RemainingLink +- CH4_new_Emission +- CH4_nonenergy +- CH4n_landfills_red +- CO2_Emission +- CO2_Emission_Global_Total +- CO2_cc +- CO2_feedstocks +- CO2_ind +- CO2_r_c +- CO2_shipping +- CO2_trade +- CO2_trp +- CO_Emission +- CO_Emission_bunkers +- CO_nonenergy +- FE_coal +- FE_electricity+dh +- FE_feedstock +- FE_final_energy +- FE_gaseous +- FE_industry [266/1626] +- FE_liquids +- FE_new_biomass +- FE_old_biomass +- FE_resid_comm +- FE_transport +- HFC_Emission +- HFC_foam_red +- HFC_mobile_red +- HFC_rescom_red +- HFCequivOther +- IndGDPAdLink +- IndGDPNiLink +- IndThermDemLink +- N2O_Emission +- N2O_Emission_bunkers +- N2O_nonenergy +- N2On_adipic_red +- N2On_nitric_red +- N2Oother +- NH3_Emission +- NOx_Emission +- NOx_Emission_bunkers +- NOx_nonenergy +- OCA_Emission +- OCA_Emission_bunkers [241/1626] +- OilPrices +- PE_BACKSTOPS +- PE_coal +- PE_domestic_total +- PE_export_total +- PE_gas +- PE_hydro +- PE_import_share +- PE_import_total +- PE_new_renewables +- PE_nuclear +- PE_oil +- PE_old_renewables +- PE_synliquids +- PE_total_direct +- PE_total_engineering +- PE_total_traditional +- PM2_Emission +- POPtoAeroNonMDILink +- POPtoAerosolMDILink +- POPtoDomWasteWaLink +- POPtoFireExtLink +- POPtoHuSewageLink +- POPtoSolvent +- RES_variable_limt +- SF6_Emission +- SF6_elec_red [214/1626] +- SF6_mag_red +- SO2_Emission +- SO2_Emission_bunkers +- SO2_elec +- SO2_import +- SO2_ind +- SO2_r_c +- SO2_red_ref +- SO2_red_synf +- SolWaPOPLink +- TCE_Emission +- TCE_Emission_AFR_CPA_LAC_MEA_PAS_SAS +- TCE_Emission_FSU_MEA +- TCE_Emission_NAM_PAO_EEU_WEU +- TCE_Emission_NAM_PAO_EEU_WEU_FSU +- TCE_regional +- TCE_rel2020 +- TCE_trade +- TCEl +- TCF4_Emission +- TCH4_Emission +- TCO2_Emission +- THFC_Emission +- TN2O_Emission +- TSF6_Emission +- UE_feedstock +- UE_feedstock_coal [187/1626] +- UE_feedstock_foil +- UE_feedstock_gas +- UE_feedstock_liquid +- UE_industry_sp +- UE_industry_sp_fc +- UE_industry_sp_liquid +- UE_industry_sp_solar +- UE_industry_th +- UE_industry_th_electric +- UE_industry_th_foil +- UE_industry_th_gas +- UE_industry_th_hydrogen +- UE_industry_th_liquid +- UE_industry_th_low_temp_heat +- UE_industry_th_solar +- UE_industry_th_solid +- UE_res_comm_sp +- UE_res_comm_sp_fc +- UE_res_comm_sp_solar +- UE_res_comm_th +- UE_res_comm_th_biomass +- UE_res_comm_th_electric +- UE_res_comm_th_foil +- UE_res_comm_th_gas +- UE_res_comm_th_heat +- UE_res_comm_th_hp +- UE_res_comm_th_hydrogen [160/1626] +- UE_res_comm_th_liquid +- UE_res_comm_th_solar +- UE_res_comm_th_solids +- UE_transport +- UE_transport_electric +- UE_transport_electric_Minimum +- UE_transport_fc +- UE_transport_foil +- UE_transport_gas +- UE_transport_liquid +- VOC_Emission +- VOC_Emission_bunkers +- VOC_IndThermLink +- VOC_nonenergy +- WasteGenToBCALink +- WasteGenToCH4Link +- WasteGenToCOLink +- WasteGenToNOxLink +- WasteGenToOCALink +- WasteGenToPM2Link +- WasteGenToSO2Link +- WasteGenToVOCLink +- bco2_trans_disp +- bio_extr_mpen_c [136/1626] +- bio_scrub_lim +- co2_trans_disp +- co_gen_limit +- coal-exp +- coal_extr +- coal_extr_mpen_c +- coal_scrub_lim +- csp_japan_limit +- demF_limit +- demI_limit +- demR_limit +- demb_limit +- demp_limit +- demt_limit +- domestic_coal +- domestic_gas +- ele_nuc +- elec_coal +- elec_gas +- elec_hydro +- elec_nuclear +- elec_relations2_coal +- elec_relations2_gas +- elec_relations2_hydro +- elec_relations2_nuclear +- elec_relations2_oil +- elec_relations2_renewable [109/1626] +- extraction_coal +- extraction_gas +- extraction_oil +- foil_prod +- gas_export +- gas_extr_mpen_c +- gas_mix_lim +- gas_prod +- gas_scrub_lim +- gas_util +- global_GCO2 +- global_GSO2 +- h2_exp_limit +- h2_scrub_limit +- h2mix_direct +- hydro_min +- hydro_pot +- import_dependence +- lfil_limit +- lim_exp_afr_LNG +- lim_exp_afr_coal +- lim_exp_afr_eth +- lim_exp_afr_meth +- lim_exp_cpa_oil +- lim_exp_eeu_eth +- lim_exp_eeu_meth +- lim_exp_fsu_LNG [82/1626] +- lim_exp_fsu_coal +- lim_exp_fsu_eth +- lim_exp_fsu_meth +- lim_exp_fsu_oil +- lim_exp_lam_LNG +- lim_exp_lam_oil +- lim_exp_mea_LNG +- lim_exp_mea_oil +- lim_exp_nam_LNG +- lim_exp_nam_coal +- lim_exp_pao_coal +- lim_exp_pao_eth +- lim_exp_pao_meth +- lim_exp_pas_LNG +- lim_exp_weu_eth +- lim_exp_weu_meth +- limit_tot_BECCS +- max_coal_ind +- meth_exp_limit +- min-liquids_industry +- min-liquids_res-com +- minimum_recycling_aluminum +- minimum_recycling_steel +- nica_limit +- nuc_lc_in_el +- oil_based_elec_gen +- oil_extr_mpen_c [55/1626] +- oil_imp_c +- oil_prod +- oil_trd +- oper_res +- pass_out_trb +- prod_low_lim_BIEL +- prod_low_lim_BIFU +- prod_low_lim_BIHE +- prod_low_lim_COEL +- prod_low_lim_GAEL +- prod_low_lim_GEEL +- prod_low_lim_HYEL +- prod_low_lim_NUEL +- prod_low_lim_OIEL +- prod_low_lim_SOEL +- prod_low_lim_WIEL +- res_japan_limit +- res_marg +- share_low_lim_NFEG +- share_low_lim_NFPE +- share_low_lim_PEGas +- share_low_lim_REEG +- share_low_lim_REFE +- share_low_lim_REPE +- sm1_ppl_res +- sm3_ppl_res +- solar_csp_pot +- solar_csp_pot1 [27/1626] +- solar_csp_pot2 +- solar_csp_pot3 +- solar_csp_pot4 +- solar_csp_pot5 +- solar_csp_pot6 +- solar_csp_pot7 +- solar_curtailment_1 +- solar_curtailment_2 +- solar_curtailment_3 +- solar_pot +- solar_pot2 +- solar_pot3 +- solar_pot4 +- solar_pot5 +- solar_pot6 +- solar_pot7 +- solar_pot8 +- solar_pot_hist_2010 +- solar_pot_hist_2015 +- solar_pot_hist_2020 +- solar_ppl_res +- solar_res_cv +- solar_step +- solar_step2 +- solar_step3 +- solar_th_pot' +- syn_liq_exp +- total_TCO2 +- trp_energy +- unabated_coal_lim +- wind_curtailment_1 +- wind_curtailment_2 +- wind_curtailment_3 +- wind_pof +- wind_pof2 +- wind_pof3 +- wind_pof4 +- wind_pof5 +- wind_pot +- wind_pot2 +- wind_pot3 +- wind_pot4 +- wind_pot_hist_2005 +- wind_pot_hist_2010 +- wind_pot_hist_2015 +- wind_pot_hist_2020 +- wind_ppl_offshore_res +- wind_ppl_res +- wind_res_cv +- wind_step +- wind_step2 +- wind_step3 diff --git a/nest/message_ix_models/data/relation/CD-LINKS.yaml b/nest/message_ix_models/data/relation/CD-LINKS.yaml new file mode 100644 index 0000000..453170a --- /dev/null +++ b/nest/message_ix_models/data/relation/CD-LINKS.yaml @@ -0,0 +1,1939 @@ +# Relation codes +# +# The IDs, descriptions, and other annotations are derived from a spreadsheet +# appearing in IIASA ECE SharePoint, related to the CD-LINKS project. +# +# The entries appear in the same order as in the file. + +BCA_Emission_bunkers: + technology-entry: 1 + parameters: activity + description: >- + BC emission from international shipping (bunker fuel) + group: removed +CO_Emission_bunkers: + technology-entry: 1 + parameters: activity + description: >- + CO emission from international shipping (bunker fuel) + group: removed +CO2_cc: + technology-entry: 1 + parameters: activity + description: >- + Emissions of CO2 in central conversion and extraction + group: removed +CO2_ind: + technology-entry: 1 + parameters: activity + description: >- + CO2 emissions of industry sector + group: removed +CO2_r_c: + technology-entry: 1 + parameters: activity + description: >- + CO2 emissions of residential and commercial sector + # NB despite this annotation, the relation still has entries in current + # scenarios; see A.yaml and B.yaml + group: removed +CO2_trp: + technology-entry: 1 + parameters: activity + description: >- + CO2 esmissions of transport sector + # NB despite this annotation, the relation still has entries in current + # scenarios; see A.yaml and B.yaml + group: removed +coal_extr: + technology-entry: 1 + parameters: activity + description: >- + In R11 GLB only - used for accounting or limiting global coal extraction + (currently inactive as only positive entries) + group: removed +elec_relations2_coal: + technology-entry: 1 + parameters: activity + description: >- + "(?) Counter - electricty from coal (inactive as no -1) + group: removed +elec_relations2_gas: + technology-entry: 1 + parameters: activity + description: >- + "(?) Counter - electricty from gas (inactive as no -1) + group: removed +elec_relations2_hydro: + technology-entry: 1 + parameters: activity + description: >- + "(?) Counter - electricty from hydro (inactive as no -1) + group: removed +elec_relations2_nuclear: + technology-entry: 1 + parameters: activity + description: >- + "(?) Counter - electricty from nuclear (inactive as no -1) + group: removed +elec_relations2_oil: + technology-entry: 1 + parameters: activity + description: >- + "(?) Counter - electricty from oil (inactive as no -1) + group: removed +elec_relations2_renewable: + technology-entry: 1 + parameters: activity + description: >- + "(?) Counter - electricty from renewable (inactive as no -1) + group: removed +extraction_coal: + technology-entry: 1 + parameters: activity + description: >- + Constrains/calibrates historical coal extraction (inactive as no -1) + group: removed +extraction_gas: + technology-entry: 1 + parameters: activity + description: >- + Constrains/calibrates historical gas extraction (inactive as no -1) + group: removed +extraction_oil: + technology-entry: 1 + parameters: activity + description: >- + Constrains/calibrates historical oil extraction (inactive as no -1) + group: removed +FE_coal: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_electricity: + kind: + technology-entry: 1 + parameters2: upper + description: >- + final energy accounting equation + group: removed +FE_feedstock: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_final_energy: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_gaseous: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_industry: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_liquids: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_new_biomass: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_old_biomass: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_resid_comm: + technology-entry: 1 + parameters: activity + description: >- + final energy accounting equation + group: removed +FE_transport: + technology-entry: 1 + parameters: activity + description: >- + final energy use in transport sector + group: removed +global_GCO2: + technology-entry: 1 + parameters: activity + description: >- + R11-GLB only - Total CO2 emissions + group: removed +global_GSO2: + technology-entry: 1 + parameters: activity + description: >- + R11-GLB only - Total SO2 Emissions + group: removed +import_dependence: + technology-entry: 1 + parameters: activity + description: >- + maximum import dependence + group: removed +NOx_Emission_bunkers: + technology-entry: 1 + parameters: activity + description: >- + NOx emission from international shipping (bunker fuel) + group: removed +nuc_lc_in_el: + technology-entry: 1 + parameters: activity + description: >- + Constrains nuc_lc contribution to electricity production + group: removed +OCA_Emission_bunkers: + technology-entry: 1 + parameters: activity + description: >- + OC emission from international shipping (bunker fuel) + group: removed +oil_prod: + technology-entry: 1 + parameters: activity + description: >- + R11-NAM only - Limits import dependence of crude oil to max 60% (inactive + as there are no negative entries and no limits) + group: removed +oil_trd: + technology-entry: 1 + parameters: activity + description: >- + In R11 GLB only - penalty for international trade introduced to reflect + costs for importing region. In SOME other regions - links/limits net oil + product imports to fraction of net crude imports. + group: removed +OilPrices: + technology-entry: 1 + parameters: activity + description: >- + crude oil import prices + group: removed +PE_BACKSTOPS: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_coal: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_gas: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_hydro: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_new_renewables: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_nuclear: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_oil: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_old_renewables: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_synliquids: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_total_direct: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_total_engineering: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +PE_total_traditional: + technology-entry: 1 + parameters: activity + description: >- + primary energy accounting equation + group: removed +prod_low_lim_BIEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_BIFU: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_BIHE: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_COEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_GAEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_GEEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_HYEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_NUEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_OIEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_SOEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +prod_low_lim_WIEL: + technology-entry: 0 + parameters: "" + description: >- + INDC Policy constraint + group: removed +share_low_lim_NFEG: + technology-entry: 0 + parameters: "" + description: >- + removed +share_low_lim_NFPE: + technology-entry: 0 + parameters: "" + description: >- + removed +share_low_lim_PEGas: + technology-entry: 0 + parameters: "" + description: >- + removed +share_low_lim_REEG: + technology-entry: 0 + parameters: "" + group: removed +share_low_lim_REFE: + technology-entry: 0 + parameters: "" + group: removed +share_low_lim_REPE: + technology-entry: 0 + parameters: "" + group: removed +SO2_Emission_bunkers: + technology-entry: 1 + parameters: activity + description: >- + SO2 emission from international shipping (bunker fuel) + group: removed +TCE_Emission_AFR_CPA_LAC_MEA_PAS_SAS: + technology-entry: 1 + parameters: activity + description: >- + total carbon-equivalent emissions for set of regions + group: removed +TCE_Emission_FSU_MEA: + technology-entry: 1 + parameters: activity + description: >- + total carbon-equivalent emissions for set of regions + group: removed +TCE_Emission_NAM_PAO_EEU_WEU: + technology-entry: 1 + parameters: activity + description: >- + total carbon-equivalent emissions for set of regions + group: removed +TCE_Emission_NAM_PAO_EEU_WEU_FSU: + technology-entry: 1 + parameters: activity + description: >- + total carbon-equivalent emissions for set of regions + group: removed +TCE_regional: + technology-entry: 1 + parameters: activity + description: >- + total carbon-equivalent emission equation (regional) + group: removed +TCE_rel2020: + technology-entry: 1 + parameters: activity + description: >- + "(?) Counter - TCE in 2020 + group: removed +TCE_trade: + technology-entry: 1 + parameters: activity + description: >- + trade in carbon-equivalent emissions + group: removed +TCF4_Emission: + technology-entry: 1 + parameters: activity + description: >- + R11-GLB only - Total Emissions of CF4 (weight as CF4, kg CF4 per kWyr) + group: removed +TCH4_Emission: + technology-entry: 1 + parameters: activity + description: >- + total CH4 emission equation + group: removed +TCO2_Emission: + technology-entry: 1 + parameters: activity + description: >- + total CO2 emission equation + group: removed +THFC_Emission: + technology-entry: 1 + parameters: activity + description: >- + R11-GLB only - Counter for HFC emissions + group: removed +TN2O_Emission: + technology-entry: 1 + parameters: activity + description: >- + total N2O emission equation + group: removed +total_TCO2: + technology-entry: 1 + parameters: activity + description: >- + Total CO2 emissions including feedstocks + group: removed +trp_energy: + technology-entry: 1 + parameters: activity + description: >- + limits total final energy in transport, if necessary (inactive as set to + free) + group: removed +TSF6_Emission: + technology-entry: 1 + parameters: activity + description: >- + R11-GLB only - Total Emissions of SF6 (weight as SF6, kg SF6 per kWyr) + group: removed +VOC_Emission_bunkers: + technology-entry: 1 + parameters: activity + description: >- + VOC emission from international shipping (bunker fuel) + group: removed +VOC_IndThermLink: + technology-entry: 1 + parameters: activity + description: >- + Constraint links VOC solvent emissions to its driver: the industrial themal + demand. + group: removed +BCA_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of BCA (weight as BCA, kg BCA per kWyr) + group: emission_factor +bco2_trans_disp: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + CO2 transport and injection from BECCS +bio_extr_mpen_c: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link equation for joint diffusion constraint of biomass extraction technologies (deprecated?) +bio_scrub_lim: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on CO2 scrubber application (CCS add-on) for biomass power plants +cement_pro: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + relation for cement production linked to ind thermal +cement_scrub_lim: + technology-entry: 1 + parameters: activity, upper + description: >- + Constraint limiting cement scrubber activity to cement CO2 production +CF4_alm_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link CF4 emissions from aluminum to reduction efficiency of + abatement technologies. + group: add-on +CF4_Emission: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of CF4 (weight as CF4, kg CF4 per kWyr) + group: emission_factor +CH4_Emission: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of CH4 (weight as CH4, kg CH4 per kWyr) + group: emission_factor +CH4_Emission_bunkers: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Counter - R11-GLB only - CH4 emissions of international shipping + group: emission_factor +CH4_new_Emission: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Counter for CH4 emissions from newly added sources + group: emission_factor +CH4_nonenergy: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of CH4 from nonenergy sources (weight as CH4, kg CH4 per kWyr) + group: emission_factor +CH4_RemainingLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint links the remaining CH4 emissions to oil extraction + group: emission_factor +CH4n_landfills_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link landfill emissions to reduction efficiency of CH4 + abatement technologies. + group: add-on +CO_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of CO (weight as CO, kg CO per kWyr) + group: emission_factor +co_gen_limit: + technology-entry: 1 + parameters: activity, lower + description: >- + Limits cogeneration as share of total central heat production + group: share-constraint formulation +CO_nonenergy: + technology-entry: 1 + parameters: activity, lower + description: >- + CO emission from non-energy sectors + group: emission_factor +CO2_Emission: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of CO2 (weight as carbon, ton C/kWyr) + group: emission_factor +CO2_feedstocks: + technology-entry: 1 + parameters: activity, lower + description: >- + CO2 emissions of feedstock use (non-energy use) + group: emission_factor +CO2_shipping: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Counter - R11-GLB only - CO2 emissions of international shipping + group: emission_factor +CO2_trade: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Counter - R11-GLB only - CO2 emissions of energy trade + group: emission_factor +co2_trans_disp: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint to connect captured carbon to transportation and disposal + group: add-on +coal_extr_mpen_c: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link equation for joint diffusion constraint of coal extraction technologies + group: fossil resources +coal_scrub_lim: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on CO2 scrubber application (CCS add-on) for coal power plants + group: add-on +coal-exp: + parameters: activity, upper + technology-entry: 1 + description: >- + Restricts coal exports to hard coal only by limiting lignite to power + plants and other central conversion. + group: share-constraint formulation +csp_japan_limit: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on renewable resource use of Japan in PAO region + group: renewable formulation +demb_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint linking mpa for additional VOM costs for breaching share + constraints related to Industrial Thermal sector to growth rate + group: share-constraint formulation +demF_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint linking mpa for additional VOM costs for breaching share + constraints related to Feedstock sector to growth rate + group: share-constraint formulation +demI_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint linking mpa for additional VOM costs for breaching share + constraints related to Industrial Specific sector to growth rate (currently + inactive as all technologies have bda up 0) + group: share-constraint formulation +demp_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint linking mpa for additional VOM costs for breaching share + constraints related to Transport sector to growth rate + group: share-constraint formulation +demR_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint linking mpa for additional VOM costs for breaching share + constraints related to Residential Commercial Specific sector to growth rate + group: share-constraint formulation +demt_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint linking mpa for additional VOM costs for breaching share + constraints related to Residential Commercial Thermal sector to growth rate + group: share-constraint formulation +domestic_coal: + technology-entry: 1 + parameters: activity, upper + description: >- + R11-PAO only - Constraint - limits domestic coal use to x% of total primary + energy. + group: share-constraint formulation +domestic_gas: + technology-entry: 1 + parameters: activity, upper + description: >- + R11-PAO only - Constraint - limits domestic coal use to x% of total primary + energy. + group: share-constraint formulation +ele_nuc: + technology-entry: 1 + parameters: activity, lower + description: >- + Constrains/calibrates historical nuclear + group: hisc +elec_coal: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constrains/calibrates historical electricity production from coal + group: hisc +elec_gas: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constrains/calibrates historical electricity production from natural gas + group: hisc +elec_hydro: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constrains/calibrates historical electricity production from hydro + group: hisc +elec_nuclear: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constrains/calibrates historical electricity production from nuclear + group: hisc +foil_prod: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constrains/calibrates historical refinery output + group: hisc +gas_export: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constrains/calibrates historical gas exports + group: hisc +gas_extr_mpen_c: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link equation for joint diffusion constraint of gas extraction technologies + group: fossil resources +gas_mix_lim: + technology-entry: 1 + parameters: activity, upper + description: >- + R11-AFR only - Constrains hydrogen contribution to final gas usage + group: share-constraint formulation +gas_prod: + technology-entry: 1 + parameters: activity, upper + description: >- + links and stabilizes gas production (currently inactive - no positive entry) + group: obsolete (?) +gas_scrub_lim: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on CO2 scrubber application (CCS add-on) for gas power plants + group: add-on +gas_util: + technology-entry: 1 + parameters: activity, lower + description: >- + Links gas infrastructure growth between utilities versus residential and + industry (inactive as not negative entry). + group: obsolete (?) +h2_exp_limit: + technology-entry: 1 + parameters: activity, lower + description: >- + limits hydrogen exports as share of total hydrogen production + group: share-constraint formulation +h2_scrub_limit: + technology-entry: 1 + parameters: activity, lower + description: >- + scrubbing limit of CO2 from natural gas due to hydrogen blending + group: add-on +h2mix_direct: + technology-entry: 1 + parameters: activity, lower + description: >- + blending of hydrogen into gas grid + group: RES +HFC_Emission: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of HFC (weight as HFC, kg HFC-134a-equivalent per kWyr) + group: emission_factor +HFC_foam_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link HFC emissions from insulation foams to reduction + efficiency of abatement technologies. + group: emission_factor +HFC_mobile_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link HFC emissions from mobile airconditioning to reduction + efficiency of abatement technologies. + group: emission_factor +HFC_rescom_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link HFC emissions from residential & commercial refrigeration + & AC to reduction efficiency of abatement technologies. + group: emission_factor +HFCequivOther: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Counter for the HFC-134 equiv. emissions from solvents, fire extinguishers, + aerosols MDI, aerosols non-MDI. + group: emission_factor +hydro_min: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint limiting minimum hydro production + group: hydro resource +hydro_pot: + technology-entry: 1 + parameters: activity, upper + description: >- + Constraint limiting maximum hydro potential + group: hydro resource +IndGDPAdLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link of GDP to adipic acid + group: emission_factor +IndGDPNiLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link of GDP to nitric acid + group: emission_factor +IndThermDemLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint links industry waste water CH4 emissions to its driver: the + industrial themal demand. + group: emission_factor +lfil_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint limiting gr of landfill mitigaiton technology activty (mpa) + group: emission_factor +lim_exp_afr_coal: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on coal exports + group: share-constraint formulation +lim_exp_afr_eth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on hydrogen exports + group: share-constraint formulation +lim_exp_afr_LNG: + technology-entry: 1 + parameters: activity, upper + description: >- + R11_GLB only - limits LNG exports from afr + group: share-constraint formulation +lim_exp_afr_meth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on methanol (synthetic fossil fuel) exports + group: share-constraint formulation +lim_exp_cpa_oil: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on oil exports + group: share-constraint formulation +lim_exp_eeu_eth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on ethanol (biofuel) exports + group: share-constraint formulation +lim_exp_eeu_meth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on methanol (synthetic fossil fuel) exports + group: share-constraint formulation +lim_exp_fsu_coal: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on coal exports + group: share-constraint formulation +lim_exp_fsu_eth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on ethanol (biofuel) exports + group: share-constraint formulation +lim_exp_fsu_LNG: + technology-entry: 1 + parameters: activity, upper + description: >- + R11_GLB only - limits LNG exports from fsu + group: share-constraint formulation +lim_exp_fsu_meth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on methanol (synthetic fossil fuel) exports + group: share-constraint formulation +lim_exp_fsu_oil: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on oil exports + group: share-constraint formulation +lim_exp_lam_LNG: + technology-entry: 1 + parameters: activity, upper + description: >- + R11_GLB only - limits LNG exports from lam + group: share-constraint formulation +lim_exp_lam_oil: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on oil exports + group: share-constraint formulation +lim_exp_mea_LNG: + technology-entry: 1 + parameters: activity, upper + description: >- + R11_GLB only - limits LNG exports from mea + group: share-constraint formulation +lim_exp_mea_oil: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on oil exports + group: share-constraint formulation +lim_exp_nam_coal: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on coal exports + group: share-constraint formulation +lim_exp_nam_LNG: + technology-entry: 1 + parameters: activity, upper + description: >- + R11_GLB only - limits LNG exports from nam + group: share-constraint formulation +lim_exp_pao_coal: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on coal exports + group: share-constraint formulation +lim_exp_pao_eth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on ethanol (biofuel) exports + group: share-constraint formulation +lim_exp_pao_meth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on methanol (synthetic fossil fuel) exports + group: share-constraint formulation +lim_exp_pas_LNG: + technology-entry: 1 + parameters: activity, upper + description: >- + R11_GLB only - limits LNG exports from pas + group: share-constraint formulation +lim_exp_weu_eth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on ethanol (biofuel) exports + group: share-constraint formulation +lim_exp_weu_meth: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on methanol (synthetic fossil fuel) exports + group: share-constraint formulation +limit_tot_BECCS: + technology-entry: 1 + parameters: activity, lower + description: >- + limit on BECCS application + group: share-constraint formulation +max_coal_ind: + technology-entry: 1 + parameters: activity, lower + description: >- + R11-NAM only - limits coal to max of 50% of gas in industries + group: share-constraint formulation +meth_exp_limit: + technology-entry: 1 + parameters: activity, lower + description: >- + limits methanol exports as share of total methanol production + group: share-constraint formulation +min-liquids_industry: + technology-entry: 1 + parameters: activity, lower + group: share-constraint formulation +min-liquids_res_com: + technology-entry: 1 + parameters: activity, lower + group: share-constraint formulation +N2O_Emission: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of N2O (weight as N2O, kg N2O per kWyr) + group: emission_factor +N2O_Emission_bunkers: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Counter - R11-GLB only - N2O emissions of international shipping + group: emission_factor +N2O_nonenergy: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of N2O from nonenergy sources (weight as N2O, kg N2O per kWyr) + group: emission_factor +N2On_adipic_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link adipic acid emissions to reduction efficiency of N2O + abatement technologies. + group: emission_factor +N2On_nitric_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link nitric acid emissions to reduction efficiency of N2O + abatement technologies. + group: emission_factor +N2Oother: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Counter for the N2O emissions from Manure Management, Human Sewage, Other + Agricultural sources, Other Non Ag Sources. + group: emission_factor +NH3_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of NH3 (weight as NH3, kg NH3 per kWyr) + group: emission_factor +nica_limit: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Constraint limiting gr of catalytic converter (mitigaiton) technology + activty (mpa). + group: emission_factor +NOx_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of NOx (weight as NOx, kg NOx per kWyr) + group: emission_factor +NOx_nonenergy: + technology-entry: 1 + parameters: activity, lower + description: >- + NOx emission from non-energy sectors + group: emission_factor +OCA_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of OCA (weight as OCA, kg OCA per kWyr) + group: emission_factor +oil_based_elec_gen: + technology-entry: 1 + parameters: activity, lower + description: >- + Constrains/calibrates historical minimum share of oil for electricity + generation. + group: hisc +oil_extr_mpen_c: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link equation for joint diffusion constraint of oil extraction technologies + group: fossil resources +oil_imp_c: + technology-entry: 1 + parameters: activity, upper + description: >- + R11-NAM only - Limits import dependence of crude oil in relation to oil + extraction. + group: share-constraint formulation +oper_res: + technology-entry: 1 + parameters: activity, lower + description: >- + operating reserve equation for electricity systems integration + group: renewable formulation +pass_out_trb: + technology-entry: 1 + parameters: activity, upper + description: >- + link to use of passout turbine from thermal generators + group: add-on +PE_domestic_total: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + primary energy accounting equation + group: obsolete (?) +PE_export_total: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + primary energy accounting equation + group: obsolete (?) +PE_import_share: + technology-entry: 1 + parameters: activity, lower + description: >- + primary energy accounting equation + group: obsolete (?) +PE_import_total: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + primary energy accounting equation + group: obsolete (?) +PM2_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + PM2.5 emission + group: emission_factor +POPtoAeroNonMDILink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from population to aerosol non-medical use (driver for F gas emission) + group: emission_factor +POPtoAerosolMDILink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from population to aerosol medical use (driver for F gas emission) + group: emission_factor +POPtoDomWasteWaLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from population to domestic waste water + group: emission_factor +POPtoFireExtLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from population to fire extiguisher (driver for F gas emission) + group: emission_factor +POPtoHuSewageLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from population to human sewage + group: emission_factor +POPtoSolvent: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from population to solvent use + group: emission_factor +res_japan_limit: + technology-entry: 1 + parameters: activity, upper + description: >- + limit on renewable resource use of Japan in PAO region + group: fossil resources +res_marg: + parameters: activity, new_capacity, total_capacity + technology-entry: 3 + parameters2: lower + description: >- + electricity systems integration - reserve margin + group: renewable formulation +RES_variable_limt: + technology-entry: 1 + parameters: activity, upper + description: >- + variable renewable energy limit + group: "share-constraint formulation, renewable formulation" +SF6_elec_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link SF6 emissions from electrical equipment to reduction + efficiency of abatement technologies. + group: emission_factor +SF6_Emission: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Emissions of SF6 (weight as SF6, kg SF6 per kWyr) + group: emission_factor +SF6_mag_red: + technology-entry: 1 + parameters: activity, lower + description: >- + Constraint to link SF6 emissions from electrical equipment to reduction + efficiency of abatement technologies. + group: emission_factor +sm1_ppl_res: + technology-entry: 1 + parameters: total_capacity, lower, upper + description: >- + renewable formulation +sm3_ppl_res: + technology-entry: 1 + parameters: total_capacity, lower, upper + description: >- + renewable formulation +SO2_elec: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of SO2 in ppl, counter for DESOX (formerly SO2_emi_el) + group: emission_factor +SO2_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of SO2 (weight as SO2, kg SO2 per kWyr) + group: emission_factor +SO2_import: + technology-entry: 1 + parameters: activity, lower + description: >- + Import of of low sulfur coal (0.6% S) + group: emission_factor +SO2_ind: + technology-entry: 1 + parameters: activity, lower + description: >- + Counter - Emissions of CO2 in industrial sector + group: obsolete (?) +SO2_r_c: + technology-entry: 1 + parameters: activity, lower + description: >- + Counter - Emissions of CO2 in residential/commercial sector + group: obsolete (?) +SO2_red_ref: + technology-entry: 1 + parameters: activity, lower + description: >- + Limit on SO2 Emission reduction in refinery products + group: emission_factor +SO2_red_synf: + technology-entry: 1 + parameters: activity, lower + description: >- + Limit on SO2 Emission reduction in synfuel production + group: emission_factor +solar_csp_pot: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_csp_pot1: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_csp_pot2: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_csp_pot3: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_csp_pot4: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_csp_pot5: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_csp_pot6: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_csp_pot7: + technology-entry: 1 + parameters: activity, upper + description: >- + CSP resource potential category + group: renewable formulation +solar_curtailment_1: + parameters: activity, total_capacity + technology-entry: 2 + parameters2: upper + description: >- + electricity systems integration constraint (curtailment) + group: renewable formulation +solar_curtailment_2: + parameters: activity, total_capacity + technology-entry: 2 + parameters2: upper + description: >- + electricity systems integration constraint (curtailment) + group: renewable formulation +solar_curtailment_3: + parameters: activity, total_capacity + technology-entry: 2 + parameters2: upper + description: >- + electricity systems integration constraint (curtailment) + group: renewable formulation +solar_pot: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_pot2: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_pot3: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_pot4: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_pot5: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_pot6: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_pot7: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_pot8: + technology-entry: 1 + parameters: activity, upper + description: >- + solar PV resource potential + group: renewable formulation +solar_ppl_res: + technology-entry: 1 + parameters: total_capacity, lower, upper + group: renewable formulation +solar_res_cv: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + balances the solar_res and solar_cv technologies + group: renewable formulation +solar_step: + technology-entry: 1 + parameters: activity, lower + description: >- + first step of solar PV generation is limited to a certain fraction of load + (higher steps have worse oper and resm). + group: renewable formulation +solar_step2: + technology-entry: 1 + parameters: activity, lower + description: >- + second step of solar PV generation is limited to a certain fraction of load + (higher steps have worse oper and resm). + group: renewable formulation +solar_step3: + technology-entry: 1 + parameters: activity, lower + description: >- + third step of solar PV generation is limited to a certain fraction of load + (higher steps have worse oper and resm). + group: renewable formulation +solar_th_pot: + technology-entry: 1 + parameters: activity, upper + description: >- + solar thermal potential + group: renewable formulation +SolWaPOPLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from population to solid waste + group: emission_factor +syn_liq_exp: + technology-entry: 1 + parameters: activity, upper + description: >- + R11-FSU only - constraints the export of synthetic liquids to x% of + indigenous oil use. + group: share-constraint formulation +TCE_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + R11-only - total carbon-equivalent emission equation + group: emission_factor +TCEl: + technology-entry: 0 + parameters: lower + group: obsolete (?) +UE_feedstock: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Feedstock share constraint - connects all relevant technologies + group: share-constraint formulation +UE_feedstock_coal: + technology-entry: 1 + parameters: activity, upper + description: >- + Feedstock share constraint - restrict contribution of coal to x % of + feedstock demand. + group: share-constraint formulation +UE_feedstock_foil: + technology-entry: 1 + parameters: activity, upper + description: >- + Feedstock share constraint - restrict contribution of liquid fuels to x % of + feedstock demand. + group: share-constraint formulation +UE_feedstock_gas: + technology-entry: 1 + parameters: activity, upper + description: >- + Feedstock share constraint - restrict contribution of heavy fuel oil to x % + of feedstock demand. + group: share-constraint formulation +UE_feedstock_liquid: + technology-entry: 1 + parameters: activity, upper + description: >- + Feedstock share constraint - restrict contribution of gaseous fuels to x % + of feedstock demand. + group: share-constraint formulation +UE_industry_sp: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + share constraint for useful energy industry specific + group: share-constraint formulation +UE_industry_sp_fc: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for fuel cell (onsite FC) useful energy industry specific + group: share-constraint formulation +UE_industry_sp_liquid: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for liquids (onsite IC generator) useful energy industry + specific. + group: share-constraint formulation +UE_industry_sp_solar: + technology-entry: 1 + parameters: activity, upper + description: >- + Industry Specific sahre constraint - restrict contribution of solar + technologies to x % of industry thermal energy demand. + group: share-constraint formulation +UE_industry_th: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + share constraint for useful energy industry thermal + group: share-constraint formulation +UE_industry_th_electric: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for electric useful energy industry thermal + group: share-constraint formulation +UE_industry_th_foil: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for fuel oil useful energy industry thermal + group: share-constraint formulation +UE_industry_th_gas: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for gas useful energy industry thermal + group: share-constraint formulation +UE_industry_th_hydrogen: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for hydrogen useful energy industry thermal + group: share-constraint formulation +UE_industry_th_liquid: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for liquids useful energy industry thermal + group: share-constraint formulation +UE_industry_th_low_temp_heat: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for low temperature heat useful energy industry thermal + group: share-constraint formulation +UE_industry_th_solar: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for solar thermal useful energy industry thermal + group: share-constraint formulation +UE_industry_th_solid: + technology-entry: 1 + parameters: activity, upper + description: >- + share constraint for solids useful energy industry thermal + group: share-constraint formulation +UE_res_comm_sp: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Residential&Commercial Specific share constraint - connects all relevant + technologies. + group: share-constraint formulation +UE_res_comm_sp_fc: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Specific share constraint - restrict contribution of + fuel cell technologies to x % of residential specific energy demand. + group: share-constraint formulation +UE_res_comm_sp_solar: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Specific share constraint - restrict contribution of + solar technologies to x % of residential specific energy demand. + group: share-constraint formulation +UE_res_comm_th: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Residential&Commercial Thermal share constraint - connects all relevant + technologies. + group: share-constraint formulation +UE_res_comm_th_biomass: + technology-entry: 1 + parameters: activity, lower + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + biomass technologies to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_electric: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + electricity to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_foil: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + heavy fuel oil to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_gas: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + gaseous fuels to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_heat: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + district heat to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_hp: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + heat pumps to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_hydrogen: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + hydrogen to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_liquid: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + liquid fuels to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_solar: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + solar technologies to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_res_comm_th_solids: + technology-entry: 1 + parameters: activity, upper + description: >- + Residential&Commercial Thermal share constraint - restrict contribution of + solid fuels to x % of residential/commercial thermal energy demand. + group: share-constraint formulation +UE_transport: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + Transport share constraint - connects all relevant technologies + group: share-constraint formulation +UE_transport_electric: + technology-entry: 1 + parameters: activity, upper + description: >- + Transport share constraint - restrict contribution of electric technologies + to x % of transport energy demand. + group: share-constraint formulation +UE_transport_electric_Minimum: + technology-entry: 1 + parameters: activity, lower + description: >- + Transport share constraint - restrict LOWER contribution of electric + technologies to x % of transport energy demand. + group: share-constraint formulation +UE_transport_fc: + technology-entry: 1 + parameters: activity, upper + description: >- + Transport share constraint - restrict contribution of fuel cell + technologies to x % of transport energy demand. + group: share-constraint formulation +UE_transport_foil: + technology-entry: 1 + parameters: activity, upper + description: >- + Transport share constraint - restrict contribution of heavy fuel oil to x % + of transport energy demand. + group: share-constraint formulation +UE_transport_gas: + technology-entry: 1 + parameters: activity, upper + description: >- + Transport share constraint - restrict contribution of gaseous fuels to x % + of transport energy demand. + group: share-constraint formulation +UE_transport_liquid: + technology-entry: 1 + parameters: activity, upper + description: >- + Transport share constraint - restrict contribution of liquid fuels to x % + of transport energy demand. + group: share-constraint formulation +unabated_coal_lim: + technology-entry: 1 + parameters: activity, upper + description: >- + R11-PAO, R11-NAM, R11-WEU only - Limits unabated coal power plants to + present share. + group: share-constraint formulation +VOC_Emission: + technology-entry: 1 + parameters: activity, lower + description: >- + Emissions of VOC (weight as VOC, kg VOC per kWyr) + group: emission_factor +VOC_nonenergy: + technology-entry: 1 + parameters: activity, lower + description: >- + VOC emission from non-energy sectors + group: emission_factor +WasteGenToBCALink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to BC + group: emission_factor +WasteGenToCH4Link: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to CH4 + group: emission_factor +WasteGenToCOLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to CO + group: emission_factor +WasteGenToNOxLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to Nox + group: emission_factor +WasteGenToOCALink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to OC + group: emission_factor +WasteGenToPM2Link: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to PM2.5 + group: emission_factor +WasteGenToSO2Link: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to SO2 + group: emission_factor +WasteGenToVOCLink: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + link from waste generation to VOC + group: emission_factor +weight_ind: + technology-entry: 1 + parameters: activity, cost + description: >- + Weight factor representing costs, inconvenience, etc in lieu of end-use + technology costs in industries. +weight_rc: + technology-entry: 1 + parameters: activity, cost + description: >- + inconvenience costs for residential and commercial sector +weight_trp: + technology-entry: 1 + parameters: activity, cost + description: >- + inconvenience costs for transport sector +wind_curtailment_1: + parameters: activity, total_capacity + technology-entry: 2 + parameters2: upper + description: >- + electricity systems integration constraint (curtailment) + group: renewable formulation +wind_curtailment_2: + parameters: activity, total_capacity + technology-entry: 2 + parameters2: upper + description: >- + electricity systems integration constraint (curtailment) + group: renewable formulation +wind_curtailment_3: + parameters: activity, total_capacity + technology-entry: 2 + parameters2: upper + description: >- + electricity systems integration constraint (curtailment) + group: renewable formulation +wind_pof: + technology-entry: 1 + parameters: activity, upper + description: >- + offshore wind resource potential + group: renewable formulation +wind_pof2: + technology-entry: 1 + parameters: activity, upper + description: >- + offshore wind resource potential + group: renewable formulation +wind_pof3: + technology-entry: 1 + parameters: activity, upper + description: >- + offshore wind resource potential + group: renewable formulation +wind_pof4: + technology-entry: 1 + parameters: activity, upper + description: >- + offshore wind resource potential + group: renewable formulation +wind_pof5: + technology-entry: 1 + parameters: activity, upper + description: >- + offshore wind resource potential + group: renewable formulation +wind_pot: + technology-entry: 1 + parameters: activity, upper + description: >- + onshore wind resource potential + group: renewable formulation +wind_pot2: + technology-entry: 1 + parameters: activity, upper + description: >- + onshore wind resource potential + group: renewable formulation +wind_pot3: + technology-entry: 1 + parameters: activity, upper + description: >- + onshore wind resource potential + group: renewable formulation +wind_pot4: + technology-entry: 1 + parameters: activity, upper + description: >- + onshore wind resource potential + group: renewable formulation +wind_ppl_offshore_res: + technology-entry: 1 + parameters: total_capacity, lower, upper + group: renewable formulation +wind_ppl_res: + technology-entry: 1 + parameters: total_capacity, lower, upper + group: renewable formulation +wind_res_cv: + technology-entry: 1 + parameters: activity, lower, upper + description: >- + balances the wind_res and wind_cv technologies + group: renewable formulation +wind_step: + technology-entry: 1 + parameters: activity, lower + description: >- + first step of wind generation is limited to a certain fraction of load + (higher steps have worse oper and resm). + group: renewable formulation +wind_step2: + technology-entry: 1 + parameters: activity, lower + description: >- + second step of wind generation is limited to a certain fraction of load + (higher steps have worse oper and resm). + group: renewable formulation +wind_step3: + technology-entry: 1 + parameters: activity, lower + description: >- + third step of wind generation is limited to a certain fraction of load + (higher steps have worse oper and resm). + group: renewable formulation diff --git a/nest/message_ix_models/data/technology.yaml b/nest/message_ix_models/data/technology.yaml new file mode 100644 index 0000000..78ee17c --- /dev/null +++ b/nest/message_ix_models/data/technology.yaml @@ -0,0 +1,3020 @@ +# This file describes a possible set of base technologies to be used in the +# global model. It will be usable by both model creation and reporting code. +# +# Each entry includes the following fields: +# - name, description: required. +# - sector: a label to group multiple technologies to a notional sector. +# Required. +# - output (required) and input (optional): either +# - a list of [commodity, level] giving the output generated or input used by +# the technology; or, +# - a list of 2 or more such lists, if the technology has multiple inputs or +# outputs. +# - vintaged: True if the technology's properties vary by year_vintage. +# Optional; False if omitted. +# - type: In the Excel file used to create this YAML file (see +# https://github.com/iiasa/message_data/issues/74), 'type' appears to be +# always the same as 'output'/level; *unless* the 'output'/commodity is a +# dummy commodity, in which case it is 'dummy'. +# +# TODO if this is the case, remove 'type' from this file, and generate 'type' +# in tools.technologies.get_info. + +CF4_TCE: + name: CF4_TCE + description: Tetrafluoromethane (CF4) Total Carbon Emissions + type: primary + sector: dummy + output: [dummy, primary] + +CH4_TCE: + name: CH4_TCE + description: Methane total carbon equivalent emissions + type: dummy + sector: dummy + output: [dummy, primary] + +CH4g_TCE: + name: CH4g_TCE + description: CH4 emissions from animals directly in Total Carbon Equivalent emissions + type: dummy + sector: dummy + output: [dummy agriculture, primary] + +CH4n_TCE: + name: CH4n_TCE + description: CH4 emissions from anaerobic waste decomposition in Total Carbon Equivalent emissions + type: dummy + sector: dummy + output: [dummy, primary] + +CH4o_TCE: + name: CH4o_TCE + description: Dummy technology converting CH4 emissions from industrial and domestic wastewater, non energy biomass burning and other CH4 emissions, to total carbon equivalent emissions (TCE) + type: dummy + sector: dummy + output: [dummy, primary] + +CO2_TCE: + name: CO2_TCE + description: CO2 total carbon equivalent emissions + type: dummy + sector: dummy + output: [dummy, primary] + +dom_total: + name: dom_total + description: Used in balance equation for domestic energy supply and in the equation for constraining net imports + type: secondary + sector: dummy + output: [exports, secondary] + +dummy_producer: + name: dummy_producer + description: Technology added to produce dummy energy to avoid infeasibility if needed (e.g. when CO2_TCE needs to go negative) + type: primary + sector: dummy + output: [dummy, primary] + +exp_total: + name: exp_total + description: Used in balance equation for exported energy supply and in the equation for constraining net imports + type: secondary + sector: dummy + output: [exports, secondary] + +HFC_TCE: + name: HFC_TCE + description: HFC total carbon equivalent emissions + type: primary + sector: dummy + output: [dummy, primary] + +HFCo_TCE: + name: HFCo_TCE + description: Dummy technology converting HFC equiv emissions from solvents, fire extinguishers, aerosols MDI, aerosols non-MDI to total carbon equivalent emissions (TCE) + type: primary + sector: dummy + output: [dummy, primary] + +imp_total: + name: imp_total + description: Used in balance equation for imported energy supply + type: exports + sector: dummy + output: [exports, secondary] + +N2O_TCE: + name: N2O_TCE + description: N2O total carbon equivalent emissions + type: dummy + sector: dummy + output: [dummy] + +N2OG_TCE: + name: N2OG_TCE + description: N2O soil emissions total carbon equivalent emissions + type: dummy + sector: dummy + output: [dummy] + +N2On_TCE: + name: N2On_TCE + description: N2O adipic acid total carbon equivalent emissions + type: dummy + sector: dummy + output: [dummy] + +N2Oo_TCE: + name: N2Oo_TCE + description: Dummy technology converting N2O emissions from Manure Management, Human Sewage, Other Agricultural sources, Other Non Ag Sources to total carbon equivalent emissions (TCE) + type: dummy + sector: dummy + output: [dummy] + +nica_con: + name: nica_con + type: dummy + sector: dummy + output: [dummy] + +nitric_catalytic1: + name: nitric_catalytic1 + description: Mitigation technology (catalytic converter) category 2 for N2O emissions + type: dummy + sector: dummy + output: [dummy, primary] + +nitric_catalytic2: + name: nitric_catalytic2 + description: Mitigation technology (catalytic converter) category 1 for N2O emissions + type: dummy + sector: dummy + output: [dummy, primary] + +nitric_catalytic3: + name: nitric_catalytic3 + description: Mitigation technology (catalytic converter) category 3 for N2O emissions + type: dummy + sector: dummy + output: [dummy, primary] + +nitric_catalytic4: + name: nitric_catalytic4 + description: Mitigation technology (catalytic converter) category 4 for N2O emissions + type: dummy + sector: dummy + output: [dummy, primary] + +nitric_catalytic5: + name: nitric_catalytic5 + description: Mitigation technology (catalytic converter) category 5 for N2O emissions + type: dummy + sector: dummy + output: [dummy, primary] + +nitric_catalytic6: + name: nitric_catalytic6 + description: Mitigation technology (catalytic converter) category 6 for N2O emissions + type: dummy + sector: dummy + output: [dummy, primary] + +nitric_catalytic7: + name: nitric_catalytic7 + description: Mitigation technology (catalytic converter) category 7 for N2O emissions + type: dummy + sector: dummy + output: [dummy, primary] + +SF6_TCE: + name: SF6_TCE + description: SF6 total carbon equivalent emissions + type: primary + sector: dummy + output: [dummy, primary] + +useful_feedstock: + name: useful_feedstock + description: Share constraint for industry feedstocks + type: dummy + sector: dummy + output: [dummy_useful, primary] + +useful_industry_sp: + name: useful_industry_sp + description: Share constraint for Industry Specific + type: dummy + sector: dummy + output: [dummy_useful, primary] + +useful_industry_th: + name: useful_industry_th + description: Share constraint for Industry Thermal + type: dummy + sector: dummy + output: [dummy_useful, primary] + +useful_res/comm_sp: + name: useful_res/comm_sp + description: Share constraint for Residential and Commercial Specific + type: dummy + sector: dummy + output: [dummy_useful, primary] + +useful_res/comm_th: + name: useful_res/comm_th + description: Share constraint for Residential and Commercial Thermal + type: dummy + sector: dummy + output: [dummy_useful, primary] + +useful_transport: + name: useful_transport + description: Share constraint for Transport + type: dummy + sector: dummy + output: [dummy_useful, primary] + +bio_istig: + name: bio_istig + description: Advanced biomass power plant- gasified biomass is burned in gas turbine plant - modes with and without net carbon release + type: secondary + vintaged: TRUE + sector: electricity + input: [biomass, primary] + output: [electr, secondary] + +bio_istig_ccs: + name: bio_istig_ccs + description: Advanced biomass power plant with carbon capture and storage- gasified biomass is burned in gas turbine plant - modes with and without net carbon release + type: secondary + vintaged: TRUE + sector: electricity + input: [biomass, primary] + output: [electr, secondary] + +bio_ppl: + name: bio_ppl + description: Bio powerplant + type: secondary + vintaged: TRUE + sector: electricity + input: + - [biomass, primary] + - [cooling__bio_ppl, cooling] + - [freshwater_supply, water_supply] + output: [electr, secondary] + +coal_adv: + name: coal_adv + description: Advanced coal power plant + type: secondary + vintaged: TRUE + sector: electricity + input: [coal, secondary] + output: [electr, secondary] + +coal_adv_ccs: + name: coal_adv_ccs + description: Advanced coal power plant with carbon capture and storage + type: secondary + vintaged: TRUE + sector: electricity + input: [coal, secondary] + output: [electr, secondary] + +coal_ppl: + name: coal_ppl + description: Coal power-plant + type: secondary + vintaged: TRUE + sector: electricity + input: [coal, secondary] + output: [electr, secondary] + +coal_ppl_u: + name: coal_ppl_u + description: Coal power plant without abatement measures + type: secondary + vintaged: TRUE + sector: electricity + input: [coal, secondary] + output: [electr, secondary] + +elec_exp: + name: elec_exp + description: Net export of electricity + type: exports + sector: electricity + input: [electr, secondary] + output: [electr, exports] + +elec_imp: + name: elec_imp + description: Net import of electricity + type: secondary + sector: electricity + input: [electr, imports] + output: [electr, secondary] + +elec_t/d: + name: elec_t/d + description: Grid technology cost converted to 2005$ + type: final + vintaged: TRUE + sector: electricity + input: [electr, secondary] + output: [electr, final] + +foil_ppl: + name: foil_ppl + description: New standard oil power plant, Rankine cycle + type: secondary + vintaged: TRUE + sector: electricity + input: [fueloil, secondary] + output: [electr, secondary] + +gas_cc: + name: gas_cc + description: Gas combined cycle power-plant + type: secondary + vintaged: TRUE + sector: electricity + input: [gas, secondary] + output: [electr, secondary] + +gas_cc_ccs: + name: gas_cc_ccs + description: Gas combined cycle power-plant with carbon capture and storage + type: secondary + vintaged: TRUE + sector: electricity + input: [gas, secondary] + output: [electr, secondary] + +gas_ct: + name: gas_ct + description: Gas combustion-turbine power plant + type: secondary + vintaged: TRUE + sector: electricity + input: [gas, secondary] + output: [electr, secondary] + +gas_htfc: + name: gas_htfc + description: High temperature fuel cell powered with natural gas + type: secondary + vintaged: TRUE + sector: electricity + input: [gas, secondary] + output: [electr, secondary] + +gas_ppl: + name: gas_ppl + description: Gas power plant, Rankine cycle + type: secondary + vintaged: TRUE + sector: electricity + input: [gas, secondary] + output: [electr, secondary] + +geo_ppl: + name: geo_ppl + description: Geothermal power plant + type: secondary + vintaged: TRUE + sector: electricity + output: [electr, secondary] + +glb_elec_exp: + name: glb_elec_exp + description: Global net export of electricity + type: imports + sector: electricity + output: [electr, imports] + +glb_elec_imp: + name: glb_elec_imp + description: Global net import of electricity + type: exports + sector: electricity + input: [electr, exports] + output: [exports] + +hydro_hc: + name: hydro_hc + description: High cost hydro power plant + type: secondary + vintaged: TRUE + sector: electricity + output: [electr, secondary] + +hydro_lc: + name: hydro_lc + description: Low cost hydro power plant + type: secondary + vintaged: TRUE + sector: electricity + output: [electr, secondary] + +igcc: + name: igcc + description: Integrated gasification combined cycle (IGCC) power plant + type: secondary + vintaged: TRUE + sector: electricity + input: [coal, secondary] + output: [electr, secondary] + +igcc_ccs: + name: igcc_ccs + description: Integrated gasification combined cycle (IGCC) power plant with carbon capture and storage + type: secondary + vintaged: TRUE + sector: electricity + input: [coal, secondary] + output: [electr, secondary] + +igcc_co2scr: + name: igcc_co2scr + description: New coal scrubber for igcc plants + type: exports + vintaged: TRUE + sector: electricity + output: [exports, secondary] + +loil_cc: + name: loil_cc + description: Light oil combined cycle + type: secondary + vintaged: TRUE + sector: electricity + input: [lightoil, secondary] + output: [electr, secondary] + +loil_ppl: + name: loil_ppl + description: Existing light oil power-plant + type: secondary + vintaged: TRUE + sector: electricity + input: [lightoil, secondary] + output: [electr, secondary] + +nuc_hc: + name: nuc_hc + description: Nuclear power plant (~GEN III+), high cost + type: secondary + vintaged: TRUE + sector: electricity + input: [uranium, stocks] + output: [electr, secondary] + +nuc_lc: + name: nuc_lc + description: Nuclear power plant (~GEN II), low cost + type: secondary + vintaged: TRUE + sector: electricity + input: [uranium, stocks] + output: [electr, secondary] + +solar_curtailment1: + name: solar_curtailment1 + description: Solar PV curtailment steps + type: dummy + sector: electricity + input: [electr, secondary] + output: [dummy renewable, secondary] + +solar_curtailment2: + name: solar_curtailment2 + description: Solar PV curtailment steps + type: dummy + sector: electricity + input: [electr, secondary] + output: [dummy renewable, secondary] + +solar_curtailment3: + name: solar_curtailment3 + description: Solar PV curtailment steps + type: dummy + sector: electricity + input: [electr, secondary] + output: [dummy renewable, secondary] + +solar_cv1: + name: solar_cv1 + description: Quadratic systems integration costs added to solar PV + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +solar_cv2: + name: solar_cv2 + description: Quadratic systems integration costs added to solar PV + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +solar_cv3: + name: solar_cv3 + description: Quadratic systems integration costs added to solar PV + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +solar_cv4: + name: solar_cv4 + description: Quadratic systems integration costs added to solar PV + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +solar_pv_ppl: + name: solar_pv_ppl + description: Solar photovoltaic power plant (no storage) + type: dummy + vintaged: TRUE + sector: electricity + output: [dummy renewable, secondary] + +solar_res1: + name: solar_res1 + description: Maximum solar electricity potential 1 + type: secondary + sector: electricity + output: [electr, secondary] + +solar_res2: + name: solar_res2 + description: Maximum solar electricity potential 2 + type: secondary + sector: electricity + output: [electr, secondary] + +solar_res3: + name: solar_res3 + description: Maximum solar electricity potential 3 + type: secondary + sector: electricity + output: [electr, secondary] + +solar_res4: + name: solar_res4 + description: Maximum solar electricity potential 4 + type: secondary + sector: electricity + output: [electr, secondary] + +solar_res5: + name: solar_res5 + description: Maximum solar electricity potential 5 + type: secondary + sector: electricity + output: [electr, secondary] + +solar_res6: + name: solar_res6 + description: Maximum solar electricity potential 6 + type: secondary + sector: electricity + output: [electr, secondary] + +solar_res7: + name: solar_res7 + description: Maximum solar electricity potential 7 + type: secondary + sector: electricity + output: [electr, secondary] + +solar_th_ppl: + name: solar_th_ppl + description: Solar thermal power plant with storage + type: secondary + vintaged: TRUE + sector: electricity + output: [electr, secondary] + +stor_ppl: + name: stor_ppl + description: Generic electric storage + type: secondary + vintaged: TRUE + sector: electricity + input: [electr, secondary] + output: [exports, secondary] + +wind_curtailment1: + name: wind_curtailment1 + description: Wind curtailment steps + type: dummy + sector: electricity + input: [secondary, electricity] + output: [dummy renewable, secondary] + +wind_curtailment2: + name: wind_curtailment2 + description: Wind curtailment steps + type: dummy + sector: electricity + input: [secondary, electricity] + output: [dummy renewable, secondary] + +wind_curtailment3: + name: wind_curtailment3 + description: Wind curtailment steps + type: dummy + sector: electricity + input: [secondary, electricity] + output: [dummy renewable, secondary] + +wind_cv1: + name: wind_cv1 + description: Wind flexibility requirement and firm capacity contribution, quadratic systems integration costs added to wind + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +wind_cv2: + name: wind_cv2 + description: Wind flexibility requirement and firm capacity contribution, quadratic systems integration costs added to wind + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +wind_cv3: + name: wind_cv3 + description: Wind flexibility requirement and firm capacity contribution, quadratic systems integration costs added to wind + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +wind_cv4: + name: wind_cv4 + description: Wind flexibility requirement and firm capacity contribution, quadratic systems integration costs added to wind + type: dummy + sector: electricity + output: [dummy renewable, secondary] + +wind_ppl: + name: wind_ppl + description: Wind power plant onshore (provides capacity only) + type: dummy + vintaged: TRUE + sector: electricity + output: [dummy renewable, secondary] + +wind_res1: + name: wind_res1 + description: Wind onshore potential and generation 1 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_res2: + name: wind_res2 + description: Wind onshore potential and generation 2 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_res3: + name: wind_res3 + description: Wind onshore potential and generation 3 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_res4: + name: wind_res4 + description: Wind onshore potential and generation 4 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_ppf: + name: wind_ppf + description: Wind power plant offshore (provides capacity only) + type: secondary + vintaged: TRUE + sector: electricity + output: [dummy renewable, secondary] + +wind_ref1: + name: wind_ref1 + description: Wind offshore potential and generation 1 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_ref2: + name: wind_ref2 + description: Wind offshore potential and generation 2 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_ref3: + name: wind_ref3 + description: Wind offshore potential and generation 3 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_ref4: + name: wind_ref4 + description: Wind offshore potential and generation 4 + type: secondary + sector: electricity + output: [electr, secondary] + +wind_ref5: + name: wind_ref5 + description: Wind offshore potential and generation 5 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res: + name: csp_sm3_res + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 1 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res1: + name: csp_sm3_res1 + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 2 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res2: + name: csp_sm3_res2 + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 3 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res3: + name: csp_sm3_res3 + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 4 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res4: + name: csp_sm3_res4 + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 5 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res5: + name: csp_sm3_res5 + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 6 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res6: + name: csp_sm3_res6 + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 7 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_res7: + name: csp_sm3_res7 + description: Concentrating solar power (CSP) with solar multiple of 3 potential and generation 8 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm3_ppl: + name: csp_sm3_ppl + description: Concentrating solar power (CSP) with solar multiple of 3 (provides capacity only) + type: secondary + vintaged: TRUE + sector: electricity + output: [dummy renewable, secondary] + +csp_sm1_res: + name: csp_sm1_res + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 1 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_res1: + name: csp_sm1_res1 + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 2 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_res2: + name: csp_sm1_res2 + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 3 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_res3: + name: csp_sm1_res3 + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 4 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_res4: + name: csp_sm1_res4 + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 5 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_res5: + name: csp_sm1_res5 + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 6 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_res6: + name: csp_sm1_res6 + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 7 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_res7: + name: csp_sm1_res7 + description: Concentrating solar power (CSP) with solar multiple of 1 potential and generation 8 + type: secondary + sector: electricity + output: [electr, secondary] + +csp_sm1_ppl: + name: csp_sm1_ppl + description: Concentrating solar power (CSP) with solar multiple of 1 (provides capacity only) + type: secondary + vintaged: TRUE + sector: electricity + output: [dummy renewable, secondary] + +bio_extr_1: + name: bio_extr_1 + description: Biomass Extraction + type: primary + sector: extraction + output: [biomass, primary] + +bio_extr_2: + name: bio_extr_2 + description: Biomass Extraction + type: primary + sector: extraction + output: [biomass, primary] + +bio_extr_3: + name: bio_extr_3 + description: Biomass Extraction + type: primary + sector: extraction + output: [biomass, primary] + +bio_extr_4: + name: bio_extr_4 + description: Biomass Extraction + type: primary + sector: extraction + output: [biomass, primary] + +bio_extr_5: + name: bio_extr_5 + description: Biomass Extraction + type: primary + sector: extraction + output: [biomass, primary] + +bio_extr_6: + name: bio_extr_6 + description: Biomass Extraction + type: primary + sector: extraction + output: [biomass, primary] + +coal_extr: + name: coal_extr + description: Hard coal extraction, world average grade A + type: primary + sector: extraction + input: [coal, resource] + output: [coal, primary] + +coal_extr_ch4: + name: coal_extr_ch4 + description: Describes efforts in CH4-reduction from coal mining + type: primary + vintaged: TRUE + sector: extraction + input: [coal, resource] + output: [coal, primary] + +flaring_CO2: + name: flaring_CO2 + description: Co2 emissions from gas flaring + type: exports + sector: extraction + output: [exports, exports] + +gas_extr_1: + name: gas_extr_1 + description: Natural gas extraction, Cat I = Master et al.14.WPC "Identified Reserves" + type: primary + sector: extraction + input: [resource] + output: [primary] + +gas_extr_2: + name: gas_extr_2 + description: Natural gas extraction, Cat II = Master et al.14.WPC "Mode" undiscovered natural gas + type: primary + sector: extraction + input: [resource] + output: [primary] + +gas_extr_3: + name: gas_extr_3 + description: Natural gas extraction, Cat III = Masters et al.14.WPC Difference between "Mode and 5%" undiscovered natural gas + type: primary + sector: extraction + input: [resource] + output: [primary] + +gas_extr_4: + name: gas_extr_4 + description: Natural gas extraction, Cat IV = Estimated enhanced Recovery (30% of Resources I+II+III) plus 15% of historical production + type: primary + sector: extraction + input: [resource] + output: [primary] + +gas_extr_5: + name: gas_extr_5 + description: Natural gas extraction, Cat V = Non-conventional reserves (20% of Coal bed; 15% of fractured Shale; 15% of Tight formation) + type: primary + sector: extraction + input: [resource] + output: [primary] + +gas_extr_6: + name: gas_extr_6 + description: Natural gas extraction, Cat VI -VII= Non-conventional resources. Rest of Coal bed (80%), fractured Shale (85%) and Tight formation (85%) were aggregated and then distributed to VI (40%) nd VII (60%) + type: primary + sector: extraction + input: [resource] + output: [primary] + +gas_extr_mpen: + name: gas_extr_mpen + description: Common Market penetration for all gas extraction technologies + type: secondary + sector: extraction + output: [exports, secondary] + +lignite_extr: + name: lignite_extr + description: Lignite extraction, world average grade A + type: primary + sector: extraction + input: [lignite, resource] + output: [coal, primary] + +oil_extr_1: + name: oil_extr_1 + description: Crude oil extraction, Cat I = Masters 14 WPC conv. oil reserves + type: primary + sector: extraction + input: [crude 1 resource, primary] + output: [crude oil, primary] + +oil_extr_1_ch4: + name: oil_extr_1_ch4 + description: Describes efforts in CH4-reduction from oil extraction of Cat I + type: primary + sector: extraction + input: [crude 1 resource, primary] + output: [crude oil, primary] + +oil_extr_2: + name: oil_extr_2 + description: Crude oil extraction, Cat II = Masters mode undiscovered conv. oil (incl. NGL) + type: primary + sector: extraction + input: [crude 2 resource, primary] + output: [crude oil, primary] + +oil_extr_2_ch4: + name: oil_extr_2_ch4 + description: Describes efforts in CH4-reduction from oil extraction of Cat II + type: primary + sector: extraction + input: [crude 2 resource, primary] + output: [crude oil, primary] + +oil_extr_3: + name: oil_extr_3 + description: Crude oil extraction, Cat III = Masters 5% - Masters 50% + type: primary + sector: extraction + input: [crude 3 resource, primary] + output: [crude oil, primary] + +oil_extr_3_ch4: + name: oil_extr_3_ch4 + description: Describes efforts in CH4-reduction from oil extraction of Cat III + type: primary + sector: extraction + input: [crude 3 resource, primary] + output: [crude oil, primary] + +oil_extr_4: + name: oil_extr_4 + description: Crude oil extraction, Cat IV = Recoverable "reserves" non-conventional oil + type: primary + sector: extraction + input: [crude 4 resource, primary] + output: [crude oil, primary] + +oil_extr_4_ch4: + name: oil_extr_4_ch4 + description: Describes efforts in CH4-reduction from oil extraction of Cat IV + type: primary + sector: extraction + input: [crude 4 resource, primary] + output: [crude oil, primary] + +oil_extr_5: + name: oil_extr_5 + description: Crude oil extraction, Cat V = Recoverable reserves of nonconventional oil = Shale, tarsands/bitumen and heavy oils + type: primary + sector: extraction + input: [crude 5 resource, primary] + output: [crude oil, primary] + +oil_extr_6: + name: oil_extr_6 + description: Crude oil extraction, Cat VI = 20% of estimated occurrences (-reserves) of shale, heavy oils, tarsands/bitumen + type: primary + sector: extraction + input: [crude 6 resource, primary] + output: [crude oil, primary] + +oil_extr_mpen: + name: oil_extr_mpen + description: Common Market penetration for all oil extraction technologies + type: secondary + sector: extraction + output: [exports, secondary] + +Feeds_1: + name: Feeds_1 + description: Conservation cost curve step for industry feedstock demand + type: useful + sector: feedstock + output: [i_feed, useful] + +Feeds_2: + name: Feeds_2 + description: Conservation cost curve step for industry feedstock demand + type: useful + sector: feedstock + output: [i_feed, useful] + +Feeds_3: + name: Feeds_3 + description: Conservation cost curve step for industry feedstock demand + type: useful + sector: feedstock + output: [i_feed, useful] + +Feeds_4: + name: Feeds_4 + description: Conservation cost curve step for industry feedstock demand + type: useful + sector: feedstock + output: [i_feed, useful] + +Feeds_5: + name: Feeds_5 + description: Conservation cost curve step for industry feedstock demand + type: useful + sector: feedstock + output: [i_feed, useful] + +Feeds_con: + name: Feeds_con + description: Joint diffusion constraint for feedstock conservation cost curve steps + type: primary + sector: feedstock + output: [dummy agriculture, primary] + +coal_fs: + name: coal_fs + description: Coal as industry feedstock + type: useful + sector: feedstock + input: [coal, final] + output: [i_feed, useful] + +ethanol_fs: + name: ethanol_fs + description: Ethanol as industry feedstock + type: useful + sector: feedstock + input: [ethanol, final] + output: [i_feed, useful] + +foil_fs: + name: foil_fs + description: Fuel oil as industry feedstock + type: useful + sector: feedstock + input: [fueloil, final] + output: [i_feed, useful] + +gas_fs: + name: gas_fs + description: Gas as industry feedstock + type: useful + sector: feedstock + input: [gas, final] + output: [i_feed, useful] + +loil_fs: + name: loil_fs + description: Lightoil as industry feedstock + type: useful + sector: feedstock + input: [lightoil, final] + output: [i_feed, useful] + +methanol_fs: + name: methanol_fs + description: Methanol as industry feedstock + type: useful + sector: feedstock + input: [methanol, final] + output: [i_feed, useful] + +coal_gas: + name: coal_gas + description: Hard coal gasification + type: secondary + vintaged: TRUE + sector: gas + input: + - [coal, secondary] + - [freshwater_supply, water_supply] + output: [gas, secondary] + +g_ppl_co2scr: + name: g_ppl_co2scr + description: CO2 scrubber for natural gas power plant + type: secondary + vintaged: TRUE + sector: gas + output: [exports, secondary] + +gas_bal: + name: gas_bal + description: Link technology to stabilize gas production + type: secondary + sector: gas + input: [gas, primary] + output: [gas, secondary] + +gas_bio: + name: gas_bio + description: Synthesis gas production from biomass + type: secondary + vintaged: TRUE + sector: gas + input: + - [biomass, primary] + - [electr, secondary] + - [freshwater_supply, water_supply] + output: [gas, secondary] + +gas_imp: + name: gas_imp + description: Piped Gas imports + type: secondary + sector: gas + input: [gas, exports] + output: [gas, secondary] + +gas_rc: + name: gas_rc + description: Gas heating in residential/commercial sector + type: final + sector: gas + input: [gas, secondary] + output: [gas, final] + +gas_t/d: + name: gas_t/d + description: Transmission/Distribution of gas + type: final + vintaged: TRUE + sector: gas + input: [gas, secondary] + output: [gas, final] + +gas_t/d_ch4: + name: gas_t/d_ch4 + description: Transmission/Distribution of gas with CH4 mitigation + type: final + vintaged: TRUE + sector: gas + input: [gas, secondary] + output: [gas, final] + +gfc_co2scr: + name: gfc_co2scr + description: New co2 scrubber for gas fuel cells + type: secondary + vintaged: TRUE + sector: gas + output: [exports, secondary] + +glb_gas_exp: + name: glb_gas_exp + description: Global net export of gas + type: exports + sector: gas + output: [gas, exports] + +glb_LNG_exp: + name: glb_LNG_exp + description: Global net export of liquified natural gas + type: imports + sector: gas + output: [LNG, imports] + +h2_mix: + name: h2_mix + description: Hydrogen injection into the natural gas system + type: secondary + sector: gas + input: [hydrogen, secondary] + output: [gas, secondary] + +LNG_bal: + name: LNG_bal + description: Link technology to stabilize liquified natural gas production + type: secondary + sector: gas + input: [LNG, primary] + output: [LNG, secondary] + +LNG_imp: + name: LNG_imp + description: LNG Imports + type: imports + sector: gas + input: [LNG, imports] + output: [LNG, secondary] + +LNG_regas: + name: LNG_regas + description: LNG regasification (just link; losses are in trade) + type: secondary + vintaged: TRUE + sector: gas + input: [LNG, secondary] + output: [gas, secondary] + +bio_hpl: + name: bio_hpl + description: Biomass heating plant + type: secondary + vintaged: TRUE + sector: heat + input: + - [biomass, primary] + - [cooling__bio_hpl, cooling] + - [freshwater_supply, water_supply] + output: [d_heat, secondary] + +coal_hpl: + name: coal_hpl + description: Coal heating plant + type: secondary + vintaged: TRUE + sector: heat + input: [coal, secondary] + output: [d_heat, secondary] + +foil_hpl: + name: foil_hpl + description: Fuel oil heating plant + type: secondary + vintaged: TRUE + sector: heat + input: [fueloil, secondary] + output: [d_heat, secondary] + +gas_hpl: + name: gas_hpl + description: Natural gas heating plant + type: secondary + vintaged: TRUE + sector: heat + input: [gas, secondary] + output: [d_heat, secondary] + +geo_hpl: + name: geo_hpl + description: Geothermal heat plant + type: secondary + vintaged: TRUE + sector: heat + output: [d_heat, secondary] + +heat_t/d: + name: heat_t/d + description: Transmission/Distribution of district heat + type: final + vintaged: TRUE + sector: heat + input: [d_heat, secondary] + output: [d_heat, final] + +po_turbine: + name: po_turbine + description: Pass out turbine + type: secondary + vintaged: TRUE + sector: heat + input: [electr, secondary] + output: [d_heat, secondary] + +glb_lh2_imp: + name: glb_lh2_imp + description: Global net import of liquid hydrogen + type: exports + sector: hydrogen + input: [liquid hydrogen, exports] + output: [exports] + +h2_bio: + name: h2_bio + description: Hydrogen production from biomass with C (via gasification) + type: secondary + vintaged: TRUE + sector: hydrogen + input: + - [biomass, primary] + - [freshwater_supply, water_supply] + output: + - [hydrogen, secondary] + - [electr, secondary] + +h2_bio_ccs: + name: h2_bio_ccs + description: Hydrogen production from biomass with C (via gasification) with carbon capture and storage + type: secondary + vintaged: TRUE + sector: hydrogen + input: + - [biomass, primary] + - [freshwater_supply, water_supply] + output: + - [hydrogen, secondary] + - [electr, secondary] + +h2_co2_scrub: + name: h2_co2_scrub + description: CO2 scrubber for h2 production from coal and gas + type: exports + vintaged: TRUE + sector: hydrogen + input: [electr, secondary] + output: [exports, secondary] + +h2_coal: + name: h2_coal + description: Hydrogen production via coal gasification + type: secondary + vintaged: TRUE + sector: hydrogen + input: + - [coal, secondary] + - [freshwater_supply, water_supply] + output: + - [hydrogen, secondary] + - [electr, secondary] + +h2_coal_ccs: + name: h2_coal_ccs + description: Hydrogen production via coal gasification with carbon capture and storage + type: secondary + vintaged: TRUE + sector: hydrogen + input: + - [coal, secondary] + - [freshwater_supply, water_supply] + output: + - [hydrogen, secondary] + - [electr, secondary] + +h2_elec: + name: h2_elec + description: Hydrogen production via electrolysis + type: secondary + vintaged: TRUE + sector: hydrogen + input: [electr, secondary] + output: [hydrogen, secondary] + +h2_liq: + name: h2_liq + description: Hydrogen liquefaction + type: primary + vintaged: TRUE + sector: hydrogen + input: [hydrogen, primary] + output: [liquid hydrogen, primary] + +h2_smr: + name: h2_smr + description: Hydrogen production via steam-methane reforming of natural gas + type: secondary + vintaged: TRUE + sector: hydrogen + input: + - [gas, secondary] + - [freshwater_supply, water_supply] + output: + - [hydrogen, secondary] + - [electr, secondary] + +h2_smr_ccs: + name: h2_smr_ccs + description: Hydrogen production via steam-methane reforming of natural gas with carbon capture and storage + type: secondary + vintaged: TRUE + sector: hydrogen + input: + - [gas, secondary] + - [freshwater_supply, water_supply] + output: + - [hydrogen, secondary] + - [electr, secondary] + +h2_t/d: + name: h2_t/d + description: Transmission/Distribution of gaseous hydrogen (just linking technology) + type: final + vintaged: TRUE + sector: hydrogen + input: [hydrogen, secondary] + output: [hydrogen, final] + +h2b_co2_scrub: + name: h2b_co2_scrub + description: CO2 scrubber for h2 production from biomass + type: secondary + vintaged: TRUE + sector: hydrogen + input: [electr, secondary] + output: [exports, secondary] + +lh2_bal: + name: lh2_bal + description: Link technology to stabilize liquid hydrogen production + type: secondary + sector: hydrogen + input: [liquid hydrogen, primary] + output: [liquid hydrogen, secondary] + +lh2_exp: + name: lh2_exp + description: Exports of liquid hydrogen + type: exports + sector: hydrogen + input: [liquid hydrogen, primary] + output: [liquid hydrogen, exports] + +lh2_imp: + name: lh2_imp + description: Imports of liquid hydrogen + type: secondary + sector: hydrogen + input: [liquid hydrogen, exports] + output: [liquid hydrogen, secondary] + +lh2_regas: + name: lh2_regas + description: Regasification of liquid hydrogen + type: secondary + vintaged: TRUE + sector: hydrogen + input: [liquid hydrogen, secondary] + output: [hydrogen, secondary] + +lh2_t/d: + name: lh2_t/d + description: Transmission/Distribution of liquid hydrogen + type: final + vintaged: TRUE + sector: hydrogen + input: [liquid hydrogen, secondary] + output: [liquid hydrogen, final] + +back_bio_ind: + name: back_bio_ind + description: Backstop for diagnosing model infeasibility + type: final + sector: industry + output: [biomass, useful] + +back_fs: + name: back_fs + description: Backstop for diagnosing model infeasibility + type: useful + sector: industry + output: [i_feed, useful] + +back_I: + name: back_I + description: Backstop for diagnosing model infeasibility + type: useful + sector: industry + output: [i_spec, useful] + +cement_CO2: + name: cement_CO2 + description: Co2 emissions from cement production + type: secondary + sector: industry + output: [exports, secondary] + +cement_co2scr: + name: cement_co2scr + description: Cement CO2 scrubber (CCS) + type: secondary + vintaged: TRUE + sector: industry + output: [exports, secondary] + +coal_i: + name: coal_i + description: Coal in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [coal, final] + output: [i_therm, useful] + +elec_i: + name: elec_i + description: Electricity in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [electr, final] + output: [i_therm, useful] + +eth_i: + name: eth_i + description: Ethanol (without C) replacement for use as liquid fuel in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [ethanol, final] + output: [i_therm, useful] + +foil_i: + name: foil_i + description: Fuel oil for thermal uses in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [fueloil, final] + output: [i_therm, useful] + +gas_i: + name: gas_i + description: Gas for thermal uses in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [gas, final] + output: [i_therm, useful] + +h2_i: + name: h2_i + description: Gaseous hydrogen in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [hydrogen, final] + output: [i_therm, useful] + +heat_i: + name: heat_i + description: District heating for thermal uses in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [d_heat, final] + output: [i_therm, useful] + +hp_el_i: + name: hp_el_i + description: Electric heat pump in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [electr, final] + output: [i_therm, useful] + +hp_gas_i: + name: hp_gas_i + description: Natural gas heat pump in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [gas, final] + output: [i_therm, useful] + +loil_i: + name: loil_i + description: Lightoil for thermal uses in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [lightoil, final] + output: [i_therm, useful] + +meth_i: + name: meth_i + description: Methanol (with C) replacement for use as liquid fuel in industry thermal + type: useful + vintaged: TRUE + sector: industry + input: [methanol, final] + output: [i_therm, useful] + +solar_i: + name: solar_i + description: Solar thermal in industry thermal sector + type: useful + vintaged: TRUE + sector: industry + output: [i_therm, useful] + +Ispec_1: + name: Ispec_1 + description: Conservation cost curve step for industry specific demand + type: useful + sector: industry + output: [i_spec, useful] + +Ispec_2: + name: Ispec_2 + description: Conservation cost curve step for industry specific demand + type: useful + sector: industry + output: [i_spec, useful] + +Ispec_3: + name: Ispec_3 + description: Conservation cost curve step for industry specific demand + type: useful + sector: industry + output: [i_spec, useful] + +Ispec_4: + name: Ispec_4 + description: Conservation cost curve step for industry specific demand + type: useful + sector: industry + output: [i_spec, useful] + +Ispec_5: + name: Ispec_5 + description: Conservation cost curve step for industry specific demand + type: useful + sector: industry + output: [i_spec, useful] + +Ispec_con: + name: Ispec_con + description: Joint diffusion constraint for industry specific conservation cost curve steps + type: primary + sector: industry + output: [dummy agriculture, primary] + +Itherm_1: + name: Itherm_1 + description: Conservation cost curve step for industry thermal demand + type: useful + sector: industry + output: [i_therm, useful] + +Itherm_2: + name: Itherm_2 + description: Conservation cost curve step for industry thermal demand + type: useful + sector: industry + output: [i_therm, useful] + +Itherm_3: + name: Itherm_3 + description: Conservation cost curve step for industry thermal demand + type: useful + sector: industry + output: [i_therm, useful] + +Itherm_4: + name: Itherm_4 + description: Conservation cost curve step for industry thermal demand + type: useful + sector: industry + output: [i_therm, useful] + +Itherm_5: + name: Itherm_5 + description: Conservation cost curve step for industry thermal demand + type: useful + sector: industry + output: [i_therm, useful] + +Itherm_con: + name: Itherm_con + description: Joint diffusion constraint for industry thermal conservation cost curve steps + type: dummy + sector: industry + output: [dummy agriculture, primary] + +solar_pv_I: + name: solar_pv_I + description: On-site solar photovoltaic power plant (no storage) in industry specific + type: useful + vintaged: TRUE + sector: industry + output: [i_spec, useful] + +h2_fc_I: + name: h2_fc_I + description: Hydrogen fuel cell cogeneration system for industry specific + type: useful + vintaged: TRUE + sector: industry + input: [hydrogen, final] + output: [i_spec, useful] + +sp_coal_I: + name: sp_coal_I + description: Specific use of coal in industry + type: useful + sector: industry + input: [coal, final] + output: [i_spec, useful] + +sp_el_I: + name: sp_el_I + description: Specific use of electricity in industry + type: useful + sector: industry + input: [electr, final] + output: [i_spec, useful] + +sp_eth_I: + name: sp_eth_I + description: Ethanol (without net C) replacement for specific use of light oil in industry + type: useful + sector: industry + input: [ethanol, final] + output: [i_spec, useful] + +sp_liq_I: + name: sp_liq_I + description: Specific use of light oil in industry + type: useful + sector: industry + input: [lightoil, final] + output: [i_spec, useful] + +sp_meth_I: + name: sp_meth_I + description: Methanol (with C) replacement for specific use of light oil in industry + type: useful + sector: industry + input: [methanol, final] + output: [i_spec, useful] + +bio_extr_mpen: + name: bio_extr_mpen + description: Slack primary biomass created with new implementation of non commercial biomass + type: secondary + sector: land + output: [exports, secondary] + +forest_CO2: + name: forest_CO2 + description: Co2 emissions from forests + type: secondary + sector: land + output: [exports, secondary] + +sinks_1: + name: sinks_1 + description: Potential for sinks (50. US$) + type: secondary + sector: land + output: [exports, secondary] + +sinks_2: + name: sinks_2 + description: Potential for sinks (100. US$) + type: secondary + sector: land + output: [exports, secondary] + +sinks_3: + name: sinks_3 + description: Potential for sinks (200. US$) + type: secondary + sector: land + output: [exports, secondary] + +sinks_4: + name: sinks_4 + description: Potential for sinks (300. US$) + type: secondary + sector: land + output: [exports, secondary] + +eth_bal: + name: eth_bal + description: Link technology to stabilize ethanol production + type: secondary + sector: liquids + input: [ethanol, primary] + output: [ethanol, secondary] + +eth_bio: + name: eth_bio + description: Ethanol synthesis via biomass gasification + type: primary + vintaged: TRUE + sector: liquids + input: + - [biomass, primary] + - [freshwater_supply, water_supply] + output: + - [ethanol, primary] + - [electr, secondary] + +eth_bio_ccs: + name: eth_bio_ccs + description: Ethanol synthesis via biomass gasification with carbon capture and storage + type: primary + vintaged: TRUE + sector: liquids + input: + - [biomass, primary] + - [freshwater_supply, water_supply] + output: + - [ethanol, primary] + - [electr, secondary] + +eth_exp: + name: eth_exp + description: Exports of ethanol (no accounting of CO2 transferred) + type: exports + sector: liquids + input: [ethanol, primary] + output: [ethanol, exports] + +eth_imp: + name: eth_imp + description: Imports of ethanol (no accounting of CO2 transferred) + type: secondary + sector: liquids + input: [ethanol, exports] + output: [ethanol, secondary] + +eth_t/d: + name: eth_t/d + description: Transmission/Distribution of methanol without net C (just linking technology) + type: final + sector: liquids + input: [ethanol, secondary] + output: [ethanol, final] + +foil_exp: + name: foil_exp + description: Net exports of crude oil at 95% of oil price + type: exports + sector: liquids + input: [fueloil, secondary] + output: [fueloil, exports] + +foil_imp: + name: foil_imp + description: Net imports of residual oil at 95% of oil price + type: secondary + sector: liquids + input: [fueloil, imports] + output: [fueloil, secondary] + +foil_t/d: + name: foil_t/d + description: Transmission/Distribution of fueloil (just linking technology) + type: final + sector: liquids + input: [fueloil, secondary] + output: [fueloil, final] + +glb_eth_imp: + name: glb_eth_imp + description: Global net import of ethanol + type: exports + sector: liquids + input: [ethanol, exports] + output: [exports] + +glb_foil_exp: + name: glb_foil_exp + description: Global net export of fuel oil + type: imports + sector: liquids + output: [fueloil, imports] + +glb_foil_imp: + name: glb_foil_imp + description: Global net import of fuel oil + type: exports + sector: liquids + input: [fueloil, exports] + output: [exports] + +glb_loil_exp: + name: glb_loil_exp + description: Global net export of light oil + type: imports + sector: liquids + output: [loil, imports] + +glb_loil_imp: + name: glb_loil_imp + description: Global net import of light oil + type: exports + sector: liquids + input: [loil, exports] + output: [exports] + +glb_meth_imp: + name: glb_meth_imp + description: Global net import of methanol + type: exports + sector: liquids + input: [methanol, exports] + output: [exports] + +glb_oil_exp: + name: glb_oil_exp + description: Global net export of crude oil + type: imports + sector: liquids + output: [oil, imports] + +glb_oil_imp: + name: glb_oil_imp + description: Global net import of crude oil + type: exports + sector: liquids + input: [oil, exports] + output: [exports] + +liq_bio: + name: liq_bio + description: Second Generation Ethanol Production based on Biomass to FTL + type: primary + vintaged: TRUE + sector: liquids + input: + - [biomass, primary] + - [freshwater_supply, water_supply] + output: + - [ethanol, primary] + - [electr, secondary] + +liq_bio_ccs: + name: liq_bio_ccs + description: Second Generation Ethanol Production with carbon capture and storage based on Biomass to FTL + type: primary + vintaged: TRUE + sector: liquids + input: + - [biomass, primary] + - [freshwater_supply, water_supply] + output: + - [ethanol, primary] + - [electr, secondary] + +loil_exp: + name: loil_exp + description: Net exports of crude oil at 15% above oil price + type: exports + sector: liquids + input: [lightoil, secondary] + output: [lightoil, exports] + +loil_imp: + name: loil_imp + description: Net imports of light oil at 15% above crude price + type: secondary + sector: liquids + input: [lightoil, imports] + output: [lightoil, secondary] + +loil_std: + name: loil_std + description: Standard light oil power-plant + type: secondary + vintaged: TRUE + sector: liquids + output: [lightoil, secondary] + +loil_t/d: + name: loil_t/d + description: Transmission/Distribution of light oil (just linking technology) + type: final + sector: liquids + input: [lightoil, secondary] + output: [lightoil, final] + +meth_coal: + name: meth_coal + description: Methanol synthesis via coal gasification + type: primary + vintaged: TRUE + sector: liquids + input: + - [coal, secondary] + - [freshwater_supply, water_supply] + output: + - [methanol, primary] + - [electr, secondary] + +meth_coal_ccs: + name: meth_coal_ccs + description: Methanol synthesis via coal gasification with carbon capture and storage + type: primary + vintaged: TRUE + sector: liquids + input: + - [coal, secondary] + - [freshwater_supply, water_supply] + output: + - [methanol, primary] + - [electr, secondary] + +meth_exp: + name: meth_exp + description: Exports of methanol (no accounting of CO2 transferred) + type: exports + sector: liquids + input: [methanol, primary] + output: [methanol, exports] + +meth_imp: + name: meth_imp + description: Imports of methanol (no accounting of CO2 transferred) + type: secondary + sector: liquids + input: [methanol, exports] + output: [methanol, secondary] + +meth_ng: + name: meth_ng + description: Methanol synthesis via natural gas + type: primary + vintaged: TRUE + sector: liquids + input: + - [gas, secondary] + - [freshwater_supply, water_supply] + output: [methanol, primary] + +meth_ng_ccs: + name: meth_ng_ccs + description: Methanol synthesis via natural gas with carbon capture and storage + type: primary + vintaged: TRUE + sector: liquids + input: + - [gas, secondary] + - [freshwater_supply, water_supply] + output: [methanol, primary] + +meth_t/d: + name: meth_t/d + description: Transmission/Distribution of methanol with C + type: final + sector: liquids + input: [methanol, secondary] + output: [methanol, final] + +oil_bal: + name: oil_bal + description: Link technology to stabilize crude oil production + type: secondary + sector: liquids + input: [crude oil, primary] + output: [crude oil, secondary] + +oil_exp: + name: oil_exp + description: Net exports of crude oil at 100% of oil price + type: exports + sector: liquids + input: [crude oil, primary] + output: [oil, exports] + +oil_imp: + name: oil_imp + description: Net imports of oil + type: secondary + sector: liquids + input: [oil, imports] + output: [crude oil, secondary] + +plutonium_prod: + name: plutonium_prod + description: Plutonium production + type: stocks + sector: liquids + input: [plutonium, stocks] + output: [plutonium, stocks] + +ref_hil: + name: ref_hil + description: New deeply upgraded refineries + type: secondary + vintaged: TRUE + sector: liquids + input: [crude oil, secondary] + output: [fueloil, secondary] + +ref_lol: + name: ref_lol + description: Existing refineries (low yield) + type: secondary + vintaged: TRUE + sector: liquids + input: [crude oil, secondary] + output: [fueloil, secondary] + +SO2_scrub_ref: + name: SO2_scrub_ref + description: SO2 scrubber for refineries + type: secondary + vintaged: TRUE + sector: liquids + output: [exports, secondary] + +syn_liq: + name: syn_liq + description: Coal liquefaction and light oil synthesis + type: secondary + vintaged: TRUE + sector: liquids + input: + - [coal, secondary] + - [freshwater_supply, water_supply] + output: + - [lightoil, secondary] + - [electr, secondary] + +syn_liq_ccs: + name: syn_liq_ccs + description: Coal liquefaction and light oil synthesis with carbon capture and storage + type: secondary + vintaged: TRUE + sector: liquids + input: + - [coal, secondary] + - [freshwater_supply, water_supply] + output: + - [lightoil, secondary] + - [electr, secondary] + +adipic_thermal: + name: adipic_thermal + description: Thermal destruction tech for adipic acid sector + type: dummy + sector: non-co2 + output: [dummy, primary] + +ammonia_secloop: + name: ammonia_secloop + description: Ammonia Secondary Loop Systems + type: dummy + sector: non-co2 + output: [dummy, primary] + +enre_con: + name: enre_con + description: Joint diffusion constraint for enteric fermentation mitigation technologies + type: dummy + sector: non-co2 + output: [dummy agriculture, primary] + +ent_red1: + name: ent_red1 + description: Mitigation for CH4 emissions from animals directly + type: dummy + sector: non-co2 + output: [dummy agriculture, primary] + +ent_red2: + name: ent_red2 + description: Mitigation for CH4 emissions from animals directly + type: dummy + sector: non-co2 + output: [dummy agriculture, primary] + +ent_red3: + name: ent_red3 + description: Mitigation for CH4 emissions from animals directly + type: dummy + sector: non-co2 + output: [dummy agriculture, primary] + +landfill_compost1: + name: landfill_compost1 + description: Landfill mitigation technology (composting) technology 1 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +landfill_compost2: + name: landfill_compost2 + description: Landfill mitigation technology (composting) technology 2 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +landfill_direct1: + name: landfill_direct1 + description: Landfill mitigation technology (direct) 1 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +landfill_direct2: + name: landfill_direct2 + description: Landfill mitigation technology (direct) 1 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +landfill_ele: + name: landfill_ele + description: Landfill mitigation technology (ele) 1 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +landfill_flaring: + name: landfill_flaring + description: Landfill mitigation technology (flaring) 1 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +landfill_heatprdn: + name: landfill_heatprdn + description: Landfill mitigation technology (heat production) 1 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +landfill_oxdn: + name: landfill_oxdn + description: Landfill mitigation technology (oxidation) 1 for CH4 mitigation + type: dummy + vintaged: TRUE + sector: non-co2 + output: [dummy, primary] + +leak_repair: + name: leak_repair + description: Leak-repairs, HFC-134a from refrigeration & AC(SR) + type: dummy + sector: non-co2 + output: [dummy, primary] + +leak_repairsf6: + name: leak_repairsf6 + description: Recycling gas carts for SF6 recovery during assembly of gas insulated equipment + type: dummy + sector: non-co2 + output: [dummy, primary] + +lfil_con: + name: lfil_con + description: Joint diffusion constraint for landfill mitigation technologies + type: dummy + sector: non-co2 + output: [dummy agriculture, primary] + +manu_con: + name: manu_con + description: Joint diffusion constraint for manure management+B249 mitigation technologies + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +meth_bal: + name: meth_bal + description: Link technology to stabilize methanol production + type: primary + sector: non-co2 + input: [methanol, primary] + output: [methanol, secondary] + +mvac_co2: + name: mvac_co2 + description: Transcritical vapor cycle CO2 systems for mobile vehicle air conditioners + type: dummy + sector: non-co2 + output: [dummy] + +recycling_gas1: + name: recycling_gas1 + description: Recycling gas carts for SF6 recovery during maintenance of gas insulated equipment(SR) + type: dummy + sector: non-co2 + output: [dummy, primary] + +refrigerant_recover: + name: refrigerant_recover + description: Recovery of refrigerant, HFC-134a from refrigeration and AC (SR) + type: primary + sector: non-co2 + output: [dummy, primary] + +repl_hc: + name: repl_hc + description: Replacement with HC for foams + type: primary + sector: non-co2 + output: [dummy, primary] + +replacement_so2: + name: replacement_so2 + description: Replacing SF6 by SO2(SR) + type: primary + sector: non-co2 + output: [dummy, primary] + +rice_red1: + name: rice_red1 + description: Mitigation for CH4 emissions from rice + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +rice_red2: + name: rice_red2 + description: Mitigation for CH4 emissions from rice + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +rice_red3: + name: rice_red3 + description: Mitigation for CH4 emissions from rice + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +rire_con: + name: rire_con + description: Joint diffusion constraint for rice cultivation mitigation technologies + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +soil_red1: + name: soil_red1 + description: Mitigation for N2Oemissions from soil + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +soil_red2: + name: soil_red2 + description: Mitigation for N2Oemissions from soil + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +soil_red3: + name: soil_red3 + description: Mitigation for N2Oemissions from soil + type: primary + sector: non-co2 + output: [dummy agriculture, primary] + +vertical_stud: + name: vertical_stud + description: Soderberg process for CF4 from aluminum (SR) + type: dummy + sector: non-co2 + output: [dummy, primary] + +u5-reproc: + name: u5-reproc + description: Uranium reprocessing + type: stocks + vintaged: TRUE + sector: nuclear + input: [uranium, stocks] + output: [uranium, stocks] + +Uran_extr: + name: Uran_extr + description: Uranium extraction, milling for FBR blanket + type: stocks + sector: nuclear + input: [uranium, resource] + output: [uranium, stocks] + +uran2u5: + name: uran2u5 + description: Uranium extraction, milling, fluorination and enrichment per t U5 + type: stocks + sector: nuclear + input: [uranium, resource] + output: [uranium, stocks] + +bco2_tr_dis: + name: bco2_tr_dis + description: Technology for co2 transportation and disposal from biomass technologies + type: secondary + sector: other conversion + output: [exports, secondary] + +co2_tr_dis: + name: co2_tr_dis + description: Technology for co2 transportation and disposal + type: secondary + sector: other conversion + output: [exports, secondary] + +back_rc: + name: back_RC + description: Backstop for diagnosing model infeasibility + type: useful + sector: residential/commercial + output: [rc_spec, useful] + +solar_rc: + name: solar_rc + description: Solar thermal in residential/commercial sector + type: useful + sector: residential/commercial + output: [rc_therm, useful] + +biomass_rc: + name: biomass_rc + description: Biomass with C for heating in residential/commercial sector + type: useful + sector: residential/commercial + input: [biomass, final] + output: [rc_therm, useful] + +coal_rc: + name: coal_rc + description: Coal heating in residential/commercial sector + type: useful + sector: residential/commercial + input: [coal, final] + output: [rc_therm, useful] + +elec_rc: + name: elec_rc + description: Electricity heating in residential/commercial sector + type: useful + sector: residential/commercial + input: [electr, final] + output: [rc_therm, useful] + +eth_rc: + name: eth_rc + description: Ethanol (without C) replacement for use as liquid fuel in residential/commercial + type: useful + sector: residential/commercial + input: [ethanol, final] + output: [rc_therm, useful] + +foil_rc: + name: foil_rc + description: Fuel oil heating in residential/commercial sector + type: useful + sector: residential/commercial + input: [fueloil, final] + output: [rc_therm, useful] + +h2_rc: + name: h2_rc + description: Hydrogen (gaseous) catalytic heating in the residential/commercial sector + type: secondary + sector: residential/commercial + input: [hydrogen, final] + output: [rc_therm, useful] + +heat_rc: + name: heat_rc + description: District heating in residential/commercial sector + type: useful + sector: residential/commercial + input: [d_heat, final] + output: [rc_therm, useful] + +hp_el_rc: + name: hp_el_rc + description: Electric heat pump in residential/commercial sector + type: useful + sector: residential/commercial + input: [electr, final] + output: [rc_therm, useful] + +hp_gas_rc: + name: hp_gas_rc + description: Natural gas heat pump in residential/commercial sector + type: useful + sector: residential/commercial + input: [gas, final] + output: [rc_therm, useful] + +loil_rc: + name: loil_rc + description: Lightoil heating in residential/commercial sector + type: useful + sector: residential/commercial + input: [lightoil, final] + output: [rc_therm, useful] + +meth_rc: + name: meth_rc + description: Methanol (with C) replacement for use as liquid fuel in residential/commercial + type: useful + sector: residential/commercial + input: [methanol, final] + output: [rc_therm, useful] + +RCspec_1: + name: RCspec_1 + description: Conservation cost curve step for residential/commercial specific demand + type: useful + sector: residential/commercial + output: [useful] + +RCspec_2: + name: RCspec_2 + description: Conservation cost curve step for residential/commercial specific demand + type: useful + sector: residential/commercial + output: [useful] + +RCspec_3: + name: RCspec_3 + description: Conservation cost curve step for residential/commercial specific demand + type: useful + sector: residential/commercial + output: [useful] + +RCspec_4: + name: RCspec_4 + description: Conservation cost curve step for residential/commercial specific demand + type: useful + sector: residential/commercial + output: [useful] + +RCspec_5: + name: RCspec_5 + description: Conservation cost curve step for residential/commercial specific demand + type: useful + sector: residential/commercial + output: [useful] + +RCspec_con: + name: RCspec_con + description: Joint diffusion constraint for residential/commercial specific conservation cost curve steps + type: dummy + sector: residential/commercial + output: [dummy agriculture, primary] + +RCtherm_1: + name: RCtherm_1 + description: Conservation cost curve step for residential/commercial thermal demand + type: useful + sector: residential/commercial + output: [rc_therm, useful] + +RCtherm_2: + name: RCtherm_2 + description: Conservation cost curve step for residential/commercial thermal demand + type: useful + sector: residential/commercial + output: [rc_therm, useful] + +RCtherm_3: + name: RCtherm_3 + description: Conservation cost curve step for residential/commercial thermal demand + type: useful + sector: residential/commercial + output: [rc_therm, useful] + +RCtherm_4: + name: RCtherm_4 + description: Conservation cost curve step for residential/commercial thermal demand + type: useful + sector: residential/commercial + output: [rc_therm, useful] + +RCtherm_5: + name: RCtherm_5 + description: Conservation cost curve step for residential/commercial thermal demand + type: useful + sector: residential/commercial + output: [rc_therm, useful] + +RCtherm_con: + name: RCtherm_con + description: Joint diffusion constraint for residential/commercial thermal conservation cost curve steps + type: dummy + sector: residential/commercial + output: [dummy agriculture, primary] + +solar_pv_RC: + name: solar_pv_RC + description: Specific use of on-site solar photovoltaic power plant (no storage) in residential/commercial + type: useful + vintaged: TRUE + sector: residential/commercial + output: [rc_spec, useful] + +sp_el_RC: + name: sp_el_RC + description: Specific use of electricity in residential/commercial + type: useful + sector: residential/commercial + input: [electr, final] + output: [rc_spec, useful] + +h2_fc_RC: + name: h2_fc_RC + description: Specific use of hydrogen fuel cell cogeneration system in res/comm + type: useful + vintaged: TRUE + sector: residential/commercial + input: [hydrogen, final] + output: [rc_spec, useful] + +bio_extr_chp: + name: bio_extr_chp + description: Supply of biomass without net C emissions; defined here as agricultural wastes, and other crops with cycle of 1 year or less + type: primary + sector: solids + output: [biomass, primary] + +bio_ppl_co2scr: + name: bio_ppl_co2scr + description: New coal scrubber for power plants + type: secondary + vintaged: TRUE + sector: solids + output: [exports, secondary] + +biomass_i: + name: biomass_i + description: Biomass with C in industry thermal + type: useful + vintaged: TRUE + sector: solids + input: [biomass, final] + output: [i_therm, useful] + +biomass_nc: + name: biomass_nc + description: Non-commercial biomass with C + type: useful + vintaged: TRUE + sector: solids + input: [biomass, primary] + output: [non-comm, useful] + +biomass_t/d: + name: biomass_t/d + description: Transmission/Distribution of biomass with C + type: useful + sector: solids + input: [biomass, primary] + output: [biomass, final] + +c_ppl_co2scr: + name: c_ppl_co2scr + description: New coal scrubber for coal power plants + type: secondary + vintaged: TRUE + sector: solids + output: [exports, secondary] + +cfc_co2scr: + name: cfc_co2scr + description: Co2 scrubber for coal fuel cells (CCS) + type: secondary + vintaged: TRUE + sector: solids + output: [exports, secondary] + +coal_bal: + name: coal_bal + description: Link technology to stabilize coal production + type: secondary + sector: solids + input: [coal, primary] + output: [coal, secondary] + +coal_exp: + name: coal_exp + description: Net exports of coal at fixed price of about US$ 42/tce + type: exports + sector: solids + input: [coal, primary] + output: [coal, exports] + +coal_imp: + name: coal_imp + description: Net imports of coal + type: secondary + sector: solids + input: [coal, imports] + output: [coal, secondary] + +coal_t/d: + name: coal_t/d + description: Transmission/Distribution of coal + type: final + sector: solids + input: [coal, secondary] + output: [coal, final] + +coal_t/d-in-06%: + name: coal_t/d-in-06% + description: Transmission/Distribution of coal industry like coal_t/d but imported coal with 0.6% S content + type: final + sector: solids + input: [coal, secondary] + output: [coal, final] + +coal_t/d-in-SO2: + name: coal_t/d-in-SO2 + description: Transmission/Distribution of coal industry like coal_t/d but processed coal + type: final + sector: solids + input: [coal, secondary] + output: [coal, final] + +coal_t/d-rc-06%: + name: coal_t/d-rc-06% + description: Transmission/Distribution of coal residential/commercial like coal_t/d but imported coal with 0.6% S content + type: final + sector: solids + input: [coal, secondary] + output: [coal, final] + +coal_t/d-rc-SO2: + name: coal_t/d-rc-SO2 + description: Transmission/Distribution of coal like coal_t/d but processed coal + type: final + sector: solids + input: [coal, secondary] + output: [coal, final] + +glb_coal_exp: + name: glb_coal_exp + description: Global net export of coal + type: imports + sector: solids + output: [coal, imports] + +glb_coal_imp: + name: glb_coal_imp + description: Global net import of coal + type: exports + sector: solids + input: [electr, exports] + output: [exports] + +back_trp: + name: back_trp + description: Backstop for diagnosing model infeasibility + type: useful + sector: transport + output: [transport, useful] + +coal_trp: + name: coal_trp + description: Coal-based transport + type: useful + sector: transport + input: [coal, final] + output: [transport, useful] + +elec_trp: + name: elec_trp + description: Electricity-based transport + type: useful + sector: transport + input: [electr, final] + output: [transport, useful] + +eth_fc_trp: + name: eth_fc_trp + description: Ethanol (without net C) fuel cell-based transport + type: useful + sector: transport + input: [ethanol, final] + output: [transport, useful] + +eth_ic_trp: + name: eth_ic_trp + description: Ethanol (without net C) ic-engine-based transport + type: useful + sector: transport + input: [ethanol, final] + output: [transport, useful] + +foil_trp: + name: foil_trp + description: Fueloil-based transport + type: useful + sector: transport + input: [fueloil, final] + output: [transport, useful] + +gas_trp: + name: gas_trp + description: Gas-based transport + type: useful + sector: transport + input: [gas, final] + output: [transport, useful] + +h2_fc_trp: + name: h2_fc_trp + description: Hydrogen fuel cell-based transport (plus off-hours electricity generation) + type: useful + vintaged: TRUE + sector: transport + input: [liquid hydrogen, final] + output: [transport, useful] + +loil_trp: + name: loil_trp + description: Lightoil-based transport + type: useful + sector: transport + input: [lightoil, final] + output: [transport, useful] + +meth_fc_trp: + name: meth_fc_trp + description: Methanol (with C) fuel cell-based transport + type: useful + sector: transport + input: [methanol, final] + output: [transport, useful] + +meth_ic_trp: + name: meth_ic_trp + description: Methanol (with C) ic-engine-based transport + type: useful + sector: transport + input: [methanol, final] + output: [transport, useful] + +Trans_1: + name: Trans_1 + description: Conservation cost curve step for transport demand + type: useful + sector: transport + output: [transport, useful] + +Trans_2: + name: Trans_2 + description: Conservation cost curve step for transport demand + type: useful + sector: transport + output: [transport, useful] + +Trans_3: + name: Trans_3 + description: Conservation cost curve step for transport demand + type: useful + sector: transport + output: [transport, useful] + +Trans_4: + name: Trans_4 + description: Conservation cost curve step for transport demand + type: useful + sector: transport + output: [transport, useful] + +Trans_5: + name: Trans_5 + description: Conservation cost curve step for transport demand + type: useful + sector: transport + output: [transport, useful] + +Trans_con: + name: Trans_con + description: Joint diffusion constraint for transport conservation cost curve steps + type: primary + sector: transport + output: [dummy agriculture, primary] + +foil_bunker: + name: foil_bunker + description: Fuel oil demand for international shipping bunkers (global trade) + type: useful + sector: shipping + input: [fueloil, final] + output: [shipping, useful] + +loil_bunker: + name: loil_bunker + description: Light oil demand for international shipping bunkers (global trade) + type: useful + sector: shipping + input: [lightoil, final] + output: [shipping, useful] + +meth_bunker: + name: meth_bunker + description: Methanol demand for international shipping bunkers (global trade) + type: useful + sector: shipping + input: [methanol, final] + output: [shipping, useful] + +eth_bunker: + name: eth_bunker + description: Ethanol demand for international shipping bunkers (global trade) + type: useful + sector: shipping + input: [ethanol, final] + output: [shipping, useful] + +LNG_bunker: + name: LNG_bunker + description: Liquified natural gas demand for international shipping bunkers (global trade) + type: useful + sector: shipping + input: [LNG, final] + output: [shipping, useful] + +LH2_bunker: + name: LH2_bunker + description: Liquified hydrogen demand for international shipping bunkers (global trade) + type: useful + sector: shipping + input: [lh2, final] + output: [shipping, useful] diff --git a/nest/message_ix_models/data/test/advance/advance_compare_20171018-134445.csv.zip b/nest/message_ix_models/data/test/advance/advance_compare_20171018-134445.csv.zip new file mode 100644 index 0000000..7be054b --- /dev/null +++ b/nest/message_ix_models/data/test/advance/advance_compare_20171018-134445.csv.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f47e3227a34ce325fc10afbfcf53c8d0870c3c1a71f69f5e4aa0476808947b45 +size 3122 diff --git a/nest/message_ix_models/data/unit.yaml b/nest/message_ix_models/data/unit.yaml new file mode 100644 index 0000000..ec45d8d --- /dev/null +++ b/nest/message_ix_models/data/unit.yaml @@ -0,0 +1,2 @@ +"": + name: dimensionless diff --git a/nest/message_ix_models/data/water/.gitattributes b/nest/message_ix_models/data/water/.gitattributes new file mode 100644 index 0000000..b67374a --- /dev/null +++ b/nest/message_ix_models/data/water/.gitattributes @@ -0,0 +1,4 @@ +*.shp filter=lfs diff=lfs merge=lfs -text +*.Rda filter=lfs diff=lfs merge=lfs -text +*.csv filter=lfs diff=lfs merge=lfs -text +ppl_cooling_tech/*.csv filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/nest/message_ix_models/data/water/README.txt b/nest/message_ix_models/data/water/README.txt new file mode 100644 index 0000000..8126cdd --- /dev/null +++ b/nest/message_ix_models/data/water/README.txt @@ -0,0 +1,9 @@ +The data and scripts used to generate the shapefiles are located in the interla IIASA drives + + + + + +For cooling technologies, the database with all power plants used in, called bz the scripts message_data.model.water.data.calculate_ppl_cooling_technology_shares.r +https://github.com/OFR-IIASA/message_data/blob/RES_add_5_year_timesteps2/data/model/platts_historical_capacity/merge_WEPP_Raptis_CARMA.py and located in +P:\ene.model\NEST\cooling technologies\test.xslx \ No newline at end of file diff --git a/nest/message_ix_models/data/water/availability/e-flow_2p6_R11.csv b/nest/message_ix_models/data/water/availability/e-flow_2p6_R11.csv new file mode 100644 index 0000000..527a8db --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_2p6_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c782813f429c9360170740548954912b89421c95239a8f319fff9d1148625f11 +size 74581 diff --git a/nest/message_ix_models/data/water/availability/e-flow_2p6_ZMB.csv b/nest/message_ix_models/data/water/availability/e-flow_2p6_ZMB.csv new file mode 100644 index 0000000..716bef5 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_2p6_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42714c291047ae6fdd3e38df4fd564c73a9f72272d393df2e715677f9e9def24 +size 8593 diff --git a/nest/message_ix_models/data/water/availability/e-flow_5y_m_2p6_ZMB.csv b/nest/message_ix_models/data/water/availability/e-flow_5y_m_2p6_ZMB.csv new file mode 100644 index 0000000..84263bb --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_5y_m_2p6_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b043e588d110922a42634390063e53c77b87a48b19e85c6a2153101d272c4ca2 +size 104475 diff --git a/nest/message_ix_models/data/water/availability/e-flow_5y_m_7p0_ZMB.csv b/nest/message_ix_models/data/water/availability/e-flow_5y_m_7p0_ZMB.csv new file mode 100644 index 0000000..233b48d --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_5y_m_7p0_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd7e7c6c64f4d0db7ffb2a0ac7f2bc5183b91877054ee8655f469656aaa7fb87 +size 111718 diff --git a/nest/message_ix_models/data/water/availability/e-flow_5y_m_no_climate_ZMB.csv b/nest/message_ix_models/data/water/availability/e-flow_5y_m_no_climate_ZMB.csv new file mode 100644 index 0000000..879de99 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_5y_m_no_climate_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ae6a78ca339c43e34fdf909af91b3d81e5576c6f12bafbf9648895c6a1a2ae3 +size 111166 diff --git a/nest/message_ix_models/data/water/availability/e-flow_6p0_R11.csv b/nest/message_ix_models/data/water/availability/e-flow_6p0_R11.csv new file mode 100644 index 0000000..0f7081a --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_6p0_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d29015b588f4e4d5782961dfbde224f7264ec0ea224d5a089cd5e969ba7bb40 +size 74482 diff --git a/nest/message_ix_models/data/water/availability/e-flow_7p0_ZMB.csv b/nest/message_ix_models/data/water/availability/e-flow_7p0_ZMB.csv new file mode 100644 index 0000000..e565afc --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_7p0_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df967b0f4ac7991c75eea091ac6895dab99553b6f273e7d4dbdfc6c6141f0a0c +size 9359 diff --git a/nest/message_ix_models/data/water/availability/e-flow_no_climate_R11.csv b/nest/message_ix_models/data/water/availability/e-flow_no_climate_R11.csv new file mode 100644 index 0000000..afde56c --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_no_climate_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:466931d4ffa0a6bc6ea324113a18069cfa38ab13656e9ae2c4a141090119786a +size 74814 diff --git a/nest/message_ix_models/data/water/availability/e-flow_no_climate_ZMB.csv b/nest/message_ix_models/data/water/availability/e-flow_no_climate_ZMB.csv new file mode 100644 index 0000000..7c03fd1 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/e-flow_no_climate_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b25d31aa6552e6ab99fb5f13e39017aa5da1e6d3003f1c7332e0b7256d171d01 +size 9394 diff --git a/nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_R11.csv b/nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_R11.csv new file mode 100644 index 0000000..2e008af --- /dev/null +++ b/nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfabd44aef3049a9567d9b4ef375c482d84296219ddd4ec212d8a6b279a28f26 +size 32039 diff --git a/nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_ZMB.csv b/nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_ZMB.csv new file mode 100644 index 0000000..4ff2afd --- /dev/null +++ b/nest/message_ix_models/data/water/availability/gw_energy_intensity_depth_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e1ec7e505603e80d76202a162477feded5b022a6ea47b1b9be27c465ce61111 +size 3345 diff --git a/nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_R11.csv b/nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_R11.csv new file mode 100644 index 0000000..e582146 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc25c27e07674753d128664dd51a7552aef6562af167fcdd5e481d4e5a8f5e79 +size 4588 diff --git a/nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_ZMB.csv b/nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_ZMB.csv new file mode 100644 index 0000000..9ff3e21 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/historical_new_cap_gw_sw_km3_year_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88b99ef9428d73b9ae3225cd7f58b0f471781167f5d087767784113d33b43e5b +size 622 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_2p6_high_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_2p6_high_R11.csv new file mode 100644 index 0000000..d1f5920 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_2p6_high_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e38bae97634f75ff9900304626e21aa5ec83808863f11624b2e0a7968a8f8be +size 74870 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_2p6_high_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_2p6_high_ZMB.csv new file mode 100644 index 0000000..4a01ffa --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_2p6_high_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2de6fe345affc14cbaaf6ab17533d968a0b26f32519b9ad28da369af05f5face +size 9223 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_2p6_low_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_2p6_low_R11.csv new file mode 100644 index 0000000..0c297d4 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_2p6_low_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f84e9aa740ad7fe732bab0c5611cee03270da440951055fb64281f6ab54bf91 +size 74972 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_2p6_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_2p6_low_ZMB.csv new file mode 100644 index 0000000..f12c6db --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_2p6_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:445996ac199bd0e349a340bc593dfbe4778a4a3833c4f9b5b9e65cc97d953622 +size 9187 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_2p6_med_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_2p6_med_R11.csv new file mode 100644 index 0000000..013e47c --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_2p6_med_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6a8fd219690b4708afe29609a631a123321d94283f9d3f57b8543d071194846 +size 74707 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_2p6_med_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_2p6_med_ZMB.csv new file mode 100644 index 0000000..e6a8701 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_2p6_med_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdd0c278abef0f0a154b91a76c834cce365a284047854d7258efc24ae3a21bd8 +size 9311 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_6p0_high_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_6p0_high_R11.csv new file mode 100644 index 0000000..cba5e33 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_6p0_high_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb0b0faaf1ebbce6777e0566a38c73570c8a892720957ed0187b9b02a3f0ee44 +size 74625 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_6p0_low_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_6p0_low_R11.csv new file mode 100644 index 0000000..45a957f --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_6p0_low_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c34115b9c4b7f5dd92f80323056ccc5a25af8ca1f32223c42580b0cf7a9a5d8 +size 75038 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_6p0_med_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_6p0_med_R11.csv new file mode 100644 index 0000000..39162b3 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_6p0_med_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0370587cb8da07b3f46e96adf578b782f8fac5d89d09a6411c2ca220ed392153 +size 74645 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_7p0_high_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_7p0_high_ZMB.csv new file mode 100644 index 0000000..1e7dc88 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_7p0_high_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c6b8f794dd9815c682afcc39aa1e91b51e5d3d2d4d53559f427e702883be45a +size 9245 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_7p0_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_7p0_low_ZMB.csv new file mode 100644 index 0000000..462bd44 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_7p0_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf2c7d428ac85c110de5cae4fd40f20381e7b71cbe25770f63d5539c1d9234fd +size 9148 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_7p0_med_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_7p0_med_ZMB.csv new file mode 100644 index 0000000..0929ac6 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_7p0_med_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8ff145f7b1333105b9a8674baef2f4f5d600ccd0b26e6c1525f0f97af1d1cb5 +size 9319 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_m_2p6_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_m_2p6_low_ZMB.csv new file mode 100644 index 0000000..d7d3bf7 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_m_2p6_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84070d6911176daced5c55e2298082af726ebfabb0a6312f4b76f9e38b581ae2 +size 104669 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_m_7p0_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_m_7p0_low_ZMB.csv new file mode 100644 index 0000000..2eed964 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_m_7p0_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23dcde2d02d36c0a9ab524b5d9fa0817fd25f0f535b6a6fea50eabcc74b306a4 +size 104683 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_m_no_climate_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_m_no_climate_low_ZMB.csv new file mode 100644 index 0000000..12190a2 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_m_no_climate_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6823c985cbde2540a02d00ee1c0d8de802070e0dded39f458c117dad8a74273f +size 105550 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_R11.csv new file mode 100644 index 0000000..a1a1806 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f7c8d0ec4ab98665aa1c12163aba5f78fda0fab5308720ff030c2b3f318c734 +size 75743 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_ZMB.csv new file mode 100644 index 0000000..221b17a --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_high_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5764ce05a5502eccf495c2770f4c1c5e61f7301905c9d7f993667fc9ef719fe7 +size 8296 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_R11.csv new file mode 100644 index 0000000..d0f0011 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e620e584407169ce13e0348fd9cd4a36ea6607e15ea7192a8b45c3efac969ee +size 75916 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_ZMB.csv new file mode 100644 index 0000000..221b17a --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5764ce05a5502eccf495c2770f4c1c5e61f7301905c9d7f993667fc9ef719fe7 +size 8296 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_R11.csv b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_R11.csv new file mode 100644 index 0000000..5b39329 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdcb603d00d601940c3d3215daa1c8b022740eecf537d48152de754c4a56ad8f +size 71625 diff --git a/nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_ZMB.csv b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_ZMB.csv new file mode 100644 index 0000000..221b17a --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qr_5y_no_climate_med_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5764ce05a5502eccf495c2770f4c1c5e61f7301905c9d7f993667fc9ef719fe7 +size 8296 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_R11.csv new file mode 100644 index 0000000..3b59dd7 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f6cf68d52ed5bc2a4d50ed272d72fa5c70929532bb8ab6ad973790461f0d762 +size 48565 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_ZMB.csv new file mode 100644 index 0000000..ff35348 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_high_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a94cfb9caab4dd9b2a540dfbb4e47d26e99e2108a18f8dbca92bdd3eb6f17c9 +size 8438 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_R11.csv new file mode 100644 index 0000000..5320f46 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7be53ae4a9be2e9ae3bf5ec5268122fea283d506bd894e2780af6ba42fc2441d +size 48600 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_ZMB.csv new file mode 100644 index 0000000..78fff25 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bc49a12bea8257d5ca54338b67db4955c1aae53cc72bbae72eb43cf19bbec97 +size 8341 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_R11.csv new file mode 100644 index 0000000..836ba72 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a08e5f6ee0dc07638edb0f986a34cf38916ef387b24aea444f5850d5708c408 +size 48607 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_ZMB.csv new file mode 100644 index 0000000..721b920 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_2p6_med_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c0b854fd54182fded926ae4b9c41bc1e511bf985bbaa3e1314091ad1f4f595a +size 8388 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_6p0_high_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_6p0_high_R11.csv new file mode 100644 index 0000000..3b28838 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_6p0_high_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74307b91cc8b825fa887220d023d04cf0d8be0d0cb2813445a70c075ba155452 +size 48629 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_6p0_low_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_6p0_low_R11.csv new file mode 100644 index 0000000..e2a5ca1 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_6p0_low_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efb9d2e19e823877470c027dd9259e589b6b0611730830b80e44109a6d928671 +size 48558 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_6p0_med_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_6p0_med_R11.csv new file mode 100644 index 0000000..13895ef --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_6p0_med_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc273df77b981ea17823e6f173aff3708451c992289d6774b07c8f29b2eb3931 +size 48660 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_7p0_high_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_7p0_high_ZMB.csv new file mode 100644 index 0000000..ab29115 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_7p0_high_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afa4b64f2ce85b9aa7be12b785e0a0a2c08a4dbfaddbf7ad7270a4f8b377d2ff +size 8441 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_7p0_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_7p0_low_ZMB.csv new file mode 100644 index 0000000..cadfa94 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_7p0_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57cfccb040dbe8e0ab57af35a6df5c1fa8cfa8ffb1296242ec6df7f7ed120276 +size 8364 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_7p0_med_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_7p0_med_ZMB.csv new file mode 100644 index 0000000..59ee0b8 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_7p0_med_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff117f46ba16ac0d248b14d652f10df80cf19cd175abd4b345f4e9f9af925d40 +size 8386 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_m_2p6_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_m_2p6_low_ZMB.csv new file mode 100644 index 0000000..ee4794e --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_m_2p6_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95af63218ff1d6272f5a594e4da2555aba38a5c8c3e5a7dcab94e23d520d7c83 +size 98248 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_m_7p0_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_m_7p0_low_ZMB.csv new file mode 100644 index 0000000..538853b --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_m_7p0_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd1cf193bec732f87f3f76508a745954f84a29319156794b49e2355ea4fe5de0 +size 98276 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_m_no_climate_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_m_no_climate_low_ZMB.csv new file mode 100644 index 0000000..3e400c8 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_m_no_climate_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91c45761b84e45fdc7f481c16c2161442e64fee912158a3806d6e365f8390dd0 +size 99232 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_R11.csv new file mode 100644 index 0000000..cff2019 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a3b25fb3fed14282e2efb22d0e6d75bb71a6ffa30a5a1929b0df3f9178e121e +size 48633 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_ZMB.csv new file mode 100644 index 0000000..6620ae0 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_high_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a084776d2f54cad828687690699531a5b8a93875a2813ffa07d75be791181d +size 8368 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_R11.csv new file mode 100644 index 0000000..9a3db53 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d397e3b18355a1d047e0e84901f9c0be8536ea756cb858c1e4fd746e55cd3c3 +size 48708 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_ZMB.csv new file mode 100644 index 0000000..6620ae0 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_low_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a084776d2f54cad828687690699531a5b8a93875a2813ffa07d75be791181d +size 8368 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_R11.csv b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_R11.csv new file mode 100644 index 0000000..99518bc --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16b7ab8137a097dae99ff846b6cc900464b5b0f95a9e6591b74e883d1104e884 +size 46014 diff --git a/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_ZMB.csv b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_ZMB.csv new file mode 100644 index 0000000..6620ae0 --- /dev/null +++ b/nest/message_ix_models/data/water/availability/qtot_5y_no_climate_med_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a084776d2f54cad828687690699531a5b8a93875a2813ffa07d75be791181d +size 8368 diff --git a/nest/message_ix_models/data/water/config.yaml b/nest/message_ix_models/data/water/config.yaml new file mode 100644 index 0000000..c6f3b8f --- /dev/null +++ b/nest/message_ix_models/data/water/config.yaml @@ -0,0 +1,10 @@ +# Configuration for MESSAGEix-Nexus + +# Configuration file for the model +# Added data sources here. + + +# CSV files containing data for input calculations and assumptions +data files: +- cooltech_cost_and_shares_ssp_msg14 +- tech_water_performance_ssp_msg \ No newline at end of file diff --git a/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R11.csv b/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R11.csv new file mode 100644 index 0000000..0e82dea --- /dev/null +++ b/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7467ee09663e4046b928ee25de988cfde11fecc6f2c2f6b1198d83b04b42cc3c +size 21924 diff --git a/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R12.csv b/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R12.csv new file mode 100644 index 0000000..9e71b3c --- /dev/null +++ b/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_R12.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18d8797e3d1e744b03a0fdce61817fd15ba10bc09baf5fc80dfa98600cd0c87e +size 22715 diff --git a/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_ZMB.csv b/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_ZMB.csv new file mode 100644 index 0000000..4205dac --- /dev/null +++ b/nest/message_ix_models/data/water/delineation/basins_by_region_simpl_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8784bfe14b9613acfa7ab9a22edb877a0ae929197949e5e8e476a91374573b5 +size 2263 diff --git a/nest/message_ix_models/data/water/delineation/basins_country_R11.csv b/nest/message_ix_models/data/water/delineation/basins_country_R11.csv new file mode 100644 index 0000000..c6dbe62 --- /dev/null +++ b/nest/message_ix_models/data/water/delineation/basins_country_R11.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9234224ae7455e2a9d81ab89c55bb1fb439a0c77fe4b30b1f194b00ce6b1a1f +size 296550 diff --git a/nest/message_ix_models/data/water/delineation/basins_country_ZMB.csv b/nest/message_ix_models/data/water/delineation/basins_country_ZMB.csv new file mode 100644 index 0000000..be66bce --- /dev/null +++ b/nest/message_ix_models/data/water/delineation/basins_country_ZMB.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:347a1e0a8afb3e269cd3ab50b219407a52813e6837ad77e1b04c181633aab69c +size 1915 diff --git a/nest/message_ix_models/data/water/demands/.gitattributes b/nest/message_ix_models/data/water/demands/.gitattributes new file mode 100644 index 0000000..0f42b0e --- /dev/null +++ b/nest/message_ix_models/data/water/demands/.gitattributes @@ -0,0 +1,4 @@ +cdlinks_globiom_irrigation.csv filter=lfs diff=lfs merge=lfs -text +country_region_map_key.csv filter=lfs diff=lfs merge=lfs -text +watergap_historical_water_use_mf.csv filter=lfs diff=lfs merge=lfs -text +watergap_historical_water_use_mw.csv filter=lfs diff=lfs merge=lfs -text diff --git a/nest/message_ix_models/data/water/demands/country_region_map_key.csv b/nest/message_ix_models/data/water/demands/country_region_map_key.csv new file mode 100644 index 0000000..3dfe558 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/country_region_map_key.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a13117f17a4f064cf55d00b444182f95711cc29a4191bf7b74bc339c2b93891 +size 6245 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/all_rates_SSP2.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/all_rates_SSP2.csv new file mode 100644 index 0000000..261ec84 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/all_rates_SSP2.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a7adabd0784c69408797f08996e571d94bc02faa9059c2744913fecca8e36aa +size 1570373 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_return_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_return_baseline.csv new file mode 100644 index 0000000..974caeb --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_return_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79140fa61b846abdac6ca3284e308d7378529df510bc7f8a4ade6e0102448c44 +size 19958 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_withdrawal_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_withdrawal_baseline.csv new file mode 100644 index 0000000..958729c --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_manufacturing_withdrawal_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47ff4e56401a8f115f6e4a1c9ba986290fa0086edd45d2bfab8829956baea9ac +size 20037 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_connection_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_connection_rate_baseline.csv new file mode 100644 index 0000000..a373a13 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_connection_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f9601471ee8a50ae153f62c773c250b75f3d5c226f592cc81ab8f95407e3c68 +size 15216 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_return_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_return_baseline.csv new file mode 100644 index 0000000..ea0545a --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_return_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ab6a03c3215889fa1d5b8487059081eef540ac2a2c7ea22ad96dd0197cc4d2e +size 19819 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_treatment_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_treatment_rate_baseline.csv new file mode 100644 index 0000000..51ce5b5 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_treatment_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecbe33af77e86409584e914c4338028d64f2f9b9a5e70e3ac882fd9c4b7f9fb8 +size 15060 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_withdrawal_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_withdrawal_baseline.csv new file mode 100644 index 0000000..b9477be --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_rural_withdrawal_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edecc52634b5839f3b3fe984a6a39496358411ce793ae63f77a8c3c432a0de89 +size 20035 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_connection_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_connection_rate_baseline.csv new file mode 100644 index 0000000..4702569 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_connection_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33fb51a85efdf4074421fec1b4d8874664d98c3a746dd8b06045896fe44d8f91 +size 15197 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_recycling_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_recycling_rate_baseline.csv new file mode 100644 index 0000000..5749f04 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_recycling_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82dcac2406e392ccbcabf3a560e0a4848ab0339b33d9b830489351bb066702c8 +size 15917 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return2_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return2_baseline.csv new file mode 100644 index 0000000..7e33df2 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return2_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:820a9d7100deb461727e17efbfa9f52a26b7ae77b9866fbfdbb767ff13338129 +size 19992 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return_baseline.csv new file mode 100644 index 0000000..bb7982d --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_return_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:945c1cc3fceef74719faf3713867b676bdec82c2d3f1dfc4d4bb927cc71dc0ae +size 20596 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_treatment_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_treatment_rate_baseline.csv new file mode 100644 index 0000000..ae88be8 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_treatment_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dce638318eb41ce4fd5c3902ceafe4500afc99cddf697e0ceedf07ef9676127 +size 15074 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal2_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal2_baseline.csv new file mode 100644 index 0000000..43cc6b6 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal2_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc187b578f1c21e34a28782ce3d6a7e4c8b5b3949a2c066bcb5e92f97dfa68ab +size 20131 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal_baseline.csv new file mode 100644 index 0000000..d59dce6 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R11/ssp2_regional_urban_withdrawal_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46beeca6ecd4eab00b0824d7f119fee5ab40acc8976d672b827a8cdf697ef769 +size 20668 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_return_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_return_baseline.csv new file mode 100644 index 0000000..c5b91f5 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_return_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:749646f24509f830238fc15aa942c5d8aeead41bd8ac7f4d28011f85e13a75a9 +size 20480 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_withdrawal_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_withdrawal_baseline.csv new file mode 100644 index 0000000..86d4892 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_manufacturing_withdrawal_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e13aa6382ff2f1d0d83575d98345640d09c1d838385cf6291a89cfc85f7b26f +size 20487 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_connection_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_connection_rate_baseline.csv new file mode 100644 index 0000000..54f913e --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_connection_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4f6ef989627613b1a2786400aa120a7219bb64ce80d898d4723a479890237b6 +size 15548 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_return_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_return_baseline.csv new file mode 100644 index 0000000..7bb14d7 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_return_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca409c118f7454e7e296f61e77f64364de1f75b79585ecc45ba24984c21a0ac4 +size 20441 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_treatment_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_treatment_rate_baseline.csv new file mode 100644 index 0000000..5191e88 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_treatment_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59629b41574d84da92d6fbb14a11a2879d8826a661a9cf663c48ee805f6da45b +size 15440 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_withdrawal_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_withdrawal_baseline.csv new file mode 100644 index 0000000..c69a504 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_rural_withdrawal_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcaec82932c0c1a288f82448706fdf13a5fbdbc4c01d7808d608a32714249c67 +size 20559 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_connection_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_connection_rate_baseline.csv new file mode 100644 index 0000000..251c207 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_connection_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d5683c82ff4f8fee65eb6277f9744b7557af3649b76f8f917e17fe9d16ea5a0 +size 15623 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_recycling_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_recycling_rate_baseline.csv new file mode 100644 index 0000000..899f721 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_recycling_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f717ec1e795d0e884bc283dfb9a2d7a61085db9a2e15919e288f442e9834d859 +size 16381 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return2_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return2_baseline.csv new file mode 100644 index 0000000..f1b408c --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return2_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baf5bc495bd1a356157ff9ef44f14e8ad29b012b2db97d02d780142348304488 +size 20517 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return_baseline.csv new file mode 100644 index 0000000..19279ae --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_return_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:084de543e09d975cc93dd15d79b4be00d4ece26f6115c8a26e1cbf244c2eaa93 +size 21150 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_treatment_rate_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_treatment_rate_baseline.csv new file mode 100644 index 0000000..4a6547c --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_treatment_rate_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06f270622d88fc4898ef5903d1d698b2471fec5bcf25e96beadd31e1e4a43f50 +size 15514 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal2_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal2_baseline.csv new file mode 100644 index 0000000..2381a33 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal2_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59eb4f0eacb187c2cc8ef8771b3a178e43a435c5f64fb831f6739c8a35f2f14f +size 20592 diff --git a/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal_baseline.csv b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal_baseline.csv new file mode 100644 index 0000000..c3d6622 --- /dev/null +++ b/nest/message_ix_models/data/water/demands/harmonized/R12/ssp2_regional_urban_withdrawal_baseline.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfe5a1690abe693293e9a4509d009e3a9bd653036eb2478caa799e8d6eedc84c +size 21250 diff --git a/nest/message_ix_models/data/water/demands/harmonized/Thumbs.db b/nest/message_ix_models/data/water/demands/harmonized/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..6902b84e8521b45d2857a7ac4ba37d1ce32f289c GIT binary patch literal 72704 zcmeFZbzGHAyDxszNQ#n@N=kP~EI=ud?v|D==~#qq0-%5lG5F<*6-$d zUiW@=Kj%E}+5ep1{+xH#=X>{>yylu~X1+56{dfzXO749JesdxK5&(nW0#N_yIU;zC z@bmsQ0Q|g%!Qt?qk3GN(@b=&Ce@G5ogYiTH%j~8MZ-4?`-;_BT2y_s)KwyBt1c3zt z8w3srTo9lL0C*tofVc|+9|QpiLJ&885rbzE5cfckf*=Dy4uS#%B?u}I_dz@WK@EZi z1T6?U5cD7zKs*G&2;#;+X7J1cf)xZC2zC%0AUHvAf#3$g1A-R>9|(RB0w5lN5CkCv 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 literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/data/water/infrastructure/extraction_techs.xlsx b/nest/message_ix_models/data/water/infrastructure/extraction_techs.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0cc9c6b5b37a6c44ced66791cd1ea81bdce234d3 GIT binary patch literal 13915 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 vAT*K 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 w2&k6@2e`9CN3hE8r?l9yy2 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 b`H%O$wYeyFNm@QJfP=PjtFMxrmq-5t-MAJA literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_cooling_type.csv b/nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_cooling_type.csv new file mode 100644 index 0000000..9c47ea5 --- /dev/null +++ b/nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_cooling_type.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a6f722103b60992412aba1f51cf3bbaad06d585de044b7c6b0824a5855fc19d +size 401 diff --git a/nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_unit_type.csv b/nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_unit_type.csv new file mode 100644 index 0000000..6c3238d --- /dev/null +++ b/nest/message_ix_models/data/water/ppl_cooling_tech/raptis_types_map_unit_type.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1370ec1ee0a88142c4aed8724b5fa8b0a0e94b9a7c35d5cc81e0475c9e9c7236 +size 1062 diff --git a/nest/message_ix_models/data/water/ppl_cooling_tech/tech_names_ssp_msg.csv b/nest/message_ix_models/data/water/ppl_cooling_tech/tech_names_ssp_msg.csv new file mode 100644 index 0000000..b9296a1 --- /dev/null +++ b/nest/message_ix_models/data/water/ppl_cooling_tech/tech_names_ssp_msg.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a7dca2e09101660bd1f6ece6bc00fe82e4db1c055dd30208fe3716aef453f5b +size 15268 diff --git a/nest/message_ix_models/data/water/ppl_cooling_tech/tech_water_performance_ssp_msg.csv b/nest/message_ix_models/data/water/ppl_cooling_tech/tech_water_performance_ssp_msg.csv new file mode 100644 index 0000000..ea5d7e0 --- /dev/null +++ b/nest/message_ix_models/data/water/ppl_cooling_tech/tech_water_performance_ssp_msg.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5da3683b8d9f939d0d3277f8d97244d6c55a651228d5e13bd4e191a9f92ecb78 +size 17428 diff --git a/nest/message_ix_models/data/water/set.yaml b/nest/message_ix_models/data/water/set.yaml new file mode 100644 index 0000000..3d5254d --- /dev/null +++ b/nest/message_ix_models/data/water/set.yaml @@ -0,0 +1,1025 @@ +#Set configuration for the MESSAGE-Water model + +# For each set in the MESSAGEix framework, the group contains: +# - 'require': elements that must be present for the model to be set up. +# - 'remove': elements to remove. +# - 'add': elements to add. This is a mapping from element short names to a +# longer description. + +nexus: + commodity: + require: + - electr + + remove: + # removing all technologies which are related to water in the previous model + # Re added in the newer implementation with lesser commodities + - saline_supply + #- freshwater_instream + - freshwater_supply + - desalinated_water + - saline_supply_ppl + - urban_collected_wst + - urban_uncollected_wst + - yield_freshwater_suply + - rural_collected_wst + - rural_uncollected_wst + - urban_mw + - urban_dis + - rural_mw + - rural_dis + - cooling__bio_hpl + - cooling__bio_ppl + - cooling__bio_istig + - cooling__bio_ppl + - cooling__coal_adv + - cooling__coal_adv_ccs + - cooling__coal_ppl + - cooling__coal_ppl_u + - cooling__foil_hpl + - cooling__foil_ppl + - cooling__gas_cc + - cooling__gas_cc_ccs + - cooling__gas_hpl + - cooling__gas_ppl + - cooling__geo_hpl + - cooling__geo_ppl + - cooling__igcc + - cooling__igcc_ccs + - cooling__loil_cc + - cooling__loil_ppl + - cooling__nuc_hc + - cooling__solar_th_ppl + + add: + - electr + - salinewater + - freshwater_instream + - freshwater + - freshwater_basin + - surfacewater_basin + - groundwater_basin + - salinewater_basin + - desalinated_water + - saline_ppl + - urban_collected_wst + - urban_uncollected_wst + - yield_freshwater_suply + - rural_collected_wst + - rural_uncollected_wst + - urban_mw + - industry_mw + - industry_uncollected_wst + - urban_disconnected + - rural_mw + - rural_disconnected + + + level: + require: + - secondary + + remove: + - water_supply + - cooling + - desalination_supply + - water_treat + add: + - water_supply + - water_supply_basin + - saline_supply_basin + - water_treat + - water_avail_basin + - saline_supply + - irr_cereal + - irr_sugarcrops + - irr_oilcrops + + mode: + require: + - all + add: + - Mf # efficient mode + + technology: + remove: + - rural_treatment + - urban_treatment + - extract__saline_supply + - bio_hpl__ot_fresh + - bio_hpl__cl_fresh + - bio_hpl__cl_fresh + - bio_hpl__ot_saline + - bio_hpl__air + - bio_istig__ot_fresh + - bio_istig__cl_fresh + - bio_istig__cl_fresh + - bio_istig__ot_saline + - bio_istig__air + - bio_istig_ccs__ot_fresh + - bio_istig_ccs__cl_fresh + - bio_istig_ccs__cl_fresh + - bio_istig_ccs__ot_saline + - bio_istig_ccs__air + - bio_ppl__ot_fresh + - bio_ppl__cl_fresh + - bio_ppl__cl_fresh + - bio_ppl__ot_saline + - bio_ppl__air + - coal_adv__ot_fresh + - coal_adv__cl_fresh + - coal_adv__cl_fresh + - coal_adv__ot_saline + - coal_adv__air + - coal_adv_ccs__ot_fresh + - coal_adv_ccs__cl_fresh + - coal_adv_ccs__cl_fresh + - coal_adv_ccs__ot_saline + - coal_ppl__ot_fresh + - coal_ppl__cl_fresh + - coal_ppl__cl_fresh + - coal_ppl__ot_saline + - coal_ppl__air + - coal_ppl_u__ot_fresh + - coal_ppl_u__cl_fresh + - coal_ppl_u__cl_fresh + - coal_ppl_u__ot_saline + - coal_ppl_u__air + - foil_hpl__ot_fresh + - foil_hpl__cl_fresh + - foil_hpl__cl_fresh + - foil_hpl__ot_saline + - foil_hpl__air + - foil_ppl__ot_fresh + - foil_ppl__cl_fresh + - foil_ppl__cl_fresh + - foil_ppl__ot_saline + - foil_ppl__air + - gas_cc__ot_fresh + - gas_cc__cl_fresh + - gas_cc__cl_fresh + - gas_cc__ot_saline + - gas_cc__air + - gas_cc_ccs__ot_fresh + - gas_cc_ccs__cl_fresh + - gas_cc_ccs__cl_fresh + - gas_cc_ccs__ot_saline + - gas_hpl__ot_fresh + - gas_hpl__cl_fresh + - gas_hpl__cl_fresh + - gas_hpl__ot_saline + - gas_hpl__air + - gas_ppl__ot_fresh + - gas_ppl__cl_fresh + - gas_ppl__cl_fresh + - gas_ppl__ot_saline + - gas_ppl__air + - geo_hpl__ot_fresh + - geo_hpl__cl_fresh + - geo_hpl__cl_fresh + - geo_hpl__ot_saline + - geo_hpl__air + - geo_ppl__ot_fresh + - geo_ppl__cl_fresh + - geo_ppl__cl_fresh + - geo_ppl__ot_saline + - geo_ppl__air + - igcc__ot_fresh + - igcc__cl_fresh + - igcc__cl_fresh + - igcc__ot_saline + - igcc__air + - igcc_ccs__ot_fresh + - igcc_ccs__cl_fresh + - igcc_ccs__cl_fresh + - igcc_ccs__ot_saline + - loil_cc__ot_fresh + - loil_cc__cl_fresh + - loil_cc__cl_fresh + - loil_cc__ot_saline + - loil_cc__air + - loil_ppl__ot_fresh + - loil_ppl__cl_fresh + - loil_ppl__cl_fresh + - loil_ppl__ot_saline + - loil_ppl__air + - nuc_hc__ot_fresh + - nuc_hc__cl_fresh + - nuc_hc__cl_fresh + - nuc_hc__ot_saline + - solar_th_ppl__ot_fresh + - solar_th_ppl__cl_fresh + - solar_th_ppl__cl_fresh + - solar_th_ppl__ot_saline + - solar_th_ppl__air + - extract__freshwater_supply + - extract__freshwater_instream + - extract__saline_supply + #add: + # Adds all technologies from technologies.yaml file again to reconfigure + + time: + # NB cannot handle models with sub-annual time resolution + require: + - year + + # Addon techs include cooling technologies for now + + addon: + add: + - bio_hpl__ot_fresh + - bio_hpl__cl_fresh + - bio_hpl__ot_saline + - bio_hpl__air + - bio_istig__ot_fresh + - bio_istig__cl_fresh + - bio_istig__ot_saline + - bio_istig__air + - bio_istig_ccs__ot_fresh + - bio_istig_ccs__cl_fresh + - bio_istig_ccs__ot_saline + - bio_istig_ccs__air + - bio_ppl__ot_fresh + - bio_ppl__cl_fresh + - bio_ppl__ot_saline + - bio_ppl__air + - coal_adv__ot_fresh + - coal_adv__cl_fresh + - coal_adv__ot_saline + - coal_adv__air + - coal_adv_ccs__ot_fresh + - coal_adv_ccs__cl_fresh + - coal_adv_ccs__ot_saline + - coal_adv_ccs__air + - coal_ppl__ot_fresh + - coal_ppl__cl_fresh + - coal_ppl__ot_saline + - coal_ppl__air + - coal_ppl_u__ot_fresh + - coal_ppl_u__cl_fresh + - coal_ppl_u__ot_saline + - coal_ppl_u__air + - foil_ppl__ot_fresh + - foil_ppl__cl_fresh + - foil_ppl__ot_saline + - foil_ppl__air + - foil_hpl__ot_fresh + - foil_hpl__cl_fresh + - foil_hpl__ot_saline + - foil_hpl__air + - gas_cc__ot_fresh + - gas_cc__cl_fresh + - gas_cc__ot_saline + - gas_cc__air + - gas_cc_ccs__ot_fresh + - gas_cc_ccs__cl_fresh + - gas_cc_ccs__ot_saline + - gas_cc_ccs__air + - gas_hpl__ot_fresh + - gas_hpl__cl_fresh + - gas_hpl__ot_saline + - gas_hpl__air + - gas_ppl__ot_fresh + - gas_ppl__cl_fresh + - gas_ppl__ot_saline + - gas_ppl__air + - geo_hpl__ot_fresh + - geo_hpl__cl_fresh + - geo_hpl__cl_fresh + - geo_hpl__ot_saline + - geo_hpl__air + - geo_ppl__ot_fresh + - geo_ppl__cl_fresh + - geo_ppl__cl_fresh + - geo_ppl__ot_saline + - geo_ppl__air + - igcc__ot_fresh + - igcc__cl_fresh + - igcc__ot_saline + - igcc__air + - igcc_ccs__ot_fresh + - igcc_ccs__cl_fresh + - igcc_ccs__ot_saline + - igcc_ccs__air + - loil_cc__ot_fresh + - loil_cc__cl_fresh + - loil_cc__ot_saline + - loil_cc__air + - loil_ppl__ot_fresh + - loil_ppl__cl_fresh + - loil_ppl__ot_saline + - loil_ppl__air + - nuc_hc__ot_fresh + - nuc_hc__cl_fresh + - nuc_hc__ot_saline + - nuc_hc__air + - solar_th_ppl__ot_fresh + - solar_th_ppl__cl_fresh + - solar_th_ppl__ot_saline + - solar_th_ppl__air + + # cat_addon includes cooling technology addons for parent technologies + type_addon: + add: + - cooling__bio_hpl + - cooling__bio_istig + - cooling__bio_istig_ccs + - cooling__bio_ppl + - cooling__coal_adv + - cooling__coal_adv_ccs + - cooling__coal_ppl + - cooling__coal_ppl_u + - cooling__foil_hpl + - cooling__foil_ppl + - cooling__gas_cc + - cooling__gas_cc_ccs + - cooling__gas_hpl + - cooling__gas_ppl + - cooling__geo_hpl + - cooling__geo_ppl + - cooling__igcc + - cooling__igcc_ccs + - cooling__loil_cc + - cooling__loil_ppl + - cooling__nuc_hc + - cooling__nuc_lc + - cooling__solar_th_ppl + + map_tec_addon: + add: + - [bio_hpl,cooling__bio_hpl] + - [bio_istig, cooling__bio_istig] + - [bio_istig_ccs, cooling__bio_istig_ccs] + - [bio_ppl,cooling__bio_ppl] + - [coal_adv, cooling__coal_adv] + - [coal_adv_ccs, cooling__coal_adv_ccs] + - [coal_ppl, cooling__coal_ppl] + - [coal_ppl_u, cooling__coal_ppl_u] + - [foil_hpl, cooling__foil_hpl] + - [foil_ppl, cooling__foil_ppl] + - [gas_cc, cooling__gas_cc] + - [gas_cc_ccs, cooling__gas_cc_ccs] + - [gas_hpl, cooling__gas_hpl] + - [gas_ppl, cooling__gas_ppl] + - [geo_hpl, cooling__geo_hpl] + - [geo_ppl, cooling__geo_ppl] + - [igcc, cooling__igcc] + - [igcc_ccs, cooling__igcc_ccs] + - [loil_cc, cooling__loil_cc] + - [loil_ppl, cooling__loil_ppl] + - [nuc_hc, cooling__nuc_hc] + - [nuc_lc, cooling__nuc_lc] + - [solar_th_ppl, cooling__solar_th_ppl] + + + cat_addon: + # #TODO check whether these needs to be added ? + add: + - [cooling__bio_hpl, bio_hpl__ot_fresh] + - [cooling__bio_hpl, bio_hpl__cl_fresh] + - [cooling__bio_hpl, bio_hpl__ot_saline] + - [cooling__bio_hpl, bio_hpl__air] + - [cooling__bio_istig, bio_istig__ot_fresh] + - [cooling__bio_istig, bio_istig__cl_fresh] + - [cooling__bio_istig, bio_istig__ot_saline] + - [cooling__bio_istig, bio_istig__air] + - [cooling__bio_istig_ccs, bio_istig_ccs__ot_fresh] + - [cooling__bio_istig_ccs, bio_istig_ccs__cl_fresh] + - [cooling__bio_istig_ccs, bio_istig_ccs__ot_saline] + - [cooling__bio_istig_ccs, bio_istig_ccs__air] + - [cooling__coal_adv, coal_adv__ot_fresh] + - [cooling__coal_adv, coal_adv__cl_fresh] + - [cooling__coal_adv, coal_adv__ot_saline] + - [cooling__coal_adv, coal_adv__air] + - [cooling__coal_adv_ccs, coal_adv_ccs__ot_fresh] + - [cooling__coal_adv_ccs, coal_adv_ccs__cl_fresh] + - [cooling__coal_adv_ccs, coal_adv_ccs__ot_saline] + - [cooling__coal_adv_ccs, coal_adv_ccs__air] + - [cooling__bio_ppl, bio_ppl__ot_fresh] + - [cooling__bio_ppl, bio_ppl__cl_fresh] + - [cooling__bio_ppl, bio_ppl__ot_saline] + - [cooling__bio_ppl, bio_ppl__air] + - [cooling__coal_ppl, coal_ppl__ot_fresh] + - [cooling__coal_ppl, coal_ppl__cl_fresh] + - [cooling__coal_ppl, coal_ppl__ot_saline] + - [cooling__coal_ppl, coal_ppl__air] + - [cooling__coal_ppl_u, coal_ppl_u__ot_fresh] + - [cooling__coal_ppl_u, coal_ppl_u__cl_fresh] + - [cooling__coal_ppl_u, coal_ppl_u__ot_saline] + - [cooling__coal_ppl_u, coal_ppl_u__air] + - [cooling__foil_hpl, foil_hpl__ot_fresh] + - [cooling__foil_hpl, foil_hpl__cl_fresh] + - [cooling__foil_hpl, foil_hpl__ot_saline] + - [cooling__foil_hpl, foil_hpl__air] + - [cooling__foil_ppl, foil_ppl__ot_fresh] + - [cooling__foil_ppl, foil_ppl__cl_fresh] + - [cooling__foil_ppl, foil_ppl__ot_saline] + - [cooling__foil_ppl, foil_ppl__air] + - [cooling__gas_cc, gas_cc__ot_fresh] + - [cooling__gas_cc, gas_cc__cl_fresh] + - [cooling__gas_cc, gas_cc__ot_saline] + - [cooling__gas_cc, gas_cc__air] + - [cooling__gas_cc_ccs, gas_cc_ccs__ot_fresh] + - [cooling__gas_cc_ccs, gas_cc_ccs__cl_fresh] + - [cooling__gas_cc_ccs, gas_cc_ccs__ot_saline] + - [cooling__gas_cc_ccs, gas_cc_ccs__air] + - [cooling__gas_hpl, gas_hpl__ot_fresh] + - [cooling__gas_hpl, gas_hpl__cl_fresh] + - [cooling__gas_hpl, gas_hpl__ot_saline] + - [cooling__gas_hpl, gas_hpl__air] + - [cooling__gas_ppl, gas_ppl__ot_fresh] + - [cooling__gas_ppl, gas_ppl__cl_fresh] + - [cooling__gas_ppl, gas_ppl__ot_saline] + - [cooling__gas_ppl, gas_ppl__air] + - [cooling__geo_hpl, gas_hpl__ot_fresh] + - [cooling__geo_hpl, gas_hpl__cl_fresh] + - [cooling__geo_hpl, gas_hpl__ot_saline] + - [cooling__geo_hpl, gas_hpl__air] + - [cooling__geo_ppl, geo_ppl__ot_fresh] + - [cooling__geo_ppl, geo_ppl__cl_fresh] + - [cooling__geo_ppl, geo_ppl__ot_saline] + - [cooling__geo_ppl, geo_ppl__air] + - [cooling__igcc, igcc__ot_fresh] + - [cooling__igcc, igcc__cl_fresh] + - [cooling__igcc, igcc__ot_saline] + - [cooling__igcc, igcc__air] + - [cooling__igcc_ccs, igcc_ccs__ot_fresh] + - [cooling__igcc_ccs, igcc_ccs__cl_fresh] + - [cooling__igcc_ccs, igcc_ccs__ot_saline] + - [cooling__igcc_ccs, igcc_ccs__air] + - [cooling__loil_cc, loil_cc__ot_fresh] + - [cooling__loil_cc, loil_cc__cl_fresh] + - [cooling__loil_cc, loil_cc__ot_saline] + - [cooling__loil_cc, loil_cc__air] + - [cooling__loil_ppl, loil_ppl__ot_fresh] + - [cooling__loil_ppl, loil_ppl__cl_fresh] + - [cooling__loil_ppl, loil_ppl__ot_saline] + - [cooling__loil_ppl, loil_ppl__air] + - [cooling__nuc_hc, nuc_hc__ot_fresh] + - [cooling__nuc_hc, nuc_hc__cl_fresh] + - [cooling__nuc_hc, nuc_hc__ot_saline] + - [cooling__nuc_hc, nuc_hc__air] + - [cooling__nuc_lc, nuc_lc__ot_fresh] + - [cooling__nuc_lc, nuc_lc__cl_fresh] + - [cooling__nuc_lc, nuc_lc__ot_saline] + - [cooling__nuc_lc, nuc_lc__air] + - [cooling__solar_th_ppl, solar_th_ppl__ot_fresh] + - [cooling__solar_th_ppl, solar_th_ppl__cl_fresh] + - [cooling__solar_th_ppl, solar_th_ppl__ot_saline] + - [cooling__solar_th_ppl, solar_th_ppl__air] + + type_tec: + add: + - water_distribution + - water_efficiency + - wastewater_treatment + - desalination + - share_low_lim_GWat_total + - share_low_lim_GWat_share + - share_wat_recycle_total + - share_wat_recycle_share + + cat_tec: + add: + - [share_low_lim_GWat_total, extract_surfacewater] + - [share_low_lim_GWat_total, extract_groundwater] + - [share_low_lim_GWat_share, extract_groundwater] + - [share_wat_recycle_total,urban_recycle] + - [share_wat_recycle_total,urban_discharge] + - [share_wat_recycle_share,urban_recycle] + - [water_distribution, urban_t_d] + - [water_distribution, rural_t_d] + - [water_distribution, urban_unconnected] + - [water_distribution, rural_unconnected] + - [water_distribution, urban_sewerage] + - [wastewater_treatment, urban_sewerage] + - [wastewater_treatment, urban_untreated] + - [wastewater_treatment, urban_recycle] + - [wastewater_treatment, rural_sewerage] + - [wastewater_treatment, rural_untreated] + - [water_efficiency, ueff1] + - [water_efficiency, ueff2] + - [water_efficiency, ueff3] + - [water_efficiency, reff1] + - [water_efficiency, reff2] + - [water_efficiency, reff3] + - [water_efficiency, ieff1] + - [water_efficiency, ieff2] + - [water_efficiency, ieff3] + #- [water_resource_extraction, extract_upstream_landuse] + - [water_resource_extraction, extract_surfacewater] + #- [water_resource_extraction, extract_freshwater_instream] + - [water_resource_extraction, extract_salinewater] + - [water_resource_extraction, extract_groundwater] + - [water_resource_extraction, extract_gw_fossil] + - [desalination, membrane] + - [desalination, distillation] + + balance_equality: + add: + - [freshwater, water_supply] + - [freshwater_basin, water_supply_basin] + - [surfacewater_basin, water_avail_basin] + - [groundwater_basin, water_avail_basin] + - [salinewater_basin,water_avail_basin] + - [urban_collected_wst, final] + - [urban_collected_wst, water_treat] + - [urban_uncollected_wst, final] + - [industry_uncollected_wst,final] + - [rural_collected_wst, final] + - [rural_collected_wst, water_treat] + - [rural_uncollected_wst, final] + - [urban_mw, final] + - [industry_mw,final] + - [urban_disconnected, final] + - [rural_mw, final] + - [rural_disconnected, final] + + + shares: + add: + - share_basin + - share_low_lim_GWat + - share_wat_recycle + + # relation: + # add: + # - gw_share + + unit: + add: + - km3/GWa + - km3 + - km3/year + - USD/km3 + + emission: + add: + - fresh_return + + type_emission: + add: + - water_consumption + + cat_emission: + add: + - [water_consumption, fresh_return] + +cooling: + commodity: + require: + - electr + + remove: + # removing all technologies which are related to water in the previous model + # Re added in the newer implementation with lesser commodities + - saline_supply + #- freshwater_instream + - freshwater_supply + - desalinated_water + - saline_supply_ppl + - urban_collected_wst + - urban_uncollected_wst + - yield_freshwater_suply + - rural_collected_wst + - rual_uncollected_wst + - urban_mw + - urban_dis + - rural_mw + - rural_dis + - cooling__bio_hpl + - cooling__bio_ppl + - cooling__bio_istig + - cooling__bio_ppl + - cooling__coal_adv + - cooling__coal_adv_ccs + - cooling__coal_ppl + - cooling__coal_ppl_u + - cooling__foil_hpl + - cooling__foil_ppl + - cooling__gas_cc + - cooling__gas_cc_ccs + - cooling__gas_hpl + - cooling__gas_ppl + - cooling__geo_hpl + - cooling__geo_ppl + - cooling__igcc + - cooling__igcc_ccs + - cooling__loil_cc + - cooling__loil_ppl + - cooling__nuc_hc + - cooling__solar_th_ppl + + add: + - electr + - salinewater + - freshwater_instream + - freshwater + - freshwater_basin + - surfacewater_basin + - groundwater_basin + - desalinated_water + - saline_ppl + + + level: + require: + - secondary + + remove: + - water_supply + - cooling + - desalination_supply + - water_treat + add: + - water_supply + - saline_supply + + mode: + require: + - all + + technology: + remove: + - extract__saline_supply + - bio_hpl__ot_fresh + - bio_hpl__cl_fresh + - bio_hpl__cl_fresh + - bio_hpl__ot_saline + - bio_hpl__air + - bio_istig__ot_fresh + - bio_istig__cl_fresh + - bio_istig__cl_fresh + - bio_istig__ot_saline + - bio_istig__air + - bio_istig_ccs__ot_fresh + - bio_istig_ccs__cl_fresh + - bio_istig_ccs__cl_fresh + - bio_istig_ccs__ot_saline + - bio_istig_ccs__air + - bio_ppl__ot_fresh + - bio_ppl__cl_fresh + - bio_ppl__cl_fresh + - bio_ppl__ot_saline + - bio_ppl__air + - coal_adv__ot_fresh + - coal_adv__cl_fresh + - coal_adv__cl_fresh + - coal_adv__ot_saline + - coal_adv__air + - coal_adv_ccs__ot_fresh + - coal_adv_ccs__cl_fresh + - coal_adv_ccs__cl_fresh + - coal_adv_ccs__ot_saline + - coal_ppl__ot_fresh + - coal_ppl__cl_fresh + - coal_ppl__cl_fresh + - coal_ppl__ot_saline + - coal_ppl__air + - coal_ppl_u__ot_fresh + - coal_ppl_u__cl_fresh + - coal_ppl_u__cl_fresh + - coal_ppl_u__ot_saline + - coal_ppl_u__air + - foil_hpl__ot_fresh + - foil_hpl__cl_fresh + - foil_hpl__cl_fresh + - foil_hpl__ot_saline + - foil_hpl__air + - foil_ppl__ot_fresh + - foil_ppl__cl_fresh + - foil_ppl__cl_fresh + - foil_ppl__ot_saline + - foil_ppl__air + - gas_cc__ot_fresh + - gas_cc__cl_fresh + - gas_cc__cl_fresh + - gas_cc__ot_saline + - gas_cc__air + - gas_cc_ccs__ot_fresh + - gas_cc_ccs__cl_fresh + - gas_cc_ccs__cl_fresh + - gas_cc_ccs__ot_saline + - gas_hpl__ot_fresh + - gas_hpl__cl_fresh + - gas_hpl__cl_fresh + - gas_hpl__ot_saline + - gas_hpl__air + - gas_ppl__ot_fresh + - gas_ppl__cl_fresh + - gas_ppl__cl_fresh + - gas_ppl__ot_saline + - gas_ppl__air + - geo_hpl__ot_fresh + - geo_hpl__cl_fresh + - geo_hpl__cl_fresh + - geo_hpl__ot_saline + - geo_hpl__air + - geo_ppl__ot_fresh + - geo_ppl__cl_fresh + - geo_ppl__cl_fresh + - geo_ppl__ot_saline + - geo_ppl__air + - igcc__ot_fresh + - igcc__cl_fresh + - igcc__cl_fresh + - igcc__ot_saline + - igcc__air + - igcc_ccs__ot_fresh + - igcc_ccs__cl_fresh + - igcc_ccs__cl_fresh + - igcc_ccs__ot_saline + - loil_cc__ot_fresh + - loil_cc__cl_fresh + - loil_cc__cl_fresh + - loil_cc__ot_saline + - loil_cc__air + - loil_ppl__ot_fresh + - loil_ppl__cl_fresh + - loil_ppl__cl_fresh + - loil_ppl__ot_saline + - loil_ppl__air + - nuc_hc__ot_fresh + - nuc_hc__cl_fresh + - nuc_hc__cl_fresh + - nuc_hc__ot_saline + - solar_th_ppl__ot_fresh + - solar_th_ppl__cl_fresh + - solar_th_ppl__cl_fresh + - solar_th_ppl__ot_saline + - solar_th_ppl__air + - extract__upstream_landuse + - extract__saline_supply + - extract__freshwater_supply + - extract__freshwater_instream + + #add: + # Adds all technologies from technologies.yaml file again to reconfigure + + time: + # NB cannot handle models with sub-annual time resolution + require: + - year + + # Addon techs include cooling technologies for now + addon: + add: + - bio_hpl__ot_fresh + - bio_hpl__cl_fresh + - bio_hpl__ot_saline + - bio_hpl__air + - bio_istig__ot_fresh + - bio_istig__cl_fresh + - bio_istig__ot_saline + - bio_istig__air + - bio_istig_ccs__ot_fresh + - bio_istig_ccs__cl_fresh + - bio_istig_ccs__ot_saline + - bio_istig_ccs__air + - bio_ppl__ot_fresh + - bio_ppl__cl_fresh + - bio_ppl__ot_saline + - bio_ppl__air + - coal_adv__ot_fresh + - coal_adv__cl_fresh + - coal_adv__ot_saline + - coal_adv__air + - coal_adv_ccs__ot_fresh + - coal_adv_ccs__cl_fresh + - coal_adv_ccs__ot_saline + - coal_adv_ccs__air + - coal_ppl__ot_fresh + - coal_ppl__cl_fresh + - coal_ppl__ot_saline + - coal_ppl__air + - coal_ppl_u__ot_fresh + - coal_ppl_u__cl_fresh + - coal_ppl_u__ot_saline + - coal_ppl_u__air + - foil_ppl__ot_fresh + - foil_ppl__cl_fresh + - foil_ppl__ot_saline + - foil_ppl__air + - foil_hpl__ot_fresh + - foil_hpl__cl_fresh + - foil_hpl__ot_saline + - foil_hpl__air + - gas_cc__ot_fresh + - gas_cc__cl_fresh + - gas_cc__ot_saline + - gas_cc__air + - gas_cc_ccs__ot_fresh + - gas_cc_ccs__cl_fresh + - gas_cc_ccs__ot_saline + - gas_cc_ccs__air + - gas_hpl__ot_fresh + - gas_hpl__cl_fresh + - gas_hpl__ot_saline + - gas_hpl__air + - gas_ppl__ot_fresh + - gas_ppl__cl_fresh + - gas_ppl__ot_saline + - gas_ppl__air + - geo_hpl__ot_fresh + - geo_hpl__cl_fresh + - geo_hpl__cl_fresh + - geo_hpl__ot_saline + - geo_hpl__air + - geo_ppl__ot_fresh + - geo_ppl__cl_fresh + - geo_ppl__cl_fresh + - geo_ppl__ot_saline + - geo_ppl__air + - igcc__ot_fresh + - igcc__cl_fresh + - igcc__ot_saline + - igcc__air + - igcc_ccs__ot_fresh + - igcc_ccs__cl_fresh + - igcc_ccs__ot_saline + - igcc_ccs__air + - loil_cc__ot_fresh + - loil_cc__cl_fresh + - loil_cc__ot_saline + - loil_cc__air + - loil_ppl__ot_fresh + - loil_ppl__cl_fresh + - loil_ppl__ot_saline + - loil_ppl__air + - nuc_hc__ot_fresh + - nuc_hc__cl_fresh + - nuc_hc__ot_saline + - nuc_hc__air + - solar_th_ppl__ot_fresh + - solar_th_ppl__cl_fresh + - solar_th_ppl__ot_saline + - solar_th_ppl__air + + # cat_addon includes cooling technology addons for parent technologies + type_addon: + add: + - cooling__bio_hpl + - cooling__bio_istig + - cooling__bio_istig_ccs + - cooling__bio_ppl + - cooling__coal_adv + - cooling__coal_adv_ccs + - cooling__coal_ppl + - cooling__coal_ppl_u + - cooling__foil_hpl + - cooling__foil_ppl + - cooling__gas_cc + - cooling__gas_cc_ccs + - cooling__gas_hpl + - cooling__gas_ppl + - cooling__geo_hpl + - cooling__geo_ppl + - cooling__igcc + - cooling__igcc_ccs + - cooling__loil_cc + - cooling__loil_ppl + - cooling__nuc_hc + - cooling__nuc_lc + - cooling__solar_th_ppl + + map_tec_addon: + add: + - [bio_hpl,cooling__bio_hpl] + - [bio_istig, cooling__bio_istig] + - [bio_istig_ccs, cooling__bio_istig_ccs] + - [bio_ppl,cooling__bio_ppl] + - [coal_adv, cooling__coal_adv] + - [coal_adv_ccs, cooling__coal_adv_ccs] + - [coal_ppl, cooling__coal_ppl] + - [coal_ppl_u, cooling__coal_ppl_u] + - [foil_hpl, cooling__foil_hpl] + - [foil_ppl, cooling__foil_ppl] + - [gas_cc, cooling__gas_cc] + - [gas_cc_ccs, cooling__gas_cc_ccs] + - [gas_hpl, cooling__gas_hpl] + - [gas_ppl, cooling__gas_ppl] + - [geo_hpl, cooling__geo_hpl] + - [geo_ppl, cooling__geo_ppl] + - [igcc, cooling__igcc] + - [igcc_ccs, cooling__igcc_ccs] + - [loil_cc, cooling__loil_cc] + - [loil_ppl, cooling__loil_ppl] + - [nuc_hc, cooling__nuc_hc] + - [nuc_lc, cooling__nuc_lc] + - [solar_th_ppl, cooling__solar_th_ppl] + + + cat_addon: + # #TODO check whether these needs to be added ? + add: + - [cooling__bio_hpl, bio_hpl__ot_fresh] + - [cooling__bio_hpl, bio_hpl__cl_fresh] + - [cooling__bio_hpl, bio_hpl__ot_saline] + - [cooling__bio_hpl, bio_hpl__air] + - [cooling__bio_istig, bio_istig__ot_fresh] + - [cooling__bio_istig, bio_istig__cl_fresh] + - [cooling__bio_istig, bio_istig__ot_saline] + - [cooling__bio_istig, bio_istig__air] + - [cooling__bio_istig_ccs, bio_istig_ccs__ot_fresh] + - [cooling__bio_istig_ccs, bio_istig_ccs__cl_fresh] + - [cooling__bio_istig_ccs, bio_istig_ccs__ot_saline] + - [cooling__bio_istig_ccs, bio_istig_ccs__air] + - [cooling__coal_adv, coal_adv__ot_fresh] + - [cooling__coal_adv, coal_adv__cl_fresh] + - [cooling__coal_adv, coal_adv__ot_saline] + - [cooling__coal_adv, coal_adv__air] + - [cooling__coal_adv_ccs, coal_adv_ccs__ot_fresh] + - [cooling__coal_adv_ccs, coal_adv_ccs__cl_fresh] + - [cooling__coal_adv_ccs, coal_adv_ccs__ot_saline] + - [cooling__coal_adv_ccs, coal_adv_ccs__air] + - [cooling__bio_ppl, bio_ppl__ot_fresh] + - [cooling__bio_ppl, bio_ppl__cl_fresh] + - [cooling__bio_ppl, bio_ppl__ot_saline] + - [cooling__bio_ppl, bio_ppl__air] + - [cooling__coal_ppl, coal_ppl__ot_fresh] + - [cooling__coal_ppl, coal_ppl__cl_fresh] + - [cooling__coal_ppl, coal_ppl__ot_saline] + - [cooling__coal_ppl, coal_ppl__air] + - [cooling__coal_ppl_u, coal_ppl_u__ot_fresh] + - [cooling__coal_ppl_u, coal_ppl_u__cl_fresh] + - [cooling__coal_ppl_u, coal_ppl_u__ot_saline] + - [cooling__coal_ppl_u, coal_ppl_u__air] + - [cooling__foil_hpl, foil_hpl__ot_fresh] + - [cooling__foil_hpl, foil_hpl__cl_fresh] + - [cooling__foil_hpl, foil_hpl__ot_saline] + - [cooling__foil_hpl, foil_hpl__air] + - [cooling__foil_ppl, foil_ppl__ot_fresh] + - [cooling__foil_ppl, foil_ppl__cl_fresh] + - [cooling__foil_ppl, foil_ppl__ot_saline] + - [cooling__foil_ppl, foil_ppl__air] + - [cooling__gas_cc, gas_cc__ot_fresh] + - [cooling__gas_cc, gas_cc__cl_fresh] + - [cooling__gas_cc, gas_cc__ot_saline] + - [cooling__gas_cc, gas_cc__air] + - [cooling__gas_cc_ccs, gas_cc_ccs__ot_fresh] + - [cooling__gas_cc_ccs, gas_cc_ccs__cl_fresh] + - [cooling__gas_cc_ccs, gas_cc_ccs__ot_saline] + - [cooling__gas_cc_ccs, gas_cc_ccs__air] + - [cooling__gas_hpl, gas_hpl__ot_fresh] + - [cooling__gas_hpl, gas_hpl__cl_fresh] + - [cooling__gas_hpl, gas_hpl__ot_saline] + - [cooling__gas_hpl, gas_hpl__air] + - [cooling__gas_ppl, gas_ppl__ot_fresh] + - [cooling__gas_ppl, gas_ppl__cl_fresh] + - [cooling__gas_ppl, gas_ppl__ot_saline] + - [cooling__gas_ppl, gas_ppl__air] + - [cooling__geo_hpl, gas_hpl__ot_fresh] + - [cooling__geo_hpl, gas_hpl__cl_fresh] + - [cooling__geo_hpl, gas_hpl__ot_saline] + - [cooling__geo_hpl, gas_hpl__air] + - [cooling__geo_ppl, geo_ppl__ot_fresh] + - [cooling__geo_ppl, geo_ppl__cl_fresh] + - [cooling__geo_ppl, geo_ppl__ot_saline] + - [cooling__geo_ppl, geo_ppl__air] + - [cooling__igcc, igcc__ot_fresh] + - [cooling__igcc, igcc__cl_fresh] + - [cooling__igcc, igcc__ot_saline] + - [cooling__igcc, igcc__air] + - [cooling__igcc_ccs, igcc_ccs__ot_fresh] + - [cooling__igcc_ccs, igcc_ccs__cl_fresh] + - [cooling__igcc_ccs, igcc_ccs__ot_saline] + - [cooling__igcc_ccs, igcc_ccs__air] + - [cooling__loil_cc, loil_cc__ot_fresh] + - [cooling__loil_cc, loil_cc__cl_fresh] + - [cooling__loil_cc, loil_cc__ot_saline] + - [cooling__loil_cc, loil_cc__air] + - [cooling__loil_ppl, loil_ppl__ot_fresh] + - [cooling__loil_ppl, loil_ppl__cl_fresh] + - [cooling__loil_ppl, loil_ppl__ot_saline] + - [cooling__loil_ppl, loil_ppl__air] + - [cooling__nuc_hc, nuc_hc__ot_fresh] + - [cooling__nuc_hc, nuc_hc__cl_fresh] + - [cooling__nuc_hc, nuc_hc__ot_saline] + - [cooling__nuc_hc, nuc_hc__air] + - [cooling__nuc_lc, nuc_lc__ot_fresh] + - [cooling__nuc_lc, nuc_lc__cl_fresh] + - [cooling__nuc_lc, nuc_lc__ot_saline] + - [cooling__nuc_lc, nuc_lc__air] + - [cooling__solar_th_ppl, solar_th_ppl__ot_fresh] + - [cooling__solar_th_ppl, solar_th_ppl__cl_fresh] + - [cooling__solar_th_ppl, solar_th_ppl__ot_saline] + - [cooling__solar_th_ppl, solar_th_ppl__air] + + + unit: + add: + - km3/GWa + - km3 + - km3/year + + emission: + add: + - fresh_return + + type_emission: + add: + - water_consumption + + cat_emission: + add: + - [water_consumption, fresh_return] diff --git a/nest/message_ix_models/data/water/technology.yaml b/nest/message_ix_models/data/water/technology.yaml new file mode 100644 index 0000000..03af31c --- /dev/null +++ b/nest/message_ix_models/data/water/technology.yaml @@ -0,0 +1,1326 @@ +# Water technologies +nexus: + extract_surfacewater: + description: >- + Freshwater extraction technology + input: {commodity: freshwater_supply} + + extract_salinewater: + description: >- + Sea water extraction used for cooling technologies requiring seawater + input: {commodity: saline_supply} + + extract_groundwater: + description: >- + Groundwater extraction technology + input: {commodity: freshwater_supply} + + extract_gw_fossil: + description: >- + Groundwater extraction from fossil reservoirs (unlimited used as slack) + + extract_salinewater_basin: + description: >- + Sea water extraction used for desalination and providing freshwater + input: {commodity: saline_supply_basin} + + bio_hpl__ot_fresh: + description: >- + Biomass heating power plant cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + bio_hpl__cl_fresh: + description: >- + Biomass heating power plant cooling by closed loop cooling technology + using freshwater & freshwater supply + input: {commodity: freshwater_supply, electr} + + bio_hpl__ot_saline: + description: >- + Biomass heating power plant cooling by once through cooling technology + using saline + input: {commodity: saline_supply_ppl} + + bio_hpl__air: + description: >- + Biomass heating power plant cooling by air cooled technology + using freshwater supply + input: {commodity: electr} + + bio_istig__ot_fresh: + description: >- + # TODO fill in description of bio_istig cooling by once through cooling + # technology using freshwater + input: {commodity: freshwater_supply} + + bio_istig__cl_fresh: + description: >- + # TODO fill in description of bio_istig cooling by closed loop cooling + # technology using freshwater + input: {commodity: freshwater_supply,electr} + + bio_istig__ot_saline: + description: >- + # TODO fill in description of bio_istig through once through cooling + # technology using saline water + input: {commodity: saline_supply_ppl} + + bio_istig__air: + description: >- + # TODO fill in description of bio_istig through air cooled + # technology using freshwater supply + input: {commodity: electr} + + + bio_istig_ccs__ot_fresh: + description: >- + # TODO fill in description of bio_istig cooling by once through cooling + # technology using freshwater + input: {commodity: freshwater_supply} + + bio_istig_ccs__cl_fresh: + description: >- + # TODO fill in description of bio_istig cooling by closed loop cooling + # technology using freshwater + input: {commodity: freshwater_supply,electr} + + bio_istig_ccs__ot_saline: + description: >- + # TODO fill in description of bio_istig through once through cooling + # technology using saline water + input: {commodity: saline_supply_ppl} + + bio_istig_ccs__air: + description: >- + # TODO fill in description of bio_istig through air cooled + # technology using freshwater supply + input: {commodity: electr} + + bio_ppl__ot_fresh: + description: >- + Bio power plant cooling by once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + bio_ppl__cl_fresh: + description: >- + Bio power plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply, electr} + + bio_ppl__ot_saline: + description: >- + Bio power plant cooling by once through cooling technology + using saline water + input: {commodity: saline_supply_ppl} + + bio_ppl__air: + description: >- + Biopower plant cooling by air cooled technology + using freshwater supply + input: {commodity: electr} + + coal_adv__ot_fresh: + description: >- + Advanced coal power plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + coal_adv__cl_fresh: + description: >- + Advanced coal power plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + coal_adv__ot_saline: + description: >- + Advanced coal power plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + coal_adv__air: + description: >- + Advanced coal power plant cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + coal_adv_ccs__ot_fresh: + description: >- + Advanced coal power plant with carbon capture and storage cooling by once + through cooling technology using freshwater + input: {commodity: freshwater_supply} + + coal_adv_ccs__cl_fresh: + description: >- + Advanced coal power plant with carbon capture and storage by closed loop + cooling technology using freshwater + input: {commodity: freshwater_supply, electr} + + coal_adv_ccs__ot_saline: + description: >- + Advanced coal power plant with carbon capture and storage by once through + cooling technology using freshwater + input: {commodity: saline_supply_ppl} + + coal_adv_ccs__air: + description: >- + Advanced coal power plant with carbon capture and storage by air cooled + cooling technology using freshwater supply + input: {commodity: electr} + + coal_ppl__ot_fresh: + description: >- + Coal power plant cooling by once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + coal_ppl__cl_fresh: + description: >- + Coal power plant cooling by closed loop cooling technology using freshwater + & freshwater supply + input: {commodity: freshwater_supply,electr} + + coal_ppl__ot_saline: + description: >- + Coal power plant cooling by once through cooling technology using freshwater + input: {commodity: saline_supply_ppl} + + coal_ppl__air: + description: >- + Coal power plant cooling by air cooled cooling technology using parasitic + electricity + input: {commodity: electr} + + coal_ppl_u__ot_fresh: + description: >- + Coal power plant without abatement measures cooling by once through + cooling technology using freshwater + input: {commodity: freshwater_supply} + + coal_ppl_u__cl_fresh: + description: >- + Coal power plant without abatement measures cooling by closed loop + cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + coal_ppl_u__ot_saline: + description: >- + Coal power plant without abatement measures cooling by once through + cooling technology using saline water + input: {commodity: saline_supply_ppl} + + coal_ppl_u__air: + description: >- + Coal power plant without abatement measures cooling by air cooled + cooling technology using freshwater supply + input: {commodity: electr} + + foil_ppl__ot_fresh: + description: >- + New standard oil power plant (Rankine cycle), cooling by once through + cooling technology using freshwater + using freshwater + input: {commodity: freshwater_supply} + + foil_ppl__cl_fresh: + description: >- + New standard oil power plant (Rankine cycle),cooling by closed loop + cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply, electr} + + foil_ppl__ot_saline: + description: >- + New standard oil power plant (Rankine cycle),cooling by once through + cooling technology using saline water + input: {commodity: saline_supply_ppl} + + foil_ppl__air: + description: >- + New standard oil power plant (Rankine cycle),cooling by air cooled + cooling technology using parasitic electricity + input: {commodity: electr} + + foil_hpl__ot_fresh: + description: >- + Fuel oil heating plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + foil_hpl__cl_fresh: + description: >- + Fuel oil heating plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + foil_hpl__ot_saline: + description: >- + Fuel oil heating plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + foil_hpl__air: + description: >- + Fuel oil heating plant cooling by cooling by air cooled cooling technology + using parasitic electricity + input: {commodity: electr} + + gas_cc__ot_fresh: + description: >- + Gas combined cycle power plant cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + gas_cc__cl_fresh: + description: >- + Gas combined cycle power plant cooling by closed loop cooling technology + using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_cc__ot_saline: + description: >- + Gas combined cycle power plant cooling by once through cooling technology + using saline water + input: {commodity: saline_supply_ppl} + + gas_cc__air: + description: >- + Gas combined cycle power plant cooling by air cooled cooling technology + using parasitic electricity + input: {commodity: electr} + + gas_cc_ccs__ot_fresh: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + gas_cc_ccs__cl_fresh: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + closed loop cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_cc_ccs__ot_saline: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + once through cooling technology using saline water + input: {commodity: saline_supply_ppl} + + gas_cc_ccs__air: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + air cooled cooling technology using parasitic electricity + input: {commodity: electr} + + gas_hpl__ot_fresh: + description: >- + Natural gas heating plant plant cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + gas_hpl__cl_fresh: + description: >- + Natural gas heating plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_hpl__ot_saline: + description: >- + Natural gas heating plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + gas_hpl__air: + description: >- + Natural gas heating plant cooling by once through cooling technology by + air cooled cooling technology using parasitic electricity + input: {commodity: electr} + + gas_ppl__ot_fresh: + description: >- + Gas power plant (Rankine cycle) cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + gas_ppl__cl_fresh: + description: >- + Gas power plant (Rankine cycle) cooling by closed loop cooling technology + using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_ppl__ot_saline: + description: >- + Biomass heating power plant cooling by once through cooling technology using + freshwater + input: {commodity: saline_supply_ppl} + + gas_ppl__air: + description: >- + Biomass heating power plant cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + geo_hpl__ot_fresh: + description: >- + Geothermal heat plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + geo_hpl__cl_fresh: + description: >- + Geothermal heat plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + geo_hpl__ot_saline: + description: >- + Geothermal heat plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + geo_hpl__air: + description: >- + Geothermal heat plant cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + geo_ppl__ot_fresh: + description: >- + Geothermal power plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + geo_ppl__cl_fresh: + description: >- + Geothermal power plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + geo_ppl__ot_saline: + description: >- + Geothermal power plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + geo_ppl__air: + description: >- + Geothermal power plant cooling by closed loop cooling technology using + freshwater supply + input: {commodity: electr} + + igcc__ot_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by once + through cooling technology using freshwater + input: {commodity: freshwater_supply} + + igcc__cl_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by closed + loop cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + igcc__ot_saline: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by once + through cooling technology using saline water + input: {commodity: saline_supply_ppl} + + igcc__air: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by air cooled + cooling technology using freshwater supply + input: {commodity: electr} + + igcc_ccs__ot_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + igcc_ccs__cl_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by closed loop cooling technology using freshwater & + freshwater supply + input: {commodity: freshwater_supply,electr} + + igcc_ccs__ot_saline: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by once through cooling technology using saline water + input: {commodity: saline_supply_ppl} + + igcc_ccs__air: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by air cooled cooling technology using freshwater supply + input: {commodity: electr} + + loil_cc__ot_fresh: + description: >- + Light oil combined cycle cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + loil_cc__cl_fresh: + description: >- + Light oil combined cycle cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + loil_cc__ot_saline: + description: >- + Light oil combined cycle cooling by once through cooling technology using + saline supply + input: {commodity: saline_supply_ppl} + + loil_cc__air: + description: >- + Light oil combined cycle cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + loil_ppl__ot_fresh: + description: >- + Existing light oil power plant cooling by once through cooling technology + using extract_freshwater_supply + input: {commodity: freshwater_supply} + + loil_ppl__cl_fresh: + description: >- + Existing light oil power plant cooling by once through cooling technology using + freshwater supply + input: {commodity: freshwater_supply,electr} + + loil_ppl__ot_saline: + description: >- + Existing light oil power plant cooling by once through cooling technology + using freshwater supply + input: {commodity: electr} + + loil_ppl__air: + description: >- + Existing light oil power plant cooling by air cooled cooling technology + using parasitic electricity + input: {commodity: electr} + + nuc_hc__ot_fresh: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by once through cooling + technology using freshwater supply + input: {commodity: freshwater_supply} + + nuc_hc__cl_fresh: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by closed loop cooling + technology using freshwater supply & parasitic + input: {commodity: freshwater_supply,electr} + + nuc_hc__ot_saline: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by once through cooling + technology using saline water supply + input: {commodity: saline_supply_ppl} + + nuc_hc__air: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by once through cooling + technology using parasitic electricity + input: {commodity: electr} + + nuc_lc__ot_fresh: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by once through cooling + technology using freshwater supply + input: {commodity: freshwater_supply} + + nuc_lc__cl_fresh: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by closed loop cooling + technology using freshwater supply & parasitic + input: {commodity: freshwater_supply,electr} + + nuc_lc__ot_saline: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by once through cooling + technology using saline water supply + input: {commodity: saline_supply_ppl} + + nuc_lc__air: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by once through cooling + technology using parasitic electricity + input: {commodity: electr} + + solar_th_ppl__ot_fresh: + description: >- + Solar thermal power plant with storage cooling by once through cooling + technology using freshwater supply + input: {commodity: freshwater_supply} + + solar_th_ppl__cl_fresh: + description: >- + Solar thermal power plant with storage cooling by closed loop cooling + technology using freshwater supply & parasitic electricity + input: {commodity: freshwater_supply,electr} + + solar_th_ppl__ot_saline: + description: >- + Solar thermal power plant with storage cooling by once through cooling + technology using freshwater supply + input: {commodity: saline_supply_ppl} + + solar_th_ppl__air: + description: >- + Solar thermal power plant with storage cooling by once through cooling + technology using parasitic electricity + input: {commodity: electr} + + urban_t_d: + description: >- + Urban water transmission & distribution + input: {commodity: freshwater_supply} + + rural_t_d: + description: >- + Rural water transmission & distribution + input: {commodity: freshwater_supply} + + industry_unconnected: + description: >- + unconnected industry water not connected to system + input: {commodity: freshwater_supply} + + industry_untreated: + description: >- + untreated industry water return flows + input: {commodity: urban_uncollected_wst} + + urban_unconnected: + description: >- + untreated urban water not connected to system + input: {commodity: freshwater_supply} + + rural_unconnected: + description: >- + untreated rural water not connected to system + input: {commodity: freshwater_supply} + + urban_sewerage: + description: >- + urban wastewater + input: {commodity: freshwater_supply} + + urban_untreated: + description: >- + untreated urban water return flows + input: {commodity: urban_uncollected_wst} + + urban_discharge: + description: >- + treated urban water which is discharged + input: {commodity: electr, urban_collected_wst} + + urban_recycle: + description: >- + treated wastewater used as available water + input: {commodity: electr, urban_collected_wst} + + rural_discharge: + description: >- + treated rural water which is discharged + input: {commodity: rural_collected_wst} + + rural_untreated: + description: >- + untreated rural water return flows + input: {commodity: rural_collected_wst} + + membrane: + description: >- + desalination technology using membrane i.e water and salts is separated + through a semipermeable membrane + input: {commodity: electr,saline_supply} + + distillation: + description: >- + traditional desalination technology i.e boiling and recondensation of + seawater to leave salt and impurities behin + input: {commodity: electr,saline_supply,d_heat} + + desal_t_d: + description: >- + Desalinated water transmission and distribution + input: {commodity: desalinated_water} + + saline_ppl_t_d: + description: >- + Saline power plant transmission & distribution + # TODO verify description + input: {commodity: saline_supply} + + basin_to_reg: + description: >- + dummy technology to map basin technologies water supply to energy technologies + + input: {commodity: freshwater_supply} + + ueff1: + description: >- + low urban efficiency + + input: {commodity: urban_mw, urban_collected_wst} + + ueff2: + description: >- + low urban efficiency + + input: {commodity: urban_mw, urban_collected_wst} + + ueff3: + description: >- + low urban efficiency + + input: {commodity: urban_mw, urban_collected_wst} + + reff1: + description: >- + low rural efficiency + + input: {commodity: rural_mw, rural_collected_wst} + + reff2: + description: >- + mid rural efficiency + + input: {commodity: rural_mw, rural_collected_wst} + + reff3: + description: >- + high rural efficiency + + input: {commodity: rural_mw, rural_collected_wst} + + ieff1: + description: >- + low irrigation efficiency + + input: {commodity: freshwater_supply} + + ieff2: + description: >- + mid irrigation efficiency + + input: {commodity: freshwater_supply} + + ieff3: + description: >- + high irrigation efficiency + + input: {commodity: freshwater_supply} + + return_flow: + description: >- + remaining surface water left after consumption + + gw_recharge: + description: >- + remaining groundwater left after consumption + + rural_recycle: + description: >- + recycled water after rural treatment + + rural_sewerage: + description: >- + treated rural water + + irrigation_oilcrops: + description: >- + Irrigation technology connecting irrigation withdrawals with the demands + input: {commodity: freshwater} + + irrigation_sugarcrops: + description: >- + Irrigation technology connecting irrigation withdrawals with the demands + input: {commodity: freshwater} + + irrigation_cereal: + description: >- + Irrigation technology connecting irrigation withdrawals with the demands + input: {commodity: freshwater} + + salinewater_return: + description: >- + remaining salinewater left after consumption + + +cooling: + # Water technologies + extract_surfacewater: + description: >- + Freshwater extraction technology + input: {commodity: freshwater_supply} + + extract_salinewater: + description: >- + Sea water extraction used for cooling technologies requiring seawater + input: {commodity: saline_supply_ppl} + + extract_groundwater: + description: >- + Groundwater extraction technology + input: {commodity: freshwater_supply} + + bio_hpl__ot_fresh: + description: >- + Biomass heating power plant cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + bio_hpl__cl_fresh: + description: >- + Biomass heating power plant cooling by closed loop cooling technology + using freshwater & freshwater supply + input: {commodity: freshwater_supply, electr} + + bio_hpl__ot_saline: + description: >- + Biomass heating power plant cooling by once through cooling technology + using saline + input: {commodity: saline_supply_ppl} + + bio_hpl__air: + description: >- + Biomass heating power plant cooling by air cooled technology + using freshwater supply + input: {commodity: electr} + + bio_istig__ot_fresh: + description: >- + # TODO fill in description of bio_istig cooling by once through cooling + # technology using freshwater + input: {commodity: freshwater_supply} + + bio_istig__cl_fresh: + description: >- + # TODO fill in description of bio_istig cooling by closed loop cooling + # technology using freshwater + input: {commodity: freshwater_supply,electr} + + bio_istig__ot_saline: + description: >- + # TODO fill in description of bio_istig through once through cooling + # technology using saline water + input: {commodity: saline_supply_ppl} + + bio_istig__air: + description: >- + # TODO fill in description of bio_istig through air cooled + # technology using freshwater supply + input: {commodity: electr} + + + bio_istig_ccs__ot_fresh: + description: >- + # TODO fill in description of bio_istig cooling by once through cooling + # technology using freshwater + input: {commodity: freshwater_supply} + + bio_istig_ccs__cl_fresh: + description: >- + # TODO fill in description of bio_istig cooling by closed loop cooling + # technology using freshwater + input: {commodity: freshwater_supply,electr} + + bio_istig_ccs__ot_saline: + description: >- + # TODO fill in description of bio_istig through once through cooling + # technology using saline water + input: {commodity: saline_supply_ppl} + + bio_istig_ccs__air: + description: >- + # TODO fill in description of bio_istig through air cooled + # technology using freshwater supply + input: {commodity: electr} + + bio_ppl__ot_fresh: + description: >- + Bio power plant cooling by once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + bio_ppl__cl_fresh: + description: >- + Bio power plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply, electr} + + bio_ppl__ot_saline: + description: >- + Bio power plant cooling by once through cooling technology + using saline water + input: {commodity: saline_supply_ppl} + + bio_ppl__air: + description: >- + Biopower plant cooling by air cooled technology + using freshwater supply + input: {commodity: electr} + + coal_adv__ot_fresh: + description: >- + Advanced coal power plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + coal_adv__cl_fresh: + description: >- + Advanced coal power plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + coal_adv__ot_saline: + description: >- + Advanced coal power plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + coal_adv__air: + description: >- + Advanced coal power plant cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + coal_adv_ccs__ot_fresh: + description: >- + Advanced coal power plant with carbon capture and storage cooling by once + through cooling technology using freshwater + input: {commodity: freshwater_supply} + + coal_adv_ccs__cl_fresh: + description: >- + Advanced coal power plant with carbon capture and storage by closed loop + cooling technology using freshwater + input: {commodity: freshwater_supply, electr} + + coal_adv_ccs__ot_saline: + description: >- + Advanced coal power plant with carbon capture and storage by once through + cooling technology using freshwater + input: {commodity: saline_supply_ppl} + + coal_adv_ccs__air: + description: >- + Advanced coal power plant with carbon capture and storage by air cooled + cooling technology using freshwater supply + input: {commodity: electr} + + coal_ppl__ot_fresh: + description: >- + Coal power plant cooling by once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + coal_ppl__cl_fresh: + description: >- + Coal power plant cooling by closed loop cooling technology using freshwater + & freshwater supply + input: {commodity: freshwater_supply,electr} + + coal_ppl__ot_saline: + description: >- + Coal power plant cooling by once through cooling technology using freshwater + input: {commodity: saline_supply_ppl} + + coal_ppl__air: + description: >- + Coal power plant cooling by air cooled cooling technology using parasitic + electricity + input: {commodity: electr} + + coal_ppl_u__ot_fresh: + description: >- + Coal power plant without abatement measures cooling by once through + cooling technology using freshwater + input: {commodity: freshwater_supply} + + coal_ppl_u__cl_fresh: + description: >- + Coal power plant without abatement measures cooling by closed loop + cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + coal_ppl_u__ot_saline: + description: >- + Coal power plant without abatement measures cooling by once through + cooling technology using saline water + input: {commodity: saline_supply_ppl} + + coal_ppl_u__air: + description: >- + Coal power plant without abatement measures cooling by air cooled + cooling technology using freshwater supply + input: {commodity: electr} + + foil_ppl__ot_fresh: + description: >- + New standard oil power plant (Rankine cycle), cooling by once through + cooling technology using freshwater + using freshwater + input: {commodity: freshwater_supply} + + foil_ppl__cl_fresh: + description: >- + New standard oil power plant (Rankine cycle),cooling by closed loop + cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply, electr} + + foil_ppl__ot_saline: + description: >- + New standard oil power plant (Rankine cycle),cooling by once through + cooling technology using saline water + input: {commodity: saline_supply_ppl} + + foil_ppl__air: + description: >- + New standard oil power plant (Rankine cycle),cooling by air cooled + cooling technology using parasitic electricity + input: {commodity: electr} + + foil_hpl__ot_fresh: + description: >- + Fuel oil heating plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + foil_hpl__cl_fresh: + description: >- + Fuel oil heating plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + foil_hpl__ot_saline: + description: >- + Fuel oil heating plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + foil_hpl__air: + description: >- + Fuel oil heating plant cooling by cooling by air cooled cooling technology + using parasitic electricity + input: {commodity: electr} + + gas_cc__ot_fresh: + description: >- + Gas combined cycle power plant cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + gas_cc__cl_fresh: + description: >- + Gas combined cycle power plant cooling by closed loop cooling technology + using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_cc__ot_saline: + description: >- + Gas combined cycle power plant cooling by once through cooling technology + using saline water + input: {commodity: saline_supply_ppl} + + gas_cc__air: + description: >- + Gas combined cycle power plant cooling by air cooled cooling technology + using parasitic electricity + input: {commodity: electr} + + gas_cc_ccs__ot_fresh: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + gas_cc_ccs__cl_fresh: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + closed loop cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_cc_ccs__ot_saline: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + once through cooling technology using saline water + input: {commodity: saline_supply_ppl} + + gas_cc_ccs__air: + description: >- + Gas combined cycle power-plant with carbon capture and storage cooling by + air cooled cooling technology using parasitic electricity + input: {commodity: electr} + + gas_hpl__ot_fresh: + description: >- + Natural gas heating plant plant cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + gas_hpl__cl_fresh: + description: >- + Natural gas heating plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_hpl__ot_saline: + description: >- + Natural gas heating plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + gas_hpl__air: + description: >- + Natural gas heating plant cooling by once through cooling technology by + air cooled cooling technology using parasitic electricity + input: {commodity: electr} + + gas_ppl__ot_fresh: + description: >- + Gas power plant (Rankine cycle) cooling by once through cooling technology + using freshwater + input: {commodity: freshwater_supply} + + gas_ppl__cl_fresh: + description: >- + Gas power plant (Rankine cycle) cooling by closed loop cooling technology + using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + gas_ppl__ot_saline: + description: >- + Biomass heating power plant cooling by once through cooling technology using + freshwater + input: {commodity: saline_supply_ppl} + + gas_ppl__air: + description: >- + Biomass heating power plant cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + geo_hpl__ot_fresh: + description: >- + Geothermal heat plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + geo_hpl__cl_fresh: + description: >- + Geothermal heat plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + geo_hpl__ot_saline: + description: >- + Geothermal heat plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + geo_hpl__air: + description: >- + Geothermal heat plant cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + geo_ppl__ot_fresh: + description: >- + Geothermal power plant cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + geo_ppl__cl_fresh: + description: >- + Geothermal power plant cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + geo_ppl__ot_saline: + description: >- + Geothermal power plant cooling by once through cooling technology using + saline water + input: {commodity: saline_supply_ppl} + + geo_ppl__air: + description: >- + Geothermal power plant cooling by closed loop cooling technology using + freshwater supply + input: {commodity: electr} + + igcc__ot_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by once + through cooling technology using freshwater + input: {commodity: freshwater_supply} + + igcc__cl_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by closed + loop cooling technology using freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + igcc__ot_saline: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by once + through cooling technology using saline water + input: {commodity: saline_supply_ppl} + + igcc__air: + description: >- + Integrated gasification combined cycle (IGCC) power plant cooling by air cooled + cooling technology using freshwater supply + input: {commodity: electr} + + igcc_ccs__ot_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by once through cooling technology using freshwater + input: {commodity: freshwater_supply} + + igcc_ccs__cl_fresh: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by closed loop cooling technology using freshwater & + freshwater supply + input: {commodity: freshwater_supply,electr} + + igcc_ccs__ot_saline: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by once through cooling technology using saline water + input: {commodity: saline_supply_ppl} + + igcc_ccs__air: + description: >- + Integrated gasification combined cycle (IGCC) power plant with carbon capture + and storage cooling by air cooled cooling technology using freshwater supply + input: {commodity: electr} + + loil_cc__ot_fresh: + description: >- + Light oil combined cycle cooling by once through cooling technology using + freshwater + input: {commodity: freshwater_supply} + + loil_cc__cl_fresh: + description: >- + Light oil combined cycle cooling by closed loop cooling technology using + freshwater & freshwater supply + input: {commodity: freshwater_supply,electr} + + loil_cc__ot_saline: + description: >- + Light oil combined cycle cooling by once through cooling technology using + saline supply + input: {commodity: saline_supply_ppl} + + loil_cc__air: + description: >- + Light oil combined cycle cooling by air cooled cooling technology using + freshwater supply + input: {commodity: electr} + + loil_ppl__ot_fresh: + description: >- + Existing light oil power plant cooling by once through cooling technology + using extract_freshwater_supply + input: {commodity: freshwater_supply} + + loil_ppl__cl_fresh: + description: >- + Existing light oil power plant cooling by once through cooling technology using + freshwater supply + input: {commodity: freshwater_supply,electr} + + loil_ppl__ot_saline: + description: >- + Existing light oil power plant cooling by once through cooling technology + using freshwater supply + input: {commodity: electr} + + loil_ppl__air: + description: >- + Existing light oil power plant cooling by air cooled cooling technology + using parasitic electricity + input: {commodity: electr} + + nuc_hc__ot_fresh: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by once through cooling + technology using freshwater supply + input: {commodity: freshwater_supply} + + nuc_hc__cl_fresh: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by closed loop cooling + technology using freshwater supply & parasitic + input: {commodity: freshwater_supply,electr} + + nuc_hc__ot_saline: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by once through cooling + technology using saline water supply + input: {commodity: saline_supply_ppl} + + nuc_hc__air: + description: >- + Nuclear power plant (~GEN III+) (high cost) cooling by once through cooling + technology using parasitic electricity + input: {commodity: electr} + + nuc_lc__ot_fresh: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by once through cooling + technology using freshwater supply + input: {commodity: freshwater_supply} + + nuc_lc__cl_fresh: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by closed loop cooling + technology using freshwater supply & parasitic + input: {commodity: freshwater_supply,electr} + + nuc_lc__ot_saline: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by once through cooling + technology using saline water supply + input: {commodity: saline_supply_ppl} + + nuc_lc__air: + description: >- + Nuclear power plant (~GEN III+) (low cost) cooling by once through cooling + technology using parasitic electricity + input: {commodity: electr} + + solar_th_ppl__ot_fresh: + description: >- + Solar thermal power plant with storage cooling by once through cooling + technology using freshwater supply + input: {commodity: freshwater_supply} + + solar_th_ppl__cl_fresh: + description: >- + Solar thermal power plant with storage cooling by closed loop cooling + technology using freshwater supply & parasitic electricity + input: {commodity: freshwater_supply,electr} + + solar_th_ppl__ot_saline: + description: >- + Solar thermal power plant with storage cooling by once through cooling + technology using freshwater supply + input: {commodity: saline_supply_ppl} + + solar_th_ppl__air: + description: >- + Solar thermal power plant with storage cooling by once through cooling + technology using parasitic electricity + input: {commodity: electr} + diff --git a/nest/message_ix_models/data/year/A.yaml b/nest/message_ix_models/data/year/A.yaml new file mode 100644 index 0000000..585ad69 --- /dev/null +++ b/nest/message_ix_models/data/year/A.yaml @@ -0,0 +1,41 @@ +# Time periods used in CD-LINKS, inter alia + +1960: + description: Period from 1951-01-01 to 1960-12-31. + # Durations of subsequent periods are implied by the prior period + duration_period: 10 + +1970: + description: Period from 1961-01-01 to 1970-12-31. +1980: + description: Period from 1971-01-01 to 1980-12-31. +1990: + description: Period from 1981-01-01 to 1990-12-31. +2000: + description: Period from 1991-01-01 to 2000-12-31. +2010: + description: Period from 2001-01-01 to 2010-12-31. + +2020: + description: Period from 2011-01-01 to 2020-12-31. + # Periods before this are historical + firstmodelyear: true + +2030: + description: Period from 2021-01-01 to 2030-12-31. +2040: + description: Period from 2031-01-01 to 2040-12-31. +2050: + description: Period from 2041-01-01 to 2050-12-31. +2060: + description: Period from 2051-01-01 to 2060-12-31. +2070: + description: Period from 2061-01-01 to 2070-12-31. +2080: + description: Period from 2071-01-01 to 2080-12-31. +2090: + description: Period from 2081-01-01 to 2090-12-31. +2100: + description: Period from 2091-01-01 to 2100-12-31. +2110: + description: Period from 2101-01-01 to 2110-12-31. diff --git a/nest/message_ix_models/data/year/B.yaml b/nest/message_ix_models/data/year/B.yaml new file mode 100644 index 0000000..dc5af38 --- /dev/null +++ b/nest/message_ix_models/data/year/B.yaml @@ -0,0 +1,64 @@ +# Time periods used in ENGAGE, inter alia + +1950: + description: Period from 1946-01-01 to 1950-12-31. + # Durations of subsequent periods are implied by the prior period + duration_period: 5 +1955: + description: Period from 1951-01-01 to 1955-12-31. +1960: + description: Period from 1956-01-01 to 1960-12-31. +1965: + description: Period from 1961-01-01 to 1965-12-31. +1970: + description: Period from 1966-01-01 to 1970-12-31. +1975: + description: Period from 1971-01-01 to 1975-12-31. +1980: + description: Period from 1976-01-01 to 1980-12-31. +1985: + description: Period from 1981-01-01 to 1985-12-31. +1990: + description: Period from 1986-01-01 to 1990-12-31. +1995: + description: Period from 1991-01-01 to 1995-12-31. +2000: + description: Period from 1996-01-01 to 2000-12-31. +2005: + description: Period from 2001-01-01 to 2005-12-31. +2010: + description: Period from 2006-01-01 to 2010-12-31. +2015: + description: Period from 2011-01-01 to 2015-12-31. + +2020: + description: Period from 2016-01-01 to 2020-12-31. + # Periods before this are historical + firstmodelyear: true + +2025: + description: Period from 2021-01-01 to 2025-12-31. +2030: + description: Period from 2026-01-01 to 2030-12-31. +2035: + description: Period from 2031-01-01 to 2035-12-31. +2040: + description: Period from 2036-01-01 to 2040-12-31. +2045: + description: Period from 2041-01-01 to 2045-12-31. +2050: + description: Period from 2046-01-01 to 2050-12-31. +2055: + description: Period from 2046-01-01 to 2055-12-31. +2060: + description: Period from 2056-01-01 to 2060-12-31. +2070: + description: Period from 2061-01-01 to 2070-12-31. +2080: + description: Period from 2071-01-01 to 2080-12-31. +2090: + description: Period from 2081-01-01 to 2090-12-31. +2100: + description: Period from 2091-01-01 to 2100-12-31. +2110: + description: Period from 2101-01-01 to 2110-12-31. diff --git a/nest/message_ix_models/model/__init__.py b/nest/message_ix_models/model/__init__.py new file mode 100644 index 0000000..a968090 --- /dev/null +++ b/nest/message_ix_models/model/__init__.py @@ -0,0 +1,4 @@ +"""Code for constructing models/scenarios in the MESSAGEix-GLOBIOM model family.""" +from .config import Config + +__all__ = ["Config"] diff --git a/nest/message_ix_models/model/bare.py b/nest/message_ix_models/model/bare.py new file mode 100644 index 0000000..82fa673 --- /dev/null +++ b/nest/message_ix_models/model/bare.py @@ -0,0 +1,170 @@ +import logging +from copy import copy +from functools import partial +from urllib.parse import urlunsplit + +import message_ix +from sdmx.model import Code + +import message_ix_models +from message_ix_models import ScenarioInfo, Spec +from message_ix_models.util import eval_anno + +from .build import apply_spec +from .config import Config +from .data import get_data +from .structure import codelists, get_codes + +log = logging.getLogger(__name__) + + +def _default_first(kind, default): + return [default] + list(filter(lambda id: id != default, codelists(kind))) + + +#: Deprecated; use :class:`.model.Config` instead. +SETTINGS = dict( + # Place the default value first + regions=_default_first("node", "R14"), + years=_default_first("year", "B"), + res_with_dummies=[False, True], +) + + +def create_res(context, quiet=True): + """Create a 'bare' MESSAGEix-GLOBIOM reference energy system (RES). + + Parameters + ---------- + context : .Context + :attr:`.Context.scenario_info` determines the model name and scenario name of + the created Scenario. If not provided, the defaults are: + + - Model name generated by :func:`name`. + - Scenario name "baseline". + quiet : bool, optional + Passed to `quiet` argument of :func:`.build.apply_spec`. + + Returns + ------- + message_ix.Scenario + A scenario as described by :func:`.bare.get_spec`, prepared using + :func:`.apply_spec`. + """ + mp = context.get_platform() + + # Retrieve the spec; this also sets defaults expected by name() + spec = get_spec(context) + + # Model and scenario name for the RES + args = dict( + mp=mp, + model=context.scenario_info.get("model", name(context)), + scenario=context.scenario_info.get("scenario", "baseline"), + version="new", + ) + + # TODO move this to ixmp as a method similar to ixmp.util.parse_url() + url = urlunsplit( + ("ixmp", mp.name, args["model"] + "/" + args["scenario"], "", args["version"]) + ) + log.info(f"Create {repr(url)}") + + # Create the Scenario + scenario = message_ix.Scenario(**args) + + # TODO move to message_ix + scenario.init_par("MERtoPPP", ["node", "year"]) + + # Apply the spec + apply_spec( + scenario, + spec, + data=partial(get_data, context=context, spec=spec), + quiet=quiet, + message=f"Create using message-ix-models {message_ix_models.__version__}", + ) + + return scenario + + +def get_spec(context) -> Spec: + """Return the spec for the MESSAGE-GLOBIOM global model RES. + + If :attr:`.Config.res_with_dummies` is set, additional elements are added: + + - ``commodity``: "dummy" + - ``technology``: "dummy", "dummy supply" + + These **may** be used for testing purposes, but **should not** be used in production + models. + + Returns + ------- + :class:`dict` of :class:`.ScenarioInfo` objects + """ + context.setdefault("model", Config()) + + add = ScenarioInfo() + + # Add technologies + add.set["technology"] = copy(get_codes("technology")) + + # Add regions + + # Load configuration for the specified region mapping + nodes = get_codes(f"node/{context.model.regions}") + + # Top-level "World" node + # FIXME typing ignored temporarily for PR#9 + world = nodes[nodes.index("World")] # type: ignore [arg-type] + + # Set elements: World, followed by the direct children of World + add.set["node"] = [world] + world.child + + # Add relations + add.set["relation"] = get_codes(f"relation/{context.model.relations}") + + # Initialize time periods + add.year_from_codes(get_codes(f"year/{context.model.years}")) + + # Add levels + add.set["level"] = get_codes("level") + + # Add commodities + add.set["commodity"] = get_codes("commodity") + + # Add units, associated with commodities + units = set(eval_anno(commodity, "unit") for commodity in add.set["commodity"]) + # Deduplicate by converting to a set and then back; not strictly necessary, + # but reduces duplicate log entries + add.set["unit"] = sorted(filter(None, units)) + + if context.model.res_with_dummies: + # Add dummy technologies + add.set["technology"].extend([Code(id="dummy"), Code(id="dummy source")]) + # Add a dummy commodity + add.set["commodity"].append(Code(id="dummy")) + + # The RES is the base, so does not require or remove any elements + return Spec(add=add) + + +def name(context): + """Generate a candidate name for a model given `context`. + + The name has a form like:: + + MESSAGEix-GLOBIOM R99 YA +D + + where: + + - "R99" is the node list/regional aggregation. + - "YA" indicates the year codelist (:doc:`/pkg-data/year`). + - "+D" appears if :attr:`.Config.res_with_dummies` is true. + + """ + cfg = context.model + return f"MESSAGEix-GLOBIOM {cfg.regions} Y{cfg.years}" + ( + " +D" if cfg.res_with_dummies else "" + ) diff --git a/nest/message_ix_models/model/build.py b/nest/message_ix_models/model/build.py new file mode 100644 index 0000000..e406d2e --- /dev/null +++ b/nest/message_ix_models/model/build.py @@ -0,0 +1,169 @@ +import logging +from typing import Callable, Dict, List, Mapping, Optional, Union + +import ixmp +import pandas as pd +from ixmp.utils import maybe_check_out, maybe_commit +from message_ix import Scenario +from sdmx.model import Code + +from message_ix_models.util import add_par_data, strip_par_data +from message_ix_models.util.scenarioinfo import ScenarioInfo, Spec + +log = logging.getLogger(__name__) + + +def _add_unit(mp: ixmp.Platform, unit: str, comment: str) -> None: + """Handle exceptions in :meth:`.Platform.add_unit`.""" + # TODO move upstream to ixmp.JDBCBackend + log.info(f"Add unit {repr(unit)}") + try: + mp.add_unit(unit, comment) + except Exception as e: # pragma: no cover + if "Error assigning an unit-key-id mapping" in str(e) and "" == str(unit): + log.warning(f"…skip {repr(unit)} (ixmp.JDBCBackend with Oracle database)") + else: + raise + + +def apply_spec( + scenario: Scenario, + spec: Union[Spec, Mapping[str, ScenarioInfo]], + data: Optional[Callable] = None, + **options, +): + """Apply `spec` to `scenario`. + + Parameters + ---------- + spec : .Spec + Specification of changes to make to `scenario`. + data : callable, optional + Function to add data to `scenario`. `data` can either manipulate the scenario + directly, or return a :class:`dict` compatible with :func:`.add_par_data`. + + Other parameters + ---------------- + dry_run : bool + Don't modify `scenario`; only show what would be done. Default :obj:`False`. + Exceptions will still be raised if the elements from ``spec['required']`` are + missing; this serves as a check that the scenario has the required features for + applying the spec. + fast : bool + Do not remove existing parameter data; increases speed on large scenarios. + quiet : bool + Only show log messages at level ``ERROR`` and higher. If :obj:`False` (default), + show log messages at level ``DEBUG`` and higher. + message : str + Commit message. + + See also + -------- + .add_par_data + .strip_par_data + .Code + .ScenarioInfo + """ + dry_run = options.get("dry_run", False) + fast = options.get("fast", False) + + log.setLevel(logging.ERROR if options.get("quiet", False) else logging.DEBUG) + + if not dry_run: + try: + scenario.remove_solution() + except ValueError: + pass + maybe_check_out(scenario) + + dump: Dict[str, pd.DataFrame] = {} # Removed data + + for set_name in scenario.set_list(): + # Check whether this set is mentioned at all in the spec + if 0 == sum(map(lambda info: len(info.set[set_name]), spec.values())): + # Not mentioned; don't do anything + continue + + log.info(f"Set {repr(set_name)}") + + # Base contents of the set + base_set = scenario.set(set_name) + # Unpack a multi-dimensional/indexed set to a list of tuples + base = ( + list(base_set.itertuples(index=False)) + if isinstance(base_set, pd.DataFrame) + else base_set.tolist() + ) + + log.info(f" {len(base)} elements") + # log.debug(', '.join(map(repr, base))) # All elements; verbose + + # Check for required elements + require = spec["require"].set[set_name] + log.info(f" Check {len(require)} required elements") + + # Raise an exception about the first missing element + missing = list(filter(lambda e: e not in base, require)) + if missing: + log.error(f" {len(missing)} elements not found: {missing!r}") + raise ValueError + + # Remove elements and associated parameter values + for element in spec["remove"].set[set_name]: + strip_par_data( + scenario, + set_name, + element, + dry_run=dry_run, + dump=None if fast else dump, + ) + + # Add elements + add = [] if dry_run else spec["add"].set[set_name] + for element in add: + name = element.id if isinstance(element, Code) else element + scenario.add_set(set_name, name) + if set_name == "node": + scenario.platform.add_region(name, "region") + + if len(add): + log.info(f" Add {len(add)} element(s)") + log.debug(" " + ellipsize(add)) + + log.info(" ---") + + if not fast: + N_removed = sum(len(d) for d in dump.values()) + log.info(f"{N_removed} total rows removed") + + # Add units to the Platform before adding data + for unit in spec["add"].set["unit"]: + unit = unit if isinstance(unit, Code) else Code(id=unit, name=unit) + _add_unit(scenario.platform, unit.id, str(unit.name)) + + # Add data + if callable(data): + result = data(scenario, dry_run=dry_run) + if result: + # `data` function returned some data; use add_par_data() + add_par_data(scenario, result, dry_run=dry_run) + + # Finalize + log.info("Commit results.") + maybe_commit( + scenario, + condition=not dry_run, + message=options.get("message", f"{__name__}.apply_spec()"), + ) + + +def ellipsize(elements: List) -> str: + """Generate a short string representation of `elements`. + + If the list has more than 5 elements, only the first two and last two are shown, + with "..." between. + """ + if len(elements) > 5: + return ", ".join(map(str, elements[:2] + ["..."] + elements[-2:])) + else: + return ", ".join(map(str, elements)) diff --git a/nest/message_ix_models/model/cli.py b/nest/message_ix_models/model/cli.py new file mode 100644 index 0000000..ce83fc9 --- /dev/null +++ b/nest/message_ix_models/model/cli.py @@ -0,0 +1,22 @@ +import click + +from message_ix_models.util.click import common_params + + +@click.group("res") +@click.pass_obj +def cli(context): + """MESSAGEix-GLOBIOM reference energy system (RES).""" + + +@cli.command("create-bare") +@common_params("nodes") +@click.pass_obj +def create_bare(context, nodes): + """Create the RES from scratch.""" + from .bare import create_res + + if nodes: + context.regions = nodes + + create_res(context) diff --git a/nest/message_ix_models/model/config.py b/nest/message_ix_models/model/config.py new file mode 100644 index 0000000..a5318ec --- /dev/null +++ b/nest/message_ix_models/model/config.py @@ -0,0 +1,41 @@ +from dataclasses import dataclass, fields + +from message_ix_models.model.structure import codelists +from message_ix_models.util.context import _ALIAS + + +@dataclass +class Config: + """Settings and valid values for :mod:`message_ix_models.model` and submodules.""" + + #: The 'node' codelist (regional aggregation) to use. Must be one of the lists of + #: nodes described at :doc:`/pkg-data/node`. + regions: str = "R14" + + #: The 'relations' codelist to use. Must be one of the lists of relations described + #: at :doc:`/pkg-data/relation`. + relations: str = "A" + + #: The 'year' codelist (time periods) to use, Must be one of the lists of periods + #: described at :doc:`/pkg-data/year`. + years: str = "B" + + #: Create the reference energy system with dummy commodities and technologies. See + #: :func:`.bare.get_spec`. + res_with_dummies: bool = False + + def check(self): + """Check the validity of :attr:`regions`, :attr:`relations`, :attr:`years`.""" + for attr, name in [ + ("regions", "node"), + ("relations", "relation"), + ("years", "year"), + ]: + if getattr(self, attr) not in codelists(name): + raise ValueError( + f"{attr}={getattr(self, attr)!r} not among {codelists(name)}" + ) + + +# Extend the list of settings that can be set directly on a Context instance. +_ALIAS.update({f.name: "model" for f in fields(Config)}) diff --git a/nest/message_ix_models/model/data.py b/nest/message_ix_models/model/data.py new file mode 100644 index 0000000..409ee65 --- /dev/null +++ b/nest/message_ix_models/model/data.py @@ -0,0 +1,12 @@ +import logging + +log = logging.getLogger(__name__) + + +def get_data(scenario, context, spec, **options): + """Data for the bare RES.""" + if context.model.res_with_dummies: + log.warning("get_dummy_data() not migrated") + # return get_dummy_data(scenario, spec) + else: + return dict() diff --git a/nest/message_ix_models/model/disutility.py b/nest/message_ix_models/model/disutility.py new file mode 100644 index 0000000..ba0baa0 --- /dev/null +++ b/nest/message_ix_models/model/disutility.py @@ -0,0 +1,236 @@ +import logging +from collections import defaultdict +from functools import partial +from itertools import product +from typing import List, Mapping, Sequence, Union + +import message_ix +import pandas as pd +from sdmx.model import Annotation, Code + +from message_ix_models import ScenarioInfo, Spec +from message_ix_models.model.build import apply_spec +from message_ix_models.util import ( + broadcast, + eval_anno, + make_io, + make_matched_dfs, + make_source_tech, + merge_data, + nodes_ex_world, + same_node, +) + +log = logging.getLogger(__name__) + +CodeLike = Union[str, Code] + + +def add( + scenario: message_ix.Scenario, + groups: Sequence[Code], + technologies: Sequence[Code], + template: Code, + **options, +) -> Spec: + """Add disutility formulation to `scenario`.""" + # Generate the spec given the configuration options + spec = get_spec(groups, technologies, template) + + # Apply spec and add data + apply_spec(scenario, spec, partial(get_data, spec=spec), **options) + + return spec + + +def get_spec( + groups: Sequence[Code], technologies: Sequence[Code], template: Code +) -> Spec: + """Get a spec for a disutility formulation. + + Parameters + ---------- + groups : list of Code + Identities of the consumer groups with distinct disutilities. + technologies : list of Code + The technologies to which the disutilities are applied. + template : .Code + + """ + s = Spec() + + s.require.set["technology"].extend(technologies) + + # Disutility commodity and source + s.add.set["commodity"] = [Code(id="disutility")] + s.add.set["technology"] = [Code(id="disutility source")] + + # Disutility is unitless + # NB this value is currently ignored by .build.apply_spec(). See #45. + s.add.set["unit"].append("") + + # Add conversion technologies + for t, g in product(technologies, groups): + # String formatting arguments + fmt = dict(technology=t, group=g) + + # Format each field in the "input" and "output" annotations + input = {k: v.format(**fmt) for k, v in eval_anno(template, id="input").items()} + output = { + k: v.format(**fmt) for k, v in eval_anno(template, id="output").items() + } + + # - Format the ID string from the template + # - Copy the "output" annotation without modification + t_code = Code( + id=template.id.format(**fmt), + annotations=[ + Annotation(id="input", text=repr(input)), + Annotation(id="output", text=repr(output)), + ], + ) + + # "commodity" set elements to add + s.add.set["commodity"].extend([input["commodity"], output["commodity"]]) + + # "technology" set elements to add + t_code.annotations.append(Annotation(id="input", text=repr(input))) + s.add.set["technology"].append(t_code) + + # Deduplicate "commodity" set elements + s.add.set["commodity"] = sorted(map(str, set(s.add.set["commodity"]))) + + return s + + +def get_data(scenario, spec, **kwargs) -> Mapping[str, pd.DataFrame]: + """Get data for disutility formulation. + + Calls :meth:`data_conversion` and :meth:`data_source`. + + Parameters + ---------- + spec : dict + The output of :meth:`get_spec`. + """ + if len(kwargs): + log.warning(f"Ignore {repr(kwargs)}") + + info = ScenarioInfo(scenario) + + # Get conversion technology data + data = data_conversion(info, spec) + + # Get and append source data + merge_data(data, data_source(info, spec)) + + return data + + +def dp_for(col_name: str, info: ScenarioInfo) -> pd.Series: # pragma: no cover + """:meth:`pandas.DataFrame.assign` helper for ``duration_period``. + + Returns a callable to be passed to :meth:`pandas.DataFrame.assign`. The callable + takes a data frame as the first argument, and returns a :class:`pandas.Series` + based on the ``duration_period`` parameter in `info`, aligned to `col_name` in the + data frame. + + Currently (2021-04-07) unused. + """ + + def func(df): + return df.merge(info.par["duration_period"], left_on=col_name, right_on="year")[ + "value_y" + ] + + return func + + +def data_conversion(info, spec) -> Mapping[str, pd.DataFrame]: + """Generate input and output data for disutility conversion technologies.""" + common = dict( + mode="all", + year_vtg=info.Y, + year_act=info.Y, + # No subannual detail + time="year", + time_origin="year", + time_dest="year", + ) + + # Use the spec to retrieve information + technology = spec["add"].set["technology"] + + # Data to return + data0: Mapping[str, List[pd.DataFrame]] = defaultdict(list) + + # Loop over conversion technologies + for t in technology: + # Use the annotations on the technology Code to get information about the + # commodity, level, and unit + input = eval_anno(t, "input") + output = eval_anno(t, "output") + if None in (input, output): + if t.id == "disutility source": + continue # Data for this tech is from data_source() + else: # pragma: no cover + raise ValueError(t) # Error in user input + + # Make input and output data frames + i_o = make_io( + (input["commodity"], input["level"], input["unit"]), + (output["commodity"], output["level"], output["unit"]), + 1.0, + on="output", + technology=t.id, + **common, + ) + for par, df in i_o.items(): + # Broadcast across nodes + df = df.pipe(broadcast, node_loc=nodes_ex_world(info.N)).pipe(same_node) + + if par == "input": + # Add input of disutility + df = pd.concat( + [df, df.assign(commodity="disutility", unit="-")], ignore_index=True + ) + + data0[par].append(df) + + # Concatenate to a single data frame per parameter + data = {par: pd.concat(dfs, ignore_index=True) for par, dfs in data0.items()} + + # Create data for capacity_factor + data.update(make_matched_dfs(base=data["input"], capacity_factor=1.0)) + + return data + + +def data_source(info, spec) -> Mapping[str, pd.DataFrame]: + """Generate data for a technology that emits the “disutility” commodity.""" + # List of input levels where disutility commodity must exist + levels = set() + for t in spec["add"].set["technology"]: + input = eval_anno(t, "input") + if input: + levels.add(input["level"]) + + log.info(f"Generate disutility on level(s): {repr(levels)}") + + # Use default capacity_factor = 1.0 + result = make_source_tech( + info, + common=dict( + commodity="disutility", + mode="all", + technology="disutility source", + time="year", + time_dest="year", + unit="-", + ), + output=1.0, + var_cost=1.0, + ) + result["output"] = result["output"].pipe(broadcast, level=sorted(levels)) + + return result diff --git a/nest/message_ix_models/model/emissions.py b/nest/message_ix_models/model/emissions.py new file mode 100644 index 0000000..a357d3a --- /dev/null +++ b/nest/message_ix_models/model/emissions.py @@ -0,0 +1,78 @@ +import logging +from typing import Optional + +import pandas as pd +from iam_units import convert_gwp +from message_ix import Scenario, make_df + +from message_ix_models import ScenarioInfo + +log = logging.getLogger(__name__) + + +def add_tax_emission( + scen: Scenario, + price: float, + conversion_factor: Optional[float] = None, + drate_parameter="drate", +) -> None: + """Add a global CO₂ price to `scen`. + + A carbon price is implemented on node=“World” by populating the + :ref:`MESSAGEix parameter ` + ``tax_emission``, starting from the first model year and covering the entire model + horizon. The tax has an annual growth rate equal to the discount rate. + + The other dimensions of ``tax_emission`` are filled with type_emission=“TCE” and + type_tec=“all”. + + Parameters + ---------- + scen : :class:`message_ix.Scenario` + price : float + Price in the first model year, in USD / tonne CO₂. + conversion_factor : float, optional + Factor for converting `price` into the model's internal emissions units, + currently USD / tonne carbon. Optional: a default value is retrieved from + :mod:`iam_units`. + drate_parameter : str; one of "drate" or "interestrate" + Name of the parameter to use for the growth rate of the carbon price. + """ + years = ScenarioInfo(scen).Y + filters = dict(year=years) + # Default: since the mass of the species is in the denominator, take the inverse + conversion_factor = conversion_factor or 1.0 / convert_gwp( + "AR5GWP100", "1 t", "CO2", "C" + ) + + # Duration of periods + dp = scen.par("duration_period", filters=filters).set_index("year")["value"] + + # Retrieve the discount rate + if drate_parameter == "interestrate": + # MESSAGE parameter with "year" dimension + r = scen.par(drate_parameter, filters=filters).set_index("year")["value"] + else: + # MACRO parameter with "node" dimension + drates = scen.par(drate_parameter).value.unique() + if len(drates) > 1: + log.warning(f"Using the first of multiple discount rates: drate={drates}") + r = pd.Series([drates[0]] * len(years), index=pd.Index(years, name="year")) + + # Compute cumulative growth versus the first period + r_cumulative = (r + 1).pow(dp.shift(-1)).cumprod().shift(1, fill_value=1.0) + + # Assemble the parameter data + name = "tax_emission" + data = make_df( + name, + value=(price * conversion_factor * r_cumulative), + type_year=r_cumulative.index, + node="World", + type_emission="TCE", + type_tec="all", + unit="USD/tC", + ) + + with scen.transact("Added carbon price"): + scen.add_par(name, data) diff --git a/nest/message_ix_models/model/structure.py b/nest/message_ix_models/model/structure.py new file mode 100644 index 0000000..fc37a77 --- /dev/null +++ b/nest/message_ix_models/model/structure.py @@ -0,0 +1,330 @@ +import logging +import re +from collections import ChainMap +from functools import lru_cache +from itertools import product +from typing import Dict, List, Mapping, MutableMapping, Tuple + +import click +import pandas as pd +import pycountry +import xarray as xr +from iam_units import registry +from sdmx.model import Annotation, Code + +from message_ix_models.util import eval_anno, load_package_data, package_data_path +from message_ix_models.util.sdmx import as_codes + +log = logging.getLogger(__name__) + + +@lru_cache() +def codelists(kind: str) -> List[str]: + """Return a valid IDs for code lists of `kind`. + + Parameters + ---------- + kind : str + "node" or "year". + """ + return sorted(path.stem for path in package_data_path(kind).glob("*.yaml")) + + +@lru_cache() +def get_codes(name: str) -> List[Code]: + """Return codes for the dimension/set `name` in MESSAGE-GLOBIOM scenarios. + + The information is read from :file:`data/{name}.yaml`, e.g. + :file:`data/technology.yaml`. + + When `name` includes "node", then child codes are automatically populated from the + ISO 3166 database via :mod:`pycountry`. For instance: + + .. code-block:: yaml + + myregion: + name: Custom region + child: [AUT, SCG] + + …results in a region with child codes for Austria (a current country) and the + formerly-existing country Serbia and Montenegro. + + Parameters + ---------- + name : :class:`str` + Any :file:`.yaml` file in the folder :file:`message_ix_models/data/`. + + Returns + ------- + list of :class:`~sdmx.model.Code` + Every Code has :attr:`id`, :attr:`name`, :attr:`description`, and + :attr:`annotations` attributes. Calling :func:`str` on a code returns its + :attr:`id`. + """ + # Raw contents of the config file + config = load_package_data(name) + + if "node" in name: + # Automatically add information for countries within regions in the node + # codelists. Use a ChainMap to combine a the `config` loaded from file and then + # fall back to contents of the pycountry databases. + config = ChainMap( + config, + # Create codes using the ISO database via pycountry + {c.alpha_3: dict(id=c.alpha_3, name=c.name) for c in pycountry.countries}, + # Also include historic countries + { + c.alpha_3: dict(id=c.alpha_3, name=c.name) + for c in pycountry.historic_countries + }, + ) + + # Convert to codes + data = as_codes(config) + + # Fill in additional data, defaults, etc. + if name == "commodity": + process_commodity_codes(data) + elif name == "technology": + process_technology_codes(data) + + return data + + +@lru_cache() +def get_region_codes(codelist: str) -> List[Code]: + """Return the codes that are children of "World" in the specified `codelist`.""" + nodes = get_codes(f"node/{codelist}") + return nodes[nodes.index(Code(id="World"))].child + + +def generate_product( + data: Mapping, name: str, template: Code +) -> Tuple[List[Code], Dict[str, xr.DataArray]]: + """Generates codes using a `template` by Cartesian product along ≥1 dimensions. + + :func:`generate_set_elements` is called for each of the `dims`, and these values + are used to format `base`. + + Parameters + ---------- + data + Mapping from dimension IDs to lists of codes. + name : str + Name of the set. + template : .Code + Must have Python format strings for its its :attr:`id` and :attr:`name` + attributes. + """ + # eval() and remove the original annotation + dims = eval_anno(template, "_generate") + template.pop_annotation(id="_generate") + + def _base(dim, match): + """Return codes along dimension `dim`. + + If `match` is given, only children matching an expression.""" + dim_codes = data[dim]["add"] + + try: + i = dim_codes.index(match) + except ValueError: + if isinstance(match, str): + expr = re.compile(match) + dim_codes = list(filter(lambda c: expr.match(c.id), dim_codes)) + else: + dim_codes = dim_codes[i].child + + return dim_codes + + codes = [] # Accumulate codes and indices + indices = [] + + # Iterate over the product of filtered codes for each dimension in + for item in product(*[_base(*dm) for dm in dims.items()]): + result = template.copy() # Duplicate the template + + fmt = dict(zip(dims.keys(), item)) # Format the ID and name + result.id = result.id.format(**fmt) + result.name = str(result.name).format(**fmt) # type: ignore [assignment] + + codes.append(result) # Store code and indices + indices.append(item) + + # - Convert length-N sequence of D-tuples to D iterables each of length N. + # - Convert to D × 1-dimensional xr.DataArrays, each of length N. + tmp = zip(*indices) + indexers = {d: xr.DataArray(list(i), dims=name) for d, i in zip(dims.keys(), tmp)} + # Corresponding indexer with the full code IDs + indexers[name] = xr.DataArray([c.id for c in codes], dims=name) + + return codes, indexers + + +def generate_set_elements(data: MutableMapping, name) -> None: + """Generate elements for set `name`. + + This function converts lists of codes in `data`, calling :func:`generate_product` + and :func:`process_units_anno` as appropriate. + + Parameters + ---------- + data + Mapping from dimension IDs to lists of codes. + name : str + Name of the set for which to generate elements e.g. "commodity" or "technology". + """ + hierarchical = name in {"technology"} + + codes = [] # Accumulate codes + deferred = [] + for code in as_codes(data[name].get("add", [])): + if name in {"commodity", "technology"}: + process_units_anno(name, code, quiet=True) + + if eval_anno(code, "_generate"): + # Requires a call to generate_product(); do these last + deferred.append(code) + continue + + codes.append(code) + + if hierarchical: + # Store the children of `code` + codes.extend(filter(lambda c: c not in codes, code.child)) + + # Store codes processed so far, in case used recursively by generate_product() + data[name]["add"] = codes + + # Use generate_product() to generate codes and indexers based on other sets + for code in deferred: + generated, indexers = generate_product(data, name, code) + + # Store + data[name]["add"].extend(generated) + + # NB if there are >=2 generated groups, only indexers for the last are kept + data[name]["indexers"] = indexers + + +def process_units_anno(set_name: str, code: Code, quiet: bool = False) -> None: + """Process an annotation on `code` with id="units". + + The annotation text is wrapped as ``'registry.Unit("{text}")'``, such that it can + be retrieved with :func:`.eval_anno` or :meth:`.ScenarioInfo.units_for`. If `code` + has direct children, the annotation is also copied to those codes. + + Parameters + ---------- + set_name : str + Used in logged messages when `quiet` is :data:`False`. + quiet : bool, optional + If :data:`False` (the default), log on level :ref:`WARNING ` if: + + - the annotation is missing, or + - its text is not parseable with the :mod:`pint` application registry, i.e. + :data:`iam_units.registry`. + + Otherwise, log on :ref:`DEBUG `. + + """ + level = logging.DEBUG if quiet else logging.WARNING + # Convert a "units" annotation to a code snippet that will return a pint.Unit + # via eval_anno() + try: + units_anno = code.get_annotation(id="units") + except KeyError: + log.log(level, f"{set_name.title()} {code} lacks defined units") + return + + # First try the expression as-is, in case already processed + expr = None + for candidate in (str(units_anno.text), f'registry.Unit("{units_anno.text}")'): + # Check that the unit can be parsed by the pint.UnitRegistry + try: + result = eval(candidate) + except Exception: + continue + else: + if isinstance(result, registry.Unit): + expr = candidate + break + + if not expr: # pragma: no cover + # No coverage: code that triggers this exception should never be committed + log.log( + level, + f"Unit '{units_anno.text}' for {set_name} {code} not pint compatible", + ) + else: + # Modify the annotation so eval_anno() can be used + units_anno.text = expr + + # Also annotate child codes + for c in code.child: + c.annotations.append(units_anno.copy()) + + +def process_commodity_codes(codes): + """Process a list of codes for ``commodity``. + + The function warns for commodities missing units or with non-:mod:`pint`-compatible + units. + """ + for code in codes: + # FIXME remove quiet=True; instead improve commodity.yaml with units + process_units_anno("commodity", code, quiet=True) + + +def process_technology_codes(codes): + """Process a list of codes for ``technology``. + + This function ensures every code has an annotation with id "vintaged", default + :obj:`False`. + """ + for code in codes: + # FIXME remove quiet=True; instead improve technology.yaml with units + process_units_anno("technology", code, quiet=True) + + try: + anno = code.pop_annotation(id="vintaged") + except KeyError: + # Default value for 'vintaged' + anno = Annotation(id="vintaged", text=repr(False)) + + code.annotations.append(anno) + + +@click.command(name="techs") +@click.pass_obj +def cli(ctx): + """Export metadata to technology.csv. + + This command transforms the technology metadata from the YAML file to CSV format. + """ + # Convert each code to a pd.Series + data = [] + for code in get_codes("technology"): + # Base attributes + d = dict(id=code.id, name=str(code.name), description=str(code.description)) + + # Annotations + for anno in ("type", "vintaged", "sector", "input", "output"): + try: + d[anno] = str(code.get_annotation(id=anno).text) + except KeyError: + pass + + data.append(pd.Series(d)) + + # Combine series to a data frame + techs = pd.DataFrame(data) + + # Write to file + dest = ctx.get_local_path("technology.csv") + print(f"Write to {dest}") + + techs.to_csv(dest, index=None, header=True) + + # Print the first few items of the data frame + print(techs.head()) diff --git a/nest/message_ix_models/model/water/__init__.py b/nest/message_ix_models/model/water/__init__.py new file mode 100644 index 0000000..c68e125 --- /dev/null +++ b/nest/message_ix_models/model/water/__init__.py @@ -0,0 +1,3 @@ +from .utils import read_config + +__all__ = ["read_config"] diff --git a/nest/message_ix_models/model/water/build.py b/nest/message_ix_models/model/water/build.py new file mode 100644 index 0000000..064eda8 --- /dev/null +++ b/nest/message_ix_models/model/water/build.py @@ -0,0 +1,271 @@ +import logging +from functools import lru_cache, partial +from typing import Mapping + +import pandas as pd + +from message_ix_models import ScenarioInfo +from message_ix_models.model import build +from message_ix_models.model.structure import get_codes +from message_ix_models.util import private_data_path + +from .utils import read_config + +log = logging.getLogger(__name__) + + +def get_spec(context) -> Mapping[str, ScenarioInfo]: + """Return the specification for nexus implementation + + Parameters + ---------- + context : .Context + The key ``regions`` determines the regional aggregation used. + """ + + context = read_config() + + require = ScenarioInfo() + remove = ScenarioInfo() + add = ScenarioInfo() + + if context.nexus_set == "nexus": + # Merge technology.yaml with set.yaml + context["water set"]["nexus"]["technology"]["add"] = context[ + "water technology" + ]["nexus"] + # Update the ScenarioInfo objects with required and new set elements + for set_name, config in context["water set"]["nexus"].items(): + # Required elements + require.set[set_name].extend(config.get("require", [])) + + # Elements to remove + remove.set[set_name].extend(config.get("remove", [])) + + # Elements to add + add.set[set_name].extend(config.get("add", [])) + + # The set of required nodes varies according to context.regions + nodes = get_codes(f"node/{context.regions}") + nodes = list(map(str, nodes[nodes.index("World")].child)) + require.set["node"].extend(nodes) + + # Share commodity for groundwater + results = {} + df_node = context.all_nodes + n = len(df_node.values) + + d = { + "shares": ["share_low_lim_GWat"] * n, + "node_share": df_node, + "node": df_node, + "type_tec": ["share_low_lim_GWat_share"] * n, + "mode": ["M1"] * n, + "commodity": ["groundwater_basin"] * n, + "level": ["water_avail_basin"] * n, + } + + df_share = pd.DataFrame(data=d) + df_list = df_share.values.tolist() + results["map_shares_commodity_share"] = df_list + + d = { + "shares": ["share_low_lim_GWat"] * n, + "node_share": df_node, + "node": df_node, + "type_tec": ["share_low_lim_GWat_total"] * n, + "mode": ["M1"] * n, + "commodity": ["surfacewater_basin"] * n, + "level": ["water_avail_basin"] * n, + } + + df_share = pd.DataFrame(data=d) + + d2 = { + "shares": ["share_low_lim_GWat"] * n, + "node_share": df_node, + "node": df_node, + "type_tec": ["share_low_lim_GWat_total"] * n, + "mode": ["M1"] * n, + "commodity": ["groundwater_basin"] * n, + "level": ["water_avail_basin"] * n, + } + + df_share2 = pd.DataFrame(data=d2) + + df_share = df_share.append(df_share2) + df_list = df_share.values.tolist() + + results["map_shares_commodity_total"] = df_list + + for set_name, config in results.items(): + # Sets to add + add.set[set_name].extend(config) + + results = {} + + # Share commodity for urban water recycling + d = { + "shares": ["share_wat_recycle"] * n, + "node_share": df_node, + "node": df_node, + "type_tec": ["share_wat_recycle_share"] * n, + "mode": ["M1"] * n, + "commodity": ["urban_collected_wst"] * n, + "level": ["water_treat"] * n, + } + + df_share = pd.DataFrame(data=d) + df_list = df_share.values.tolist() + results["map_shares_commodity_share"] = df_list + + d = { + "shares": ["share_wat_recycle"] * n, + "node_share": df_node, + "node": df_node, + "type_tec": ["share_wat_recycle_total"] * n, + "mode": ["M1"] * n, + "commodity": ["urban_collected_wst"] * n, + "level": ["water_treat"] * n, + } + + df_share = pd.DataFrame(data=d) + + d2 = { + "shares": ["share_wat_recycle"] * n, + "node_share": df_node, + "node": df_node, + "type_tec": ["share_wat_recycle_total"] * n, + "mode": ["M1"] * n, + "commodity": ["urban_collected_wst"] * n, + "level": ["water_treat"] * n, + } + + df_share2 = pd.DataFrame(data=d2) + + df_share = df_share.append(df_share2) + df_list = df_share.values.tolist() + + results["map_shares_commodity_total"] = df_list + + for set_name, config in results.items(): + # Sets to add + add.set[set_name].extend(config) + + elif context.nexus_set == "cooling": + # Merge technology.yaml with set.yaml + context["water set"]["cooling"]["technology"]["add"] = context[ + "water technology" + ]["cooling"] + # Update the ScenarioInfo objects with required and new set elements + for set_name, config in context["water set"]["cooling"].items(): + # Required elements + require.set[set_name].extend(config.get("require", [])) + + # Elements to remove + remove.set[set_name].extend(config.get("remove", [])) + + # Elements to add + add.set[set_name].extend(config.get("add", [])) + + return dict(require=require, remove=remove, add=add) + + return dict(require=require, remove=remove, add=add) + + +@lru_cache() +def generate_set_elements(set_name, match=None): + codes = read_config()["water set"][set_name].get("add", []) + + hierarchical = set_name in {"technology"} + + results = [] + for code in codes: + if match and code.id != match: + continue + elif hierarchical: + results.extend(code) + + return results + + +def map_basin(context) -> Mapping[str, ScenarioInfo]: + """Return specification for mapping basins to regions + + The basins are spatially consolidated from HydroSHEDS basins delineation + database.This delineation is then intersected with MESSAGE regions to form new + water sector regions for the nexus module. + The nomenclature for basin names is | such as R1|AFR + """ + context = read_config() + + add = ScenarioInfo() + + require = ScenarioInfo() + + remove = ScenarioInfo() + + # define an empty dictionary + results = {} + # read csv file for basin names and region mapping + # reading basin_delineation + FILE = f"basins_by_region_simpl_{context.regions}.csv" + PATH = private_data_path("water", "delineation", FILE) + + df = pd.read_csv(PATH) + # Assigning proper nomenclature + df["node"] = "B" + df["BCU_name"].astype(str) + df["mode"] = "M" + df["BCU_name"].astype(str) + if context.type_reg == "country": + df["region"] = context.map_ISO_c[context.regions] + else: + df["region"] = f"{context.regions}_" + df["REGION"].astype(str) + + results["node"] = df["node"] + results["mode"] = df["mode"] + # map nodes as per dimensions + df1 = pd.DataFrame({"node_parent": df["region"], "node": df["node"]}) + df2 = pd.DataFrame({"node_parent": df["node"], "node": df["node"]}) + frame = [df1, df2] + df_node = pd.concat(frame) + nodes = df_node.values.tolist() + + results["map_node"] = nodes + + context.all_nodes = df["node"] + + for set_name, config in results.items(): + # Sets to add + add.set[set_name].extend(config) + + return dict(require=require, remove=remove, add=add) + + +def main(context, scenario, **options): + """Set up MESSAGEix-Nexus on `scenario`. + + See also + -------- + add_data + apply_spec + get_spec + """ + from .data import add_data + + log.info("Set up MESSAGEix-Nexus") + + if context.nexus_set == "nexus": + # Add water balance + spec = map_basin(context) + + # Apply the structural changes AND add the data + build.apply_spec(scenario, spec, **options) + + # Core water structure + spec1 = get_spec(context) + + # Apply the structural changes AND add the data + build.apply_spec(scenario, spec1, partial(add_data, context=context), **options) + + # Uncomment to dump for debugging + # scenario.to_excel('debug.xlsx') diff --git a/nest/message_ix_models/model/water/cli.py b/nest/message_ix_models/model/water/cli.py new file mode 100644 index 0000000..3057fb7 --- /dev/null +++ b/nest/message_ix_models/model/water/cli.py @@ -0,0 +1,272 @@ +import logging + +import click + +from message_ix_models.model.structure import get_codes +from message_ix_models.util.click import common_params + +log = logging.getLogger(__name__) + + +# allows to activate water module +@click.group("water-ix") +@common_params("regions") +@click.option("--time", help="Manually defined time") +@click.pass_obj +def cli(context, regions, time): + """MESSAGEix-Water and Nexus variant.""" + water_ini(context, regions, time) + + +def water_ini(context, regions, time): + """Add components of the MESSAGEix-Nexus module + + This function modifies model name & scenario name + and verifies the region setup + Parameters + ---------- + context : `class`:message.Context + Information about target Scenario. + regions : str (if not defined already in context.regions) + Specifies what region definition is used ['R11','R12','ISO3'] + """ + + from .utils import read_config + + # Ensure water model configuration is loaded + read_config(context) + if not context.scenario_info: + context.scenario_info.update( + dict(model="ENGAGE_SSP2_v4.1.7", scenario="baseline_clone_test") + ) + context.output_scenario = context.scenario_info["scenario"] + context.output_model = context.scenario_info["model"] + + # Handle --regions; use a sensible default for MESSAGEix-Nexus + if regions: + log.info(f"Regions choice {regions}") + if regions in ["R14", "R32", "RCP"]: + log.warning( + "the MESSAGEix-Nexus module might not be compatible" + "with your 'regions' choice" + ) + else: + log.info("Use default --regions=R11") + regions = "R11" + # add an attribute to distinguish country models + if regions in ["R11", "R12", "R14", "R32", "RCP"]: + context.type_reg = "global" + else: + context.type_reg = "country" + context.regions = regions + + # create a mapping ISO code : + # region name, for other scripts + # only needed for 1-country models + nodes = get_codes(f"node/{context.regions}") + nodes = list(map(str, nodes[nodes.index("World")].child)) + if context.type_reg == "country": + map_ISO_c = {context.regions: nodes[0]} + context.map_ISO_c = map_ISO_c + log.info(f"mapping {context.map_ISO_c[context.regions]}") + + # deinfe the timestep + if not time: + sc_ref = context.get_scenario() + time = sc_ref.set("time") + sub_time = list(time[time != "year"]) + if len(sub_time) == 0: + context.time = ["year"] + + else: + context.time = sub_time + else: + context.time = list(time) + log.info(f"Using the following time-step for the water module: {context.time}") + + # setting the time information in context + + +_RCPS = ["no_climate", "6p0", "2p6", "7p0"] +_REL = ["low", "med", "high"] + + +@cli.command("nexus") +@click.pass_obj +@click.option("--rcps", default="6p0", type=click.Choice(_RCPS)) +@click.option("--rels", default="low", type=click.Choice(_REL)) +@click.option( + "--sdgs", + is_flag=True, + help="Defines whether water SDG measures are activated or not", +) +@click.option( + "--macro", + is_flag=True, + help="Defines whether the model solves with macro", +) +@common_params("regions") +def nexus_cli(context, regions, rcps, sdgs, rels, macro=False): + """ + Add basin structure connected to the energy sector and + water balance linking different water demands to supply. + """ + + nexus(context, regions, rcps, sdgs, rels, macro) + + +def nexus(context, regions, rcps, sdgs, rels, macro=False): + """Add basin structure connected to the energy sector and + water balance linking different water demands to supply. + + Use the --url option to specify the base scenario. + + Parameters + ---------- + context : `class`:message.Context + Information about target Scenario. + regions : str (if not defined already in context.regions) + Specifies what region definition is used ['R11','R12','ISO3'] + RCP : str + Specifies the climate scenario used ['no_climate','6p0','2p6'] + SDG : True/False + Defines whether water SDG measures are activated or not + REL: str + Specifies the reliability of hydrological data ['low','mid','high'] + """ + # add input information to the class context + context.nexus_set = "nexus" + if not context.regions: + context.regions = regions + + context.RCP = rcps + context.SDG = sdgs + context.REL = rels + + log.info(f"RCP assumption is {context.RCP}. SDG is {context.SDG}") + + from .build import main as build + + # Determine the output scenario name based on the --url CLI option. If the + # user did not give a recognized value, this raises an error + output_scenario_name = context.output_scenario + "_nexus" + output_model_name = context.output_model + + # Clone and build + sc_ref = context.get_scenario() + scen = sc_ref.clone( + model=output_model_name, scenario=output_scenario_name, keep_solution=False + ) + log.info( + f" clone from {sc_ref.model}.{sc_ref.scenario} to {scen.model}.{scen.scenario}" + ) + # Exporting the built model (Scenario) to GAMS with an optional case name + caseName = scen.model + "__" + scen.scenario + "__v" + str(scen.version) + + # Build + build(context, scen) + + # Set scenario as default + scen.set_as_default() + + # Solve + if macro: + scen.solve( + model="MESSAGE-MACRO", + solve_options={"lpmethod": "4", "scaind": "1"}, + case=caseName, + ) + else: + scen.solve(solve_options={"lpmethod": "4"}, case=caseName) + + # if options["report"]: + # # Also output diagnostic reports + # from message_data.model.water import report, run_old_reporting + # + # old reporting + # run_old_reporting(scen) + + # log.info(f"Report plots to {rep.graph['config']['output_dir']}") + + # mark_time() + + +@cli.command("cooling") +@common_params("regions") +@click.option("--rcps", type=click.Choice(_RCPS)) +@click.option("--rels", type=click.Choice(_REL)) +@click.pass_obj +def cooling_cli(context, regions, rcps, rels): + """Build and solve model with new cooling technologies.""" + cooling(context, regions, rcps, rels) + + +def cooling(context, regions, rcps, rels): + """Build and solve model with new cooling technologies. + + Use the --url option to specify the base scenario. + + Parameters + ---------- + context : `class`:message.Context + Information about target Scenario. + regions : str (if not defined already in context.regions) + Specifies what region definition is used ['R11','R12','ISO3'] + RCP : str + Specifies the climate scenario used ['no_climate','6p0','2p6'] + + """ + context.nexus_set = "cooling" + context.RCP = rcps + context.REL = rels + + from .build import main as build + + # Determine the output scenario name based on the --url CLI option. If the + # user did not give a recognized value, this raises an error. + + output_scenario_name = context.output_scenario + "_cooling" + output_model_name = context.output_model + + # Clone and build + scen = context.get_scenario().clone( + model=output_model_name, scenario=output_scenario_name, keep_solution=False + ) + + print(scen.model) + print(scen.scenario) + + # Exporting the built model (Scenario) to GAMS with an optional case name + caseName = scen.model + "__" + scen.scenario + "__v" + str(scen.version) + + # Build + build(context, scen) + + # Solve + scen.solve(solve_options={"lpmethod": "4"}, case=caseName) + + +@cli.command("report") +@click.pass_obj +@click.option( + "--sdgs", + is_flag=True, + help="Defines whether water SDG measures are activated or not", +) +@common_params("output_model") +def report_cli(context, output_model, sdgs): + """function to run the water report_full from cli to the + scenario defined by the user with --url + + Parameters + ---------- + context : `class`:message.Context + Information about target Scenario. + output_model : str (optional, otherwise default args used) + Specifies the model name of the scenarios which are run. + """ + + from message_ix_models.model.water.reporting import report_full + + sc = context.get_scenario() + report_full(sc, sdgs) diff --git a/nest/message_ix_models/model/water/data/__init__.py b/nest/message_ix_models/model/water/data/__init__.py new file mode 100644 index 0000000..931af07 --- /dev/null +++ b/nest/message_ix_models/model/water/data/__init__.py @@ -0,0 +1,62 @@ +"""Generate input data.""" + +import logging + +from message_ix_models import ScenarioInfo +from message_ix_models.util import add_par_data + +from .demands import add_irrigation_demand, add_sectoral_demands, add_water_availability +from .infrastructure import add_desalination, add_infrastructure_techs +from .irrigation import add_irr_structure +from .water_for_ppl import cool_tech, non_cooling_tec +from .water_supply import add_e_flow, add_water_supply + +log = logging.getLogger(__name__) + +DATA_FUNCTIONS = [ + add_water_supply, + cool_tech, # Water & parasitic_electricity requirements for cooling technologies + non_cooling_tec, + add_sectoral_demands, + add_water_availability, + add_irrigation_demand, + add_infrastructure_techs, + add_desalination, + add_e_flow, + add_irr_structure, +] + +DATA_FUNCTIONS_COUNTRY = [ + add_water_supply, + cool_tech, # Water & parasitic_electricity requirements for cooling technologies + non_cooling_tec, + add_sectoral_demands, + add_water_availability, + # add_irrigation_demand, # not used and coming from GLOBIOM for the global region + add_infrastructure_techs, + add_desalination, + add_e_flow, + # add if statement: if irrigation: land component from external model +] + + +def add_data(scenario, context, dry_run=False): + """Populate `scenario` with MESSAGEix-Nexus data.""" + + info = ScenarioInfo(scenario) + context["water build info"] = info + + data_funcs = ( + [add_water_supply, cool_tech, non_cooling_tec] + if context.nexus_set == "cooling" + else DATA_FUNCTIONS + if context.type_reg == "global" + else DATA_FUNCTIONS_COUNTRY + ) + + for func in data_funcs: + # Generate or load the data; add to the Scenario + log.info(f"from {func.__name__}()") + add_par_data(scenario, func(context), dry_run=dry_run) + + log.info("done") diff --git a/nest/message_ix_models/model/water/data/demands.py b/nest/message_ix_models/model/water/data/demands.py new file mode 100644 index 0000000..56e231f --- /dev/null +++ b/nest/message_ix_models/model/water/data/demands.py @@ -0,0 +1,922 @@ +"""Prepare data for adding demands""" + +import os + +import numpy as np +import pandas as pd +import xarray as xr +from message_ix import make_df + +from message_ix_models.util import broadcast, private_data_path + + +def target_rate(df, basin, val): + """ + Sets target connection and sanitation rates for SDG scenario + It filters out the basins as developing and developed baed on the countries + overlapping basins. If the numbers of developing countries in the basins are + more than basin is cateogirzez as developing and vice versa. + If the number of developing and developed countries are equal in a basin, then + the basin is assumed developing. + For developed basins target is set at 2030. + For developing basins, the access target is set at 2040 and 2035 target is the average of + 2030 original rate and 2040 target. + Returns + ------- + data : dict of (str -> pandas.DataFrame) + """ + value = [] + for i in df.node.unique(): + temp = basin[basin["BCU_name"] == i] + + sizes = temp.pivot_table(index=["STATUS"], aggfunc="size") + + if len(sizes) > 1: + if sizes["DEV"] > sizes["IND"] or sizes["DEV"] == sizes["IND"]: + # for j in urban[urban["node"] == i][urban[urban["node"] == i]["year"] == 2030].index: + # if urban[urban["node"] == i][urban[urban["node"] == i]["year"] == 2030].at[j, "value"] < np.float64(0.75): + # value.append([j, np.float64(0.75)]) + + for ind, j in enumerate( + df[df["node"] == i][df[df["node"] == i]["year"] == 2030].index + ): + jj = df[df["node"] == i][df[df["node"] == i]["year"] == 2035].index + temp = ( + df[df["node"] == i][df[df["node"] == i]["year"] == 2030].at[ + j, "value" + ] + + val + ) / 2 + value.append([jj[ind], np.float64(temp)]) + + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].index: + if df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].at[ + j, "value" + ] < np.float64(val): + value.append([j, np.float64(val)]) + else: + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].index: + if df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].at[ + j, "value" + ] < np.float64(val): + value.append([j, np.float64(val)]) + else: + if sizes.index[0] == "DEV": + # for j in urban[urban["node"] == i][urban[urban["node"] == i]["year"] == 2030].index: + # if urban[urban["node"] == i][urban[urban["node"] == i]["year"] == 2030].at[j, "value"] < np.float64(0.75): + # value.append([j, np.float64(0.75)]) + + for ind, j in enumerate( + df[df["node"] == i][df[df["node"] == i]["year"] == 2030].index + ): + jj = df[df["node"] == i][df[df["node"] == i]["year"] == 2035].index + temp = ( + df[df["node"] == i][df[df["node"] == i]["year"] == 2030].at[ + j, "value" + ] + + val + ) / 2 + value.append([jj[ind], np.float64(temp)]) + + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].index: + if df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].at[ + j, "value" + ] < np.float64(val): + value.append([j, np.float64(val)]) + else: + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].index: + if df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].at[ + j, "value" + ] < np.float64(val): + value.append([j, np.float64(val)]) + valuetest = pd.DataFrame(data=value, columns=["Index", "Value"]) + + for i in range(len(valuetest["Index"])): + df.at[valuetest["Index"][i], "Value"] = valuetest["Value"][i] + + real_value = df["Value"].combine_first(df["value"]) + + df.drop(["value", "Value"], axis=1, inplace=True) + df["value"] = real_value + + return df + + +def target_rate_trt(df, basin): + """ + Sets target treatment rates for SDG scenario. The target value for + developed and developing region is making sure that the amount of untreated + wastewater is halved beyond 2030 & 2040 respectively. + Returns + ------- + data : dict of (str -> pandas.DataFrame) + """ + + value = [] + for i in df.node.unique(): + temp = basin[basin["BCU_name"] == i] + + sizes = temp.pivot_table(index=["STATUS"], aggfunc="size") + + if len(sizes) > 1: + if sizes["DEV"] > sizes["IND"] or sizes["DEV"] == sizes["IND"]: + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].index: + temp = df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].at[ + j, "value" + ] + temp = temp + (1 - temp) / 2 + value.append([j, np.float64(temp)]) + else: + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].index: + temp = df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].at[ + j, "value" + ] + temp = temp + (1 - temp) / 2 + value.append([j, np.float64(temp)]) + else: + if sizes.index[0] == "DEV": + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].index: + temp = df[df["node"] == i][df[df["node"] == i]["year"] >= 2040].at[ + j, "value" + ] + temp = temp + (1 - temp) / 2 + value.append([j, np.float64(temp)]) + else: + for j in df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].index: + temp = df[df["node"] == i][df[df["node"] == i]["year"] >= 2030].at[ + j, "value" + ] + temp = temp + (1 - temp) / 2 + value.append([j, np.float64(temp)]) + + valuetest = pd.DataFrame(data=value, columns=["Index", "Value"]) + + for i in range(len(valuetest["Index"])): + df.at[valuetest["Index"][i], "Value"] = valuetest["Value"][i] + + real_value = df["Value"].combine_first(df["value"]) + + df.drop(["value", "Value"], axis=1, inplace=True) + + df["value"] = real_value + return df + + +def add_sectoral_demands(context): + """ + Adds water sectoral demands + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. Values + are data frames ready for :meth:`~.Scenario.add_par`. + """ + + # define an empty dictionary + results = {} + + # Reference to the water configuration + info = context["water build info"] + + # defines path to read in demand data + region = f"{context.regions}" + sub_time = context.time + path = private_data_path("water", "demands", "harmonized", region, ".") + # make sure all of the csvs have format, otherwise it might not work + list_of_csvs = list(path.glob("*_baseline.csv")) + # define names for variables + fns = [os.path.splitext(os.path.basename(x))[0] for x in list_of_csvs] + fns = " ".join(fns).replace("ssp2_regional_", "").split() + # dictionary for reading csv files + d = {} + + for i in range(len(fns)): + d[fns[i]] = pd.read_csv(list_of_csvs[i]) + + # d is a dictionary that have ist of dataframes read in this folder + dfs = {} + for key, df in d.items(): + df.rename(columns={"Unnamed: 0": "year"}, inplace=True) + df.index = df["year"] + df = df.drop(columns=["year"]) + dfs[key] = df + + # convert the dictionary of dataframes to xarray + df_x = xr.Dataset(dfs).to_array() + df_x_interp = df_x.interp(year=[2015, 2025, 2035, 2045, 2055]) + df_x_c = df_x.combine_first(df_x_interp) + # Unstack xarray back to pandas dataframe + df_f = df_x_c.to_dataframe("").unstack() + + # Format the dataframe to be compatible with message format + df_dmds = df_f.stack().reset_index(level=0).reset_index() + df_dmds.columns = ["year", "node", "variable", "value"] + df_dmds.sort_values(["year", "node", "variable", "value"], inplace=True) + + df_dmds["time"] = "year" + + # Write final interpolated values as csv + # df2_f.to_csv('final_interpolated_values.csv') + + # if we are using sub-annual timesteps we replace the rural and municipal + # withdrawals and return flows with monthly data and also add industrial + if "year" not in context.time: + PATH = private_data_path( + "water", "demands", "harmonized", region, "ssp2_m_water_demands.csv" + ) + df_m = pd.read_csv(PATH) + df_m.value *= 30 # from mcm/day to mcm/month + df_m["sector"][df_m["sector"] == "industry"] = "manufacturing" + df_m["variable"] = df_m["sector"] + "_" + df_m["type"] + "_baseline" + df_m["variable"].replace( + "urban_withdrawal_baseline", "urban_withdrawal2_baseline", inplace=True + ) + df_m["variable"].replace( + "urban_return_baseline", "urban_return2_baseline", inplace=True + ) + df_m = df_m[["year", "pid", "variable", "value", "month"]] + df_m.columns = ["year", "node", "variable", "value", "time"] + + # remove yearly parts from df_dms + df_dmds = df_dmds[ + ~df_dmds["variable"].isin( + [ + "urban_withdrawal2_baseline", + "rural_withdrawal_baseline", + "manufacturing_withdrawal_baseline", + "manufacturing_return_baseline", + "urban_return2_baseline", + "rural_return_baseline", + ] + ) + ] + # attach the monthly demand + df_dmds = pd.concat([df_dmds, df_m]) + + urban_withdrawal_df = df_dmds[df_dmds["variable"] == "urban_withdrawal2_baseline"] + rual_withdrawal_df = df_dmds[df_dmds["variable"] == "rural_withdrawal_baseline"] + industrial_withdrawals_df = df_dmds[ + df_dmds["variable"] == "manufacturing_withdrawal_baseline" + ] + industrial_return_df = df_dmds[ + df_dmds["variable"] == "manufacturing_return_baseline" + ] + urban_return_df = df_dmds[df_dmds["variable"] == "urban_return2_baseline"] + urban_return_df.reset_index(drop=True, inplace=True) + rural_return_df = df_dmds[df_dmds["variable"] == "rural_return_baseline"] + rural_return_df.reset_index(drop=True, inplace=True) + urban_connection_rate_df = df_dmds[ + df_dmds["variable"] == "urban_connection_rate_baseline" + ] + urban_connection_rate_df.reset_index(drop=True, inplace=True) + rural_connection_rate_df = df_dmds[ + df_dmds["variable"] == "rural_connection_rate_baseline" + ] + rural_connection_rate_df.reset_index(drop=True, inplace=True) + + urban_treatment_rate_df = df_dmds[ + df_dmds["variable"] == "urban_treatment_rate_baseline" + ] + urban_treatment_rate_df.reset_index(drop=True, inplace=True) + + rural_treatment_rate_df = df_dmds[ + df_dmds["variable"] == "rural_treatment_rate_baseline" + ] + rural_treatment_rate_df.reset_index(drop=True, inplace=True) + + df_recycling = df_dmds[df_dmds["variable"] == "urban_recycling_rate_baseline"] + df_recycling.reset_index(drop=True, inplace=True) + + all_rates_base = pd.concat( + [ + urban_connection_rate_df, + rural_connection_rate_df, + urban_treatment_rate_df, + rural_treatment_rate_df, + df_recycling, + ] + ) + + if context.SDG: + # reading basin mapping to countries + FILE2 = f"basins_country_{context.regions}.csv" + PATH = private_data_path("water", "delineation", FILE2) + + df_basin = pd.read_csv(PATH) + + # Applying 80% sanitation rate for rural sanitation + rural_treatment_rate_df = rural_treatment_rate_df_sdg = target_rate( + rural_treatment_rate_df, df_basin, 0.8 + ) + # Applying 95% sanitation rate for urban sanitation + urban_treatment_rate_df = urban_treatment_rate_df_sdg = target_rate( + urban_treatment_rate_df, df_basin, 0.95 + ) + # Applying 99% connection rate for urban infrastructure + urban_connection_rate_df = urban_connection_rate_df_sdg = target_rate( + urban_connection_rate_df, df_basin, 0.99 + ) + # Applying 80% connection rate for rural infrastructure + rural_connection_rate_df = rural_connection_rate_df_sdg = target_rate( + rural_connection_rate_df, df_basin, 0.8 + ) + # Applying sdg6 waste water treatment target + df_recycling = df_recycling_sdg = target_rate_trt(df_recycling, df_basin) + + all_rates_sdg = pd.concat( + [ + urban_connection_rate_df_sdg, + rural_connection_rate_df_sdg, + urban_treatment_rate_df_sdg, + rural_treatment_rate_df_sdg, + df_recycling_sdg, + ] + ) + all_rates_sdg["variable"] = [ + x.replace("baseline", "sdg") for x in all_rates_sdg["variable"] + ] + all_rates = pd.concat([all_rates_base, all_rates_sdg]) + save_path = private_data_path("water", "demands", "harmonized", context.regions) + # save all the rates for reporting purposes + all_rates.to_csv(save_path / "all_rates_SSP2.csv", index=False) + + # urban water demand and return. 1e-3 from mcm to km3 + urban_mw = urban_withdrawal_df.reset_index(drop=True) + urban_mw = urban_mw.merge( + urban_connection_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + urban_mw["value"] = (1e-3 * urban_mw["value"]) * urban_mw["rate"] + + dmd_df = make_df( + "demand", + node="B" + urban_mw["node"], + commodity="urban_mw", + level="final", + year=urban_mw["year"], + time=urban_mw["time"], + value=urban_mw["value"], + unit="km3/year", + ) + urban_dis = urban_withdrawal_df.reset_index(drop=True) + urban_dis = urban_dis.merge( + urban_connection_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + urban_dis["value"] = (1e-3 * urban_dis["value"]) * (1 - urban_dis["rate"]) + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + urban_dis["node"], + commodity="urban_disconnected", + level="final", + year=urban_dis["year"], + time=urban_dis["time"], + value=urban_dis["value"], + unit="km3/year", + ) + ) + # rural water demand and return + rural_mw = rual_withdrawal_df.reset_index(drop=True) + rural_mw = rural_mw.merge( + rural_connection_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + rural_mw["value"] = (1e-3 * rural_mw["value"]) * rural_mw["rate"] + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + rural_mw["node"], + commodity="rural_mw", + level="final", + year=rural_mw["year"], + time=rural_mw["time"], + value=rural_mw["value"], + unit="km3/year", + ) + ) + + rural_dis = rual_withdrawal_df.reset_index(drop=True) + rural_dis = rural_dis.merge( + rural_connection_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + rural_dis["value"] = (1e-3 * rural_dis["value"]) * (1 - rural_dis["rate"]) + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + rural_dis["node"], + commodity="rural_disconnected", + level="final", + year=rural_dis["year"], + time=rural_dis["time"], + value=rural_dis["value"], + unit="km3/year", + ) + ) + + # manufactury/ industry water demand and return + manuf_mw = industrial_withdrawals_df.reset_index(drop=True) + manuf_mw["value"] = 1e-3 * manuf_mw["value"] + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + manuf_mw["node"], + commodity="industry_mw", + level="final", + year=manuf_mw["year"], + time=manuf_mw["time"], + value=manuf_mw["value"], + unit="km3/year", + ) + ) + + manuf_uncollected_wst = industrial_return_df.reset_index(drop=True) + manuf_uncollected_wst["value"] = 1e-3 * manuf_uncollected_wst["value"] + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + manuf_uncollected_wst["node"], + commodity="industry_uncollected_wst", + level="final", + year=manuf_uncollected_wst["year"], + time=manuf_uncollected_wst["time"], + value=-manuf_uncollected_wst["value"], + unit="km3/year", + ) + ) + + urban_collected_wst = urban_return_df.reset_index(drop=True) + urban_collected_wst = urban_collected_wst.merge( + urban_treatment_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + urban_collected_wst["value"] = ( + 1e-3 * urban_collected_wst["value"] + ) * urban_collected_wst["rate"] + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + urban_collected_wst["node"], + commodity="urban_collected_wst", + level="final", + year=urban_collected_wst["year"], + time=urban_collected_wst["time"], + value=-urban_collected_wst["value"], + unit="km3/year", + ) + ) + + rural_collected_wst = rural_return_df.reset_index(drop=True) + rural_collected_wst = rural_collected_wst.merge( + rural_treatment_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + rural_collected_wst["value"] = ( + 1e-3 * rural_collected_wst["value"] + ) * rural_collected_wst["rate"] + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + rural_collected_wst["node"], + commodity="rural_collected_wst", + level="final", + year=rural_collected_wst["year"], + time=rural_collected_wst["time"], + value=-rural_collected_wst["value"], + unit="km3/year", + ) + ) + urban_uncollected_wst = urban_return_df.reset_index(drop=True) + urban_uncollected_wst = urban_uncollected_wst.merge( + urban_treatment_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + urban_uncollected_wst["value"] = (1e-3 * urban_uncollected_wst["value"]) * ( + 1 - urban_uncollected_wst["rate"] + ) + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + urban_uncollected_wst["node"], + commodity="urban_uncollected_wst", + level="final", + year=urban_uncollected_wst["year"], + time=urban_uncollected_wst["time"], + value=-urban_uncollected_wst["value"], + unit="km3/year", + ) + ) + + rural_uncollected_wst = rural_return_df.reset_index(drop=True) + rural_uncollected_wst = rural_uncollected_wst.merge( + rural_treatment_rate_df.drop(columns=["variable", "time"]).rename( + columns={"value": "rate"} + ) + ) + rural_uncollected_wst["value"] = (1e-3 * rural_uncollected_wst["value"]) * ( + 1 - rural_uncollected_wst["rate"] + ) + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + rural_uncollected_wst["node"], + commodity="rural_uncollected_wst", + level="final", + year=rural_uncollected_wst["year"], + time=rural_uncollected_wst["time"], + value=-rural_uncollected_wst["value"], + unit="km3/year", + ) + ) + # Add 2010 & 2015 values as historical activities to corresponding technologies + h_act = dmd_df[dmd_df["year"].isin([2010, 2015])] + + dmd_df = dmd_df[dmd_df["year"].isin(info.Y)] + results["demand"] = dmd_df + + # create a list of our conditions + conditions = [ + (h_act["commodity"] == "urban_mw"), + (h_act["commodity"] == "industry_mw"), + (h_act["commodity"] == "rural_mw"), + (h_act["commodity"] == "urban_disconnected"), + (h_act["commodity"] == "rural_disconnected"), + (h_act["commodity"] == "urban_collected_wst"), + (h_act["commodity"] == "rural_collected_wst"), + (h_act["commodity"] == "urban_uncollected_wst"), + (h_act["commodity"] == "industry_uncollected_wst"), + (h_act["commodity"] == "rural_uncollected_wst"), + ] + + # create a list of the values we want to assign for each condition + values = [ + "urban_t_d", + "industry_unconnected", + "rural_t_d", + "urban_unconnected", + "rural_unconnected", + "urban_sewerage", + "rural_sewerage", + "urban_untreated", + "industry_untreated", + "rural_untreated", + ] + # create a new column and use np.select to assign values to it using our lists as arguments + h_act["commodity"] = np.select(conditions, values) + h_act["value"] = h_act["value"].abs() + + hist_act = make_df( + "historical_activity", + node_loc=h_act["node"], + technology=h_act["commodity"], + year_act=h_act["year"], + mode="M1", + time=h_act["time"], + value=h_act["value"], + unit="km3/year", + ) + results["historical_activity"] = hist_act + + h_cap = h_act[h_act["year"] >= 2015] + h_cap = ( + h_cap.groupby(["node", "commodity", "level", "year", "unit"])["value"] + .sum() + .reset_index() + ) + + hist_cap = make_df( + "historical_new_capacity", + node_loc=h_cap["node"], + technology=h_cap["commodity"], + year_vtg=h_cap["year"], + value=h_cap["value"] / 5, + unit="km3/year", + ) + + results["historical_new_capacity"] = hist_cap + + # share constraint lower bound on urban_Water recycling + df_share_wat = make_df( + "share_commodity_lo", + shares="share_wat_recycle", + node_share="B" + df_recycling["node"], + year_act=df_recycling["year"], + value=df_recycling["value"], + unit="-", + ).pipe( + broadcast, + time=sub_time, + ) + + df_share_wat = df_share_wat[df_share_wat["year_act"].isin(info.Y)] + results["share_commodity_lo"] = df_share_wat + + # rel = make_df( + # "relation_activity", + # relation="recycle_rel", + # node_rel="B" + df_recycling["node"], + # year_rel=df_recycling["year"], + # node_loc="B" + df_recycling["node"], + # technology="urban_recycle", + # year_act=df_recycling["year"], + # mode="M1", + # value=-df_recycling["value"], + # unit="-", + # ) + + # rel = rel.append( + # make_df( + # "relation_activity", + # relation="recycle_rel", + # node_rel="B" + df_recycling["node"], + # year_rel=df_recycling["year"], + # node_loc="B" + df_recycling["node"], + # technology="urban_sewerage", + # year_act=df_recycling["year"], + # mode="M1", + # value=1, + # unit="-", + # ) + # ) + + # results["relation_activity"] = rel + + # rel_lo = make_df( + # "relation_lower", + # relation="recycle_rel", + # node_rel="B" + df_recycling["node"], + # value=0, + # unit="-", + # ).pipe(broadcast, year_rel=info.Y) + + # results["relation_lower"] = rel_lo + + # rel_up = make_df( + # "relation_upper", + # relation="recycle_rel", + # node_rel="B" + df_recycling["node"], + # value=0, + # unit="-", + # ).pipe(broadcast, year_rel=info.Y) + + # results["relation_upper"] = rel_up + + return results + + +def read_water_availability(context): + """ + Reads water availability data and bias correct it for the historical years and no climate + scenario assumptions. + + + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. Values + are data frames ready for :meth:`~.Scenario.add_par`. + """ + + # Reference to the water configuration + info = context["water build info"] + # reading sample for assiging basins + # info = context["water build info"] + + PATH = private_data_path( + "water", "delineation", f"basins_by_region_simpl_{context.regions}.csv" + ) + df_x = pd.read_csv(PATH) + + if "year" in context.time: + # path for reading basin delineation file + PATH = private_data_path( + "water", "delineation", f"basins_by_region_simpl_{context.regions}.csv" + ) + df_x = pd.read_csv(PATH) + # Adding freshwater supply constraints + # Reading data, the data is spatially and temprally aggregated from GHMs + path1 = private_data_path( + "water", + "availability", + f"qtot_5y_{context.RCP}_{context.REL}_{context.regions}.csv", + ) + # Read rcp 2.6 data + df_sw = pd.read_csv(path1) + df_sw.drop(["Unnamed: 0"], axis=1, inplace=True) + + df_sw.index = df_x["BCU_name"] + df_sw = df_sw.stack().reset_index() + df_sw.columns = ["Region", "years", "value"] + df_sw.fillna(0, inplace=True) + df_sw.reset_index(drop=True, inplace=True) + df_sw["year"] = pd.DatetimeIndex(df_sw["years"]).year + df_sw["time"] = "year" + df_sw2210 = df_sw[df_sw["year"] == 2100] + df_sw2210["year"] = 2110 + df_sw = pd.concat([df_sw, df_sw2210]) + df_sw = df_sw[df_sw["year"].isin(info.Y)] + + # Adding groundwater supply constraints + # Reading data, the data is spatially and temprally aggregated from GHMs + path1 = private_data_path( + "water", + "availability", + f"qr_5y_{context.RCP}_{context.REL}_{context.regions}.csv", + ) + + # Read groundwater data + df_gw = pd.read_csv(path1) + df_gw.drop(["Unnamed: 0"], axis=1, inplace=True) + df_gw.index = df_x["BCU_name"] + df_gw = df_gw.stack().reset_index() + df_gw.columns = ["Region", "years", "value"] + df_gw.fillna(0, inplace=True) + df_gw.reset_index(drop=True, inplace=True) + df_gw["year"] = pd.DatetimeIndex(df_gw["years"]).year + df_gw["time"] = "year" + df_gw2210 = df_gw[df_gw["year"] == 2100] + df_gw2210["year"] = 2110 + df_gw = pd.concat([df_gw, df_gw2210]) + df_gw = df_gw[df_gw["year"].isin(info.Y)] + + else: + # Adding freshwater supply constraints + # Reading data, the data is spatially and temprally aggregated from GHMs + path1 = private_data_path( + "water", + "availability", + f"qtot_5y_m_{context.RCP}_{context.REL}_{context.regions}.csv", + ) + df_sw = pd.read_csv(path1) + df_sw.drop(["Unnamed: 0"], axis=1, inplace=True) + + df_sw.index = df_x["BCU_name"] + df_sw = df_sw.stack().reset_index() + df_sw.columns = ["Region", "years", "value"] + df_sw.sort_values(["Region", "years", "value"], inplace=True) + df_sw.fillna(0, inplace=True) + df_sw.reset_index(drop=True, inplace=True) + df_sw["year"] = pd.DatetimeIndex(df_sw["years"]).year + df_sw["time"] = pd.DatetimeIndex(df_sw["years"]).month + df_sw2210 = df_sw[df_sw["year"] == 2100] + df_sw2210["year"] = 2110 + df_sw = pd.concat([df_sw, df_sw2210]) + df_sw = df_sw[df_sw["year"].isin(info.Y)] + + # Reading data, the data is spatially and temporally aggregated from GHMs + path1 = private_data_path( + "water", + "availability", + f"qr_5y_m_{context.RCP}_{context.REL}_{context.regions}.csv", + ) + df_gw = pd.read_csv(path1) + df_gw.drop(["Unnamed: 0"], axis=1, inplace=True) + + df_gw.index = df_x["BCU_name"] + df_gw = df_gw.stack().reset_index() + df_gw.columns = ["Region", "years", "value"] + df_gw.sort_values(["Region", "years", "value"], inplace=True) + df_gw.fillna(0, inplace=True) + df_gw.reset_index(drop=True, inplace=True) + df_gw["year"] = pd.DatetimeIndex(df_gw["years"]).year + df_gw["time"] = pd.DatetimeIndex(df_gw["years"]).month + df_gw2210 = df_gw[df_gw["year"] == 2100] + df_gw2210["year"] = 2110 + df_gw = pd.concat([df_gw, df_sw2210]) + df_gw = df_gw[df_gw["year"].isin(info.Y)] + + return df_sw, df_gw + + +def add_water_availability(context): + """ + Adds water supply constraints + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. Values + are data frames ready for :meth:`~.Scenario.add_par`. + """ + # Reference to the water configuration + info = context["water build info"] + + # define an empty dictionary + results = {} + # Adding freshwater supply constraints + # Reading data, the data is spatially and temprally aggregated from GHMs + + df_sw, df_gw = read_water_availability(context) + + dmd_df = make_df( + "demand", + node="B" + df_sw["Region"].astype(str), + commodity="surfacewater_basin", + level="water_avail_basin", + year=df_sw["year"], + time=df_sw["time"], + value=-df_sw["value"], + unit="km3/year", + ) + + dmd_df = dmd_df.append( + make_df( + "demand", + node="B" + df_gw["Region"].astype(str), + commodity="groundwater_basin", + level="water_avail_basin", + year=df_gw["year"], + time=df_gw["time"], + value=-df_gw["value"], + unit="km3/year", + ) + ) + + dmd_df["value"] = dmd_df["value"].apply(lambda x: x if x <= 0 else 0) + + results["demand"] = dmd_df + + # share constraint lower bound on groundwater + df_share = make_df( + "share_commodity_lo", + shares="share_low_lim_GWat", + node_share="B" + df_gw["Region"], + year_act=df_gw["year"], + time=df_gw["time"], + value=df_gw["value"] + / (df_sw["value"] + df_gw["value"]) + * 0.95, # 0.95 buffer factor to avoid numerical error + unit="-", + ) + + df_share["value"] = df_share["value"].fillna(0) + + results["share_commodity_lo"] = df_share + + return results + + +def add_irrigation_demand(context): + """ + Adds endogenous irrigation water demands from GLOBIOM emulator + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. Values + are data frames ready for :meth:`~.Scenario.add_par`. + """ + # define an empty dictionary + results = {} + + scen = context.get_scenario() + # add water for irrigation from globiom + land_out_1 = scen.par( + "land_output", {"commodity": "Water|Withdrawal|Irrigation|Cereals"} + ) + land_out_1["level"] = "irr_cereal" + land_out_2 = scen.par( + "land_output", {"commodity": "Water|Withdrawal|Irrigation|Oilcrops"} + ) + land_out_2["level"] = "irr_oilcrops" + land_out_3 = scen.par( + "land_output", {"commodity": "Water|Withdrawal|Irrigation|Sugarcrops"} + ) + land_out_3["level"] = "irr_sugarcrops" + + land_out = pd.concat([land_out_1, land_out_2, land_out_3]) + land_out["commodity"] = "freshwater" + + land_out["value"] = 1e-3 * land_out["value"] + + # take land_out edited and add as a demand in land_input + results["land_input"] = land_out + + return results diff --git a/nest/message_ix_models/model/water/data/deprecated/Figures.R b/nest/message_ix_models/model/water/data/deprecated/Figures.R new file mode 100644 index 0000000..5e49c40 --- /dev/null +++ b/nest/message_ix_models/model/water/data/deprecated/Figures.R @@ -0,0 +1,213 @@ +# Figures +# This s script produces plots fo governance and water stress data + +# after loading dat.df, water scarcity data and governance + +wsi_stat = dat.df %>% select(urban_pop.2010,urban_pop.2020,urban_pop.2030, urban_pop.2040,urban_pop.2050, + rural_pop.2020,rural_pop.2030,rural_pop.2040,rural_pop.2050,urban_pop.2060,rural_pop.2060, + urban_gdp.2020, urban_gdp.2030, urban_gdp.2040, + urban_gdp.2050,rural_gdp.2020,rural_gdp.2020,rural_gdp.2030,rural_gdp.2030, + rural_gdp.2040,rural_gdp.2040,rural_gdp.2050,urban_gdp.2060,rural_gdp.2060, + WSI.2020,WSI.2030,WSI.2040,WSI.2050,WSI.2010,WSI.2060,) %>% + mutate(urban_gdp_pc.2010 = urban_gdp.2020/urban_pop.2010) %>% + mutate(urban_gdp_pc.2020 = urban_gdp.2020/urban_pop.2020) %>% + mutate(urban_gdp_pc.2030 = urban_gdp.2020/urban_pop.2030) %>% + mutate(urban_gdp_pc.2040 = urban_gdp.2020/urban_pop.2040) %>% + mutate(urban_gdp_pc.2050 = urban_gdp.2020/urban_pop.2050) %>% + mutate(urban_gdp_pc.2060 = urban_gdp.2060/urban_pop.2060) %>% + mutate(rural_gdp_pc.2010 = rural_gdp.2020/rural_pop.2010) %>% + mutate(rural_gdp_pc.2020 = rural_gdp.2020/rural_pop.2020) %>% + mutate(rural_gdp_pc.2030 = rural_gdp.2020/rural_pop.2030) %>% + mutate(rural_gdp_pc.2040 = rural_gdp.2020/rural_pop.2040) %>% + mutate(rural_gdp_pc.2050 = rural_gdp.2020/rural_pop.2050) %>% + mutate(rural_gdp_pc.2060 = rural_gdp.2060/rural_pop.2060) %>% + select(-urban_gdp.2020,-rural_gdp.2020,-urban_gdp.2060,-rural_gdp.2060) + +wsi_stat[is.na(wsi_stat)] = 0 + +# N of people in water stress areas in 2020 +nppl = wsi_stat %>% filter(WSI.2020 %in% c('High Stress','Extreme Stress')) %>% + #million people + summarise(urban_pop.2020 = sum(urban_pop.2020)*1e-6, rural_pop.2020 = sum(rural_pop.2020)*1e-6) %>% + mutate(year = 2020) %>% + gather(key = 'urb_rur', value = 'value',1:2) %>% bind_rows( + wsi_stat %>% filter(WSI.2060 %in% c('High Stress','Extreme Stress')) %>% + #million people + summarise(urban_pop.2060 = sum(urban_pop.2060)*1e-6, rural_pop.2060 = sum(rural_pop.2060)*1e-6) %>% + mutate(year = 2060) %>% + gather(key = 'urb_rur', value = 'value',1:2) + ) %>% + mutate(urb_rur = gsub('\\..*','',urb_rur) ) + +# GDP per capita of people highly exposed +gdppc = wsi_stat %>% filter(WSI.2020 %in% c('High Stress','Extreme Stress')) %>% + #million people + summarise(urban_gdp_pc.2020 = mean(urban_pop.2020), rural_gdp_pc.2020 = mean(rural_gdp_pc.2020)) %>% + mutate(year = 2020) %>% + gather(key = 'urb_rur', value = 'value',1:2) %>% bind_rows( + wsi_stat %>% filter(WSI.2060 %in% c('High Stress','Extreme Stress')) %>% + #million people + summarise(urban_gdp_pc.2060 = mean(urban_gdp_pc.2060), rural_gdp_pc.2060 = mean(rural_gdp_pc.2060)) %>% + mutate(year = 2060) %>% + gather(key = 'urb_rur', value = 'value',1:2) + ) %>% + mutate(urb_rur = gsub('\\..*','',urb_rur) ) + +library(ggplot2) +ggplot(nppl)+ + geom_bar(aes(x = year, y = value, fill = urb_rur),stat = "identity", position = "stack")+ + theme_bw()+ggtitle('Population with high/extreme water stress')+ + xlab('Million people') + +ggplot(gdppc)+ + geom_bar(aes(x = year, y = value, fill = urb_rur),stat = "identity", position = "dodge")+ + theme_bw()+ggtitle('GDP per capita of people with high/extreme water stress')+ + xlab('Thousands $') + + +# MAps of global population-WSI-governance-GDP +dat_2050.df = dat.df %>% + group_by(country) %>% + summarise(population = sum(rural_pop.2050 + urban_pop.2050, na.rm = T), + GDP = sum(rural_gdp.2050 + urban_gdp.2050, na.rm = T), + WSI = mean(WSI.2050, na.rm = T), + gov = mean(gov.2050, na.rm = T)) %>% + mutate(GDPpc = GDP/population/1000) # 1000 $ per capita + +#### from marina #### +library(ggplot2) +library(countrycode) +library(viridis) +library(ggthemes) +library(maps) +library(rworldmap) +library(mapproj) + +# Merge the country data with maps + +map <- joinCountryData2Map(dat_2050.df, joinCode = "ISO3", nameJoinColumn = "country") +map_poly <- fortify(map) %>% + merge(map@data, by.x="id", by.y="ADMIN", all.x=T) %>% + arrange(id, order) + + +# Governance +ggplot(map_poly, aes( x = long, y = lat, group = group )) + + coord_map(projection = 'mollweide', xlim = c(-180, 180), ylim = c(-60, 75)) + # Remove antarctica + geom_polygon(aes(fill = gov)) + + scale_fill_viridis() + + labs(fill = 'Value' + ,title = 'Governance in 2050 - SSP2' # Change the title of the map + ,x = NULL + ,y = NULL) + + theme(text = element_text(family = 'Helvetica', color = 'gray40') + ,plot.title = element_text(size = 18) + ,axis.ticks = element_blank() + ,axis.text = element_blank() + ,axis.line = element_blank() + ,panel.grid = element_blank() + ,panel.background = element_rect(fill = 'white') + ,plot.background = element_rect(fill = 'white') + ,legend.position = c(.08,.26) + ,legend.background = element_blank() + ,legend.key = element_blank() + ) + + annotate(geom = 'text' + ,label = '' + ,x = 18, y = -55 + ,size = 3 + ,family = 'Helvetica' + ,color = 'gray50' + ,hjust = 'left' + ) + +# population +ggplot(map_poly, aes( x = long, y = lat, group = group )) + + coord_map(projection = 'mollweide', xlim = c(-180, 180), ylim = c(-60, 75)) + # Remove antarctica + geom_polygon(aes(fill = population/1e6)) + + scale_fill_viridis() + + labs(fill = 'Million people' + ,title = 'Population in 2050 - SSP2' # Change the title of the map + ,x = NULL + ,y = NULL) + + theme(text = element_text(family = 'Helvetica', color = 'gray40') + ,plot.title = element_text(size = 18) + ,axis.ticks = element_blank() + ,axis.text = element_blank() + ,axis.line = element_blank() + ,panel.grid = element_blank() + ,panel.background = element_rect(fill = 'white') + ,plot.background = element_rect(fill = 'white') + ,legend.position = c(.08,.26) + ,legend.background = element_blank() + ,legend.key = element_blank() + ) + + annotate(geom = 'text' + ,label = '' + ,x = 18, y = -55 + ,size = 3 + ,family = 'Helvetica' + ,color = 'gray50' + ,hjust = 'left' + ) + +# GDP per capita +ggplot(map_poly, aes( x = long, y = lat, group = group )) + + coord_map(projection = 'mollweide', xlim = c(-180, 180), ylim = c(-60, 75)) + # Remove antarctica + geom_polygon(aes(fill = GDPpc)) + + scale_fill_viridis() + + labs(fill = 'Thousands $ pc' + ,title = 'GDP per capita in 2050 - SSP2' # Change the title of the map + ,x = NULL + ,y = NULL) + + theme(text = element_text(family = 'Helvetica', color = 'gray40') + ,plot.title = element_text(size = 18) + ,axis.ticks = element_blank() + ,axis.text = element_blank() + ,axis.line = element_blank() + ,panel.grid = element_blank() + ,panel.background = element_rect(fill = 'white') + ,plot.background = element_rect(fill = 'white') + ,legend.position = c(.08,.26) + ,legend.background = element_blank() + ,legend.key = element_blank() + ) + + annotate(geom = 'text' + ,label = '' + ,x = 18, y = -55 + ,size = 3 + ,family = 'Helvetica' + ,color = 'gray50' + ,hjust = 'left' + ) + +# WSI + +ggplot(map_poly, aes( x = long, y = lat, group = group )) + + coord_map(projection = 'mollweide', xlim = c(-180, 180), ylim = c(-60, 75)) + # Remove antarctica + geom_polygon(aes(fill = WSI)) + + scale_fill_viridis() + + labs(fill = 'Value' + ,title = 'WSI in 2050 - SSP2' # Change the title of the map + ,x = NULL + ,y = NULL) + + theme(text = element_text(family = 'Helvetica', color = 'gray40') + ,plot.title = element_text(size = 18) + ,axis.ticks = element_blank() + ,axis.text = element_blank() + ,axis.line = element_blank() + ,panel.grid = element_blank() + ,panel.background = element_rect(fill = 'white') + ,plot.background = element_rect(fill = 'white') + ,legend.position = c(.08,.26) + ,legend.background = element_blank() + ,legend.key = element_blank() + ) + + annotate(geom = 'text' + ,label = '' + ,x = 18, y = -55 + ,size = 3 + ,family = 'Helvetica' + ,color = 'gray50' + ,hjust = 'left' + ) diff --git a/nest/message_ix_models/model/water/data/deprecated/add_water_infrastructure.R b/nest/message_ix_models/model/water/data/deprecated/add_water_infrastructure.R new file mode 100644 index 0000000..797c8e1 --- /dev/null +++ b/nest/message_ix_models/model/water/data/deprecated/add_water_infrastructure.R @@ -0,0 +1,3229 @@ +#Creates 4 new IAM scenarios including a representation of +# Solves the models on the local machine +# Uploads the solutions to the ix DB + +# NOTE: Requires core model configured with full commodity balance + +rm(list=ls()) +graphics.off() + +options(java.parameters = "-Xmx16g") + +library("rixmp") +library("rmessageix") + +require(rgdal) +require(raster) +require(rgeos) +require(countrycode) +require(RCurl) +require(xlsx) +require(tidyr) +require(dplyr) + +## Set path ixmp folder in message_ix working copy +message_ix_path = Sys.getenv("MESSAGE_IX_PATH") + +## Set path data folder in message_ix working copy +data_path = Sys.getenv("IIASA_DATA_PATH") + +# Country region mapping key +country_region_map_key.df = data.frame( read.csv( paste( data_path, 'Water/water_demands/country_region_map_key.csv', sep = '/' ), stringsAsFactors=FALSE) ) + +# SSP scenario - currently only configured for SSP2 +ssss = 'SSP2' + +# Rounding parameter for decimals +rnd = 6 + +# list of model-scenario combinations +model_scenarios = data.frame( model = c( "MESSAGE-GLOBIOM CD-LINKS R2.3.1", "MESSAGE-GLOBIOM CD-LINKS R2.3.1" , "MESSAGE-GLOBIOM CD-LINKS R2.3.1" , "MESSAGE-GLOBIOM CD-LINKS R2.3.1" ,"MESSAGE-GLOBIOM CD-LINKS R2.3.1" ), + scenario = c( "baseline", "baseline", "baseline", "baseline", "baseline" ), + newscenarioName = c( "baseline_globiom_base_watbaseline", "baseline_globiom_SDG_sdg6eff", "baseline_globiom_SDG_sdg6supp", "baseline_globiom_SDG_sdg6supp2", "baseline_globiom_SDG_sdg6led" ) + ) + +# launch the IX modeling platform using the default central ORCALE database +ix_platform = ixmp.Platform( dbprops = 'ixmp.properties' ) + +for( sc in 1:nrow(model_scenarios) ) + { + + gc() + + # existing model and scenario names to start with + modelName = as.character( unlist( model_scenarios$model[sc] ) ) + scenarioName = as.character( unlist( model_scenarios$scenario[sc] ) ) + + # new model and scenario name for ix platform + newmodelName = as.character( unlist( model_scenarios$model[sc] ) ) + newscenarioName = as.character( unlist( model_scenarios$newscenarioName[sc] ) ) + + # Comment + comment = paste("water infrastructure included", sep = '') + + # check if basis for scenarip exists + scen_exists = tryCatch( ix_platform$Scenario( model=modelName, scen=paste(scenarioName,'watbasis',sep='_') ), error = function(e){} ) + if( is.null(scen_exists) ) + { + + print('no basis - creating from existing scenario') + + ixDStemp = ix_platform$Scenario( model=modelName, scen=scenarioName ) + + # clone data structure with new scenario name + ixDS0 = ixDStemp$clone( new_model = modelName, new_scen = paste(scenarioName,'watbasis',sep='_'), annotation = comment, keep_sol = FALSE ) + + # check out and remove original datastructure + ixDS0$check_out() + + # Remove some of the old water implementation - this takes about an hour + chk = tryCatch( ixDS0$par('bound_activity_up', list(technology = 'extract__saline_supply')), error = function(e){} ) + if( !is.null(chk) ){ ret = lapply( 1:nrow(chk), function(r){ ixDS0$remove_par( 'bound_activity_up', paste( as.character( as.matrix(unlist(chk[r, 1:(which(names(chk)=='value')-1)])) ), collapse = '.' ) ) } ) } + chk = tryCatch( ixDS0$par('input', list(commodity = 'saline_supply')), error = function(e){} ) + if( !is.null(chk) ){ ret = lapply( 1:nrow(chk), function(r){ ixDS0$remove_par( 'input', paste( as.character( as.matrix(unlist(chk[r, 1:(which(names(chk)=='value')-1)])) ), collapse = '.' ) ) } ) } + chk = tryCatch( ixDS0$par('emission_factor', list(emission = c('fresh_wastewater','saline_wastewater'))), error = function(e){} ) + if( !is.null(chk) ){ ret = lapply( 1:nrow(chk), function(r){ ixDS0$remove_par( 'emission_factor', paste( as.character( as.matrix(unlist(chk[r, 1:(which(names(chk)=='value')-1)])) ), collapse = '.' ) ) } ) } + + ixDS0$commit(paste(comment,'basis for water policies',sep=' ')) + ixDS0$set_as_default() + + rm(ixDStemp) + rm(ixDS0) + + } + + ixDSoriginal = ix_platform$Scenario( model=modelName, scen=paste(scenarioName,'watbasis',sep='_') ) + + print('basis loaded successfully') + + # Branching points for energy efficiency and cost of water technologies + parameter_levels = 'mid' + if( model_scenarios$newscenarioName[sc] %in% c("baseline_globiom_SDG_sdg6supp","baseline_globiom_SDG_sdg6supp2","baseline_globiom_SDG_sdg6eff","baseline_globiom_SDG_sdg6led") ){ water_policies = 'SDG6' }else{ water_policies = 'NoWatPol' } + if( model_scenarios$newscenarioName[sc] %in% c("baseline_globiom_SDG_sdg6eff","baseline_globiom_SDG_sdg6led") ){ parameter_levels2 = 'high' }else{ parameter_levels2 = 'mid' } + + #------------------------------------------------------------------------------- + # Load the MESSAGE-GLOBIOM SSP baseline scenario + #------------------------------------------------------------------------------- + + # model and scenario names for database + comment = paste( "Water infrastructure and policies", newscenarioName, sep = '' ) + + # clone data structure with new scenario name + ixDS = ixDSoriginal$clone( new_model = modelName, new_scen = newscenarioName, annotation = comment, keep_sol = FALSE ) + + # check out + ixDS$check_out() + + #------------------------------------------------------------------------------------------------------- + # Compare the data in the database to the data in the csv files to determine the cooling technologies to include + #------------------------------------------------------------------------------------------------------- + + # Import raw cooling water data: + # Input data file 1: CSV containing the water use coefficients (incl. parasitic electricity) for each MESSAGE technology + # Source for power plant cooling water use: Meldrum et al. 2013 + # Source for hydropower water use: Taken as an average across Grubert et al 2016 and Scherer and Pfister 2016. + # Parasitic electricity requirements estimated from Loew et al. 2016. + # All other water coefficients come from Fricko et al 2016. + # To compile the data, a complete list of technologies from MESSAGE was initially output to CSV. + # The water parameters were then checked and entered manually based on data reported in the sources above. + tech_water_performance_ssp_msg_raw.df = data.frame(read.csv(paste(data_path,'water/water_parameters_message_ix','tech_water_performance_ssp_msg.csv',sep='/'),stringsAsFactors=FALSE)) + + # Input data file 2: CSV containing the regional shares of each cooling technology and the investment costs + # The regional shares are estimated using the dataset from Raptis and Pfister 2016 and country boundaries from the GADM dataset + # Each plant type in the Raptis and Pfister dataset is mapped to the message technologies. The fraction is calculated using + # the total capacity identified for each cooling technology in each country. These results are aggregated into the message 11 regions. + # The costs are estimated from Loew et al. 2016. + cooltech_cost_and_shares_ssp_msg_raw.df = data.frame(read.csv(paste(data_path,'water/water_parameters_message_ix','cooltech_cost_and_shares_ssp_msg.csv',sep='/'),stringsAsFactors=FALSE)) + + # Define alternate id for cooling technologies from csv file + cooltech_cost_and_shares_ssp_msg_raw.df$alt_id = apply( cbind(cooltech_cost_and_shares_ssp_msg_raw.df[,1:2]), 1, paste, collapse='__' ) + + # Get the names of the technologies in the MESSAGE IAM from the database + technologies_in_message = ixDS$set( 'technology' ) + + # Get the name of the regions + region = as.character( ixDS$set('cat_node')$node ) + + # Get the name of the commodities + commodity = ixDS$set( 'commodity' ) + + # Technology categories + cat_tec = ixDS$set('cat_tec') + + # Whether or not to use initial shares from Davies et al 2013 - alternatively uses shares estimated with the dataset from Raptis et al 2016. + use_davies_shares = FALSE + + # Fraction of desal demand + desal_fraction = 1 + + # Freshwater extraction average electricity input + fw_electricity_input = round( data.frame( low = 0.1 * ( 1e3 / (24 * 365) ) , mid = 0.2 * ( 1e3 / (24 * 365) ), high = 0.3 * ( 1e3 / (24 * 365) ) ), digits = 4 ) + + # Model years + model_years = ixDS$set('year') + dmd_yrs = model_years[ which( model_years >= min(as.numeric(as.character(ixDS$par('demand',list(node = 'R11_NAM'))[,'year']))) & model_years <= max(as.numeric(as.character(ixDS$par('demand',list(node = 'R11_NAM'))[,'year']))) ) ] + firstmodelyear = as.numeric( as.character( ixDS$set('cat_year')[which(as.character(unlist(ixDS$set('cat_year')[,'type_year']))=='firstmodelyear'),'year'] ) ) + lastmodelyear = as.numeric( as.character( ixDS$set('cat_year')[which(as.character(unlist(ixDS$set('cat_year')[,'type_year']))=='lastmodelyear'),'year'] ) ) + + # Model timeslices + model_time = ixDS$set('time') + + # Which technologies in MESSAGE are also included in csv files? + message_technologies_with_water_data = as.character(tech_water_performance_ssp_msg_raw.df$technology_name)[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) %in% technologies_in_message )] + message_technologies_without_water_data = as.character(tech_water_performance_ssp_msg_raw.df$technology_name)[ which( !(as.character(tech_water_performance_ssp_msg_raw.df$technology_name) %in% technologies_in_message ) )] + message_technologies_with_water_data_alt = as.character(technologies_in_message)[ which( technologies_in_message %in% as.character(tech_water_performance_ssp_msg_raw.df$technology_name) )] + message_technologies_without_water_data_alt = as.character(technologies_in_message)[ which( !(technologies_in_message %in% as.character(tech_water_performance_ssp_msg_raw.df$technology_name) )) ] + + # Define a common mode using the existing DB settings + mode_common = ixDS$set('mode')[1] # Common mode name from set list + + # Define hydropower technologies + hydro_techs = c('hydro_hc','hydro_lc') + + #------------------------------------------------------------------- + # Add LED demands from Gruebler et al. 2018 - only if LED scenario + #------------------------------------------------------------------- + + if( as.character( unlist( model_scenarios$newscenarioName[sc] ) ) == "baseline_globiom_SDG_sdg6led" ) + { + + # read demands from xlsx file + + path.data = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/demands_inp_files', sep = '' ) + setwd(path.data) + data.demand <- read.xlsx("MESSAGE_demand_v3_20170913.xlsx", sheetName = "data") + + names(data.demand) = c("MODEL", "SCENARIO", "REGION", "VARIABLE", "UNIT", "2000", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + demand.mapping = data.frame(VARIABLE = c("Demand|Feedstocks", "Demand|Industrial Specific", "Demand|Industrial Thermal", "Demand|Non-Commercial", "Demand|Residential and Commercial Specific", "Demand|Residential and Commercial Thermal", "Demand|Transportation", "Demand|Shipping"), + DEMAND = c("i_feed","i_spec", "i_therm","non-comm", "rc_spec", "rc_therm", "transport", "shipping")) + + + # turn demand table into long table format (relational database like) and convert from EJ to GWa as used in MESSAGE + data.table = inner_join(data.demand, demand.mapping) %>% select(one_of("DEMAND", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 3:15) %>% mutate(VALUE = VALUE * 1000 / (8.76*3.6)) + + # nodes, periods and demand commodities to add to the model + node_list = levels(data.table$REGION) + node_list = node_list[node_list != "R11_GLB"] ## remove the "R11_GLB" region from the list, since this is only for the shipping demand commodity and we want to treat this separately in the code below + ##period_list = seq(2020, 2110, 10) ## use this command if we want to change model parameters from 2020 onward + period_list = seq(2030, 2110, 10) ## use this command if we want to change model parameters from 2030 onward (i.e., if a slice was used up to 2020 in the scenario that this one is cloned from) + commodity_list = levels(data.table$DEMAND) + commodity_list = commodity_list[commodity_list != "shipping"] ## remove the "shipping" commodity from the list, since this is only for the "R11_GLB" region and we want to treat this separately in the code below + + #------------------------------------------------------------------------------- + + # read technology investment costs from xlsx file + path.data.invcosts = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/technology_inp_files', sep='' ) + setwd(path.data.invcosts) + + data.invcosts <- read.xlsx("granular-techs_cost_comparison_20170831_revAG_SDS.XLSX", sheetName = "NewCosts_fixed") + + names(data.invcosts) = c("TECHNOLOGY", "REGION", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + # turn demand table into long table format (relational database like) + data.table.invcosts = data.invcosts %>% select(one_of("TECHNOLOGY", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 3:14) + + # No need to update the nodes or periods because they are defined already above. However, the technology list is something new that needs to be read in here. + ##node_list = levels(data.invcosts$REGION) + ##period_list = seq(2030, 2110, 10) + technology_list = levels(data.invcosts$TECHNOLOGY) + + #------------------------------------------------------------------------------- + + # read technology fixed O&M costs from xlsx file + path.data.fomcosts = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/technology_inp_files', sep = '' ) + setwd(path.data.fomcosts) + + data.fomcosts <- read.xlsx("granular-techs_cost_comparison_20170831_revAG_SDS.XLSX", sheetName = "NewFOMCosts_fixed") + + names(data.fomcosts) = c("TECHNOLOGY", "REGION", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + # turn demand table into long table format (relational database like) + data.table.fomcosts = data.fomcosts %>% select(one_of("TECHNOLOGY", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 3:14) + + # No need to update the nodes or periods because they are defined already above. However, the technology list is something new that needs to be read in here. + ##node_list = levels(data.fomcosts$REGION) + ##period_list = seq(2030, 2110, 10) + technology_list6 = levels(data.fomcosts$TECHNOLOGY) + + #------------------------------------------------------------------------------- + + # read technology variable O&M costs from xlsx file + path.data.vomcosts = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/technology_inp_files', sep = '' ) + setwd(path.data.vomcosts) + + data.vomcosts <- read.xlsx("granular-techs_cost_comparison_20170831_revAG_SDS.XLSX", sheetName = "NewVOMCosts_fixed") + + names(data.vomcosts) = c("TECHNOLOGY", "REGION", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + # turn demand table into long table format (relational database like) + data.table.vomcosts = data.vomcosts %>% select(one_of("TECHNOLOGY", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 3:14) + + # No need to update the nodes or periods because they are defined already above. However, the technology list is something new that needs to be read in here. + ##node_list = levels(data.vomcosts$REGION) + ##period_list = seq(2030, 2110, 10) + technology_list7 = levels(data.vomcosts$TECHNOLOGY) + + #------------------------------------------------------------------------------- + + # read solar and wind intermittency assumptions from xlsx file + path.data.steps = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/technology_inp_files', sep='' ) + setwd(path.data.steps) + + data.steps <- read.xlsx("solar_wind_intermittency_20170831.XLSX", sheetName = "steps_NEW") + + names(data.steps) = c("TECHNOLOGY", "RELATION", "REGION", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + # turn demand table into long table format (relational database like) + data.table.steps = data.steps %>% select(one_of("TECHNOLOGY", "RELATION", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 4:15) + + # No need to update the nodes or periods because they are defined already above. However, the technology list is something new that needs to be read in here. + ##node_list = levels(data.steps$REGION) + ##period_list = seq(2030, 2110, 10) + technology_list2 = levels(data.steps$TECHNOLOGY) + relation_list2 = levels(data.steps$RELATION) + + #------------------------------------------------------------------------------- + + # read solar and wind intermittency assumptions from xlsx file + path.data.oper = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/technology_inp_files', sep = '' ) + setwd(path.data.oper) + + data.oper <- read.xlsx("solar_wind_intermittency_20170831.XLSX", sheetName = "oper_NEW") + + names(data.oper) = c("TECHNOLOGY", "RELATION", "REGION", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + # turn demand table into long table format (relational database like) + data.table.oper = data.oper %>% select(one_of("TECHNOLOGY", "RELATION", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 4:15) + + # No need to update the nodes or periods because they are defined already above. However, the technology list is something new that needs to be read in here. + ##node_list = levels(data.oper$REGION) + ##period_list = seq(2030, 2110, 10) + technology_list3 = levels(data.oper$TECHNOLOGY) + relation_list3 = levels(data.oper$RELATION) + + #------------------------------------------------------------------------------- + + # read solar and wind intermittency assumptions from xlsx file + path.data.resm = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/technology_inp_files', sep = '' ) + setwd(path.data.resm) + + data.resm <- read.xlsx("solar_wind_intermittency_20170831.XLSX", sheetName = "resm_NEW") + + names(data.resm) = c("TECHNOLOGY", "RELATION", "REGION", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + # turn demand table into long table format (relational database like) + data.table.resm = data.resm %>% select(one_of("TECHNOLOGY", "RELATION", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 4:15) + + # No need to update the nodes or periods because they are defined already above. However, the technology list is something new that needs to be read in here. + ##node_list = levels(data.resm$REGION) + ##period_list = seq(2030, 2110, 10) + technology_list4 = levels(data.resm$TECHNOLOGY) + relation_list4 = levels(data.resm$RELATION) + + #------------------------------------------------------------------------------- + + # read useful level fuel potential contribution assumptions from xlsx file + path.data.uefuel = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/technology_inp_files', sep = '' ) + setwd(path.data.uefuel) + + data.uefuel <- read.xlsx("useful_level_fuel_potential_contribution_20170907.XLSX", sheetName = "UE_constraints_NEW") + + names(data.uefuel) = c("TECHNOLOGY", "RELATION", "REGION", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + # turn demand table into long table format (relational database like) + data.table.uefuel = data.uefuel %>% select(one_of("TECHNOLOGY", "RELATION", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 4:15) + + # No need to update the nodes or periods because they are defined already above. However, the technology list is something new that needs to be read in here. + ##node_list = levels(data.uefuel$REGION) + ##period_list = seq(2030, 2110, 10) + technology_list5 = levels(data.uefuel$TECHNOLOGY) + relation_list5 = levels(data.uefuel$RELATION) + + #------------------------------------------------------------------------------- + + # insert new demands into the model - 7 standard demands in 11 standard regions + for (node in node_list) { + for (commodity in commodity_list) { + for (year in period_list) { + ixDS$add_par("demand",paste(node,commodity,"useful",as.character(year),"year",sep='.'),filter(data.table, DEMAND == commodity & REGION == node & YEAR == as.character(year))$VALUE,"GWa") + } + } + } + + + # insert new demands into the model - shipping demands in GLB region only + for (year in period_list) { + ixDS$add_par("demand",paste("R11_GLB","shipping","useful",as.character(year),"year",sep='.'),filter(data.table, DEMAND == "shipping" & REGION == "R11_GLB" & YEAR == as.character(year))$VALUE,"GWa") + } + + + # insert emission constraint leading to different carbon budgets (2011-2100) + # + # But actually in MESSAGEix, the budget is defined from the starting year up to 2110, and in terms of annual average emissions over that timeframe + # 400 GtCO2 (1.5 deg C): 1800 MtCeq is for 2011-2110 + # 400 GtCO2 (1.5 deg C): 433 MtCeq is for 2021-2110 + # + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 1150, "tC") + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 450, "tC") ## This budget (450 MtC; for 2021-2110) produced an infeasible solution on 2017-08-09 using Simon's initial demands from 2017-08-06. + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 1800, "tC") ## This budget (for 2021-2110) was run in scenario '2C_NPi2020_noBECCS_V1' to test that a more relaxed budget would be feasible in the current set-up (low demands from Simon on 2017-08-06 and also no BECCS). + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 1200, "tC") ## This budget (for 2021-2110) was run in scenario 'b2C_NPi2020_noBECCS_V1' to test that a more relaxed budget would be feasible in the current set-up (low demands from Simon on 2017-08-06 and also no BECCS). + ##ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 800, "tC") ## Budget of 800 MtC annual average per year (for 2021-2110) was found to be too tight in an earlier run of scenario 'b2C_NPi2020_noBECCS_V2'. Infeasible solution; model did not solve. + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 1000, "tC") ## This budget (for 2021-2110) was run in scenarios 'b2C_NPi2020_noBECCS_V2' and similar up to 'V6' to get something around 1.5C. (The same budget was attempted for the initial V7 run, but the removal of Fossil CCS made it infeasible.) Median temperature is around 1.57C in 2050 and 1.31C in 2100. Median radiative forcing (total) is 1.81 W/m2 in 2100. (low demands from Simon on 2017-08-06 and also no BECCS). + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 1200, "tC") ## This budget (for 2021-2110) was run in scenarios 'b2C_NPi2020_noBECCS_V7' to get something around 1.5C. (A budget of 1000 was initially attempted for V7, but the lack of Fossil CCS made it infeasible.) Median temperature is around 1.60C in 2050 and 1.34 in 2100. Median radiative forcing (total) is 1.89 W/m2 in 2100. (low demands from Simon on 2017-08-31 and also no BECCS and no Fossil CCS). + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 1400, "tC") ## This budget (for 2021-2110) was run in scenarios 'b2C_NPi2020_noBECCS_V7a' to 'V8' to get something around 1.5C. (A budget of 1200 was initially used for V7, but the carbon prices were ridiculously higher.) Median temperature is around 1.61C in 2050 and 1.37 in 2100. Median radiative forcing (total) is 1.94 W/m2 in 2100. (low demands from Simon on 2017-09-08 and also no BECCS and no Fossil CCS). + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 2500, "tC") ## This budget (for 2021-2110) was run in scenarios '2C_NPi2020_noBECCS_V2' to try and get something nearer to 2C by end of century. Median temperature is around 1.66C in 2050 and 1.53C in 2100. Median radiative forcing (total) is 2.22 W/m2 in 2100. (low demands from Simon on 2017-08-06 and also no BECCS). + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 3500, "tC") ## This budget (for 2021-2110) was run in scenarios '2C_NPi2020_noBECCS_V3' to try and get something nearer to 2C by end of century. Median temperature is around 1.71C in 2050 and 1.67C in 2100. Median radiative forcing (total) is 2.48 W/m2 in 2100. (low demands from Simon on 2017-08-06 and also no BECCS). + #ixDS$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 4000, "tC") ## This budget (for 2021-2110) was run in scenarios '2C_NPi2020_noBECCS_V4' to try and get something nearer to 2C by end of century. Median temperature is around 1.73C in 2050, peaking at 1.79C in 2070/2080, and then coming back down to 1.74C in 2100. Median radiative forcing (total) is 2.6 W/m2 in 2100. (low demands from Simon on 2017-08-06 and also no BECCS). + + # exclude BECCS by constrainig activity of 'bco2_tr_dis' technology to 0 in all years + for (node in node_list) { + for (year in period_list) { + ixDS$add_par("bound_activity_up",paste(node, "bco2_tr_dis", as.character(year), "M1", "year", sep='.'), 0, "GWa") + } + } + + # exclude Fossil CCS by constrainig activity of 'co2_tr_dis' technology to 0 in all years + for (node in node_list) { + for (year in period_list) { + ixDS$add_par("bound_activity_up",paste(node, "co2_tr_dis", as.character(year), "M1", "year", sep='.'), 0, "GWa") + } + } + + # adjust limit to electrify transport to XX% of useful energy (negative number, i.e. -0.9 refers to 90%) + for (node in node_list) { + for (year in period_list) { + #ixDS$add_par("relation_activity",paste("UE_transport_electric", node, as.character(year), node, "useful_transport", as.character(year), "M1", sep='.'), -0.9, "-") + ixDS$add_par("relation_activity",paste("UE_transport_electric", node, as.character(year), node, "useful_transport", as.character(year), "M1", sep='.'), -0.8, "-") + } + } + + # adjust limit for hydrogen in transport to 100% of useful energy (negative number, i.e. -1.0 refers to 100%) + for (node in node_list) { + for (year in period_list) { + ixDS$add_par("relation_activity",paste("UE_transport_fc", node, as.character(year), node, "useful_transport", as.character(year), "M1", sep='.'), -1.0, "-") + } + } + + # adjust efficiency of the hydrogen transport technology to make it more efficient; a value of 0.45 means that the hydrogen transport technology is 2.22 times more efficient than the liquid fuel combustion technology (0.45 = 1/2.22) + # but only change parameters for vintage-activity year combinations that are currently specified for this technology in the model + technology = "h2_fc_trp" + for (node in node_list) { + for (year_vtg in period_list) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year_vtg)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year_vtg), sep='.')) + print('Error: technology does not exist in this region for this vintage year') + } else { + years_tec_active = ixDS$years_active(node, technology, year_vtg) + for (year_act in years_tec_active) { + #print(ixDS$add_par("input",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", node, "lh2", "final", "year", "year", sep='.'), 0.45, "GWa")) + ixDS$add_par("input",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", node, "lh2", "final", "year", "year", sep='.'), 0.45, "GWa") + } + } + } + } + + # # adjust investment cost of the hydrogen transport technology to make it less expensive; 'h2_fc_trp' is the only end-use transport technology with an explicit 'inv_cost' on it; all others have an indirect cost that comes in through the 'weight_trp' relation + # # but only change parameters for vintage years that are currently specified for this technology in the model + # technology = "h2_fc_trp" + # for (node in node_list) { + # for (year_vtg in period_list) { + # if (any(class(tryCatch((ixDS$years_active(node, technology, year_vtg)), error = function(e) e)) == "error")) { + # print(paste(node, technology, as.character(year_vtg), sep='.')) + # print('Error: technology does not exist in this region for this vintage year') + # } else { + # ixDS$add_par("inv_cost",paste(node, technology, as.character(year_vtg), sep='.'), 1.0, "USD/GWa") # specify units in 'USD/GWa', even though they are actually $/kW within the model + # } + # } + # } + + # adjust investment costs of a set of technologies that are defined in another XLS file + # but only change parameters for vintage years that are currently specified for this technology in the model + #technology = "h2_fc_trp" + for (node in node_list) { + for (year_vtg in period_list) { + for (technology in technology_list) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year_vtg)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year_vtg), sep='.')) + print('Error: technology does not exist in this region for this vintage year') + } else { + ixDS$add_par("inv_cost",paste(node, technology, as.character(year_vtg), sep='.'), (filter(data.table.invcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_vtg))$VALUE), "USD/GWa") # specify units in 'USD/GWa', even though they are actually $/kW within the model + #print(paste(node, technology, as.character(year_vtg), sep='.'),(filter(data.table.invcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_vtg))$VALUE), digits=4, quote = TRUE) + } + } + } + } + + # adjust fixed O&M costs of a set of technologies that are defined in another XLS file + # but only change parameters for vintage years that are currently specified for this technology in the model + for (node in node_list) { + for (year_vtg in period_list) { + for (technology in technology_list6) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year_vtg)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year_vtg), sep='.')) + print('Error: technology does not exist in this region for this vintage-activity year combination') + } else { + #ixDS$add_par("fix_cost",paste(node, technology, as.character(year_vtg), as.character(year_act), sep='.'), (filter(data.table.fomcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_act))$VALUE), "USD/GWa") # specify units in 'USD/GWa', even though they are actually $/kWyr/yr within the model + years_tec_active = ixDS$years_active(node, technology, year_vtg) + for (year_act in years_tec_active) { + #print(ixDS$add_par("fix_cost",paste(node, technology, as.character(year_vtg), as.character(year_act), sep='.'), (filter(data.table.fomcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_act))$VALUE), "USD/GWa")) + ixDS$add_par("fix_cost",paste(node, technology, as.character(year_vtg), as.character(year_act), sep='.'), (filter(data.table.fomcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_act))$VALUE), "USD/GWa") + } + } + } + } + } + + # adjust variable O&M costs of a set of technologies that are defined in another XLS file + # but only change parameters for vintage years that are currently specified for this technology in the model + for (node in node_list) { + for (year_vtg in period_list) { + for (technology in technology_list7) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year_vtg)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year_vtg), sep='.')) + print('Error: technology does not exist in this region for this vintage-activity year combination') + } else { + #ixDS$add_par("var_cost",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", "year", sep='.'), (filter(data.table.fomcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_act))$VALUE), "USD/GWa") # specify units in 'USD/GWa', even though they are actually $/kWyr/yr within the model + years_tec_active = ixDS$years_active(node, technology, year_vtg) + for (year_act in years_tec_active) { + #print(ixDS$add_par("var_cost",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", "year", sep='.'), (filter(data.table.fomcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_act))$VALUE), "USD/GWa")) + ixDS$add_par("var_cost",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", "year", sep='.'), (filter(data.table.fomcosts, REGION == node & TECHNOLOGY == technology & YEAR == as.character(year_act))$VALUE), "USD/GWa") + } + } + } + } + } + + # adjust wind and solar PV resource steps (contribution to total electricity generation) for a set of technologies that are defined in another XLS file + # these changes allow for greater contribution of intermittent solar and wind to total electricity generation + for (node in node_list) { + for (year_act in period_list) { + for (relation in relation_list2) { + for (technology in technology_list2) { + ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.steps, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-") + #print(paste(node, technology, relation, as.character(year_act), sep='.'),(filter(data.table.steps, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE)) + + # if (any(class(tryCatch((ixDS$years_active(node, technology, year_act)), error = function(e) e)) == "error")) { + # print(paste(node, technology, as.character(year_act), sep='.')) + # print('Error: technology does not exist in this region for this activity year') + # } else { + # ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.steps, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-") + # #print(paste(node, technology, relation, as.character(year_act), sep='.'),(filter(data.table.steps, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE)) + # } + + } + } + } + } + + # adjust wind and solar PV operating reserve requirements (amount of flexible generation that needs to be run for every unit of intermittent solar and wind => variable renewables <0, non-dispatchable thermal 0, flexible >0); done for a set of technologies that are defined in another XLS file + # also adjust the contribution of electric transport technologies to the operating reserves, increasing the amount they can contribute (vehicle-to-grid) + # these changes reduce the effective cost of building and running intermittent solar and wind plants, since the amount of back-up capacity built is less than before + for (node in node_list) { + for (year_act in period_list) { + for (relation in relation_list3) { + for (technology in technology_list3) { + ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.oper, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-") + #print(paste(node, technology, relation, as.character(year_act), sep='.'),(filter(data.table.oper, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE)) + + # if (any(class(tryCatch((ixDS$years_active(node, technology, year_act)), error = function(e) e)) == "error")) { + # print(paste(node, technology, as.character(year_act), sep='.')) + # print('Error: technology does not exist in this region for this activity year') + # } else { + # #ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.oper, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-") + # print(paste(node, technology, relation, as.character(year_act), sep='.'),(filter(data.table.oper, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE)) + # } + + } + } + } + } + + # adjust wind and solar PV reserve margin requirements (amount of firm capacity that needs to be run to meet peak load and contingencies; intermittent solar and wind do not contribute a full 100% to the reserve margin); done for a set of technologies that are defined in another XLS file + # these changes allow for greater contribution of intermittent solar and wind to total electricity generation + for (node in node_list) { + for (year_act in period_list) { + for (relation in relation_list4) { + for (technology in technology_list4) { + ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.resm, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-") + #print(paste(node, technology, relation, as.character(year_act), sep='.'),(filter(data.table.resm, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE)) + } + } + } + } + + # adjust limits to potential fuel-specific contributions at useful energy level (in each end-use sector separately); done for a set of technologies and relations that are defined in another XLS file + for (node in node_list) { + for (year_act in period_list) { + for (relation in relation_list5) { + for (technology in technology_list5) { + #ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.uefuel, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-") + #print(paste(node, technology, relation, as.character(year_act), sep='.'),(filter(data.table.uefuel, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE)) + #print(paste(node, technology, relation, as.character(year_act), sep='.')) + + if (any(class(tryCatch(ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.uefuel, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-"), error = function(e) e)) == "error")) { + #print(paste(node, technology, relation, as.character(year_act), sep='.')) + #print('Error: technology either does not exist in this region for this activity year or it does not write into this relation') + } else { + ixDS$add_par("relation_activity",paste(relation, node, as.character(year_act), node, technology, as.character(year_act), "M1", sep='.'), (filter(data.table.uefuel, REGION == node & TECHNOLOGY == technology & RELATION == relation & YEAR == as.character(year_act))$VALUE), "-") + } + + } + } + } + } + + ### Remove any "bound_activity_up" values that might exist for the technology 'h2_fc_trp'; it seems that some are floating around in the base CD-LINKS scenario that we use as a starting point for our work. + # To get this working properly and without errors, I add an upper bound on the technology in all regions and years, and then remove it immediately afterwards (in all regions and years) + technology = "h2_fc_trp" + for (node in node_list) { + for (year in period_list) { + #print(paste(node, technology, as.character(year), "M1", "year", sep='.')) + ixDS$add_par("bound_activity_up",paste(node, technology, as.character(year), "M1", "year", sep='.'), 0, "GWa") + ixDS$remove_par("bound_activity_up",paste(node, technology, as.character(year), "M1", "year", sep='.')) + } + } + ### This block of code should have worked in the for loop above for removing parameters, but I couldn't get it working. + # if (any(class(tryCatch((ixDS$remove_par("bound_activity_up",paste(node, technology, as.character(year), "M1", "year", sep='.'))), error = function(e) print('...'))) == "error")) { + # print(paste(node, technology, as.character(year), "M1", "year", sep='.')) + # print('Error: technology does not have an upper bound in this region for this vintage year, thus none added') + # } else { + # ixDS$remove_par("bound_activity_up",paste(node, technology, as.character(year), "M1", "year", sep='.')) + # } + + ### Some commands for testing. Can be deleted. + #ixDS$remove_par("bound_activity_up",paste(node, "h2_fc_trp", as.character(year), "M1", "year", sep='.')) + #ixDS$remove_par("bound_activity_up",paste("R11_AFR", "h2_fc_trp", as.character(2060), "M1", "year", sep='.')) + #any(class(tryCatch((ixDS$remove_par("bound_activity_up",paste("R11_AFR", technology, 2030, "M1", "year", sep='.'))), error = function(e) print('...'))) == "error") + + # Exclude ethanol fuel cell transport technology by constraining activity to 0 in all years + # Need to do this even though the Web UI does not show that there are upper bounds on this technology in any years. + for (node in node_list) { + for (year in period_list) { + ixDS$add_par("bound_activity_up",paste(node, "eth_fc_trp", as.character(year), "M1", "year", sep='.'), 0, "GWa") + } + } + + # Exclude methanol fuel cell transport technology by constraining activity to 0 in all years + # Need to do this even though the Web UI does not show that there are upper bounds on this technology in any years. + for (node in node_list) { + for (year in period_list) { + ixDS$add_par("bound_activity_up",paste(node, "meth_fc_trp", as.character(year), "M1", "year", sep='.'), 0, "GWa") + } + } + + + # Increase the initial starting point value for activity growth bounds on the electric transport technology + years_subset = c(2030) + for (node in node_list) { + for (year in years_subset) { + ixDS$add_par("initial_activity_up",paste(node, "elec_trp", as.character(year), "year", sep='.'), 90, "GWa") + } + } + + # Increase the initial starting point value for activity growth bounds on the hydrogen fuel cell technology in transport + years_subset = c(2030, 2040, 2050) + technology = "h2_fc_trp" + for (node in node_list) { + for (year in years_subset) { + #ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + + #if (any(class(tryCatch(ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa"), error = function(e) e)) == "error")) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year), sep='.')) + print('Error: technology does not exist in this region for this activity year') + } else { + ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + } + + } + } + + # Increase the initial starting point value for activity growth bounds on the hydrogen fuel cell technology in industry + years_subset = c(2030, 2040, 2050) + technology = "h2_fc_I" + for (node in node_list) { + for (year in years_subset) { + #ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + + #if (any(class(tryCatch(ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa"), error = function(e) e)) == "error")) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year), sep='.')) + print('Error: technology does not exist in this region for this activity year') + } else { + ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + } + + } + } + + # Increase the initial starting point value for activity growth bounds on the hydrogen fuel cell technology in industry + years_subset = c(2030, 2040, 2050) + technology = "h2_fc_RC" + for (node in node_list) { + for (year in years_subset) { + #ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + + #if (any(class(tryCatch(ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa"), error = function(e) e)) == "error")) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year), sep='.')) + print('Error: technology does not exist in this region for this activity year') + } else { + ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + } + + } + } + + # adjust efficiency of the hydrogen fuel cell co-generation technology (electricity + heat) in the RES-COM sector (satisfying both RC-specific and RC-thermal useful demands), in order to make it more efficient; a value of 2.1 means the technology has a combined efficiency (electricity + heat) of 0.86 (2.1 units of hydrogen input produces 1.0 units of electricity and 0.80 units of heat => thus 1.8/2.1 = 0.86) + # but only change parameters for vintage-activity year combinations that are currently specified for this technology in the model + technology = "h2_fc_RC" + for (node in node_list) { + for (year_vtg in period_list) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year_vtg)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year_vtg), sep='.')) + print('Error: technology does not exist in this region for this vintage year') + } else { + years_tec_active = ixDS$years_active(node, technology, year_vtg) + for (year_act in years_tec_active) { + #print(ixDS$add_par("input",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", node, "hydrogen", "final", "year", "year", sep='.'), 2.1, "GWa")) + ixDS$add_par("input",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", node, "hydrogen", "final", "year", "year", sep='.'), 2.1, "GWa") + } + } + } + } + + # adjust efficiency of the hydrogen fuel cell co-generation technology (electricity + heat) in the IND sector (satisfying both IND-specific and IND-thermal useful demands), in order to make it more efficient; a value of 2.0 means the technology has a combined efficiency (electricity + heat) of 0.86 (2.0 units of hydrogen input produces 1.0 units of electricity and 0.71 units of heat => thus 1.71/2.0 = 0.86) + # but only change parameters for vintage-activity year combinations that are currently specified for this technology in the model + technology = "h2_fc_I" + for (node in node_list) { + for (year_vtg in period_list) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year_vtg)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year_vtg), sep='.')) + print('Error: technology does not exist in this region for this vintage year') + } else { + years_tec_active = ixDS$years_active(node, technology, year_vtg) + for (year_act in years_tec_active) { + #print(ixDS$add_par("input",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", node, "hydrogen", "final", "year", "year", sep='.'), 2.1, "GWa")) + ixDS$add_par("input",paste(node, technology, as.character(year_vtg), as.character(year_act), "M1", node, "hydrogen", "final", "year", "year", sep='.'), 2.1, "GWa") + } + } + } + } + + + # Increase the initial starting point value for activity growth bounds on the solar PV technology (centralized generation) + # Only do this for a subset of the regions for which there are currently "bound_activity_up" (formerly "mpa up") values defined. We don't want to specify an "initial_activity_up" for a technology that does not have a "bound_activity_up". + years_subset = c(2030, 2040, 2050) + node_subset = c("R11_CPA","R11_FSU","R11_LAM","R11_MEA","R11_NAM","R11_PAS") + technology = "solar_pv_ppl" + for (node in node_subset) { + for (year in years_subset) { + #ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + + #if (any(class(tryCatch(ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa"), error = function(e) e)) == "error")) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year), sep='.')) + print('Error: technology does not exist in this region for this activity year') + } else { + #print(paste(node, technology, as.character(year), sep='.')) + ixDS$add_par("initial_activity_up",paste(node, technology, as.character(year), "year", sep='.'), 90, "GWa") + } + + } + } + + + # Increase the initial starting point value for capacity growth bounds on the solar PV technology (centralized generation) + years_subset = c(2030, 2040, 2050) + technology = "solar_pv_ppl" + for (node in node_list) { + for (year in years_subset) { + #ixDS$add_par("initial_new_capacity_up",paste(node, technology, as.character(year), sep='.'), 10, "GW") + + #if (any(class(tryCatch(ixDS$add_par("initial_new_capacity_up",paste(node, technology, as.character(year), sep='.'), 10, "GW"), error = function(e) e)) == "error")) { + if (any(class(tryCatch((ixDS$years_active(node, technology, year)), error = function(e) e)) == "error")) { + print(paste(node, technology, as.character(year), sep='.')) + print('Error: technology does not exist in this region for this vintage year') + } else { + #print(paste(node, technology, as.character(year), sep='.')) + ixDS$add_par("initial_new_capacity_up",paste(node, technology, as.character(year), sep='.'), 10, "GW") + } + + } + } + + # read demands from xlsx file + + path.data = paste( data_path, '/water/water_demands/ALPS_1.5C_demand/demands_inp_files', sep='' ) + wds = getwd() + setwd(path.data) + data.demand <- read.xlsx("MESSAGE_demand_v3_20170913.xlsx", sheetName = "data") + + names(data.demand) = c("MODEL", "SCENARIO", "REGION", "VARIABLE", "UNIT", "2000", "2005", "2010", "2020", "2030", "2040", "2050", "2060", "2070", "2080", "2090", "2100", "2110") + + demand.mapping = data.frame(VARIABLE = c("Demand|Feedstocks", "Demand|Industrial Specific", "Demand|Industrial Thermal", "Demand|Non-Commercial", "Demand|Residential and Commercial Specific", "Demand|Residential and Commercial Thermal", "Demand|Transportation", "Demand|Shipping"), + DEMAND = c("i_feed","i_spec", "i_therm","non-comm", "rc_spec", "rc_therm", "transport", "shipping")) + + + # turn demand table into long table format (relational database like) and convert from EJ to GWa as used in MESSAGE + data.table = inner_join(data.demand, demand.mapping) %>% select(one_of("DEMAND", "REGION"), starts_with("2")) %>% gather(key = "YEAR", value = "VALUE", 3:15) %>% mutate(VALUE = VALUE * 1000 / (8.76*3.6)) + + # nodes, periods and demand commodities to add to the model + node_list = levels(data.table$REGION) + node_list = node_list[node_list != "R11_GLB"] ## remove the "R11_GLB" region from the list, since this is only for the shipping demand commodity and we want to treat this separately in the code below + ##period_list = seq(2020, 2110, 10) ## use this command if we want to change model parameters from 2020 onward + period_list = seq(2030, 2110, 10) ## use this command if we want to change model parameters from 2030 onward (i.e., if a slice was used up to 2020 in the scenario that this one is cloned from) + commodity_list = levels(data.table$DEMAND) + commodity_list = commodity_list[commodity_list != "shipping"] ## remove the "shipping" commodity from the list, since this is only for the "R11_GLB" region and we want to treat this separately in the code below + + demand_factor = 1 + + # insert new demands into the model - 7 standard demands in 11 standard regions + res = lapply( node_list, function(node){ + + lapply( commodity_list, function(commodity){ + + lapply( period_list, function( year ){ + + ixDS$add_par("demand",paste(node,commodity,"useful",as.character(year),"year",sep='.'),filter(data.table, DEMAND == commodity & REGION == node & YEAR == as.character(year))$VALUE * demand_factor,"GWa") + + } ) + + } ) + + } ) + + setwd(wds) + + } + + #------------------------------------------------------------------------------------------------------- + # Add water technologies using historical ppl data and pre-defined regional shares + #------------------------------------------------------------------------------------------------------- + + print('Initializing water technologies') + + # Cooling technologies: + # Once through (fresh and saline), closed-loop (fresh) and air cooled options considered + # No air cooling options for nuclear and CCS + # Only consider the cooling technologies that correspond to power plant technologies in the MESSAGE model. + cooling_technologies_to_consider = c( apply( cooltech_cost_and_shares_ssp_msg_raw.df[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$utype ) %in% as.character( message_technologies_with_water_data ) ), c('utype','cooling') ], 1, paste, collapse='__') ) + + # Cooling commodities by power plant type - output commodity for cooling technology + cooling_commodities = unlist( lapply( 1:length( unique( cooltech_cost_and_shares_ssp_msg_raw.df$utype[ as.numeric( names(cooling_technologies_to_consider) ) ] ) ), function(x){ paste( 'cooling', unique( cooltech_cost_and_shares_ssp_msg_raw.df$utype[ as.numeric(names(cooling_technologies_to_consider)) ] )[x], sep='__' ) } ) ) + ret = lapply( 1:length(cooling_commodities), function(x){ ixDS$add_set( 'commodity', as.character( cooling_commodities[x] ) ) } ) # Add commodity to ix DB + + # Water sources - input commodity for cooling technology + water_supply_type = unique(tech_water_performance_ssp_msg_raw.df$water_supply_type[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) %in% message_technologies_with_water_data | as.character(tech_water_performance_ssp_msg_raw.df$technology_group) == 'cooling' ) ] ) + water_supply_type = c( water_supply_type[-1*which(is.na(water_supply_type))] ) + ret = lapply( c( as.character( water_supply_type ), 'saline_supply_ppl' ), function(x){ ixDS$add_set( 'commodity', x ) } ) # Add commodity to ix DB + + # Water supply and cooling as a new level + water_supply_level = 'water_supply' + water_treat_level = 'water_treat' + ret = ixDS$add_set( 'level', water_supply_level ) # Add level to ix DB + ret = ixDS$add_set( 'level', water_treat_level ) # Add level to ix DB + cooling_level = 'cooling' + ret = ixDS$add_set( 'level', cooling_level ) # Add level to ix DB + + # Wastewater as an emission - could alternatively be included as commodity balance + ret = ixDS$add_set( 'emission', 'fresh_wastewater' ) + ret = ixDS$add_set( 'emission', 'unfresh_wastewater' ) + ret = ixDS$add_set( 'emission', 'saline_wastewater' ) # some of these should alternatively be defined in the input files + + # Thermal pollution as an emission - consider oceans and rivers + ret = ixDS$add_set( 'emission', 'fresh_thermal_pollution' ) + ret = ixDS$add_set( 'emission', 'saline_thermal_pollution' ) + + # Initialize urban, rural and irrigation water demands + water_end_use_commodities = c( 'urban_mw', 'urban_dis', 'rural_mw', 'rural_dis' ) + ret = lapply( water_end_use_commodities, function(x){ ixDS$add_set( 'commodity', x ) } ) # Add commodity to ix DB + + # Initialize wastewater commodities + wastewater_commodities = c( 'urban_collected_wst', 'rural_collected_wst', 'urban_uncollected_wst', 'rural_uncollected_wst' ) + ret = lapply( wastewater_commodities, function(x){ ixDS$add_set( 'commodity', x ) } ) # Add commodity to ix DB + + # Water source extraction technologies - add to technology and type sets + # Currently distinguishes: freshwater_instream (hydropower), freshwater_supply (all techs using freshwater), saline_supply (ocean and brackish resources) and upstream_landuse (globiom accounting) + water_source_extraction_techs = unlist( lapply( 1:length(water_supply_type), function(x){ paste( 'extract', as.character( water_supply_type[x] ), sep='__' ) } ) ) + ret = lapply( 1:length(water_supply_type), function(x){ ixDS$add_set( 'technology', water_source_extraction_techs[x] ) } ) + water_resource_extraction_tech_type = 'water_resource_extraction' + ret = ixDS$add_set( 'type_tec', water_resource_extraction_tech_type ) # Add to technology types + ret = lapply( 1:length(water_supply_type), function(x){ ixDS$add_set( 'cat_tec', paste( water_resource_extraction_tech_type , water_source_extraction_techs[x], sep='.') ) } ) + ret = lapply( 1:length(water_supply_type), function(x){ ixDS$add_set( 'cat_tec', paste( 'investment_other' , water_source_extraction_techs[x], sep='.') ) } ) + + # Power plant cooling technologies as technology types - will set technology names later + power_plant_cooling_tech_type = 'power_plant_cooling' + ixDS$add_set( 'type_tec', power_plant_cooling_tech_type ) + + # Create data.frame that stores the relevant cost data from the csv files + cooling_technology_costs = data.frame( inv_costs = unlist( lapply( cooling_technologies_to_consider, function(techs2check){ as.numeric( cooltech_cost_and_shares_ssp_msg_raw.df$investment_million_USD_per_MW_mid[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$alt_id ) == as.character( techs2check ) ) ] ) } ) ), + fixed_costs = 0,#unlist( lapply( cooling_technologies_to_consider, function(techs2check){ as.numeric( cooltech_cost_and_shares_ssp_msg_raw.df$fixed_million_USD_per_MW[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$alt_id ) == as.character( techs2check ) ) ] ) } ) ), + var_costs = 0,#unlist( lapply( cooling_technologies_to_consider, function(techs2check){ as.numeric( cooltech_cost_and_shares_ssp_msg_raw.df$variable_million_USD_per_MW[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$alt_id ) == as.character( techs2check ) ) ] ) } ) ), + row.names = cooling_technologies_to_consider ) + + # Recover the names of the cooled technologies in MESSAGE (i.e., the thermal power plants) + cooled_technologies_in_message = unique( as.character( unlist(data.frame(strsplit( cooling_technologies_to_consider, '__'))[1,]) ) ) + + # Manually set efficiencies - data not readily extracted from the DB - currently manually read from .inp file :( + manually_set_efficiencies = list( geo_hpl = 0.850, + geo_ppl = 0.385, + nuc_hc = 0.326, # couldn't find these numbers in the .inp file so using average heat rate of 3.065 kWh heat per kWh electricity from EIA + nuc_lc = 0.326, # couldn't find these numbers in the .inp file so using average heat rate of 3.065 kWh heat per kWh electricity from EIA + solar_th_ppl = 0.385 ) + + #---------------------------------------------------------------------------------------------------------------------- + # Initialize the full commodity balance set and commodities, as well as the associated equation added to the core model + #---------------------------------------------------------------------------------------------------------------------- + + ixDS$init_set( "full_balance", c( "commodity" ) ) + res = lapply( wastewater_commodities, function( www ){ ixDS$add_set( "full_balance", www ) } ) + ixDS$init_equ( "COMMODITY_BALANCE_FULL", c( "node", "commodity", "level", "year", "time" ) ) + + #------------------------------------------------------------------------------------------------------- + # Add urban and rural demands / return flows as exogenous inputs + #------------------------------------------------------------------------------------------------------- + + # Import urban and rural demands from csv - convert mcm/year to km3/year + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_SDG_sdg6supp' ){ pth = 'sdg6_supp'; ipth = 'baseline' } + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_SDG_sdg6eff' ){ pth = 'sdg6_eff'; ipth = 'sdg6_eff' } + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_base_watbaseline' ){ pth = 'baseline'; ipth = 'baseline' } + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_SDG_sdg6led" ){ pth = 'sdg6_eff'; ipth = 'sdg6_eff' } + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_SDG_sdg6supp2' ){ pth = 'sdg6_supp'; ipth = 'sdg6_eff' } + urban_withdrawal.df = 1e-3 * data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_urban_withdrawal', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + rural_withdrawal.df = 1e-3 * data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_rural_withdrawal', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + urban_return.df = 1e-3 * data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_urban_return', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + rural_return.df = 1e-3 * data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_rural_return', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + urban_connected_fraction.df = data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_urban_connection_rate', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + rural_connected_fraction.df = data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_rural_connection_rate', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + urban_treated_fraction.df = data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_urban_treatment_rate', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + rural_treated_fraction.df = data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_rural_treatment_rate', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + urban_desal_fraction.df = data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_urban_desalination_rate', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + urban_reuse_fraction.df = data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_urban_recycling_rate', pth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + irrigation_withdrawal.df = 1e-3 * data.frame( read.csv( paste( data_path, '/water/water_demands/harmonized/ssp', unlist(strsplit(ssss,'P'))[2], '_regional_irrigation_withdrawal', ipth, '.csv', sep = '' ), stringsAsFactors=FALSE, row.names = 1 ) ) + + # # Import irrigation demands from GLOBIOM and harmonize + # irrig = ixDSoriginal$par('land_output',list(commodity='Water|Withdrawal|Irrigation')) + # land = ixDSoriginal$var('LAND') + # irrigation_withdrawal.df = 1e-3 * data.frame( do.call( cbind, lapply( names( urban_reuse_fraction.df ), function(rr){ sapply( c( row.names( urban_reuse_fraction.df ), '2100' ), function(yy){ + # out = irrig[ which( grepl( rr, irrig$node ) & grepl( as.numeric( yy ), irrig$year ) ) , ] + # lnd = land[ which( grepl( rr, land$node ) & grepl( as.numeric( yy ), land$year ) ) , ] + # cmb = merge( out, lnd, by = 'land_scenario') + # res = max( sum( cmb$value * cmb$level.y ), 0, na.rm=TRUE ) + # return(res) + # } ) } ) ) ) + # names( irrigation_withdrawal.df ) = names( urban_reuse_fraction.df ) + + # Import and harmonize historical municipal and manufacturing demands from Floerke et al. 'Domestic and industrial water uses as a mirror for socioeconomic development' + watergap_mw_hist.df = data.frame( read.csv( paste( data_path, '/water/water_demands/watergap_historical_water_use_mw.csv', sep=''), stringsAsFactors = FALSE ) ) + watergap_mw_hist.df$country = countrycode(watergap_mw_hist.df$iso, 'iso3n', 'iso3c') + watergap_mw_hist.df$region = sapply( watergap_mw_hist.df$country, function(x){ return( country_region_map_key.df$Eleven_region[ which( country_region_map_key.df$Region == x ) ] ) } ) + watergap_mf_hist.df = data.frame( read.csv( paste( data_path, '/water/water_demands/watergap_historical_water_use_mf.csv', sep=''), stringsAsFactors = FALSE ) ) + watergap_mf_hist.df$country = countrycode(watergap_mf_hist.df$iso, 'iso3n', 'iso3c') + watergap_mf_hist.df$region = sapply( watergap_mf_hist.df$country, function(x){ return( country_region_map_key.df$Eleven_region[ which( country_region_map_key.df$Region == x ) ] ) } ) + + # Add exogenous water demands to the db + ret = lapply( region, function(rr){ lapply( dmd_yrs, function(yy){ + + ## Add urban and rural demands for all historical and future years to db + if( yy %in% as.numeric( row.names( urban_withdrawal.df ) ) ) + { + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_mw', 'final', yy, model_time, sep = '.' ), # set key + round( c( urban_withdrawal.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * urban_connected_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), + '-' ) + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_dis', 'final', yy, model_time, sep = '.' ), # set key + round( c( urban_withdrawal.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_connected_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2), + '-' ) + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_mw', 'final', yy, model_time, sep = '.' ), # set key + round( c( rural_withdrawal.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * rural_connected_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), # value + '-' ) # unit + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_dis', 'final', yy, model_time, sep = '.' ), # set key + round( c( rural_withdrawal.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_connected_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2), # value + '-' ) # unit + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_collected_wst', 'final', yy, model_time, sep = '.' ), # set key + -1 * round( c( urban_return.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), + '-' ) + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_collected_wst', 'final', yy, model_time, sep = '.' ), # set key + -1 * round( c( rural_return.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * rural_treated_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), # value + '-' ) # unit + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_uncollected_wst', 'final', yy, model_time, sep = '.' ), # set key + -1 * round( c( urban_return.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_treated_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2), + '-' ) + + ixDS$add_par( 'demand', # parameter name par[a,s,d,f,g] + paste( rr, 'rural_uncollected_wst', 'final', yy, model_time, sep = '.' ), # set key + -1 * round( c( rural_return.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_treated_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2), # value + '-' ) # unit + + }else # year outside range of projections either historical or beyond proejections - use average growth rates to estimate + { + + if ( yy < min( as.numeric( row.names( urban_withdrawal.df ) ) ) ) + { + + dmd2010 = round( c( urban_withdrawal.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * urban_connected_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + dmd2020 = round( c( urban_withdrawal.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * urban_connected_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_mw', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, + '-' ) + + dmd2010 = round( c( urban_withdrawal.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_connected_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + dmd2020 = round( c( urban_withdrawal.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_connected_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_dis', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, + '-' ) + + dmd2010 = round( c( rural_withdrawal.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * rural_connected_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + dmd2020 = round( c( rural_withdrawal.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * rural_connected_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_mw', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, # value + '-' ) # unit + + dmd2010 = round( c( rural_withdrawal.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_connected_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + dmd2020 = round( c( rural_withdrawal.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_connected_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_dis', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, + '-' ) + + dmd2010 = -1 * round( c( urban_return.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + dmd2020 = -1 * round( c( urban_return.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_collected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, + '-' ) + + dmd2010 = -1 * round( c( urban_return.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_treated_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2 ) + dmd2020 = -1 * round( c( urban_return.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_treated_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2 ) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_uncollected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, + '-' ) + + dmd2010 = -1 * round( c( rural_return.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * rural_treated_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + dmd2020 = -1 * round( c( rural_return.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * rural_treated_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_collected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, + '-' ) + + dmd2010 = -1 * round( c( rural_return.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_treated_fraction.df[ as.character( 2010 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + dmd2020 = -1 * round( c( rural_return.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_treated_fraction.df[ as.character( 2020 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + delta = ( dmd2020/dmd2010 )^(1/10) - 1 + dmdhist = round( dmd2010*( (1 + delta)^(-1*(2010 - as.numeric(yy))) ), digits = 2) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_uncollected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdhist, + '-' ) + + }else # beyond projections - assume previous decadal growth / decay rate + { + + dmd2090 = round( c( urban_withdrawal.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * urban_connected_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2 ) + dmd2080 = round( c( urban_withdrawal.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * urban_connected_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2 ) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_mw', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + + dmd2090 = round( c( urban_withdrawal.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_connected_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2 ) + dmd2080 = round( c( urban_withdrawal.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_connected_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2 ) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_dis', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + + dmd2090 = round( c( rural_withdrawal.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * rural_connected_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2 ) + dmd2080 = round( c( rural_withdrawal.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * rural_connected_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2 ) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_mw', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + + dmd2090 = round( c( rural_withdrawal.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * rural_connected_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2 ) + dmd2080 = round( c( rural_withdrawal.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * rural_connected_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2 ) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_dis', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + + dmd2090 = -1 * round( c( urban_return.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + dmd2080 = -1 * round( c( urban_return.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_collected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + + dmd2090 = -1 * round( c( urban_return.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_treated_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + dmd2080 = -1 * round( c( urban_return.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_treated_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'urban_uncollected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + + dmd2090 = -1 * round( c( rural_return.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * rural_treated_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + dmd2080 = -1 * round( c( rural_return.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * rural_treated_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_collected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + + dmd2090 = -1 * round( c( rural_return.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_treated_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + dmd2080 = -1 * round( c( rural_return.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ] * (1-rural_treated_fraction.df[ as.character( 2080 ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2) + delta = ( dmd2090/dmd2080 )^(1/10) - 1 + if(is.nan(delta)){delta=0} + dmdfut = round( dmd2090*( (1 + delta)^((as.numeric(yy) - 2090)) ), digits = 2 ) + ixDS$add_par( 'demand', # parameter name + paste( rr, 'rural_uncollected_wst', 'final', yy, model_time, sep = '.' ), # set key + dmdfut, + '-' ) + } + } + + # Add irrigation demands for all historical and future years to db - writes directly into the freshwater supply level + if( yy %in% as.numeric( row.names( irrigation_withdrawal.df ) ) ) + { + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'freshwater_supply', water_supply_level, yy, model_time, sep = '.' ), # set key + round( irrigation_withdrawal.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ], digits = 2), + '-' ) + + }else # year outside range of projections either historical or beyond proejections + { + + if ( yy < min( as.numeric( row.names( urban_withdrawal.df ) ) ) ) + { + ixDS$add_par( 'demand', # parameter name + paste( rr, 'freshwater_supply', water_supply_level, yy, model_time, sep = '.' ), # set key + round( irrigation_withdrawal.df[ as.character( min( as.numeric( row.names( irrigation_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ], digits = 2), + '-' ) + }else + { + + di = irrigation_withdrawal.df[ as.character( max( as.numeric( row.names( irrigation_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ] / irrigation_withdrawal.df[ ( which.max( as.numeric( row.names( irrigation_withdrawal.df ) ) ) - 1 ), unlist( strsplit( rr, '_') )[2] ] + + ixDS$add_par( 'demand', # parameter name + paste( rr, 'freshwater_supply', water_supply_level, yy, model_time, sep = '.' ), # set key + round( ( irrigation_withdrawal.df[ as.character( max( as.numeric( row.names( irrigation_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ] * ( di^( which(dmd_yrs == yy) - which( dmd_yrs == as.character( max( as.numeric( row.names( irrigation_withdrawal.df ) ) ) ) ) ) ) ), digits = 2), + '-' ) + } + + } + + } ) } ) + + # Base year urban water demands for senstivity + # ssdm = do.call( cbind, lapply( region, function(rr){ data.frame( sapply( dmd_yrs, function(yy){ unlist( ixDS$par( 'demand', list( node = rr, commodity = 'urban_mw', level = 'final', year = yy, time = model_time) )['value'] ) } ) ) } ) ) + # row.names(ssdm) = dmd_yrs + # names(ssdm) = region + # ssdw = do.call( cbind, lapply( region, function(rr){ data.frame( sapply( dmd_yrs, function(yy){ unlist( ixDS$par( 'demand', list( node = rr, commodity = 'urban_collected_wst', level = 'final', year = yy, time = model_time) )['value'] ) } ) ) } ) ) + # row.names(ssdw) = dmd_yrs + # names(ssdw) = region + # ssdi = do.call( cbind, lapply( region, function(rr){ data.frame( sapply( dmd_yrs, function(yy){ unlist( ixDS$par( 'demand', list( node = rr, commodity = 'freshwater_supply', level = 'water_supply', year = yy, time = model_time) )['value'] ) } ) ) } ) ) + # row.names(ssdi) = dmd_yrs + # names(ssdi) = region + # print(ssdm) + # print(ssdw) + # print(ssdi) + + # ------------------------------ + # Add technologies that distribute water to end use - allows tracking (estimating) investments in distribution infrastructure + # ------------------------------ + + ret = ixDS$add_set( 'type_tec', 'water_distribution' ) + d_tech = data.frame( urban_mw = 'urban_t_d', urban_dis = 'urban_unconnected', rural_mw = 'rural_t_d', rural_dis = 'rural_unconnected', urban_collected_wst = 'urban_sewerage' ) + + # distribution cost parameters + # Estimated by taking the per capita connection costs from Table 4 in 'Evaluation of the Costs and Benefits of Water and Sanitation Improvements at the Global Level' + # Component for piping and pretreatment estimated from breakdown across cost components presented in 'The Economic Costs and Benefits of Investments in Municipal Water and Sanitation Infrastructure: A Global Perspective' + # The per capita level is converted to per m3 considering a 'decent living' water requirement of 50 liters per day per person (18.25 m3 per year) from Gleick 1996 + # 'household connection' to represent the urban distribution and 'borehole' to represent the rural distribution + # Irrigation infrastructure optimized in GLOBIOM - not considered in this implementation but irrigation demands accounted for in the freshwater balance + urban_mw_par.list = list( investment = round( 0.45 * 1.1 * 1e3 * data.frame( low = ( 55 / 18.25 ), mid = ( 102 / 18.25 ), high = ( 144 / 18.25 ) ) ), + fixed_cost = round( 0.25 * 0.45 * 1.1 * 1e3 * data.frame( low = ( 55 / 18.25 ), mid = ( 102 / 18.25 ), high = ( 144 / 18.25 ) ) ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + lifetime = data.frame( low = 50, mid = 40, high = 30 ) ) + urban_dis_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ), + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + lifetime = data.frame( low = 1, mid = 1, high = 1 ) ) + rural_mw_par.list = list( investment = round( 0.65 * 1.1 * 1e3 * data.frame( low = ( 17 / 18.25 ), mid = ( 23 / 18.25 ), high = ( 55 / 18.25 ) ) ), + fixed_cost = round( 0.05 * 0.65 * 1.1 * 1e3 * data.frame( low = ( 17 / 18.25 ), mid = ( 23 / 18.25 ), high = ( 55 / 18.25 ) ) ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + lifetime = data.frame( low = 30, mid = 20, high = 10 ) ) + rural_dis_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ), + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + lifetime = data.frame( low = 1, mid = 1, high = 1 ) ) + urban_collected_wst_par.list = list( investment = round( 0.35 * 1.1 * 1e3 * data.frame( low = ( 55 / 18.25 ), mid = ( 102 / 18.25 ), high = ( 144 / 18.25 ) ) ), + fixed_cost = round( 0.25 * 0.35 * 1.1 * 1e3 * data.frame( low = ( 55 / 18.25 ), mid = ( 102 / 18.25 ), high = ( 144 / 18.25 ) ) ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + lifetime = data.frame( low = 50, mid = 40, high = 30 ) ) + + ret = lapply( names( d_tech ), function(tt){ + + ixDS$add_set( 'technology', as.character( d_tech[[ tt ]] ) ) + ixDS$add_set( 'cat_tec', paste( 'investment_other' , as.character( d_tech[[ tt ]] ), sep='.' ) ) # Add technology to list of water system investments + ixDS$add_set( 'cat_tec', paste( 'water_distribution', as.character( d_tech[[ tt ]] ), sep='.' ) ) # Add technology to list of desal techs + + par.list = get( paste( tt, 'par.list', sep= '_') ) + + lapply( region, function(rr){ + + tst = as.numeric( as.character( unlist(ixDS$par('demand',list( node = rr, commodity = tt ))['year']) ) ) + + lapply( tst , function(yy){ + + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste(rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + round( unlist( par.list[[ 'investment' ]][ parameter_levels ] ), digits = 3 ), + '-' ) + + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste(rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + unlist( par.list[[ 'lifetime' ]][ parameter_levels ] ), + 'y' ) + + # Add the construction time + ixDS$add_par( 'construction_time', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + 1, + 'y' ) + + # Add the historical capacity and activity + if( yy <= 2010 ) + { + + ixDS$add_par( 'historical_activity', paste( rr, as.character( d_tech[[ tt ]] ), yy, mode_common , model_time, sep = '.' ), abs(unlist(ixDS$par('demand',list( node = rr, commodity = tt, year = yy )))['value']), '-' ) + + if( yy == min( tst ) ) + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + round(1/10*abs(unlist(ixDS$par('demand',list( node = rr, commodity = tt, year = yy )))['value'])/3, digits=rnd), + '-' ) + }else + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + round(max( 0, 1/5*c( abs(unlist(ixDS$par('demand',list( node = rr, commodity = tt, year = yy )))['value']) - abs(unlist( ixDS$par( 'demand',list( node = rr, commodity = tt, year = tst[ ( which( tst == yy ) - 1 ) ] ) ) )['value'] ) ) ),digits=rnd), + '-' ) + } + + } + + # Add the historical capacity and activity for locked-in future years in the mitigation and no policy scenarios (e.g., 2030, 2040) + if( yy > 2010 & yy < firstmodelyear ) + { + ixDS$add_par( 'historical_activity', paste( rr, as.character( d_tech[[ tt ]] ), yy, mode_common , model_time, sep = '.' ), max(0, base_hist_act[ which( as.character( unlist( base_hist_act$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_act$year_all ) ) == yy & as.character( unlist( base_hist_act$node ) ) == rr ), 'val' ], na.rm=TRUE), '-' ) + ixDS$add_par( 'historical_new_capacity', paste( rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), max(0, base_hist_ncap[ which( as.character( unlist( base_hist_ncap$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_ncap$year_all ) ) == yy & as.character( unlist( base_hist_ncap$node ) ) == rr ), 'val' ], na.rm=TRUE), '-' ) + } + + # Add i-o parameters + lapply( model_years[ which( model_years >= as.numeric(yy) & model_years <= ( as.numeric(yy) + unlist( par.list[['lifetime']][parameter_levels] ) ) ) ], function(aa){ + + # Add the input efficiency ratio + if(tt != 'urban_collected_wst') + { + incmd = 'freshwater_supply' + inlvl = water_supply_level + outlvl = 'final' + }else + { + incmd = tt + inlvl = 'final' + outlvl = water_treat_level + } + + # Add the output efficiency ratio + ixDS$add_par( 'output', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, mode_common, rr, tt, outlvl, model_time, model_time, sep = '.' ), # set key + 1, # parameter value + '-' ) + + + ixDS$add_par( 'input', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, mode_common, rr, incmd, inlvl, model_time, model_time, sep = '.' ), # set key + 1, + '-' ) + + # Add the variable cost + ixDS$add_par( 'var_cost', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, mode_common, model_time, sep = '.' ), # set key + unlist( par.list[['var_cost']][parameter_levels] ), + '-' ) # units + + # Add fixed costs + ixDS$add_par( 'fix_cost', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, sep = '.' ), # set key + unlist( par.list[['fixed_cost']][parameter_levels] ), + '-' ) + + # Add the capacity factor + ixDS$add_par( 'capacity_factor', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, model_time, sep = '.' ), # set key + 1, + '-' ) + + } ) + + } ) + + } ) + + } ) + + # ------------------------------------------------------------------- + # Add simplified conservation curves as technologies representing step functions + # ------------------------------------------------------------------- + + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_SDG_sdg6supp' ){ flg = 1 } + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_SDG_sdg6eff' ){ flg = 1 } + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_base_watbaseline' ){ flg = 0 } + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_SDG_sdg6led" ){ flg = 1 } + if( as.character( model_scenarios$newscenarioName[sc] ) == 'baseline_globiom_SDG_sdg6supp2' ){ flg = 1 } + + + if( water_policies == 'SDG6' ){ scld = 0.05 }else{ scld = 0 } # Assume 10% more efficiency for SDG6 scenario + ret = ixDS$add_set( 'type_tec', 'water_efficiency' ) + d_tech = data.frame( urban_low = 'ueff1', urban_mid = 'ueff2', urban_high = 'ueff3', + rural_low = 'reff1', rural_mid = 'reff2', rural_high = 'reff3', + irrig_low = 'ieff1', irrig_mid = 'ieff2', irrig_high = 'ieff3' ) + + # Backstop costs - variable cost associated with backstop supply technology to set the threshold for investment into efficiency / price responsive demand + # Mid-range case from Ward et al. 2010, Partial costs of global climate change adaptation for water supply... using 0.45 to achieve average (mid-point) costs of 0.3 USD per m3 + # Lower from A.A. Keller "Water Scarcity and the Role of Storage in Development", backstop technology ranges estimated from Table 5. In USD per m3 + # Upper from, Ouda (2013) "Review of Saudi Arabia Municipal Water Tariff", report a production cost for desalination of 1.09 USD per m3. + cbu = 1e3 * data.frame( low = 0.2, mid = 0.45, high = 1 ) # units are converted to million USD / km3 / yr + cbr = 1e3 * data.frame( low = 0.2, mid = 0.45, high = 1 ) + cbi = 1e3 * data.frame( low = 0.2, mid = 0.45, high = 1 ) + + # Water conservation cost parameters + urban_low_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = (1/3) * cbu['low'], mid = (1/3) * cbu['mid'], high = (1/3) * cbu['high'] ), + max_response = data.frame( low = (1/3) * ( scld + 0.35 ), mid = (1/3) * ( scld + 0.25 ), high = (1/3) * ( scld + 0.15 ) ) ) + urban_mid_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = (2/3) * cbu['low'], mid = (2/3) * cbu['mid'], high = (2/3) * cbu['high'] ), + max_response = data.frame( low = (1/3) * ( scld + 0.35 ), mid = (1/3) * ( scld + 0.25 ), high = (1/3) *( scld + 0.15 ) ) ) + urban_high_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = cbu['low'], mid = cbu['mid'], high = cbu['high'] ) , + max_response = data.frame( low = (1/3) * ( scld + 0.35 ), mid = (1/3) * ( scld + 0.25 ), high = (1/3) * ( scld + 0.15 ) ) ) + rural_low_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = (1/3) * cbr['low'], mid = (1/3) * cbr['mid'], high = (1/3) * cbr['high'] ) , + max_response = data.frame( low = (1/3) * ( scld + 0.35 ), mid = (1/3) * ( scld + 0.25 ), high = (1/3) * ( scld + 0.15 ) ) ) + rural_mid_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = (2/3) * cbr['low'], mid = (2/3) * cbr['mid'], high = (2/3) * cbr['high'] ) , + max_response = data.frame( low = (1/3) * ( scld + 0.35 ), mid = (1/3) * ( scld + 0.25 ), high = (1/3) * ( scld + 0.15 ) ) ) + rural_high_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = cbr['low'], mid = cbr['mid'], high = cbr['high'] ) , + max_response = data.frame( low = (1/3) * ( scld + 0.35 ), mid = (1/3) * ( scld + 0.25 ), high = (1/3) * ( scld + 0.15 ) ) ) + irrig_low_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = (1/3) * cbi['low'], mid = (1/3) * cbi['mid'], high = (1/3)* cbi['high'] ) , + max_response = flg * data.frame( low = (1/3) * 0.35, mid = (1/3) * 0.25, high = (1/3) * 0.25 ) ) + irrig_mid_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = (2/3) * cbi['low'], mid = (2/3) * cbi['mid'], high = (2/3) * cbi['high'] ) , + max_response = flg * data.frame( low = (1/3) * 0.35, mid = (1/3) * 0.25, high = (1/3) * 0.25 ) ) + irrig_high_par.list = list( investment = data.frame( low = 0, mid = 0, high = 0 ) , + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ) , + var_cost = data.frame( low = cbi['low'], mid = cbi['mid'], high = cbi['high'] ) , + max_response = flg * data.frame( low = (1/3) * 0.35, mid = (1/3) * 0.25, high = (1/3) * 0.25 ) ) + + ret = lapply( names( d_tech ), function(tt){ + + ixDS$add_set( 'technology', as.character( d_tech[[ tt ]] ) ) + ixDS$add_set( 'cat_tec', paste( 'investment_other' , as.character( d_tech[[ tt ]] ), sep='.' ) ) # Add technology to list of water system investments + ixDS$add_set( 'cat_tec', paste( 'water_efficiency', as.character( d_tech[[ tt ]] ), sep='.' ) ) # Add technology to list of efficiency techs + + par.list = get( paste( tt, 'par.list', sep= '_') ) + + if( unlist(strsplit(tt,'_'))[1] == 'urban' ){cmdtys=c('urban_mw','urban_collected_wst')}else if(unlist(strsplit(tt,'_'))[1] == 'rural'){cmdtys=c('rural_mw','rural_collected_wst')}else{cmdtys=c('freshwater_supply',NA)} + if( unlist(strsplit(tt,'_'))[1] == 'urban' ){lvl=c('final')}else if(unlist(strsplit(tt,'_'))[1] == 'rural'){lvl=c('final')}else{lvl=water_supply_level} + + lapply( region, function(rr){ + + tst = as.numeric( as.character( unlist(ixDS$par('demand',list( node = rr, commodity = cmdtys[1] ))['year']) ) ) + tst = tst[tst>2010] + + lapply( tst , function(yy){ + + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste(rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + 0, + '-' ) + + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste(rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + 10, + 'y' ) + + # Add the construction time + ixDS$add_par( 'construction_time', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, sep = '.' ), # set key + 0, + 'y' ) + + # Add i-o parameters + aa = yy + + # Add the output efficiency ratio + ixDS$add_par( 'output', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, mode_common, rr, cmdtys[1], lvl, model_time, model_time, sep = '.' ), # set key + 1, + '-' ) + + if( !is.na(cmdtys[2]) ) + { + # Add the output efficiency ratio for wastewater - it is assumed efficiency measures reduce both withdrawals and return flows symmetrically. + ixDS$add_par( 'input', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, mode_common, rr, cmdtys[2], lvl, model_time, model_time, sep = '.' ), # set key + min( abs( round( unlist( ixDS$par('demand',list(node=rr,commodity=cmdtys[2],year=aa))['value'] ) / unlist( ixDS$par('demand',list(node=rr,commodity=cmdtys[1],year=aa))['value'] ), digits = rnd ) ), 0, na.rm=TRUE ), + '-' ) + } + + # Add the variable cost + ixDS$add_par( 'var_cost', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, mode_common, model_time, sep = '.' ), # set key + unlist( par.list[['var_cost']][parameter_levels] ), + '-' ) # units + + # Add fixed costs + ixDS$add_par( 'fix_cost', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, sep = '.' ), # set key + unlist( par.list[['fixed_cost']][parameter_levels] ), + '-' ) + + # Add the capacity factor + ixDS$add_par( 'capacity_factor', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, aa, model_time, sep = '.' ), # set key + 1, + '-' ) + + # Add upper bounds + ixDS$add_par( 'bound_activity_up', # parameter name + paste( rr, as.character( d_tech[[ tt ]] ), yy, mode_common, model_time, sep = '.' ), # set key + round( c( unlist( par.list[['max_response']][parameter_levels] ) * unlist( ixDS$par('demand',list(node=rr,commodity=cmdtys[1],year=aa))['value'] ) ) , digits = 3 ), + '-' ) + + } ) + + } ) + + } ) + + #------------------------------------------------------------------------------------------------------- + # Add wastewater treatment technologies + #------------------------------------------------------------------------------------------------------- + + ret = ixDS$add_set( 'type_tec', 'wastewater_treatment' ) + wwt_techs = c( 'urban_treatment', 'urban_untreated', 'urban_recycle', 'rural_treatment','rural_untreated' ) + + wwt_techs_wst = list( urban_treatment = 'urban_collected_wst', urban_untreated = 'urban_uncollected_wst', urban_recycle = 'urban_collected_wst', rural_treatment = 'rural_collected_wst', rural_untreated = 'rural_uncollected_wst' ) + wwt_techs_wout = list( urban_treatment = NA, urban_untreated = NA, urban_recycle = 'freshwater_supply', rural_treatment = NA, rural_untreated = NA ) + wwt_techs_wems = list( urban_treatment = 'fresh_wastewater', urban_untreated = 'unfresh_wastewater', urban_recycle = NA, rural_treatment = 'fresh_wastewater', rural_untreated = 'unfresh_wastewater' ) + + wwt_tech_par.list = list( + + # Investment costs taken from Gonzalez-Serrano et al. 2005 'Cost of reclaimed municipal wastewater for applications in seasonally stressed semi-arid regions' + urban_untreated = data.frame( recovery_rate = data.frame( low = 1, mid = 1, high = 1 ), + electricity_input = data.frame( low = 0 , mid = 0, high = 0 ), + investment = data.frame( low = 0, mid = 0, high = 0 ), + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + capacity_factor = data.frame( low = 1, mid = 1, high = 1 ), + lifetime = data.frame( low = 1, mid = 1, high = 1 ) ), + + # Using the 'T1' configuration option from Gonzalez-Serrano et al. 2005 in table 4 which represents discharge to surface or sea. Converted to USD using 1.27 USD / euro exchange rate + # Electricity intensity follows Kajenthira et al. 2014 Table 1 Appendix A: 'A New Case for Wastewater Reuse in Saudi Arabia' + urban_treatment = data.frame( recovery_rate = data.frame( low = 0.95, mid = 0.9, high = 0.85 ), + electricity_input = round( data.frame( low = 0.13 * ( 1e3 / (24 * 365) ) , mid = 0.38 * ( 1e3 / (24 * 365) ), high = 0.64 * ( 1e3 / (24 * 365) ) ), digits = 4 ), + investment = round(data.frame( low = 303*(1/0.365), mid = 429*(1/0.365), high = 627*(1/0.365) )), # converted usd/m3/day -> million usd/km3/yr + fixed_cost = round(data.frame( low = 21*(1/0.365), mid = 35*(1/0.365), high = 67*(1/0.365) )), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + capacity_factor = data.frame( low = 0.95, mid = 0.9, high = 0.85 ), + lifetime = data.frame( low = 40, mid = 30, high = 25 ) ) , + + # Using the 'T4' configuration option from Gonzalez-Serrano et al. 2005 which is for direct injection into aquifers for domestic uses + # Electricity intensity follows Kajenthira et al. 2014 Table 1 Appendix A: 'A New Case for Wastewater Reuse in Saudi Arabia' + urban_recycle = data.frame( recovery_rate = data.frame( low = 0.9, mid = 0.8, high = 0.7 ), + electricity_input = round( data.frame( low = 0.8 * ( 1e3 / (24 * 365) ) , mid = 1 * ( 1e3 / (24 * 365) ), high = 1.5 * ( 1e3 / (24 * 365) ) ), digits = 4), # converted kWh / m3 -> GW-yr/km3 + investment = round(data.frame( low = 1008*(1/0.365), mid = 1352*(1/0.365), high = 2010*(1/0.365) )), # Converted from $/m3/day to million $ / km3 / yr + fixed_cost = round(data.frame( low = 63*(1/0.365), mid = 98*(1/0.365), high = 175*(1/0.365) )), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + capacity_factor = data.frame( low = 0.95, mid = 0.9, high = 0.85 ), + lifetime = data.frame( low = 40, mid = 30, high = 25 ) ) , + + # Rural treatment: Using Septic system costs stated in per capita from The Costs of Meeting the 2030 Sustainable Development Goal Targets on Drinking Water, Sanitation, and Hygiene + # The per capita level is converted to per m3 considering an average per capita wastewater requirement of 50 cubic meters of return flow per year + rural_treatment = data.frame( recovery_rate = data.frame( low = 0.97, mid = 0.95, high = 0.9 ), + electricity_input = data.frame( low = 0 , mid = 0, high = 0 ), + investment = round( data.frame( low = ( 33 / ( 50 * 0.001 ) ) , mid = ( 104 / ( 50 * 0.001 ) ), high = ( 178 / ( 50 * 0.001 ) ) )), + fixed_cost = round(data.frame( low = 0.1 * ( 33 / ( 50 * 0.001 ) ) , mid = 0.1 * ( 104 / ( 50 * 0.001 ) ), high = 0.1 * ( 178 / ( 50 * 0.001 ) ) )), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + capacity_factor = data.frame( low = 0.98, mid = 0.96, high = 0.94 ), + lifetime = data.frame( low = 30, mid = 25, high = 20 ) ) , + + rural_untreated = data.frame( recovery_rate = data.frame( low = 1, mid = 1, high = 1 ), + electricity_input = data.frame( low = 0 , mid = 0, high = 0 ), + investment = data.frame( low = 0, mid = 0, high = 0 ), + fixed_cost = data.frame( low = 0, mid = 0, high = 0 ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + capacity_factor = data.frame( low = 1, mid = 1, high = 1 ), + lifetime = data.frame( low = 1, mid = 1, high = 1 ) ) + + ) + + inv_cost_recycle = round( data.frame( urban_recycle = (c(1301,1293,1244)/1301)* unlist( wwt_tech_par.list[['urban_recycle']][paste('investment',parameter_levels2,sep='.')] ) ), digits = 3 ) + row.names(inv_cost_recycle) = c( 2020, 2030, 2050 ) + + ret = lapply( names( wwt_tech_par.list ), function(tt){ + + # Add to set list + ixDS$add_set( 'technology', tt ) + ixDS$add_set( 'cat_tec', paste( 'investment_other' , tt, sep='.') ) # Add technology to list of water system investments + ixDS$add_set( 'cat_tec', paste( 'wastewater_treatment', tt, sep='.' ) ) # Add technology to list of desal techs + + # Performance parameters - across all regions, and historical and future years + lapply( region, function(rr){ + + tst = as.numeric( as.character( unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]] ))['year']) ) ) + + lapply( tst, function(yy){ + + if( tt == 'urban_recycle' ){ cst = inv_cost_recycle[ which.min( (as.numeric(yy) - as.numeric(row.names(inv_cost_recycle)))^2 ),tt ] }else{ cst = round( unlist( wwt_tech_par.list[[tt]][paste('investment',parameter_levels2,sep='.')] ), digits = 3 ) } + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + cst, + '-' ) + + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + round( unlist( wwt_tech_par.list[[tt]][paste('lifetime',parameter_levels,sep='.')] ), digits = 3 ), + 'y' ) + + # Add the construction time + ixDS$add_par( 'construction_time', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 3, + 'y' ) + + # Add the historical capacity and activity + if( yy <= 2010 ) + { + + if( tt == 'urban_recycle' | tt == 'urban_treatment' ) + { + + if( tt == 'urban_recycle' ) + { + ixDS$add_par( 'historical_activity', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + round( abs( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = yy )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2), + '-' ) + if( yy == min( tst ) ) + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, tt, yy, sep = '.' ), # set key + round( 1/10*abs( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = yy )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2), + '-' ) + }else + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, tt, yy, sep = '.' ), # set key + max( 0, 1/5*c( round( abs( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = yy )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2) - round( abs( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = tst[ ( which( tst == yy ) - 1 ) ] )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2) ) ), + '-' ) + } + }else # urban_treatment - need to subtract recycled shared + { + ixDS$add_par( 'historical_activity', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + round( abs( unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = yy )))['value'] - round( c( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = yy )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2) ), digits = 2), + '-' ) + if( yy == min( tst ) ) + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, tt, yy, sep = '.' ), # set key + round( 1/10 * abs( unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = yy )))['value'] - round( c( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = yy )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2) ), digits = 2), + '-' ) + }else + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, tt, yy, sep = '.' ), # set key + round( 1/5 * abs( max( 0, abs( unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = yy )))['value'] - unlist( ixDS$par( 'demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = tst[ ( which( tst == yy ) - 1 ) ] ) ) )['value'] ) ) - max( 0, abs( round( c( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = yy )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2) - round( abs( unlist(ixDS$par('demand',list( node = rr, commodity = 'urban_collected_wst', year = tst[ ( which( tst == yy ) - 1 ) ] )))['value'] * urban_connected_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ '2010', unlist( strsplit( rr, '_') )[2] ] ), digits = 2) ) ) ), digits = 2), + '-' ) + } + } + + }else + { + + ixDS$add_par( 'historical_activity', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + abs(unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = yy )))['value']), + '-' ) + + if( yy == min( tst ) ) + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, tt, yy, sep = '.' ), # set key + round( 1/10 * abs(unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = yy )))['value']), digits = rnd ), + '-' ) + }else + { + ixDS$add_par( 'historical_new_capacity', # parameter name + paste( rr, tt, yy, sep = '.' ), # set key + round( 1/5 * max( 0, c( abs(unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = yy )))['value']) - abs(unlist( ixDS$par( 'demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = tst[ ( which( tst == yy ) - 1 ) ] ) ) )['value']) ) ), digits = rnd ), + '-' ) + } + + } + + } + + # Add the historical capacity and activity for locked-in future years in the mitigation and no policy scenarios (e.g., 2030, 2040) + if( yy > 2010 & yy < firstmodelyear ) + { + ixDS$add_par( 'historical_activity', paste( rr, as.character( tt ), yy, mode_common , model_time, sep = '.' ), max(0, base_hist_act[ which( as.character( unlist( base_hist_act$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_act$year_all ) ) == yy & as.character( unlist( base_hist_act$node ) ) == rr ), 'val' ], na.rm=TRUE), '-' ) + ixDS$add_par( 'historical_new_capacity', paste( rr, as.character( tt ), yy, sep = '.' ), max(0, base_hist_ncap[ which( as.character( unlist( base_hist_ncap$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_ncap$year_all ) ) == yy & as.character( unlist( base_hist_ncap$node ) ) == rr ), 'val' ], na.rm=TRUE), '-' ) + } + + # # Add upper bounds to reflect availability of return flows + # if( tt %in% c('urban_recycle') & yy >= 2010 ) + # { + # mxp = 0.6 + # mx = mxp * abs( unlist(ixDS$par('demand',list( node = rr, commodity = wwt_techs_wst[[ tt ]], year = yy ))['value']) ) + # ixDS$add_par( 'bound_activity_up', # parameter name + # paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + # round( mx, digits = 2 ), + # '-' ) + # } + + # Add activity bounds for urban recycling technologies to reflect demand in water stressed regions + if( yy > 2010 & tt == 'urban_recycle' ) + { + if( yy < max( as.numeric( row.names( urban_withdrawal.df ) ) ) ) + { + ixDS$add_par( 'bound_activity_lo', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + round( c( urban_return.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), + '-' ) + }else + { + ixDS$add_par( 'bound_activity_lo', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + round( c( urban_return.df[ as.character( max( as.numeric( row.names( urban_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( max( as.numeric( row.names( urban_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ] * urban_reuse_fraction.df[ as.character( max( as.numeric( row.names( urban_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), + '-' ) + } + } + # if( yy > 2010 & tt == 'urban_treatment' ) + # { + # if( yy < max( as.numeric( row.names( urban_withdrawal.df ) ) ) ) + # { + # ixDS$add_par( 'bound_activity_lo', # parameter name + # paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + # round( c( urban_return.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_reuse_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2), + # '-' ) + # }else + # { + # ixDS$add_par( 'bound_activity_lo', # parameter name + # paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + # round( c( urban_return.df[ as.character( max( as.numeric( row.names( urban_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ] * urban_treated_fraction.df[ as.character( max( as.numeric( row.names( urban_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ] * (1-urban_reuse_fraction.df[ as.character( max( as.numeric( row.names( urban_withdrawal.df ) ) ) ), unlist( strsplit( rr, '_') )[2] ]) ), digits = 2), + # '-' ) + # } + # } + + # Add i-o parameters + ret = lapply( tst[ which( tst >= as.numeric(yy) & tst <= ( as.numeric(yy) + unlist( wwt_tech_par.list[[tt]][paste('lifetime',parameter_levels,sep='.')] ) ) ) ], function(aa){ + + + if( tt %in% c('urban_treatment','urban_recycle')){inlvl = water_treat_level}else{inlvl = 'final'} + + # Add the input water efficiency ratio + ixDS$add_par( 'input', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, wwt_techs_wst[[ tt ]], inlvl, model_time, model_time, sep = '.' ), # set key + 1, # parameter value + '-' ) + + + # Add the input efficiency ratio - electricity + ixDS$add_par( 'input', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'electr', 'final', model_time, model_time, sep = '.' ), # set key + round( unlist( wwt_tech_par.list[[tt]][paste('electricity_input',parameter_levels2,sep='.')] ), digits = 5 ), # parameter value + '-' ) + + # Add the output efficiency ratio - recycled water, and bound the activity based on the available return flow + if( !is.na( wwt_techs_wout[[ tt ]] ) ) + { + ixDS$add_par( 'output', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, wwt_techs_wout[[ tt ]], water_supply_level, model_time, model_time, sep = '.' ), # set key + round( unlist( wwt_tech_par.list[[tt]][paste('recovery_rate',parameter_levels2,sep='.')] ), digits = 3 ), # parameter value + '-' ) + } + + if( !is.na( wwt_techs_wems[[ tt ]] ) ) + { + + # Add treated wastewater as emission + ixDS$add_par( 'emission_factor', # parameter name + paste( rr, tt, yy, aa, mode_common, wwt_techs_wems[[ tt ]], sep = '.' ), # set key + round( unlist( wwt_tech_par.list[[tt]][paste('recovery_rate',parameter_levels2,sep='.')] ), digits = 3 ) , + '-' ) + } + + # Add the variable cost + ixDS$add_par( 'var_cost', # parameter name + paste( rr, tt, yy, aa, mode_common, model_time, sep = '.' ), # set key + unlist( wwt_tech_par.list[[tt]][paste('var_cost',parameter_levels2,sep='.')] ), + '-' ) # units + + # Add fixed costs + ixDS$add_par( 'fix_cost', # parameter name + paste( rr, tt, yy, aa, sep = '.' ), # set key + unlist( wwt_tech_par.list[[tt]][paste('fixed_cost',parameter_levels2,sep='.')] ), + '-' ) + + # Add the capacity factor + ixDS$add_par( 'capacity_factor', # parameter name + paste( rr, tt, yy, aa, model_time, sep = '.' ), # set key + unlist( wwt_tech_par.list[[tt]][paste('capacity_factor',parameter_levels,sep='.')] ), + '-' ) + + } ) + + } ) + + } ) + + } ) + + #------------------------------------------------------------------------------------------------------- + # Add stand-alone desalination technologies and desalination demand + #------------------------------------------------------------------------------------------------------- + + # Initialize general technology and commodity parameters for desalination + desalination_level = 'desalination_supply' + ret = ixDS$add_set( 'level', desalination_level ) # Add level to ix DB + desalination_tech_type = 'desalination' + ret = ixDS$add_set( 'type_tec', desalination_tech_type ) + desalination_commodity = 'desalinated_water' + ret = lapply( desalination_commodity, function(x){ ixDS$add_set( 'commodity', as.character( x ) ) } ) # Add commodity to ix DB + + # Stand-alone desalination technologies to be added + desalination_technologies = c( 'membrane_desal', + 'distillation_desal' ) + + # Define performance range - assuming freshwater output in km3 for desal tech is 1 to 1 with the activity level + # Energy intensities from Ghaffour et al (2013) 'Technical review and evaluation of the economics of water desalination' + # Thermal balances from 'Desalination and advanced wastewater treatment: Economics and Financing' by Corrado Sommariva + desal_par.list = list( + + distillation = data.frame( recovery_rate = data.frame( low = 0.4, mid = 0.35, high = 0.3 ), + cooling_water_withdrawal = data.frame( low = 2.4, mid = 5.2, high = 7.1 ), # Estimated from Table 6.2 in 'Desalination and advanced wastewater treatment: Economics and Financing' by Corrado Sommariva + cooling_water_return = data.frame( low = 2.3, mid = 5.1, high = 7.0 ), # from + electricity_input = data.frame( low = 0.171 , mid = 0.342, high = 0.456 ), # Converted from kWh/m3 to GW-yr/km3 + heat_input = data.frame( low = 0.456, mid = 1.026, high = 1.368 ), # Converted from kWh/m3 to GW-yr/km3 + thermal_pollution = data.frame( low = 0.360, mid = 0.952, high = 1.081 ), # Estimated from Figure 6.1 in 'Desalination and advanced wastewater treatment: Economics and Financing' by Corrado Sommariva + investment = round(data.frame( low = 1750*(1/0.365), mid = 1900*(1/0.365), high = 2200*(1/0.365) )), + fixed_cost = round(data.frame( low = 0.1*1350*(1/0.365), mid = 0.1*1550*(1/0.365), high = 0.1*2000*(1/0.365) )), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + capacity_factor = data.frame( low = 0.9, mid = 0.85, high = 0.8 ), + lifetime = data.frame( low = 50, mid = 30, high = 25 ) ) , + + membrane = data.frame( recovery_rate = data.frame( low = 0.45, mid = 0.4, high = 0.35 ), # inverse of recovery rate in km3/km3 + cooling_water_withdrawal = data.frame( low = 0, mid = 0, high = 0 ), # + cooling_water_return = data.frame( low = 0, mid = 0, high = 0 ), # + electricity_input = data.frame( low = 0.342, mid = 0.456, high = 0.571 ), # Converted from kWh/m3 to GW-yr/km3 + heat_input = data.frame( low = 0, mid = 0, high = 0 ), # + thermal_pollution = data.frame( low = 0, mid = 0, high = 0 ), # + investment = round( data.frame( low = 1300*(1/0.365), mid = 1550*(1/0.365), high = 1800*(1/0.365) ) ), # Converted from $/m3/day to million $ / km3 / yr + fixed_cost = round( 0.1 * data.frame( low = 1300*(1/0.365), mid = 1650*(1/0.365), high = 1800*(1/0.365) ) ), + var_cost = data.frame( low = 0, mid = 0, high = 0 ), + capacity_factor = data.frame( low = 0.9, mid = 0.85, high = 0.8 ), + lifetime = data.frame( low = 50, mid = 30, high = 25) ) + + ) + + inv_cost_desal = round( data.frame( membrane = ( (c(1301,1293,1244)/1301)* unlist( desal_par.list[['membrane']][paste('investment',parameter_levels2,sep='.')] ) ), distillation = ( (c(1301,1293,1244)/1301)* unlist( desal_par.list[['distillation']][paste('investment',parameter_levels2,sep='.')] ) ) ), digits = 3 ) + row.names(inv_cost_desal) = c(2020,2030,2050) + + # Load in the cleaned desal database from Hanasaki et al 2016 and add MESSAGE regions + reg.spdf = readOGR('P:/ene.model/data/desalination','REGION_dissolved',verbose=FALSE) + global_desal.spdf = spTransform( readOGR('P:/ene.model/data/desalination','global_desalination_plants'), crs(reg.spdf) ) + global_desal.spdf@data$region = over(global_desal.spdf,reg.spdf[,which(names(reg.spdf) == 'REGION')]) + global_desal.spdf = global_desal.spdf[ -1*which( is.na(global_desal.spdf@data$region) ), ] + global_desal.spdf@data$msg_vintage = sapply( global_desal.spdf@data$online, function(x){ as.numeric( model_years[ which.min( ( as.numeric( model_years ) - x )^2 ) ] ) } ) + global_desal.spdf@data$technology_2 = sapply( global_desal.spdf@data$technology, function(x){ if( grepl('MSF',x)|grepl('MED',x) ){ return('distillation') }else{ return('membrane') }} ) + + # From : Chart 1.1 in 'Executive Summary Desalination Technology Markets Global Demand Drivers, Technology Issues, Competitive Landscape, and Market Forecasts' + # Global desalination capacity in 2010 was approx. 24 km3 / year + global_desal.spdf@data$m3_per_day = global_desal.spdf@data$m3_per_day * ( 24 / ( sum( global_desal.spdf@data$m3_per_day ) * 365 / 1e9 ) ) + + # Match to message vintaging and regions + historical_desal_capacity.list = lapply( c('membrane','distillation'), function(tt){ + temp = data.frame( do.call(cbind, lapply( region, function(reg){ sapply( unique(global_desal.spdf@data$msg_vintage)[order(unique(global_desal.spdf@data$msg_vintage))], function(y){ (365/1e9) * max( 0, sum( global_desal.spdf@data$m3_per_day[ which( global_desal.spdf@data$msg_vintage == y & global_desal.spdf@data$region == unlist(strsplit(reg,'_'))[2] & global_desal.spdf@data$technology_2 == tt ) ] , na.rm=TRUE ), na.rm=TRUE ) } ) } ) ) ) + names(temp) = region + row.names(temp) = unique(global_desal.spdf@data$msg_vintage)[order(unique(global_desal.spdf@data$msg_vintage))] + return(temp) + } ) + names(historical_desal_capacity.list) = c('membrane','distillation') + + # Add existing infrastructure and performance parameters for stand alone desal techs + ret = lapply( names(historical_desal_capacity.list), function(tt){ + + # Add to set list + ixDS$add_set( 'technology', tt ) + ixDS$add_set( 'cat_tec', paste( 'investment_other' , tt, sep='.') ) # Add technology to list of water system investments + ixDS$add_set( 'cat_tec', paste( desalination_tech_type, tt, sep='.') ) # Add technology to list of desal techs + + # Performance parameters - across all historical and future years + lapply( region, function(rr){ lapply( model_years[ which( model_years >= min( as.numeric( row.names( historical_desal_capacity.list[[tt]] ) ) ) ) ], function(yy){ + + cst = inv_cost_desal[ which.min( (as.numeric(yy) - as.numeric(row.names(inv_cost_desal)))^2 ),tt ] + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + unlist( cst ), + '-' ) + + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + unlist( desal_par.list[[tt]][paste('lifetime',parameter_levels2,sep='.')] ), + 'y' ) + + # Add the construction time + ixDS$add_par( 'construction_time', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 3, + 'y' ) + + # Add the historical capacity and activity for locked-in future years in the mitigation and no policy scenarios (e.g., 2030, 2040) + if( yy > 2010 & yy < firstmodelyear ) + { + ixDS$add_par( 'historical_activity', paste( rr, as.character( tt ), yy, mode_common , model_time, sep = '.' ), max(0, base_hist_act[ which( as.character( unlist( base_hist_act$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_act$year_all ) ) == yy & as.character( unlist( base_hist_act$node ) ) == rr ), 'val' ], na.rm=TRUE), '-' ) + ixDS$add_par( 'historical_new_capacity', paste( rr, as.character( tt ), yy, sep = '.' ), max(0, base_hist_ncap[ which( as.character( unlist( base_hist_ncap$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_ncap$year_all ) ) == yy & as.character( unlist( base_hist_ncap$node ) ) == rr ), 'val' ], na.rm=TRUE), '-' ) + } + + # Add i-o parameters + lapply( model_years[ which( model_years >= as.numeric(yy) & model_years <= ( as.numeric(yy) + unlist( desal_par.list[[tt]][paste('lifetime',parameter_levels,sep='.')] ) ) ) ], function(aa){ + + # Add the output efficiency ratio + ixDS$add_par( 'output', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'desalinated_water', desalination_level, model_time, model_time, sep = '.' ), # set key + 1, # parameter value + '-' ) + + # Add the input efficiency ratio - seawater + ixDS$add_par( 'input', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'saline_supply', water_supply_level, model_time, model_time, sep = '.' ), # set key + round( c( unlist( desal_par.list[[tt]][ paste('cooling_water_withdrawal',parameter_levels2,sep='.') ] ) + unlist( desal_par.list[[tt]][paste('recovery_rate',parameter_levels,sep='.')] )^-1 ), digits = 5), # parameter value + '-' ) + + # Add the input efficiency ratio - electricity + ixDS$add_par( 'input', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'electr', 'final', model_time, model_time, sep = '.' ), # set key + round( unlist( desal_par.list[[tt]][paste('electricity_input',parameter_levels2,sep='.')] ), digits = 5 ), # parameter value + '-' ) + + # Add the input efficiency ratio - heat + ixDS$add_par( 'input', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'd_heat', 'final', model_time, model_time, sep = '.' ), # set key + round( unlist( desal_par.list[[tt]][paste('heat_input',parameter_levels2,sep='.')] ), digits = 5 ), # parameter value + '-' ) + + # Add thermal pollution emission + ixDS$add_par( 'emission_factor', # parameter name + paste( rr, tt, yy, aa, mode_common, 'saline_thermal_pollution', sep = '.' ), # set key + round( unlist( desal_par.list[[tt]][paste('thermal_pollution',parameter_levels2,sep='.')] ), digits = 5 ), + '-' ) + + # Add wastewater (brine) + ixDS$add_par( 'emission_factor', # parameter name + paste( rr, tt, yy, aa, mode_common, 'saline_wastewater', sep = '.' ), # set key + round( c( unlist( desal_par.list[[tt]][paste('cooling_water_return',parameter_levels2,sep='.')] + (1 - desal_par.list[[tt]][paste('recovery_rate',parameter_levels,sep='.')] ) ) ), digits = 5) , + '-' ) + + # Add the variable cost + ixDS$add_par( 'var_cost', # parameter name + paste( rr, tt, yy, aa, mode_common, model_time, sep = '.' ), # set key + unlist( desal_par.list[[tt]][paste('var_cost',parameter_levels2,sep='.')] ), + '-' ) # units + + # Add fixed costs + ixDS$add_par( 'fix_cost', # parameter name + paste( rr, tt, yy, aa, sep = '.' ), # set key + unlist( desal_par.list[[tt]][paste('fixed_cost',parameter_levels2,sep='.')] ), + '-' ) + + # Add the capacity factor + ixDS$add_par( 'capacity_factor', # parameter name + paste( rr, tt, yy, aa, model_time, sep = '.' ), # set key + unlist( desal_par.list[[tt]][paste('capacity_factor',parameter_levels2,sep='.')] ), + '-' ) + + } ) + + } ) } ) + + # Add existing infrastructure and calibrate demands + lapply( region, function(rr){ lapply( row.names( historical_desal_capacity.list[[tt]] ), function(yy){ + + # Add the historical capacity + ixDS$add_par( 'historical_new_capacity', + paste( rr, tt, yy, sep = '.' ), + round( 1/5*unlist( historical_desal_capacity.list[[tt]][as.character(yy),rr] ), digits = 5), + '-' ) + + # Add the historical activity, calibrate the demands and bound lower activities of historical capacity to ensure utilization in future years + lapply( model_years[ which( model_years >= as.numeric(yy) & model_years <= ( as.numeric(yy)+ 5 + unlist( desal_par.list[[tt]][paste('lifetime',parameter_levels,sep='.')] ) ) ) ], function(aa){ + + # Add the historical activity and demands + if( as.numeric( aa ) <= 2010 ) + { + chk = tryCatch( ixDS$par( 'historical_activity', list( node_loc = rr, technology = tt, year_act = aa, mode = mode_common, time = model_time ) ), error = function(e){} ) + if( is.null( chk ) ) + { + ixDS$add_par( 'historical_activity', # parameter name + paste( rr, tt, aa, mode_common , model_time, sep = '.' ), # set key + round( unlist( desal_par.list[[tt]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[tt]][as.character(yy),rr] ), digits = 5 ), # parameter value + '-' ) + }else + { + ixDS$add_par( 'historical_activity', # parameter name + paste( rr, tt, aa, mode_common , model_time, sep = '.' ), # set key + round( unlist( chk['value'] ) + unlist( desal_par.list[[tt]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[tt]][as.character(yy),rr] ), digits = 5 ), # parameter value + '-' ) + } + }else + { + # Add lower activity bounds in future years to calibrate to make sure capacity is utilized - added cumulatively to account for vintaging + chk = tryCatch( ixDS$par( 'bound_activity_lo', list( node_loc = rr, technology = tt, year_act = aa, mode = mode_common, time = model_time ) ), error = function(e){} ) + if( is.null( chk ) ) + { + ixDS$add_par( 'bound_activity_lo', # parameter name + paste( rr, tt, aa, mode_common , model_time, sep = '.' ), # set key + round( unlist( desal_par.list[[tt]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[tt]][as.character(yy),rr] ), digits = 5 ), # parameter value + '-' ) + }else + { + ixDS$add_par( 'bound_activity_lo', # parameter name + paste( rr, tt, aa, mode_common , model_time, sep = '.' ), # set key + round( unlist( chk['value'] ) + unlist( desal_par.list[[tt]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[tt]][as.character(yy),rr] ), digits = 5 ), # parameter value + '-' ) + } + } + + # calibrate energy demands + chk = tryCatch( ixDS$par( 'demand', list( node = rr, commodity = 'i_spec', level = 'useful', year = aa, time = model_time ) ), error = function(e){} ) + if(!is.null( chk ) ) + { + ixDS$add_par( 'demand', # parameter name + paste( rr, 'i_spec', 'useful', aa, model_time, sep = '.' ), # set key + round( c( max( 0, unlist( chk['value'] ) - unlist( desal_par.list[[tt]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[tt]][as.character(yy),rr] ) * unlist( desal_par.list[[tt]][paste('electricity_input',parameter_levels,sep='.')] ) ) ), digits = 5), + 'GWa' ) + } + + chk = tryCatch( ixDS$par( 'demand', list( node = rr, commodity = 'i_therm', level = 'useful', year = aa, time = model_time ) ), error = function(e){} ) + if(!is.null( chk ) ) + { + ixDS$add_par( 'demand', # parameter name + paste( rr, 'i_therm', 'useful', aa, model_time, sep = '.' ), # set key + round( c( max( 0, ( unlist( chk['value'] ) - unlist( desal_par.list[[tt]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[tt]][as.character(yy),rr] ) * unlist( desal_par.list[[tt]][paste('heat_input',parameter_levels,sep='.')] ) ) ) ), digits = 5), + 'GWa' ) + } + + } ) + + } ) } ) + + } ) + + #### Aggregate the desalination production to allow for activity constraints covering all types of this technology group + + # Add to set list + tt = 'desal_t_d' + ixDS$add_set( 'technology', tt ) + ixDS$add_set( 'cat_tec', paste( 'investment_other' , tt, sep='.') ) # Add technology to list of water system investments + ixDS$add_set( 'cat_tec', paste( desalination_tech_type, tt, sep='.') ) # Add technology to list of desal techs + + # Performance parameters - across all historical and future years + ret = lapply( region, function(rr){ lapply( model_years[ which( model_years >= min( as.numeric( row.names( historical_desal_capacity.list[[1]] ) ) ) ) ], function(yy){ + + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 0, + '-' ) + + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 1, + 'y' ) + + # Add the construction time + ixDS$add_par( 'construction_time', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 1, + 'y' ) + + # Add i-o parameters + lapply( model_years[ which( model_years >= as.numeric(yy) & model_years <= ( as.numeric(yy) + unlist( desal_par.list[[1]][paste('lifetime',parameter_levels,sep='.')] ) ) ) ], function(aa){ + + # Add the output efficiency ratio + ixDS$add_par( 'output', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'freshwater_supply', water_supply_level, model_time, model_time, sep = '.' ), # set key + 1, # parameter value + '-' ) + + # Add the input efficiency ratio + ixDS$add_par( 'input', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'desalinated_water', desalination_level, model_time, model_time, sep = '.' ), # set key + 1, + '-' ) + + # Add the variable cost + ixDS$add_par( 'var_cost', # parameter name + paste( rr, tt, yy, aa, mode_common, model_time, sep = '.' ), # set key + 0, + '-' ) # units + + # Add fixed costs + ixDS$add_par( 'fix_cost', # parameter name + paste( rr, tt, yy, aa, sep = '.' ), # set key + 0, + '-' ) + + # Add the capacity factor + ixDS$add_par( 'capacity_factor', # parameter name + paste( rr, tt, yy, aa, model_time, sep = '.' ), # set key + 1, + '-' ) + + } ) + + } ) } ) + + # Add existing infrastructure + ret = lapply( names(historical_desal_capacity.list), function(dd){ lapply( region, function(rr){ lapply( row.names( historical_desal_capacity.list[[dd]] ), function(yy){ + + # Add the historical capacity + chk = tryCatch( ixDS$par( 'historical_new_capacity', list( node_loc = rr, technology = tt, year = yy ) ), error = function(e){} ) + if( is.null( chk ) ) + { + ixDS$add_par( 'historical_new_capacity', + paste( rr, tt, yy, sep = '.' ), + round( 1/5 * unlist( historical_desal_capacity.list[[dd]][as.character(yy),rr] ), digits = 5), + '-' ) + }else + { + ixDS$add_par( 'historical_new_capacity', + paste( rr, tt, yy, sep = '.' ), + round( unlist( chk['value'] ) + 1/5 * unlist( historical_desal_capacity.list[[dd]][as.character(yy),rr] ), digits = 5), + '-' ) + } + + # Add the historical activity + tstp = model_years[ which( model_years >= as.numeric(yy) & model_years <= 2010 ) ] + if( length(tstp) > 0 ) + { + lapply( tstp, function(aa){ + + chk = tryCatch( ixDS$par( 'historical_activity', list( node_loc = rr, technology = tt, year_act = aa, mode = mode_common, time = model_time ) ), error = function(e){} ) + + if( is.null( chk ) ) + { + ixDS$add_par( 'historical_activity', # parameter name + paste( rr, tt, aa, mode_common , model_time, sep = '.' ), # set key + round( unlist( desal_par.list[[dd]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[dd]][as.character(yy),rr] ), digits = 5 ), # parameter value + '-' ) + }else + { + ixDS$add_par( 'historical_activity', # parameter name + paste( rr, tt, aa, mode_common , model_time, sep = '.' ), # set key + round( unlist( chk['value'] ) + unlist( desal_par.list[[dd]][paste('capacity_factor',parameter_levels,sep='.')] ) * unlist( historical_desal_capacity.list[[dd]][as.character(yy),rr] ), digits = 5 ), # parameter value + '-' ) + } + + } ) + + } + + } ) } ) } ) + + # # Add future desalination demands based on projections developed previously - set as activity bound on aggregate desal tech + ret = lapply( region, function(rr){ lapply( model_years[ which( model_years > 2010 ) ], function(yy){ + if( as.numeric(yy) < 2100 ) + { + ixDS$add_par( 'bound_activity_lo', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + round( c( urban_desal_fraction.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] * urban_withdrawal.df[ as.character( yy ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), # parameter value + '-' ) + }else + { + ixDS$add_par( 'bound_activity_lo', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + round( c( urban_desal_fraction.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] * urban_withdrawal.df[ as.character( 2090 ), unlist( strsplit( rr, '_') )[2] ] ), digits = 2), # parameter value + '-' ) + } + } ) } ) + + #------------------------------------------------------------------------------------------------------- + # Add water withdrawal and return flow for thermal ppl cooling technologies + #------------------------------------------------------------------------------------------------------- + + # Technologies with historical capacity and activity + all_historical_new_capacity = ixDS$par( 'historical_new_capacity' ) + all_historical_activity = ixDS$par( 'historical_activity' ) + + # Add the cooling technology data to the db + skipped_tech_reg = NULL + ret = lapply( cooled_technologies_in_message, function(tech){ + + # Status update + print(paste( round( 100 * ( ( which( cooled_technologies_in_message == tech ) - 1 ) / ( length(cooled_technologies_in_message) ) ) ), ' % complete', sep='')) + + # Need to grab the entire data series for these variables to check whether they exist in all regions: there is probably a more efficient way to do this. + all_output = ixDS$par( 'output', list(technology = tech) ) + all_technical_lifetime = ixDS$par( 'technical_lifetime', list(technology = tech) ) + all_construction_time = ixDS$par( 'construction_time', list(technology = tech) ) + all_fix_cost = ixDS$par( 'fix_cost', list(technology = tech) ) + + all_inv_cost = ixDS$par( 'inv_cost', list(technology = tech) ) + + lapply( region, function(reg){ # go through each region + + # Retrieve the output for this particular cooled technology in MESSAGE + if(length(which(as.character(all_output$node_loc) == reg))>0) + { + + # Grab the output activity ratio + output = ixDS$par( 'output', list( node_loc = reg, technology = tech ) ) + + # Check if multiple modes - only need one + if( length(unique(output$mode)) > 1 ){ output = output[ which( output$mode == unique(output$mode)[1] ) , ] } + + # Check if multiple commodities - only need one + if( length(unique(output$commodity)) > 1 ){ output = output[ which( output$commodity == unique(output$commodity)[1] ) , ] } + + # Define the vintaging and time slicing parameters for the cooling technologies to match the cooled MESSAGE techs in the db + ind = data.frame( year_vtg = as.character( output$year_vtg ), + year_act = as.character( output$year_act ), + mode = as.character( output$mode ), + time = as.character( output$time ) ) + + # Retrieve the input for this particular cooled technology in MESSAGE + if( !( tech %in% names( manually_set_efficiencies ) ) ) + { + + # Grab the input activity ratio + input = ixDS$par( 'input', list( node_loc = reg, technology = tech ) ) + + # Check if multiple modes + if( length(unique(input$mode)) > 1 ){ input = input[ which( input$mode == unique(input$mode)[1] ) , ] } + + # Check if multiple commodities + if( length(unique(input$commodity)) > 1 ){ input = input[ which( input$commodity == unique(input$commodity)[1] ) , ] } + + # Check if output and input matrices of different length + if( nrow(ind) == nrow(input) ){ input_vec = input$value }else{ print('output and input different lengths') } + + }else{ input_vec = rep( (1/manually_set_efficiencies[[ tech ]]), nrow(ind) ) } # Use the manually set values where applicable + + # Retrieve the historical capacity for this particular cooled technology in MESSAGE + if(length(which( as.character(all_historical_new_capacity$node_loc) == reg & as.character(all_historical_new_capacity$technology) == tech ))>0) + { + historical_new_capacity = ixDS$par( 'historical_new_capacity', list( node_loc = reg, technology = tech ) ) + }else + { + historical_new_capacity = NULL + } + + # Retrieve the historical activity for this particular cooled technology in MESSAGE + if(length(which( as.character(all_historical_activity$node_loc) == reg & as.character(all_historical_activity$technology) == tech ))>0) + { + historical_activity = ixDS$par( 'historical_activity', list( node_loc = reg, technology = tech ) ) + }else + { + historical_activity = NULL + } + + # Technical lifetime + if(length(which(as.character(all_technical_lifetime$node_loc) == reg))>0){ technical_lifetime = ixDS$par( 'technical_lifetime', list( node_loc = reg, technology = tech ) ) } + + # Investment costs + if(length(which(as.character(all_inv_cost$node_loc) == reg))>0){ inv_cost = ixDS$par( 'inv_cost', list( node_loc = reg, technology = tech ) ) } + + # Fixed costs + if(length(which(as.character(all_fix_cost$node_loc) == reg))>0){ fix_cost = ixDS$par( 'fix_cost', list( node_loc = reg, technology = tech ) ) } + + # Construction time + if(length(which(as.character(all_construction_time$node_loc) == reg))>0){ construction_time = ixDS$par( 'construction_time', list( node_loc = reg, technology = tech ) ) } + + # Get the name of the cooling technologies for this particular cooled MESSAGE technology + techs_to_update = cooling_technologies_to_consider[ which( as.character( unlist(data.frame(strsplit( cooling_technologies_to_consider, '__'))[1,]) ) == as.character(tech) ) ] + id2 = apply(cbind(as.character( unlist(data.frame(strsplit( techs_to_update, '__'))[2,]) ),as.character( unlist(data.frame(strsplit( techs_to_update, '__'))[1,]) )),1,paste,collapse='_') # alternate ID in csv file + + # Go through each vintage and cooling option and add the corresponding data to the DB + ret = lapply( 1:length(ind$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + + # Add the technology to the set list - only need to for one region + if(reg == region[1]) + { + ixDS$add_set( 'technology', as.character( techs_to_update[ ttt ] ) ) + ixDS$add_set( 'cat_tec', paste( power_plant_cooling_tech_type , as.character( techs_to_update[ ttt ] ), sep='.') ) # Add technology to list of cooling technology types + ixDS$add_set( 'cat_tec', paste( 'investment_electricity' , as.character( techs_to_update[ ttt ] ), sep='.') ) # Add technology to list of electricity system investments + } + + # Set the input commodity using the name from the csv file, define output commodity using names generated and initialized previously + cmdty_in = as.character( tech_water_performance_ssp_msg_raw.df$water_supply_type[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ ttt ] ) ] ) + if( !is.na(cmdty_in) ){ if( cmdty_in == 'saline_supply' ){ cmdty_in = 'saline_supply_ppl' } } + cmdty_out = cooling_commodities[ which( unlist( strsplit( cooling_commodities, '__') )[seq(2, length(unlist( strsplit( cooling_commodities, '__') )), by=2)] == tech ) ] + + ## Set the water withdrawal, return flow, thermal pollution and parasitic electricity use for this cooling technology (as intensities) + + # Get the heat lost to emissions and electricity production and use to compute cooling fraction + emissions_heat_fraction = as.numeric(tech_water_performance_ssp_msg_raw.df$emissions_heat_fraction[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ) ]) # fraction of heat lost through emissions + cooling_fraction = input_vec * ( 1 - emissions_heat_fraction / max(input_vec) ) - 1 # scale heat lost to emission proportionally to the changes in the cooling fraction + + # Scale historical withdrawal to follow heat rate improvements + water_withdrawal = round( ( 60 * 60 * 24 * 365 ) * ( 1e-9 ) * ( cooling_fraction / max(cooling_fraction) ) * as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ttt] ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_withdrawal_',parameter_levels,'_m3_per_output',sep='') ) ] ), digits = rnd ) + + # Return flow using consumption intensity + return_flow = round( water_withdrawal * ( 1 - as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ ttt ] ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_consumption_',parameter_levels,'_m3_per_output',sep='') ) ] ) / as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ttt] ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_withdrawal_',parameter_levels,'_m3_per_output',sep='') ) ] ) ), digits = rnd ) + + # Parasitic electricity consumption + parasitic_electricity = as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ ttt ] ), 'parasitic_electricity_demand_fraction' ] ) + + ## + # Add the variable cost + ixDS$add_par( 'var_cost', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), as.character( ind$time[ v ] ), sep = '.' ), # set key + round( ( 1e3 ) * cooling_technology_costs$var_costs[ which(as.character(row.names(cooling_technology_costs)) == as.character(techs_to_update[ ttt ]) ) ],digits = rnd), # parameter value + 'USD/GWa' ) # units + + # Add the capacity factor + ixDS$add_par( 'capacity_factor', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$time[ v ] ), sep = '.' ), # set key + 1, # Assume for now that cooling technologies are always available + '-' ) # units + + # Add the output efficiency ratio + ixDS$add_par( 'output', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), reg, cmdty_out, cooling_level, as.character( ind$time[ v ] ), as.character( ind$time[ v ] ), sep = '.' ), # set key + 1, # parameter value + '-' ) + + if( unlist(strsplit(id2[ttt],'_'))[1] != 'air' ) # Don't need to add water use inputs for air cooling technologies + { + + # Add the input efficiency ratio - water withdrawal + ixDS$add_par( 'input', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), reg, cmdty_in, water_supply_level, as.character( ind$time[ v ] ), as.character( ind$time[ v ] ), sep = '.' ), # set key + water_withdrawal[ v ], # parameter value + '-' ) + + # Add the thermal pollution emission factor + if( unlist(strsplit(id2[ttt],'_'))[1] == 'ot' ) # only for once through cooling technologies + { + if( unlist(strsplit(id2[ttt],'_'))[2] == 'fresh' ){ emis = 'fresh_thermal_pollution' }else{ emis = 'saline_thermal_pollution' } + ixDS$add_par( 'emission_factor', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), emis, sep = '.' ), # set key + round( cooling_fraction[ v ], digits = rnd ), # parameter value + '-' ) + } + + # Add the wastewater emission factor + if( unlist(strsplit(id2[ttt],'_'))[2] == 'fresh' ){ emis = 'fresh_wastewater' }else{ emis = 'saline_wastewater' } + ixDS$add_par( 'emission_factor', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), emis, sep = '.' ), # set key + return_flow[ v ], # parameter value + '-' ) + + } + + # Add the input efficiency ratio - parasitic electricity consumption + if( parasitic_electricity > 0 ) # only for some cooling technologies + { + ixDS$add_par( 'input', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), reg, 'electr', 'secondary', as.character( ind$time[ v ] ), as.character( ind$time[ v ] ), sep = '.' ), # set key + parasitic_electricity, # parameter value + '-' ) + } + + # Add the cooling commodity to the cooled message technology input list + if( ttt == 1 ) # only need to do once + { + ixDS$add_par( 'input', # parameter name + paste( reg, tech, as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), reg, cmdty_out, cooling_level, as.character( ind$time[ v ] ), as.character( ind$time[ v ] ), sep = '.' ), # set key + 1, # parameter value + '-' ) + } + + } ) } ) + + # Go through each vintage and cooling option and add the corresponding data to the DB for investement costs + ret = lapply( 1:length(inv_cost$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( inv_cost$year_vtg[ v ] ), sep = '.' ), # set key + round( ( 1e3 ) * cooling_technology_costs$inv_costs[ which(as.character(row.names(cooling_technology_costs)) == as.character(techs_to_update[ ttt ]) ) ],digits = rnd), # parameter value (convert from mill USD/MW to USD/GWa) + 'USD/GWa' ) + } ) } ) + + # Go through each vintage and cooling option and add the corresponding data to the DB for investement costs + ret = lapply( 1:length(fix_cost$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the fixed cost + ixDS$add_par( 'fix_cost', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), sep = '.' ), # set key + round( ( 1e3 ) * cooling_technology_costs$fixed_costs[ which(as.character(row.names(cooling_technology_costs)) == as.character(techs_to_update[ ttt ]) ) ],digits = rnd), # parameter value + 'USD/GWa' ) + } ) } ) + + # Go through each vintage and cooling option and add the corresponding data to the DB for historical capacity + ret = lapply( 1:length(historical_new_capacity$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + + # Add the historical capacity + if( !is.null(historical_new_capacity) ) # Check if historical capacity exists + { + # The output of the power plant cooling technologies are defined in terms of the electric power output supported + # Use the historical capacity for each cooled power plant type and the share of each cooling technology to estimate the historical capacity + if(use_davies_shares) + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), paste('mix',unlist(strsplit(reg,'_'))[2],'Davies_2013',sep='_') ] + }else + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), paste('mix',unlist(strsplit(reg,'_'))[2],sep='_') ] + } + cap = round( shr * historical_new_capacity[ which( as.character( historical_new_capacity$year_vtg ) == as.character( historical_new_capacity$year_vtg[v] ) ) , 'value' ], digits = rnd ) + + # Add the ix db + ixDS$add_par( 'historical_new_capacity', + paste( reg, techs_to_update[ ttt ], as.character( historical_new_capacity$year_vtg[ v ] ), sep = '.' ), + cap, + as.character( historical_new_capacity$unit[1] ) ) + } + + } ) } ) + + # Go through each year and cooling option and add the corresponding data to the DB for historical activity + ret = lapply( 1:length(historical_activity$year_act), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + + # Add the historical_activity + if( !is.null(historical_activity) ) # Check if historical_activity exists + { + + # The output of the power plant cooling technologies are defined in terms of the electric power output supported + # Use the historical_activity for each cooled power plant type and the share of each cooling technology to estimate the historical activity + if(use_davies_shares) # whether or not to use the share from Davies or Raptis + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), paste('mix',unlist(strsplit(reg,'_'))[2],'Davies_2013',sep='_') ] + }else + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), paste('mix',unlist(strsplit(reg,'_'))[2],sep='_') ] + } + act = round( shr * historical_activity[ which( as.character( historical_activity$year_act ) == as.character( historical_activity$year_act[v] ) ) , 'value' ], digits = rnd ) + + # Add the ix db + ixDS$add_par( 'historical_activity', + paste( reg, techs_to_update[ ttt ], as.character( historical_activity$year_act[ v ] ), as.character( historical_activity$mode[ v ] ) , as.character( historical_activity$time[ v ] ), sep = '.' ), + act, + as.character( historical_activity$unit[1] ) ) + + } + } ) } ) + + ret = lapply( 1:length(technical_lifetime$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( technical_lifetime$year_vtg[ v ] ), sep = '.' ), # set key + technical_lifetime[ v , 'value' ], + 'y' ) + } ) } ) + + ret = lapply( 1:length(construction_time$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the construction time + ixDS$add_par( 'construction_time', # parameter name + paste( reg, techs_to_update[ ttt ], as.character( construction_time$year_vtg[ v ] ), sep = '.' ), # set key + construction_time[ v , 'value' ], + as.character( construction_time[ v , 'unit' ] ) ) + } ) } ) + + }else{ skipped_tech_reg = rbind( skipped_tech_reg, data.frame( technology = tech, region = reg, comb = paste(tech,reg,sep='_') ) ) } # add to list of skipped techs + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add water withdrawal and return flow for non-cooling technologies + #------------------------------------------------------------------------------------------------------- + + print('Adding water coefficients for non-cooling technologies') + + # Could speed this up a bit by allocating the ppl water use during the previous step. + + if(ssss == 'SSP3') + { + skipped_techs = c('igcc_co2scr','gfc_co2scr','cfc_co2scr','h2_co2_scrub','h2b_co2_scrub','gas_htfc','h2_bio','h2_bio_ccs','h2_smr','h2_smr_ccs','h2_coal','h2_coal_ccs','h2_elec','solar_pv_ppl','wind_ppl') + }else + { + skipped_techs = c('igcc_co2scr','gfc_co2scr','cfc_co2scr','h2_co2_scrub','h2b_co2_scrub','gas_htfc','solar_pv_ppl','wind_ppl') + } + message_technologies_with_water_data2 = message_technologies_with_water_data[which(!(message_technologies_with_water_data %in% skipped_techs))] + ret = lapply( message_technologies_with_water_data2, function(tech){ + + # Status update + print(paste( round( 100 * ( ( which( message_technologies_with_water_data2 == tech ) - 1 ) / ( length(message_technologies_with_water_data2) ) ) ), ' % complete', sep='')) + + all_output = ixDS$par( 'output', list(technology = tech) ) + + lapply( region, function(reg){ + + if( length(which(as.character(all_output$node_loc) == reg))>0 ) + { + + output = ixDS$par( 'output', list( node_loc = reg, technology = tech ) ) + + # Check if multiple modes - only need one + if( length(unique(output$mode)) > 1 ){ output = output[ which( output$mode == unique(output$mode)[1] ) , ] } + + # Check if multiple commodities - only need one + if( length(unique(output$commodity)) > 1 ){ output = output[ which( output$commodity == unique(output$commodity)[1] ) , ] } + + # Define the vintaging and time slicing parameters + ind = data.frame( year_vtg = as.character( output$year_vtg ), + year_act = as.character( output$year_act ), + mode = as.character( output$mode ), + time = as.character( output$time ) ) + + # Input commodity + cmdty_in = as.character( tech_water_performance_ssp_msg_raw.df$water_supply_type[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ) ] ) + if( !is.na(cmdty_in) ){ if( cmdty_in == 'saline_supply' ){ cmdty_in = 'saline_supply_ppl' } } + + # Add the water coefficients for each vintage and time slice + ret = lapply( 1:nrow( ind ), function(v){ + + # Using data from input csv files and converted from m3 / GJ to km3 / GWa + water_withdrawal = round( ( 60 * 60 * 24 * 365 ) * ( 1e-9 ) * as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_withdrawal_',parameter_levels,'_m3_per_output',sep='') ) ] ), digits = rnd ) + return_flow = round( water_withdrawal - ( 60 * 60 * 24 * 365 ) * ( 1e-9 ) * as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_consumption_',parameter_levels,'_m3_per_output',sep='') ) ] ), digits = rnd ) + + # Add the withdrawal to db as an input + ixDS$add_par( 'input', # parameter name + paste( reg, tech, as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), reg, cmdty_in, water_supply_level, as.character( ind$time[ v ] ), as.character( ind$time[ v ] ), sep = '.' ), # set key + water_withdrawal, + '-' ) + + # Add the return flow to the emission factors + if( !( tech %in% hydro_techs ) ) # no wastewater for hydropower / instream technologies sads + { + ixDS$add_par( 'emission_factor', # parameter name + paste( reg, tech, as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), 'fresh_wastewater', sep = '.' ), + return_flow, + '-' ) + } + } ) + } + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add water resource extraction technologies + #------------------------------------------------------------------------------------------------------- + + print('Adding water source extraction technologies') + + # List of technologies with historical water use + hist_techs = list( freshwater_supply = c( as.character( message_technologies_with_water_data2 )[which( as.character( message_technologies_with_water_data2 ) %in% as.character( unique( all_historical_activity$technology ) ) & !( as.character( message_technologies_with_water_data2 ) %in% c( tech_water_performance_ssp_msg_raw.df$technology_name[which(tech_water_performance_ssp_msg_raw.df$water_supply_type %in% c('freshwater_instream','upstream_landuse'))] ) ) )], cooling_technologies_to_consider[ which( unlist(lapply(cooling_technologies_to_consider,function(zzz){unlist(strsplit( zzz, '__' ))[1]})) %in% unique( all_historical_activity$technology ) & unlist(lapply( unlist(lapply(cooling_technologies_to_consider,function(zzz){unlist(strsplit( zzz, '__' ))[2]})), function(xxx){ unlist(strsplit( xxx, '_' ))[2] } ) ) == 'fresh' ) ] ), + saline_supply = cooling_technologies_to_consider[ which( c( unlist(lapply( unlist(lapply(cooling_technologies_to_consider,function(zzz){unlist(strsplit( zzz, '__' ))[2]})), function(xxx){ unlist(strsplit( xxx, '_' ))[2] } ) ) == 'saline' ) ) ], + freshwater_instream = c( tech_water_performance_ssp_msg_raw.df$technology_name[which(tech_water_performance_ssp_msg_raw.df$water_supply_type == 'freshwater_instream')] ), + upstream_landuse = c( tech_water_performance_ssp_msg_raw.df$technology_name[which(tech_water_performance_ssp_msg_raw.df$water_supply_type == 'upstream_landuse')] ) ) + + # Technologies with historical capacity and activity - update + all_historical_new_capacity = ixDS$par( 'historical_new_capacity' ) + all_historical_activity = ixDS$par( 'historical_activity' ) + + ret = lapply( water_source_extraction_techs, function(tech){ + + # Status update + print( paste( round( 100 * ( ( which( water_source_extraction_techs == tech ) - 1 ) / ( length(water_source_extraction_techs) ) ) ), ' % complete', sep='') ) + + lapply( region, function(reg){ # across each region + + # Get the commodity for the source type (freshwater or saline or instream) + cmdty_out = as.character( unlist(strsplit(tech,'__'))[2] ) + + lapply( model_years, function( yy ){ # go through the years + + # Add the output for each timeslice + ret = lapply( model_time, function(tm){ + + ixDS$add_par( 'output', # parameter name + paste( reg, tech, as.character( yy ), as.character( yy ), mode_common, reg, cmdty_out, water_supply_level, as.character( tm ), as.character( tm ), sep = '.' ), # set key + 1, # parameter value + '-' ) + + } ) + + # Add the electricity usage for freshwater supply + if( tech == 'extract__freshwater_supply' ) + { + ret = lapply( model_time, function(tm){ + ixDS$add_par( 'input', # parameter name + paste( reg, tech, as.character( yy ), as.character( yy ), mode_common, reg, 'electr', 'final', as.character( tm ), as.character( tm ), sep = '.' ), # set key + unlist( fw_electricity_input[ parameter_levels ] ), # parameter value + '-' ) + } ) + } + + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste( reg, tech, as.character( yy ), sep = '.' ), # set key + 0, + '-' ) + + # Add the fixed cost + # print(ixDS$get_par_set('fix_cost')) + ixDS$add_par( 'fix_cost', # parameter name + paste( reg, tech, as.character( yy ), as.character( yy ), sep = '.' ), # set key + 0, + '-' ) + + # Average water supply expansion costs + # Medium-scale storage costs from A.A. Keller et al. assuming long-term storage costs - converted from USD / m3 to million USD / km3 + #fwc = 1e3 * data.frame(low = 0.01, mid = 0.02, high = 0.1) + fwc = 1e3 * data.frame(low = 0, mid = 0, high = 0) + if( tech == 'extract__freshwater_supply' ){ vc = unlist(fwc[ parameter_levels ]) }else{ vc = 0 } + # Add the variable costs + # print(ixDS$get_par_set('var_cost')) + ret = lapply( model_time, function(tm){ + ixDS$add_par( 'var_cost', # parameter name + paste( reg, tech, as.character( yy ), as.character( yy ), as.character( mode_common ), as.character( tm ), sep = '.' ), # set key + vc, # default for now + '-' ) + } ) + + # Add the capacity factor + # print(ixDS$get_par_set('capacity_factor')) + ret = lapply( model_time, function(tm){ + ixDS$add_par( 'capacity_factor', # parameter name + paste( reg, tech, as.character( yy ), as.character( yy ), as.character( tm ), sep = '.' ), # set key + 1, + '-' ) + } ) + + # Add the technical lifetime + if(yy < model_years[length(model_years)]){tl = as.numeric(model_years[which(model_years==yy)+1]) - as.numeric(yy)}else{tl = as.numeric(model_years[length(model_years)]) - as.numeric(model_years[length(model_years)-1])} + ixDS$add_par( 'technical_lifetime', # parameter name + paste( reg, tech, as.character( yy ), sep = '.' ), # set key + tl, + 'y' ) + + # Add the contruction time + ixDS$add_par( 'construction_time', # parameter name + paste( reg, tech, as.character( yy ), sep = '.' ), # set key + 0, + 'y' ) + + # Add capacity in locked in years for mitigation and no policy scenarios + if( yy > 2010 & yy < firstmodelyear ) + { + ixDS$add_par( 'historical_activity', paste( reg, as.character( tt ), yy, mode_common , model_time, sep = '.' ), max(0, base_hist_act[ which( as.character( unlist( base_hist_act$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_act$year_all ) ) == yy & as.character( unlist( base_hist_act$node ) ) == reg ), 'val' ], na.rm=TRUE), '-' ) + ixDS$add_par( 'historical_new_capacity', paste( reg, as.character( tt ), yy, sep = '.' ), max(0, base_hist_ncap[ which( as.character( unlist( base_hist_ncap$tec ) ) == as.character( d_tech[[ tt ]] ) & as.numeric( unlist( base_hist_ncap$year_all ) ) == yy & as.character( unlist( base_hist_ncap$node ) ) == reg ), 'val' ], na.rm=TRUE), '-' ) + } + + } ) + + # Historical activity of extraction techs determined from + # the historical activity of the MESSAGE techs + techs_hist = unlist( hist_techs[ cmdty_out ] ) + temp = lapply(techs_hist, function(ttt){ + hist_act = all_historical_activity[which( as.character(all_historical_activity$technology) == ttt & as.character(all_historical_activity$node_loc) == reg ),] + hist_act_yy = unique(hist_act$year_act) + if( length(hist_act_yy) > 0) + { + if( cmdty_out == 'saline_supply' ){ cmdty_out2 = 'saline_supply_ppl' }else{ cmdty_out2 = cmdty_out } + ret1 = data.frame( do.call(rbind, lapply( hist_act_yy, function(yyy){ + yr = as.character(yyy) + inp = mean( ixDS$par( 'input', list( node_loc = reg, technology = ttt, year_act = as.character(hist_act$year_act[which(hist_act$year_act == yyy)]), commodity = cmdty_out2 ) )[,'value'], na.rm=TRUE ) + act = hist_act$value[which(hist_act$year_act == yyy)] + return( c(yr, inp * sum(act)) ) # multiply input by activity to estimate historical demands + } ) ) ) + }else{ ret1 = NULL } + return(ret1) + }) + names(temp) = techs_hist + + # total historical is summed across the demands from all technologies + hist_years = unique(unlist(lapply( 1:length(techs_hist), function(xxx){ if(!is.null(temp[[xxx]])){ unlist( as.character( temp[[xxx]][,1] ) )}}))) + hist_tot_act = unlist( lapply( 1:length(hist_years), function(yyy){ sum( unlist( lapply( 1:length(techs_hist), function(xxx){ + temp2 = temp[[xxx]] + if( hist_years[yyy] %in% as.character( temp2[,1] ) ) + { + return( as.numeric( as.character( temp2[ which( as.character( temp2[,1] ) == as.character( hist_years[yyy] ) ), 2 ] ) ) ) + }else{ return(NULL) } + } ) ), na.rm = TRUE ) } ) ) + names( hist_tot_act ) = hist_years + + # total historical demand from desalination + if( cmdty_out == 'saline_supply' ) + { + techs_hist = c('membrane','distillation') + temp = lapply(techs_hist, function(ttt){ + hist_act = all_historical_activity[which( as.character(all_historical_activity$technology) == ttt & as.character(all_historical_activity$node_loc) == reg ),] + hist_act_yy = unique(hist_act$year_act) + if( length(hist_act_yy) > 0) + { + ret1 = data.frame( do.call(rbind, lapply( hist_act_yy, function(yyy){ + yr = as.character(yyy) + inp = mean( ixDS$par( 'input', list( node_loc = reg, technology = ttt, year_act = as.character(hist_act$year_act[which(hist_act$year_act == yyy)]), commodity = cmdty_out ) )[,'value'], na.rm=TRUE ) + act = hist_act$value[which(hist_act$year_act == yyy)] + return( c(yr, inp * sum(act)) ) # multiply input by activity to estimate historical demands + } ) ) ) + }else{ ret1 = NULL } + return(ret1) + }) + names(temp) = techs_hist + + # total historical is summed across the demands from all technologies + hist_years = unique(unlist(lapply( 1:length(techs_hist), function(xxx){ if(!is.null(temp[[xxx]])){ unlist( as.character( temp[[xxx]][,1] ) )}}))) + hist_tot_act_ds = unlist( lapply( 1:length(hist_years), function(yyy){ sum( unlist( lapply( 1:length(techs_hist), function(xxx){ + temp2 = temp[[xxx]] + if( hist_years[yyy] %in% as.character( temp2[,1] ) ) + { + return( as.numeric( as.character( temp2[ which( as.character( temp2[,1] ) == as.character( hist_years[yyy] ) ), 2 ] ) ) ) + }else{ return(NULL) } + } ) ), na.rm = TRUE ) } ) ) + names( hist_tot_act_ds ) = hist_years + hist_tot_act = sapply( unique( names( hist_tot_act_ds ), ( hist_tot_act ) ), function(xxx){ return( max( 0, hist_tot_act_ds[ xxx ], na.rm = TRUE ) + max( 0, hist_tot_act[ xxx ], na.rm = TRUE ) ) } ) + names( hist_tot_act ) = unique( names( hist_tot_act_ds ), ( hist_tot_act ) ) + } + + # Add the ix db + ret = lapply( names( hist_tot_act ), function(yyy){ + wtdm = hist_tot_act[ yyy ] + max( 0, tryCatch( sum( ixDS$par( 'demand', list( node = reg, commodity = c('freshwater_supply','urban_mw','urban_dis','rural_mw','rural_dis'), year = yyy ) )[ 'value' ], na.rm=TRUE ), error = function(e){} ), na.rm = TRUE ) + ixDS$add_par( 'historical_activity', + paste( reg, tech, yyy, as.character( mode_common ) , model_time, sep = '.' ), + round(wtdm, digits=rnd), + '-' ) + } ) + + # Calibrate the electricity demands for freshwater supply + if( tech == 'extract__freshwater_supply' ) + { + hist_elec_2010.df = data.frame( hist_elec_2010 = unlist(ixDS$par( 'historical_activity', list( technology = tech, node_loc=reg ) )['value']) * unlist( fw_electricity_input[ parameter_levels ] ) ) + row.names( hist_elec_2010.df ) = unlist(ixDS$par( 'historical_activity', list( technology = tech, node_loc=reg ) )['year_act']) + ret = lapply( row.names(hist_elec_2010.df), function(aaa){ + chk = tryCatch( ixDS$par( 'demand', list( node = reg, commodity = 'i_spec', level = 'useful', year = aaa, time = model_time ) ), error = function(e){} ) + if(!is.null( chk ) ) + { + ixDS$add_par( 'demand', # parameter name + paste( reg, 'i_spec', 'useful', aaa, model_time, sep = '.' ), # set key + round( c( max( 0, c( unlist( chk['value'] ) - unlist( hist_elec_2010.df[ aaa , ] ) ) ) ), digits = 5), + 'GWa' ) + } + } ) + ret = lapply( as.character( model_years[ which(model_years > 2010) ] ), function(aaa){ + chk = tryCatch( ixDS$par( 'demand', list( node = reg, commodity = 'i_spec', level = 'useful', year = aaa, time = model_time ) ), error = function(e){} ) + if(!is.null( chk ) ) + { + ixDS$add_par( 'demand', # parameter name + paste( reg, 'i_spec', 'useful', aaa, model_time, sep = '.' ), # set key + round( c( max( 0, c( unlist( chk['value'] ) - unlist( hist_elec_2010.df[ '2010' , ] ) ) ) ), digits = 5), + 'GWa' ) + } + } ) + } + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add reservoir technologies + #------------------------------------------------------------------------------------------------------- + + print('Adding reservoir technologies') + + ret = ixDS$add_set( 'commodity', 'yield_freshwater_supply' ) + ret = ixDS$add_set( 'technology', 'storage__freshwater_supply' ) + ret = ixDS$add_set( 'type_tec', 'water_resource_storage' ) # Add to technology types + ret = ixDS$add_set( 'cat_tec', paste( 'water_resource_storage' , 'storage__freshwater_supply', sep='.') ) + ret = ixDS$add_set( 'cat_tec', paste( 'investment_other', 'storage__freshwater_supply', sep='.') ) + + # Medium-scale storage costs from Table 5 in A.A. Keller et al. assuming long-term storage costs - converted from USD / m3 to million USD / km3 + storage_yield_efficiency = list( low = 0.7, mid = 1, high = 1.3 ) + inv_storage__freshwater_supply = list( low = 170, mid = 420, high = 2140 ) + fix_storage__freshwater_supply = list( low = 0.02*170, mid = 0.02*420, high = 0.02*2140 ) + lifetime_storage__freshwater_supply = list( low = 90, mid = 80, high = 50 ) + constime_storage__freshwater_supply = list( low = 1, mid = 1, high = 1 ) + + ret = lapply( region, function(reg){ # across each region + + # Get the commodity for the source type (freshwater or saline or instream) + cmdty_out = 'yield_freshwater_supply' + tech = 'storage__freshwater_supply' + + lapply( model_years, function( yy ){ # go through the years + + # Add the output for storage each timeslice + ret = lapply( model_time, function(tm){ + + ixDS$add_par( 'output', # parameter name + paste( reg, tech, as.character( yy ), as.character( yy ), mode_common, reg, cmdty_out, water_supply_level, as.character( tm ), as.character( tm ), sep = '.' ), # set key + 1, # parameter value + '-' ) + + } ) + + # Add the input for extraction technologies each timeslice + ret = lapply( model_time, function(tm){ + + ixDS$add_par( 'input', # parameter name + paste( reg, 'extract__freshwater_supply', as.character( yy ), as.character( yy ), mode_common, reg, cmdty_out, water_supply_level, as.character( tm ), as.character( tm ), sep = '.' ), # set key + storage_yield_efficiency[[ parameter_levels ]], # parameter value + '-' ) + + } ) + + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste( reg, tech, as.character( yy ), sep = '.' ), # set key + inv_storage__freshwater_supply[[ parameter_levels ]], + '-' ) + + # Add the fixed cost + # print(ixDS$get_par_set('fix_cost')) + ixDS$add_par( 'fix_cost', # parameter name + paste( reg, tech, as.character( yy ), as.character( yy ), sep = '.' ), # set key + fix_storage__freshwater_supply[[ parameter_levels ]], + '-' ) + + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste( reg, tech, as.character( yy ), sep = '.' ), # set key + lifetime_storage__freshwater_supply[[ parameter_levels ]], + 'y' ) + + # Add the contruction time + ixDS$add_par( 'construction_time', # parameter name + paste( reg, tech, as.character( yy ), sep = '.' ), # set key + constime_storage__freshwater_supply[[ parameter_levels ]], + 'y' ) + + } ) + + # Historical activity of extraction techs determined from + # the historical activity of the MESSAGE techs + cmdty_out = 'freshwater_supply' + techs_hist = unlist( hist_techs[ cmdty_out ] ) + temp = lapply(techs_hist, function(ttt){ + hist_act = all_historical_activity[which( as.character(all_historical_activity$technology) == ttt & as.character(all_historical_activity$node_loc) == reg ),] + hist_act_yy = unique(hist_act$year_act) + if( length(hist_act_yy) > 0) + { + if( cmdty_out == 'saline_supply' ){ cmdty_out2 = 'saline_supply_ppl' }else{ cmdty_out2 = cmdty_out } + ret1 = data.frame( do.call(rbind, lapply( hist_act_yy, function(yyy){ + yr = as.character(yyy) + inp = mean( ixDS$par( 'input', list( node_loc = reg, technology = ttt, year_act = as.character(hist_act$year_act[which(hist_act$year_act == yyy)]), commodity = cmdty_out2 ) )[,'value'], na.rm=TRUE ) + act = hist_act$value[which(hist_act$year_act == yyy)] + return( c(yr, inp * sum(act)) ) # multiply input by activity to estimate historical demands + } ) ) ) + }else{ ret1 = NULL } + return(ret1) + }) + names(temp) = techs_hist + + # total historical is summed across the demands from all technologies + hist_years = unique(unlist(lapply( 1:length(techs_hist), function(xxx){ if(!is.null(temp[[xxx]])){ unlist( as.character( temp[[xxx]][,1] ) )}}))) + hist_tot_act = unlist( lapply( 1:length(hist_years), function(yyy){ sum( unlist( lapply( 1:length(techs_hist), function(xxx){ + temp2 = temp[[xxx]] + if( hist_years[yyy] %in% as.character( temp2[,1] ) ) + { + return( as.numeric( as.character( temp2[ which( as.character( temp2[,1] ) == as.character( hist_years[yyy] ) ), 2 ] ) ) ) + }else{ return(NULL) } + } ) ), na.rm = TRUE ) } ) ) + names( hist_tot_act ) = hist_years + + + # Add the ix db + ret = lapply( names( hist_tot_act ), function(yyy){ + wtdm = hist_tot_act[ yyy ] + max( 0, tryCatch( sum( ixDS$par( 'demand', list( node = reg, commodity = c('freshwater_supply','urban_mw','urban_dis','rural_mw','rural_dis'), year = yyy ) )[ 'value' ], na.rm=TRUE ), error = function(e){} ), na.rm = TRUE ) + ixDS$add_par( 'historical_activity', + paste( reg, tech, yyy, as.character( mode_common ) , model_time, sep = '.' ), + round(wtdm, digits=rnd), + '-' ) + } ) + + } ) + + #--------------------------------------------------- + # Add consumption as emission from the energy sector + #--------------------------------------------------- + + ## Add consumption as an emission + ret = ixDS$add_set( "emission", "fresh_consumption" ) + ret = ixDS$add_set( "emission", "saline_consumption" ) + ret = ixDS$add_set( "emission", "instream_consumption" ) + ret = ixDS$add_set( 'type_emission', 'water_consumption' ) # Add to technology types + ret = ixDS$add_set( 'cat_emission', paste( 'water_consumption', 'fresh_consumption', sep='.' ) ) + consumption_type = data.frame( freshwater_supply = "fresh_consumption", saline_supply = "saline_consumption", saline_supply_ppl = "saline_consumption" ) + res = lapply( c( ixDS$set('node') ), function(nn){ + + withdrawal_intensities.df = data.frame( tryCatch( ixDS$par( 'input', list(commodity=c('freshwater_supply','saline_supply_ppl'),level=water_supply_level,node_loc=nn) ), error = function(e){} ) ) + t2r = c('urban_t_d','urban_unconnected','rural_t_d','rural_unconnected') + withdrawal_intensities.df = withdrawal_intensities.df[ -1*( which( as.character( withdrawal_intensities.df$technology ) %in% t2r ) ), ] + + if(length(withdrawal_intensities.df)>0) + { + return_intensities.df = data.frame( tryCatch( ixDS$par( 'emission_factor', list( emission=c('fresh_wastewater','saline_wastewater'), node_loc=nn, technology=unique( as.character(withdrawal_intensities.df$technology)) ) ), error = function(e){} ) ) + res1 = lapply( 1:nrow(withdrawal_intensities.df), function(i){ + ixDS$add_par( "emission_factor", + paste( nn, withdrawal_intensities.df$technology[ i ], as.character( withdrawal_intensities.df$year_vtg[ i ] ), as.character( withdrawal_intensities.df$year_act[ i ] ), as.character( withdrawal_intensities.df$mode[ i ] ), as.character( unlist( consumption_type[ as.character( withdrawal_intensities.df$commodity[ i ] ) ] ) ), sep = '.' ), # set key + round( c( unlist(withdrawal_intensities.df$value[ i ]) - unlist(return_intensities.df$value[ which( as.character( unlist( return_intensities.df$technology ) ) == as.character( unlist( withdrawal_intensities.df$technology[ i ] ) ) & as.character( unlist( return_intensities.df$year_vtg ) ) == as.character( unlist( withdrawal_intensities.df$year_vtg[ i ] ) ) & as.character( unlist( return_intensities.df$year_act ) ) == as.character( unlist( withdrawal_intensities.df$year_act[ i ] ) ) & as.character( unlist( return_intensities.df$mode ) ) == as.character( unlist( withdrawal_intensities.df$mode[ i ] )) ) ] ) ), digits = 6 ), # parameter value + '-' ) + } ) + } + } ) + + # Hydropower consumption + withdrawal_intensities.df = data.frame( tryCatch( ixDS$par( 'input', list(commodity=c('freshwater_instream')) ), error = function(e){} ) ) + res = lapply( 1:nrow(withdrawal_intensities.df), function(i){ + ixDS$add_par( "emission_factor", + paste( as.character( withdrawal_intensities.df$node_loc[ i ] ), withdrawal_intensities.df$technology[ i ], as.character( withdrawal_intensities.df$year_vtg[ i ] ), as.character( withdrawal_intensities.df$year_act[ i ] ), as.character( withdrawal_intensities.df$mode[ i ] ), "instream_consumption", sep = '.' ), # set key + round( ( withdrawal_intensities.df$value[ i ] ), digits = 6 ), # parameter value + '-' ) + } ) + + + #------------------------------------------------------------------------------------------------------- + # Add baseline cooling technology policy - No new once-through freshwater cooling capacity + #------------------------------------------------------------------------------------------------------- + print('Adding once through freshwater baseline cooling policy') + + # Once through freshwater cooled techs and seawater for SDG6 scenarios + if( model_scenarios$newscenarioName[sc] %in% c("baseline_globiom_SDG_sdg6eff","baseline_globiom_SDG_sdg6led","baseline_globiom_SDG_sdg6supp","baseline_globiom_SDG_sdg6supp2") ) + { + otc = unlist(lapply( ixDS$set('technology'), function(x) if( length(unlist(strsplit(x,'__'))==2) ){ if( unlist(strsplit(x,'__'))[2] %in% c('ot_fresh','ot_saline') ){ return( x ) } } )) + }else{ + otc = unlist(lapply( ixDS$set('technology'), function(x) if( length(unlist(strsplit(x,'__'))==2) ){ if( unlist(strsplit(x,'__'))[2] %in% c('ot_fresh') ){ return( x ) } } )) + } + + # Loop through and bound new capacity additions to zero for otc techs + ret = lapply( otc, function(tech){ + + # status + print(paste( round( 100 * ( ( which( otc == tech ) - 1 ) / ( length(otc) ) ) ), ' % complete', sep='')) + + # Across all regions + lapply( region, function(reg){ + if( !( paste(tech,reg,sep='_') %in% skipped_tech_reg$comb ) ) + { + if( !( unlist(strsplit(tech,'__'))[1] == 'nuc_lc' & reg == 'R11_MEA') ) + { + vtg = unique( ixDS$par( 'output', list( node_loc = reg, technology = tech ) )$year_vtg ) + lapply( vtg, function(vv){ + ixDS$add_par( 'bound_new_capacity_up', + paste( reg, tech, vv, sep = '.' ), + 0, + '-' ) + } ) + } + } + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add baseline cooling technology policy - No new once-through seawater cooling capacity beyond existing levels + #------------------------------------------------------------------------------------------------------- + + print('Adding once through saline water baseline cooling policy') + + #### Aggregate saline water for ppl cooling to allow for activity constraints covering all types of this technology group + + # Add to set list + tt = 'saline_ppl_t_d' + ixDS$add_set( 'technology', tt ) + ixDS$add_set( 'cat_tec', paste( 'investment_other' , tt, sep='.') ) # Add technology to list of water system investments + + # List of techs with saline once through + otc = unlist(lapply( ixDS$set('technology'), function(x) if( length(unlist(strsplit(x,'__'))==2) ){ if( unlist(strsplit(x,'__'))[2] %in% c('ot_saline') ){ return( x ) } } )) + yb = 2010 # base year + + # Getting the historical activity of all seawater cooling technologies - will use to constrain future years + nms_hist = sapply(1:nrow( all_historical_activity ),function(fff){ paste(all_historical_activity$technology[fff],all_historical_activity$node_loc[fff],sep='_') }) + ret = do.call( cbind, lapply( otc, function(tech){ + print(paste( round( 100 * ( ( which( otc == tech ) - 1 ) / ( length(otc) ) ) ), ' % complete', sep='')) + dfs = data.frame( do.call(rbind, lapply( region, function(reg){ + if( !( paste(tech,reg,sep='_') %in% skipped_tech_reg$comb ) & paste(tech,reg,sep='_') %in% nms_hist ) + { + # Total historical activity of cooled powered plant and share for ocean water cooling + chk = tryCatch( ixDS$par( 'historical_activity', list( node_loc = reg, technology = unlist(strsplit(tech,'__'))[1], year_act= 2010 ) ), error = function(e){} ) + if(!is.null(chk)) + { + hist_act = sum( chk[,'value'] ) + if(use_davies_shares) + { + hist_shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(tech,'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(tech,'__'))[2] ) ), paste('mix',unlist(strsplit(reg,'_'))[2],'Davies_2013',sep='_') ] + }else + { + hist_shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(tech,'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(tech,'__'))[2] ) ), paste('mix',unlist(strsplit(reg,'_'))[2],sep='_') ] + } + + #return(as.matrix(max(0,hist_act*hist_shr,na.rm=TRUE))) # multiply the activity by the share to estimate the total historical output + + }else + { + return(as.matrix(c(0))) + } + }else + { + return(as.matrix(c(0))) + } + } ) ) ) + row.names(dfs) = region + return(dfs) } ) ) + names(ret) = otc + ww1 = rowSums(ret) + + # Performance parameters - across all historical and future years + ret = lapply( region, function(rr){ lapply( model_years, function(yy){ + + # Add the investment cost + ixDS$add_par( 'inv_cost', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 0, + '-' ) + + # Add the technical lifetime + ixDS$add_par( 'technical_lifetime', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 1, + 'y' ) + + # Add the construction time + ixDS$add_par( 'construction_time', # parameter name + paste(rr, tt, yy, sep = '.' ), # set key + 1, + 'y' ) + + # Add i-o parameters + lapply( model_years[ which( model_years >= as.numeric(yy) & model_years <= ( as.numeric(yy) + unlist( desal_par.list[[1]][paste('lifetime',parameter_levels,sep='.')] ) ) ) ], function(aa){ + + # Add the output efficiency ratio + ixDS$add_par( 'output', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'saline_supply_ppl', water_supply_level, model_time, model_time, sep = '.' ), # set key + 1, # parameter value + '-' ) + + # Add the input efficiency ratio + ixDS$add_par( 'input', # parameter name + paste( rr, tt, yy, aa, mode_common, rr, 'saline_supply', water_supply_level, model_time, model_time, sep = '.' ), # set key + 1, + '-' ) + + # Add the variable cost + ixDS$add_par( 'var_cost', # parameter name + paste( rr, tt, yy, aa, mode_common, model_time, sep = '.' ), # set key + 0, + '-' ) # units + + # Add fixed costs + ixDS$add_par( 'fix_cost', # parameter name + paste( rr, tt, yy, aa, sep = '.' ), # set key + 0, + '-' ) + + # Add the capacity factor + ixDS$add_par( 'capacity_factor', # parameter name + paste( rr, tt, yy, aa, model_time, sep = '.' ), # set key + 1, + '-' ) + + } ) + + } ) } ) + + # Add existing infrastructure + ret = lapply( region, function(rr){ lapply( model_years, function(yy){ + + ixDS$add_par( 'historical_new_capacity', + paste( rr, tt, yy, sep = '.' ), + round( ww1[ rr ]/5 , digits = 2 ), + '-' ) + + ixDS$add_par( 'historical_activity', + paste( rr, tt, yy, mode_common, model_time, sep = '.' ), + round( ww1[ rr ] , digits = 2 ), + '-' ) + + } ) } ) + + # # Add future constraints - no expansion of seawater cooling beyond current capacity + ret = lapply( region, function(rr){ lapply( model_years[ which( model_years > 2010 ) ], function(yy){ + ixDS$add_par( 'bound_activity_up', # parameter name + paste( rr, tt, yy, mode_common , model_time, sep = '.' ), # set key + round( ww1[ rr ] , digits = 2 ), # parameter value + '-' ) + } ) } ) + + # Include set of all tecs in the type tec category + ret = ixDS$add_set( 'type_tec', 'all_tec' ) # Add to technology types + ret = lapply( unique(ixDSoriginal$set( 'technology' )), function(x){ ixDS$add_set( 'cat_tec', paste( 'all_tec' , x, sep='.' ) ) } ) + + #--------------------------------------------------------------------- + # Fix the land-use scenarios that can be used for mitigation + #--------------------------------------------------------------------- + + lsn = ixDS$set('land_scenario') + lsn = lsn[ which( as.numeric( unlist( strsplit( lsn, 'GHG' ) )[ seq( 2, 2*length(lsn), by = 2 ) ] ) >= 200 ) ] + if ( length(lsn) > 0 ) + { + + ret = lapply( region, function( rr ){ lapply( model_years[ which( model_years > 2010 ) ], function( yy ){ lapply( lsn, function( ll ){ + + ixDS$add_par( 'fixed_land', # parameter name + paste( rr, ll, yy, sep = '.' ), # set key + 0, # parameter value + '%' ) + + # ixDS$remove_par( 'fixed_land', paste( rr, ll, yy, sep = '.' ) ) + + } ) } ) } ) + + } + + #-------------------------------------------------- + # Commit to DB and set to default + #-------------------------------------------------- + + # Commit the current editions to the db and set as default + ixDS$commit(paste(comment,water_policies,sep=' ')) + ixDS$set_as_default() + rm(ixDS) + gc() + + #---------------------------------------------------- + # Generate water and emission constrained scenarios + #---------------------------------------------------- + + # options(java.parameters = "-Xmx16g") + + # library("rixmp") + # library("rmessageix") + + # ## Set path ixmp folder in message_ix working copy + # message_ix_path = Sys.getenv("MESSAGE_IX_PATH") + + # # Country region mapping key + # country_region_map_key.df = data.frame( read.csv('P:/ene.model/data/Water/demands/country_region_map_key.csv', stringsAsFactors=FALSE) ) + + # # SSP scenario + # ssss = 'SSP2' + + # # Rounding parameter for decimals + # rnd = 6 + + # # list of model-scenario combinations + # model_scenarios = data.frame( model = c( "MESSAGE-GLOBIOM CD-LINKS R2.3.1", "MESSAGE-GLOBIOM CD-LINKS R2.3.1" , "MESSAGE-GLOBIOM CD-LINKS R2.3.1","MESSAGE-GLOBIOM CD-LINKS R2.3.1" ), + # scenario = c( "baseline", "baseline", "baseline", "baseline" ), + # newscenarioName = c( "baseline_globiom_base_watbaseline", "baseline_globiom_SDG_sdg6supp", "baseline_globiom_SDG_sdg6eff", "baseline_globiom_SDG_sdg6led" ) ) + + # # launch the IX modeling platform using the default central ORCALE database + # ix_platform = ixmp.Platform( dbprops = 'ixmp.properties' ) + + # sc = 2 + # newscenarioName = as.character( unlist( model_scenarios$newscenarioName[sc] ) ) + + # if( model_scenarios$newscenarioName[sc] %in% c("baseline_globiom_SDG_sdg6eff","baseline_globiom_SDG_sdg6led") ){ water_policies = 'SDG6' }else{ water_policies = 'NoWatPol' } + + ixDS = ix_platform$Scenario( model=as.character( unlist( model_scenarios$model[sc] ) ), scen=as.character( unlist( model_scenarios$newscenarioName[sc] ) ) ) + + #solve for policy scenarios - make sure to remember that the water constraints depend on baseline (i.e., c0 and w0) + for( climpol in c( 'c0', '1p5', '2p0' ) ) + { + + # Set water constraint level for energy sector + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_base_watbaseline" ){ watcon = 'w0' } + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_SDG_sdg6supp" ){ watcon = 'w5' } + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_SDG_sdg6supp2" ){ watcon = 'w5' } + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_SDG_sdg6eff" ){ watcon = 'w10' } + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_SDG_sdg6led" ){ watcon = 'w10' } + + # Sensitivity cases for alternative regional freshwater constraints + for( watcon2 in c('w0','w10','w20','w30') ) + { + + # status + print( paste( 'Working on: ',as.character( model_scenarios$newscenarioName[sc] ),' - ', climpol, ' - ', watcon2, sep = '' ) ) + + # Clone basis + scname = paste(newscenarioName,watcon2,climpol,sep='_') + ixDS0 = ixDS$clone( new_model = as.character( unlist( model_scenarios$model[sc] ) ), new_scen = scname, annotation = 'constraints sensitivity', keep_sol = FALSE ) + ixDS0$check_out() + + # Constrain withdrawals to fraction of basis + wcons = as.numeric( strsplit( watcon, 'w' )[[1]][2] ) / 100 + wcons2 = as.numeric( strsplit( watcon2, 'w' )[[1]][2] ) / 100 + + if( wcons > 0 ) + { + + require(gdxrrw) + igdx( 'C:/GAMS/win64/24.8' ) + upath = paste(message_ix_path,'/model/output/',sep='') + scen = paste('MSGoutput',"baseline_globiom_base_watbaseline_w0_c0",sep='_') + res.list = lapply( scen, function(fpath){ + vars = c( 'ACT' ) + gdx_res = lapply( vars, function( vv ){ + tmp = rgdx( paste( upath, fpath, sep = '' ), list( name = vv, form = "sparse" ) ) + names(tmp$uels) = tmp$domains + rs = data.frame( tmp$val ) + names(rs) = c( unlist( tmp$domains ), 'val' ) + rs[ , which( names(rs) != 'val' ) ] = do.call( cbind, lapply( names( rs )[ which( names(rs) != 'val' ) ], function( cc ){ sapply( unlist( rs[ , cc ] ) , function(ii){ return( tmp$uels[[ cc ]][ ii ] ) } ) } ) ) + return(rs) + } ) + names(gdx_res) = vars + return(gdx_res) + } ) + names(res.list) = scen + res.df = data.frame( res.list[[1]][[1]] ) + res.df = res.df[ which( as.character( unlist( res.df$tec ) ) == "extract__freshwater_supply" & as.numeric( unlist( res.df$year_all ) ) >= 2030 ), ] + + # Upper activity bound to reflect water conservation constraint based on baseline trajectory + ret = lapply( 1:nrow(res.df), function(ii){ ixDS0$add_par( 'bound_activity_up', paste( res.df[ii,'node'], res.df[ii,'tec'], res.df[ii,'year_all'], ixDS0$set('mode')[1], ixDS0$set('time'), sep = '.' ), round( c( res.df[ii,'val'] * ( 1 - wcons2 ) ) , digits = 3 ), '-' ) } ) + + } + + if( wcons2 > 0 ) + { + + require(gdxrrw) + igdx( 'C:/GAMS/win64/24.8' ) + upath = paste(message_ix_path,'/model/output/',sep='') + scen = paste('MSGoutput',"baseline_globiom_base_watbaseline_w0_c0",sep='_') + + # Get the consumption trajectory for the baseline scenario + res.list = lapply( scen, function(fpath){ + vars = c( 'EMISS' ) + gdx_res = lapply( vars, function( vv ){ + tmp = rgdx( paste( upath, fpath, sep = '' ), list( name = vv, form = "sparse" ) ) + names(tmp$uels) = tmp$domains + rs = data.frame( tmp$val ) + names(rs) = c( unlist( tmp$domains ), 'val' ) + rs[ , which( names(rs) != 'val' ) ] = do.call( cbind, lapply( names( rs )[ which( names(rs) != 'val' ) ], function( cc ){ sapply( unlist( rs[ , cc ] ) , function(ii){ return( tmp$uels[[ cc ]][ ii ] ) } ) } ) ) + return(rs) + } ) + names(gdx_res) = vars + return(gdx_res) + } ) + names( res.list ) = scen + res.df = data.frame( res.list[[1]][[1]] ) + res.df = res.df[ which( as.character( unlist( res.df$emission ) ) == "fresh_consumption" & as.character( unlist( res.df$node ) ) != "World" & as.character( unlist( res.df$type_tec ) ) == "all_tec" & as.numeric( unlist( res.df$year_all ) ) >= 2030 ), ] + + # Upper activity bound to reflect water conservation constraint based on baseline trajectory + ret = lapply( 1:nrow(res.df), function(ii){ ixDS0$add_par( 'bound_emission', paste(res.df[ii,'node'],'water_consumption','all',res.df[ii,'year_all'],sep='.'), round( c( res.df[ii,'val'] * ( 1 - wcons ) ) , digits = 3 ) , '-' ) } ) + + } + + # Set cumulative emissions bound if 1p5 degree scenario - using emissions bound from Gruebler et al. 2018 + if( climpol == '1p5' ) + { + ixDS0$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 1400, "tC") ## This budget (for 2021-2110) was run in scenarios 'b2C_NPi2020_noBECCS_V7a' to 'V8' to get something around 1.5C. (A budget of 1200 was initially used for V7, but the carbon prices were ridiculously higher.) Median temperature is around 1.61C in 2050 and 1.37 in 2100. Median radiative forcing (total) is 1.94 W/m2 in 2100. + } + + if( climpol == '2p0' ) + { + ixDS0$add_par("bound_emission",paste("World", "TCE", "all", "cumulative", sep='.'), 2500, "tC") # + } + + if( as.character( model_scenarios$newscenarioName[sc] ) == "baseline_globiom_SDG_sdg6led" ){ runm = 'MESSAGE' }else{ runm = 'MESSAGE-MACRO' } + + # Commit, solve and upload solution + ixDS0$commit(paste(water_policies,sep=' ')) + ixDS0$to_gdx( paste(message_ix_path,'/model/data',sep=''), paste( 'MSGdata_', scname, '.gdx',sep='') ) + current_working_drive = getwd() + setwd(paste(message_ix_path,'/model',sep='')) # set based on local machine + cmd = paste( "gams ",runm,"_run.gms --in=data\\MSGdata_",scname,".gdx --out=output\\MSGoutput_",scname,".gdx", sep='' ) + res = system(cmd) + setwd(current_working_drive) + if( res == 0 ) + { + ixDS0$read_sol_from_gdx( paste(message_ix_path,'/model/output',sep=''), + paste( 'MSGoutput_', scname, '.gdx',sep=''), + var_list=NULL, + equ_list="COMMODITY_BALANCE_FULL", + check_sol=TRUE ) + } + ixDS0$set_as_default() + rm(ixDS0) + gc() + + } + + } + + } diff --git a/nest/message_ix_models/model/water/data/deprecated/cooling_tech_av.R b/nest/message_ix_models/model/water/data/deprecated/cooling_tech_av.R new file mode 100644 index 0000000..c6e3895 --- /dev/null +++ b/nest/message_ix_models/model/water/data/deprecated/cooling_tech_av.R @@ -0,0 +1,905 @@ + +# call using e.g.,: source('C:/Users/parkinso/git/message_ix/workflow/water/ssp_water_implement.r') +options( java.parameters = "-Xmx16g" ) +rm(list=ls()) +graphics.off() + +library(reticulate) +path_to_python <- "/anaconda/bin/python" +use_python(path_to_python) +#------------------------------------------------------------------------------- +# load ixToolbox auxiliary functions and get the gateway to the ixToolbox JVM +#------------------------------------------------------------------------------- +print('Initializing functions and parameters') + +# launch the IX modeling platform using the default central ORCALE database +import('ixmp') +ixmp <- import('ixmp') +message_ix <- import('message_ix') +#source(file.path(Sys.getenv("IXMP_R_PATH"),"ixmp.r")) +#ix_platform = ixPlatform() +mp = ixmp$Platform(name='ixmp_dev') +scen_list = mp$scenario_list(default = F) + +# Set local message_ix and GAMS directories +wkd_message_ix = "C:/Users/parkinso/git/" # !!!!! Set based on local machine +wkd_GAMS = paste(unlist(strsplit( unlist(strsplit(Sys.getenv("PATH"),';'))[which( + grepl('GAMS', unlist(strsplit(Sys.getenv("PATH"),';')) ))[1]], '[\\]' )),collapse='/') + +SSP_scenarios = c('SSP1') # go through and create a baseline for each scenario + +for( ssss in SSP_scenarios ) # this should be parrellized +{ + + #------------------------------------------------------------------------------- + # Load the MESSAGE-GLOBIOM SSP baseline scenario + # UPDATE: MESSAGE_GLOBIOM scenario give error with the current version of message+ix + # because the set 'rating' and probably other are missing + # I will use an CD-Links scenario, which has all SSPs + #------------------------------------------------------------------------------- + + modelName = paste( "CD_Links", ssss, sep = "_" ) + scenarioName = "baseline" + newscenarioName = "baseline_with_water_2020" + comment = "Adding water for energy structure and basic data for SSP to existing MESSAGE run" + ixDSoriginal = message_ix$Scenario(mp, model = modelName, scenario = scenarioName) + ixDS = ixDSoriginal$clone(modelName, newscenarioName, keep_solution = F) + ixDS$check_out() + + #------------------------------------------------------------------------------- + # Set some global parameters + #------------------------------------------------------------------------------- + + # Rounding parameter for decimals + rnd = 6 + + # low, mid or high parameter settings for water techs + parameter_levels = 'mid' + + # Whether or not to use initial shares from Davies et al 2013 - alternatively uses shares estimated with the dataset from Raptis et al 2016. + use_davies_shares = TRUE + + #------------------------------------------------------------------------------------------------------- + # Compare the data in the database to the data in the csv files to determine the technologies to include + #------------------------------------------------------------------------------------------------------- + + # Import raw cooling water data: + # Input data file 1: CSV containing the water use coefficients (incl. parasitic electricity) for each MESSAGE technology + # Source for power plant cooling water use: Meldrum et al. 2013 + # Source for hydropower water use: Taken as an average across Grubert et al 2016 and Scherer and Pfister 2016. + # Parasitic electricity requirements estimated from Loew et al. 2016. + # All other water coefficients come from Fricko et al 2016. + # To compile the data, a complete list of technologies from MESSAGE was initially output to CSV. + # The water parameters were then checked and entered manually based on data reported in the sources above. + + tech_water_performance_ssp_msg_raw.df = data.frame(read.csv(paste('~/Reps/message_data/data/water/tech_water_performance_ssp_msg.csv' )),stringsAsFactors=FALSE) + # Input data file 2: CSV containing the regional shares of each cooling technology and the investment costs + # The regional shares are estimated using the dataset from Raptis and Pfister 2016 and country boundaries from the GADM dataset + # Each plant type in the Raptis and Pfister dataset is mapped to the message technologies. The fraction is calculated using + # the total capacity identified for each cooling technology in each country. These results are aggregated into the message 11 regions. + # The costs are estimated from Loew et al. 2016. + cooltech_cost_and_shares_ssp_msg_raw.df = data.frame(read.csv(paste( + '~/Reps/message_data/data/water/cooltech_cost_and_shares_ssp_msg.csv'),stringsAsFactors=FALSE)) + + # Define alternate id for cooling technologies from csv file + cooltech_cost_and_shares_ssp_msg_raw.df$alt_id = apply( + cbind(cooltech_cost_and_shares_ssp_msg_raw.df[,1:2]), 1, paste, collapse="__") + + # Get the names of the technologies in the MESSAGE IAM from the database + technologies_in_message = ixDS$set('technology') + + # Get the name of the regions + region = as.character( ixDS$set('cat_node')$node ) + + # Get the name of the commodities + commodity = ixDS$set('commodity') + + # Model years + model_years = ixDS$set('year') + + # Model timeslices + model_time = ixDS$set('time') + + # Which technologies in MESSAGE are also included in csv files? + message_technologies_with_water_data = as.character(tech_water_performance_ssp_msg_raw.df$technology_name)[ + which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) %in% technologies_in_message )] + + message_technologies_without_water_data = as.character(tech_water_performance_ssp_msg_raw.df$technology_name)[ + which( !(as.character(tech_water_performance_ssp_msg_raw.df$technology_name) %in% technologies_in_message ) )] + + message_technologies_with_water_data_alt = as.character(technologies_in_message)[ + which( technologies_in_message %in% as.character(tech_water_performance_ssp_msg_raw.df$technology_name) )] + + message_technologies_without_water_data_alt = as.character(technologies_in_message)[ + which( !(technologies_in_message %in% as.character(tech_water_performance_ssp_msg_raw.df$technology_name) )) ] + + # Define a common mode using the existing DB settings + mode_common = ixDS$set('mode')[1] # Common mode name from set list + + # Define hydropower technologies + hydro_techs = c('hydro_hc','hydro_lc') + + #------------------------------------------------------------------------------------------------------- + # Add cooling technologies using historical ppl data and pre-defined regional shares + #------------------------------------------------------------------------------------------------------- + print('Adding cooling technologies') + + # Cooling technologies: + # Once through (fresh and saline), closed-loop (fresh) and air cooled options considered + # No air cooling options for nuclear and CCS + # Only consider the cooling technologies that correspond to power plant technologies in the MESSAGE model. + cooling_technologies_to_consider = c( apply( cooltech_cost_and_shares_ssp_msg_raw.df[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$utype ) %in% as.character( message_technologies_with_water_data ) ), c("utype","cooling") ], 1, paste, collapse="__") ) + + # Cooling commodities by power plant type - output commodity for cooling technology + cooling_commodities = unlist( lapply( 1:length( unique( cooltech_cost_and_shares_ssp_msg_raw.df$utype[ as.numeric( names(cooling_technologies_to_consider) ) ] ) ), function(x){ paste( 'cooling', unique( cooltech_cost_and_shares_ssp_msg_raw.df$utype[ as.numeric(names(cooling_technologies_to_consider)) ] )[x], sep='__' ) } ) ) + ret = lapply( 1:length(cooling_commodities), function(x){ ixDS$add_set( "commodity", as.character( cooling_commodities[x] ) ) } ) # Add commodity to ix DB + + # Water sources - input commodity for cooling technology + water_supply_type = unique(tech_water_performance_ssp_msg_raw.df$water_supply_type[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) %in% message_technologies_with_water_data | as.character(tech_water_performance_ssp_msg_raw.df$technology_group) == 'cooling' ) ] ) + water_supply_type = water_supply_type[-1*which(is.na(water_supply_type))] + ret = lapply( 1:length(water_supply_type), function(x){ ixDS$add_set( "commodity", as.character( water_supply_type[x] ) ) } ) # Add commodity to ix DB + + # Water supply and cooling as a new level + water_supply_level = 'water_supply' + ret = ixDS$add_set( "level", water_supply_level ) # Add level to ix DB + cooling_level = 'cooling' + ret = ixDS$add_set( "level", cooling_level ) # Add level to ix DB + + # Wastewater as an emission - could alternatively be included as commodity balance + ret = ixDS$add_set( "emission", "fresh_wastewater" ) + ret = ixDS$add_set( "emission", "saline_wastewater" ) # some of these should alternatively be defined in the input files + + # Thermal pollution as an emission - consider oceans and rivers + ret = ixDS$add_set( "emission", "fresh_thermal_pollution" ) + ret = ixDS$add_set( "emission", "saline_thermal_pollution" ) + + # Water source extraction technologies - add to technology and type sets + # Currently distinguishes: freshwater_instream (hydropower), freshwater_supply (all techs using freshwater), saline_supply (ocean and brackish resources) and upstream_landuse (globiom accounting) + water_source_extraction_techs = unlist( lapply( 1:length(water_supply_type), + function(x){ paste( 'extract', as.character( water_supply_type[x] ), sep='__' ) } ) ) + ret = lapply( 1:length(water_supply_type), function(x){ ixDS$add_set( "technology", water_source_extraction_techs[x] ) } ) + water_resource_extraction_tech_type = 'water_resource_extraction' + ret = ixDS$add_set( "type_tec", water_resource_extraction_tech_type ) # Add to technology types + + # the way mapping sets are defined is different, remove paste and add c('type_tec','tec') + ret = lapply( 1:length(water_supply_type), function(x){ ixDS$add_set( "cat_tec", c( water_resource_extraction_tech_type , water_source_extraction_techs[x]) ) } ) + ret = lapply( 1:length(water_supply_type), function(x){ ixDS$add_set( "cat_tec", c( 'investment_other' , water_source_extraction_techs[x]) ) } ) + + # Power plant cooling technologies as technology types - will set technology names later + power_plant_cooling_tech_type = 'power_plant_cooling' + ixDS$add_set( "type_tec", power_plant_cooling_tech_type ) + + # Create data.frame that stores the relevant cost data from the csv files + cooling_technology_costs = data.frame( inv_costs = unlist( lapply( cooling_technologies_to_consider, function(techs2check){ as.numeric( cooltech_cost_and_shares_ssp_msg_raw.df$investment_million_USD_per_MW_mid[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$alt_id ) == as.character( techs2check ) ) ] ) } ) ), + fixed_costs = 0,#unlist( lapply( cooling_technologies_to_consider, function(techs2check){ as.numeric( cooltech_cost_and_shares_ssp_msg_raw.df$fixed_million_USD_per_MW[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$alt_id ) == as.character( techs2check ) ) ] ) } ) ), + var_costs = 0,#unlist( lapply( cooling_technologies_to_consider, function(techs2check){ as.numeric( cooltech_cost_and_shares_ssp_msg_raw.df$variable_million_USD_per_MW[ which( as.character( cooltech_cost_and_shares_ssp_msg_raw.df$alt_id ) == as.character( techs2check ) ) ] ) } ) ), + row.names = cooling_technologies_to_consider ) + + # Recover the names of the cooled technologies in MESSAGE (i.e., the thermal power plants) + cooled_technologies_in_message = unique( as.character( unlist(data.frame(strsplit( cooling_technologies_to_consider, '__'))[1,]) ) ) + + # Manually set efficiencies - data not readily extracted from the DB - currently manually read from .inp file :( + manually_set_efficiencies = list( geo_hpl = 0.850, + geo_ppl = 0.385, + nuc_hc = 0.326, # couldn't find these numbers in the .inp file so using average heat rate of 3.065 kWh heat per kWh electricity from EIA + nuc_lc = 0.326, # couldn't find these numbers in the .inp file so using average heat rate of 3.065 kWh heat per kWh electricity from EIA + solar_th_ppl = 0.385 ) + + # Technologies with historical capacity and activity + all_historical_new_capacity = ixDS$par( 'historical_new_capacity' ) + all_historical_activity = ixDS$par( 'historical_activity' ) + + # Add the cooling technology data to the db + skipped_tech_reg = NULL + ret = lapply( cooled_technologies_in_message, function(tech){ + + # Status update + print(paste( round( 100 * ( ( which( cooled_technologies_in_message == tech ) - 1 ) / ( length(cooled_technologies_in_message) ) ) ), ' % complete', sep='')) + + # Need to grab the entire data series for these variables to check whether they exist in all regions: there is probably a more efficient way to do this. + all_output = ixDS$par( 'output', list(technology = tech) ) + all_technical_lifetime = ixDS$par( 'technical_lifetime', list(technology = tech) ) + all_construction_time = ixDS$par( 'construction_time', list(technology = tech) ) + all_fix_cost = ixDS$par( 'fix_cost', list(technology = tech) ) + all_inv_cost = ixDS$par( 'inv_cost', list(technology = tech) ) + + lapply( region, function(reg){ # go through each region + + # Retrieve the output for this particular cooled technology in MESSAGE + if(length(which(as.character(all_output$node_loc) == reg))>0) + { + + # Grab the output activity ratio + output = ixDS$par( 'output', list( node_loc = reg, technology = tech ) ) + + # Check if multiple modes - only need one + if( length(unique(output$mode)) > 1 ){ output = output[ which( output$mode == unique(output$mode)[1] ) , ] } + + # Check if multiple commodities - only need one + if( length(unique(output$commodity)) > 1 ){ output = output[ which( output$commodity == unique(output$commodity)[1] ) , ] } + + # Define the vintaging and time slicing parameters for the cooling technologies to match the cooled MESSAGE techs in the db + ind = data.frame( year_vtg = as.character( output$year_vtg ), + year_act = as.character( output$year_act ), + mode = as.character( output$mode ), + time = as.character( output$time ) ) + + # Retrieve the input for this particular cooled technology in MESSAGE + if( !( tech %in% names( manually_set_efficiencies ) ) ) + { + + # Grab the input activity ratio + input = ixDS$par( 'input', list( node_loc = reg, technology = tech ) ) + + # Check if multiple modes + if( length(unique(input$mode)) > 1 ){ input = input[ which( input$mode == unique(input$mode)[1] ) , ] } + + # Check if multiple commodities + if( length(unique(input$commodity)) > 1 ){ input = input[ which( input$commodity == unique(input$commodity)[1] ) , ] } + + # Check if output and input matrices of different length + if( nrow(ind) == nrow(input) ){ input_vec = input$value }else{ print('output and input different lengths') } + + }else{ input_vec = rep( (1/manually_set_efficiencies[[ tech ]]), nrow(ind) ) } # Use the manually set values where applicable + + # Retrieve the historical capacity for this particular cooled technology in MESSAGE + if(length(which( as.character(all_historical_new_capacity$node_loc) == reg & + as.character(all_historical_new_capacity$technology) == tech ))>0) + { + historical_new_capacity = ixDS$par( 'historical_new_capacity', list( node_loc = reg, technology = tech ) ) + }else + { + historical_new_capacity = NULL + } + + # Retrieve the historical activity for this particular cooled technology in MESSAGE + if(length(which( as.character(all_historical_activity$node_loc) == reg & + as.character(all_historical_activity$technology) == tech ))>0) + { + historical_activity = ixDS$par( 'historical_activity', list( node_loc = reg, technology = tech ) ) + }else + { + historical_activity = NULL + } + + # Technical lifetime + if(length(which(as.character(all_technical_lifetime$node_loc) == reg))>0){ + technical_lifetime = ixDS$par( 'technical_lifetime', list( node_loc = reg, technology = tech ) ) } + + # Investment costs + if(length(which(as.character(all_inv_cost$node_loc) == reg))>0){ + inv_cost = ixDS$par( 'inv_cost', list( node_loc = reg, technology = tech ) ) } + + # Fixed costs + if(length(which(as.character(all_fix_cost$node_loc) == reg))>0){ + fix_cost = ixDS$par( 'fix_cost', list( node_loc = reg, technology = tech ) ) } + + # Construction time + if(length(which(as.character(all_construction_time$node_loc) == reg))>0){ + construction_time = ixDS$par( 'construction_time', list( node_loc = reg, technology = tech ) ) } + + # Get the name of the cooling technologies for this particular cooled MESSAGE technology + techs_to_update = cooling_technologies_to_consider[ which( + as.character( unlist(data.frame(strsplit( cooling_technologies_to_consider, '__'))[1,]) ) == as.character(tech) ) ] + id2 = apply(cbind(as.character( unlist(data.frame(strsplit( + techs_to_update, '__'))[2,]) ),as.character( unlist(data.frame(strsplit( + techs_to_update, '__'))[1,]) )),1,paste,collapse='_') # alternate ID in csv file + + # Go through each vintage and cooling option and add the corresponding data to the DB + ret = lapply( 1:length(ind$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + + # Add the technology to the set list - only need to for one region + if(reg == region[1]) + { + ixDS$add_set( "technology", as.character( techs_to_update[ ttt ] ) ) + ixDS$add_set( "cat_tec", c( power_plant_cooling_tech_type , as.character( techs_to_update[ ttt ] )) ) # Add technology to list of cooling technology types + ixDS$add_set( "cat_tec", c( 'investment_electricity' , as.character( techs_to_update[ ttt ] )) ) # Add technology to list of electricity system investments + } + + # Set the input commodity using the name from the csv file, define output commodity using names generated and initialized previously + cmdty_in = as.character( tech_water_performance_ssp_msg_raw.df$water_supply_type[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ ttt ] ) ] ) + cmdty_out = cooling_commodities[ which( unlist( strsplit( cooling_commodities, '__') )[seq(2, length(unlist( strsplit( cooling_commodities, '__') )), by=2)] == tech ) ] + + ## Set the water withdrawal, return flow, thermal pollution and parasitic electricity use for this cooling technology (as intensities) + + # Get the heat lost to emissions and electricity production and use to compute cooling fraction + emissions_heat_fraction = as.numeric(tech_water_performance_ssp_msg_raw.df$emissions_heat_fraction[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ) ]) # fraction of heat lost through emissions + cooling_fraction = input_vec * ( 1 - emissions_heat_fraction / max(input_vec) ) - 1 # scale heat lost to emission proportionally to the changes in the cooling fraction + + # Scale historical withdrawal to follow heat rate improvements + water_withdrawal = round( ( 60 * 60 * 24 * 365 ) * ( 1e-9 ) * ( cooling_fraction / max(cooling_fraction) ) * as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ttt] ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_withdrawal_',parameter_levels,'_m3_per_output',sep='') ) ] ), digits = rnd ) + + # Return flow using consumption intensity + return_flow = round( water_withdrawal * ( 1 - as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ ttt ] ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_consumption_',parameter_levels,'_m3_per_output',sep='') ) ] ) / as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ttt] ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_withdrawal_',parameter_levels,'_m3_per_output',sep='') ) ] ) ), digits = rnd ) + + # Parasitic electricity consumption + parasitic_electricity = as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == id2[ ttt ] ), "parasitic_electricity_demand_fraction" ] ) + + ## + # Add the variable cost + ixDS$add_par( "var_cost", # parameter name + c( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), + as.character( ind$mode[ v ] ), as.character( ind$time[ v ] ) ), # set key + round( ( 1e9/(60*60*24*365) ) * cooling_technology_costs$var_costs[ which( + as.character(row.names(cooling_technology_costs)) == as.character(techs_to_update[ ttt ]) ) ],digits = rnd), # parameter value + 'USD/GWa' ) # units + + # Add the capacity factor + ixDS$add_par( "capacity_factor", # parameter name + c( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), + as.character( ind$time[ v ] )), # set key + 1, # Assume for now that cooling technologies are always available + '-' ) # units + + # Add the output efficiency ratio + ixDS$add_par( "output", # parameter name + c( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), reg, cmdty_out, cooling_level, as.character( ind$time[ v ] ), as.character( ind$time[ v ] ) ), # set key + 1, # parameter value + '-' ) + + if( unlist(strsplit(id2[ttt],'_'))[1] != 'air' ) # Don't need to add water use inputs for air cooling technologies + { + + # Add the input efficiency ratio - water withdrawal + ixDS$add_par( "input", # parameter name + c( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), + as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), + reg, cmdty_in, water_supply_level, as.character( ind$time[ v ] ), as.character( ind$time[ v ] )), # set key + water_withdrawal[ v ], # parameter value + '-' ) + + # Add the thermal pollution emission factor + if( unlist(strsplit(id2[ttt],'_'))[1] == 'ot' ) # only for once through cooling technologies + { + if( unlist(strsplit(id2[ttt],'_'))[2] == 'fresh' ){ emis = 'fresh_thermal_pollution' }else{ emis = 'saline_thermal_pollution' } + ixDS$add_par( "emission_factor", # parameter name + c( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), + as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), emis ), # set key + round( cooling_fraction[ v ], digits = rnd ), # parameter value + '-' ) + } + + # Add the wastewater emission factor + if( unlist(strsplit(id2[ttt],'_'))[2] == 'fresh' ){ emis = 'fresh_wastewater' }else{ emis = 'saline_wastewater' } + ixDS$add_par( "emission_factor", # parameter name + c( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), + as.character( ind$year_act[ v ] ), as.character( ind$mode[ v ] ), emis ), # set key + return_flow[ v ], # parameter value + '-' ) + + } + + # Add the input efficiency ratio - parasitic electricity consumption + if( parasitic_electricity > 0 ) # only for some cooling technologies + { + ixDS$add_par( "input", # parameter name + c( reg, techs_to_update[ ttt ], as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), + as.character( ind$mode[ v ] ), reg, 'electr', 'secondary', as.character( ind$time[ v ] ), + as.character( ind$time[ v ] ) ), # set key + parasitic_electricity, # parameter value + '-' ) + } + + # Add the cooling commodity to the cooled message technology input list + if( ttt == 1 ) # only need to do once + { + ixDS$add_par( "input", # parameter name + c( reg, tech, as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), + as.character( ind$mode[ v ] ), reg, cmdty_out, cooling_level, as.character( ind$time[ v ] ), + as.character( ind$time[ v ] ) ), # set key + 1, # parameter value + '-' ) + } + + } ) } ) + + # Go through each vintage and cooling option and add the corresponding data to the DB for investement costs + ret = lapply( 1:length(inv_cost$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the investment cost + ixDS$add_par( "inv_cost", # parameter name + c( reg, techs_to_update[ ttt ], as.character( inv_cost$year_vtg[ v ] ) ), # set key + round( ( 1e9/(60*60*24*365) ) * cooling_technology_costs$inv_costs[ which(as.character(row.names(cooling_technology_costs)) == as.character(techs_to_update[ ttt ]) ) ],digits = rnd), # parameter value (convert from mill USD/MW to USD/GWa) + 'USD/GWa' ) + } ) } ) + + # Go through each vintage and cooling option and add the corresponding data to the DB for investement costs + ret = lapply( 1:length(fix_cost$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the fixed cost + ixDS$add_par( "fix_cost", # parameter name + c( reg, techs_to_update[ ttt ], as.character( fix_cost$year_vtg[ v ] ), as.character( fix_cost$year_act[ v ] ) ), # set key + round( ( 1e9/(60*60*24*365) ) * cooling_technology_costs$fixed_costs[ which(as.character(row.names(cooling_technology_costs)) == as.character(techs_to_update[ ttt ]) ) ],digits = rnd), # parameter value + 'USD/GWa' ) + } ) } ) + + # Go through each vintage and cooling option and add the corresponding data to the DB for historical capacity + ret = lapply( 1:length(historical_new_capacity$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + + # Add the historical capacity + if( !is.null(historical_new_capacity) ) # Check if historical capacity exists + { + # The output of the power plant cooling technologies are defined in terms of the electric power output supported + # Use the historical capacity for each cooled power plant type and the share of each cooling technology to estimate the historical capacity + if(use_davies_shares) + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ + which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & ( + as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), + paste("mix",unlist(strsplit(reg,'_'))[2],'Davies_2013',sep="_") ] + }else + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ + which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & ( + as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), + paste("mix",unlist(strsplit(reg,'_'))[2],sep="_") ] + } + cap = round( shr * historical_new_capacity[ + which( as.character( historical_new_capacity$year_vtg ) == + as.character( historical_new_capacity$year_vtg[v] ) ) , 'value' ], digits = rnd ) + + # Add the ix db + ixDS$add_par( "historical_new_capacity", + c( reg, techs_to_update[ ttt ], as.character( historical_new_capacity$year_vtg[ v ] ) ), + cap, + as.character( historical_new_capacity$unit[1] ) ) + } + + } ) } ) + + # Go through each year and cooling option and add the corresponding data to the DB for historical activity + ret = lapply( 1:length(historical_activity$year_act), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + + # Add the historical_activity + if( !is.null(historical_activity) ) # Check if historical_activity exists + { + + # The output of the power plant cooling technologies are defined in terms of the electric power output supported + # Use the historical_activity for each cooled power plant type and the share of each cooling technology to estimate the historical activity + if(use_davies_shares) # whether or not to use the share from Davies or Raptis + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ + which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & + ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), + paste("mix",unlist(strsplit(reg,'_'))[2],'Davies_2013',sep="_") ] + }else + { + shr = cooltech_cost_and_shares_ssp_msg_raw.df[ + which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[1] ) & + ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == + unlist(strsplit(techs_to_update[ ttt ],'__'))[2] ) ), + paste("mix",unlist(strsplit(reg,'_'))[2],sep="_") ] + } + act = round( shr * historical_activity[ + which( as.character( historical_activity$year_act ) == + as.character( historical_activity$year_act[v] ) ) , 'value' ], digits = rnd ) + + # Add the ix db + ixDS$add_par( "historical_activity", + c( reg, techs_to_update[ ttt ], as.character( historical_activity$year_act[ v ] ), + as.character( historical_activity$mode[ v ] ) , as.character( historical_activity$time[ v ] ) ), + act, + as.character( historical_activity$unit[1] ) ) + + } + } ) } ) + + ret = lapply( 1:length(technical_lifetime$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the technical lifetime + ixDS$add_par( "technical_lifetime", # parameter name + c( reg, techs_to_update[ ttt ], as.character( technical_lifetime$year_vtg[ v ] ) ), # set key + technical_lifetime[ v , 'value' ], + 'y' ) + } ) } ) + + ret = lapply( 1:length(construction_time$year_vtg), function(v){ lapply( 1:length(techs_to_update), function(ttt){ + # Add the construction time + ixDS$add_par( "construction_time", # parameter name + c( reg, techs_to_update[ ttt ], as.character( construction_time$year_vtg[ v ] ) ), # set key + construction_time[ v , 'value' ], + as.character( construction_time[ v , 'unit' ] ) ) + } ) } ) + + }else{ skipped_tech_reg = rbind( skipped_tech_reg, data.frame( + technology = tech, region = reg, comb = paste(tech,reg,sep='_') ) ) } # add to list of skipped techs + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add water withdrawal and return flow for non-cooling technologies + #------------------------------------------------------------------------------------------------------- + + print('Adding water coefficients for non-cooling technologies') + + # Could speed this up a bit by allocating the ppl water use during the previous step. + + if(ssss == 'SSP3') + { + skipped_techs = c("igcc_co2scr","gfc_co2scr","cfc_co2scr","h2_co2_scrub","h2b_co2_scrub","gas_htfc","h2_bio","h2_bio_ccs","h2_smr","h2_smr_ccs","h2_coal","h2_coal_ccs","h2_elec","solar_pv_ppl","wind_ppl") + }else + { + skipped_techs = c("igcc_co2scr","gfc_co2scr","cfc_co2scr","h2_co2_scrub","h2b_co2_scrub","gas_htfc","solar_pv_ppl","wind_ppl") + } + message_technologies_with_water_data2 = message_technologies_with_water_data[which(!(message_technologies_with_water_data %in% skipped_techs))] + ret = lapply( message_technologies_with_water_data2, function(tech){ + + # Status update + print(paste( round( 100 * ( ( which( message_technologies_with_water_data2 == tech ) - 1 ) / ( length(message_technologies_with_water_data2) ) ) ), ' % complete', sep='')) + + all_output = ixDS$par( 'output', list(technology = tech) ) + + lapply( region, function(reg){ + + if( length(which(as.character(all_output$node_loc) == reg))>0 ) + { + + output = ixDS$par( 'output', list( node_loc = reg, technology = tech ) ) + + # Check if multiple modes - only need one + if( length(unique(output$mode)) > 1 ){ output = output[ which( output$mode == unique(output$mode)[1] ) , ] } + + # Check if multiple commodities - only need one + if( length(unique(output$commodity)) > 1 ){ output = output[ which( output$commodity == unique(output$commodity)[1] ) , ] } + + # Define the vintaging and time slicing parameters + ind = data.frame( year_vtg = as.character( output$year_vtg ), + year_act = as.character( output$year_act ), + mode = as.character( output$mode ), + time = as.character( output$time ) ) + + # Input commodity + cmdty_in = as.character( tech_water_performance_ssp_msg_raw.df$water_supply_type[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ) ] ) + + # Add the water coefficients for each vintage and time slice + ret = lapply( 1:nrow( ind ), function(v){ + + # Using data from input csv files and converted from m3 / GJ to km3 / GWa + water_withdrawal = round( ( 60 * 60 * 24 * 365 ) * ( 1e-9 ) * as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_withdrawal_',parameter_levels,'_m3_per_output',sep='') ) ] ), digits = rnd ) + return_flow = round( water_withdrawal - ( 60 * 60 * 24 * 365 ) * ( 1e-9 ) * as.numeric( tech_water_performance_ssp_msg_raw.df[ which( as.character(tech_water_performance_ssp_msg_raw.df$technology_name) == tech ), which(as.character(names(tech_water_performance_ssp_msg_raw.df)) == paste('water_consumption_',parameter_levels,'_m3_per_output',sep='') ) ] ), digits = rnd ) + + # Add the withdrawal to db as an input + ixDS$add_par( "input", # parameter name + c( reg, tech, as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), + as.character( ind$mode[ v ] ), reg, cmdty_in, water_supply_level, as.character( ind$time[ v ] ), + as.character( ind$time[ v ] ) ), # set key + water_withdrawal, + '-' ) + + # Add the return flow to the emission factors + if( !( tech %in% hydro_techs ) ) # no wastewater for hydropower / instream technologies sads + { + ixDS$add_par( "emission_factor", # parameter name + c( reg, tech, + as.character( ind$year_vtg[ v ] ), as.character( ind$year_act[ v ] ), + as.character( ind$mode[ v ] ), 'fresh_wastewater' ), + return_flow, + '-' ) + } + } ) + + } + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add water resource extraction technologies + #------------------------------------------------------------------------------------------------------- + + print('Adding water source extraction technologies') + + # List of technologies with historical water use + hist_techs = list( freshwater_supply = c( as.character( message_technologies_with_water_data2 )[which( as.character( message_technologies_with_water_data2 ) %in% as.character( unique( all_historical_activity$technology ) ) & !( as.character( message_technologies_with_water_data2 ) %in% c( tech_water_performance_ssp_msg_raw.df$technology_name[which(tech_water_performance_ssp_msg_raw.df$water_supply_type %in% c('freshwater_instream','upstream_landuse'))] ) ) )], cooling_technologies_to_consider[ which( unlist(lapply(cooling_technologies_to_consider,function(zzz){unlist(strsplit( zzz, '__' ))[1]})) %in% unique( all_historical_activity$technology ) & unlist(lapply( unlist(lapply(cooling_technologies_to_consider,function(zzz){unlist(strsplit( zzz, '__' ))[2]})), function(xxx){ unlist(strsplit( xxx, '_' ))[2] } ) ) == 'fresh' ) ] ), + saline_supply = cooling_technologies_to_consider[ which( c( unlist(lapply( unlist(lapply(cooling_technologies_to_consider,function(zzz){unlist(strsplit( zzz, '__' ))[2]})), function(xxx){ unlist(strsplit( xxx, '_' ))[2] } ) ) == 'saline' ) ) ], + freshwater_instream = c( tech_water_performance_ssp_msg_raw.df$technology_name[which(tech_water_performance_ssp_msg_raw.df$water_supply_type == 'freshwater_instream')] ), + upstream_landuse = c( tech_water_performance_ssp_msg_raw.df$technology_name[which(tech_water_performance_ssp_msg_raw.df$water_supply_type == 'upstream_landuse')] ) ) + + # Technologies with historical capacity and activity - update + all_historical_new_capacity = ixDS$par( 'historical_new_capacity' ) + all_historical_activity = ixDS$par( 'historical_activity' ) + + ret = lapply( water_source_extraction_techs, function(tech){ + + # Status update + print(paste( round( 100 * ( ( which( water_source_extraction_techs == tech ) - 1 ) / ( length(water_source_extraction_techs) ) ) ), ' % complete', sep='')) + + lapply( region, function(reg){ # across each region + + # Get the commodity for the source type (freshwater or saline or instream) + cmdty_out = as.character( unlist(strsplit(tech,'__'))[2] ) + + lapply( model_years, function( yy ){ # go through the years + + + # Add the output for each timeslice + ret = lapply( model_time, function(tm){ + + ixDS$add_par( "output", # parameter name + c( reg, tech, as.character( yy ), + as.character( yy ), mode_common, reg, cmdty_out, water_supply_level, + as.character( tm ), as.character( tm ) ), # set key + 1, # parameter value + '-' ) + + } ) + + # Add the investment cost + ixDS$add_par( "inv_cost", # parameter name + c( reg, tech, as.character( yy ) ), # set key + 0, + '-' ) + + # Add the fixed cost + # print(ixDS$get_par_set('fix_cost')) + ixDS$add_par( "fix_cost", # parameter name + c( reg, tech, as.character( yy ), as.character( yy ) ), # set key + 0, + '-' ) + + # Add the variable cost + # print(ixDS$get_par_set('var_cost')) + ret = lapply( model_time, function(tm){ + ixDS$add_par( "var_cost", # parameter name + c( reg, tech, as.character( yy ), as.character( yy ), as.character( mode_common ), as.character( tm ) ), # set key + 0.0001, # default for now + '-' ) + } ) + + # Add the capacity factor + # print(ixDS$get_par_set('capacity_factor')) + ret = lapply( model_time, function(tm){ + ixDS$add_par( "capacity_factor", # parameter name + c( reg, tech, as.character( yy ), as.character( yy ), as.character( tm ) ), # set key + 1, + '-' ) + } ) + + # Add the technical lifetime + if(yy < model_years[length(model_years)]){tl = as.numeric(model_years[which(model_years==yy)+1]) - as.numeric(yy)}else{tl = as.numeric(model_years[length(model_years)]) - as.numeric(model_years[length(model_years)-1])} + ixDS$add_par( "technical_lifetime", # parameter name + c( reg, tech, as.character( yy ) ), # set key + tl, + 'y' ) + + # Add the contruction time + ixDS$add_par( "construction_time", # parameter name + c( reg, tech, as.character( yy ) ), # set key + 0, + 'y' ) + + } ) + + # Historical activity of extraction techs determined from + # the historical activity of the MESSAGE techs + techs_hist = unlist( hist_techs[ cmdty_out ] ) + temp = lapply(techs_hist, function(ttt){ + hist_act = all_historical_activity[which( as.character(all_historical_activity$technology) == ttt & as.character(all_historical_activity$node_loc) == reg ),] + hist_act_yy = unique(hist_act$year_act) + if( length(hist_act_yy) > 0) + { + ret1 = data.frame( do.call(rbind, lapply( hist_act_yy, function(yyy){ + yr = as.character(yyy) + inp = mean( ixDS$par( 'input', list( node_loc = reg, technology = ttt, year_act = as.character(hist_act$year_act[which(hist_act$year_act == yyy)]), commodity = cmdty_out ) )[,'value'], na.rm=TRUE ) + act = hist_act$value[which(hist_act$year_act == yyy)] + return( c(yr, inp * sum(act)) ) # multiply input by activity to estimate historical demands + } ) ) ) + }else{ ret1 = NULL } + return(ret1) + }) + names(temp) = techs_hist + + # total historical is summed across the demands from all technologies + hist_years = unique(unlist(lapply( 1:length(techs_hist), function(xxx){ if(!is.null(temp[[xxx]])){ unlist( as.character( temp[[xxx]][,1] ) )}}))) + hist_tot_act = unlist( lapply( 1:length(hist_years), function(yyy){ sum( unlist( lapply( 1:length(techs_hist), function(xxx){ + temp2 = temp[[xxx]] + if( hist_years[yyy] %in% as.character( temp2[,1] ) ) + { + return( as.numeric( as.character( temp2[ which( as.character( temp2[,1] ) == as.character( hist_years[yyy] ) ), 2 ] ) ) ) + }else{ return(NULL) } + } ) ), na.rm = TRUE ) } ) ) + + # Add the ix db + ret = lapply( 1:length(hist_years), function(yyy){ + ixDS$add_par( "historical_activity", + c( reg, tech, as.character( hist_years[ yyy ] ), as.character( mode_common ) , model_time ), + hist_tot_act[ yyy ], + '-' ) + } ) + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add baseline cooling technology policy - No new once-through freshwater cooling capacity + #------------------------------------------------------------------------------------------------------- + print('Adding once through freshwater baseline cooling policy') + + # Once through freshwater cooled techs + otc = unlist(lapply( ixDS$set('technology'), function(x) if( length(unlist(strsplit(x,'__'))==2) ){ if( unlist(strsplit(x,'__'))[2] %in% c('ot_fresh') ){ return( x ) } } )) + + # Loop through and bound new capacity additions to zero for otc techs + ret = lapply( otc, function(tech){ + + # status + print(paste( round( 100 * ( ( which( otc == tech ) - 1 ) / ( length(otc) ) ) ), ' % complete', sep='')) + + # Across all regions + lapply( region, function(reg){ + if( !( paste(tech,reg,sep='_') %in% skipped_tech_reg$comb ) ) + { + if( !( unlist(strsplit(tech,'__'))[1] == 'nuc_lc' & reg == 'R11_MEA') ) + { + vtg = unique( ixDS$par( 'output', list( node_loc = reg, technology = tech ) )$year_vtg ) + lapply( vtg, function(vv){ + ixDS$add_par( 'bound_new_capacity_up', + c( reg, tech, vv ), + 0, + '-' ) + } ) + } + } + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Add baseline cooling technology policy - No new once-through seawater cooling capacity beyond existing levels + #------------------------------------------------------------------------------------------------------- + + print('Adding once through saline water baseline cooling policy') + + # List of techs with saline once through + otc = unlist(lapply( ixDS$set('technology'), function(x) if( length(unlist(strsplit(x,'__'))==2) ){ if( unlist(strsplit(x,'__'))[2] %in% c('ot_saline') ){ return( x ) } } )) + yb = 2010 # base year + + # Getting the historical activity of all seawater cooling technologies - will use to constrain future years + nms_hist = sapply(1:nrow( all_historical_activity ),function(fff){ + paste(all_historical_activity$technology[fff],all_historical_activity$node_loc[fff],sep='_') }) + + ret = do.call(cbind, lapply( otc, function(tech){ + print(paste( round( 100 * ( ( which( otc == tech ) - 1 ) / ( length(otc) ) ) ), ' % complete', sep='')) + dfs = data.frame( do.call(rbind, lapply( region, function(reg){ + if( !( paste(tech,reg,sep='_') %in% skipped_tech_reg$comb ) & paste(tech,reg,sep='_') %in% nms_hist ) + { + # Total historical activity of cooled powered plant and share for ocean water cooling + hist_act = sum( ixDS$par( 'historical_activity', list( node_loc = reg, technology = unlist(strsplit(tech,'__'))[1], year_act= 2010 ) )[,'value'] ) + if(use_davies_shares) + { + hist_shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(tech,'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(tech,'__'))[2] ) ), paste("mix",unlist(strsplit(reg,'_'))[2],'Davies_2013',sep="_") ] + }else + { + hist_shr = cooltech_cost_and_shares_ssp_msg_raw.df[ which( ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$utype) == unlist(strsplit(tech,'__'))[1] ) & ( as.character(cooltech_cost_and_shares_ssp_msg_raw.df$cooling) == unlist(strsplit(tech,'__'))[2] ) ), paste("mix",unlist(strsplit(reg,'_'))[2],sep="_") ] + } + return(as.matrix(max(0,hist_act*hist_shr,na.rm=TRUE))) # multiply the activity by the share to estimate the total historical output + }else{ return(as.matrix(c(0))) } + } ) ) ) + row.names(dfs) = region + return(dfs) } ) ) + names(ret) = otc + ww1 = rowSums(ret) + + # Add the constraint to the db by bounding the activity in each year of the regional extraction technology + ret = lapply( c('extract__saline_supply'), function(tech){ lapply( region, function(reg){ + year_all = seq(2020,2100,by=10) + lapply( as.character(year_all), function(vv){ + ixDS$add_par( 'bound_activity_up', + c( reg, tech, vv, mode_common, model_time ), + ww1[reg], + '-' ) + } ) + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Initialize water constraint criteria - an extra technology that outputs into water extraction techs + #------------------------------------------------------------------------------------------------------- + + # Water constraints are implemented using an extra technology (extract__water_constraint) that outputs into water extraction techs + # This choice enables modeling policies that cover multiple water commodities. E.g., simultaneous reduction targets for saline and freshwater, etc. + # The water resources to be constrained can be modified by selecting the techs that take in the output commodity from extract__water_constraint + # Note that the constraint is left disconnected in the baseline script and that the following merely initializes the general structure. + + print('Initializing water constraints') + + # Add the water constraint technology to the set list + tech = "extract__water_constraint" + cmdty_out = "water_constraint" + water_supply_level_constraint = paste(water_supply_level,'constraint',sep='_') + ret = ixDS$add_set( "technology", tech ) + ret = ixDS$add_set( "commodity", cmdty_out ) + ret = ixDS$add_set( "level", water_supply_level_constraint ) # Add level to ix DB + + # Go through each region and add the technology data + res = lapply( region, function(reg){ + + # Add the output for each timeslice + ret = lapply( model_years, function(yy){ + + ixDS$add_par( "output", # parameter name + c( reg, tech, as.character( yy ), as.character( yy ), mode_common, reg, cmdty_out, + water_supply_level_constraint, model_time, model_time ), # set key + 1, # parameter value + '-' ) + + # Add the investment cost + ixDS$add_par( "inv_cost", # parameter name + c( reg, tech, as.character( yy ) ), # set key + 0, + '-' ) + + # Add the fixed cost + # print(ixDS$get_par_set('fix_cost')) + ixDS$add_par( "fix_cost", # parameter name + c( reg, tech, as.character( yy ), as.character( yy ) ), # set key + 0, + '-' ) + + # Add the variable cost + # print(ixDS$get_par_set('var_cost')) + ret = lapply( model_time, function(tm){ + ixDS$add_par( "var_cost", # parameter name + c( reg, tech, as.character( yy ), as.character( yy ), as.character( mode_common ), model_time ), # set key + 0, + '-' ) + } ) + + # Add the capacity factor + # print(ixDS$get_par_set('capacity_factor')) + ret = lapply( model_time, function(tm){ + ixDS$add_par( "capacity_factor", # parameter name + c( reg, tech, as.character( yy ), as.character( yy ), model_time ), # set key + 1, + '-' ) + } ) + + # Add the technical lifetime + if(yy < model_years[length(model_years)]){tl = as.numeric(model_years[which(model_years==yy)+1]) - as.numeric(yy)}else{tl = as.numeric(model_years[length(model_years)]) - as.numeric(model_years[length(model_years)-1])} + ixDS$add_par( "technical_lifetime", # parameter name + c( reg, tech, as.character( yy ) ), # set key + tl, + 'y' ) + + # Add the contruction time + ixDS$add_par( "construction_time", # parameter name + c( reg, tech, as.character( yy ) ), # set key + 0, + 'y' ) + + } ) + } ) + + #------------------------------------------------------------------------------------------------------- + # Commit to DB, solve, read GDX and set to default scenario + #------------------------------------------------------------------------------------------------------- + # REPLACE SIMPLY with SOLVE + # + # # Need to use this library for calling GAMS from R + # require(gdxrrw) + # + # # Commit to DB + ixDS$commit(comment) + ixDS$set_as_default() + ixDS$solve() + # fname = paste(ssss, newscenarioName, sep = '_') + # + # # Set the GAMS path and file information + # gdx_path_data = paste(wkd_message_ix,"message_ix/model/data",sep='') # set based on local machine + # gdx_name = paste( 'MSGdata_', fname, ".gdx",sep="") + # + # # Output to gdx + # ixDS$to_gdx(gdx_path_data, gdx_name) + # + # # Solve the model using the gdxrrw utilities + # current_working_drive = getwd() + # setwd(paste(wkd_message_ix,'message_ix/model',sep='')) # set based on local machine + # igdx(wkd_GAMS) # set based on local machine + # ret = gams(paste("MESSAGE_master.gms --fname=",fname,sep="")) + # setwd(current_working_drive) + # + # # Upload the gdx to the db and set as default if solved correctly + # ixDS$read_sol_from_gdx(paste(wkd_message_ix,"message_ix/model/output",sep=""),paste("MSGoutput_",fname,".gdx",sep='')) + # ixDS$set_as_default() + +} # Next SSP \ No newline at end of file diff --git a/nest/message_ix_models/model/water/data/infrastructure.py b/nest/message_ix_models/model/water/data/infrastructure.py new file mode 100644 index 0000000..3b539d6 --- /dev/null +++ b/nest/message_ix_models/model/water/data/infrastructure.py @@ -0,0 +1,886 @@ +"""Prepare data for adding techs related to water distribution, + treatment in urban & rural""" + +from collections import defaultdict + +import pandas as pd +from message_ix import make_df + +from message_ix_models.model.water.utils import map_yv_ya_lt +from message_ix_models.util import ( + broadcast, + make_matched_dfs, + private_data_path, + same_node, + same_time, +) + + +def add_infrastructure_techs(context): + """Process water distribution data for a scenario instance. + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. + Values are data frames ready for :meth:`~.Scenario.add_par`. + Years in the data include the model horizon indicated by + ``context["water build info"]``, plus the additional year 2010. + """ + + # Reference to the water configuration + info = context["water build info"] + + # define an empty dictionary + results = {} + sub_time = context.time + # load the scenario from context + scen = context.get_scenario() + + year_wat = [2010, 2015] + year_wat.extend(info.Y) + + # first activity year for all water technologies is 2020 + first_year = scen.firstmodelyear + + # reading basin_delineation + FILE2 = f"basins_by_region_simpl_{context.regions}.csv" + PATH = private_data_path("water", "delineation", FILE2) + + df_node = pd.read_csv(PATH) + # Assigning proper nomenclature + df_node["node"] = "B" + df_node["BCU_name"].astype(str) + df_node["mode"] = "M" + df_node["BCU_name"].astype(str) + if context.type_reg == "country": + df_node["region"] = context.map_ISO_c[context.regions] + else: + df_node["region"] = f"{context.regions}_" + df_node["REGION"].astype(str) + + # Reading water distribution mapping from csv + path = private_data_path("water", "infrastructure", "water_distribution.xlsx") + df = pd.read_excel(path) + + techs = [ + "urban_t_d", + "urban_unconnected", + "industry_unconnected", + "rural_t_d", + "rural_unconnected", + ] + + df_non_elec = df[df["incmd"] != "electr"].reset_index() + df_dist = df_non_elec[df_non_elec["tec"].isin(techs)] + df_non_elec = df_non_elec[~df_non_elec["tec"].isin(techs)] + df_elec = df[df["incmd"] == "electr"].reset_index() + + inp_df = pd.DataFrame([]) + + # Input Dataframe for non elec commodities + for index, rows in df_non_elec.iterrows(): + inp_df = pd.concat( + [ + inp_df, + ( + make_df( + "input", + technology=rows["tec"], + value=rows["value_mid"], + unit="-", + level=rows["inlvl"], + commodity=rows["incmd"], + mode="M1", + node_loc=df_node["node"], + ) + .pipe( + broadcast, + map_yv_ya_lt( + year_wat, rows["technical_lifetime_mid"], first_year + ), + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ), + ] + ) + + if context.SDG: + for index, rows in df_dist.iterrows(): + inp_df = pd.concat( + [ + inp_df, + ( + make_df( + "input", + technology=rows["tec"], + value=rows["value_high"], + unit="-", + level=rows["inlvl"], + commodity=rows["incmd"], + mode="Mf", + ) + .pipe( + broadcast, + map_yv_ya_lt( + year_wat, rows["technical_lifetime_mid"], first_year + ), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ), + ] + ) + else: + for index, rows in df_dist.iterrows(): + inp_df = pd.concat( + [ + inp_df, + ( + make_df( + "input", + technology=rows["tec"], + value=rows["value_mid"], + unit="-", + level=rows["inlvl"], + commodity=rows["incmd"], + mode="M1", + ) + .pipe( + broadcast, + map_yv_ya_lt( + year_wat, rows["technical_lifetime_mid"], first_year + ), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ), + ] + ) + + inp_df = inp_df.append( + ( + make_df( + "input", + technology=rows["tec"], + value=rows["value_high"], + unit="-", + level=rows["inlvl"], + commodity=rows["incmd"], + mode="Mf", + ) + .pipe( + broadcast, + map_yv_ya_lt( + year_wat, rows["technical_lifetime_mid"], first_year + ), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + ) + result_dc = defaultdict(list) + + for index, rows in df_elec.iterrows(): + if rows["tec"] in techs: + if context.SDG: + inp = make_df( + "input", + technology=rows["tec"], + value=rows["value_high"], + unit="-", + level="final", + commodity="electr", + mode="Mf", + time_origin="year", + node_loc=df_node["node"], + node_origin=df_node["region"], + ).pipe( + broadcast, + map_yv_ya_lt( + year_wat, + # 1 because elec commodities don't have technical lifetime + 1, + first_year, + ), + time=sub_time, + ) + + result_dc["input"].append(inp) + else: + inp = make_df( + "input", + technology=rows["tec"], + value=rows["value_high"], + unit="-", + level="final", + commodity="electr", + mode="Mf", + time_origin="year", + node_loc=df_node["node"], + node_origin=df_node["region"], + ).pipe( + broadcast, + map_yv_ya_lt( + year_wat, + # 1 because elec commodities don't have technical lifetime + 1, + first_year, + ), + time=sub_time, + ) + + inp = inp.append( + make_df( + "input", + technology=rows["tec"], + value=rows["value_mid"], + unit="-", + level="final", + commodity="electr", + mode="M1", + time_origin="year", + node_loc=df_node["node"], + node_origin=df_node["region"], + ).pipe( + broadcast, + # 1 because elec commodities don't have technical lifetime + map_yv_ya_lt(year_wat, 1, first_year), + time=sub_time, + ) + ) + + result_dc["input"].append(inp) + else: + inp = make_df( + "input", + technology=rows["tec"], + value=rows["value_mid"], + unit="-", + level="final", + commodity="electr", + mode="M1", + time_origin="year", + node_loc=df_node["node"], + node_origin=df_node["region"], + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, 1, first_year), + time=sub_time, + ) + + result_dc["input"].append(inp) + + results_new = {par_name: pd.concat(dfs) for par_name, dfs in result_dc.items()} + + inp_df = inp_df.append(results_new["input"]) + # inp_df.dropna(inplace = True) + results["input"] = inp_df + + # add output dataframe + df_out = df[~df["outcmd"].isna()] + df_out_dist = df_out[df_out["tec"].isin(techs)] + df_out = df_out[~df_out["tec"].isin(techs)] + + out_df = pd.DataFrame([]) + for index, rows in df_out.iterrows(): + out_df = out_df.append( + ( + make_df( + "output", + technology=rows["tec"], + value=rows["out_value_mid"], + unit="-", + level=rows["outlvl"], + commodity=rows["outcmd"], + mode="M1", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + ) + + if context.SDG: + out_df = out_df.append( + make_df( + "output", + technology=df_out_dist["tec"], + value=df_out_dist["out_value_mid"], + unit="-", + level=df_out_dist["outlvl"], + commodity=df_out_dist["outcmd"], + mode="Mf", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + else: + out_df = out_df.append( + make_df( + "output", + technology=df_out_dist["tec"], + value=df_out_dist["out_value_mid"], + unit="-", + level=df_out_dist["outlvl"], + commodity=df_out_dist["outcmd"], + mode="M1", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + out_df = out_df.append( + make_df( + "output", + technology=df_out_dist["tec"], + value=df_out_dist["out_value_mid"], + unit="-", + level=df_out_dist["outlvl"], + commodity=df_out_dist["outcmd"], + mode="Mf", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + + results["output"] = out_df + + # Filtering df for capacity factors + df_cap = df.dropna(subset=["capacity_factor_mid"]) + cap_df = pd.DataFrame([]) + # Adding capacity factor dataframe + for index, rows in df_cap.iterrows(): + cap_df = cap_df.append( + make_df( + "capacity_factor", + technology=rows["tec"], + value=rows["capacity_factor_mid"], + unit="%", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + ) + + results["capacity_factor"] = cap_df + + # Filtering df for capacity factors + df_tl = df.dropna(subset=["technical_lifetime_mid"]) + + tl = ( + make_df( + "technical_lifetime", + technology=df_tl["tec"], + value=df_tl["technical_lifetime_mid"], + unit="y", + ) + .pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + .pipe(same_node) + ) + + results["technical_lifetime"] = tl + + cons_time = make_matched_dfs(tl, construction_time=1) + results["construction_time"] = cons_time["construction_time"] + + # Investment costs + df_inv = df.dropna(subset=["investment_mid"]) + + # Prepare dataframe for investments + inv_cost = make_df( + "inv_cost", + technology=df_inv["tec"], + value=df_inv["investment_mid"], + unit="USD/km3", + ).pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + inv_cost = inv_cost[~inv_cost["technology"].isin(techs)] + results["inv_cost"] = inv_cost + + # Fixed costs + # Prepare data frame for fix_cost + fix_cost = pd.DataFrame([]) + var_cost = pd.DataFrame([]) + + for index, rows in df_inv.iterrows(): + fix_cost = fix_cost.append( + make_df( + "fix_cost", + technology=df_inv["tec"], + value=df_inv["fix_cost_mid"], + unit="USD/km3", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + ) + ) + + fix_cost = fix_cost[~fix_cost["technology"].isin(techs)] + + results["fix_cost"] = fix_cost + + df_var = df_inv[~df_inv["tec"].isin(techs)] + df_var_dist = df_inv[df_inv["tec"].isin(techs)] + + df_var = df_inv[~df_inv["tec"].isin(techs)] + df_var_dist = df_inv[df_inv["tec"].isin(techs)] + + if context.SDG: + for index, rows in df_var.iterrows(): + # Variable cost + var_cost = var_cost.append( + make_df( + "var_cost", + technology=rows["tec"], + value=rows["var_cost_mid"], + unit="USD/km3", + mode="M1", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + ) + + # Variable cost for distribution technologies + for index, rows in df_var_dist.iterrows(): + var_cost = var_cost.append( + make_df( + "var_cost", + technology=rows["tec"], + value=rows["var_cost_high"], + unit="USD/km3", + mode="Mf", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + ) + results["var_cost"] = var_cost + else: + # Variable cost + for index, rows in df_var.iterrows(): + var_cost = var_cost.append( + make_df( + "var_cost", + technology=rows["tec"], + value=df_var["var_cost_mid"], + unit="USD/km3", + mode="M1", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + ) + + for index, rows in df_var_dist.iterrows(): + var_cost = var_cost.append( + make_df( + "var_cost", + technology=rows["tec"], + value=rows["var_cost_mid"], + unit="USD/km3", + mode="M1", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + ) + + var_cost = var_cost.append( + make_df( + "var_cost", + technology=rows["tec"], + value=rows["var_cost_high"], + unit="USD/km3", + mode="Mf", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["technical_lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + ) + results["var_cost"] = var_cost + + return results + + +def add_desalination(context): + """Add desalination infrastructure + Two types of desalination are considered; + 1. Membrane + 2. Distillation + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. + Values are data frames ready for :meth:`~.Scenario.add_par`. + Years in the data include the model horizon indicated by + ``context["water build info"]``, plus the additional year 2010. + """ + # define an empty dictionary + results = {} + sub_time = context.time + # Reference to the water configuration + info = context["water build info"] + + # load the scenario from context + scen = context.get_scenario() + + year_wat = [2010, 2015] + year_wat.extend(info.Y) + + # first activity year for all water technologies is 2020 + first_year = scen.firstmodelyear + + # Reading water distribution mapping from csv + path = private_data_path("water", "infrastructure", "desalination.xlsx") + path2 = private_data_path( + "water", + "infrastructure", + f"historical_capacity_desalination_km3_year_{context.regions}.csv", + ) + path3 = private_data_path( + "water", + "infrastructure", + f"projected_desalination_potential_km3_year_{context.regions}.csv", + ) + # Reading dataframes + df_desal = pd.read_excel(path) + df_hist = pd.read_csv(path2) + df_proj = pd.read_csv(path3) + df_proj = df_proj[df_proj["rcp"] == f"{context.RCP}"] + df_proj = df_proj[~(df_proj["year"] == 2065) & ~(df_proj["year"] == 2075)] + df_proj.reset_index(inplace=True, drop=True) + df_proj = df_proj[df_proj["year"].isin(info.Y)] + + # reading basin_delineation + FILE2 = f"basins_by_region_simpl_{context.regions}.csv" + PATH = private_data_path("water", "delineation", FILE2) + + df_node = pd.read_csv(PATH) + # Assigning proper nomenclature + df_node["node"] = "B" + df_node["BCU_name"].astype(str) + df_node["mode"] = "M" + df_node["BCU_name"].astype(str) + if context.type_reg == "country": + df_node["region"] = context.map_ISO_c[context.regions] + else: + df_node["region"] = f"{context.regions}_" + df_node["REGION"].astype(str) + # output dataframe linking to desal tech types + out_df = ( + make_df( + "output", + technology="extract_salinewater_basin", + value=1, + unit="km3/year", + level="water_avail_basin", + commodity="salinewater_basin", + mode="M1", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, 20, first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + + tl = ( + make_df( + "technical_lifetime", + technology="extract_salinewater_basin", + value=20, + unit="y", + ) + .pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + .pipe(same_node) + ) + + # Historical capacity of desalination technologies + df_hist_cap = make_df( + "historical_new_capacity", + node_loc="B" + df_hist["BCU_name"], + technology=df_hist["tec_type"], + year_vtg=df_hist["year"], + value=df_hist["cap_km3_year"], + unit="km3/year", + ) + # Divide the historical capacity by 5 since the existing data is summed over + # 5 years and model needs per year + df_hist_cap["value"] = df_hist_cap["value"] / 5 + + results["historical_new_capacity"] = df_hist_cap + + # Desalination potentials are added as an upper bound + # to limit the salinewater extraction + bound_up = make_df( + "bound_total_capacity_up", + node_loc="B" + df_proj["BCU_name"], + technology="extract_salinewater_basin", + year_act=df_proj["year"], + value=df_proj["cap_km3_year"], + unit="km3/year", + ) + # Making negative values zero + bound_up["value"].clip(lower=0, inplace=True) + # Bound should start from 2025 + bound_up = bound_up[bound_up["year_act"] > 2020] + + results["bound_total_capacity_up"] = bound_up + # Investment costs + inv_cost = make_df( + "inv_cost", + technology=df_desal["tec"], + value=df_desal["inv_cost_mid"], + unit="USD/km3", + ).pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + + results["inv_cost"] = inv_cost + + fix_cost = pd.DataFrame([]) + var_cost = pd.DataFrame([]) + for index, rows in df_desal.iterrows(): + # Fixed costs + # Prepare dataframe for fix_cost + fix_cost = fix_cost.append( + make_df( + "fix_cost", + technology=rows["tec"], + value=rows["fix_cost_mid"], + unit="USD/km3", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["lifetime_mid"], first_year), + node_loc=df_node["node"], + ) + ) + + results["fix_cost"] = fix_cost + + # Variable cost + var_cost = var_cost.append( + make_df( + "var_cost", + technology=rows["tec"], + value=rows["var_cost_mid"], + unit="USD/km3", + mode="M1", + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + ) + + # Dummy Variable cost for salinewater extrqction + # var_cost = var_cost.append( + # make_df( + # "var_cost", + # technology='extract_salinewater_basin', + # value= 100, + # unit="USD/km3", + # mode="M1", + # time="year", + # ).pipe(broadcast, year_vtg=year_wat, year_act=year_wat, node_loc=df_node["node"]) + # ) + + results["var_cost"] = var_cost + + tl = tl.append( + ( + make_df( + "technical_lifetime", + technology=df_desal["tec"], + value=df_desal["lifetime_mid"], + unit="y", + ) + .pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + .pipe(same_node) + ) + ) + + results["technical_lifetime"] = tl + + cons_time = make_matched_dfs(tl, construction_time=3) + results["construction_time"] = cons_time["construction_time"] + + from collections import defaultdict + + result_dc = defaultdict(list) + + for index, rows in df_desal.iterrows(): + inp = make_df( + "input", + technology=rows["tec"], + value=rows["electricity_input_mid"], + unit="-", + level="final", + commodity="electr", + mode="M1", + time_origin="year", + node_loc=df_node["node"], + node_origin=df_node["region"], + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["lifetime_mid"], first_year), + time=sub_time, + ) + + result_dc["input"].append(inp) + + results_new = {par_name: pd.concat(dfs) for par_name, dfs in result_dc.items()} + + inp_df = results_new["input"] + + # Adding input dataframe + df_heat = df_desal[df_desal["heat_input_mid"] > 0] + + result_dc = defaultdict(list) + + for index, rows in df_heat.iterrows(): + inp = make_df( + "input", + technology=rows["tec"], + value=rows["heat_input_mid"], + unit="-", + level="final", + commodity="d_heat", + mode="M1", + time_origin="year", + node_loc=df_node["node"], + node_origin=df_node["region"], + ).pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["lifetime_mid"], first_year), + time=sub_time, + ) + + result_dc["input"].append(inp) + + results_new = {par_name: pd.concat(dfs) for par_name, dfs in result_dc.items()} + + inp_df = inp_df.append(results_new["input"]) + + # Adding input dataframe + for index, rows in df_desal.iterrows(): + inp_df = inp_df.append( + ( + make_df( + "input", + technology=rows["tec"], + value=1, + unit="-", + level=rows["inlvl"], + commodity=rows["incmd"], + mode="M1", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + ) + + inp_df.dropna(inplace=True) + + results["input"] = inp_df + + out_df = out_df.append( + ( + make_df( + "output", + technology=rows["tec"], + value=1, + unit="-", + level=rows["outlvl"], + commodity=rows["outcmd"], + mode="M1", + ) + .pipe( + broadcast, + map_yv_ya_lt(year_wat, rows["lifetime_mid"], first_year), + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + ) + + results["output"] = out_df + + # putting a lower bound on desalination tecs based on hist capacities + df_bound = df_hist[df_hist["year"] == 2015] + bound_lo = make_df( + "bound_activity_lo", + node_loc="B" + df_bound["BCU_name"], + technology=df_bound["tec_type"], + mode="M1", + value=df_bound["cap_km3_year"], + unit="km3/year", + ).pipe( + broadcast, + year_act=year_wat, + time=sub_time, + ) + + bound_lo = bound_lo[bound_lo["year_act"] <= 2030] + # Divide the histroical capacity by 5 since the existing data is summed over + # 5 years and model needs per year + bound_lo["value"] = bound_lo["value"] / 5 + + results["bound_activity_lo"] = bound_lo + + return results diff --git a/nest/message_ix_models/model/water/data/irrigation.py b/nest/message_ix_models/model/water/data/irrigation.py new file mode 100644 index 0000000..e694793 --- /dev/null +++ b/nest/message_ix_models/model/water/data/irrigation.py @@ -0,0 +1,212 @@ +"""Prepare data for water use for cooling & energy technologies.""" + +import pandas as pd +from message_ix import make_df + +from message_ix_models.util import broadcast, private_data_path + + +# water & electricity for irrigation +def add_irr_structure(context): + """Add irrigation withdrawal infrastructure + The irrigation demands are added in + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. + Values are data frames ready for :meth:`~.Scenario.add_par`. + Years in the data include the model horizon indicated by + ``context["water build info"]``, plus the additional year 2010. + """ + + # define an empty dictionary + results = {} + + # reading basin_delineation + FILE2 = f"basins_by_region_simpl_{context.regions}.csv" + PATH = private_data_path("water", "delineation", FILE2) + df_node = pd.read_csv(PATH) + # Assigning proper nomenclature + df_node["node"] = "B" + df_node["BCU_name"].astype(str) + df_node["mode"] = "M" + df_node["BCU_name"].astype(str) + if context.type_reg == "country": + df_node["region"] = context.map_ISO_c[context.regions] + else: + df_node["region"] = f"{context.regions}_" + df_node["REGION"].astype(str) + + # Reference to the water configuration + info = context["water build info"] + + # probably can be removed + year_wat = [2010, 2015] + year_wat.extend(info.Y) + + inp = make_df( + "input", + technology="irrigation_cereal", + value=1, + unit="-", + level="water_supply", + commodity="freshwater", + mode="M1", + time="year", + time_origin="year", + node_origin=df_node["region"], + node_loc=df_node["region"], + ).pipe(broadcast, year_vtg=info.Y) + + inp = inp.append( + make_df( + "input", + technology="irrigation_oilcrops", + value=1, + unit="-", + level="water_supply", + commodity="freshwater", + mode="M1", + time="year", + time_origin="year", + node_origin=df_node["region"], + node_loc=df_node["region"], + ).pipe(broadcast, year_vtg=info.Y) + ) + + inp = inp.append( + make_df( + "input", + technology="irrigation_sugarcrops", + value=1, + unit="-", + level="water_supply", + commodity="freshwater", + mode="M1", + time="year", + time_origin="year", + node_origin=df_node["region"], + node_loc=df_node["region"], + ).pipe(broadcast, year_vtg=info.Y) + ) + # year_act = year_vts for tecs with 1 time-step lifetime + inp["year_act"] = inp["year_vtg"] + + # Electricity values per unit of irrigation water supply + # Reference: Evaluation of Water and Energy Use in Pressurized Irrigation Networks in Southern Spain + # Diaz et al. 2011 https://ascelibrary.org/doi/10.1061/%28ASCE%29IR.1943-4774.0000338 + # Low Value :0.04690743 + # Average Value :0.101598174 + # High Value : 0.017123288 + + # inp = inp.append( + # make_df( + # "input", + # technology="irrigation_sugarcrops", + # value=0.04690743, + # unit="-", + # level="final", + # commodity="electr", + # mode="M1", + # time="year", + # time_origin="year", + # node_origin=df_node["region"], + # node_loc=df_node["region"], + # ).pipe(broadcast, year_vtg=year_wat, year_act=year_wat) + # ) + # + # inp = inp.append( + # make_df( + # "input", + # technology="irrigation_oilcrops", + # value=0.04690743, + # unit="-", + # level="final", + # commodity="electr", + # mode="M1", + # time="year", + # time_origin="year", + # node_origin=df_node["region"], + # node_loc=df_node["region"], + # ).pipe(broadcast, year_vtg=year_wat, year_act=year_wat) + # ) + # + # inp = inp.append( + # make_df( + # "input", + # technology="irrigation_cereal", + # value=0.04690743, + # unit="-", + # level="final", + # commodity="electr", + # mode="M1", + # time="year", + # time_origin="year", + # node_origin=df_node["region"], + # node_loc=df_node["region"], + # ).pipe(broadcast, year_vtg=year_wat, year_act=year_wat) + # ) + # inp.loc[(inp['node_loc'] == 'R11_SAS') & + # (inp['commodity'] == 'electr'), + # "value", + # ] *= 0.00004690743 + + results["input"] = inp + + irr_out = make_df( + "output", + technology="irrigation_cereal", + value=1, + unit="km3/year", + level="irr_cereal", + commodity="freshwater", + mode="M1", + time="year", + time_dest="year", + node_loc=df_node["region"], + node_dest=df_node["region"], + ).pipe(broadcast, year_vtg=info.Y) + + irr_out = irr_out.append( + make_df( + "output", + technology="irrigation_sugarcrops", + value=1, + unit="km3/year", + level="irr_sugarcrops", + commodity="freshwater", + mode="M1", + time="year", + time_dest="year", + node_loc=df_node["region"], + node_dest=df_node["region"], + ).pipe( + broadcast, + year_vtg=info.Y, + ) + ) + + irr_out = irr_out.append( + make_df( + "output", + technology="irrigation_oilcrops", + value=1, + unit="km3/year", + level="irr_oilcrops", + commodity="freshwater", + mode="M1", + time="year", + time_dest="year", + node_loc=df_node["region"], + node_dest=df_node["region"], + ).pipe( + broadcast, + year_vtg=info.Y, + ) + ) + + irr_out["year_act"] = irr_out["year_vtg"] + + results["output"] = irr_out + + return results diff --git a/nest/message_ix_models/model/water/data/pre-processing/calculate_ppl_cooling_technology_shares.r b/nest/message_ix_models/model/water/data/pre-processing/calculate_ppl_cooling_technology_shares.r new file mode 100644 index 0000000..020c48d --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/calculate_ppl_cooling_technology_shares.r @@ -0,0 +1,229 @@ + +rm(list=ls()) +graphics.off() +library(raster) +library(sp) +library(ncdf4) +library(rgdal) +library(rgeos) +library(maptools) +library(geosphere) +library(countrycode) +library(ggmap) +library(tidyverse) +library(yaml) +library("readxl") +#library(reticulate) + +# Increase memory size +memory.limit(size = 1e6) + +#this path need tobe automatize, maybe loading with retisulate a python ojects that contains the rith path. +#otherwise environment path an be used +msg_data = Sys.getenv("MESSAGE_DATA_PATH") +# message-ix-models path +msg_ix_model = Sys.getenv("MESSAGE-IX-MODELS") +data_subf = path.expand(paste0(msg_data,'\\data\\water\\ppl_cooling_tech')) + +all_units = read_excel('P:/ene.model/NEST/ppl_cooling_tech/PLATTS_3.7.xlsx') + +all_units.df = all_units %>% select(UNIT,STATUS,ISO,msgregion, msg_combo2,cool_group_msg,MW_x,WW,WC,lat,long) +# here we need to adapt for a different regional conigurations of the GLOBAL model + +for (reg in c('R11','R12')){ +# for global R11 model + cooling_plants = all_units.df %>% filter(STATUS == 'OPR', + !cool_group_msg %in% c('CHP','NCN'), + !is.na(cool_group_msg), + !is.na(msgregion)) %>% + rename(utype = msg_combo2, cooling = cool_group_msg) %>% ungroup() + + # get mapping from yaml file in message-ix-models + file = paste0(msg_ix_model,'/message_ix_models/data/node/',reg,'.yaml') + from_yaml = read_yaml(file, fileEncoding = "UTF-8" ) + names_loop = names(from_yaml)[names(from_yaml) != 'World'] + reg_map.df = data.frame() + for (rr in names_loop){ + reg_map.df = rbind(reg_map.df,data.frame(msgregion = rr, ISO = from_yaml[[rr]]$child)) + } + + # add R## to the msgregions, to go the in any column + cooling_plants = cooling_plants %>% select(-msgregion) %>% + left_join(reg_map.df) + + # add the data to the cooltech_cost_and_shares_ssp_msg.csv file + cooltech_cost_shares = read.csv(paste0(data_subf,'/cooltech_cost_and_shares_ssp_msg.csv'),stringsAsFactors=FALSE) + + #### shares by message REGION #### needed to establish initial mapping + shars_cooling_MSG_global = cooling_plants %>% group_by(utype,cooling,msgregion) %>% #change to COUNTRY + summarise(MW_x = sum(MW_x)) %>% ungroup() %>% + group_by(utype,msgregion) %>% #change to COUNTRY + mutate(cap_reg_unit = sum(MW_x)) %>% ungroup() %>% + mutate(shares = MW_x / cap_reg_unit) %>% + select(utype,cooling,msgregion,shares) %>% + spread(msgregion, shares) + + shars_cooling_MSG_global[is.na(shars_cooling_MSG_global)] = 0 + + # mapping in order to add missing technologies + platts_types = shars_cooling_MSG_global %>% select(utype) %>% rename(utype_pl = utype) %>% + mutate(match = gsub('_.*','',utype_pl)) %>% group_by(match) %>% + summarise(utype_pl = first(utype_pl), match = first(match)) + map_all_types = cooltech_cost_shares %>% select(utype,cooling) %>% + mutate(match = gsub('_.*','',utype)) %>% left_join(platts_types) %>% select(-match) %>% + filter(!is.na(utype_pl)) %>% distinct() + + # This will be the file + write.csv(shars_cooling_MSG_global,paste0(data_subf,'/cool_techs_region_share_',reg,'.csv'),row.names = FALSE) + + # back to shares, change names + new_names = paste0('mix_', names(shars_cooling_MSG_global)[!names(shars_cooling_MSG_global) %in% c('utype','cooling')] ) + names(shars_cooling_MSG_global)[!names(shars_cooling_MSG_global) %in% c('utype','cooling')] = new_names + shars_cooling_MSG_global = shars_cooling_MSG_global %>% mutate(utype_pl = utype) + + # missing shares + all_shares = map_all_types %>% + filter(!utype %in% unique(shars_cooling_MSG_global$utype) ) %>% + left_join(shars_cooling_MSG_global %>% select(-utype), by = c('utype_pl','cooling') ) %>% + select(-utype_pl) %>% bind_rows(shars_cooling_MSG_global) + + cooltech_cost_shares = cooltech_cost_shares %>% + select(utype, cooling,investment_million_USD_per_MW_low, investment_million_USD_per_MW_mid, investment_million_USD_per_MW_high) %>% + left_join(all_shares) + + cooltech_cost_shares[is.na(cooltech_cost_shares)] = 0 + # write new file + write.csv(cooltech_cost_shares,paste0(data_subf,'/cooltech_cost_and_shares_ssp_msg_',reg,'.csv'),row.names = FALSE) +} + +#### SHARES by COUNTRY #### +#shares by message REGION +shars_cooling_country = cooling_plants %>% group_by(utype,cooling,ISO) %>% #change to COUNTRY + summarise(MW_x = sum(MW_x)) %>% ungroup() %>% + group_by(utype,ISO) %>% #change to COUNTRY + mutate(cap_reg_unit = sum(MW_x)) %>% ungroup() %>% + mutate(shares = MW_x / cap_reg_unit) %>% + select(utype,cooling,ISO,shares) %>% + spread(ISO, shares) + +shars_cooling_country[is.na(shars_cooling_country)] = 0 + +# This will be the file +write.csv(shars_cooling_country,paste0(data_subf,'/cool_techs_country_share.csv'),row.names = FALSE) + +# back to shares, change names +new_names = paste0('mix_', names(shars_cooling_country)[!names(shars_cooling_country) %in% c('utype','cooling')] ) +names(shars_cooling_country)[!names(shars_cooling_country) %in% c('utype','cooling')] = new_names +shars_cooling_country = shars_cooling_country %>% mutate(utype_pl = utype) + +# missing shares +all_shares_c = map_all_types %>% + filter(!utype %in% unique(shars_cooling_country$utype) ) %>% + left_join(shars_cooling_country %>% select(-utype), by = c('utype_pl','cooling') ) %>% + select(-utype_pl) %>% bind_rows(shars_cooling_country) + +cooltech_cost_shares_c = cooltech_cost_shares %>% + select(utype, cooling,investment_million_USD_per_MW_low, investment_million_USD_per_MW_mid, investment_million_USD_per_MW_high) %>% + left_join(all_shares_c) + +cooltech_cost_shares_c[is.na(cooltech_cost_shares_c)] = 0 +# write new file +write.csv(cooltech_cost_shares_c,paste0(data_subf,'/cooltech_cost_and_shares_country.csv'),row.names = FALSE) + + +# OLD DATABASE, with the new one, most of this processing is done already by the script +# https://github.com/OFR-IIASA/message_data/blob/RES_add_5_year_timesteps2/data/model/platts_historical_capacity/merge_WEPP_Raptis_CARMA.py + +# # loading +# temp = readOGR(path.expand(paste0(data_subf,'\\delineation')),'MSG11_reg_simpl',verbose=FALSE) +# +# # the input shape file should come externally, in some model setup +# # usually it has two columns, the first should be called 'PID', the second 'REGION' +# # only the second column matter in terms of name, and should have the region names used in the model +# +# region_units.spdf = spTransform(temp, CRS("+proj=longlat")) +# rm(temp) + +# # Read in Raptis et al data +# ppl.df = data.frame(read.csv(paste0(data_subf,'/ppl_cooling_tech/POWER_PLANTS_2016_Raptis.csv'),stringsAsFactors=FALSE)) +# raptis_types_map_cooling.df = data.frame(read.csv(paste0(data_subf,'/ppl_cooling_tech/raptis_types_map_cooling_type.csv'),stringsAsFactors=FALSE)) +# raptis_types_map_unit.df = data.frame(read.csv(paste0(data_subf,'/ppl_cooling_tech/raptis_types_map_unit_type.csv'),stringsAsFactors=FALSE)) +# +# # MESSAGE technologies +# msg_types.df = data.frame(read.csv(paste0(data_subf,'/ppl_cooling_tech/tech_names_ssp_msg.csv'),stringsAsFactors=FALSE)) +# msg_ppl = unique(c(raptis_types_map_unit.df$msgssp_type,raptis_types_map_unit.df$alt1,raptis_types_map_unit.df$alt2,raptis_types_map_unit.df$alt3)) +# msg_ppl = msg_ppl[-1*(which(msg_ppl==''))] +# msg_cool = unique(raptis_types_map_cooling.df$msgssp_type) +# +# fuel_group = lapply(1:length(msg_ppl),function(x){ +# ind1 = which( as.character(raptis_types_map_unit.df$msgssp_type) == as.character(msg_ppl[x]) | as.character(raptis_types_map_unit.df$alt1) == as.character(msg_ppl[x]) | as.character(raptis_types_map_unit.df$alt2) == as.character(msg_ppl[x]) | as.character(raptis_types_map_unit.df$alt3) == as.character(msg_ppl[x]) ) +# return(unique(unlist(strsplit( as.character(raptis_types_map_unit.df$raptis_type[ind1]),'[.]' ))[seq(1,length(unlist(strsplit( as.character(raptis_types_map_unit.df$raptis_type[ind1]),'[.]' ))),b=2)])) +# }) +# +# utype = lapply(1:length(msg_ppl),function(x){ +# ind1 = which( as.character(raptis_types_map_unit.df$msgssp_type) == as.character(msg_ppl[x]) | as.character(raptis_types_map_unit.df$alt1) == as.character(msg_ppl[x]) | as.character(raptis_types_map_unit.df$alt2) == as.character(msg_ppl[x]) | as.character(raptis_types_map_unit.df$alt3) == as.character(msg_ppl[x]) ) +# return(unique(unlist(strsplit( as.character(raptis_types_map_unit.df$raptis_type[ind1]),'[.]' ))[seq(2,length(unlist(strsplit( as.character(raptis_types_map_unit.df$raptis_type[ind1]),'[.]' ))),b=2)])) +# } ) +# +# cool = lapply(1:length(msg_cool),function(x){ as.character(raptis_types_map_cooling.df$raptis_type[which( as.character(raptis_types_map_cooling.df$msgssp_type) == as.character(msg_cool[x]) )])}) +# +# # Pull out data for this specific technology for each region +# cool_techs = unlist(lapply(1:length(msg_cool), function(x){as.matrix(unlist(lapply(1:length(msg_ppl),function(y){paste(msg_ppl[y],msg_cool[x],sep='.')})))})) +# xs = rep(seq(1,length(msg_ppl),by=1),length(msg_cool)) +# ys = unlist(lapply(1:length(msg_cool),function(dd){ rep(dd,length(msg_ppl)) })) +# +# # Cooling techs by pid +# cool_techs_by_pid = data.frame(do.call(rbind, lapply(1:length(cool_techs), function(z){ +# xx = xs[z] +# yy = ys[z] +# temp = ppl.df[which( as.character(ppl.df$Fuel_group) %in% as.character(fuel_group[[xx]]) & +# as.character(ppl.df$UTYPE) %in% as.character(utype[[xx]]) & +# as.character(ppl.df$COOL_complete) %in% as.character(cool[[yy]]) ),] +# if(nrow(temp)>0) +# { +# temp$x = temp$long +# temp$y = temp$lat +# coordinates(temp) = ~ x + y +# proj4string(temp) = proj4string(region_units.spdf) +# temp$pid = unlist(over(temp,region_units.spdf[,which(names(region_units.spdf) == 'PID')])) +# temp = temp[-1*(which(is.na(temp$pid) | is.na(temp$MW))),] +# mw_by_pid = unlist(lapply(1:length(region_units.spdf@data$PID), function(bb){ max(0, sum( temp$MW[ which( as.character(temp$pid) == as.character(region_units.spdf@data$PID[bb]) ) ], na.rm=TRUE ), na.rm=TRUE) } ) ) +# return(mw_by_pid) +# }else +# { +# mw_by_pid = rep(0,length(region_units.spdf@data$REGION)) +# return(mw_by_pid) +# } +# }))) +# row.names(cool_techs_by_pid) = cool_techs +# +# type_general = unlist(strsplit( cool_techs, '[.]' ))[seq(1,length(unlist(strsplit( cool_techs, '[.]' ))),by=2)] +# cool_general = unlist(strsplit( cool_techs, '[.]' ))[seq(2,length(unlist(strsplit( cool_techs, '[.]' ))),by=2)] +# cool_techs_shares_by_pid = data.frame( do.call( cbind, lapply(1:length(region_units.spdf@data$REGION), function(r){ as.matrix( unlist( lapply( 1:length(cool_techs), function(z){ +# share = cool_techs_by_pid[z,r] / sum( c( cool_techs_by_pid[ which( as.character(type_general) == as.character(type_general[z]) ), r] ), na.rm = TRUE) +# if( is.na(share) | length(share) == 0 ){share = round( sum( c( cool_techs_by_pid[ which( as.character(cool_general) == as.character(cool_general[z]) ), r] ), na.rm = TRUE) / sum( c( cool_techs_by_pid[ , r] ), na.rm = TRUE), digits = 3)} +# return(round(share, digits = 3)) } ) ) ) } ) ) ) +# row.names(cool_techs_shares_by_pid) = cool_techs +# names(cool_techs_shares_by_pid) = as.character(region_units.spdf@data$REGION) +# cool_techs_shares_by_pid$cooling_utype = as.character(cool_techs) +# cool_techs_shares_by_pid$cooling = as.character(cool_general) +# cool_techs_shares_by_pid$utype = as.character(type_general) +# cool_techs_shares_by_pid = cool_techs_shares_by_pid[,c('utype','cooling',as.character(region_units.spdf@data$REGION))] +# cool_techs_shares_by_pid = cool_techs_shares_by_pid[ order( cool_techs_shares_by_pid$utype ), ] +# +# # This will be the file +# write.csv(cool_techs_shares_by_pid,paste0(data_subf,'/cool_techs_region_share.csv'),row.names = FALSE) +# +# #add 'mix_' to the columns names for regions +# cool_techs_shares_by_pid2 = cool_techs_shares_by_pid +# new_names = paste0('mix_', names(cool_techs_shares_by_pid2)[!names(cool_techs_shares_by_pid2) %in% c('utype','cooling')] ) +# names(cool_techs_shares_by_pid2)[!names(cool_techs_shares_by_pid2) %in% c('utype','cooling')] = new_names +# +# # add the data to the cooltech_cost_and_shares_ssp_msg.csv file +# cooltech_cost_shares = read.csv(paste0(data_subf,'/cooltech_cost_and_shares_ssp_msg.csv'),stringsAsFactors=FALSE) +# cooltech_cost_shares = cooltech_cost_shares %>% +# select(utype, cooling,investment_million_USD_per_MW_low, investment_million_USD_per_MW_mid, investment_million_USD_per_MW_high) %>% +# left_join(cool_techs_shares_by_pid2) +# +# # write new file +# write.csv(cool_techs_shares_by_pid,paste0(data_subf,'/cooltech_cost_and_shares_ssp_msg.csv'),row.names = FALSE) diff --git a/nest/message_ix_models/model/water/data/pre-processing/desalination.R b/nest/message_ix_models/model/water/data/pre-processing/desalination.R new file mode 100644 index 0000000..2b74aa5 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/desalination.R @@ -0,0 +1,945 @@ +# Desalination +rm(list = ls()) +require(reshape) +require(rgdal) +require(raster) +require(rgeos) +require(countrycode) +require(RCurl) +require(xlsx) + +require(maptools) +require(ncdf4) + +library(broom) +library(readstata13) +library(sandwich) +library(lmtest) +library(zoo) +library(readxl) +library(corrplot) +library(plm) +library(car) +# library(gghighlight) + +library(tidyverse) +# library(caret) + +# here we put together the data processing scripts that +# 1. determine historical capacity (from oder add_Water_infractructure.R from Simon) +# 2. set future base desalination trends +# 3. set upperbound for desalination expansion/speed of growth + +model_years = c(1990,1995,2000,2005,2010,2015) +#define region + +#### not needed#### +# Load in the cleaned desal database from Hanasaki et al 2016 and add MESSAGE regions +reg.spdf = readOGR('P:/ene.model/data/desalination','REGION_dissolved',verbose=FALSE) # old +global_desal.spdf = spTransform( readOGR('P:/ene.model/NEST/desalination/Hanasaki_et_al_2015','global_desalination_plants'), crs(reg.spdf) ) +global_desal.spdf@data$region = over(global_desal.spdf,reg.spdf[,which(names(reg.spdf) == 'REGION')])$REGION +global_desal.spdf = global_desal.spdf[ -1*which( is.na(global_desal.spdf@data$region) ), ] +global_desal.spdf@data$msg_vintage = sapply( global_desal.spdf@data$online, function(x){ as.numeric( model_years[ which.min( ( as.numeric( model_years ) - x )^2 ) ] ) } ) +global_desal.spdf@data$technology_2 = sapply( global_desal.spdf@data$technology, function(x){ if( grepl('MSF',x)|grepl('MED',x) ){ return('distillation') }else{ return('membrane') }} ) + +# From : Chart 1.1 in 'Executive Summary Desalination Technology Markets Global Demand Drivers, Technology Issues, Competitive Landscape, and Market Forecasts' +# Global desalination capacity in 2010 was approx. 24 km3 / year +global_desal.spdf@data$m3_per_day = global_desal.spdf@data$m3_per_day * ( 24 / ( sum( global_desal.spdf@data$m3_per_day ) * 365 / 1e9 ) ) + +region = unique(global_desal.spdf$region) +# Match to message vintaging and regions, km3/years +historical_desal_capacity.list = lapply( c('membrane','distillation'), function(tt){ + temp = data.frame( do.call(cbind, lapply( region, function(reg){ sapply( unique(global_desal.spdf@data$msg_vintage)[ + order(unique(global_desal.spdf@data$msg_vintage))], function(y){ + (365/1e9) * max( 0, sum( global_desal.spdf@data$m3_per_day[ + which( global_desal.spdf@data$msg_vintage == y & global_desal.spdf@data$region == reg & + global_desal.spdf@data$technology_2 == tt ) ] , na.rm=TRUE ), na.rm=TRUE ) } ) } ) ) ) + names(temp) = region + row.names(temp) = unique(global_desal.spdf@data$msg_vintage)[order(unique(global_desal.spdf@data$msg_vintage))] + return(temp) +} ) +names(historical_desal_capacity.list) = c('membrane','distillation') + +#### from here #### + +#summarise for regression +global_desal.csv = read.csv('P:/ene.model/NEST/desalination/Hanasaki_et_al_2015/desal_data_Hanasaki_et_al_2015.csv') + +desal_data.df = global_desal.csv +# clean up names +names(desal_data.df) = c("country","location","m3_per_day","technology","water_type","online","user","price","lat","lon") +desal_data.df$country = as.character(desal_data.df$country) +desal_data.df$location = as.character(desal_data.df$location) +desal_data.df$technology = as.character(desal_data.df$technology) +desal_data.df$water_type = as.character(desal_data.df$water_type) +desal_data.df$user = as.character(desal_data.df$user) +desal_data.df$price = as.character(desal_data.df$price) +desal_data.df$m3_per_day = gsub(",", "", desal_data.df$m3_per_day) +desal_data.df$m3_per_day = as.numeric(desal_data.df$m3_per_day) +desal_data.df$online = as.numeric(desal_data.df$online) +desal_data.df$lat = as.numeric(desal_data.df$lat) +desal_data.df$lon = as.numeric(desal_data.df$lon) +temp1 = unique(desal_data.df$user) +temp2 = c('municipal','industry','power','tourism','irrigation','military') +for (i in 1:length(temp1)) +{ + desal_data.df$user[desal_data.df$user == temp1[i]] = temp2[i] +} +temp1 = unique(desal_data.df$water_type) +temp2 = c('seawater','brine') +for (i in 1:length(temp1)) +{ + desal_data.df$water_type[desal_data.df$water_type == temp1[i]] = temp2[i] +} +head(desal_data.df) + +map_iso3 = data.frame(country = unique(desal_data.df$country), + iso3 = countrycode(unique(desal_data.df$country), + origin = 'country.name', + destination = 'iso3c' )) +desal_data.df = desal_data.df %>% left_join(map_iso3) + +#### DESALDATA direclty form database and see if there is more data than from Hanasaki et al 2016 #### +desaldata.csv = read.csv('P:/ene.model/NEST/desalination/DESALCAPACITYDATA/DesalData-2016-06-15.csv') + +desaldata.df = desaldata.csv %>% + select(Country,Location,Capacity..m3.d.,Technology,Feedwater,Online.date,Customer.type,EPC.price,Plant.status,Latitude,Longitude) + +# clean up names +names(desaldata.df) = c("country","location","m3_per_day","technology","water_type","online","user","price","status","lat","lon") +desaldata.df$country = as.character(desaldata.df$country) +desaldata.df$location = as.character(desaldata.df$location) +desaldata.df$technology = as.character(desaldata.df$technology) +desaldata.df$water_type = as.character(desaldata.df$water_type) +desaldata.df$user = as.character(desaldata.df$user) +desaldata.df$price = as.character(desaldata.df$price) +desaldata.df$m3_per_day = gsub(",", "", desaldata.df$m3_per_day) +desaldata.df$m3_per_day = as.numeric(desaldata.df$m3_per_day) +desaldata.df$online = as.numeric(desaldata.df$online) +desaldata.df$status = as.character(desaldata.df$status) +desaldata.df$lat = as.numeric(desaldata.df$lat) +desaldata.df$lon = as.numeric(desaldata.df$lon) +temp1 = unique(desaldata.df$user) +temp2 = c('municipal','industry','power','tourism','irrigation','military') +for (i in 1:length(temp1)) +{ + desaldata.df$user[desaldata.df$user == temp1[i]] = temp2[i] +} +temp1 = unique(desaldata.df$water_type) +temp2 = c('seawater','brine') +for (i in 1:length(temp1)) +{ + desaldata.df$water_type[desaldata.df$water_type == temp1[i]] = temp2[i] +} +# status online, or ofline +desaldata.df = desaldata.df %>% mutate(status = if_else(grepl('Offline|Cancelled',status), 'offline','online') ) +head(desaldata.df) +write.csv(desaldata.df,'P:/ene.model/NEST/desalination/DESALCAPACITYDATA2016_clean.csv') +# online plants for historical capacity +desaldata_online.df = desaldata.df %>% filter(status == 'online') +write.csv(desaldata_online.df,'P:/ene.model/NEST/desalination/DESALCAPACITYDATA2016_current_online.csv') + +desaldata.df = desaldata.df %>% select(-status) +map_iso3 = data.frame(country = unique(desaldata.df$country), + iso3 = countrycode(unique(desaldata.df$country), + origin = 'country.name', + destination = 'iso3c' )) +desaldata.df = desaldata.df %>% left_join(map_iso3) + +# m3_day yearly new capacity +desal_new_cap.df = desal_data.df %>% + rename(year = online) %>% + group_by(iso3,year) %>% + summarise(desal_cap = sum(m3_per_day)) %>% ungroup() %>% + group_by(iso3) %>% + mutate(cum_desal = cumsum(desal_cap)) %>% ungroup() + +#from desalCAPACITYDATA database +desal_new_cap2.df = desaldata.df %>% + rename(year = online) %>% filter(!is.na(year),!is.na(m3_per_day)) %>% + group_by(iso3,year) %>% + summarise(desal_cap = sum(m3_per_day)) %>% ungroup() %>% + group_by(iso3) %>% + mutate(cum_desal = cumsum(desal_cap)) %>% ungroup() + +desal_new_cap_glb.df = desal_new_cap2.df %>% group_by(year) %>% + summarise(desal_cap = sum(desal_cap), + cum_desal = sum(cum_desal)) %>% ungroup() %>% + mutate(cum_desal2 = cumsum(desal_cap)) %>% + gather(key = "cum_type",value = "value",cum_desal,cum_desal2) + +ggplot(desal_new_cap_glb.df)+ + geom_line(aes(x = year,y = value, color = cum_type)) + +#comparison +desal_comp = desal_new_cap.df %>% + left_join(desal_new_cap2.df %>% + rename(desal2 = desal_cap, + cumsum2 = cum_desal)) %>% + select(iso3,year,desal_cap,desal2,cum_desal,cumsum2) %>% + group_by(iso3) %>% + mutate(max_cumacp1 = max(cum_desal), + max_cumcap2 = max(cumsum2)) %>% ungroup() %>% + filter( (cum_desal == max_cumacp1), + cum_desal > 1000000) + +# it seems that the NA in the DESALCAPACITYDATA are included in other years in Hanasaki et al 2016 +# moreover DESALCAPACITYDATA has longer historical than Hanasaki et al 2016 +# Hanasaki et al 2016 summarizes some histircal data in later starting years +desal_new_cap3.df = desal_new_cap2.df %>% ungroup() + +write.csv(desal_new_cap3.df,'P:/ene.model/NEST/desalination/DESALCAPACITYDATA2016_aggregated.csv') +# highest +quantiles = desal_new_cap3.df %>% group_by(iso3) %>% + filter(cum_desal == max(cum_desal)) +quantiles = quantiles %>% + mutate(quant = if_else(cum_desal <= quantile(quantiles$cum_desal, 0.33), 'q3_3', + if_else(quantile(quantiles$cum_desal, 0.33) < cum_desal & cum_desal <= quantile(quantiles$cum_desal, 0.66), 'q2_3', + 'q1_3'))) %>% + select(iso3,quant) %>% drop_na() + +# plot to see if lines can be approssimates with linear models +ggplot(desal_new_cap3.df %>% left_join(quantiles) %>% filter(quant == 'q1_3'))+ + geom_line(aes(x = year,y = cum_desal))+ + facet_wrap(~iso3)+theme_bw() +ggplot(desal_new_cap3.df %>% left_join(quantiles) %>% filter(quant == 'q2_3'))+ + geom_line(aes(x = year,y = cum_desal))+ + facet_wrap(~iso3)+theme_bw() +ggplot(desal_new_cap3.df %>% left_join(quantiles) %>% filter(quant == 'q3_3'))+ + geom_line(aes(x = year,y = cum_desal))+ + facet_wrap(~iso3)+theme_bw() +# veryfy normal distribution assumption +hist(desal_new_cap3.df$desal_cap) +hist(desal_new_cap3.df$cum_desal) +# log +hist(log(desal_new_cap3.df$desal_cap) ) +#it does not look very normal, it is right-skewed +hist(log(desal_new_cap3.df$cum_desal) ) +# using cumulative capacity it has a normal shape + +# load other variables for regression model +# GDP WB 2021 data , it has long history wrt to what Marina used +# change to NAVIGATE updates +gdp = read.csv('P:/ene.model/NEST/GDP/WB_GDP_2021/GDP_country_cleaned.csv') %>% + gather(key = 'year',value = 'gdp',5:65) %>% select(iso3,year,gdp) %>% + mutate(year = as.numeric(gsub('X','',year))) + +gdp_historical<-read.csv("P:/ene.model/NEST/governance/governance_2021/input/navigate_ssp.csv") %>% + filter(scenario=="WDI_2021", variable=="gdppc") %>% + rename(iso3=region) %>% + select(-c(scenario, variable)) %>% + pivot_longer(!iso3, names_to = "Year", values_to = "gdp") %>% + mutate(year = as.numeric(gsub('X','',Year))) %>% + filter(year<2020) %>% + select(iso3,year,gdp) + +gdp_new_hist_proj = read.csv('P:/ene.model/NEST/governance/governance_2021/input/gdp_full_WB_NAVIGATE.csv') +gdp_new = gdp_new_hist_proj %>% select(iso3c,year,gdppc) %>% + rename(iso3 = iso3c, gdp = gdppc) %>% drop_na() + +hist(gdp$gdp) +hist(gdp_historical$gdp) +hist(log(gdp$gdp) ) +hist(log(gdp_historical$gdp) ) +hist(gdp_new$gdp) +hist(log(gdp_new$gdp)) +# log has a better distribution + +# Worldwide Governance Indicators - updates Kaufmann, Kraay & Mastruzzi (2021) +# The values of indicators span a range from -2.5 to 2.5, here they were +# transformed to fall in the 0 to 1 range + +# Function to standardize the values from 0 to 1 +range01 <- function(x){(x - min(x, na.rm = T))/(max(x, na.rm = T) - min(x, na.rm = T))} + +wgi <- read.dta13('P:/ene.model/NEST/governance/wgidataset.dta') %>% + select(code, countryname, year, contains('e'), -ges, -gen, -ger, -gel, -geu) %>% + rename(voic.ac = vae, + pol.stab = pve, + gov.eff = gee, + reg.qual = rqe, + ru.law = rle, + corr.cont = cce, + countrycode = code) %>% + gather(var, value, -countrycode, -countryname, -year) %>% + group_by(var) %>% + mutate(value = range01(value)) %>% + ungroup() %>% + mutate(year = as.integer(year)) %>% + spread(var, value) %>% + mutate(governance = rowMeans(select(., voic.ac, + pol.stab, gov.eff, reg.qual, ru.law, corr.cont))) %>% # # Governance variable as the arithmetic average of the six components of WGI) %>% + select(-countryname) + +gov = wgi %>% select(countrycode,year,governance) +names(gov) = c('iso3','year','gov') +names(wgi) = c('iso3','year',"corr.cont","gov.eff","pol.stab","reg.qual","ru.law","voic.ac",'gov') + +# other from Elina +gov_eff<- read.csv("P:/ene.model/NEST/governance/governance_2021/input/governance_2021.csv") %>% + mutate(gov_norm=range01(gee)) %>% + select(countryname, year, gov_norm) %>% + arrange(countryname, year) %>% + mutate(iso3=countrycode(countryname, "country.name", "iso3c")) %>% + select(iso3,year,gov_norm) + +gov_eff<- read.csv("P:/ene.model/NEST/governance/governance_2021/input/qog_2021.csv") %>% + mutate(gov_norm=range01(icrg_qog)) %>% + select(ccodealp, year, gov_norm) %>% + arrange(ccodealp, year) %>% + mutate(iso3=ccodealp) %>% + select(iso3,year,gov_norm) %>% drop_na() + +hist(gov$gov) +hist(gov_eff$gov_norm) +# without log, it has a normal distribution + +# WSI from Ed +wsi_hist = read.xlsx('P:/ene.model/data/Water/water_stress_cc/ISO_water_stress/wsi_tables_hist_new.xlsx', + sheetIndex = 1) + +wsi.df = wsi_hist %>% gather(key = year, value = wsi , 3:length(wsi_hist)) %>% + filter(!grepl('_bin',year)) %>% + mutate(year = as.numeric(gsub('X','',year)), + wsi = round(as.numeric(wsi),digits = 3)) %>% + rename(iso3 = ISO) %>% + select(iso3,year,wsi) +#very high values + +hist(wsi.df$wsi) +hist(log(wsi.df$wsi)) +#use log +library(WDI) +wsi_wb <- WDI(country = "all", + indicator = c('water_stress'="ER.H2O.FWST.ZS"), + start = 1960,end = 2020,extra = TRUE) %>% + as_tibble() %>% + filter(region!="Aggregates") +wsi_wb = wsi_wb %>% drop_na() +# probably notusing it, weird values + +# presence of coast # of gridcels +# it would be nice to use historical trends of population living close to the coast +coast = read.csv('P:/ene.model/NEST/desalination/coast.csv') +names(coast) = c('iso3','coast') + +hist(coast$coast) +# skewed, take log +hist(log(coast$coast)) + +# use all log variables, except from gov +# what about NA, how to handle? +master = desal_new_cap3.df %>% select(-cum_desal) %>% + full_join(gdp_historical) %>% # add gdp + mutate(desal_cap = if_else(is.na(desal_cap), 0 ,desal_cap)) %>% + # calculate cum capacity with in na after merging + #re-aggregate desalination capacity + arrange(year, .by_group = T) %>% ungroup() %>% group_by(iso3) %>% + mutate(cum_desal = cumsum(desal_cap)) %>% ungroup() %>% + # remove gdp na + filter(!is.na(gdp)) %>% + #retail only countries with desaliantion + filter(iso3 %in% unique(desal_new_cap3.df$iso3)) %>% + left_join(gov_eff) %>% + left_join(wgi ) %>% + left_join(coast) %>% filter(!is.na(coast)) %>% + left_join(wsi.df) %>% + ungroup() %>% group_by(iso3) %>% + mutate(wsi = as.numeric(if_else(is.na(wsi), stats::quantile(wsi,0.75,na.rm = T), wsi)), + gov_norm = as.numeric(if_else(year < 1984, stats::quantile(gov_norm,0.25,na.rm = T), gov_norm)), + gov = as.numeric(if_else(year < 2004, stats::quantile(gov,0.25,na.rm = T), gov)), + # corr.cont = as.numeric(if_else(year < 1996, stats::quantile(corr.cont,0.25,na.rm = T), corr.cont)), + # gov.eff = as.numeric(if_else(year < 1996, stats::quantile(gov.eff,0.25,na.rm = T), gov.eff)), + # pol.stab = as.numeric(if_else(year < 1996, stats::quantile(pol.stab,0.25,na.rm = T), pol.stab)), + # ru.law = as.numeric(if_else(year < 1996, stats::quantile(ru.law,0.25,na.rm = T), ru.law)), + # voic.ac = as.numeric(if_else(year < 1996, stats::quantile(voic.ac,0.25,na.rm = T), voic.ac)) + ) %>% + ungroup() %>% + mutate(log_desal = log(cum_desal), + log_gdp = log(gdp), + log_coast = log(coast), + log_wsi = log(wsi)) %>% + # filter out -inf, all val before first desal plant + filter(!is.infinite(log_desal),!is.infinite(log_wsi)) %>% + # select(iso3,year,log_desal,log_gdp,gov.eff,pol.stab,reg.qual,ru.law,voic.ac,gov_norm,log_wsi,log_coast) + select(iso3,year,log_desal,log_gdp,gov_norm,log_wsi,log_coast) + +master = master %>% rename(gov = gov_norm) +#### ANALYSIS ### +# Explore correlations between the variables in the dataset +cor.exp <- master %>% + select(log_desal, log_gdp, gov,log_wsi, log_coast) %>% + # select(log_desal, log_gdp, gov.eff, pol.stab, reg.qual, ru.law, voic.ac, gov_norm,log_wsi, log_coast) %>% + drop_na() %>% + cor() + +corrplot(cor.exp, method = 'number',type = 'upper') + +# Split the data into training and test set +data(mtcars) + +## 75% of the sample size +smp_size <- floor(0.75 * nrow(master)) + +## set the seed to make your partition reproducible +set.seed(123) +train_ind <- sample(seq_len(nrow(master)), size = smp_size) + +train.data <- master[train_ind, ] +test.data <- master[-train_ind, ] + +#### simple model #### checking multicollinearity +# lm1 <- lm(log_desal ~ log_gdp + pol.stab + gov.eff + log_wsi + log_coast, data = train.data) +lm1 <- lm(log_desal ~ log_gdp + gov + log_wsi + log_coast, data = master) +summary(lm1) +# multicolinearity +# The smallest possible value of VIF is one (absence of multicollinearity). +# As a rule of thumb, a VIF value that exceeds 5 or 10 indicates a problematic amount of collinearity (James et al. 2014). +vif(lm1) +# remove gov.eff,ru.law,reg.qual highest value + +predictions = lm1 %>% predict(test.data) +RMSE(predictions, test.data$log_desal) +R2(predictions, test.data$log_desal) +# plot prediction +pred1 = test.data %>% bind_cols(prediction = predictions) + +ggplot(pred1)+ + geom_point(aes(x = log_desal,y = prediction))+ + geom_abline()+ + scale_x_continuous(limits = c(0,20))+ + scale_y_continuous(limits = c(0,20))+ + xlab('log desal cap')+ylab('predictions') + +#### fixed effect test #### +# 1) way +# lm2 <- lm(log_desal ~ log_gdp + pol.stab + gov.eff + log_wsi + log_coast + factor(iso3) -1, data = master) +# lm2 <- lm(log_desal ~ log_gdp + gov + log_wsi + log_coast + factor(iso3) -1, data = master) +# summary(lm2) +# +# predictions2 = lm2 %>% predict() +# # remove countries that do not have enough data +# # BHS, HKG, MLT, PSE +# test.data2 = test.data %>% filter(!iso3 %in% c('BHS','HKG','MLT','PSE' )) +# predictions2 = lm2 %>% predict(test.data2) +# pred2 = test.data2 %>% bind_cols(prediction = predictions2) +# +# ggplot(pred2)+ +# geom_point(aes(x = log_desal,y = prediction, color = iso3))+ +# geom_abline()+ +# scale_x_continuous(limits = c(0,20))+ +# scale_y_continuous(limits = c(0,20))+ +# xlab('log desal cap')+ylab('predictions') + +# 2) way, with plm +lm3 <- plm(log_desal ~ log_gdp + gov + log_wsi + log_coast, + data = master, + index = c("iso3"), + model = "within", + effect = 'individual' + ) +summary(lm3) +summary(fixef(lm3)) + +pred3 = master %>% + group_by(iso3) %>% + mutate(y_mean = mean(log_desal)) %>% ungroup() %>% + mutate(pred = predict(lm3) + y_mean) # this predict only work on the train.data, canno apply to other data + +ggplot(pred3)+ + geom_point(aes(x = log_desal, y = pred, color = iso3))+ + geom_abline()+ + scale_x_continuous(limits = c(0,20))+ + scale_y_continuous(limits = c(0,20))+ + xlab('log desal cap')+ylab('predictions')+theme_bw() + +# Ftest. The null is that no time-fixed effects are needed +# maybe not needed, it was for testing time effect +pFtest(lm3, lm1) +plmtest(lm3, c("time"), type=("bp")) + +# store models +# manually select model names +model_names = c("lm1",'lm2',"lm3") + +# create a list based on models names provided +list_models = lapply(model_names, get) +names(list_models) = model_names +summary(list_models[['lm2']]) + +library(rlist) +list.save(list_models, 'P:/ene.model/NEST/desalination/regression_models_lm_plm.rdata') +# test load +tes = list.load(file="P:/ene.model/NEST/desalination/regression_models_lm_plm.RData") + +# print summary using robust standard errors +coeftest(lm3, vcov. = vcovHC, type = "HC1") + +#### TEST and COMPARE #### + +get_estimate = function(es,var){ + c = es %>% + filter(term == var) %>% + select(estimate) + return(c) +} + +adjust_fe = function(fe){ + + years <- c(year = seq(1995, 2100, 1)) + + cntry.fe <-fe %>% + merge(years, all.y = T) %>% + dplyr::rename(year = y) %>% drop_na() + # mutate(fe=abs(fe)) + + # Country fixed effects: they are expected to converge to the 75th percentile of the present-day distribution, + # in years in the future changing by the SSPs. We follow the approach of Crespo Cuaresma (2017), + # and let the fixed effects converge for SSP1: 2130, SSP2:2250, SSP3: No convergence, SSP4: 2250, SSP5: 2180 + #adjust for the year 2020 as the base + + #The convergence rates for SSP2 and SSP4 are the same + + conv.rates <- data.frame(years = c(110, 230, 3000, 230, 160), + scenario = c('SSP1', 'SSP2', 'SSP3', 'SSP4', 'SSP5')) + target <- quantile(cntry.fe$fe, 0.50) + if (target > 0){ + max.fe <- max(cntry.fe$fe) + } else { + max.fe <- min(cntry.fe$fe) + } + + #Calculated decreasing rates for each SSP + + ssps<-conv.rates %>% + mutate(r=-log(target/max.fe)/years) %>% + select(-years) + + ssps<- merge(ssps, years, all.y = T) %>% + dplyr::rename(year=y) + + fe_adjusted<-merge(cntry.fe, ssps, by=c("year")) + + fe_adjusted<-fe_adjusted %>% + filter(year>2019) %>% + group_by(iso3, scenario) %>% + mutate(fe_adj=fe) %>% + mutate(fe_adj=ifelse(abs(fe)>abs(target), fe*(1+r)^(2021-year), fe_adj)) %>% + # mutate(fe_adj=-fe_adj) %>% + # rename(Year=year) + return(fe_adjusted) +} + +#lm2 +lm2_es <- tidy(lm2) + +c1l2 <- get_estimate(lm2_es,'log_gdp')$estimate +# c2l2 <- get_estimate(lm2_es,'pol.stab')$estimate +c3l2 <- get_estimate(lm2_es,'gov')$estimate +c4l2 <- get_estimate(lm2_es,'log_wsi')$estimate +c5l2 <- get_estimate(lm2_es,'log_coast')$estimate + +cntry.fe2 <- lm2_es %>% + filter(grepl('factor',term)) %>% + dplyr::rename(iso3 = term,fe = estimate) %>% + mutate(iso3 = gsub('[factor(iso3)]','',iso3)) %>% + select(iso3,fe) + +fe2 = adjust_fe(cntry.fe2) + +#lm3 +lm3_es <- tidy(lm3) + +c1l3 <- get_estimate(lm3_es,'log_gdp')$estimate +# c2l3 <- get_estimate(lm3_es,'pol.stab')$estimate +c3l3 <- get_estimate(lm3_es,'gov')$estimate +c4l3 <- get_estimate(lm3_es,'log_wsi')$estimate +# c5l3 <- get_estimate(lm3_es,'log_coast')$estimate + +#Calculation country fixed effects + +cntry.fe3 <- fixef(lm3) %>% + as.data.frame() %>% + rownames_to_column("iso3") %>% + dplyr::rename(fe = ".") + +fe3 = adjust_fe(cntry.fe3) + +# plot +fe2 %>% + filter(iso3 == "CHN") %>% + filter(scenario!="SSP4") %>% + ggplot(aes(x = year, y = fe_adj, color = scenario)) + + geom_line(size = 1) + + labs(y = "Fixed effect", x = "China") + +# tests +test.res = master %>% + left_join(cntry.fe2 %>% dplyr::rename(fe2 = fe)) %>% + left_join(cntry.fe3 %>% dplyr::rename(fe3 = fe)) + +projected<-test.res %>% + mutate(log_desal2 = log_gdp*(c1l2) + gov*(c3l2) + log_wsi*(c4l2) + log_coast*(c5l2) + fe2, + log_desal3 = log_gdp*(c1l3) + gov*(c3l3) + log_wsi*(c4l3) + fe3) + +# plot +ggplot(projected %>% filter( iso3 %in% c('USA','ARE','SAU','ESP','KWT','QAT')) )+ + geom_line(aes(x = year,y = exp(log_desal) ), color = 'black')+ + geom_line(aes(x = year,y = exp(log_desal2) ), color = 'blue')+ + geom_line(aes(x = year,y = exp(log_desal3) ), color = 'red')+ + facet_wrap(~iso3)+theme_bw() + +# check master, which variables are driving drop in projections for ARE, SAU, KWT +ggplot( )+ + geom_line(data = projected %>% filter( iso3 %in% c('ARE','SAU','KWT','QAT')),aes(x = year,y = log_desal2 ), color = 'grey',size = 2)+ + geom_line(data = master %>% filter( iso3 %in% c('ARE','SAU','KWT','QAT')),aes(x = year,y = log_desal ), color = 'black')+ + geom_line(data = master %>% filter( iso3 %in% c('ARE','SAU','KWT','QAT')),aes(x = year,y = log_gdp ), color = 'blue')+ + geom_line(data = master %>% filter( iso3 %in% c('ARE','SAU','KWT','QAT')),aes(x = year,y = log_wsi ), color = 'red')+ + geom_line(data = master %>% filter( iso3 %in% c('ARE','SAU','KWT','QAT')),aes(x = year,y = gov ), color = 'green')+ + facet_wrap(~iso3)+theme_bw() + +ggplot(projected %>% filter( iso3 %in% quantiles[quantiles$quant == 'q1_3',]$iso3 , + !iso3 %in% c('USA','ARE','SAU','ESP','KWT','QAT') ) )+ + geom_line(aes(x = year,y = exp(log_desal) ), color = 'black')+ + geom_line(aes(x = year,y = exp(log_desal2) ), color = 'blue')+ + geom_line(aes(x = year,y = exp(log_desal3) ), color = 'red')+ + facet_wrap(~iso3)+theme_bw() + +ggplot(projected %>% filter( iso3 %in% quantiles[quantiles$quant == 'q2_3',]$iso3 , + !iso3 %in% c('USA','ARE','SAU','ESP','KWT','QAT') ) )+ + geom_line(aes(x = year,y = exp(log_desal) ), color = 'black')+ + geom_line(aes(x = year,y = exp(log_desal2) ), color = 'blue')+ + geom_line(aes(x = year,y = exp(log_desal3) ), color = 'red')+ + facet_wrap(~iso3)+theme_bw() + +ggplot(projected %>% filter( iso3 %in% quantiles[quantiles$quant == 'q3_3',]$iso3 ) )+ + geom_line(aes(x = year,y = exp(log_desal) ), color = 'black')+ + geom_line(aes(x = year,y = exp(log_desal2) ), color = 'blue')+ + geom_line(aes(x = year,y = exp(log_desal3) ), color = 'red')+ + facet_wrap(~iso3)+theme_bw() + +# lm2 and lm3 equal now +########################### +##### PROJECTIONS ######### +########################### + +#### TAKE MESSAGE REGION-BASIN structure #### +reg = 'R11' # or R12 or a ISO3 +scen = 'SSP2' +if (!reg %in% master$iso3){ + print(paste0("ATTENTION ",reg," is not in the dataset, continue only if its is a non-country (e.g. R11)")) +} +basin_by_region.spdf = readOGR('P:/ene.model/NEST/delineation/data/delineated_basins_new', + paste0('basins_by_region_simpl_',reg), verbose=FALSE) +row.names(basin_by_region.spdf@data) = 1:length(basin_by_region.spdf$BASIN) + +# Gadm country deineation +countries.spdf = readOGR('P:/ene.general/Water/global_basin_modeling/basin_delineation/data/country_delineation/gadm/output_data', 'gadm_country_boundaries', verbose=FALSE) +countries.spdf@data$ID = as.numeric(countrycode(countries.spdf@data$ISO, "iso3c", "iso3n")) +countries.spdf = countries.spdf[,c('ID','ISO','NAME','REGION','STATUS','CONTINENT')] + +#read in raster from ED. ATTENTION 2100 and 2110 missing +## Set path data folder in message_ix working copy +msg_data = paste0('P:/ene.model/NEST') +data_path = path.expand(msg_data) +RCPs = c('no_climate','2p6','6p0') + +nc = nc_open( paste0(data_path,'/water_scarcity/wsi_memean_ssp2_rcp6p0.nc'), verbose=FALSE) +watstress.brick = brick( paste0(data_path,'/water_scarcity/wsi_memean_ssp2_rcp6p0.nc') ) + +ras1 = watstress.brick$X2010s +plot(ras1) +start.spdf = rasterToPoints(ras1, spatial = TRUE) + +writeOGR( + start.spdf, + 'P:/ene.model/NEST/desalination', + paste0('WSI_check'), + driver="ESRI Shapefile", + overwrite_layer=TRUE +) +start.spdf$X2010s = NULL + +basin_info = over(start.spdf,basin_by_region.spdf) +country_info = over(start.spdf,countries.spdf) + +for (rcp in RCPs) { + print(paste0("RCP: ",rcp)) + if (rcp == '2p6'){ + nc = nc_open( paste0(data_path,'/water_scarcity/wsi_memean_ssp1_rcp4p5.nc'), verbose=FALSE) + watstress.brick = brick( paste0(data_path,'/water_scarcity/wsi_memean_ssp1_rcp4p5.nc') ) + + } else{ + nc = nc_open( paste0(data_path,'/water_scarcity/wsi_memean_ssp2_rcp6p0.nc'), verbose=FALSE) + watstress.brick = brick( paste0(data_path,'/water_scarcity/wsi_memean_ssp2_rcp6p0.nc') ) + } + + ras1 = watstress.brick$X2010s + plot(ras1) + start.spdf = rasterToPoints(ras1, spatial = TRUE) + start.spdf$X2010s = NULL + initial_years <- seq(2010, 2090, 5) + + for (i in seq(1:nlayers(watstress.brick)) ){ + r <- raster(watstress.brick, layer=i) + proj4string(r) = proj4string(watstress.brick) + yr = as.numeric(gsub('X','',gsub('s','',names(r)) )) + if (yr %in% initial_years){ + column_name = paste0('WSI.', yr ) + start.spdf@data[,column_name] = raster::extract(r,start.spdf) + # there are 876 Na values, we set them = 0 + start.spdf@data[column_name][is.na(start.spdf@data[column_name])] = 0 + } else {} + + } + + data.spdf = start.spdf + data.spdf@data = data.spdf@data %>% + bind_cols(basin_info %>% select(BCU_name), + country_info %>% select(ISO) %>% dplyr::rename(iso3 = ISO)) + + map_years = rbind(data.frame(my = initial_years) %>% mutate(sy = my -2), + data.frame(my = initial_years) %>% mutate(sy = my -1), + data.frame(my = initial_years) %>% mutate(sy = my), + data.frame(my = initial_years) %>% mutate(sy = my +1), + data.frame(my = initial_years) %>% mutate(sy = my +2)) %>% + arrange(my) + + # - makje a df with coordinates and years as columns + data.df = cbind(data.spdf@coords, data.spdf@data) %>% select(BCU_name,iso3,everything()) %>% + gather(key = year, value = wsi, 5:19) %>% + mutate(year = as.numeric( gsub('WSI.','',year))) %>% drop_na() + # - get national GDP, national governance indicator. point wsi and national coast values (as in regression) + # - mask out points not in coast area + # - project and make basin average + + # GDP + gdp_proj<-read.csv("P:/ene.model/NEST/governance/governance_2021/input/navigate_ssp.csv") %>% + filter(scenario=="SSP2", variable=="gdppc") %>% + rename(iso3=region) %>% + select(-c(scenario, variable)) %>% + pivot_longer(!iso3, names_to = "Year", values_to = "gdp") %>% + mutate(year = as.numeric(gsub('X','',Year))) %>% + filter(year>=2020) %>% + select(iso3,year,gdp) + + # make 5y averages + gdp_proj = gdp_proj %>% filter(year <= 2092) %>% drop_na() %>% + rename(sy = year) %>% + left_join(map_years) %>% group_by(iso3,my) %>% + summarise(gdp = mean(gdp)) %>% ungroup() %>% + rename(year = my) %>% + select(iso3, year, gdp) + + # Governance projections + gov_proj<- read.csv("P:/ene.model/NEST/governance/governance_obs_project.csv") %>% + mutate(gov=range01(governance)) %>% + arrange(countrycode, year) %>% + dplyr::rename(iso3 = countrycode) %>% + filter(year >= 2018,year < 2092, + scenario == scen) %>% + select(iso3, year, gov) + + # make 5y averages + gov_proj = gov_proj %>% filter(year <= 2092) %>% drop_na() %>% + rename(sy = year) %>% + left_join(map_years) %>% group_by(iso3,my) %>% + summarise(gov = mean(gov)) %>% ungroup() %>% + rename(year = my) %>% + select(iso3, year, gov) + + # Governance from Elina + read.csv("P:/ene.model/NEST/governance/governance_2021/output/projections_country_ssp2.csv") + + #values in lat historical period, LOG + hist_cum_cap = master %>% select(iso3,year,log_desal) %>% group_by(iso3) %>% + mutate(hist_cap = max(log_desal)) %>% ungroup() %>% + select(iso3,hist_cap) %>% distinct() + + future_proj = data.df %>% left_join(gdp_proj) %>% left_join(gov_proj) %>% + left_join(hist_cum_cap) %>% drop_na() + + if (rcp == 'no_climate'){ + future_proj = future_proj %>% group_by(iso3,x,y) %>% + mutate(wsi = first(wsi)) %>% ungroup() + } + + future_proj = future_proj %>% mutate(log_gdp = log(gdp), + log_wsi = log(wsi)) %>% + left_join(fe3 %>% ungroup() %>% + select(iso3,year,fe_adj)) %>% + mutate(log_desal3 = log_gdp*(c1l3) + gov*(c3l3) + log_wsi*(c4l3) + fe_adj) %>% + filter(!is.infinite(log_wsi)) %>% drop_na(fe_adj) + + #scale based on last historical year + future_plot = future_proj %>% group_by(iso3,year) %>% + mutate(desal_cap = exp(log_desal3) ) %>% + summarise(desal_cap = mean(desal_cap)) %>% + # adjust to hit_Cap + group_by(iso3) %>% mutate(min_cap = min(desal_cap)) %>% + left_join(hist_cum_cap) %>% + # move to absolute values + mutate(hist_cap = exp(hist_cap) ) %>% + # diff_hist is in ABSOLUTE value + mutate(diff_hist = hist_cap - min_cap, + desal_cap = desal_cap + diff_hist) %>% + ungroup() + + #apply diff_hist to all countries in the point database + diff_hist = future_plot %>% select(iso3,diff_hist) %>% distinct() + ## check if initial projected values is higher/equal to historical data + + future_proj_out= future_proj %>% left_join(diff_hist) %>% + mutate(desal_cap = exp(log_desal3), + desal_cap = desal_cap + diff_hist) + + ggplot( )+ + # geom_line(data = projected %>% filter( iso3 %in% c('ARE','USA','ESP','TKM','SAU','KWT','QAT')),aes(x = year,y = log_desal3 ), color = 'grey',size = 2)+ + geom_line(data = master %>% filter( iso3 %in% c('ARE','USA','ESP','TKM','SAU','KWT','QAT')),aes(x = year,y = exp(log_desal) ), color = 'black')+ + # geom_line(data = gdp_proj %>% filter( iso3 %in% c('ARE','USA','ESP','TKM','SAU','KWT','QAT')),aes(x = year,y = log(gdp) ), color = 'green')+ + geom_line(data = future_plot %>% filter( iso3 %in% c('ARE','USA','ESP','TKM','SAU','KWT','QAT')),aes(x = year,y = desal_cap ), color = 'red')+ + facet_wrap(~iso3)+theme_bw()+ggtitle('SECOND case, abs val') + + ggplot ()+ + # geom_line(data = projected %>% filter( iso3 %in% quantiles[quantiles$quant == 'q1_3',]$iso3 , + # !iso3 %in% c('USA','ARE','SAU','ESP','KWT','QAT','TKM') ), + # aes(x = year,y = exp(log_desal3) ), color = 'grey', size = 2)+ + geom_line(data = master %>% filter( iso3 %in% quantiles[quantiles$quant == 'q1_3',]$iso3 , + !iso3 %in% c('USA','ARE','SAU','ESP','KWT','QAT','TKM') ), + aes(x = year,y = exp(log_desal) ), color = 'black')+ + geom_line(data = future_plot %>% filter( iso3 %in% quantiles[quantiles$quant == 'q1_3',]$iso3 , + !iso3 %in% c('USA','ARE','SAU','ESP','KWT','QAT','TKM') ), + aes(x = year,y = desal_cap ), color = 'red')+ + facet_wrap(~iso3)+theme_bw() + + # TKM weird GDP trend + # basin average without trimming out location far from coasts + fut_proj_basin = future_proj_out %>% group_by(BCU_name, year) %>% + summarise(cap_m3_day = mean(desal_cap)) %>% ungroup() %>% + mutate(cap_km3_year = cap_m3_day *1e-9 * 365) + + assign(paste0('basin_desal_',rcp),fut_proj_basin) +} + +# compare +comp = basin_desal_2p6 %>% mutate(rcp = '2p6') %>% bind_rows( + basin_desal_6p0 %>% mutate(rcp = '6p0'), + basin_desal_no_climate %>% mutate(rcp = 'no_climate') +) +# global capacity +comp_glob = comp %>% group_by(rcp,year) %>% + summarise(cap_km3_year = sum(cap_km3_year)) %>% ungroup() + +ggplot(comp_glob)+ + geom_line(aes(x = year,y = cap_km3_year, color = rcp),size = 1)+ + theme_bw()+ + ggtitle("Desalination potential projections, global, SSP2")+ + ylab("km3/year")+ + theme(axis.title.x = element_blank(), + legend.position = 'bottom') + +# Main basins +ggplot(comp %>% filter(BCU_name %in% c("120|MEA","66|SAS","33|NAM","4|WEU","158|AFR","7|AFR")) )+ + geom_line(aes(x = year,y = cap_km3_year, color = rcp), + size = 1)+ + facet_wrap(~BCU_name)+theme_bw()+ + ggtitle("Desalination potential projections, basins, SSP2")+ + ylab("km3/year")+ + theme(axis.title.x = element_blank(), + legend.position = 'bottom') + +# set negative values to 0 +comp = comp %>% + mutate(cap_km3_year = if_else(cap_km3_year < 0, 0, cap_km3_year)) + +# output +write.csv(comp %>% select(BCU_name,rcp,year,cap_km3_year), + paste0('P:/ene.model/NEST/desalination/projected_desalination_potential_km3_year_',reg,'.csv'), + row.names = F) + + +#### Historical capacity by basin #### +# to set existing capacity in historical time periods +hist_cap.df = read.csv('P:/ene.model/NEST/desalination/DESALCAPACITYDATA2016_current_online.csv') %>% + mutate(tec_type = if_else(technology %in% c( "MSF (Multi-stage Flash)","MED (Multi-effect Distillation)", + "MD (Membrane Distillation)","VC (Vapour Compression)","Other / Unknown"), + 'distillation','membrane')) %>% + rename(year = online) %>% + group_by(lat,lon,year,tec_type) %>% + summarise(cap_km3_year = sum(m3_per_day) * 1e-9*365) %>% ungroup() %>% + drop_na() + +map_hist_years = rbind(data.frame(my = seq(1995,2015,5)) %>% mutate(sy = my -2), + data.frame(my = seq(1995,2015,5)) %>% mutate(sy = my -1), + data.frame(my = seq(1995,2015,5)) %>% mutate(sy = my), + data.frame(my = seq(1995,2015,5)) %>% mutate(sy = my +1), + data.frame(my = seq(1995,2015,5)) %>% mutate(sy = my +2)) %>% + arrange(my) + +hist_cap.df = hist_cap.df %>% left_join(map_hist_years %>% rename(year = sy)) %>% + mutate(my = if_else(is.na(my) & year < 1995, 1995, + if_else(is.na(my) & year > 2015,2015,my))) %>% + filter(!year > 2020, !year < 1990) %>% + group_by(lat,lon,my,tec_type) %>% + summarise(cap_km3_year = sum(cap_km3_year) ) %>% ungroup() %>% + rename(year = my) + +hist_cap.spdf = hist_cap.df +coordinates(hist_cap.spdf) = ~ lon + lat +proj4string( hist_cap.spdf) = crs(basin_by_region.spdf) +basin_info_desal = over(hist_cap.spdf,basin_by_region.spdf) + +hist_cap.out = hist_cap.df %>% bind_cols(basin_info_desal) %>% + group_by(BCU_name,year,tec_type) %>% + summarise(cap_km3_year = sum(cap_km3_year)) %>% ungroup() %>% + #there are soem NA + drop_na() + +#technical lifetime of desal tech = 30 y + +# compare historical with first year of projections +hist_comp = hist_cap.out %>% ungroup() %>% group_by(BCU_name, year) %>% + summarise(hist_cap = sum(cap_km3_year)) %>% + summarise(year = year, + hist_cap = hist_cap, + hist_cap_cum = cumsum(hist_cap)) %>% ungroup() %>% + left_join(comp %>% select(BCU_name,rcp,year,cap_km3_year) %>% + filter(year == 2020) %>% select(-year) ) %>% + # any cases of hist 2015 higher than 2020 + mutate(diff2020 = cap_km3_year - hist_cap_cum) + +# for cases of mismatch, cum 2015 and projections +high2020 = hist_comp %>% filter(year == 2015, diff2020 < 0) %>% + mutate(Xhist = hist_cap_cum/ cap_km3_year, + fianl_hist_cum = hist_cap_cum / (Xhist * 1.05)) %>% + filter(rcp == 'no_climate') %>% + select(BCU_name, Xhist) + +# adjust hist cap +hist_cap.out = hist_cap.out %>% left_join(high2020) %>% + mutate(cap_km3_year = if_else(!is.na(Xhist),cap_km3_year / (Xhist * 1.05),cap_km3_year )) %>% + select(-Xhist) + +write.csv(hist_cap.out, + paste0('P:/ene.model/NEST/desalination/historical_capacity_desalination_km3_year_',reg,'.csv'), + row.names = F) + +# for countries with no desalination")) +hist_cap.out2 = data.frame(BCU_name = basin_by_region.spdf$BCU_name) %>% + crossing(year = c(2010,2015)) %>% + crossing(tec_type = c("membrane","distillation")) %>% + mutate(cap_km3_year = 0) + +write.csv(hist_cap.out, + paste0('P:/ene.model/NEST/desalination/historical_capacity_desalination_km3_year_',reg,'.csv'), + row.names = F) + +# projection +comp2 = data.frame(BCU_name = basin_by_region.spdf$BCU_name) %>% + crossing(rcp = RCPs) %>% + crossing(year = seq(2020, 2090, 5)) %>% + mutate(cap_km3_year = 0.001) + +write.csv(comp2 %>% select(BCU_name,rcp,year,cap_km3_year), + paste0('P:/ene.model/NEST/desalination/projected_desalination_potential_km3_year_',reg,'.csv'), + row.names = F) diff --git a/nest/message_ix_models/model/water/data/pre-processing/e-flow.py b/nest/message_ix_models/model/water/data/pre-processing/e-flow.py new file mode 100644 index 0000000..d3a9432 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/e-flow.py @@ -0,0 +1,629 @@ +""" +This script calculates envrionmental flows using monthly runoff (qtot from + ISIMIP) +It calculates environmental flows using Variable Monthly Flow method + +""" + + +import numpy as np +import pandas as pd + +wd = r"P:\ene.model\NEST\hydrology\post-processed" + +# climate forcing +scenarios = ["rcp26", "rcp60"] + +scen = "rcp26" +# variable, for detailed symbols, refer to ISIMIP2b documentation +variables = [ + "qtot", # total runoff + "dis", # discharge + "qg", # groundwater runoff + "qr", # groundwater recharge +] +var = "qr" +# climate model +climmodels = ["gfdl-esm2m", "hadgem2-es", "ipsl-cm5a-lr", "miroc5"] +climmodel = "miroc5" + +GCM = "mmean" # 'dry'choose driest GCM else 'mmean' for multi model mean +# else mmmean +extreme_scen = "extreme" # 'extreme' q90 else 'normal' q50 + +# select interpolation method +intp = "linear" + +env_flow = True + + +dfs_dry = {} +df_mmmean = {} +dfs_wd = {} +dfs_ann = {} +df_env = {} +eflow = {} +eflow1 = {} +eflow2 = {} +dffinal = {} + + +# %% +def temporal_agg(data, extreme_scen): + # data = data.set_axis(pd.date_range( + # '2006-1-1', '2099-12-31', freq = 'M'), axis=1) + + if extreme_scen == "extreme": + data = data.rolling(240, min_periods=1, axis=1).quantile( + 0.1, interpolation=intp + ) + # data = data.rolling( + # 240, min_periods = 1, axis = 1).mean() + elif extreme_scen == "normal": + data = data.rolling(240, min_periods=1, axis=1).quantile( + 0.5, interpolation=intp + ) + # data = data.rolling( + # 240, min_periods = 1, axis = 1).mean() + + for i in range(1, round(len(data.transpose()) / 60 + 1)): + start = 0 if i == 1 else end + end = i * 60 + + temp = data.transpose().iloc[start:end] + + name = str(temp.index[-1].year) + temp = temp.groupby(temp.index.month).mean() + col_name = [name + "," + str(i) for i in range(1, 13)] + + if i == 1: + final_data = temp.transpose() + final_data = final_data.set_axis(col_name, axis=1) + else: + temp_data = temp.transpose() + temp_data = temp_data.set_axis(col_name, axis=1) + final_data = pd.concat((final_data, temp_data), axis=1) + + return final_data + + +# %% +for scen in scenarios: + # Reading data files from four GCMs + df = ( + pd.read_csv(wd + f"\{var}_monthly_{climmodels[0]}_{scen}.csv") + .iloc[:, 8:] + .set_axis(pd.date_range("2006-1-1", "2099-12-31", freq="M"), axis=1) + ) + + df1 = ( + pd.read_csv(wd + f"\{var}_monthly_{climmodels[0]}_{scen}.csv") + .iloc[:, 8:] + .set_axis(pd.date_range("2006-1-1", "2099-12-31", freq="M"), axis=1) + ) + + df2 = ( + pd.read_csv(wd + f"\{var}_monthly_{climmodels[1]}_{scen}.csv") + .iloc[:, 8:] + .set_axis(pd.date_range("2006-1-1", "2099-12-31", freq="M"), axis=1) + ) + + df3 = ( + pd.read_csv(wd + f"\{var}_monthly_{climmodels[2]}_{scen}.csv") + .iloc[:, 8:] + .set_axis(pd.date_range("2006-1-1", "2099-12-31", freq="M"), axis=1) + ) + + # df4 = pd.read_csv( + # wd + f"\{var}_monthly_{climmodels[3]}_{scen}.csv") + + # + # Final data frame after choosing multi model mean + df_mmmean[scen] = pd.concat([df1, df2, df3]).groupby(level=0).mean() + + dffinal[scen] = temporal_agg(df_mmmean[scen], extreme_scen) + df1test = temporal_agg(df1, extreme_scen) + # data_1_mean = temporal_agg(df2,extreme_scen) + # data_2_mean = temporal_agg(df3,extreme_scen) + # data_3_mean = temporal_agg(df4,extreme_scen) + + # new_cols = pd.to_datetime(data_0_mean.columns, format='%Y,%m') + # data_0_mean.columns = new_cols + # data_1_mean.columns = new_cols + # data_2_mean.columns = new_cols + # data_3_mean.columns = new_cols + + # Choose driest value from each cell from four dataframes + # final_array = np.amin(np.vstack((np.array(data_0_mean).flatten(), + # np.array(data_1_mean).flatten(), + # np.array(data_2_mean).flatten(), + # np.array(data_3_mean).flatten())), + # axis=0).reshape(210,228) + + # df_drymodel = pd.DataFrame(final_array, columns = data_0_mean.columns) + + # Choose direst GCM per basin + + mean_values = np.stack( + ( + data_0_mean.mean(axis=1).values, + data_1_mean.mean(axis=1).values, + data_2_mean.mean(axis=1).values, + ) + ) + # data_3_mean.mean(axis = 1).values)) + + final_array = [] + for i, min_col in enumerate(mean_values.argmin(axis=0)): + if min_col == 0: + final_array.append(data_0_mean.iloc[i].values) + elif min_col == 1: + final_array.append(data_1_mean.iloc[i].values) + elif min_col == 2: + final_array.append(data_2_mean.iloc[i].values) + # else: + # final_array.append(data_3_mean.iloc[i].values) + if GCM == "dry": + # Final data frame after choosing driest GCM + dfs_dry[scen] = pd.DataFrame(final_array, columns=data_0_mean.columns) + + dfs_dry[scen].to_csv( + wd + f"\{var}_5ymonthly_{GCM}_{extreme_scen}_{scen}_{intp}.csv" + ) + print("5 year Monthly values and quantiles processed") + # Store for next processing + df = dfs_dry[scen] + # Convert to 5 year annual values + new_cols = pd.to_datetime(dfs_dry[scen].columns, format="%Y,%m") + dfs_dry[scen].columns = new_cols + dfs_ann[scen] = dfs_dry[scen].resample("5Y", axis=1).mean() + + dfs_ann[scen].to_csv(wd + f"\{var}_5y_{GCM}_{extreme_scen}_{scen}_{intp}.csv") + + print("5 year annual values processed") + + elif GCM == "mmean": + # Final data frame after choosing multi model mean + # df_mmmean[scen] = pd.concat( + # [data_0_mean, data_1_mean, data_2_mean]).groupby( + # level=0).mean() + dffinal[scen].to_csv( + wd + f"\{var}_5ymonthly_{GCM}_{extreme_scen}_{scen}_{intp}.csv" + ) + print("5 year Monthly values and quantiles processed") + # Store for next processing + df = dffinal[scen] + # Convert to 5 year annual values + new_cols = pd.to_datetime(dffinal[scen].columns, format="%Y,%m") + dffinal[scen].columns = new_cols + + dfs_ann[scen] = dffinal[scen].resample("5Y", axis=1).mean() + + dfs_ann[scen].to_csv(wd + f"\{var}_5y_{GCM}_{extreme_scen}_{scen}_{intp}.csv") + + print("5 year annual values processed") + + # # Convert monthly values to wet and dry + # for z in range(len(df.columns) // 12): + + # col_start = 0 if z == 0 else col_end # start col number + # col_end = (z + 1) * 12 # ending col number + # data = df.iloc[:, col_start:col_end] # assigning relevant data + # maxindex = data.idxmax(axis=1) # getting max indexes + + # wet_name = "mean." + maxindex[0][:4] + "_wet" + # dry_name = "mean." + maxindex[0][:4] + "_dry" + + # year_data = pd.DataFrame( + # columns=[wet_name, dry_name] + # ) # creaing and empty data frame + + # for i in range(len(maxindex)): + # col_names = data.columns # getting column names + # get_col_index = col_names == maxindex[i] # getting match column index + # wet_start = ( + # 0 + # if np.where(get_col_index)[0] - 3 < 0 + # else np.where(get_col_index)[0][0] - 3 + # ) # condition for negative col + # wet_add = np.where(get_col_index)[0] - 3 # getting negative columns + # wet_end = np.where(get_col_index)[0] + 2 + # wet_col = col_names[wet_start : wet_end[0] + 1].tolist() + + # # for adding negative columns + # if np.where(get_col_index)[0] - 3 >= 0: + # wet_col + # else: + # wet_col.extend(col_names[wet_add[0] :].tolist()) + + # # for adding positive columns + # if len(wet_col) < 6: + # col_add = 6 - len(wet_col) + # wet_col.extend(col_names[:col_add]) + + # start_row = 0 if i == 0 else end_row + # end_row = i + 1 + + # wet_mean = data.iloc[start_row:end_row, :][wet_col].mean(axis=1) + # dry_mean = ( + # data.iloc[start_row:end_row, :] + # .loc[:, ~data.iloc[start_row:end_row, :].columns.isin(wet_col)] + # .mean(axis=1) + # ) + + # row_array = np.array([wet_mean[i], dry_mean[i]]) # making an array + + # year_data.loc[len(year_data)] = row_array # appending an array + + # if z == 0: + # dfs_wd[scen] = year_data.copy() + # else: + # dfs_wd[scen] = pd.concat([dfs_wd[scen], year_data], axis=1) + + # dfs_wd[scen].to_csv(wd + f"\{var}_wetdry_{GCM}_unprocessed_{scen}.csv") + + # print("Wet Dry values processed") + + # # Converting to 5 year annual + # for i in range(len(dfs_wd[scen].columns) // 2): + # col_start = 0 if i == 0 else col_end + # col_end = (i + 1) * 2 + # data = dfs_wd[scen].iloc[:, col_start:col_end] + + # name = data.columns[0][5:9] + + # wet_mul = data.iloc[:, 0] + # dry_mul = data.iloc[:, 1] + + # mul_data = (wet_mul + dry_mul) / 2 + + # if i == 0: + # dfs_ann[scen] = pd.DataFrame(mul_data, columns=[name]) + # else: + # tmp_data = pd.DataFrame(mul_data, columns=[name]) + # dfs_ann[scen] = pd.concat([dfs_ann[scen], tmp_data], axis=1) + + +# %% +var = "qtot" + +if env_flow: + for scen in scenarios: + # Reading data files from four GCMs + df = pd.read_csv(wd + f"\{var}_monthly_{climmodels[0]}_{scen}.csv") + + df1 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[0]}_{scen}.csv") + + df2 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[1]}_{scen}.csv") + + df3 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[2]}_{scen}.csv") + + # Final data frame after choosing multi model mean + df_mmmean[scen] = pd.concat([df1, df2, df3]).groupby(level=0).mean() + + df_env[scen] = df_mmmean[scen].iloc[:, 4:] + eflow[scen] = [] + + # df = data.iloc[:,5:] + for z in range(len(df_env[scen].columns) // 12): + col_start = 0 if z == 0 else col_end # start col number + col_end = (z + 1) * 12 # ending col number + temp = df_env[scen].iloc[:, col_start:col_end] # assigning relevant data + + col_names = temp.columns # getting column names + MAF = temp.mean(axis=1) # take mean acorss + + for j in range(len(temp.columns)): + temp.iloc[:, j] = np.where( + temp.iloc[:, j] > 0.8 * MAF, + temp.iloc[:, j] * 0.2, + np.where( + (temp.iloc[:, j] > 0.4 * MAF) & (temp.iloc[:, j] <= 0.8 * MAF), + temp.iloc[:, j] * 0.45, + temp.iloc[:, j] * 0.6, + ), + ) + + if z == 0: + eflow[scen] = temp + else: + eflow[scen] = pd.concat((eflow[scen], temp), axis=1) + + # Convert to 5 year annual values + new_cols = pd.to_datetime(eflow[scen].columns, format="sum.X%Y.%m.%d") + eflow[scen].columns = new_cols + + df = eflow[scen] + + for i in range(1, round(len(df.transpose()) / 60 + 1)): + start = 0 if i == 1 else end + end = i * 60 + + temp = df.transpose().iloc[start:end] + + name = str(temp.index[-1].year) + temp = temp.groupby(temp.index.month).mean() + col_name = [name + "," + str(i) for i in range(1, 13)] + + if i == 1: + eflow2[scen] = temp.transpose() + eflow2[scen] = eflow2[scen].set_axis(col_name, axis=1) + else: + eflow1[scen] = temp.transpose() + eflow1[scen] = eflow1[scen].set_axis(col_name, axis=1) + eflow2[scen] = pd.concat((eflow2[scen], eflow1[scen]), axis=1) + + new_cols = pd.to_datetime(eflow2[scen].columns, format="%Y,%m") + eflow2[scen].columns = new_cols + eflow2[scen] = eflow2[scen].resample("5Y", axis=1).mean() + + eflow2[scen].to_csv(wd + f"\e-flow_{var}_{scen}.csv") + + df1 = pd.read_csv(wd + f"\e-flow_{variables[3]}_{scen}.csv") + df2 = pd.read_csv(wd + f"\e-flow_{variables[0]}_{scen}.csv") + + df2.subtract(df1, axis=1).drop(columns="Unnamed: 0").to_csv( + wd + f"\e-flow__{scen}.csv" + ) + + print("Environmental Flow Values processed") +# %% +## Unporcessed monthly data dry and extreme for comparison + + +for scen in scenarios: + # Reading data files from four GCMs + df = pd.read_csv(wd + f"\{var}_monthly_{climmodels[0]}_{scen}.csv") + + df1 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[0]}_{scen}.csv") + + df2 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[1]}_{scen}.csv") + + df3 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[2]}_{scen}.csv") + + # def temporal_agg(data,extreme_scen): + + # data = data.iloc[:,8:].set_axis(pd.date_range( + # '2006-1-1', '2099-12-31', freq = 'M'), axis=1) + + # for i in range(1, round(len(data.transpose())/60+1)): + # start = 0 if i == 1 else end + # end = i*60 + + # temp = data.transpose().iloc[start:end] + + # name = str(temp.index[-1].year) + # temp = temp.groupby(temp.index.month).mean() + # col_name = [name + "," + str(i) for i in range(1, 13)] + + # if i == 1: + # final_data = temp.transpose() + # final_data = final_data.set_axis(col_name, axis=1) + # else: + # temp_data = temp.transpose() + # temp_data = temp_data.set_axis(col_name, axis=1) + # final_data = pd.concat((final_data, temp_data), axis = 1) + + # return final_data + + # data_0_mean = temporal_agg(df1,extreme_scen) + # data_1_mean = temporal_agg(df2,extreme_scen) + # data_2_mean = temporal_agg(df3,extreme_scen) + + data_0_mean = df1 + data_1_mean = df2 + data_2_mean = df3 + + # Choose direst GCM per basin + + mean_values = np.stack( + ( + data_0_mean.mean(axis=1).values, + data_1_mean.mean(axis=1).values, + data_2_mean.mean(axis=1).values, + ) + ) + # data_3_mean.mean(axis = 1).values)) + + final_array = [] + for i, min_col in enumerate(mean_values.argmin(axis=0)): + if min_col == 0: + final_array.append(data_0_mean.iloc[i].values) + elif min_col == 1: + final_array.append(data_1_mean.iloc[i].values) + elif min_col == 2: + final_array.append(data_2_mean.iloc[i].values) + # else: + # final_array.append(data_3_mean.iloc[i].values) + if GCM == "dry": + # Final data frame after choosing driest GCM + dfs_dry[scen] = pd.DataFrame(final_array, columns=data_0_mean.columns) + + dfs_dry[scen].to_csv(wd + f"\{var}_1ymonthly_{GCM}_unprocessed_{scen}.csv") + # Store for next processing + df = dfs_dry[scen] + + elif GCM == "mmean": + # Final data frame after choosing multi model mean + df_mmmean[scen] = ( + pd.concat([data_0_mean, data_1_mean, data_2_mean]).groupby(level=0).mean() + ) + df_mmmean[scen].to_csv(wd + f"\{var}_1ymonthly_{GCM}_unprocessed_{scen}.csv") + # Store for next processing + + df = df_mmmean[scen] + d + df1.iloc[:, 8:] + # Convert to 5 year annual values + new_cols = pd.to_datetime(df_mmmean[scen].columns, format="%Y,%m") + df_mmmean[scen].columns = new_cols + + dfs_ann[scen] = df_mmmean[scen].resample("5Y", axis=1).mean() + + dfs_ann[scen].to_csv(wd + f"\{var}_5y_{GCM}_{extreme_scen}_{scen}_{intp}.csv") + + df = df1.iloc[:, 8:] + df = df3.iloc[:, 8:] + new_cols = pd.to_datetime(df.columns, format="sum.X%Y.%m.%d") + df.columns = new_cols + df = df.resample("5Y", axis=1).mean() + + df.to_csv(wd + f"\{var}_5y_{climmodels[2]}_{scen}.csv") + + print("5 year Monthly values and quantiles processed") + + # # Convert monthly values to wet and dry + # for z in range(len(df.columns) // 12): + + # col_start = 0 if z == 0 else col_end # start col number + # col_end = (z + 1) * 12 # ending col number + # data = df.iloc[:, col_start:col_end] # assigning relevant data + # maxindex = data.idxmax(axis=1) # getting max indexes + + # wet_name = "mean." + maxindex[0][:4] + "_wet" + # dry_name = "mean." + maxindex[0][:4] + "_dry" + + # year_data = pd.DataFrame( + # columns=[wet_name, dry_name] + # ) # creaing and empty data frame + + # for i in range(len(maxindex)): + # col_names = data.columns # getting column names + # get_col_index = col_names == maxindex[i] # getting match column index + # wet_start = ( + # 0 + # if np.where(get_col_index)[0] - 3 < 0 + # else np.where(get_col_index)[0][0] - 3 + # ) # condition for negative col + # wet_add = np.where(get_col_index)[0] - 3 # getting negative columns + # wet_end = np.where(get_col_index)[0] + 2 + # wet_col = col_names[wet_start : wet_end[0] + 1].tolist() + + # # for adding negative columns + # if np.where(get_col_index)[0] - 3 >= 0: + # wet_col + # else: + # wet_col.extend(col_names[wet_add[0] :].tolist()) + + # # for adding positive columns + # if len(wet_col) < 6: + # col_add = 6 - len(wet_col) + # wet_col.extend(col_names[:col_add]) + + # start_row = 0 if i == 0 else end_row + # end_row = i + 1 + + # wet_mean = data.iloc[start_row:end_row, :][wet_col].mean(axis=1) + # dry_mean = ( + # data.iloc[start_row:end_row, :] + # .loc[:, ~data.iloc[start_row:end_row, :].columns.isin(wet_col)] + # .mean(axis=1) + # ) + + # row_array = np.array([wet_mean[i], dry_mean[i]]) # making an array + + # year_data.loc[len(year_data)] = row_array # appending an array + + # if z == 0: + # dfs_wd[scen] = year_data.copy() + # else: + # dfs_wd[scen] = pd.concat([dfs_wd[scen], year_data], axis=1) + + # dfs_wd[scen].to_csv(wd + f"\{var}_wetdry_{GCM}_unprocessed_{scen}.csv") + + # print("Wet Dry values processed") + + # # Calculating environmental flows using wet and dry seasonal calculations + # for i in range(len(dfs_wd[scen].columns) // 2): + # col_start = 0 if i == 0 else col_end + # col_end = (i + 1) * 2 + # data = dfs_wd[scen].iloc[:, col_start:col_end] + + # name = data.columns[0][5:9] + + # wet_mul = data.iloc[:, 0] + # dry_mul = data.iloc[:, 1] + + # mul_data = (wet_mul + dry_mul) / 2 + + # if i == 0: + # dfs_ann[scen] = pd.DataFrame(mul_data, columns=[name]) + # else: + # tmp_data = pd.DataFrame(mul_data, columns=[name]) + # dfs_ann[scen] = pd.concat([dfs_ann[scen], tmp_data], axis=1) + + # dfs_ann[scen].to_csv(wd + f"\{var}_5yann_{GCM}_unprocessed_{scen}.csv") + + # print("5 year annual values processed") + + +# %% +# def env_flow(df, context, wetvaldev, dryvaldev, wetvalind, dryvalind): + +# # reading basin mapping to countries +# FILE = f"basins_country_{context.regions}.csv" +# PATH = private_data_path("water", "delineation", FILE) + +# basin = pd.read_csv(PATH) +# basin["BCU_name"] = "B" + basin["BCU_name"] + +# bcu_names = df.basin + +# for i in range(len(df.columns) // 2): + +# col_start = 0 if i == 0 else col_end +# col_end = (i + 1) * 2 + +# data = df.iloc[:, col_start:col_end] +# data["BCU_name"] = bcu_names + +# name = data.columns[0][5:9] + +# value = [] +# for j in df.basin.unique(): +# temp = basin[basin["BCU_name"] == j] +# sizes = temp.pivot_table(index=["STATUS"], aggfunc="size") +# # if size of countries in basins is > 1 +# if len(sizes) > 1: +# # Developing Basins +# if sizes["DEV"] > sizes["IND"] or sizes["DEV"] == sizes["IND"]: +# temp2 = data[data["BCU_name"] == j] +# wet_mul = temp2.iloc[:, 0] * wetvaldev +# dry_mul = temp2.iloc[:, 1] * dryvaldev + +# mul_data = (wet_mul + dry_mul) / 2 +# value.append(mul_data.values) +# # Developed basins +# else: +# temp2 = data[data["BCU_name"] == j] +# wet_mul = temp2.iloc[:, 0] * wetvalind +# dry_mul = temp2.iloc[:, 1] * dryvalind + +# mul_data = (wet_mul + dry_mul) / 2 +# value.append(mul_data.values) +# # no. of basin in country = 1 +# else: +# # Developing Basins +# if sizes.index[0] == "DEV": +# temp2 = data[data["BCU_name"] == j] +# wet_mul = temp2.iloc[:, 0] * wetvaldev +# dry_mul = temp2.iloc[:, 1] * dryvaldev + +# mul_data = (wet_mul + dry_mul) / 2 +# value.append(mul_data.values) +# # Developed basins +# else: +# temp2 = data[data["BCU_name"] == j] +# wet_mul = temp2.iloc[:, 0] * wetvalind +# dry_mul = temp2.iloc[:, 1] * dryvalind + +# mul_data = (wet_mul + dry_mul) / 2 +# value.append(mul_data.values) + +# if i == 0: +# PCT_data = pd.DataFrame(data=value, columns=[name]) +# else: +# tmp_data = pd.DataFrame(data=value, columns=[name]) +# PCT_data = pd.concat([PCT_data, tmp_data], axis=1) + +# return PCT_data diff --git a/nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints.R b/nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints.R new file mode 100644 index 0000000..f1f4504 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints.R @@ -0,0 +1,697 @@ +# Clear memory and close all windows +rm(list = ls()) +graphics.off() + +require(reshape) +require(maptools) +require(countrycode) +require(raster) +require(rgeos) +require(rgdal) +require(ncdf4) +require(tidyverse) + +memory.limit(size=1e9) + +# message-ix-models path +msg_ix_model = Sys.getenv("MESSAGE-IX-MODELS") +## Set path data folder in message_ix working copy +msg_data = paste0('P:/ene.model/NEST') +data_path = path.expand(msg_data) + +crs = "+proj=longlat +datum=WGS84 +no_defs" + +# Country region mapping key +country_region_map_key.df = data.frame( read.csv( paste( data_path, '/water_demands/country_region_map_key.csv', sep = '/' ), stringsAsFactors=FALSE) ) + +# ssp +ssp = 2 + +# Load municipal water demands and socioeconomic parameters from local drive +dat.df = merge_recurse( lapply( seq(2010,2090,by=10), function(y){ + + dat.df = data.frame( readRDS( paste(data_path,'/harmonized_rcp_ssp_data/water_use_ssp2_rcp2_',y,'_data.Rda',sep='') ) ) + dat.df = cbind( dat.df[ ,c('country_id', paste('xloc',y,sep= '.'), paste('yloc', y, sep= '.'), paste('urban_pop', y, sep= '.'), paste('rural_pop', y, sep= '.'), paste('urban_gdp', y, sep= '.'), paste('rural_gdp', y, sep= '.') ) ], + rowSums( do.call( cbind, lapply( 1:12, function(m){ dat.df[ ,paste('urban_withdrawal',y,m,sep= '.') ] } ) ) ), + rowSums( do.call( cbind, lapply( 1:12, function(m){ dat.df[ ,paste('rural_withdrawal',y,m,sep= '.') ] } ) ) ), + rowSums( do.call( cbind, lapply( 1:12, function(m){ dat.df[ ,paste('urban_return',y,m,sep= '.') ] } ) ) ), + rowSums( do.call( cbind, lapply( 1:12, function(m){ dat.df[ ,paste('rural_return',y,m,sep= '.') ] } ) ) ), + rowSums( do.call( cbind, lapply( 1:12, function(m){ dat.df[ ,paste('urban_withdrawal',y,m,sep= '.') ] } ) ) ) / dat.df[, paste('urban_pop', y, sep= '.') ], + rowSums( do.call( cbind, lapply( 1:12, function(m){ dat.df[ ,paste('rural_withdrawal',y,m,sep= '.') ] } ) ) ) / dat.df[, paste('rural_pop', y, sep= '.') ] ) + names(dat.df) = c('country_id', 'xloc', 'yloc', paste('urban_pop',y,sep= '.'), paste('rural_pop', y, sep= '.'), paste('urban_gdp', y, sep= '.'), paste('rural_gdp', y, sep= '.'), paste('urban_withdrawal', y, sep= '.'), paste('rural_withdrawal', y, sep= '.'), paste('urban_return', y, sep= '.'), paste('rural_return', y, sep= '.'), paste('urban_per_capita_withdrawal', y, sep= '.'), paste('rural_per_capita_withdrawal', y, sep= '.') ) + + # Make sure return flows don't exceed withdrawals + inds = which( unlist( dat.df[, paste('urban_return',y,sep= '.') ] ) > 0.92 * unlist(dat.df[, paste('urban_withdrawal', y, sep= '.') ] ) ) + if( length(inds)>0 ){ dat.df[ inds, paste('urban_return',y,sep= '.') ] = dat.df[inds, paste('urban_withdrawal', y, sep= '.') ] * 0.92 } + inds = which( unlist( dat.df[, paste('rural_return',y,sep= '.') ] ) > 0.92 * unlist(dat.df[, paste('rural_withdrawal', y, sep= '.') ] ) ) + if( length(inds)>0 ){ dat.df[ inds, paste('rural_return',y,sep= '.') ] = dat.df[inds, paste('rural_withdrawal', y, sep= '.') ] * 0.92 } + + # Set NA to 0 + dat.df[which(is.nan(dat.df[,12])),12] = 0 + dat.df[which(is.nan(dat.df[,13])),13] = 0 + dat.df[which(is.na(dat.df[,12])),12] = 0 + dat.df[which(is.na(dat.df[,13])),13] = 0 + + return(dat.df) + +} ), by = c('xloc','yloc','country_id') ) + +dat.df[is.na(dat.df)] = 0 + +# year interpolation +var_2_intpl = unique(gsub('\\..*','',names(dat.df))) +var_2_intpl = var_2_intpl[!var_2_intpl %in% c('xloc','yloc','country_id')] +initial_years = unique(gsub('.*\\.','',names(dat.df))) +initial_years = as.numeric(initial_years[!initial_years %in% c('xloc','yloc','country_id')]) +yrs = initial_years + +yrs = seq(2010,2090,by=10) + +# Countries, regions and basins +# Here we can add specification in case of a country model +dat.df$country = sapply( dat.df$country_id, function(cc){ if( cc %in% country_region_map_key.df$UN_Code ) +{ return( country_region_map_key.df$ISO3[ which(country_region_map_key.df$UN_Code == cc) ] ) +}else{ return(NA) } } ) +dat.df$R11 = sapply( dat.df$country_id, function(cc){ if( cc %in% country_region_map_key.df$UN_Code ) +{ return( country_region_map_key.df$R11[ which(country_region_map_key.df$UN_Code == cc) ] ) +}else{ return(NA) } } ) +dat.df$R12 = sapply( dat.df$country_id, function(cc){ if( cc %in% country_region_map_key.df$UN_Code ) +{ return( country_region_map_key.df$R12[ which(country_region_map_key.df$UN_Code == cc) ] ) +}else{ return(NA) } } ) +# dat.df = dat.df[which(!is.na(dat.df$R11)),] + +#### Make spatial#### +dat.spdf = dat.df +coordinates(dat.spdf) = ~ xloc + yloc + +# Add distance to coastline +coast = readShapeLines('P:/ene.model/data/Water/ne_10m_coastline/ne_10m_coastline.shp') +#distance2coast = sapply( 1:nrow(dat.spdf), function(x){ gDistance( dat.spdf[x,], coast ) } ) +#write.csv( distance2coast, 'C:/Users/parkinso/Documents/distance2coastssp2.csv', row.names=FALSE ) +distance2coast = data.frame( read.csv( 'P:/ene.model/data/Water/distance2coastssp2.csv', stringsAsFactors = FALSE ) ) +dat.spdf$distance2coast = distance2coast$x # in degrees + +# number of grid cells close to the coast +presence_of_coast = dat.spdf@data %>% filter(distance2coast <= 1.5) %>% + mutate(num = as.numeric(1) ) %>% select(country,distance2coast,num) %>% + group_by(country) %>% + summarise(num = sum(num)) +write.csv(presence_of_coast,'P:/ene.model/NEST/desalination/coast.csv',row.names = F) + +# some northern countries seem to not be included TOCHECK +# a = dat.spdf[,'distance2coast'] +# a$distance2coast = as.numeric(a$distance2coast)/0.125 +# gridded(a) = TRUE +# windows() +# plot(a ) +# plot( coast, add=TRUE) +# rm(a) + +#read in raster from ED. ATTENTION 2100 and 2110 missing +nc = nc_open( paste0(data_path,'/water_scarcity/wsi_memean_ssp2_rcp6p0.nc'), verbose=FALSE) +watstress.brick = brick( paste0(data_path,'/water_scarcity/wsi_memean_ssp2_rcp6p0.nc') ) +proj4string(dat.spdf) = proj4string(watstress.brick) +for (i in seq(1:nlayers(watstress.brick)) ){ + r <- raster(watstress.brick, layer=i) + proj4string(r) = proj4string(dat.spdf) + yr = as.numeric(gsub('X','',gsub('s','',names(r)) )) + if (yr %in% initial_years){ + column_name = paste0('WSI.', yr ) + dat.spdf@data[,column_name] = raster::extract(r,dat.spdf) + # there are 876 Na values, we set them = 0 + dat.spdf@data[column_name][is.na(dat.spdf@data[column_name])] = 0 + } else {} + +} + +dat.df = bind_cols(as.data.frame(dat.spdf@coords),dat.spdf@data) + +## END TESTING + +# OLD PART TO REMOVE +# Add water stress level - map to gridded withdrawals + +# temp = readOGR('P:/ene.model/data/Water','water_scarcity',verbose=FALSE) +# temp = SpatialPolygonsDataFrame(as(temp,'SpatialPolygons'), data.frame(temp), match.ID = TRUE) +# all_bas = temp +# all_bas@data$PID = as.character( all_bas$ECOREGION ) +# temp = temp[ which(as.character( temp@data$wtr_stress ) %in% c( 'Stress','High stress','Low stress') ), ] +# temp@data$ID = 1 +# temp@data$ID2 = sapply( as.character( temp@data$wtr_stress ), function(st){ if(st == 'Stress'){return(0.75)}; if(st == 'High stress'){return(1)}; if(st == 'Low stress'){return(0.6)} } ) +# temp = temp[ ,c('ID2') ] +# temp@data$ID = as.numeric( temp@data$ID2 ) +# temp@data$PID = row.names( temp ) +# proj4string(dat.spdf) = proj4string(temp) +# dat.df = cbind( data.frame(dat.spdf), over( dat.spdf,temp ) ) +# rm( dat.spdf ) +# dat.df$ID[ which( is.na( dat.df$ID ) ) ] = 0 + +## END PARt TO REMOVE + +#### GOVERNANCE #### +length(unique(dat.df$country)) +gov.df = read.csv(paste0(data_path,'/governance/governance_obs_project.csv')) %>% + filter(!is.na(governance)) %>% + filter(scenario == paste0('SSP',ssp), year %in% initial_years ) %>% + dplyr::select(countrycode, year, governance) +names(gov.df) +mean_gov = mean(gov.df$governance) +# missing countries, just add mean_gov +to_add = data.frame(countrycode = c('AFG','AGO', 'ALB', 'ARE','MNE', 'MMR', 'PSE', 'QAT', 'TLS','TWN'), governance = mean_gov) %>% + crossing(year = unique(gov.df$year)) %>% + dplyr::select(countrycode,year,governance) + +gov.df = gov.df %>% bind_rows(to_add) %>% + dplyr::rename(gov = year, country = countrycode) %>% + spread(gov,governance, sep = '.') + +dat.df = dat.df %>% left_join(gov.df) +#countries that have no governance values +dat.df %>% filter(is.na(gov.2020)) %>% + distinct(country) # not anymore + +#re-add to dat.spdf +dat.spdf = dat.df +coordinates(dat.spdf) = ~ xloc + yloc + +#### Existing urban wastewater treatment #### +# WARNING: loading this file or the 'over' function MIGHT TAKE HOURS +# WRI aquedoct. +# https://www.wri.org/data/aqueduct-global-maps-30-data +# wri_map.spdf = readShapeLines('P:/ene.model/NEST/water_access/Y2019M07D12_Aqueduct30_V01/wri.shp', +# delete_null_obj=TRUE) +wri_map.spdf = readOGR('P:/ene.model/NEST/water_access/Y2019M07D12_Aqueduct30_V01','wri',verbose=FALSE) + +wri_map.spdf = wri_map.spdf[c("udw_raw","usa_raw")] + +dat_simpl.spdf = dat.spdf[c('urban_gdp.2020','rural_gdp.2020')] +dat_simpl.spdf$xcord = dat_simpl.spdf$xloc +dat_simpl.spdf$ycord = dat_simpl.spdf$yloc + +# proj4string(dat_simpl.spdf) = proj4string(wri_map.spdf) +new_proj = CRS("+proj=longlat +datum=WGS84 +no_defs") +proj4string(dat_simpl.spdf) = new_proj +proj4string(wri_map.spdf) = new_proj +# dat_proj.spdf = spTransform(dat_simpl.spdf, new_proj) + +wri_over = over(dat_simpl.spdf,wri_map.spdf) +identicalCRS(dat_simpl.spdf, wri_map.spdf) + +dat.spdf = cbind(dat.spdf , wri_over) + +vec = names(dat.spdf)[grepl('urban_gdp|rural_gdp|urban_pop|rural_pop',names(dat.spdf))] + +# with new data +ww.df2 = dat.spdf@data %>% + select(country_id,all_of(vec), udw_raw, usa_raw) %>% + bind_cols(xcord = dat.spdf$xloc,ycord = dat.spdf$yloc) %>% + mutate(income.2020 = (urban_gdp.2020 + rural_gdp.2020)/(urban_pop.2020 + rural_pop.2020)) %>% + # mutate(urb_income.2020 = (urban_gdp.2020)/(urban_pop.2020)) %>% + # mutate(rur_income.2020 = (rural_gdp.2020)/(rural_pop.2020)) %>% + filter(income.2020 > 0, !is.na(udw_raw), !is.na(usa_raw)) %>% + mutate(udw_raw = (1 - udw_raw) * 100, + usa_raw = (1 - usa_raw) * 100) + +ww.df2_plot = ww.df2 %>% group_by(country_id) %>% + summarise(income.2020 = mean(income.2020), + udw_raw = mean(udw_raw), + usa_raw = mean(usa_raw)) %>% ungroup() %>% + gather(udw_raw,usa_raw, key = 'type',value = 'value') + +# new +x = c(33,ww.df2$income.2020) +y = c(0.0001,ww.df2$udw_raw) +r = nls(y ~ SSlogis(x,a,m,s)) +cp.a = 1 +cp.m = coef(r)[2] +cp.s = coef(r)[3] +# new +y = c(0.0001,ww.df2$usa_raw) +r = nls(y ~ SSlogis(x,a,m,s)) +tp.a = 1 +tp.m = coef(r)[2] +tp.s = coef(r)[3] + +# Plot historical connection levels and model +cpm = data.frame( x = seq( 1, 56000, by = 1000 ), y = SSlogis( seq( 1, 56000, by = 1000 ), 0.99, cp.m, cp.s ) ) +tpm = data.frame( x = seq( 1, 56000, by = 1000 ), y = SSlogis( seq( 1, 56000, by = 1000 ), 0.99, tp.m, tp.s ) ) + +cpm$type = 'udw_raw' +tpm$type = 'usa_raw' +cpm = cpm %>% bind_rows(tpm) + +type_names <- list( + 'udw_raw'="Water access", + 'usa_raw'="Sanitation" +) +type_labeller <- function(variable,value){ + return(type_names[value]) +} + +ggplot()+ + geom_line(data = cpm,aes(x = x, y = 100*y) )+ + geom_point(data = ww.df2_plot, aes(x = income.2020, y= value))+ + ggtitle('Model vs country averages')+ + facet_wrap(~type, labeller = type_labeller) + + xlab('Per capita Income in 2020 [USD/pc]')+ + ylab('share of population with access [%]')+ + theme_bw()+ + theme(panel.grid.minor = element_blank()) + +# piped water access / sewerage connection + +UR = c('urban','rural') +ww_proj = function(ww.df2,UR,yy){ + + t1 = rlang::sym(paste0(UR,'_gdp.',yy)) + t2 = rlang::sym(paste0(UR,'_pop.',yy) ) + inc_f = rlang::sym(paste0(UR,'_income.',yy) ) + varc = rlang::sym(paste0(UR,'_connection_rate.',yy) ) + vart = rlang::sym(paste0(UR,'_treatment_rate.',yy) ) + decay = max( 0, 1 / length(yrs) * log( 1 / 0.01 ), na.rm=TRUE ) + + ww.df2 %>% + mutate("{UR}_income.{yy}" := pmax(0, !!t1 / !!t2 ,na.rm = T) , + year = yy) %>% + mutate(c0 = udw_raw / 100, + t0 = usa_raw / 100) %>% + mutate(c_mod = c( SSlogis( !!inc_f, cp.a, cp.m, cp.s ) ), + t_mod = c( SSlogis( !!inc_f, tp.a, tp.m, tp.s ) )) %>% + # 2020 is base year, 2010 need smaller values, 2010 need to changed at the end or not calculated + mutate(!!varc := pmin(0.999, if_else(year == 2010, 0.95*c0, + ( 1 + ( c0 / c_mod - 1 ) * + exp( -1 * decay * ( which(yrs == yy) - 2 ) ) ) * c_mod ) ), + !!vart := pmin(0.999, if_else(year == 2010, 0.95*t0, #assumption in 2010 + ( 1 + ( t0 / t_mod - 1 ) * + exp( -1 * decay * ( which(yrs == yy) - 2 ) ) ) * t_mod ) ) ) %>% + mutate(!!varc := if_else(!!inc_f == 0, 0, !!varc), + !!vart := if_else(!!inc_f == 0, 0, !!vart) ) %>% + select(-year, -c0, -t0, -c_mod,-t_mod) +} + +# recycling rate, 0.8 of treatment +add_recycl = function(df,yy){ + varr = rlang::sym(paste0('urban_treatment_rate.',yy) ) + df %>% + mutate("recycling_rate.{yy}" := pmin(0.8, 0.8 * !!varr )) +} + +#adding all estimation for future years +ww_proj.df = ww.df2 +for (yy in yrs) { + for (uu in UR) { + ww_proj.df = ww_proj.df %>% left_join( + ww_proj(ww.df2,uu,yy) ) + } + ww_proj.df = ww_proj.df %>% left_join( + add_recycl(ww_proj.df,yy) ) +} + +dat.df = dat.spdf@data %>% + mutate(xcord = dat_simpl.spdf$xloc, + ycord = dat_simpl.spdf$yloc) %>% + left_join(ww_proj.df %>% + select(-all_of(vec),-country_id,-udw_raw, -usa_raw)) + +dat.df[is.na(dat.df)] = 0 + +#sanitation curve more on the right, but also urban wrt rural, not clear +# for sanitation it makes a difference if I take country means of single point +# for water access the difference is minimal + +#Plotting # of people without access: Urban and rural in 2020 +#re-add to dat.spdf +dat.spdf = dat.df +coordinates(dat.spdf) = ~ xcord + ycord + +ww_plot = dat.spdf[c("country",'urban_pop.2020','rural_pop.2020',"urban_connection_rate.2020", + "rural_connection_rate.2020","urban_treatment_rate.2020", + "rural_treatment_rate.2020")] +ww_plot@data$urban_no_wa.2020 = ww_plot$urban_pop.2020 * (1 - ww_plot$urban_connection_rate.2020) *1e-6 +ww_plot@data$rural_no_wa.2020 = ww_plot$rural_pop.2020 * (1 - ww_plot$rural_connection_rate.2020) *1e-6 +ww_plot@data$urban_no_san.2020 = ww_plot$urban_pop.2020 * (1 - ww_plot$urban_treatment_rate.2020) *1e-6 +ww_plot@data$rural_no_san.2020 = ww_plot$rural_pop.2020 * (1 - ww_plot$rural_treatment_rate.2020) *1e-6 + +totals_ww = ww_plot@data %>% summarise(urban_no_wa.2020 = sum(urban_no_wa.2020), + rural_no_wa.2020 = sum(rural_no_wa.2020), + urban_no_san.2020 = sum(urban_no_san.2020), + rural_no_san.2020 = sum(rural_no_san.2020)) + +extent(ww_plot) +proj4string(ww_plot) = c("+proj=longlat +datum=WGS84 +no_defs") +empty.rs = extent(-180, 180, -90, 90) +empty.rs <- raster(empty.rs) +res(empty.rs)<- 0.25 # area is about 27*27 km +projection(empty.rs)<-CRS(proj4string(ww_plot)) + +rw.rs = rasterize(ww_plot,empty.rs,'rural_no_wa.2020',fun = sum) +names(rw.rs) = 'value' +# names(rw.rs) = 'Rural pop. w/o clean water access.2020 [millions]' +uw.rs = rasterize(ww_plot,empty.rs,'urban_no_wa.2020',fun = sum) +names(uw.rs) = 'value' +# names(uw.rs) = 'Urban pop. w/o clean water access.2020 [millions]' +tot_cw.rs = rw.rs + uw.rs + +rs.rs = rasterize(ww_plot,empty.rs,'rural_no_san.2020',fun = sum) +names(rs.rs) = 'value' +#names(rs.rs) = 'Rural pop. w/o clean sanitation [millions]' +us.rs = rasterize(ww_plot,empty.rs,'urban_no_san.2020',fun = sum) +names(us.rs) = 'value' +#names(us.rs) = 'Urban pop. w/o clean sanitation.2020 [millions]' +tot_s.rs = rs.rs + us.rs + +ww.br = brick(rw.rs,uw.rs,rs.rs,us.rs) +plot(tot_cw.rs) + +# store for later +bbbb = dat.df + +#rst = lapply( 1:2, function( add_SDG_constrain ){ +#for( add_SDG_constrain in 1:3 ) + +dat.df = bbbb + +scn = 'baseline' +# Minimum level of daily water demand for decent living - SSP1 manufacturing demands to incorporate expected water efficiency measures in SDG6 scenarios +if( scn %in% c('sdg6') ){ + + fsc = SSP + + # Add manufacturing demands - simple approach where national values generated previously are downscaled to urban areas based on population + mf_withdrawal.df = data.frame( read.csv( paste0(data_path,'/manufacturing_water_demand_results/national/IIASA_water_withdrawal_manufacturing_Static.csv'), stringsAsFactors = FALSE ) ) + mf_return.df = data.frame( read.csv( paste0(data_path,'/manufacturing_water_demand_results/national/IIASA_water_return_manufacturing_Static.csv'), stringsAsFactors = FALSE ) ) + mf_withdrawal.df = mf_withdrawal.df[which( as.character(mf_withdrawal.df$Scenario) == fsc & !is.na(mf_withdrawal.df$UN_Code)),] + mf_return.df = mf_return.df[which( as.character(mf_return.df$Scenario) == fsc & !is.na(mf_return.df$UN_Code)),] + + # Downscale based on country + dat.df = cbind( dat.df, do.call( cbind, lapply( yrs, function(yy){ + cnt = unique( as.character( dat.df$country ) )[ which( unique( as.character( dat.df$country ) ) %in% unique( as.character( mf_withdrawal.df$Country_Code ) ) ) ] + mfpc = unlist( sapply( cnt, function(cc){ return( mf_withdrawal.df[ which( as.character( mf_withdrawal.df$Scenario ) == fsc & as.character( mf_withdrawal.df$Country_Code ) == cc ), paste('X',yy,sep='') ] / sum(dat.df[ which( dat.df$country == cc ), paste('urban_pop',yy,sep= '.') ], na.rm = TRUE ) ) } ) ) + tmp.df = data.frame( country = dat.df$country ) + tmp.df$res = NA + for( x in cnt ){ tmp.df$res[ as.character( tmp.df$country ) == x ] = dat.df[ as.character( dat.df$country ) == x, paste('urban_pop',yy,sep= '.') ] * mfpc[x ] } + res = data.frame( tmp.df$res ) + names(res) = paste('mf_withdrawal',yy,sep= '.') + row.names(res) = row.names(dat.df) + return(res) } ) ) ) + dat.df = cbind( dat.df, do.call( cbind, lapply( yrs, function(yy){ + cnt = unique( as.character( dat.df$country ) )[ which( unique( as.character( dat.df$country ) ) %in% unique( as.character( mf_return.df$Country_Code ) ) ) ] + mfpc = unlist( sapply( cnt, function(cc){ return( mf_return.df[ which( as.character( mf_return.df$Scenario ) == fsc & as.character( mf_return.df$Country_Code ) == cc ), paste('X',yy,sep='') ] / sum(dat.df[ which( dat.df$country == cc ), paste('urban_pop',yy,sep= '.') ], na.rm = TRUE ) ) } ) ) + tmp.df = data.frame( country = dat.df$country ) + tmp.df$res = NA + for( x in cnt ){ tmp.df$res[ as.character( tmp.df$country ) == x ] = dat.df[ as.character( dat.df$country ) == x, paste('urban_pop',yy,sep= '.') ] * mfpc[x ] } + res = data.frame( tmp.df$res ) + names(res) = paste('mf_return',yy,sep= '.') + row.names(res) = row.names(dat.df) + return(res) } ) ) ) + + ch = scn + + # Adjust demands in urban grid cells with less than 100 L per day and for rural cells with less than 50 L per day - only for post-2030 + urb_min_sdg = 100 / 0.8 + rur_min_sdg = 50 / 0.8 + for( yyy in yrs[ yrs >= 2030 ] ) + { + + upo = dat.df[,paste('urban_pop',yyy,sep= '.')] + rpo = dat.df[,paste('rural_pop',yyy,sep= '.')] + + upc = dat.df[,paste('urban_per_capita_withdrawal',yyy,sep= '.')] * 1e9 / 365 # convert from mcm per year to liters per day + rpc = dat.df[,paste('rural_per_capita_withdrawal',yyy,sep= '.')] * 1e9 / 365 # convert from mcm per year to liters per day + upc[is.na(upc)]=0 + rpc[is.na(rpc)]=0 + + udxi = density( upc[ which( upc > 0 ) ], weights = upo[ which( upc > 0 ) ] / sum( upo[ which( upc > 0 ) ] ) ) + rdxi = density( rpc[ which( rpc > 0 ) ], weights = rpo[ which( rpc > 0 ) ] / sum( rpo[ which( rpc > 0 ) ] ) ) + + upc[ which( upc < urb_min_sdg & upc > 0 ) ] = urb_min_sdg + rpc[ which( rpc < rur_min_sdg & rpc > 0 ) ] = rur_min_sdg + + udxf = density( upc[ which( upc > 0 ) ], weights = upo[ which( upc > 0 ) ] / sum( upo[ which( upc > 0 ) ] ) ) + rdxf = density( rpc[ which( rpc > 0 ) ], weights = rpo[ which( rpc > 0 ) ] / sum( rpo[ which( rpc > 0 ) ] ) ) + + # pdf(paste('C:/Users/parkinso/Documents/mwdens',yyy,'.pdf',sep='')) + # p1 = layout(matrix(c(1,2),1,2,byrow=TRUE),widths=c(0.45,0.45),heights=c(0.9,0.1)) + # plot( udxi$x * 0.8 , cumsum(udxi$y)/max(cumsum(udxi$y)), type='l', col = 'black', xlab = 'Liters per day', ylab = 'Cumulative Population Distribution', main = paste( 'Urban',yyy, sep=' - ') ) + # lines( udxf$x * 0.8, cumsum(udxf$y)/max(cumsum(udxf$y)), type='l', col = 'red' ) + # plot( rdxi$x * 0.8, cumsum(rdxi$y)/max(cumsum(rdxi$y)), type='l', col = 'black', xlab = 'Liters per day', ylab = 'Cumulative Population Distribution', main = paste( 'Rural',yyy, sep=' - ') ) + # lines( rdxf$x * 0.8, cumsum(rdxf$y)/max(cumsum(rdxf$y)), type='l', col = 'red' ) + # legend( 'bottomright', bty = 'n', legend = c('Baseline', 'SDG6'), lty = 1, col = c('black','red') ) + # dev.off() + + # Convert units to km3 per year + dat.df[,paste('urban_per_capita_withdrawal',yyy,sep= '.')] = upc * 1e-9 * 365 + dat.df[,paste('rural_per_capita_withdrawal',yyy,sep= '.')] = rpc * 1e-9 * 365 + + dat.df[,paste('urban_withdrawal',yyy,sep= '.')] = dat.df[, paste('urban_per_capita_withdrawal', yyy, sep= '.')] * dat.df[, paste('urban_pop', yyy, sep= '.')] + dat.df[,paste('rural_withdrawal',yyy,sep= '.')] = dat.df[, paste('rural_per_capita_withdrawal', yyy, sep= '.')] * dat.df[, paste('rural_pop', yyy, sep= '.')] + + # previously sdg6_eff + # Further end-use conservation assumed combining a 10% reduction in withdrawals due to + # behavioral changes and 10% recycling + fct = 0.9 * 0.9 + + dat.df[,paste('urban_withdrawal',yyy,sep= '.')] = fct * dat.df[, paste('urban_withdrawal', yyy, sep= '.')] + dat.df[,paste('urban_return',yyy,sep= '.')] = fct * dat.df[, paste('urban_return', yyy, sep= '.')] + dat.df[,paste('rural_withdrawal',yyy,sep= '.')] = fct * dat.df[, paste('rural_withdrawal', yyy, sep= '.')] + dat.df[,paste('rural_return',yyy,sep= '.')] = fct * dat.df[, paste('rural_return', yyy, sep= '.')] + dat.df[,paste('mf_withdrawal',yyy,sep= '.')] = fct * dat.df[, paste('mf_withdrawal', yyy, sep= '.')] + dat.df[,paste('mf_return',yyy,sep= '.')] = fct * dat.df[, paste('mf_return', yyy, sep= '.')] + + + inds = which( unlist( dat.df[, paste('urban_return',yyy,sep= '.') ] ) > 0.92 * unlist(dat.df[, paste('urban_withdrawal', yyy, sep= '.') ] ) ) + if( length(inds)>0 ){ dat.df[ inds, paste('urban_return',yyy,sep= '.') ] = dat.df[inds, paste('urban_withdrawal', yyy, sep= '.') ] * 0.92 } + inds = which( unlist( dat.df[, paste('rural_return',yyy,sep= '.') ] ) > 0.92 * unlist(dat.df[, paste('rural_withdrawal', yyy, sep= '.') ] ) ) + if( length(inds)>0 ){ dat.df[ inds, paste('rural_return',yyy,sep= '.') ] = dat.df[inds, paste('rural_withdrawal', yyy, sep= '.') ] * 0.92 } + inds = which( unlist( dat.df[, paste('mf_return',yyy,sep= '.') ] ) > 0.92 * unlist(dat.df[, paste('mf_withdrawal', yyy, sep= '.') ] ) ) + if( length(inds)>0 ){ dat.df[ inds, paste('mf_return',yyy,sep= '.') ] = dat.df[inds, paste('mf_withdrawal', yyy, sep= '.') ] * 0.92 } + + } + + +}else{ # baseline + + + # Add manufacturing demands - simple approach where national values generated previously are downscaled to urban areas based on population + mf_withdrawal.df = data.frame( read.csv( paste0(data_path,'/manufacturing_water_demand_results/national/IIASA_water_withdrawal_manufacturing_Static.csv'), stringsAsFactors = FALSE ) ) + mf_return.df = data.frame( read.csv( paste0(data_path,'/manufacturing_water_demand_results/national/IIASA_water_return_manufacturing_Static.csv'), stringsAsFactors = FALSE ) ) + mf_withdrawal.df = mf_withdrawal.df[which( as.character(mf_withdrawal.df$Scenario) == 'SSP2' & !is.na(mf_withdrawal.df$UN_Code)),] + mf_return.df = mf_return.df[which( as.character(mf_return.df$Scenario) == 'SSP2' & !is.na(mf_return.df$UN_Code)),] + + dat.df = cbind( dat.df, do.call( cbind, lapply( yrs, function(yy){ + cnt = unique( as.character( dat.df$country ) )[ which( unique( as.character( dat.df$country ) ) %in% unique( as.character( mf_withdrawal.df$Country_Code ) ) ) ] + mfpc = unlist( sapply( cnt, function(cc){ return( mf_withdrawal.df[ which( as.character( mf_withdrawal.df$Scenario ) == 'SSP2' & as.character( mf_withdrawal.df$Country_Code ) == cc ), paste('X',yy,sep='') ] / sum(dat.df[ which( dat.df$country == cc ), paste('urban_pop',yy,sep= '.') ], na.rm = TRUE ) ) } ) ) + tmp.df = data.frame( country = dat.df$country ) + tmp.df$res = NA + for( x in cnt ){ tmp.df$res[ as.character( tmp.df$country ) == x ] = dat.df[ as.character( dat.df$country ) == x, paste('urban_pop',yy,sep= '.') ] * mfpc[x ] } + res = data.frame( tmp.df$res ) + names(res) = paste('mf_withdrawal',yy,sep= '.') + row.names(res) = row.names(dat.df) + return(res) } ) ) ) + dat.df = cbind( dat.df, do.call( cbind, lapply( yrs, function(yy){ + cnt = unique( as.character( dat.df$country ) )[ which( unique( as.character( dat.df$country ) ) %in% unique( as.character( mf_return.df$Country_Code ) ) ) ] + mfpc = unlist( sapply( cnt, function(cc){ return( mf_return.df[ which( as.character( mf_return.df$Scenario ) == 'SSP2' & as.character( mf_return.df$Country_Code ) == cc ), paste('X',yy,sep='') ] / sum(dat.df[ which( dat.df$country == cc ), paste('urban_pop',yy,sep= '.') ], na.rm = TRUE ) ) } ) ) + tmp.df = data.frame( country = dat.df$country ) + tmp.df$res = NA + for( x in cnt ){ tmp.df$res[ as.character( tmp.df$country ) == x ] = dat.df[ as.character( dat.df$country ) == x, paste('urban_pop',yy,sep= '.') ] * mfpc[x ] } + res = data.frame( tmp.df$res ) + names(res) = paste('mf_return',yy,sep= '.') + row.names(res) = row.names(dat.df) + return(res) } ) ) ) + + ch = scn + +} # end baseline +# CHECK TILL HERE + +#### format OUTPUT #### +cccc = dat.df +#one can run also simply for a country +# reg = 'ZMB' +for(reg in c('R11','R12')){ + #### Make spatial#### + dat.spdf = cccc + coordinates(dat.spdf) = ~ xcord + ycord + #load shapefile + basin_by_region.spdf = readOGR('P:/ene.model/NEST/delineation/data/delineated_basins_new', + paste0('basins_by_region_simpl_',reg), verbose=FALSE) + basin_by_region.spdf = gBuffer(basin_by_region.spdf, byid=TRUE, width=0.2) + + proj4string(dat.spdf) = basin_by_region.spdf@proj4string + + empty_points = SpatialPoints(coords = coordinates(dat.spdf)) + proj4string(empty_points) = proj4string(dat.spdf) + + inters = over(empty_points,basin_by_region.spdf) + + inters_cols = inters %>% select(NAME,REGION,BCU_name) + #two alternatives + dat.spdf@data = dat.spdf@data %>% bind_cols(inters_cols) + print(paste0(sum(is.na(inters$BCU_name)),' points have no basin infomration, are removed')) + # + dat.df = dat.spdf@data + dat.df = dat.df[!is.na(dat.df$BCU_name),] + dat.df$region = dat.df$BCU_name + + ysr_full = c(yrs) + + #including manufacturing + regional_urban_withdrawal.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_withdrawal', yy, sep= '.') ) ] ) , na.rm=TRUE ) + sum(unlist(dat.df[which(dat.df$region == rr ) , c(paste('mf_withdrawal', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_urban_withdrawal.df) = unique( dat.df$region ) + row.names(regional_urban_withdrawal.df) = ysr_full + regional_urban_withdrawal.df = round( regional_urban_withdrawal.df, digits = 3 ) + + #initialize var_list + var_list = list('regional_urban_withdrawal' = regional_urban_withdrawal.df) + + # urban return flows + regional_urban_return.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_return', yy, sep= '.') ) ] ) , na.rm=TRUE ) + sum(unlist(dat.df[which(dat.df$region == rr ) , c(paste('mf_return', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_urban_return.df) = unique( dat.df$region ) + row.names(regional_urban_return.df) = ysr_full + regional_urban_return.df = round( regional_urban_return.df, digits = 3 ) + var_list = append(var_list,list('regional_urban_return' = regional_urban_return.df) ) + + # without manufacturing + regional_urban_withdrawal2.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_withdrawal', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_urban_withdrawal2.df) = unique( dat.df$region ) + row.names(regional_urban_withdrawal2.df) = ysr_full + regional_urban_withdrawal2.df = round( regional_urban_withdrawal2.df, digits = 3 ) + var_list = append(var_list,list('regional_urban_withdrawal2' = regional_urban_withdrawal2.df)) + + regional_urban_return2.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_return', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_urban_return2.df) = unique( dat.df$region ) + row.names(regional_urban_return2.df) = ysr_full + regional_urban_return2.df = round( regional_urban_return2.df, digits = 3 ) + var_list = append(var_list,list('regional_urban_return2' = regional_urban_return2.df)) + + # manufacturing withdrawals + regional_manufacturing_withdrawal.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'mf_withdrawal', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_manufacturing_withdrawal.df) = unique( dat.df$region ) + row.names(regional_manufacturing_withdrawal.df) = ysr_full + regional_manufacturing_withdrawal.df = round( regional_manufacturing_withdrawal.df, digits = 3 ) + var_list = append(var_list,list('regional_manufacturing_withdrawal' = regional_manufacturing_withdrawal.df)) + + # manufacturing return flows + regional_manufacturing_return.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'mf_return', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_manufacturing_return.df) = unique( dat.df$region ) + row.names(regional_manufacturing_return.df) = ysr_full + regional_manufacturing_return.df = round( regional_manufacturing_return.df, digits = 3 ) + var_list = append(var_list,list('regional_manufacturing_return' = regional_manufacturing_return.df)) + + # urban connection rate + regional_urban_connection_rate.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(c( unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_pop', yy, sep= '.') ) ] ) * unlist(dat.df[which(dat.df$region == rr ) , c(paste('urban_connection_rate', yy, sep= '.') ) ] ) ) , na.rm=TRUE ) / sum(c(unlist(dat.df[which(dat.df$region == rr ) , c(paste('urban_pop', yy, sep= '.') ) ] ) ) , na.rm = TRUE ) } ) } ) ) ) + names(regional_urban_connection_rate.df) = unique( dat.df$region ) + row.names(regional_urban_connection_rate.df) = ysr_full + regional_urban_connection_rate.df = round( regional_urban_connection_rate.df, digits = 3 ) + var_list = append(var_list,list('regional_urban_connection_rate' = regional_urban_connection_rate.df)) + + #urban treatment rate + regional_urban_treatment_rate.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum( c( unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_pop', yy, sep='.' ) ) ] ) * unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_treatment_rate', yy, sep='.' ) ) ] ) ) , na.rm=TRUE ) / sum( c( unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_pop', yy, sep='.' ) ) ] ) ) , na.rm = TRUE ) } ) } ) ) ) + names(regional_urban_treatment_rate.df ) = unique( dat.df$region ) + row.names(regional_urban_treatment_rate.df) = ysr_full + regional_urban_treatment_rate.df = round( regional_urban_treatment_rate.df, digits = 3 ) + var_list = append(var_list,list('regional_urban_treatment_rate' = regional_urban_treatment_rate.df)) + + ## COMMENTED FOR NOW + # regional_urban_desalination_rate.df = data.frame( round( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum( unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'desalinated', yy, sep='.' ) ) ] ) , na.rm=TRUE ) / sum( unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'urban_withdrawal', yy, sep='.' ) ) ] ) + unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'mf_withdrawal', yy, sep='.' ) ) ] ) , na.rm=TRUE ) } ) } ) ), digits = 3 ) ) + # names(regional_urban_desalination_rate.df) = unique( dat.df$region ) + # row.names(regional_urban_desalination_rate.df) = ysr_full + # regional_urban_desalination_rate.df = round( regional_urban_desalination_rate.df, digits = 3 ) + # regional_urban_desalination_rate.df[ regional_urban_desalination_rate.df < 0.005 ] = 0.005 + # var_list = append(var_list,list('regional_urban_desalination_rate' = regional_urban_desalination_rate.df)) + # # END COMMENTED PART + + # urban recycling rate + regional_urban_recycling_rate.df = data.frame( round(do.call( cbind, lapply( unique( dat.df$region ), function(rr){ + sapply( ysr_full, function(yy){ + sum( (unlist(dat.df[which(dat.df$region == rr ) , c(paste('urban_withdrawal', yy, sep= '.') ) ] ) + + unlist(dat.df[which(dat.df$region == rr ) , c(paste('mf_withdrawal', yy, sep= '.') ) ] )) * + unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'recycling_rate', yy, sep= '.') ) ] ) , na.rm=TRUE ) / + sum(unlist(dat.df[which(dat.df$region == rr ) , c(paste('urban_withdrawal', yy, sep= '.') ) ] ) + + unlist(dat.df[which(dat.df$region == rr ) , c(paste('mf_withdrawal', yy, sep= '.') ) ] ) , na.rm=TRUE ) + } ) } ) ), digits = 3 ) ) + names(regional_urban_recycling_rate.df) = unique( dat.df$region ) + row.names(regional_urban_recycling_rate.df) = ysr_full + regional_urban_recycling_rate.df = round( regional_urban_recycling_rate.df, digits = 3 ) + regional_urban_recycling_rate.df[ regional_urban_recycling_rate.df < 0.005 ] = 0.005 + var_list = append(var_list,list( 'regional_urban_recycling_rate' = regional_urban_recycling_rate.df)) + + # rural connection rate + regional_rural_connection_rate.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(c( unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'rural_pop', yy, sep= '.') ) ] ) * unlist(dat.df[which(dat.df$region == rr ) , c(paste('rural_connection_rate', yy, sep= '.') ) ] ) ) , na.rm=TRUE ) / sum(c(unlist(dat.df[which(dat.df$region == rr ) , c(paste('rural_pop', yy, sep= '.') ) ] ) ) , na.rm = TRUE ) } ) } ) ) ) + names(regional_rural_connection_rate.df) = unique( dat.df$region ) + row.names(regional_rural_connection_rate.df) = ysr_full + regional_rural_connection_rate.df = round( regional_rural_connection_rate.df, digits = 3 ) + var_list = append(var_list,list('regional_rural_connection_rate' = regional_rural_connection_rate.df)) + + # rural treatment rates + regional_rural_treatment_rate.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(c( unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'rural_pop', yy, sep= '.') ) ] ) * unlist(dat.df[which(dat.df$region == rr ) , c(paste('rural_treatment_rate', yy, sep= '.') ) ] ) ) , na.rm=TRUE ) / sum(c(unlist(dat.df[which(dat.df$region == rr ) , c(paste('rural_pop', yy, sep= '.') ) ] ) ) , na.rm = TRUE ) } ) } ) ) ) + names(regional_rural_treatment_rate.df) = unique( dat.df$region ) + row.names(regional_rural_treatment_rate.df) = ysr_full + regional_rural_treatment_rate.df = round( regional_rural_treatment_rate.df, digits = 3 ) + var_list = append(var_list,list('regional_rural_treatment_rate' = regional_rural_treatment_rate.df)) + + # rural withdrawals + regional_rural_withdrawal.df = data.frame( do.call( cbind, lapply( unique( dat.df$region ), function(rr){ sapply( ysr_full, function(yy){ sum(unlist( dat.df[ which( dat.df$region == rr ) , c( paste( 'rural_withdrawal', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_rural_withdrawal.df) = unique( dat.df$region ) + row.names(regional_rural_withdrawal.df) = ysr_full + regional_rural_withdrawal.df = round( regional_rural_withdrawal.df, digits = 3 ) + var_list = append(var_list,list('regional_rural_withdrawal' = regional_rural_withdrawal.df)) + + # return flows, only SDG6 + regional_rural_return.df = data.frame( + do.call( cbind, lapply( unique( dat.df$region ), function(rr){ + sapply( ysr_full, function(yy){ + sum(unlist( dat.df[ which( dat.df$region == rr ) , + c( paste( 'rural_return', yy, sep= '.') ) ] ) , na.rm=TRUE ) } ) } ) ) ) + names(regional_rural_return.df) = unique( dat.df$region ) + row.names(regional_rural_return.df) = ysr_full + regional_rural_return.df = round( regional_rural_return.df, digits = 3 ) + var_list = append(var_list,list('regional_rural_return' = regional_rural_return.df)) + + # ADDING FINAL TIME STEPS AND SAVE csv # + rates = names(var_list)[grepl('_rate',names(var_list))] + for (v in names(var_list)){ + df = as.data.frame(var_list[v][[1]]) + df[is.na(df)] = 0 + n=ncol(df)+1 + + for_lm = df %>% + mutate(year = row.names(.)) %>% + select(year,everything()) %>% + filter(year >= 2060) %>% + gather(key = 'region',value = 'value',2:n) %>% + group_by(region) %>% + mutate(int = lm(value ~ year)$coefficients[1], + coef = lm(value ~ year)$coefficients[2]) %>% + ungroup() + # add 2100, 2110 + new_vals = for_lm %>% select(-year,-value) %>% + distinct() %>% + mutate(`2100` := int + (2100-2060)/10 * coef , + `2110` := int + (2110-2060)/10 * coef ) %>% + mutate(`2100` = pmax(0,`2100` ), + `2110` = pmax(0,`2110`) ) + + if (v %in% rates) { + new_vals = new_vals %>% + mutate(`2100` = pmin(0.99,`2100` ), + `2110` = pmin(0.99,`2110`)) %>% + gather(key = year, value = 'value',`2100`,`2110`) + }else{ new_vals = new_vals %>% + gather(key = year, value = 'value',`2100`,`2110`)} + + # add back to df + final_df = df %>% bind_rows( + new_vals %>% select(year,region,value) %>% + spread(region,value) %>% + tibble::column_to_rownames(var = 'year') + ) + # Write in forlders according to region definition + write.csv( final_df, + paste0( data_path, '/water_demands/harmonized/',reg,'/ssp',ssp,'_', + v,'_', ch, '.csv' ), row.names = TRUE ) + + } + +} # for R11,R12 + diff --git a/nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints_monthly.r b/nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints_monthly.r new file mode 100644 index 0000000..87b8aa3 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/generate_water_constraints_monthly.r @@ -0,0 +1,251 @@ +# generate water demands monthly - from NEST script demands.r +require(tidyverse) +require(ncdf4) +require(rgdal) +require(raster) +require(rgeos) +require(ggmap) +require(rasterVis) +require(countrycode) +memory.limit(size=1e9) + +ssps= c( 'SSP1', 'SSP2', 'SSP3', 'SSP4', 'SSP5' ) +n_days = c(31,28,31,30,31,30,31,31,30,31,30,31) + +msg_data = paste0('P:/ene.model/NEST') +data_path = path.expand(msg_data) + +crs = "+proj=longlat +datum=WGS84 +no_defs" + +# ssp, we can also run 1 and 5, but need to retreive the data from older work +ssp = c(2) + +# Grab the basin boundaries +reg = 'ZMB' +basin.spdf = readOGR('P:/ene.model/NEST/delineation/data/delineated_basins_new', + paste0('basins_by_region_simpl_',reg), verbose=FALSE) +basin.spdf2 = readOGR( paste( getwd(), 'input', sep = '/' ), 'Indus_bcu', verbose = FALSE ) + +basin.spdf = spTransform(basin.spdf, CRS("+proj=longlat")) +basin.spdf@data$PID = as.character( basin.spdf@data$BCU_name ) +basin.spdf@data$CNTRY_ID = unlist( strsplit( basin.spdf@data$PID, '_' ) )[ seq(1,2*length(basin.spdf),by=2) ] +basin.sp = gUnaryUnion( basin.spdf ) +basin.sp = SpatialPolygons(list(Polygons(Filter(function(f){f@ringDir==1},basin.sp@polygons[[1]]@Polygons),ID=1))) +buff.sp = gBuffer( basin.sp, width = 0.1 ) +buff2.sp = gBuffer( basin.sp, width = 10 ) +proj4string(basin.sp) = proj4string(basin.spdf) +proj4string(buff.sp) = proj4string(basin.spdf) +proj4string(buff2.sp) = proj4string(basin.spdf) + +### Water demands from gridded indicators - using harmonized spatial datasets from Parkinson et al. 2016 A spatially explicit ... +# Simulation horizon +yy = c(2015,seq(2020,2060,by=10)) + +# import national manufacturing demand projections +national_manufacturing_withdrawal.df = data.frame(read.csv(paste0(data_path,"/manufacturing_water_demand_results/national/IIASA_water_withdrawal_manufacturing_Static.csv"), header=TRUE, sep=",", stringsAsFactors=F, as.is=T)) +national_manufacturing_return.df = data.frame(read.csv(paste0(data_path,"/manufacturing_water_demand_results/national/IIASA_water_return_manufacturing_Static.csv"), header=TRUE, sep=",", stringsAsFactors=F, as.is=T)) + +# National GDP projections for scaling the manufacturing demands +national_gdp.df = data.frame(read.csv(paste0(data_path,"/GDP/OECD_SSP_GDP_PPP.csv"), header=TRUE, sep=",", stringsAsFactors=F, as.is=T)) %>% # in billions + filter( Region %in% c(reg) ) %>% + dplyr::select( Scenario, Region, paste('X',seq(2015,2060,by=5),sep='') ) + +# hours in each month +hr = c(31,28.25,31,30,31,30,31,31,30,31,30,31) * 24 + +# go through each ssp and year and create flat dataframe containing the demand parameters +demands.df = bind_rows( lapply( ssp, function(ss){ + + bind_rows( lapply( 1:length(yy), function(y){ + + # haven't generated the data for each SSP - this is the mapping to the RCPs - could be updated to reflect different RCPs + if(ss %in% c( 1,3,4 )){rr=1} + if(ss==2){ rr=2 } + if(ss==5){ rr=4 } + + # 2015 not included in the data so using 2010 + if( yy[y]==2015 ){ yy2=2010 }else{ yy2=yy[y] } + + # import the harmonzied gridded data and rename to make generic headings, add PID by overlaying the polygons, and then sum to PID-level + dat.df = data.frame( readRDS( paste0(data_path,'/harmonized_rcp_ssp_data/water_use_ssp',ss,'_rcp',rr,'_',yy2,'_data.Rda') ) ) + cols = c( 'xloc', 'yloc', 'urban_pop', 'rural_pop', 'urban_gdp', 'rural_gdp', 'mean_tas', 'urban_withdrawal', 'rural_withdrawal', 'urban_return', 'rural_return' ) + for( nm in cols ){ + ind = which( grepl( nm, names( dat.df ) ) ) + if( length( ind ) > 1 ){ nm2 = paste( nm, 1:12,sep='.' )}else{ nm2 = nm } + names(dat.df)[ ind ] = nm2 } + dat.df = dat.df[,grepl( paste(cols,collapse='|'), names(dat.df) ) ] + dat.df = dat.df %>% + 'coordinates<-'(~xloc+yloc) %>% + 'gridded<-'(TRUE) %>% + 'proj4string<-'( proj4string(basin.spdf) ) + dat.df$PID = unlist( over( dat.df, basin.spdf[,which(names(basin.spdf) == 'PID')] ) ) + dat.df = data.frame( dat.df ) %>% filter( !is.na( PID ) ) %>% dplyr::select( -xloc, -yloc ) + + # elec.df = bind_rows( lapply( 1:12, function( mm ){ + # left_join( dat.df %>% dplyr::select( PID, paste( 'mean_tas', mm, sep = '.' ) ), + # dat.df %>% dplyr::select( PID, urban_pop, rural_pop ) ) %>% + # dplyr::rename(tas = paste( 'mean_tas', mm, sep = '.' ) ) %>% + # group_by( PID ) %>% + # summarise( turb = abs( -18 -273 + sum( tas * urban_pop ) / sum( urban_pop ) ), # population weighted temperature + # trur = abs( -18 -273 + sum( tas * rural_pop ) / sum( rural_pop ) ) ) %>% + # as.data.frame( ) %>% + # mutate( turb = ifelse( is.nan( turb ), 0, turb ), trur = ifelse( is.nan( trur ), 0, trur ) ) %>% + # mutate( time = mm ) %>% + # dplyr::select( PID, time, turb, trur ) } ) ) %>% + # left_join( ., data.frame( time = 1:12, hr = hr ) ) %>% # add the hours in each month + # group_by( PID ) %>% + # mutate( turb = 0.4 * turb / sum( turb ) + 0.6 * hr / 8760, # downscaling factor assuming part of load insensitive to temperature + # trur = 0.4 * trur / sum( trur ) + 0.6 * hr / 8760 ) %>% + # as.data.frame( ) %>% + # mutate( turb = ifelse( is.nan( turb ), 0, turb ), trur = ifelse( is.nan( trur ), 0, trur ) ) %>% + # left_join( ., dat.df %>% # adding gdp and pop for projecting demands based on intensities above + # dplyr::select( PID, urban_gdp, urban_pop, rural_gdp, rural_pop ) %>% + # group_by( PID ) %>% summarise_each( funs( sum ) ) %>% # summarise by PID + # as.data.frame( ) %>% + # mutate( urban_inc = urban_gdp / urban_pop, rural_inc = rural_gdp / rural_pop ) %>% # don't actually use the per capita income buts it's there in case used as alternative indicator + # mutate( urban_inc = ifelse( is.nan( urban_inc ), 0, round( urban_inc ) ), + # rural_inc = ifelse( is.nan( rural_inc ), 0, round( rural_inc ) ) ) ) %>% + # left_join( ., data.frame( PID = basin.spdf@data$PID, country = unlist( strsplit( basin.spdf@data$PID, '_' ) )[ seq( 1, 2*length(basin.spdf@data$PID), by=2 ) ] ) ) %>% # add countries + # left_join( . , as.data.frame( national.list )[ paste0( 'SSP', ss ), ] %>% + # gather( parameter, value ) %>% # flatten + # mutate( country = unlist( strsplit( parameter, '[.]' ) )[ seq( 1, 4*length( parameter ), by = 4 ) ], + # var = unlist( strsplit( parameter, '[.]' ) )[ seq( 2, 4*length( parameter ), by = 4 ) ], + # year = unlist( strsplit( parameter, '[.]' ) )[ seq( 4, 4*length( parameter ), by = 4 ) ] ) %>% + # filter( year == yy[y] ) %>% dplyr::select( country, var, value ) %>% + # spread( var, value ) ) %>% + # group_by( PID, time ) %>% # now project the demands using the gdp - might also instead use the per capita demand model + # summarise( urban_municipal_mw = round( 1e-6 * urban_gdp * ( national_residential_kwh_per_usd + national_commercial_kwh_per_usd ) * turb / hr / 1e-3 ), + # rural_municipal_mw = round( 1e-6 * rural_gdp * ( national_residential_kwh_per_usd + national_commercial_kwh_per_usd ) * trur / hr / 1e-3 ), + # industry_mw = round( 1e-6 * ( urban_gdp + rural_gdp ) * national_industry_kwh_per_usd / 8760 / 1e-3 ) ) %>% + # as.data.frame( ) %>% mutate( year = yy[y], scenario = paste0( 'SSP', ss ) ) %>% + # dplyr::select( scenario, PID, year, time, urban_municipal_mw, rural_municipal_mw, industry_mw ) %>% + # gather( type, value, urban_municipal_mw, rural_municipal_mw, industry_mw ) %>% + # mutate( units = 'MW', + # type = ifelse( grepl( 'urban', type ), 'urban_final', ifelse( grepl( 'rural', type ), 'rural_final', 'industry_final' ) ) ) %>% + # dplyr::select( scenario, PID, type, year, time, value ) + + # format for water demands + dat.df = dat.df[ , ! grepl('mean_tas',names( dat.df )) ] # remove temperature + dat.df = dat.df %>% group_by( PID ) %>% + summarise_each( funs( sum ) ) %>% + as.data.frame( ) %>% + mutate( urban_inc = urban_gdp / urban_pop, rural_inc = rural_gdp / rural_pop ) %>% + mutate( urban_inc = ifelse( is.nan( urban_inc ), 0, round( urban_inc ) ), rural_inc = ifelse( is.nan( rural_inc ), 0, round( rural_inc ) ) ) + + # Add manufactruring demands + mf.df = rbind( + national_manufacturing_withdrawal.df %>% + filter( Country_Code %in% reg ) %>% + filter( Scenario == paste0( 'SSP', ss ) ) %>% + dplyr::rename( scenario = Scenario, country = Country_Code ) %>% + mutate( type = 'withdrawal' ) %>% + dplyr::select( scenario, country, type, paste0( 'X', yy2 ) ), + national_manufacturing_return.df %>% + filter( Country_Code %in% reg ) %>% + filter( Scenario == paste0( 'SSP', ss ) ) %>% + dplyr::rename( scenario = Scenario, country = Country_Code ) %>% + mutate( type = 'return' ) %>% + dplyr::select( scenario, country, type, paste0( 'X', yy2 ) ) ) + names( mf.df )[ ncol( mf.df ) ] = 'value' + mf.df$value = round( mf.df$value / 365.25, digits = 2 ) # convert to mcm_per_day + mf.df = mf.df %>% spread( type, value ) + + # national gdp for scaling mf demands + gdp.df = national_gdp.df %>% + dplyr::rename( scenario = Scenario, country = Region ) %>% + filter(grepl(paste0("SSP",ssp),scenario)) %>% + mutate( scenario = unlist( strsplit( scenario, '_' ) )[1] ) %>% + dplyr::select( scenario, country, paste0( 'X', yy[y] ) ) + names( gdp.df )[ ncol( gdp.df ) ] = 'gdp_national' + + # now scale + dat.df = dat.df %>% + mutate( country = reg) %>% + left_join( ., left_join( mf.df, gdp.df ), by = c( 'country' ) ) %>% + mutate( manufacturing_withdrawal = round( withdrawal * ( urban_gdp + rural_gdp ) / ( 1e9 * gdp_national ), digits = 3 ) ) %>% + mutate( manufacturing_return = round( return * ( urban_gdp + rural_gdp ) / ( 1e9 * gdp_national ), digits = 3 ) ) %>% + dplyr::select( -urban_pop, -urban_gdp, -rural_pop, -rural_gdp, -urban_inc, -rural_inc, -country, -scenario, -return, -withdrawal, -gdp_national ) + + + # expand manufacturing withdrawals and retunr flows to months - assuming constant instensity across the year + mfw = bind_cols( lapply( 1:12, function( mmm ){ dat.df$manufacturing_withdrawal } ) ) %>% as.data.frame() %>% 'names<-'(paste('manufacturing_withdrawal',1:12,sep='.')) + mfr = bind_cols( lapply( 1:12, function( mmm ){ dat.df$manufacturing_return } ) ) %>% as.data.frame() %>% 'names<-'(paste('manufacturing_return',1:12,sep='.')) + dat.df = dat.df %>% + dplyr::select( -manufacturing_withdrawal ) %>% cbind( ., mfw ) %>% + dplyr::select( -manufacturing_return ) %>% cbind( ., mfr ) + + # flatten the df + dat.df = bind_rows( lapply( c( 'urban_withdrawal', 'urban_return', 'rural_withdrawal', 'rural_return', 'manufacturing_withdrawal', 'manufacturing_return' ), function( tp ){ + dat.df %>% + dplyr::select( PID, paste( tp, 1:12, sep = '.' ) ) %>% + gather( 'month','value',-PID) %>% + mutate( time = unlist( strsplit( month, '[.]' ) )[ seq(2,2*length(month),by=2) ], type = tp, scenario = paste0( 'SSP', ss ), year = yy[y], value = round( value, digits = 3 ) ) %>% + dplyr::select( scenario, PID, type, year, time, value ) + } ) ) + + # But the urban and rural withdrawal / return flow data are in million cubic meters per month not per day + type2check = c( 'urban_withdrawal', 'urban_return', 'rural_withdrawal', 'rural_return' ) + dat.df = rbind( dat.df %>% filter( ! type %in% type2check ), + dat.df %>% filter( type %in% type2check ) %>% + left_join( ., data.frame( time = as.character( 1:12 ), days = c(31, 28.25, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) ) ) %>% + mutate( value = round( value / days, digits = 3 ) ) %>% dplyr::select( -days ) ) + + # add units + dat.df$units = 'mcm_per_day' + # elec.df$units = 'MW' + + + dat.df = rbind( dat.df) #, elec.df ) + + return( dat.df ) + + } ) ) + +} ) ) + +# Harmonize with naming convention used previously - might update later +demands.df = demands.df %>% + mutate( sector = unlist( strsplit( type, '_') )[seq(1,2*length(type),by=2)] ) %>% + mutate( sector = ifelse( sector == 'manufacturing', 'industry', sector ) ) %>% + mutate( type = unlist( strsplit( type, '_') )[seq(2,2*length(type),by=2)] ) %>% + mutate( type = ifelse( type == 'final', 'electricity', type ) ) %>% + dplyr::rename( pid = PID, month = time ) %>% + dplyr::select( scenario, sector, type, pid, year, month, value, units ) + +write.csv( demands.df, paste0(data_path,"/water_demands/harmonized/reg/", + "_ssp",ssp,"_m_water_demands.csv"), row.names=FALSE ) + +demand.df = read.csv( 'input/indus_demands_new.csv', stringsAsFactors=FALSE ) + +# Plot the results + +windows() +p1 = layout( matrix( c(5,5,1,2,3,4),3,2,byrow=TRUE ), widths = c(0.3,0.3), heights= c(0.05,0.3,0.3) ) +hh = 1 +for( tp in c('withdrawal') ) +{ + for(s in c('urban','rural','industry')) + { + + tmp = data.frame( do.call( cbind, lapply( unique(demand.df$scenario), function(pp){ + res = do.call( rbind, lapply( unique(demand.df$year), function(y){ + res2 = sum( sapply( unique(demand.df$month), function(m){ return( demand.df[ which( demand.df$sector == s & demand.df$type == tp & demand.df$year == y & demand.df$month == m & demand.df$scenario == pp ), 'value' ] ) } ) ) + return(res2) + } ) ) + return(res) + } ) ) ) + names(tmp) = unique(demand.df$scenario) + row.names(tmp) = unique(demand.df$year) + + if( tp == 'withdrawal'){ yl = c('million m3 per day'); fc = 1 } + if( tp == 'electricity'){ yl = c('Gigawatts'); fc = 1e3 } + + matplot( as.numeric( row.names(tmp) ), tmp/fc, type = 'l', col = c('green','blue','orange'), xlab = 'year', lty = 1, main = paste( s, tp, sep = ' - ' ), ylab = yl ) + + } + +} + +par(mar=c(0,0,0,0)) +plot.new() +legend('bottom',legend=c('SSP1','SSP2','SSP5'),col = c('green','blue','orange'),lty=1,bty='n',ncol=3) diff --git a/nest/message_ix_models/model/water/data/pre-processing/groundwater_harmonize.r b/nest/message_ix_models/model/water/data/pre-processing/groundwater_harmonize.r new file mode 100644 index 0000000..69e1f9a --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/groundwater_harmonize.r @@ -0,0 +1,236 @@ + +#source('P:/ene.model/NEST/groundwater/groundwater_harmonize.r') + +# Clear memory +rm(list = ls()) + +# close all plot windows +graphics.off() + +# libraries +library(raster) +library(rgdal) +require(rgeos) +library(ncdf4) +library(tidyverse) + +#### REGION #### +# define what region you work on +# R11, R12 or a country +reg = 'ZMB' + +# Define global raster at 1/8th degree +base_raster = raster() +res(base_raster) = 1/8 +base_raster = crop(base_raster,extent(-180,180,-60,85)) +base_raster[] = 0 + +# Continental Tiles +tile_names = c('Africa','Australia','Eurasia','N_America','S_America') +for (i in 1:length(tile_names)) + { + + # Import data from netcdf and convert to raster aligned with base raster + # unit meters m + nc_filename = paste(tile_names[i],'_model_wtd_v2.nc',sep='') + folder = c('P:/ene.model/NEST/groundwater/table_depth/') + raster_shape = raster(paste(folder,nc_filename,sep=''), varname='WTD') # doesn't seem to work for this type of ncdf file but provides shape + nc = nc_open(paste(folder,nc_filename,sep='')) + wtd = t(ncvar_get(nc, 'WTD')) # transpose and flip + wtd = wtd[nrow(wtd):1,] + wtd.raster = raster(wtd) + extent(wtd.raster) = extent(raster_shape) + proj4string(wtd.raster) = proj4string(raster_shape) + wtd.raster = projectRaster( from = wtd.raster , to = base_raster , method = "bilinear" ) + + # Add to global raster + if(i == 1) + { + global_water_table_depth_0125 = wtd.raster + }else + { + global_water_table_depth_0125 = do.call(merge, list(global_water_table_depth_0125, wtd.raster)) + } + } + +# Write to geotiff +temp = writeRaster(global_water_table_depth_0125, paste(folder,'global_water_table_depth_0125',sep=''), format = 'GTiff', overwrite = TRUE) + +#### TAKE MESSAGE REGION-BASIN structure #### +basin_by_region.spdf = readOGR('P:/ene.model/NEST/delineation/data/delineated_basins_new', + paste0('basins_by_region_simpl_',reg), verbose=FALSE) +row.names(basin_by_region.spdf@data) = 1:length(basin_by_region.spdf$BASIN) +# basin_by_region.spdf2 = gBuffer(basin_by_region.spdf, byid=TRUE, width=-0.2) + +proj4string(global_water_table_depth_0125) = basin_by_region.spdf@proj4string +identicalCRS(global_water_table_depth_0125, basin_by_region.spdf) + +table_depth.df = raster::extract(global_water_table_depth_0125, basin_by_region.spdf,fun=mean,df=TRUE,na.rm=TRUE) +names(table_depth.df) = c('id','table_depth_m') +table_depth.spdf = cbind(basin_by_region.spdf, table_depth.df) +library(broom) +table_depth.tidy <- broom::tidy(table_depth.spdf) +table_depth.tidy2 <- dplyr::left_join(table_depth.tidy %>% mutate(id = as.integer(id)), + table_depth.spdf@data, by='id') +# table_depth.tidy2 = table_depth.tidy2[table_depth.tidy2$BASIN_ID %in% c(64), ] +# plot mismatch regions... +ggplot() + + geom_polygon( data=table_depth.tidy2, aes(x=long, y=lat, group = group, fill = table_depth_m), + color="black" ) + +#some regions are not plotted correctly but the data is there +table_depth.out = table_depth.spdf@data %>% + mutate(table_depth_m = if_else(is.na(table_depth_m), + mean(table_depth_m,na.rm = T) , table_depth_m), + # Energy use in GW / MCM/day + GW_per_MCM_per_day = round( 0.85 * 9.81 / 86400 * table_depth_m , digits = 5 ), + # in GW/km3/year + GW_per_km3_per_year = GW_per_MCM_per_day *1000/365) +# to be changed to the unit we need + +write.csv( table_depth.out, paste0('gw_energy_intensity_depth_',reg,'.csv'), row.names = FALSE) + + +#### GW abstraction, historical capaicty #### +# 1- get historical and projections for abstraction (only use hist for now) +# 2- from Wada et al, also import different water demands +# 3- gw_fraction = tot_demand / gw abstraction +# 4- use gw_fraction on our actual demands in the model -> historical capacity +setwd('P:/ene.model/NEST/groundwater/') +# Groundwater abstraction fro Wada et al + +nc = nc_open('Wada_groundwater_abstraction/waterdemand_30min_groundwaterabstraction_million_m3_month.nc', verbose=FALSE) +gwabstract.stack = stack( 'Wada_groundwater_abstraction/waterdemand_30min_groundwaterabstraction_million_m3_month.nc' ) +extent(gwabstract.stack) = extent( min( ncvar_get(nc, "longitude") ), max( ncvar_get(nc, "longitude") ), min( ncvar_get(nc, "latitude") ), max( ncvar_get(nc, "latitude") ) ) +proj4string( gwabstract.stack ) = proj4string( basin_by_region.spdf ) +#gwabstract.stack = crop( gwabstract.stack, extent(basin_by_region.spdf) ) +names(gwabstract.stack) = c( sapply( 1:(nlayers(gwabstract.stack)/12), function(yy){ return( paste( ( as.numeric( unlist( strsplit( as.character( as.Date("1901-01-01") + min( ncvar_get(nc, "time") ) ), '-' ) )[1] ) + yy - 1 ), seq(1,12,by=1), sep='.') ) } ) ) +gwabstract.stack = gwabstract.stack[[ c( which(grepl( 'X2010',names(gwabstract.stack) )) ) ]] # keep 2010 + +# Irrigation +nc = nc_open('Wada_groundwater_abstraction/pcrglobwb_WFDEI_historical_PIrrWW_monthly_1960_2010.nc4', verbose=FALSE) +irrigation.stack = stack( 'Wada_groundwater_abstraction/pcrglobwb_WFDEI_historical_PIrrWW_monthly_1960_2010.nc4' ) +extent(irrigation.stack) = extent( min( ncvar_get(nc, "longitude") ), max( ncvar_get(nc, "longitude") ), min( ncvar_get(nc, "latitude") ), max( ncvar_get(nc, "latitude") ) ) +proj4string( irrigation.stack ) = proj4string( basin_by_region.spdf ) +# irrigation.stack = crop( irrigation.stack, extent(buff.sp) ) +names(irrigation.stack) = c( sapply( 1:(nlayers(irrigation.stack)/12), function(yy){ return( paste( ( as.numeric( unlist( strsplit( as.character( as.Date("1901-01-01") + min( ncvar_get(nc, "time") ) ), '-' ) )[1] ) + yy - 1 ), seq(1,12,by=1), sep='.') ) } ) ) +irrigation.stack = irrigation.stack[[ c( which(grepl( 'X2010',names(irrigation.stack) )) ) ]] # keep 2010 + +year_irr = sum(irrigation.stack) +tot_km3 = sum(year_irr@data@values,na.rm = T)*0.001 +# Industrial +nc = nc_open('Wada_groundwater_abstraction/pcrglobwb_WFDEI_historical_PIndWW_monthly_1960_2010.nc4', verbose=FALSE) +industrial.stack = stack( 'Wada_groundwater_abstraction/pcrglobwb_WFDEI_historical_PIndWW_monthly_1960_2010.nc4' ) +extent(industrial.stack) = extent( min( ncvar_get(nc, "longitude") ), max( ncvar_get(nc, "longitude") ), min( ncvar_get(nc, "latitude") ), max( ncvar_get(nc, "latitude") ) ) +proj4string( industrial.stack ) = proj4string( basin_by_region.spdf ) +# industrial.stack = crop( industrial.stack, extent(buff.sp) ) +names(industrial.stack) = c( sapply( 1:(nlayers(industrial.stack)/12), function(yy){ return( paste( ( as.numeric( unlist( strsplit( as.character( as.Date("1901-01-01") + min( ncvar_get(nc, "time") ) ), '-' ) )[1] ) + yy - 1 ), seq(1,12,by=1), sep='.') ) } ) ) +industrial.stack = industrial.stack[[ c( which(grepl( 'X2010',names(industrial.stack) )) ) ]] # keep 2010 + +# Domestic +nc = nc_open('Wada_groundwater_abstraction/pcrglobwb_WFDEI_historical_PDomWW_monthly_1960_2010.nc4', verbose=FALSE) +domestic.stack = stack( 'Wada_groundwater_abstraction/pcrglobwb_WFDEI_historical_PDomWW_monthly_1960_2010.nc4' ) +extent(domestic.stack) = extent( min( ncvar_get(nc, "longitude") ), max( ncvar_get(nc, "longitude") ), min( ncvar_get(nc, "latitude") ), max( ncvar_get(nc, "latitude") ) ) +proj4string( domestic.stack ) = proj4string( basin_by_region.spdf ) +# domestic.stack = crop( domestic.stack, extent(buff.sp) ) +names(domestic.stack) = c( sapply( 1:(nlayers(domestic.stack)/12), function(yy){ return( paste( ( as.numeric( unlist( strsplit( as.character( as.Date("1901-01-01") + min( ncvar_get(nc, "time") ) ), '-' ) )[1] ) + yy - 1 ), seq(1,12,by=1), sep='.') ) } ) ) +domestic.stack = domestic.stack[[ c( which(grepl( 'X2010',names(domestic.stack) )) ) ]] # keep 2010 + +# Existing groundwater capacity from initial extraction levels +total.stack = domestic.stack + industrial.stack + irrigation.stack +total.stack = sum(stack(total.stack)) +total_gwabstract.stack = sum(stack(gwabstract.stack)) +gwfraction.stack = ( total_gwabstract.stack / total.stack ) +# areas with 0 demand nad maybe little vals of gw abstraction +# otherwise results in 100% where actually gw is minimal, no demand +gwfraction.stack[gwfraction.stack == Inf] = 0 +gwfraction.stack[gwfraction.stack[]>1]=1 +gwfraction.stack[is.na(gwfraction.stack)] = 0 + + +frac = c( unlist( lapply( 1:length(basin_by_region.spdf), function(x){ + + gw = sum( data.frame( raster::extract( total_gwabstract.stack, as(basin_by_region.spdf[x,],'SpatialPolygons'), na.rm=TRUE, cellnumbers = TRUE )[[1]])['value'] ) + + ww = sum( data.frame( raster::extract( total.stack, as(basin_by_region.spdf[x,],'SpatialPolygons'), na.rm=TRUE, cellnumbers = TRUE )[[1]])['value'] ) + + return( round( min( 1, max( 0, gw/ww, na.rm=TRUE ) ), digits = 3 ) ) + +} ) ) ) + +# Data frame output by PID +groundwater_fraction.df = data.frame( gw_fraction = frac ) %>% + mutate(id = row_number(), + # many values close to 0 are bo due to lack of data + gw_fraction = if_else(gw_fraction <= 0.02,mean(gw_fraction),gw_fraction)) +groundwater_fraction.spdf = cbind(basin_by_region.spdf,groundwater_fraction.df) + +writeOGR( + groundwater_fraction.spdf, + 'P:/ene.model/NEST/groundwater', + paste0('gw_fraction_',reg), + driver="ESRI Shapefile", + overwrite_layer=TRUE +) + +gw_fraction.tidy <- broom::tidy(groundwater_fraction.spdf) +gw_fraction.tidy2 <- dplyr::left_join(gw_fraction.tidy %>% mutate(id = as.integer(id)), + groundwater_fraction.spdf@data, by='id') +gw_fraction.tidy2 = gw_fraction.tidy2[gw_fraction.tidy2$BASIN_ID %in% c(64), ] +# this plot is completely wrong!! use ArcGIS instead +ggplot() + + geom_polygon( data=gw_fraction.tidy2, aes(x=long, y=lat, group = group, fill = gw_fraction), + color="black" ) + +# Now use the groundwater fraction to set the historical capacities based on the historical demand level +# load all demands +## CAREFUL! irr_dem needs to be manually defined +# for R11 it is from GLOBIOM, in MCM +irr_dem = read.csv(paste0('P:/ene.model/NEST/groundwater/hist_irrigation_withdrawals_',reg,'.csv'), + check.names = F) %>% + gather(key = 'year',value = 'irr_dem',-node) %>% rename(REGION = node) %>% + mutate(year = as.numeric(year)) +# urban + manufacturing and rural demand depend on the region, in MCM!! +urban_man_dem = read.csv(paste0('P:/ene.model/NEST/water_demands/harmonized/', + reg,'/ssp2_regional_urban_withdrawal_baseline.csv'), + check.names = F) %>% rename(year = '') %>% + gather(key = 'BCU_name',value = 'urb_dem',-year) %>% + mutate(urb_dem = urb_dem/1000) # km3 + +rural_dem = read.csv(paste0('P:/ene.model/NEST/water_demands/harmonized/', + reg,'/ssp2_regional_rural_withdrawal_baseline.csv'), + check.names = F) %>% rename(year = '') %>% + gather(key = 'BCU_name',value = 'rur_dem',-year) %>% + mutate(rur_dem = rur_dem/1000) # km3 + +#specific region name for R11 or R12 +if (reg %in% c(" R11"," R12")){ + reg_add = paste0(reg,"_") +} else{ + reg_add = "" +} +tot_demand = urban_man_dem %>% left_join(rural_dem) %>% + left_join(basin_by_region.spdf@data %>% select(REGION,BCU_name) %>% + mutate(REGION = paste0(reg_add,REGION))) %>% + filter(year == 2010) %>% + left_join(irr_dem) %>% + group_by(REGION) %>% + mutate(tot_urb_reg_wtr = sum(urb_dem), + region_water_share = urb_dem / tot_urb_reg_wtr) %>% ungroup() %>% + #use this share to allocate irrigation withdrawals to basins + mutate(irr_dem_bas = irr_dem * region_water_share, + tot_dem = irr_dem_bas + urb_dem + rur_dem) + +hist_cap_gw_sw = tot_demand %>% select(BCU_name,tot_dem) %>% + left_join(groundwater_fraction.spdf@data %>% select(BCU_name,gw_fraction)) %>% + mutate(hist_cap_gw_km3_year = round( tot_dem * gw_fraction,3 ), + hist_cap_sw_km3_year = round( tot_dem * (1- gw_fraction) ,3) ) %>% + select(-tot_dem,-gw_fraction) + +### Append historical capacity csv to include freshwater extration capacities + +# historical capacity csv +write.csv( hist_cap_gw_sw, + paste0("historical_new_cap_gw_sw_km3_year_",reg,".csv"), + row.names = FALSE ) + diff --git a/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_3.py b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_3.py new file mode 100644 index 0000000..7451f30 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_3.py @@ -0,0 +1,247 @@ +""" +This script calculates envrionmental flows using monthly runoff (qtot from + ISIMIP) +It calculates environmental flows using Variable Monthly Flow method + +""" + + +import os +from sqlite3 import TimeFromTicks + +import numpy as np +import pandas as pd + +type_reg = "global" # else 'global' +country = "ZMB" +global_reg = "R11" +type_reg = "ZMB" + +if type_reg == "global": + wd = os.path.join( + "p:", + "ene.model", + "NEST", + "hydrology", + "post-processed_qs", + f"global_{global_reg}", + ) + # upload_files = glob.glob(os.path.join(upload_dir, "MESSAGEix*.xlsx")) +elif type_reg == "country": + # This is for Zambia + wd = os.path.join("p:", "ene.model", "NEST", country, "hydrology", "post-processed") + + +# climate forcing +scenarios = ["rcp26", "rcp60"] + +scen = "rcp60" +# variable, for detailed symbols, refer to ISIMIP2b documentation +variables = [ + "qtot", # total runoff + "dis", # discharge + "qg", # groundwater runoff + "qr", # groundwater recharge +] +var = "qr" +timestep = "5y" + +# read quantiles +df_26_q50 = pd.read_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[0]}_q50.csv") +df_26_q70 = pd.read_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[0]}_q70.csv") +df_26_q90 = pd.read_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[0]}_q90.csv") + +df_60_q50 = pd.read_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[1]}_q50.csv") +df_60_q70 = pd.read_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[1]}_q70.csv") +df_60_q90 = pd.read_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[1]}_q90.csv") + +# Bias Correction +# Q50 + +df_26_q50.drop(["Unnamed: 0"], axis=1, inplace=True) +df_60_q50.drop(["Unnamed: 0"], axis=1, inplace=True) + +# Bias adjustment in the data +val2020_q50 = ( + df_60_q50.iloc[:, 1:5].mean(axis=1) + df_26_q50.iloc[:, :5].mean(axis=1) +) / 2 +delta60 = df_60_q50.iloc[:, 1:5].mean(axis=1) - val2020_q50 +delta26 = df_26_q50.iloc[:, 1:5].mean(axis=1) - val2020_q50 + +# df_sw26_adjusted_q50 = df_26_q50.apply(lambda x:x - delta26) +# df_sw60_adjusted_q50 = df_60_q50.apply(lambda x:x - delta60) + +df_26_q50["2020-12-31"] = val2020_q50 +df_26_q50["2025-12-31"] = df_26_q50["2025-12-31"] - delta26 +df_26_q50["2030-12-31"] = df_26_q50["2030-12-31"] - (0.8 * delta26) +df_26_q50["2035-12-31"] = df_26_q50["2035-12-31"] - (0.6 * delta26) +df_26_q50["2040-12-31"] = df_26_q50["2040-12-31"] - (0.4 * delta26) +df_26_q50["2045-12-31"] = df_26_q50["2045-12-31"] - (0.2 * delta26) + +df_60_q50["2020-12-31"] = val2020_q50 +df_60_q50["2025-12-31"] = df_60_q50["2025-12-31"] - delta60 +df_60_q50["2030-12-31"] = df_60_q50["2030-12-31"] - (0.8 * delta60) +df_60_q50["2035-12-31"] = df_60_q50["2035-12-31"] - (0.6 * delta60) +df_60_q50["2040-12-31"] = df_60_q50["2040-12-31"] - (0.4 * delta60) +df_60_q50["2045-12-31"] = df_60_q50["2045-12-31"] - (0.2 * delta60) + +df_60_q50.to_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[0]}_q50_ba.csv") +df_26_q50.to_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[1]}_q50_ba.csv") + + +# Q70 +# Bias Correction +df_26_q70.drop(["Unnamed: 0"], axis=1, inplace=True) +df_60_q70.drop(["Unnamed: 0"], axis=1, inplace=True) + + +# Bias adjustment in the data +val2020_q70 = ( + df_60_q70.iloc[:, 1:5].mean(axis=1) + df_26_q70.iloc[:, :5].mean(axis=1) +) / 2 +delta60 = df_60_q70.iloc[:, 1:5].mean(axis=1) - val2020_q70 +delta26 = df_26_q70.iloc[:, 1:5].mean(axis=1) - val2020_q70 + +df_26_q70["2020-12-31"] = val2020_q70 +df_26_q70["2025-12-31"] = df_26_q70["2025-12-31"] - delta26 +df_26_q70["2030-12-31"] = df_26_q70["2030-12-31"] - (0.8 * delta26) +df_26_q70["2035-12-31"] = df_26_q70["2035-12-31"] - (0.6 * delta26) +df_26_q70["2040-12-31"] = df_26_q70["2040-12-31"] - (0.4 * delta26) +df_26_q70["2045-12-31"] = df_26_q70["2045-12-31"] - (0.2 * delta26) + +df_60_q70["2020-12-31"] = val2020_q70 +df_60_q70["2025-12-31"] = df_60_q70["2025-12-31"] - delta60 +df_60_q70["2030-12-31"] = df_60_q70["2030-12-31"] - (0.8 * delta60) +df_60_q70["2035-12-31"] = df_60_q70["2035-12-31"] - (0.6 * delta60) +df_60_q70["2040-12-31"] = df_60_q70["2040-12-31"] - (0.4 * delta60) +df_60_q70["2045-12-31"] = df_60_q70["2045-12-31"] - (0.2 * delta60) + +# df_sw26_adjusted_q70 = df_26_q70.apply(lambda x:x - delta26) +# df_sw60_adjusted_q70 = df_60_q70.apply(lambda x:x - delta60) + +df_26_q70.to_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[0]}_q70_ba.csv") +df_60_q70.to_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[1]}_q70_ba.csv") + + +# Q90 +# Bias Correction +df_26_q90.drop(["Unnamed: 0"], axis=1, inplace=True) +df_60_q90.drop(["Unnamed: 0"], axis=1, inplace=True) + + +# Bias adjustment in the data +val2020_q90 = ( + df_60_q90.iloc[:, 1:5].mean(axis=1) + df_26_q90.iloc[:, :5].mean(axis=1) +) / 2 +delta60 = df_60_q90.iloc[:, 1:5].mean(axis=1) - val2020_q90 +delta26 = df_26_q90.iloc[:, 1:5].mean(axis=1) - val2020_q90 + +# df_sw26_adjusted_q90 = df_26_q90.apply(lambda x:x - delta26) +# df_sw60_adjusted_q90 = df_60_q90.apply(lambda x:x - delta60) + + +df_26_q90["2020-12-31"] = val2020_q90 +df_26_q90["2025-12-31"] = df_26_q90["2025-12-31"] - delta26 +df_26_q90["2030-12-31"] = df_26_q90["2030-12-31"] - (0.8 * delta26) +df_26_q90["2035-12-31"] = df_26_q90["2035-12-31"] - (0.6 * delta26) +df_26_q90["2040-12-31"] = df_26_q90["2040-12-31"] - (0.4 * delta26) +df_26_q90["2045-12-31"] = df_26_q90["2045-12-31"] - (0.2 * delta26) + +df_60_q90["2020-12-31"] = val2020_q90 +df_60_q90["2025-12-31"] = df_60_q90["2025-12-31"] - delta60 +df_60_q90["2030-12-31"] = df_60_q90["2030-12-31"] - (0.8 * delta60) +df_60_q90["2035-12-31"] = df_60_q90["2035-12-31"] - (0.6 * delta60) +df_60_q90["2040-12-31"] = df_60_q90["2040-12-31"] - (0.4 * delta60) +df_60_q90["2045-12-31"] = df_60_q90["2045-12-31"] - (0.2 * delta60) + +df_26_q90.to_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[0]}_q90_ba.csv") +df_60_q90.to_csv(wd + f"\{var}_{timestep}_mmean_{scenarios[1]}_q90_ba.csv") +df_noclim_q90 = df_60_q90.apply(lambda x: val2020_q90) +df_noclim_q90.to_csv(wd + f"\{var}_{timestep}_mmean_no_climate_q90_ba.csv") + +# Reliability Scenarios +# Low Reliability = q50 +df_60_q50.to_csv(wd + f"\{var}_{timestep}_2p6_low_{type_reg}.csv") +df_26_q50.to_csv(wd + f"\{var}_{timestep}_6p0_low_{type_reg}.csv") + +df_sw_noclimate = df_60_q50.apply(lambda x: val2020_q50) +df_sw_noclimate.to_csv(wd + f"\{var}_{timestep}_no_climate_low_{type_reg}.csv") + +# Medium Reliability = q70 +df_med_26_1 = df_26_q50.iloc[:, :3] +df_med_26_2 = df_26_q70.iloc[:, 3:] +df_med_26 = pd.concat([df_med_26_1, df_med_26_2], axis=1) +df_med_26.to_csv(wd + f"\{var}_{timestep}_2p6_med_{type_reg}.csv") + +df_med_60_1 = df_60_q50.iloc[:, :3] +df_med_60_2 = df_60_q70.iloc[:, 3:] +df_med_60 = pd.concat([df_med_60_1, df_med_60_2], axis=1) +df_med_60.to_csv(wd + f"\{var}_{timestep}_6p0_med_{type_reg}.csv") + +df_med_noclimate_1 = df_med_60.iloc[:, :3].apply(lambda x: val2020_q50) +df_med_noclimate_2 = df_med_60.iloc[:, 4:].apply(lambda x: val2020_q70) +df_med_noclimate = pd.concat([df_med_noclimate_1, df_med_noclimate_2], axis=1) +df_med_noclimate.to_csv(wd + f"\{var}_{timestep}_no_climate_med_{type_reg}.csv") + +df_med_noclimate.iloc[:, :3] = df_sw_noclimate.iloc[:, :3] + +# High Reliability - 2020,q50 . 2025:2030, q70 , 2035:2100, q90 +df_high_26_1 = df_26_q50.iloc[:, :3] +df_high_26_2 = df_26_q70.iloc[:, 3:6] +df_high_26_3 = df_26_q90.iloc[:, 6:] +df_high_26 = pd.concat([df_high_26_1, df_high_26_2, df_high_26_3], axis=1) +df_high_26.to_csv(wd + f"\{var}_{timestep}_2p6_high_{type_reg}.csv") + +df_high_60_1 = df_60_q50.iloc[:, :3] +df_high_60_2 = df_60_q70.iloc[:, 3:6] +df_high_60_3 = df_60_q90.iloc[:, 6:] +df_high_60 = pd.concat([df_high_60_1, df_high_60_2, df_high_60_3], axis=1) +df_high_60.to_csv(wd + f"\{var}_{timestep}_6p0_high_{type_reg}.csv") + +df_high_noclimate_1 = df_high_60.iloc[:, :3].apply(lambda x: val2020_q50) +df_high_noclimate_2 = df_high_60.iloc[:, 3:6].apply(lambda x: val2020_q70) +df_high_noclimate_3 = df_high_60.iloc[:, 6:].apply(lambda x: val2020_q90) +df_high_noclimate = pd.concat( + [df_high_noclimate_1, df_high_noclimate_2, df_high_noclimate_3], axis=1 +) +df_high_noclimate.to_csv(wd + f"\{var}_{timestep}_no_climate_high_{type_reg}.csv") + + +# E-Flow bias correction + +df_60 = pd.read_csv(wd + f"\e-flow_rcp60.csv") +df_26 = pd.read_csv(wd + f"\e-flow_rcp26.csv") + +# Bias Correction +# Q50 + +df_60.drop(["Unnamed: 0"], axis=1, inplace=True) +df_26.drop(["Unnamed: 0"], axis=1, inplace=True) + +# Bias adjustment in the data +val2020 = (df_60.iloc[:, 1:5].mean(axis=1) + df_26.iloc[:, :5].mean(axis=1)) / 2 +delta60 = df_60.iloc[:, 1:5].mean(axis=1) - val2020 +delta26 = df_26.iloc[:, 1:5].mean(axis=1) - val2020 + +# df_sw26_adjusted_q50 = df_26_q50.apply(lambda x:x - delta26) +# df_sw60_adjusted_q50 = df_60_q50.apply(lambda x:x - delta60) + +df_26["2020-12-31"] = val2020 +df_26["2025-12-31"] = df_26["2025-12-31"] - delta26 +df_26["2030-12-31"] = df_26["2030-12-31"] - (0.8 * delta26) +df_26["2035-12-31"] = df_26["2035-12-31"] - (0.6 * delta26) +df_26["2040-12-31"] = df_26["2040-12-31"] - (0.4 * delta26) +df_26["2045-12-31"] = df_26["2045-12-31"] - (0.2 * delta26) + +df_60["2020-12-31"] = val2020 +df_60["2025-12-31"] = df_60["2025-12-31"] - delta60 +df_60["2030-12-31"] = df_60["2030-12-31"] - (0.8 * delta60) +df_60["2035-12-31"] = df_60["2035-12-31"] - (0.6 * delta60) +df_60["2040-12-31"] = df_60["2040-12-31"] - (0.4 * delta60) +df_60["2045-12-31"] = df_60["2045-12-31"] - (0.2 * delta60) + +df_60.to_csv(wd + f"\e-flow_2p6_{type_reg}.csv") +df_26.to_csv(wd + f"\e-flow_6p0_R11.csv") + +df_noclim = df_60.apply(lambda x: val2020) +df_noclim.to_csv(wd + f"\e-flow_no_climate_{type_reg}.csv") diff --git a/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_spatial.R b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_spatial.R new file mode 100644 index 0000000..5682c9e --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_spatial.R @@ -0,0 +1,49 @@ +require(reshape) +require(rgdal) +require(raster) +require(rgeos) +require(tidyr) +require(dplyr) +require(maptools) +require(ncdf4) +library(sp) +library(countrycode) +library(ggmap) +library(sf) +library(exactextractr) + +nc = nc_open( + paste0( + "C:/Users/awais/Documents/GitHub/agg_data/output/dis_5y__hadgem2-es_rcp60_temp_agg.nc" + ), + verbose=FALSE, +) +nc.brick = brick( + "C:/Users/awais/Documents/GitHub/agg_data/output/qtot_5y__gfdl-esm2m_rcp60_temp_agg.nc" +) + + +basin < -read.csv( + "C:/Users/awais/Documents/GitHub/agg_data/output/basins_by_region_simpl_R11.csv" +) + +# load shapefile +basin_by_region.spdf = read_sf( + "P:/ene.model/NEST/delineation/data/delineated_basins_new", + paste0("basins_by_region_simpl_R11"), +) + + +agg < -exact_extract(nc.brick, basin_by_region.spdf, "sum") + + +output < -cbind(basin, agg) + +write.csv( + output, + "C:/Users/awais/Documents/GitHub/agg_data/output/qtot_5y__gfdl-esm2m_rcp60_temp_agg.nc", +) + +basin < -read.csv( + "C:/Users/awais/Documents/GitHub/agg_data/output/basins_by_region_simpl_R11.csv" +) diff --git a/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp.py b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp.py new file mode 100644 index 0000000..9f145f2 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp.py @@ -0,0 +1,335 @@ +import matplotlib.pylab as plt +import seaborn as sns + +sns.set() +import numpy as np +import pandas as pd +import seaborn as sns + +sns.set_style("whitegrid") +import os + +# variable, for detailed symbols, refer to ISIMIP2b documentation +variables = ["qtot", "dis", "qr"] # total runoff # discharge # groundwater run + +var = "qr" + + +GCMs = ["mmean", "dry"] +GCM = "mmean" # 'dry'choose driest GCM else 'mmean' for multi model mean +# else mmmean +iso3 = "ZMB" +isimip = "3b" + +# climate model +if isimip == "2b": + climmodels = ["gfdl-esm2m", "hadgem2-es", "ipsl-cm5a-lr", "miroc5"] + climmodel = "gfdl-esm2m" + # climate forcing + scenarios = ["rcp26", "rcp60"] + scen = "rcp26" + wd1 = os.path.join("p:", "ene.model", "NEST", "hydrological_data_agg") + wd = os.path.join("p:", "watxene", "ISIMIP", "ISIMIP2b", "output", "LPJmL") + wd2 = os.path.join("p:", "ene.model", "NEST", "hydrology", "processed_nc4") +else: + climmodels = [ + "gfdl-esm4", + "ipsl-cm6a-lr", + "mpi-esm1-2-hr", + "mri-esm2-0", + "ukesm1-0-ll", + ] + cl = "gfdl-esm4" + scenarios = ["ssp126", "ssp370", "ssp585"] + scen = "ssp126" + wd1 = os.path.join("p:", "ene.model", "NEST", "hydrological_data_agg") + wd11 = os.path.join("p:", "ene.model", "NEST", iso3, "hydrology", "isimip3B_CWatM") + + +# +qtot_7p0_gfdl = pd.read_csv(wd11 + f"\{var}_monthly_gfdl-esm4_ssp370_future.csv").drop( + [ + "Unnamed: 0", + "NAME", + "BASIN", + "BASIN_ID", + "area", + "area_km2", + "X", + "REGION", + "BCU_name", + ], + axis=1, +) + +new_cols = pd.date_range("2015-01-01", periods=1032, freq="M") +qtot_7p0_gfdl.columns = new_cols + + +qtot_2p6_gfdl = pd.read_csv(wd11 + f"\{var}_monthly_gfdl-esm4_ssp126_future.csv").drop( + [ + "Unnamed: 0", + "NAME", + "BASIN", + "BASIN_ID", + "area", + "area_km2", + "X", + "REGION", + "BCU_name", + ], + axis=1, +) + +new_cols = pd.date_range("2015-01-01", periods=1032, freq="M") +qtot_2p6_gfdl.columns = new_cols + + +qtot_2p6_gfdl_avg = qtot_2p6_gfdl[pd.date_range("2015-01-01", periods=192, freq="M")] +qtot_7p0_gfdl_avg = qtot_7p0_gfdl[pd.date_range("2015-01-01", periods=192, freq="M")] + +val_2020 = ( + qtot_7p0_gfdl_avg.groupby(qtot_7p0_gfdl_avg.columns.month, axis=1).mean() + + qtot_2p6_gfdl_avg.groupby(qtot_2p6_gfdl_avg.columns.month, axis=1).mean() +) / 2 +val_2020_annual = val_2020.mean(axis=1) + +delta60 = ( + qtot_7p0_gfdl_avg.groupby(qtot_7p0_gfdl_avg.columns.month, axis=1).mean() - val_2020 +) +delta26 = ( + qtot_2p6_gfdl_avg.groupby(qtot_2p6_gfdl_avg.columns.month, axis=1).mean() - val_2020 +) + + +def bias_correction(df): + """ias corrects the data such that 2020 value is same + for both scenario and then apply + Input + ---------- + df : raw input monthly data + Returns + ------- + df : bias corrected monthly data with also replacing 5 year timestep average + df_monthly: monthly bias corrected data + df_5y_m: bias corrected 5 y monthly + df_5y: bias corrected 5 y average + """ + # Starting value of delat is 1 and then it will reduce to zero with each 5 year timestep + # till 2045 with a difference of 0.2. This means the bias correction will fade away till 2045 + delta_multiply = 1 + + for year in np.arange(2020, 2105, 5): + # for 2020 delta all scenario data frame will be same + if year == 2020: + df[pd.date_range("2020-01-01", periods=12, freq="M")] = val_2020 + + else: + # for delta years after 2020 + if delta_multiply > 0.1: + for i in np.arange(4, -1, -1): + if i == 4: + delta60.columns = pd.date_range( + str(year - i) + "-01-01", periods=12, freq="M" + ) + final_temp = df[ + pd.date_range( + str(year - i) + "-01-01", periods=12, freq="M" + ) + ] - (delta_multiply * delta60) + + else: + delta60.columns = pd.date_range( + str(year - i) + "-01-01", periods=12, freq="M" + ) + temp = df[ + pd.date_range( + str(year - i) + "-01-01", periods=12, freq="M" + ) + ] - (delta_multiply * delta60) + + final_temp = pd.concat((final_temp, temp), axis=1) + + df_monthly = final_temp + df[ + pd.date_range(str(year) + "-01-01", periods=12, freq="M") + ] = final_temp.groupby(final_temp.columns.month, axis=1).mean() + # 5 year monthly data + df_5y_m = df[df.columns[df.columns.year.isin(years)]] + # 5 year annual + # 50th quantile - q50 + df_q50 = ( + df_monthly.rolling(240, min_periods=1, axis=1) + .quantile(0.5, interpolation="linear") + .resample("5Y", axis=1) + .mean() + ) + df_q50["2020-12-31"] = val_2020_annual + # 70th quantile - q70 + df_q70 = ( + df_monthly.rolling(240, min_periods=1, axis=1) + .quantile(0.3, interpolation="linear") + .resample("5Y", axis=1) + .mean() + ) + df_q70["2020-12-31"] = val_2020_annual + # 90th quantile - q90 + df_q90 = ( + df_monthly.rolling(240, min_periods=1, axis=1) + .quantile(0.1, interpolation="linear") + .resample("5Y", axis=1) + .mean() + ) + + df_q90["2020-12-31"] = val_2020_annual + + delta_multiply -= 0.2 + + else: + # after detlta years + temp_daterange = pd.date_range( + str(year - 4) + "-01-01", periods=60, freq="M" + ) + # Monthly Bias corrected data + df_monthly = df + + df[pd.date_range(str(year) + "-01-01", periods=12, freq="M")] = ( + df[temp_daterange] + .groupby(df[temp_daterange].columns.month, axis=1) + .mean() + ) + # 5 year monthly + df_5y_m = df[df.columns[df.columns.year.isin(years)]] + # 5 year annual + # 50th quantile - q50 + df_q50 = ( + df_monthly.rolling(240, min_periods=1, axis=1) + .quantile(0.5, interpolation="linear") + .resample("5Y", axis=1) + .mean() + ) + df_q50["2020-12-31"] = val_2020_annual + # 70th quantile - q70 + df_q70 = ( + df_monthly.rolling(240, min_periods=1, axis=1) + .quantile(0.3, interpolation="linear") + .resample("5Y", axis=1) + .mean() + ) + df_q70["2020-12-31"] = val_2020_annual + # 90th quantile - q90 + df_q90 = ( + df_monthly.rolling(240, min_periods=1, axis=1) + .quantile(0.1, interpolation="linear") + .resample("5Y", axis=1) + .mean() + ) + + df_q90["2020-12-31"] = val_2020_annual + + return df, df_monthly, df_5y_m, df_q50, df_q70, df_q90 + + +years = np.arange(2015, 2105, 5) + +df_26, df_monthly_26, df_5y_m_26, df_q50_26, df_q70_26, df_q90_26 = bias_correction( + qtot_2p6_gfdl +) + +df_70, df_monthly_70, df_5y_m_70, df_q50_70, df_q70_70, df_q90_70 = bias_correction( + qtot_7p0_gfdl +) + + +df_monthly_26.to_csv(wd11 + f"/{var}_monthly_2p6_{iso3}.csv") +df_5y_m_26.to_csv(wd11 + f"/{var}_5y_m_2p6_low_{iso3}.csv") +df_q50_26.to_csv(wd11 + f"/{var}_5y_2p6_low_{iso3}.csv") +df_q70_26.to_csv(wd11 + f"/{var}_5y_2p6_med_{iso3}.csv") +df_q90_26.to_csv(wd11 + f"/{var}_5y_2p6_high_{iso3}.csv") + +df_monthly_70.to_csv(wd11 + f"/{var}_monthly_7p0_{iso3}.csv") +df_5y_m_70.to_csv(wd11 + f"/{var}_5y_m_7p0_low_{iso3}.csv") +df_q50_70.to_csv(wd11 + f"/{var}_5y_7p0_low_{iso3}.csv") +df_q70_70.to_csv(wd11 + f"/{var}_5y_7p0_med_{iso3}.csv") +df_q90_70.to_csv(wd11 + f"/{var}_5y_7p0_high_{iso3}.csv") + +# No climate scenarios +df_q50_70.apply(lambda x: val_2020_annual) +for y in years: + df_5y_m_70[pd.date_range(f"{y}-01-01", periods=12, freq="M")] = val_2020 +df_5y_m_70.to_csv(wd11 + f"/{var}_5y_m_no_climate_low_{iso3}.csv") +df_q50_70.apply(lambda x: val_2020_annual).to_csv( + wd11 + f"/{var}_5y_no_climate_low_{iso3}.csv" +) +df_q70_70.apply(lambda x: val_2020_annual).to_csv( + wd11 + f"/{var}_5y_no_climate_med_{iso3}.csv" +) +df_q90_70.apply(lambda x: val_2020_annual).to_csv( + wd11 + f"/{var}_5y_no_climate_high_{iso3}.csv" +) + + +## Environmental Flow + +df_env = df_monthly_70 + +# df = data.iloc[:,5:] +for z in range(len(df_env.columns) // 12): + col_start = 0 if z == 0 else col_end # start col number + col_end = (z + 1) * 12 # ending col number + temp = df_env.iloc[:, col_start:col_end] # assigning relevant data + + col_names = temp.columns # getting column names + MAF = temp.mean(axis=1) # take mean acorss + + for j in range(len(temp.columns)): + temp.iloc[:, j] = np.where( + temp.iloc[:, j] > 0.8 * MAF, + temp.iloc[:, j] * 0.2, + np.where( + (temp.iloc[:, j] > 0.4 * MAF) & (temp.iloc[:, j] <= 0.8 * MAF), + temp.iloc[:, j] * 0.45, + temp.iloc[:, j] * 0.6, + ), + ) + + if z == 0: + eflow = temp + else: + eflow = pd.concat((eflow, temp), axis=1) + + eflow = eflow.abs() + +# Convert to 5 year annual values +eflow_5y = eflow.resample("5Y", axis=1).mean() +eflow_5y.to_csv(wd11 + f"/e-flow_7p0_ZMB.csv") + +for year in np.arange(2020, 2105, 5): + for i in np.arange(4, -1, -1): + if i == 4: + final_temp = eflow[ + pd.date_range(str(year - i) + "-01-01", periods=12, freq="M") + ] + + else: + final_temp = eflow[ + pd.date_range(str(year - i) + "-01-01", periods=12, freq="M") + ] + + df_monthly = final_temp + eflow[ + pd.date_range(str(year) + "-01-01", periods=12, freq="M") + ] = final_temp.groupby(final_temp.columns.month, axis=1).mean() + + eflow_5y_m = eflow[eflow.columns[eflow.columns.year.isin(years)]] + + eflow_5y_m.to_csv(wd11 + f"/e-flow_5y_m_7p0_ZMB.csv") + +val_2020_eflow = eflow_5y_m[pd.date_range(f"2020-01-01", periods=12, freq="M")].values() +val_2020_eflowy = eflow_5y["2020-12-31"] +eflow_5y.apply(lambda x: val_2020_eflowy).to_csv(wd11 + f"/e-flow_no_climate_ZMB.csv") + +for y in years: + eflow_5y_m[pd.date_range(f"{y}-01-01", periods=12, freq="M")] = val_2020_eflow + +eflow_5y_m.to_csv(wd11 + f"/e-flow_5y_m_no_climate_ZMB.csv") diff --git a/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp1.py b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp1.py new file mode 100644 index 0000000..d1c5f3a --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp1.py @@ -0,0 +1,485 @@ +""" +This script aggregates the global gridded data to any scale. The following +script specifically aggregates global gridded hydrological data onto the basin + mapping used in the nexus module. +""" +import os +import sys + +print(sys.executable) +# import salem +import glob + +# Import packages +from datetime import datetime as dt + +import dask +import numpy as np +import pandas as pd +import xarray as xr + +start = dt.now() +from dask.diagnostics import ProgressBar + +# from salem import open_wrf_dataset, get_demo_file + + +# variable, for detailed symbols, refer to ISIMIP2b documentation +variables = [ + "qtot", # total runoff + "dis", # discharge + "qg", # groundwater runoff + "qr", +] # groudnwater recharge +var = "qr" + +isimip = "3b" + +data = "future" # else future + +# %% +# if multimodelensemble: +# # iterate through scenarios (3) +# for model in climmodels: +# hydro_data = wd + f"\hydrology\{model}*{scen}*{var}*.nc4" +# files = glob.glob(hydro_data) +# ds = xr.Dataset() +# # Iterate through 5 GCMs for each scenario +# for file in files: +# model = file[57:-57] +# da = xr.open_dataarray(file, decode_times=False) # open +# # da['time'] = np.arange(2005,2100, dtype=int) #fix time +# ds[model] = da # add to main dataset +# # collapse the 4 GCMs to one dataarray and take mean +# ds["multimodelmean"] = ds.to_array(dim="memean").mean(axis=0) +# # Assign attributes +# ds.attrs["scenario"] = scen +# ds.to_netcdf(wd + f"{var}_{scen}_non_agg_combined.nc") + +# else: +# wd = "P:\watxene\ISIMIP\ISIMIP3b\CWatM_results\gfdl-esm4\future" + +for cl in climmodels: + # climate model + if isimip == "2b": + climmodels = ["gfdl-esm2m", "hadgem2-es", "ipsl-cm5a-lr", "miroc5"] + climmodel = "gfdl-esm2m" + # climate forcing + scenarios = ["rcp26", "rcp60"] + scen = "rcp26" + wd1 = os.path.join("p:", "ene.model", "NEST", "hydrological_data_agg") + wd = os.path.join("p:", "watxene", "ISIMIP", "ISIMIP2b", "output", "LPJmL") + wd2 = os.path.join("p:", "ene.model", "NEST", "hydrology", "processed_nc4") + else: + climmodels = [ + "gfdl-esm4", + "ipsl-cm6a-lr", + "mpi-esm1-2-hr", + "mri-esm2-0", + "ukesm1-0-ll", + ] + scenarios = ["ssp126", "ssp370", "ssp585"] + scen = "ssp126" + wd1 = os.path.join("p:", "ene.model", "NEST", "hydrological_data_agg") + wd = os.path.join( + "p:", "watxene", "ISIMIP", "ISIMIP3b", "CWatM_results", f"{cl}", f"{data}" + ) + wd2 = os.path.join("p:", "ene.model", "NEST", "hydrology", "processed_nc4") + + # Define if monthly aggregation is required + monthlyscale = True + # define qauantile for statistical aggregation + quant = 0.1 + # define if multi climate models mean + multimodelensemble = True + # deinfe lat and long chunk for reducing computational load + latchunk = 120 + lonchunk = 640 + # Define if use all touched raster + all_touched = True + + if var == "dis": + # define a spatial method to aggregate + spatialmethod = "meansd" + else: + # define a spatial method to aggregate + spatialmethod = "sum" + + """ + The hydrological data can be accessed in watxene p drive. For accessing + particular drive, seek permission from Edward Byers (byers@iiasa.ac.at) + The files should be copied on to local drive + """ + + # Open raster area file + # The file landareamaskmap0.nc can be found under + # P:\ene.model\NEST\delineation\data\delineated_basins_new + + # t = np.arange(datetime(2006,1,1), datetime(2099,1,1), timedelta(month =1)).astype(datetime) + # t = np.arange(np.datetime64('2006-01-01'), np.datetime64('2099-01-08')) + area = xr.open_dataarray(wd1 + "\landareamaskmap0.nc") + + # TO AVOID ERROR WHEN OPENING AND SLICING INPUT DATA - CHECK! + dask.config.set({"array.slicing.split-large-chunks": False}) + + if data == "historical": + hydro_data = wd + f"\*{cl}*{var}*monthly*.nc" + elif data == "future": + hydro_data = wd + f"\*{cl}*{scen}*{var}*monthly*.nc" + + files = glob.glob(hydro_data) + if var != "qr": + # Open hydrological data as a combined dataset + da = xr.open_mfdataset(files) + else: + # Open hydrological data as a combined dataset + da = xr.open_mfdataset(files) + # da["time"] = pd.date_range(start="1/1/2015", end="31/12/2100", freq="M") + + # da.to_netcdf(wd+f'\{var}_memean_{scen}.nc') + + if monthlyscale: + # da = da.sel(time=slice('2010-01-01', '2025-12-31')) + # years = pd.DatetimeIndex(da["time"].values) + years = np.arange(2010, 2105, 5) + else: + years = np.arange(2010, 2105, 5) + + # ds = xr.open_dataset(wd+f'{var}_memean_{scen}.nc') + # Resample daily data to monthly (by summing daily values) + + # if var != "qr": + # da = da.resample(time="M").mean() + # # Calculate roolling average of 3 months to make the data consistent + # da = da.rolling(time=3, min_periods=1).mean() + + # da = da.fillna(0) + + # %% + if monthlyscale: + # dpm = { + # "noleap": [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + # "365_day": [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + # "standard": [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + # "gregorian": [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + # "proleptic_gregorian": [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + # "all_leap": [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + # "366_day": [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + # "360_day": [0, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], + # } + + # def leap_year(year, calendar="standard"): + # """Determine if year is a leap year""" + # leap = False + # if ( + # calendar in ["standard", "gregorian", "proleptic_gregorian", "julian"] + # ) and (year % 4 == 0): + # leap = True + # if ( + # (calendar == "proleptic_gregorian") + # and (year % 100 == 0) + # and (year % 400 != 0) + # ): + # leap = False + # elif ( + # (calendar in ["standard", "gregorian"]) + # and (year % 100 == 0) + # and (year % 400 != 0) + # and (year < 1583) + # ): + # leap = False + # return leap + + # def get_dpm(time, calendar="standard"): + # """ + # return a array of days per month corresponding to the months provided + # in `months` + # """ + # month_length = np.zeros(len(time), dtype=np.int) + # cal_days = dpm[calendar] + # for i, (month, year) in enumerate(zip(time.month, time.year)): + # month_length[i] = cal_days[month] + # if leap_year(year, calendar=calendar): + # month_length[i] += 1 + # return month_length + + # month_length = xr.DataArray( + # get_dpm(da.time.to_index(), calendar="standard"), + # coords=[da.time], + # name="month_length", + # ) + + # da = (da * month_length).resample(time="QS").sum() / month_length.resample( + # time="QS" + # ).sum() + + if var == "dis": + # # Converts the discharge into km3/year + da = da * 0.031556952 + da["dis"] = da.dis.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.dis.time)} + ) + # slice is required to reduce the dataset. + # da = da.sel(time=slice("2010-01-01", "2050-12-31")) + + da.dis.attrs["unit"] = "km3/year" + # chunking reduces computational burden + da["dis"] = da.dis.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.dis.time)} + ) + # saving the file here and reloading reduces disk space + da.to_netcdf(wd2 + f"{var}_monthly__{cl}_{scen}.nc") + elif var == "qtot": + # da["qtot"] = da.qtot.chunk( + # {"lat": latchunk, "lon": lonchunk, "time": len(da.qtot.time)} + # ) + # Filter 5 year interval monthly time step + # da = da.sel(time=da.time.dt.year.isin(years)) + # 1kg/m2/sec = 86400 mm/day + # 86400 mm/day X Area (mm2) = 86400 mm3/day + # 86400 mm3/day = 86400 X 1000000 3.65 e-16 km3/year + da = da * 86400 * area * 3.65e-16 * 1000000 + + # Resample daily data to monthly (by summing daily values) + # da = da.resample(time="M").mean() + + # da.rolling(time=12, center=True).construct( + # 'tmp').quantile(.1, dim='tmp', skipna=False).dropna( + # 'time') + + # da = da.rolling(time=20, min_periods=1).mean() + # da["qtot"] = da.qtot.chunk( + # {"lat": latchunk, "lon": lonchunk, "time": len(da.qtot.time)} + # ) + + da.to_netcdf(wd2 + f"\{var}_monthly_{cl}_{scen}_{data}.nc") + elif var == "qr": + # Filter 5 year interval monthly time step + # da = da.sel(time=da.time.dt.year.isin(years)) + # 1kg/m2/sec = 86400 mm/day + # 86400 mm/day X Area (mm2) = 86400 mm3/day + # 86400 mm3/day = 86400 X 1000000 3.65 e-16 km3/year + da = da * 86400 * area * 3.65e-16 * 1000000 + da.qr.attrs["unit"] = "km3/year" + # da["qr"] = da.qr.chunk( + # {"lat": latchunk, "lon": lonchunk, "time": len(da.qr.time)} + # ) + + da.to_netcdf(wd2 + f"\{var}_monthly_{cl}_{scen}_{data}.nc") + + else: + if var == "dis": + da["dis"] = da.dis.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.dis.time)} + ) + # Resample daily data to monthly (by summing daily values) + da = da.resample(time="Y").mean() + + da["dis"] = da.dis.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.dis.time)} + ) + # Take 20 year rolling average to make the time scale cosnistent + da = da.rolling(time=20).mean() + + # Converts the discharge into km3/year + da = da * 0.031556952 + da.dis.attrs["unit"] = "km3/year" + # Long term Mean annual discharge + davg = da.resample(time="30Y", loffset="4Y").mean() + davg["dis"] = davg.dis.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(davg.dis.time)} + ) + davg.to_netcdf( + wd2 + f"\output\{var}_90Y_avg_5y__{climmodel}_{scen}_temp_agg.nc" + ) + + # Now resample to an average value for each 5-year block, and + # offset by 2 years so that the value is centred to start 2101 + da = da.resample(time="5Y", loffset="4Y").mean() + + da.to_netcdf(wd2 + f"\output\{var}_5y__{climmodel}_{scen}_temp_agg.nc") + # read in saved data again to further process + da = xr.open_dataset( + wd2 + f"\output\{var}_5y__{climmodel}_{scen}_temp_agg.nc" + ) + + elif var == "qtot": + da["qtot"] = da.qtot.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qtot.time)} + ) + # Resample daily data to monthly (by summing daily values) + da = da.resample(time="Y").mean() + da["qtot"] = da.qtot.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qtot.time)} + ) + da = da.rolling(time=20, min_periods=1).mean() + da["qtot"] = da.qtot.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qtot.time)} + ) + # Converts to total runoff per gs into km3/year + da = da * 86400 * area * 3.65e-16 * 1000000 + da.qtot.attrs["unit"] = "km3/year" + da["qtot"] = da.qtot.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qtot.time)} + ) + + # Calculate roolling average of 20 years to make the data consistent + # da = da.rolling(time = 20).mean() + # Now resample to an average value for each 5-year block + da = da.resample(time="5Y", loffset="4Y").mean() + da.to_netcdf(wd2 + f"\output\{var}_monthly__{climmodel}_{scen}_temp_agg.nc") + # read in saved data again to further process + # da = xr.\ + # open_dataset( wd2+f'\output\{var}_5y__{climmodel}_{scen}_temp_agg.nc') + # da['qtot'] = da.qtot.chunk({'lat': latchunk, 'lon': lonchunk,\ + # 'time': len(da.qtot.time)}) + + elif var == "qr": + da["qr"] = da.qr.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qr.time)} + ) + # Resample daily data to monthly (by summing daily values) + da = da.resample(time="Y").mean() + da["qr"] = da.qr.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qr.time)} + ) + da = da.rolling(time=20, min_periods=1).mean() + da["qr"] = da.qr.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qr.time)} + ) + # TODO check unit + # 1kg/m2/sec = 86400 mm/day + # 86400 mm/day X Area (mm2) = 86400 mm3/day + # 86400 mm3/day = 86400 X 1000000 3.65 e-16 km3/year + da = da * 86400 * area * 3.65e-16 * 1000000 + da.qr.attrs["unit"] = "km3/year" + da["qr"] = da.qr.chunk( + {"lat": latchunk, "lon": lonchunk, "time": len(da.qr.time)} + ) + + # Calculate roolling average of 20 years to make the data consistent + # da = da.rolling(time = 3).mean() + # Now resample to an average value for each 5-year block + da = da.resample(time="5Y", loffset="4Y").mean() + + da.to_netcdf(wd2 + f"\output\{var}_5y__{climmodel}_{scen}.nc") + # read in saved data again to further process + # da = xr.\ + # open_dataset( wd+f'\output\{var}_5y__{climmodel}_{scen}_temp_agg.nc') +# %% +# if all_touched: +# # open raster fle in wdhsapes directory, if not there copy from p drive +# basinraster = xr.open_dataarray( +# wd + "\delineation\\basins_by_region_simpl_R11_at.nc" +# ) +# else: +# # open raster fle in wdhsapes directory, if not there copy from p drive +# basinraster = xr.open_dataarray( +# wd + "\delineation\\basins_by_region_simpl_R11_nt.nc" +# ) +# # helps to load the dataset into memory +# with ProgressBar(): +# da.compute() +# #%% also +# # read shapefile of basins +# shp_fn = wd + "\delineation\\basins_by_region_simpl_R11.shp" +# shapes = salem.read_shapefile(shp_fn, cached=True) + +# df = shapes[["BASIN_ID", "BCU_name"]] +# df["Model"] = f"LPJML" +# df["Scenario"] = f"{climmodel}_{scen}" +# df["Variable"] = f"{var}" +# df["Region"] = df["BCU_name"] + +# if var == "dis": +# df["Unit"] = "km3/year" +# else: +# df["Unit"] = "km3/year" + + +# for row in df.itertuples(): +# for year in years: +# basinid = row.Index # BASIN_ID +# print(row.Index) + +# if monthlyscale: +# da_t = da.sel(time=da.time.isin(years)) +# else: +# da_t = da.sel(time=da.time.dt.year.isin(years)) +# # for year in years: +# yr = f"{year}" +# if var == "dis": +# val = da_t.dis.where(basinraster == basinid) +# elif var == "qtot": +# val = da_t.qtot.where(basinraster == basinid) +# elif var == "qr": +# val = da_t.qr.where(basinraster == basinid) + +# std = val.squeeze().std().values + +# # Try dim dimension and provide exact dimension +# # Handle non-nans +# if spatialmethod == "sum": +# val = val.sum() +# elif spatialmethod == "max": +# val = val.max() +# elif spatialmethod == "mean": +# val = val.mean() +# elif spatialmethod == "quantile": +# val = val.quantile(quant) +# elif spatialmethod == "meansd": +# val = std + val.mean() + +# df.loc[row.Index, year] = val.values +# print(dt.now() - start) + +# #%% +# # val.to_netcdf(wd+ f'\output\{var}_5y__{climmodel}_{scen}_aggregated.nc') + +# df.to_csv( +# wd + "\output" + f"\LPJML_{var}_{climmodel}_{scen}_{spatialmethod}_5y_rasternew.csv" +# ) + + +# if all_touched: + +# df.to_csv( +# wd + "\output" + f"\LPJML_{var}_{climmodel}_{scen}_{spatialmethod}_5y_at.csv" +# ) +# else: +# df.to_csv( +# wd + "\output" + f"\LPJML_{var}_{climmodel}_{scen}_{spatialmethod}_5y_nt.csv" +# ) + + +# #%% +# air = ds.air.isel(time=0) + +# df, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(8, 6)) + +# # The first plot (in kelvins) chooses "viridis" and uses the data's min/max +# air.plot(ax=ax1, cbar_kwargs={"label": "K"}) +# ax1.set_title("Kelvins: default") +# ax2.set_xlabel("") + +# # The second plot (in celsius) now chooses "BuRd" and centers min/max around 0 +# airc = air - 273.15 +# airc.plot(ax=ax2, cbar_kwargs={"label": "°C"}) +# ax2.set_title("Celsius: default") +# ax2.set_xlabel("") +# ax2.set_ylabel("") + +# # The center doesn't have to be 0 +# air.plot(ax=ax3, center=273.15, cbar_kwargs={"label": "K"}) +# ax3.set_title("Kelvins: center=273.15") + +# # Or it can be ignored +# airc.plot(ax=ax4, center=False, cbar_kwargs={"label": "°C"}) +# ax4.set_title("Celsius: center=False") +# ax4.set_ylabel("") + +# # Make it nice +# plt.tight_layout() + +# da = da.qtot.isel(time=da.time.isin(year)).salem.quick_map() +# da.salem.quick_map() diff --git a/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp2.py b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp2.py new file mode 100644 index 0000000..cdc87b9 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/hydro_agg_temp2.py @@ -0,0 +1,362 @@ +""" +This script calculates envrionmental flows using monthly runoff (qtot from + ISIMIP) +It calculates environmental flows using Variable Monthly Flow method + +""" + +import os +from sqlite3 import TimeFromTicks + +import numpy as np +import pandas as pd + +type_reg = "global" # else 'global' +country = "ZMB" +global_reg = "R11" +isimip = "3b" + +if type_reg == "global": + wd = os.path.join("p:", "ene.model", "NEST", "hydrological_data_agg") + # upload_files = glob.glob(os.path.join(upload_dir, "MESSAGEix*.xlsx")) + wd_out = os.path.join( + "p:", + "ene.model", + "NEST", + "hydrology", + "post-processed_qs", + f"global_{global_reg}", + ) + + +elif type_reg == "country": + # This is for Zambia + wd = os.path.join("p:", "ene.model", "NEST", country, "hydrology") + wd_out = os.path.join( + "p:", "ene.model", "NEST", country, "hydrology", "post-processed" + ) + + +# climate model +if isimip == "2b": + climmodels = ["gfdl-esm2m", "hadgem2-es", "ipsl-cm5a-lr", "miroc5"] + climmodel = "gfdl-esm2m" + # climate forcing + scenarios = ["rcp26", "rcp60"] + scen = "rcp26" + wd1 = os.path.join("p:", "ene.model", "NEST", "hydrological_data_agg") + wd = os.path.join("p:", "watxene", "ISIMIP", "ISIMIP2b", "output", "LPJmL") + wd2 = os.path.join("p:", "ene.model", "NEST", "hydrology", "processed_nc4") +else: + climmodels = [ + "gfdl-esm4", + "ipsl-cm6a-lr", + "mpi-esm1-2-hr", + "mri-esm2-0", + "ukesm1-0-ll", + ] + scenarios = ["ssp126", "ssp370", "ssp585"] + scen = "ssp126" + wd1 = os.path.join("p:", "ene.model", "NEST", "hydrological_data_agg") + wd = os.path.join( + "p:", "watxene", "ISIMIP", "ISIMIP3b", "CWatM_results", f"{cl}", f"{data}" + ) + wd2 = os.path.join("p:", "ene.model", "NEST", "hydrology", "processed_nc4") + +# Define the scenario 'extreme' or 'normal' +extreme_scen = "high" + + +# climate forcing +scenarios = ["rcp26", "rcp60"] + +scen = "rcp60" +# variable, for detailed symbols, refer to ISIMIP2b documentation +variables = [ + "qtot", # total runoff + "dis", # discharge + "qg", # groundwater runoff + "qr", # groundwater recharge +] +var = "qr" +# climate model +climmodels = ["gfdl-esm2m", "hadgem2-es", "ipsl-cm5a-lr", "miroc5"] +climmodel = "miroc5" +timestep = "monthly" + + +# select interpolation method +intp = "linear" +quant = 0.5 +env_flow = True + +# Read sample file to keep all columns +df_chk = pd.read_csv(wd + f"\{var}_monthly_miroc5_rcp26.csv") + +# Reading files and taking multimodel ensemble +# df1 = pd.read_csv(wd + f"\{var}_{timestep}_miroc5_{scen}.csv").iloc[:, 8:] +df2 = pd.read_csv(wd + f"\{var}_{timestep}_gfdl-esm2m_{scen}.csv").iloc[:, 8:] +df3 = pd.read_csv(wd + f"\{var}_{timestep}_hadgem2-es_{scen}.csv").iloc[:, 8:] +df4 = pd.read_csv(wd + f"\{var}_{timestep}_ipsl-cm5a-lr_{scen}.csv").iloc[:, 8:] + + +data = pd.concat([df2, df3, df4]).groupby(level=0).mean() +# data["basin"] = "B" + df_chk["BCU_name"] + +# data.to_csv(wd + f"\{var}_{timestep}_{scen}_{extreme_scen}_{country}.csv") + +if extreme_scen == "high": + data = data.rolling(240, min_periods=1, axis=1).quantile(quant, interpolation=intp) + # data = data.rolling( + # 240, min_periods = 1, axis = 1).mean() +elif extreme_scen == "med": + data = data.rolling(240, min_periods=1, axis=1).quantile(0.5, interpolation=intp) + # data = data.rolling( + # 240, min_periods = 1, axis = 1).mean() + +new_cols = pd.to_datetime(data.columns, format="sum.X%Y.%m.%d") +data.columns = new_cols +data = data.iloc[:, 48:] +# data = data.resample('5Y', axis = 1).mean() + +data.to_csv(wd_out + f"\{var}_monthly_mmean_{scen}.csv") + +# df_6p0_temp = df_6p0.iloc[:, :216] + +# df = df_6p0_temp.copy() + +# # Convert monthly values to wet and dry +# for z in range(len(df.columns) // 12): +# col_end = (z + 1) * 12 # ending col number +# col_start = 0 if z == 0 else col_end # start col number + +# data = df.iloc[:, col_start:col_end] # assigning relevant data +# maxindex = data.idxmax(axis=1) # getting max indexes + +# wet_name = "mean." + maxindex[0][4:9] + "_wet" +# dry_name = "mean." + maxindex[0][4:9] + "_dry" + +# year_data = pd.DataFrame( +# columns=[wet_name, dry_name] +# ) # creaing and empty data frame + +# for i in range(len(maxindex)): +# col_names = data.columns # getting column names +# get_col_index = col_names == maxindex[i] # getting match column index +# wet_start = ( +# 0 +# if np.where(get_col_index)[0] - 3 < 0 +# else np.where(get_col_index)[0][0] - 3 +# ) # condition for negative col +# wet_add = np.where(get_col_index)[0] - 3 # getting negative columns +# wet_end = np.where(get_col_index)[0] + 2 +# wet_col = col_names[wet_start : wet_end[0] + 1].tolist() + +# # for adding negative columns +# if np.where(get_col_index)[0] - 3 >= 0: +# wet_col +# else: +# wet_col.extend(col_names[wet_add[0] :].tolist()) + +# # for adding positive columns +# if len(wet_col) < 6: +# col_add = 6 - len(wet_col) +# wet_col.extend(col_names[:col_add]) + +# start_row = 0 if i == 0 else end_row +# end_row = i + 1 + +# wet_mean = data.iloc[start_row:end_row, :][wet_col].mean(axis=1) +# dry_mean = ( +# data.iloc[start_row:end_row, :] +# .loc[:, ~data.iloc[start_row:end_row, :].columns.isin(wet_col)] +# .mean(axis=1) +# ) + +# row_array = np.array([wet_mean[i], dry_mean[i]]) # making an array + +# year_data.loc[len(year_data)] = row_array # appending an array + + +# # +# # Final data frame after choosing multi model mean +# df_mmmean[scen] = pd.concat( +# [df1, df2, df3]).groupby( +# level=0).mean() + +# dffinal[scen] = temporal_agg(df_mmmean[scen],extreme_scen) + +# # data_1_mean = temporal_agg(df2,extreme_scen) +# # data_2_mean = temporal_agg(df3,extreme_scen) +# # data_3_mean = temporal_agg(df4,extreme_scen) + +# print("Done") + +# df_2p6_temp1 = final_data.copy() +# df_2p6_temp1.to_csv(wd + r"\qtot_wetdry_multimodelmean_rcp2p6.csv") + +# # df_2p6_temp1 = pd.read_csv(wd + r"\qtot_wetdry_multimodelmean_rcp2p6.csv") + +# final_data = df_2p6_temp1.copy() + +# df_6p0_temp1 = final_data.copy() +# df_6p0_temp1.to_csv(wd + r"\qtot_wetdry_multimodelmean_rcp6p0.csv") + +# df_6p0_temp1 = pd.read_csv(wd + r"\qtot_wetdry_multimodelmean_rcp6p0.csv") + +# mean_values = np.stack((data_0_mean.mean(axis = 1).values, +# data_1_mean.mean(axis = 1).values, +# data_2_mean.mean(axis = 1).values)) +# # data_3_mean.mean(axis = 1).values)) + +# final_array = [] +# for i, min_col in enumerate(mean_values.argmin(axis = 0)): +# if min_col == 0: +# final_array.append(data_0_mean.iloc[i].values) +# elif min_col == 1: +# final_array.append(data_1_mean.iloc[i].values) +# elif min_col == 2: +# final_array.append(data_2_mean.iloc[i].values) +# else: +# final_array.append(data_3_mean.iloc[i].values) +if GCM == "dry": + # Final data frame after choosing driest GCM + dfs_dry[scen] = pd.DataFrame(final_array, columns=data_0_mean.columns) + +# Calculating environmental flows using wet and dry seasonal calculations +for i in range(len(final_data.columns) // 2): + col_start = 0 if i == 0 else col_end + col_end = (i + 1) * 2 + data = final_data.iloc[:, col_start:col_end] + + name = data.columns[0][6:10] + + wet_mul = data.iloc[:, 0] # * 0.6 + dry_mul = data.iloc[:, 1] # * 0.3 + + mul_data = (wet_mul + dry_mul) / 2 + + if i == 0: + PCT_data = pd.DataFrame(mul_data, columns=[name]) + else: + tmp_data = pd.DataFrame(mul_data, columns=[name]) + PCT_data = pd.concat([PCT_data, tmp_data], axis=1) + +print("Done") + +# mul_data = (wet_mul + dry_mul) / 2 +# value.append(mul_data.values) +# # Developed basins +# else: +# temp2 = data[data["BCU_name"] == j] +# wet_mul = temp2.iloc[:, 0] * wetvalind +# dry_mul = temp2.iloc[:, 1] * dryvalind + +# mul_data = (wet_mul + dry_mul) / 2 +# value.append(mul_data.values) + +# if i == 0: +# PCT_data = pd.DataFrame(data=value, columns=[name]) +# else: +# tmp_data = pd.DataFrame(data=value, columns=[name]) +# PCT_data = pd.concat([PCT_data, tmp_data], axis=1) + +# return PCT_data + +dfs_dry = {} +df_mmmean = {} +dfs_wd = {} +dfs_ann = {} +df_env = {} +eflow = {} +eflow1 = {} +eflow2 = {} +dffinal = {} +var = "qtot" +env_flow = True + +for scen in scenarios: + # Reading data files from four GCMs + df = pd.read_csv(wd + f"\{var}_monthly_{climmodels[0]}_{scen}.csv") + + df1 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[1]}_{scen}.csv") + + df2 = pd.read_csv(wd + f"\{var}_monthly_{climmodels[2]}_{scen}.csv") + + # df3 = pd.read_csv( + # wd + f"\{var}_monthly_{climmodels[3]}_{scen}.csv") + + # Final data frame after choosing multi model mean + df_mmmean[scen] = pd.concat([df1, df2, df3]).groupby(level=0).mean() + + df_env[scen] = df_mmmean[scen].iloc[:, 5:] + + eflow[scen] = [] + + # df = data.iloc[:,5:] + for z in range(len(df_env[scen].columns) // 12): + col_start = 0 if z == 0 else col_end # start col number + col_end = (z + 1) * 12 # ending col number + temp = df_env[scen].iloc[:, col_start:col_end] # assigning relevant data + + col_names = temp.columns # getting column names + MAF = temp.mean(axis=1) # take mean acorss + + for j in range(len(temp.columns)): + temp.iloc[:, j] = np.where( + temp.iloc[:, j] > 0.8 * MAF, + temp.iloc[:, j] * 0.2, + np.where( + (temp.iloc[:, j] > 0.4 * MAF) & (temp.iloc[:, j] <= 0.8 * MAF), + temp.iloc[:, j] * 0.45, + temp.iloc[:, j] * 0.6, + ), + ) + + if z == 0: + eflow[scen] = temp + else: + eflow[scen] = pd.concat((eflow[scen], temp), axis=1) + + # Convert to 5 year annual values + new_cols = pd.to_datetime(eflow[scen].columns, format="sum.X%Y.%m.%d") + eflow[scen].columns = new_cols + eflow[scen] = eflow[scen].iloc[:, 48:] + eflow[scen] = eflow[scen].resample("5Y", axis=1).mean() + eflow[scen].to_csv(wd_out + f"\e-flow_{scen}.csv") + + # df = eflow[scen] + + # for i in range(1, round(len(df.transpose())/60+1)): + # start = 0 if i == 1 else end + # end = i*60 + + # temp = df.transpose().iloc[start:end] + + # name = str(temp.index[-1].year) + # temp = temp.groupby(temp.index.month).mean() + # col_name = [name + "," + str(i) for i in range(1, 13)] + + # if i == 1: + # eflow2[scen] = temp.transpose() + # eflow2[scen] = eflow2[scen].set_axis(col_name, axis=1) + # else: + # eflow1[scen] = temp.transpose() + # eflow1[scen] = eflow1[scen].set_axis(col_name, axis=1) + # eflow2[scen] = pd.concat((eflow2[scen], eflow1[scen]), axis = 1) + + # new_cols = pd.to_datetime(eflow2[scen].columns, format='%Y,%m') + # eflow2[scen].columns = new_cols + # eflow2[scen] = eflow2[scen].resample('5Y',axis = 1).mean() + + # eflow2[scen].to_csv(wd + f"\e-flow_{var}_{scen}.csv") + + # df1 = pd.read_csv(wd + f"\e-flow_{variables[3]}_{scen}.csv") + # df2 = pd.read_csv(wd + f"\e-flow_{variables[0]}_{scen}.csv") + + # df2.subtract(df1,axis = 1).drop(columns = 'Unnamed: 0').to_csv(wd + f"\e-flow__{scen}.csv") + + print("Environmental Flow Values processed") + + +## Adjusting bias for the data in qs and return diff --git a/nest/message_ix_models/model/water/data/pre-processing/shp_to_raster.py b/nest/message_ix_models/model/water/data/pre-processing/shp_to_raster.py new file mode 100644 index 0000000..e840e79 --- /dev/null +++ b/nest/message_ix_models/model/water/data/pre-processing/shp_to_raster.py @@ -0,0 +1,121 @@ +"""Converts a shapefile to a raster""" + + +# Import packages +from datetime import datetime as dt + +import numpy as np +import salem +import xarray as xr + +from message_ix_models.util import private_data_path + +# NB The code runs only when the data is in local folder because of salem package dependency +# wdshapes = +wdshapes = r"C:\Users\awais\Documents\GitHub\agg_data\delineation" + + +manual_edit = False +rasterize = True +all_touched = True +nx = 720 +ny = 360 +# Define grid (must match template below) +grid = salem.Grid(proj=salem.wgs84, x0y0=(-180, -90), nxny=(nx, ny), dxdy=(0.5, 0.5)) +# temporary netcdf that gives the dimensions of output file,should match the salem.Grid defined below +# should be copied from P:\ene.model\NEST\delineation\data\delineated_basins +tempgrid = wdshapes + "\\template360x720_05.nc" + + +# Define custom fucntions +def create_raster( + shp_fn, namestr, grid, tempgrid, melt=False, all_touched=False, epsg=None +): + # Read in shapes, then look into table to see the columns names, e.g. shapes.columns + shapes = salem.read_shapefile(shp_fn, cached=True) + if epsg: + shapes = shapes.to_crs(epsg=epsg) + print(shapes.columns) + print("Start " + shp_fn) + print(dt.now()) + # e.g. states, countries, basins + import os + + tempshape = ( + wdshapes + "\\temp.shp" + ) # this is the filename of a temporary shapefile written in and out. No need to change + + out_fn = shp_fn[:-3] # output filename + + # Open grid that is same size, e.g. from template (or create empty xarray with desired dimensions) + template = xr.open_dataarray(tempgrid) + nd = xr.full_like(template, np.nan, dtype=float) + nd.attrs = {} + td = nd.copy(deep=True) + + idxs = {} + + if melt: + mask_default = grid.region_of_interest(shape=tempshape, all_touched=all_touched) + mask_default = mask_default.astype(float) + # mask_default[mask_default==1] = g + mask_default[mask_default == 0] = np.nan + td.values = np.flipud(mask_default) + nd = nd.combine_first(td) + # idxs[str(g)] = str(shapes[namestr].iloc[0]) + else: + # Run loop through geometries + for g, geo in enumerate(shapes.geometry): + print(g) + region = shapes.iloc[[g]] + region.set_crs(epsg=4326) + region.to_file(tempshape) + mask_default = grid.region_of_interest( + shape=tempshape, all_touched=all_touched + ) + mask_default = mask_default.astype(float) + mask_default[mask_default == 1] = g + 1 + mask_default[mask_default == 0] = np.nan + td.values = np.flipud(mask_default) + nd = nd.combine_first(td) + idxs[str(g + 1)] = str(region[namestr].iloc[0]) + nd.attrs = idxs + # nd.attrs['index'] = idxs + # nd.attrs['meta'] = {'file': shp_fn, + # 'date': str(dt.now()), + # } + # File saves out using same name as the input shapefile. + nd.name = namestr + fname = shp_fn[:-4] + if all_touched: + fname = fname + nd.to_netcdf(fname + "0.05" ".nc") + + # Downsized + xmin = shapes.min_x[0] + xmax = shapes.max_x[0] + ymin = shapes.min_y[0] + ymax = shapes.max_y[0] + + das = nd.sel(lat=slice(ymax, ymin), lon=slice(xmin, xmax)) + das.to_netcdf(fname + "_crop.nc") + das.close() + # plt.figure() + # plt.savefig(fname+'.png', dpi=400, bbox_inches='tight') + + os.remove(tempshape) + return nd + + +# NB The shapefiles are located in P:\ene.model\NEST\delineation\data\delineated_basins_new and should be copied in +# wdhsapes folder. Below is an example for R11 +shp_fn = wdshapes + "\\basins_by_region_simpl_R11.shp" + +create_raster( + shp_fn, + namestr="BCU_name", + grid=grid, + tempgrid=tempgrid, + melt=False, + all_touched=all_touched, +) diff --git a/nest/message_ix_models/model/water/data/water_for_ppl.py b/nest/message_ix_models/model/water/data/water_for_ppl.py new file mode 100644 index 0000000..162a109 --- /dev/null +++ b/nest/message_ix_models/model/water/data/water_for_ppl.py @@ -0,0 +1,819 @@ +"""Prepare data for water use for cooling & energy technologies.""" + +import numpy as np +import pandas as pd +from message_ix import make_df + +from message_ix_models.model.water.data.water_supply import map_basin_region_wat +from message_ix_models.util import ( + broadcast, + make_matched_dfs, + private_data_path, + same_node, +) + + +# water & electricity for cooling technologies +def cool_tech(context): + """Process cooling technology data for a scenario instance. + The input values of parent technologies are read in from a scenario instance and + then cooling fractions are calculated by using the data from + ``tech_water_performance_ssp_msg.csv``. + It adds cooling technologies as addons to the parent technologies.The + nomenclature for cooling technology is __. + E.g: `coal_ppl__ot_fresh` + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. + Values are data frames ready for :meth:`~.Scenario.add_par`. + Years in the data include the model horizon indicated by + ``context["water build info"]``, plus the additional year 2010. + """ + #: Name of the input file. + # The input file mentions water withdrawals and emission heating fractions for + # cooling technologies alongwith parent technologies: + FILE = "tech_water_performance_ssp_msg.csv" + # Investment costs & regional shares of hist. activities of cooling + # technologies + FILE1 = ( + "cooltech_cost_and_shares_" + + (f"ssp_msg_{context.regions}" if context.type_reg == "global" else "country") + + ".csv" + ) + + # define an empty dictionary + results = {} + + # Reference to the water configuration + info = context["water build info"] + sub_time = context.time + + # reading basin_delineation + FILE2 = f"basins_by_region_simpl_{context.regions}.csv" + PATH = private_data_path("water", "delineation", FILE2) + + df_node = pd.read_csv(PATH) + # Assigning proper nomenclature + df_node["node"] = "B" + df_node["BCU_name"].astype(str) + df_node["mode"] = "M" + df_node["BCU_name"].astype(str) + if context.type_reg == "country": + df_node["region"] = context.map_ISO_c[context.regions] + else: + df_node["region"] = f"{context.regions}_" + df_node["REGION"].astype(str) + + node_region = df_node["region"].unique() + # reading ppl cooling tech dataframe + path = private_data_path("water", "ppl_cooling_tech", FILE) + df = pd.read_csv(path) + cooling_df = df.loc[df["technology_group"] == "cooling"] + # Separate a column for parent technologies of respective cooling + # techs + cooling_df["parent_tech"] = ( + cooling_df["technology_name"] + .apply(lambda x: pd.Series(str(x).split("__"))) + .drop(columns=1) + ) + + scen = context.get_scenario() + + # Extracting input database from scenario for parent technologies + # Extracting input values from scenario + ref_input = scen.par("input", {"technology": cooling_df["parent_tech"]}) + # Extracting historical activity from scenario + ref_hist_act = scen.par( + "historical_activity", {"technology": cooling_df["parent_tech"]} + ) + # Extracting historical capacity from scenario + ref_hist_cap = scen.par( + "historical_new_capacity", {"technology": cooling_df["parent_tech"]} + ) + # cooling fraction = H_cool = Hi - 1 - Hi*(h_fg) + # where h_fg (flue gasses losses) = 0.1 + ref_input["cooling_fraction"] = ref_input["value"] * 0.9 - 1 + + def missing_tech(x): + """Assign values to missing data. + It goes through the input data frame and extract the technologies which + don't have input values and then assign manual values to those technologies + along with assigning them an arbitrary level i.e dummy supply + """ + data_dic = { + "geo_hpl": 1 / 0.850, + "geo_ppl": 1 / 0.385, + "nuc_hc": 1 / 0.326, + "nuc_lc": 1 / 0.326, + "solar_th_ppl": 1 / 0.385, + } + + if data_dic.get(x["technology"]): + if x["level"] == "cooling": + return pd.Series((data_dic.get(x["technology"]), "dummy_supply")) + else: + return pd.Series((data_dic.get(x["technology"]), x["level"])) + else: + return pd.Series((x["value"], x["level"])) + + ref_input[["value", "level"]] = ref_input[["technology", "value", "level"]].apply( + missing_tech, axis=1 + ) + + # Combines the input df of parent_tech with water withdrawal data + input_cool = ( + cooling_df.set_index("parent_tech") + .combine_first(ref_input.set_index("technology")) + .reset_index() + ) + + # Drops NA values from the value column + input_cool = input_cool.dropna(subset=["value"]) + + # Convert year values into integers to be compatibel for model + input_cool.year_vtg = input_cool.year_vtg.astype(int) + input_cool.year_act = input_cool.year_act.astype(int) + # Drops extra technologies from the data + input_cool = input_cool[ + (input_cool["level"] != "water_supply") & (input_cool["level"] != "cooling") + ] + + input_cool = input_cool[ + ~input_cool["technology_name"].str.contains("hpl", na=False) + ] + input_cool = input_cool[ + (input_cool["node_loc"] != f"{context.regions}_GLB") + & (input_cool["node_origin"] != f"{context.regions}_GLB") + ] + + def cooling_fr(x): + """Calculate cooling fraction + Returns the calculated cooling fraction after for two categories; + 1. Technologies that produce heat as an output + cooling_fraction(h_cool) = input value(hi) - 1 + Simply subtract 1 from the heating value since the rest of the part is already + accounted in the heating value + 2. Rest of technologies + h_cool = hi -Hi* h_fg - 1, + where: + h_fg (flue gasses losses) = 0.1 (10% assumed losses) + """ + if "hpl" in x["index"]: + return x["value"] - 1 + else: + return x["value"] - (x["value"] * 0.1) - 1 + + input_cool["cooling_fraction"] = input_cool.apply(cooling_fr, axis=1) + + # Converting water withdrawal units to Km3/GWa + # this refers to activity per cooling requirement (heat) + input_cool["value_cool"] = ( + input_cool["water_withdrawal_mid_m3_per_output"] + * 60 + * 60 + * 24 + * 365 + * 1e-9 + / input_cool["cooling_fraction"] + ) + + input_cool["return_rate"] = 1 - ( + input_cool["water_consumption_mid_m3_per_output"] + / input_cool["water_withdrawal_mid_m3_per_output"] + ) + # consumption to be saved in emissions rates for reporting purposes + input_cool["consumption_rate"] = ( + input_cool["water_consumption_mid_m3_per_output"] + / input_cool["water_withdrawal_mid_m3_per_output"] + ) + + input_cool["value_return"] = input_cool["return_rate"] * input_cool["value_cool"] + + # only for reporting purposes + input_cool["value_consumption"] = ( + input_cool["consumption_rate"] * input_cool["value_cool"] + ) + + # def foo3(x): + # """ + # This function is similar to foo2, but it returns electricity values + # per unit of cooling for techs that require parasitic electricity demand + # """ + # if "hpl" in x['index']: + # return x['parasitic_electricity_demand_fraction'] + # + # elif x['parasitic_electricity_demand_fraction'] > 0.0: + # return x['parasitic_electricity_demand_fraction'] / x['cooling_fraction'] + + # Filter out technologies that requires parasitic electricity + electr = input_cool[input_cool["parasitic_electricity_demand_fraction"] > 0.0] + + # Make a new column 'value_cool' for calculating values against technologies + electr["value_cool"] = ( + electr["parasitic_electricity_demand_fraction"] / electr["cooling_fraction"] + ) + # Filters out technologies requiring saline water supply + saline_df = input_cool[ + input_cool["technology_name"].str.endswith("ot_saline", na=False) + ] + + # input_cool_minus_saline_elec_df + con1 = input_cool["technology_name"].str.endswith("ot_saline", na=False) + con2 = input_cool["technology_name"].str.endswith("air", na=False) + icmse_df = input_cool[(~con1) & (~con2)] + + inp = make_df( + "input", + node_loc=electr["node_loc"], + technology=electr["technology_name"], + year_vtg=electr["year_vtg"], + year_act=electr["year_act"], + mode=electr["mode"], + node_origin=electr["node_origin"], + commodity="electr", + level="secondary", + time="year", + time_origin="year", + value=electr["value_cool"], + unit="GWa", + ) + # once through and closed loop freshwater + inp = inp.append( + make_df( + "input", + node_loc=icmse_df["node_loc"], + technology=icmse_df["technology_name"], + year_vtg=icmse_df["year_vtg"], + year_act=icmse_df["year_act"], + mode=icmse_df["mode"], + node_origin=icmse_df["node_origin"], + commodity="freshwater", + level="water_supply", + time="year", + time_origin="year", + value=icmse_df["value_cool"], + unit="km3/GWa", + ) + ) + # saline cooling technologies + inp = inp.append( + make_df( + "input", + node_loc=saline_df["node_loc"], + technology=saline_df["technology_name"], + year_vtg=saline_df["year_vtg"], + year_act=saline_df["year_act"], + mode=saline_df["mode"], + node_origin=saline_df["node_origin"], + commodity="saline_ppl", + level="saline_supply", + time="year", + time_origin="year", + value=saline_df["value_cool"], + unit="km3/GWa", + ) + ) + + # Drops NA values from the value column + inp = inp.dropna(subset=["value"]) + + # append the input data to results + results["input"] = inp + + # add water consumption as emission factor, also for saline tecs + emiss_df = input_cool[(~con2)] + emi = make_df( + "emission_factor", + node_loc=emiss_df["node_loc"], + technology=emiss_df["technology_name"], + year_vtg=emiss_df["year_vtg"], + year_act=emiss_df["year_act"], + mode=emiss_df["mode"], + emission="fresh_return", + value=emiss_df["value_return"], + unit="km3/yr", + ) + + results["emission_factor"] = emi + + # add water return flows for cooling tecs + # Use share of basin availability to distribute the return flow from + df_sw = map_basin_region_wat(context) + df_sw.drop(columns={"mode", "date", "MSGREG"}, inplace=True) + df_sw.rename( + columns={"region": "node_dest", "time": "time_dest", "year": "year_act"}, + inplace=True, + ) + df_sw["time_dest"] = df_sw["time_dest"].astype(str) + if context.nexus_set == "nexus": + out = pd.DataFrame() + for nn in icmse_df.node_loc.unique(): + # input cooling fresh basin + icfb_df = icmse_df[icmse_df["node_loc"] == nn] + bs = list(df_node[df_node["region"] == nn]["node"]) + + out_t = ( + make_df( + "output", + node_loc=icfb_df["node_loc"], + technology=icfb_df["technology_name"], + year_vtg=icfb_df["year_vtg"], + year_act=icfb_df["year_act"], + mode=icfb_df["mode"], + # node_origin=icmse_df["node_origin"], + commodity="surfacewater_basin", + level="water_avail_basin", + time="year", + value=icfb_df["value_return"], + unit="km3/GWa", + ) + .pipe(broadcast, node_dest=bs, time_dest=sub_time) + .merge(df_sw, how="left") + ) + # multiply by basin water availability share + out_t["value"] = out_t["value"] * out_t["share"] + out_t.drop(columns={"share"}, inplace=True) + out = out.append(out_t) + + out = out.dropna(subset=["value"]) + out.reset_index(drop=True, inplace=True) + results["output"] = out + + # costs and historical parameters + path1 = private_data_path("water", "ppl_cooling_tech", FILE1) + cost = pd.read_csv(path1) + # Combine technology name to get full cooling tech names + cost["technology"] = cost["utype"] + "__" + cost["cooling"] + # Filtering out 2010 data to use for historical values + input_cool_2010 = input_cool[ + (input_cool["year_act"] == 2010) & (input_cool["year_vtg"] == 2010) + ] + # Filter out columns that contain 'mix' in column name + columns = [col for col in cost.columns if "mix_" in col] + # Rename column names to R11 to match with the previous df + + cost.rename(columns=lambda name: name.replace("mix_", ""), inplace=True) + search_cols = [ + col for col in cost.columns if context.regions in col or "technology" in col + ] + hold_df = input_cool_2010[ + ["node_loc", "technology_name", "cooling_fraction"] + ].drop_duplicates() + search_cols_cooling_fraction = [col for col in search_cols if col != "technology"] + + def shares(x, context): + """Process share and cooling fraction. + Returns + ------- + Product of value of shares of cooling technology types of regions with + corresponding cooling fraction + """ + for col in search_cols_cooling_fraction: + # MAPPING ISOCODE to region name, assume one country only + col2 = context.map_ISO_c[col] if context.type_reg == "country" else col + cooling_fraction = hold_df[ + (hold_df["node_loc"] == col2) + & (hold_df["technology_name"] == x["technology"]) + ]["cooling_fraction"] + x[col] = x[col] * cooling_fraction + + results = [] + for i in x: + if isinstance(i, str): + results.append(i) + else: + if not len(i): + return pd.Series( + [i for i in range(len(search_cols) - 1)] + ["delme"], + index=search_cols, + ) + else: + results.append(float(i)) + return pd.Series(results, index=search_cols) + + # Apply function to the + hold_cost = cost[search_cols].apply(shares, axis=1, context=context) + hold_cost = hold_cost[hold_cost["technology"] != "delme"] + + def hist_act(x, context): + """Calculate historical activity of cooling technology. + The data for shares is read from ``cooltech_cost_and_shares_ssp_msg.csv`` + Returns + ------- + hist_activity(cooling_tech) = hist_activitiy(parent_technology) * share + *cooling_fraction + """ + tech_df = hold_cost[ + hold_cost["technology"].str.startswith(x.technology) + ] # [x.node_loc] + + node_search = ( + context.regions if context.type_reg == "country" else x["node_loc"] + ) + + node_loc = x["node_loc"] + technology = x["technology"] + cooling_technologies = list(tech_df["technology"]) + new_values = tech_df[node_search] * x.value + + return [ + [ + node_loc, + technology, + cooling_technology, + x.year_act, + x.value, + new_value, + x.unit, + ] + for new_value, cooling_technology in zip(new_values, cooling_technologies) + ] + + changed_value_series = ref_hist_act.apply(hist_act, axis=1, context=context) + changed_value_series_flat = [ + row for series in changed_value_series for row in series + ] + columns = [ + "node_loc", + "technology", + "cooling_technology", + "year_act", + "value", + "new_value", + "unit", + ] + # dataframe for historical activities of cooling techs + act_value_df = pd.DataFrame(changed_value_series_flat, columns=columns) + + def hist_cap(x, context): + """Calculate historical capacity of cooling technology. + The data for shares is read from ``cooltech_cost_and_shares_ssp_msg.csv`` + Returns + ------- + hist_new_capacity(cooling_tech) = historical_new_capacity(parent_technology)* + share * cooling_fraction + """ + tech_df = hold_cost[ + hold_cost["technology"].str.startswith(x.technology) + ] # [x.node_loc] + if context.type_reg == "country": + node_search = context.regions + else: + node_search = x["node_loc"] # R11_EEU + node_loc = x["node_loc"] + technology = x["technology"] + cooling_technologies = list(tech_df["technology"]) + new_values = tech_df[node_search] * x.value + + return [ + [ + node_loc, + technology, + cooling_technology, + x.year_vtg, + x.value, + new_value, + x.unit, + ] + for new_value, cooling_technology in zip(new_values, cooling_technologies) + ] + + changed_value_series = ref_hist_cap.apply(hist_cap, axis=1, context=context) + changed_value_series_flat = [ + row for series in changed_value_series for row in series + ] + columns = [ + "node_loc", + "technology", + "cooling_technology", + "year_vtg", + "value", + "new_value", + "unit", + ] + cap_value_df = pd.DataFrame(changed_value_series_flat, columns=columns) + + # Make model compatible df for historical activitiy + h_act = make_df( + "historical_activity", + node_loc=act_value_df["node_loc"], + technology=act_value_df["cooling_technology"], + year_act=act_value_df["year_act"], + mode="M1", + time="year", + value=act_value_df["new_value"], + # TODO finalize units + unit="GWa", + ) + + results["historical_activity"] = h_act + # Make model compatible df for histroical new capacity + h_cap = make_df( + "historical_new_capacity", + node_loc=cap_value_df["node_loc"], + technology=cap_value_df["cooling_technology"], + year_vtg=cap_value_df["year_vtg"], + value=cap_value_df["new_value"], + unit="GWa", + ) + + results["historical_new_capacity"] = h_cap + + # Add upper bound for seawater cooling + # sums up all the historical activities of seawater cooling technologies + # h_act_saline = h_act[h_act["technology"].str.endswith("saline")] + # h_act_saline = h_act_saline[h_act_saline["year_act"] == 2015] + # h_act_saline.drop(columns=["year_act", "mode", "time", "unit"], inplace=True) + # h_act_saline = h_act_saline.groupby(["node_loc"]).sum() + + # inp_saline = inp[inp["technology"].str.endswith("ot_saline")] + # inp_saline = inp_saline[ + # (inp_saline["year_vtg"] == 2015) & (inp_saline["year_act"] == 2015) + # ] + # inp_saline.drop( + # columns=[ + # "year_vtg", + # "commodity", + # "year_act", + # "mode", + # "level", + # "time", + # "time_origin", + # "unit", + # "node_origin", + # ], + # inplace=True, + # ) + # water_fr = inp_saline.groupby(["node_loc"]).mean() + # # multiplying input values of water withdrawal with + # bound_saline = water_fr.mul(h_act_saline) + + # bound_up = make_df( + # "bound_activity_up", + # node_loc=bound_saline.index, + # technology="extract_salinewater", + # mode="M1", + # time="year", + # value=bound_saline["value"].values, + # unit="km3/year", + # ).pipe(broadcast, year_act=info.Y) + + # results["bound_activity_up"] = bound_up + + # Filter out just cl_fresh & air technologies for adding inv_cost in model, + # The rest of technologies are assumed to have costs included in parent technologies + # con3 = cost['technology'].str.endswith("cl_fresh") + # con4 = cost['technology'].str.endswith("air") + # con5 = cost.technology.isin(input_cool['technology_name']) + # inv_cost = cost[(con3) | (con4)] + inv_cost = cost.copy() + # Manually removing extra technologies not required + # TODO make it automatic to not include the names manually + techs_to_remove = [ + "mw_ppl__ot_fresh", + "mw_ppl__ot_saline", + "mw_ppl__cl_fresh", + "mw_ppl__air", + "nuc_fbr__ot_fresh", + "nuc_fbr__ot_saline", + "nuc_fbr__cl_fresh", + "nuc_fbr__air", + "nuc_htemp__ot_fresh", + "nuc_htemp__ot_saline", + "nuc_htemp__cl_fresh", + "nuc_htemp__air", + ] + inv_cost = inv_cost[~inv_cost["technology"].isin(techs_to_remove)] + # Converting the cost to USD/GW + inv_cost["investment_USD_per_GW_mid"] = ( + inv_cost["investment_million_USD_per_MW_mid"] * 1e3 + ) + + inv_cost = ( + make_df( + "inv_cost", + technology=inv_cost["technology"], + value=inv_cost["investment_USD_per_GW_mid"], + unit="USD/GWa", + ) + .pipe(same_node) + .pipe(broadcast, node_loc=node_region, year_vtg=info.Y) + ) + + results["inv_cost"] = inv_cost + + # Addon conversion + adon_df = input_cool.copy() + # Add 'cooling_' before name of parent technologies that are type_addon + # nomenclature + adon_df["tech"] = "cooling__" + adon_df["index"].astype(str) + # technology : 'parent technology' and type_addon is type of addons such + # as 'cooling__bio_hpl' + addon_df = make_df( + "addon_conversion", + node=adon_df["node_loc"], + technology=adon_df["index"], + year_vtg=adon_df["year_vtg"], + year_act=adon_df["year_act"], + mode=adon_df["mode"], + time="year", + type_addon=adon_df["tech"], + value=adon_df["cooling_fraction"], + unit="km3/GWa", + ) + + results["addon_conversion"] = addon_df + + # Addon_lo will remain 1 for all cooling techs so it allows 100% activity of + # parent technologies + addon_lo = make_matched_dfs(addon_df, addon_lo=1) + results["addon_lo"] = addon_lo["addon_lo"] + + # technical lifetime + # make_matched_dfs didn't map all technologies + # tl = make_matched_dfs(inv_cost, + # technical_lifetime = 30) + year = info.Y + if 2010 in year: + pass + else: + year.insert(0, 2010) + + tl = ( + make_df( + "technical_lifetime", + technology=inp["technology"].drop_duplicates(), + value=30, + unit="year", + ) + .pipe(broadcast, year_vtg=year, node_loc=node_region) + .pipe(same_node) + ) + + results["technical_lifetime"] = tl + + cap_fact = make_matched_dfs(inp, capacity_factor=1) + # Climate Impacts on freshwater cooling capacity + # Taken from https://www.sciencedirect.com/science/article/pii/S0959378016301236?via%3Dihub#sec0080 + if context.RCP == "no_climate": + df = cap_fact["capacity_factor"] + else: + df = cap_fact["capacity_factor"] + # reading ppl cooling impact dataframe + path = private_data_path( + "water", "ppl_cooling_tech", "power_plant_cooling_impact_MESSAGE.xlsx" + ) + df_impact = pd.read_excel(path, sheet_name=f"{context.regions}_{context.RCP}") + + for n in df_impact["node"]: + conditions = [ + df["technology"].str.contains("fresh") + & (df["year_act"] >= 2025) + & (df["year_act"] < 2050) + & (df["node_loc"] == n), + df["technology"].str.contains("fresh") + & (df["year_act"] >= 2050) + & (df["year_act"] < 2070) + & (df["node_loc"] == n), + df["technology"].str.contains("fresh") + & (df["year_act"] >= 2070) + & (df["node_loc"] == n), + ] + + choices = [ + df_impact[(df_impact["node"] == n)]["2025s"], + df_impact[(df_impact["node"] == n)]["2050s"], + df_impact[(df_impact["node"] == n)]["2070s"], + ] + + df["value"] = np.select(conditions, choices, default=df["value"]) + + results["capacity_factor"] = df + # results = {par_name: pd.concat(dfs) for par_name, dfs in results.items()} + + # growth activity low to allow the cooling techs to be operational + g_lo = make_df( + "growth_activity_lo", + technology=inp["technology"].drop_duplicates(), + value=-0.05, + unit="%", + time="year", + ).pipe(broadcast, year_act=info.Y, node_loc=node_region) + # Alligining certain technologies with growth constriants + g_lo.loc[g_lo["technology"].str.contains("bio_ppl|loil_ppl"), "value"] = -0.5 + g_lo.loc[g_lo["technology"].str.contains("coal_ppl_u|coal_ppl"), "value"] = -0.5 + g_lo.loc[ + (g_lo["technology"].str.contains("coal_ppl_u|coal_ppl")) + & (g_lo["node_loc"].str.contains("CPA|PAS")), + "value", + ] = -1 + results["growth_activity_lo"] = g_lo + + # growth activity up on saline water + inp_saline = inp[inp["technology"].str.endswith("ot_saline")] + + g_up = make_df( + "growth_activity_up", + technology=inp_saline["technology"].drop_duplicates(), + value=0.05, + unit="%", + time="year", + ).pipe(broadcast, year_act=info.Y, node_loc=node_region) + results["growth_activity_up"] = g_up + + # # adding initial activity + # in_lo = h_act.copy() + # in_lo.drop(columns='mode', inplace=True) + # in_lo = in_lo[in_lo['year_act'] == 2015] + # in_lo_1 = make_df('initial_activity_lo', + # node_loc=in_lo['node_loc'], + # technology=in_lo['technology'], + # time='year', + # value=in_lo['value'], + # unit='GWa').pipe(broadcast, year_act=[2015, 2020]) + # results['initial_activity_lo'] = in_lo_1 + + return results + + +# Water use & electricity for non-cooling technologies +def non_cooling_tec(context): + """Process data for water usage of power plants (non-cooling technology related). + Water withdrawal values for power plants are read in from + ``tech_water_performance_ssp_msg.csv`` + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. + Values are data frames ready for :meth:`~.Scenario.add_par`. + Years in the data include the model horizon indicated by + ``context["transport build info"]``, plus the additional year 2010. + """ + results = {} + + FILE = "tech_water_performance_ssp_msg.csv" + path = private_data_path("water", "ppl_cooling_tech", FILE) + df = pd.read_csv(path) + cooling_df = df.loc[df["technology_group"] == "cooling"] + # Separate a column for parent technologies of respective cooling + # techs + cooling_df["parent_tech"] = ( + cooling_df["technology_name"] + .apply(lambda x: pd.Series(str(x).split("__"))) + .drop(columns=1) + ) + non_cool_df = df[ + (df["technology_group"] != "cooling") + & (df["water_supply_type"] == "freshwater_supply") + ] + + scen = context.get_scenario() + tec_lt = scen.par("technical_lifetime") + all_tech = list(tec_lt["technology"].unique()) + # all_tech = list(scen.set("technology")) + tech_non_cool_csv = list(non_cool_df["technology_name"]) + techs_to_remove = [tec for tec in tech_non_cool_csv if tec not in all_tech] + + non_cool_df = non_cool_df[~non_cool_df["technology_name"].isin(techs_to_remove)] + non_cool_df = non_cool_df.rename(columns={"technology_name": "technology"}) + + non_cool_df["value"] = ( + non_cool_df["water_withdrawal_mid_m3_per_output"] * 60 * 60 * 24 * 365 * (1e-9) + ) + + non_cool_tech = list(non_cool_df["technology"].unique()) + + n_cool_df = scen.par("output", {"technology": non_cool_tech}) + n_cool_df = n_cool_df[ + (n_cool_df["node_loc"] != "R11_GLB") & (n_cool_df["node_dest"] != "R11_GLB") + ] + n_cool_df_merge = pd.merge(n_cool_df, non_cool_df, on="technology", how="right") + n_cool_df_merge.dropna(inplace=True) + + # Input dataframe for non cooling technologies + # only water withdrawals are being taken + # Only freshwater supply is assumed for simplicity + inp_n_cool = make_df( + "input", + technology=n_cool_df_merge["technology"], + value=n_cool_df_merge["value_y"], + unit="km3/GWa", + level="water_supply", + commodity="freshwater", + time_origin="year", + mode="M1", + time="year", + year_vtg=n_cool_df_merge["year_vtg"].astype(int), + year_act=n_cool_df_merge["year_act"].astype(int), + node_loc=n_cool_df_merge["node_loc"], + node_origin=n_cool_df_merge["node_dest"], + ) + + # append the input data to results + results["input"] = inp_n_cool + + return results diff --git a/nest/message_ix_models/model/water/data/water_supply.py b/nest/message_ix_models/model/water/data/water_supply.py new file mode 100644 index 0000000..01e8775 --- /dev/null +++ b/nest/message_ix_models/model/water/data/water_supply.py @@ -0,0 +1,812 @@ +"""Prepare data for water use for cooling & energy technologies.""" + +import numpy as np +import pandas as pd +from message_ix import make_df + +from message_ix_models.model.water.data.demands import read_water_availability +from message_ix_models.model.water.utils import map_yv_ya_lt +from message_ix_models.util import broadcast, private_data_path, same_node, same_time + + +def map_basin_region_wat(context): + """ + Calculate share of water avaialbility of basins per each parent region. + + The parent region could be global message regions or country + + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. Values + are data frames ready for :meth:`~.Scenario.add_par`. + """ + info = context["water build info"] + + if "year" in context.time: + PATH = private_data_path( + "water", "delineation", f"basins_by_region_simpl_{context.regions}.csv" + ) + df_x = pd.read_csv(PATH) + # Adding freshwater supply constraints + # Reading data, the data is spatially and temprally aggregated from GHMs + path1 = private_data_path( + "water", + "availability", + f"qtot_5y_{context.RCP}_{context.REL}_{context.regions}.csv", + ) + + df_sw = pd.read_csv(path1) + df_sw.drop(["Unnamed: 0"], axis=1, inplace=True) + + # Reading data, the data is spatially and temporally aggregated from GHMs + df_sw["BCU_name"] = df_x["BCU_name"] + + if context.type_reg == "country": + df_sw["MSGREG"] = context.map_ISO_c[context.regions] + else: + df_sw["MSGREG"] = f"{context.regions}_" + df_sw["BCU_name"].str[-3:] + + df_sw = df_sw.set_index(["MSGREG", "BCU_name"]) + + # Calculating ratio of water availability in basin by region + df_sw = df_sw.groupby(["MSGREG"]).apply(lambda x: x / x.sum()) + df_sw.reset_index(inplace=True) + df_sw["Region"] = "B" + df_sw["BCU_name"].astype(str) + df_sw["Mode"] = df_sw["Region"].replace(regex=["^B"], value="M") + df_sw.drop(columns=["BCU_name"], inplace=True) + df_sw.set_index(["MSGREG", "Region", "Mode"], inplace=True) + df_sw = df_sw.stack().reset_index(level=0).reset_index() + df_sw.columns = ["region", "mode", "date", "MSGREG", "share"] + df_sw.sort_values(["region", "date", "MSGREG", "share"], inplace=True) + df_sw["year"] = pd.DatetimeIndex(df_sw["date"]).year + df_sw["time"] = "year" + df_sw = df_sw[df_sw["year"].isin(info.Y)] + df_sw.reset_index(drop=True, inplace=True) + + else: + # add water return flows for cooling tecs + # Use share of basin availability to distribute the return flow from + path3 = private_data_path( + "water", + "availability", + f"qtot_5y_m_{context.RCP}_{context.REL}_{context.regions}.csv", + ) + df_sw = pd.read_csv(path3) + + # reading sample for assiging basins + PATH = private_data_path( + "water", "delineation", f"basins_by_region_simpl_{context.regions}.csv" + ) + df_x = pd.read_csv(PATH) + + # Reading data, the data is spatially and temporally aggregated from GHMs + df_sw["BCU_name"] = df_x["BCU_name"] + + if context.type_reg == "country": + df_sw["MSGREG"] = context.map_ISO_c[context.regions] + else: + df_sw["MSGREG"] = f"{context.regions}_" + df_sw["BCU_name"].str[-3:] + + df_sw = df_sw.set_index(["MSGREG", "BCU_name"]) + df_sw.drop(columns="Unnamed: 0", inplace=True) + + # Calculating ratio of water availability in basin by region + df_sw = df_sw.groupby(["MSGREG"]).apply(lambda x: x / x.sum()) + df_sw.reset_index(inplace=True) + df_sw["Region"] = "B" + df_sw["BCU_name"].astype(str) + df_sw["Mode"] = df_sw["Region"].replace(regex=["^B"], value="M") + df_sw.drop(columns=["BCU_name"], inplace=True) + df_sw.set_index(["MSGREG", "Region", "Mode"], inplace=True) + df_sw = df_sw.stack().reset_index(level=0).reset_index() + df_sw.columns = ["node", "mode", "date", "MSGREG", "share"] + df_sw.sort_values(["node", "date", "MSGREG", "share"], inplace=True) + df_sw["year"] = pd.DatetimeIndex(df_sw["date"]).year + df_sw["time"] = pd.DatetimeIndex(df_sw["date"]).month + df_sw = df_sw[df_sw["year"].isin(info.Y)] + df_sw.reset_index(drop=True, inplace=True) + + return df_sw + + +def add_water_supply(context): + """Add Water supply infrastructure + This function links the water supply based on different settings and options. + It defines the supply linkages for freshwater, groundwater and salinewater. + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. + Values are data frames ready for :meth:`~.Scenario.add_par`. + Years in the data include the model horizon indicated by + ``context["water build info"]``, plus the additional year 2010. + """ + # define an empty dictionary + results = {} + + # Reference to the water configuration + info = context["water build info"] + # load the scenario from context + scen = context.get_scenario() + + year_wat = [2010, 2015] + fut_year = info.Y + year_wat.extend(info.Y) + sub_time = context.time + + # first activity year for all water technologies is 2020 + first_year = scen.firstmodelyear + + print(" future year = ", fut_year) + print(" year_wat = ", year_wat) + + # reading basin_delineation + FILE = f"basins_by_region_simpl_{context.regions}.csv" + PATH = private_data_path("water", "delineation", FILE) + + df_node = pd.read_csv(PATH) + # Assigning proper nomenclature + df_node["node"] = "B" + df_node["BCU_name"].astype(str) + df_node["mode"] = "M" + df_node["BCU_name"].astype(str) + if context.type_reg == "country": + df_node["region"] = context.map_ISO_c[context.regions] + else: + df_node["region"] = f"{context.regions}_" + df_node["REGION"].astype(str) + + # Storing the energy MESSAGE region names + node_region = df_node["region"].unique() + + # reading groundwater energy intensity data + FILE1 = f"gw_energy_intensity_depth_{context.regions}.csv" + PATH1 = private_data_path("water", "availability", FILE1) + df_gwt = pd.read_csv(PATH1) + if context.type_reg == "country": + df_gwt["region"] = context.map_ISO_c[context.regions] + else: + df_gwt["REGION"] = f"{context.regions}_" + df_gwt["REGION"].astype(str) + + # reading groundwater energy intensity data + FILE2 = f"historical_new_cap_gw_sw_km3_year_{context.regions}.csv" + PATH2 = private_data_path("water", "availability", FILE2) + df_hist = pd.read_csv(PATH2) + df_hist["BCU_name"] = "B" + df_hist["BCU_name"].astype(str) + + if context.nexus_set == "cooling": + # Add output df for surfacewater supply for regions + output_df = ( + make_df( + "output", + technology="extract_surfacewater", + value=1, + unit="km3", + year_vtg=year_wat, + year_act=year_wat, + level="water_supply", + commodity="freshwater", + mode="M1", + time="year", + time_dest="year", + time_origin="year", + ) + .pipe(broadcast, node_loc=node_region) + .pipe(same_node) + ) + + # Add output df for groundwater supply for regions + output_df = output_df.append( + make_df( + "output", + technology="extract_groundwater", + value=1, + unit="km3", + year_vtg=year_wat, + year_act=year_wat, + level="water_supply", + commodity="freshwater", + mode="M1", + time="year", + time_dest="year", + time_origin="year", + ) + .pipe(broadcast, node_loc=node_region) + .pipe(same_node) + ) + # Add output of saline water supply for regions + output_df = output_df.append( + make_df( + "output", + technology="extract_salinewater", + value=1, + unit="km3", + year_vtg=year_wat, + year_act=year_wat, + level="water_supply", + commodity="saline_ppl", + mode="M1", + time="year", + time_dest="year", + time_origin="year", + ) + .pipe(broadcast, node_loc=node_region) + .pipe(same_node) + ) + results["output"] = output_df + + elif context.nexus_set == "nexus": + # input data frame for slack technology balancing equality with demands + inp = ( + make_df( + "input", + technology="return_flow", + value=1, + unit="-", + level="water_avail_basin", + commodity="surfacewater_basin", + mode="M1", + year_vtg=year_wat, + year_act=year_wat, + ) + .pipe( + broadcast, + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + + # input data frame for slack technology balancing equality with demands + inp = inp.append( + make_df( + "input", + technology="gw_recharge", + value=1, + unit="-", + level="water_avail_basin", + commodity="groundwater_basin", + mode="M1", + year_vtg=year_wat, + year_act=year_wat, + ) + .pipe( + broadcast, + node_loc=df_node["node"], + time=sub_time, + ) + .pipe(same_node) + .pipe(same_time) + ) + + # input dataframe linking water supply to energy dummy technology + inp = inp.append( + make_df( + "input", + technology="basin_to_reg", + value=1, + unit="-", + level="water_supply_basin", + commodity="freshwater_basin", + mode=df_node["mode"], + node_origin=df_node["node"], + node_loc=df_node["region"], + ) + .pipe( + broadcast, + year_vtg=year_wat, + time=sub_time, + ) + .pipe(same_time) + ) + inp["year_act"] = inp["year_vtg"] + # # input data frame for slack technology balancing equality with demands + # inp = inp.append( + # make_df( + # "input", + # technology="salinewater_return", + # value=1, + # unit="-", + # level="water_avail_basin", + # commodity="salinewater_basin", + # mode="M1", + # time="year", + # time_origin="year", + # node_origin=df_node["node"], + # node_loc=df_node["node"], + # ).pipe(broadcast, year_vtg=year_wat, year_act=year_wat) + # ) + + # input data frame for freshwater supply + yv_ya_sw = map_yv_ya_lt(year_wat, 50, first_year) + + inp = inp.append( + make_df( + "input", + technology="extract_surfacewater", + value=1, + unit="-", + level="water_avail_basin", + commodity="surfacewater_basin", + mode="M1", + node_origin=df_node["node"], + node_loc=df_node["node"], + ) + .pipe( + broadcast, + yv_ya_sw, + time=sub_time, + ) + .pipe(same_time) + ) + + # input dataframe for groundwater supply + yv_ya_gw = map_yv_ya_lt(year_wat, 20, first_year) + inp = inp.append( + make_df( + "input", + technology="extract_groundwater", + value=1, + unit="-", + level="water_avail_basin", + commodity="groundwater_basin", + mode="M1", + node_origin=df_node["node"], + node_loc=df_node["node"], + ) + .pipe( + broadcast, + yv_ya_gw, + time=sub_time, + ) + .pipe(same_time) + ) + + # electricity input dataframe for extract freshwater supply + # low: 0.001141553, mid: 0.018835616, high: 0.03652968 + inp = inp.append( + make_df( + "input", + technology="extract_surfacewater", + value=0.018835616, + unit="-", + level="final", + commodity="electr", + mode="M1", + time_origin="year", + node_origin=df_node["region"], + node_loc=df_node["node"], + ).pipe( + broadcast, + yv_ya_sw, + time=sub_time, + ) + ) + + inp = inp.append( + make_df( + "input", + technology="extract_groundwater", + value=df_gwt["GW_per_km3_per_year"] + 0.043464579, + unit="-", + level="final", + commodity="electr", + mode="M1", + time_origin="year", + node_origin=df_gwt["REGION"], + node_loc=df_node["node"], + ).pipe( + broadcast, + yv_ya_gw, + time=sub_time, + ) + ) + + inp = inp.append( + make_df( + "input", + technology="extract_gw_fossil", + value=(df_gwt["GW_per_km3_per_year"] + 0.043464579) + * 2, # twice as much normal gw + unit="-", + level="final", + commodity="electr", + mode="M1", + time_origin="year", + node_origin=df_gwt["REGION"], + node_loc=df_node["node"], + ).pipe( + broadcast, + yv_ya_gw, + time=sub_time, + ) + ) + + if context.type_reg == "global": + inp.loc[ + (inp["technology"].str.contains("extract_gw_fossil")) + & (inp["year_act"] == 2020) + & (inp["node_loc"] == "R11_SAS"), + "value", + ] *= 0.5 + + results["input"] = inp + + # Add output df for freshwater supply for basins + output_df = ( + make_df( + "output", + technology="extract_surfacewater", + value=1, + unit="-", + level="water_supply_basin", + commodity="freshwater_basin", + mode="M1", + node_loc=df_node["node"], + node_dest=df_node["node"], + ) + .pipe( + broadcast, + yv_ya_sw, + time=sub_time, + ) + .pipe(same_time) + ) + # Add output df for groundwater supply for basins + output_df = output_df.append( + make_df( + "output", + technology="extract_groundwater", + value=1, + unit="-", + level="water_supply_basin", + commodity="freshwater_basin", + mode="M1", + node_loc=df_node["node"], + node_dest=df_node["node"], + ) + .pipe( + broadcast, + yv_ya_gw, + time=sub_time, + ) + .pipe(same_time) + ) + + # Add output df for groundwater supply for basins + output_df = output_df.append( + make_df( + "output", + technology="extract_gw_fossil", + value=1, + unit="-", + level="water_supply_basin", + commodity="freshwater_basin", + mode="M1", + node_loc=df_node["node"], + node_dest=df_node["node"], + time_origin="year", + ) + .pipe( + broadcast, + yv_ya_gw, + time=sub_time, + ) + .pipe(same_time) + ) + + # Add output of saline water supply for regions + output_df = output_df.append( + make_df( + "output", + technology="extract_salinewater", + value=1, + unit="km3", + year_vtg=year_wat, + year_act=year_wat, + level="saline_supply", + commodity="saline_ppl", + mode="M1", + time="year", + time_dest="year", + time_origin="year", + ) + .pipe(broadcast, node_loc=node_region) + .pipe(same_node) + ) + + hist_new_cap = make_df( + "historical_new_capacity", + node_loc=df_hist["BCU_name"], + technology="extract_surfacewater", + value=df_hist["hist_cap_sw_km3_year"] / 5, # n period + unit="km3/year", + year_vtg=2015, + ) + + hist_new_cap = hist_new_cap.append( + make_df( + "historical_new_capacity", + node_loc=df_hist["BCU_name"], + technology="extract_groundwater", + value=df_hist["hist_cap_gw_km3_year"] / 5, + unit="km3/year", + year_vtg=2015, + ) + ) + + results["historical_new_capacity"] = hist_new_cap + + # output data frame linking water supply to energy dummy technology + output_df = output_df.append( + make_df( + "output", + technology="basin_to_reg", + value=1, + unit="-", + level="water_supply", + commodity="freshwater", + time_dest="year", + node_loc=df_node["region"], + node_dest=df_node["region"], + mode=df_node["mode"], + ).pipe(broadcast, year_vtg=year_wat, time=sub_time) + ) + + output_df["year_act"] = output_df["year_vtg"] + + results["output"] = output_df + + # dummy variable cost for dummy water to energy technology + var = make_df( + "var_cost", + technology="basin_to_reg", + mode=df_node["mode"], + node_loc=df_node["region"], + value=20, + unit="-", + ).pipe(broadcast, year_vtg=year_wat, time=sub_time) + var["year_act"] = var["year_vtg"] + # # Dummy cost for extract surface ewater to prioritize water sources + # var = var.append(make_df( + # "var_cost", + # technology='extract_surfacewater', + # value= 0.0001, + # unit="USD/km3", + # mode="M1", + # time="year", + # ).pipe(broadcast, year_vtg=year_wat, year_act=year_wat, node_loc=df_node["node"] + # ) + # ) + # # Dummy cost for extract groundwater + # var = var.append(make_df( + # "var_cost", + # technology='extract_groundwater', + # value= 0.001, + # unit="USD/km3", + # mode="M1", + # time="year", + # ).pipe(broadcast, year_vtg=year_wat, year_act=year_wat, node_loc=df_node["node"]) + # ) + results["var_cost"] = var + + # load the share of sw + df_sw = map_basin_region_wat(context) + + share = make_df( + "share_mode_up", + shares="share_basin", + technology="basin_to_reg", + mode=df_sw["mode"], + node_share=df_sw["MSGREG"], + time=df_sw["time"], + value=df_sw["share"], + unit="%", + year_act=df_sw["year"], + ) + + results["share_mode_up"] = share + + tl = ( + make_df( + "technical_lifetime", + technology="extract_surfacewater", + value=50, + unit="y", + ) + .pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + .pipe(same_node) + ) + + tl = tl.append( + make_df( + "technical_lifetime", + technology="extract_groundwater", + value=20, + unit="y", + ) + .pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + .pipe(same_node) + ) + + tl = tl.append( + make_df( + "technical_lifetime", + technology="extract_gw_fossil", + value=20, + unit="y", + ) + .pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + .pipe(same_node) + ) + + results["technical_lifetime"] = tl + + # Prepare dataframe for investments + inv_cost = make_df( + "inv_cost", + technology="extract_surfacewater", + value=155.57, + unit="USD/km3", + ).pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + + inv_cost = inv_cost.append( + make_df( + "inv_cost", + technology="extract_groundwater", + value=54.52, + unit="USD/km3", + ).pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + ) + + inv_cost = inv_cost.append( + make_df( + "inv_cost", + technology="extract_gw_fossil", + value=54.52 * 150, # assume higher as normal GW + unit="USD/km3", + ).pipe(broadcast, year_vtg=year_wat, node_loc=df_node["node"]) + ) + + results["inv_cost"] = inv_cost + + fix_cost = make_df( + "fix_cost", + technology="extract_gw_fossil", + value=300, # assumed + unit="USD/km3", + ).pipe(broadcast, yv_ya_gw, node_loc=df_node["node"]) + + results["fix_cost"] = fix_cost + + return results + + +def add_e_flow(context): + """Add environmental flows + This function bounds the available water and allocates the environmental + flows.Environmental flow bounds are calculated using Variable Monthly Flow + (VMF) method. The VMF method is applied to wet and dry seasonal runoff + values. These wet and dry seasonal values are then aggregated to annual + values.Environmental flows in the model will be incorporated as bounds on + 'return_flow' technology. The lower bound on this technology will ensure + that certain amount of water remain + Parameters + ---------- + context : .Context + Returns + ------- + data : dict of (str -> pandas.DataFrame) + Keys are MESSAGE parameter names such as 'input', 'fix_cost'. + Values are data frames ready for :meth:`~.Scenario.add_par`. + Years in the data include the model horizon indicated by + ``context["water build info"]``, plus the additional year 2010. + """ + # define an empty dictionary + results = {} + + info = context["water build info"] + + # Adding freshwater supply constraints + # Reading data, the data is spatially and temprally aggregated from GHMs + df_sw, df_gw = read_water_availability(context) + + # reading sample for assiging basins + PATH = private_data_path( + "water", "delineation", f"basins_by_region_simpl_{context.regions}.csv" + ) + df_x = pd.read_csv(PATH) + + dmd_df = make_df( + "demand", + node="B" + df_sw["Region"].astype(str), + commodity="surfacewater_basin", + level="water_avail_basin", + year=df_sw["year"], + time=df_sw["time"], + value=df_sw["value"], + unit="km3/year", + ) + dmd_df = dmd_df[dmd_df["year"] >= 2025].reset_index(drop=True) + dmd_df["value"] = dmd_df["value"].apply(lambda x: x if x >= 0 else 0) + + if "year" in context.time: + # Reading data, the data is spatially and temporally aggregated from GHMs + path1 = private_data_path( + "water", + "availability", + f"e-flow_{context.RCP}_{context.regions}.csv", + ) + df_env = pd.read_csv(path1) + df_env.drop(["Unnamed: 0"], axis=1, inplace=True) + df_env.index = df_x["BCU_name"] + df_env = df_env.stack().reset_index() + df_env.columns = ["Region", "years", "value"] + df_env.sort_values(["Region", "years", "value"], inplace=True) + df_env.fillna(0, inplace=True) + df_env.reset_index(drop=True, inplace=True) + df_env["year"] = pd.DatetimeIndex(df_env["years"]).year + df_env["time"] = "year" + df_env2210 = df_env[df_env["year"] == 2100] + df_env2210["year"] = 2110 + df_env = pd.concat([df_env, df_env2210]) + df_env = df_env[df_env["year"].isin(info.Y)] + else: + # Reading data, the data is spatially and temporally aggregated from GHMs + path1 = private_data_path( + "water", + "availability", + f"e-flow_5y_m_{context.RCP}_{context.regions}.csv", + ) + df_env = pd.read_csv(path1) + df_env.drop(["Unnamed: 0"], axis=1, inplace=True) + new_cols = pd.to_datetime(df_env.columns, format="%Y/%m/%d") + df_env.columns = new_cols + df_env.index = df_x["BCU_name"] + df_env = df_env.stack().reset_index() + df_env.columns = ["Region", "years", "value"] + df_env.sort_values(["Region", "years", "value"], inplace=True) + df_env.fillna(0, inplace=True) + df_env.reset_index(drop=True, inplace=True) + df_env["year"] = pd.DatetimeIndex(df_env["years"]).year + df_env["time"] = pd.DatetimeIndex(df_env["years"]).month + df_env2210 = df_env[df_env["year"] == 2100] + df_env2210["year"] = 2110 + df_env = pd.concat([df_env, df_env2210]) + df_env = df_env[df_env["year"].isin(info.Y)] + + # Return a processed dataframe for env flow calculations + if context.SDG: + # dataframe to put constraints on env flows + eflow_df = make_df( + "bound_activity_lo", + node_loc="B" + df_env["Region"], + technology="return_flow", + year_act=df_env["year"], + mode="M1", + time=df_env["time"], + value=df_env["value"], + unit="km3/year", + ) + + eflow_df["value"] = eflow_df["value"].apply(lambda x: x if x >= 0 else 0) + eflow_df = eflow_df[eflow_df["year_act"] >= 2025].reset_index(drop=True) + + dmd_df.sort_values(by=["node", "year"], inplace=True) + dmd_df.reset_index(drop=True, inplace=True) + eflow_df.sort_values(by=["node_loc", "year_act"], inplace=True) + eflow_df.reset_index(drop=True, inplace=True) + + eflow_df["value"] = np.where( + eflow_df["value"] >= 0.7 * dmd_df["value"], + 0.7 * dmd_df["value"], + eflow_df["value"], + ) + + results["bound_activity_lo"] = eflow_df + + return results diff --git a/nest/message_ix_models/model/water/doc/files.rst b/nest/message_ix_models/model/water/doc/files.rst new file mode 100644 index 0000000..b4b45de --- /dev/null +++ b/nest/message_ix_models/model/water/doc/files.rst @@ -0,0 +1,23 @@ +Data and Configuration files +**************************** + + +Technology (:file:`water/technology.yaml`) +========================================== + +.. literalinclude:: ../../../../data/water/technology.yaml + :language: yaml + + +Other sets (:file:`water/set.yaml`) +=================================== + +.. literalinclude:: ../../../../data/water/set.yaml + :language: yaml + +Configuration (:file:`water/config.yaml`) +============================================= + +.. literalinclude:: ../../../../data/water/config.yaml + :language: yaml + diff --git a/nest/message_ix_models/model/water/doc/index.rst b/nest/message_ix_models/model/water/doc/index.rst new file mode 100644 index 0000000..6edd370 --- /dev/null +++ b/nest/message_ix_models/model/water/doc/index.rst @@ -0,0 +1,167 @@ +MESSAGEix-Nexus (:mod:`~messag_data.model.water`) +************************************************* + +.. warning:: + + MESSAGEix-Nexus is **under development**. + + For details, see the + `water `_ label, + `project board `_, and + `current tracking issue (#246) `_. + + +:mod:`message_data.model.water` adds water usage and demand related representation to the MESSAGEix-GLOBIOM global model. +The resulting model is referred to as **“MESSAGEix-Nexus”**. This work extends the water sector linkage described by Parkinson et al. (2019) :cite:`parkinson2019`. + +.. contents:: + :local: + +CLI usage +========= + +Use the :doc:`CLI ` command ``mix-data water`` to invoke the commands defined in :mod:`.water.cli`. Example: +``mix-models --url=ixmp://ixmp_dev/ENGAGE_SSP2_v4.1.7/baseline_clone_test water cooling`` +model and scenario specifications can be either set manually in ``cli.py`` or specificed in the ``--url`` option + +.. code:: + + Usage: mix-models water [OPTIONS] COMMAND [ARGS]... + + Options: + --regions [ISR|R11|R12|R14|R32|RCP|ZMB] + Code list to use for 'node' dimension. + --help Show this message and exit. + + Commands: + cooling Build and solve model with new cooling technologies. + nexus Add basin structure connected to the energy sector and water... + report function to run the water report_full from cli to the scenario... + +Country vs Global implementation +-------------------------------- + +The :mod:`message_data.model.water` is designed to being able to add water components to either a global R11 (or R12) model or any country model designed with `the MESSAGEix single country `_ model prototype. +For any of the region configuration a shapefile is needed to run the pre-processing part, while, once the data is prepared, only a .csv file similar to those in `message_data.data.water.delineation` is needed. + +To work with a country model please ensure that: + +1. country model and scenario are specified either in ``--url`` or in the ``cli.py`` script +2. the option ``--regions`` is used with the ISO3 code of the country (e.g. for Israel ``--regions=ISR``) +3. Following the Israel example add a 'country'.yaml file in `message_ix_models.data.node` for the specific country +4. Following the Israel example add the country ISO3 code in the 'regions' options in `message_ix_models.utils.click` + +Annual vs Sub-anunal implementation +----------------------------------- + +if a sub-annual timestep is defined (e.g. seasons or months), the water module will automatically generate the water system with seasonality, using the `time` set components that is not `year` (assuming that the data has been prepared accordingly). + +In the case you want to add seasonality in the water sector to a model with only annual timesteps, the best way is to pre-define the required sets (e.g. `time` and `map_time`). Then, runing the water nexus module will automatically build the sub-annual water module. + +In the case there are already multiple sub-annual time-steps levels already defined and not all are relevant to the water module, the components of the set `time` that are of interest for the water module should be manually added as a cli option (e.g. `--time=year` or `--time=[1,2]`) + +Code reference +============== + +.. currentmodule:: message_data.model.water + +.. automodule:: message_data.model.water + :members: + +Build and run +------------- +.. automodule:: message_data.model.water.build + :members: + + +Data preparation +---------------- + +.. automodule:: message_data.model.water.data + :members: + +.. automodule:: message_data.model.water.data.water_for_ppl + :members: + +.. automodule:: message_data.model.water.data.demands + :members: + +.. automodule:: message_data.model.water.data.infrastructure + :members: + +.. automodule:: message_data.model.water.data.water_supply + :members: + +.. automodule:: message_data.model.water.data.irrigation + :members: + + +Utilities and CLI +----------------- + +.. automodule:: message_data.model.water.utils + :members: + :exclude-members: read_config + +.. automodule:: message_data.model.water.cli + :members: + +Reporting +--------- + +.. warning:: + + The current reporting features only work for the global model + +.. automodule:: message_data.model.water.reporting + :members: + + + +Data, metadata, and config files +================================ + +See also: :doc:`water/files`. + +- :file:`data/water/`: contains input data used for building the Nexus module + + - :file:`delineation/`: contains geospatial files for basin mapping and MESSAGE regions. These spatial files are created through intersecting HydroSHEDS basin and the MESSAGE region shapefile. The scripts and processing data at 'P:\ene.model\NEST\delineation' + - :file:`ppl_cooling_tech/`: contains cooling technology shares, costs and water intensities for different regional definitions + - :file:`water_demands/`: contains water sectoral demands, connection rates for basins + - :file:`water_dist/`: contains water infrastructure (distribution, treatment mapping) and historical and projected capacities of desalination technologies + - :file:`technology.yaml`: metadata for the 'technology' dimension. + - :file:`set.yaml`: metadata for other sets. + +Pre-processing +============== +- :file:`data/water/`: contains scripts used in pre-processing source data for the water sector implementation + + + - :file:`calculate_ppl_cooling_technology_shares.r`: contains script for processing cooling technology shares at global level for different regional specifications. + - :file:`groundwater_harmonize.r`: contains workflow to calculate historical capcity of renewable groundwater, table depth and energy consumption + - :file:`generate_water_constraints.r`: contains function to calculate municipal, manufactury, rural water demands, water access and sanitation rates + - :file:`desalination.r`: contains script for assessing the historical and possible future desalination capacity of a region or country + - :file:`hydro_agg_temp1.py`: contains workflow for processing the hydrological data in NC4 and adjust the unit conversions, daily to monthly aggregation. + - :file:`hydro_agg_spatial.R`: contains workflow for spatially aggregating monthly hydrological data onto basin using appropriate raster masking onto shapefiles + - :file:`hydro_agg_temp2.py`: contains workflow for aggregating monthly data to 5 yearly averages using appropriate statistical methods (quantiles, averages etc.). It also caculates e flows based on Variable MF method. + - :file:`shp_to_raster.py`: converts shapefile to raster + + + +Deprecated R Code +================= + +- :file:`data/water/deprecated`: contains `R` scripts from the older water sector implementation + + - :file:`Figures.R`: R script for producing figures + - :file:`cooling_tech_av.R`: contains similar code as in the above-mentioned scripts, but this was originated from another workstream + - :file:`add_water_infrastructure.R`: contains spatially-explicit analysis of gridded demands and socioeconomic indicators to develop pathways for sectoral water withdrawals, return flows and infrastructure penetration rates in each MESSAGE region. The pathways feature branching points reflecting a specific water sector development narrative (e.g., convergence towards achieving specific SDG targets). + + +Reference +========= + +.. toctree:: + :maxdepth: 2 + + water/files diff --git a/nest/message_ix_models/model/water/reporting.py b/nest/message_ix_models/model/water/reporting.py new file mode 100644 index 0000000..afe2d80 --- /dev/null +++ b/nest/message_ix_models/model/water/reporting.py @@ -0,0 +1,1174 @@ +import logging + +import numpy as np +import pandas as pd +import pyam +from message_ix.reporting import Reporter + +from message_ix_models.util import private_data_path + +try: + from message_data.tools.post_processing.iamc_report_hackathon import ( + report as old_reporting, + ) +except ImportError: # message_data not installed + old_reporting = None + +log = logging.getLogger(__name__) + + +def run_old_reporting(sc=False): + mp2 = sc.platform + + log.info( + f" Start reporting of the global energy system (old reporting scheme)" + f"for the scenario {sc.model}.{sc.scenario}" + ) + old_reporting( + mp=mp2, + scen=sc, + merge_hist=True, + merge_ts=False, + ) + + +def reg_index(region): + temp = [] + for i, c in enumerate(region): + if c == "|": + temp.append(i) + return temp + + +def remove_duplicate(data): + final_list = [] + indexes = data[data["Variable"].str.contains("basin_to_reg")].index + for i in data["Region"].index: + strr = data["Region"][i] + oprlist = reg_index(strr) + if i in indexes: + if len(oprlist) > 1: + final_list.append(strr[oprlist[0] + 1 :]) + elif len(oprlist) == 1 and oprlist[0] > 6: + final_list.append(strr[: oprlist[0]]) + else: + final_list.append(strr) + else: + if len(oprlist) > 1: + final_list.append(strr[: oprlist[1]]) + elif len(oprlist) == 1 and oprlist[0] > 6: + final_list.append(strr[: oprlist[0]]) + else: + final_list.append(strr) + return final_list + + +def report(sc=False, sdgs=False): + """Report nexus module results""" + + # Generating reporter + rep = Reporter.from_scenario(sc) + report = rep.get("message::default") + # Create a timeseries dataframe + report_df = report.timeseries() + report_df.reset_index(inplace=True) + report_df.columns = report_df.columns.astype(str) + report_df.columns = report_df.columns.str.title() + + # Removing duplicate region names + report_df["Region"] = remove_duplicate(report_df) + + # Adding Water availability as resource in demands + # This is not automatically reported using message:default + rep_dm = rep + rep_dm.set_filters(l="water_avail_basin") + + def collapse_callback(df): + """Callback function to populate the IAMC 'variable' column.""" + df["variable"] = "Water Resource|" + df["c"] + return df.drop(["c"], axis=1) + + # Mapping from dimension IDs to column names + rename = dict(n="region", y="year") + + key = rep_dm.convert_pyam("demand", rename=rename, collapse=collapse_callback) + # Making a dataframe for demands + df_dmd = rep.get(key).as_pandas() + df_dmd["value"] = df_dmd["value"].abs() + df_dmd["variable"].replace( + "Water Resource|groundwater_basin", "Water Resource|Groundwater", inplace=True + ) + df_dmd["variable"].replace( + "Water Resource|surfacewater_basin", + "Water Resource|Surface Water", + inplace=True, + ) + df_dmd = df_dmd.drop(columns=["exclude"]) + df_dmd["unit"] = "km3" + df_dmd1 = pyam.IamDataFrame(df_dmd).timeseries() + + # Convert to pyam dataframe + report_iam = pyam.IamDataFrame(report_df) + # Merge both dataframes in pyam + report_iam = report_iam.append(df_dmd1) + + # mapping model outputs for aggregation + urban_infrastructure = [ + "CAP_NEW|new capacity|rural_recycle", + "CAP_NEW|new capacity|rural_sewerage", + "CAP_NEW|new capacity|rural_t_d", + "CAP_NEW|new capacity|rural_treatment", + "CAP_NEW|new capacity|rural_unconnected", + "CAP_NEW|new capacity|rural_untreated", + ] + + rural_infrastructure = [ + "CAP_NEW|new capacity|rural_recycle", + "CAP_NEW|new capacity|rural_sewerage", + "CAP_NEW|new capacity|rural_t_d", + "CAP_NEW|new capacity|rural_treatment", + "CAP_NEW|new capacity|rural_unconnected", + "CAP_NEW|new capacity|rural_untreated", + ] + + urban_treatment_recycling = [ + "CAP_NEW|new capacity|urban_recycle", + "CAP_NEW|new capacity|urban_sewerage", + "CAP_NEW|new capacity|urban_treatment", + ] + + rural_treatment_recycling = [ + "CAP_NEW|new capacity|rural_recycle", + "CAP_NEW|new capacity|rural_sewerage", + "CAP_NEW|new capacity|rural_treatment", + ] + + rural_dist = ["CAP_NEW|new capacity|rural_t_d"] + urban_dist = ["CAP_NEW|new capacity|urban_t_d"] + + rural_unconnected = [ + "CAP_NEW|new capacity|rural_unconnected", + "CAP_NEW|new capacity|rural_untreated", + ] + + urban_unconnected = [ + "CAP_NEW|new capacity|urban_unconnected", + "CAP_NEW|new capacity|urban_untreated", + ] + + industry_unconnected = [ + "CAP_NEW|new capacity|industry_unconnected", + "CAP_NEW|new capacity|industry_untreated", + ] + + extrt_sw_cap = ["CAP_NEW|new capacity|extract_surfacewater"] + extrt_gw_cap = ["CAP_NEW|new capacity|extract_groundwater"] + extrt_fgw_cap = ["CAP_NEW|new capacity|extract_gw_fossil"] + + extrt_sw_inv = ["inv cost|extract_surfacewater"] + extrt_gw_inv = ["inv cost|extract_groundwater"] + # Calculating fossil groundwater invwatments + # 163.56 million USD/km3 x 2 times the reneewable gw costs + + report_iam = report_iam.append( + report_iam.multiply( + "CAP_NEW|new capacity|extract_gw_fossil", + 163.56, + "Fossil GW inv", + ignore_units=True, + ) + ) + extrt_fgw_inv = report_iam.filter(variable="Fossil GW inv").variable + + rural_infrastructure_inv = [ + "inv cost|rural_recycle", + "inv cost|rural_sewerage", + "inv cost|rural_t_d", + "inv cost|rural_treatment", + "inv cost|rural_unconnected", + "inv cost|rural_untreated", + ] + + urban_infrastructure_inv = [ + "inv cost|urban_recycle", + "inv cost|urban_sewerage", + "inv cost|urban_t_d", + "inv cost|urban_treatment", + "inv cost|urban_unconnected", + "inv cost|urban_untreated", + ] + + urban_treatment_recycling_inv = [ + "inv cost|urban_recycle", + "inv cost|urban_sewerage", + "inv cost|urban_treatment", + ] + + rural_treatment_recycling_inv = [ + "inv cost|rural_recycle", + "inv cost|rural_sewerage", + "inv cost|rural_treatment", + ] + + rural_dist_inv = ["inv cost|rural_t_d"] + urban_dist_inv = ["inv cost|urban_t_d"] + + rural_unconnected_inv = [ + "inv cost|rural_unconnected", + "inv cost|rural_untreated", + ] + + urban_unconnected_inv = [ + "inv cost|urban_unconnected", + "inv cost|urban_untreated", + ] + + industry_unconnected_inv = [ + "inv cost|industry_unconnected", + "inv cost|industry_untreated", + ] + + saline_inv = [ + "inv cost|membrane", + "inv cost|distillation", + ] + saline_totalom = [ + "total om cost|membrane", + "total om cost|distillation", + ] + + extrt_fgw_om = ["total om cost|extract_gw_fossil"] + + urban_infrastructure_totalom = [ + "total om cost|urban_recycle", + "total om cost|urban_sewerage", + "total om cost|urban_t_d", + "total om cost|urban_treatment", + "total om cost|urban_unconnected", + "total om cost|urban_untreated", + ] + + rural_infrastructure_totalom = [ + "total om cost|rural_recycle", + "total om cost|rural_sewerage", + "total om cost|rural_t_d", + "total om cost|rural_treatment", + "total om cost|rural_unconnected", + "total om cost|rural_untreated", + ] + + rural_treatment_recycling_totalom = [ + "total om cost|rural_recycle", + "total om cost|rural_sewerage", + "total om cost|rural_treatment", + ] + + urban_treatment_recycling_totalom = [ + "total om cost|urban_recycle", + "total om cost|urban_sewerage", + "total om cost|urban_treatment", + ] + + rural_dist_totalom = ["total om cost|rural_t_d"] + urban_dist_totalom = ["total om cost|urban_t_d"] + + rural_unconnected_totalom = [ + "total om cost|rural_unconnected", + "total om cost|rural_untreated", + ] + + urban_unconnected_totalom = [ + "total om cost|urban_unconnected", + "total om cost|urban_untreated", + ] + + industry_unconnected_totalom = [ + "total om cost|industry_unconnected", + "total om cost|industry_untreated", + ] + + extract_sw = ["in|water_avail_basin|surfacewater_basin|extract_surfacewater|M1"] + + extract_gw = ["in|water_avail_basin|groundwater_basin|extract_groundwater|M1"] + extract_fgw = ["out|water_supply_basin|freshwater_basin|extract_gw_fossil|M1"] + + desal_membrane = ["out|water_supply_basin|freshwater_basin|membrane|M1"] + desal_distill = ["out|water_supply_basin|freshwater_basin|distillation|M1"] + env_flow = ["in|water_avail_basin|surfacewater_basin|return_flow|M1"] + gw_recharge = ["in|water_avail_basin|groundwater_basin|gw_recharge|M1"] + + rural_mwdem_unconnected = ["out|final|rural_disconnected|rural_unconnected|M1"] + rural_mwdem_unconnected_eff = ["out|final|rural_disconnected|rural_unconnected|Mf"] + rural_mwdem_connected = ["out|final|rural_mw|rural_t_d|M1"] + rural_mwdem_connected_eff = ["out|final|rural_mw|rural_t_d|Mf"] + urban_mwdem_unconnected = ["out|final|urban_disconnected|urban_unconnected|M1"] + urban_mwdem_unconnected_eff = ["out|final|urban_disconnected|urban_unconnected|Mf"] + urban_mwdem_connected = ["out|final|urban_mw|urban_t_d|M1"] + urban_mwdem_connected_eff = ["out|final|urban_mw|urban_t_d|Mf"] + industry_mwdem_unconnected = ["out|final|industry_mw|industry_unconnected|M1"] + + electr_gw = ["in|final|electr|extract_groundwater|M1"] + electr_fgw = ["in|final|electr|extract_gw_fossil|M1"] + electr_sw = ["in|final|electr|extract_surfacewater|M1"] + extract_saline_region = ["out|saline_supply|saline_ppl|extract_salinewater|M1"] + extract_saline_basin = [ + "out|water_avail_basin|salinewater_basin|extract_salinewater_basin|M1" + ] + electr_rural_trt = ["in|final|electr|rural_sewerage|M1"] + electr_urban_trt = ["in|final|electr|urban_sewerage|M1"] + electr_urban_recycle = ["in|final|electr|urban_recycle|M1"] + electr_rural_recycle = ["in|final|electr|rural_recycle|M1"] + electr_saline = [ + "in|final|electr|distillation|M1", + "in|final|electr|distillation|M1", + ] + + electr_urban_t_d = ["in|final|electr|urban_t_d|M1"] + electr_urban_t_d_eff = ["in|final|electr|urban_t_d|Mf"] + electr_rural_t_d = ["in|final|electr|rural_t_d|M1"] + electr_rural_t_d_eff = ["in|final|electr|rural_t_d|Mf"] + + electr_irr = [ + "in|final|electr|irrigation_cereal|M1", + "in|final|electr|irrigation_oilcrops|M1", + "in|final|electr|irrigation_sugarcrops|M1", + ] + + urban_collctd_wstwtr = ["in|final|urban_collected_wst|urban_sewerage|M1"] + rural_collctd_wstwtr = ["in|final|rural_collected_wst|rural_sewerage|M1"] + + urban_treated_wstwtr = ["in|water_treat|urban_collected_wst|urban_recycle|M1"] + rural_treated_wstwtr = ["in|water_treat|rural_collected_wst|rural_recycle|M1"] + + urban_wstwtr_recycle = ["out|water_supply_basin|freshwater_basin|urban_recycle|M1"] + rural_wstwtr_recycle = ["out|water_supply_basin|freshwater_basin|rural_recycle|M1"] + + urban_transfer = ["in|water_supply_basin|freshwater_basin|urban_t_d|M1"] + urban_transfer_eff = ["in|water_supply_basin|freshwater_basin|urban_t_d|Mf"] + rural_transfer = ["in|water_supply_basin|freshwater_basin|rural_t_d|M1"] + rural_transfer_eff = ["in|water_supply_basin|freshwater_basin|rural_t_d|Mf"] + + # irr_water = ["out|water_irr|freshwater|irrigation|M1"] + + irr_c = ["in|water_supply|freshwater|irrigation_cereal|M1"] + irr_o = ["in|water_supply|freshwater|irrigation_oilcrops|M1"] + irr_s = ["in|water_supply|freshwater|irrigation_sugarcrops|M1"] + + region_withdr = report_iam.filter( + variable="in|water_supply_basin|freshwater_basin|basin_to_reg|*" + ).variable + + cooling_saline_inv = report_iam.filter(variable="inv cost|*saline").variable + cooling_air_inv = report_iam.filter(variable="inv cost|*air").variable + cooling_ot_fresh = report_iam.filter(variable="inv cost|*ot_fresh").variable + cooling_cl_fresh = report_iam.filter(variable="inv cost|*cl_fresh").variable + + elec_hydro_var = report_iam.filter(variable="out|secondary|electr|hydro*").variable + + for var in elec_hydro_var: + if "hydro_1" in var or "hydro_hc" in var: + report_iam = report_iam.append( + # Multiply electricity output of hydro to get withdrawals + # this is an ex-post model calculation and the values are taken from + # data/water/ppl_cooling_tech/tech_water_performance_ssp_msg.csv + # for hydr_n water_withdrawal_mid_m3_per output is converted by + # multiplying with 60 * 60* 24 * 365 * 1e-9 to convert it + # into km3/output + report_iam.multiply( + f"{var}", 0.161, f"Water Withdrawal|Electricity|Hydro|{var[21:28]}" + ) + ) + else: + report_iam = report_iam.append( + report_iam.multiply( + f"{var}", 0.323, f"Water Withdrawal|Electricity|Hydro|{var[21:28]}" + ) + ) + + water_hydro_var = report_iam.filter( + variable="Water Withdrawal|Electricity|Hydro|*" + ).variable + + # mapping for aggregation + map_agg_pd = pd.DataFrame( + [ + ["Water Extraction", extract_gw + extract_fgw + extract_sw, "km3/yr"], + ["Water Extraction|Groundwater", extract_gw, "km3/yr"], + ["Water Extraction|Brackish Water", extract_fgw, "km3/yr"], + ["Water Extraction|Surface Water", extract_sw, "km3/yr"], + [ + "Water Extraction|Seawater", + extract_saline_basin + extract_saline_region, + "km3/yr", + ], + ["Water Extraction|Seawater|Desalination", extract_saline_basin, "km3/yr"], + ["Water Extraction|Seawater|Cooling", extract_saline_region, "km3/yr"], + ["Water Desalination", desal_membrane + desal_distill, "km3/yr"], + ["Water Desalination|Membrane", desal_membrane, "km3/yr"], + ["Water Desalination|Distillation", desal_distill, "km3/yr"], + [ + "Water Transfer", + urban_transfer + + rural_transfer + + urban_transfer_eff + + rural_transfer_eff, + "km3/yr", + ], + ["Water Transfer|Urban", urban_transfer + urban_transfer_eff, "km3/yr"], + ["Water Transfer|Rural", rural_transfer + rural_transfer_eff, "km3/yr"], + [ + "Water Withdrawal", + region_withdr + + rural_mwdem_unconnected + + rural_mwdem_unconnected_eff + + rural_mwdem_connected + + rural_mwdem_connected_eff + + urban_mwdem_connected + + urban_mwdem_connected_eff + + urban_mwdem_unconnected + + urban_mwdem_unconnected_eff + + industry_mwdem_unconnected, + "km3/yr", + ], + ["Water Withdrawal|Energy techs & Irrigation", region_withdr, "km3/yr"], + # ["Water Withdrawal|Irrigation", irr_c + irr_o + irr_s, "km3/yr"], + ["Water Withdrawal|Irrigation|Cereal", irr_c, "km3/yr"], + ["Water Withdrawal|Irrigation|Oil Crops", irr_o, "km3/yr"], + ["Water Withdrawal|Irrigation|Sugar Crops", irr_s, "km3/yr"], + ["Water Withdrawal|Electricity|Hydro", water_hydro_var, "km3/yr"], + [ + "Capacity Additions|Infrastructure|Water", + rural_infrastructure + + urban_infrastructure + + urban_treatment_recycling + + rural_treatment_recycling + + urban_dist + + rural_dist + + rural_unconnected + + urban_unconnected + + industry_unconnected, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Extraction", + extrt_sw_cap + extrt_gw_cap + extrt_fgw_cap, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Extraction|Surface Water", + extrt_sw_cap, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Extraction|Groundwater", + extrt_gw_cap + extrt_fgw_cap, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Extraction|Groundwater|Renewable", + extrt_gw_cap, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Extraction|Groundwater|Fossil", + extrt_fgw_cap, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Rural", + rural_infrastructure, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Urban", + urban_infrastructure, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Industrial", + industry_unconnected, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Treatment & Recycling|Urban", + urban_treatment_recycling, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Treatment & Recycling|Rural", + rural_treatment_recycling, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Distribution|Rural", + rural_dist, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Distribution|Urban", + urban_dist, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Unconnected|Rural", + rural_unconnected, + "km3/yr", + ], + [ + "Capacity Additions|Infrastructure|Water|Unconnected|Urban", + urban_unconnected, + "km3/yr", + ], + ["Freshwater|Environmental Flow", env_flow, "km3/yr"], + ["Groundwater Recharge", gw_recharge, "km3/yr"], + [ + "Water Withdrawal|Municipal Water", + rural_mwdem_unconnected + + rural_mwdem_unconnected_eff + + rural_mwdem_connected + + rural_mwdem_connected_eff + + urban_mwdem_unconnected + + urban_mwdem_unconnected_eff + + urban_mwdem_connected + + urban_mwdem_connected_eff, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Unconnected|Rural", + rural_mwdem_unconnected, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Unconnected|Rural Eff", + rural_mwdem_unconnected_eff, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Connected|Rural", + rural_mwdem_connected, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Connected|Rural Eff", + rural_mwdem_connected_eff, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Unconnected|Urban", + urban_mwdem_unconnected, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Unconnected|Urban Eff", + urban_mwdem_unconnected_eff, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Connected|Urban", + urban_mwdem_connected, + "km3/yr", + ], + [ + "Water Withdrawal|Municipal Water|Connected|Urban Eff", + urban_mwdem_connected_eff, + "km3/yr", + ], + [ + "Water Withdrawal|Industrial Water|Unconnected", + industry_mwdem_unconnected, + "km3/yr", + ], + # ["Water Withdrawal|Irrigation", irr_water, "km3/yr"], + [ + "Final Energy|Commercial", + electr_saline + + electr_gw + + electr_fgw + + electr_sw + + electr_rural_trt + + electr_urban_trt + + electr_urban_recycle + + electr_rural_recycle + + electr_urban_t_d + + electr_urban_t_d_eff + + electr_rural_t_d + + electr_rural_t_d_eff + + electr_irr, + "GWa", + ], + [ + "Final Energy|Commercial|Water", + electr_saline + + electr_gw + + electr_fgw + + electr_sw + + electr_rural_trt + + electr_urban_trt + + electr_urban_recycle + + electr_rural_recycle + + electr_urban_t_d + + electr_urban_t_d_eff + + electr_rural_t_d + + electr_rural_t_d_eff + + electr_irr, + "GWa", + ], + ["Final Energy|Commercial|Water|Desalination", electr_saline, "GWa"], + [ + "Final Energy|Commercial|Water|Groundwater Extraction", + electr_gw + electr_fgw, + "GWa", + ], + [ + "Final Energy|Commercial|Water|Surface Water Extraction", + electr_sw, + "GWa", + ], + ["Final Energy|Commercial|Water|Irrigation", electr_irr, "GWa"], + ["Final Energy|Commercial|Water|Treatment", electr_rural_trt, "GWa"], + [ + "Final Energy|Commercial|Water|Treatment|Rural", + electr_urban_trt + electr_rural_trt, + "GWa", + ], + ["Final Energy|Commercial|Water|Treatment|Urban", electr_urban_trt, "GWa"], + ["Final Energy|Commercial|Water|Reuse", electr_urban_recycle, "GWa"], + [ + "Final Energy|Commercial|Water|Transfer", + electr_urban_t_d + + electr_urban_t_d_eff + + electr_rural_t_d + + electr_rural_t_d_eff, + "GWa", + ], + [ + "Final Energy|Commercial|Water|Transfer|Urban", + electr_urban_t_d + electr_urban_t_d_eff, + "GWa", + ], + [ + "Final Energy|Commercial|Water|Transfer|Rural", + electr_rural_t_d + electr_urban_t_d_eff, + "GWa", + ], + [ + "Water Waste|Collected", + urban_collctd_wstwtr + rural_collctd_wstwtr, + "km3/yr", + ], + ["Water Waste|Collected|Urban", urban_collctd_wstwtr, "km3/yr"], + ["Water Waste|Collected|Rural", rural_collctd_wstwtr, "km3/yr"], + [ + "Water Waste|Treated", + urban_treated_wstwtr + rural_treated_wstwtr, + "km3/yr", + ], + ["Water Waste|Treated|Urban", urban_treated_wstwtr, "km3/yr"], + ["Water Waste|Treated|Rural", rural_treated_wstwtr, "km3/yr"], + [ + "Water Waste|Reuse", + urban_wstwtr_recycle + rural_wstwtr_recycle, + "km3/yr", + ], + ["Water Waste|Reuse|Urban", urban_wstwtr_recycle, "km3/yr"], + ["Water Waste|Reuse|Rural", rural_wstwtr_recycle, "km3/yr"], + [ + "Investment|Infrastructure|Water", + rural_infrastructure_inv + + urban_infrastructure_inv + + extrt_sw_inv + + extrt_gw_inv + + extrt_fgw_inv + + saline_inv + + cooling_ot_fresh + + cooling_cl_fresh + + cooling_saline_inv + + cooling_air_inv, + +industry_unconnected_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Extraction", + extrt_sw_inv + extrt_gw_inv + extrt_fgw_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Other", + extrt_sw_inv + extrt_gw_inv + extrt_fgw_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Extraction|Surface", + extrt_sw_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Extraction|Groundwater", + extrt_gw_inv + extrt_fgw_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Extraction|Groundwater|Fossil", + extrt_fgw_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Extraction|Groundwater|Renewable", + extrt_gw_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Desalination", + saline_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Cooling", + cooling_ot_fresh + + cooling_cl_fresh + + cooling_saline_inv + + cooling_air_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Cooling|Once through freshwater", + cooling_ot_fresh, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Cooling|Closed loop freshwater", + cooling_cl_fresh, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Cooling|Once through saline", + cooling_saline_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Cooling|Air cooled", + cooling_air_inv, + "million US$2010/yr", + ], + # [ + # "Investment|Infrastructure|Water", + # rural_infrastructure_inv + urban_infrastructure_inv, + # "million US$2010/yr", + # ], + [ + "Investment|Infrastructure|Water|Rural", + rural_infrastructure_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Urban", + urban_infrastructure_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Industrial", + industry_unconnected_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Treatment & Recycling", + urban_treatment_recycling_inv + rural_treatment_recycling_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Treatment & Recycling|Urban", + urban_treatment_recycling_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Treatment & Recycling|Rural", + rural_treatment_recycling_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Distribution", + rural_dist_inv + urban_dist_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Distribution|Rural", + rural_dist_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Distribution|Urban", + urban_dist_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Unconnected", + rural_unconnected_inv + + urban_unconnected_inv + + industry_unconnected_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Unconnected|Rural", + rural_unconnected_inv, + "million US$2010/yr", + ], + [ + "Investment|Infrastructure|Water|Unconnected|Urban", + urban_unconnected_inv, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Desalination", + saline_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Extraction", + extrt_fgw_om, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Rural", + rural_infrastructure_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Urban", + urban_infrastructure_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Treatment & Recycling", + urban_treatment_recycling_totalom + rural_treatment_recycling_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Treatment & Recycling|Urban", + urban_treatment_recycling_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Treatment & Recycling|Rural", + rural_treatment_recycling_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water| Distribution", + rural_dist_totalom + rural_dist_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Distribution|Rural", + rural_dist_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Distribution|Urban", + urban_dist_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Unconnected", + rural_unconnected_totalom + + urban_unconnected_totalom + + industry_unconnected_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Unconnected|Rural", + rural_unconnected_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Unconnected|Urban", + urban_unconnected_totalom, + "million US$2010/yr", + ], + [ + "Total Operation Management Cost|Infrastructure|Water|Unconnected|Industry", + industry_unconnected_totalom, + "million US$2010/yr", + ], + ], + columns=["names", "list_cat", "unit"], + ) + + # add population with sanitation or drinking water access + mp2 = sc.platform + map_node = sc.set("map_node") + # this might not be the best way to get the region, better from context + if "R11" in map_node.node.to_list()[1]: + reg = "R11" + elif "R12" in map_node.node.to_list()[1]: + reg = "R12" + else: + print("Check the region of the model is consistent with R11,R12") + + # load data on water and sanitation access + load_path = private_data_path("water", "demands", "harmonized", reg) + all_rates = pd.read_csv(load_path / "all_rates_SSP2.csv") + + pop_check = sc.timeseries(variable=("Population")) + pop_check = pop_check[pop_check.year >= 2020] + if pop_check.empty: + print("The Population data does not exist or timeseries() has no future values") + else: + pop_drink_tot = pd.DataFrame() + pop_sani_tot = pd.DataFrame() + pop_sdg6 = pd.DataFrame() + for ur in ["urban", "rural"]: + # CHANGE TO URBAN AND RURAL POP + pop_tot = sc.timeseries(variable=("Population|" + ur.capitalize())) + pop_tot = pop_tot[-(pop_tot.region == "GLB region (R11)")] + pop_reg = np.unique(pop_tot["region"]) + # need to change names + reg_map = mp2.regions() + reg_map = reg_map[reg_map.mapped_to.isin(pop_reg)].drop( + columns=["parent", "hierarchy"] + ) + reg_map["region"] = [x.split("_")[1] for x in reg_map.region] + + df_rate = all_rates[all_rates.variable.str.contains(ur)] + + df_rate = df_rate[ + df_rate.variable.str.contains("sdg" if sdgs else "baseline") + ] + + df_rate["region"] = [x.split("|")[1] for x in df_rate.node] + df_rate = df_rate.drop(columns=["node"]) + # make region mean (no weighted average) + df_rate = ( + df_rate.groupby(["year", "variable", "region"])["value"] + .mean() + .reset_index() + ) + # convert region name + df_rate = df_rate.merge(reg_map, how="left") + df_rate = df_rate.drop(columns=["region"]) + df_rate = df_rate.rename( + columns={"mapped_to": "region", "variable": "new_var", "value": "rate"} + ) + + # Population|Drinking Water Access + df_drink = df_rate[df_rate.new_var.str.contains("connection")] + pop_drink = pop_tot.merge(df_drink, how="left") + pop_drink["variable"] = ( + "Population|Drinking Water Access|" + ur.capitalize() + ) + pop_drink["value"] = pop_drink.value * pop_drink.rate + cols = pop_tot.columns + pop_drink = pop_drink[cols] + pop_drink_tot = pop_drink_tot.append(pop_drink) + pop_sdg6 = pop_sdg6.append(pop_drink) + + # Population|Sanitation Acces + df_sani = df_rate[df_rate.new_var.str.contains("treatment")] + pop_sani = pop_tot.merge(df_sani, how="left") + pop_sani["variable"] = "Population|Sanitation Access|" + ur.capitalize() + pop_sani["value"] = pop_sani.value * pop_sani.rate + pop_sani = pop_sani[cols] + pop_sani_tot = pop_sani_tot.append(pop_drink) + pop_sdg6 = pop_sdg6.append(pop_sani) + + # total values + pop_drink_tot = ( + pop_drink_tot.groupby(["region", "unit", "year", "model", "scenario"])[ + "value" + ] + .sum() + .reset_index() + ) + pop_drink_tot["variable"] = "Population|Drinking Water Access" + pop_drink_tot = pop_drink_tot[cols] + pop_sani_tot = ( + pop_sani_tot.groupby(["region", "unit", "year", "model", "scenario"])[ + "value" + ] + .sum() + .reset_index() + ) + pop_sani_tot["variable"] = "Population|Sanitation Access" + pop_sani_tot = pop_sani_tot[cols] + # global values + pop_sdg6 = pop_sdg6.append(pop_drink_tot).append(pop_sani_tot) + pop_sdg6_glb = ( + pop_sdg6.groupby(["variable", "unit", "year", "model", "scenario"])["value"] + .sum() + .reset_index() + ) + pop_sdg6_glb["region"] = "World" + pop_sdg6_glb = pop_sdg6_glb[cols] + + pop_sdg6 = pop_sdg6.append(pop_sdg6_glb) + print("Population|Drinking Water Access") + + # Add water prices, ad-hoc procedure + wp = sc.var( + "PRICE_COMMODITY", {"commodity": ["urban_mw", "rural_mw", "freshwater"]} + ) + wp["value"] = wp["lvl"] / 1000 + wp["unit"] = "US$2010/m3" + wp = wp.rename(columns={"node": "region"}) + # get withdrawals for weighted mean + ww = report_iam.as_pandas() + ww = ww[ + ww.variable.isin( + ["out|final|rural_mw|rural_t_d|M1", "out|final|urban_mw|urban_t_d|M1"] + ) + ] + ww["commodity"] = np.where( + ww.variable.str.contains("urban_mw"), "urban_mw", "rural_mw" + ) + ww["wdr"] = ww["value"] + ww = ww[["region", "year", "commodity", "wdr"]] + # irrigation water, at regional level + wp_irr = wp[wp.level == "water_irr"] + wp_irr["variable"] = "Price|Irrigation Water" + wp_irr = wp_irr.drop(columns={"level", "lvl", "mrg"}) + # driking water + wr_dri = wp[wp.commodity.isin(["urban_mw", "rural_mw"])] + wr_dri = wr_dri.drop(columns={"level", "lvl", "mrg"}) + wr_dri = wr_dri.merge(ww, how="left") + wr_dri["variable"] = np.where( + wr_dri.commodity == "urban_mw", + "Price|Drinking Water|Urban", + "Price|Drinking Water|Rural", + ) + wr_dri_m = ( + wr_dri.groupby(["region", "unit", "year"]) + .apply(lambda x: np.average(x.value, weights=x.wdr)) + .reset_index() + ) + wr_dri_m["value"] = wr_dri_m[0] + wr_dri_m = wr_dri_m.drop(columns={0}) + wr_dri_m["variable"] = "Price|Drinking Water" + + wp = wp_irr.append(wr_dri).append(wr_dri_m) + + wp["model"] = sc.model + wp["scenario"] = sc.scenario + wp = wp[["model", "scenario", "region", "variable", "unit", "year", "value"]] + + wp_iam = pyam.IamDataFrame(wp) + # Merge both dataframes in pyam + report_iam = report_iam.append(wp_iam) + + # Fetching nodes from the scenario to aggregate to MESSAGE energy region definition + map_node = sc.set("map_node") + map_node = map_node[map_node["node_parent"] != map_node["node"]] + map_node_dict = map_node.groupby("node_parent")["node"].apply(list).to_dict() + + for index, row in map_agg_pd.iterrows(): + print(row["names"]) + # Aggregates variables as per standard reporting + report_iam.aggregate(row["names"], components=row["list_cat"], append=True) + + if row["names"] in ( + "Water Extraction|Seawater|Cooling", + "Investment|Infrastructure|Water", + "Water Extraction|Seawater", + ): + report_iam.aggregate_region(row["names"], append=True) + else: + for rr in map_node_dict: + report_iam.aggregate_region( + row["names"], region=rr, subregions=map_node_dict[rr], append=True + ) + # Aggregates variables separately that are not included map_agg_pd + for rr in map_node_dict: + report_iam.aggregate_region( + "Water Resource|*", region=rr, subregions=map_node_dict[rr], append=True + ) + report_iam.aggregate_region( + "Price|*", + method="mean", + region=rr, + subregions=map_node_dict[rr], + append=True, + ) + + # Remove duplicate variables + varsexclude = [ + "Investment|Infrastructure|Water", + "Investment|Infrastructure|Water|Extraction", + "Investment|Infrastructure|Water|Other", + "Investment|Infrastructure|Water|Extraction|Groundwater", + ] + report_iam.filter(variable=varsexclude, unit="unknown", keep=False, inplace=True) + # prepare data for loading timeserie + report_pd = report_iam.as_pandas() + report_pd = report_pd.drop(columns=["exclude"]) + # all initial variables form Reporte will be filtered out + d = report_df.Variable.unique() + d1 = pd.DataFrame({"variable": d}) + d1[["to_keep"]] = "No" + # filter out initial variables + report_pd = report_pd.merge(d1, how="left") + report_pd = report_pd[report_pd["to_keep"] != "No"] + report_pd = report_pd.drop(columns=["to_keep"]) + + # ecluded other intermediate variables added later to report_iam + report_pd = report_pd[-report_pd.variable.isin(water_hydro_var)] + + # add water population + report_pd = report_pd.append(pop_sdg6) + # add units + for index, row in map_agg_pd.iterrows(): + report_pd.loc[(report_pd.variable == row["names"]), "unit"] = row["unit"] + + df_unit = pyam.IamDataFrame(report_pd) + df_unit.convert_unit("GWa", to="EJ", inplace=True) + df_unit_inv = df_unit.filter(variable="Investment*") + df_unit_inv.convert_unit( + "million US$2010/yr", to="billion US$2010/yr", factor=0.001, inplace=True + ) + + df_unit = df_unit.as_pandas() + df_unit = df_unit[~df_unit["variable"].str.contains("Investment")] + df_unit_inv = df_unit_inv.as_pandas() + report_pd = pd.concat([df_unit, df_unit_inv]) + report_pd = report_pd.drop(columns=["exclude"]) + report_pd["unit"].replace("EJ", "EJ/yr", inplace=True) + + sc.check_out(timeseries_only=True) + print("Starting to upload timeseries") + print(report_pd.head()) + sc.add_timeseries(report_pd) + print("Finished uploading timeseries") + sc.commit("Reporting uploaded as timeseries") + + +def report_full(sc=False, sdgs=False): + """Combine old and new reporting workflows""" + a = sc.timeseries() + # keep historical part, if present + a = a[a.year >= 2020] + + sc.check_out(timeseries_only=True) + print("Remove any previous timeseries") + + sc.remove_timeseries(a) + print("Finished removing timeseries, now commit..") + sc.commit("Remove existing timeseries") + + run_old_reporting(sc) + print("First part of reporting completed, now procede with the water variables") + + report(sc, sdgs) + print("overall NAVIGATE reporting completed") + + # add ad-hoc caplculated variables with a function + ts = sc.timeseries() + + out_path = private_data_path().parents[0] / "reporting_output/NAVIGATE" + + if not out_path.exists(): + out_path.mkdir() + + out_file = out_path / f"{sc.model}_{sc.scenario}.csv" + + # Convert to pyam dataframe + ts_long = pyam.IamDataFrame(ts) + + ts_long.to_csv(out_file) + print(f"Saving csv to {out_file}") diff --git a/nest/message_ix_models/model/water/utils.py b/nest/message_ix_models/model/water/utils.py new file mode 100644 index 0000000..a72e0ef --- /dev/null +++ b/nest/message_ix_models/model/water/utils.py @@ -0,0 +1,158 @@ +from collections import defaultdict +from functools import lru_cache +from itertools import product +from typing import Tuple + +import numpy as np +import pandas as pd +import xarray as xr +from sdmx.model import Code + +from message_ix_models import Context +from message_ix_models.model.structure import get_codes +from message_ix_models.util import load_private_data + +# Configuration files +METADATA = [ + # Information about MESSAGE-water + ("water", "config"), + ("water", "set"), + ("water", "technology"), +] + + +def read_config(context=None): + """Read the water model configuration / metadata from file. + + Numerical values are converted to computation-ready data structures. + + Returns + ------- + .Context + The current Context, with the loaded configuration. + """ + + context = context or Context.get_instance(0) + + # if context.nexus_set == 'nexus': + if "water set" in context: + # Already loaded + return context + + # Load water configuration + for parts in METADATA: + # Key for storing in the context + key = " ".join(parts) + + # Actual filename parts; ends with YAML + _parts = list(parts) + _parts[-1] += ".yaml" + + context[key] = load_private_data(*_parts) + + return context + + +@lru_cache() +def map_add_on(rtype=Code): + """Map addon & type_addon in ``sets.yaml``.""" + dims = ["add_on", "type_addon"] + + # Retrieve configuration + context = read_config() + + # Assemble group information + result = defaultdict(list) + + for indices in product(*[context["water set"][d]["add"] for d in dims]): + # Create a new code by combining two + result["code"].append( + Code( + id="".join(c.id for c in indices), + name=", ".join(c.name for c in indices), + ) + ) + + # Tuple of the values along each dimension + result["index"].append(tuple(c.id for c in indices)) + + if rtype == "indexers": + # Three tuples of members along each dimension + indexers = zip(*result["index"]) + indexers = { + d: xr.DataArray(list(i), dims="consumer_group") + for d, i in zip(dims, indexers) + } + indexers["consumer_group"] = xr.DataArray( + [c.id for c in result["code"]], + dims="consumer_group", + ) + return indexers + elif rtype is Code: + return sorted(result["code"], key=str) + else: + raise ValueError(rtype) + + +def add_commodity_and_level(df, default_level=None): + # Add input commodity and level + t_info = Context.get_instance()["water set"]["technology"]["add"] + c_info = get_codes("commodity") + + @lru_cache() + def t_cl(t): + input = t_info[t_info.index(t)].anno["input"] + # Commodity must be specified + commodity = input["commodity"] + # Use the default level for the commodity in the RES (per + # commodity.yaml) + level = ( + input.get("level", "water_supply") + or c_info[c_info.index(commodity)].anno.get("level", None) + or default_level + ) + + return commodity, level + + def func(row): + row[["commodity", "level"]] = t_cl(row["technology"]) + return row + + return df.apply(func, axis=1) + + +def map_yv_ya_lt(periods: Tuple[int, ...], lt, ya=None) -> pd.DataFrame: + """All meaningful combinations of (vintage year, active year) given `periods`. + + Parameters + ---------- + labels : pandas.DataFrame + Each column (dimension) corresponds to one in `df`. Each row represents one + matched set of labels for those dimensions. + lt : int, lifetime + """ + # commented: currently unused, this does the same as the line below, using (start + # period, final period, uniform ``duration_period). The intermediate periods are + # inferred + # _s = slice(periods_or_start, end + 1, dp) + # data = np.mgrid[_s, _s] + + if not ya: + ya = periods[0] + print(("first active year set as"), ya) + if not lt: + raise ValueError("Add a fixed lifetime parameter 'lt'") + + # Create a mesh grid using numpy built-ins + data = np.meshgrid(periods, periods, indexing="ij") + # Take the upper-triangular portion (setting the rest to 0), reshape + data = np.triu(data).reshape((2, -1)) + # Filter only non-zero pairs + df = pd.DataFrame( + filter(sum, zip(data[0, :], data[1, :])), + columns=["year_vtg", "year_act"], + dtype=np.int64, + ) + df = df[df.year_act >= ya] + df = df[(df.year_act - df.year_vtg) <= lt] + return df diff --git a/nest/message_ix_models/project/__init__.py b/nest/message_ix_models/project/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/nest/message_ix_models/py.typed b/nest/message_ix_models/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/nest/message_ix_models/testing.py b/nest/message_ix_models/testing.py new file mode 100644 index 0000000..e1f20a4 --- /dev/null +++ b/nest/message_ix_models/testing.py @@ -0,0 +1,399 @@ +import logging +import os +from copy import deepcopy +from pathlib import Path +from tempfile import TemporaryDirectory + +import click.testing +import message_ix +import pandas as pd +import pytest +from ixmp import Platform +from ixmp import config as ixmp_config + +from message_ix_models import cli, util +from message_ix_models.util._logging import mark_time, preserve_log_level +from message_ix_models.util.context import Context + +log = logging.getLogger(__name__) + +# pytest hooks + + +def pytest_addoption(parser): + """Add two command-line options to pytest: + + ``--local-cache`` + Use existing, local cache files in tests. This option can speed up tests that + *use* the results of slow data loading/parsing. However, if cached values are not + up to date with the current code, unexpected failure may occur. + + ``--jvmargs`` + Additional arguments to give for the Java Virtual Machine used by :mod:`ixmp`'s + :class:`.JDBCBackend`. Used by :func:`session_context`. + """ + parser.addoption( + "--local-cache", + action="store_true", + help="Use existing local cache files in tests", + ) + parser.addoption( + "--jvmargs", + action="store", + default="", + help="Arguments for Java VM used by ixmp JDBCBackend", + ) + + +def pytest_sessionstart(): + # Quiet logs for some upstream packages + for name in ("pycountry.db", "matplotlib.backends", "matplotlib.font_manager"): + logging.getLogger(name).setLevel(logging.DEBUG + 1) + + +# Fixtures + + +@pytest.fixture(scope="session") +def session_context(pytestconfig, tmp_env): + """A :class:`.Context` connected to a temporary, in-memory database. + + This Context is suitable for modifying and running test code that does not affect + the user/developer's filesystem and configured :mod:`ixmp` databases. + + Uses the :func:`.tmp_env` fixture from ixmp. This fixture also sets: + + - :attr:`.Context.cache_path`, depending on whether the :program:`--local-cache` CLI + option was given: + + - If not given: pytest's :doc:`standard cache directory `. + - If given: the :file:`/cache/` directory under the user's "message local data" + directory. + + - the "message local data" config key to a temporary directory :file:`/data/` under + the :ref:`pytest tmp_path directory `. + + """ + ctx = Context.only() + + # Temporary, empty local directory for local data + session_tmp_dir = Path(pytestconfig._tmp_path_factory.mktemp("data")) + + # Set the cache path according to whether pytest --local-cache was given. If True, + # pick up the existing setting from the user environment. If False, use a pytest- + # managed cache directory that persists across test sessions. + ctx.cache_path = ( + ctx.local_data.joinpath("cache") + if pytestconfig.option.local_cache + # TODO use pytestconfig.cache.mkdir() when pytest >= 6.3 is available + else Path(pytestconfig.cache.makedir("cache")) + ) + + # Other local data in the temporary directory for this session only + ctx.local_data = session_tmp_dir + + # Also set the "message local data" key in the ixmp config + ixmp_config.set("message local data", session_tmp_dir) + + # If message_data is not installed, use a temporary path for private_data_path() + message_data_path = util.MESSAGE_DATA_PATH + if util.MESSAGE_DATA_PATH is None: + util.MESSAGE_DATA_PATH = session_tmp_dir.joinpath("message_data") + + # Create some subdirectories + util.MESSAGE_DATA_PATH.joinpath("data", "tests").mkdir(parents=True) + + # Add a platform connected to an in-memory database + platform_name = "message-ix-models" + ixmp_config.add_platform( + platform_name, + "jdbc", + "hsqldb", + url=f"jdbc:hsqldb:mem://{platform_name}", + jvmargs=pytestconfig.option.jvmargs, + ) + + # Launch Platform and connect to testdb (reconnect if closed) + mp = Platform(name=platform_name) + mp.open_db() + + ctx.platform_info["name"] = platform_name + + try: + yield ctx + finally: + ctx.close_db() + ixmp_config.remove_platform(platform_name) + + # Restore prior value + util.MESSAGE_DATA_PATH = message_data_path + + +@pytest.fixture(scope="function") +def test_context(request, session_context): + """A copy of :func:`session_context` scoped to one test function.""" + ctx = deepcopy(session_context) + + yield ctx + + ctx.delete() + + +@pytest.fixture(scope="function") +def user_context(request): # pragma: no cover + """Context which can access user's configuration, e.g. platform names.""" + # Disabled; this is bad practice + raise NotImplementedError + + +class CliRunner(click.testing.CliRunner): + """Subclass of :class:`click.testing.CliRunner` with extra features.""" + + # NB decorator ensures any changes that the CLI makes to the logger level are + # restored + @preserve_log_level() + def invoke(self, *args, **kwargs): + """Invoke the :program:`mix-models` CLI.""" + result = super().invoke(cli.main, *args, **kwargs) + + # Store the result to be used by assert_exit_0() + self.last_result = result + + return result + + def assert_exit_0(self, *args, **kwargs): + """Assert a result has exit_code 0, or print its traceback. + + If any `args` or `kwargs` are given, :meth:`.invoke` is first called. Otherwise, + the result from the last call of :meth:`.invoke` is used. + + Raises + ------ + AssertionError + if the result exit code is not 0. The exception contains the traceback from + within the CLI. + + Returns + ------- + click.testing.Result + """ + __tracebackhide__ = True + + if len(args) + len(kwargs): + self.invoke(*args, **kwargs) + + if self.last_result.exit_code != 0: + # Re-raise the exception triggered within the CLI invocation + raise ( + self.last_result.exc_info[1].__context__ or self.last_result.exc_info[1] + ) + + return self.last_result + + +@pytest.fixture(scope="session") +def mix_models_cli(request, session_context, tmp_env): + """A :class:`.CliRunner` object that invokes the :program:`mix-models` CLI.""" + # Require the `session_context` fixture in order to set Context.local_data + yield CliRunner(env=tmp_env) + + +@cli.main.group("_test", hidden=True) +def cli_test_group(): + """Hidden group of CLI commands. + + Other code which needs to test CLI behaviour **may** attach temporary/throw-away + commands to this group and then invoke them using :func:`mix_models_cli`. This + avoids the need to expose additional commands for testing purposes only. + """ + + +# Testing utility functions + + +def bare_res(request, context: Context, solved: bool = False) -> message_ix.Scenario: + """Return or create a Scenario containing the bare RES, for use in testing. + + The Scenario has a model name like "MESSAGEix-GLOBIOM [regions] + [start]:[duration]:[end]", e.g. "MESSAGEix-GLOBIOM R14 2020:10:2110" (see + :func:`.bare.name`) and the scenario name "baseline". + + This function should: + + - only be called from within test code, i.e. in :mod:`message_data.tests`. + - be called once for each test function, so that each test receives a fresh copy of + the RES scenario. + + Parameters + ---------- + request : .Request or None + The pytest :fixture:`pytest:request` fixture. If provided the pytest test node + name is used for the scenario name of the returned Scenario. + context : .Context + Passed to :func:`.testing.bare_res`. + solved : bool, optional + Return a solved Scenario. + + Returns + ------- + .Scenario + The scenario is a fresh clone, so can be modified freely without disturbing + other tests. + """ + from message_ix_models.model import bare + + name = bare.name(context) + mp = context.get_platform() + + try: + base = message_ix.Scenario(mp, name, "baseline") + except ValueError: + log.info(f"Create '{name}/baseline' for testing") + context.scenario_info.update(model=name, scenario="baseline") + base = bare.create_res(context) + + if solved and not base.has_solution(): + log.info("Solve") + base.solve(solve_options=dict(lpmethod=4), quiet=True) + + try: + new_name = request.node.name + except AttributeError: + new_name = "baseline" + + log.info(f"Clone to '{name}/{new_name}'") + return base.clone(scenario=new_name, keep_solution=solved) + + +#: Items with names that match (partially or fully) these names are omitted by +#: :func:`export_test_data`. +EXPORT_OMIT = [ + "aeei", + "cost_MESSAGE", + "demand_MESSAGE", + "demand", + "depr", + "esub", + "gdp_calibrate", + "grow", + "historical_gdp", + "kgdp", + "kpvs", + "lakl", + "land", + "lotol", + "mapping_macro_sector", + "MERtoPPP", + "prfconst", + "price_MESSAGE", + "ref_", + "sector", +] + + +def export_test_data(context: Context): + """Export a subset of data from a scenario, for use in tests. + + The context settings ``export_nodes`` (default: "R11_AFR" and "R11_CPA") and + ``export_techs`` (default: "coal_ppl") are used to filter the data exported. + In addition, any item (set, parameter, variable, or equation) with a name matching + :data:`EXPORT_OMIT` *or* the context setting ``export_exclude`` is discarded. + + The output is stored at :file:`data/tests/{model name}_{scenario name}_{techs}.xlsx` + in :mod:`message_data`. + + See also + -------- + :ref:`export-test-data` + """ + from message_ix_models.util import private_data_path + + # Load the scenario to be exported + scen = context.get_scenario() + + # Retrieve the context settings giving the nodes and technologies to export + nodes = context.get("export_nodes", ["R11_AFR", "R11_CPA"]) + technology = context.get("export_techs", ["coal_ppl"]) + + # Construct the destination file name + dest_file = private_data_path( + "tests", f"{scen.model}_{scen.scenario}_{'_'.join(technology)}.xlsx" + ) + # Temporary file name + td = TemporaryDirectory() + tmp_file = Path(td.name).joinpath("export_test_data.xlsx") + + # Ensure the target directory exists + dest_file.parent.mkdir(exist_ok=True) + + # Dump data to temporary Excel file + log.info(f"Export test data to {dest_file}") + scen.to_excel( + tmp_file, + filters={ + "technology": technology, + "node": nodes, + "node_dest": nodes, + "node_loc": nodes, + "node_origin": nodes, + "node_parent": nodes, + "node_rel": nodes, + "node_share": nodes, + }, + ) + + mark_time() + + log.info("Reduce test data") + + # Read from temporary file and write to final file, omitting unnecessary sheets + reader = pd.ExcelFile(tmp_file) + writer = pd.ExcelWriter(dest_file) + + # Retrieve the type mapping first, to be modified as sheets are discarded + ix_type_mapping = reader.parse("ix_type_mapping").set_index("item") + + for name in reader.sheet_names: + # Check if this sheet is to be included + if name == "ix_type_mapping": + # Already handled + continue + elif any(i in name for i in (EXPORT_OMIT + context.get("export_exclude", []))): + log.info(f"Discard sheet '{name}'") + + # Remove from the mapping + ix_type_mapping.drop(name, inplace=True) + + continue + + # Copy the sheet from temporary to final file + reader.parse(name).to_excel(writer, sheet_name=name, index=False) + + # Close the temporary file + reader.close() + + # Write the mapping + ix_type_mapping.reset_index().to_excel( + writer, sheet_name="ix_type_mapping", index=False + ) + + # Close the final file + writer.close() + + mark_time() + + +#: Shorthand for marking a parametrized test case that is expected to fail because it is +#: not implemented. +NIE = pytest.mark.xfail(raises=NotImplementedError) + + +def not_ci(reason=None, action="skip"): + """Mark a test as xfail or skipif if on CI infrastructure. + + Checks the ``GITHUB_ACTIONS`` environment variable; returns a pytest mark. + """ + action = "skipif" if action == "skip" else action + return getattr(pytest.mark, action)( + condition="GITHUB_ACTIONS" in os.environ, reason=reason + ) diff --git a/nest/message_ix_models/tests/__init__.py b/nest/message_ix_models/tests/__init__.py new file mode 100644 index 0000000..9fc108b --- /dev/null +++ b/nest/message_ix_models/tests/__init__.py @@ -0,0 +1 @@ +"""Test suite for :mod:`message_ix_models`.""" diff --git a/nest/message_ix_models/tests/model/__init__.py b/nest/message_ix_models/tests/model/__init__.py new file mode 100644 index 0000000..49b710c --- /dev/null +++ b/nest/message_ix_models/tests/model/__init__.py @@ -0,0 +1 @@ +"""Tests of :mod:`message_ix_models.model` and submodules.""" diff --git a/nest/message_ix_models/tests/model/test_bare.py b/nest/message_ix_models/tests/model/test_bare.py new file mode 100644 index 0000000..7e19156 --- /dev/null +++ b/nest/message_ix_models/tests/model/test_bare.py @@ -0,0 +1,69 @@ +import message_ix +import pytest + +from message_ix_models import testing +from message_ix_models.model.bare import Config + +#: Number of items in the respective YAML files. +SET_SIZE = dict( + commodity=17, + level=6, + node=14 + 1, # R14 is default, and 'World' exists automatically + relation=19, + technology=377, + year=28, # YB is default: 1950, ..., 2020, 2025, ..., 2055, 2060, ..., 2110 +) + + +@pytest.mark.parametrize( + "settings, expected", + [ + # Defaults per bare.SETTINGS + (dict(), dict()), + # + # Different regional aggregations + (dict(regions="R11"), dict(node=11 + 1)), + (dict(regions="RCP"), dict(node=5 + 1)), + # MESSAGE-IL + (dict(regions="ISR"), dict(node=1 + 1)), + # + # Different time periods + (dict(years="A"), dict(year=16)), # ..., 2010, 2020, ..., 2110 + # + # Option to add a dummy technology/commodity so the model solves + ( + dict(res_with_dummies=True), + dict( + commodity=SET_SIZE["commodity"] + 1, + technology=SET_SIZE["technology"] + 2, + ), + ), + ], +) +def test_create_res(request, test_context, settings, expected): + # Apply settings to the temporary context + test_context.model = Config(**settings) + + # Call bare.create_res() via testing.bare_res(). This ensures the slow step of + # creating the scenario occurs only once per test session. If it fails, it will + # either fail within this test, or in some other test function that calls + # testing.bare_res() with the same arguments. + scenario = testing.bare_res(request, test_context, solved=False) + + # Returns a Scenario object + assert isinstance(scenario, message_ix.Scenario) + + # Sets contain the expected number of elements + sets = SET_SIZE.copy() + sets.update(expected) + for name, size in sets.items(): + values = scenario.set(name) + assert size == len(values), (name, values) + + +class TestConfig: + def test_init(self): + c = Config() + c.regions = "R999" + + # TODO expand diff --git a/nest/message_ix_models/tests/model/test_build.py b/nest/message_ix_models/tests/model/test_build.py new file mode 100644 index 0000000..5296364 --- /dev/null +++ b/nest/message_ix_models/tests/model/test_build.py @@ -0,0 +1,103 @@ +import logging + +import pytest +from ixmp.testing import assert_logs +from message_ix import make_df +from message_ix.testing import make_dantzig + +from message_ix_models import ScenarioInfo +from message_ix_models.model.build import apply_spec + + +@pytest.fixture +def scenario(test_context): + mp = test_context.get_platform() + yield make_dantzig(mp) + + +@pytest.fixture(scope="function") +def spec(): + yield dict(add=ScenarioInfo(), require=ScenarioInfo(), remove=ScenarioInfo()) + + +def test_apply_spec0(caplog, scenario, spec): + """Require missing element raises ValueError.""" + spec["require"].set["node"].append("vienna") + + with pytest.raises(ValueError): + apply_spec(scenario, spec) + + assert ( + "message_ix_models.model.build", + logging.ERROR, + " 1 elements not found: ['vienna']", + ) in caplog.record_tuples + + +def test_apply_spec1(caplog, scenario, spec): + """Add data using the data= argument.""" + + def add_data_func(scenario, dry_run): + return dict( + demand=make_df( + "demand", + commodity="cases", + level="consumption", + node="chicago", + time="year", + unit="case", + value=301.0, + year=1963, + ) + ) + + apply_spec(scenario, spec, data=add_data_func, dry_run=True) + + # Messages are logged about additions + assert_logs(caplog, "1 rows in 'demand'") + # …but no change because `dry_run` + assert not any(301.0 == scenario.par("demand")["value"]) + + caplog.clear() + + apply_spec(scenario, spec, data=add_data_func) + + # Messages are logged about additions + assert_logs(caplog, "1 rows in 'demand'") + # Value was actually changed + assert 1 == sum(301.0 == scenario.par("demand")["value"]) + + +def test_apply_spec2(caplog, scenario, spec): + """Remove an element, with fast=True.""" + spec["remove"].set["node"] = ["new-york", "not-a-node"] + + apply_spec(scenario, spec, fast=True) + + # Messages are logged about removals + assert_logs( + caplog, + ( + "Remove 'new-york' from set 'node'", + "Remove 'not-a-node' from set 'node'", + " …not found", + ), + ) + + +def test_apply_spec3(caplog, scenario, spec): + """Actually remove data.""" + spec["remove"].set["node"] = ["new-york"] + + apply_spec(scenario, spec) + + # Messages are logged about removals + assert_logs( + caplog, + ( + "Remove data with node='new-york'", + " 1 rows in 'demand'", + " 2 rows in 'output'", + " 3 rows total", + ), + ) diff --git a/nest/message_ix_models/tests/model/test_cli.py b/nest/message_ix_models/tests/model/test_cli.py new file mode 100644 index 0000000..20e8554 --- /dev/null +++ b/nest/message_ix_models/tests/model/test_cli.py @@ -0,0 +1,5 @@ +def test_create_bare(mix_models_cli): + """The ``res create-bare`` CLI command can be invoked.""" + # "--nodes" is not a required option, but we give it anyway to test the CLI code + # that handles it + mix_models_cli.assert_exit_0(["res", "create-bare", "--nodes=R11"]) diff --git a/nest/message_ix_models/tests/model/test_config.py b/nest/message_ix_models/tests/model/test_config.py new file mode 100644 index 0000000..6221af1 --- /dev/null +++ b/nest/message_ix_models/tests/model/test_config.py @@ -0,0 +1,27 @@ +import pytest + +from message_ix_models.model import Config + + +class TestConfig: + @pytest.mark.parametrize( + "values", + [ + dict(regions="R11", years="A"), + pytest.param( + dict(regions="R99", years="A"), + marks=pytest.mark.xfail( + raises=ValueError, reason="regions='R99' not among […]" + ), + ), + pytest.param( + dict(regions="R11", years="C"), + marks=pytest.mark.xfail( + raises=ValueError, reason="regions='C' not among ['A', 'B']" + ), + ), + ], + ) + def test_check(self, values): + c = Config(**values) + c.check() diff --git a/nest/message_ix_models/tests/model/test_disutility.py b/nest/message_ix_models/tests/model/test_disutility.py new file mode 100644 index 0000000..652a1d9 --- /dev/null +++ b/nest/message_ix_models/tests/model/test_disutility.py @@ -0,0 +1,275 @@ +"""Tests of :mod:`.model.disutility`.""" +from itertools import product + +import pandas as pd +import pandas.testing as pdt +import pytest +from message_ix import make_df +from sdmx.model import Annotation, Code + +from message_ix_models import ScenarioInfo, testing +from message_ix_models.model import disutility +from message_ix_models.util import ( + add_par_data, + copy_column, + make_source_tech, + merge_data, +) + +# Common data and fixtures for test_minimal() and other tests + +COMMON = dict( + level="useful", + mode="all", + node_dest="R14_AFR", + node_loc="R14_AFR", + node_origin="R14_AFR", + node="R14_AFR", + time_dest="year", + time_origin="year", + time="year", + unit="kg", +) + + +@pytest.fixture +def groups(): + """Fixture: list of 2 consumer groups.""" + yield [Code(id="g0"), Code(id="g1")] + + +@pytest.fixture +def techs(): + """Fixture: list of 2 technologies for which groups can have disutility.""" + yield [Code(id="t0"), Code(id="t1")] + + +@pytest.fixture +def template(): + """Fixture: :class:.`Code` with annotations, for :func:`.disutility.get_spec`.""" + # Template for inputs of conversion technologies, from a technology-specific + # commodity + input = dict(commodity="output of {technology}", level="useful", unit="kg") + + # Template for outputs of conversion technologies, to a group–specific demand + # commodity + output = dict(commodity="demand of group {group}", level="useful", unit="kg") + + # Code's ID is itself a template for IDs of conversion technologies + yield Code( + id="usage of {technology} by {group}", + annotations=[ + Annotation(id="input", text=repr(input)), + Annotation(id="output", text=repr(output)), + ], + ) + + +@pytest.fixture +def spec(groups, techs, template): + """Fixture: a prepared spec for the minimal test case.""" + yield disutility.get_spec(groups, techs, template) + + +@pytest.fixture +def scenario(request, test_context, techs): + """Fixture: a :class:`.Scenario` with technologies given by :func:`techs`.""" + test_context.regions = "R14" + s = testing.bare_res(request, test_context, solved=False) + s.check_out() + + s.add_set("technology", ["t0", "t1"]) + + s.commit("Test fixture for .model.disutility") + yield s + + +def test_add(scenario, groups, techs, template): + """:func:`.disutility.add` runs on the bare RES; the result solves.""" + disutility.add(scenario, groups, techs, template) + + # Scenario solves (no demand) + scenario.solve(quiet=True) + assert (scenario.var("ACT")["lvl"] == 0).all() + + +def minimal_test_data(scenario): + """Generate data for :func:`test_minimal`.""" + common = COMMON.copy() + common.pop("node_loc") + common.update(dict(mode="all")) + + data = dict() + + info = ScenarioInfo(scenario) + y0 = info.Y[0] + y1 = info.Y[1] + + # Output from t0 and t1 + for t in ("t0", "t1"): + common.update(dict(technology=t, commodity=f"output of {t}")) + merge_data(data, make_source_tech(info, common, output=1.0, var_cost=1.0)) + + # Disutility input for each combination of (tech) × (group) × (2 years) + input_data = pd.DataFrame( + [ + ["usage of t0 by g0", y0, 0.1], + ["usage of t0 by g0", y1, 0.1], + ["usage of t1 by g0", y0, 0.1], + ["usage of t1 by g0", y1, 0.1], + ["usage of t0 by g1", y0, 0.1], + ["usage of t0 by g1", y1, 0.1], + ["usage of t1 by g1", y0, 0.1], + ["usage of t1 by g1", y1, 0.1], + ], + columns=["technology", "year_vtg", "value"], + ) + data["input"] = make_df( + "input", **input_data, commodity="disutility", **COMMON + ).assign(node_origin=copy_column("node_loc"), year_act=copy_column("year_vtg")) + + # Demand + c, y = zip(*product(["demand of group g0", "demand of group g1"], [y0, y1])) + data["demand"] = make_df("demand", commodity=c, year=y, value=1.0, **COMMON) + + # Constraint on activity in the first period + t = sorted(input_data["technology"].unique()) + for bound in ("lo", "up"): + par = f"bound_activity_{bound}" + data[par] = make_df(par, value=0.5, technology=t, year_act=y0, **COMMON) + + # Constraint on activity growth + annual = (1.1 ** (1.0 / 5.0)) - 1.0 + for bound, factor in (("lo", -1.0), ("up", 1.0)): + par = f"growth_activity_{bound}" + data[par] = make_df( + par, value=factor * annual, technology=t, year_act=y1, **COMMON + ) + + return data, y0, y1 + + +def test_minimal(scenario, groups, techs, template): + """Expected results are generated from a minimal test case.""" + # Set up structure + disutility.add(scenario, groups, techs, template) + + # Add test-specific data + data, y0, y1 = minimal_test_data(scenario) + + scenario.check_out() + add_par_data(scenario, data) + scenario.commit("Disutility test 1") + + # commented: pre-solve debugging output + # for par in ("input", "output", "technical_lifetime", "var_cost"): + # scenario.par(par).to_csv(f"debug-{par}.csv") + + scenario.solve(quiet=True) + + # Helper function to retrieve ACT data and condense for inspection + def get_act(s): + result = ( + scenario.var("ACT") + .query("lvl > 0") + .drop(columns=["node_loc", "mode", "time", "mrg"]) + .sort_values(["year_vtg", "technology"]) + .reset_index(drop=True) + ) + # No "stray" activity of technologies beyond the vintage periods + pdt.assert_series_equal( + result["year_act"], result["year_vtg"], check_names=False + ) + result = result.drop(columns=["year_vtg"]).set_index(["technology", "year_act"]) + # Return the activity and its inter-period delta + return result, ( + result.xs(y1, level="year_act") - result.xs(y0, level="year_act") + ) + + # Post-solve debugging output TODO comment before merging + ACT1, ACT1_delta = get_act(scenario) + + # Increase the disutility of for t0 for g0 in period y1 + data["input"].loc[1, "value"] = 0.2 + + # Re-solve + scenario.remove_solution() + scenario.check_out() + scenario.add_par("input", data["input"]) + scenario.commit("Disutility test 2") + scenario.solve(quiet=True) + + # Compare activity + ACT2, ACT2_delta = get_act(scenario) + + merged = ACT1.merge(ACT2, left_index=True, right_index=True) + merged["lvl_diff"] = merged["lvl_y"] - merged["lvl_x"] + + merged_delta = ACT1_delta.merge(ACT2_delta, left_index=True, right_index=True) + + # commented: for debugging + # print(merged, merged_delta) + + # Group g0 decreases usage of t0, and increases usage of t1, in period y1 vs. y0 + assert merged_delta.loc["usage of t0 by g0", "lvl_y"] < 0 + assert merged_delta.loc["usage of t1 by g0", "lvl_y"] > 0 + + # Group g0 usage of t0 is lower when the disutility is higher + assert merged.loc[("usage of t0 by g0", y1), "lvl_diff"] < 0 + # Group g0 usage of t1 is correspondingly higher + assert merged.loc[("usage of t1 by g0", y1), "lvl_diff"] > 0 + + +def test_data_conversion(scenario, spec): + """:func:`~.disutility.data_conversion` runs.""" + info = ScenarioInfo(scenario) + disutility.data_conversion(info, spec) + + +def test_data_source(scenario, spec): + """:func:`~.disutility.data_source` runs.""" + info = ScenarioInfo(scenario) + disutility.data_source(info, spec) + + +def test_get_data(scenario, spec): + """:func:`~.disutility.get_data` runs.""" + data = disutility.get_data(scenario, spec) + + # Test that the code will not encounter #45 / iiasa/ixmp#425 + for name, df in data.items(): + assert ( + "" not in df["unit"].unique() + ), f"{repr(name)} data has dimensionless units" + + +def test_get_spec(groups, techs, template): + """:func:`~.disutility.get_spec` runs and produces expected output.""" + spec = disutility.get_spec(groups, techs, template) + + # Spec requires the existence of the base technologies + assert {"technology"} == set(spec["require"].set.keys()) + assert techs == spec["require"].set["technology"] + + # Spec removes nothing + assert set() == set(spec["remove"].set.keys()) + + # Spec adds the "disutility" commodity; and adds (if not existing) the output + # commodities for t[01] and demand commodities for g[01] + assert { + "disutility", + "output of t0", + "output of t1", + "demand of group g0", + "demand of group g1", + } == set(map(str, spec["add"].set["commodity"])) + + # Spec adds the "distuility source" technology, and "usage of {tech} by {group}" + # for each tech × group, per the template + assert { + "disutility source", + "usage of t0 by g0", + "usage of t0 by g1", + "usage of t1 by g0", + "usage of t1 by g1", + } == set(map(str, spec["add"].set["technology"])) diff --git a/nest/message_ix_models/tests/model/test_emissions.py b/nest/message_ix_models/tests/model/test_emissions.py new file mode 100644 index 0000000..4a1dbaa --- /dev/null +++ b/nest/message_ix_models/tests/model/test_emissions.py @@ -0,0 +1,54 @@ +import numpy as np +from message_ix import make_df +from message_ix.models import MACRO + +from message_ix_models import testing +from message_ix_models.model.emissions import add_tax_emission + + +def add_test_data(scenario): + scenario.platform.add_unit("") + with scenario.transact(): + scenario.add_set("node", "foo") + scenario.add_set("type_emission", "TCE") + + name = "interestrate" + df = make_df(name, year=scenario.set("year"), value=0.05, unit="") + scenario.add_par(name, df) + + # Initialize drate + MACRO.initialize(scenario) + name = "drate" + df = scenario.add_par( + name, make_df(name, node=["World", "foo"], value=[0.05, 0.03], unit="") + ) + + +def test_add_tax_emission(request, caplog, test_context): + test_context.regions = "R12" + s = testing.bare_res(request, test_context, solved=False) + add_test_data(s) + + value = 1.1 + + add_tax_emission(s, value, drate_parameter="interestrate") + + # Retrieve the added data + data = s.par("tax_emission").set_index("type_year") + y0 = min(data.index) + y_max = max(data.index) + + # First model period value is converted from [money] / t CO₂ to [money] / t C + v0 = value * 44.0 / 12 + assert np.isclose(v0, data.loc[y0, "value"]) + + # Final period value is the same, inflated by the number of intervening years + assert np.isclose(v0 * 1.05 ** (int(y_max) - int(y0)), data.loc[y_max, "value"]) + + # Same using drate + add_tax_emission(s, value) + # Warning is logged about multiple drates + assert ( + "Using the first of multiple discount rates: drate=[0.05 0.03]" + == caplog.messages[-1] + ) diff --git a/nest/message_ix_models/tests/model/test_structure.py b/nest/message_ix_models/tests/model/test_structure.py new file mode 100644 index 0000000..5f2d126 --- /dev/null +++ b/nest/message_ix_models/tests/model/test_structure.py @@ -0,0 +1,259 @@ +import re +from collections import defaultdict +from copy import deepcopy +from pathlib import Path + +import pytest +from iam_units import registry +from sdmx.model import Annotation, Code + +from message_ix_models.model.structure import ( + codelists, + generate_set_elements, + get_codes, + get_region_codes, + process_commodity_codes, + process_units_anno, +) +from message_ix_models.util import as_codes, eval_anno + + +@pytest.mark.parametrize( + "kind, exp", + [ + ("node", ["ADVANCE", "ISR", "R11", "R12", "R14", "R32", "RCP", "ZMB"]), + ("relation", ["A", "B", "CD-LINKS"]), + ("year", ["A", "B"]), + ], +) +def test_codelists(kind, exp): + """:func:`codelists` returns the expected IDs.""" + assert exp == codelists(kind) + + +class TestGetCodes: + """Test :func:`get_codes` for different code lists.""" + + @pytest.mark.parametrize( + "name", + ( + "cd_links/unit", + "commodity", + "level", + "node/ISR", + "node/R11", + "node/R14", + "node/R32", + "node/RCP", + "node/ZMB", + "technology", + "relation/A", + "relation/B", + "relation/CD-LINKS", + "year/A", + "year/B", + ), + ) + def test_get_codes(self, name): + """The included code lists can be loaded.""" + get_codes(name) + + def test_hierarchy(self): + """get_codes() returns objects with the expected hierarchical relationship.""" + codes = get_codes("node/R11") + + AUT = codes[codes.index("AUT")] + R11_WEU = codes[codes.index("R11_WEU")] + World = codes[codes.index("World")] + + assert R11_WEU is AUT.parent + assert AUT in R11_WEU.child + + assert World is R11_WEU.parent + assert R11_WEU in World.child + + def test_commodities(self): + data = get_codes("commodity") + + # Some expected commodities are present + for check in "coal", "electr": + assert check in data + + # Units for one commodity can be retrieved and parsed + coal = data[data.index("coal")] + assert isinstance(eval_anno(coal, "units"), registry.Unit) + + # Descriptions are parsed without new lines + crudeoil = data[data.index("crudeoil")] + assert "\n" not in str(crudeoil.description) + + # Processing a second time does not double-wrap the unit expressions + process_commodity_codes(data) + coal = data[data.index("coal")] + assert isinstance(eval_anno(coal, "units"), registry.Unit) + + def test_levels(self): + data = get_codes("level") + + # Some expected commodities are present + for check in "primary", "useful": + assert check in data + + # Descriptions are parsed without new lines + assert "\n" not in str(data[data.index("primary")].description) + + @pytest.mark.parametrize( + "codelist, to_check, length, member", + [ + ("RCP", "R5_MAF", 69, "CIV"), + ("R11", "R11_AFR", 50, "CIV"), + ("R14", "R14_AFR", 51, "CIV"), + ("R32", "R32SSA-L", 41, "CIV"), + ], + ) + def test_nodes(self, codelist, to_check, length, member): + """Tests of node codelists.""" + # Node codelist can be loaded + data = get_codes(f"node/{codelist}") + + # List contains a particular region + assert to_check in data + + # Region contains the correct number of countries + code = data[data.index(to_check)] + assert len(code.child) == length + + # A specific country is present in the region + assert member in code.child + + # get_region_codes() also works + region_codes = get_region_codes(codelist) + assert to_check in region_codes + # Does not include codes that are not children of "World" + assert member not in region_codes + + def test_node_historic_country(self): + """get_codes() handles ISO 3166 alpha-3 codes for historic countries.""" + assert "SCG" in get_codes("node/R11") + + @pytest.mark.parametrize( + "codelist, length, expected", + [ + ("A", 19, {"emission_factor": 15, "renewable formulation": 2}), + ("B", 319, {}), + ("CD-LINKS", 314, {"removed": 80}), + ], + ) + def test_relation(self, codelist, length, expected): + # Codelist can be loaded + data = get_codes(f"relation/{codelist}") + + # Number of codes is as expected + assert length == len(data) + + # Count codes by "group" annotation + group_count = defaultdict(lambda: 0) + for code in data: + try: + group = str(code.get_annotation(id="group").text) + except KeyError: + continue + group_count[group] += 1 + + # print(groups) + + # Each group has the expected number of members + for group, N in expected.items(): + assert N == group_count[group] + + def test_technologies(self): + # Retrieve the tech info without calling technologies.cli + data = get_codes("technology") + + # Check the length of the returned dataframe + assert len(data) == 377 + + # Get info on a certain technology + h2_fc_trp = data[data.index("h2_fc_trp")] + assert ["transport", "useful"] == eval( + str(h2_fc_trp.get_annotation(id="output").text) + ) + + # Check that the default value for 'vintaged' is False when omitted from the + # YAML file + elec_exp = data[data.index("elec_exp")] + assert False is eval(str(elec_exp.get_annotation(id="vintaged").text)) + + @pytest.mark.parametrize("codelist, length", [("A", 16), ("B", 28)]) + def test_year(self, codelist, length): + """Year code lists can be loaded and contain the correct number of codes. + + :seealso: :meth:`.TestScenarioInfo.test_year_from_codes`. + """ + # Year codelist can be loaded + data = get_codes(f"year/{codelist}") + + # List contains the expected number of codes + assert len(data) == length + + +def test_cli_techs(session_context, mix_models_cli): + """Test the `techs` CLI command.""" + # Command runs without error + result = mix_models_cli.assert_exit_0(["techs"]) + + # Result test + assert result.output.endswith("[5 rows x 8 columns]\n") + + # Path to the temporary file written by the command + path = Path(re.search("Write to (.*.csv)", result.output)[1]) + + # File was written in the local data directory + assert Path("technology.csv") == path.relative_to(session_context.local_data) + + # File was written with the expected contents + assert path.read_text().startswith( + "id,name,description,type,vintaged,sector,output,input\n" + "CF4_TCE,CF4_TCE,Tetrafluoromethane (CF4) Total Carbon Emissions," + "primary,False,dummy,\"['dummy', 'primary']\",\n" + ) + + +GSE_DATA = { + "colour": {"add": as_codes(["blue", "green", "red"])}, + # This is configuration to generate codes based on the colour set + "technology": {"add": [Code(id="foo-{colour.id}"), Code(id="bar")]}, +} + + +@pytest.mark.parametrize( + "colour_expr, expected", + [ + (None, {"foo-blue", "foo-green", "foo-red", "bar"}), + ("red", {"bar"}), # "red" has no .child codes + ("^.*(?" == repr(WorkflowStep(None)) + + +@pytest.mark.skipif( + condition=ixmp.__version__ < "3.5", + reason="ixmp.TimeSeries.url not available prior to ixmp 3.5.0", +) +def test_workflow(caplog, request, test_context): + # FIXME disentangle this to fewer tests of atomic behaviour + base_scenario = testing.bare_res(request, test_context, solved=False) + base_url = base_scenario.url + base_platform = base_scenario.platform.name + del base_scenario + + caplog.clear() + + # Create the workflow + wf = Workflow(test_context) + + # Model/base is created from nothing by calling base_scenario + wf.add_step("base", None, target=base_url) + # Model/A is created from Model/base by calling changes_a + wf.add_step("A", "base", changes_a) + # Model/B is created from Model/A by calling changes_b + wf.add_step("B", "A", changes_b, value=100.0) + + # "B solved" is created from "Model/B" by clone and running solve() + # clone=True without target= raises an exception + with pytest.raises(TypeError, match="target= must be supplied"): + wf.add_step("B solved", "B", solve, clone=True) + + wf.add_step("B solved", "B", solve, clone=True, target="foo/bar") + + # Trigger the creation and solve of Model/B and all required precursor scenarios + s = wf.run("B solved") + + # Scenario contains changes from the first and second step + assert "test_tech" in set(s.set("technology")) + assert 1 == len(s.par("technical_lifetime")) + # Scenario was solved + assert s.has_solution() + + # Log messages reflect workflow steps executed + start_index = 1 if caplog.messages[0].startswith("Cull") else 0 + mp = base_platform + m = "MESSAGEix-GLOBIOM R14 YB" + messages = [ + f"Loaded ixmp://{mp}/{m}/test_workflow#1", + f"Step runs on ixmp://{mp}/{m}/test_workflow#1", + "Execute ]*>", + f"…nothing returned, workflow will continue with {m}/test_workflow#1", + f"Step runs on ixmp://{mp}/{m}/test_workflow#1", + "Execute ]*>", + f"…nothing returned, workflow will continue with {m}/test_workflow#1", + f"Step runs on ixmp://{mp}/{m}/test_workflow#1", + " with context.dest_scenario={'model': 'foo', 'scenario': 'bar'}", + "Clone to foo/bar", + "Execute ]*>", + ] + for expr, message in zip(messages, caplog.messages[start_index:]): + assert re.match(expr, message) + + assert re.match( + r"""'B': +- +- 'context': + - +- 'A': + - + - 'context' \(above\) + - 'base': + - MESSAGEix-GLOBIOM R14 YB/test_workflow> + - 'context' \(above\) + - None""", + wf.describe("B"), + ) + + # Now truncate the workflow at "Model/A" + with pytest.raises(RuntimeError, match="Unable to locate platform info for"): + wf.truncate("A") + + # Add a full URL including platform info + with pytest.raises(KeyExistsError): + wf.add_step("base", None, target=f"ixmp://{base_platform}/{base_url}") + + wf.add_step("base", None, target=f"ixmp://{base_platform}/{base_url}", replace=True) + wf.truncate("A") + + # Description reflects that changes_a() will no longer be called + assert re.match( + r"""'B': +- +- 'context': + - +- 'A': + - MESSAGEix-GLOBIOM R14 YB/test_workflow> + - 'context' \(above\) + - None""", + wf.describe("B"), + ) diff --git a/nest/message_ix_models/tests/tools/__init__.py b/nest/message_ix_models/tests/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/nest/message_ix_models/tests/tools/test_advance.py b/nest/message_ix_models/tests/tools/test_advance.py new file mode 100644 index 0000000..b75d215 --- /dev/null +++ b/nest/message_ix_models/tests/tools/test_advance.py @@ -0,0 +1,49 @@ +from shutil import copyfile + +import pytest + +from message_ix_models.tools.advance import ( + DIMS, + LOCATION, + _fuzz_data, + advance_data, + get_advance_data, +) +from message_ix_models.util import package_data_path + + +@pytest.fixture(scope="module") +def advance_test_data(session_context): + # Copy test data from the package directory into the local data directory for + # `test_context`. get_advance_data() only uses this file if :mod:`message_data` is + # NOT installed. + target = session_context.get_local_path(*LOCATION) + target.parent.mkdir(parents=True) + copyfile(package_data_path("test", *LOCATION), target) + + +pytestmark = pytest.mark.usefixtures("advance_test_data") + + +def test_get_advance_data(session_context): + """Test :func:`.get_advance_data`.""" + # Returns a pd.Series with the expected index levels + result = get_advance_data() + assert DIMS == result.index.names + + # Returns a genno.Quantity with the expected units + result = advance_data("Transport|Service demand|Road|Freight") + assert {"[length]": 1, "[mass]": 1, "[time]": -1} == result.units.dimensionality + + +def test_fuzz_data(session_context): + """Test that :func:`_fuzz_data` runs successfully. + + NB this only produces a file in the :mod:`pytest` temporary directory. To update + the test specimen in the package directory that is used by + :func:`test_get_advance_data`, see the body of _fuzz_data. + """ + # size argument should be a fraction (~= 0.1) of the size of the test specimen + _fuzz_data( + size=50, include=[("Transport|Service demand|Road|Freight", "billion tkm/yr")] + ) diff --git a/nest/message_ix_models/tests/util/__init__.py b/nest/message_ix_models/tests/util/__init__.py new file mode 100644 index 0000000..354166e --- /dev/null +++ b/nest/message_ix_models/tests/util/__init__.py @@ -0,0 +1 @@ +"""Tests of submodules of :mod:`message_ix_models.util`.""" diff --git a/nest/message_ix_models/tests/util/test_cache.py b/nest/message_ix_models/tests/util/test_cache.py new file mode 100644 index 0000000..4247511 --- /dev/null +++ b/nest/message_ix_models/tests/util/test_cache.py @@ -0,0 +1,109 @@ +import logging +from copy import deepcopy + +import pytest +import sdmx.model +import xarray as xr +from genno.caching import hash_args +from ixmp.testing import assert_logs + +import message_ix_models.util.cache +from message_ix_models import ScenarioInfo +from message_ix_models.util import cached + +log = logging.getLogger(__name__) + + +class TestEncoder: + def test_sdmx(self): + """:mod:`message_ix_models` configures :class:`.Encoder` for :class:`.Code`.""" + codes0 = [sdmx.model.Code(id=f"FOO{i}", name="foo") for i in range(5)] + codes1 = [f"FOO{i}" for i in range(5)] + + # List of codes hashes the same as a list of their string IDs + expected = "40a0735385448dcbe745904ebfec7255995ca451" + assert expected == hash_args(codes0, bar="baz") == hash_args(codes1, bar="baz") + + +def test_cached(caplog, test_context, tmp_path): + """:func:`.cached` works as expected. + + .. todo:: test behaviour when :data:`.SKIP_CACHE` is :obj:`True` + """ + # Clear seen paths, so that log message below is guaranteed to occur + message_ix_models.util.cache.PATHS_SEEN.clear() + + # Store in the temporary directory for this session, to avoid collisions across + # sessions + test_context.cache_path = tmp_path.joinpath("cache") + + # A dummy path to be hashed as an argument + path_foo = tmp_path.joinpath("foo", "bar") + + with caplog.at_level(logging.DEBUG, logger="message_ix_models"): + + @cached + def func0(ctx, a, path, b=3): + """A test function.""" + log.info("func0 runs") + return f"{id(ctx)}, {a + b}" + + # Docstring is modified + assert "Data returned by this function is cached" in func0.__doc__ + # Message is logged + assert f"func0() will cache in {tmp_path.joinpath('cache')}" in caplog.messages + + @cached + def func1(x=1, y=2, **kwargs): + # Function with defaults for all arguments + log.info("func1 runs") + return x + y + + caplog.clear() + + # pathlib.Path argument is serialized to JSON as part of the argument hash; + # function runs, messages logged + with assert_logs(caplog, "func0 runs"): + result0 = func0(test_context, 1, path_foo) + + caplog.clear() + result1 = func0(test_context, 1, path_foo) + # Function does not run + assert "func0 runs" not in caplog.messages + assert caplog.messages[0].startswith("Cache hit for func0") + # Results identical + assert result0 == result1 + + # Different context object with identical contents hashes equal + ctx2 = deepcopy(test_context) + assert id(test_context) != id(ctx2) + + result2 = func0(ctx2, 1, path_foo) + # Function does not run + assert "func0 runs" not in caplog.messages + # Results are identical, i.e. including the old ID + assert result0 == result2 + + ctx2.delete() + caplog.clear() + + # Hash of no arguments is the same, function only runs once + assert 3 == func1() == func1() + assert 1 == sum(m == "func1 runs" for m in caplog.messages) + + # Warnings logged for unhashables; ScenarioInfo is hashed as dict + caplog.clear() + with assert_logs( + caplog, + [ + "ignores ", + "ignores ", + ], + ): + func1(ds=xr.Dataset(), mp=test_context.get_platform(), si=ScenarioInfo()) + + # Unserializable type raises an exception + with pytest.raises( + TypeError, match="Object of type slice is not JSON serializable" + ): + func1(arg=slice(None)) diff --git a/nest/message_ix_models/tests/util/test_click.py b/nest/message_ix_models/tests/util/test_click.py new file mode 100644 index 0000000..801371b --- /dev/null +++ b/nest/message_ix_models/tests/util/test_click.py @@ -0,0 +1,60 @@ +"""Basic tests of the command line.""" +from contextlib import contextmanager + +import click + +from message_ix_models.cli import main +from message_ix_models.util.click import common_params + + +@contextmanager +def temporary_command(group, func): + """Context manager that temporarily attaches command `func` to `group`.""" + try: + group.add_command(func) + yield + finally: + group.commands.pop(func.name) + + +def test_default_path_cb(session_context, mix_models_cli): + """Test :func:`.default_path_cb`.""" + + # Create a hidden command and attach it to the CLI + @click.command(name="_test_default_path_cb", hidden=True) + @common_params("rep_out_path") + @click.pass_obj + def func(ctx, rep_out_path): + print(ctx["rep_out_path"]) # Print the value stored on the Context object + + # Command parameters: --local-data gives the local data path, but the --rep-out-path + # option is *not* given + cmd = [f"--local-data={session_context.local_data}", func.name] + + # …so default_path_cb() should supply "{local_data}/reporting_output". + expected = session_context.local_data / "reporting_output" + + # Run the command + with temporary_command(main, func): + result = mix_models_cli.assert_exit_0(cmd) + + # The value was stored on, and retrieved from, `ctx` + assert f"{expected}\n" == result.output + + +def test_store_context(mix_models_cli): + """Test :func:`.store_context`.""" + + # Create a hidden command and attach it to the CLI + @click.command(name="_test_store_context", hidden=True) + @common_params("ssp") + @click.pass_obj + def func(ctx, ssp): + print(ctx["ssp"]) # Print the value stored on the Context object + + # Run the command with a valid value + with temporary_command(main, func): + result = mix_models_cli.assert_exit_0([func.name, "SSP2"]) + + # The value was stored on, and retrieved from, `ctx` + assert "SSP2\n" == result.output diff --git a/nest/message_ix_models/tests/util/test_config.py b/nest/message_ix_models/tests/util/test_config.py new file mode 100644 index 0000000..0962a81 --- /dev/null +++ b/nest/message_ix_models/tests/util/test_config.py @@ -0,0 +1,133 @@ +from dataclasses import dataclass, field +from typing import Type + +import pytest + +from message_ix_models.util.config import ConfigHelper + + +class TestConfigHelper: + @pytest.fixture + def cls(self) -> Type: + """A class which inherits from ConfigHelper.""" + + @dataclass + class Config(ConfigHelper): + foo_1: int = 1 + foo_2: str = "" + foo_3: bool = True + + return Config + + @pytest.fixture + def cls2(self, cls) -> Type: + """A class with an attribute.""" + + @dataclass + class Config3: + """NOT a ConfigHelper subclass.""" + + baz_1: int = 1 + baz_2: int = 2 + + @dataclass + class Config2(ConfigHelper): + bar_1: float = 0.01 + subconfig_a: cls = field(default_factory=cls) # type: ignore [valid-type] + subconfig_b: Config3 = field(default_factory=Config3) + + return Config2 + + @pytest.fixture + def c(self, cls): + return cls(foo_1=99, foo_2="bar", foo_3=False) + + @pytest.fixture + def c2(self, cls, cls2): + result = cls2(bar_1=3.14, subconfig_a=cls(foo_1=99, foo_2="bar", foo_3=False)) + result.subconfig_b.baz_1 = 2 + result.subconfig_b.baz_2 = 1 + return result + + def test_canonical_name(self, cls): + assert "foo_1" == cls._canonical_name("foo 1") + assert "foo_2" == cls._canonical_name("foo-2") + assert "foo_3" == cls._canonical_name("foo_3") + assert None is cls._canonical_name("foo 4") + + def test_from_dict(self, cls, c): + values = {"foo 1": 99, "foo-2": "bar", "foo_3": False} + assert c == cls.from_dict({"foo 1": 99, "foo-2": "bar", "foo_3": False}) + + values.update(foo_4=3.14) + with pytest.raises(ValueError): + cls.from_dict(values) + + def test_read_file(self, caplog, tmp_path, cls, cls2, c, c2): + # Write a YAML snippet to file + yaml_path = tmp_path.joinpath("config.yaml") + yaml_path.write_text( + """ +foo 1: 99 + +foo-2: bar + +foo_3: false + +foo_4: 3.14 + """ + ) + + obj1 = cls() + # Method runs + obj1.read_file(yaml_path, fail=False) + # Values are read + assert c == obj1, obj1 + # Messages are logged + assert [ + "Config has no attribute for file section 'foo_4'; ignored" + ] == caplog.messages + caplog.clear() + + yaml_path.write_text( + """ +bar_1: 3.14 +subconfig a: + foo 1: 99 + foo-2: bar + foo_3: false +subconfig-b: # No name manipulation for subkeys here + baz_1: 2 + baz_2: 1 + """ + ) + + obj2 = cls2() + # Method runs + obj2.read_file(yaml_path, fail=False) + # Values are read + assert c2 == obj2, obj2 + + json_path = tmp_path.joinpath("config.json") + json_path.write_text( + """{ +"foo 1": 99, +"foo-2": "bar", +"foo_3": false +} """ + ) + + obj3 = cls() + # Method runs + obj3.read_file(json_path) + # Values are read + assert c == obj3, obj3 + + obj4 = cls() + with pytest.raises(NotImplementedError): + obj4.read_file(yaml_path.with_suffix(".xlsx")) + + def test_replace(self, c): + result = c.replace(foo_2="baz") + assert result is not c + assert "baz" == result.foo_2 diff --git a/nest/message_ix_models/tests/util/test_context.py b/nest/message_ix_models/tests/util/test_context.py new file mode 100644 index 0000000..4958da1 --- /dev/null +++ b/nest/message_ix_models/tests/util/test_context.py @@ -0,0 +1,251 @@ +import logging +import re +from copy import deepcopy +from pathlib import Path + +import click +import ixmp +import pytest +from message_ix import Scenario + +from message_ix_models import Context + + +class TestContext: + def test_get_instance(self, session_context): + c = Context() + assert c is Context.get_instance(-1) + c.delete() + + def test_only(self): + # Ensure at least 2 instances exist + c2 = Context() + + with pytest.raises(IndexError, match=r"ambiguous: \d+ Context instances"): + Context.only() + + c2.delete() + + def test_clone_to_dest(self, caplog, test_context): + ctx = test_context + + platform_name = ctx.platform_info["name"] + model_name = "foo model" + scenario_name = "bar scenario" + + # Works with direct settings, no URL + c = deepcopy(ctx) + + # Force the base scenario info to be empty + c.scenario_info.clear() + c.dest_scenario = dict(model=model_name, scenario=scenario_name) + + # Fails with create=False + with pytest.raises( + TypeError, match="missing 1 required positional argument: 'model'" + ): + c.clone_to_dest(create=False) + + # Succeeds with default create=True + s = c.clone_to_dest() + + # Base scenario was created + assert "Base scenario not given or found" in caplog.messages + + # Works with a URL to parse and no base scenario + url = f"ixmp://{platform_name}/{model_name}/{scenario_name}" + + c2 = deepcopy(ctx) + c2.scenario_info.clear() + c2.dest = url + s = c2.clone_to_dest() + assert model_name == s.model and scenario_name == s.scenario + + del s + + # Works with a base scenario + c2.handle_cli_args(url=url) + c2.dest_scenario = dict(model="baz model", scenario="baz scenario") + c2.dest_platform.clear() + s = c2.clone_to_dest() + + assert s.model.startswith("baz") and s.scenario.startswith("baz") + + def test_dealias(self, caplog): + """Aliasing works with :meth:`Context.__init__`, :meth:`Context.update`.""" + c = Context() + c.update(regions="R99") + assert [] == caplog.messages # No log warnings for core Config, .model.Config + assert "R99" == c.model.regions + + c = Context(regions="R98") + assert [ + "Create a Config instance instead of passing ['regions'] to Context()" + ] == caplog.messages + caplog.clear() + assert "R98" == c.model.regions == c.regions + assert [] == caplog.messages # No log warnings for access + + def test_default_value(self, test_context): + # Setting is missing + with pytest.raises(AttributeError): + test_context.foo + + # setdefault() returns the new value + assert test_context.setdefault("foo", 23) == 23 + + # setdefault() returns the existing value + assert test_context.setdefault("foo", 45) == 23 + + # Attribute access works + assert test_context.foo == 23 + + def test_deepcopy(self, session_context): + """Paths are preserved through deepcopy().""" + ld = session_context.local_data + + c = deepcopy(session_context) + + assert ld == c.local_data + + def test_get_cache_path(self, pytestconfig, test_context): + """cache_path() returns the expected output.""" + # One of two values depending on whether the user has given --local-cache + assert test_context.get_cache_path("pytest", "bar.pkl") in ( + test_context.local_data.joinpath("cache", "pytest", "bar.pkl"), + Path(pytestconfig.cache.makedir("cache")).joinpath("pytest", "bar.pkl"), + ) + + def test_get_local_path(self, tmp_path_factory, session_context): + assert str(tmp_path_factory.mktemp("data").joinpath("foo", "bar")).replace( + "data1", "data0" + ) == str(session_context.get_local_path("foo", "bar")) + + def test_get_platform(self, session_context): + assert isinstance(session_context.get_platform(), ixmp.Platform) + assert isinstance(session_context.get_platform(reload=True), ixmp.Platform) + + def test_get_scenario(self, test_context): + test_context.scenario_info = dict(model="model name", scenario="scenario name") + with pytest.raises(ValueError): + test_context.get_scenario() + + def test_set_scenario(self, test_context): + mp = test_context.get_platform() + s = Scenario(mp, "foo", "bar", version="new") + + # set_scenario() updates Context.scenario_info + test_context.scenario_info = dict() + test_context.set_scenario(s) + assert ( + dict(model="foo", scenario="bar", version=0) == test_context.scenario_info + ) + + def test_write_debug_archive(self, mix_models_cli): + """:meth:`.write_debug_archive` works.""" + # Create a CLI command attached to the hidden "_test" group + + from message_ix_models.testing import cli_test_group + + @cli_test_group.command("write-debug-archive") + @click.pass_obj + def _(context): + # Register one file to be archived + p = context.core.local_data.joinpath("foo.txt") + context.core.debug_paths.append(p) + + # Write some text to this file + p.write_text("Here is some debug output in a file.") + + # Register a non-existent path + context.core.debug_paths.append(p.with_name("bar.txt")) + + # Write the archive + context.write_debug_archive() + + # Invoke the command; I/O occurs in a temporary directory + result = mix_models_cli.invoke(["_test", "write-debug-archive"]) + + # Output path is constructed as expected; file exists + match = re.search( + r"Write to: (.*main-_test-write-debug-archive-[\dabcdefT\-]+.zip)", + result.output, + ) + assert Path(match.group(1)).exists() + + # Log output is generated for the non-existent path in Context.debug_paths + assert re.search(r"Not found: .*bar.txt", result.output) + + def test_handle_cli_args(self): + p = "platform name" + m = "model name" + s = "scenario name" + v = "42" + + args1 = dict( + local_data=Path("foo", "bar"), + platform=p, + model_name=m, + scenario_name=s, + version=v, + ) + + expected = dict( + local_data=args1["local_data"], + platform_info=dict(name=p), + scenario_info=dict(model=m, scenario=s, version=v), + ) + + ctx = Context() + ctx.handle_cli_args(**args1) + assert all(ctx[k] == v for k, v in expected.items()) + + url = f"ixmp://{p}/{m}/{s}#{v}" + args2 = args1.copy() + args2["url"] = url + + with pytest.raises(click.BadOptionUsage, match="redundant with --url"): + ctx.handle_cli_args(**args2) + + # New instance + ctx.delete() + ctx = Context() + + # Platform and scenario info are empty + assert 0 == len(ctx["platform_info"]) == len(ctx["scenario_info"]) + + ctx.handle_cli_args(url=url, local_data=args1["local_data"]) + + # ixmp parse_url() converts the version number to an int + expected["scenario_info"]["version"] = int(v) + # url is also stored + expected["url"] = url + + assert all(ctx[k] == v for k, v in expected.items()), ctx + + ctx.delete() + + def test_repr(self): + c = Context() + assert re.fullmatch("", repr(c)) + + def test_use_defaults(self, caplog): + caplog.set_level(logging.INFO) + + c = Context() + + defaults = dict(foo=["foo2", "foo1", "foo3"], bar=["bar1", "bar3"]) + + c.foo = "foo1" + + c.use_defaults(defaults) + assert ["Use default bar=bar1"] == caplog.messages + + c.bar = "bar2" + + with pytest.raises( + ValueError, match=re.escape("bar must be in ['bar1', 'bar3']; got bar2") + ): + c.use_defaults(defaults) + + c.delete() diff --git a/nest/message_ix_models/tests/util/test_logging.py b/nest/message_ix_models/tests/util/test_logging.py new file mode 100644 index 0000000..c9d7e1c --- /dev/null +++ b/nest/message_ix_models/tests/util/test_logging.py @@ -0,0 +1,40 @@ +import logging +import re + +from message_ix_models.util._logging import mark_time, silence_log + + +def test_mark_time(caplog): + # Call 3 times + mark_time() # Will only log if already called during the course of another test + mark_time() + mark_time() + + # Either 2 or 3 records + assert len(caplog.records) in (2, 3) + + # Each message matches the expected format + assert all(re.match(r" \+\d+\.\d = \d+\.\d seconds", m) for m in caplog.messages) + + +def test_silence_log(caplog): + # An example logger + log = logging.getLogger("message_ix_models.model") + + msg = "Here's a warning!" + + # pytest caplog fixture picks up warning messages + log.warning(msg) + assert [msg] == caplog.messages + + caplog.clear() + + # silence_log() hides the messages + with silence_log(): + log.warning(msg) + + assert [] == caplog.messages + + # After the "with" block, logging is restored + log.warning(msg) + assert [msg] == caplog.messages diff --git a/nest/message_ix_models/tests/util/test_node.py b/nest/message_ix_models/tests/util/test_node.py new file mode 100644 index 0000000..d859ed7 --- /dev/null +++ b/nest/message_ix_models/tests/util/test_node.py @@ -0,0 +1,152 @@ +"""Tests of :mod:`message_ix_models.util.node`.""" +import re + +import pandas as pd +import pytest +from genno import Quantity +from message_ix import Scenario, make_df + +from message_ix_models.model.bare import create_res +from message_ix_models.model.structure import get_codes +from message_ix_models.util import ( + adapt_R11_R12, + adapt_R11_R14, + broadcast, + identify_nodes, +) +from message_ix_models.util.node import MappingAdapter + + +def test_mapping_adapter(): + """Generic test of MappingAdapter.""" + a = MappingAdapter({"foo": [("a", "x"), ("a", "y"), ("b", "z")]}) + + columns = ["foo", "bar", "value"] + + df = pd.DataFrame([["a", "m", 1], ["b", "n", 2]], columns=columns) + + result = a(df) + + assert all(columns + ["unit"] == result.columns) + + with pytest.raises(TypeError): + a(1.2) + + +PAR = "technical_lifetime" +VALUE = [0.1, 0.2] + + +@pytest.fixture(scope="function") +def input(): + """Fixture: test data for :func:`.adapt_R11_R14`.""" + R11_all = get_codes("node/R11") + R11_reg = R11_all[R11_all.index("World")].child + df = make_df( + PAR, technology="coal_ppl", year_vtg=[2021, 2022], value=[1.2, 3.4], unit="year" + ).pipe(broadcast, node_loc=R11_reg) + + # Set a specific value for the regions to be broadcast + df["value"] = df["value"].where(df["node_loc"] != "R11_CPA", VALUE[0]) + df["value"] = df["value"].where(df["node_loc"] != "R11_FSU", VALUE[1]) + + return {PAR: df} + + +@pytest.mark.parametrize( + "func,N,expected,target_nodes", + [ + (adapt_R11_R12, 12, VALUE[0], ("R12_CHN", "R12_RCPA")), + (adapt_R11_R14, 14, VALUE[1], ("R14_CAS", "R14_RUS", "R14_SCS", "R14_UBM")), + ], +) +def test_adapt_df(input, func, N, expected, target_nodes): + """:func:`.adapt_R11_R14` handles :class:`pandas.DataFrame`.""" + # Function runs + output = func(input) + + # Output is a dict containing 1 entry + df_out = output.pop(PAR) + assert 0 == len(output) + + # Output covers all R14 regions + all_nodes = get_codes(f"node/R{N}") + regions = all_nodes[all_nodes.index("World")].child + assert set(regions) == set(df_out["node_loc"]) + + # Output has expected length + assert N * 2 == len(df_out) + + # Output values for new regions match input value for the base region + assert (expected == df_out[df_out["node_loc"].isin(target_nodes)]["value"]).all() + + +@pytest.mark.parametrize( + "func,expected,node_loc", + [(adapt_R11_R12, VALUE[0], "R12_CHN"), (adapt_R11_R14, VALUE[1], "R14_CAS")], +) +def test_adapt_qty(input, func, expected, node_loc): + """:func:`.adapt_R11_R14` handles :class:`genno.Quantity`.""" + # Convert to genno.Quantity + df = input[PAR] + input[PAR] = Quantity.from_series(df.set_index(df.columns[:-2].tolist())["value"]) + input[PAR].attrs["_unit"] = df["unit"].unique()[0] + + # Function runs + output = func(input) + + # Output is a dict containing 1 entry + qty_out = output.pop(PAR) + assert 0 == len(output) + + assert isinstance(qty_out, Quantity) + assert "year" == qty_out.attrs["_unit"] + + # Output values for new regions match input value for the base region + assert ( + expected == qty_out.sel(node_loc=node_loc, technology="coal_ppl", year=2022) + ).all() + + +@pytest.mark.parametrize("regions", ["R11", "R12", "R14"]) +def test_identify_nodes(caplog, test_context, regions): + ctx = test_context + ctx.regions = regions + scenario = create_res(ctx) + + # The ID of the node codelist can be recovered from scenario contents + assert regions == identify_nodes(scenario) + + # A node like "R11_GLB" is ignored + with scenario.transact(): + scenario.add_set("node", f"{regions}_GLB") + assert regions == identify_nodes(scenario) + + # Remove one element from the node set + with scenario.transact(): + scenario.remove_set("node", scenario.set("node").tolist()[0]) + + # No longer any match + with pytest.raises( + ValueError, match=f"IDs suggest codelist {repr(regions)}, values do not match" + ): + identify_nodes(scenario) + + +def test_identify_nodes1(test_context): + mp = test_context.get_platform() + scenario = Scenario( + mp, model="identify_nodes", scenario="identify_nodes", version="new" + ) + scenario.add_set("technology", "t") + scenario.add_set("year", 0) + scenario.commit("") + + with scenario.transact(): + scenario.add_set("node", "R99_ZZZ") + + with pytest.raises( + ValueError, + match=re.escape("Couldn't identify node codelist from ['R99_ZZZ', 'World']"), + ): + identify_nodes(scenario) diff --git a/nest/message_ix_models/tests/util/test_scenarioinfo.py b/nest/message_ix_models/tests/util/test_scenarioinfo.py new file mode 100644 index 0000000..3b051f9 --- /dev/null +++ b/nest/message_ix_models/tests/util/test_scenarioinfo.py @@ -0,0 +1,212 @@ +import logging + +import pandas as pd +import pytest +from message_ix import make_df +from message_ix.testing import make_dantzig +from pandas.testing import assert_frame_equal +from sdmx.model import Code + +from message_ix_models import ScenarioInfo, Spec +from message_ix_models.model.structure import get_codes, process_technology_codes +from message_ix_models.util import as_codes + + +class TestScenarioInfo: + def test_empty(self): + """ScenarioInfo created from scratch.""" + info = ScenarioInfo() + + # Set values directly + info.set["node"] = [Code(id="AT", name="Austria")] + info.set["year"] = [1000, 1010, 1020, 1030] + info.y0 = 1010 + + # Shorthand properties + + # `yv_ya` is generated + assert_frame_equal( + pd.DataFrame( + [ + [1010, 1010], + [1010, 1020], + [1010, 1030], + [1020, 1020], + [1020, 1030], + [1030, 1030], + ], + columns=["year_vtg", "year_act"], + ), + info.yv_ya, + ) + + # List of Codes is converted to list of strings + assert ["AT"] == info.N + + # Only years >= y0 + assert [1010, 1020, 1030] == info.Y + + def test_units(self, caplog): + """Test both :meth:`.io_units` and :meth:`.units_for`.""" + # Prepare ScenarioInfo with some commodities and technologies + info = ScenarioInfo() + info.set["commodity"] = get_codes("commodity") + # NB create a technology with units annotation, since technology.yaml lacks + # units as of 2022-07-20 + t = as_codes({"example tech": {"units": "coulomb"}}) + process_technology_codes(t) + info.set["technology"].extend(t) + + # units_for() runs, produces energy units + c_units = info.units_for("commodity", "electr") + assert {"[length]": 2, "[mass]": 1, "[time]": -2} == c_units.dimensionality + + # units_for() runs, produces expected units + t_units = info.units_for("technology", "example tech") + assert {"[current]": 1, "[time]": 1} == t_units.dimensionality + + # ValueError is raised for invalid input + with pytest.raises(ValueError): + info.units_for("commodity", "not a commodity") + + # io_units() runs, produces a ratio of commodity / technology units + with caplog.at_level(logging.DEBUG, "message_ix_models"): + assert (c_units / t_units) == info.io_units( + "example tech", "electr", level="useful" + ) + # level= keyword argument → logged warning + assert "level = 'useful' ignored" == caplog.messages[-1] + + def test_from_scenario(self, test_context): + """ScenarioInfo initialized from an existing Scenario.""" + mp = test_context.get_platform() + scenario = make_dantzig(mp, multi_year=True) + + # ScenarioInfo can be initialized from the scenario + info = ScenarioInfo(scenario) + + # Shorthand properties + assert_frame_equal( + pd.DataFrame( + [ + [1962, 1963], + [1962, 1964], + [1962, 1965], + [1963, 1963], + [1963, 1964], + [1963, 1965], + [1964, 1964], + [1964, 1965], + [1965, 1965], + ], + columns=["year_vtg", "year_act"], + ), + info.yv_ya, + ) + assert [ + "World", + "seattle", + "san-diego", + "new-york", + "chicago", + "topeka", + ] == info.N + assert 1963 == info.y0 + assert [1963, 1964, 1965] == info.Y + + def test_repr(self): + si = ScenarioInfo() + si.set["foo"] = [1, 2, 3] + assert "" == repr(si) + + def test_update(self): + si = ScenarioInfo() + si.par["demand"] = make_df("demand") + + # update() fails + with pytest.raises(NotImplementedError): + ScenarioInfo().update(si) + + @pytest.mark.parametrize( + "codelist, y0, N_all, N_Y, y_m1, dp_checks", + [ + ( + "A", + 2020, + 16, + 10, + 2110, + ((1990, 10), (2010, 10), (2020, 10), (2050, 10), (2110, 10)), + ), + ( + "B", + 2020, + 28, + 14, + 2110, + ((1990, 5), (2010, 5), (2020, 5), (2055, 5), (2110, 10)), + ), + ], + ) + def test_year_from_codes(self, caplog, codelist, y0, N_all, N_Y, y_m1, dp_checks): + caplog.set_level(logging.DEBUG, logger="message_ix_models") + + info = ScenarioInfo() + codes = get_codes(f"year/{codelist}") + info.year_from_codes(codes) + + # First model period + assert y0 == info.y0 + assert ("firstmodelyear", y0) in info.set["cat_year"] + + # Total number of periods + assert N_all == len(info.set["year"]) + + # Number of model periods + assert N_Y == len(info.Y) + + # Final period + assert y_m1 == info.Y[-1] + + # Convert the data frame to a series + dp = info.par["duration_period"].set_index("year")["value"] + + # duration_period entries are as expected + for key, expected in dp_checks: + assert expected == dp[key] + + # Test logging + assert 0 == len(caplog.messages) + + info.year_from_codes(codes) + + assert 3 == len(caplog.messages) + assert all(msg.startswith("Discard existing") for msg in caplog.messages) + + +class TestSpec: + def test_getitem(self): + s = Spec() + with pytest.raises(KeyError): + s["foo"] + + def test_setitem(self): + s = Spec() + + # Setting a valid key via attribute access syntax works + s.add = ScenarioInfo() + # Setting a valid key via item access syntax works + s["add"] = ScenarioInfo() + + # Setting an invalid key raises KeyError + with pytest.raises(KeyError): + s["foo"] = ScenarioInfo() + + def test_merge(self): + s1 = Spec() + s1.add.set["technology"] = ["t1", "t3", "t5"] + s2 = Spec() + s2.add.set["technology"] = ["t2", "t4", "t6"] + + s3 = Spec.merge(s1, s2) + assert 6 == len(s3.add.set["technology"]) diff --git a/nest/message_ix_models/tests/util/test_sdmx.py b/nest/message_ix_models/tests/util/test_sdmx.py new file mode 100644 index 0000000..f39ed33 --- /dev/null +++ b/nest/message_ix_models/tests/util/test_sdmx.py @@ -0,0 +1,25 @@ +import logging +import re + +from sdmx.model import Annotation, Code + +from message_ix_models.util.sdmx import eval_anno + + +def test_eval_anno(caplog): + c = Code() + + assert None is eval_anno(c, "foo") + + c.annotations.append(Annotation(id="foo", text="bar baz")) + + with caplog.at_level(logging.DEBUG, logger="message_ix_models"): + assert "bar baz" == eval_anno(c, "foo") + + assert re.fullmatch( + r"Could not eval\('bar baz'\): .* \(, line 1\)", caplog.messages[0] + ) + + c.annotations.append(Annotation(id="qux", text="3 + 4")) + + assert 7 == eval_anno(c, id="qux") diff --git a/nest/message_ix_models/tools/__init__.py b/nest/message_ix_models/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/nest/message_ix_models/tools/advance.py b/nest/message_ix_models/tools/advance.py new file mode 100644 index 0000000..3dc2adf --- /dev/null +++ b/nest/message_ix_models/tools/advance.py @@ -0,0 +1,171 @@ +"""Handle data from the ADVANCE project.""" +import logging +from pathlib import Path +from typing import List, Optional, Tuple +from zipfile import ZIP_DEFLATED, ZipFile + +import numpy as np +import pandas as pd +import pint +from genno import Quantity + +from message_ix_models.util import ( + cached, + local_data_path, + maybe_query, + private_data_path, +) + +log = logging.getLogger(__name__) + +#: Expected location of the ADVANCE WP2 data snapshot. +LOCATION = "advance", "advance_compare_20171018-134445.csv.zip" + +#: Name of the data file within the archive. +NAME = "advance_compare_20171018-134445.csv" + +#: Standard dimensions for data produced as snapshots from the IIASA ENE Program +#: “WorkDB”. +#: +#: .. todo:: Move to a common location for use with other snapshots in the same format. +DIMS = ["model", "scenario", "region", "variable", "unit", "year"] + + +@cached +def get_advance_data(query: Optional[str] = None) -> pd.Series: + """Return data from the ADVANCE Work Package 2 data snapshot at :data:`LOCATION`. + + Parameters + ---------- + query : str, optional + Passed to :meth:`pandas.DataFrame.query` to limit the returned values. + + Returns + ------- + pandas.Series + with a :class:`pandas.MultiIndex` having the levels :data:`.DIMS`. + """ + try: + path = private_data_path(*LOCATION) + except TypeError: + path = local_data_path(*LOCATION) + + return _read_workdb_snapshot(path, NAME).pipe(maybe_query, query) + + +def advance_data(variable: str, query: Optional[str] = None) -> Quantity: + """Return a single ADVANCE data `variable` as a :class:`genno.Quantity`. + + Parameters + ---------- + query : str, optional + Passed to :func:`get_advance_data`. + + Returns + ------- + genno.Quantity + with the dimensions :data:`.DIMS` and name `variable`. If the units of the data + for `variable` are consistent and parseable by :mod:`pint`, the returned + Quantity has these units; otherwise units are discarded and the returned + Quantity is dimensionless. + """ + data = ( + get_advance_data(query) + .rename("value") + .xs(variable, level="variable") + .reset_index("unit") + ) + if len(data.unit.unique()) > 1: # pragma: no cover + log.info(f"Non-unique units for {variable!r}; discarded") + units = "" + else: + units = data.unit.iloc[0] + + result = Quantity(data["value"], name=variable) + + try: + result.units = units + except pint.errors.PintError as e: # pragma: no cover + log.info(f'"{e}" when parsing {units!r}; discarded') + + return result + + +@cached +def _read_workdb_snapshot(path: Path, name: str) -> pd.Series: + """Read the data file. + + The expected format is a ZIP archive at `path` containing a member at `name` in CSV + format, with columns corresponding to :data:`DIMS`, except for “year”, which is + stored as column headers (‘wide’ format). (This corresponds to an older version of + the “IAMC format,” without more recent additions intended to represent sub-annual + time resolution using a separate column.) + + .. todo:: Move to a general location for use with other files in the same format. + """ + with ZipFile(path) as zf: # Open the ZIP archive + with zf.open(name) as f: # Open a particular member + # - Read data using upper case column names, then convert to lower-case. + # - Drop null rows. + # - Stack the “year” dimension (‘long’ format), creating a pd.Series. + # - Apply the index names. + return ( + pd.read_csv(f, index_col=list(map(str.upper, DIMS[:-1]))) + .rename(columns=lambda c: int(c)) + .dropna(how="all") + .stack() + .rename_axis(DIMS) + ) + + +def _fuzz_data(size=1e2, include: List[Tuple[str, str]] = []): + """Select a subset of the data for use in testing. + + Parameters + ---------- + size : numeric + Number of rows to include. + include : sequence of 2-tuple (str, str) + (variable name, unit) to include. The data will be partly duplicated to ensure + the given variable name(s) are included. + """ + size = int(size) + rng = np.random.default_rng() + + # - Select `size` rows at random from the full data set. + # - Use their index for a new pd.Series with random data. + # - Convert to pd.DataFrame with upper-case column names + # - Drop duplicated indices + # - Return to original wide format. + columns = list(map(str.upper, DIMS)) + dfs = [ + pd.Series( + rng.random(size), index=get_advance_data().sample(size).index, name="value" + ) + .rename_axis(columns) + .reset_index() + .drop_duplicates(subset=columns) + .pivot(index=columns[:-1], columns="YEAR", values="value") + ] + + # Duplicate data for (variable, unit) pairs required per `include` + for variable, unit in include: + dfs.append( + dfs[0] + .query(f"VARIABLE != {variable!r}") + .assign(VARIABLE=variable, UNIT=unit) + ) + + # Path for output archive + + # For ordinary testing, output to a temporary directory + target = local_data_path("test", *LOCATION) + # To update/overwrite the data file in the repo, uncomment this line + # target = package_data_path("test", *LOCATION) + + target.parent.mkdir(exist_ok=True, parents=True) + + # Concatenate data, write to the target member of the target + with ZipFile(target, "w", ZIP_DEFLATED) as zf: + with zf.open(NAME, "w") as f: + pd.concat(dfs).to_csv(f, index=False) diff --git a/nest/message_ix_models/util/__init__.py b/nest/message_ix_models/util/__init__.py new file mode 100644 index 0000000..e061b65 --- /dev/null +++ b/nest/message_ix_models/util/__init__.py @@ -0,0 +1,577 @@ +import logging +from collections import ChainMap, defaultdict +from typing import Dict, Mapping, MutableMapping, Optional, Sequence, Union + +import message_ix +import pandas as pd +import pint +from message_ix.models import MESSAGE_ITEMS + +from ._convert_units import convert_units, series_of_pint_quantity +from .cache import cached +from .common import ( + MESSAGE_DATA_PATH, + MESSAGE_MODELS_PATH, + load_package_data, + load_private_data, + local_data_path, + package_data_path, + private_data_path, +) +from .node import adapt_R11_R12, adapt_R11_R14, identify_nodes, nodes_ex_world +from .scenarioinfo import ScenarioInfo +from .sdmx import CodeLike, as_codes, eval_anno + +__all__ = [ + "MESSAGE_DATA_PATH", + "MESSAGE_MODELS_PATH", + "adapt_R11_R12", + "adapt_R11_R14", + "as_codes", + "broadcast", + "cached", + "check_support", + "convert_units", + "eval_anno", + "identify_nodes", + "load_package_data", + "load_private_data", + "local_data_path", + "make_io", + "maybe_query", + "package_data_path", + "private_data_path", + "series_of_pint_quantity", +] + +log = logging.getLogger(__name__) + + +def add_par_data( + scenario: message_ix.Scenario, + data: Mapping[str, pd.DataFrame], + dry_run: bool = False, +): + """Add `data` to `scenario`. + + Parameters + ---------- + data + Dict with keys that are parameter names, and values are pd.DataFrame or other + arguments + dry_run : optional + Only show what would be done. + + See also + -------- + strip_par_data + """ + # TODO optionally add units automatically + + total = 0 + + for par_name, values in data.items(): + N = values.shape[0] + log.info(f"{N} rows in {repr(par_name)}") + log.debug("\n" + values.to_string(max_rows=5)) + + total += N + + if dry_run: + continue + + # Work around iiasa/ixmp#425 + values["unit"] = values["unit"].str.replace("^$", "-", regex=True) + + try: + scenario.add_par(par_name, values) + except Exception: # pragma: no cover + print(values.head()) + raise + + return total + + +def aggregate_codes(df: pd.DataFrame, dim: str, codes): # pragma: no cover + """Aggregate `df` along dimension `dim` according to `codes`.""" + raise NotImplementedError + + # Construct an inverse mapping + mapping = {} + for code in codes: + mapping.update({child.id: code.id for child in code.child}) + + for key, group_series in df.groupby(dim): + print(key, group_series.replace({dim: mapping})) + + +def broadcast( + df: pd.DataFrame, labels: Optional[pd.DataFrame] = None, **kwargs +) -> pd.DataFrame: + """Fill missing data in `df` by broadcasting. + + :func:`broadcast` is suitable for use with partly-filled data frames returned by + :func:`.message_ix.util.make_df`, with 1 column per dimension, plus a "value" + column. It is also usable with :meth:`pandas.DataFrame.pipe` for chained operations. + + `labels` (if any) are handled first: one copy or duplicate of `df` is produced for + each row (set of labels) in this argument. Then, `kwargs` are handled; + :func:`broadcast` returns one copy for each element in the cartesian product of the + dimension labels given by `kwargs`. + + Parameters + ---------- + labels : pandas.DataFrame + Each column (dimension) corresponds to one in `df`. Each row represents one + matched set of labels for those dimensions. + kwargs + Keys are dimensions. Values are labels along that dimension to fill. + + Returns + ------- + pandas.DataFrame + The length is either 1 or an integer multiple of the length of `df`. + + Raises + ------ + ValueError + if any of the columns in `labels` or `kwargs` are not present in `df`, or if + those columns are present but not empty. + + Examples + -------- + >>> from message_ix import make_df + >>> from message_ix_models.util import broadcast + # Create a base data frame with some empty columns + >>> base = make_df("input", technology="t", value=[1.1, 2.2]) + # Broadcast (duplicate) the data across 2 dimensions + >>> df = base.pipe(broadcast, node_loc=["node A", "node B"], mode=["m0", "m1"]) + # Show part of the result + >>> df.dropna(axis=1) + mode node_loc technology value + 0 m0 node A t 1.1 + 1 m0 node A t 2.2 + 2 m0 node B t 1.1 + 3 m0 node B t 2.2 + 4 m1 node A t 1.1 + 5 m1 node A t 2.2 + 6 m1 node B t 1.1 + 7 m1 node B t 2.2 + """ + + def _check_dim(d): + try: + if not df[d].isna().all(): + raise ValueError(f"Dimension {d} was not empty\n\n{df.head()}") + except KeyError: + raise ValueError(f"Dimension {d} not among {list(df.columns)}") + + # Broadcast using matched labels for 1+ dimensions from a data frame + if labels is not None: + # Check the dimensions + for dim in labels.columns: + _check_dim(dim) + # Concatenate 1 copy of `df` for each row in `labels` + df = pd.concat( + [df.assign(**row) for _, row in labels.iterrows()], ignore_index=True + ) + + # Next, broadcast other dimensions given as keyword arguments + for dim, levels in kwargs.items(): + _check_dim(dim) + if len(levels) == 0: + log.debug( + f"Don't broadcast over {repr(dim)}; labels {levels} have length 0" + ) + continue + + # - Duplicate the data + # - Drop the existing column named 'dim' + # - Re-add the column from the constructed MultiIndex + # - Reindex for sequential row numbers + df = ( + pd.concat([df] * len(levels), keys=levels, names=[dim]) + .drop(dim, axis=1) + .reset_index(dim) + .reset_index(drop=True) + ) + return df + + +def check_support(context, settings=dict(), desc: str = "") -> None: + """Check whether a Context is compatible with certain `settings`. + + Raises + ------ + :class:`NotImplementedError` + if any `context` value for a key of `settings` is not among the values in + `settings`. + :class:`KeyError` + if the key is not set on `context` at all. + + See also + -------- + :ref:`check-support` + + """ + __tracebackhide__ = True + for key, values in settings.items(): + if context[key] not in values: + raise NotImplementedError( + f"{desc} for {repr(values)}; got {repr(context[key])}" + ) + + +def copy_column(column_name): + """For use with :meth:`pandas.DataFrame.assign`. + + Examples + -------- + Modify `df` by filling the column 'baz' with the value ``3``, and copying the column + 'bar' into column 'foo'. + + >>> df.assign(foo=copy_column('bar'), baz=3) + + Note that a similar assignment can be achieved with :meth:`~pandas.DataFrame.eval`: + + >>> df.eval("foo = bar") + + :func:`copy_column` is useful in the context of more complicated calls to + :meth:`~pandas.DataFrame.assign`. + """ + return lambda df: df[column_name] + + +def ffill( + df: pd.DataFrame, dim: str, values: Sequence[CodeLike], expr: Optional[str] = None +) -> pd.DataFrame: + """Forward-fill `df` on `dim` to cover `values`. + + Parameters + ---------- + df : .DataFrame + Data to fill forwards. + dim : str + Dimension to fill along. Must be a column in `df`. + values : list of str + Labels along `dim` that must be present in the returned data frame. + expr : str, optional + If provided, :meth:`.DataFrame.eval` is called. This can be used to assign one + column to another. For instance, if `dim` == "year_vtg" and `expr` is "year_act + = year_vtg", then forward filling is performed along the "year_vtg" dimension/ + column, and then the filled values are copied to the "year_act" column. + """ + if dim in ("value", "unit"): + raise ValueError(dim) + + # Mapping from (values existing in `df`) -> equal or greater members of `values` + mapping = defaultdict(set) + last_seen = None + for v in sorted(set(values) | set(df[dim].unique())): + if v in df[dim].unique(): + last_seen = v + mapping[last_seen].add(v) + + def _maybe_eval(df): + return df.eval(expr) if expr is not None else df + + dfs = [df] + for key, group_df in df.groupby(dim): + for new_label in sorted(mapping[key])[1:]: + # Duplicate the data; assign the new_label to `dim` + dfs.append(group_df.assign(**{dim: new_label}).pipe(_maybe_eval)) + + return pd.concat(dfs, ignore_index=True) + + +def iter_parameters(set_name): + """Iterate over MESSAGEix parameters with *set_name* as a dimension. + + Parameters + ---------- + set_name : str + Name of a set. + + Yields + ------ + str + Names of parameters that have `set_name` indexing ≥1 dimension. + """ + # TODO move upstream. See iiasa/ixmp#402 and iiasa/message_ix#444 + for name, info in MESSAGE_ITEMS.items(): + if info["ix_type"] == "par" and set_name in info["idx_sets"]: + yield name + + +def make_io(src, dest, efficiency, on="input", **kwargs): + """Return input and output data frames for a 1-to-1 technology. + + Parameters + ---------- + src : tuple (str, str, str) + Input commodity, level, unit. + dest : tuple (str, str, str) + Output commodity, level, unit. + efficiency : float + Conversion efficiency. + on : 'input' or 'output' + If 'input', `efficiency` applies to the input, and the output, thus the activity + level of the technology, is in dest[2] units. If 'output', the opposite. + kwargs + Passed to :func:`make_df`. + + Returns + ------- + dict (str -> pd.DataFrame) + Keys are 'input' and 'output'; values are data frames. + """ + return dict( + input=message_ix.make_df( + "input", + commodity=src[0], + level=src[1], + unit=src[2], + value=efficiency if on == "input" else 1.0, + **kwargs, + ), + output=message_ix.make_df( + "output", + commodity=dest[0], + level=dest[1], + unit=dest[2], + value=1.0 if on == "input" else efficiency, + **kwargs, + ), + ) + + +def make_matched_dfs( + base: MutableMapping, **par_value: Union[float, pint.Quantity] +) -> Dict[str, pd.DataFrame]: + """Return data frames derived from `base` for multiple parameters. + + Creates one data frame per keyword argument. + + Parameters + ---------- + base : pd.DataFrame, dict, etc. + Used to populate other columns of each data frame. + Duplicates—which occur when the target parameter has fewer dimensions than + `base`—are dropped. + par_values : + Argument names (e.g. ‘fix_cost’) are passed to :func:`.make_df`. + If the value is :class:`float`, it overwrites the "value" column; if + :class:`pint.Quantity`, its magnitude overwrites "value" and its units the + "units" column, as a formatted string. + + Returns + ------- + :class:`dict` of :class:`pandas.DataFrame` + one for each parameter in `par_values`. + + Examples + -------- + >>> input = make_df("input", ...) + >>> cf_tl = make_matched_dfs( + >>> input, + >>> capacity_factor=1, + >>> technical_lifetime=pint.Quantity(8, "year"), + >>> ) + """ + data = ChainMap(dict(), base) + result = {} + for par, value in par_value.items(): + data.maps[0] = ( + dict(value=value.magnitude, unit=f"{value.units:~}") + if isinstance(value, pint.Quantity) + else dict(value=value) + ) + result[par] = ( + message_ix.make_df(par, **data).drop_duplicates().reset_index(drop=True) + ) + return result + + +def make_source_tech( + info: Union[message_ix.Scenario, ScenarioInfo], common, **values +) -> Dict[str, pd.DataFrame]: + """Return parameter data for a ‘source’ technology. + + The technology has no inputs; its output commodity and/or level are determined by + `common`; either single values, or :obj:`None` if the result will be + :meth:`~DataFrame.pipe`'d through :func:`broadcast`. + + Parameters + ---------- + info : .Scenario or .ScenarioInfo + common : dict + Passed to :func:`make_df`. + **values + Values for 'capacity_factor' (optional; default 1.0), 'output', 'var_cost', and + optionally 'technical_lifetime'. + + Returns + ------- + dict + Suitable for :func:`add_par_data`. + """ + # Check arguments + if isinstance(info, message_ix.Scenario): + info = ScenarioInfo(info) + + values.setdefault("capacity_factor", 1.0) + missing = {"capacity_factor", "output", "var_cost"} - set(values.keys()) + if len(missing): + raise ValueError(f"make_source_tech() needs values for {repr(missing)}") + elif "technical_lifetime" not in values: + log.debug("No technical_lifetime for source technology") + + # Create data for "output" + result = dict( + output=message_ix.make_df( + "output", + value=values.pop("output"), + year_act=info.Y, + year_vtg=info.Y, + **common, + ) + .pipe(broadcast, node_loc=nodes_ex_world(info.N)) + .pipe(same_node) + ) + + # Add data for other parameters + result.update(make_matched_dfs(base=result["output"], **values)) + + return result + + +def maybe_query(series: pd.Series, query: Optional[str]) -> pd.Series: + """Apply :meth:`pandas.Series.query` if the `query` arg is not :obj:`None`. + + :meth:`~pandas.Series.query` is not chainable (`pandas-dev/pandas#37941 + `_). Use this function with + :func:`pandas.Series.pipe`, passing an argument that may be :obj:`None`, to have a + chainable query operation that can be a no-op. + """ + # Convert Series to DataFrame, query(), then retrieve the single column + return series if query is None else series.to_frame().query(query)[0] + + +def merge_data(base, *others): + """Merge dictionaries of DataFrames together into `base`.""" + for other in others: + for par, df in other.items(): + base[par] = pd.concat([base.get(par, None), df]) + + +def same_node(df: pd.DataFrame) -> pd.DataFrame: + """Fill 'node_origin'/'node_dest' in `df` from 'node_loc'.""" + cols = list(set(df.columns) & {"node_origin", "node_dest"}) + return df.assign(**{c: copy_column("node_loc") for c in cols}) + + +def same_time(df: pd.DataFrame) -> pd.DataFrame: + """Fill 'time_origin'/'time_dest' in `df` from 'time'.""" + cols = list(set(df.columns) & {"time_origin", "time_dest"}) + return df.assign(**{c: copy_column("time") for c in cols}) + + +def strip_par_data( + scenario: message_ix.Scenario, + set_name: str, + element: str, + dry_run: bool = False, + dump: Optional[Dict[str, pd.DataFrame]] = None, +): + """Remove `element` from `set_name` in scenario, optionally dumping to `dump`. + + Parameters + ---------- + dry_run : bool, optional + If :data:`True`, only show what would be done. + dump : dict, optional + If provided, stripped data are stored in this dictionary. Otherwise, they are + discarded. + + Returns + ------- + Total number of rows removed across all parameters. + + See also + -------- + add_par_data + """ + par_list = scenario.par_list() + no_data = set() # Names of parameters with no data being stripped + total = 0 # Total observations stripped + + if dump is None: + pars = [] # Don't iterate over parameters unless dumping + else: + log.info( + f"Remove data with {set_name}={element!r}" + + (" (DRY RUN)" if dry_run else "") + ) + # Iterate over parameters with ≥1 dimensions indexed by `set_name` + pars = iter_parameters(set_name) + + for par_name in pars: + if par_name not in par_list: # pragma: no cover + log.warning( + f" MESSAGEix parameter {par_name!r} missing in Scenario {scenario.url}" + ) + continue + + # Iterate over dimensions indexed by `set_name` + for dim, _ in filter( + lambda item: item[1] == set_name, + zip(scenario.idx_names(par_name), scenario.idx_sets(par_name)), + ): + # Check for contents of par_name that include `element` + par_data = scenario.par(par_name, filters={dim: element}) + N = len(par_data) + total += N + + if N == 0: + # No data; no need to do anything further + no_data.add(par_name) + continue + elif dump is not None: + dump[par_name] = pd.concat( + [dump.get(par_name, pd.DataFrame()), par_data] + ) + + log.info(f" {N} rows in {par_name!r}") + + # Show some debug info + for col in filter( + lambda c: c != set_name and c in par_data.columns, + ("commodity", "level", "technology"), + ): + log.info(f" with {col}={sorted(par_data[col].unique())}") + + if dry_run: + continue + + # Actually remove the data + scenario.remove_par(par_name, key=par_data) + + # NB would prefer to do the following, but raises an exception: + # scenario.remove_par(par_name, key={set_name: [value]}) + + if not dry_run and dump is not None: + log.info(f" {total} rows total") + if no_data: + log.debug(f"No data removed from {len(no_data)} other parameters") + + if not dry_run: + log.info(f"Remove {element!r} from set {set_name!r}") + try: + scenario.remove_set(set_name, element) + except Exception as e: + if "does not have an element" in str(e): + log.info(" …not found") + else: # pragma: no cover + raise + + return total diff --git a/nest/message_ix_models/util/_convert_units.py b/nest/message_ix_models/util/_convert_units.py new file mode 100644 index 0000000..c35d5b2 --- /dev/null +++ b/nest/message_ix_models/util/_convert_units.py @@ -0,0 +1,76 @@ +from typing import Mapping, Optional, Tuple +from warnings import catch_warnings, filterwarnings + +import pandas as pd +from iam_units import registry + + +def series_of_pint_quantity(*args, **kwargs) -> pd.Series: + """Suppress a spurious warning. + + Creating a :class:`pandas.Series` with a list of :class:`pint.Quantity` triggers a + warning “The unit of the quantity is stripped when downcasting to ndarray,” even + though the entire object is being stored and the unit is **not** stripped. This + function suppresses this warning. + """ + with catch_warnings(): + filterwarnings( + "ignore", + message="The unit of the quantity is stripped when downcasting to ndarray", + module="pandas.core.dtypes.cast", + ) + + return pd.Series(*args, **kwargs) + + +def convert_units( + s: pd.Series, + unit_info: Mapping[str, Tuple[float, str, Optional[str]]], + store="magnitude", +) -> pd.Series: + """Convert units of `s`, for use with :meth:`~pandas.DataFrame.apply`. + + ``s.name`` is used to retrieve a tuple of (`factor`, `input_unit`, `output_unit`) + from `unit_info`. The (:class:`float`) values of `s` are converted to + :class:`pint.Quantity` with the `input_unit` and factor; then cast to `output_unit`, + if provided. + + Parameters + ---------- + s : pandas.Series + unit_info : dict (str -> tuple) + Mapping from quantity name (matched to ``s.name``) to 3-tuples of (`factor`, + `input_unit`, `output_unit`). `output_unit` may be :obj:`None`. For example, + see :data:`.ikarus.UNITS`. + store : "magnitude" or "quantity" + If "magnitude", the values of the returned series are the magnitudes of the + results, with no output units. If "quantity", the values are scalar + :class:`~pint.Quantity` objects. + + Returns + ------- + pandas.Series + Same shape, index, and values as `s`, with output units. + """ + if store not in "magnitude quantity": + raise ValueError(f"{store = }") + + # Retrieve the information from `unit_info` + factor, unit_in, unit_out = unit_info[s.name] + + # Default: `unit_out` is the same as `unit_in` + unit_out = unit_out or unit_in + + # - Convert the values to a pint.Quantity(array) with the input units + # - Convert to output units + # - According to `store`, either extract just the magnitude, or store scalar + # pint.Quantity objects. + # - Reassemble into a series with index matching `s` + result = registry.Quantity(factor * s.values, unit_in).to(unit_out) + + return series_of_pint_quantity( + result.magnitude if store == "magnitude" else result.tolist(), + index=s.index, + dtype=object, + name=s.name, + ) diff --git a/nest/message_ix_models/util/_logging.py b/nest/message_ix_models/util/_logging.py new file mode 100644 index 0000000..65d5d22 --- /dev/null +++ b/nest/message_ix_models/util/_logging.py @@ -0,0 +1,191 @@ +"""Logging utilities.""" + +import logging +import logging.config +from contextlib import contextmanager +from copy import deepcopy +from time import process_time + +__all__ = [ + "Formatter", + "make_formatter", + "setup", + "silence_log", +] + + +@contextmanager +def silence_log(): + """Context manager to temporarily silence log output. + + Examples + -------- + >>> with silence_log(): + >>> log.warning("This message is not recorded.") + """ + # Restore the log level at the end of the context + with preserve_log_level(): + # Set the level to a very high value + logging.getLogger(__name__.split(".")[0]).setLevel(100) + yield + + +@contextmanager +def preserve_log_level(): + """Context manager to preserve the level of the ``message_ix_models`` logger.""" + # Get the top-level logger for the package containing this file + main_log = logging.getLogger(__name__.split(".")[0]) + + try: + # Store the current level + level = main_log.getEffectiveLevel() + yield + finally: + # Restore the level + main_log.setLevel(level) + + +class Formatter(logging.Formatter): + """Formatter for log records. + + Parameters + ---------- + colorama : module + If provided, :mod:`colorama` is used to colour log messages printed to stdout. + """ + + CYAN = "" + DIM = "" + RESET_ALL = "" + + _short_name = None + + def __init__(self, colorama): + super().__init__() + if colorama: + self.CYAN = colorama.Fore.CYAN + self.DIM = colorama.Style.DIM + self.RESET_ALL = colorama.Style.RESET_ALL + + def format(self, record): + """Format `record`. + + Records are formatted like:: + + model.transport.data.add_par_data 220 rows in 'input' + ...add_par_data: further messages + + …with the calling function name (e.g. 'add_par_data') coloured for legibility + on first occurrence, then dimmed when repeated. + """ + # Remove the leading 'message_data.' from the module name + name_parts = record.name.split(".") + if name_parts[0] in ("message_ix_models", "message_data"): + short_name = ".".join(["—"] + name_parts[1:]) + else: + short_name = record.name + + if self._short_name != short_name: + self._short_name = short_name + prefix = f"{self.CYAN}{short_name}." + else: + prefix = f"{self.DIM}..." + + return f"{prefix}{record.funcName}{self.RESET_ALL} {record.getMessage()}" + + +def make_formatter(): + """Return a :class:`Formatter` instance for the ``message_ix_models`` logger. + + See also + -------- + setup + """ + try: + # Initialize colorama + import colorama + + colorama.init() + except ImportError: # pragma: no cover + # Colorama not installed + colorama = None + + return Formatter(colorama) + + +_TIMES = [] + + +def mark_time(quiet=False): + """Record and log (if `quiet` is :obj:`True`) a time mark.""" + _TIMES.append(process_time()) + if not quiet and len(_TIMES) > 1: + logging.getLogger(__name__).info( + f" +{_TIMES[-1] - _TIMES[-2]:.1f} = {_TIMES[-1]:.1f} seconds" + ) + + +CONFIG = dict( + version=1, + disable_existing_loggers=False, + formatters=dict(simple={"()": "message_ix_models.util._logging.make_formatter"}), + handlers=dict( + console={ + "class": "logging.StreamHandler", + "level": "NOTSET", + "formatter": "simple", + "stream": "ext://sys.stdout", + }, + # commented: needs code in setup() to choose an appropriate file path + # file_handler={ + # "class": "logging.handlers.RotatingFileHandler", + # "level": "DEBUG", + # "formatter": "simple", + # "backupCount": "100", + # "delay": True, + # }, + ), + loggers=dict( + message_ix_models=dict( + level="NOTSET", + # propagate=False, + # handlers=[], + ), + message_data=dict( + level="NOTSET", + # propagate=False, + # handlers=[], + ), + ), + root=dict( + handlers=[], + ), +) + + +def setup( + level="NOTSET", + console=True, + # file=False, +): + """Initialize logging. + + Parameters + ---------- + level : str, optional + Log level for :mod:`message_ix_models` and :mod:`message_data`. + console : bool, optional + If :obj:`True`, print all messages to console using a :class:`Formatter`. + """ + # Copy to avoid modifying with the operations below + config = deepcopy(CONFIG) + + config["root"].setdefault("level", level) + + if console: + config["root"]["handlers"].append("console") + # if file: + # config["loggers"]["message_data"]["handlers"].append("file") + + # Apply the configuration + logging.config.dictConfig(config) diff --git a/nest/message_ix_models/util/cache.py b/nest/message_ix_models/util/cache.py new file mode 100644 index 0000000..9a4e0f6 --- /dev/null +++ b/nest/message_ix_models/util/cache.py @@ -0,0 +1,95 @@ +"""Cache data for expensive operations. + +This module extends :class:`genno.caching.Encoder` to handle classes common in +:mod:`message_ix_models`, so these can be used as arguments to cached functions and +included in the computed cache key: + +- :class:`sdmx.model.IdentifiableArtefact`, including :class:`.Code`: hashed as + their string representation / ID. +- :class:`ixmp.Platform`, :class:`xarray.Dataset`: ignored, with a warning logged. +- :class:`ScenarioInfo`: only the :attr:`~ScenarioInfo.set` entries are hashed. + +""" +import json +import logging +from dataclasses import asdict, is_dataclass +from typing import Callable + +import genno.caching +import ixmp +import sdmx.model +import xarray as xr + +from .context import Context +from .scenarioinfo import ScenarioInfo + +log = logging.getLogger(__name__) + + +#: Controls whether cached data is returned for functions decorated with +#: :func:`.cached`. Set to :obj:`True` to force reload. +SKIP_CACHE = False + +# Paths already logged, to decrease verbosity +PATHS_SEEN = set() + + +# Show genno how to hash function arguments seen in message_ix_models + + +@genno.caching.Encoder.register +def _sdmx_identifiable(o: sdmx.model.IdentifiableArtefact): + return str(o) + + +@genno.caching.Encoder.register +def _dataclass(o: object): + return asdict(o) if is_dataclass(o) else json.JSONEncoder().default(o) + + +@genno.caching.Encoder.register +def _si(o: ScenarioInfo): + return dict(o.set) + + +genno.caching.Encoder.ignore(xr.Dataset, ixmp.Platform) + + +def cached(func: Callable) -> Callable: + """Decorator to cache the return value of a function `func`. + + On a first call, the data requested is returned and also cached under + :meth:`.Context.get_cache_path`. On subsequent calls, if the cache exists, it is + used instead of calling the (possibly slow) `func`. + + When :data:`.SKIP_CACHE` is true, `func` is always called. + + See also + -------- + :doc:`genno:cache` in the :mod:`genno` documentation + """ + # Determine and create the cache path + cache_path = Context.get_instance(-1).get_cache_path() + cache_path.mkdir(exist_ok=True, parents=True) + + if cache_path not in PATHS_SEEN: + log.debug(f"{func.__name__}() will cache in {cache_path}") + PATHS_SEEN.add(cache_path) + + # Use the genno internals to wrap the function. + cached_load = genno.caching.decorate( + func, cache_path=cache_path, cache_skip=SKIP_CACHE + ) + + if cached_load.__doc__ is not None: + # Determine the indent + line = cached_load.__doc__.split("\n")[-1] + indent = len(line) - len(line.lstrip(" ")) + + # Add a note that the results are cached + cached_load.__doc__ += ( + f"\n\n{' ' * indent}Data returned by this function is cached using " + ":func:`.cached`; see also :data:`.SKIP_CACHE`." + ) + + return cached_load diff --git a/nest/message_ix_models/util/click.py b/nest/message_ix_models/util/click.py new file mode 100644 index 0000000..3adaa99 --- /dev/null +++ b/nest/message_ix_models/util/click.py @@ -0,0 +1,193 @@ +"""Command-line utilities. + +These are used for building CLIs using :mod:`click`. +""" +import logging +from datetime import datetime +from typing import Optional, Union + +import click +from click import Argument, Choice, Option + +from message_ix_models import Context +from message_ix_models.model.structure import codelists + +log = logging.getLogger(__name__) + + +def common_params(param_names: str): + """Decorate a click.command with common parameters `param_names`. + + `param_names` must be a space-separated string of names appearing in :data:`PARAMS`, + e.g. ``"ssp force output_model"``. The decorated function receives keyword + arguments with these names:: + + @click.command() + @common_params("ssp force output_model") + def mycmd(ssp, force, output_model) + # ... + """ + + # Simplified from click.decorators._param_memo + def decorator(f): + if not hasattr(f, "__click_params__"): + f.__click_params__ = [] + f.__click_params__.extend( + PARAMS[name] for name in reversed(param_names.split()) + ) + return f + + return decorator + + +def default_path_cb(*default_parts): + """Return a callback function for click.Option handling. + + If no option value is given, the callback uses :meth:`Context.get_local_path` and + `default_parts` to provide a path that is relative to local data directory, e.g. + the current working directory (see :doc:`/data`). + """ + + def _callback(context, param, value): + value = value or context.obj.get_local_path(*default_parts) + setattr(context.obj, param.name, value) + return value + + return _callback + + +def format_sys_argv() -> str: + """Format :data:`sys.argv` in a readable manner.""" + import sys + + lines = ["Invoked:"] + indent = "" + for item in sys.argv: + lines.append(f"{indent}{item} \\") + indent = " " + + return "\n".join(lines)[:-2] + + +def store_context(context: Union[click.Context, Context], param, value): + """Callback that simply stores a value on the :class:`Context` object. + + Use this for parameters that are not used directly in a @click.command() function, + but need to be carried by the Context for later use. + """ + setattr( + context.obj if isinstance(context, click.Context) else context, + param.name, + value, + ) + return value + + +def unique_id() -> str: + """Return a unique ID for a CLI invocation. + + The return value resembles "mix-models-debug-3332d415ef65bf2a-2023-02-02T162931" and + contains: + + - The CLI name and (sub)commands. + - A hash of all the CLI parameters (options and arguments). + - The current date and time, in ISO format with Windows-incompatible ":" removed. + + """ + click_context = click.get_current_context() + + # Collapse CLI (sub)commands and their arguments to a hashable data structure + # This also includes CLI options *not* given + c: Optional[click.Context] = click_context + data = [] + while c is not None: + data.append((c.command.name, tuple(sorted(c.params.items())))) + c = c.parent + + # Assemble parts + return "-".join( + [ + click_context.command_path.replace(" ", "-"), + f"{hash(tuple(reversed(data))):x}", + datetime.now().isoformat(timespec="seconds").replace(":", ""), + ] + ) + + +#: Common command-line parameters (arguments and options). See :func:`common_params`. +PARAMS = { + "dest": Option( + ["--dest"], + callback=store_context, + help="Destination URL for created scenario(s).", + ), + "dry_run": Option( + ["--dry-run"], + is_flag=True, + callback=store_context, + help="Only show what would be done.", + ), + "force": Option( + ["--force"], + is_flag=True, + callback=store_context, + help="Overwrite or modify existing model/scenario.", + ), + "nodes": Option( + ["--nodes"], + help="Code list to use for 'node' dimension.", + type=Choice(codelists("node")), + ), + "output_model": Option( + ["--output-model"], help="Model name under which scenarios should be generated." + ), + "policy_path": Option( + ["--policy-path"], + callback=default_path_cb("scenario_generation", "policies"), + help="Path to policy scripts.", + ), + "platform_dest": Option(["--platform-dest"], help="Name of destination Platform."), + "quiet": Option( + ["--quiet"], + is_flag=True, + help="Show less or no output.", + ), + "regions": Option( + ["--regions"], + help="Code list to use for 'node' dimension.", + type=Choice(codelists("node")), + ), + "rep_out_path": Option( + ["--rep-out-path"], + callback=default_path_cb("reporting_output"), + help="Path for reporting output.", + ), + "rep_template": Option( + ["--rep-template"], + callback=default_path_cb( + "message_data", "tools", "post_processing", "MESSAGEix_WorkDB_Template.xlsx" + ), + help="Path incl. filename and extension to reporting template.", + ), + "run_reporting_only": Option( + ["--run-reporting-only"], + is_flag=True, + callback=store_context, + help="Run only reporting.", + ), + "ssp": Argument( + ["ssp"], callback=store_context, type=Choice(["SSP1", "SSP2", "SSP3"]) + ), + "verbose": Option( + # NB cannot use store_callback here; this is processed in the top-level CLI + # before the message_ix_models.Context() object is set up + ["--verbose", "-v"], + is_flag=True, + help="Print DEBUG-level log messages.", + ), + "years": Option( + ["--years"], + help="Code list to use for the 'year' dimension.", + type=Choice(codelists("year")), + ), +} diff --git a/nest/message_ix_models/util/common.py b/nest/message_ix_models/util/common.py new file mode 100644 index 0000000..26515a1 --- /dev/null +++ b/nest/message_ix_models/util/common.py @@ -0,0 +1,271 @@ +import logging +from abc import abstractmethod +from pathlib import Path +from typing import Any, Dict, Mapping, Optional, Sequence, Tuple, cast + +import pandas as pd +from genno.computations import concat +from message_ix.reporting import Quantity + +log = logging.getLogger(__name__) + +try: + import message_data +except ImportError: + log.warning("message_data is not installed or cannot be imported") + MESSAGE_DATA_PATH: Optional[Path] = None +else: # pragma: no cover (needs message_data) + # Root directory of the message_data repository. + MESSAGE_DATA_PATH = Path(message_data.__file__).parents[1] + +# Directory containing message_ix_models.__init__ +MESSAGE_MODELS_PATH = Path(__file__).parents[1] + +#: Package data already loaded with :func:`load_package_data`. +PACKAGE_DATA: Dict[str, Any] = dict() + +#: Data already loaded with :func:`load_private_data`. +PRIVATE_DATA: Dict[str, Any] = dict() + + +class Adapter: + """Adapt `data`. + + Adapter is an abstract base class for tools that adapt data in any way, e.g. + between different code lists for certain dimensions. An instance of an Adapter can + be called with any of the following as `data`: + + - :class:`genno.Quantity`, + - :class:`pandas.DataFrame`, or + - :class:`dict` mapping :class:`str` parameter names to values (either of the above + types). + + …and will return data of the same type. + + Subclasses can implement different adapter logic by overriding the abstract + :meth:`adapt` method. + """ + + def __call__(self, data): + if isinstance(data, Quantity): + return self.adapt(data) + elif isinstance(data, pd.DataFrame): + # Convert to Quantity + idx_cols = list(filter(lambda c: c not in ("value", "unit"), data.columns)) + qty = Quantity.from_series(data.set_index(idx_cols)["value"]) + + # Store units + if "unit" in data.columns: + units = data["unit"].unique() + assert 1 == len(units), f"Non-unique units {units}" + unit = units[0] + else: + unit = "" # dimensionless + + # Adapt, convert back to pd.DataFrame, return + return self.adapt(qty).to_dataframe().assign(unit=unit).reset_index() + elif isinstance(data, Mapping): + return {par: self(value) for par, value in data.items()} + else: + raise TypeError(type(data)) + + @abstractmethod + def adapt(self, qty: Quantity) -> Quantity: + """Adapt data.""" + + +class MappingAdapter(Adapter): + """Adapt data using mappings for 1 or more dimension(s). + + Parameters + ---------- + maps : dict of sequence of (str, str) + Keys are names of dimensions. Values are sequences of 2-tuples; each tuple + consists of an original label and a target label. + + Examples + -------- + >>> a = MappingAdapter({"foo": [("a", "x"), ("a", "y"), ("b", "z")]}) + >>> df = pd.DataFrame( + ... [["a", "m", 1], ["b", "n", 2]], columns=["foo", "bar", "value"] + ... ) + >>> a(df) + foo bar value + 0 x m 1 + 1 y m 1 + 2 z n 2 + """ + + maps: Mapping + + def __init__(self, maps: Mapping[str, Sequence[Tuple[str, str]]]): + self.maps = maps + + def adapt(self, qty: Quantity) -> Quantity: + result = qty + + for dim, labels in self.maps.items(): + if dim not in qty.dims: # type: ignore [attr-defined] + continue + result = concat( + *[ + qty.sel( + {dim: label[0]}, drop=True + ).expand_dims( # type: ignore [attr-defined] + {dim: [label[1]]} + ) + for label in labels + ] + ) + + return result + + +def _load( + var: Dict, base_path: Path, *parts: str, default_suffix: Optional[str] = None +) -> Any: + """Helper for :func:`.load_package_data` and :func:`.load_private_data`.""" + key = " ".join(parts) + if key in var: + log.debug(f"{repr(key)} already loaded; skip") + return var[key] + + path = _make_path(base_path, *parts, default_suffix=default_suffix) + + if path.suffix == ".yaml": + import yaml + + with open(path, encoding="utf-8") as f: + var[key] = yaml.safe_load(f) + else: + raise ValueError(path.suffix) + + return var[key] + + +def _make_path( + base_path: Path, *parts: str, default_suffix: Optional[str] = None +) -> Path: + p = base_path.joinpath(*parts) + return p.with_suffix(p.suffix or default_suffix) if default_suffix else p + + +def load_package_data(*parts: str, suffix: Optional[str] = ".yaml") -> Any: + """Load a :mod:`message_ix_models` package data file and return its contents. + + Data is re-used if already loaded. + + Example + ------- + + The single call: + + >>> info = load_package_data("node", "R11") + + 1. loads the metadata file :file:`data/node/R11.yaml`, parsing its contents, + 2. stores those values at ``PACKAGE_DATA["node R11"]`` for use by other code, and + 3. returns the loaded values. + + Parameters + ---------- + parts : iterable of str + Used to construct a path under :file:`message_ix_models/data/`. + suffix : str, optional + File name suffix, including, the ".", e.g. :file:`.yaml`. + + Returns + ------- + dict + Configuration values that were loaded. + """ + return _load( + PACKAGE_DATA, + MESSAGE_MODELS_PATH / "data", + *parts, + default_suffix=suffix, + ) + + +def load_private_data(*parts: str) -> Mapping: # pragma: no cover (needs message_data) + """Load a private data file from :mod:`message_data` and return its contents. + + Analogous to :mod:`load_package_data`, but for non-public data. + + Parameters + ---------- + parts : iterable of str + Used to construct a path under :file:`data/` in the :mod:`message_data` + repository. + + Returns + ------- + dict + Configuration values that were loaded. + + Raises + ------ + RuntimeError + if :mod:`message_data` is not installed. + """ + if MESSAGE_DATA_PATH is None: + raise RuntimeError("message_data is not installed") + + return _load(PRIVATE_DATA, MESSAGE_DATA_PATH / "data", *parts) + + +def local_data_path(*parts) -> Path: + """Construct a path for local data. + + The setting ``message local data`` in the user's :ref:`ixmp configuration file + ` is used as a base path. If this is not configured, the + current working directory is used. + + Parameters + ---------- + parts : sequence of str or Path + Joined to the base path using :meth:`.Path.joinpath`. + + See also + -------- + :ref:`Choose locations for data ` + """ + import ixmp + + # The default value, Path.cwd(), is set in context.py + return _make_path(Path(ixmp.config.get("message local data")), *parts) + + +def package_data_path(*parts) -> Path: + """Construct a path to a file under :file:`message_ix_models/data/`. + + Use this function to access data packaged and installed with + :mod:`message_ix_models`. + + Parameters + ---------- + parts : sequence of str or Path + Joined to the base path using :meth:`.Path.joinpath`. + + See also + -------- + :ref:`Choose locations for data ` + """ + return _make_path(MESSAGE_MODELS_PATH / "data", *parts) + + +def private_data_path(*parts) -> Path: # pragma: no cover (needs message_data) + """Construct a path to a file under :file:`data/` in :mod:`message_data`. + + Use this function to access non-public (e.g. embargoed or proprietary) data stored + in the :mod:`message_data` repository. + + Parameters + ---------- + parts : sequence of str or Path + Joined to the base path using :meth:`.Path.joinpath`. + + See also + -------- + :ref:`Choose locations for data ` + """ + return _make_path(cast(Path, MESSAGE_DATA_PATH) / "data", *parts) diff --git a/nest/message_ix_models/util/config.py b/nest/message_ix_models/util/config.py new file mode 100644 index 0000000..3a2e150 --- /dev/null +++ b/nest/message_ix_models/util/config.py @@ -0,0 +1,156 @@ +import logging +import os +from dataclasses import dataclass, field, fields, is_dataclass, replace +from pathlib import Path +from typing import Any, Hashable, Mapping, MutableMapping, Optional, Sequence, Set + +import ixmp + +log = logging.getLogger(__name__) + +ixmp.config.register("message local data", Path, Path.cwd()) + + +def _local_data_factory(): + """Default values for :attr:`.Config.local_data.""" + return ( + Path( + os.environ.get("MESSAGE_LOCAL_DATA", None) + or ixmp.config.get("message local data") + ) + .expanduser() + .resolve() + ) + + +class ConfigHelper: + """Mix-in for :class:`dataclass`-based configuration classes. + + This provides 3 methods—:meth:`read_file`, :meth:`replace`, and :meth:`from_dict`— + that help to use :class:`dataclass` classes for handling :mod:`message_ix_models` + configuration. + + All 3 methods take advantage of name manipulations: the characters "-" and " " are + replaced with underscores ("_"). This allows to write the names of attributes in + legible ways—e.g. "attribute name" or “attribute-name” instead of "attribute_name"— + in configuration files and/or code. + """ + + @classmethod + def _fields(cls) -> Set[str]: + """Names of fields in `cls`.""" + return set(map(lambda f: f.name, fields(cls))) | set(dir(cls)) + + @classmethod + def _canonical_name(cls, name: Hashable) -> Optional[str]: + """Canonicalize a name into a valid Python attribute name.""" + _name = str(name).replace(" ", "_").replace("-", "_") + return _name if _name in cls._fields() else None + + @classmethod + def _munge_dict(cls, data: Mapping[Hashable, Any], fail: str, kind: str): + for key, value in data.items(): + name = cls._canonical_name(key) + + if name: + yield name, value + else: + msg = f"{cls.__name__} has no attribute for {kind} {key!r}" + if fail == "raise": + raise ValueError(msg) + else: + log.info(f"{msg}; ignored") + + def read_file(self, path: Path, fail="raise") -> None: + """Update configuration from file. + + Parameters + ---------- + path + to a :file:`.yaml` file containing a top-level mapping. + fail : str + if "raise" (the default), any names in `path` which do not match attributes + of the dataclass raise a ValueError. Ottherwise, a message is logged. + """ + if path.suffix == ".yaml": + import yaml + + with open(path, encoding="utf-8") as f: + data = yaml.safe_load(f) + elif path.suffix == ".json": + import json + + with open(path) as f: + data = json.load(f) + else: + raise NotImplementedError(f"Read from {path.suffix}") + + for key, value in self._munge_dict(data, fail, "file section"): + existing = getattr(self, key, None) + if is_dataclass(existing): + # Attribute value is also a dataclass; update it recursively + if isinstance(existing, ConfigHelper): + # Use name manipulation on the attribute value also + value = existing.replace(**value) + else: + value = replace(existing, **value) + setattr(self, key, value) + + def replace(self, **kwargs): + """Like :func:`dataclasses.replace` with name manipulation.""" + return replace( + self, + **{k: v for k, v in self._munge_dict(kwargs, "raise", "keyword argument")}, + ) + + @classmethod + def from_dict(cls, data: Mapping): + """Construct an instance from `data` with name manipulation.""" + return cls(**{k: v for k, v in cls._munge_dict(data, "raise", "mapping key")}) + + +@dataclass +class Config: + """Top-level configuration for :mod:`message_ix_models` and :mod:`message_data`.""" + + #: Base path for :ref:`system-specific data `, i.e. as given by the + #: :program:`--local-data` CLI option or `message local data` key in the ixmp + #: configuration file. + local_data: Path = field(default_factory=_local_data_factory) + + #: Keyword arguments—especially `name`—for the :class:`ixmp.Platform` constructor, + #: from the :program:`--platform` or :program:`--url` CLI option. + platform_info: MutableMapping[str, str] = field(default_factory=dict) + + #: Keyword arguments—`model`, `scenario`, and optionally `version`—for the + #: :class:`ixmp.Scenario` constructor, as given by the :program:`--model`/ + #: :program:`--scenario` or :program:`--url` CLI options. + scenario_info: MutableMapping[str, str] = field(default_factory=dict) + + #: Like :attr:`platform_info`, used by e.g. :meth:`clone_to_dest`. + dest_platform: MutableMapping[str, str] = field(default_factory=dict) + + #: Like :attr:`scenario_info`, used by e.g. :meth:`clone_to_dest`. + dest_scenario: MutableMapping[str, str] = field(default_factory=dict) + + #: A scenario URL, e.g. as given by the :program:`--url` CLI option. + url: Optional[str] = None + + #: Like :attr:`url`, used by e.g. :meth:`clone_to_dest`. + dest: Optional[str] = None + + #: Base path for cached data, e.g. as given by the :program:`--cache-path` CLI + #: option. Default: :file:`{local_data}/cache/`. + cache_path: Optional[str] = None + + #: Paths of files containing debug outputs. See :meth:`Context.write_debug_archive`. + debug_paths: Sequence[str] = field(default_factory=list) + + #: Whether an operation should be carried out, or only previewed. Different modules + #: will respect :attr:`dry_run` in distinct ways, if at all, and **should** document + #: behaviour. + dry_run: bool = False + + #: Flag for causing verbose output to logs or stdout. Different modules will respect + #: :attr:`verbose` in distinct ways. + verbose: bool = False diff --git a/nest/message_ix_models/util/context.py b/nest/message_ix_models/util/context.py new file mode 100644 index 0000000..cdda226 --- /dev/null +++ b/nest/message_ix_models/util/context.py @@ -0,0 +1,394 @@ +"""Context and settings for :mod:`message_ix_models` code.""" +import logging +from copy import deepcopy +from dataclasses import fields +from pathlib import Path +from typing import List + +import ixmp +import message_ix +from click import BadOptionUsage + +from .config import Config + +log = logging.getLogger(__name__) + +#: List of Context instances, from first created to last. +_CONTEXTS: List["Context"] = [] + + +# Configuration keys which can be accessed directly on Context. +_ALIAS = dict() +_ALIAS.update({f.name: "core" for f in fields(Config)}) + + +def _dealiased(base: str, data: dict) -> dict: + """Separate values from `data` which belong on `base` according to `_ALIAS`.""" + result = {} + for name, path in filter(lambda ap: ap[1] == base, _ALIAS.items()): + try: + result[name] = data.pop(name) + except KeyError: + pass + + if len(result): + log.warning( + f"Create a Config instance instead of passing {list(result.keys())} to" + " Context()" + ) + + return result + + +class Context(dict): + """Context and settings for :mod:`message_ix_models` code.""" + + # NB the docs contain a table of settings + + @classmethod + def get_instance(cls, index=0) -> "Context": + """Return a Context instance; by default, the first created. + + Parameters + ---------- + index : int, optional + Index of the Context instance to return, e.g. ``-1`` for the most recently + created. + """ + return _CONTEXTS[index] + + @classmethod + def only(cls) -> "Context": + """Return the only :class:`.Context` instance. + + Raises + ------ + IndexError + If there is more than one instance. + """ + if len(_CONTEXTS) > 1: + raise IndexError(f"ambiguous: {len(_CONTEXTS)} Context instances") + return _CONTEXTS[0] + + def __init__(self, *args, **kwargs): + from message_ix_models.model import Config as ModelConfig + + if len(_CONTEXTS) == 0: + log.info("Create root Context") + + # Handle keyword arguments going to known config dataclasses + kwargs["core"] = Config(**_dealiased("core", kwargs)) + kwargs["model"] = ModelConfig(**_dealiased("model", kwargs)) + + # Store any keyword arguments + super().__init__(*args, **kwargs) + + # Store a reference for get_instance() + _CONTEXTS.append(self) + + def _dealias(self, name): + base = _ALIAS[name] + + # Warn about direct reference to aliased attributes + if base not in {"core", "model"}: # pragma: no cover + log.warnings(f"Use Context.{base}.{name} instead of Context.{name}") + + return getattr(self, base), name + + # Item access + def __getitem__(self, name): + try: + return getattr(*self._dealias(name)) + except KeyError: + return super().__getitem__(name) + + def __setitem__(self, name, value): + try: + return setattr(*self._dealias(name), value) + except KeyError: + super().__setitem__(name, value) + + def update(self, arg=None, **kwargs): + # Force update() to use the __setitem__ above + for k, v in dict(*filter(None, [arg]), **kwargs).items(): + self.__setitem__(k, v) + + # Attribute access + def __setattr__(self, name, value): + self[name] = value + + def __getattr__(self, name): + try: + return self[name] + except KeyError: + raise AttributeError(name) from None + + def __deepcopy__(self, memo): + mp = self.pop("_mp", None) + + result = deepcopy(super(), memo) + + if mp is not None: + self._mp = mp + + _CONTEXTS.append(result) + + return result + + def __repr__(self): + return f"<{self.__class__.__name__} object at {id(self)} with {len(self)} keys>" + + def delete(self): + """Hide the current Context from future :meth:`.get_instance` calls.""" + # Index of the *last* matching instance + index = len(_CONTEXTS) - 1 - list(reversed(_CONTEXTS)).index(self) + + if index > 0: + _CONTEXTS.pop(index) + else: # pragma: no cover + # The `session_context` fixture means this won't occur during tests + log.warning("Won't delete the only Context instance") + + self.close_db() + + def write_debug_archive(self) -> None: + """Write an archive containing the files listed in :attr:`.debug_paths`. + + The archive file name is constructed using :func:`.unique_id` and appears in a + :file:`debug` subdirectory under the :ref:`local data path `. + + The archive also contains a file :file:`command.txt` that gives the full + command-line used to invoke :program:`mix-models`. + """ + from zipfile import ZIP_DEFLATED, ZipFile + + from .click import format_sys_argv, unique_id + + # Output file + target = self.core.local_data.joinpath("debug", f"{unique_id()}.zip") + log.info(f"Write to: {target}") + + target.parent.mkdir(parents=True, exist_ok=True) + + with ZipFile(target, mode="w", compression=ZIP_DEFLATED) as zf: + # Write a file that contains the CLI invocation + zf.writestr("command.txt", format_sys_argv()) + + # Write the identified files + for dp in self.core.debug_paths: + if not dp.exists(): + log.info(f"Not found: {dp}") + continue + + zf.write(dp, arcname=dp.relative_to(self.core.local_data)) + # log.info(debug_path) + + def clone_to_dest(self, create=True) -> message_ix.Scenario: + """Return a scenario based on the ``--dest`` command-line option. + + Parameters + ---------- + create : bool, optional + If :obj:`True` (the default) and the base scenario does not exist, a bare + RES scenario is created. Otherwise, an exception is raised. + + Returns + ------- + Scenario + To prevent the scenario from being garbage collected, keep a reference to + its Platform: + + .. code-block: python + + s = context.clone_to_dest() + mp = s.platform + + See also + -------- + create_res + """ + cfg = self.core + if not cfg.dest_scenario: + # No information on the destination; try to parse a URL, storing the keys + # dest_platform and dest_scenario. + self.handle_cli_args( + url=cfg.dest, _store_as=("dest_platform", "dest_scenario") + ) + + try: + # Get the base scenario, e.g. from the --url CLI argument + scenario_base = self.get_scenario() + + # By default, clone to the same platform + mp_dest = scenario_base.platform + + try: + if cfg.dest_platform["name"] != mp_dest.name: + # Different platform + # Not tested; current test fixtures make it difficult to create + # *two* temporary platforms simultaneously + mp_dest = ixmp.Platform(**cfg.dest_platform) # pragma: no cover + except KeyError: + pass + except Exception as e: + log.info("Base scenario not given or found") + log.debug(f"{type(e).__name__}: {e}") + + if not create: + log.error("and create=False") + raise + + # Create a bare RES to be the base scenario + + from message_ix_models.model.bare import create_res + + # Create on the destination platform + ctx = deepcopy(self) + ctx.core.platform_info.update(cfg.dest_platform) + scenario_base = create_res(ctx) + + # Clone to the same platform + mp_dest = scenario_base.platform + + # Clone + log.info(f"Clone to {repr(cfg.dest_scenario)}") + return scenario_base.clone(platform=mp_dest, **cfg.dest_scenario) + + def close_db(self): + try: + mp = self.pop("_mp") + mp.close_db() + except KeyError: + pass + + def get_cache_path(self, *parts) -> Path: + """Return a path to a local cache file, i.e. within :attr:`.Config.cache_path`. + + The directory containing the resulting path is created if it does not already + exist. + """ + # Construct relative to local_data if cache_path is not defined + base = self.core.cache_path or self.core.local_data.joinpath("cache") + + result = base.joinpath(*parts) + + # Ensure the directory exists + result.parent.mkdir(parents=True, exist_ok=True) + + return result + + def get_local_path(self, *parts: str, suffix=None) -> Path: + """Return a path under :attr:`.Config.local_data`. + + Parameters + ========== + parts : + Path fragments, e.g. directories, passed to :meth:`Path.joinpath`. + suffix : + File name suffix including a ".", e.g. ".csv", passed to + :meth:`Path.with_suffix`. + """ + result = self.core.local_data.joinpath(*parts) + return result.with_suffix(suffix) if suffix else result + + def get_platform(self, reload=False) -> ixmp.Platform: + """Return a :class:`ixmp.Platform` from :attr:`platform_info`. + + When used through the CLI, :attr:`platform_info` is a 'base' platform as + indicated by the --url or --platform options. + + If a Platform has previously been instantiated with :meth:`get_platform`, the + same object is returned unless `reload=True`. + """ + if not reload: + # Return an existing Platform, if any + try: + return self["_mp"] + except KeyError: + pass + + # Close any existing Platform, e.g. to reload it + try: + self["_mp"].close_db() + del self["_mp"] + except KeyError: + pass + + # Create a Platform + self["_mp"] = ixmp.Platform(**self.core.platform_info) + return self["_mp"] + + def get_scenario(self) -> message_ix.Scenario: + """Return a :class:`message_ix.Scenario` from :attr:`scenario_info`. + + When used through the CLI, :attr:`scenario_info` is a ‘base’ scenario for an + operation, indicated by the ``--url`` or ``--platform/--model/--scenario`` + options. + """ + return message_ix.Scenario(self.get_platform(), **self.core.scenario_info) + + def set_scenario(self, scenario: message_ix.Scenario) -> None: + """Update :attr:`scenario_info` to match an existing `scenario`.""" + self.core.scenario_info.update( + model=scenario.model, scenario=scenario.scenario, version=scenario.version + ) + + def handle_cli_args( + self, + url=None, + platform=None, + model_name=None, + scenario_name=None, + version=None, + local_data=None, + verbose=False, + _store_as=("platform_info", "scenario_info"), + ): + """Handle command-line arguments. + + May update the :attr:`data_path`, :attr:`platform_info`, :attr:`scenario_info`, + and/or :attr:`url` settings. + """ + self.core.verbose = verbose + + # Store the path to command-specific data and metadata + if local_data: + self.core.local_data = local_data + + # References to the Context settings to be updated + platform_info = getattr(self.core, _store_as[0]) + scenario_info = getattr(self.core, _store_as[1]) + + # Store information for the target Platform + if url: + if platform or model_name or scenario_name or version: + raise BadOptionUsage( + "--platform --model --scenario and/or --version", + " redundant with --url", + ) + + self.core.url = url + urlinfo = ixmp.utils.parse_url(url) + platform_info.update(urlinfo[0]) + scenario_info.update(urlinfo[1]) + elif platform: + platform_info["name"] = platform + + # Store information about the target Scenario + if model_name: + scenario_info["model"] = model_name + if scenario_name: + scenario_info["scenario"] = scenario_name + if version: + scenario_info["version"] = version + + def use_defaults(self, settings): + """Update from `settings`.""" + for setting, info in settings.items(): + if setting not in self: + log.info(f"Use default {setting}={info[0]}") + + value = self.setdefault(setting, info[0]) + + if value not in info: + raise ValueError(f"{setting} must be in {info}; got {value}") diff --git a/nest/message_ix_models/util/importlib.py b/nest/message_ix_models/util/importlib.py new file mode 100644 index 0000000..ef93dd7 --- /dev/null +++ b/nest/message_ix_models/util/importlib.py @@ -0,0 +1,43 @@ +"""Load model and project code from :mod:`message_data`.""" + +import re +from importlib import util +from importlib.abc import MetaPathFinder +from importlib.machinery import ModuleSpec, SourceFileLoader + + +class MessageDataFinder(MetaPathFinder): + """Load model and project code from :mod:`message_data`.""" + + # Expression for supported module names + expr = re.compile(r"message_ix_models\.(?P(model|project)\..*)") + + # NB coverage is excluded, because the message-ix-models test suite does not + # install/use message-data. + @classmethod + def find_spec(cls, name, path, target=None): # pragma: no cover + match = cls.expr.match(name) + try: + # Construct the name for the actual module to load + new_name = f"message_data.{match.group('name')}" + except AttributeError: + # `match` was None; unsupported. Let the importlib defaults take over. + return None + + # Get an import spec for the message_data submodule + spec = util.find_spec(new_name) + if not spec: + return None + + # Create a new spec that loads message_data.model.foo as if it were + # message_ix_models.model.foo + new_spec = ModuleSpec( + name=name, + # Create a new loader that loads from the actual file with the desired name + loader=SourceFileLoader(fullname=name, path=spec.origin), + origin=spec.origin, + ) + # These can't be passed through the constructor + new_spec.submodule_search_locations = spec.submodule_search_locations + + return new_spec diff --git a/nest/message_ix_models/util/node.py b/nest/message_ix_models/util/node.py new file mode 100644 index 0000000..0d406e2 --- /dev/null +++ b/nest/message_ix_models/util/node.py @@ -0,0 +1,133 @@ +"""Utilities for nodes.""" +import logging +from typing import List, Sequence, Union + +from message_ix import Scenario +from sdmx.model import Code + +from .common import Adapter, MappingAdapter # noqa: F401 + +log = logging.getLogger(__name__) + +#: Names of dimensions indexed by 'node'. +#: +#: .. todo:: to be robust to changes in :mod:`message_ix`, read these names from that +#: package. +NODE_DIMS = [ + "n", + "node", + "node_loc", + "node_origin", + "node_dest", + "node_rel", + "node_share", +] + +#: Mapping from R11 to R12 node IDs. +R11_R12 = ( + ("R11_AFR", "R12_AFR"), + ("R11_CPA", "R12_CHN"), + ("R11_EEU", "R12_EEU"), + ("R11_FSU", "R12_FSU"), + ("R11_LAM", "R12_LAM"), + ("R11_MEA", "R12_MEA"), + ("R11_NAM", "R12_NAM"), + ("R11_PAO", "R12_PAO"), + ("R11_PAS", "R12_PAS"), + ("R11_CPA", "R12_RCPA"), + ("R11_SAS", "R12_SAS"), + ("R11_WEU", "R12_WEU"), +) + +#: Mapping from R11 to R14 node IDs. +R11_R14 = ( + ("R11_AFR", "R14_AFR"), + ("R11_FSU", "R14_CAS"), + ("R11_CPA", "R14_CPA"), + ("R11_EEU", "R14_EEU"), + ("R11_LAM", "R14_LAM"), + ("R11_MEA", "R14_MEA"), + ("R11_NAM", "R14_NAM"), + ("R11_PAO", "R14_PAO"), + ("R11_PAS", "R14_PAS"), + ("R11_FSU", "R14_RUS"), + ("R11_SAS", "R14_SAS"), + ("R11_FSU", "R14_SCS"), + ("R11_FSU", "R14_UBM"), + ("R11_WEU", "R14_WEU"), +) + +#: Adapt data from the R11 to the R14 node list. +#: +#: The data is adapted using the mappings in :data:`R11_R12` for each of the dimensions +#: in :data:`NODE_DIMS`. +adapt_R11_R12 = MappingAdapter({d: R11_R12 for d in NODE_DIMS}) + +#: Adapt data from the R11 to the R14 node list. +#: +#: The data is adapted using the mappings in :data:`R11_R14` for each of the dimensions +#: in :data:`NODE_DIMS`. +adapt_R11_R14 = MappingAdapter({d: R11_R14 for d in NODE_DIMS}) + + +def identify_nodes(scenario: Scenario) -> str: + """Return the ID of a node codelist given the contents of `scenario`. + + Returns + ------- + str + The ID of the :doc:`/pkg-data/node` containing the regions of `scenario`. + + Raises + ------ + ValueError + if no codelist can be identified, or the nodes in the scenario do not match the + children of the “World” node in the codelist. + """ + from message_ix_models.model.structure import get_codes + + nodes = sorted(scenario.set("node")) + + # Candidate ID: split e.g. "R14_AFR" to "R14" + id = nodes[0].split("_")[0] + + try: + # Get the corresponding codelist + codes = get_codes(f"node/{id}") + except FileNotFoundError: + raise ValueError(f"Couldn't identify node codelist from {repr(nodes)}") + + glb_node = [n.endswith("_GLB") for n in nodes] + if any(glb_node): + omit = nodes.pop(glb_node.index(True)) + log.info(f"Omit known, non-standard node '{omit}' from set to match") + + # Expected list of nodes + world = codes[codes.index("World")] # type: ignore [arg-type] + codes = [world] + world.child + + try: + assert set(nodes) == set(map(str, codes)) + except AssertionError: + raise ValueError( + "\n".join( + [ + f"Node IDs suggest codelist {repr(id)}, values do not match:", + repr(nodes), + repr(codes), + ] + ) + ) + else: + log.info(f"Identified node codelist {repr(id)}") + return id + + +def nodes_ex_world(nodes: Sequence[Union[str, Code]]) -> List[Union[str, Code]]: + """Exclude "World" and anything containing "GLB" from `nodes`. + + May also be used as a reporting computation. + + .. todo:: Make available from :mod:`message_ix_models.report`. + """ + return list(filter(lambda n_: "GLB" not in n_ and n_ != "World", nodes)) diff --git a/nest/message_ix_models/util/scenarioinfo.py b/nest/message_ix_models/util/scenarioinfo.py new file mode 100644 index 0000000..d622eab --- /dev/null +++ b/nest/message_ix_models/util/scenarioinfo.py @@ -0,0 +1,332 @@ +""":class:`ScenarioInfo` class.""" +import logging +from collections import defaultdict +from dataclasses import dataclass, field +from itertools import product +from typing import Dict, List, Optional + +import pandas as pd +import pint +import sdmx.model + +from .sdmx import eval_anno + +log = logging.getLogger(__name__) + + +class ScenarioInfo: + """Information about a :class:`~message_ix.Scenario` object. + + Code that prepares data for a target Scenario can accept a ScenarioInfo instance. + This avoids the need to load a Scenario, which can be slow under some conditions. + + ScenarioInfo objects can also be used (e.g. by :func:`.apply_spec`) to describe the + contents of a Scenario *before* it is created. + + ScenarioInfo objects have the following convenience attributes: + + .. autosummary:: + set + io_units + is_message_macro + N + units_for + Y + y0 + yv_ya + + Parameters + ---------- + scenario : message_ix.Scenario + If given, :attr:`.set` is initialized from this existing scenario. + + See also + -------- + .Spec + """ + + #: Elements of :mod:`ixmp`/:mod:`message_ix` sets. + set: Dict[str, List] = {} + + #: Elements of :mod:`ixmp`/:mod:`message_ix` parameters. + par: Dict[str, pd.DataFrame] = {} + + #: First model year, if set, else ``Y[0]``. + y0: int = -1 + + #: :obj:`True` if a MESSAGE-MACRO scenario. + is_message_macro: bool = False + + _yv_ya: pd.DataFrame = None + + def __init__(self, scenario=None): + self.set = defaultdict(list) + self.par = dict() + + if not scenario: + return + + for name in scenario.set_list(): + try: + self.set[name] = scenario.set(name).tolist() + except AttributeError: + continue # pd.DataFrame for ≥2-D set; don't convert + + for name in ("duration_period",): + self.par[name] = scenario.par(name) + + self.is_message_macro = "PRICE_COMMODITY" in scenario.par_list() + + # Computed once + fmy = scenario.cat("year", "firstmodelyear") + self.y0 = int(fmy[0]) if len(fmy) else self.set["year"][0] + + self._yv_ya = scenario.vintage_and_active_years() + + @property + def yv_ya(self): + """:class:`pandas.DataFrame` with valid ``year_vtg``, ``year_act`` pairs.""" + if self._yv_ya is None: + first = self.y0 + + # Product of all years + yv = ya = self.set["year"] + + # Predicate for filtering years + def _valid(elem): + yv, ya = elem + return first <= yv <= ya + + # - Cartesian product of all yv and ya. + # - Filter only valid years. + # - Convert to data frame. + self._yv_ya = pd.DataFrame( + filter(_valid, product(yv, ya)), columns=["year_vtg", "year_act"] + ) + + return self._yv_ya + + @property + def N(self): + """Elements of the set 'node'. + + See also + -------- + .nodes_ex_world + """ + return list(map(str, self.set["node"])) + + @property + def Y(self): + """Elements of the set 'year' that are >= the first model year.""" + return list(filter(lambda y: y >= self.y0, self.set["year"])) + + def update(self, other: "ScenarioInfo"): + """Update with the set elements of `other`.""" + for name, data in other.set.items(): + self.set[name].extend(filter(lambda id: id not in self.set[name], data)) + + for name, data in other.par.items(): + raise NotImplementedError("Merging parameter data") + + def __repr__(self): + return ( + f"" + ) + + def units_for(self, set_name: str, id: str) -> pint.Unit: + """Return the units associated with code `id` in MESSAGE set `set_name`. + + :mod:`ixmp` (or the sole :class:`.JDBCBackend`, as of v3.5.0) does not handle + unit information for variables and equations (unlike parameter values), such as + MESSAGE decision variables ``ACT``, ``CAP``, etc. In :mod:`message_ix_models` + and :mod:`message_data`, the following conventions are (generally) followed: + + - The units of ``ACT`` and others are consistent for each ``technology``. + - The units of ``COMMODITY_BALANCE``, ``STOCK``, ``commodity_stock``, etc. are + consistent for each ``commodity``. + + Thus, codes for elements of these sets (e.g. :ref:`commodity-yaml`) can be used + to carry the standard units for the corresponding quantities. :func:`units_for` + retrieves these units, for use in model-building and reporting. + + .. todo:: Expand this discussion and transfer to the :mod:`message_ix` docs. + + See also + -------- + io_units + """ + try: + idx = self.set[set_name].index(id) + except ValueError: + print(self.set[set_name]) + raise + + return eval_anno(self.set[set_name][idx], "units") + + def io_units( + self, technology: str, commodity: str, level: Optional[str] = None + ) -> pint.Unit: + """Return units for the MESSAGE ``input`` or ``output`` parameter. + + These are implicitly determined as the ratio of: + + - The units for the origin (for ``input``) or destination `commodity`, per + :meth:`.units_for`. + - The units of activity for the `technology`. + + Parameters + ---------- + level : str + Placeholder for future functionality, i.e. to use different units per + (commodity, level). Currently ignored. If given, a debug message is logged. + """ + if level is not None: + log.debug(f"{level = } ignored") + return self.units_for("commodity", commodity) / self.units_for( + "technology", technology + ) + + def year_from_codes(self, codes: List[sdmx.model.Code]): + """Update using a list of `codes`. + + The following are updated: + + - :attr:`.set` ``year`` + - :attr:`.set` ``cat_year``, with the first model year. + - :attr:`.par` ``duration_period`` + + Any existing values are discarded. + + After this, the attributes :attr:`.y0` and :attr:`.Y` give the first model year + and model years, respectively. + + Examples + -------- + Get a particular code list, create a ScenarioInfo instance, and update using + the codes: + + >>> years = get_codes("year/A") + >>> info = ScenarioInfo() + >>> info.year_from_codes(years) + + Use populated values: + + >>> info.y0 + 2020 + >>> info.Y[:3] + [2020, 2030, 2040] + >>> info.Y[-3:] + [2090, 2100, 2110] + + """ + from message_ix_models.util import eval_anno + + # Clear existing values + if len(self.set["year"]): + log.debug(f"Discard existing 'year' elements: {repr(self.set['year'])}") + self.set["year"] = [] + if len(self.set["cat_year"]): + log.debug( + f"Discard existing 'cat_year' elements: {repr(self.set['cat_year'])}" + ) + self.set["cat_year"] = [] + if "duration_period" in self.par: + log.debug("Discard existing 'duration_period' elements") + + fmy_set = False + duration_period: List[Dict] = [] + + # TODO use sorted() here once supported by sdmx + for code in codes: + year = int(code.id) + # Store the year + self.set["year"].append(year) + + # Check for an annotation 'firstmodelyear: true' + if eval_anno(code, "firstmodelyear"): + if fmy_set: + # No coverage: data that triggers this should not be committed + raise ValueError( # pragma: no cover + "≥2 periods are annotated firstmodelyear: true" + ) + + self.y0 = year + self.set["cat_year"].append(("firstmodelyear", year)) + fmy_set = True + + # Store the duration_period: either from an annotation, or computed vs. the + # prior period + duration_period.append( + dict( + year=year, + value=eval_anno(code, "duration_period") + or (year - duration_period[-1]["year"]), + unit="y", + ) + ) + + # Store + self.par["duration_period"] = pd.DataFrame(duration_period) + + +@dataclass +class Spec: + """A specification for the structure of a model or variant. + + A Spec collects 3 :class:`.ScenarioInfo` instances at the attributes :attr:`.add`, + :attr:`.remove`, and :attr:`.require`. This is the type that is accepted by + :func:`.apply_spec`; :doc:`model-build` describes how a Spec is used to modify a + :class:`Scenario`. A Spec may also be used to express information about the target + structure of data to be prepared; like :class:`.ScenarioInfo`, this can happen + before the target :class:`.Scenario` exists. + + Spec also provides: + + - Dictionary-style access, e.g. ``s["add"]`` is equivalent to ``s.add.``. + - Error checking; setting keys other than add/remove/require results in an error. + - :meth:`.merge`, a helper method. + """ + + #: Structure to be added to a base scenario. + add: ScenarioInfo = field(default_factory=ScenarioInfo) + #: Structure to be removed from a base scenario. + remove: ScenarioInfo = field(default_factory=ScenarioInfo) + #: Structure that must be present in a base scenario. + require: ScenarioInfo = field(default_factory=ScenarioInfo) + + # Dict-like features + + def __getitem__(self, key): + try: + return getattr(self, key) + except AttributeError: + raise KeyError(key) + + def __setitem__(self, key, value: ScenarioInfo): + if not hasattr(self, key): + raise KeyError(key) + setattr(self, key, value) + + def values(self): + yield self.add + yield self.remove + yield self.require + + # Static methods + + @staticmethod + def merge(a: "Spec", b: "Spec") -> "Spec": + """Merge Specs `a` and `b` together. + + Returns a new Spec where each member is a union of the respective members of + `a` and `b`. + """ + result = Spec() + + for key in {"add", "remove", "require"}: + result[key].update(a[key]) + result[key].update(b[key]) + + return result diff --git a/nest/message_ix_models/util/sdmx.py b/nest/message_ix_models/util/sdmx.py new file mode 100644 index 0000000..5553c73 --- /dev/null +++ b/nest/message_ix_models/util/sdmx.py @@ -0,0 +1,99 @@ +"""Utilities for handling objects from :mod:`sdmx`.""" +import logging +from copy import copy +from typing import Dict, List, Mapping, Union + +from iam_units import registry +from sdmx.model import AnnotableArtefact, Annotation, Code, InternationalString + +log = logging.getLogger(__name__) + +CodeLike = Union[str, Code] + + +def as_codes(data: Union[List[str], Dict[str, CodeLike]]) -> List[Code]: + """Convert *data* to a :class:`list` of :class:`.Code` objects. + + Various inputs are accepted: + + - :class:`list` of :class:`str`. + - :class:`dict`, in which keys are :attr:`.Code.id` and values are further + :class:`dict` with keys matching other :class:`.Code` attributes. + """ + # Assemble results as a dictionary + result: Dict[str, Code] = {} + + if isinstance(data, list): + # FIXME typing ignored temporarily for PR#9 + data = dict(zip(data, data)) # type: ignore [arg-type] + elif not isinstance(data, Mapping): + raise TypeError(data) + + for id, info in data.items(): + # Pass through Code; convert other types to dict() + if isinstance(info, Code): + result[info.id] = info + continue + elif isinstance(info, str): + _info = dict(name=info) + elif isinstance(info, Mapping): + _info = copy(info) + else: + raise TypeError(info) + + # Create a Code object + code = Code( + id=str(id), + name=_info.pop("name", str(id).title()), + ) + + # Store the description, if any + try: + code.description = InternationalString(value=_info.pop("description")) + except KeyError: + pass + + # Associate with a parent + try: + parent_id = _info.pop("parent") + except KeyError: + pass # No parent + else: + result[parent_id].append_child(code) + + # Associate with any children + for id in _info.pop("child", []): + try: + code.append_child(result[id]) + except KeyError: + pass # Not parsed yet + + # Convert other dictionary (key, value) pairs to annotations + for id, value in _info.items(): + code.annotations.append( + Annotation(id=id, text=value if isinstance(value, str) else repr(value)) + ) + + result[code.id] = code + + return list(result.values()) + + +def eval_anno(obj: AnnotableArtefact, id: str): + """Retrieve the annotation `id` from `obj`, run :func:`eval` on its contents. + + This can be used for unpacking Python values (e.g. :class:`dict`) stored as an + annotation on a :class:`~sdmx.model.Code`. + + Returns :obj:`None` if no attribute exists with the given `id`. + """ + try: + value = str(obj.get_annotation(id=id).text) + except KeyError: # No such attribute + return None + + try: + return eval(value, {"registry": registry}) + except Exception as e: # Something that can't be eval()'d, e.g. a plain string + log.debug(f"Could not eval({value!r}): {e}") + return value diff --git a/nest/message_ix_models/workflow.py b/nest/message_ix_models/workflow.py new file mode 100644 index 0000000..296f568 --- /dev/null +++ b/nest/message_ix_models/workflow.py @@ -0,0 +1,244 @@ +"""Tools for modeling workflows.""" +import logging +from typing import Callable, List, Optional, Union + +from genno import Computer +from ixmp.utils import parse_url +from message_ix import Scenario + +from message_ix_models.util.context import Context + +log = logging.getLogger(__name__) + +# commented: this conflicts with option keyword arguments to workflow step functions +# CallbackType = Callable[[Context, Scenario], Scenario] +CallbackType = Callable + + +class WorkflowStep: + """Single step in a multi-scenario workflow. + + Nothing occurs when the WorkflowStep is instantiated. + + Parameters + ---------- + name : str + ``"model name/scenario name"`` for the :class:`.Scenario` produced by the step. + action : CallbackType, optional + Function to be executed to modify the base into the target Scenario. + clone : bool, optional + :obj:`True` to clone the base scenario the target. + target : str, optional + URL for the scenario produced by the workflow step. Parsed to + :attr:`scenario_info` and :attr:`platform_info`. + kwargs + Keyword arguments for `action`. + """ + + #: Function to be executed on the subject scenario. If :obj:`None`, the target + #: scenario is loaded via :meth:`Context.get_scenario`. + action: Optional[CallbackType] = None + + #: :obj:`True` or a :class:`dict` with keyword arguments to clone before + #: :attr:`action` is executed. Default: :obj:`False`, do not clone. + clone: Union[bool, dict] = False + + #: Keyword arguments passed to :attr:`action`. + kwargs: dict + + #: Target platform name and additional options. + platform_info: dict + + #: Target model name, scenario name, and optional version. + scenario_info: dict + + def __init__( + self, action: Optional[CallbackType], target=None, clone=False, **kwargs + ): + try: + # Store platform and scenario info by parsing the `target` URL + self.platform_info, self.scenario_info = parse_url(target) + except (AttributeError, ValueError): + if clone is not False: + raise TypeError("target= must be supplied for clone=True") + self.platform_info = self.scenario_info = dict() + + # Store the callback and options + self.action = action + self.clone = clone + self.kwargs = kwargs + + def __call__( + self, context: Context, scenario: Optional[Scenario] = None + ) -> Scenario: + """Execute the workflow step.""" + if scenario is None: + # No base scenario + if self.action: + raise RuntimeError( + f"Step with action {self.action!r} requires a base scenario" + ) + # Use Context to retrieve the identified scenario + context.platform_info.update(self.platform_info) + context.scenario_info.update(self.scenario_info) + s = context.get_scenario() + log.info(f"Loaded ixmp://{s.platform.name}/{s.url}") + else: + # Modify the context to identify destination scenario; possibly nothing + context.dest_scenario.update(self.scenario_info) + s = scenario + log.info(f"Step runs on ixmp://{s.platform.name}/{s.url}") + + if context.dest_scenario: + log.info(f" with context.dest_scenario={context.dest_scenario}") + + if self.clone is not False: + # Clone to target model/scenario name + log.info("Clone to {model}/{scenario}".format(**self.scenario_info)) + kw = self.scenario_info.copy() + # If clone contains keyword arguments, e.g. shift_first_model_year, use them + # NB user code should give clone = dict(keep_solution=True) if desired + kw.update( + self.clone + if isinstance(self.clone, dict) + else dict(keep_solution=False) + ) + s = s.clone(**kw) + + if not self.action: + return s + + log.info(f"Execute {self.action!r}") + + # Modify context to identify the target scenario + context.set_scenario(s) + + try: + # Invoke the callback + result = self.action(context, s, **self.kwargs) + except Exception: # pragma: no cover + s.platform.close_db() # Avoid locking the scenario + raise + + if result is None: + log.info(f"…nothing returned, workflow will continue with {s.url}") + result = s + + return result + + def __repr__(self): + action = f"{self.action.__name__}()" if self.action else "load" + dest = "" + if self.scenario_info: + dest = " -> {model}/{scenario}".format(**self.scenario_info) + return f"" + + +class Workflow(Computer): + """Workflow for operations on multiple :class:`Scenarios <.Scenario>`. + + Parameters + ---------- + context : .Context + Context object with settings common to the entire workflow. + """ + + def __init__(self, context: Context): + super().__init__() + self.add_single("context", context) + + def add_step( + self, + name: str, + base: Optional[str] = None, + action: Optional[CallbackType] = None, + replace=False, + **kwargs, + ) -> WorkflowStep: + """Add a :class:`WorkflowStep` to the workflow. + + Parameters + ---------- + name : str + Name for the new step. + base : str or None + Previous step that produces the a pre-requisite scenario for this step. + action : CallbackType + Function to be executed to modify the base into the target Scenario. + replace : bool + :data:`True` to replace an existing step. + kwargs + Keyword arguments for `action`; passed to and stored on the + :class:`WorkflowStep` until used. + + Returns + ------- + WorkflowStep + a reference to the added step, for optional further modification. + + Raises + ------ + genno.KeyExistsError + if the step `name` already exists. Use `replace` to force overwriting an + existing step. + """ + # Create the workflow step + step = WorkflowStep(action, **kwargs) + + if replace: + # Remove any existing step + self.graph.pop(name, None) + + # Add to the Computer + self.add_single(name, step, "context", base, strict=True) + + return step + + def run(self, name_or_names: Union[str, List[str]]): + """Run all workflow steps necessary to produce `name_or_names`. + + Parameters + ---------- + name_or_names: str or list of str + Identifier(s) of steps to run. + """ + return self.get(name_or_names) + + def truncate(self, name: str): + """Truncate the workflow at the step `name`. + + The step `name` is replaced with a new :class:`WorkflowStep` that simply loads + the target :class:`Scenario` that would be produced by the original step. + + Raises + ------ + KeyError + if step `name` does not exist. + """ + + def _recurse_info(kind: str, step_name: str): + """Traverse the graph looking for non-empty platform_info/scenario_info.""" + task = self.graph[step_name] + return getattr(task[0], f"{kind}_info") or _recurse_info(kind, task[2]) + + # Generate a new step that merely loads the scenario identified by `name` or + # its base + step = WorkflowStep(None) + step.scenario_info = _recurse_info("scenario", name) + try: + step.platform_info = _recurse_info("platform", name) + except KeyError as e: + if e.args[0] is None: + raise RuntimeError( + f"Unable to locate platform info for {step.scenario_info}" + ) + else: # pragma: no cover + raise # Something else + + # Replace the existing step + self.add_single(name, step, "context", None) + + +def solve(context, scenario, **kwargs): + scenario.solve(**kwargs) + return scenario diff --git a/nest/pyproject.toml b/nest/pyproject.toml new file mode 100644 index 0000000..1aed65f --- /dev/null +++ b/nest/pyproject.toml @@ -0,0 +1,37 @@ +[build-system] +requires = ["setuptools", "setuptools-scm"] + +[tool.pytest.ini_options] +# Disable faulthandler plugin on Windows to prevent spurious console noise +addopts = "-p no:faulthandler --cov=message_ix_models --cov-report=" +filterwarnings = "ignore:distutils Version classes.*:DeprecationWarning" + +[tool.isort] +profile = "black" + +[[tool.mypy.overrides]] +module = [ + "dask", + "colorama", + "jpype", + "matplotlib.*", + "message_data.*", + "pandas.*", + "pint._vendor", + "pyam", + "pycountry", + "setuptools", + # For ixmp.testing + "nbclient", + "nbformat", + "memory_profiler", +] +ignore_missing_imports = true + + +[[tool.mypy.overrides]] +# Work around iiasa/ixmp#465 and similar +module = [ + "ixmp.*", +] +no_implicit_optional = false diff --git a/nest/setup.cfg b/nest/setup.cfg new file mode 100644 index 0000000..3f4a669 --- /dev/null +++ b/nest/setup.cfg @@ -0,0 +1,49 @@ +[metadata] +name = message-ix-models +author = IIASA Energy, Climate, and Environment (ECE) Program +author_email = message_ix@iiasa.ac.at +license = Apache 2.0 +description = Tools for the MESSAGEix-GLOBIOM family of models +long_description = file: README.rst +long_description_content_type = text/x-rst +url = https://github.com/iiasa/message-ix-models + +[options] +packages = message_ix_models +python_requires = >=3.7 +include_package_data = True +zip_safe = True +install_requires = + click + colorama + # When the minimum is greater than the minimum via message_ix; e.g. + # message_ix >= 3.4.0 → ixmp >= 3.4.0 → genno >= 1.6.0 + genno >= 1.8.0 + iam_units + message_ix >= 3.4.0 + pyam-iamc >= 0.6 + pycountry + PyYAML + sdmx1 >= 2.2.0 + setuptools >= 41 + +[options.extras_require] +tests = + # For nbclient, thus nbformat + ixmp[tests] + pytest + pytest-cov +docs = + # sphinx.ext.autosummary covers the test suite, so all test requirements + %(tests)s + # Temporary: should be covered via message_ix[report] + genno[compat] + sphinx >= 4 + sphinx_rtd_theme + +[options.entry_points] +console_scripts = + mix-models = message_ix_models.cli:main + +[flake8] +max-line-length = 88 diff --git a/nest/setup.py b/nest/setup.py new file mode 100644 index 0000000..e02756e --- /dev/null +++ b/nest/setup.py @@ -0,0 +1,3 @@ +import setuptools + +setuptools.setup(use_scm_version=True) From efbe3738f05e37e25e248d3b1116610d56789db5 Mon Sep 17 00:00:00 2001 From: adrivinca Date: Thu, 23 Feb 2023 16:49:32 +0100 Subject: [PATCH 2/4] Adding Leap-re project code and processed data, requires path adjustment --- .../leap_re_nest/OnSSET_cost_paramters.csv | 71 + .../leap_re_nest/OnSSET_cost_paramters.xlsx | Bin 0 -> 14735 bytes .../delineation/Zambia_NEST_delineation.cpg | 1 + .../delineation/Zambia_NEST_delineation.dbf | Bin 0 -> 3234 bytes .../delineation/Zambia_NEST_delineation.prj | 1 + .../delineation/Zambia_NEST_delineation.sbn | Bin 0 -> 348 bytes .../delineation/Zambia_NEST_delineation.sbx | Bin 0 -> 132 bytes .../delineation/Zambia_NEST_delineation.shp | Bin 0 -> 1103580 bytes .../Zambia_NEST_delineation.shp.xml | 2 + .../delineation/Zambia_NEST_delineation.shx | Bin 0 -> 292 bytes .../basins_by_region_simpl_ZMB.csv | 25 + .../electricity_demand_MLED_NEST_GWh_mth.csv | 8641 +++++++++++++++++ .../data/leap_re_nest/energy_total_all.csv | 121 + .../data/leap_re_nest/grid_cost_bcu.csv | 49 + .../data/leap_re_nest/input_data_12_ZMB.xlsx | Bin 0 -> 72804 bytes .../input_data_48_CHN - Copy.xlsx | Bin 0 -> 78004 bytes .../data/leap_re_nest/ref_scen.xlsx | Bin 0 -> 2255630 bytes .../project/leap_re_nest/build.py | 120 + .../project/leap_re_nest/doc.rst | 84 + .../leap_re_nest/script/add_MLED_demand.py | 82 + .../script/add_grid_shares_OnSSET.py | 406 + .../leap_re_nest/script/add_timeslice.py | 1273 +++ .../project/leap_re_nest/utils.py | 47 + 23 files changed, 10923 insertions(+) create mode 100644 nest/message_ix_models/data/leap_re_nest/OnSSET_cost_paramters.csv create mode 100644 nest/message_ix_models/data/leap_re_nest/OnSSET_cost_paramters.xlsx create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.cpg create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.dbf create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.prj create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.sbn create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.sbx create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.shp create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.shp.xml create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.shx create mode 100644 nest/message_ix_models/data/leap_re_nest/delineation/basins_by_region_simpl_ZMB.csv create mode 100644 nest/message_ix_models/data/leap_re_nest/electricity_demand_MLED_NEST_GWh_mth.csv create mode 100644 nest/message_ix_models/data/leap_re_nest/energy_total_all.csv create mode 100644 nest/message_ix_models/data/leap_re_nest/grid_cost_bcu.csv create mode 100644 nest/message_ix_models/data/leap_re_nest/input_data_12_ZMB.xlsx create mode 100644 nest/message_ix_models/data/leap_re_nest/input_data_48_CHN - Copy.xlsx create mode 100644 nest/message_ix_models/data/leap_re_nest/ref_scen.xlsx create mode 100644 nest/message_ix_models/project/leap_re_nest/build.py create mode 100644 nest/message_ix_models/project/leap_re_nest/doc.rst create mode 100644 nest/message_ix_models/project/leap_re_nest/script/add_MLED_demand.py create mode 100644 nest/message_ix_models/project/leap_re_nest/script/add_grid_shares_OnSSET.py create mode 100644 nest/message_ix_models/project/leap_re_nest/script/add_timeslice.py create mode 100644 nest/message_ix_models/project/leap_re_nest/utils.py diff --git a/nest/message_ix_models/data/leap_re_nest/OnSSET_cost_paramters.csv b/nest/message_ix_models/data/leap_re_nest/OnSSET_cost_paramters.csv new file mode 100644 index 0000000..e90f98b --- /dev/null +++ b/nest/message_ix_models/data/leap_re_nest/OnSSET_cost_paramters.csv @@ -0,0 +1,71 @@ +Variable,Value,Source,Comments,Description +Start_year,2020,,, +End_year,2030,,, +End year electrification rate target,1,,, +Intermediate target year,2025,,, +Intermediate electrification rate target,0.6375,,, +PV cost adjustment factor,1,,, +Urban target tier,5,,, +Rural target tier,3,,, +Prioritization,5,,,"5 = least cost, 4 = forced grid within buffer only, 6 = forced grid within buffer & least cost out of the buffer zone" +Auto intensification distance,5,,,Buffer distance (km) for automatic intensification if choosing prioritization 1 +discount_rate,0.08,,, +pop_threshold,0,,, +pop_start_year,18384000,,,the population in the base year (e.g. 2018) +pop_end_year,24859380,,,the projected population in the end year (e.g. 2030) +urban_ratio_start_year,0.446,,,the urban population population ratio in the base year (e.g. 2018) +urban_ratio_end_year,0.505,,,the urban population population ratio in the end year (e.g. 2030) +num_people_per_hh_urban,4.5,,,the number of people per household expected in the end year (e.g. 2030) +num_people_per_hh_rural,5.3,,,the number of people per household expected in the end year (e.g. 2030) +elec_ratio_start_year,0.398,,,the electrification rate in the base year (e.g. 2018) +urban_elec_ratio,0.772,,,urban electrification rate in the base year (e.g. 2018) +rural_elec_ratio,0.11,,,rural electrification rate in the base year (e.g. 2018) +grid_generation_cost,0.024,,,This is the grid cost electricity USD/kWh as expected in the end year of the analysis +grid_power_plants_capital_cost,1441,,,The cost in USD/kW to for capacity upgrades of the grid-connected power plants +grid_losses,0.183,,,The fraction of electricity lost in transmission and distribution (percentage) +base_to_peak,0.8,,,The ratio of base grid demand to peak demand (percentage) +existing_grid_cost_ratio,0.1,,,The additional cost per round of electrification (percentage) +diesel_price,1.16,,,This is the diesel price in USD/liter as expected in the end year of the analysis +sa_diesel_capital_cost,938,,,Stand-alone Diesel capital cost (USD/kW) as expected in the years of the analysis +mg_diesel_capital_cost,721,,,Mini-grid Diesel capital cost (USD/kW) as expected in the years of the analysis +mg_pv_capital_cost,2950,,,Mini-grid PV capital cost total system (USD/kW) as expected in the years of the analysis +mg_wind_capital_cost,3750,,,Mini-grid Wind capital cost (USD/kW) as expected in the years of the analysis +mg_hydro_capital_cost,3000,,,Mini-grid Hydro capital cost (USD/kW) as expected in the years of the analysis +mg_hybrid_solar_panels,503,,,USD/kW +mg_hybrid_batteries,139,,,USD/kWh (battery capacity - inverter sized seperately) +mg_hybrid_inverter,80,,,USD/kW +mg_hybrid_charge_controller,142,,,USD/kW +mg_hybrid_diesel_generator,261,,,USD/kW +mg_hybrid_wind_turbine,2800,,,USD/kW +sa_pv_capital_cost_1,9620,,,Stand-alone PV capital cost (USD/kW) for household systems under 20 W +sa_pv_capital_cost_2,8780,,,Stand-alone PV capital cost (USD/kW) for household systems between 21-50 W +sa_pv_capital_cost_3,6380,,,Stand-alone PV capital cost (USD/kW) for household systems between 51-100 W +sa_pv_capital_cost_4,4470,,,Stand-alone PV capital cost (USD/kW) for household systems between 101-200 W +sa_pv_capital_cost_5,6950,,,Stand-alone PV capital cost (USD/kW) for household systems over 200 W +mv_line_cost,7000,,,Cost of MV lines in USD/km +lv_line_cost,4250,,,Cost of LV lines in USD/km +mv_line_capacity,33,,,Capacity of MV lines in kW/line +lv_line_capacity,0.24,,,Capacity of LV lines in kW/line +lv_line_max_length,0.5,,,Maximum length of LV lines (km) +hv_line_cost,53000,,,Cost of HV lines in USD/km +mv_line_max_length,50,,,Maximum length of MV lines (km) +hv_lv_transformer_cost,25000,,,Cost of HV/MV transformer - 1000 kVa (USD/unit) +mv_increase_rate,0.1,,,percentage +max_grid_extension_dist,50,,,Maximum distance that the grid may be extended by means of MV lines +annual_new_grid_connections_limit_intermediate,999999999,,,This is the maximum amount of new households that can be connected to the grid in one year (thousands) +annual_new_grid_connections_limit_end,999999999,,,This is the maximum amount of new households that can be connected to the grid in one year (thousands) +grid_capacity_limit_end,999999999,,,This is the maximum generation capacity that can be added to the grid in one year (MW) +grid_capacity_limit_intermediate,,,,This is the maximum generation capacity that can be added to the grid in one year (MW) +GIS data: Administrative boundaries,,,,Delineates the boundaries of the analysis. +GIS data: DEM,,,,"Filled DEM (elevation) maps are use in a number of processes in the analysis (Energy potentials, restriction zones, grid extension suitability map etc.)." +GIS data: Hydropower,,,,Points showing potential mini/small hydropower potential. Provides power availability in each identified point. +GIS data: Land Cover,,,,"Land cover maps are use in a number of processes in the analysis (Energy potentials, restriction zones, grid extension suitability map etc.)." +GIS data: Night-time Lights,,,,"Dataset used to,identify and spatially calibrate the currently electrified/non-electrified population." +GIS data: Population,,,,Spatial identification and quantification of the current (base year) population. This dataset sets the basis of the ONSSET analysis as it is directly connected with the electricity demand and the assignment of energy access goals +GIS data: Roads,,,,Current road infrastructure is used in order to specify grid extension suitability. +GIS data: Solar GHI,,,,Provide information about the Global Horizontal Irradiation (kWh/m2/year) over an area. This is later used to identify the availability/suitability of Photovoltaic systems. +GIS data: Substations,,,,Current Substation infrastructure is used in order to specify grid extension suitability. +GIS data: Existing grid,,,,Current grid network +GIS data: Planned grid,,,,Planned/committed grid network extensions +GIS data: Travel-time,,,,"Visualizes spatially the travel time required to reach from any individual cell to the closest town with population more than 50,000 people." +GIS data: Wind velocity,,,,Provide information about the wind velocity (m/sec) over an area. This is later used to identify the availability/suitability of wind power (using Capacity factors). diff --git a/nest/message_ix_models/data/leap_re_nest/OnSSET_cost_paramters.xlsx b/nest/message_ix_models/data/leap_re_nest/OnSSET_cost_paramters.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9d816cd56c50e544d074a9f1ab02579d6f23fbfb GIT binary patch literal 14735 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 literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.sbx b/nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.sbx new file mode 100644 index 0000000000000000000000000000000000000000..9ccf1d4c875871bd344735685a64a12cd101d8f2 GIT binary patch literal 132 zcmZQzQ0Myp|6c(ECU61@NjRAPdVIvFKj46oh|AM;k_iqDw^prMl{M>tLbpTZH8(X( ZZCFK&fTBD=3^G#$h@*hm0*I%9_y82J6$bzS literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.shp b/nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.shp new file mode 100644 index 0000000000000000000000000000000000000000..17d5788d32b385372d02095b3b8022feaf4e9987 GIT binary patch literal 1103580 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

9GI@ef3PWAaO^%b~uyj=%qr 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

to|;v9jw^j*whN9u4qtMs6S_! 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⁣_z3G}(ANG>x_1|0( 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 RP$7l3pb~~x=->7znzE4 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%0AKp4!GL`){xquwc?p%V5X;<4)Fth1lGU zD`C2id1ynJKJ?Ch5gb4dkSt{ME1V9ClhRJ>kp2%*R#vdZ%tJeylKOhLD*M3+b!HnI zz)a<>SH0oTh)xO3U@`8VWbf)x^;#-i<+ISamBK3KoOU~ykGZIAf&PNnbZZk>ST&V* zP?(z6P&yt;GsCwd$!pfHeRuWl_QXpjT1B8Ym2uYt4GuXlHwUm|H%ulQF5^ z)^%4qSTlIvdtxy~^Rg>!x0G&VO8QSfs^1$9c&i%Gjo3C~jWrzVWH`?prk~u7^nxAM zMQ^l#skS@6aIj!oYxF>vyRf1DCfH1Ow*DZ}&sfe2hb>An3MKC_irxj3VQT!vj)`!BNwX`qF#T|~{}tH#$Bf1HByTzNWghHd z`F#6Wl22?~{}HU3Ialofb8kLbim)MP7c`mJ?5_7an61`nJC)Sm5dzEMfvvV$b!kqTw zBCnGNWmdof zqo25l;;837D`4ure%+3+=J$byt4MwJ_pV*w>~pp9iN!jF4!z*egp#DSq<*Pih83*J zD3;9Dn)1^g*6z_zXC29N8_t-aFx{|pJ*zM?^X1Ojuy^Ic`=p+K6#aZDTyiOApC8QL z-lDY%uJQ`%%E7{LTL*uI`Kh1d!eEvSk#f4uwv|s5<~;1;-Y8799B{uBcHGiy_Ifhj zhq^jn6c)P{_4xtI^HcVx7S>7l?|7KTqcn!F+V&djjehaz>An5ng!ZPYHDtZc-DmnK zO#NuHVgnqt-OkSkIiHk&IS7`Im+BGLXfNzB=)*^HeC(&EPg3DL)kn!x=K0$%^hAya@j(CEsr3W4G6*)Ebu(Zo7*cG zrq`|Tt%lXhI;V$_@&1fHT=xvl->ostcEVg%o9sr!M^8N=7K{v@=)wVY%EpAjOm4y$ zV})7c_ie2e{jxol=*EPT@tkiDABEhm`fl$?V&>eGF|cqbT-XJR`P+l1z-9|7x9*1d zof^|6u;;7a83#yxWw!?5u;beVuj4Qk%od)56I%BVIR!IC)5?=!)unGnaSC%9-@#{K zamgP3B=WqDwWpsW{Z3_8`(eF|6SptG?A_x*YK57SdKOm|W(P#16~g>?ySk*Fk9aq) z5>7a+9dQvBZtB>#PQ>+5*{d{-dk?L+Rbw%8@*q$9A?kE`CKFYNye6uu*K1bE*Zo*e(w@s^{epVjL+-%@53@$n9`SC94pJ1uu0-MdP_u(e#uiTOB4Ga5^be3GW;-(KQuZP*y ztwjJVua`alX5YHaKb`r03YN#?w)w?m!`Z8}{*Hgu<;ERFF1$9WT>#7Tu^uOv zm%{&!FK5B2&#>6&rL-UH#E(Yx&i%I@-sun34VL$l+7{$C2$s(eZ)~>w&OcxMr3xty`K4YD z;*?8ThhedEOmt6$9W+|*yZ(Rw zV%|YArPpKCIfcc?C*Nkl-irkXE7XfuhL3m%)9jOlLt*CLh2#=A#j8-VaLDamizNKL zQZqmGeQI$lnEH6|hqRu6uf03L9v7$#OZ0Q%+!zZu#kk#dVm79(NG#7Me0dGI(gzu<4S2Bsr^v~_^__f10rU^BamCnpf!{eCDAHaz>R)?}Dl zcjj>foMIWUaysePnb7GF%ne>T!vz+W>A9VNqh_~jFrU=-op<&n?C4gvViC-~Fe)#F z_4uWl|AiPY6sm8_6Aqs|u_fcEW7Hh@shV!Th=}!byJhz?EmPLvbhbU9iyp z)ZjKLaO3NXBVncIA2Bo{4b_qK-BtxiqcL;Cv|EEofaZpu~fgQ@2?4^M&V zw8by?!fZy@W*%_BiKUW-4;PlLh7Diov?e*D>3w&L!ff!K;d_+*dhfF0U|~s0P&Aou zlc#Aq?8qfarf!KFbKsKX$yo=<{AIh>RKlU{+-e;q<3As;)aU}%Z|3sXzR_YYn4bE3 z;1T59lJTtu!WLzPuMfd|_h-P? z8H?e9;}6CLlJP>m-dYbcb5izu!&LaNnPqU^zNrsZ!{Vw=D=J98S>N?5VS4_PO-{m>>Sg`!XC5?<(~R zeX=_|f#vyxb1jc)VDZ&!X+6|%t}c~|{+-(!k@YhUcHQd1-oakd^(_0}e$>=+wP))2 zp`H!!minuXbckM0`WLZ=b3?Yi5h7aMhbnI%NOZv6Gq|hvoej=f8G44{K*N=|b*5 z?r>mKI;>9VYO@p;MmK(Q6PEXjefRTg4lH&!S5Ml%USA|vJu`dfO2)6r<>vwGvA@?N z)O!@qYCjFRxT(9(YdG)z9LaR}7yg|hr@s1@SHcBxSBptK8~uAg?KH*n#XZMG8#a42 zO3Mj3Q+vxsU4`kJQ;s)NSU8YW-$c<*8|5Ax0^6tz2R z3Qjp%B|Tr+-FruzgyrKE-|c&rN%ETKDejAL4`F%#Wb=A$mro?))#OqA)1>FKY%`SVpwJ>RGjws2Bi>Wy5e-D!c=CG1yune=%~or*oL2mky0eHG%?U13o( zZF3*^-}nO@Bs?@NujszwWdw5Vqps5DJ2&`&8~r~^Hdo5{9zg_e;y03 zcKymwn7?|ND}d$CXU04#{0S_tm$N$5^$RSIPemNQ(m4G;^X_%%whA+8nYJBZ`R@%e z#N*x{q=cUXIQ?!*fVu?hr;sx&BTvbKOPQfo@-2=UtF+73lEZ? zT^%`_c*mNpYhn5GLr9vwcO9(Voy#MC&(OY~^0&bM{+@}=FWLq(H&xQ}lWuvkY6tx9 z@0(qtd+&m?uY8rB#{#|Xuo{;C-l66u8KlBdyN6!%!T9X8`pa&@^7EZ)oxM8`wlM1U znEd_2+Ne+5gAL;ALuIJ9uWaJXvOUFq*7#^b^qTR6(Km*;-ei)m}NkA}TJe3JhDU=DUom;h&Y z@NO&pee%agcP4D;dtg}%>iHUbZ}XpajPz$V8@T{E<94IYDTVC@cDbcAt=X~jG;(fT zTd7{#DWN1@VeYrr>NBuBzG{wdVlo*oDCVaN#y2Zin16-jd;0ZrhiRh^AFe8L$Cm^4 z-%vPoz1Sp|_*3bFX{dMfx&9@exMn}7S9g0A5~o|V8i-swt@k%#&YO{(mu&d-8F9^i zmK1M#{)W`o_o&w&_3XA0i;H1q94pylc5J`53fp~|pIM@?w#GqSPWlhi()p?CcmLW4 z;+pla9Un^OcJ5hiN5-$QIIWL#KE&v6Z9bu%o1IxQ1G!+9dg3$j$dl6kSlsg+SV_if zY$NT@Ki8a}sJHEweIdDbr(5gM@A)Wl@<*5{T-_x^VQx}~;?uA^pJ-;9;jqAQ3Q(^k~q-g@oJL&HHL-LybDv!^rYSWm{?W{DOc&|l{7V*^| zRSBqPUj96z4U4Zv-8%uR#ym{& z&DLchSI-Y>sE?dm(W2Hv#2gn(C7J8b>wTkW2QT`8fAaPenaH?EA&Ba8#V0 zsyT9MeqoLST=Fu~)(~dn?@DHxw~^+T^MIg^2aOf=;$H2IrV3l!3F1{Szg4BS$9VF7 z@!A1Pt>BchpND&q`g7Mu4TkA^%=msVWBsAO1*~Uyb zt45kF9Y%brdr({0o1b!xfw_78B$s$3@32zjQOAu#?1*djQ}ZZd%F`;+o?LHM4%`1@pDuOXpMjp4Qyu zuzY;p`{s3Dq3BOBSn9r3;iw~hzWTuO^`d!{Y_R@+SPX3@T|aUz{`xBIKi6dH7(dkW zi*u#(BabJaKPtSRG`@U2eQ?$*e}^KcULPn>q2GI!+uEw4urn`KJp+p|N!@&ly4=KNT+Tk3cS=HG@(*9X0AXIu=-)ZA}& zr-J`l$4|OGQ}%{Rme+5W-}CKZ(qD7^7c|IePmI40Q_2127Tafp}}Fn8o@qg3M9q6a>(Fg$v_K-{QD!b&pU?V}g76!zTM z!2deT2WQTikG#b6mfj6mJ|5v|&jMok`baQNth`O?JG_*hC)AVy26-@(5h6Vg90StK z?!lt?T)N)aUnd=&k@}kJUuY0!{t}kYpZA26z}GOnd873F6!l%IOB8vP)s0#jSiZmQ z_Ek*#L|pH6PaUjRt-d$pD=a^c6a4#XeIt3z^I9C?oA48+_fk<`@H|gwo9Rp$|Mz(i zwY500HY^5ONS_b?N7a4D)%5>y0Ka8rRZ3LIp-Is|O2!c?J2Db+?Cc^c^Qb5)3Jpn4 zA|XkXjOwURqJdNrhl)y*Xh?pqbH9%6@6YGs{r>FF8TXtcd73A+WF+EA{_*>JNtkMW zcvoH`-{3`;bxOSdUO$SK#TKfR*hiWhrc3Hf?O{RYL7|Q$a z@xr}0->kv=?|x%V9?jL3Fkum8q$^>^3)$YIV9vrcol{}?Wkt(o!35D!kqfX@cbWD~!~V67QeOyD+y4B}h7HzS5}OJBAfpS* zsK|WfV6P* z6wM7@ihNSHSotu_F56kVjQ8qU>-^x%F)#1f!8D`v>$0TZ9JPp-C@jE~IGbz2P!^TAZit=<6zJCVS?gheZ>L;$mXR>+OikG@=_ge#N8sql^2ia0Gs?T- zPQb$PLy?2uoPiy?O*9Z6Uz^)2gJIF6w+`xjd$*dzZtzxpJB%;?H!d8%)E>WK5y)@J zthQ1?oEo)q>?K&nbEED6m@Xe}c?Ax6&`o?k5FBUysjnj992IivHsYi=ZJ_{*x?S(` z1h(~f5!{`R=WPgm&(~*dwYLk*j6U4Ek+1LX`H8x)OsxslN%j0Hg*c(&yT8lhPIDSV z68gZE#57*f=m07S4xkNxOFpU;h4dh+q~CsNh0aDHURT)fZ?$Vj{=mxN!D2Ii?5=lv(ita0-j&J1LV3<^ zvi>00HQw~U`o5=b)R2f%GiEZQ;D$xNbmUM!-OagUB3yL#pm_e-c<%mk*jse$urlIQ zZ@&f3u&_V4$xm;3z^)(8iOlQ6MhpGBCY8-|wNk+k_$ zr4-n9R;u`XF6!2M^)pyFe~YF#45@-?8=ryv`J31^w`tr{93QeWZT$J38soZf1}vQa ziRHswXT$QRK8yD|{rzIxBAChYe5ZqaGO=qr1q$N5ZN|^TB`?d%c z>f+7i5pf4krHNRJgbd?t)HnmnjoLs737o#C;6n8O@dkWR&G8_dtJ+%3X{vm$dtgs z^^1Ga?9(7&V#fD&>8#E;*`6-f9Ts(cuEw9w1Sie@?rg!=Fa2ek65_)7ka}1rws1Wp z3~x7%L|n+{Y*!34lrXtObL3bFvzJ|VlM*Jpbk148R`!kJ_Q=VtH)cx2sqY=0izVX3 z>uIf$W&*}e^V=*g3t2hHEsSopC2yEy(nSA_gi=dEX+UKHS%-~EUXt9AwNmx z8J<5Jl^@67Pmn8KutVU=seb?MUo*>AEm+vU+?ocpQLssgyLf*xEfY4I!butVqlTb7 z_il0UX1Jm5xcGQvy8e0S2n**^_Cap$E?78UP`eAoc2&MMwJXXC`36ix_YMNcMvV$-2BWe&hHSz2S>B2FZG+8l$qL&w{AvxYMZ!{L^`*TnbN z^s;a5mtdhic2eJwZ}{@ZmSlWFKJ#kn?oTk?%~iDm78UeqZH9HiU(L?t>uXO?>wuNz z?}+d3iD|K7bF;V1%tV}QJ7_4Cjq8Qi@bl>~;h(j?FKoN$y!iJ8xwTKG3hW@Kx+a;= zzo)G=0?u^bQFj++HBPNGf}<739JmM5*4jU2!8*bHwE4KG+auKla8k}q@$VUK!8=z9 zW~1fAamps3eK%~?eV+LD4w4?C|PEn#+? ztj|~pGugIpNLXl(puhdH;O%f(BaW}n#P!rF*r4!ZU@S~r`t-~Jb|`6!y9QHPi@NND z^Rn8-=DwbscMul(OEDvyJz;tCZZ&*;qNmmdkrJkj9yr8Em|<3&h=;w)pX`lCKA9d| zoC3GR=$PN;+cPx%lK~6!B|0BDJ_mN#eOx?$%qTjVlZaD2e7iTmwvV2P>!bBLCbz;u ze~9^}$Gg3daMIR-eiEjo7g%UWnC%FzpCV!Mc=w~WFm-OExPPKw??aZuMU!gs`1K?U zhm~)Hh2O)>5LK~-{X@LG-E%u%-@7x@?<1cz_Z{p6dmmi#ivNAg|A)RFeEC}?4Jj~l zZBj>|go#y!>S1tE;l2^#_?X>SZb_79Y}~p%;`9Ih9w%fJb)UjQf63IcNzdTS#eD-9 zzW$dz`VY)Oe`G&T2Oe$ zNQZ^z5tOd~k}L^xL2V~q!dyjLL_S~s;nt@mFj1|T{DQY8qfiOw`PXg8=IbjqHK~JL z?Kg?fhoVC1*^RKn)vMy?DMH*^`Lph0iF_-jRJ^}LCtle%AzwJ32^P+O^w=Vo;kli0 z&M@M*rldn(7Z^&IoFy7IS;CxppF?wDp+54sOz8?(*#C^_Se;FJQ--i=@zp7(dhd*qIzy7(bo-^?4y| zQbEb4@o`19EwhmM-hof(#6^P@d^&`K)%6l}#*Bkoe!nF;suz$G82V>hM^2y74 z`}E1{EYB|MZ=?VV?NhI$=8&*(eWE^kj#>{pR=J6fZ)#SOs}n3dFJoKF(htCyga24O z;@8vu>R5l+ptqDIZ??zA%NOB)_1~=3NrHv*C$mLwKmttn+IagG@{#*jh#Y3TuO1ezH%#8@C%<6fc_8hc(a|-(^ZLRWHq7h? z3vpuPYjzq@f?9sYOxkD-pufQA0hUL~71!-V?q9{lx%Zu)h4TfiGipOJ;==q1@qg<}c!xhhTsXeC zLfczeu<*Q+9i*D^9JcQNLj1gvP$_$p3!5Bj5FfAH|R+hHG)SAI9;^&zW1!lcoVtpP=o%aU$ zY}m%t^03azE~SMq8EW9H2n+Xb?7U}ZRbctZqvHEDdghAMp|G`8&7%_Ji!3!?4u@@r z&pGxE=BD0l)`9af`YONY>zhLN(u0e_w|$T_p*Chahd4WN<`8|vld{++RWMba%S?xb z=cTN&rG}k^iMc6PcEBNao{PUCpKFcpb_lkTS|xtoN>w}T34j}36o2IJ52>*1*icx0 zZQ_5=XF1?^kPYL+&yU%ZM+uK%VZE4pHYM4xaK55Crc@1kh5AijB_yFf_Loe%1}vQK1Pj-H z=4a?IUBrdsk#5wpG=wW#9K^>XVL%_601MYY!NT!C>6F}^hPZIOrjKbfyTHQx1@`bE z{ll<-Kt}mFe!ke38;`@v_0mg1VIuKod=Q)$So$XzCS6t<$H3l03Nixt{M&mEC&5;i zpNrp@&}&wEm%;Saic4OIb3sMDTVa!tg!p|6_2+Po`D^sIhlbenx9xfhVFPP+-Vwh3 zZSQYxghM8$iOn@p1>0cZ{S961N$iD{hbj2qux>6af*VBvidyQ-ah1q<(+sPOr2?_lA56njqD_XAvH zUb5*h%8N=b-l~9;Zgix2z=TR_dn3$xt@QGQsSjuDqzXFCzO&!f73Kz;8M-6RDep~^ zhvhAsJP*L4w;#>4VB!50HALmf28n#pime?x;G%b%(~cvbzEJr*0Jc7)x4@S#fBx2o zGcap;LfH?-ACmkQ3=8k8*!3wRBVZ95WOJG?&y9*ruuwVdcfU#P7qX)Vwwl zj`r&Iz0dd^hw z`!gcS-X;?M_dd-j!Y780{~eFWO-e3JB2G>z+?o#y^%JRgo^i0yK9|=ZT@4HKM-^Eg z{R98o??07_j0-#0gE$!Sdm`-ZF+==5kv+a)`5gG){yz2O{c2d)&*VUbfm>jiZD*4A zW4vrlP3lqD#NS_Rx^Gp-eOP$ENuL@!J_FWymp6JJ^2z<~-9E$q&t8hnxIBHTU(^|A z+7(2mun-qzE-^8eFz3J4V;=nPeXY{X2TNh${Vs9s&*W{e54_r0v4`?_7Q@V=My zI&|}pgz3zl1xH|8y^#-gqkn|8Z<~*V>A8#ho|G_KC`+7@^a?xMb8zL_%A{Soy?Zu_=R} zP48i{a0tBvaduQ{k56#k*cFZ2VCHA`!aBGiGGxtGSmb{^?l^6%G)?bDYvY!(yoZpCVLpnTQicu*!gnZVGQ9lj~=TpLEld&Hx93O1Q z*X5^S;e9=~gg6rh3)dGW^kdWoSU4V;+ACde!ovBFc`$rr0xTTA+>Cb z_RuAt;mVQs#r3h#7oN1hLj9!W^A4$!&Nvx*YDGU-XiqTpVxRc?0MXu=_X)&>^BJiq zqig`vrCr6>XD;;kBx6`OKa0Mn?4AM(@ApM3_pOI6;vbXd4QA^+NBcE0$2MzC-{%&eZb zCmH#|?-9E2jJQ5xWV!hFr6}4$92f3?Iir?M704H!-_hKN+BUd_aq-MSe+gr4lOFFd z-oNkbMNDwC3T*Xaiuit(Q+gjb02c1ws4XSjaM(4#TYUd2*lJ_0`1z%1qThE-#FO+5 z|GOVOG_U&z_}}x#xmmjUu=2n?sugITUe#@#2`oH+q<*!9^y*`{DRU4?-o(y}i=?iiGJkBlT{;LVub2E7v8$!t+;Be#Ol+ zSh#;>W*sytf`#!C6P+>}U=xLO@$*=64WT6}MSr@!7vIm42IppXhfP%I)Yts@Vh?^) zgOdUyl=$BR)GTK`U0C>izy!VgG7}~|BgJvz^jXDyu<(4Be(@m4pD+J+KB;b3^sd6* z9}30yGx<)`2AqH&PfIqeh<*w6mthkm@B@or!8UPxcYfhm4X`tVBvcZZcU{B2UvJNO6AU~tAo8?X=(89SDCV8#UFfm;eG61lXVTX z;_pL3PPyoR!11)FQvCf0G1fcH3>M0hzd~m$fQ9$BMC^n}3a;dO_w0uH$=!3c_Q1mX zRp!i@k7wY9Guh(z!R&^8ZD|s5BFWOf1Qy=6G8*-@)qMWn_nYM00+VK#8e-qTzwhLR zc+GC({r7tn(Vhn$T{x`o8czH^T2yg1M-G->`SctA{#rEr`{d!U@IFSgYR=8E5@x-O z+DJHLaiIA7713s5##~tWWugNAzMPvkPFc%M$yIwh=vD-YWr)#As?^i$j+X}Jdb zeQ=)2d-3~sa{JRgS0&1Gueuv$N|;s*K3OP{&uqzl%E7|>dSc>%w`H*KJq>N$@TUrn z?zwn2!M9&|Cs6t$*8lJKHKO>AZb~q_qPrzWm?sZ^)(7&s~Rw??EU<5ASH0%Zy!Vi}KXQqvCwwdltb= zM&Ps+5^;II=3e$N8}z#6KFW(;?$x3A_H7hD--R7R-_`Rbp9~k^^4KQ)tQrutf zEURxD`S_gc)1D$fZ|Z_k+xa*X`{W((67Gl#Osk8=*TY2#3V-8e| zgY)D>!tqAG zIQ>wYFE1RQ8aa9s;D6sk9W-4?!mc-F{dat?U3q*aOv+vKGvn*i|M0~Y7CE(wzlWfM zmS-M-h4=65BUh0ZpFe-6_LmG;f`fSUxbD4N0=kQ-(w}+ zn^=$n3+FeYOUmaru<*W~8eO8sNthUUZBq>_d~ZcA2&$2)=rkog(Onh(cmA9hv1SVV z@B5iNCx^{&rou2K@%JjarGAdE@O>8-_U*A7EPQ{$hCGr#3Jc$xP~Y{8ePQ8yN6~uo z?SZf`enxGU*aqj~#os>)HrcHp{$4@I7v_&1*F@w0R%NM!?>qSKAIY2_W_MxX`w_}(g`i%Yi_j@{#r@72h zSlCa3h41&+L;Y;lA}*M7`&{4(dk2n~x)|*f=dP4Q!Vc{I|IWVwv#&me|Lu39n>pEV z=8M&R`QwB5Ytm6YY&}1|R|-w}hzrLPrSx|4dzdJ(5TBn#UiEvv!2XfZ_Z*NfSjJ+r z)n?v0Het1h%M;J!wn&)u3kcr|6IqFmz9ZgpyjFbtvJ;-Sw)6E1$NT=%(|dlw`ES0l z!cM;Yo30m?Vd4D2SmHZ8SUA5B%Fk;wV5@@{`@8Y=-_uvn<;%-$h};XapBB1Lf*qeu z7GE!jo3B31kti>Ea^Ty1Sh#+0yYyT3!t#r%*aIj}x7V3_!46*A-}BcKLQCQHSqbBL zT+syybH#PzZc5sSI-LSrDI0Bb=j+2i*UyIyJQk;W!lF^*2E2xa>yKcEVI9W&^@bSW zBhDAj$MmJ$*-w!#nEPA5?S{jP{P_9?C(;l2`n+X!`oq+kSg{=*_?et?Dcx#joWKf!r#8f&ic?T_5~q7E*KTX5$( zERsDxNvf(dpB6R$6m_}(WG7VbBQ zoA)dV;D7fQK}uUoV4?riewVCjxH5n8XY>i9%!<7Ei$M0ZT zyH0x;oR=@X=siqov;~iW$V18hp*owx719+ z)Z^kKOJSYoZrakr5wABLl^|<5a7*%}|LrTWRC1EfHsR zZCgy?7TLO-7QVjowehyFuzuXl5e>d@<-L#M_2niIIzh0o{&Z00&WkXS(k9*?%-fza z4`BLb*q2(=M>pP9O@Wi%BuH1oq;dShr*P4hQ{w$c%w4hm8QdV+v7~};Uv2jJSFrUw zjsNzuO6k+C^*COdFZ!19@s%Zi`ob;b6!G!I*{j(P;p2agCuVx`2P633@iZW2;6zy1 z|J*duBy(8a@%qy;)JG)ESz`r@5=K{ihUp8@Uh`lp*+phmFq;tAOi7q(JFUMNHgIzZ z_=-5UO+Ee)?04ycdu)f5> z=wr>Wu)dV_qIHe1aQurL9;j5naqWx6Q1CuPxb zAX6fra(<~<4qN4Th|g#ApG^B&SlGW@-rc~TuzW8waeru^_WSKH)Azpkd`~g;8>cm5 z{|AIDC`5lar}r1;z(xID{dax%{km{5EI-kAKt3N&Tw%8bZc!}V_!wrFO?Y+y=2G(X zQejcf(RvTq-)FWQfBm8^?AG>!O>CbuCh<-jI>8^dQk?cW0p=XntqOvb=eKF|*H7lc zkE<79;eLjGF*7$B7OuzSuk%f@u)!?L|L)HekLV@A!u6kCc0la7F+t+{N6|?ADGv}Q z^Dl{?hj3E|xMaYNzwA5s`&n*BwHgNt_q(iD{*o$Kc)mb5ZjSgNVJ`gFSE+BEacakn zj;^rs=$YOJ`SE%6zo!lhzXxbVs{vzR;duh-ctd76Eb1Ow%>SOiuk=AHCE{$NrjH{` zyFbw1jX1lk%P)60$#KeoJ-n?izdi{w`{+3Sc?EIEG;HE`)PL2gat17NxNRugg#37C zW%2XOV9lo=;Fj@zvo#T?587t`fs3r{?8MI#W##wn{(4YT*KL+#ed{PQ4k__jsSzi@q=QPsrXZ!ukc2NLaA zuO6jJSNZZ+q{!#6eAcex{C;EZ+$}%!8}naQwmJ{y{Ca5ofgLjkych3h^FfQkIRhWi5}}W!PNCrbH~HvDa$2Z zu!+{ZRW|(fbXlvPQkPDPw7ZA=h8xz}O%qwk!JcSX$Ex<}yy(Z|$be#zkxx zvJ_@6P2Mr1yE-e{HX>~d0f597Am% zCa2C;4x{Hb@$t5PQ8!`7sEsEZ_;`(7s++tze(ztZZiPh$jJUD=FuuDoWismMzf=9S z^KgS%gGM))TT$BBSD~{$!YbS3AnzXXd&>Cw=EN^ERa9sFC(g~U;Vt##*c(`8l|C(t z@*?#UUsU?5v$l)7SdW&lzfMTTbeL=})jEr~w{(*Q3*o%MbY6MY}% z9`}{LJ`DS%p{h#;A0P3#J#M%R_a63)RPu04LhkU;Gq+mxlPQUD2E-acO6FUvg`(Tpr4kn#--*d2Q zMDB?1Fe7gOLeJ`9s%-zrcr{irQ_D<2=wT2KgkFIC^PlXu!A_x*avS9LbF zg+*B*i{8K@1?g3mFtBqZC~+>kK3;C+z1;)KK#@U6S1Ce@4;NinC|1W(Eg|DDRr<+ zuk92m7N*VaFukUsI09DA9g`CZ zvlTp`)iwEeqx$-2JrcTGyO-y$_eQ|kHJLF z@vAK`6`)-o0#k8Uw>p|)y-#_bqj`6Ko|YzIW_10xRTD5idrQ&w7T<|wT5L&fX>O#Ey$djN|Z z3+9~V^Y4#OyEX;uCp&6G6imG`2>Ss?8*Y7c6J}!Q5@!;g{Vs%s>G?mq44aDMef=EA ze3+Y1J}Uq&s`g)*z{ltPcoc4q^Xa98U-w}mW7Sf}X*gbvRl20X%%iWD^WmcF&$P;6 zD(awWC0zO8T0ysw$j`KJ)t!#{Ti7Jm59R`G+!beFJu!N>Y3pQ9-p#DPHcuSZWHjNB`U9G}T zd%&WhxhKBC%Du+Pgu+y>rE_wtLrMJwz;kX_Le>L*uHAk+V15-V2_=nbED~)A{HO_| z8)2EQeS`MGqTIIS3#~AJLx@L_e15^=(J`>W?l6}`-lt7IO`VDMwm4e8fl28_3Ljvq z;CQ#UFgs_=n9y06-}vYyNid~KPI8}({#;yl(+egV2W79BgX62O=@UDc(@#n~Iv4F1 z|Ju9&roU?4J1`IXE!l7k4U4QUeH<~rvp)LV!lR|I$<_T@MSS^_atkc1as2N(vhxp2 zWLj^QUx4G^LiLN%DD-c*-NzvdasG15S-%vfs(Rxu%VK?+Y=3Qm@jhYX5gW`$z6!I3 z_n7y`Qy1ZQcw4Ey9Hxig{#Lyh>romNbO7cqD{h~*6#dzgx5E`COFw>G1IM}A7O#hy zF;C>j*kZk3?wKx+F@D*go#wpDkKQBJp}kdYx4QD>%iVgpt;c-3oA#CEZMm@9p$%Bi+Blb1 z>{o8c=+mn<;`qOpmstptLxz>#b?DsBY@eUA%Qm6EBa@f>;^X;aUcTIn{o)jI?*~lW zdS7;Z3+7|zLWRdLYRxm}~r)|708X*UxuXieXXO z8o#;Q(Z8TNl|(*2GkMh&xTREUL7Kh~G><;P`*tL{{1Np?n!9LCGtUv+%)F6^(3TaPL6-ep%3=JrEhAH{Pd==gy1K(=G23v1c`(pfL{dT>%Fmut_ zX)HfKy^jAdg2}$AHFt6TBc7Kp+m7~_H1@|-m@bKWdJ)b%+Hdtc{`~v5K8M&NM|Q#V zCC71vh&yEby4njC%3Htc5-Gl3-ZqNtjrv3U#?PSm>(Q_WTd4zRkDO-dgX=XX@0$Aa zAoiQ~kSkI!t^6gk{t(*l{lGZ}_Y-t|<2rSBoG-p^QwW2ZtrNpyJkTGnS@H_G?EA9R(!KMHvEIS8h_X6_4v8DH+q`(rrX zrOv-dhdCurZ51D^=caE%zrw6uLb!!5`nTrUq17-II?3UjANHg5kpbWM``6YlY8{Bv z>YC+YFr_~XKDSKZ%-@%Kt>W*$BhO6# zLK4RJ#Or2UfPdbOIyD6GZl5#j;mRA0Q!59felOL9h78941N&(Z+TXSP z)bt1(zf*2@;r~B*@}Na5dlBtlep+Fxiuu`arrACc$G?J%gBeUsy?ne!6vn%2oNBQO z;-Td?_eUfDz{0W=nA>*LbksGRU!KlyH-zaVPlHIf<>>aD2<1*&J)Nhf4-*sa-781j zT2B7*n}P78$xfO#aDKDOGAe~dvHEj=$99^~-RpTY4(pN7Ga(gm#`o&C5%HMMRIP)T zVS0p8wd@`2r}+&{Yx(jH_m8}S^Ax929Ro1FE$Sgl641Z5UN4(rI;-mYo573{3J|&06^`-5ueu(uRFn*&w%99rq zM)yoZ{nEc*2k@5f+UsLF=6hvJZC99H(cNuLCeBA$=9|1xo|~PX-I9g#g-PlGW4`|O zx9-oLVZE%Ufl&Fi(jpJTkel|MPbtV&z@gB*T8`F8IKlc(&i`sR0e5-y*Ev;N>Sv6cJyV{QEuZ zcuUTBG0a3fXj)Xv?>`T_8U@7nTIMCg{=Jl}Ho;U`*2S>5$p4c6zO^6v)7GZ)tOWBH zTzNMWriL7;iGGLUWreBwTA0y)-cRiV*86DWyk#&q?taO~kJul|YoG6d*|me8O)N)$ z^iQvkfN7EUqhX(MJ=hztVj$nXTV>R@O3d%HoPr%N{dS;IP&I$PCL8zjcAw&5T7&k( zUVZW4>ub!;INONx@2u}74RUDj(7x249XOwQ#B6GY*?Y!4yGUuUr18C(n(`>GuxGSu z7Y&vjdMvIDamM!et8v{l*oLy=L4mMn5p(!JcMX>5KKP0hOx(XWwHUU(GttdS7A~FE zKdFZX>#ZA_VamJ7*{4EAgO#_}jZf?gJEf*=@1?<3{_OY74kiuHesS)t!ODzFyg3-= zq+YJP*hhmkY3)AfZXe`#Gjr1Hi?}t`3ubqwPuMG~!A86I=yZpvrsnhqu;a@0-urvQ z$&U;hVAm)uISrWDUR?P|PJ^WlQ)=$^faQOS3$OsB0XTeEw>gyNtB zNyrz?)INB*2jVi*R!>yYU>&CZDILT+c)^i%is+vlt_R)u@tZuBfr(_l^4>62k#xcy z?HgEWrd{X;$GW!%z%5^OvPZyN*7?USFgK~kpu1hs-aR{IS+qxK7asP7MSkrODd?ZW zX8ijLnATi#ag++`Gwavi7N({s=bsyl`Aj{mzaA!gJ?p17wA0*{)rZBIFl$b+6IJc*}nK2lM$Ym!uU(BH!rC-AtG+k!fqz#riH?Um)VG zlrgRAXzZuP*-DpDo_tc$Rsa(!tm#DFeHt#DHo$sBeYyMb&lH?b7oMmy(qL`pT8>sm zoVXkI*kvrroAwQx1G66kBjy`p{`AhQzmI(K{1NB#CRpF#V3(W@_)g;2XQmkcvTr3l zVNvRd9+qaIS8S~Qbga*!9XSy&eIm<63C?@fbniRN z*|j%6hfSKM4(`g2*DcKTy9M@}zuMX!{P>DzU0FQ~$4|9}jT%f`Qud3OhyERv3LVDh zZ*Vys7%`tCt6SG+YjduiuqfD=kTl3JGPK&NzzkGQe&JX=?J?G;a&bfZyfc@s#`*a%2sSP(xalrcTerOO6 zQ`bko-?tg#NxNz736nk}(o45s{=y6v&xF~dQ=Bxnp?zt8rXNf=1{mcyVSc(Dz2XQ{ z?nO(dIivic;?`i^4^KzT--G?0bjmB7&wsilIok#6Z?&Rh1@D7SlUMKStdF{P1NVdI z?+0c^CBI*!w0jh};dss3k#isG%e3D8{oWP(VN#)j229IWIrrJC!IIH$HB5dZ-_k55 z5asFSv~3&O;lPUtC-$TKlxK(b{+fdSe__O)Wd||-ihWj%ty4&@J+<}+4a;;Nl-Gv+ zwJ=Cj>5lmrruSeO^4YmDvHG4E->r$~ym;5rNx?_4UW;2NTtq%KKTgZc8|$5*RXYV1 zHEnlaehkOUhm#Y=pnf`Hi1syDv`~5p2@`bi^EbXI@AII{f_I~LbnFSNZ-R#5gckHC zW2Dh4f7m;tqr4g8&6S>45`ghUet7x}=HfTZU{7OyUf)%_3*$rTF@u88{{^DZ2{3(U zb8>bt$`8Bh?(qY@TkqT_6y^W)8}h3WUYc>xISlz_O~G;vXg_iLxWaRo&)r*d?$@Ed z(of5_!)$O<`RQ83O*J~^qP+it?FtDsn4kT(zdk#Q@s?FsQD4y?VyER-#2cR9$v3LT zd^BE5QAYjT{%6lSDp9_;rAH#17d1xp+ZR~z&VsaXtoIOque+ZyKIgL3^$gbU>om(t z6=*-xG*jz&6z2D})Z<5`u#%bdrD*i0NAC1qFzb%{nX72uq5bETcYJ$=j)~XN{#={o zWhLnUgWmWy=6(f-i*U$<|e{^0pRHZZfAz4|L29e{?;UtE{4w$aXRBGkU z8-At*@wU-QFU^+7zkE7<&I|O%Vr_v6+GG2jo4Yj+`?+;Tf+fsUOe`Gy68R;o(z~HO zHj~MbdX4ei{u;g=X2Q&E;|tK9(THjDkWXDvbsk;VS-)sbaqhe#)TeK>vZeszGw-JN z{w?OOO68OKz>y7z~f)jAb#KOw%$+$a1M+Ru%P)i1~KG_&yV<(F9BeyJ;5Dp2242iKT<#CIG? z3jU1#96n(am52E%2zUJs6FVm>p3X%)x#p4o7v$5v!AuU?Q%Ha9UWI(8iA()nAWqK? zFRVuYpC90$uzQ&ig8Dtmq6!|^t z4HRlne?8XY39RSVr4erMd%Ea*2I|*sNq`onuk+oz-d_l`uz!mL;Eas4#deg1$l zmc2gHEqVH!m&4ejbQm@ySbd?&bTOUGBpt9e6@{M zHDJCJSDW>Fi26SLp1$B4+MiIcD*6G&KmPU7X-%lF@`s@^%y1#sihm$JZTy?&dswfa z(A#TaBF%YkVG>*}mAv97>XSaVIR7s4b6zJ;XvKb=**~y*BJ49GFBxu7yXw<70r@Eb z^7(CuYYr$D-9h^erPk%Ya6Hy6a9(m7aNK$AEd@kL!4WpqJ6EW zCM&9&pJaUtc8hHF?geK*u5gNj0$VOAL8`F^`eLy zh*zH}p!#UC@=u>n?*%jGVtkGIA}+n}*VY*HCvs4buB;|&UA1U=*>$W(&v8q<;5_?> z7v{jkZ`>d8o?!H1+ck{mq>bTWly|ILc%k$v=8L@>Zh`vAi_f2TL?f=YX7SbD$bU6p zK_A{M+r`Kgxeo zoYE44@z>#g52p4^Y7B%ax_|p{MNO9Nc>nZSFy^=R)rrWCtO?aLc?|h;w=S zi+2QKzJK)2byPz8AD-DCID__X{lfh;%B#Bd=T2jMNt>_VRmONerXDSZ8S0eEa#ggq z-lg{v74~MyeV>Qu(VGpn0!N}(pzE(F-+9)HiuSw}OM{-vj3}JK#J&(|KKB;?lGs=Eye)^Li0`xD=QMIqaUc~2B=ewc*@`>TdriC-6_ z>YUKO$s_GQWBiVh7_TG7cVd7VF%siB5#o}w9sL<8^(J=|)}#NlO%YpB-k=`8htOX6 zJ882G$lu>6t27S#xiTZ9b`9E#EdRd881rAA-F##f@)LAbYD^HXHa@m%1?mgb>X~v&X@mB@3>bfU zD*AIjXG0Ifx%f={9>RRTYU&;UvstZm<}*;=O20Ji#jw_t-lMJf<8jhBf7DOxS5hNp zVg7yV#=?+EzDV% z2=F$)y9w)eeMjMRzP+ty3#hGV??rR%kh!qOvpFZW;e1fzJv49@>YsVa%+?9xjVp@L zn~C__ONBnW5MNW4x5yIpH>WEfa6$iT-SR4Cz=bLJy@LL(do$_!bmV8Rzc|Vb^WnKk zR|h7|)8xJ*zrk7MYyWAT^${7kewkxFU3YJ)M0*A=)?PbBqP_#G9x#ru!OeBzM;EpRh1dar|+Ux?!^8HxKz1! z0^Ek@ldyc*VY_aoXiqJnE1qz&BJTL^$nluJV@U%RqQ1N(Up_e)ch*mhc9MQR7W23L z{M@aGTi?>kHXnoWyiV+!3CnBx+C&+2_TSM$A=Yga%2(m{3+9V@_h(Mx2=p&+ep3a; zZ(xe^l_uijx8eN(*5?V%-|86Ohqx)RhY-JcLM~=F`dfkD1McYmI)7zjnCuZ9Hs}b( zJI*ZG6J}Q&yxG?a>oae)y)0k;8J=f)Bd!wRxI+u^cXPuFkE49aZ~r)Ll+WGOrO~(3 ztbF*ApC^%jOl>WJI9omH+U7HG;=#b(Fr(}r@;C_Nt2J*Ms)O+_9XIxPFy>3UW18Mb zj3;=xoG0RWD~(V6)~+42SOt!Titb z+F*tCph>SEMq${`cZS4Wf?12*sXxO}|2zBxO@6(GA6>{qU_TUv))%8ZQ@UHTE)w(W zb6HUu?a?kP)}Mmeak(OSzJJ;H{egVu;$qoVqmi%Wc*&MQe-34v(HM`&{g#!<1=K&g z{g0s@@=L$f3`BeE!K_1jF@DmeSnuI^jOW??G7GFXD>r47E}!45Y!}4Or|Q6&S5O~E zDg}1O`jFR0RJ^^2`s;8%gZ)6ck3B4V8U35qD`gG8KkR4pPr8EsM3`G%;(bD1Dd-yJ zzYtA!u?ggANhW9oVq`}@`THyco%ecD@bOFH&PA?|;$U%1I%le%Yi?l=1L=;s@= zu^#?^&Q3u8xR{^!4RbNR$;8%c{CuoZsFr=*IbLGPWQ*`O=zkpU?=;Zg8NWit7NNfW zQHs*T&|c=4(8KRg-;dMl?+-=)-P(lAZ->&nlMg4o{yo%!8aQ1Ns?08{L@&%Y!dgj^%xZ#QPW`90j z_3UCGOnSs8V&z}{=?dI#7^VWEEVms;x$3CG1ont4muTIICGHkcUoKIa|2nvP?6KzqQJ?+T9UEXOIc;-1Ob4^= zr(q&o-}M|!rOZDb1&eN;F87fzo#MXz5G*QMzAqASuD40rUfw3uRt6?xs^9K_Sx?U? z!LUI_?{mv}cYW041vAel<=enqaOu;7FtOr=i80LFUE6IbUp~0HWf-6T?4jRen9iga zWj^1&m>LJieN$;teodL5>Zc2Kur z(Y0ddFqj+Kq`4Q=(R}{(s1=J~=G~%Eny}-$!Chy=bo*-2U^wo6;Acy| z{DAF^%5X!7Y}Rz%dv<%P5#jxGQ$U zc)$CqeEF+IlbUe+Ia=JKP*kNO(8s?uW;&MV6j&4M|r;ZI5sH~76O(n!MAyOufV zNtoXBy_b@NT{LOG#HEpZl=xlD~x6s@};*U?QwlijT7ouddoI8DF&Jw-qeZN1MOe zWD0Z9TH^T>Or;q`7oa>n(?5AE;)2PqcayYW(f$eIxWRmtYI%vcLGHb$e-sg)IPG{Y z%ID3kNNa>?C0qL^FtzUG@)Vdg`yX5P9Z%)|{}23%G$>A_T`n}WPD9eXGSVUy8d6sS zZKoniatUp9jFM7aglHaGit1`FanfE~DGf@erA2;^*Y)mvzUPnMpZDA2`Fx%0Tzeg2 z^-qxT?-}38*D>{~)=NeD1G37GAa`H=we3Mz?3Hu<04%6|FY_=r>U?e*%)h+ZJC@X2 z-P^nyR`xVZ*#QthmHl~IT_<%uF5NU0dl_bz$_b> zsY){+534ddI&~p-%W5zVrnXF5WdRFa&OdR0=|4Lv+r#XLTepV8%u=PQC8@7>@31|r zemSDP8BDqT2$z%k>%oJJV6ID(NnK!NQI( ziP`1Kx=Pruy8BC*I&h}(YgjaXwyF@Ok2LbV1S@VA48H;MZ!Ei=g1MLmD+H1+XH$2< zn(YG*=fXnW-nQYe%pj=!X_#4gtTqH@0<*WCBz|(dDhO6KJuvAQET+GYW?^pX+bc(4 zHvI3D$)x|T=b|*?iMGXqVfNJK)MS{lSUA5k%qP^3PJ)HMT!)shrswa`@vu1e{(>(! zo>T8v^iaag-_I7WV0y~&JzGhAqRE4Musi-72r<))K79w4o5{J&FkOGHewL0opG~{s zbxhgqTf9lfqSs+20%op%GLAt%tGrr22>##aZG3xhHvGTonNt%s6&6SUc~5s(wr7BpbK_?#taNfdNYTkm$F#}Tr}{8ecII&c#uME#xz9MiQH_uA-vM(+ zi+(+T)#uMiIX$B9i{0@5>P7d!b-KBWmrIzA1;2Hv-a7T%n?%3yI%eLStr`GpzYll# zN{)?=nGYpXTIo9O@7ImU=E?-aRAS`9a9Gj!mQ^6k=pV_PtYe{f{%{8!v%O2NcY~QXccgkMxqNjSn7cC4 zU?~~DO7G_Pw^%>JFTY(3izk}Iyoc33LvAgA=@VTJ=fPsDGl%_2y*R)z1EzoU*)|vE zCJlS4gc-jj)Ev?u?z%Ko$8?5w=S4d8)R%xR19i+81s=12H3cDq=cAw6yPi9HY_|W*~yXVxsh5M2P;LV z>O@#Lk}`ED%yqh9wi~8Tqz<+t{a>DMJOESI(_eOk6?+$ysbFqh#0;Y_Trl%0Uy(RwyGxe3t;$ZFmjPu!iIvkcUZ5msW{p0xg;|IW^`bDA@ z*&kjCkt}}|)V(iE&tCN18oBDJ<9B;lOz}S0oOs&)mSbUI*O=;0uQC4E6Vm>j@)#5I z6js;%wV#fha$(rJu(Du7oGj-puxGC4SPNXcesK$nG#FE~rUa3aduGJ>Ciy zjXrqIhL!4%RUL?DylLYFvl;z&TNA&&Q#2B$SBJWEC0=kc$_|!Y{5!Wh%pXj%?+Wu5 zHm>ajGe7pUwSra4M>ms`ddI}twlMp2(zpS{-6HolhBeVI(}oitTQKE!8Ro~WxtAPB z|8uv$Z(+ryzFWq?e4~D84~X-E29Af>XJ&&1SoLiEa!=xmb>b0NmRh>qkMxTfb>T2q zA`e>%b9G$ET#`ThJ8~sVUGSpD!OA-YvIyeGy%Pt(@@0F>x50F$h zWf;J!`3p;Tz}$dq3x2)C_S^2%=G`O@I5AWMQ>*otXTX$6(8k*^Z83BEX;R;&S<)_8 z^DTWuKFq{?9JT>gd{}ODh1AFAT?>GPoZCGgkou57)3LDo!K5G0N&eV5%NC}ZrS*LU zvyV*2Tf^G(O-@r;-W1lJk1{(>uKp=veX|~N?F;IK@9WH7!Rj`K%HJ@3$?wKJn7x+x zPM@6b_Iq(Anbc4A4mKd?yYWZe*TdTLU-rWqgAkZn)@ejjTS|Aq{cMkP|6-QTeZACoi@|v!&Y}Up5?MVNQ zFmp5FY4sy4VWw!{)*rZkpsBcSVomb4b>^k8a*t_#7m|NFx#t?pPbePK4W=4yop>5n zlx=@v1B<0jPxtDWFR;J88)kB!NB2ff7c^M95vE7;&HKRo?RzbPVe07|>3V_gxOAx} zsn53P+n9p}2~SO~K891E*6KT0{X_GcFdSUY``Ug__F zu=e|~&u%>L3yX6W{P+D<#l~9ej7;dNNMJlHfkE>FjFta)TEtX+Ph>c`w1 zSi3%OE%tp#g4Lm$_jbhe@c{uTn_&4(=8FZ)dCI*)VeR_Iw>9aujO6NC=eEcNx0==g zFtd4;w7#;1WgmQD?e!wNYHgq^tae%Su^H+a*0I|#ScpF?Z69oBtD63#|KIi{lo!NV zz=}H_L+Y?SGSS;zWU%VcoeniHHE_OBeVFxa@$?DFAD9GXKSwcU%3f|3hlmF(_cMi=X{$Z=6YtJXt$2p~nu&CMDir5MsbJNR#%sfo^SP_-Q;7fV zkMW{e{8(82`b?H9a?ZoQi5%v_jxBM41&+Q*!|t6Er0Y|$E^|~PSR4}JRga9fbw;i7 zDW>0l(7_rU|AcP?OE8r>-F6zb_2^V{|&x$5PU<1m%{$+`zDj-0t+7a4!!l_(jh zf444j3(P-{pWG0pe+D(>U~aa1+dogR{A^}P=O1)x^U^9@ErnUJz_JB$u5ovJUzoqDH^rFv(*2K~u={8E)&?-G zmy|u4^p9gV{v_vzAMYA)J%|4Lxzj#HqIjnK`EnTk)%j8i_NZzt(_BB%9s;Jv< z+&>l;hEF*M3$G(TeuQNcPDXOyG)fc zti66**_K**VlR0J;L-B*PG`|%w!pAU}40tCyp?4cI%%Hu{#lwt@@oqo#FP5Dibhc|tFi93jrg2-K`=}|DjX3-`UmV;>I)09 zV2kB2bE$V{FXHEum#{G3CV1~4n2Bn%qZg?!nDf*WR(8xgYE9g!@!ke7wX&yI8(1ij zNoKE=Wtr>b^gP4#h9s|lQ&IZ>pTGWHZj}u4|87|S&oEQn(dMI$<;Ei`9_v_ey&rrR z7MIvtenY){>znJ>i5Kjj_ybmUdA{YMj#YaeOvr=T&*x_SMy}XA^!y>1+59S;!t{zW z-5q0Ly3YN!39JrYsvibZNh{u)!>aq{FBj^V3cB%&g}D#=8@40$Ei~UI5?`zA-wBq_ zO&{e3i%+T@yTa~I_ck2`3(MQh?gcB%^Y8S7>A|OOJCb}Ed&mm@-~3(`_p%MCFAJD7 z6S>klSl$TME-wYw*7%1B@+g&U406pj!<`kdc6qZqhZL5PeA%pXnaG*%;-R}Rb>GtY z3K?&E{FQ4kvvs}l9?aV1UC1T%U5$RfgN4mK{g1(Pix~sH!`!mR;c2A)-}K(`0#lpOW>3uhtt-Ce15LPan=BoFfbcm}3hihI0>9hTJO>sT;}FcNgkXJvG| zrej9`;J}+OmASvi6w<%(ic0~^gwM>I3R4Tpe2Za)+%|d^%+nWYI%0qCes-|n4{MJf zqVLUCOG*6{vnEP%JV*MLpNG_xboz zSP^?FelyAU6vdn2`0C#FTwyHn>rSOsuy%R#kKCG&~DH18Ri!CF7-k^w{rWveX#f|%*GE^oNx6xmE^k~MTNjj!puDfh_}bt?}0T(yGiRK zr*y5l2#a42N9BpSQP_UD)eEKbL3KTisR7K-IVW^{ zj_-eB(1pe@72B|_9W2_KTxkgl`zZURFms-7X9=^bLWM1`EaB~qPO$d;Rh-`|$OhJ) z-)h=d>GvS@Cws=9Mm;;LW>{aC8xmSm0Mn6?(``xpi~C-sFx7NZ;$WB`+9b6K7WcSz z9tw+_2A2GW)n#f&hPY&>ml-*~UY<}q0%nUZMz+(j_IzBK+fw6%oHlFuu@7>tc9*pO z~$i_q?6OdZmkZ$vhVXAjVI%Atvuf9m`Xl3 zsV%wQEMMt59XT_^<#4Tz=`7D%`nbN9?~9OfVaTcmGFV&BN2aq@Iu>$goSmoZxX|iA z9c%9oX#4T+MXlE$*N)G0=KDqv@4O-%f0zxX^~Lvg$YLTY)n5_ z``xr9?r+d9Tw2a0-?w|He1eYosdv7H=$iR9eJiZ(r``Iz&eE~)Xa1@iuy%U2_j|ZL zXU|W=_`>Nn-Zo{}e%Az;dcl0FX(r=g?fmAb{J~pb?eY~4eEpS9~iAq z?tgXhnB@pF74cQAU^=Mr$zjCJa)SE9cz^1@_4n>2!4XzQ{gl>s+Tw?=FRW;{(y}+| zxn;lNmcW{hhbDI+;~%!_76bq9_`A4YU^2`lx2|hX^5sJ=93tNTaAIrH?=q$JdD5@h zoY5R+ycfnkgqckd3yq1_Zfy01)CZhSX#n%%)0Bqfe&oO7HKVv_+XGg9nk?-vwD&9J zOCndj#r}f+`87O%+@CZ#6!e7bUrc3=iLiWxWqUQOy}zok*i}~m^D8^O%SBE%aBg)8 zroK5Rzkp?Xul_zy^51T6KfsF0Rc>ct!DHG?1KjWBGJeQU6W3#RH-pu~KYmxiqW3~G z8(4e%*WN$Y9{>6L@P`wSQv=pZ`*%*C8}1J)f7xblCH?y&rTfu>&EYB0#HyIr8<1;{ zPi*#f*S*Aj4*JhP&KjlscfVVEy#057TzUH5(r(CUF>8Jk+;8X4E3bBh87@7<1Xej$ zRU5-Rou%nQ?$5t9|3Z=afA{ZI&5E3BjPd!dd*(67sY6!`t6{oc+Paaj(yCw12bejU zb!j3j8h0Kd!tCJG?(;}KqS>{3q(3wzClaR5gfG4YQ}g#W*#WbAPwu}&>T41wr;|LI z%|8v(jyr|3F!N_>L^i44w6mKU*7S5XN+BPevPF^DQvkUBplKxiBLMmX{%OCxFlm3B!F8zYtuk~Em1r~DO|24q#GtJOs(+(t$ zdp6n}W*)^pYDsd_ThW#<-@SggF-&J%R?A`er<_E6k{?d7aU}iE+tmNogseYt@l#;; zYE{N_SnRy0W-+OsX8QP=j=9|KJ9A+Az_fv@kPB%YtTIS{m(kMmLa}skSuF8&r^t=S zsj6xxKbSwzyz3#D_UU(OE-bjn?2f|9>~tS*m@cgII00)6S{Y0v{ccrC0ank>FJoYK zYx&V@uR8I1sf-%K9W>06#I0K8u*|RH=tK5^VkHfTQ zmSle3xmSBh{gRWD-XVA2ow+zp$Er_l%s1-PQ-$$AqKQu)k?J+&Cr&RV_5VJfzt^tg zY#pnfJ_+{GvHIqzYhz&X+jZ%AuJUw;euH7{{8065^|L>*@%@ToOpjczdsrJ-J3sM% zL<<_i%+W6q=a9?Z^w{#%5TE~V`7qNvPxuIHm!D!?Y1%vDhOJv?qMl#9(&aA9z3o-F z6Xu?@?Zv~mH=Ho3XK3$aRe#~0Ra z57e`p^emX~`$&5JEZZ?se+En+emlq%^>TyA!09lT^R8VJSX0?EW&-JNRrN`aj2C${ zzzt^l{ub-V_Ir2E<KvvULNeyA?c2&U}9SFMGW8$%{HBK_6tr>}-J-MTAk8{_ld^QWi5Y+s*@ z?=XAw)S|JZf6bnj-(aEWw3{<5gq!}>z|80y^5L+0U6Jbt(m(#DsXeTzxncSS7EczI z_l6novf{g>esImfPuTytx0rdd5av?qt$72h<}`17i+GkHE5h>S`tj#T|B=qOF2d}d z{5QEU+oorD4$QCp(k`3S$J_qg0n?j1PRfFXsl)R(!OC4`FOp%V^B8G=tq$38A&J!Y z80)kQx#sN+`A%Z({=N0^$6I0Q%nWJ&uk`!YeG|-IWtFa|rvf_9UQ6m9&lxZnW*fEZ zvYO<7msWO%apS1*O44tz{7xsBTVwtqh}17#xwZw&f1KbG2-6*cJ)6SnmPXkDF#DR5 zp10Gr%v*n0bYEZi8OJAXO!c5Sr2kw@WErg3G2rklSeUaZu#_CXdiPlB4QrpjQ^x6& zrjY*R-9_h+GauRy@Fe}o@qU@GrqeYuCzwB(ShWr2-Us%uhiR+5`#D%;){E;;>bvfX zUPbyJJ>S_4)*heb*6j_u67SAv=ZjpaDE6_28MpMio-p5iJVV3c@6@z$u&`@$b_bX{ zzy~|RqAYqvD_DEJ;67u}Ei;%G(&}uGEAFfqYznhY_e#(IWxvvv8j}3pf%I0$IutR{h7L)SZ`kaE~MY##E~Vi=r-#O4Xe6Tyz+y& z-P3NgA-VZP_sOvE&2vd3m|1B5bPP;ajkErR^GVh6g)&E&8sQ?HUkbh6eHl*bW0;$7 zkgILeM-GPBr}l?Laz5I;L$`sX{_Ws^`!Jn4@MwFOE3i0x80J2Gtk)W5TDRVs0gFTS zdp0Ne1@rLzq~3pemIHPxM zLcUf5vxk1~2|}*Q?c`Dc(^Gyb7QswV%Onn;*Ab}a6pj;TE@>#pfo7&iQOF3hadD+wd@ZoQ%oliZ@NP6#$sn(5X{W1id=|#`CnPtGLjoq z2F`=|29B*3lKjFK$;ye58|VLj%=vzjuK(nBk4AaxjOWf&exIsip>1B_ARViESPbs2 zV|8jPs*{enl-G|9VD0p)il=ck2Kc`Jt}mI{6>m#)tZ3rY`X(&qe*W+J^R3yJEck!@ zDbtUvC;8Ps7s&kLnP+=_h_&-8cl1aP9jn)#%yA<9IT{t2pURFejttPr`J>+F&e#9H z<*ypD!XXV7KeU$KXHhx?JL(a0BR`xV^H;ps^o%~nWBaHwVKK?@<__XXU8MDodUMIR zB`lVjNb8TL_En)CabH7e`Kv0&4*seKYo}j-@t+b{`~CPO1%p#zs#TtJeJ%_ByL1=H zujIxLBGbR_A&k&dkHlEQL zx$2@}{z_s)3V%Ze<0np-w+0sXf6;FaYv(W3sK=6vxF4hpmuJQyXZ>sIABNfK{UtL^ zukYSL?jOAw^lB$^iry!^zoL%4AuT^PT=8}(a`%lp3=Wd<*9?uB2~!%LQNf&D>El7L z(5&l><1lmjs`P$}xbi^gDOh_yOcByI=?qLqE|cz;Q5}WPmtg8s8^vexzQ?9pJ#NBc z!s`alVZO+9OabXXke^pTd_!5ShS{?TigU2|vi!v}QvboNVJ572a{Rz6l25hy@BNfH zXUpEhoN1kcyq|*qJ0h*Gl=GQ}fn+?NKBt;ueP+6b{%Qovr{~|3k@deYxWWKd=QYl2 z3v(_u5gObdRK8F??m+6V%cT2-l%G|ft|WhR;aMSa%?#fcJz&w|=+Ub%6LR*79m!j{ zNcS66CyWj|!1S7`eOpPM-p*<~%(ySDoKN~Mys7kp*{l)L`zP#(Jk4C<&?}X;$hp@o z%vO;8K|{J4!|K|Fzd4dmtvvP}_e;g{F@v_l)WW_Ou8{kuOPCS2lYi%(dH1I}o24F1$XI~qE8!}L8QK~tb7aciW@~; zU|HWP|w}&G$kBnI^HOX zgk?WWrSl24=6jo&u=ad}ZvL)YFIXO*opOwf*YB3}K84o&q{AOAk!wy2ypV&OqGw6( zR|uQJ7oLWN?oS8S;`y7h`MQjAFr7Ux`z0*DuAX=aW(Oon&-0j2<;%;&pO}(U$mu2? zimNaaRGUJcABsJn#oQqItOS>xuu9)*&>dL3CM#JBD@UbIR>SnT0O|b-w!;Vg2c&So`^G%Qkn+$n#X~^yz0Ws|Rbp54X*+%NO$ex5oj$Ec6TUb++Vv1Ina-d^Ako z&Xk@%^MhvJ4AU`lCgw_jj6i%O{20al!JTSxfmXvi~*9Z|ngpPsBeGU}nR5ei?E9 z{wI&Y+T~Ae%$S}5Yu69$@ql*rZG8dt@`)uW!KA-l`N$erxH)e05>mgxC&ieof5mIU z{a~T&y!1Ss?|F396j;>vk=9SqdQ|%nq<(BOqbaE8y!svJ4^yqz`YwPKOFaB(QvYv# z7ajaR7?677tAQ!Vspt{ZM;xEE?;mN;4+ZK)o9@^?)pqqG$oY@h=#KQhlyd3E)(knG zZ%WM$L(ZOYpQaBB>sr?eFw^3@-IsdEr?I2du$Vyidkt%!cdL|+dRZ`@zXvrX`#V?L z>#49%T`cX-)VJA739xp5M~4NwtRi_-xU_#1LLF&um@jU8(H;Hr>ez~AFmp1nZ6d6B z^~*~SrZ(pJWx$;GyuUvwjJNGmY7We|C>OuO!gRfyldyYzSJyW%|6-+0A*uiU=2Ic@ zzV1>IuydTWm?pB+C;{!Wuew`OgEsC6c02WOit)gN2Q@ghM&oMn&1;g9GLYeb_ z$Gd%gWqPFkMQXMsa`)5gQ>*HR;dyI~QGZz2ysOK7n95m|IuWK%-5x&y7H#@}tc5xK zi2dVW+GwKmJ|(^O@ZMo0AA2CMHO>dzk6Vqjg?Wpr3tfrB^|xEW)W?3(`{l)3m+eUDd9j)u=lF{F#j~4sIA2zs z)6m7RurFGA-YXj#vp%2L)oD#Ca^)`D=f_~}`MWr=@ku4jq_dW8IKQX+tWAu8>1&y% z7s1+`8W1mgt7AI0zH~h!TVWvev)%h%8D56*&zNa;pkEw$LV6y{TgErt1#=1Sq~8O$ zZ=0698)n-YO}&PC=KhN_dx=eke0mMbThDrwLcC*!e=RIK*wJr4%&XT+*KgFP1Cbdp zbN+NTgX=v_zwRknFg5j~bp0S*A(|-R2%OGTp%{gpKS|^hwn&c7u?8q(aGtO(oR0Gvd|;u66(d+ zs>9^>CY;&hgI9^i{xv7}kEqFS%5TGbla{w~V3|=y;2l`t2K@JYRqLKZ9>3SkpN?o= ztz)jrV~a8FpK1HWs_D}2Z?vY8XG{0%{^$2|Ru9*y7d|bz?xthTG1zA@OkcB_d<)aV zZQfSzGOXD>U%!Y<-?Dh={-V}&=Uvnf7R3+J`X(;gB|Tr&nm@j) z*pl48{I@<*4fja*LxrWPWB1U{M#M?aOSPu5w%a75UfoGC>;ZDxaJ}zym~;8z{g`}S z$V}&9xWCLkK3nmG_}~3)ttpn-8--kc^8A1KuC{sS$^Gbm+XtOrB>i4ZRWWhRd-PL} zR!P5q<9k2c{Q(vYUA>O^dNF$^HEu;=?Z_-}$_|33;9obCmxL3*+|K zkA!LO%PksW`xMQF`9{KWlgRW&WPASiJcqgL(BF`3zdgH1&wKv2eVgY<&&z0!2LEmE zH8UMsi=s#E>$JcOA#llEgt-YZpFzv(8Qq~D)1wliZ!a9#qlur#5X7wR%L32MZpv^3cnS`{Bn4szlP*~{XS;F;@(X!7s2ek7Hy7` z+&n774;Jlz%_YCjRi>F4k0!pC-s&yPl;l;~k^X5e=NjSnzKT0L2X!KOOta1%U{y|` zqCL!-(d9g7uuVF5bkql$Aw$=_>OKF%Wq{p_03dKX|-mnN@P!hD~+UN>Oj+3lsFF!wig zTp_H?Es`w0-r;>0R*a6P!jMzx6Ry00>A61A^l?VY<1Ig7`F^LTu0zf|4!+wS7NcLk zT~F#w9ozMU1(QmvtuP%IQ!@=#c`RXKVJ=({o9T?f}FWTb>2Ece=u=4Kbhhqn`SZ`E({MI2zvPNxv^M zF+|ttO~NB!_1|@;_8=E_o_HJ&YZhPbl1%!yOz)ck%U;y&+y#q=G`sR(MOaSuHkkE| z{!;G?`fvFgY=-G&_CuS&iktmP783t-FieBFD3ve|=4KQvI|HkJXGPB@`B=KqV_5Up zYTis(JpI`5HB3#t?CeJBoxFD2e8uuC$~PPZQ-8O*jfc5_0PCT!V0}8L0OsQsN@l{g zsf%??Rk$=M)v2d!n%lpFRU^CS3?t($5Pd)En0|33@SBdg%ej$1V0WtDfAu~-g$=&p z`_0QK8i9V+%kG>VEJQRsJ&t(#E`v~5ZF^msekR$kZxk%PUw3~z`Mky!OO&L3)tEUG zh_gOz-T|{OJ@!t9MK|j&rLg?;?lIG0q2AL^X5UeNbbj->#7{d7oUCKE|6flZSoQTo zAAiy>d}|pEYv(r=m_8{M{@?Og_2}I(Shjl2CI#xLBj2~&g=zV)*2`eVY;yeyn7UXm zb2%BW*f-Ot`v10PuC%IN2Uxvhl(fB4Jz6IYfwkMOcxYYS1f5*`+i>b!SSZ_Ybp^(w zuP(m064ve?xC!=gX|OElqO||uPw#4c4%U7?_4zgT0M%Si73` zFxPp@&>ygJ#p1p#NdJ_(QG@Q<(vAr?-(KU~cQyFZIZH!GoRW!{Rf?k+pv? zeUT$NCc?6bLydmGVqkgiLRb~mb$bPIdRMhI)me}yw6rLJ*^cL)O@rNw`j_5>>6$Pm z4VFF6YZDGL8+XhMtJhgj-?UyI01MxOh8=xZu)d1#LK5N1!TJP;34^V_&y zC-sw-n`9Ahuy418_!Ql_rG96DZsC!#6y}mmxAuVDn^ZYYBl(RkZ->D`+ZT6SNj`Y9 z)mWI(e45w~W-T*AePDT`W@Z*J-Eh~dWw1u|eO42a_j}rNEiCppV=Vl_^ewftKLgXI zpPX`Gb}8?BiPRr&!5k#{9`V>+SlQQMa57Ba8e91SW?Fxo6bmzv2Rc{4R6|c80;Z}< z6~Bm$O`C_o+_C)d8d&u$zsE9IeAXqeQGI-$FK}EuOj{JY`;B(S#z)7>tMQ* zzfBRTZ+_4=9+n@z;(Z2Y*3UY82rw-R8w&CBJ@VBz87DY-D)`oy!&Bv;I7p952^8@22QE5j!q zNGDFO4seFuEmx%`!h%o68y{G#EH~Z&bMJ@wtbp0jpcM;99{8X~3as9JW04!oQmrmt zAoX6(nKgQ~$cO!gXe@o>#n7-#&w*VGo4N4D^JpF!9B<$|t`Cu!_`#AjB3ybH5 z_wyv~KX>zIm_Kx2pEE43jDA2h#_||!*RU(h#O2PnfaRAG2AaZrhps!i!lJ-7`}z&j z|M^wzP*~8U#@>RN%lmvM!PLXY*Dt}sc$2v4u;$H>{>Nc%{F!63Vg7y^zn|pKYAcq& zDi7y1aiss~YsUzZFSm|c35(Zu9@+uZZSS9PA^A@#^dhV_@~QvuE2e+Luo{^m#*gs2 zSp>6%Mn=tHF)4Us9xU?hJ*{E)s`v67lJ|^>=mE>?T=%4s{*jBG4uiS59kVx*yjW#E z7N!Et28Y31t4aMPkUUcFs)E#~e{`P=^UF%jW{~nIuILL3`mM`@NPXSar5$ywo;0v^TOG?Y4+_m-PT5$hml=%TOTnVP)5B%x=bA>` z|M}(rOm8_{Q~?X;QgRm|=i3gky8| z%^>;Hj8BJQCe3;76p~wZXm^U(@rq|JlJCrV{sQI`2h?_i*-lQsU%_&d^t84xxA0BN z3Yd-FJKvo2|Kw~nFc%n_tEXeOV|(w)&saXgtS40?XX?#vag%uRl&yM3n4T3~PV9&I zZo}U;hq*OVD|W-osruC|VY)V|JchU?)XEYTdMg4VU~1zc$&3**YBq7vD>obD>Xa?| z49t12StN(~zw(#8U_OQ3GyqnuxqH4n$pbf>8V<9$E0deRBK5Ou6s$bpRryPU>0^KQ zm_q71Hm&~&=041yIt%9F%-sr!4FdNoV8!T@b=zR!vX$p{lB-Sotb+L+n>-h&^&7rc!-o$Hbew>0;aWPizFunF}gR`)Efh{$h^cyegD8PL7!U1-$;9=}= zjr5P1^+yh~FYmeEgcS`Z2{xp@%ZepM#P|A{v?BTM7rP$AVy`)dhOoFUB)0_S)td}z zK4E^{Y4h+k%=PU3ssd(vjB557b}#ZOc@7J?r-%NAl@=d7cEZez>FFj-u)KOdE7?r) zit0<|ux9x1v8zcQ94oek*@Wyb%V2s;$G?^^bv=2tA1t=pV$&Vwoo@tBfw@mNeC=Q^ zb&;nF%s2YWJHm`pg1bFTZC`w69O>^{li!Wxmi?ZOC-oyLN4AIQqj!FJ!kW?T!^~mk zTR_X{u<)f`fgb6<{>af6R}+0F*x zOEI4Na>FjcFw-=B;ym*CvzEpC!y;$fc_z%|r)-@H3;qwJ@5gOe`(h+aZ{K--G;)pd zgxPSCH|iG0knzep=h+h5?g$(N)9c+%b%Cily+-wcnOc`nOC7uCUh(OmW5Hlmc5Bk# zZkBy7)C-SWdg#I0<;NQ7mwf+#`G0Psw0uP~+vZiUcKI{&4&=Qid76i`erR^ZIX{N! zR%h2Y#(0W(7D_)@^sw)DnXFGGtvp#$|8MFQdR2Lg zx%N6%cljJl!`kghX`HMy*Rebys#H(MV#J5BUn?;`tbZRlfbkTu?P9MGd(M@%FK*|P z*B4;z^oiwL2j=ORzgL}hh3#R>LMU}8zGu>$cT08=#54PWb`aQmn$5LlMf)W)wi725?vo-~H!o%hE?!~7cm5hGx3%A7Zeutvt`42OlKRr-5LK4z4%7fhcs-gpM4 z_MNrs1dFr#U%3janXI7hMPfR*njP+#060t*mi`HS>xKYu}(gvwoW~u-vVYK{ZUxZX#J09Mh*5 z*4E3<_&cA`v1-(h!@FT7|4qqI^fQmwHD3d>Eq3JeC!aUer>ifiueDv*os6Hq!Fn>x zDHQ*G|3x;}hLiq(^T++~Y`bAPX2$H#90K!--O~J1PrdiCDXbk&HoS4i2C#O1$x7Cn zKQGt${5NOD-iN9E>!j&n9cOgA3~T2HXRvc-9!$@+GjhT7Dc&b7Ng#Rj`5(dL`wWlx zxgKWATXc+oRq2kEdly?gn1m_AlD zB#-n@h-F(7Q^vJrFs}#*q)2@Shvk1@rR#~_C9m;$3v!?0f5`}%kA9=>!PJki_hv9# z>sfpa<|7?{wty8;$Mv&e`ql1^G|9KORHTsH;hTFmSXnKbYG@N^Fgj@F?Vzym|nCh#ERq)E3-hn6di2Z$HfKR9Rgld6!*3Pr}0XhON_y-;9}X z16H^59kUGhck^NDRxj^5ShcTw%rKZ4^`@%5Df)X- zYHL_HFsyACSka>(vp%WsTz%9TR%KmY{iqC|=Va4q2CP{>WafRCnj!X^1@jkQ54jAp zb2e^S4pSz(l;=tP>gESm!iqUf2A+fk>=oN?C^7GF%0a<(*ldU?$2*)adJW5IIdLS+BrF(hwmDVZ;# zYLj8b+U^Zkk?|6qMdT9eZSJ<2jOSjP`5o4L*}X53*tOO6&gS@jdrp|A!Sqe$M*u80 z=-=-EEc}VEUI_~|^=gm8%&Kiku`nNVb+ZZzp1CB~ z-yMAkmi@KuSV;1m-Ug;Euzp$g{m;=K&CFrS@yv+3$f>($d^*C~^@D$yyHgG;2dy`H zf}H=pxNJDgg}6Qt$#{XGQ>Ku9McaMvNdEdy=SW!CR6b8b#_Kw$em3df-KdQ|)<^cO zWlM{em>>VvPc~*x|4zi6OgtNt_0_&rj2)~or*E6X^ni`tvtc^$XOXmi-&@gSJuGx~ zT-_D9aP|G%Bv@Iqv1?B<{@#qEnXvrW{ri20EB3rU0c*l$^c)N`o@17%VJauA#Fbd6 z{!$6MhsSwLgT-ba=hbh8@0Yq&GShv3a6_26V!q6W}etUSNPIRd8Z)o{aLchPK46!9wC zBQCIf>7&olu+ZR7-WXW3IVCTKsq^AkuH{Kll{P?O1ne4Xk*riN8Q>B9yI%`Ss&YsbMkYSo;K6 z<1wqp3z$7{bP5l1zxwp4ga!M(@rOzOzx|`oWP0i`Sk}qnumSd;LTT&l99U^Cw=&f+ z-Slr|YqGyBh$+lP&RXmU??&<|lV0S(+Wj-#D!TDiSlrg2l?$n_bZB*h zxO}p=j=6y2mUD<>&)XKFp0@gX#~*+ix{F+h7<+OV$;0|ix({>v zi;IJFEZfZ|hY?#JRXjzm`u#C-199@(@er-dziYR_d5X=y<6Y>0ITA5L44iYCsS=PZqiw}XvhzC)_ z4O-*#y#wNMh{e$9MzA8R`q)Vr%VnW4tSk?@lS}e-KUOv)^*hEU3dB8@C$=OxJyANI za+PV9X;@xRYNJLjh9&&%0rMtRz7Jt$=rx-G#PtHtm%@C}NnZz8Y;!Zcg4EAS=iOlD z-HWzAh>s*cn+6Myt77$WeCMY+bXow*D%W)~BM$koWF@S8mblvjW+#+pMU&hj<6$Rq zKCp3&-cFdB+wEIdm})m@Xd0<+5y`SsFu$6@xv*>QbgZh5r&5-h(|@7Dn03#*Na zV0GZQ^ue&$(Z;g`=EuZOU|`D0P+39x>8G_$F!S)&t!mia*Qf0$;_>}{)WI5A5r?+Hd}+UCVK5VEB0mHRF2{RuFxC6y%CoTY@rrX1 zq`rS?`em3sdT#zYSd8`Xt%T*9FG^+(83tCt>H*^~Z9`5QADn5?7VF!dskPf-{=&)! zb}(D^yiF2uc1sHvSoNomUK;W4u#zRPaO|@(9TuI;Z|#HCbFwWCkbKPW>P*<(JN*4o zSm+hH@w$%bQGIsag5@6^LR84P{^=*xFl#bgvgqo4GgGCy>%>P_iN^+V|wp_ULLUUN+#8dYO`_E zbaJNR<}@FjoEp;Ncz}+D5lm@_PCXZRxMq!x8P^26%{pe2PR&Vx`M~??GvxaizN*fF z)ro4!g1O!JtFSm$DV=YNM?w!gf`#Xks`61UcE}u5P5KwN3_A}~n+~QJwa4=M`_xDv z<9$Ee$P#AmTjpLN^;g#)bbx8!@{!j_eYtD%iraz63e-h;5pvpT<+j2AU1Uj-}wT|cnzO@HLWir}!P50KOC!kb@) z-5ZUV{|IL0r7#7=`P9$HF#FPAMlnoT8}%zCzgNysr#(J07h2XbZTG^1uPH6_t*AIwfjIc-k*+jodK3TyN~%xMF&Woft0!Bp;{ zFKuDYyYairusY_;UYg`j6Z_nQh2o%mYgk;A$r2j$9sHPU^Pn=R?NBU3Lr&z#>#rve|HTH0iMz*kg zTW9I|P8jCWe;6#g^I@9{>F=ula3-wrQFRzi`t#cB&4>9bXQz&bX{O%%H89=iW`ZZo zfBsVxPwHcfio8kviqZjDu;AZfHB0KPR7+37+{QggbBJBaZ(b)}D>~03{S)V!J%ZI< zIVK9?;G~7`VbO5e-le48@I>Ml*nP{${oydTrF5+|{ePyuoIckZmL0t#tVJ%~y7hh_ z%un@hy#;1mtMAW;+0e29+hD5r$>4C(FZg=Ik?~$kiQWp!Cv!Y-KJahOUZ z^_MDsXOQ}DQ3mNGKQL=Y4XKYFm5}lOn7Z@0nD+k<;Kxp=$-dSJl{J$>C{ASwVW_BV zC!_@#WGUfTN+FFROU1FPEJLM~bP^I`vScYbDI`l%)`)(u&;0bg^XK#Ndc8mA%$YMY z=bY;T^PKO_TVfm zw)}R-8Ww^&%{x!}$v2x#gw;+DKVE>TDMP2Z!hCwM>1EPa_kO(wR@Bee-0yRWe7`)H z{#&`=D(S~MradF`kIeP5VJ5_4@(+^#7^JZfVXR}=>pydT;Z9~+X1dMWJrZu17dLsN z+rz3w-{P)gJ^X)VZyjN=OUl3-#0AfqIKlkq-_LFn%OXe5hZPo^zTbtZ^dW6_Xqg_6 zviX>nsiwEjCBib7<{ciO&yK8{tAZPzZ}5p5A63BgfGNTw+tDUB;VJ*e5RI}4*3QPVbY@*GmO8z{OL7q2mjH(3ky2G@~X)C6|0gy!isl)H0DFB zx;5^D{h2vZGcWpOwjT!nZ@nR}bKGH0WY&Bo^NUPn=d?^!?YMapW`651b;y}{iATS{ zl4rUaQ_okY4Kn`E;@oW#2Id`vs2}KaSL}bwiKlINS3}k>|LG9|H|#Ihr0MPmSboDU zI3Kwd4- z_Gdx(v~9#i27v=$YJ9}Jxv=mg|EeFX+%(+U5$3lWG~Wm}JYV82Jz5$C3(fZ}8%FYk z9+!`i{NMMVu)4Qy3M_y2x1yeWzgrkYs$faG)3-j8@AEOY?-j#puidiO#Cv>OyeIR{ z*Y_pCbXgm_Z*ar!JzIBO_7kRd`>r~MoIB<-|2OHIvR1LM@cD93BU9w=lQq{X|Fg+J z&Gk@2zv23+VLf$q8`hU>-)6Bz4c3!4s(U{d7NfKJRKdcbYR&bTpzhM?BTTml?lhA0 z|Ls3hO5grXu4mV;8<2rq=Do4@4NP@fU4Ic)URCqOFe9N~CzAOtbnJbYYr5w25m>ym z!~Q1eA6dCR8kQaq0y1I#?8a%~Fk@(tc$)M}*Zv5E)y?v9Vqs=q{}=vn!~FnVwe{`_ zGXLRkt>%7Vy}!oFFH+6@M8o?@H=)xxvi@Mx^GnG5(AH!9VM?{`h&OS|__uRl`cCgH z3t(>dL$xW{-i`Z<=8$~pPh+reP_BMSEsxl*#hR%`t+B<)Ud5xzT^Im zuFY*T36_LqAIOI(C!@dPVOnB%CsoVJ-IH#{!(6+K-KQXzwOu2`XjwTZ@A4+NVLjGj zM%iqb{nYcJ4f>4YyD&-1f?>%2-_QTc8}9#^32SpklJze?EYm@sAC(_!22*hx>gvh! zhAlTWW^JS$zmew=5e0LMk&9Hxph}qTe_z^z^#48YVEcLxuh4w{OyB1s7d!csJb~3t zJ&m2!aKrbZ@@%>LYMA~#drvU(hUZz_K3C5mm_6i}>q*vYmHuuZEO*I^UjS1# zr>^V(3l?^}<`d^jHQ&d=$odj@n6=A4@gCpT?BYS4oQTJ|4=#X}^}UK5Vd1S+VhYUf zKb|=e7V-Cu#lf`mzAg4J^?u5PTNx$>h7%S3u-0ilU^i3^{2f|#$ zwOcZniC!MvpZF@3HU(C-ePv@r`twRGhQRXNHyStmzDcb1@9BY@?VGr@Ety{+d()Zt z;v@BE^848{Keq#!uXSBt2=kY(@6v_&*Mong!^+G}Vk@}e_g5OY;$#z;ao_eQg!H!@ zFZx}I{C%TPKUnw~%YTD8B{O9KnQzso?OT`?n#S3{s=FiYU%|pvuixEaF0pURXE4+3 zQ*aZQwU4iS4D(L8gQ|_NzEQ9I0^&xp@={nexrok(#rUlo?!hwWwzF=+f~S405>||` z56>k1V-rV)5i?Y28q7Ui_GlHX4o|U6CiBJ)>pft}#37w8lD_xx=VM?>cV@feaKrT) zdwTNISTdh-V7409Z$jhs4|l`#i5p*Ez)b6NEw_{T1LG3!lKlQ`qaavpzhEr>NTeWr z8a~S(W+FDe(9mMr5+uHbLOX8KwLbk#D&{xu?usFraY$dFiQm?KOvHyb(Uo(cO zeh>0g#Q*Lm)FUj0Wy7LXYF#9`KQQ!JdWAT5{<^g=JF%CL4D**SH=a-2v5DR>;v;3O z4Xl24(R4rQ`)?~YA};Y;9|^O1XODJ-<*_WY3#JktEp7!fqeDk+Bz@0ok1Bg2_qL4) zfbl^2bSbQyvi9Z*GXL*>OY&~%jwPhOeo*gQ$R$Zrp1YF%Mv3AyEH0>8Zwu27bCUvK zVU<&bIV>ow=-H(27G}^NrrISGPA2{H@-sbQ*7kvAf0&upJG&js%o@F|8Oc8`+nHB_ z*Vl_Zu@v{O%*fs)H(;h!!ag5ZVd&N|llb5LHvi(uk1H@&enfMBu3mNbY7#88PWv(e zefsb=$px4?+v?3&Sm|NW?*vRI+b$mn3#E^mN5SIOGR^Y_sjYRwWLH>HfLpdti>~5N1Mh z8>ifz#O*H)(1Y2;g}XMv(nj45)W5|3JX}A06-;*><@y1}4_qfNSXumDE)wU?sGJLn z&5z$GBL2Ep^Sn>KQGe+}SZrZ*%^A5mocex~P_uequtU~jA zQM_-Esz?0nJojc0;W}Vn&*wG=|@tp!Q%YdPq)c>ANB^N z5kDK!?IG#+v2i~QH#|R72KFgG1mnN=Rn(F7<<~;C!onkAeRuMHt~wlVPx{O6X3c{Y z9dDf&3bTzee)+E`p(|W+7 z+VI<9Slu$!rZLGqjP?t}{JNszA{?J)5i=`bS@>D{JWQ=o{A`8uSKK*#^hKEO`Zv{_ zobPoNd(Oga&6^q-js#e0{p`C0$m`xwI z-v{QSc4?m1as9Tm^d`Qvbme~J{DEr$i(%@B7!jvsuIZIK@vyjN_?(5v>97^dby#hl zJeq~M>=ru;V0M#F+0~Ms7oe_8gre^uo|AG0obsw(7-22c0E%19Q4fc(?0^=Wm zE*?OBe@!EICz3p;e~c3>UTe4F3@o~g%bf!=ZEoK<4hxMsX`Y|Sa>t(LVgB4(>($6P zo6$=Tk^YB*<2zu<`KqjaFn33{E|xguZ2LWAeyFwc1=7!aH8G6XeZ|>ql7~*Z8~{_- z_Gq4$(e}9q*1+`e@1a%5`N_5S{a|)=X;o8PZ}4{yo}Ekbf7c@_+o%<@h#NgV!;7SqO)eD&@7ajeax2RzY>Qg!Az%9->qTF z_1NtKm<@jIHH!4U~<~4|zq#Xqj6TcdAsAEpiec`T{sA)v(GlFfF)Tw#`TApq}A46 zVR;+opfSw#`FXJoxjxRly1p0OaJ?*V|K}qOi`(rNn3Mc|z=NJJU!s>c9+vD}vbQto z|9hTBkFQwM0dBZH=c3~7=#f4jq`7`qOzn2A4auL|SVdu89rJ){2~*}eN6wJ-7mr%@ z^Eq<;E%nu~(0NA9OPKBC9zTiPZ`gBv3t_=o-e@i?E23IIg2e#Uq@}PpWBH{#xZ!?> zpRjjj3YmAb{{QD;#%*0L!Hn^=Cb!A`Nmk=-XUY79OY1~f;rjE{Nthp4(zhAz$C!DW zTW^7>Ek9Omf|ZMtYy)9#aq^43uzK?QwJS+}r+?68Snk~Yyf5)0DytS2=S(SIK%Crh zxdFL9y%*-<0kejFn&)BEqw(=`h?j5mo`IaXn6=XlZg?KX(sgyS$h`VkY$Wmqa|371 zPKU+5W)?Cs|L^|0!Hij^=J}VpETQ8Rl22azt_|+jY28IW4lo@gU(y$rnX?-I@A<(7 z{>6B*y^}dsP9(SLnQ0FToAWBx!ioijk}+idV9$99SbbsVqLCz*<=i+4^Y1O}`jL6R zrL%6p)bRKF`jGr?n&x?z)Z^HDLzsD)s(HR7dm3}TE6jgweW(SVUnx>L?CAuHZ|iSL z$nz|n?N)7x7tZn;0y7o$-E@dkYLAYF*?F}kO^Dl8*UDg3;(3euXV{)+#q@=+WKX%z z4`Po#hPz?f(Zlg8%;~p(a0!+zpQ|yyFr`%%tju}vr4l(md(epveQ|t;wDEioQ(tpm z(J*z)q3|6nPR<%;0ZZoIOe=>Og-e_REE_dCrW6)Tc8~Uj_2cqf8?|GXy&(F6W7%hVRz!s4Z~n&Zv49$+#ZR?z+h&q;r5=Nay> z%a^y$yGsTAfq4Jz<(mByJ8m7?ALcxNX!eg@lxjE|ZrER8 zb*Z66yatAH@L!Z0>1UD82Df4L2M= zcI6|FR)hZAKTaNdr90fPe|Ui8ZUZ+QKT7}b0~c8O=$htuazREq3rPRp_JrE|;TzzF z^@VjwS3!Ssg`n>%>_#RJn!N5c)D2Wr^+FOOhV!H$_($k~A=AvLh1&ORX> z79PKv(Q`2RX+xJM!<6yrLMxcc_Bwf%*xlgxLYN;f`+AV{Eo@%CfK@(@8uM+|{}N$( z+Lr#2$eExCF^#2|_c~s=fz0QZ8N0x$$BCA6Nq%`;v6AHVi$Yz=dPaGjGGS>ygJLI` zWrt4BgN2XxzB<74@yhB-n6@1gI|k;X9xiTTj`afH1(=aM-Ijdq9*^_ zDdJ915oxfbaptB&Fy}w?-5r<@7+|`Gxb~pYQ<(LNirNgbdREtelKHuVhWU~_Po6%| z06hS-7p>X^L09-{C7K; zOLCihnaqbp1~(`D!yk{`hLtay4*FAwXe{%OJf248e{Hd^L@wNJI{5<3 z4C*%H6D*GYs~4|j_IK6eV_KF)$y1NO{Hk`EzP$0dzK3CvS+7}7DH^wqfg9ErbxP(% zYvs}tk9#Y$%!TQ=hr$i}tLjA=Zh;$KkEBsRqfIb#CZ%&J_D}Zq{P4AK!|SJK`#+fu z3p;jRyo;Q2HbisZr_1rlf!J{!t59(j|P(m&bTLM=x8x*E1ht1GQ2!o`($)G&MgsJswXS*d=%fSGHRU#el|&yE+)QKX-Je#2OpI+XV+1g4tD+;W1sW4}9WBJ)in^cKR**xr&A#G?+aUI)vw zpZ8r1iQF>6vStgv3cf^HvRuF1-t z6JbUA-uREC|Ep=F2P`Y@o?8V|&#!0t!mOgmrJD3--s;W4(#5?Re}|cF*TeR~Ot;sH zA27fFW>o@AS^J#-Mf_N{Cd(5Png+4f9V0UHZdPKSY6TItT*wqFK5oc zG&8F)eCNT|ELnv&9<<*WBAUI=<|~b&rX6>r)1r%VfuadcQdt2 z-FGuu2rF(s9XGb}r7P;O890VYnzVW#Y8qX{JM5vlwLON5geb8p)kHyefH zDV^nFhg_uRRV;+%ZZWqQ;%$jz*1!$xGjm$*4}}}{4}X!Cvl6BXTKNq}pV4h`{5vcT zIzQQjxZshly)`}`H_bH1gL8knXC6$qFW+o{oQ;2N&cVvU$V2VP_RLe$AHwS7)*B=+ z<&bFenedn0*qm#t0UsowG?K{f@uq&43x#l2ylH zk&0dvM%+iZu7HK?M`e1pSWiw_M!;P24?TOp@~Huxc9HzPGSdd;*A4OA4)YJf13gLK zx^znrvEk9%i7@kHu4e%0e_0&-2$o%XF<}kNtnK)r0#=vbEbxIjmtTK-*7?2pU&(XC)%LtIHe zSovgXkDmot-|dFn0ai_RD6NJm!+YUVVQ!zi(XB7 z1j0(|iBx0KAG32&7|gDzeyLU=k2&`2D6IZ8KlmNYNYX=Y!4m1ngZE)Jw!rTPaZsR6 zK1|JV+wcpfY!5ffBBoXx89okqUAKx1n7jM)4g)J!g+*L~@fY^`E`U|Y0A{S%?t z{-pmPZN~|chbxAL!~D*KX@|*tP?xkbFtf)ZD3IjoeNRfp<9M_fWa|%$@B4P`2Qza! z-1Q>;0r6>*U~c!0mGfXh*W7@G)zMea%q0Dl@r#$kijEb>9bi7T-@R>QzAo~r4a^Gt zdhaK`y{h#9GQZ|f=vkNw3+UFA^!-~RFcAH`5ZJFH20mtirxGn&upE_QV!nDgnn^mM=<@m)K zRvL~@SO{}RY$i>E1kM4v_CTumPJkY#*_TBx>q*wp{5gK ziA&s;s9;H8P1|VF_p>Oefa#&j)sZmo)}!k;SgQW;Faj2%|157Y37=;#_rMS`-;czB11oNk9GmxsR~Y;MV{Ln7(!YP7N$Id!I6jSiu`Ln~eUUpq>UWrEIcl z3oKf!eBGJMe=5)03(KrebdkW~qH9f#!pbnWrLAGEV!wM5%s)B!vK1^?N_;NEOrzWF z8x#L6&AJWC*JeNaoe$qm>Qn@)?pkm)Fu(Tmf$uPV(dTj{%w%=7>f(s?`#zgn3e!%R zZ>(Wz_xTmKVKyUZ$X1yCQ~CN9G5==nE||&c(=`j`FAvT+3JdEyy-Fhv+}!#i$#*vM zK142{nbQRH6r=26U^(E^#~_sR@6)- zeq!kv3)3$ar#cYNa($Ny^U`Y&X3l_ zdUf}9z+B||$t_^I)@%q*e9-DhV_2NHBJcvtelHHHzK4FNS;L;f@{4ZsKf~;W2~ICb z-zrt{3})7xqZ&`c`4qgg{1NfUdIx=26|Iupfayk_--p6#SDo!wiEmyWJq~6)tTU5g z@w3OiSuj6-<(IQC`>?}DADG%}I^hf~6wk8^fVo(=4Lq5DcP1#5^xHYv9fG+JD=+Vb z>F&YnB4M%0TFt}CgUVIgVBXN%1#&=oMDmdGG#8j2*+*Fqt5!K0kB3FY+ve?LSg%99%_vw{Sr$47mSpyEXinyvn!;4H#jFUJjqm)h_AdJ3H$@E0Z&xILhv_!6uAYDuk5tCrVCGHMozt-D;>4CU z#5c~oI|nmK*D625{QIz`$;9dFM_0nErQ>J;mP=PRDThU?PV4T$bZ5H9b28s)qEJL~ zWyjKou+XjjuXiwCQ}y)<@#NU5?$h!9?0j=2iS%2hIh(`Ogaxrmm_1Sx%fO6r(Z+MI z7-alr8Y~lMc_hGm?mL4yu;QA^{xr=F~1fTk2eoI0<&LFz1Rw? z=WU%63)5qKIw)YSu)0YU%s>9L{S3)_pPsdw%#YpkDjjAmqDwc!oXM~re_{FOb~iS{ z?24Z*Iy11piA}@S!Hj>K3`1D73tqAs7W$vj9|Ft9{+hB97Bd!19u2e2Ew}l?)WGJ) zWUxB#b?khYi)#_K8K$pfeQ+fCpyc>##6r**2Uw7mROiFY;48}Uq<=L{_c1Jq}``$J&Kv$%Q-(ocQcVhqf#h`KR|^bHQ5Vqtz-o74Sax@Sd! z4@}ShEj1uc9JU}7rsVVEbYUh=_3j0%JT}R+G0a_dJKoqC--mN^Th-se>w9*;Q+HVM z9gxJ>SCI(k=#JFuk!GRR;5Y zd?!Z2iif*SKPUZex34C^N{5i8k4S!}tZ6!|HmRSgBJ-bhr{uxBTjjGHl204|@*SD? zojNWVrpKL-Q7*8}$9J)?aKgAvUsxo+m5fImLSk$&%% zg)_)}vG4PhBoFyE(wp?1pL0I2xZdeJ2eTveQawmMaQXKLShThM*r<_`wQp2Nb5t;@`bSH7NC49nhEcjybVseN|5 zA-T<>s|GMrw>af9toG_D=|=MHN5vnobbNG8Cz$>c_~#GIUFzpvn}_W=1|{^GiT#^w zX!r#dd`-*EV43rDmk%&kNHrP?%kNC;_6FuXMhzSd^Ix0zi6lR@Vb%ngEjl0a1ZHpa z-Qxt)d7Zx8goQ>!pD!TuK6$M($h@K0ZaJ)8@!K{D78AOSUPtCPSKd8E`bW(|w!^Bh z9*vKXe%AA>D3XuY%{@T!19tbLVdYz)BpjyxylHV9mVUqBvl$j``&yiZg=Gf%>xjGU zvAqB@8`{P!A@f$&>oZ_Qk;&{?WInDWIhXX?#5JA@)6*^%EQ=lJE7h{t z&DFCP%$7aX%ro9?uk?he8*5J8AoGoyZ0xLM@vT*|9xPV2J&=uD_1De+_igm^7tBk6 zB`+V&{HbNtosl^eaKr0SEM0Kz1x#N^?GsPteXb;5BmIA`pMDT=`y}c2-cWmltoKeC zx(5~_W_CISGppO=Ig|M{4mo#-gYtUFNI!kY=SMKF8g*kl%qDm{y@$nLUpw2uOjW|h z8dzd{eu)jt4NSe&XcqdhJ=$Bs^tV4Fy20w9?Vb%Hz8R<(2#asN4*i;o`FH!~?k4_t zF|3MM_`75eOm|-LvJ&PdkJx_*<`&WBZ(;tAPBIS*6K8t8f`!m=CGoIIm2}`X$**-E zn*}QexvoitsXEhL_law*Zk~YY?F&+$!ZHKCnK#KZt$KWd>1B6Du_RxvGvW)(wcX(C z0`p#vU1~{xSmVv+q(AFYx~?m7HskR?(wBD6(}z{#s&$NEHpAs>H&`;j)V3!q?g};R z1IyPH@9je7$GBVfC%Jl(wI1mQE#5W)X1X<1=#c)DgBR>zL9n`TkM>v6+Km2FaIH+8uxu)!&CJVW#Tyj?-j5N$PioSln_W31$x!g~XA5&xkfT zuu9b7ZDH%XPkaXb(1Z@C2)%U(Bb0rMO4M+cI;*Ga>+FunWg?PW02 zeYtgeSeCZBhY!g|swQ=URl?~R9x$8FxOIh@yyu~AFm+_rwqB$!8=h`YtY~q~45qgB z8arIe>iY{)hLZWh`b?5blMj3t1aqMUFDzksr2hT>uy}gN`{6Ksvu>6F>0j`^XAW~+ zm)CdDnx}dl9okmQvW)0o&9y8yS7cFe!~XEIC$_J<@t^5M>nDDNIr*sz1IYSmpVXBw zd+l+gF)TJaKK3o?|9gFu!v@!USp0a@s|V@JF6_QZ`d^=Fj*p`Cz!lfEES@kLc2&#l zIj5z`#0|%9+~cViwX7bn$?KGs6~{m6#%WpE_1&XrxMBO!_%)*fNZw?uz7F<>{UDph z!dyy6GYQ#0_i$kz%-A*8SkY1E_-r!&c#Y=$Rr>@@nnC>U^+=wlWyrKFOEo_{h0M2U zvc{0CH)z1Z39!&KUvqq<9SYZ56Mtj>|NS|4ml+1LxlunxqOa_IvzZhYv*vcNg_#(O zb0#F;qZl&@mL@qbYX>tG8@9W_)SMAl>vNDVa{TBA%f6Xyu7$-pom#Dim3HNizmnWV zG+qz$FBYX%lic6daw9A$i~jVU*z?J<9b`URPxY4chqpW!1uKq(UMho`IFHlOu+rmt zMG-9c?R|IzW}ZtG4`KQg-R3N;k{ubIN4!6ITpBE`o-Vrv^QYs(b78?-_>oNVfZ{Y2 z%*}n1%9A{-fD&QF%iw(xFm>pbLlrE!;^HTV1^vTx&)L{sneO!^u$Z&lrZ=nzYP#JM z=Dc@$4}?`7BQxicc@LN1Au!D(9dU>0k=LSz!t&>57C93Sn2~P_^Gz0{O(T8Z4wVyN ziRH66MemXB?DvNJ54H)Z#e`KxOjbz$aobx<5Eb6Kk25~j0yoH+$^ zcRdRm!QA&VrI%p!3upG*b#;XK5NIo zoNsyVQ<#bjtegc44s#P8!;CtvqlcDx)Be+zX_*R{61WByQxA53MAnO2cXAV~UfJpI z1DGB)@6&G5pVm!dA?>wEj8@KGJZpbcE9do8ehIL6ZRYa(m}kSC&s>I?Hf?h9h&P*B zJ<&2>GHKx}Sn^&^lhgHyD@tMcmS&+j=rhSz%WGlv=pT-mu;`e0#Aq(o-!c4J22APq zeLe`LeUy9}>2F^%n1LlJYW-B0?K5ZXG?*!g_q+siRMX-`FxP6~m2+giytKDJthiAU zlK|5PYod3-YW;mxCrMs8Uv&VM&7Wj{6lRS+wmJ#RpV+sIfyEZB&fJ1kek1btl742_ z?j@w(EF^R#ESN3dGGHFoFZ=7eoaEt==PY6A>}Bm1!@OMn%^sFB#~tPoTYfT=!D@#m z8)w4o^Oo*zF!TD3y^Q3;2L>;Ixm+sHf#k&#luKaM*+_ggEHmxMIm z2rCsdS|bRuSvgb&6sLf(0SeZBTR2t+VlhQ{dwbl z!ps-XymFY@SQX!PK90}yO<^jSsjiza80O-#e%*&@Y1X2lFyH=4)@@kK`kX!i7OTyV z-6ZqdmV9-BnVqIySup1{(Rv}7_u(gAC7vLNCvT#oI?8 znZSxh2dPmcf7EW`8dyDbs`D_I`BR|?hAEx9!z^HKS?aUBWImw98FQF-z1!q4EN}N` z=>U@Nb@Wbx#rc;66IiG+E4oYO3loEBSgaZt@CjxzN;A5U`JnEd^*peDIqhpCB>x-P zb-b4OMITKk!b&~og?h-j6gLkSSpDhVxHe>d=jK!|STeU&st!zLhQF4>(tG3jwj%i| z=l&c_cL_Pzg3RB@UbsukEMb9Q|VKJav>m9J{1-0`f%+y6K zKLRr*wsl3swKG!B!|c8d%U-~|sX_l-ST6fD?J3N@Dqm3u3$KS{KY?l6Ke-jKqV?J# zk74TQV^5uhc>hi;{gF?6{ry{GnDv-^q zD$;*ov}_P8ntf`&JOpZ+jcRJlhFmL?rB z>qGLy$ma&IqD8yHZZI`+xZ`kGa-&I12blFAls^Ne&NNH-lm$2P3%dx@o$b1R)UwR> zx8FOM&+<)9N3PB?@qG?6r!Lt)huIDX^;Ixskm~mu7Q9b9&V>(y#84J|9+@#0PkgJXuGw z5@ru~HgYBNy{GzbCwcAo9+O};Joa1^tcdaJYz>RYt-l?EC5dy74kmeevGpZb7FM`* zAo0EJZfUTvr)7E{(pLp-%Z5d2+<@L%W)6*1_kfvx^wC`8ijkjMwu6O19q*}N`p2vM z)};UEYI_mpCQo1880KSLrEg(Dx;^pNHS`@4M!$z8oia;nV0Ow8pBmCPsOtOyrjvfI z{RXQ|jHZ@pS(f`~@iQ$;duFKbYRwBVZ$D&`{OFX~RhSobde6P8Wh!v~{d8DxchTgM z%{_Wu)|%(Srn;VoxmvYm`^uyiXXA-m$L{@2_Gb^b`xGor->Wfo(B}0~EwjNZOjp6o z*c8p{7aeHEo8@_`e=g`t{O|QhE*7rQ zgBy;g{La#@KQsTcXiy@2hN*AA9Y11yrgi(~0?AL>h5RJjvkp6V8E$wzV%X?Lmq`Eb zn`3{G%Od5&6Nn{yvYLA1d>pX2?l{bPTNdlUicZG!*TF*3(k1;!UU1ZQHB4JdLI=b2 zi$`mhk-U6n_9$36-Og|k%%ql|z=Xq~Ax(c7&N# zeR5X9iYcC-`@(Fn(cctUeCwXn3+6}8U2qqcC$zfP85YcAW1hl-eZ4{-7OM{25{V~W zEpJ2md`bOBm_D$=swIs7b~BPaOAaQ8`R~ zlzYix=G4HLVv_F|+I}C*dc<#dPQ2OQ@hB{$bT?L!{+76+ELdIgc->u?i4XZu3rnv} znSC2(9XngJ^2O_$Wlvw%K};?=H}@i4Xa z>X`^wa6Z)O6wI^Z)Q7dqOu9e(JS=(laQg|8A5?}5Fnw&A?@^fE^(!U^=Ik18jfR<| z^d2R|*N?Hmu;@ADnavVxe}kd@78rk!p~(bT_&7V6BmFn~R?ml3r=LY{fZ1&CyDMPX zqC2zKlHB^K%?{!v+b^tyX`%VrXqcB}zVRh~ck9PRSTq}U+l#of!@We3qE}o>BFiqhb&#OKkSOF zh5fY5&FuVTFwCpw=D3mk#rT2NS{Cc{w@if_UO)G^>g+7I;rNJ?e7-J*8;&2lQ)l%S zST@}I?|gDR8g09}2bRnjqIo}9(<^RCu=@44nLfxxFZUPsVb!WDn)eSEhSE}4NV9I@ zhn%|7eeZXeHJmWopRBh!yr`KUj`!Win)5?kK5UK=EY3b)ya_qW&D=K#{@?la{Xwxc zte#|fWj9%`-IWJ&Sdx@fxQDFwk+KVem7agMkn@%OL$BXQ<`Xva2T4CY^7;u_K5E?H z7}9q&D@lN5_gY?yCH=|kKAnRlpCgKnz}OFybdukktob}}7Hg*Gko@20Mfel9;{n|8 zc@suV5=&uW%FF8sn5Xy68v8@b!kN+=?Uv*CFJB~{BinCq?>@^fknM9>Ro#)Z$?yIs zVQN*YzXmYnH6$U0tY>3Bd;rXh{%n;Bb4TkvEMZY?^(F%rmYBvcuxjYl##u1_e~ZVC zaKrZpH7jDgCrmdf(0t!e7xi;FSemM6kx%BAZPiu45(nq#`(%FO@d>dc|8OC#1ZFd@ zlxM=C>)HvWF#bHu7Xg;b#_7L@IidH!eBz0rnV(2rVDI@Hmc&0f@e}56{Yd`+D?XN$ z{3U&>pr_TuZ%lSIA>Y3}C0~EQbos^j<}f`mR`M5CFH6&WKQrcs{M*ZMeE)ra)7f7$ zdcoAp{e6tcd{w2P6|8XXW!DF0UR#=tf>i@vsf=Oa@kZ;>u=48B`KBb#y*S z{Lkah92!LWk^zx2@QK`RJS0Uc@(6k12!MG)H$|nC&~(_oJ2tCsjxdEMMB@{SxHNra8xdlKf&s^X0G* z5melC1o*t_Qda=1Y3R4c7-;ev9aVTDjoc z<$;w}E`)xrwbjbmgSr+|wJh8?G|gGdjM`+WJFH&#;?gQ?pSqHhy%fd+4viWA1mi8R zzpT3w@9&4`Iv;A&Sd*TZ2mgK%AURbrW1#`4EKPAXGdgHVOCrwUj|D{3pD4K=v1H%h5vWH zRhRbL2eUHWpJU1TH9~j-%$se0VN2F4%)50NZa9CbNrNUlgw;>JYtDbhdsfYNSpKT- zhW_Z&Ojum^RX9IyKH6spQ+8K3JHqOtPc;?;|3*xMWux-lyORF&=}+guoM*`S4rF^> z7EWBNWoE}a&kb7UKc^@{;D+ln?u@?vF}UITK#=P^tzW~EmtQqz zHnnl9fTfP+xvj|d#v9zF{IS0c*LT(B-&(MQWHG*8XB4EM20fG57pGw$aCmcz8vqVP4gC)!-Tv>s+^ zmbNK^=}ALv4-x;n9%Wmdo2R=5?_XYD&GjkwYe`sVEz`YUzv>4!T(2@6j<&LZm0wCf zKgD{?=wo(cV3ki%QUOeDdG>p;mgzPvQg*`)zbB%x_0R z^iaRcFk3oNbNwp@`=s22`K;?UH_7Yqey8&cmdD=GSTuNUUk*3?-f;<$Vzae4KTiBy zm5Dyv*RHi5OtGsq*UMCwH8Tw0hTl)&y7dNAEpq{8mn~rSTz}2)Ep_pYXbsD~Pw%>f z^|*@I*5gTkT%yK;*VC>OwQ|uldh86C`}cd!JKWjnLHzIco>K=_t%3h{z3{5H(=J%O zHd=FiEs-4#mI?*W=uxiypV&hU*oo_0!T)n4f2>xt?Km=&Q?N zG4z+_`bUrsms9KT{{6ciqTVO%Y7VRI*Lp@_ef)EP>h5sE^%Fl~X1~5L>lh!ilf2&F z<}nP+WxQ##17Y}p zbpzaRJx7l%R)@j=yI-)q)h`-uxE`c_rY<<9W&ZoXO=n<9$n=0fvi)-gX~}TI{RCS! zsXhm$ZSQODFU0xF$3KGkKUwq&vj3ACmwkm56RF7MFxO;L{V!N7vikq))5c%BHwwW1 z{JUNiHyt0Z128?M*Ioi zR-Z3CITPCxH_KzQ;fDJYdgQ0HTv%ezUUR>~TP=8!uaz@@_m-*PhWj5nXsqrFxZ(bX zPx@_Dre$&M@r56?jDI+6MU}R{&Di}7W*qMM%E;^gnw#(&<_0xB>Ht$}6G}Hw%Qf4c zjDnT2zdXr#b#1k+R!;Z5*kiI*PAxMSF&$QAjchjoeNNt@W*y0AWqh@VMe~C$yJ0E& zslPQWeEE~`RLfM_$tNN#d(ba-B$@xcUH20#AHBHk2$;Ec!lh2j+!jZ!+4}!->Xz9R zeQmdnebO0bcbwWdoUGSMzosY5)xNG8O17V$*25I$y$wAqVJecHAce*82kgyZ)~P08 zoR+z=y9<}WlFU6V2Ot--O}PY^opvXnA57aW*nJMBT0PX5ZKiYOGEA@2{a}im&%0Qb zMfx+h=l6lB8I49fgys58l}0dkRF^A-`B9lodXl{VyeD5^<@XV9yTZ)pX4D^;9$Ph{ zBgr$TxabApc-AlJ(GKP_uCM3_D;$mFZDDR)T!Im?)2p18Fx%lxy#*{A8CLu!1M?om zo2J3+w`N(tV17wZf-7;|^>*K3VQ`-(9=I|M&quz#x!F1WO z0UuyWKRPWEW@aSBzK2B*v$7ai9<)$hPUcTadYmEid0obe#DhOLC&Sd&g8fA>b5k9Y z1517H&UpfJVFzyAgZY(zBJ*MD`N_7$#G_x8ro;Re_EwV(I6k%RH&S77e9P)KFh4G4 z=w(>gxw>t8STaG)vpx4E|A=4y>l;Ewk{+q9_G~7<1Jya>g!^j^zS6} zlfja1=hI_IZd|r;0jxamJS7~aJG6FIXqk-~w;+o2KTV#y4LReNcJmA@yL)5IW-?#f z^YwXH@ohs?5OGBBe%HwSlC`dDVE(=8P$5kF$M5!o>2a;p6(nym;=2qMzu((1dL#C~ z^y0HAFtcUIp|LO(XO=OE^t)JFN1ce>+Yq1Ut4b75x7qG~&s9dUfD56rPIAB};< zQ02~bu%yqfkCr44{A_xN^rwzvq%c48qhCBMU-vg^0O=2@Oi9zSaJ#B57goF**{nZu zp=+pV0nBa6cxOWTJ9nm3!4mb-QN3WsJFM<6EM2^q>H*U_>C^Q$;e1mVI(LTo%R34N z!m^`Vg%&WYsJ_m^%%>dl<}erAqhKK{@4O+n5zK5&w+n)m-@bYMO^3w|>qB9+;f0J^ zSe#J$Dh{S6dFy?HX{nB-5~fbK`BVn;MfYthN#1GVyw{|^*m9m)%e+-&;CGn)n$46T zr&PU8*26NU@uiof@7edGE{E6ao6+n!Oi!I|YXmEdtty_tTy>kkK`^!I)2ITHw|sVK zgqFD|n+IcHY22xZd&sF4_ZU~0aqYb_k9bi;z#>?_rTFFzm=6gSR>4Atj>B_cCQeqn z306JW(^Y`k=3|%$l6QZ&;~JUosS^+bQ{#8OxDRBBI0Hm= z#X$!S&w+)?N2wEuZw)b62dleJn$N&|+k^-O>C3M+A5P}8y2jmsRV&QjTaf;l{3nI5 z;?QdMA*3HTpr)A2zw3W~5XpPK>;E2>%40g>siOS^ntmRQT3f*`H!wv zMkJpz!Kybb)=&293NtTv##q6!mK#s#!&L5=$75mT(N#XJVca;hnGUNuFEeWfv%7&mZSz2feFGRQnr<6a7j=K{K3ht^VRl&hJ z3+67)h;0nh6L(v0)wau(Ng=TOPh{Ih$eCq&Ub{%1rlLU4U=K!NP5dJu+Zl5EJ4enL*n5FTIO_LoqY(ix<3M{$vpl7%_lIo z!Qw*|%$r!|JtKL?(r(6)2~%%=K!UW3K;=bLVYxsGYYS7GLDzk$0XX6tNr z+$(jvlH~_resjg7E2tMd>#siq3$;CRE|LC%bxFrz^%zh2MUu~)RCxi`oIa9}1M{ul zncX1ub>0|c!{WG}v86CQC4SLal3P8$R{<-o?&_IN@<}(k*9pV(l-Q!V8Wy@Tz;uW8TJ!4Z7iUT8IsZT$Gr5Zc}tyVxiVtE=tVI^0R*> zF`s#L$p=`sUh&-Qgc^w%%RhznH~q_ns7c@SC8le0X+w$GU(T~=iShe`H&{r_<(+vv zRASLg@9Rj3`Nyj}PlT2I^7o!3`#HpAr7JA2=lb;=*?;2}vOrjqwLoi8X=NNN$(hU3 zdxgTX9dt+*>bd)^SL}eROkQg5KjY^T6-WAY&qv9_vx%_oc@lOOcRUO0o=>(q$NMI% zdw#jvX~~aZ#iyE0H^}{1b7o7U@P8I}CYH2^bjC7UCi<1;bS{>s`@cesqKS<(s8WIAy&DrkY)LxR0DYINs|B>5t!7k`Gh0b<#5= z7WR$1nAli++uVb^A?S)0jDu{O|e7mOS~vNzC19*ES5+JzrFtBZ_GFzvpvKzwrGq zGkkFEbYpz$n=`%mjl^Q37lvOY=50>6>utgMTYuF)|E$m2>~^qj zd}gC_m%b$bd%g>fqeARp&GC2I^P3*<;f5oud*ApKlfSx1OwFhs>ILi0b1r(;B41ed z{)!DYm8nSm-}9UbvLBKt$@%z8J||$^dBG1}aW)(N@4O$heb5t0&e{9ysf3yA!bh3d zA3lHX@A_N+op=0N)1w+1g^-RBAWa@MM!u)0Z<_Va~v z{G8P!@?Xvmw<>H2^Gl4-Sbm`Bl?vw8Br`TJ z+xB5f1nKXvHqn99M~!j}g4vvigm73a+HfThraoT05CtnM?Io_l`RQ~0@#I$m`tPmCknIBk2`r8$ZD}(8cPrtg8`n!vxzDUf*o;&*s z7LRvXyo8J&^8H~w70%Q9owQ~;wSL(UR%ANHv&e<}hkLYv=~-)cJHTS;xd9589r$I< z6w?2>!Q5G}YHsSC2{64W<+LZMH+6YE0%rP84UdJH9lK`^hgrjgF?&gU@5oMrwDrcd zCt)Emtke<~0@p%T!SQ||+B>uU0 zoVz6FEG$yi!(2;Mua>0$QbmUtSUq$+*A!-*b|{a+RF}Yv`Xpc7K;=E3ney zQg5BsY5GJaIerf7WNO2QY2kb>lQx)XX)! zNj$q=10~E&+1la)%%-k+91l~ihMA|q!W~&}HLN*L`|T(7W8bCRB>lGQlfp@TI{pyRkCW*f8|C{JDBqITiAF9d^7B! zA*oNf6W2%+&FmwF&HU&)0H2Pu#t26#w8wWFOM#$_)zUDao>JQhm-!)D_`sciCGXNIe-t(D7 zTz%-23>H<@14Cd{TGyCnFs*DdCJd&|PrKcK)ZbjTWf#dqg~8uWBNxiWBv|3)>F^$A zj4Yd^k$h^xrWY{xaHiQAn9W_(JsTE&l`~&SUe$TcS(4Xn?)n3+vUzy>6wI!%@vpNB z*P~k0PbKw6{)zgqa?%y2B$9WG&5^;XEGq9X@rvTN?MVHtN{2X@|1xoSFPL3eX0!vQ zwude056kRT@^F}I{)it*>^LbTg!rCu;Urj?+Rk+$%*-!za)+yeqw2fB;&XGAFRUC9 zlsBE!zZ`cAzrahNe)>dCA$d?pK?uy0BwZOx`a9#RR$$uS;)or|yNMllz~Y<-IfF@m z?47G;VEOmF5NlX)`c{$+E0$j#-y7zK_Go$?*7$u5G$r-Fz3m>5`m4$LG)%3%7$Cx& z8^60f$hP3>X!Qk@(1iFr?32{2cpv7xPX=#-<@J&>ZoyOqb$$m-&5FWznPR>L)9M@~{Y%#0 zNGJ8H)nn61zIy4jBcz^byZ0*TKhQnt04&yJAKZi0Zf%$Dg?T-$>JcnPMH)tv`l|c^ zuVJM{SPIBkv^Env*0H&YuZd@<_slFd9PMPS{16J3cmbR4ie>$8tm{`-V zjx&reJxEvz^BsMCW|2Iq;Di#EZ|$Bt4Q6{8Jn@G)AD5r@usD4Cgzd!s?G)pP?LX~1 z2#dLQ5=X(@RD<)$q@TUA#0F;ik10zh`Suf^7Er1^>zrbAXltss3`h}hQ2V$ya z&q7#z_;XMR%r^H9d=FP`wm4G=i|cnD{Q@frpEY?1({4vIt6{2D*xSpn(7CVmggE5K z0*+sRshs_Z^I%m$|GH;k{&G&v5?DRjXGJE-?fgTcVOiYE_Qy&7!J_vWm^;vB>S353 z9+Q#}S5@9Tm;iGQ_Va$gbo$8*O-(uf{!77WD!7AdeKW6f z{45GK!y;#}_Z6&h?5#C5&$+4wre7@_8-bh+-)q-oFYd?wrCL)a<-0qlPK5vKzfzpzD)k{#L#4#Rtwl?MNq_U?Gn;Td!6-0f6D&_CwFrahFGsR=z|{Iz zT63L@oiZe*M)g>DR$}q{n5avVeqqdxkB?xwyz8D>yR>qu;@*ikNl5Ft@W!+)r3x zR9wNqVwO`y^LSX+Sz9mo9(6O5nA?40m$k&=%FlO3NUd+8XD>0cw_i60ShpT3XS%Z+ z{NMh(+I2!Hb-=aP0TT26#Vt2V`i0fqgZD|y?6XoO5GU=|t_NS(P@sm@3%1z?U_Dgx zgdUe+{%1>5f0%ujH}5ViK8esO}xgWvK(gj4W>O|{*CJ>Y9IE$ zP13cw#E!=k|xg8e2 zA1xR{#@kHyJOFdvZP#0p`us`WCrN#;oopXi7~v3jisY*w-s?sBZ5AKBKyqt`Qx-6L z$M5Q8Skv<6uI{8hng4YcmQ{`N?*?KVa&lke%($kof1uWSu7SE*CPv|mDUGg#CgWg^>;>$T{*RiEU0 z9ho*Tn`GorpXAS3kIpc?D=_;@8m|8&BHI#{$FIA68x{kXPmh54kCiL0z`WCHZxyLO zy>IJTnAsD$Cl=-=?{G*b{Zle4Q(*Bx!`h=T{qyP6i?F=W(`MU9eQ56wrLc0a5ScCGu|Mk$q@>XA12)B4m!>p&{p4G58aek+EFm-~x8U!ooRR?~bgzG(inhmo>pF)1X z;Ikz(PpJjW1v|lefDRW*z!I`3j2}mt2cseu`cFKQPt(&z&bQ zcYd5f-308%&Y?^psW+QMH-Pz>?`GbCnNKVC(XhN@toLQoUz*fo1gx1H@*{&dGgmno zrrKsPn_&8cN%{_$vGv`tf#hxj-t(}k$Ya(zk~bgMEfwZ>y&k#-7N$<0lmS=ueM+q) zE}HF^1FPF?YUd79^L=mLgN69A368MXJAQmQsgD~rav;oC-1%d80Q0~4b%z!4>IW9a zurhI(UtgFue>JxUET*~E=>~I7dOs(^RM$A4E)vV_9dkRv%-Pnq&dB-LM(x|eR0oqy z9ukWi&37$@6=BMajgaGuScFwD_se}^U6}4=*Ki}Ona9j|t46=zmX!*Noi2=g1&clB z-%!Kslj99Vm>KIY6JSO6O222s_tp=|BYBDE>>`-;59J=in*Pt~+$Z_>9i`prfef5Eq5-pDmME-h!ne7`S?*1%P33O~<)*`~jO zIathXw{SYiv%jl0!1ST*V;x|w$M1a`VL98P#}tx}`*Us!tQ@|nsXfV0)ys>5g-7e| zjVAg1`ei#|&Gy=KTVfae7W+w_=tf(^LS&o3OjupHZ=0pm=L1D!n9=J{c^A1@HmF~F zl20&iR|v~*F7q%T`H3$5pTnxQCfUtkDy+xUGFY&E+Ojdsmh?VU4YTJap8azI{X;Fk zH$I5#&HjDw3rwxHwrm4yG}XH*VE#Pg+?nLvpVOtV=r(4&BP^6S*Lx1reeG7bz@lRJ z%BL_hX>`;)STXBH@g}X{O#h=}VfBLIdXX^IzhC7HiMejp{TIR1?|aw7kn{Rx z;j7`Q@diUSlJU&V53PskrOmabicHdjVD8-ItwAJz+}tvr4xT+-o5erjKlMlGUioW4JU0~tK4%#1<3-;$+VR7Jw3Bj;zs%-om zn4j#wao|%wj58QcvG??U61qZ|yYZti;^a zVHx*e-F!teTJagy_{1!lN9O_K~VEAmYTw?0l6JKjs zw|`vE2ipe2{J3WZi!nZ9d*i$rI> zxnJ{IjkpWTzj%5o$^G(g?EY9{X6VP`uVGne-&${yH>rGF1?!$)`ozP!wXj-#!C@_O zAu@YGi==<%2dlZ(Fz?GK*OPqLzGP!q_kPfe_dYO#t8Aygia<`^@~~rIO@3S7Eik)& zvBN0Re{@clZ7_Fm+^Lx`8+cgzev9eW9~Qv!>E-@$Wc>53tX9I}rBjXelJRc-cIV)# zRV!oSVZLuo=tfwuKR@aKOpU!mxG
dx*@Z^K+)N#LNwiizzIg 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≺L$435So*cD03tm9I2wB+OqKbVT|N`oD4D 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�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 +20211124102159001.0FALSEhydrobasins_level_4_Intersec002file://\\PCA218\C$\Users\vinca\Documents\ArcGIS\Default.gdbLocal Area NetworkGeographicGCS_unknownAngular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.7'><WKT>GEOGCS[&quot;GCS_unknown&quot;,DATUM[&quot;D_WGS_1984&quot;,SPHEROID[&quot;WGS_1984&quot;,6378137.0,298.257223563]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>1111948722.2222221</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude></GeographicCoordinateSystem>Intersect "hydrobasins_level_4 #;zmb_admbnda_adm1_dmmu_20201124 #" C:\Users\vinca\Documents\ArcGIS\Default.gdb\hydrobasins_level_4_Intersec ONLY_FID # INPUT20211122151559002021112215155900 Version 6.2 (Build 9200) ; Esri ArcGIS 10.7.0.10450hydrobasins_level_4_IntersecFile Geodatabase Feature Classdataset0SimpleFALSE0TRUEFALSEhydrobasins_level_4_IntersecFeature Class0OBJECTIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.FID_hydrobasins_level_4FID_hydrobasins_level_4Integer400FID_zmb_admbnda_adm1_dmmu_20201124FID_zmb_admbnda_adm1_dmmu_20201124Integer400Shape_LengthShape_LengthDouble800Length of feature in internal units.EsriPositive real numbers that are automatically generated.Shape_AreaShape_AreaDouble800Area of feature in internal units squared.EsriPositive real numbers that are automatically generated.20211122 diff --git a/nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.shx b/nest/message_ix_models/data/leap_re_nest/delineation/Zambia_NEST_delineation.shx new file mode 100644 index 0000000000000000000000000000000000000000..b45023bd4303acbc595c93e24e187a4f4c4dd81f GIT binary patch literal 292 zcmZvTF-QV&6oTzTXEcai&i@j6h7-&V}>v@wcJ()3=}Hq%*ia z41!>!b++=}(C3-Kbp7Agfw>deKFt2Wau*gg6yz?6f7}DthvB+(JQ&|dN23xU9E7O) z8*EFyPeJq-^^}C{3+h|=LKVZ>72e0#vn7L36TZ2MaVJjgm1u4rb>tJfY=eJ>X)i%O eg;^{>>lyRWgpP;hHes!bb@~NY9y1viw(JSk#5ckK literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/data/leap_re_nest/delineation/basins_by_region_simpl_ZMB.csv b/nest/message_ix_models/data/leap_re_nest/delineation/basins_by_region_simpl_ZMB.csv new file mode 100644 index 0000000..b44e6db --- /dev/null +++ b/nest/message_ix_models/data/leap_re_nest/delineation/basins_by_region_simpl_ZMB.csv @@ -0,0 +1,25 @@ +"","NAME","BASIN","REGION","BASIN_ID","area","area_km2","BCU_name" +"0","Eastern_1","Eastern","Zambia","31",0.523959234644462,6258.5580698919,"1|Eastern" +"1","Central_2","Central","Zambia","32",0.0815871847897459,970.510889363209,"2|Central" +"2","Lusaka_3","Lusaka","Zambia","32",0.799537665854889,9494.09442000237,"3|Lusaka" +"3","Central_4","Central","Zambia","33",3.60760898438715,43119.7619743396,"4|Central" +"4","Copperbelt_5","Copperbelt","Zambia","34",2.58304468887982,30985.2974803959,"5|Copperbelt" +"5","Lusaka_6","Lusaka","Zambia","33",0.66513975736225,7911.78785217012,"6|Lusaka" +"6","Lusaka_7","Lusaka","Zambia","34",0.56362395281543,6688.54837394216,"7|Lusaka" +"7","North-Western_8","North-Western","Zambia","34",3.43706970758245,41202.2918277751,"8|North-Western" +"8","Western_9","Western","Zambia","37",9.51807006516233,113006.817929057,"9|Western" +"9","Lusaka_10","Lusaka","Zambia","35",0.113152577372315,1338.98003930387,"10|Lusaka" +"10","Southern_11","Southern","Zambia","35",2.55097021780597,30041.2705948085,"11|Southern" +"11","Western_12","Western","Zambia","36",1.23996738231784,14617.3659250655,"12|Western" +"12","North-Western_13","North-Western","Zambia","37",6.97305737476054,83703.5176556987,"13|North-Western" +"13","Southern_14","Southern","Zambia","37",1.29347616772761,15242.3709165862,"14|Southern" +"14","Luapula_15","Luapula","Zambia","84",4.12292027912631,49885.3132551532,"15|Luapula" +"15","Muchinga_16","Muchinga","Zambia","84",3.11665223233439,37657.1546746454,"16|Muchinga" +"16","Northern_17","Northern","Zambia","84",4.95376630391797,60079.9030720852,"17|Northern" +"17","Northern_18","Northern","Zambia","85",1.30914888947857,15923.5994075535,"18|Northern" +"18","Central_19","Central","Zambia","84",0.833206036116116,10010.3989949136,"19|Central" +"19","Northern_20","Northern","Zambia","208",0.126487398005057,1538.31243855708,"20|Northern" +"20","Eastern_21","Eastern","Zambia","33",3.72949874341118,44666.8009195124,"21|Eastern" +"21","Southern_22","Southern","Zambia","34",1.8820233828308,22270.8044712217,"22|Southern" +"22","Muchinga_23","Muchinga","Zambia","33",4.07901206892867,49221.5274809364,"23|Muchinga" +"23","Central_24","Central","Zambia","34",4.61958483596155,54967.4760221014,"24|Central" diff --git a/nest/message_ix_models/data/leap_re_nest/electricity_demand_MLED_NEST_GWh_mth.csv b/nest/message_ix_models/data/leap_re_nest/electricity_demand_MLED_NEST_GWh_mth.csv new file mode 100644 index 0000000..c256123 --- /dev/null +++ b/nest/message_ix_models/data/leap_re_nest/electricity_demand_MLED_NEST_GWh_mth.csv @@ -0,0 +1,8641 @@ +"BCU","isurban","year","month","unit","mess_sect","value" +1,0,2020,1,"GWh/mth","agri",0.00064742022129783 +1,0,2020,1,"GWh/mth","ind_man",0.32215689535855 +1,0,2020,1,"GWh/mth","res_com",0.848133621078588 +1,0,2020,2,"GWh/mth","agri",0.000397009335716675 +1,0,2020,2,"GWh/mth","ind_man",0.313164438009361 +1,0,2020,2,"GWh/mth","res_com",0.825610172736165 +1,0,2020,3,"GWh/mth","agri",0.000264674243168601 +1,0,2020,3,"GWh/mth","ind_man",0.305835879977258 +1,0,2020,3,"GWh/mth","res_com",0.806980722806969 +1,0,2020,4,"GWh/mth","agri",0.000104278483319652 +1,0,2020,4,"GWh/mth","ind_man",0.299027490766752 +1,0,2020,4,"GWh/mth","res_com",0.78936341093426 +1,0,2020,5,"GWh/mth","agri",6.10568335300012e-05 +1,0,2020,5,"GWh/mth","ind_man",0.290139873983946 +1,0,2020,5,"GWh/mth","res_com",0.767210843819947 +1,0,2020,6,"GWh/mth","agri",4.72671297625167e-05 +1,0,2020,6,"GWh/mth","ind_man",0.282742519882236 +1,0,2020,6,"GWh/mth","res_com",0.748403952848872 +1,0,2020,7,"GWh/mth","agri",6.60696628541223e-05 +1,0,2020,7,"GWh/mth","ind_man",0.281874048389416 +1,0,2020,7,"GWh/mth","res_com",0.746384295233594 +1,0,2020,8,"GWh/mth","agri",0.000726682888471323 +1,0,2020,8,"GWh/mth","ind_man",0.290438600144438 +1,0,2020,8,"GWh/mth","res_com",0.76763524710167 +1,0,2020,9,"GWh/mth","agri",0.00284527401914093 +1,0,2020,9,"GWh/mth","ind_man",0.299167763229859 +1,0,2020,9,"GWh/mth","res_com",0.790109890224534 +1,0,2020,10,"GWh/mth","agri",0.00337935267752316 +1,0,2020,10,"GWh/mth","ind_man",0.307116705579777 +1,0,2020,10,"GWh/mth","res_com",0.810838163858829 +1,0,2020,11,"GWh/mth","agri",0.00109365088346192 +1,0,2020,11,"GWh/mth","ind_man",0.314419920978779 +1,0,2020,11,"GWh/mth","res_com",0.827477980075809 +1,0,2020,12,"GWh/mth","agri",0.00069433816189529 +1,0,2020,12,"GWh/mth","ind_man",0.322257281156564 +1,0,2020,12,"GWh/mth","res_com",0.847157155388091 +1,0,2030,1,"GWh/mth","agri",0.00196585719697345 +1,0,2030,1,"GWh/mth","ind_man",0.388470962853775 +1,0,2030,1,"GWh/mth","res_com",0.876610528598589 +1,0,2030,2,"GWh/mth","agri",0.00157418451237593 +1,0,2030,2,"GWh/mth","ind_man",0.377627462015549 +1,0,2030,2,"GWh/mth","res_com",0.853940398476634 +1,0,2030,3,"GWh/mth","agri",0.00136719442623606 +1,0,2030,3,"GWh/mth","ind_man",0.368790364203651 +1,0,2030,3,"GWh/mth","res_com",0.835034607588618 +1,0,2030,4,"GWh/mth","agri",0.00104641032501324 +1,0,2030,4,"GWh/mth","ind_man",0.360580508849959 +1,0,2030,4,"GWh/mth","res_com",0.817012497790235 +1,0,2030,5,"GWh/mth","agri",0.00097787312273057 +1,0,2030,5,"GWh/mth","ind_man",0.349863429380809 +1,0,2030,5,"GWh/mth","res_com",0.794749412742584 +1,0,2030,6,"GWh/mth","agri",0.000953215892918971 +1,0,2030,6,"GWh/mth","ind_man",0.340943374240399 +1,0,2030,6,"GWh/mth","res_com",0.775664069524375 +1,0,2030,7,"GWh/mth","agri",0.000971398264336054 +1,0,2030,7,"GWh/mth","ind_man",0.339896133092102 +1,0,2030,7,"GWh/mth","res_com",0.773719097117051 +1,0,2030,8,"GWh/mth","agri",0.00242102805393771 +1,0,2030,8,"GWh/mth","ind_man",0.350223646532352 +1,0,2030,8,"GWh/mth","res_com",0.795019072346839 +1,0,2030,9,"GWh/mth","agri",0.0102641820251491 +1,0,2030,9,"GWh/mth","ind_man",0.360749655559497 +1,0,2030,9,"GWh/mth","res_com",0.817958994334227 +1,0,2030,10,"GWh/mth","agri",0.0130643853971288 +1,0,2030,10,"GWh/mth","ind_man",0.370334840085518 +1,0,2030,10,"GWh/mth","res_com",0.839279086112543 +1,0,2030,11,"GWh/mth","agri",0.00320673796884235 +1,0,2030,11,"GWh/mth","ind_man",0.379141378635069 +1,0,2030,11,"GWh/mth","res_com",0.855158342886327 +1,0,2030,12,"GWh/mth","agri",0.00133164107392273 +1,0,2030,12,"GWh/mth","ind_man",0.388592012467095 +1,0,2030,12,"GWh/mth","res_com",0.874993927223866 +1,0,2040,1,"GWh/mth","agri",0.00309678836349493 +1,0,2040,1,"GWh/mth","ind_man",0.246973692824404 +1,0,2040,1,"GWh/mth","res_com",0.572317997640812 +1,0,2040,2,"GWh/mth","agri",0.00249078541023144 +1,0,2040,2,"GWh/mth","ind_man",0.240079845661445 +1,0,2040,2,"GWh/mth","res_com",0.558920187468582 +1,0,2040,3,"GWh/mth","agri",0.00217052666248175 +1,0,2040,3,"GWh/mth","ind_man",0.234461586153909 +1,0,2040,3,"GWh/mth","res_com",0.547383750437642 +1,0,2040,4,"GWh/mth","agri",0.00233869867473213 +1,0,2040,4,"GWh/mth","ind_man",0.229242101332289 +1,0,2040,4,"GWh/mth","res_com",0.536032629486002 +1,0,2040,5,"GWh/mth","agri",0.00172583955190048 +1,0,2040,5,"GWh/mth","ind_man",0.222428627621552 +1,0,2040,5,"GWh/mth","res_com",0.522971472429334 +1,0,2040,6,"GWh/mth","agri",0.00153056967939828 +1,0,2040,6,"GWh/mth","ind_man",0.216757627292363 +1,0,2040,6,"GWh/mth","res_com",0.511325195245641 +1,0,2040,7,"GWh/mth","agri",0.00160365539158462 +1,0,2040,7,"GWh/mth","ind_man",0.216091834894979 +1,0,2040,7,"GWh/mth","res_com",0.510382104025039 +1,0,2040,8,"GWh/mth","agri",0.00730576632836832 +1,0,2040,8,"GWh/mth","ind_man",0.222657638715411 +1,0,2040,8,"GWh/mth","res_com",0.522745763233387 +1,0,2040,9,"GWh/mth","agri",0.03485373663199 +1,0,2040,9,"GWh/mth","ind_man",0.229349637780256 +1,0,2040,9,"GWh/mth","res_com",0.537069343276474 +1,0,2040,10,"GWh/mth","agri",0.043679663980143 +1,0,2040,10,"GWh/mth","ind_man",0.235443499729176 +1,0,2040,10,"GWh/mth","res_com",0.550746912846329 +1,0,2040,11,"GWh/mth","agri",0.00833056239915155 +1,0,2040,11,"GWh/mth","ind_man",0.241042330927794 +1,0,2040,11,"GWh/mth","res_com",0.558044897885426 +1,0,2040,12,"GWh/mth","agri",0.00185539998859423 +1,0,2040,12,"GWh/mth","ind_man",0.247050651137573 +1,0,2040,12,"GWh/mth","res_com",0.569832990025333 +1,0,2050,1,"GWh/mth","agri",0.00453212818158005 +1,0,2050,1,"GWh/mth","ind_man",1.156544256492 +1,0,2050,1,"GWh/mth","res_com",2.60189539479348 +1,0,2050,2,"GWh/mth","agri",0.00359310049418298 +1,0,2050,2,"GWh/mth","ind_man",1.12426130663498 +1,0,2050,2,"GWh/mth","res_com",2.53358089331278 +1,0,2050,3,"GWh/mth","agri",0.0030968457653098 +1,0,2050,3,"GWh/mth","ind_man",1.0979517605023 +1,0,2050,3,"GWh/mth","res_com",2.47687499100416 +1,0,2050,4,"GWh/mth","agri",0.0041229935729196 +1,0,2050,4,"GWh/mth","ind_man",1.07350962205727 +1,0,2050,4,"GWh/mth","res_com",2.42309540447178 +1,0,2050,5,"GWh/mth","agri",0.00258500367923796 +1,0,2050,5,"GWh/mth","ind_man",1.0416030501597 +1,0,2050,5,"GWh/mth","res_com",2.35591957996159 +1,0,2050,6,"GWh/mth","agri",0.00210435015307609 +1,0,2050,6,"GWh/mth","ind_man",1.01504652592312 +1,0,2050,6,"GWh/mth","res_com",2.29867637929091 +1,0,2050,7,"GWh/mth","agri",0.00225556031890282 +1,0,2050,7,"GWh/mth","ind_man",1.01192871056229 +1,0,2050,7,"GWh/mth","res_com",2.29266480087603 +1,0,2050,8,"GWh/mth","agri",0.0139377997987146 +1,0,2050,8,"GWh/mth","ind_man",1.04267547800513 +1,0,2050,8,"GWh/mth","res_com",2.35702993948873 +1,0,2050,9,"GWh/mth","agri",0.0716937453387486 +1,0,2050,9,"GWh/mth","ind_man",1.07401320063618 +1,0,2050,9,"GWh/mth","res_com",2.42558242383006 +1,0,2050,10,"GWh/mth","agri",0.0907570034483534 +1,0,2050,10,"GWh/mth","ind_man",1.10254992839969 +1,0,2050,10,"GWh/mth","res_com",2.48903988585103 +1,0,2050,11,"GWh/mth","agri",0.0161078055569771 +1,0,2050,11,"GWh/mth","ind_man",1.1287684944007 +1,0,2050,11,"GWh/mth","res_com",2.53845037962638 +1,0,2050,12,"GWh/mth","agri",0.00234110940773011 +1,0,2050,12,"GWh/mth","ind_man",1.15690464181915 +1,0,2050,12,"GWh/mth","res_com",2.59817550126173 +1,0,2060,1,"GWh/mth","agri",0.00672738491487352 +1,0,2060,1,"GWh/mth","ind_man",1.53049648868944 +1,0,2060,1,"GWh/mth","res_com",3.4555697429175 +1,0,2060,2,"GWh/mth","agri",0.00528080291801651 +1,0,2060,2,"GWh/mth","ind_man",1.48777530346599 +1,0,2060,2,"GWh/mth","res_com",3.36575757890078 +1,0,2060,3,"GWh/mth","agri",0.00451631730563492 +1,0,2060,3,"GWh/mth","ind_man",1.45295893759927 +1,0,2060,3,"GWh/mth","res_com",3.29097407530825 +1,0,2060,4,"GWh/mth","agri",0.00728199576549577 +1,0,2060,4,"GWh/mth","ind_man",1.42061377929151 +1,0,2060,4,"GWh/mth","res_com",3.21980621440385 +1,0,2060,5,"GWh/mth","agri",0.00399874685675822 +1,0,2060,5,"GWh/mth","ind_man",1.37839066851884 +1,0,2060,5,"GWh/mth","res_com",3.13156833459683 +1,0,2060,6,"GWh/mth","agri",0.0029873703880645 +1,0,2060,6,"GWh/mth","ind_man",1.34324746767051 +1,0,2060,6,"GWh/mth","res_com",3.05607514058286 +1,0,2060,7,"GWh/mth","agri",0.0032579339203953 +1,0,2060,7,"GWh/mth","ind_man",1.33912155079759 +1,0,2060,7,"GWh/mth","res_com",3.04830415032261 +1,0,2060,8,"GWh/mth","agri",0.0243083122689719 +1,0,2060,8,"GWh/mth","ind_man",1.37980985074433 +1,0,2060,8,"GWh/mth","res_com",3.13276637437818 +1,0,2060,9,"GWh/mth","agri",0.134107577083925 +1,0,2060,9,"GWh/mth","ind_man",1.42128018288348 +1,0,2060,9,"GWh/mth","res_com",3.22339684888294 +1,0,2060,10,"GWh/mth","agri",0.172611295380183 +1,0,2060,10,"GWh/mth","ind_man",1.45904385806977 +1,0,2060,10,"GWh/mth","res_com",3.30751689850409 +1,0,2060,11,"GWh/mth","agri",0.0298538347756019 +1,0,2060,11,"GWh/mth","ind_man",1.49373982666567 +1,0,2060,11,"GWh/mth","res_com",3.37110522541169 +1,0,2060,12,"GWh/mth","agri",0.00307631732439833 +1,0,2060,12,"GWh/mth","ind_man",1.53097339951639 +1,0,2060,12,"GWh/mth","res_com",3.44966699072649 +1,1,2020,1,"GWh/mth","agri",2.81981997399267e-05 +1,1,2020,1,"GWh/mth","ind_man",0.358980155351248 +1,1,2020,1,"GWh/mth","res_com",1.16883751045221 +1,1,2020,2,"GWh/mth","agri",1.72916260951028e-05 +1,1,2020,2,"GWh/mth","ind_man",0.348959839838186 +1,1,2020,2,"GWh/mth","res_com",1.13634055086769 +1,1,2020,3,"GWh/mth","agri",1.15277507300697e-05 +1,1,2020,3,"GWh/mth","ind_man",0.340793611088257 +1,1,2020,3,"GWh/mth","res_com",1.10983070944068 +1,1,2020,4,"GWh/mth","agri",4.47560435890276e-05 +1,1,2020,4,"GWh/mth","ind_man",0.333207007629843 +1,1,2020,4,"GWh/mth","res_com",1.08511281124091 +1,1,2020,5,"GWh/mth","agri",9.93143315186885e-06 +1,1,2020,5,"GWh/mth","ind_man",0.323303516196443 +1,1,2020,5,"GWh/mth","res_com",1.05306221975304 +1,1,2020,6,"GWh/mth","agri",6.39341606311234e-15 +1,1,2020,6,"GWh/mth","ind_man",0.315060627830932 +1,1,2020,6,"GWh/mth","res_com",1.02629939925197 +1,1,2020,7,"GWh/mth","agri",2.58440274665701e-09 +1,1,2020,7,"GWh/mth","ind_man",0.31409288808703 +1,1,2020,7,"GWh/mth","res_com",1.02317616033727 +1,1,2020,8,"GWh/mth","agri",2.45115925588071e-07 +1,1,2020,8,"GWh/mth","ind_man",0.323636387431068 +1,1,2020,8,"GWh/mth","res_com",1.05405721656097 +1,1,2020,9,"GWh/mth","agri",1.07838163325991e-06 +1,1,2020,9,"GWh/mth","ind_man",0.333363313551967 +1,1,2020,9,"GWh/mth","res_com",1.08571541577457 +1,1,2020,10,"GWh/mth","agri",1.21117900255272e-06 +1,1,2020,10,"GWh/mth","ind_man",0.342220837946954 +1,1,2020,10,"GWh/mth","res_com",1.11453169902947 +1,1,2020,11,"GWh/mth","agri",1.7311308655566e-07 +1,1,2020,11,"GWh/mth","ind_man",0.35035882734364 +1,1,2020,11,"GWh/mth","res_com",1.1406326302148 +1,1,2020,12,"GWh/mth","agri",5.97487662050264e-11 +1,1,2020,12,"GWh/mth","ind_man",0.359092015472467 +1,1,2020,12,"GWh/mth","res_com",1.16895903893558 +1,1,2030,1,"GWh/mth","agri",4.41053693305794e-05 +1,1,2030,1,"GWh/mth","ind_man",0.574286532769911 +1,1,2030,1,"GWh/mth","res_com",1.88060693461088 +1,1,2030,2,"GWh/mth","agri",2.70461789151358e-05 +1,1,2030,2,"GWh/mth","ind_man",0.558256308905234 +1,1,2030,2,"GWh/mth","res_com",1.82831595726563 +1,1,2030,3,"GWh/mth","agri",1.80307859434383e-05 +1,1,2030,3,"GWh/mth","ind_man",0.545192201809915 +1,1,2030,3,"GWh/mth","res_com",1.78566250763096 +1,1,2030,4,"GWh/mth","agri",0.000602550275692538 +1,1,2030,4,"GWh/mth","ind_man",0.533055363239076 +1,1,2030,4,"GWh/mth","res_com",1.74586936649908 +1,1,2030,5,"GWh/mth","agri",0.000133713188689061 +1,1,2030,5,"GWh/mth","ind_man",0.517212031308822 +1,1,2030,5,"GWh/mth","res_com",1.69432023844025 +1,1,2030,6,"GWh/mth","agri",8.55837286134529e-14 +1,1,2030,6,"GWh/mth","ind_man",0.504025286278845 +1,1,2030,6,"GWh/mth","res_com",1.65125801228651 +1,1,2030,7,"GWh/mth","agri",3.50725561046159e-08 +1,1,2030,7,"GWh/mth","ind_man",0.502477122978271 +1,1,2030,7,"GWh/mth","res_com",1.64623064079746 +1,1,2030,8,"GWh/mth","agri",3.32643270694549e-06 +1,1,2030,8,"GWh/mth","ind_man",0.517744549511687 +1,1,2030,8,"GWh/mth","res_com",1.69590203886706 +1,1,2030,9,"GWh/mth","agri",1.46345615476314e-05 +1,1,2030,9,"GWh/mth","ind_man",0.533305417134061 +1,1,2030,9,"GWh/mth","res_com",1.74685989150565 +1,1,2030,10,"GWh/mth","agri",1.6435417773085e-05 +1,1,2030,10,"GWh/mth","ind_man",0.547475439899651 +1,1,2030,10,"GWh/mth","res_com",1.79322380023773 +1,1,2030,11,"GWh/mth","agri",2.34734134787428e-06 +1,1,2030,11,"GWh/mth","ind_man",0.560494370457994 +1,1,2030,11,"GWh/mth","res_com",1.83518344816578 +1,1,2030,12,"GWh/mth","agri",9.53153530387516e-11 +1,1,2030,12,"GWh/mth","ind_man",0.574465483500786 +1,1,2030,12,"GWh/mth","res_com",1.88076242742193 +1,1,2040,1,"GWh/mth","agri",0.000129177365751273 +1,1,2040,1,"GWh/mth","ind_man",1.3086907932864 +1,1,2040,1,"GWh/mth","res_com",3.88689876277631 +1,1,2040,2,"GWh/mth","agri",0.000102783082517899 +1,1,2040,2,"GWh/mth","ind_man",1.27216093373208 +1,1,2040,2,"GWh/mth","res_com",3.77892254348789 +1,1,2040,3,"GWh/mth","agri",8.88343059488292e-05 +1,1,2040,3,"GWh/mth","ind_man",1.24239029537898 +1,1,2040,3,"GWh/mth","res_com",3.69081841577317 +1,1,2040,4,"GWh/mth","agri",0.00270306800388279 +1,1,2040,4,"GWh/mth","ind_man",1.21473272726459 +1,1,2040,4,"GWh/mth","res_com",3.60863368993604 +1,1,2040,5,"GWh/mth","agri",0.000647544411270683 +1,1,2040,5,"GWh/mth","ind_man",1.17862875921209 +1,1,2040,5,"GWh/mth","res_com",3.50216128131199 +1,1,2040,6,"GWh/mth","agri",6.09367532030799e-05 +1,1,2040,6,"GWh/mth","ind_man",1.14857865211501 +1,1,2040,6,"GWh/mth","res_com",3.41321546316758 +1,1,2040,7,"GWh/mth","agri",6.15369527328052e-05 +1,1,2040,7,"GWh/mth","ind_man",1.14505067967903 +1,1,2040,7,"GWh/mth","res_com",3.40284998846995 +1,1,2040,8,"GWh/mth","agri",0.000114481576085567 +1,1,2040,8,"GWh/mth","ind_man",1.17984226785208 +1,1,2040,8,"GWh/mth","res_com",3.50543075158579 +1,1,2040,9,"GWh/mth","agri",0.00030152594604099 +1,1,2040,9,"GWh/mth","ind_man",1.2153025529727 +1,1,2040,9,"GWh/mth","res_com",3.61067809322212 +1,1,2040,10,"GWh/mth","agri",0.000325548149287476 +1,1,2040,10,"GWh/mth","ind_man",1.24759336474664 +1,1,2040,10,"GWh/mth","res_com",3.70648947697299 +1,1,2040,11,"GWh/mth","agri",0.000101072671151164 +1,1,2040,11,"GWh/mth","ind_man",1.27726105428476 +1,1,2040,11,"GWh/mth","res_com",3.79306068860159 +1,1,2040,12,"GWh/mth","agri",6.72015244986404e-05 +1,1,2040,12,"GWh/mth","ind_man",1.30909858828173 +1,1,2040,12,"GWh/mth","res_com",3.88718331959293 +1,1,2050,1,"GWh/mth","agri",0.000105741770087556 +1,1,2050,1,"GWh/mth","ind_man",1.44486518601276 +1,1,2050,1,"GWh/mth","res_com",4.73685674079767 +1,1,2050,2,"GWh/mth","agri",6.48426909466634e-05 +1,1,2050,2,"GWh/mth","ind_man",1.40453425177624 +1,1,2050,2,"GWh/mth","res_com",4.6051220532168 +1,1,2050,3,"GWh/mth","agri",4.3228460631297e-05 +1,1,2050,3,"GWh/mth","ind_man",1.37166586212878 +1,1,2050,3,"GWh/mth","res_com",4.49767145556168 +1,1,2050,4,"GWh/mth","agri",0.00552775842002346 +1,1,2050,4,"GWh/mth","ind_man",1.34113041593839 +1,1,2050,4,"GWh/mth","res_com",4.39744675394089 +1,1,2050,5,"GWh/mth","agri",0.00122737808801922 +1,1,2050,5,"GWh/mth","ind_man",1.30126968887927 +1,1,2050,5,"GWh/mth","res_com",4.26756487936405 +1,1,2050,6,"GWh/mth","agri",8.15365522898642e-13 +1,1,2050,6,"GWh/mth","ind_man",1.26809275067259 +1,1,2050,6,"GWh/mth","res_com",4.15908552942244 +1,1,2050,7,"GWh/mth","agri",3.31099295352331e-07 +1,1,2050,7,"GWh/mth","ind_man",1.26419767891377 +1,1,2050,7,"GWh/mth","res_com",4.1464174884626 +1,1,2050,8,"GWh/mth","agri",3.14028879682675e-05 +1,1,2050,8,"GWh/mth","ind_man",1.30260946783687 +1,1,2050,8,"GWh/mth","res_com",4.27156876061831 +1,1,2050,9,"GWh/mth","agri",0.000138156258367603 +1,1,2050,9,"GWh/mth","ind_man",1.34175953423888 +1,1,2050,9,"GWh/mth","res_com",4.3999208535562 +1,1,2050,10,"GWh/mth","agri",0.000155187800170228 +1,1,2050,10,"GWh/mth","ind_man",1.377410331203 +1,1,2050,10,"GWh/mth","res_com",4.51670653526141 +1,1,2050,11,"GWh/mth","agri",2.2186929161148e-05 +1,1,2050,11,"GWh/mth","ind_man",1.41016505980884 +1,1,2050,11,"GWh/mth","res_com",4.62247581015295 +1,1,2050,12,"GWh/mth","agri",2.51880735318816e-10 +1,1,2050,12,"GWh/mth","ind_man",1.44531541367143 +1,1,2050,12,"GWh/mth","res_com",4.7373006208108 +1,1,2060,1,"GWh/mth","agri",0.000162896305377812 +1,1,2060,1,"GWh/mth","ind_man",2.25494495940827 +1,1,2060,1,"GWh/mth","res_com",7.39259473927897 +1,1,2060,2,"GWh/mth","agri",9.98908451903224e-05 +1,1,2060,2,"GWh/mth","ind_man",2.19200203729674 +1,1,2060,2,"GWh/mth","res_com",7.18699266250014 +1,1,2060,3,"GWh/mth","agri",6.65938967940118e-05 +1,1,2060,3,"GWh/mth","ind_man",2.14070561858799 +1,1,2060,3,"GWh/mth","res_com",7.01929329888257 +1,1,2060,4,"GWh/mth","agri",0.0113683280943262 +1,1,2060,4,"GWh/mth","ind_man",2.09305013409236 +1,1,2060,4,"GWh/mth","res_com",6.86287956881959 +1,1,2060,5,"GWh/mth","agri",0.00252424322641442 +1,1,2060,5,"GWh/mth","ind_man",2.03084104605395 +1,1,2060,5,"GWh/mth","res_com",6.66016282185042 +1,1,2060,6,"GWh/mth","agri",1.69275493418783e-12 +1,1,2060,6,"GWh/mth","ind_man",1.97906308759665 +1,1,2060,6,"GWh/mth","res_com",6.4908582783509 +1,1,2060,7,"GWh/mth","agri",6.83353094186212e-07 +1,1,2060,7,"GWh/mth","ind_man",1.97298420043533 +1,1,2060,7,"GWh/mth","res_com",6.47108580229033 +1,1,2060,8,"GWh/mth","agri",6.48121603805088e-05 +1,1,2060,8,"GWh/mth","ind_man",2.03293198701952 +1,1,2060,8,"GWh/mth","res_com",6.6664193203922 +1,1,2060,9,"GWh/mth","agri",0.000285139558558414 +1,1,2060,9,"GWh/mth","ind_man",2.09403197458122 +1,1,2060,9,"GWh/mth","res_com",6.86673249147899 +1,1,2060,10,"GWh/mth","agri",0.000320280104175104 +1,1,2060,10,"GWh/mth","ind_man",2.14967078828603 +1,1,2060,10,"GWh/mth","res_com",7.04899639698875 +1,1,2060,11,"GWh/mth","agri",4.57840930940393e-05 +1,1,2060,11,"GWh/mth","ind_man",2.20078982062312 +1,1,2060,11,"GWh/mth","res_com",7.2140981592154 +1,1,2060,12,"GWh/mth","agri",4.15219755510076e-10 +1,1,2060,12,"GWh/mth","ind_man",2.25564761222275 +1,1,2060,12,"GWh/mth","res_com",7.3933082736205 +2,0,2020,1,"GWh/mth","agri",1.00416032398639 +2,0,2020,1,"GWh/mth","ind_man",0.702281958748956 +2,0,2020,1,"GWh/mth","res_com",2.19804129240266 +2,0,2020,2,"GWh/mth","agri",0.646037610832483 +2,0,2020,2,"GWh/mth","ind_man",0.682711544423695 +2,0,2020,2,"GWh/mth","res_com",2.16536109505549 +2,0,2020,3,"GWh/mth","agri",0.430691740791261 +2,0,2020,3,"GWh/mth","ind_man",0.666762298124748 +2,0,2020,3,"GWh/mth","res_com",2.13377998524279 +2,0,2020,4,"GWh/mth","agri",0.000166594037335278 +2,0,2020,4,"GWh/mth","ind_man",0.651945102717171 +2,0,2020,4,"GWh/mth","res_com",2.09304897682473 +2,0,2020,5,"GWh/mth","agri",0.000185370026902875 +2,0,2020,5,"GWh/mth","ind_man",0.632602854425122 +2,0,2020,5,"GWh/mth","res_com",2.06720225125828 +2,0,2020,6,"GWh/mth","agri",0.000127622687554698 +2,0,2020,6,"GWh/mth","ind_man",0.616503886249955 +2,0,2020,6,"GWh/mth","res_com",2.035501465767 +2,0,2020,7,"GWh/mth","agri",0.000245497989525526 +2,0,2020,7,"GWh/mth","ind_man",0.614613819243332 +2,0,2020,7,"GWh/mth","res_com",2.03570855758257 +2,0,2020,8,"GWh/mth","agri",0.00170309136904884 +2,0,2020,8,"GWh/mth","ind_man",0.633252976466697 +2,0,2020,8,"GWh/mth","res_com",2.06107662607259 +2,0,2020,9,"GWh/mth","agri",0.00699282447911113 +2,0,2020,9,"GWh/mth","ind_man",0.652250379697069 +2,0,2020,9,"GWh/mth","res_com",2.10579469718916 +2,0,2020,10,"GWh/mth","agri",0.0102249123086299 +2,0,2020,10,"GWh/mth","ind_man",0.669549777313846 +2,0,2020,10,"GWh/mth","res_com",2.15312710857677 +2,0,2020,11,"GWh/mth","agri",0.0040384580713461 +2,0,2020,11,"GWh/mth","ind_man",0.685443870075707 +2,0,2020,11,"GWh/mth","res_com",2.1355534173134 +2,0,2020,12,"GWh/mth","agri",0.00266803609997962 +2,0,2020,12,"GWh/mth","ind_man",0.702500429805668 +2,0,2020,12,"GWh/mth","res_com",2.16499257417928 +2,0,2030,1,"GWh/mth","agri",1.57183523277641 +2,0,2030,1,"GWh/mth","ind_man",4.44156850543222 +2,0,2030,1,"GWh/mth","res_com",10.0765974648323 +2,0,2030,2,"GWh/mth","agri",1.01218291320064 +2,0,2030,2,"GWh/mth","ind_man",4.31763042876814 +2,0,2030,2,"GWh/mth","res_com",9.84017415074274 +2,0,2030,3,"GWh/mth","agri",0.675686360431052 +2,0,2030,3,"GWh/mth","ind_man",4.21662495807753 +2,0,2030,3,"GWh/mth","res_com",9.63975081553958 +2,0,2030,4,"GWh/mth","agri",0.00281489254327006 +2,0,2030,4,"GWh/mth","ind_man",4.12278868717137 +2,0,2030,4,"GWh/mth","res_com",9.4358160296928 +2,0,2030,5,"GWh/mth","agri",0.0028875132286818 +2,0,2030,5,"GWh/mth","ind_man",4.00029557017173 +2,0,2030,5,"GWh/mth","res_com",9.21216143748999 +2,0,2030,6,"GWh/mth","agri",0.00269488210673092 +2,0,2030,6,"GWh/mth","ind_man",3.89834192122261 +2,0,2030,6,"GWh/mth","res_com",9.01013887032321 +2,0,2030,7,"GWh/mth","agri",0.00274398879344906 +2,0,2030,7,"GWh/mth","ind_man",3.8863722579506 +2,0,2030,7,"GWh/mth","res_com",8.99256931801396 +2,0,2030,8,"GWh/mth","agri",0.00632091693442055 +2,0,2030,8,"GWh/mth","ind_man",4.00441274797341 +2,0,2030,8,"GWh/mth","res_com",9.20880569885181 +2,0,2030,9,"GWh/mth","agri",0.0317469282078425 +2,0,2030,9,"GWh/mth","ind_man",4.12472198511334 +2,0,2030,9,"GWh/mth","res_com",9.45856707946696 +2,0,2030,10,"GWh/mth","agri",0.050840105905643 +2,0,2030,10,"GWh/mth","ind_man",4.23427787046335 +2,0,2030,10,"GWh/mth","res_com",9.69640558888459 +2,0,2030,11,"GWh/mth","agri",0.0120677855899564 +2,0,2030,11,"GWh/mth","ind_man",4.33493405762863 +2,0,2030,11,"GWh/mth","res_com",9.81957282137163 +2,0,2030,12,"GWh/mth","agri",0.003615977679548 +2,0,2030,12,"GWh/mth","ind_man",4.44295206748286 +2,0,2030,12,"GWh/mth","res_com",10.0271264401019 +2,0,2040,1,"GWh/mth","agri",2.43242042001204 +2,0,2040,1,"GWh/mth","ind_man",7.59535690100245 +2,0,2040,1,"GWh/mth","res_com",17.0881812194548 +2,0,2040,2,"GWh/mth","agri",1.56715101807238 +2,0,2040,2,"GWh/mth","ind_man",7.38339609500403 +2,0,2040,2,"GWh/mth","res_com",16.6803758839263 +2,0,2040,3,"GWh/mth","agri",1.04689534452894 +2,0,2040,3,"GWh/mth","ind_man",7.21065498465214 +2,0,2040,3,"GWh/mth","res_com",16.3360876671594 +2,0,2040,4,"GWh/mth","agri",0.0070031920756247 +2,0,2040,4,"GWh/mth","ind_man",7.0501747500987 +2,0,2040,4,"GWh/mth","res_com",15.9889101259827 +2,0,2040,5,"GWh/mth","agri",0.00721069466776827 +2,0,2040,5,"GWh/mth","ind_man",6.84068513635494 +2,0,2040,5,"GWh/mth","res_com",15.6012687364062 +2,0,2040,6,"GWh/mth","agri",0.00640377968020157 +2,0,2040,6,"GWh/mth","ind_man",6.6663224369538 +2,0,2040,6,"GWh/mth","res_com",15.2541898005014 +2,0,2040,7,"GWh/mth","agri",0.006557891367016 +2,0,2040,7,"GWh/mth","ind_man",6.64585173462443 +2,0,2040,7,"GWh/mth","res_com",15.2229231346669 +2,0,2040,8,"GWh/mth","agri",0.0171686127104617 +2,0,2040,8,"GWh/mth","ind_man",6.84772639719078 +2,0,2040,8,"GWh/mth","res_com",15.5975853898951 +2,0,2040,9,"GWh/mth","agri",0.0933611003191108 +2,0,2040,9,"GWh/mth","ind_man",7.05348110599064 +2,0,2040,9,"GWh/mth","res_com",16.0246377725698 +2,0,2040,10,"GWh/mth","agri",0.151885082280758 +2,0,2040,10,"GWh/mth","ind_man",7.24084526707567 +2,0,2040,10,"GWh/mth","res_com",16.4296116102066 +2,0,2040,11,"GWh/mth","agri",0.033954282738402 +2,0,2040,11,"GWh/mth","ind_man",7.41298902736741 +2,0,2040,11,"GWh/mth","res_com",16.6547100507262 +2,0,2040,12,"GWh/mth","agri",0.00795796840614471 +2,0,2040,12,"GWh/mth","ind_man",7.59772309011313 +2,0,2040,12,"GWh/mth","res_com",17.0124445794134 +2,0,2050,1,"GWh/mth","agri",3.76894995513074 +2,0,2050,1,"GWh/mth","ind_man",11.4130370898618 +2,0,2050,1,"GWh/mth","res_com",25.9228581657519 +2,0,2050,2,"GWh/mth","agri",2.4271943411602 +2,0,2050,2,"GWh/mth","ind_man",11.0945246223263 +2,0,2050,2,"GWh/mth","res_com",25.3067873455016 +2,0,2050,3,"GWh/mth","agri",1.62045036285851 +2,0,2050,3,"GWh/mth","ind_man",10.8349473998118 +2,0,2050,3,"GWh/mth","res_com",24.7861387344177 +2,0,2050,4,"GWh/mth","agri",0.00813892859398543 +2,0,2050,4,"GWh/mth","ind_man",10.5937945354531 +2,0,2050,4,"GWh/mth","res_com",24.2599203839812 +2,0,2050,5,"GWh/mth","agri",0.00873127649871203 +2,0,2050,5,"GWh/mth","ind_man",10.2789955164444 +2,0,2050,5,"GWh/mth","res_com",23.6750365254212 +2,0,2050,6,"GWh/mth","agri",0.00697839106721261 +2,0,2050,6,"GWh/mth","ind_man",10.0169815399887 +2,0,2050,6,"GWh/mth","res_com",23.1501769996785 +2,0,2050,7,"GWh/mth","agri",0.00726939602684585 +2,0,2050,7,"GWh/mth","ind_man",9.98622031561798 +2,0,2050,7,"GWh/mth","res_com",23.1032978345567 +2,0,2050,8,"GWh/mth","agri",0.0288525264606856 +2,0,2050,8,"GWh/mth","ind_man",10.2895763846989 +2,0,2050,8,"GWh/mth","res_com",23.6686272904982 +2,0,2050,9,"GWh/mth","agri",0.196735645135933 +2,0,2050,9,"GWh/mth","ind_man",10.5987629802971 +2,0,2050,9,"GWh/mth","res_com",24.3152338395497 +2,0,2050,10,"GWh/mth","agri",0.332695915468995 +2,0,2050,10,"GWh/mth","ind_man",10.8803141897002 +2,0,2050,10,"GWh/mth","res_com",24.9289823699487 +2,0,2050,11,"GWh/mth","agri",0.067491976315774 +2,0,2050,11,"GWh/mth","ind_man",11.1389937771979 +2,0,2050,11,"GWh/mth","res_com",25.2642721704605 +2,0,2050,12,"GWh/mth","agri",0.00769116168262578 +2,0,2050,12,"GWh/mth","ind_man",11.4165927506772 +2,0,2050,12,"GWh/mth","res_com",25.8048021403059 +2,0,2060,1,"GWh/mth","agri",5.80560213278464 +2,0,2060,1,"GWh/mth","ind_man",16.204358010957 +2,0,2060,1,"GWh/mth","res_com",37.3434202948602 +2,0,2060,2,"GWh/mth","agri",3.73861354298932 +2,0,2060,2,"GWh/mth","ind_man",15.7521193443931 +2,0,2060,2,"GWh/mth","res_com",36.4666804640095 +2,0,2060,3,"GWh/mth","agri",2.49581598680762 +2,0,2060,3,"GWh/mth","ind_man",15.3835596522447 +2,0,2060,3,"GWh/mth","res_com",35.7235572871193 +2,0,2060,4,"GWh/mth","agri",0.0131168935148763 +2,0,2060,4,"GWh/mth","ind_man",15.0411597121121 +2,0,2060,4,"GWh/mth","res_com",34.967670301396 +2,0,2060,5,"GWh/mth","agri",0.014112369206657 +2,0,2060,5,"GWh/mth","ind_man",14.5941935707436 +2,0,2060,5,"GWh/mth","res_com",34.1381311097131 +2,0,2060,6,"GWh/mth","agri",0.0102547208024252 +2,0,2060,6,"GWh/mth","ind_man",14.2221740631548 +2,0,2060,6,"GWh/mth","res_com",33.3890742814803 +2,0,2060,7,"GWh/mth","agri",0.0107777423482563 +2,0,2060,7,"GWh/mth","ind_man",14.178497860465 +2,0,2060,7,"GWh/mth","res_com",33.323841300483 +2,0,2060,8,"GWh/mth","agri",0.0497721920950626 +2,0,2060,8,"GWh/mth","ind_man",14.6092167746625 +2,0,2060,8,"GWh/mth","res_com",34.125855048252 +2,0,2060,9,"GWh/mth","agri",0.366459895780316 +2,0,2060,9,"GWh/mth","ind_man",15.0482141388619 +2,0,2060,9,"GWh/mth","res_com",35.0517530888472 +2,0,2060,10,"GWh/mth","agri",0.630153822342901 +2,0,2060,10,"GWh/mth","ind_man",15.4479735093353 +2,0,2060,10,"GWh/mth","res_com",35.9333080963278 +2,0,2060,11,"GWh/mth","agri",0.126293445681045 +2,0,2060,11,"GWh/mth","ind_man",15.8152586979575 +2,0,2060,11,"GWh/mth","res_com",36.391087905746 +2,0,2060,12,"GWh/mth","agri",0.0110661767200903 +2,0,2060,12,"GWh/mth","ind_man",16.2094065018948 +2,0,2060,12,"GWh/mth","res_com",37.1607463761457 +2,1,2020,1,"GWh/mth","agri",0.0455531413191528 +2,1,2020,1,"GWh/mth","ind_man",4.3423427236504 +2,1,2020,1,"GWh/mth","res_com",13.666899446161 +2,1,2020,2,"GWh/mth","agri",0.0294294505723111 +2,1,2020,2,"GWh/mth","ind_man",4.22659583895802 +2,1,2020,2,"GWh/mth","res_com",13.2916127649806 +2,1,2020,3,"GWh/mth","agri",0.019619633714874 +2,1,2020,3,"GWh/mth","ind_man",4.13226592127653 +2,1,2020,3,"GWh/mth","res_com",12.995651268655 +2,1,2020,4,"GWh/mth","agri",2.35510882713028e-09 +2,1,2020,4,"GWh/mth","ind_man",4.0446313837649 +2,1,2020,4,"GWh/mth","res_com",12.7029008610515 +2,1,2020,5,"GWh/mth","agri",2.866307027975e-09 +2,1,2020,5,"GWh/mth","ind_man",3.9302339599014 +2,1,2020,5,"GWh/mth","res_com",12.3491660602541 +2,1,2020,6,"GWh/mth","agri",2.86624336446529e-09 +2,1,2020,6,"GWh/mth","ind_man",3.83501853001487 +2,1,2020,6,"GWh/mth","res_com",12.0524469257835 +2,1,2020,7,"GWh/mth","agri",2.86624336446529e-09 +2,1,2020,7,"GWh/mth","ind_man",3.82383995381098 +2,1,2020,7,"GWh/mth","res_com",12.0140309161442 +2,1,2020,8,"GWh/mth","agri",2.71426702387619e-06 +2,1,2020,8,"GWh/mth","ind_man",3.93407902928683 +2,1,2020,8,"GWh/mth","res_com",12.3718535390099 +2,1,2020,9,"GWh/mth","agri",6.9785904644669e-05 +2,1,2020,9,"GWh/mth","ind_man",4.04643690810405 +2,1,2020,9,"GWh/mth","res_com",12.7193320438341 +2,1,2020,10,"GWh/mth","agri",0.000138149862257016 +2,1,2020,10,"GWh/mth","ind_man",4.14875213495196 +2,1,2020,10,"GWh/mth","res_com",13.0431495912245 +2,1,2020,11,"GWh/mth","agri",5.95897056505195e-05 +2,1,2020,11,"GWh/mth","ind_man",4.24275585360714 +2,1,2020,11,"GWh/mth","res_com",13.3343697473953 +2,1,2020,12,"GWh/mth","agri",3.97768155129527e-05 +2,1,2020,12,"GWh/mth","ind_man",4.34363484469544 +2,1,2020,12,"GWh/mth","res_com",13.6602449034196 +2,1,2030,1,"GWh/mth","agri",0.0727358904046449 +2,1,2030,1,"GWh/mth","ind_man",5.36719670245234 +2,1,2030,1,"GWh/mth","res_com",16.7901973694887 +2,1,2030,2,"GWh/mth","agri",0.047021909403719 +2,1,2030,2,"GWh/mth","ind_man",5.22413838762176 +2,1,2030,2,"GWh/mth","res_com",16.3312300158059 +2,1,2030,3,"GWh/mth","agri",0.0313479396024793 +2,1,2030,3,"GWh/mth","ind_man",5.10755054944809 +2,1,2030,3,"GWh/mth","res_com",15.9726548536805 +2,1,2030,4,"GWh/mth","agri",5.08085599392245e-15 +2,1,2030,4,"GWh/mth","ind_man",4.99923792150401 +2,1,2030,4,"GWh/mth","res_com",15.6116155796417 +2,1,2030,5,"GWh/mth","agri",3.84832916825051e-13 +2,1,2030,5,"GWh/mth","ind_man",4.85784748389209 +2,1,2030,5,"GWh/mth","res_com",15.1849454313478 +2,1,2030,6,"GWh/mth","agri",0 +2,1,2030,6,"GWh/mth","ind_man",4.74016518962008 +2,1,2030,6,"GWh/mth","res_com",14.8261590495796 +2,1,2030,7,"GWh/mth","agri",0 +2,1,2030,7,"GWh/mth","ind_man",4.72634893635173 +2,1,2030,7,"GWh/mth","res_com",14.778433148436 +2,1,2030,8,"GWh/mth","agri",2.18610343047625e-07 +2,1,2030,8,"GWh/mth","ind_man",4.86259982904719 +2,1,2030,8,"GWh/mth","res_com",15.2161087675546 +2,1,2030,9,"GWh/mth","agri",0.000313132057431725 +2,1,2030,9,"GWh/mth","ind_man",5.00146947417198 +2,1,2030,9,"GWh/mth","res_com",15.6353942372839 +2,1,2030,10,"GWh/mth","agri",0.00075639865947108 +2,1,2030,10,"GWh/mth","ind_man",5.12792682093575 +2,1,2030,10,"GWh/mth","res_com",16.028713176016 +2,1,2030,11,"GWh/mth","agri",0.000147131271266254 +2,1,2030,11,"GWh/mth","ind_man",5.24411149073796 +2,1,2030,11,"GWh/mth","res_com",16.380082974944 +2,1,2030,12,"GWh/mth","agri",5.12058919252964e-07 +2,1,2030,12,"GWh/mth","ind_man",5.36879371009321 +2,1,2030,12,"GWh/mth","res_com",16.7782071804948 +2,1,2040,1,"GWh/mth","agri",0.114339580161865 +2,1,2040,1,"GWh/mth","ind_man",8.16221336872784 +2,1,2040,1,"GWh/mth","res_com",25.9605871884309 +2,1,2040,2,"GWh/mth","agri",0.0739198165297179 +2,1,2040,2,"GWh/mth","ind_man",7.94272550307296 +2,1,2040,2,"GWh/mth","res_com",25.2511604558453 +2,1,2040,3,"GWh/mth","agri",0.0492909854272164 +2,1,2040,3,"GWh/mth","ind_man",7.76385008578344 +2,1,2040,3,"GWh/mth","res_com",24.6968889334104 +2,1,2040,4,"GWh/mth","agri",3.33232222259999e-05 +2,1,2040,4,"GWh/mth","ind_man",7.59767094716386 +2,1,2040,4,"GWh/mth","res_com",24.1386508879519 +2,1,2040,5,"GWh/mth","agri",3.33232259254862e-05 +2,1,2040,5,"GWh/mth","ind_man",7.38074202966472 +2,1,2040,5,"GWh/mth","res_com",23.4792686510299 +2,1,2040,6,"GWh/mth","agri",3.33232222134232e-05 +2,1,2040,6,"GWh/mth","ind_man",7.20018743816319 +2,1,2040,6,"GWh/mth","res_com",22.9246706364381 +2,1,2040,7,"GWh/mth","agri",3.33232222134232e-05 +2,1,2040,7,"GWh/mth","ind_man",7.17898978918481 +2,1,2040,7,"GWh/mth","res_com",22.8509212660771 +2,1,2040,8,"GWh/mth","agri",3.40675314449329e-05 +2,1,2040,8,"GWh/mth","ind_man",7.388033336683 +2,1,2040,8,"GWh/mth","res_com",23.5273487521777 +2,1,2040,9,"GWh/mth","agri",0.00107647326843399 +2,1,2040,9,"GWh/mth","ind_man",7.60109471692355 +2,1,2040,9,"GWh/mth","res_com",24.175559243396 +2,1,2040,10,"GWh/mth","agri",0.00251600690584933 +2,1,2040,10,"GWh/mth","ind_man",7.79511247234328 +2,1,2040,10,"GWh/mth","res_com",24.7836407969919 +2,1,2040,11,"GWh/mth","agri",0.000515168921250659 +2,1,2040,11,"GWh/mth","ind_man",7.97336932673796 +2,1,2040,11,"GWh/mth","res_com",25.3263053876067 +2,1,2040,12,"GWh/mth","agri",4.84252525153863e-05 +2,1,2040,12,"GWh/mth","ind_man",8.16466358491376 +2,1,2040,12,"GWh/mth","res_com",25.9416911151415 +2,1,2050,1,"GWh/mth","agri",0.174395305024827 +2,1,2050,1,"GWh/mth","ind_man",12.5144687823401 +2,1,2050,1,"GWh/mth","res_com",40.2176054760246 +2,1,2050,2,"GWh/mth","agri",0.112746532816258 +2,1,2050,2,"GWh/mth","ind_man",12.1754915583671 +2,1,2050,2,"GWh/mth","res_com",39.1182608549009 +2,1,2050,3,"GWh/mth","agri",0.0751684933113743 +2,1,2050,3,"GWh/mth","ind_man",11.8992362300422 +2,1,2050,3,"GWh/mth","res_com",38.2594157024522 +2,1,2050,4,"GWh/mth","agri",1.24143016302878e-05 +2,1,2050,4,"GWh/mth","ind_man",11.6425890439966 +2,1,2050,4,"GWh/mth","res_com",37.3946038449623 +2,1,2050,5,"GWh/mth","agri",1.24143154050913e-05 +2,1,2050,5,"GWh/mth","ind_man",11.3075638614703 +2,1,2050,5,"GWh/mth","res_com",36.3726792487591 +2,1,2050,6,"GWh/mth","agri",1.24143016073859e-05 +2,1,2050,6,"GWh/mth","ind_man",11.0287152152358 +2,1,2050,6,"GWh/mth","res_com",35.5133355103453 +2,1,2050,7,"GWh/mth","agri",1.24143016073859e-05 +2,1,2050,7,"GWh/mth","ind_man",10.9959775502902 +2,1,2050,7,"GWh/mth","res_com",35.3990121654726 +2,1,2050,8,"GWh/mth","agri",1.37310488588684e-05 +2,1,2050,8,"GWh/mth","ind_man",11.3188245614859 +2,1,2050,8,"GWh/mth","res_com",36.447358836282 +2,1,2050,9,"GWh/mth","agri",0.00185651356704996 +2,1,2050,9,"GWh/mth","ind_man",11.6478767165757 +2,1,2050,9,"GWh/mth","res_com",37.451596794511 +2,1,2050,10,"GWh/mth","agri",0.0043969944151401 +2,1,2050,10,"GWh/mth","ind_man",11.9475178832407 +2,1,2050,10,"GWh/mth","res_com",38.3936690596778 +2,1,2050,11,"GWh/mth","agri",0.000845042234009863 +2,1,2050,11,"GWh/mth","ind_man",12.2228179025679 +2,1,2050,11,"GWh/mth","res_com",39.2352423698365 +2,1,2050,12,"GWh/mth","agri",2.07234391387523e-05 +2,1,2050,12,"GWh/mth","ind_man",12.5182528980513 +2,1,2050,12,"GWh/mth","res_com",40.1888478349756 +2,1,2060,1,"GWh/mth","agri",0.268638671325382 +2,1,2060,1,"GWh/mth","ind_man",19.4299799625536 +2,1,2060,1,"GWh/mth","res_com",62.7640706626688 +2,1,2060,2,"GWh/mth","agri",0.173668091434966 +2,1,2060,2,"GWh/mth","ind_man",18.9004171615075 +2,1,2060,2,"GWh/mth","res_com",61.0479528728254 +2,1,2060,3,"GWh/mth","agri",0.115778727623311 +2,1,2060,3,"GWh/mth","ind_man",18.46884083388 +2,1,2060,3,"GWh/mth","res_com",59.7065024623669 +2,1,2060,4,"GWh/mth","agri",3.64673409334652e-14 +2,1,2060,4,"GWh/mth","ind_man",18.0678970739129 +2,1,2060,4,"GWh/mth","res_com",58.3571656036464 +2,1,2060,5,"GWh/mth","agri",5.04166556743482e-11 +2,1,2060,5,"GWh/mth","ind_man",17.544508298702 +2,1,2060,5,"GWh/mth","res_com",56.7605772631249 +2,1,2060,6,"GWh/mth","agri",0 +2,1,2060,6,"GWh/mth","ind_man",17.1088805935803 +2,1,2060,6,"GWh/mth","res_com",55.4181861373468 +2,1,2060,7,"GWh/mth","agri",0 +2,1,2060,7,"GWh/mth","ind_man",17.0577365982843 +2,1,2060,7,"GWh/mth","res_com",55.2398904640379 +2,1,2060,8,"GWh/mth","agri",2.26816485529583e-06 +2,1,2060,8,"GWh/mth","ind_man",17.5621001822276 +2,1,2060,8,"GWh/mth","res_com",56.8763715808015 +2,1,2060,9,"GWh/mth","agri",0.00314188490021841 +2,1,2060,9,"GWh/mth","ind_man",18.0761576722775 +2,1,2060,9,"GWh/mth","res_com",58.4453158428112 +2,1,2060,10,"GWh/mth","agri",0.00743050940480332 +2,1,2060,10,"GWh/mth","ind_man",18.5442682245679 +2,1,2060,10,"GWh/mth","res_com",59.9165352993744 +2,1,2060,11,"GWh/mth","agri",0.00139465859048181 +2,1,2060,11,"GWh/mth","ind_man",18.9743521330212 +2,1,2060,11,"GWh/mth","res_com",61.2313146603368 +2,1,2060,12,"GWh/mth","agri",2.93380470429025e-06 +2,1,2060,12,"GWh/mth","ind_man",19.4358916485719 +2,1,2060,12,"GWh/mth","res_com",62.7200211255406 +3,0,2020,1,"GWh/mth","agri",0.0945695568218162 +3,0,2020,1,"GWh/mth","ind_man",0 +3,0,2020,1,"GWh/mth","res_com",0.109403230450737 +3,0,2020,2,"GWh/mth","agri",0.0698631884774679 +3,0,2020,2,"GWh/mth","ind_man",0 +3,0,2020,2,"GWh/mth","res_com",0.113736246407623 +3,0,2020,3,"GWh/mth","agri",0.0465754589849786 +3,0,2020,3,"GWh/mth","ind_man",0 +3,0,2020,3,"GWh/mth","res_com",0.116995401926575 +3,0,2020,4,"GWh/mth","agri",7.25530553998042e-21 +3,0,2020,4,"GWh/mth","ind_man",0 +3,0,2020,4,"GWh/mth","res_com",0.116158855474828 +3,0,2020,5,"GWh/mth","agri",2.92517844081525e-09 +3,0,2020,5,"GWh/mth","ind_man",0 +3,0,2020,5,"GWh/mth","res_com",0.123080385730984 +3,0,2020,6,"GWh/mth","agri",1.22518310491911e-08 +3,0,2020,6,"GWh/mth","ind_man",0 +3,0,2020,6,"GWh/mth","res_com",0.126648011437819 +3,0,2020,7,"GWh/mth","agri",2.03174927178197e-06 +3,0,2020,7,"GWh/mth","ind_man",0 +3,0,2020,7,"GWh/mth","res_com",0.127677881611858 +3,0,2020,8,"GWh/mth","agri",1.72783294861718e-05 +3,0,2020,8,"GWh/mth","ind_man",0 +3,0,2020,8,"GWh/mth","res_com",0.122690443721134 +3,0,2020,9,"GWh/mth","agri",5.21490048251453e-05 +3,0,2020,9,"GWh/mth","ind_man",0 +3,0,2020,9,"GWh/mth","res_com",0.119494185767386 +3,0,2020,10,"GWh/mth","agri",6.72862871411312e-05 +3,0,2020,10,"GWh/mth","ind_man",0 +3,0,2020,10,"GWh/mth","res_com",0.119287394206185 +3,0,2020,11,"GWh/mth","agri",4.28017038602373e-05 +3,0,2020,11,"GWh/mth","ind_man",0 +3,0,2020,11,"GWh/mth","res_com",0.105078531196789 +3,0,2020,12,"GWh/mth","agri",3.18708082783798e-05 +3,0,2020,12,"GWh/mth","ind_man",0 +3,0,2020,12,"GWh/mth","res_com",0.101434059458049 +3,0,2030,1,"GWh/mth","agri",0.147918139084231 +3,0,2030,1,"GWh/mth","ind_man",0.820421466340542 +3,0,2030,1,"GWh/mth","res_com",1.6592948342632 +3,0,2030,2,"GWh/mth","agri",0.109274413218927 +3,0,2030,2,"GWh/mth","ind_man",0.797520807839301 +3,0,2030,2,"GWh/mth","res_com",1.62453233655882 +3,0,2030,3,"GWh/mth","agri",0.0728496088126183 +3,0,2030,3,"GWh/mth","ind_man",0.778857521678165 +3,0,2030,3,"GWh/mth","res_com",1.59577642673531 +3,0,2030,4,"GWh/mth","agri",2.27472129956513e-20 +3,0,2030,4,"GWh/mth","ind_man",0.761518924429507 +3,0,2030,4,"GWh/mth","res_com",1.5630172208619 +3,0,2030,5,"GWh/mth","agri",2.47675738992698e-12 +3,0,2030,5,"GWh/mth","ind_man",0.738885258354759 +3,0,2030,5,"GWh/mth","res_com",1.53278777189616 +3,0,2030,6,"GWh/mth","agri",4.62208781789681e-11 +3,0,2030,6,"GWh/mth","ind_man",0.720046772552956 +3,0,2030,6,"GWh/mth","res_com",1.50419654916705 +3,0,2030,7,"GWh/mth","agri",5.12490447337705e-08 +3,0,2030,7,"GWh/mth","ind_man",0.717835077984626 +3,0,2030,7,"GWh/mth","res_com",1.50179556313279 +3,0,2030,8,"GWh/mth","agri",1.71397328204794e-05 +3,0,2030,8,"GWh/mth","ind_man",0.739646009895876 +3,0,2030,8,"GWh/mth","res_com",1.53355779464252 +3,0,2030,9,"GWh/mth","agri",0.000132594814648328 +3,0,2030,9,"GWh/mth","ind_man",0.761876149562749 +3,0,2030,9,"GWh/mth","res_com",1.5688820539497 +3,0,2030,10,"GWh/mth","agri",0.000188447236582174 +3,0,2030,10,"GWh/mth","ind_man",0.782119338619181 +3,0,2030,10,"GWh/mth","res_com",1.60527803744351 +3,0,2030,11,"GWh/mth","agri",4.06832763476686e-05 +3,0,2030,11,"GWh/mth","ind_man",0.800718085915839 +3,0,2030,11,"GWh/mth","res_com",1.61679022230558 +3,0,2030,12,"GWh/mth","agri",2.28400051804504e-06 +3,0,2030,12,"GWh/mth","ind_man",0.820677114022753 +3,0,2030,12,"GWh/mth","res_com",1.64729381744593 +3,0,2040,1,"GWh/mth","agri",0.228319464617177 +3,0,2040,1,"GWh/mth","ind_man",1.27200221008147 +3,0,2040,1,"GWh/mth","res_com",2.57010628475157 +3,0,2040,2,"GWh/mth","agri",0.168658474946493 +3,0,2040,2,"GWh/mth","ind_man",1.23649644941941 +3,0,2040,2,"GWh/mth","res_com",2.51603811165826 +3,0,2040,3,"GWh/mth","agri",0.112438983297662 +3,0,2040,3,"GWh/mth","ind_man",1.20756041810098 +3,0,2040,3,"GWh/mth","res_com",2.47136785399754 +3,0,2040,4,"GWh/mth","agri",3.58803005286568e-19 +3,0,2040,4,"GWh/mth","ind_man",1.18067821800646 +3,0,2040,4,"GWh/mth","res_com",2.42055014304839 +3,0,2040,5,"GWh/mth","agri",1.71864854228244e-11 +3,0,2040,5,"GWh/mth","ind_man",1.14558640916125 +3,0,2040,5,"GWh/mth","res_com",2.37349969164082 +3,0,2040,6,"GWh/mth","agri",3.13623826911222e-10 +3,0,2040,6,"GWh/mth","ind_man",1.11637874388481 +3,0,2040,6,"GWh/mth","res_com",2.32908125283859 +3,0,2040,7,"GWh/mth","agri",1.81213527168274e-07 +3,0,2040,7,"GWh/mth","ind_man",1.11294967663784 +3,0,2040,7,"GWh/mth","res_com",2.32531002431158 +3,0,2040,8,"GWh/mth","agri",6.98449326197814e-05 +3,0,2040,8,"GWh/mth","ind_man",1.14676589760874 +3,0,2040,8,"GWh/mth","res_com",2.37474201227014 +3,0,2040,9,"GWh/mth","agri",0.000514483739473385 +3,0,2040,9,"GWh/mth","ind_man",1.18123206889606 +3,0,2040,9,"GWh/mth","res_com",2.42957811275675 +3,0,2040,10,"GWh/mth","agri",0.000739203219250927 +3,0,2040,10,"GWh/mth","ind_man",1.21261762165802 +3,0,2040,10,"GWh/mth","res_com",2.48599315836368 +3,0,2040,11,"GWh/mth","agri",0.000223685664797876 +3,0,2040,11,"GWh/mth","ind_man",1.24145359028719 +3,0,2040,11,"GWh/mth","res_com",2.50428847153429 +3,0,2040,12,"GWh/mth","agri",8.66231338185269e-06 +3,0,2040,12,"GWh/mth","ind_man",1.2723985727196 +3,0,2040,12,"GWh/mth","res_com",2.55172070997825 +3,0,2050,1,"GWh/mth","agri",0.35463087810444 +3,0,2050,1,"GWh/mth","ind_man",1.67596873126728 +3,0,2050,1,"GWh/mth","res_com",3.44934946426765 +3,0,2050,2,"GWh/mth","agri",0.261983292610978 +3,0,2050,2,"GWh/mth","ind_man",1.62918693782554 +3,0,2050,2,"GWh/mth","res_com",3.38076697426144 +3,0,2050,3,"GWh/mth","agri",0.174655528407319 +3,0,2050,3,"GWh/mth","ind_man",1.59106130933817 +3,0,2050,3,"GWh/mth","res_com",3.32385409251016 +3,0,2050,4,"GWh/mth","agri",1.33495628136546e-18 +3,0,2050,4,"GWh/mth","ind_man",1.55564177434916 +3,0,2050,4,"GWh/mth","res_com",3.25648959776447 +3,0,2050,5,"GWh/mth","agri",6.39429967160192e-11 +3,0,2050,5,"GWh/mth","ind_man",1.5094053968633 +3,0,2050,5,"GWh/mth","res_com",3.19860292256764 +3,0,2050,6,"GWh/mth","agri",1.16680876374572e-09 +3,0,2050,6,"GWh/mth","ind_man",1.47092186803869 +3,0,2050,6,"GWh/mth","res_com",3.14219779456406 +3,0,2050,7,"GWh/mth","agri",2.90416320620619e-07 +3,0,2050,7,"GWh/mth","ind_man",1.46640378667233 +3,0,2050,7,"GWh/mth","res_com",3.13786695774147 +3,0,2050,8,"GWh/mth","agri",0.000101031151137381 +3,0,2050,8,"GWh/mth","ind_man",1.51095947101602 +3,0,2050,8,"GWh/mth","res_com",3.1999587178409 +3,0,2050,9,"GWh/mth","agri",0.000741928477261586 +3,0,2050,9,"GWh/mth","ind_man",1.55637151897177 +3,0,2050,9,"GWh/mth","res_com",3.27032018303878 +3,0,2050,10,"GWh/mth","agri",0.00105852829034855 +3,0,2050,10,"GWh/mth","ind_man",1.59772459573979 +3,0,2050,10,"GWh/mth","res_com",3.34453171510252 +3,0,2050,11,"GWh/mth","agri",0.000437979346010486 +3,0,2050,11,"GWh/mth","ind_man",1.63571838330971 +3,0,2050,11,"GWh/mth","res_com",3.36014469627821 +3,0,2050,12,"GWh/mth","agri",2.4991445352669e-05 +3,0,2050,12,"GWh/mth","ind_man",1.67649097201692 +3,0,2050,12,"GWh/mth","res_com",3.42041248854378 +3,0,2060,1,"GWh/mth","agri",0.546312585539936 +3,0,2060,1,"GWh/mth","ind_man",2.09085297390454 +3,0,2060,1,"GWh/mth","res_com",4.4238853249938 +3,0,2060,2,"GWh/mth","agri",0.403588008803956 +3,0,2060,2,"GWh/mth","ind_man",2.03249039820882 +3,0,2060,2,"GWh/mth","res_com",4.34307257828455 +3,0,2060,3,"GWh/mth","agri",0.269058672535971 +3,0,2060,3,"GWh/mth","ind_man",1.98492681171845 +3,0,2060,3,"GWh/mth","res_com",4.27564090122429 +3,0,2060,4,"GWh/mth","agri",4.88046292185999e-18 +3,0,2060,4,"GWh/mth","ind_man",1.94073920923848 +3,0,2060,4,"GWh/mth","res_com",4.19067157522573 +3,0,2060,5,"GWh/mth","agri",2.33768044827881e-10 +3,0,2060,5,"GWh/mth","ind_man",1.88305706662728 +3,0,2060,5,"GWh/mth","res_com",4.12604624887295 +3,0,2060,6,"GWh/mth","agri",4.26566118821051e-09 +3,0,2060,6,"GWh/mth","ind_man",1.83504698195915 +3,0,2060,6,"GWh/mth","res_com",4.05958680283097 +3,0,2060,7,"GWh/mth","agri",5.9704422936862e-07 +3,0,2060,7,"GWh/mth","ind_man",1.82941045444825 +3,0,2060,7,"GWh/mth","res_com",4.05531402736752 +3,0,2060,8,"GWh/mth","agri",0.00018559936839374 +3,0,2060,8,"GWh/mth","ind_man",1.88499585015185 +3,0,2060,8,"GWh/mth","res_com",4.12730971326072 +3,0,2060,9,"GWh/mth","agri",0.00134269466820041 +3,0,2060,9,"GWh/mth","ind_man",1.94164960135136 +3,0,2060,9,"GWh/mth","res_com",4.21159027105215 +3,0,2060,10,"GWh/mth","agri",0.00190077528845372 +3,0,2060,10,"GWh/mth","ind_man",1.99323958744564 +3,0,2060,10,"GWh/mth","res_com",4.30395705177332 +3,0,2060,11,"GWh/mth","agri",0.00102523618087383 +3,0,2060,11,"GWh/mth","ind_man",2.04063869594236 +3,0,2060,11,"GWh/mth","res_com",4.30783580138194 +3,0,2060,12,"GWh/mth","agri",6.74519761900795e-05 +3,0,2060,12,"GWh/mth","ind_man",2.09150449478564 +3,0,2060,12,"GWh/mth","res_com",4.37903032116401 +3,1,2020,1,"GWh/mth","agri",0.00115130192785174 +3,1,2020,1,"GWh/mth","ind_man",0 +3,1,2020,1,"GWh/mth","res_com",0.0965093641939641 +3,1,2020,2,"GWh/mth","agri",0.000879444733366363 +3,1,2020,2,"GWh/mth","ind_man",0 +3,1,2020,2,"GWh/mth","res_com",0.0948517287900718 +3,1,2020,3,"GWh/mth","agri",0.000586296488910909 +3,1,2020,3,"GWh/mth","ind_man",0 +3,1,2020,3,"GWh/mth","res_com",0.0955004932634261 +3,1,2020,4,"GWh/mth","agri",0 +3,1,2020,4,"GWh/mth","ind_man",0 +3,1,2020,4,"GWh/mth","res_com",0.0928348074141774 +3,1,2020,5,"GWh/mth","agri",0 +3,1,2020,5,"GWh/mth","ind_man",0 +3,1,2020,5,"GWh/mth","res_com",0.0943748543370637 +3,1,2020,6,"GWh/mth","agri",0 +3,1,2020,6,"GWh/mth","ind_man",0 +3,1,2020,6,"GWh/mth","res_com",0.0954492492107798 +3,1,2020,7,"GWh/mth","agri",0 +3,1,2020,7,"GWh/mth","ind_man",0 +3,1,2020,7,"GWh/mth","res_com",0.0948379955224709 +3,1,2020,8,"GWh/mth","agri",0 +3,1,2020,8,"GWh/mth","ind_man",0 +3,1,2020,8,"GWh/mth","res_com",0.0967253363378057 +3,1,2020,9,"GWh/mth","agri",0 +3,1,2020,9,"GWh/mth","ind_man",0 +3,1,2020,9,"GWh/mth","res_com",0.0946887458509504 +3,1,2020,10,"GWh/mth","agri",7.06579509403676e-17 +3,1,2020,10,"GWh/mth","ind_man",0 +3,1,2020,10,"GWh/mth","res_com",0.0944373854456525 +3,1,2020,11,"GWh/mth","agri",2.1776530389968e-08 +3,1,2020,11,"GWh/mth","ind_man",0 +3,1,2020,11,"GWh/mth","res_com",0.0938051158255045 +3,1,2020,12,"GWh/mth","agri",1.68011376566536e-08 +3,1,2020,12,"GWh/mth","ind_man",0 +3,1,2020,12,"GWh/mth","res_com",0.09500817244879 +3,1,2030,1,"GWh/mth","agri",0.00180077441848211 +3,1,2030,1,"GWh/mth","ind_man",0.210890530404095 +3,1,2030,1,"GWh/mth","res_com",0.534323838894651 +3,1,2030,2,"GWh/mth","agri",0.00137555713232412 +3,1,2030,2,"GWh/mth","ind_man",0.205003882850281 +3,1,2030,2,"GWh/mth","res_com",0.521029937041591 +3,1,2030,3,"GWh/mth","agri",0.000917038088216081 +3,1,2030,3,"GWh/mth","ind_man",0.200206458015505 +3,1,2030,3,"GWh/mth","res_com",0.513323586968263 +3,1,2030,4,"GWh/mth","agri",0 +3,1,2030,4,"GWh/mth","ind_man",0.195749546391115 +3,1,2030,4,"GWh/mth","res_com",0.501052047534673 +3,1,2030,5,"GWh/mth","agri",0 +3,1,2030,5,"GWh/mth","ind_man",0.189931529628604 +3,1,2030,5,"GWh/mth","res_com",0.492884466562877 +3,1,2030,6,"GWh/mth","agri",0 +3,1,2030,6,"GWh/mth","ind_man",0.185089069471543 +3,1,2030,6,"GWh/mth","res_com",0.485761985158967 +3,1,2030,7,"GWh/mth","agri",0 +3,1,2030,7,"GWh/mth","ind_man",0.184520550168059 +3,1,2030,7,"GWh/mth","res_com",0.483772416721711 +3,1,2030,8,"GWh/mth","agri",0 +3,1,2030,8,"GWh/mth","ind_man",0.190127081917999 +3,1,2030,8,"GWh/mth","res_com",0.49691639124317 +3,1,2030,9,"GWh/mth","agri",0 +3,1,2030,9,"GWh/mth","ind_man",0.195841371630841 +3,1,2030,9,"GWh/mth","res_com",0.504118756164063 +3,1,2030,10,"GWh/mth","agri",3.24504319229102e-16 +3,1,2030,10,"GWh/mth","ind_man",0.201044912801239 +3,1,2030,10,"GWh/mth","res_com",0.513184960684098 +3,1,2030,11,"GWh/mth","agri",4.64446920153457e-08 +3,1,2030,11,"GWh/mth","ind_man",0.205825747827094 +3,1,2030,11,"GWh/mth","res_com",0.520886952568829 +3,1,2030,12,"GWh/mth","agri",2.80585260132867e-08 +3,1,2030,12,"GWh/mth","ind_man",0.210956245012391 +3,1,2030,12,"GWh/mth","res_com",0.532095255428147 +3,1,2040,1,"GWh/mth","agri",0.00332830483418976 +3,1,2040,1,"GWh/mth","ind_man",0.0766571628965837 +3,1,2040,1,"GWh/mth","res_com",0.374252626342981 +3,1,2040,2,"GWh/mth","agri",0.00254112984667598 +3,1,2040,2,"GWh/mth","ind_man",0.0745174096341551 +3,1,2040,2,"GWh/mth","res_com",0.36651820629223 +3,1,2040,3,"GWh/mth","agri",0.00169408656445065 +3,1,2040,3,"GWh/mth","ind_man",0.0727735808508575 +3,1,2040,3,"GWh/mth","res_com",0.365002160883276 +3,1,2040,4,"GWh/mth","agri",0 +3,1,2040,4,"GWh/mth","ind_man",0.0711535261250626 +3,1,2040,4,"GWh/mth","res_com",0.355650235580674 +3,1,2040,5,"GWh/mth","agri",0 +3,1,2040,5,"GWh/mth","ind_man",0.0690387196525091 +3,1,2040,5,"GWh/mth","res_com",0.355696912477097 +3,1,2040,6,"GWh/mth","agri",0 +3,1,2040,6,"GWh/mth","ind_man",0.0672785208594726 +3,1,2040,6,"GWh/mth","res_com",0.355183248381918 +3,1,2040,7,"GWh/mth","agri",0 +3,1,2040,7,"GWh/mth","ind_man",0.0670718682574166 +3,1,2040,7,"GWh/mth","res_com",0.353373492436054 +3,1,2040,8,"GWh/mth","agri",0 +3,1,2040,8,"GWh/mth","ind_man",0.0691098014771611 +3,1,2040,8,"GWh/mth","res_com",0.36146730665265 +3,1,2040,9,"GWh/mth","agri",0 +3,1,2040,9,"GWh/mth","ind_man",0.0711869039270255 +3,1,2040,9,"GWh/mth","res_com",0.360245522528728 +3,1,2040,10,"GWh/mth","agri",2.26433778019849e-15 +3,1,2040,10,"GWh/mth","ind_man",0.073078353023265 +3,1,2040,10,"GWh/mth","res_com",0.363075734426106 +3,1,2040,11,"GWh/mth","agri",1.82094478975246e-07 +3,1,2040,11,"GWh/mth","ind_man",0.0748161515325504 +3,1,2040,11,"GWh/mth","res_com",0.36431555459203 +3,1,2040,12,"GWh/mth","agri",6.56312480537646e-08 +3,1,2040,12,"GWh/mth","ind_man",0.0766810496752985 +3,1,2040,12,"GWh/mth","res_com",0.370481797748203 +3,1,2050,1,"GWh/mth","agri",0.00431732184604262 +3,1,2050,1,"GWh/mth","ind_man",0.125598700103195 +3,1,2050,1,"GWh/mth","res_com",0.590238722601237 +3,1,2050,2,"GWh/mth","agri",0.00329787162506921 +3,1,2050,2,"GWh/mth","ind_man",0.122092827747012 +3,1,2050,2,"GWh/mth","res_com",0.577649133928699 +3,1,2050,3,"GWh/mth","agri",0.00219858108337947 +3,1,2050,3,"GWh/mth","ind_man",0.119235656673772 +3,1,2050,3,"GWh/mth","res_com",0.574887738135201 +3,1,2050,4,"GWh/mth","agri",0 +3,1,2050,4,"GWh/mth","ind_man",0.116581282836191 +3,1,2050,4,"GWh/mth","res_com",0.560066005143478 +3,1,2050,5,"GWh/mth","agri",0 +3,1,2050,5,"GWh/mth","ind_man",0.113116284473535 +3,1,2050,5,"GWh/mth","res_com",0.559541864853048 +3,1,2050,6,"GWh/mth","agri",0 +3,1,2050,6,"GWh/mth","ind_man",0.110232292006623 +3,1,2050,6,"GWh/mth","res_com",0.558327800462017 +3,1,2050,7,"GWh/mth","agri",0 +3,1,2050,7,"GWh/mth","ind_man",0.109893702666626 +3,1,2050,7,"GWh/mth","res_com",0.555420088623856 +3,1,2050,8,"GWh/mth","agri",0 +3,1,2050,8,"GWh/mth","ind_man",0.113232748277306 +3,1,2050,8,"GWh/mth","res_com",0.568567775851772 +3,1,2050,9,"GWh/mth","agri",0 +3,1,2050,9,"GWh/mth","ind_man",0.116635970596349 +3,1,2050,9,"GWh/mth","res_com",0.56711759731796 +3,1,2050,10,"GWh/mth","agri",8.23356894684224e-15 +3,1,2050,10,"GWh/mth","ind_man",0.119735009731407 +3,1,2050,10,"GWh/mth","res_com",0.571808944477818 +3,1,2050,11,"GWh/mth","agri",5.42810300284985e-07 +3,1,2050,11,"GWh/mth","ind_man",0.122582300520162 +3,1,2050,11,"GWh/mth","res_com",0.574614233123619 +3,1,2050,12,"GWh/mth","agri",1.29270889745436e-07 +3,1,2050,12,"GWh/mth","ind_man",0.125637837324596 +3,1,2050,12,"GWh/mth","res_com",0.584680482273943 +3,1,2060,1,"GWh/mth","agri",0.00665087956504729 +3,1,2060,1,"GWh/mth","ind_man",0.215337748368782 +3,1,2060,1,"GWh/mth","res_com",0.948994720336909 +3,1,2060,2,"GWh/mth","agri",0.00508040581209558 +3,1,2060,2,"GWh/mth","ind_man",0.209326964350885 +3,1,2060,2,"GWh/mth","res_com",0.928491449960121 +3,1,2060,3,"GWh/mth","agri",0.00338693720806372 +3,1,2060,3,"GWh/mth","ind_man",0.204428372366173 +3,1,2060,3,"GWh/mth","res_com",0.923333792342395 +3,1,2060,4,"GWh/mth","agri",0 +3,1,2060,4,"GWh/mth","ind_man",0.199877474267354 +3,1,2060,4,"GWh/mth","res_com",0.899661201842721 +3,1,2060,5,"GWh/mth","agri",0 +3,1,2060,5,"GWh/mth","ind_man",0.193936768313368 +3,1,2060,5,"GWh/mth","res_com",0.897757809278217 +3,1,2060,6,"GWh/mth","agri",0 +3,1,2060,6,"GWh/mth","ind_man",0.188992191310365 +3,1,2060,6,"GWh/mth","res_com",0.89497534853328 +3,1,2060,7,"GWh/mth","agri",0 +3,1,2060,7,"GWh/mth","ind_man",0.188411683183795 +3,1,2060,7,"GWh/mth","res_com",0.890388895089399 +3,1,2060,8,"GWh/mth","agri",0 +3,1,2060,8,"GWh/mth","ind_man",0.194136444370923 +3,1,2060,8,"GWh/mth","res_com",0.911699156287874 +3,1,2060,9,"GWh/mth","agri",0 +3,1,2060,9,"GWh/mth","ind_man",0.199971235899648 +3,1,2060,9,"GWh/mth","res_com",0.910541550778394 +3,1,2060,10,"GWh/mth","agri",3.01010816013686e-14 +3,1,2060,10,"GWh/mth","ind_man",0.205284508321272 +3,1,2060,10,"GWh/mth","res_com",0.918748819480669 +3,1,2060,11,"GWh/mth","agri",1.84415098749275e-06 +3,1,2060,11,"GWh/mth","ind_man",0.21016616065444 +3,1,2060,11,"GWh/mth","res_com",0.923970969449171 +3,1,2060,12,"GWh/mth","agri",3.43985722766669e-07 +3,1,2060,12,"GWh/mth","ind_man",0.215404848753794 +3,1,2060,12,"GWh/mth","res_com",0.940444571606101 +4,0,2020,1,"GWh/mth","agri",0.786908799389138 +4,0,2020,1,"GWh/mth","ind_man",1.3775482053002 +4,0,2020,1,"GWh/mth","res_com",4.24561971916904 +4,0,2020,2,"GWh/mth","agri",0.479980206042562 +4,0,2020,2,"GWh/mth","ind_man",1.33909630915554 +4,0,2020,2,"GWh/mth","res_com",4.17694235794832 +4,0,2020,3,"GWh/mth","agri",0.319986809834492 +4,0,2020,3,"GWh/mth","ind_man",1.30775927397172 +4,0,2020,3,"GWh/mth","res_com",4.11341178530811 +4,0,2020,4,"GWh/mth","agri",0.00102251688727969 +4,0,2020,4,"GWh/mth","ind_man",1.27864648926016 +4,0,2020,4,"GWh/mth","res_com",4.03671787341506 +4,0,2020,5,"GWh/mth","agri",0.000258107424676732 +4,0,2020,5,"GWh/mth","ind_man",1.2406428931089 +4,0,2020,5,"GWh/mth","res_com",3.97800755865971 +4,0,2020,6,"GWh/mth","agri",0.000187052290791238 +4,0,2020,6,"GWh/mth","ind_man",1.2090116847952 +4,0,2020,6,"GWh/mth","res_com",3.9147548499558 +4,0,2020,7,"GWh/mth","agri",0.0004103055322576 +4,0,2020,7,"GWh/mth","ind_man",1.20529808634822 +4,0,2020,7,"GWh/mth","res_com",3.91376883422923 +4,0,2020,8,"GWh/mth","agri",0.00568895493924614 +4,0,2020,8,"GWh/mth","ind_man",1.24192025110493 +4,0,2020,8,"GWh/mth","res_com",3.9728954209048 +4,0,2020,9,"GWh/mth","agri",0.0282003202844426 +4,0,2020,9,"GWh/mth","ind_man",1.27924629662915 +4,0,2020,9,"GWh/mth","res_com",4.05622069345839 +4,0,2020,10,"GWh/mth","agri",0.0383453979503179 +4,0,2020,10,"GWh/mth","ind_man",1.31323610540222 +4,0,2020,10,"GWh/mth","res_com",4.14756619010709 +4,0,2020,11,"GWh/mth","agri",0.00917144571316862 +4,0,2020,11,"GWh/mth","ind_man",1.34446477506834 +4,0,2020,11,"GWh/mth","res_com",4.13415755702703 +4,0,2020,12,"GWh/mth","agri",0.00424930491186342 +4,0,2020,12,"GWh/mth","ind_man",1.37797745663049 +4,0,2020,12,"GWh/mth","res_com",4.19564899365169 +4,0,2030,1,"GWh/mth","agri",1.229875893337 +4,0,2030,1,"GWh/mth","ind_man",6.69182249746177 +4,0,2030,1,"GWh/mth","res_com",15.7553564002571 +4,0,2030,2,"GWh/mth","agri",0.751730147270653 +4,0,2030,2,"GWh/mth","ind_man",6.50503174654585 +4,0,2030,2,"GWh/mth","res_com",15.3934492808407 +4,0,2030,3,"GWh/mth","agri",0.502505688113943 +4,0,2030,3,"GWh/mth","ind_man",6.35280340619448 +4,0,2030,3,"GWh/mth","res_com",15.0866974773539 +4,0,2030,4,"GWh/mth","agri",0.00588111239659454 +4,0,2030,4,"GWh/mth","ind_man",6.21137997945196 +4,0,2030,4,"GWh/mth","res_com",14.7740872687068 +4,0,2030,5,"GWh/mth","agri",0.0042398252365029 +4,0,2030,5,"GWh/mth","ind_man",6.02676697009883 +4,0,2030,5,"GWh/mth","res_com",14.4307373209907 +4,0,2030,6,"GWh/mth","agri",0.00405689590811206 +4,0,2030,6,"GWh/mth","ind_man",5.87310960217436 +4,0,2030,6,"GWh/mth","res_com",14.1224729764127 +4,0,2030,7,"GWh/mth","agri",0.00422372003838427 +4,0,2030,7,"GWh/mth","ind_man",5.85506976767823 +4,0,2030,7,"GWh/mth","res_com",14.0963435711513 +4,0,2030,8,"GWh/mth","agri",0.019363403967866 +4,0,2030,8,"GWh/mth","ind_man",6.03297209086503 +4,0,2030,8,"GWh/mth","res_com",14.4312082898692 +4,0,2030,9,"GWh/mth","agri",0.105159833554884 +4,0,2030,9,"GWh/mth","ind_man",6.21429371011524 +4,0,2030,9,"GWh/mth","res_com",14.8085453759007 +4,0,2030,10,"GWh/mth","agri",0.151551703743107 +4,0,2030,10,"GWh/mth","ind_man",6.37940863397558 +4,0,2030,10,"GWh/mth","res_com",15.1763289974855 +4,0,2030,11,"GWh/mth","agri",0.027147106974069 +4,0,2030,11,"GWh/mth","ind_man",6.53111055876739 +4,0,2030,11,"GWh/mth","res_com",15.362120138109 +4,0,2030,12,"GWh/mth","agri",0.00534086368140776 +4,0,2030,12,"GWh/mth","ind_man",6.69390770485996 +4,0,2030,12,"GWh/mth","res_com",15.680095092483 +4,0,2040,1,"GWh/mth","agri",1.90648032338005 +4,0,2040,1,"GWh/mth","ind_man",11.2797547146733 +4,0,2040,1,"GWh/mth","res_com",26.3177089654067 +4,0,2040,2,"GWh/mth","agri",1.16668470933479 +4,0,2040,2,"GWh/mth","ind_man",10.9648997025895 +4,0,2040,2,"GWh/mth","res_com",25.7035873690136 +4,0,2040,3,"GWh/mth","agri",0.781080190297878 +4,0,2040,3,"GWh/mth","ind_man",10.7083031864032 +4,0,2040,3,"GWh/mth","res_com",25.1848267394223 +4,0,2040,4,"GWh/mth","agri",0.0139974183216695 +4,0,2040,4,"GWh/mth","ind_man",10.4699194628109 +4,0,2040,4,"GWh/mth","res_com",24.6601354874896 +4,0,2040,5,"GWh/mth","agri",0.0104001959740966 +4,0,2040,5,"GWh/mth","ind_man",10.1587352579951 +4,0,2040,5,"GWh/mth","res_com",24.0753574592903 +4,0,2040,6,"GWh/mth","agri",0.00989641251415972 +4,0,2040,6,"GWh/mth","ind_man",9.89972996893554 +4,0,2040,6,"GWh/mth","res_com",23.5538421571817 +4,0,2040,7,"GWh/mth","agri",0.0104236540809489 +4,0,2040,7,"GWh/mth","ind_man",9.86932197346242 +4,0,2040,7,"GWh/mth","res_com",23.5081824209404 +4,0,2040,8,"GWh/mth","agri",0.0558759561860155 +4,0,2040,8,"GWh/mth","ind_man",10.1691946269105 +4,0,2040,8,"GWh/mth","res_com",24.0778857399902 +4,0,2040,9,"GWh/mth","agri",0.297721340587282 +4,0,2040,9,"GWh/mth","ind_man",10.4748308553648 +4,0,2040,9,"GWh/mth","res_com",24.7142947154764 +4,0,2040,10,"GWh/mth","agri",0.416876984426106 +4,0,2040,10,"GWh/mth","ind_man",10.7531490327497 +4,0,2040,10,"GWh/mth","res_com",25.3312221867019 +4,0,2040,11,"GWh/mth","agri",0.0727034359158793 +4,0,2040,11,"GWh/mth","ind_man",11.0088582213967 +4,0,2040,11,"GWh/mth","res_com",25.6626776550574 +4,0,2040,12,"GWh/mth","agri",0.0132482106027177 +4,0,2040,12,"GWh/mth","ind_man",11.2832695460947 +4,0,2040,12,"GWh/mth","res_com",26.201868074797 +4,0,2050,1,"GWh/mth","agri",2.94768133297144 +4,0,2050,1,"GWh/mth","ind_man",17.1347479052431 +4,0,2050,1,"GWh/mth","res_com",40.3264973411493 +4,0,2050,2,"GWh/mth","agri",1.80133615286576 +4,0,2050,2,"GWh/mth","ind_man",16.6564607974799 +4,0,2050,2,"GWh/mth","res_com",39.3875600511377 +4,0,2050,3,"GWh/mth","agri",1.20382533138701 +4,0,2050,3,"GWh/mth","ind_man",16.266672479433 +4,0,2050,3,"GWh/mth","res_com",38.594044214652 +4,0,2050,4,"GWh/mth","agri",0.0158560790490483 +4,0,2050,4,"GWh/mth","ind_man",15.9045506858487 +4,0,2050,4,"GWh/mth","res_com",37.7906056931595 +4,0,2050,5,"GWh/mth","agri",0.00979297355054833 +4,0,2050,5,"GWh/mth","ind_man",15.431839794833 +4,0,2050,5,"GWh/mth","res_com",36.8969898035795 +4,0,2050,6,"GWh/mth","agri",0.00880442820697448 +4,0,2050,6,"GWh/mth","ind_man",15.0383923798474 +4,0,2050,6,"GWh/mth","res_com",36.0993024186222 +4,0,2050,7,"GWh/mth","agri",0.00986259395966457 +4,0,2050,7,"GWh/mth","ind_man",14.9922004767506 +4,0,2050,7,"GWh/mth","res_com",36.0297743867791 +4,0,2050,8,"GWh/mth","agri",0.105379092624029 +4,0,2050,8,"GWh/mth","ind_man",15.4477283184886 +4,0,2050,8,"GWh/mth","res_com",36.9004865712486 +4,0,2050,9,"GWh/mth","agri",0.618853145416363 +4,0,2050,9,"GWh/mth","ind_man",15.9120114396864 +4,0,2050,9,"GWh/mth","res_com",37.8743301033129 +4,0,2050,10,"GWh/mth","agri",0.876272682576591 +4,0,2050,10,"GWh/mth","ind_man",16.3347965026215 +4,0,2050,10,"GWh/mth","res_com",38.819085554549 +4,0,2050,11,"GWh/mth","agri",0.138167942016085 +4,0,2050,11,"GWh/mth","ind_man",16.7232369071651 +4,0,2050,11,"GWh/mth","res_com",39.3223996815066 +4,0,2050,12,"GWh/mth","agri",0.00980837393862704 +4,0,2050,12,"GWh/mth","ind_man",17.1400871836103 +4,0,2050,12,"GWh/mth","res_com",40.1468554438645 +4,0,2060,1,"GWh/mth","agri",4.54052948164979 +4,0,2060,1,"GWh/mth","ind_man",24.3438894845064 +4,0,2060,1,"GWh/mth","res_com",58.193550660241 +4,0,2060,2,"GWh/mth","agri",2.77457271383461 +4,0,2060,2,"GWh/mth","ind_man",23.6643715506775 +4,0,2060,2,"GWh/mth","res_com",56.8568027020498 +4,0,2060,3,"GWh/mth","agri",1.85410102926234 +4,0,2060,3,"GWh/mth","ind_man",23.1105867042729 +4,0,2060,3,"GWh/mth","res_com",55.7237808881606 +4,0,2060,4,"GWh/mth","agri",0.0248529401546823 +4,0,2060,4,"GWh/mth","ind_man",22.5961085822896 +4,0,2060,4,"GWh/mth","res_com",54.5691277778722 +4,0,2060,5,"GWh/mth","agri",0.015077245185212 +4,0,2060,5,"GWh/mth","ind_man",21.9245129596024 +4,0,2060,5,"GWh/mth","res_com",53.3009190111538 +4,0,2060,6,"GWh/mth","agri",0.0131589301351644 +4,0,2060,6,"GWh/mth","ind_man",21.3655295160559 +4,0,2060,6,"GWh/mth","res_com",52.1623100941816 +4,0,2060,7,"GWh/mth","agri",0.0151265388393771 +4,0,2060,7,"GWh/mth","ind_man",21.2999031881819 +4,0,2060,7,"GWh/mth","res_com",52.0657955096923 +4,0,2060,8,"GWh/mth","agri",0.193664937919401 +4,0,2060,8,"GWh/mth","ind_man",21.9470862980655 +4,0,2060,8,"GWh/mth","res_com",53.3026617977185 +4,0,2060,9,"GWh/mth","agri",1.15883526216122 +4,0,2060,9,"GWh/mth","ind_man",22.6067083161112 +4,0,2060,9,"GWh/mth","res_com",54.6963949912912 +4,0,2060,10,"GWh/mth","agri",1.64672267475163 +4,0,2060,10,"GWh/mth","ind_man",23.2073727031632 +4,0,2060,10,"GWh/mth","res_com",56.0548352391659 +4,0,2060,11,"GWh/mth","agri",0.256576885033583 +4,0,2060,11,"GWh/mth","ind_man",23.7592425253409 +4,0,2060,11,"GWh/mth","res_com",56.7411074200847 +4,0,2060,12,"GWh/mth","agri",0.0136772236607689 +4,0,2060,12,"GWh/mth","ind_man",24.3514751696427 +4,0,2060,12,"GWh/mth","res_com",57.9155858747844 +4,1,2020,1,"GWh/mth","agri",0.024058424136116 +4,1,2020,1,"GWh/mth","ind_man",1.72442505884028 +4,1,2020,1,"GWh/mth","res_com",5.12919576954676 +4,1,2020,2,"GWh/mth","agri",0.0147948672906031 +4,1,2020,2,"GWh/mth","ind_man",1.67629069009975 +4,1,2020,2,"GWh/mth","res_com",4.99086221591327 +4,1,2020,3,"GWh/mth","agri",0.009863245954506 +4,1,2020,3,"GWh/mth","ind_man",1.63706275707147 +4,1,2020,3,"GWh/mth","res_com",4.88599133840033 +4,1,2020,4,"GWh/mth","agri",2.96557305032793e-05 +4,1,2020,4,"GWh/mth","ind_man",1.60061915727869 +4,1,2020,4,"GWh/mth","res_com",4.77518420475983 +4,1,2020,5,"GWh/mth","agri",2.8951614292078e-05 +4,1,2020,5,"GWh/mth","ind_man",1.55304597379433 +4,1,2020,5,"GWh/mth","res_com",4.65136505948177 +4,1,2020,6,"GWh/mth","agri",2.85750157134314e-05 +4,1,2020,6,"GWh/mth","ind_man",1.51344979266059 +4,1,2020,6,"GWh/mth","res_com",4.54718617171354 +4,1,2020,7,"GWh/mth","agri",2.90830480601506e-05 +4,1,2020,7,"GWh/mth","ind_man",1.50880108258582 +4,1,2020,7,"GWh/mth","res_com",4.53210557398311 +4,1,2020,8,"GWh/mth","agri",0.0001129916850796 +4,1,2020,8,"GWh/mth","ind_man",1.55464498000623 +4,1,2020,8,"GWh/mth","res_com",4.66490271340683 +4,1,2020,9,"GWh/mth","agri",0.000292326440393477 +4,1,2020,9,"GWh/mth","ind_man",1.60137000059116 +4,1,2020,9,"GWh/mth","res_com",4.78498829603296 +4,1,2020,10,"GWh/mth","agri",0.000345018179858809 +4,1,2020,10,"GWh/mth","ind_man",1.64391869527056 +4,1,2020,10,"GWh/mth","res_com",4.90086617873822 +4,1,2020,11,"GWh/mth","agri",0.00017287237073093 +4,1,2020,11,"GWh/mth","ind_man",1.68301097554018 +4,1,2020,11,"GWh/mth","res_com",5.00413626748235 +4,1,2020,12,"GWh/mth","agri",0.000143072787464256 +4,1,2020,12,"GWh/mth","ind_man",1.72496239883872 +4,1,2020,12,"GWh/mth","res_com",5.1237584332354 +4,1,2030,1,"GWh/mth","agri",0.0427778791465436 +4,1,2030,1,"GWh/mth","ind_man",2.16427152649873 +4,1,2030,1,"GWh/mth","res_com",6.54573998705023 +4,1,2030,2,"GWh/mth","agri",0.0263611463215191 +4,1,2030,2,"GWh/mth","ind_man",2.10385959779411 +4,1,2030,2,"GWh/mth","res_com",6.37066222262481 +4,1,2030,3,"GWh/mth","agri",0.0176230694986643 +4,1,2030,3,"GWh/mth","ind_man",2.0546258557644 +4,1,2030,3,"GWh/mth","res_com",6.24026703495887 +4,1,2030,4,"GWh/mth","agri",0.000167732245571974 +4,1,2030,4,"GWh/mth","ind_man",2.00888664259866 +4,1,2030,4,"GWh/mth","res_com",6.09818845818668 +4,1,2030,5,"GWh/mth","agri",0.000153174369812945 +4,1,2030,5,"GWh/mth","ind_man",1.94917903981694 +4,1,2030,5,"GWh/mth","res_com",5.9453310371282 +4,1,2030,6,"GWh/mth","agri",0.000146915853055108 +4,1,2030,6,"GWh/mth","ind_man",1.89948312119959 +4,1,2030,6,"GWh/mth","res_com",5.816334327263 +4,1,2030,7,"GWh/mth","agri",0.000149666620653771 +4,1,2030,7,"GWh/mth","ind_man",1.89364867174168 +4,1,2030,7,"GWh/mth","res_com",5.79674372594194 +4,1,2030,8,"GWh/mth","agri",0.000410974120936144 +4,1,2030,8,"GWh/mth","ind_man",1.95118590210264 +4,1,2030,8,"GWh/mth","res_com",5.96512084603641 +4,1,2030,9,"GWh/mth","agri",0.00142260447936944 +4,1,2030,9,"GWh/mth","ind_man",2.00982900236879 +4,1,2030,9,"GWh/mth","res_com",6.11289548570976 +4,1,2030,10,"GWh/mth","agri",0.0016791979143414 +4,1,2030,10,"GWh/mth","ind_man",2.06323052765528 +4,1,2030,10,"GWh/mth","res_com",6.25768920727845 +4,1,2030,11,"GWh/mth","agri",0.000397629288302467 +4,1,2030,11,"GWh/mth","ind_man",2.11229401618423 +4,1,2030,11,"GWh/mth","res_com",6.38559825024059 +4,1,2030,12,"GWh/mth","agri",0.000182989579340709 +4,1,2030,12,"GWh/mth","ind_man",2.16494592499039 +4,1,2030,12,"GWh/mth","res_com",6.53671640130961 +4,1,2040,1,"GWh/mth","agri",0.0662467161138433 +4,1,2040,1,"GWh/mth","ind_man",3.21351695018352 +4,1,2040,1,"GWh/mth","res_com",9.77982535048562 +4,1,2040,2,"GWh/mth","agri",0.0408464547064759 +4,1,2040,2,"GWh/mth","ind_man",3.12381713456027 +4,1,2040,2,"GWh/mth","res_com",9.5186518345016 +4,1,2040,3,"GWh/mth","agri",0.027326746621817 +4,1,2040,3,"GWh/mth","ind_man",3.05071472453625 +4,1,2040,3,"GWh/mth","res_com",9.32481534378977 +4,1,2040,4,"GWh/mth","agri",0.000368271954042471 +4,1,2040,4,"GWh/mth","ind_man",2.98280100160614 +4,1,2040,4,"GWh/mth","res_com",9.11234043495713 +4,1,2040,5,"GWh/mth","agri",0.000311902748314505 +4,1,2040,5,"GWh/mth","ind_man",2.89414697125705 +4,1,2040,5,"GWh/mth","res_com",8.88543342471694 +4,1,2040,6,"GWh/mth","agri",0.000287330452921016 +4,1,2040,6,"GWh/mth","ind_man",2.8203583200289 +4,1,2040,6,"GWh/mth","res_com",8.69383496871921 +4,1,2040,7,"GWh/mth","agri",0.000298418533651142 +4,1,2040,7,"GWh/mth","ind_man",2.81169531171483 +4,1,2040,7,"GWh/mth","res_com",8.66446180381331 +4,1,2040,8,"GWh/mth","agri",0.00134721935852899 +4,1,2040,8,"GWh/mth","ind_man",2.89712676648737 +4,1,2040,8,"GWh/mth","res_com",8.91573000953054 +4,1,2040,9,"GWh/mth","agri",0.00512833802682892 +4,1,2040,9,"GWh/mth","ind_man",2.98420022026118 +4,1,2040,9,"GWh/mth","res_com",9.13494394579043 +4,1,2040,10,"GWh/mth","agri",0.00587588810609653 +4,1,2040,10,"GWh/mth","ind_man",3.06349096755083 +4,1,2040,10,"GWh/mth","res_com",9.35038822300256 +4,1,2040,11,"GWh/mth","agri",0.00111341430195808 +4,1,2040,11,"GWh/mth","ind_man",3.13634058465871 +4,1,2040,11,"GWh/mth","res_com",9.54040547094207 +4,1,2040,12,"GWh/mth","agri",0.000338019911955583 +4,1,2040,12,"GWh/mth","ind_man",3.21451829911668 +4,1,2040,12,"GWh/mth","res_com",9.76575550285417 +4,1,2050,1,"GWh/mth","agri",0.102664883268815 +4,1,2050,1,"GWh/mth","ind_man",4.96628852924164 +4,1,2050,1,"GWh/mth","res_com",15.1414593950228 +4,1,2050,2,"GWh/mth","agri",0.0633060837775015 +4,1,2050,2,"GWh/mth","ind_man",4.8276631003702 +4,1,2050,2,"GWh/mth","res_com",14.7371171070941 +4,1,2050,3,"GWh/mth","agri",0.0423567135662631 +4,1,2050,3,"GWh/mth","ind_man",4.71468791897541 +4,1,2050,3,"GWh/mth","res_com",14.4370503237488 +4,1,2050,4,"GWh/mth","agri",0.000589460253388526 +4,1,2050,4,"GWh/mth","ind_man",4.60973152745968 +4,1,2050,4,"GWh/mth","res_com",14.1080818387669 +4,1,2050,5,"GWh/mth","agri",0.000497669069068117 +4,1,2050,5,"GWh/mth","ind_man",4.47272229401886 +4,1,2050,5,"GWh/mth","res_com",13.756832811962 +4,1,2050,6,"GWh/mth","agri",0.000457973144576055 +4,1,2050,6,"GWh/mth","ind_man",4.3586865699622 +4,1,2050,6,"GWh/mth","res_com",13.4602366935508 +4,1,2050,7,"GWh/mth","agri",0.000476188772120048 +4,1,2050,7,"GWh/mth","ind_man",4.34529843494194 +4,1,2050,7,"GWh/mth","res_com",13.4147562188926 +4,1,2050,8,"GWh/mth","agri",0.00218824710580258 +4,1,2050,8,"GWh/mth","ind_man",4.47732738031567 +4,1,2050,8,"GWh/mth","res_com",13.8037668052211 +4,1,2050,9,"GWh/mth","agri",0.00840825547210364 +4,1,2050,9,"GWh/mth","ind_man",4.61189393197292 +4,1,2050,9,"GWh/mth","res_com",14.143101378806 +4,1,2050,10,"GWh/mth","agri",0.00970239233703035 +4,1,2050,10,"GWh/mth","ind_man",4.73443279977541 +4,1,2050,10,"GWh/mth","res_com",14.4766257064848 +4,1,2050,11,"GWh/mth","agri",0.00177529619426817 +4,1,2050,11,"GWh/mth","ind_man",4.84701730560222 +4,1,2050,11,"GWh/mth","res_com",14.7707754156184 +4,1,2050,12,"GWh/mth","agri",0.00047366438006007 +4,1,2050,12,"GWh/mth","ind_man",4.96783605109935 +4,1,2050,12,"GWh/mth","res_com",15.1196535709027 +4,1,2060,1,"GWh/mth","agri",0.158130573858222 +4,1,2060,1,"GWh/mth","ind_man",7.70983616843338 +4,1,2060,1,"GWh/mth","res_com",23.5075874608508 +4,1,2060,2,"GWh/mth","agri",0.0974979306186375 +4,1,2060,2,"GWh/mth","ind_man",7.49462931142444 +4,1,2060,2,"GWh/mth","res_com",22.8796134155898 +4,1,2060,3,"GWh/mth","agri",0.0652252061827116 +4,1,2060,3,"GWh/mth","ind_man",7.31924277588098 +4,1,2060,3,"GWh/mth","res_com",22.4132169394981 +4,1,2060,4,"GWh/mth","agri",0.000955390380523299 +4,1,2060,4,"GWh/mth","ind_man",7.15630488400223 +4,1,2060,4,"GWh/mth","res_com",21.9025909713128 +4,1,2060,5,"GWh/mth","agri",0.000762512435844551 +4,1,2060,5,"GWh/mth","ind_man",6.94360706405648 +4,1,2060,5,"GWh/mth","res_com",21.3564668837006 +4,1,2060,6,"GWh/mth","agri",0.00067975731257418 +4,1,2060,6,"GWh/mth","ind_man",6.76657410581234 +4,1,2060,6,"GWh/mth","res_com",20.8953781352798 +4,1,2060,7,"GWh/mth","agri",0.000717069225047206 +4,1,2060,7,"GWh/mth","ind_man",6.74578990710957 +4,1,2060,7,"GWh/mth","res_com",20.8248243227663 +4,1,2060,8,"GWh/mth","agri",0.00422381884512089 +4,1,2060,8,"GWh/mth","ind_man",6.95075615752554 +4,1,2060,8,"GWh/mth","res_com",21.4289379651057 +4,1,2060,9,"GWh/mth","agri",0.0169116155327395 +4,1,2060,9,"GWh/mth","ind_man",7.15966187472656 +4,1,2060,9,"GWh/mth","res_com",21.9566181902809 +4,1,2060,10,"GWh/mth","agri",0.0194967149802614 +4,1,2060,10,"GWh/mth","ind_man",7.3498954041439 +4,1,2060,10,"GWh/mth","res_com",22.4749068656765 +4,1,2060,11,"GWh/mth","agri",0.00334736619628477 +4,1,2060,11,"GWh/mth","ind_man",7.52467544157385 +4,1,2060,11,"GWh/mth","res_com",22.9321737089638 +4,1,2060,12,"GWh/mth","agri",0.000688054423871147 +4,1,2060,12,"GWh/mth","ind_man",7.7122385942932 +4,1,2060,12,"GWh/mth","res_com",23.4740520756351 +5,0,2020,1,"GWh/mth","agri",0.872944022653954 +5,0,2020,1,"GWh/mth","ind_man",70.2684347448281 +5,0,2020,1,"GWh/mth","res_com",65.9382814717315 +5,0,2020,2,"GWh/mth","agri",0.585067404486095 +5,0,2020,2,"GWh/mth","ind_man",69.5063526089295 +5,0,2020,2,"GWh/mth","res_com",64.1270612959472 +5,0,2020,3,"GWh/mth","agri",0.390044936324063 +5,0,2020,3,"GWh/mth","ind_man",68.8852806436934 +5,0,2020,3,"GWh/mth","res_com",62.6478773064779 +5,0,2020,4,"GWh/mth","agri",3.49338176761945e-10 +5,0,2020,4,"GWh/mth","ind_man",68.3082913303063 +5,0,2020,4,"GWh/mth","res_com",61.2592485053554 +5,0,2020,5,"GWh/mth","agri",3.51174366769662e-05 +5,0,2020,5,"GWh/mth","ind_man",67.5550940986841 +5,0,2020,5,"GWh/mth","res_com",59.4786296095723 +5,0,2020,6,"GWh/mth","agri",0.00176135412940818 +5,0,2020,6,"GWh/mth","ind_man",66.9281918855378 +5,0,2020,6,"GWh/mth","res_com",57.9861045327821 +5,0,2020,7,"GWh/mth","agri",0.00254447527842163 +5,0,2020,7,"GWh/mth","ind_man",66.8545916910065 +5,0,2020,7,"GWh/mth","res_com",57.8141040696476 +5,0,2020,8,"GWh/mth","agri",0.00444391869270832 +5,0,2020,8,"GWh/mth","ind_man",67.5804101898922 +5,0,2020,8,"GWh/mth","res_com",59.5335156658805 +5,0,2020,9,"GWh/mth","agri",0.00874000142405564 +5,0,2020,9,"GWh/mth","ind_man",68.3201789750447 +5,0,2020,9,"GWh/mth","res_com",61.3014627265096 +5,0,2020,10,"GWh/mth","agri",0.0102091842527939 +5,0,2020,10,"GWh/mth","ind_man",68.993826536432 +5,0,2020,10,"GWh/mth","res_com",62.9192372668542 +5,0,2020,11,"GWh/mth","agri",0.00226181968041554 +5,0,2020,11,"GWh/mth","ind_man",69.6127507941824 +5,0,2020,11,"GWh/mth","res_com",64.3443398599954 +5,0,2020,12,"GWh/mth","agri",0.000468857890228051 +5,0,2020,12,"GWh/mth","ind_man",70.2769421216656 +5,0,2020,12,"GWh/mth","res_com",65.923639891604 +5,0,2030,1,"GWh/mth","agri",1.26488898701152 +5,0,2030,1,"GWh/mth","ind_man",68.1698002172218 +5,0,2030,1,"GWh/mth","res_com",46.7164531290291 +5,0,2030,2,"GWh/mth","agri",0.846412792646521 +5,0,2030,2,"GWh/mth","ind_man",67.7255610922268 +5,0,2030,2,"GWh/mth","res_com",45.4560530574504 +5,0,2030,3,"GWh/mth","agri",0.564275195097681 +5,0,2030,3,"GWh/mth","ind_man",67.3635207642902 +5,0,2030,3,"GWh/mth","res_com",44.4245317669103 +5,0,2030,4,"GWh/mth","agri",8.34142655985111e-11 +5,0,2030,4,"GWh/mth","ind_man",67.027177454775 +5,0,2030,4,"GWh/mth","res_com",43.4446387582173 +5,0,2030,5,"GWh/mth","agri",5.5012411370175e-05 +5,0,2030,5,"GWh/mth","ind_man",66.5881175905388 +5,0,2030,5,"GWh/mth","res_com",42.2131704940688 +5,0,2030,6,"GWh/mth","agri",0.0029466223271035 +5,0,2030,6,"GWh/mth","ind_man",66.2226786470093 +5,0,2030,6,"GWh/mth","res_com",41.1728485564381 +5,0,2030,7,"GWh/mth","agri",0.00426452517999622 +5,0,2030,7,"GWh/mth","ind_man",66.1797750222189 +5,0,2030,7,"GWh/mth","res_com",41.0554008922477 +5,0,2030,8,"GWh/mth","agri",0.00747028996805156 +5,0,2030,8,"GWh/mth","ind_man",66.6028750525981 +5,0,2030,8,"GWh/mth","res_com",42.2477561912409 +5,0,2030,9,"GWh/mth","agri",0.014756074838456 +5,0,2030,9,"GWh/mth","ind_man",67.0341070974579 +5,0,2030,9,"GWh/mth","res_com",43.4850019683027 +5,0,2030,10,"GWh/mth","agri",0.0173264177455155 +5,0,2030,10,"GWh/mth","ind_man",67.4267952200746 +5,0,2030,10,"GWh/mth","res_com",44.6237059458643 +5,0,2030,11,"GWh/mth","agri",0.00364647785260966 +5,0,2030,11,"GWh/mth","ind_man",67.7875835888729 +5,0,2030,11,"GWh/mth","res_com",45.5795753396922 +5,0,2030,12,"GWh/mth","agri",0.000606683625122099 +5,0,2030,12,"GWh/mth","ind_man",68.1747594066113 +5,0,2030,12,"GWh/mth","res_com",46.6791370965144 +5,0,2040,1,"GWh/mth","agri",1.94659946733779 +5,0,2040,1,"GWh/mth","ind_man",90.3384223846393 +5,0,2040,1,"GWh/mth","res_com",75.1242159715259 +5,0,2040,2,"GWh/mth","agri",1.30185589793266 +5,0,2040,2,"GWh/mth","ind_man",89.623780141517 +5,0,2040,2,"GWh/mth","res_com",73.0943119208807 +5,0,2040,3,"GWh/mth","agri",0.867903931955104 +5,0,2040,3,"GWh/mth","ind_man",89.0413701341583 +5,0,2040,3,"GWh/mth","res_com",71.4333860019491 +5,0,2040,4,"GWh/mth","agri",1.05630807849318e-09 +5,0,2040,4,"GWh/mth","ind_man",88.5002986173851 +5,0,2040,4,"GWh/mth","res_com",69.8571832040293 +5,0,2040,5,"GWh/mth","agri",0.000153757586271088 +5,0,2040,5,"GWh/mth","ind_man",87.7939881899857 +5,0,2040,5,"GWh/mth","res_com",67.8728099583734 +5,0,2040,6,"GWh/mth","agri",0.00797364781324106 +5,0,2040,6,"GWh/mth","ind_man",87.20611086979 +5,0,2040,6,"GWh/mth","res_com",66.1976671605645 +5,0,2040,7,"GWh/mth","agri",0.0115447898868132 +5,0,2040,7,"GWh/mth","ind_man",87.1370923143923 +5,0,2040,7,"GWh/mth","res_com",66.008192577309 +5,0,2040,8,"GWh/mth","agri",0.0203070062458939 +5,0,2040,8,"GWh/mth","ind_man",87.8177283452207 +5,0,2040,8,"GWh/mth","res_com",67.9291980723562 +5,0,2040,9,"GWh/mth","agri",0.0403295741838449 +5,0,2040,9,"GWh/mth","ind_man",88.5114462518736 +5,0,2040,9,"GWh/mth","res_com",69.920621824712 +5,0,2040,10,"GWh/mth","agri",0.0473498107916987 +5,0,2040,10,"GWh/mth","ind_man",89.1431590052188 +5,0,2040,10,"GWh/mth","res_com",71.7526838762818 +5,0,2040,11,"GWh/mth","agri",0.00926584718627648 +5,0,2040,11,"GWh/mth","ind_man",89.7235550006714 +5,0,2040,11,"GWh/mth","res_com",73.2972551976453 +5,0,2040,12,"GWh/mth","agri",0.000967112045404201 +5,0,2040,12,"GWh/mth","ind_man",90.3464001741449 +5,0,2040,12,"GWh/mth","res_com",75.0680437938023 +5,0,2050,1,"GWh/mth","agri",3.03254688671479 +5,0,2050,1,"GWh/mth","ind_man",120.883534466938 +5,0,2050,1,"GWh/mth","res_com",119.61516040969 +5,0,2050,2,"GWh/mth","agri",2.02925830295999 +5,0,2050,2,"GWh/mth","ind_man",119.751113114403 +5,0,2050,2,"GWh/mth","res_com",116.380861513981 +5,0,2050,3,"GWh/mth","agri",1.35283886863999 +5,0,2050,3,"GWh/mth","ind_man",118.82822682464 +5,0,2050,3,"GWh/mth","res_com",113.734617142499 +5,0,2050,4,"GWh/mth","agri",1.70651071530106e-09 +5,0,2050,4,"GWh/mth","ind_man",117.970845463911 +5,0,2050,4,"GWh/mth","res_com",111.224443459311 +5,0,2050,5,"GWh/mth","agri",0.000239090949232008 +5,0,2050,5,"GWh/mth","ind_man",116.851626697874 +5,0,2050,5,"GWh/mth","res_com",108.061985655371 +5,0,2050,6,"GWh/mth","agri",0.0126855315645261 +5,0,2050,6,"GWh/mth","ind_man",115.920076909896 +5,0,2050,6,"GWh/mth","res_com",105.393016080714 +5,0,2050,7,"GWh/mth","agri",0.0183632927885265 +5,0,2050,7,"GWh/mth","ind_man",115.810710179052 +5,0,2050,7,"GWh/mth","res_com",105.090913439012 +5,0,2050,8,"GWh/mth","agri",0.0323013852528759 +5,0,2050,8,"GWh/mth","ind_man",116.889245323081 +5,0,2050,8,"GWh/mth","res_com",108.151963836504 +5,0,2050,9,"GWh/mth","agri",0.064348189868669 +5,0,2050,9,"GWh/mth","ind_man",117.988509993886 +5,0,2050,9,"GWh/mth","res_com",111.324528461595 +5,0,2050,10,"GWh/mth","agri",0.0757608689883477 +5,0,2050,10,"GWh/mth","ind_man",118.989521363479 +5,0,2050,10,"GWh/mth","res_com",114.242402474526 +5,0,2050,11,"GWh/mth","agri",0.0146777914744613 +5,0,2050,11,"GWh/mth","ind_man",119.909216252078 +5,0,2050,11,"GWh/mth","res_com",116.7066739772 +5,0,2050,12,"GWh/mth","agri",0.0014586076612975 +5,0,2050,12,"GWh/mth","ind_man",120.896176063862 +5,0,2050,12,"GWh/mth","res_com",119.528068309012 +5,0,2060,1,"GWh/mth","agri",4.67167027109336 +5,0,2060,1,"GWh/mth","ind_man",162.75380762951 +5,0,2060,1,"GWh/mth","res_com",187.790018742939 +5,0,2060,2,"GWh/mth","agri",3.12609368970958 +5,0,2060,2,"GWh/mth","ind_man",160.984482437825 +5,0,2060,2,"GWh/mth","res_com",182.70924767842 +5,0,2060,3,"GWh/mth","agri",2.08406245980638 +5,0,2060,3,"GWh/mth","ind_man",159.54254039224 +5,0,2060,3,"GWh/mth","res_com",178.552569441039 +5,0,2060,4,"GWh/mth","agri",6.21981856038307e-09 +5,0,2060,4,"GWh/mth","ind_man",158.202944987205 +5,0,2060,4,"GWh/mth","res_com",174.611195673506 +5,0,2060,5,"GWh/mth","agri",0.000387193138244688 +5,0,2060,5,"GWh/mth","ind_man",156.454247867248 +5,0,2060,5,"GWh/mth","res_com",169.642242613052 +5,0,2060,6,"GWh/mth","agri",0.019963001659685 +5,0,2060,6,"GWh/mth","ind_man",154.998769742 +5,0,2060,6,"GWh/mth","res_com",165.449803927946 +5,0,2060,7,"GWh/mth","agri",0.0288849388508265 +5,0,2060,7,"GWh/mth","ind_man",154.827892257589 +5,0,2060,7,"GWh/mth","res_com",164.974918074469 +5,0,2060,8,"GWh/mth","agri",0.0507858750966197 +5,0,2060,8,"GWh/mth","ind_man",156.513024206201 +5,0,2060,8,"GWh/mth","res_com",169.784120424926 +5,0,2060,9,"GWh/mth","agri",0.101294393598603 +5,0,2060,9,"GWh/mth","ind_man",158.230544517905 +5,0,2060,9,"GWh/mth","res_com",174.766911036322 +5,0,2060,10,"GWh/mth","agri",0.119428561152153 +5,0,2060,10,"GWh/mth","ind_man",159.794551262761 +5,0,2060,10,"GWh/mth","res_com",179.348819222812 +5,0,2060,11,"GWh/mth","agri",0.023125278317923 +5,0,2060,11,"GWh/mth","ind_man",161.231506978422 +5,0,2060,11,"GWh/mth","res_com",183.224889318838 +5,0,2060,12,"GWh/mth","agri",0.00224745701654803 +5,0,2060,12,"GWh/mth","ind_man",162.77355919623 +5,0,2060,12,"GWh/mth","res_com",187.656949801207 +5,1,2020,1,"GWh/mth","agri",0.153880698585965 +5,1,2020,1,"GWh/mth","ind_man",33.8381595964847 +5,1,2020,1,"GWh/mth","res_com",69.3033410760666 +5,1,2020,2,"GWh/mth","agri",0.103436817982865 +5,1,2020,2,"GWh/mth","ind_man",33.2670769491064 +5,1,2020,2,"GWh/mth","res_com",67.4063486561341 +5,1,2020,3,"GWh/mth","agri",0.0689578786552433 +5,1,2020,3,"GWh/mth","ind_man",32.8016633074374 +5,1,2020,3,"GWh/mth","res_com",65.9183533300159 +5,1,2020,4,"GWh/mth","agri",3.66165104847391e-12 +5,1,2020,4,"GWh/mth","ind_man",32.3692839495227 +5,1,2020,4,"GWh/mth","res_com",64.4358048515435 +5,1,2020,5,"GWh/mth","agri",4.77783253398586e-06 +5,1,2020,5,"GWh/mth","ind_man",31.8048593963536 +5,1,2020,5,"GWh/mth","res_com",62.6572876766236 +5,1,2020,6,"GWh/mth","agri",0.000118982379272576 +5,1,2020,6,"GWh/mth","ind_man",31.3350767329551 +5,1,2020,6,"GWh/mth","res_com",61.1677217333158 +5,1,2020,7,"GWh/mth","agri",0.000185321887274152 +5,1,2020,7,"GWh/mth","ind_man",31.2799228434193 +5,1,2020,7,"GWh/mth","res_com",60.9719542885802 +5,1,2020,8,"GWh/mth","agri",0.000388995154681195 +5,1,2020,8,"GWh/mth","ind_man",31.8238305540639 +5,1,2020,8,"GWh/mth","res_com",62.7857092558471 +5,1,2020,9,"GWh/mth","agri",0.000854278529399403 +5,1,2020,9,"GWh/mth","ind_man",32.3781922119114 +5,1,2020,9,"GWh/mth","res_com",64.5231290695243 +5,1,2020,10,"GWh/mth","agri",0.00101427954613672 +5,1,2020,10,"GWh/mth","ind_man",32.8830045079028 +5,1,2020,10,"GWh/mth","res_com",66.1536403961173 +5,1,2020,11,"GWh/mth","agri",0.000300781381197317 +5,1,2020,11,"GWh/mth","ind_man",33.346808718752 +5,1,2020,11,"GWh/mth","res_com",67.6236757701822 +5,1,2020,12,"GWh/mth","agri",0.000120199048383718 +5,1,2020,12,"GWh/mth","ind_man",33.8445347823836 +5,1,2020,12,"GWh/mth","res_com",69.2700675515173 +5,1,2030,1,"GWh/mth","agri",0.341188137973533 +5,1,2030,1,"GWh/mth","ind_man",45.2074306569065 +5,1,2030,1,"GWh/mth","res_com",92.7270113926081 +5,1,2030,2,"GWh/mth","agri",0.230490459962888 +5,1,2030,2,"GWh/mth","ind_man",44.445858007773 +5,1,2030,2,"GWh/mth","res_com",90.1996092053837 +5,1,2030,3,"GWh/mth","agri",0.153660306641925 +5,1,2030,3,"GWh/mth","ind_man",43.8252012575532 +5,1,2030,3,"GWh/mth","res_com",88.2300541284255 +5,1,2030,4,"GWh/mth","agri",2.98524522100227e-11 +5,1,2030,4,"GWh/mth","ind_man",43.2485976879133 +5,1,2030,4,"GWh/mth","res_com",86.2426286864505 +5,1,2030,5,"GWh/mth","agri",7.00643493704671e-06 +5,1,2030,5,"GWh/mth","ind_man",42.4959040030913 +5,1,2030,5,"GWh/mth","res_com",83.8960075717187 +5,1,2030,6,"GWh/mth","agri",0.000413168586838569 +5,1,2030,6,"GWh/mth","ind_man",41.8694209027487 +5,1,2030,6,"GWh/mth","res_com",81.9273242882546 +5,1,2030,7,"GWh/mth","agri",0.000615026436350364 +5,1,2030,7,"GWh/mth","ind_man",41.7958699133138 +5,1,2030,7,"GWh/mth","res_com",81.663881028324 +5,1,2030,8,"GWh/mth","agri",0.00115399698499721 +5,1,2030,8,"GWh/mth","ind_man",42.5212031693344 +5,1,2030,8,"GWh/mth","res_com",84.0812895665692 +5,1,2030,9,"GWh/mth","agri",0.00238800159426313 +5,1,2030,9,"GWh/mth","ind_man",43.2604773852174 +5,1,2030,9,"GWh/mth","res_com",86.3734896709894 +5,1,2030,10,"GWh/mth","agri",0.00278877290899284 +5,1,2030,10,"GWh/mth","ind_man",43.9336745823977 +5,1,2030,10,"GWh/mth","res_com",88.5367199346061 +5,1,2030,11,"GWh/mth","agri",0.000732554169094086 +5,1,2030,11,"GWh/mth","ind_man",44.5521850609725 +5,1,2030,11,"GWh/mth","res_com",90.4749166398834 +5,1,2030,12,"GWh/mth","agri",0.000260432916249111 +5,1,2030,12,"GWh/mth","ind_man",45.2159323461735 +5,1,2030,12,"GWh/mth","res_com",92.6669186150644 +5,1,2040,1,"GWh/mth","agri",0.538351664523776 +5,1,2040,1,"GWh/mth","ind_man",65.4025584620897 +5,1,2040,1,"GWh/mth","res_com",146.473205035053 +5,1,2040,2,"GWh/mth","agri",0.364347994051704 +5,1,2040,2,"GWh/mth","ind_man",64.1976048858336 +5,1,2040,2,"GWh/mth","res_com",142.479316820257 +5,1,2040,3,"GWh/mth","agri",0.242898662701136 +5,1,2040,3,"GWh/mth","ind_man",63.2156072108177 +5,1,2040,3,"GWh/mth","res_com",139.363891006807 +5,1,2040,4,"GWh/mth","agri",1.02133779692312e-10 +5,1,2040,4,"GWh/mth","ind_man",62.3033100923352 +5,1,2040,4,"GWh/mth","res_com",136.225415377737 +5,1,2040,5,"GWh/mth","agri",2.06892067472973e-05 +5,1,2040,5,"GWh/mth","ind_man",61.1124047356584 +5,1,2040,5,"GWh/mth","res_com",132.5123709974 +5,1,2040,6,"GWh/mth","agri",0.00119203477417984 +5,1,2040,6,"GWh/mth","ind_man",60.1211886605005 +5,1,2040,6,"GWh/mth","res_com",129.39764556668 +5,1,2040,7,"GWh/mth","agri",0.00177437311136929 +5,1,2040,7,"GWh/mth","ind_man",60.0048169291134 +5,1,2040,7,"GWh/mth","res_com",128.982033848278 +5,1,2040,8,"GWh/mth","agri",0.00333979978406411 +5,1,2040,8,"GWh/mth","ind_man",61.1524328549399 +5,1,2040,8,"GWh/mth","res_com",132.80158877106 +5,1,2040,9,"GWh/mth","agri",0.00691417657815724 +5,1,2040,9,"GWh/mth","ind_man",62.3221060453776 +5,1,2040,9,"GWh/mth","res_com",136.429444200813 +5,1,2040,10,"GWh/mth","agri",0.00811142907079416 +5,1,2040,10,"GWh/mth","ind_man",63.3872327554699 +5,1,2040,10,"GWh/mth","res_com",139.85048817655 +5,1,2040,11,"GWh/mth","agri",0.00177551551634568 +5,1,2040,11,"GWh/mth","ind_man",64.3658346182844 +5,1,2040,11,"GWh/mth","res_com",142.916240357899 +5,1,2040,12,"GWh/mth","agri",0.000413186620512982 +5,1,2040,12,"GWh/mth","ind_man",65.4160097603973 +5,1,2040,12,"GWh/mth","res_com",146.380486837717 +5,1,2050,1,"GWh/mth","agri",0.817991963105162 +5,1,2050,1,"GWh/mth","ind_man",94.8060050656914 +5,1,2050,1,"GWh/mth","res_com",227.918477123741 +5,1,2050,2,"GWh/mth","agri",0.552596420678259 +5,1,2050,2,"GWh/mth","ind_man",92.9304094410567 +5,1,2050,2,"GWh/mth","res_com",221.702562193395 +5,1,2050,3,"GWh/mth","agri",0.368397613785506 +5,1,2050,3,"GWh/mth","ind_man",91.401860475391 +5,1,2050,3,"GWh/mth","res_com",216.853035708169 +5,1,2050,4,"GWh/mth","agri",3.79944666054244e-10 +5,1,2050,4,"GWh/mth","ind_man",89.9818053649616 +5,1,2050,4,"GWh/mth","res_com",211.969719099904 +5,1,2050,5,"GWh/mth","agri",3.18849267852193e-05 +5,1,2050,5,"GWh/mth","ind_man",88.1280767895609 +5,1,2050,5,"GWh/mth","res_com",206.18904808402 +5,1,2050,6,"GWh/mth","agri",0.00183782022840043 +5,1,2050,6,"GWh/mth","ind_man",86.585178730857 +5,1,2050,6,"GWh/mth","res_com",201.340414285697 +5,1,2050,7,"GWh/mth","agri",0.0027398272443617 +5,1,2050,7,"GWh/mth","ind_man",86.4040378848345 +5,1,2050,7,"GWh/mth","res_com",200.693698095447 +5,1,2050,8,"GWh/mth","agri",0.00517410264236126 +5,1,2050,8,"GWh/mth","ind_man",88.190383393621 +5,1,2050,8,"GWh/mth","res_com",206.638457523571 +5,1,2050,9,"GWh/mth","agri",0.0107550327817067 +5,1,2050,9,"GWh/mth","ind_man",90.0110625977561 +5,1,2050,9,"GWh/mth","res_com",212.285897274142 +5,1,2050,10,"GWh/mth","agri",0.0126424685823841 +5,1,2050,10,"GWh/mth","ind_man",91.6690077970542 +5,1,2050,10,"GWh/mth","res_com",217.610554293663 +5,1,2050,11,"GWh/mth","agri",0.00275322438704841 +5,1,2050,11,"GWh/mth","ind_man",93.1922709404005 +5,1,2050,11,"GWh/mth","res_com",222.384458591232 +5,1,2050,12,"GWh/mth","agri",0.000625060001047605 +5,1,2050,12,"GWh/mth","ind_man",94.8269429646683 +5,1,2050,12,"GWh/mth","res_com",227.776153103713 +5,1,2060,1,"GWh/mth","agri",1.2601251946912 +5,1,2060,1,"GWh/mth","ind_man",138.406975973299 +5,1,2060,1,"GWh/mth","res_com",353.337907367877 +5,1,2060,2,"GWh/mth","agri",0.85128057927304 +5,1,2060,2,"GWh/mth","ind_man",135.497355048707 +5,1,2060,2,"GWh/mth","res_com",343.700059464374 +5,1,2060,3,"GWh/mth","agri",0.567520386182026 +5,1,2060,3,"GWh/mth","ind_man",133.12610935142 +5,1,2060,3,"GWh/mth","res_com",336.178649993405 +5,1,2060,4,"GWh/mth","agri",1.38903720998188e-09 +5,1,2060,4,"GWh/mth","ind_man",130.923170717361 +5,1,2060,4,"GWh/mth","res_com",328.608782464526 +5,1,2060,5,"GWh/mth","agri",5.0656700053181e-05 +5,1,2060,5,"GWh/mth","ind_man",128.047472256212 +5,1,2060,5,"GWh/mth","res_com",319.64215714787 +5,1,2060,6,"GWh/mth","agri",0.00288817628754973 +5,1,2060,6,"GWh/mth","ind_man",125.653966738736 +5,1,2060,6,"GWh/mth","res_com",312.121647276087 +5,1,2060,7,"GWh/mth","agri",0.0042995843274806 +5,1,2060,7,"GWh/mth","ind_man",125.372962033371 +5,1,2060,7,"GWh/mth","res_com",311.119370371798 +5,1,2060,8,"GWh/mth","agri",0.00810620222353022 +5,1,2060,8,"GWh/mth","ind_man",128.144128804422 +5,1,2060,8,"GWh/mth","res_com",320.336542225793 +5,1,2060,9,"GWh/mth","agri",0.0168763399090291 +5,1,2060,9,"GWh/mth","ind_man",130.968557609726 +5,1,2060,9,"GWh/mth","res_com",329.096827974685 +5,1,2060,10,"GWh/mth","agri",0.0198940621345667 +5,1,2060,10,"GWh/mth","ind_man",133.540536334961 +5,1,2060,10,"GWh/mth","res_com",337.354469795798 +5,1,2060,11,"GWh/mth","agri",0.00435486720397347 +5,1,2060,11,"GWh/mth","ind_man",135.903582109502 +5,1,2060,11,"GWh/mth","res_com",344.759207297643 +5,1,2060,12,"GWh/mth","agri",0.000962923593325813 +5,1,2060,12,"GWh/mth","ind_man",138.439457041275 +5,1,2060,12,"GWh/mth","res_com",353.119349700358 +6,0,2020,1,"GWh/mth","agri",0.189166361290728 +6,0,2020,1,"GWh/mth","ind_man",0 +6,0,2020,1,"GWh/mth","res_com",0.281251564161323 +6,0,2020,2,"GWh/mth","agri",0.110982529090967 +6,0,2020,2,"GWh/mth","ind_man",0 +6,0,2020,2,"GWh/mth","res_com",0.299286084874909 +6,0,2020,3,"GWh/mth","agri",0.0739883527273114 +6,0,2020,3,"GWh/mth","ind_man",0 +6,0,2020,3,"GWh/mth","res_com",0.31037232265829 +6,0,2020,4,"GWh/mth","agri",0.000243437552850524 +6,0,2020,4,"GWh/mth","ind_man",0 +6,0,2020,4,"GWh/mth","res_com",0.311107942082348 +6,0,2020,5,"GWh/mth","agri",3.98549788819229e-05 +6,0,2020,5,"GWh/mth","ind_man",0 +6,0,2020,5,"GWh/mth","res_com",0.334164769787217 +6,0,2020,6,"GWh/mth","agri",5.27958286148327e-05 +6,0,2020,6,"GWh/mth","ind_man",0 +6,0,2020,6,"GWh/mth","res_com",0.345912820594271 +6,0,2020,7,"GWh/mth","agri",0.000629686727541408 +6,0,2020,7,"GWh/mth","ind_man",0 +6,0,2020,7,"GWh/mth","res_com",0.350514046262889 +6,0,2020,8,"GWh/mth","agri",0.0131842911913954 +6,0,2020,8,"GWh/mth","ind_man",0 +6,0,2020,8,"GWh/mth","res_com",0.330207445511604 +6,0,2020,9,"GWh/mth","agri",0.0535910434291521 +6,0,2020,9,"GWh/mth","ind_man",0 +6,0,2020,9,"GWh/mth","res_com",0.320532753703571 +6,0,2020,10,"GWh/mth","agri",0.0638953229534017 +6,0,2020,10,"GWh/mth","ind_man",0 +6,0,2020,10,"GWh/mth","res_com",0.320145826513829 +6,0,2020,11,"GWh/mth","agri",0.0271334666884996 +6,0,2020,11,"GWh/mth","ind_man",0 +6,0,2020,11,"GWh/mth","res_com",0.269734158346478 +6,0,2020,12,"GWh/mth","agri",0.0187638727507557 +6,0,2020,12,"GWh/mth","ind_man",0 +6,0,2020,12,"GWh/mth","res_com",0.254858388117912 +6,0,2030,1,"GWh/mth","agri",0.302736923566405 +6,0,2030,1,"GWh/mth","ind_man",0.615101640736274 +6,0,2030,1,"GWh/mth","res_com",1.89915992059937 +6,0,2030,2,"GWh/mth","agri",0.180448024748233 +6,0,2030,2,"GWh/mth","ind_man",0.597932133116141 +6,0,2030,2,"GWh/mth","res_com",1.88663565015812 +6,0,2030,3,"GWh/mth","agri",0.122584692101173 +6,0,2030,3,"GWh/mth","ind_man",0.583939547097578 +6,0,2030,3,"GWh/mth","res_com",1.87078026480689 +6,0,2030,4,"GWh/mth","agri",0.00751673222044783 +6,0,2030,4,"GWh/mth","ind_man",0.570940131488323 +6,0,2030,4,"GWh/mth","res_com",1.84109143758153 +6,0,2030,5,"GWh/mth","agri",0.0068653868635257 +6,0,2030,5,"GWh/mth","ind_man",0.553970798395964 +6,0,2030,5,"GWh/mth","res_com",1.83689754621215 +6,0,2030,6,"GWh/mth","agri",0.00686619164110061 +6,0,2030,6,"GWh/mth","ind_man",0.539846858444268 +6,0,2030,6,"GWh/mth","res_com",1.82176569573715 +6,0,2030,7,"GWh/mth","agri",0.00694811279241876 +6,0,2030,7,"GWh/mth","ind_man",0.538188665657267 +6,0,2030,7,"GWh/mth","res_com",1.82502871810675 +6,0,2030,8,"GWh/mth","agri",0.0220993222631956 +6,0,2030,8,"GWh/mth","ind_man",0.554541163190563 +6,0,2030,8,"GWh/mth","res_com",1.83206093236279 +6,0,2030,9,"GWh/mth","agri",0.127779964652787 +6,0,2030,9,"GWh/mth","ind_man",0.571207956959236 +6,0,2030,9,"GWh/mth","res_com",1.85646835544686 +6,0,2030,10,"GWh/mth","agri",0.157968552694847 +6,0,2030,10,"GWh/mth","ind_man",0.586385057161021 +6,0,2030,10,"GWh/mth","res_com",1.89186885289809 +6,0,2030,11,"GWh/mth","agri",0.0351382396567536 +6,0,2030,11,"GWh/mth","ind_man",0.600329255901751 +6,0,2030,11,"GWh/mth","res_com",1.84609975193973 +6,0,2030,12,"GWh/mth","agri",0.00750710388927378 +6,0,2030,12,"GWh/mth","ind_man",0.615293309671364 +6,0,2030,12,"GWh/mth","res_com",1.85833253464868 +6,0,2040,1,"GWh/mth","agri",0.471721557001698 +6,0,2040,1,"GWh/mth","ind_man",0.722295330227982 +6,0,2040,1,"GWh/mth","res_com",2.39490130724792 +6,0,2040,2,"GWh/mth","agri",0.282513994796273 +6,0,2040,2,"GWh/mth","ind_man",0.702133694564824 +6,0,2040,2,"GWh/mth","res_com",2.3906947593317 +6,0,2040,3,"GWh/mth","agri",0.192986815984152 +6,0,2040,3,"GWh/mth","ind_man",0.685702622251435 +6,0,2040,3,"GWh/mth","res_com",2.3785270770194 +6,0,2040,4,"GWh/mth","agri",0.015893799006561 +6,0,2040,4,"GWh/mth","ind_man",0.670437800036007 +6,0,2040,4,"GWh/mth","res_com",2.34407846726499 +6,0,2040,5,"GWh/mth","agri",0.013954936334666 +6,0,2040,5,"GWh/mth","ind_man",0.650511223291678 +6,0,2040,5,"GWh/mth","res_com",2.35258395309121 +6,0,2040,6,"GWh/mth","agri",0.0139566063889125 +6,0,2040,6,"GWh/mth","ind_man",0.633925906010913 +6,0,2040,6,"GWh/mth","res_com",2.3416518030691 +6,0,2040,7,"GWh/mth","agri",0.0141749219681574 +6,0,2040,7,"GWh/mth","ind_man",0.631978740164899 +6,0,2040,7,"GWh/mth","res_com",2.34816561262979 +6,0,2040,8,"GWh/mth","agri",0.0505825349249639 +6,0,2040,8,"GWh/mth","ind_man",0.651180985490933 +6,0,2040,8,"GWh/mth","res_com",2.34459667538525 +6,0,2040,9,"GWh/mth","agri",0.299905710637615 +6,0,2040,9,"GWh/mth","ind_man",0.670752299419759 +6,0,2040,9,"GWh/mth","res_com",2.36763325397072 +6,0,2040,10,"GWh/mth","agri",0.37099271801268 +6,0,2040,10,"GWh/mth","ind_man",0.688574311061656 +6,0,2040,10,"GWh/mth","res_com",2.4089948278802 +6,0,2040,11,"GWh/mth","agri",0.0797874499077059 +6,0,2040,11,"GWh/mth","ind_man",0.70494856365208 +6,0,2040,11,"GWh/mth","res_com",2.32585876314958 +6,0,2040,12,"GWh/mth","agri",0.014506168545231 +6,0,2040,12,"GWh/mth","ind_man",0.722520401285506 +6,0,2040,12,"GWh/mth","res_com",2.3315630871175 +6,0,2050,1,"GWh/mth","agri",0.731245237559574 +6,0,2050,1,"GWh/mth","ind_man",0.899005724090521 +6,0,2050,1,"GWh/mth","res_com",3.1816428055125 +6,0,2050,2,"GWh/mth","agri",0.438059967390526 +6,0,2050,2,"GWh/mth","ind_man",0.873911520778303 +6,0,2050,2,"GWh/mth","res_com",3.18496475873214 +6,0,2050,3,"GWh/mth","agri",0.299333746294741 +6,0,2050,3,"GWh/mth","ind_man",0.853460567484698 +6,0,2050,3,"GWh/mth","res_com",3.17533566934224 +6,0,2050,4,"GWh/mth","agri",0.0248294282765847 +6,0,2050,4,"GWh/mth","ind_man",0.834461188733956 +6,0,2050,4,"GWh/mth","res_com",3.13166406759267 +6,0,2050,5,"GWh/mth","agri",0.0219142023184443 +6,0,2050,5,"GWh/mth","ind_man",0.809659551778852 +6,0,2050,5,"GWh/mth","res_com",3.15428555859648 +6,0,2050,6,"GWh/mth","agri",0.0219163147757967 +6,0,2050,6,"GWh/mth","ind_man",0.789016617306939 +6,0,2050,6,"GWh/mth","res_com",3.14665234925854 +6,0,2050,7,"GWh/mth","agri",0.0222524960466755 +6,0,2050,7,"GWh/mth","ind_man",0.786593075068658 +6,0,2050,7,"GWh/mth","res_com",3.15701555356901 +6,0,2050,8,"GWh/mth","agri",0.0804501064642588 +6,0,2050,8,"GWh/mth","ind_man",0.810493172080287 +6,0,2050,8,"GWh/mth","res_com",3.14282769012971 +6,0,2050,9,"GWh/mth","agri",0.478485668379963 +6,0,2050,9,"GWh/mth","ind_man",0.834852630758268 +6,0,2050,9,"GWh/mth","res_com",3.16649218138583 +6,0,2050,10,"GWh/mth","agri",0.591738569725252 +6,0,2050,10,"GWh/mth","ind_man",0.857034818307253 +6,0,2050,10,"GWh/mth","res_com",3.21835303402263 +6,0,2050,11,"GWh/mth","agri",0.126440444557523 +6,0,2050,11,"GWh/mth","ind_man",0.877415050866488 +6,0,2050,11,"GWh/mth","res_com",3.08826517935408 +6,0,2050,12,"GWh/mth","agri",0.022161190121443 +6,0,2050,12,"GWh/mth","ind_man",0.899285859044429 +6,0,2050,12,"GWh/mth","res_com",3.08830470806971 +6,0,2060,1,"GWh/mth","agri",1.12639031837973 +6,0,2060,1,"GWh/mth","ind_man",1.20655869821761 +6,0,2060,1,"GWh/mth","res_com",4.52409856054759 +6,0,2060,2,"GWh/mth","agri",0.674735336037478 +6,0,2060,2,"GWh/mth","ind_man",1.17287968097683 +6,0,2060,2,"GWh/mth","res_com",4.54735045807452 +6,0,2060,3,"GWh/mth","agri",0.461026138084603 +6,0,2060,3,"GWh/mth","ind_man",1.14543238567935 +6,0,2060,3,"GWh/mth","res_com",4.5454380815457 +6,0,2060,4,"GWh/mth","agri",0.0403659295576104 +6,0,2060,4,"GWh/mth","ind_man",1.11993325360694 +6,0,2060,4,"GWh/mth","res_com",4.4884133333805 +6,0,2060,5,"GWh/mth","agri",0.0336821444510196 +6,0,2060,5,"GWh/mth","ind_man",1.08664689068807 +6,0,2060,5,"GWh/mth","res_com",4.54162180882822 +6,0,2060,6,"GWh/mth","agri",0.0336703065630742 +6,0,2060,6,"GWh/mth","ind_man",1.05894193678578 +6,0,2060,6,"GWh/mth","res_com",4.54291346349388 +6,0,2060,7,"GWh/mth","agri",0.0342924834296108 +6,0,2060,7,"GWh/mth","ind_man",1.05568929234789 +6,0,2060,7,"GWh/mth","res_com",4.56167788827403 +6,0,2060,8,"GWh/mth","agri",0.129093429292724 +6,0,2060,8,"GWh/mth","ind_man",1.08776569538392 +6,0,2060,8,"GWh/mth","res_com",4.521449487942 +6,0,2060,9,"GWh/mth","agri",0.774682071376003 +6,0,2060,9,"GWh/mth","ind_man",1.12045860930449 +6,0,2060,9,"GWh/mth","res_com",4.5441213284123 +6,0,2060,10,"GWh/mth","agri",0.958071949476296 +6,0,2060,10,"GWh/mth","ind_man",1.1502294000965 +6,0,2060,10,"GWh/mth","res_com",4.61342519015846 +6,0,2060,11,"GWh/mth","agri",0.20309655080412 +6,0,2060,11,"GWh/mth","ind_man",1.17758178085127 +6,0,2060,11,"GWh/mth","res_com",4.387933023156 +6,0,2060,12,"GWh/mth","agri",0.0338773112915912 +6,0,2060,12,"GWh/mth","ind_man",1.20693466831018 +6,0,2060,12,"GWh/mth","res_com",4.37253303099188 +6,1,2020,1,"GWh/mth","agri",0.00159954418416729 +6,1,2020,1,"GWh/mth","ind_man",0.0920071608408303 +6,1,2020,1,"GWh/mth","res_com",0.630352270588555 +6,1,2020,2,"GWh/mth","agri",0.000952672601226513 +6,1,2020,2,"GWh/mth","ind_man",0.0894389387055869 +6,1,2020,2,"GWh/mth","res_com",0.616502292433725 +6,1,2020,3,"GWh/mth","agri",0.000635115067484342 +6,1,2020,3,"GWh/mth","ind_man",0.0873459218330453 +6,1,2020,3,"GWh/mth","res_com",0.611828875497749 +6,1,2020,4,"GWh/mth","agri",3.80038113633532e-08 +6,1,2020,4,"GWh/mth","ind_man",0.0854014638059689 +6,1,2020,4,"GWh/mth","res_com",0.596499326849021 +6,1,2020,5,"GWh/mth","agri",1.60404295801557e-07 +6,1,2020,5,"GWh/mth","ind_man",0.0828631838603627 +6,1,2020,5,"GWh/mth","res_com",0.593450017922407 +6,1,2020,6,"GWh/mth","agri",6.34593834166168e-07 +6,1,2020,6,"GWh/mth","ind_man",0.0807505190115316 +6,1,2020,6,"GWh/mth","res_com",0.59013568336407 +6,1,2020,7,"GWh/mth","agri",1.21723680542103e-05 +6,1,2020,7,"GWh/mth","ind_man",0.0805024858404997 +6,1,2020,7,"GWh/mth","res_com",0.587329358711881 +6,1,2020,8,"GWh/mth","agri",0.00042823378079233 +6,1,2020,8,"GWh/mth","ind_man",0.0829484992650359 +6,1,2020,8,"GWh/mth","res_com",0.60151104725713 +6,1,2020,9,"GWh/mth","agri",0.00150289322810819 +6,1,2020,9,"GWh/mth","ind_man",0.0854415252519927 +6,1,2020,9,"GWh/mth","res_com",0.602910933027338 +6,1,2020,10,"GWh/mth","agri",0.00177072928057974 +6,1,2020,10,"GWh/mth","ind_man",0.0877117222517789 +6,1,2020,10,"GWh/mth","res_com",0.609618582689524 +6,1,2020,11,"GWh/mth","agri",0.000938792946260816 +6,1,2020,11,"GWh/mth","ind_man",0.0897975013350523 +6,1,2020,11,"GWh/mth","res_com",0.613872482026612 +6,1,2020,12,"GWh/mth","agri",0.000752095400750979 +6,1,2020,12,"GWh/mth","ind_man",0.0920358307603543 +6,1,2020,12,"GWh/mth","res_com",0.625149051161767 +6,1,2030,1,"GWh/mth","agri",0.00267365446553873 +6,1,2030,1,"GWh/mth","ind_man",0.218959235677064 +6,1,2030,1,"GWh/mth","res_com",1.1248152864087 +6,1,2030,2,"GWh/mth","agri",0.001661869658771 +6,1,2030,2,"GWh/mth","ind_man",0.212847364050522 +6,1,2030,2,"GWh/mth","res_com",1.09927597727758 +6,1,2030,3,"GWh/mth","agri",0.00116517155610543 +6,1,2030,3,"GWh/mth","ind_man",0.207866388977682 +6,1,2030,3,"GWh/mth","res_com",1.08880715042741 +6,1,2030,4,"GWh/mth","agri",0.00017177535084058 +6,1,2030,4,"GWh/mth","ind_man",0.203238955204877 +6,1,2030,4,"GWh/mth","res_com",1.06189507792024 +6,1,2030,5,"GWh/mth","agri",0.00017177535702499 +6,1,2030,5,"GWh/mth","ind_man",0.197198340194641 +6,1,2030,5,"GWh/mth","res_com",1.0532945044662 +6,1,2030,6,"GWh/mth","agri",0.000171775760925396 +6,1,2030,6,"GWh/mth","ind_man",0.192170606740914 +6,1,2030,6,"GWh/mth","res_com",1.04492179042704 +6,1,2030,7,"GWh/mth","agri",0.000171802742121021 +6,1,2030,7,"GWh/mth","ind_man",0.191580335798355 +6,1,2030,7,"GWh/mth","res_com",1.04015799924162 +6,1,2030,8,"GWh/mth","agri",0.000742435972594416 +6,1,2030,8,"GWh/mth","ind_man",0.197401374345766 +6,1,2030,8,"GWh/mth","res_com",1.06603169063419 +6,1,2030,9,"GWh/mth","agri",0.00515788437881652 +6,1,2030,9,"GWh/mth","ind_man",0.203334293692896 +6,1,2030,9,"GWh/mth","res_com",1.07198406536234 +6,1,2030,10,"GWh/mth","agri",0.00648315100774653 +6,1,2030,10,"GWh/mth","ind_man",0.208736923177024 +6,1,2030,10,"GWh/mth","res_com",1.08590209870426 +6,1,2030,11,"GWh/mth","agri",0.00133528909788693 +6,1,2030,11,"GWh/mth","ind_man",0.213700673712211 +6,1,2030,11,"GWh/mth","res_com",1.09570382549743 +6,1,2030,12,"GWh/mth","agri",0.000188263436628091 +6,1,2030,12,"GWh/mth","ind_man",0.219027464536737 +6,1,2030,12,"GWh/mth","res_com",1.1167200988396 +6,1,2040,1,"GWh/mth","agri",0.00431777136852927 +6,1,2040,1,"GWh/mth","ind_man",0.212773263974398 +6,1,2040,1,"GWh/mth","res_com",1.45219975612661 +6,1,2040,2,"GWh/mth","agri",0.00275231989570464 +6,1,2040,2,"GWh/mth","ind_man",0.206834063141189 +6,1,2040,2,"GWh/mth","res_com",1.42072766236645 +6,1,2040,3,"GWh/mth","agri",0.00198381974511331 +6,1,2040,3,"GWh/mth","ind_man",0.201993809106021 +6,1,2040,3,"GWh/mth","res_com",1.41108470927797 +6,1,2040,4,"GWh/mth","agri",0.00044681944403951 +6,1,2040,4,"GWh/mth","ind_man",0.197497108226424 +6,1,2040,4,"GWh/mth","res_com",1.37553523892388 +6,1,2040,5,"GWh/mth","agri",0.000446819454137533 +6,1,2040,5,"GWh/mth","ind_man",0.191627150888628 +6,1,2040,5,"GWh/mth","res_com",1.37017729013697 +6,1,2040,6,"GWh/mth","agri",0.000446820112857855 +6,1,2040,6,"GWh/mth","ind_man",0.186741459476549 +6,1,2040,6,"GWh/mth","res_com",1.3638390107623 +6,1,2040,7,"GWh/mth","agri",0.000446879188347025 +6,1,2040,7,"GWh/mth","ind_man",0.186167864694447 +6,1,2040,7,"GWh/mth","res_com",1.35724514198555 +6,1,2040,8,"GWh/mth","agri",0.00164038223073531 +6,1,2040,8,"GWh/mth","ind_man",0.191824448978839 +6,1,2040,8,"GWh/mth","res_com",1.38961731319363 +6,1,2040,9,"GWh/mth","agri",0.0107822631508781 +6,1,2040,9,"GWh/mth","ind_man",0.197589753239617 +6,1,2040,9,"GWh/mth","res_com",1.39101964143644 +6,1,2040,10,"GWh/mth","agri",0.0134967327264162 +6,1,2040,10,"GWh/mth","ind_man",0.202839749230093 +6,1,2040,10,"GWh/mth","res_com",1.4054444015878 +6,1,2040,11,"GWh/mth","agri",0.00284513359326448 +6,1,2040,11,"GWh/mth","ind_man",0.207663265350163 +6,1,2040,11,"GWh/mth","res_com",1.41407787183052 +6,1,2040,12,"GWh/mth","agri",0.000468221452212276 +6,1,2040,12,"GWh/mth","ind_man",0.212839565252465 +6,1,2040,12,"GWh/mth","res_com",1.43958495350984 +6,1,2050,1,"GWh/mth","agri",0.00677826623406143 +6,1,2050,1,"GWh/mth","ind_man",0.48775172575382 +6,1,2050,1,"GWh/mth","res_com",2.59126747601574 +6,1,2050,2,"GWh/mth","agri",0.00435253172510815 +6,1,2050,2,"GWh/mth","ind_man",0.474136972650514 +6,1,2050,2,"GWh/mth","res_com",2.53791707870927 +6,1,2050,3,"GWh/mth","agri",0.00316170762880988 +6,1,2050,3,"GWh/mth","ind_man",0.463041395064111 +6,1,2050,3,"GWh/mth","res_com",2.51803405251343 +6,1,2050,4,"GWh/mth","agri",0.00157061441110687 +6,1,2050,4,"GWh/mth","ind_man",0.45273336306209 +6,1,2050,4,"GWh/mth","res_com",2.45722091698418 +6,1,2050,5,"GWh/mth","agri",0.000788489895660239 +6,1,2050,5,"GWh/mth","ind_man",0.439277340589475 +6,1,2050,5,"GWh/mth","res_com",2.44467252711048 +6,1,2050,6,"GWh/mth","agri",0.000782131220442738 +6,1,2050,6,"GWh/mth","ind_man",0.42807760443264 +6,1,2050,6,"GWh/mth","res_com",2.42986908508382 +6,1,2050,7,"GWh/mth","agri",0.000823855350447969 +6,1,2050,7,"GWh/mth","ind_man",0.426762721915785 +6,1,2050,7,"GWh/mth","res_com",2.41988954925643 +6,1,2050,8,"GWh/mth","agri",0.00374790633208036 +6,1,2050,8,"GWh/mth","ind_man",0.439729617732716 +6,1,2050,8,"GWh/mth","res_com",2.47370227741135 +6,1,2050,9,"GWh/mth","agri",0.0238469391410487 +6,1,2050,9,"GWh/mth","ind_man",0.4529457382648 +6,1,2050,9,"GWh/mth","res_com",2.48280370325076 +6,1,2050,10,"GWh/mth","agri",0.0296492878148102 +6,1,2050,10,"GWh/mth","ind_man",0.464980589621233 +6,1,2050,10,"GWh/mth","res_com",2.51273908764229 +6,1,2050,11,"GWh/mth","agri",0.00604132221631234 +6,1,2050,11,"GWh/mth","ind_man",0.476037797974481 +6,1,2050,11,"GWh/mth","res_com",2.52311237401025 +6,1,2050,12,"GWh/mth","agri",0.000792443261097773 +6,1,2050,12,"GWh/mth","ind_man",0.487903711779661 +6,1,2050,12,"GWh/mth","res_com",2.56685440476482 +6,1,2060,1,"GWh/mth","agri",0.0103099192960094 +6,1,2060,1,"GWh/mth","ind_man",0.559350550073421 +6,1,2060,1,"GWh/mth","res_com",3.62539333407035 +6,1,2060,2,"GWh/mth","agri",0.00657304985445607 +6,1,2060,2,"GWh/mth","ind_man",0.543737238555807 +6,1,2060,2,"GWh/mth","res_com",3.54583223468936 +6,1,2060,3,"GWh/mth","agri",0.00473857284994557 +6,1,2060,3,"GWh/mth","ind_man",0.531012901359983 +6,1,2060,3,"GWh/mth","res_com",3.51919972210179 +6,1,2060,4,"GWh/mth","agri",0.00106961884118495 +6,1,2060,4,"GWh/mth","ind_man",0.519191716388072 +6,1,2060,4,"GWh/mth","res_com",3.43098260081431 +6,1,2060,5,"GWh/mth","agri",0.00106961886533981 +6,1,2060,5,"GWh/mth","ind_man",0.503760436139447 +6,1,2060,5,"GWh/mth","res_com",3.41380994727821 +6,1,2060,6,"GWh/mth","agri",0.00106962044102454 +6,1,2060,6,"GWh/mth","ind_man",0.490916650563248 +6,1,2060,6,"GWh/mth","res_com",3.39503205408759 +6,1,2060,7,"GWh/mth","agri",0.00106976432304436 +6,1,2060,7,"GWh/mth","ind_man",0.489408751728143 +6,1,2060,7,"GWh/mth","res_com",3.37886364276071 +6,1,2060,8,"GWh/mth","agri",0.00397142733304227 +6,1,2060,8,"GWh/mth","ind_man",0.50427910466587 +6,1,2060,8,"GWh/mth","res_com",3.46036229202688 +6,1,2060,9,"GWh/mth","agri",0.0263353987645812 +6,1,2060,9,"GWh/mth","ind_man",0.519435266908111 +6,1,2060,9,"GWh/mth","res_com",3.4680143952443 +6,1,2060,10,"GWh/mth","agri",0.0329785157394223 +6,1,2060,10,"GWh/mth","ind_man",0.533236757237785 +6,1,2060,10,"GWh/mth","res_com",3.50636742998425 +6,1,2060,11,"GWh/mth","agri",0.00689051490855451 +6,1,2060,11,"GWh/mth","ind_man",0.545917092843172 +6,1,2060,11,"GWh/mth","res_com",3.53057772157435 +6,1,2060,12,"GWh/mth","agri",0.00106961959575607 +6,1,2060,12,"GWh/mth","ind_man",0.559524846672836 +6,1,2060,12,"GWh/mth","res_com",3.59533020142419 +7,0,2020,1,"GWh/mth","agri",0.655452821617297 +7,0,2020,1,"GWh/mth","ind_man",0.059892107500314 +7,0,2020,1,"GWh/mth","res_com",0.873845047399771 +7,0,2020,2,"GWh/mth","agri",0.384129028346284 +7,0,2020,2,"GWh/mth","ind_man",0.058220322013152 +7,0,2020,2,"GWh/mth","res_com",0.938749503340337 +7,0,2020,3,"GWh/mth","agri",0.256086018897522 +7,0,2020,3,"GWh/mth","ind_man",0.0568578716301096 +7,0,2020,3,"GWh/mth","res_com",0.97342356131392 +7,0,2020,4,"GWh/mth","agri",8.12521712706817e-05 +7,0,2020,4,"GWh/mth","ind_man",0.0555921257020402 +7,0,2020,4,"GWh/mth","res_com",0.97888196706642 +7,0,2020,5,"GWh/mth","agri",0.000361042536050177 +7,0,2020,5,"GWh/mth","ind_man",0.0539398310982416 +7,0,2020,5,"GWh/mth","res_com",1.05452522264979 +7,0,2020,6,"GWh/mth","agri",0.000501396590098685 +7,0,2020,6,"GWh/mth","ind_man",0.052564590855178 +7,0,2020,6,"GWh/mth","res_com",1.09017732607744 +7,0,2020,7,"GWh/mth","agri",0.00335718301280323 +7,0,2020,7,"GWh/mth","ind_man",0.0524031335380809 +7,0,2020,7,"GWh/mth","res_com",1.10778851781753 +7,0,2020,8,"GWh/mth","agri",0.03850720980115 +7,0,2020,8,"GWh/mth","ind_man",0.053995367203708 +7,0,2020,8,"GWh/mth","res_com",1.03246495316113 +7,0,2020,9,"GWh/mth","agri",0.152504135431172 +7,0,2020,9,"GWh/mth","ind_man",0.0556182037204243 +7,0,2020,9,"GWh/mth","res_com",1.00904567536675 +7,0,2020,10,"GWh/mth","agri",0.200763598832618 +7,0,2020,10,"GWh/mth","ind_man",0.0570959895961705 +7,0,2020,10,"GWh/mth","res_com",1.01175445167495 +7,0,2020,11,"GWh/mth","agri",0.0770916160944267 +7,0,2020,11,"GWh/mth","ind_man",0.0584537285366582 +7,0,2020,11,"GWh/mth","res_com",0.833625334017342 +7,0,2020,12,"GWh/mth","agri",0.0452045778321095 +7,0,2020,12,"GWh/mth","ind_man",0.0599107701988091 +7,0,2020,12,"GWh/mth","res_com",0.780624324416429 +7,0,2030,1,"GWh/mth","agri",1.00719404085192 +7,0,2030,1,"GWh/mth","ind_man",3.78396491249858 +7,0,2030,1,"GWh/mth","res_com",9.33121828553452 +7,0,2030,2,"GWh/mth","agri",0.597864720280854 +7,0,2030,2,"GWh/mth","ind_man",3.67834202012311 +7,0,2030,2,"GWh/mth","res_com",9.20287755047658 +7,0,2030,3,"GWh/mth","agri",0.404828683918717 +7,0,2030,3,"GWh/mth","ind_man",3.59226282438892 +7,0,2030,3,"GWh/mth","res_com",9.07121935893738 +7,0,2030,4,"GWh/mth","agri",0.0187956059637993 +7,0,2030,4,"GWh/mth","ind_man",3.5122933863469 +7,0,2030,4,"GWh/mth","res_com",8.90948998333853 +7,0,2030,5,"GWh/mth","agri",0.0190190192753389 +7,0,2030,5,"GWh/mth","ind_man",3.40790192198155 +7,0,2030,5,"GWh/mth","res_com",8.79947841471821 +7,0,2030,6,"GWh/mth","agri",0.0194231220910775 +7,0,2030,6,"GWh/mth","ind_man",3.32101466682892 +7,0,2030,6,"GWh/mth","res_com",8.66753251364097 +7,0,2030,7,"GWh/mth","agri",0.0213624998233672 +7,0,2030,7,"GWh/mth","ind_man",3.31081384324363 +7,0,2030,7,"GWh/mth","res_com",8.67194875370726 +7,0,2030,8,"GWh/mth","agri",0.0730184107710793 +7,0,2030,8,"GWh/mth","ind_man",3.41141067602665 +7,0,2030,8,"GWh/mth","res_com",8.77420386800312 +7,0,2030,9,"GWh/mth","agri",0.376263685542128 +7,0,2030,9,"GWh/mth","ind_man",3.51394098751959 +7,0,2030,9,"GWh/mth","res_com",8.95752181341143 +7,0,2030,10,"GWh/mth","agri",0.515005541813853 +7,0,2030,10,"GWh/mth","ind_man",3.60730704417372 +7,0,2030,10,"GWh/mth","res_com",9.15997911745921 +7,0,2030,11,"GWh/mth","agri",0.120430957849707 +7,0,2030,11,"GWh/mth","ind_man",3.69308857241785 +7,0,2030,11,"GWh/mth","res_com",9.07872934632197 +7,0,2030,12,"GWh/mth","agri",0.0206954862393744 +7,0,2030,12,"GWh/mth","ind_man",3.78514401604369 +7,0,2030,12,"GWh/mth","res_com",9.19587483876684 +7,0,2040,1,"GWh/mth","agri",1.55290935032245 +7,0,2040,1,"GWh/mth","ind_man",5.65020075143325 +7,0,2040,1,"GWh/mth","res_com",14.0873220704041 +7,0,2040,2,"GWh/mth","agri",0.923822479143581 +7,0,2040,2,"GWh/mth","ind_man",5.49248508554608 +7,0,2040,2,"GWh/mth","res_com",13.8970915877844 +7,0,2040,3,"GWh/mth","agri",0.627168913713111 +7,0,2040,3,"GWh/mth","ind_man",5.36395198662288 +7,0,2040,3,"GWh/mth","res_com",13.7005474917681 +7,0,2040,4,"GWh/mth","agri",0.0340000616882785 +7,0,2040,4,"GWh/mth","ind_man",5.2445419526069 +7,0,2040,4,"GWh/mth","res_com",13.4572056145164 +7,0,2040,5,"GWh/mth","agri",0.0346379239537641 +7,0,2040,5,"GWh/mth","ind_man",5.08866504992948 +7,0,2040,5,"GWh/mth","res_com",13.2952445943155 +7,0,2040,6,"GWh/mth","agri",0.0353881314111764 +7,0,2040,6,"GWh/mth","ind_man",4.95892536002596 +7,0,2040,6,"GWh/mth","res_com",13.0983137501032 +7,0,2040,7,"GWh/mth","agri",0.0399813332356304 +7,0,2040,7,"GWh/mth","ind_man",4.94369353245366 +7,0,2040,7,"GWh/mth","res_com",13.1057493996513 +7,0,2040,8,"GWh/mth","agri",0.156526457343227 +7,0,2040,8,"GWh/mth","ind_man",5.09390430695239 +7,0,2040,8,"GWh/mth","res_com",13.2561496553478 +7,0,2040,9,"GWh/mth","agri",0.828629021553072 +7,0,2040,9,"GWh/mth","ind_man",5.24700214386113 +7,0,2040,9,"GWh/mth","res_com",13.5310370147982 +7,0,2040,10,"GWh/mth","agri",1.13243088879978 +7,0,2040,10,"GWh/mth","ind_man",5.38641595336107 +7,0,2040,10,"GWh/mth","res_com",13.8358777995435 +7,0,2040,11,"GWh/mth","agri",0.258724344697889 +7,0,2040,11,"GWh/mth","ind_man",5.51450457641969 +7,0,2040,11,"GWh/mth","res_com",13.7051680270493 +7,0,2040,12,"GWh/mth","agri",0.0398635547401002 +7,0,2040,12,"GWh/mth","ind_man",5.65196138396835 +7,0,2040,12,"GWh/mth","res_com",13.8790784481474 +7,0,2050,1,"GWh/mth","agri",2.42192627303015 +7,0,2050,1,"GWh/mth","ind_man",7.85810328406074 +7,0,2050,1,"GWh/mth","res_com",20.0216441248214 +7,0,2050,2,"GWh/mth","agri",1.44056714231968 +7,0,2050,2,"GWh/mth","ind_man",7.63875780474455 +7,0,2050,2,"GWh/mth","res_com",19.779539530367 +7,0,2050,3,"GWh/mth","agri",0.977766977953617 +7,0,2050,3,"GWh/mth","ind_man",7.45999842765468 +7,0,2050,3,"GWh/mth","res_com",19.5173451289174 +7,0,2050,4,"GWh/mth","agri",0.052442079054599 +7,0,2050,4,"GWh/mth","ind_man",7.29392709289498 +7,0,2050,4,"GWh/mth","res_com",19.1792616001946 +7,0,2050,5,"GWh/mth","agri",0.053668508023872 +7,0,2050,5,"GWh/mth","ind_man",7.0771389016917 +7,0,2050,5,"GWh/mth","res_com",18.9803361341272 +7,0,2050,6,"GWh/mth","agri",0.0549023626019844 +7,0,2050,6,"GWh/mth","ind_man",6.89670143970502 +7,0,2050,6,"GWh/mth","res_com",18.7179537443741 +7,0,2050,7,"GWh/mth","agri",0.0632962377924587 +7,0,2050,7,"GWh/mth","ind_man",6.87551754208194 +7,0,2050,7,"GWh/mth","res_com",18.734876114748 +7,0,2050,8,"GWh/mth","agri",0.259223523032748 +7,0,2050,8,"GWh/mth","ind_man",7.08442547868763 +7,0,2050,8,"GWh/mth","res_com",18.9175620266374 +7,0,2050,9,"GWh/mth","agri",1.3897514730563 +7,0,2050,9,"GWh/mth","ind_man",7.29734864158409 +7,0,2050,9,"GWh/mth","res_com",19.2933938545434 +7,0,2050,10,"GWh/mth","agri",1.90887930258984 +7,0,2050,10,"GWh/mth","ind_man",7.49124053365483 +7,0,2050,10,"GWh/mth","res_com",19.7208027551367 +7,0,2050,11,"GWh/mth","agri",0.426657338914405 +7,0,2050,11,"GWh/mth","ind_man",7.66938174912446 +7,0,2050,11,"GWh/mth","res_com",19.4727392790837 +7,0,2050,12,"GWh/mth","agri",0.0545163917966112 +7,0,2050,12,"GWh/mth","ind_man",7.86055191074052 +7,0,2050,12,"GWh/mth","res_com",19.6964286271872 +7,0,2060,1,"GWh/mth","agri",3.73053938667152 +7,0,2060,1,"GWh/mth","ind_man",10.4258700277 +7,0,2060,1,"GWh/mth","res_com",27.1711656001629 +7,0,2060,2,"GWh/mth","agri",2.21874535760288 +7,0,2060,2,"GWh/mth","ind_man",10.1348497425438 +7,0,2060,2,"GWh/mth","res_com",26.9007093225918 +7,0,2060,3,"GWh/mth","agri",1.50579685256979 +7,0,2060,3,"GWh/mth","ind_man",9.89767774767427 +7,0,2060,3,"GWh/mth","res_com",26.5803370754101 +7,0,2060,4,"GWh/mth","agri",0.0803777837486876 +7,0,2060,4,"GWh/mth","ind_man",9.67733982528486 +7,0,2060,4,"GWh/mth","res_com",26.1371272329085 +7,0,2060,5,"GWh/mth","agri",0.0824214524515806 +7,0,2060,5,"GWh/mth","ind_man",9.3897124649255 +7,0,2060,5,"GWh/mth","res_com",25.9319937384208 +7,0,2060,6,"GWh/mth","agri",0.0840678289883653 +7,0,2060,6,"GWh/mth","ind_man",9.15031404283845 +7,0,2060,6,"GWh/mth","res_com",25.612116125443 +7,0,2060,7,"GWh/mth","agri",0.09812853090731 +7,0,2060,7,"GWh/mth","ind_man",9.12220795218089 +7,0,2060,7,"GWh/mth","res_com",25.6480852461358 +7,0,2060,8,"GWh/mth","agri",0.414849753715342 +7,0,2060,8,"GWh/mth","ind_man",9.39938005288664 +7,0,2060,8,"GWh/mth","res_com",25.8318842763781 +7,0,2060,9,"GWh/mth","agri",2.2429442187502 +7,0,2060,9,"GWh/mth","ind_man",9.6818794222635 +7,0,2060,9,"GWh/mth","res_com",26.3113501489252 +7,0,2060,10,"GWh/mth","agri",3.09086791157382 +7,0,2060,10,"GWh/mth","ind_man",9.93912873460769 +7,0,2060,10,"GWh/mth","res_com",26.87916507096 +7,0,2060,11,"GWh/mth","agri",0.687308252511464 +7,0,2060,11,"GWh/mth","ind_man",10.1754805732034 +7,0,2060,11,"GWh/mth","res_com",26.4137685986564 +7,0,2060,12,"GWh/mth","agri",0.0825890972268539 +7,0,2060,12,"GWh/mth","ind_man",10.4291187841221 +7,0,2060,12,"GWh/mth","res_com",26.6690233813188 +7,1,2020,1,"GWh/mth","agri",0.0165975073096198 +7,1,2020,1,"GWh/mth","ind_man",1.88581126552989 +7,1,2020,1,"GWh/mth","res_com",7.72340709875072 +7,1,2020,2,"GWh/mth","agri",0.00953429615818707 +7,1,2020,2,"GWh/mth","ind_man",1.83317207754969 +7,1,2020,2,"GWh/mth","res_com",7.53324458026321 +7,1,2020,3,"GWh/mth","agri",0.00635619743879138 +7,1,2020,3,"GWh/mth","ind_man",1.79027286447636 +7,1,2020,3,"GWh/mth","res_com",7.41805459600482 +7,1,2020,4,"GWh/mth","agri",4.01201747340604e-07 +7,1,2020,4,"GWh/mth","ind_man",1.75041856597068 +7,1,2020,4,"GWh/mth","res_com",7.2434353746942 +7,1,2020,5,"GWh/mth","agri",6.10955677922684e-06 +7,1,2020,5,"GWh/mth","ind_man",1.69839308368486 +7,1,2020,5,"GWh/mth","res_com",7.1205299941013 +7,1,2020,6,"GWh/mth","agri",6.03846992229007e-06 +7,1,2020,6,"GWh/mth","ind_man",1.65509115874983 +7,1,2020,6,"GWh/mth","res_com",7.01284633219127 +7,1,2020,7,"GWh/mth","agri",6.57431842680149e-05 +7,1,2020,7,"GWh/mth","ind_man",1.65000738327103 +7,1,2020,7,"GWh/mth","res_com",6.98586097633642 +7,1,2020,8,"GWh/mth","agri",0.00124467734501596 +7,1,2020,8,"GWh/mth","ind_man",1.70014173835245 +7,1,2020,8,"GWh/mth","res_com",7.17277129071917 +7,1,2020,9,"GWh/mth","agri",0.00483225739698424 +7,1,2020,9,"GWh/mth","ind_man",1.75123967951809 +7,1,2020,9,"GWh/mth","res_com",7.28492223949184 +7,1,2020,10,"GWh/mth","agri",0.00592468691393756 +7,1,2020,10,"GWh/mth","ind_man",1.79777043905946 +7,1,2020,10,"GWh/mth","res_com",7.42101051380799 +7,1,2020,11,"GWh/mth","agri",0.0022960927174376 +7,1,2020,11,"GWh/mth","ind_man",1.84052130384756 +7,1,2020,11,"GWh/mth","res_com",7.52950564745002 +7,1,2020,12,"GWh/mth","agri",0.00145439012015217 +7,1,2020,12,"GWh/mth","ind_man",1.88639889432668 +7,1,2020,12,"GWh/mth","res_com",7.69050822008509 +7,1,2030,1,"GWh/mth","agri",0.0636295047627599 +7,1,2030,1,"GWh/mth","ind_man",4.06385628677753 +7,1,2030,1,"GWh/mth","res_com",13.7705012431479 +7,1,2030,2,"GWh/mth","agri",0.0375281325899815 +7,1,2030,2,"GWh/mth","ind_man",3.95042070660345 +7,1,2030,2,"GWh/mth","res_com",13.433432142011 +7,1,2030,3,"GWh/mth","agri",0.0253186038769237 +7,1,2030,3,"GWh/mth","ind_man",3.85797442635658 +7,1,2030,3,"GWh/mth","res_com",13.2195272715229 +7,1,2030,4,"GWh/mth","agri",0.000899684238987178 +7,1,2030,4,"GWh/mth","ind_man",3.77208982883727 +7,1,2030,4,"GWh/mth","res_com",12.9126310589434 +7,1,2030,5,"GWh/mth","agri",0.000900050497583179 +7,1,2030,5,"GWh/mth","ind_man",3.65997676263367 +7,1,2030,5,"GWh/mth","res_com",12.6823697234303 +7,1,2030,6,"GWh/mth","agri",0.000899547499951417 +7,1,2030,6,"GWh/mth","ind_man",3.56666265263055 +7,1,2030,6,"GWh/mth","res_com",12.4799614115807 +7,1,2030,7,"GWh/mth","agri",0.000914911381288441 +7,1,2030,7,"GWh/mth","ind_man",3.55570729706674 +7,1,2030,7,"GWh/mth","res_com",12.4348559949079 +7,1,2030,8,"GWh/mth","agri",0.0034211693683083 +7,1,2030,8,"GWh/mth","ind_man",3.66374505132416 +7,1,2030,8,"GWh/mth","res_com",12.7638034187977 +7,1,2030,9,"GWh/mth","agri",0.0164510399683393 +7,1,2030,9,"GWh/mth","ind_man",3.77385929936319 +7,1,2030,9,"GWh/mth","res_com",12.9808730929274 +7,1,2030,10,"GWh/mth","agri",0.0202193952150288 +7,1,2030,10,"GWh/mth","ind_man",3.87413143324378 +7,1,2030,10,"GWh/mth","res_com",13.233729563436 +7,1,2030,11,"GWh/mth","agri",0.00452937399793172 +7,1,2030,11,"GWh/mth","ind_man",3.96625802820581 +7,1,2030,11,"GWh/mth","res_com",13.4249304299964 +7,1,2030,12,"GWh/mth","agri",0.00107229431685021 +7,1,2030,12,"GWh/mth","ind_man",4.06512260596002 +7,1,2030,12,"GWh/mth","res_com",13.7115869133876 +7,1,2040,1,"GWh/mth","agri",0.109141032787064 +7,1,2040,1,"GWh/mth","ind_man",5.14066417609081 +7,1,2040,1,"GWh/mth","res_com",18.989663065534 +7,1,2040,2,"GWh/mth","agri",0.0645217811723883 +7,1,2040,2,"GWh/mth","ind_man",4.99717135002992 +7,1,2040,2,"GWh/mth","res_com",18.5342313334042 +7,1,2040,3,"GWh/mth","agri",0.0436157529140322 +7,1,2040,3,"GWh/mth","ind_man",4.88022939944368 +7,1,2040,3,"GWh/mth","res_com",18.256770626955 +7,1,2040,4,"GWh/mth","agri",0.00180463169249445 +7,1,2040,4,"GWh/mth","ind_man",4.77158779339526 +7,1,2040,4,"GWh/mth","res_com",17.8313978708524 +7,1,2040,5,"GWh/mth","agri",0.00180709021731123 +7,1,2040,5,"GWh/mth","ind_man",4.62976791039897 +7,1,2040,5,"GWh/mth","res_com",17.5404430288418 +7,1,2040,6,"GWh/mth","agri",0.00180369842938395 +7,1,2040,6,"GWh/mth","ind_man",4.51172817952127 +7,1,2040,6,"GWh/mth","res_com",17.2812810082773 +7,1,2040,7,"GWh/mth","agri",0.00184463330899338 +7,1,2040,7,"GWh/mth","ind_man",4.49786996212652 +7,1,2040,7,"GWh/mth","res_com",17.2180784470853 +7,1,2040,8,"GWh/mth","agri",0.00849573861980524 +7,1,2040,8,"GWh/mth","ind_man",4.63453468985901 +7,1,2040,8,"GWh/mth","res_com",17.6639559259828 +7,1,2040,9,"GWh/mth","agri",0.0420521619020219 +7,1,2040,9,"GWh/mth","ind_man",4.77382612396143 +7,1,2040,9,"GWh/mth","res_com",17.936306466076 +7,1,2040,10,"GWh/mth","agri",0.0513585561662417 +7,1,2040,10,"GWh/mth","ind_man",4.90066755981075 +7,1,2040,10,"GWh/mth","res_com",18.2701439852238 +7,1,2040,11,"GWh/mth","agri",0.0109625286411885 +7,1,2040,11,"GWh/mth","ind_man",5.01720511748163 +7,1,2040,11,"GWh/mth","res_com",18.510525283446 +7,1,2040,12,"GWh/mth","agri",0.00208429389604995 +7,1,2040,12,"GWh/mth","ind_man",5.14226603432534 +7,1,2040,12,"GWh/mth","res_com",18.8965167297391 +7,1,2050,1,"GWh/mth","agri",0.152880345011652 +7,1,2050,1,"GWh/mth","ind_man",7.36184929663231 +7,1,2050,1,"GWh/mth","res_com",28.5461036585523 +7,1,2050,2,"GWh/mth","agri",0.0903028099596991 +7,1,2050,2,"GWh/mth","ind_man",7.15635589647571 +7,1,2050,2,"GWh/mth","res_com",27.8627149203223 +7,1,2050,3,"GWh/mth","agri",0.0610307009705005 +7,1,2050,3,"GWh/mth","ind_man",6.98888550993029 +7,1,2050,3,"GWh/mth","res_com",27.4515312916865 +7,1,2050,4,"GWh/mth","agri",0.00249016007077934 +7,1,2050,4,"GWh/mth","ind_man",6.8333018920016 +7,1,2050,4,"GWh/mth","res_com",26.8101878306764 +7,1,2050,5,"GWh/mth","agri",0.00249882825662172 +7,1,2050,5,"GWh/mth","ind_man",6.63020428240855 +7,1,2050,5,"GWh/mth","res_com",26.3814144769912 +7,1,2050,6,"GWh/mth","agri",0.0024864903260022 +7,1,2050,6,"GWh/mth","ind_man",6.4611617851806 +7,1,2050,6,"GWh/mth","res_com",25.9987478462209 +7,1,2050,7,"GWh/mth","agri",0.00257066980107219 +7,1,2050,7,"GWh/mth","ind_man",6.44131569049606 +7,1,2050,7,"GWh/mth","res_com",25.9026544259426 +7,1,2050,8,"GWh/mth","agri",0.0142947065279364 +7,1,2050,8,"GWh/mth","ind_man",6.63703069837602 +7,1,2050,8,"GWh/mth","res_com",26.5725067710189 +7,1,2050,9,"GWh/mth","agri",0.0707247322984639 +7,1,2050,9,"GWh/mth","ind_man",6.83650736346205 +7,1,2050,9,"GWh/mth","res_com",26.9718511689978 +7,1,2050,10,"GWh/mth","agri",0.0863368684226059 +7,1,2050,10,"GWh/mth","ind_man",7.01815461823395 +7,1,2050,10,"GWh/mth","res_com",27.4678156004102 +7,1,2050,11,"GWh/mth","agri",0.0175566933323594 +7,1,2050,11,"GWh/mth","ind_man",7.18504588122695 +7,1,2050,11,"GWh/mth","res_com",27.8249183281174 +7,1,2050,12,"GWh/mth","agri",0.00259880019410724 +7,1,2050,12,"GWh/mth","ind_man",7.3641432879364 +7,1,2050,12,"GWh/mth","res_com",28.4034653129361 +7,1,2060,1,"GWh/mth","agri",0.235558578887914 +7,1,2060,1,"GWh/mth","ind_man",11.2574793395362 +7,1,2060,1,"GWh/mth","res_com",44.1576935994375 +7,1,2060,2,"GWh/mth","agri",0.139157230100456 +7,1,2060,2,"GWh/mth","ind_man",10.9432461063549 +7,1,2060,2,"GWh/mth","res_com",43.0998424703076 +7,1,2060,3,"GWh/mth","agri",0.0940632393245425 +7,1,2060,3,"GWh/mth","ind_man",10.6871563195969 +7,1,2060,3,"GWh/mth","res_com",42.4622668013058 +7,1,2060,4,"GWh/mth","agri",0.00387928446333295 +7,1,2060,4,"GWh/mth","ind_man",10.4492433586234 +7,1,2060,4,"GWh/mth","res_com",41.4704215593136 +7,1,2060,5,"GWh/mth","agri",0.00388915763543667 +7,1,2060,5,"GWh/mth","ind_man",10.1386736835624 +7,1,2060,5,"GWh/mth","res_com",40.8048673678093 +7,1,2060,6,"GWh/mth","agri",0.0038752724312873 +7,1,2060,6,"GWh/mth","ind_man",9.88017988080042 +7,1,2060,6,"GWh/mth","res_com",40.2111835412059 +7,1,2060,7,"GWh/mth","agri",0.00402775945650172 +7,1,2060,7,"GWh/mth","ind_man",9.8498319353482 +7,1,2060,7,"GWh/mth","res_com",40.062659655796 +7,1,2060,8,"GWh/mth","agri",0.0241051344508179 +7,1,2060,8,"GWh/mth","ind_man",10.149112397209 +7,1,2060,8,"GWh/mth","res_com",41.0994159258904 +7,1,2060,9,"GWh/mth","agri",0.118845195279781 +7,1,2060,9,"GWh/mth","ind_man",10.454145052109 +7,1,2060,9,"GWh/mth","res_com",41.7195449256068 +7,1,2060,10,"GWh/mth","agri",0.144709158101708 +7,1,2060,10,"GWh/mth","ind_man",10.7319136039067 +7,1,2060,10,"GWh/mth","res_com",42.488077025587 +7,1,2060,11,"GWh/mth","agri",0.0289984298800888 +7,1,2060,11,"GWh/mth","ind_man",10.9871178154289 +7,1,2060,11,"GWh/mth","res_com",43.0423261730538 +7,1,2060,12,"GWh/mth","agri",0.00395497045932785 +7,1,2060,12,"GWh/mth","ind_man",11.2609872298325 +7,1,2060,12,"GWh/mth","res_com",43.9380144827192 +8,0,2020,1,"GWh/mth","agri",0.456512924367014 +8,0,2020,1,"GWh/mth","ind_man",0.102980058731224 +8,0,2020,1,"GWh/mth","res_com",0.628366510501847 +8,0,2020,2,"GWh/mth","agri",0.258496844260784 +8,0,2020,2,"GWh/mth","ind_man",0.100105546965996 +8,0,2020,2,"GWh/mth","res_com",0.654624301939596 +8,0,2020,3,"GWh/mth","agri",0.172331229507189 +8,0,2020,3,"GWh/mth","ind_man",0.0977629140829677 +8,0,2020,3,"GWh/mth","res_com",0.667821194659213 +8,0,2020,4,"GWh/mth","agri",1.13157643899735e-19 +8,0,2020,4,"GWh/mth","ind_man",0.095586557373351 +8,0,2020,4,"GWh/mth","res_com",0.666497286718315 +8,0,2020,5,"GWh/mth","agri",1.07040835477349e-06 +8,0,2020,5,"GWh/mth","ind_man",0.0927455587436138 +8,0,2020,5,"GWh/mth","res_com",0.698577013137354 +8,0,2020,6,"GWh/mth","agri",0.000571884776702236 +8,0,2020,6,"GWh/mth","ind_man",0.0903809346401878 +8,0,2020,6,"GWh/mth","res_com",0.712406788033966 +8,0,2020,7,"GWh/mth","agri",0.00135171957504336 +8,0,2020,7,"GWh/mth","ind_man",0.0901033206991996 +8,0,2020,7,"GWh/mth","res_com",0.72032293248033 +8,0,2020,8,"GWh/mth","agri",0.00263363419046601 +8,0,2020,8,"GWh/mth","ind_man",0.0928410489783264 +8,0,2020,8,"GWh/mth","res_com",0.689361478379433 +8,0,2020,9,"GWh/mth","agri",0.00457961370496265 +8,0,2020,9,"GWh/mth","ind_man",0.0956313966013707 +8,0,2020,9,"GWh/mth","res_com",0.681346846209695 +8,0,2020,10,"GWh/mth","agri",0.00384619039790493 +8,0,2020,10,"GWh/mth","ind_man",0.0981723403521933 +8,0,2020,10,"GWh/mth","res_com",0.686761571710315 +8,0,2020,11,"GWh/mth","agri",0.00154292653614619 +8,0,2020,11,"GWh/mth","ind_man",0.100506872257459 +8,0,2020,11,"GWh/mth","res_com",0.604881302975132 +8,0,2020,12,"GWh/mth","agri",0.000625227582990144 +8,0,2020,12,"GWh/mth","ind_man",0.103012147863955 +8,0,2020,12,"GWh/mth","res_com",0.583664637628903 +8,0,2030,1,"GWh/mth","agri",0.647530379334417 +8,0,2030,1,"GWh/mth","ind_man",1.87455467772035 +8,0,2030,1,"GWh/mth","res_com",4.52449084359104 +8,0,2030,2,"GWh/mth","agri",0.368966009908686 +8,0,2030,2,"GWh/mth","ind_man",1.8222296980878 +8,0,2030,2,"GWh/mth","res_com",4.46145951305656 +8,0,2030,3,"GWh/mth","agri",0.245977339939124 +8,0,2030,3,"GWh/mth","ind_man",1.77958655452033 +8,0,2030,3,"GWh/mth","res_com",4.39854664370499 +8,0,2030,4,"GWh/mth","agri",1.80132990629455e-19 +8,0,2030,4,"GWh/mth","ind_man",1.73997015013424 +8,0,2030,4,"GWh/mth","res_com",4.32004079634791 +8,0,2030,5,"GWh/mth","agri",1.98505116714792e-07 +8,0,2030,5,"GWh/mth","ind_man",1.68825521292808 +8,0,2030,5,"GWh/mth","res_com",4.26704548090145 +8,0,2030,6,"GWh/mth","agri",0.000989020211641259 +8,0,2030,6,"GWh/mth","ind_man",1.64521176132454 +8,0,2030,6,"GWh/mth","res_com",4.2043307775304 +8,0,2030,7,"GWh/mth","agri",0.00243317186001492 +8,0,2030,7,"GWh/mth","ind_man",1.6401583313878 +8,0,2030,7,"GWh/mth","res_com",4.20593414467003 +8,0,2030,8,"GWh/mth","agri",0.0048443523109683 +8,0,2030,8,"GWh/mth","ind_man",1.68999342970872 +8,0,2030,8,"GWh/mth","res_com",4.25739985078563 +8,0,2030,9,"GWh/mth","agri",0.0083959205771418 +8,0,2030,9,"GWh/mth","ind_man",1.74078636237635 +8,0,2030,9,"GWh/mth","res_com",4.34329703507493 +8,0,2030,10,"GWh/mth","agri",0.00701889819615986 +8,0,2030,10,"GWh/mth","ind_man",1.78703937536365 +8,0,2030,10,"GWh/mth","res_com",4.44003259840031 +8,0,2030,11,"GWh/mth","agri",0.00307255926738438 +8,0,2030,11,"GWh/mth","ind_man",1.82953505615099 +8,0,2030,11,"GWh/mth","res_com",4.40361689644829 +8,0,2030,12,"GWh/mth","agri",0.00130596961172004 +8,0,2030,12,"GWh/mth","ind_man",1.87513879890464 +8,0,2030,12,"GWh/mth","res_com",4.46092197301092 +8,0,2040,1,"GWh/mth","agri",1.00135923230259 +8,0,2040,1,"GWh/mth","ind_man",2.48858954191428 +8,0,2040,1,"GWh/mth","res_com",6.10340863480684 +8,0,2040,2,"GWh/mth","agri",0.570583834724198 +8,0,2040,2,"GWh/mth","ind_man",2.41912483189963 +8,0,2040,2,"GWh/mth","res_com",6.03082048412209 +8,0,2040,3,"GWh/mth","agri",0.380393183890805 +8,0,2040,3,"GWh/mth","ind_man",2.36251336978672 +8,0,2040,3,"GWh/mth","res_com",5.95382768147715 +8,0,2040,4,"GWh/mth","agri",1.18822240177194e-05 +8,0,2040,4,"GWh/mth","ind_man",2.30992009479974 +8,0,2040,4,"GWh/mth","res_com",5.85128185706586 +8,0,2040,5,"GWh/mth","agri",1.22628870114333e-05 +8,0,2040,5,"GWh/mth","ind_man",2.2412652545747 +8,0,2040,5,"GWh/mth","res_com",5.79393143129344 +8,0,2040,6,"GWh/mth","agri",0.00191288817921083 +8,0,2040,6,"GWh/mth","ind_man",2.18412235830094 +8,0,2040,6,"GWh/mth","res_com",5.71743561230125 +8,0,2040,7,"GWh/mth","agri",0.00488301627317472 +8,0,2040,7,"GWh/mth","ind_man",2.17741361139649 +8,0,2040,7,"GWh/mth","res_com",5.72231007573396 +8,0,2040,8,"GWh/mth","agri",0.0104373055581144 +8,0,2040,8,"GWh/mth","ind_man",2.24357284696092 +8,0,2040,8,"GWh/mth","res_com",5.77819971020403 +8,0,2040,9,"GWh/mth","agri",0.0187807551034979 +8,0,2040,9,"GWh/mth","ind_man",2.31100366802053 +8,0,2040,9,"GWh/mth","res_com",5.88685009292721 +8,0,2040,10,"GWh/mth","agri",0.0162928836392222 +8,0,2040,10,"GWh/mth","ind_man",2.37240745942245 +8,0,2040,10,"GWh/mth","res_com",6.01440594479546 +8,0,2040,11,"GWh/mth","agri",0.00934718449847924 +8,0,2040,11,"GWh/mth","ind_man",2.42882315539591 +8,0,2040,11,"GWh/mth","res_com",5.93793860086966 +8,0,2040,12,"GWh/mth","agri",0.00393769406343657 +8,0,2040,12,"GWh/mth","ind_man",2.48936499962043 +8,0,2040,12,"GWh/mth","res_com",6.00486495002728 +8,0,2050,1,"GWh/mth","agri",1.55245392954993 +8,0,2050,1,"GWh/mth","ind_man",3.45701564093284 +8,0,2050,1,"GWh/mth","res_com",8.6430168943181 +8,0,2050,2,"GWh/mth","agri",0.884601240558198 +8,0,2050,2,"GWh/mth","ind_man",3.36051897687116 +8,0,2050,2,"GWh/mth","res_com",8.55279969046704 +8,0,2050,3,"GWh/mth","agri",0.589738282585437 +8,0,2050,3,"GWh/mth","ind_man",3.28187735812118 +8,0,2050,3,"GWh/mth","res_com",8.45176458595108 +8,0,2050,4,"GWh/mth","agri",1.23666399133825e-05 +8,0,2050,4,"GWh/mth","ind_man",3.20881759025845 +8,0,2050,4,"GWh/mth","res_com",8.3098516031297 +8,0,2050,5,"GWh/mth","agri",1.29905512606486e-05 +8,0,2050,5,"GWh/mth","ind_man",3.11344595404193 +8,0,2050,5,"GWh/mth","res_com",8.24305271324197 +8,0,2050,6,"GWh/mth","agri",0.00314763713944365 +8,0,2050,6,"GWh/mth","ind_man",3.03406609534709 +8,0,2050,6,"GWh/mth","res_com",8.14295165451713 +8,0,2050,7,"GWh/mth","agri",0.00808890072564907 +8,0,2050,7,"GWh/mth","ind_man",3.0247466625563 +8,0,2050,7,"GWh/mth","res_com",8.15258485796491 +8,0,2050,8,"GWh/mth","agri",0.0171501635521942 +8,0,2050,8,"GWh/mth","ind_man",3.11665153810378 +8,0,2050,8,"GWh/mth","res_com",8.21797642356024 +8,0,2050,9,"GWh/mth","agri",0.0307405548456705 +8,0,2050,9,"GWh/mth","ind_man",3.21032283228784 +8,0,2050,9,"GWh/mth","res_com",8.36456154223933 +8,0,2050,10,"GWh/mth","agri",0.0269317406341973 +8,0,2050,10,"GWh/mth","ind_man",3.29562169886016 +8,0,2050,10,"GWh/mth","res_com",8.54219295063674 +8,0,2050,11,"GWh/mth","agri",0.0166838791977109 +8,0,2050,11,"GWh/mth","ind_man",3.37399136974785 +8,0,2050,11,"GWh/mth","res_com",8.40608780276823 +8,0,2050,12,"GWh/mth","agri",0.00709202727025715 +8,0,2050,12,"GWh/mth","ind_man",3.45809286535008 +8,0,2050,12,"GWh/mth","res_com",8.4903657083908 +8,0,2060,1,"GWh/mth","agri",2.39159082817358 +8,0,2060,1,"GWh/mth","ind_man",4.25379327890646 +8,0,2060,1,"GWh/mth","res_com",11.0956385454638 +8,0,2060,2,"GWh/mth","agri",1.3627567592592 +8,0,2060,2,"GWh/mth","ind_man",4.13505593327163 +8,0,2060,2,"GWh/mth","res_com",11.0195714260352 +8,0,2060,3,"GWh/mth","agri",0.908517281267063 +8,0,2060,3,"GWh/mth","ind_man",4.03828888792765 +8,0,2060,3,"GWh/mth","res_com",10.9149417725631 +8,0,2060,4,"GWh/mth","agri",3.83252827934201e-05 +8,0,2060,4,"GWh/mth","ind_man",3.94839020600872 +8,0,2060,4,"GWh/mth","res_com",10.7436558788526 +8,0,2060,5,"GWh/mth","agri",3.93122709914343e-05 +8,0,2060,5,"GWh/mth","ind_man",3.83103718615757 +8,0,2060,5,"GWh/mth","res_com",10.7028279533587 +8,0,2060,6,"GWh/mth","agri",0.00499730405987904 +8,0,2060,6,"GWh/mth","ind_man",3.73336175032832 +8,0,2060,6,"GWh/mth","res_com",10.6001292397016 +8,0,2060,7,"GWh/mth","agri",0.0129191984705233 +8,0,2060,7,"GWh/mth","ind_man",3.72189436207028 +8,0,2060,7,"GWh/mth","res_com",10.6211875902047 +8,0,2060,8,"GWh/mth","agri",0.0279935509208839 +8,0,2060,8,"GWh/mth","ind_man",3.83498159756718 +8,0,2060,8,"GWh/mth","res_com",10.6619968329169 +8,0,2060,9,"GWh/mth","agri",0.0503199179656838 +8,0,2060,9,"GWh/mth","ind_man",3.95024237825577 +8,0,2060,9,"GWh/mth","res_com",10.8271043662204 +8,0,2060,10,"GWh/mth","agri",0.043907950855062 +8,0,2060,10,"GWh/mth","ind_man",4.05520104289918 +8,0,2060,10,"GWh/mth","res_com",11.0458402068452 +8,0,2060,11,"GWh/mth","agri",0.0283429982131169 +8,0,2060,11,"GWh/mth","ind_man",4.15163346146996 +8,0,2060,11,"GWh/mth","res_com",10.7840569640242 +8,0,2060,12,"GWh/mth","agri",0.0126755655800824 +8,0,2060,12,"GWh/mth","ind_man",4.25511878346354 +8,0,2060,12,"GWh/mth","res_com",10.8591072115741 +8,1,2020,1,"GWh/mth","agri",0.0988654380522288 +8,1,2020,1,"GWh/mth","ind_man",2.47200327053839 +8,1,2020,1,"GWh/mth","res_com",9.59998199465288 +8,1,2020,2,"GWh/mth","agri",0.0566278856712804 +8,1,2020,2,"GWh/mth","ind_man",2.40300153784963 +8,1,2020,2,"GWh/mth","res_com",9.37462986460899 +8,1,2020,3,"GWh/mth","agri",0.0377519237808536 +8,1,2020,3,"GWh/mth","ind_man",2.34676738708428 +8,1,2020,3,"GWh/mth","res_com",9.2651421318742 +8,1,2020,4,"GWh/mth","agri",0 +8,1,2020,4,"GWh/mth","ind_man",2.29452464251494 +8,1,2020,4,"GWh/mth","res_com",9.04018839688701 +8,1,2020,5,"GWh/mth","agri",1.95676410846427e-09 +8,1,2020,5,"GWh/mth","ind_man",2.22632738189155 +8,1,2020,5,"GWh/mth","res_com",8.93668974036313 +8,1,2020,6,"GWh/mth","agri",1.09693344957038e-06 +8,1,2020,6,"GWh/mth","ind_man",2.16956533893604 +8,1,2020,6,"GWh/mth","res_com",8.84196754253835 +8,1,2020,7,"GWh/mth","agri",1.04524178900312e-05 +8,1,2020,7,"GWh/mth","ind_man",2.16290130535007 +8,1,2020,7,"GWh/mth","res_com",8.80378522287253 +8,1,2020,8,"GWh/mth","agri",0.000448168092024801 +8,1,2020,8,"GWh/mth","ind_man",2.2286195943395 +8,1,2020,8,"GWh/mth","res_com",9.02978677644576 +8,1,2020,9,"GWh/mth","agri",0.00115507787358734 +8,1,2020,9,"GWh/mth","ind_man",2.29560099379769 +8,1,2020,9,"GWh/mth","res_com",9.11314811012245 +8,1,2020,10,"GWh/mth","agri",0.000625229758701246 +8,1,2020,10,"GWh/mth","ind_man",2.35659553331996 +8,1,2020,10,"GWh/mth","res_com",9.2505308958393 +8,1,2020,11,"GWh/mth","agri",0.00014233556780334 +8,1,2020,11,"GWh/mth","ind_man",2.41263522271319 +8,1,2020,11,"GWh/mth","res_com",9.35494136313375 +8,1,2020,12,"GWh/mth","agri",0.000184478721249326 +8,1,2020,12,"GWh/mth","ind_man",2.47277355987437 +8,1,2020,12,"GWh/mth","res_com",9.54245546413985 +8,1,2030,1,"GWh/mth","agri",0.221148047608904 +8,1,2030,1,"GWh/mth","ind_man",5.67354666975117 +8,1,2030,1,"GWh/mth","res_com",19.1589746372144 +8,1,2030,2,"GWh/mth","agri",0.123926895561915 +8,1,2030,2,"GWh/mth","ind_man",5.51517934258412 +8,1,2030,2,"GWh/mth","res_com",18.6960821167162 +8,1,2030,3,"GWh/mth","agri",0.0826179303746098 +8,1,2030,3,"GWh/mth","ind_man",5.38611516107454 +8,1,2030,3,"GWh/mth","res_com",18.4335607128548 +8,1,2030,4,"GWh/mth","agri",0 +8,1,2030,4,"GWh/mth","ind_man",5.26621173982806 +8,1,2030,4,"GWh/mth","res_com",17.9957260280258 +8,1,2030,5,"GWh/mth","agri",3.39419124589823e-09 +8,1,2030,5,"GWh/mth","ind_man",5.1096907734089 +8,1,2030,5,"GWh/mth","res_com",17.724998144893 +8,1,2030,6,"GWh/mth","agri",1.93700266990403e-06 +8,1,2030,6,"GWh/mth","ind_man",4.97941501543695 +8,1,2030,6,"GWh/mth","res_com",17.4847224073541 +8,1,2030,7,"GWh/mth","agri",1.92597632884772e-05 +8,1,2030,7,"GWh/mth","ind_man",4.96412025187034 +8,1,2030,7,"GWh/mth","res_com",17.4150615925106 +8,1,2030,8,"GWh/mth","agri",0.000785701611358357 +8,1,2030,8,"GWh/mth","ind_man",5.11495167838237 +8,1,2030,8,"GWh/mth","res_com",17.8729706692292 +8,1,2030,9,"GWh/mth","agri",0.00203127071799042 +8,1,2030,9,"GWh/mth","ind_man",5.26868209628289 +8,1,2030,9,"GWh/mth","res_com",18.1131602529941 +8,1,2030,10,"GWh/mth","agri",0.0011012700160087 +8,1,2030,10,"GWh/mth","ind_man",5.40867194609576 +8,1,2030,10,"GWh/mth","res_com",18.429400339411 +8,1,2030,11,"GWh/mth","agri",0.00025225115364546 +8,1,2030,11,"GWh/mth","ind_man",5.53728981522243 +8,1,2030,11,"GWh/mth","res_com",18.6752752647674 +8,1,2030,12,"GWh/mth","agri",0.000666707553229753 +8,1,2030,12,"GWh/mth","ind_man",5.67531457699829 +8,1,2030,12,"GWh/mth","res_com",19.0650407314341 +8,1,2040,1,"GWh/mth","agri",0.3426873837723 +8,1,2040,1,"GWh/mth","ind_man",6.8013449207354 +8,1,2040,1,"GWh/mth","res_com",25.3725963958916 +8,1,2040,2,"GWh/mth","agri",0.192040729822801 +8,1,2040,2,"GWh/mth","ind_man",6.61149703916588 +8,1,2040,2,"GWh/mth","res_com",24.7757069896036 +8,1,2040,3,"GWh/mth","agri",0.128027153415841 +8,1,2040,3,"GWh/mth","ind_man",6.45677723752238 +8,1,2040,3,"GWh/mth","res_com",24.4667339330799 +8,1,2040,4,"GWh/mth","agri",6.01921634337352e-10 +8,1,2040,4,"GWh/mth","ind_man",6.31303918925332 +8,1,2040,4,"GWh/mth","res_com",23.8795967006405 +8,1,2040,5,"GWh/mth","agri",7.40911058760484e-09 +8,1,2040,5,"GWh/mth","ind_man",6.12540469148506 +8,1,2040,5,"GWh/mth","res_com",23.5786363520354 +8,1,2040,6,"GWh/mth","agri",3.88801072388389e-06 +8,1,2040,6,"GWh/mth","ind_man",5.96923247393699 +8,1,2040,6,"GWh/mth","res_com",23.3049953145256 +8,1,2040,7,"GWh/mth","agri",3.89069870765755e-05 +8,1,2040,7,"GWh/mth","ind_man",5.95089738857456 +8,1,2040,7,"GWh/mth","res_com",23.2087516488181 +8,1,2040,8,"GWh/mth","agri",0.00151809848877548 +8,1,2040,8,"GWh/mth","ind_man",6.13171136901898 +8,1,2040,8,"GWh/mth","res_com",23.8035982675476 +8,1,2040,9,"GWh/mth","agri",0.00393022233070111 +8,1,2040,9,"GWh/mth","ind_man",6.3160006077988 +8,1,2040,9,"GWh/mth","res_com",24.0594572516395 +8,1,2040,10,"GWh/mth","agri",0.00214813207054661 +8,1,2040,10,"GWh/mth","ind_man",6.48381790258824 +8,1,2040,10,"GWh/mth","res_com",24.4433617212228 +8,1,2040,11,"GWh/mth","agri",0.000639076293001219 +8,1,2040,11,"GWh/mth","ind_man",6.63800267303604 +8,1,2040,11,"GWh/mth","res_com",24.7267627637163 +8,1,2040,12,"GWh/mth","agri",0.00172846188298262 +8,1,2040,12,"GWh/mth","ind_man",6.80346425590183 +8,1,2040,12,"GWh/mth","res_com",25.2258387674836 +8,1,2050,1,"GWh/mth","agri",0.530198167717406 +8,1,2050,1,"GWh/mth","ind_man",9.96660295981357 +8,1,2050,1,"GWh/mth","res_com",37.884445253613 +8,1,2050,2,"GWh/mth","agri",0.297112335687598 +8,1,2050,2,"GWh/mth","ind_man",9.6884023273774 +8,1,2050,2,"GWh/mth","res_com",36.999970367263 +8,1,2050,3,"GWh/mth","agri",0.198074890458399 +8,1,2050,3,"GWh/mth","ind_man",9.4616779293395 +8,1,2050,3,"GWh/mth","res_com",36.5540268559504 +8,1,2050,4,"GWh/mth","agri",0 +8,1,2050,4,"GWh/mth","ind_man",9.25104605079019 +8,1,2050,4,"GWh/mth","res_com",35.674711905678 +8,1,2050,5,"GWh/mth","agri",1.06143800722995e-08 +8,1,2050,5,"GWh/mth","ind_man",8.97608888237502 +8,1,2050,5,"GWh/mth","res_com",35.248254131148 +8,1,2050,6,"GWh/mth","agri",6.13868546749048e-06 +8,1,2050,6,"GWh/mth","ind_man",8.7472361328387 +8,1,2050,6,"GWh/mth","res_com",34.8573747793216 +8,1,2050,7,"GWh/mth","agri",8.22360396012345e-05 +8,1,2050,7,"GWh/mth","ind_man",8.7203681356747 +8,1,2050,7,"GWh/mth","res_com",34.7122157359898 +8,1,2050,8,"GWh/mth","agri",0.00264577974164094 +8,1,2050,8,"GWh/mth","ind_man",8.98533060613829 +8,1,2050,8,"GWh/mth","res_com",35.5954590092645 +8,1,2050,9,"GWh/mth","agri",0.00666895285604699 +8,1,2050,9,"GWh/mth","ind_man",9.25538567525927 +8,1,2050,9,"GWh/mth","res_com",35.9528402241775 +8,1,2050,10,"GWh/mth","agri",0.00362132963424799 +8,1,2050,10,"GWh/mth","ind_man",9.50130297050731 +8,1,2050,10,"GWh/mth","res_com",36.5123214082539 +8,1,2050,11,"GWh/mth","agri",0.00102689651651342 +8,1,2050,11,"GWh/mth","ind_man",9.72724334074472 +8,1,2050,11,"GWh/mth","res_com",36.9181638048738 +8,1,2050,12,"GWh/mth","agri",0.00293721365141014 +8,1,2050,12,"GWh/mth","ind_man",9.96970860618038 +8,1,2050,12,"GWh/mth","res_com",37.6562916310079 +8,1,2060,1,"GWh/mth","agri",0.816775835771777 +8,1,2060,1,"GWh/mth","ind_man",15.2974912952798 +8,1,2060,1,"GWh/mth","res_com",58.1967249789635 +8,1,2060,2,"GWh/mth","agri",0.457704667943491 +8,1,2060,2,"GWh/mth","ind_man",14.8704880555407 +8,1,2060,2,"GWh/mth","res_com",56.8378050465411 +8,1,2060,3,"GWh/mth","agri",0.305136445295661 +8,1,2060,3,"GWh/mth","ind_man",14.5224944092204 +8,1,2060,3,"GWh/mth","res_com",56.154033337534 +8,1,2060,4,"GWh/mth","agri",0 +8,1,2060,4,"GWh/mth","ind_man",14.199200771297 +8,1,2060,4,"GWh/mth","res_com",54.8024830286372 +8,1,2060,5,"GWh/mth","agri",1.64343533942294e-08 +8,1,2060,5,"GWh/mth","ind_man",13.7771758439105 +8,1,2060,5,"GWh/mth","res_com",54.1492044942561 +8,1,2060,6,"GWh/mth","agri",9.53272797953817e-06 +8,1,2060,6,"GWh/mth","ind_man",13.4259154437472 +8,1,2060,6,"GWh/mth","res_com",53.5502766985648 +8,1,2060,7,"GWh/mth","agri",9.81164297367513e-05 +8,1,2060,7,"GWh/mth","ind_man",13.3846764223479 +8,1,2060,7,"GWh/mth","res_com",53.3268653015421 +8,1,2060,8,"GWh/mth","agri",0.00364404846372052 +8,1,2060,8,"GWh/mth","ind_man",13.7913607361342 +8,1,2060,8,"GWh/mth","res_com",54.6840677695447 +8,1,2060,9,"GWh/mth","agri",0.00942405632968148 +8,1,2060,9,"GWh/mth","ind_man",14.2058615530908 +8,1,2060,9,"GWh/mth","res_com",55.2307374727411 +8,1,2060,10,"GWh/mth","agri",0.00513538004767755 +8,1,2060,10,"GWh/mth","ind_man",14.583313900554 +8,1,2060,10,"GWh/mth","res_com",56.0887160767322 +8,1,2060,11,"GWh/mth","agri",0.00179155793132455 +8,1,2060,11,"GWh/mth","ind_man",14.93010416208 +8,1,2060,11,"GWh/mth","res_com",56.711994962907 +8,1,2060,12,"GWh/mth","agri",0.00514870451687144 +8,1,2060,12,"GWh/mth","ind_man",15.3022580747386 +8,1,2060,12,"GWh/mth","res_com",57.8458797458512 +9,0,2020,1,"GWh/mth","agri",0.0405665340961409 +9,0,2020,1,"GWh/mth","ind_man",2.96176739165973 +9,0,2020,1,"GWh/mth","res_com",8.99125782548977 +9,0,2020,2,"GWh/mth","agri",0.0441045027185914 +9,0,2020,2,"GWh/mth","ind_man",2.87909473330152 +9,0,2020,2,"GWh/mth","res_com",8.75109468241181 +9,0,2020,3,"GWh/mth","agri",0.0294030635996171 +9,0,2020,3,"GWh/mth","ind_man",2.81171922614929 +9,0,2020,3,"GWh/mth","res_com",8.55470296212014 +9,0,2020,4,"GWh/mth","agri",0.000411577717343527 +9,0,2020,4,"GWh/mth","ind_man",2.74912592008034 +9,0,2020,4,"GWh/mth","res_com",8.36736824239675 +9,0,2020,5,"GWh/mth","agri",8.59909515146814e-05 +9,0,2020,5,"GWh/mth","ind_man",2.66741711931856 +9,0,2020,5,"GWh/mth","res_com",8.1330901376616 +9,0,2020,6,"GWh/mth","agri",2.53746097949322e-05 +9,0,2020,6,"GWh/mth","ind_man",2.59940913166205 +9,0,2020,6,"GWh/mth","res_com",7.93525697962569 +9,0,2020,7,"GWh/mth","agri",2.5402982484633e-05 +9,0,2020,7,"GWh/mth","ind_man",2.59142479053796 +9,0,2020,7,"GWh/mth","res_com",7.91303739138265 +9,0,2020,8,"GWh/mth","agri",3.2943749207661e-05 +9,0,2020,8,"GWh/mth","ind_man",2.67016347494195 +9,0,2020,8,"GWh/mth","res_com",8.14087098980298 +9,0,2020,9,"GWh/mth","agri",4.43531540313258e-05 +9,0,2020,9,"GWh/mth","ind_man",2.75041552279617 +9,0,2020,9,"GWh/mth","res_com",8.37550041958464 +9,0,2020,10,"GWh/mth","agri",4.77376538215333e-05 +9,0,2020,10,"GWh/mth","ind_man",2.82349456778749 +9,0,2020,10,"GWh/mth","res_com",8.59335706064172 +9,0,2020,11,"GWh/mth","agri",0.000511957649773115 +9,0,2020,11,"GWh/mth","ind_man",2.89063708602834 +9,0,2020,11,"GWh/mth","res_com",8.77373947522273 +9,0,2020,12,"GWh/mth","agri",0.000470556825403446 +9,0,2020,12,"GWh/mth","ind_man",2.96269029409462 +9,0,2020,12,"GWh/mth","res_com",8.98329425359786 +9,0,2030,1,"GWh/mth","agri",0.0634819722457833 +9,0,2030,1,"GWh/mth","ind_man",3.56950691920085 +9,0,2030,1,"GWh/mth","res_com",10.472471450672 +9,0,2030,2,"GWh/mth","agri",0.0690157798722409 +9,0,2030,2,"GWh/mth","ind_man",3.46987025398894 +9,0,2030,2,"GWh/mth","res_com",10.1965326363193 +9,0,2030,3,"GWh/mth","agri",0.0460208677059509 +9,0,2030,3,"GWh/mth","ind_man",3.38866963720797 +9,0,2030,3,"GWh/mth","res_com",9.97074234410613 +9,0,2030,4,"GWh/mth","agri",0.00233539067886622 +9,0,2030,4,"GWh/mth","ind_man",3.31323250472486 +9,0,2030,4,"GWh/mth","res_com",9.75342905715421 +9,0,2030,5,"GWh/mth","agri",0.000331116002380504 +9,0,2030,5,"GWh/mth","ind_man",3.21475747576071 +9,0,2030,5,"GWh/mth","res_com",9.48553599021384 +9,0,2030,6,"GWh/mth","agri",3.10444426519096e-05 +9,0,2030,6,"GWh/mth","ind_man",3.13279459670935 +9,0,2030,6,"GWh/mth","res_com",9.25825200095374 +9,0,2030,7,"GWh/mth","agri",3.12144589042913e-05 +9,0,2030,7,"GWh/mth","ind_man",3.12317190960437 +9,0,2030,7,"GWh/mth","res_com",9.23305241414524 +9,0,2030,8,"GWh/mth","agri",3.87258736752889e-05 +9,0,2030,8,"GWh/mth","ind_man",3.21806736951802 +9,0,2030,8,"GWh/mth","res_com",9.49449931082405 +9,0,2030,9,"GWh/mth","agri",7.98214458093825e-05 +9,0,2030,9,"GWh/mth","ind_man",3.31478672732523 +9,0,2030,9,"GWh/mth","res_com",9.76446257597343 +9,0,2030,10,"GWh/mth","agri",9.81259731001871e-05 +9,0,2030,10,"GWh/mth","ind_man",3.4028612187521 +9,0,2030,10,"GWh/mth","res_com",10.0167003780786 +9,0,2030,11,"GWh/mth","agri",0.000783177895642161 +9,0,2030,11,"GWh/mth","ind_man",3.48378103848818 +9,0,2030,11,"GWh/mth","res_com",10.2185208138395 +9,0,2030,12,"GWh/mth","agri",0.000708335540943348 +9,0,2030,12,"GWh/mth","ind_man",3.5706191964973 +9,0,2030,12,"GWh/mth","res_com",10.4593661909638 +9,0,2040,1,"GWh/mth","agri",0.0982189722712073 +9,0,2040,1,"GWh/mth","ind_man",5.90916611040639 +9,0,2040,1,"GWh/mth","res_com",17.1928917473303 +9,0,2040,2,"GWh/mth","agri",0.106780977987463 +9,0,2040,2,"GWh/mth","ind_man",5.74422187055717 +9,0,2040,2,"GWh/mth","res_com",16.7383285932354 +9,0,2040,3,"GWh/mth","agri",0.0712028403785918 +9,0,2040,3,"GWh/mth","ind_man",5.60979772075509 +9,0,2040,3,"GWh/mth","res_com",16.3664677867309 +9,0,2040,4,"GWh/mth","agri",0.00686185784242508 +9,0,2040,4,"GWh/mth","ind_man",5.48491477282254 +9,0,2040,4,"GWh/mth","res_com",16.0093207630976 +9,0,2040,5,"GWh/mth","agri",0.00105088164372643 +9,0,2040,5,"GWh/mth","ind_man",5.32189357212221 +9,0,2040,5,"GWh/mth","res_com",15.5675282131389 +9,0,2040,6,"GWh/mth","agri",4.6569228399401e-05 +9,0,2040,6,"GWh/mth","ind_man",5.18620752971778 +9,0,2040,6,"GWh/mth","res_com",15.1931449837248 +9,0,2040,7,"GWh/mth","agri",4.75441603598948e-05 +9,0,2040,7,"GWh/mth","ind_man",5.17027758257971 +9,0,2040,7,"GWh/mth","res_com",15.1514877050774 +9,0,2040,8,"GWh/mth","agri",0.000104098939307203 +9,0,2040,8,"GWh/mth","ind_man",5.32737295974143 +9,0,2040,8,"GWh/mth","res_com",15.5823141383252 +9,0,2040,9,"GWh/mth","agri",0.000358920202933002 +9,0,2040,9,"GWh/mth","ind_man",5.48748772189535 +9,0,2040,9,"GWh/mth","res_com",16.0268229506092 +9,0,2040,10,"GWh/mth","agri",0.000448544343591625 +9,0,2040,10,"GWh/mth","ind_man",5.63329127731959 +9,0,2040,10,"GWh/mth","res_com",16.4415096965817 +9,0,2040,11,"GWh/mth","agri",0.0012684511017571 +9,0,2040,11,"GWh/mth","ind_man",5.76725057961776 +9,0,2040,11,"GWh/mth","res_com",16.7762060592415 +9,0,2040,12,"GWh/mth","agri",0.00109551355293337 +9,0,2040,12,"GWh/mth","ind_man",5.91100743792146 +9,0,2040,12,"GWh/mth","res_com",17.1729234510692 +9,0,2050,1,"GWh/mth","agri",0.152185623070319 +9,0,2050,1,"GWh/mth","ind_man",9.6858443442335 +9,0,2050,1,"GWh/mth","res_com",28.0688082755766 +9,0,2050,2,"GWh/mth","agri",0.165452819845383 +9,0,2050,2,"GWh/mth","ind_man",9.41548060714987 +9,0,2050,2,"GWh/mth","res_com",27.3245917952346 +9,0,2050,3,"GWh/mth","agri",0.110322962683425 +9,0,2050,3,"GWh/mth","ind_man",9.19514302198773 +9,0,2050,3,"GWh/mth","res_com",26.7158999600669 +9,0,2050,4,"GWh/mth","agri",0.0150271739550444 +9,0,2050,4,"GWh/mth","ind_man",8.9904446309925 +9,0,2050,4,"GWh/mth","res_com",26.1323129636958 +9,0,2050,5,"GWh/mth","agri",0.00229802337722623 +9,0,2050,5,"GWh/mth","ind_man",8.72323298974033 +9,0,2050,5,"GWh/mth","res_com",25.4083496998224 +9,0,2050,6,"GWh/mth","agri",6.32587897751503e-05 +9,0,2050,6,"GWh/mth","ind_man",8.50082700861553 +9,0,2050,6,"GWh/mth","res_com",24.7954443826143 +9,0,2050,7,"GWh/mth","agri",6.51784355849951e-05 +9,0,2050,7,"GWh/mth","ind_man",8.47471588134166 +9,0,2050,7,"GWh/mth","res_com",24.7270458859373 +9,0,2050,8,"GWh/mth","agri",0.000155261082696208 +9,0,2050,8,"GWh/mth","ind_man",8.73221437469209 +9,0,2050,8,"GWh/mth","res_com",25.4325849732406 +9,0,2050,9,"GWh/mth","agri",0.000709931504168598 +9,0,2050,9,"GWh/mth","ind_man",8.99466200849709 +9,0,2050,9,"GWh/mth","res_com",26.1600549937047 +9,0,2050,10,"GWh/mth","agri",0.000974219338816215 +9,0,2050,10,"GWh/mth","ind_man",9.23365182809075 +9,0,2050,10,"GWh/mth","res_com",26.8378567840868 +9,0,2050,11,"GWh/mth","agri",0.0020465366457138 +9,0,2050,11,"GWh/mth","ind_man",9.45322747146914 +9,0,2050,11,"GWh/mth","res_com",27.3888484028893 +9,0,2050,12,"GWh/mth","agri",0.0016979330193776 +9,0,2050,12,"GWh/mth","ind_man",9.68886250472594 +9,0,2050,12,"GWh/mth","res_com",28.0383114133271 +9,0,2060,1,"GWh/mth","agri",0.234456369747537 +9,0,2060,1,"GWh/mth","ind_man",15.4091294956261 +9,0,2060,1,"GWh/mth","res_com",44.6261937755457 +9,0,2060,2,"GWh/mth","agri",0.254894625467947 +9,0,2060,2,"GWh/mth","ind_man",14.9790100669442 +9,0,2060,2,"GWh/mth","res_com",43.4410354531544 +9,0,2060,3,"GWh/mth","agri",0.169966502658018 +9,0,2060,3,"GWh/mth","ind_man",14.6284768287616 +9,0,2060,3,"GWh/mth","res_com",42.4718122662408 +9,0,2060,4,"GWh/mth","agri",0.0318844785375452 +9,0,2060,4,"GWh/mth","ind_man",14.302823854969 +9,0,2060,4,"GWh/mth","res_com",41.5435010829216 +9,0,2060,5,"GWh/mth","agri",0.00490301977250366 +9,0,2060,5,"GWh/mth","ind_man",13.8777190694224 +9,0,2060,5,"GWh/mth","res_com",40.389994070891 +9,0,2060,6,"GWh/mth","agri",0.000110275506133627 +9,0,2060,6,"GWh/mth","ind_man",13.5238952372446 +9,0,2060,6,"GWh/mth","res_com",39.4139840140021 +9,0,2060,7,"GWh/mth","agri",0.000116033968143296 +9,0,2060,7,"GWh/mth","ind_man",13.4823552612611 +9,0,2060,7,"GWh/mth","res_com",39.304879298586 +9,0,2060,8,"GWh/mth","agri",0.00040625435321597 +9,0,2060,8,"GWh/mth","ind_man",13.8920074803087 +9,0,2060,8,"GWh/mth","res_com",40.4286138663609 +9,0,2060,9,"GWh/mth","agri",0.00202687365822708 +9,0,2060,9,"GWh/mth","ind_man",14.3095332458895 +9,0,2060,9,"GWh/mth","res_com",41.5868414150252 +9,0,2060,10,"GWh/mth","agri",0.00275115757248258 +9,0,2060,10,"GWh/mth","ind_man",14.6897401692485 +9,0,2060,10,"GWh/mth","res_com",42.6651980699869 +9,0,2060,11,"GWh/mth","agri",0.00344135029157372 +9,0,2060,11,"GWh/mth","ind_man",15.0390612405619 +9,0,2060,11,"GWh/mth","res_com",43.5454244461376 +9,0,2060,12,"GWh/mth","agri",0.00261701121754766 +9,0,2060,12,"GWh/mth","ind_man",15.4139310621404 +9,0,2060,12,"GWh/mth","res_com",44.5796448934396 +9,1,2020,1,"GWh/mth","agri",0.00813020007206236 +9,1,2020,1,"GWh/mth","ind_man",26.2681960116506 +9,1,2020,1,"GWh/mth","res_com",85.2409045337089 +9,1,2020,2,"GWh/mth","agri",0.00505637643993057 +9,1,2020,2,"GWh/mth","ind_man",25.5379130974122 +9,1,2020,2,"GWh/mth","res_com",82.8722332157037 +9,1,2020,3,"GWh/mth","agri",0.00337091762662045 +9,1,2020,3,"GWh/mth","ind_man",24.9427564556814 +9,1,2020,3,"GWh/mth","res_com",80.9593371059513 +9,1,2020,4,"GWh/mth","agri",5.6510495855709e-07 +9,1,2020,4,"GWh/mth","ind_man",24.3898430393763 +9,1,2020,4,"GWh/mth","res_com",79.152091371786 +9,1,2020,5,"GWh/mth","agri",1.53700434118597e-07 +9,1,2020,5,"GWh/mth","ind_man",23.6680742911077 +9,1,2020,5,"GWh/mth","res_com",76.8401108550577 +9,1,2020,6,"GWh/mth","agri",6.51454729716311e-13 +9,1,2020,6,"GWh/mth","ind_man",23.0673306788471 +9,1,2020,6,"GWh/mth","res_com",74.9129413610765 +9,1,2020,7,"GWh/mth","agri",1.52882844658469e-11 +9,1,2020,7,"GWh/mth","ind_man",22.9968015822852 +9,1,2020,7,"GWh/mth","res_com",74.6803400200473 +9,1,2020,8,"GWh/mth","agri",3.0605419474071e-09 +9,1,2020,8,"GWh/mth","ind_man",23.692334023745 +9,1,2020,8,"GWh/mth","res_com",76.9382216523849 +9,1,2020,9,"GWh/mth","agri",1.11930730556186e-07 +9,1,2020,9,"GWh/mth","ind_man",24.4012346511646 +9,1,2020,9,"GWh/mth","res_com",79.2064183032896 +9,1,2020,10,"GWh/mth","agri",1.96058252787015e-07 +9,1,2020,10,"GWh/mth","ind_man",25.0467730795382 +9,1,2020,10,"GWh/mth","res_com",81.2859790518083 +9,1,2020,11,"GWh/mth","agri",9.20367454623927e-08 +9,1,2020,11,"GWh/mth","ind_man",25.6398716306674 +9,1,2020,11,"GWh/mth","res_com",83.1887221829669 +9,1,2020,12,"GWh/mth","agri",1.04740333193976e-08 +9,1,2020,12,"GWh/mth","ind_man",26.2763484031801 +9,1,2020,12,"GWh/mth","res_com",85.2510272132865 +9,1,2030,1,"GWh/mth","agri",0.0127166088692563 +9,1,2030,1,"GWh/mth","ind_man",32.112913085198 +9,1,2030,1,"GWh/mth","res_com",104.167338269115 +9,1,2030,2,"GWh/mth","agri",0.00790877972404056 +9,1,2030,2,"GWh/mth","ind_man",31.220203463852 +9,1,2030,2,"GWh/mth","res_com",101.276923772361 +9,1,2030,3,"GWh/mth","agri",0.00527251981602756 +9,1,2030,3,"GWh/mth","ind_man",30.4926743789972 +9,1,2030,3,"GWh/mth","res_com",98.9485589540743 +9,1,2030,4,"GWh/mth","agri",4.17290927009818e-06 +9,1,2030,4,"GWh/mth","ind_man",29.8167840947208 +9,1,2030,4,"GWh/mth","res_com",96.7382526577386 +9,1,2030,5,"GWh/mth","agri",1.13863920054962e-06 +9,1,2030,5,"GWh/mth","ind_man",28.9344823272776 +9,1,2030,5,"GWh/mth","res_com",93.92701040283 +9,1,2030,6,"GWh/mth","agri",5.12374896263486e-12 +9,1,2030,6,"GWh/mth","ind_man",28.2001236394718 +9,1,2030,6,"GWh/mth","res_com",91.5825532506423 +9,1,2030,7,"GWh/mth","agri",1.19711474323607e-10 +9,1,2030,7,"GWh/mth","ind_man",28.1139077334742 +9,1,2030,7,"GWh/mth","res_com",91.2974714881752 +9,1,2030,8,"GWh/mth","agri",2.23522559568501e-08 +9,1,2030,8,"GWh/mth","ind_man",28.9641378160126 +9,1,2030,8,"GWh/mth","res_com",94.0533057076423 +9,1,2030,9,"GWh/mth","agri",7.69264227704749e-07 +9,1,2030,9,"GWh/mth","ind_man",29.8307093848348 +9,1,2030,9,"GWh/mth","res_com",96.8106525256408 +9,1,2030,10,"GWh/mth","agri",1.34425742086977e-06 +9,1,2030,10,"GWh/mth","ind_man",30.6198259788587 +9,1,2030,10,"GWh/mth","res_com",99.3437585207017 +9,1,2030,11,"GWh/mth","agri",5.70085011647103e-07 +9,1,2030,11,"GWh/mth","ind_man",31.3448392205438 +9,1,2030,11,"GWh/mth","res_com",101.657748584862 +9,1,2030,12,"GWh/mth","agri",1.92630317221101e-08 +9,1,2030,12,"GWh/mth","ind_man",32.1228787001855 +9,1,2030,12,"GWh/mth","res_com",104.173615370462 +9,1,2040,1,"GWh/mth","agri",0.0196753637241383 +9,1,2040,1,"GWh/mth","ind_man",48.6180936007771 +9,1,2040,1,"GWh/mth","res_com",157.91638778655 +9,1,2040,2,"GWh/mth","agri",0.0122366048436692 +9,1,2040,2,"GWh/mth","ind_man",47.2655516329691 +9,1,2040,2,"GWh/mth","res_com",153.535093750833 +9,1,2040,3,"GWh/mth","agri",0.00815773656245248 +9,1,2040,3,"GWh/mth","ind_man",46.1632742557146 +9,1,2040,3,"GWh/mth","res_com",150.006610762647 +9,1,2040,4,"GWh/mth","agri",5.04622684547188e-05 +9,1,2040,4,"GWh/mth","ind_man",45.1392346875747 +9,1,2040,4,"GWh/mth","res_com",146.655537304409 +9,1,2040,5,"GWh/mth","agri",1.36551184153746e-05 +9,1,2040,5,"GWh/mth","ind_man",43.8024616314729 +9,1,2040,5,"GWh/mth","res_com",142.395681280591 +9,1,2040,6,"GWh/mth","agri",3.41683203531389e-11 +9,1,2040,6,"GWh/mth","ind_man",42.6898367409915 +9,1,2040,6,"GWh/mth","res_com",138.842994656519 +9,1,2040,7,"GWh/mth","agri",1.39742150867966e-09 +9,1,2040,7,"GWh/mth","ind_man",42.5592112516207 +9,1,2040,7,"GWh/mth","res_com",138.410680990082 +9,1,2040,8,"GWh/mth","agri",2.45793656059154e-07 +9,1,2040,8,"GWh/mth","ind_man",43.8473925834094 +9,1,2040,8,"GWh/mth","res_com",142.588071058261 +9,1,2040,9,"GWh/mth","agri",8.00733027495498e-06 +9,1,2040,9,"GWh/mth","ind_man",45.160332857509 +9,1,2040,9,"GWh/mth","res_com",146.76613918382 +9,1,2040,10,"GWh/mth","agri",1.39508674603515e-05 +9,1,2040,10,"GWh/mth","ind_man",46.3559213057456 +9,1,2040,10,"GWh/mth","res_com",150.605136663003 +9,1,2040,11,"GWh/mth","agri",5.74825751608333e-06 +9,1,2040,11,"GWh/mth","ind_man",47.4543869357197 +9,1,2040,11,"GWh/mth","res_com",154.111634688086 +9,1,2040,12,"GWh/mth","agri",6.24999032303758e-08 +9,1,2040,12,"GWh/mth","ind_man",48.6331924774816 +9,1,2040,12,"GWh/mth","res_com",157.92508612352 +9,1,2050,1,"GWh/mth","agri",0.0304878238580804 +9,1,2050,1,"GWh/mth","ind_man",74.3997635925894 +9,1,2050,1,"GWh/mth","res_com",241.898192671683 +9,1,2050,2,"GWh/mth","agri",0.0189611464532688 +9,1,2050,2,"GWh/mth","ind_man",72.3286609188191 +9,1,2050,2,"GWh/mth","res_com",235.187347502539 +9,1,2050,3,"GWh/mth","agri",0.0126407643022029 +9,1,2050,3,"GWh/mth","ind_man",70.64078011541 +9,1,2050,3,"GWh/mth","res_com",229.783507872709 +9,1,2050,4,"GWh/mth","agri",0.000187749046839154 +9,1,2050,4,"GWh/mth","ind_man",69.0727022752389 +9,1,2050,4,"GWh/mth","res_com",224.650050861495 +9,1,2050,5,"GWh/mth","agri",5.0804998377409e-05 +9,1,2050,5,"GWh/mth","ind_man",67.0257460131692 +9,1,2050,5,"GWh/mth","res_com",218.126467893449 +9,1,2050,6,"GWh/mth","agri",1.27126064183047e-10 +9,1,2050,6,"GWh/mth","ind_man",65.3220204058123 +9,1,2050,6,"GWh/mth","res_com",212.685721633911 +9,1,2050,7,"GWh/mth","agri",5.19922239569086e-09 +9,1,2050,7,"GWh/mth","ind_man",65.1219979246342 +9,1,2050,7,"GWh/mth","res_com",212.023381375292 +9,1,2050,8,"GWh/mth","agri",9.14495643128419e-07 +9,1,2050,8,"GWh/mth","ind_man",67.0945472902502 +9,1,2050,8,"GWh/mth","res_com",218.421987739381 +9,1,2050,9,"GWh/mth","agri",2.97919351009381e-05 +9,1,2050,9,"GWh/mth","ind_man",69.1050092033805 +9,1,2050,9,"GWh/mth","res_com",224.820214049007 +9,1,2050,10,"GWh/mth","agri",5.19053571801019e-05 +9,1,2050,10,"GWh/mth","ind_man",70.9357741561937 +9,1,2050,10,"GWh/mth","res_com",230.699817138157 +9,1,2050,11,"GWh/mth","agri",2.13300502980005e-05 +9,1,2050,11,"GWh/mth","ind_man",72.6178181573651 +9,1,2050,11,"GWh/mth","res_com",236.069810388059 +9,1,2050,12,"GWh/mth","agri",1.80453256977071e-07 +9,1,2050,12,"GWh/mth","ind_man",74.4228840019061 +9,1,2050,12,"GWh/mth","res_com",241.910798607779 +9,1,2060,1,"GWh/mth","agri",0.0469668122765352 +9,1,2060,1,"GWh/mth","ind_man",113.845752904606 +9,1,2060,1,"GWh/mth","res_com",370.316984000476 +9,1,2060,2,"GWh/mth","agri",0.029209844892965 +9,1,2060,2,"GWh/mth","ind_man",110.674848330443 +9,1,2060,2,"GWh/mth","res_com",360.043886740621 +9,1,2060,3,"GWh/mth","agri",0.0194732299286788 +9,1,2060,3,"GWh/mth","ind_man",108.090665021738 +9,1,2060,3,"GWh/mth","res_com",351.772212520741 +9,1,2060,4,"GWh/mth","agri",0.000375587302696867 +9,1,2060,4,"GWh/mth","ind_man",105.689902732638 +9,1,2060,4,"GWh/mth","res_com",343.913303893699 +9,1,2060,5,"GWh/mth","agri",0.000100764948155889 +9,1,2060,5,"GWh/mth","ind_man",102.555966855528 +9,1,2060,5,"GWh/mth","res_com",333.927927850186 +9,1,2060,6,"GWh/mth","agri",3.59902198726382e-10 +9,1,2060,6,"GWh/mth","ind_man",99.9475247971476 +9,1,2060,6,"GWh/mth","res_com",325.599896087686 +9,1,2060,7,"GWh/mth","agri",1.57651976762673e-08 +9,1,2060,7,"GWh/mth","ind_man",99.6412858991269 +9,1,2060,7,"GWh/mth","res_com",324.585834435504 +9,1,2060,8,"GWh/mth","agri",3.03581035328212e-06 +9,1,2060,8,"GWh/mth","ind_man",102.661303151486 +9,1,2060,8,"GWh/mth","res_com",334.381018995467 +9,1,2060,9,"GWh/mth","agri",0.000107563123410314 +9,1,2060,9,"GWh/mth","ind_man",105.73936536311 +9,1,2060,9,"GWh/mth","res_com",344.174427670172 +9,1,2060,10,"GWh/mth","agri",0.000187720741382434 +9,1,2060,10,"GWh/mth","ind_man",108.542307504324 +9,1,2060,10,"GWh/mth","res_com",353.174534100268 +9,1,2060,11,"GWh/mth","agri",7.69648718187154e-05 +9,1,2060,11,"GWh/mth","ind_man",111.117554538093 +9,1,2060,11,"GWh/mth","res_com",361.394250885451 +9,1,2060,12,"GWh/mth","agri",5.74336917708698e-07 +9,1,2060,12,"GWh/mth","ind_man",113.881150769032 +9,1,2060,12,"GWh/mth","res_com",370.335677624765 +10,0,2020,1,"GWh/mth","agri",0.000110434211780422 +10,0,2020,1,"GWh/mth","ind_man",0 +10,0,2020,1,"GWh/mth","res_com",0.157281771341594 +10,0,2020,2,"GWh/mth","agri",0.000128235047091827 +10,0,2020,2,"GWh/mth","ind_man",0 +10,0,2020,2,"GWh/mth","res_com",0.158709568617207 +10,0,2020,3,"GWh/mth","agri",8.5490031394551e-05 +10,0,2020,3,"GWh/mth","ind_man",0 +10,0,2020,3,"GWh/mth","res_com",0.161430949928429 +10,0,2020,4,"GWh/mth","agri",0.000191932361678215 +10,0,2020,4,"GWh/mth","ind_man",0 +10,0,2020,4,"GWh/mth","res_com",0.158777296252979 +10,0,2020,5,"GWh/mth","agri",6.13080599511924e-05 +10,0,2020,5,"GWh/mth","ind_man",0 +10,0,2020,5,"GWh/mth","res_com",0.164479663615101 +10,0,2020,6,"GWh/mth","agri",2.93438886130375e-10 +10,0,2020,6,"GWh/mth","ind_man",0 +10,0,2020,6,"GWh/mth","res_com",0.167801599988253 +10,0,2020,7,"GWh/mth","agri",7.12026779398884e-08 +10,0,2020,7,"GWh/mth","ind_man",0 +10,0,2020,7,"GWh/mth","res_com",0.167959228461463 +10,0,2020,8,"GWh/mth","agri",1.9972346975383e-06 +10,0,2020,8,"GWh/mth","ind_man",0 +10,0,2020,8,"GWh/mth","res_com",0.166527164562968 +10,0,2020,9,"GWh/mth","agri",7.31540969545214e-06 +10,0,2020,9,"GWh/mth","ind_man",0 +10,0,2020,9,"GWh/mth","res_com",0.1623762349401 +10,0,2020,10,"GWh/mth","agri",9.52343233090304e-06 +10,0,2020,10,"GWh/mth","ind_man",0 +10,0,2020,10,"GWh/mth","res_com",0.162014334616483 +10,0,2020,11,"GWh/mth","agri",3.91820130336111e-06 +10,0,2020,11,"GWh/mth","ind_man",0 +10,0,2020,11,"GWh/mth","res_com",0.15253216209681 +10,0,2020,12,"GWh/mth","agri",1.38051172147329e-06 +10,0,2020,12,"GWh/mth","ind_man",0 +10,0,2020,12,"GWh/mth","res_com",0.151172853215326 +10,0,2030,1,"GWh/mth","agri",0.000172732363846984 +10,0,2030,1,"GWh/mth","ind_man",0.402381126371707 +10,0,2030,1,"GWh/mth","res_com",1.03098429842158 +10,0,2030,2,"GWh/mth","agri",0.000200575007102349 +10,0,2030,2,"GWh/mth","ind_man",0.391149347169872 +10,0,2030,2,"GWh/mth","res_com",1.01130626535475 +10,0,2030,3,"GWh/mth","agri",0.000133716671401566 +10,0,2030,3,"GWh/mth","ind_man",0.381995815216579 +10,0,2030,3,"GWh/mth","res_com",0.997705857784307 +10,0,2030,4,"GWh/mth","agri",0.000571286687368345 +10,0,2030,4,"GWh/mth","ind_man",0.373491985688885 +10,0,2030,4,"GWh/mth","res_com",0.976965708535138 +10,0,2030,5,"GWh/mth","agri",0.000188728171151424 +10,0,2030,5,"GWh/mth","ind_man",0.362391154685887 +10,0,2030,5,"GWh/mth","res_com",0.964229073736789 +10,0,2030,6,"GWh/mth","agri",1.2000216079688e-09 +10,0,2030,6,"GWh/mth","ind_man",0.353151694911781 +10,0,2030,6,"GWh/mth","res_com",0.951400375898719 +10,0,2030,7,"GWh/mth","agri",2.72556223994316e-07 +10,0,2030,7,"GWh/mth","ind_man",0.352066954704331 +10,0,2030,7,"GWh/mth","res_com",0.949530783213316 +10,0,2030,8,"GWh/mth","agri",7.92961114167411e-06 +10,0,2030,8,"GWh/mth","ind_man",0.362764270303363 +10,0,2030,8,"GWh/mth","res_com",0.968159495730554 +10,0,2030,9,"GWh/mth","agri",2.97744518300483e-05 +10,0,2030,9,"GWh/mth","ind_man",0.37366718911466 +10,0,2030,9,"GWh/mth","res_com",0.982936672567002 +10,0,2030,10,"GWh/mth","agri",3.89257465698452e-05 +10,0,2030,10,"GWh/mth","ind_man",0.383595594876902 +10,0,2030,10,"GWh/mth","res_com",1.00173923785212 +10,0,2030,11,"GWh/mth","agri",1.24394695632245e-05 +10,0,2030,11,"GWh/mth","ind_man",0.392717473317886 +10,0,2030,11,"GWh/mth","res_com",1.00470320581466 +10,0,2030,12,"GWh/mth","agri",2.20180247196827e-06 +10,0,2030,12,"GWh/mth","ind_man",0.402506510465789 +10,0,2030,12,"GWh/mth","res_com",1.02167382006566 +10,0,2040,1,"GWh/mth","agri",0.000267254589691439 +10,0,2040,1,"GWh/mth","ind_man",0.7195551402391 +10,0,2040,1,"GWh/mth","res_com",1.78280106373419 +10,0,2040,2,"GWh/mth","agri",0.000310333223211034 +10,0,2040,2,"GWh/mth","ind_man",0.699469992281028 +10,0,2040,2,"GWh/mth","res_com",1.7471171057009 +10,0,2040,3,"GWh/mth","agri",0.000206888815474023 +10,0,2040,3,"GWh/mth","ind_man",0.683101254940574 +10,0,2040,3,"GWh/mth","res_com",1.72180571437269 +10,0,2040,4,"GWh/mth","agri",0.00215442631135038 +10,0,2040,4,"GWh/mth","ind_man",0.667894343265705 +10,0,2040,4,"GWh/mth","res_com",1.68575056556144 +10,0,2040,5,"GWh/mth","agri",0.000721372752075422 +10,0,2040,5,"GWh/mth","ind_man",0.64804336247752 +10,0,2040,5,"GWh/mth","res_com",1.66086752808554 +10,0,2040,6,"GWh/mth","agri",5.99421336194062e-09 +10,0,2040,6,"GWh/mth","ind_man",0.631520965332707 +10,0,2040,6,"GWh/mth","res_com",1.63671006877866 +10,0,2040,7,"GWh/mth","agri",1.24015444377178e-06 +10,0,2040,7,"GWh/mth","ind_man",0.629581186498812 +10,0,2040,7,"GWh/mth","res_com",1.63331155099047 +10,0,2040,8,"GWh/mth","agri",3.7661481416935e-05 +10,0,2040,8,"GWh/mth","ind_man",0.648710583783049 +10,0,2040,8,"GWh/mth","res_com",1.66712274330328 +10,0,2040,9,"GWh/mth","agri",0.000145924902148338 +10,0,2040,9,"GWh/mth","ind_man",0.668207649525222 +10,0,2040,9,"GWh/mth","res_com",1.69507065067908 +10,0,2040,10,"GWh/mth","agri",0.000192686928152902 +10,0,2040,10,"GWh/mth","ind_man",0.685962049352617 +10,0,2040,10,"GWh/mth","res_com",1.728792262682 +10,0,2040,11,"GWh/mth","agri",5.53435009274029e-05 +10,0,2040,11,"GWh/mth","ind_man",0.702274182528522 +10,0,2040,11,"GWh/mth","res_com",1.73763200412194 +10,0,2040,12,"GWh/mth","agri",3.65916235955892e-06 +10,0,2040,12,"GWh/mth","ind_man",0.719779357438884 +10,0,2040,12,"GWh/mth","res_com",1.7684541966055 +10,0,2050,1,"GWh/mth","agri",0.000414122502130922 +10,0,2050,1,"GWh/mth","ind_man",1.1042821732208 +10,0,2050,1,"GWh/mth","res_com",2.73861561605461 +10,0,2050,2,"GWh/mth","agri",0.000480874700931746 +10,0,2050,2,"GWh/mth","ind_man",1.07345802980737 +10,0,2050,2,"GWh/mth","res_com",2.68398923264247 +10,0,2050,3,"GWh/mth","agri",0.000320583133954497 +10,0,2050,3,"GWh/mth","ind_man",1.04833736311713 +10,0,2050,3,"GWh/mth","res_com",2.64531208868257 +10,0,2050,4,"GWh/mth","agri",0.00479465552329137 +10,0,2050,4,"GWh/mth","ind_man",1.02499971943534 +10,0,2050,4,"GWh/mth","res_com",2.58994842109113 +10,0,2050,5,"GWh/mth","agri",0.0016184187089131 +10,0,2050,5,"GWh/mth","ind_man",0.994534946161596 +10,0,2050,5,"GWh/mth","res_com",2.55205074788958 +10,0,2050,6,"GWh/mth","agri",1.89028461441545e-08 +10,0,2050,6,"GWh/mth","ind_man",0.969178461848484 +10,0,2050,6,"GWh/mth","res_com",2.5151667775673 +10,0,2050,7,"GWh/mth","agri",3.02329725384863e-06 +10,0,2050,7,"GWh/mth","ind_man",0.9662015347633 +10,0,2050,7,"GWh/mth","res_com",2.50996508837385 +10,0,2050,8,"GWh/mth","agri",9.57795829966037e-05 +10,0,2050,8,"GWh/mth","ind_man",0.995558912987882 +10,0,2050,8,"GWh/mth","res_com",2.5617213010429 +10,0,2050,9,"GWh/mth","agri",0.000385635962258025 +10,0,2050,9,"GWh/mth","ind_man",1.02548054223514 +10,0,2050,9,"GWh/mth","res_com",2.60437988312049 +10,0,2050,10,"GWh/mth","agri",0.000511059421358893 +10,0,2050,10,"GWh/mth","ind_man",1.05272774836185 +10,0,2050,10,"GWh/mth","res_com",2.65604297961237 +10,0,2050,11,"GWh/mth","agri",0.000143705403128145 +10,0,2050,11,"GWh/mth","ind_man",1.07776154614331 +10,0,2050,11,"GWh/mth","res_com",2.66919847334985 +10,0,2050,12,"GWh/mth","agri",6.29514578300933e-06 +10,0,2050,12,"GWh/mth","ind_man",1.10462627340549 +10,0,2050,12,"GWh/mth","res_com",2.71637707632978 +10,0,2060,1,"GWh/mth","agri",0.000637960056041097 +10,0,2060,1,"GWh/mth","ind_man",1.54851415123464 +10,0,2060,1,"GWh/mth","res_com",3.93636221942636 +10,0,2060,2,"GWh/mth","agri",0.000740792518099334 +10,0,2060,2,"GWh/mth","ind_man",1.50529003385514 +10,0,2060,2,"GWh/mth","res_com",3.86009531361301 +10,0,2060,3,"GWh/mth","agri",0.000493861678732889 +10,0,2060,3,"GWh/mth","ind_man",1.4700637947637 +10,0,2060,3,"GWh/mth","res_com",3.80693928200328 +10,0,2060,4,"GWh/mth","agri",0.00970534447791166 +10,0,2060,4,"GWh/mth","ind_man",1.43733785534885 +10,0,2060,4,"GWh/mth","res_com",3.72762134255277 +10,0,2060,5,"GWh/mth","agri",0.00333457815257746 +10,0,2060,5,"GWh/mth","ind_man",1.39461767596666 +10,0,2060,5,"GWh/mth","res_com",3.67703325405038 +10,0,2060,6,"GWh/mth","agri",3.9590826936606e-08 +10,0,2060,6,"GWh/mth","ind_man",1.35906075425172 +10,0,2060,6,"GWh/mth","res_com",3.62669995345558 +10,0,2060,7,"GWh/mth","agri",6.68056284808202e-06 +10,0,2060,7,"GWh/mth","ind_man",1.35488626531186 +10,0,2060,7,"GWh/mth","res_com",3.61944827141252 +10,0,2060,8,"GWh/mth","agri",0.00020588317498319 +10,0,2060,8,"GWh/mth","ind_man",1.39605356541534 +10,0,2060,8,"GWh/mth","res_com",3.6916688854541 +10,0,2060,9,"GWh/mth","agri",0.000834222746227595 +10,0,2060,9,"GWh/mth","ind_man",1.43801210413035 +10,0,2060,9,"GWh/mth","res_com",3.74973015423558 +10,0,2060,10,"GWh/mth","agri",0.00111133657968694 +10,0,2060,10,"GWh/mth","ind_man",1.47622034953357 +10,0,2060,10,"GWh/mth","res_com",3.82234715825185 +10,0,2060,11,"GWh/mth","agri",0.000306777989451072 +10,0,2060,11,"GWh/mth","ind_man",1.51132477398576 +10,0,2060,11,"GWh/mth","res_com",3.83620904344062 +10,0,2060,12,"GWh/mth","agri",1.16062634722253e-05 +10,0,2060,12,"GWh/mth","ind_man",1.54899667646085 +10,0,2060,12,"GWh/mth","res_com",3.90201548614159 +10,1,2020,1,"GWh/mth","agri",0 +10,1,2020,1,"GWh/mth","ind_man",0 +10,1,2020,1,"GWh/mth","res_com",0 +10,1,2020,2,"GWh/mth","agri",0 +10,1,2020,2,"GWh/mth","ind_man",0 +10,1,2020,2,"GWh/mth","res_com",0 +10,1,2020,3,"GWh/mth","agri",0 +10,1,2020,3,"GWh/mth","ind_man",0 +10,1,2020,3,"GWh/mth","res_com",0 +10,1,2020,4,"GWh/mth","agri",0 +10,1,2020,4,"GWh/mth","ind_man",0 +10,1,2020,4,"GWh/mth","res_com",0 +10,1,2020,5,"GWh/mth","agri",0 +10,1,2020,5,"GWh/mth","ind_man",0 +10,1,2020,5,"GWh/mth","res_com",0 +10,1,2020,6,"GWh/mth","agri",0 +10,1,2020,6,"GWh/mth","ind_man",0 +10,1,2020,6,"GWh/mth","res_com",0 +10,1,2020,7,"GWh/mth","agri",0 +10,1,2020,7,"GWh/mth","ind_man",0 +10,1,2020,7,"GWh/mth","res_com",0 +10,1,2020,8,"GWh/mth","agri",0 +10,1,2020,8,"GWh/mth","ind_man",0 +10,1,2020,8,"GWh/mth","res_com",0 +10,1,2020,9,"GWh/mth","agri",0 +10,1,2020,9,"GWh/mth","ind_man",0 +10,1,2020,9,"GWh/mth","res_com",0 +10,1,2020,10,"GWh/mth","agri",0 +10,1,2020,10,"GWh/mth","ind_man",0 +10,1,2020,10,"GWh/mth","res_com",0 +10,1,2020,11,"GWh/mth","agri",0 +10,1,2020,11,"GWh/mth","ind_man",0 +10,1,2020,11,"GWh/mth","res_com",0 +10,1,2020,12,"GWh/mth","agri",0 +10,1,2020,12,"GWh/mth","ind_man",0 +10,1,2020,12,"GWh/mth","res_com",0 +10,1,2030,1,"GWh/mth","agri",0 +10,1,2030,1,"GWh/mth","ind_man",0 +10,1,2030,1,"GWh/mth","res_com",0 +10,1,2030,2,"GWh/mth","agri",0 +10,1,2030,2,"GWh/mth","ind_man",0 +10,1,2030,2,"GWh/mth","res_com",0 +10,1,2030,3,"GWh/mth","agri",0 +10,1,2030,3,"GWh/mth","ind_man",0 +10,1,2030,3,"GWh/mth","res_com",0 +10,1,2030,4,"GWh/mth","agri",0 +10,1,2030,4,"GWh/mth","ind_man",0 +10,1,2030,4,"GWh/mth","res_com",0 +10,1,2030,5,"GWh/mth","agri",0 +10,1,2030,5,"GWh/mth","ind_man",0 +10,1,2030,5,"GWh/mth","res_com",0 +10,1,2030,6,"GWh/mth","agri",0 +10,1,2030,6,"GWh/mth","ind_man",0 +10,1,2030,6,"GWh/mth","res_com",0 +10,1,2030,7,"GWh/mth","agri",0 +10,1,2030,7,"GWh/mth","ind_man",0 +10,1,2030,7,"GWh/mth","res_com",0 +10,1,2030,8,"GWh/mth","agri",0 +10,1,2030,8,"GWh/mth","ind_man",0 +10,1,2030,8,"GWh/mth","res_com",0 +10,1,2030,9,"GWh/mth","agri",0 +10,1,2030,9,"GWh/mth","ind_man",0 +10,1,2030,9,"GWh/mth","res_com",0 +10,1,2030,10,"GWh/mth","agri",0 +10,1,2030,10,"GWh/mth","ind_man",0 +10,1,2030,10,"GWh/mth","res_com",0 +10,1,2030,11,"GWh/mth","agri",0 +10,1,2030,11,"GWh/mth","ind_man",0 +10,1,2030,11,"GWh/mth","res_com",0 +10,1,2030,12,"GWh/mth","agri",0 +10,1,2030,12,"GWh/mth","ind_man",0 +10,1,2030,12,"GWh/mth","res_com",0 +10,1,2040,1,"GWh/mth","agri",0 +10,1,2040,1,"GWh/mth","ind_man",0 +10,1,2040,1,"GWh/mth","res_com",0 +10,1,2040,2,"GWh/mth","agri",0 +10,1,2040,2,"GWh/mth","ind_man",0 +10,1,2040,2,"GWh/mth","res_com",0 +10,1,2040,3,"GWh/mth","agri",0 +10,1,2040,3,"GWh/mth","ind_man",0 +10,1,2040,3,"GWh/mth","res_com",0 +10,1,2040,4,"GWh/mth","agri",0 +10,1,2040,4,"GWh/mth","ind_man",0 +10,1,2040,4,"GWh/mth","res_com",0 +10,1,2040,5,"GWh/mth","agri",0 +10,1,2040,5,"GWh/mth","ind_man",0 +10,1,2040,5,"GWh/mth","res_com",0 +10,1,2040,6,"GWh/mth","agri",0 +10,1,2040,6,"GWh/mth","ind_man",0 +10,1,2040,6,"GWh/mth","res_com",0 +10,1,2040,7,"GWh/mth","agri",0 +10,1,2040,7,"GWh/mth","ind_man",0 +10,1,2040,7,"GWh/mth","res_com",0 +10,1,2040,8,"GWh/mth","agri",0 +10,1,2040,8,"GWh/mth","ind_man",0 +10,1,2040,8,"GWh/mth","res_com",0 +10,1,2040,9,"GWh/mth","agri",0 +10,1,2040,9,"GWh/mth","ind_man",0 +10,1,2040,9,"GWh/mth","res_com",0 +10,1,2040,10,"GWh/mth","agri",0 +10,1,2040,10,"GWh/mth","ind_man",0 +10,1,2040,10,"GWh/mth","res_com",0 +10,1,2040,11,"GWh/mth","agri",0 +10,1,2040,11,"GWh/mth","ind_man",0 +10,1,2040,11,"GWh/mth","res_com",0 +10,1,2040,12,"GWh/mth","agri",0 +10,1,2040,12,"GWh/mth","ind_man",0 +10,1,2040,12,"GWh/mth","res_com",0 +10,1,2050,1,"GWh/mth","agri",0 +10,1,2050,1,"GWh/mth","ind_man",0 +10,1,2050,1,"GWh/mth","res_com",0 +10,1,2050,2,"GWh/mth","agri",0 +10,1,2050,2,"GWh/mth","ind_man",0 +10,1,2050,2,"GWh/mth","res_com",0 +10,1,2050,3,"GWh/mth","agri",0 +10,1,2050,3,"GWh/mth","ind_man",0 +10,1,2050,3,"GWh/mth","res_com",0 +10,1,2050,4,"GWh/mth","agri",0 +10,1,2050,4,"GWh/mth","ind_man",0 +10,1,2050,4,"GWh/mth","res_com",0 +10,1,2050,5,"GWh/mth","agri",0 +10,1,2050,5,"GWh/mth","ind_man",0 +10,1,2050,5,"GWh/mth","res_com",0 +10,1,2050,6,"GWh/mth","agri",0 +10,1,2050,6,"GWh/mth","ind_man",0 +10,1,2050,6,"GWh/mth","res_com",0 +10,1,2050,7,"GWh/mth","agri",0 +10,1,2050,7,"GWh/mth","ind_man",0 +10,1,2050,7,"GWh/mth","res_com",0 +10,1,2050,8,"GWh/mth","agri",0 +10,1,2050,8,"GWh/mth","ind_man",0 +10,1,2050,8,"GWh/mth","res_com",0 +10,1,2050,9,"GWh/mth","agri",0 +10,1,2050,9,"GWh/mth","ind_man",0 +10,1,2050,9,"GWh/mth","res_com",0 +10,1,2050,10,"GWh/mth","agri",0 +10,1,2050,10,"GWh/mth","ind_man",0 +10,1,2050,10,"GWh/mth","res_com",0 +10,1,2050,11,"GWh/mth","agri",0 +10,1,2050,11,"GWh/mth","ind_man",0 +10,1,2050,11,"GWh/mth","res_com",0 +10,1,2050,12,"GWh/mth","agri",0 +10,1,2050,12,"GWh/mth","ind_man",0 +10,1,2050,12,"GWh/mth","res_com",0 +10,1,2060,1,"GWh/mth","agri",0 +10,1,2060,1,"GWh/mth","ind_man",0 +10,1,2060,1,"GWh/mth","res_com",0 +10,1,2060,2,"GWh/mth","agri",0 +10,1,2060,2,"GWh/mth","ind_man",0 +10,1,2060,2,"GWh/mth","res_com",0 +10,1,2060,3,"GWh/mth","agri",0 +10,1,2060,3,"GWh/mth","ind_man",0 +10,1,2060,3,"GWh/mth","res_com",0 +10,1,2060,4,"GWh/mth","agri",0 +10,1,2060,4,"GWh/mth","ind_man",0 +10,1,2060,4,"GWh/mth","res_com",0 +10,1,2060,5,"GWh/mth","agri",0 +10,1,2060,5,"GWh/mth","ind_man",0 +10,1,2060,5,"GWh/mth","res_com",0 +10,1,2060,6,"GWh/mth","agri",0 +10,1,2060,6,"GWh/mth","ind_man",0 +10,1,2060,6,"GWh/mth","res_com",0 +10,1,2060,7,"GWh/mth","agri",0 +10,1,2060,7,"GWh/mth","ind_man",0 +10,1,2060,7,"GWh/mth","res_com",0 +10,1,2060,8,"GWh/mth","agri",0 +10,1,2060,8,"GWh/mth","ind_man",0 +10,1,2060,8,"GWh/mth","res_com",0 +10,1,2060,9,"GWh/mth","agri",0 +10,1,2060,9,"GWh/mth","ind_man",0 +10,1,2060,9,"GWh/mth","res_com",0 +10,1,2060,10,"GWh/mth","agri",0 +10,1,2060,10,"GWh/mth","ind_man",0 +10,1,2060,10,"GWh/mth","res_com",0 +10,1,2060,11,"GWh/mth","agri",0 +10,1,2060,11,"GWh/mth","ind_man",0 +10,1,2060,11,"GWh/mth","res_com",0 +10,1,2060,12,"GWh/mth","agri",0 +10,1,2060,12,"GWh/mth","ind_man",0 +10,1,2060,12,"GWh/mth","res_com",0 +11,0,2020,1,"GWh/mth","agri",1.03275511142563 +11,0,2020,1,"GWh/mth","ind_man",7.12580667174362 +11,0,2020,1,"GWh/mth","res_com",14.9452991426928 +11,0,2020,2,"GWh/mth","agri",0.623711026347543 +11,0,2020,2,"GWh/mth","ind_man",6.98349579763886 +11,0,2020,2,"GWh/mth","res_com",14.5450195648745 +11,0,2020,3,"GWh/mth","agri",0.415807350968343 +11,0,2020,3,"GWh/mth","ind_man",6.86751709916106 +11,0,2020,3,"GWh/mth","res_com",14.2158897767028 +11,0,2020,4,"GWh/mth","agri",0.00179919442385415 +11,0,2020,4,"GWh/mth","ind_man",6.75977037519357 +11,0,2020,4,"GWh/mth","res_com",13.905117219006 +11,0,2020,5,"GWh/mth","agri",0.00107234470560416 +11,0,2020,5,"GWh/mth","ind_man",6.61911866410334 +11,0,2020,5,"GWh/mth","res_com",13.5116225488529 +11,0,2020,6,"GWh/mth","agri",9.52533762719332e-06 +11,0,2020,6,"GWh/mth","ind_man",6.50205122776218 +11,0,2020,6,"GWh/mth","res_com",13.1796923035147 +11,0,2020,7,"GWh/mth","agri",1.95301688751338e-05 +11,0,2020,7,"GWh/mth","ind_man",6.4883071606536 +11,0,2020,7,"GWh/mth","res_com",13.1430530097433 +11,0,2020,8,"GWh/mth","agri",0.00143122802490763 +11,0,2020,8,"GWh/mth","ind_man",6.62384617954955 +11,0,2020,8,"GWh/mth","res_com",13.5225987700397 +11,0,2020,9,"GWh/mth","agri",0.00721534173153813 +11,0,2020,9,"GWh/mth","ind_man",6.76199026860673 +11,0,2020,9,"GWh/mth","res_com",13.9168551169115 +11,0,2020,10,"GWh/mth","agri",0.00837419601653281 +11,0,2020,10,"GWh/mth","ind_man",6.88778691018071 +11,0,2020,10,"GWh/mth","res_com",14.2814125836122 +11,0,2020,11,"GWh/mth","agri",0.00119594286474187 +11,0,2020,11,"GWh/mth","ind_man",7.00336454673197 +11,0,2020,11,"GWh/mth","res_com",14.5842786051446 +11,0,2020,12,"GWh/mth","agri",4.52073491321782e-05 +11,0,2020,12,"GWh/mth","ind_man",7.12739533545459 +11,0,2020,12,"GWh/mth","res_com",14.9337594534379 +11,0,2030,1,"GWh/mth","agri",1.44760848527912 +11,0,2030,1,"GWh/mth","ind_man",7.8771750377449 +11,0,2030,1,"GWh/mth","res_com",14.8139771873366 +11,0,2030,2,"GWh/mth","agri",0.873921264968441 +11,0,2030,2,"GWh/mth","ind_man",7.72867152002562 +11,0,2030,2,"GWh/mth","res_com",14.4245044808163 +11,0,2030,3,"GWh/mth","agri",0.582630261308705 +11,0,2030,3,"GWh/mth","ind_man",7.6076460199519 +11,0,2030,3,"GWh/mth","res_com",14.1031298622654 +11,0,2030,4,"GWh/mth","agri",0.00531983399993677 +11,0,2030,4,"GWh/mth","ind_man",7.4952107079453 +11,0,2030,4,"GWh/mth","res_com",13.7971881508268 +11,0,2030,5,"GWh/mth","agri",0.00266535090753752 +11,0,2030,5,"GWh/mth","ind_man",7.34843855155506 +11,0,2030,5,"GWh/mth","res_com",13.4155344161696 +11,0,2030,6,"GWh/mth","agri",6.30378630886622e-05 +11,0,2030,6,"GWh/mth","ind_man",7.22627693729751 +11,0,2030,6,"GWh/mth","res_com",13.0915856706185 +11,0,2030,7,"GWh/mth","agri",8.61039189228332e-05 +11,0,2030,7,"GWh/mth","ind_man",7.21193479846776 +11,0,2030,7,"GWh/mth","res_com",13.0567955351521 +11,0,2030,8,"GWh/mth","agri",0.00358493816365871 +11,0,2030,8,"GWh/mth","ind_man",7.35337178436844 +11,0,2030,8,"GWh/mth","res_com",13.4253559111563 +11,0,2030,9,"GWh/mth","agri",0.0181246608811023 +11,0,2030,9,"GWh/mth","ind_man",7.49752719980082 +11,0,2030,9,"GWh/mth","res_com",13.8112174338508 +11,0,2030,10,"GWh/mth","agri",0.0212444236328664 +11,0,2030,10,"GWh/mth","ind_man",7.62879786979373 +11,0,2030,10,"GWh/mth","res_com",14.1705618823185 +11,0,2030,11,"GWh/mth","agri",0.00302602642934275 +11,0,2030,11,"GWh/mth","ind_man",7.74940485577083 +11,0,2030,11,"GWh/mth","res_com",14.4551747489353 +11,0,2030,12,"GWh/mth","agri",8.14887347953243e-05 +11,0,2030,12,"GWh/mth","ind_man",7.87883283200017 +11,0,2030,12,"GWh/mth","res_com",14.7954741432853 +11,0,2040,1,"GWh/mth","agri",2.23969097076819 +11,0,2040,1,"GWh/mth","ind_man",11.5896498021601 +11,0,2040,1,"GWh/mth","res_com",23.2535392336419 +11,0,2040,2,"GWh/mth","agri",1.3520718861873 +11,0,2040,2,"GWh/mth","ind_man",11.3553044035152 +11,0,2040,2,"GWh/mth","res_com",22.6416424923854 +11,0,2040,3,"GWh/mth","agri",0.901381257461087 +11,0,2040,3,"GWh/mth","ind_man",11.164320583761 +11,0,2040,3,"GWh/mth","res_com",22.136828692517 +11,0,2040,4,"GWh/mth","agri",0.0138711659031377 +11,0,2040,4,"GWh/mth","ind_man",10.9868924768811 +11,0,2040,4,"GWh/mth","res_com",21.6564307831177 +11,0,2040,5,"GWh/mth","agri",0.00613992791313856 +11,0,2040,5,"GWh/mth","ind_man",10.7552792462487 +11,0,2040,5,"GWh/mth","res_com",21.0567400929106 +11,0,2040,6,"GWh/mth","agri",3.1002176109651e-05 +11,0,2040,6,"GWh/mth","ind_man",10.5625025859248 +11,0,2040,6,"GWh/mth","res_com",20.5478724271093 +11,0,2040,7,"GWh/mth","agri",8.24461994852209e-05 +11,0,2040,7,"GWh/mth","ind_man",10.5398700295174 +11,0,2040,7,"GWh/mth","res_com",20.4931465652048 +11,0,2040,8,"GWh/mth","agri",0.00767345578959776 +11,0,2040,8,"GWh/mth","ind_man",10.7630641151058 +11,0,2040,8,"GWh/mth","res_com",21.072244948867 +11,0,2040,9,"GWh/mth","agri",0.0390453779779843 +11,0,2040,9,"GWh/mth","ind_man",10.9905480078454 +11,0,2040,9,"GWh/mth","res_com",21.6782821725449 +11,0,2040,10,"GWh/mth","agri",0.045660073616348 +11,0,2040,10,"GWh/mth","ind_man",11.1976991781498 +11,0,2040,10,"GWh/mth","res_com",22.2424850077229 +11,0,2040,11,"GWh/mth","agri",0.00635616749290991 +11,0,2040,11,"GWh/mth","ind_man",11.3880225633613 +11,0,2040,11,"GWh/mth","res_com",22.6903941675925 +11,0,2040,12,"GWh/mth","agri",1.24762907037392e-05 +11,0,2040,12,"GWh/mth","ind_man",11.5922658779379 +11,0,2040,12,"GWh/mth","res_com",23.2250147869265 +11,0,2050,1,"GWh/mth","agri",3.4704976624926 +11,0,2050,1,"GWh/mth","ind_man",17.072190826411 +11,0,2050,1,"GWh/mth","res_com",36.2062210613757 +11,0,2050,2,"GWh/mth","agri",2.09509364540839 +11,0,2050,2,"GWh/mth","ind_man",16.7066562699831 +11,0,2050,2,"GWh/mth","res_com",35.2532076896279 +11,0,2050,3,"GWh/mth","agri",1.39672909694743 +11,0,2050,3,"GWh/mth","ind_man",16.408757586064 +11,0,2050,3,"GWh/mth","res_com",34.4670219146648 +11,0,2050,4,"GWh/mth","agri",0.0265404805151261 +11,0,2050,4,"GWh/mth","ind_man",16.1320032536928 +11,0,2050,4,"GWh/mth","res_com",33.7189503362046 +11,0,2050,5,"GWh/mth","agri",0.0112713227441906 +11,0,2050,5,"GWh/mth","ind_man",15.7707303632856 +11,0,2050,5,"GWh/mth","res_com",32.7849073463393 +11,0,2050,6,"GWh/mth","agri",5.70884750428893e-05 +11,0,2050,6,"GWh/mth","ind_man",15.4700351867271 +11,0,2050,6,"GWh/mth","res_com",31.992402803911 +11,0,2050,7,"GWh/mth","agri",0.00014454391979653 +11,0,2050,7,"GWh/mth","ind_man",15.4347326737909 +11,0,2050,7,"GWh/mth","res_com",31.9071340303783 +11,0,2050,8,"GWh/mth","agri",0.0134389879107497 +11,0,2050,8,"GWh/mth","ind_man",15.7828732882202 +11,0,2050,8,"GWh/mth","res_com",32.8090940038034 +11,0,2050,9,"GWh/mth","agri",0.0683353324334837 +11,0,2050,9,"GWh/mth","ind_man",16.1377051915047 +11,0,2050,9,"GWh/mth","res_com",33.7528857072144 +11,0,2050,10,"GWh/mth","agri",0.0799758071699072 +11,0,2050,10,"GWh/mth","ind_man",16.4608218884341 +11,0,2050,10,"GWh/mth","res_com",34.6314321573399 +11,0,2050,11,"GWh/mth","agri",0.0111221163890223 +11,0,2050,11,"GWh/mth","ind_man",16.757690419216 +11,0,2050,11,"GWh/mth","res_com",35.3294280639412 +11,0,2050,12,"GWh/mth","agri",1.93328544277877e-05 +11,0,2050,12,"GWh/mth","ind_man",17.0762714104743 +11,0,2050,12,"GWh/mth","res_com",36.1620753778575 +11,0,2060,1,"GWh/mth","agri",5.34633803249436 +11,0,2060,1,"GWh/mth","ind_man",25.1463837120855 +11,0,2060,1,"GWh/mth","res_com",55.9657550509396 +11,0,2060,2,"GWh/mth","agri",3.22751372494492 +11,0,2060,2,"GWh/mth","ind_man",24.5818384521085 +11,0,2060,2,"GWh/mth","res_com",54.49233303566 +11,0,2060,3,"GWh/mth","agri",2.15167581665116 +11,0,2060,3,"GWh/mth","ind_man",24.1217525669235 +11,0,2060,3,"GWh/mth","res_com",53.2768904168518 +11,0,2060,4,"GWh/mth","agri",0.0510528687123056 +11,0,2060,4,"GWh/mth","ind_man",23.6943228102268 +11,0,2060,4,"GWh/mth","res_com",52.1204694023459 +11,0,2060,5,"GWh/mth","agri",0.0208003736202838 +11,0,2060,5,"GWh/mth","ind_man",23.1363594268721 +11,0,2060,5,"GWh/mth","res_com",50.6763331912977 +11,0,2060,6,"GWh/mth","agri",0.000109513576514798 +11,0,2060,6,"GWh/mth","ind_man",22.6719545337126 +11,0,2060,6,"GWh/mth","res_com",49.4511159365685 +11,0,2060,7,"GWh/mth","agri",0.000243973066873627 +11,0,2060,7,"GWh/mth","ind_man",22.6174320104847 +11,0,2060,7,"GWh/mth","res_com",49.3192471249513 +11,0,2060,8,"GWh/mth","agri",0.0225958585141575 +11,0,2060,8,"GWh/mth","ind_man",23.1551134149522 +11,0,2060,8,"GWh/mth","res_com",50.7137688861686 +11,0,2060,9,"GWh/mth","agri",0.114533661205741 +11,0,2060,9,"GWh/mth","ind_man",23.7031290965484 +11,0,2060,9,"GWh/mth","res_com",52.1728297921709 +11,0,2060,10,"GWh/mth","agri",0.133868319808202 +11,0,2060,10,"GWh/mth","ind_man",24.2021626255628 +11,0,2060,10,"GWh/mth","res_com",53.5309202930927 +11,0,2060,11,"GWh/mth","agri",0.0185847369636208 +11,0,2060,11,"GWh/mth","ind_man",24.6606575036585 +11,0,2060,11,"GWh/mth","res_com",54.6104905729287 +11,0,2060,12,"GWh/mth","agri",2.97830920297645e-05 +11,0,2060,12,"GWh/mth","ind_man",25.1526859189504 +11,0,2060,12,"GWh/mth","res_com",55.8978072716857 +11,1,2020,1,"GWh/mth","agri",0.39880547233423 +11,1,2020,1,"GWh/mth","ind_man",7.08061410661074 +11,1,2020,1,"GWh/mth","res_com",23.5371488705807 +11,1,2020,2,"GWh/mth","agri",0.245594682112581 +11,1,2020,2,"GWh/mth","ind_man",6.88529735694959 +11,1,2020,2,"GWh/mth","res_com",22.8993499418319 +11,1,2020,3,"GWh/mth","agri",0.163729788075058 +11,1,2020,3,"GWh/mth","ind_man",6.72612060704121 +11,1,2020,3,"GWh/mth","res_com",22.4092624681745 +11,1,2020,4,"GWh/mth","agri",0.000293854644095046 +11,1,2020,4,"GWh/mth","ind_man",6.5782419572588 +11,1,2020,4,"GWh/mth","res_com",21.9032772729588 +11,1,2020,5,"GWh/mth","agri",9.36058883208308e-05 +11,1,2020,5,"GWh/mth","ind_man",6.38520235141532 +11,1,2020,5,"GWh/mth","res_com",21.3216432382267 +11,1,2020,6,"GWh/mth","agri",9.54932238503452e-10 +11,1,2020,6,"GWh/mth","ind_man",6.22453134646817 +11,1,2020,6,"GWh/mth","res_com",20.8333642789119 +11,1,2020,7,"GWh/mth","agri",1.25094689247394e-07 +11,1,2020,7,"GWh/mth","ind_man",6.20566809001177 +11,1,2020,7,"GWh/mth","res_com",20.7653470357587 +11,1,2020,8,"GWh/mth","agri",9.7114307187519e-06 +11,1,2020,8,"GWh/mth","ind_man",6.39169070275695 +11,1,2020,8,"GWh/mth","res_com",21.3770057796389 +11,1,2020,9,"GWh/mth","agri",4.32622850868578e-05 +11,1,2020,9,"GWh/mth","ind_man",6.58128868414302 +11,1,2020,9,"GWh/mth","res_com",21.9421814763043 +11,1,2020,10,"GWh/mth","agri",4.81693245316865e-05 +11,1,2020,10,"GWh/mth","ind_man",6.75394022117477 +11,1,2020,10,"GWh/mth","res_com",22.4821853234912 +11,1,2020,11,"GWh/mth","agri",8.47501328922591e-06 +11,1,2020,11,"GWh/mth","ind_man",6.91256652746879 +11,1,2020,11,"GWh/mth","res_com",22.9653448421448 +11,1,2020,12,"GWh/mth","agri",1.70355397844435e-06 +11,1,2020,12,"GWh/mth","ind_man",7.0827944925741 +11,1,2020,12,"GWh/mth","res_com",23.5176836537136 +11,1,2030,1,"GWh/mth","agri",0.791572367532478 +11,1,2030,1,"GWh/mth","ind_man",10.7482116982371 +11,1,2030,1,"GWh/mth","res_com",35.5747172230931 +11,1,2030,2,"GWh/mth","agri",0.485825469291941 +11,1,2030,2,"GWh/mth","ind_man",10.4511278281381 +11,1,2030,2,"GWh/mth","res_com",34.6141297804325 +11,1,2030,3,"GWh/mth","agri",0.323883646194653 +11,1,2030,3,"GWh/mth","ind_man",10.2090142102604 +11,1,2030,3,"GWh/mth","res_com",33.8771409809316 +11,1,2030,4,"GWh/mth","agri",0.00126650265253924 +11,1,2030,4,"GWh/mth","ind_man",9.98408541301909 +11,1,2030,4,"GWh/mth","res_com",33.1127387323234 +11,1,2030,5,"GWh/mth","agri",0.00039901509108447 +11,1,2030,5,"GWh/mth","ind_man",9.69046516137215 +11,1,2030,5,"GWh/mth","res_com",32.2396033132628 +11,1,2030,6,"GWh/mth","agri",3.99730311298908e-09 +11,1,2030,6,"GWh/mth","ind_man",9.44607872730949 +11,1,2030,6,"GWh/mth","res_com",31.5057304250903 +11,1,2030,7,"GWh/mth","agri",7.76754491052377e-07 +11,1,2030,7,"GWh/mth","ind_man",9.41738702912969 +11,1,2030,7,"GWh/mth","res_com",31.4032507109059 +11,1,2030,8,"GWh/mth","agri",6.04384137858545e-05 +11,1,2030,8,"GWh/mth","ind_man",9.70033417941836 +11,1,2030,8,"GWh/mth","res_com",32.3244540745405 +11,1,2030,9,"GWh/mth","agri",0.000270058068613176 +11,1,2030,9,"GWh/mth","ind_man",9.98871959526648 +11,1,2030,9,"GWh/mth","res_com",33.1736516148945 +11,1,2030,10,"GWh/mth","agri",0.000301099891725296 +11,1,2030,10,"GWh/mth","ind_man",10.2513288537603 +11,1,2030,10,"GWh/mth","res_com",33.9872820965405 +11,1,2030,11,"GWh/mth","agri",4.52234678817015e-05 +11,1,2030,11,"GWh/mth","ind_man",10.4926052269085 +11,1,2030,11,"GWh/mth","res_com",34.709887927456 +11,1,2030,12,"GWh/mth","agri",3.48732915046135e-06 +11,1,2030,12,"GWh/mth","ind_man",10.7515281444786 +11,1,2030,12,"GWh/mth","res_com",35.5416703692785 +11,1,2040,1,"GWh/mth","agri",1.22473486487672 +11,1,2040,1,"GWh/mth","ind_man",16.8217805059802 +11,1,2040,1,"GWh/mth","res_com",55.6731580727291 +11,1,2040,2,"GWh/mth","agri",0.751677818595055 +11,1,2040,2,"GWh/mth","ind_man",16.3558944774611 +11,1,2040,2,"GWh/mth","res_com",54.169297802258 +11,1,2040,3,"GWh/mth","agri",0.501118545730139 +11,1,2040,3,"GWh/mth","ind_man",15.9762126325807 +11,1,2040,3,"GWh/mth","res_com",53.0146540324591 +11,1,2040,4,"GWh/mth","agri",0.00308930779025851 +11,1,2040,4,"GWh/mth","ind_man",15.6234799715599 +11,1,2040,4,"GWh/mth","res_com",51.8186150464963 +11,1,2040,5,"GWh/mth","agri",0.000961839509989088 +11,1,2040,5,"GWh/mth","ind_man",15.1630255790445 +11,1,2040,5,"GWh/mth","res_com",50.4502675576245 +11,1,2040,6,"GWh/mth","agri",9.76822037396784e-09 +11,1,2040,6,"GWh/mth","ind_man",14.7797795106819 +11,1,2040,6,"GWh/mth","res_com",49.3003099635625 +11,1,2040,7,"GWh/mth","agri",1.73113705856099e-06 +11,1,2040,7,"GWh/mth","ind_man",14.734785276185 +11,1,2040,7,"GWh/mth","res_com",49.1400496049363 +11,1,2040,8,"GWh/mth","agri",0.000134877839957193 +11,1,2040,8,"GWh/mth","ind_man",15.1785021433608 +11,1,2040,8,"GWh/mth","res_com",50.5821355720939 +11,1,2040,9,"GWh/mth","agri",0.000606849347429396 +11,1,2040,9,"GWh/mth","ind_man",15.6307472821748 +11,1,2040,9,"GWh/mth","res_com",51.913135431349 +11,1,2040,10,"GWh/mth","agri",0.000679279572071853 +11,1,2040,10,"GWh/mth","ind_man",16.0425703288157 +11,1,2040,10,"GWh/mth","res_com",53.18757632682 +11,1,2040,11,"GWh/mth","agri",9.97429300143825e-05 +11,1,2040,11,"GWh/mth","ind_man",16.4209392090381 +11,1,2040,11,"GWh/mth","res_com",54.3199168482033 +11,1,2040,12,"GWh/mth","agri",5.39565777332771e-06 +11,1,2040,12,"GWh/mth","ind_man",16.8269813469674 +11,1,2040,12,"GWh/mth","res_com",55.6222241152318 +11,1,2050,1,"GWh/mth","agri",1.89777944421948 +11,1,2050,1,"GWh/mth","ind_man",25.7386811805576 +11,1,2050,1,"GWh/mth","res_com",85.3927716750968 +11,1,2050,2,"GWh/mth","agri",1.16475716803328 +11,1,2050,2,"GWh/mth","ind_man",25.0247931812697 +11,1,2050,2,"GWh/mth","res_com",83.0869046931516 +11,1,2050,3,"GWh/mth","agri",0.776504778689116 +11,1,2050,3,"GWh/mth","ind_man",24.4429978579172 +11,1,2050,3,"GWh/mth","res_com",81.3176435038928 +11,1,2050,4,"GWh/mth","agri",0.00614681283021973 +11,1,2050,4,"GWh/mth","ind_man",23.902497395905 +11,1,2050,4,"GWh/mth","res_com",79.4828255300621 +11,1,2050,5,"GWh/mth","agri",0.00188948039730791 +11,1,2050,5,"GWh/mth","ind_man",23.1969324188203 +11,1,2050,5,"GWh/mth","res_com",77.3866566276547 +11,1,2050,6,"GWh/mth","agri",1.88680846753202e-08 +11,1,2050,6,"GWh/mth","ind_man",22.6096755529124 +11,1,2050,6,"GWh/mth","res_com",75.6248437640457 +11,1,2050,7,"GWh/mth","agri",2.27457236967535e-06 +11,1,2050,7,"GWh/mth","ind_man",22.5407298407035 +11,1,2050,7,"GWh/mth","res_com",75.3788727609468 +11,1,2050,8,"GWh/mth","agri",0.000178503906065354 +11,1,2050,8,"GWh/mth","ind_man",23.2206475183495 +11,1,2050,8,"GWh/mth","res_com",77.5901802653478 +11,1,2050,9,"GWh/mth","agri",0.000833419185621886 +11,1,2050,9,"GWh/mth","ind_man",23.9136332650178 +11,1,2050,9,"GWh/mth","res_com",79.6289078687212 +11,1,2050,10,"GWh/mth","agri",0.000949716014842111 +11,1,2050,10,"GWh/mth","ind_man",24.5446792995203 +11,1,2050,10,"GWh/mth","res_com",81.5821145026768 +11,1,2050,11,"GWh/mth","agri",0.000142895692106087 +11,1,2050,11,"GWh/mth","ind_man",25.1244627365841 +11,1,2050,11,"GWh/mth","res_com",83.31688469443 +11,1,2050,12,"GWh/mth","agri",8.36080420985017e-06 +11,1,2050,12,"GWh/mth","ind_man",25.7466505501881 +11,1,2050,12,"GWh/mth","res_com",85.3135746008501 +11,1,2060,1,"GWh/mth","agri",2.9235491294437 +11,1,2060,1,"GWh/mth","ind_man",39.6182748942172 +11,1,2060,1,"GWh/mth","res_com",131.621521475066 +11,1,2060,2,"GWh/mth","agri",1.79432062824219 +11,1,2060,2,"GWh/mth","ind_man",38.5180456061261 +11,1,2060,2,"GWh/mth","res_com",128.06726982949 +11,1,2060,3,"GWh/mth","agri",1.19621375216202 +11,1,2060,3,"GWh/mth","ind_man",37.6213947938626 +11,1,2060,3,"GWh/mth","res_com",125.340042386377 +11,1,2060,4,"GWh/mth","agri",0.0117167268325136 +11,1,2060,4,"GWh/mth","ind_man",36.7883867602134 +11,1,2060,4,"GWh/mth","res_com",122.51194199767 +11,1,2060,5,"GWh/mth","agri",0.00357665626297796 +11,1,2060,5,"GWh/mth","ind_man",35.7009847402688 +11,1,2060,5,"GWh/mth","res_com",119.280756218656 +11,1,2060,6,"GWh/mth","agri",3.53451315124233e-08 +11,1,2060,6,"GWh/mth","ind_man",34.7959167125826 +11,1,2060,6,"GWh/mth","res_com",116.564987397134 +11,1,2060,7,"GWh/mth","agri",3.97959605691864e-06 +11,1,2060,7,"GWh/mth","ind_man",34.6896590195885 +11,1,2060,7,"GWh/mth","res_com",116.185869528832 +11,1,2060,8,"GWh/mth","agri",0.000315174305134824 +11,1,2060,8,"GWh/mth","ind_man",35.73753395681 +11,1,2060,8,"GWh/mth","res_com",119.594354263851 +11,1,2060,9,"GWh/mth","agri",0.00155293169540423 +11,1,2060,9,"GWh/mth","ind_man",36.8055491293223 +11,1,2060,9,"GWh/mth","res_com",122.737015184032 +11,1,2060,10,"GWh/mth","agri",0.0018152531323011 +11,1,2060,10,"GWh/mth","ind_man",37.7781041099158 +11,1,2060,10,"GWh/mth","res_com",125.747753209153 +11,1,2060,11,"GWh/mth","agri",0.000276608454356183 +11,1,2060,11,"GWh/mth","ind_man",38.6716542450126 +11,1,2060,11,"GWh/mth","res_com",128.4218411616 +11,1,2060,12,"GWh/mth","agri",1.28799065518634e-05 +11,1,2060,12,"GWh/mth","ind_man",39.630557120398 +11,1,2060,12,"GWh/mth","res_com",131.499540318262 +12,0,2020,1,"GWh/mth","agri",0 +12,0,2020,1,"GWh/mth","ind_man",0 +12,0,2020,1,"GWh/mth","res_com",0.0122710654159 +12,0,2020,2,"GWh/mth","agri",0 +12,0,2020,2,"GWh/mth","ind_man",0 +12,0,2020,2,"GWh/mth","res_com",0.0137932990987767 +12,0,2020,3,"GWh/mth","agri",0 +12,0,2020,3,"GWh/mth","ind_man",0 +12,0,2020,3,"GWh/mth","res_com",0.0145723528505238 +12,0,2020,4,"GWh/mth","agri",3.65939255119417e-06 +12,0,2020,4,"GWh/mth","ind_man",0 +12,0,2020,4,"GWh/mth","res_com",0.0149019387489181 +12,0,2020,5,"GWh/mth","agri",0.00265742293668571 +12,0,2020,5,"GWh/mth","ind_man",0 +12,0,2020,5,"GWh/mth","res_com",0.0164801780075632 +12,0,2020,6,"GWh/mth","agri",3.26633541504875e-05 +12,0,2020,6,"GWh/mth","ind_man",0 +12,0,2020,6,"GWh/mth","res_com",0.0172715116753502 +12,0,2020,7,"GWh/mth","agri",7.50239503951129e-07 +12,0,2020,7,"GWh/mth","ind_man",0 +12,0,2020,7,"GWh/mth","res_com",0.0176780536323616 +12,0,2020,8,"GWh/mth","agri",8.04831624406973e-05 +12,0,2020,8,"GWh/mth","ind_man",0 +12,0,2020,8,"GWh/mth","res_com",0.0159854690039172 +12,0,2020,9,"GWh/mth","agri",0.00042315383774359 +12,0,2020,9,"GWh/mth","ind_man",0 +12,0,2020,9,"GWh/mth","res_com",0.0154187800793634 +12,0,2020,10,"GWh/mth","agri",0.000544566685835766 +12,0,2020,10,"GWh/mth","ind_man",0 +12,0,2020,10,"GWh/mth","res_com",0.0154116414570524 +12,0,2020,11,"GWh/mth","agri",0.000105453021372422 +12,0,2020,11,"GWh/mth","ind_man",0 +12,0,2020,11,"GWh/mth","res_com",0.0117008331455976 +12,0,2020,12,"GWh/mth","agri",0 +12,0,2020,12,"GWh/mth","ind_man",0 +12,0,2020,12,"GWh/mth","res_com",0.0104610310095503 +12,0,2030,1,"GWh/mth","agri",0 +12,0,2030,1,"GWh/mth","ind_man",0.157666508802673 +12,0,2030,1,"GWh/mth","res_com",0.318948873395314 +12,0,2030,2,"GWh/mth","agri",0 +12,0,2030,2,"GWh/mth","ind_man",0.153265518551554 +12,0,2030,2,"GWh/mth","res_com",0.312830369406313 +12,0,2030,3,"GWh/mth","agri",0 +12,0,2030,3,"GWh/mth","ind_man",0.149678855729411 +12,0,2030,3,"GWh/mth","res_com",0.307155612226109 +12,0,2030,4,"GWh/mth","agri",6.83564502598836e-06 +12,0,2030,4,"GWh/mth","ind_man",0.146346768250125 +12,0,2030,4,"GWh/mth","res_com",0.301289011371095 +12,0,2030,5,"GWh/mth","agri",0.00533803889963502 +12,0,2030,5,"GWh/mth","ind_man",0.14199708792383 +12,0,2030,5,"GWh/mth","res_com",0.295357891694769 +12,0,2030,6,"GWh/mth","agri",6.62702354756415e-05 +12,0,2030,6,"GWh/mth","ind_man",0.138376755680761 +12,0,2030,6,"GWh/mth","res_com",0.289636817713876 +12,0,2030,7,"GWh/mth","agri",2.00284041069029e-06 +12,0,2030,7,"GWh/mth","ind_man",0.137951717849069 +12,0,2030,7,"GWh/mth","res_com",0.289433107202276 +12,0,2030,8,"GWh/mth","agri",0.000166710006338959 +12,0,2030,8,"GWh/mth","ind_man",0.142143287218309 +12,0,2030,8,"GWh/mth","res_com",0.294893005453306 +12,0,2030,9,"GWh/mth","agri",0.000873146625364683 +12,0,2030,9,"GWh/mth","ind_man",0.14641541886682 +12,0,2030,9,"GWh/mth","res_com",0.302197271395462 +12,0,2030,10,"GWh/mth","agri",0.00112374731185146 +12,0,2030,10,"GWh/mth","ind_man",0.150305703405323 +12,0,2030,10,"GWh/mth","res_com",0.309603910380172 +12,0,2030,11,"GWh/mth","agri",0.000217663014436863 +12,0,2030,11,"GWh/mth","ind_man",0.153879963312791 +12,0,2030,11,"GWh/mth","res_com",0.310866590899393 +12,0,2030,12,"GWh/mth","agri",0 +12,0,2030,12,"GWh/mth","ind_man",0.157715638523422 +12,0,2030,12,"GWh/mth","res_com",0.316328618651902 +12,0,2040,1,"GWh/mth","agri",0 +12,0,2040,1,"GWh/mth","ind_man",0.287696727000368 +12,0,2040,1,"GWh/mth","res_com",0.576763430491845 +12,0,2040,2,"GWh/mth","agri",0 +12,0,2040,2,"GWh/mth","ind_man",0.279666166163939 +12,0,2040,2,"GWh/mth","res_com",0.564972152262833 +12,0,2040,3,"GWh/mth","agri",0 +12,0,2040,3,"GWh/mth","ind_man",0.273121522265748 +12,0,2040,3,"GWh/mth","res_com",0.554297577862787 +12,0,2040,4,"GWh/mth","agri",1.28145465252444e-05 +12,0,2040,4,"GWh/mth","ind_man",0.267041406271872 +12,0,2040,4,"GWh/mth","res_com",0.543460647182368 +12,0,2040,5,"GWh/mth","agri",0.010072699557857 +12,0,2040,5,"GWh/mth","ind_man",0.259104471517143 +12,0,2040,5,"GWh/mth","res_com",0.531986395397808 +12,0,2040,6,"GWh/mth","agri",0.000126346682038463 +12,0,2040,6,"GWh/mth","ind_man",0.252498390461029 +12,0,2040,6,"GWh/mth","res_com",0.5212223745019 +12,0,2040,7,"GWh/mth","agri",6.19181408007156e-06 +12,0,2040,7,"GWh/mth","ind_man",0.251722816790009 +12,0,2040,7,"GWh/mth","res_com",0.520682683361547 +12,0,2040,8,"GWh/mth","agri",0.00031562561354629 +12,0,2040,8,"GWh/mth","ind_man",0.259371243825547 +12,0,2040,8,"GWh/mth","res_com",0.531344338152085 +12,0,2040,9,"GWh/mth","agri",0.00162523960948587 +12,0,2040,9,"GWh/mth","ind_man",0.267166674205309 +12,0,2040,9,"GWh/mth","res_com",0.544902184786468 +12,0,2040,10,"GWh/mth","agri",0.00209164792381111 +12,0,2040,10,"GWh/mth","ind_man",0.274265341749398 +12,0,2040,10,"GWh/mth","res_com",0.558416731711226 +12,0,2040,11,"GWh/mth","agri",0.00040509731677201 +12,0,2040,11,"GWh/mth","ind_man",0.280787353840845 +12,0,2040,11,"GWh/mth","res_com",0.562258311255741 +12,0,2040,12,"GWh/mth","agri",0 +12,0,2040,12,"GWh/mth","ind_man",0.28778637482707 +12,0,2040,12,"GWh/mth","res_com",0.572735276192797 +12,0,2050,1,"GWh/mth","agri",0 +12,0,2050,1,"GWh/mth","ind_man",0.40485078493109 +12,0,2050,1,"GWh/mth","res_com",0.814971216466675 +12,0,2050,2,"GWh/mth","agri",0 +12,0,2050,2,"GWh/mth","ind_man",0.393550069445158 +12,0,2050,2,"GWh/mth","res_com",0.798898254111438 +12,0,2050,3,"GWh/mth","agri",0 +12,0,2050,3,"GWh/mth","ind_man",0.384340356679556 +12,0,2050,3,"GWh/mth","res_com",0.784148946122381 +12,0,2050,4,"GWh/mth","agri",2.19101028172317e-05 +12,0,2050,4,"GWh/mth","ind_man",0.375784333959876 +12,0,2050,4,"GWh/mth","res_com",0.769020909144224 +12,0,2050,5,"GWh/mth","agri",0.0173721195873777 +12,0,2050,5,"GWh/mth","ind_man",0.364615370381799 +12,0,2050,5,"GWh/mth","res_com",0.753413565521165 +12,0,2050,6,"GWh/mth","agri",0.00021904382013853 +12,0,2050,6,"GWh/mth","ind_man",0.355319202403904 +12,0,2050,6,"GWh/mth","res_com",0.738542472959082 +12,0,2050,7,"GWh/mth","agri",1.5686438027152e-05 +12,0,2050,7,"GWh/mth","ind_man",0.354227804483747 +12,0,2050,7,"GWh/mth","res_com",0.737918488907837 +12,0,2050,8,"GWh/mth","agri",0.000540565453368779 +12,0,2050,8,"GWh/mth","ind_man",0.364990776037544 +12,0,2050,8,"GWh/mth","res_com",0.752345649031608 +12,0,2050,9,"GWh/mth","agri",0.00277041829114283 +12,0,2050,9,"GWh/mth","ind_man",0.375960612716008 +12,0,2050,9,"GWh/mth","res_com",0.771220345338832 +12,0,2050,10,"GWh/mth","agri",0.0035654881831851 +12,0,2050,10,"GWh/mth","ind_man",0.385949955164055 +12,0,2050,10,"GWh/mth","res_com",0.790218665342346 +12,0,2050,11,"GWh/mth","agri",0.000690563941163369 +12,0,2050,11,"GWh/mth","ind_man",0.395127820140423 +12,0,2050,11,"GWh/mth","res_com",0.794386148179894 +12,0,2050,12,"GWh/mth","agri",0 +12,0,2050,12,"GWh/mth","ind_man",0.404976938583884 +12,0,2050,12,"GWh/mth","res_com",0.808704879343686 +12,0,2060,1,"GWh/mth","agri",0 +12,0,2060,1,"GWh/mth","ind_man",0.450344789088044 +12,0,2060,1,"GWh/mth","res_com",0.910451228390649 +12,0,2060,2,"GWh/mth","agri",0 +12,0,2060,2,"GWh/mth","ind_man",0.437774186482142 +12,0,2060,2,"GWh/mth","res_com",0.895321316335565 +12,0,2060,3,"GWh/mth","agri",0 +12,0,2060,3,"GWh/mth","ind_man",0.427529557331448 +12,0,2060,3,"GWh/mth","res_com",0.880448520918419 +12,0,2060,4,"GWh/mth","agri",3.55829670228663e-05 +12,0,2060,4,"GWh/mth","ind_man",0.418012074864957 +12,0,2060,4,"GWh/mth","res_com",0.864435204151975 +12,0,2060,5,"GWh/mth","agri",0.0287419895943036 +12,0,2060,5,"GWh/mth","ind_man",0.405588029428668 +12,0,2060,5,"GWh/mth","res_com",0.849910301499894 +12,0,2060,6,"GWh/mth","agri",0.000371240542971109 +12,0,2060,6,"GWh/mth","ind_man",0.3952472298967 +12,0,2060,6,"GWh/mth","res_com",0.834923574220177 +12,0,2060,7,"GWh/mth","agri",4.9632222632878e-05 +12,0,2060,7,"GWh/mth","ind_man",0.394033189108196 +12,0,2060,7,"GWh/mth","res_com",0.834892427443218 +12,0,2060,8,"GWh/mth","agri",0.000914192288235836 +12,0,2060,8,"GWh/mth","ind_man",0.406005620272385 +12,0,2060,8,"GWh/mth","res_com",0.84794523809935 +12,0,2060,9,"GWh/mth","agri",0.00452180218458346 +12,0,2060,9,"GWh/mth","ind_man",0.418208162466131 +12,0,2060,9,"GWh/mth","res_com",0.86767323102266 +12,0,2060,10,"GWh/mth","agri",0.00581950649043612 +12,0,2060,10,"GWh/mth","ind_man",0.429320030061151 +12,0,2060,10,"GWh/mth","res_com",0.888427260799625 +12,0,2060,11,"GWh/mth","agri",0.0011271082053264 +12,0,2060,11,"GWh/mth","ind_man",0.439529232614048 +12,0,2060,11,"GWh/mth","res_com",0.887025784842869 +12,0,2060,12,"GWh/mth","agri",0 +12,0,2060,12,"GWh/mth","ind_man",0.450485118913932 +12,0,2060,12,"GWh/mth","res_com",0.900690360148132 +12,1,2020,1,"GWh/mth","agri",0 +12,1,2020,1,"GWh/mth","ind_man",0.129534891933111 +12,1,2020,1,"GWh/mth","res_com",0.615710051764983 +12,1,2020,2,"GWh/mth","agri",0 +12,1,2020,2,"GWh/mth","ind_man",0.125919147531167 +12,1,2020,2,"GWh/mth","res_com",0.602490052240773 +12,1,2020,3,"GWh/mth","agri",0 +12,1,2020,3,"GWh/mth","ind_man",0.122972434341441 +12,1,2020,3,"GWh/mth","res_com",0.598774790944202 +12,1,2020,4,"GWh/mth","agri",2.3120539143071e-08 +12,1,2020,4,"GWh/mth","ind_man",0.120234873937404 +12,1,2020,4,"GWh/mth","res_com",0.583712620833625 +12,1,2020,5,"GWh/mth","agri",0.00026351786822516 +12,1,2020,5,"GWh/mth","ind_man",0.116661284496698 +12,1,2020,5,"GWh/mth","res_com",0.581890167095127 +12,1,2020,6,"GWh/mth","agri",3.82989013549523e-06 +12,1,2020,6,"GWh/mth","ind_man",0.113686909346076 +12,1,2020,6,"GWh/mth","res_com",0.579645829060727 +12,1,2020,7,"GWh/mth","agri",1.51848331597422e-07 +12,1,2020,7,"GWh/mth","ind_man",0.113337708808729 +12,1,2020,7,"GWh/mth","res_com",0.576801329164821 +12,1,2020,8,"GWh/mth","agri",8.57077870383806e-06 +12,1,2020,8,"GWh/mth","ind_man",0.116781398209844 +12,1,2020,8,"GWh/mth","res_com",0.590550892268345 +12,1,2020,9,"GWh/mth","agri",4.54449355315655e-05 +12,1,2020,9,"GWh/mth","ind_man",0.120291275580862 +12,1,2020,9,"GWh/mth","res_com",0.590417936314295 +12,1,2020,10,"GWh/mth","agri",5.85286732775696e-05 +12,1,2020,10,"GWh/mth","ind_man",0.123487436839907 +12,1,2020,10,"GWh/mth","res_com",0.596174965500037 +12,1,2020,11,"GWh/mth","agri",1.13647556194437e-05 +12,1,2020,11,"GWh/mth","ind_man",0.126423960102651 +12,1,2020,11,"GWh/mth","res_com",0.59970580334118 +12,1,2020,12,"GWh/mth","agri",0 +12,1,2020,12,"GWh/mth","ind_man",0.129575255692772 +12,1,2020,12,"GWh/mth","res_com",0.61038198253337 +12,1,2030,1,"GWh/mth","agri",0 +12,1,2030,1,"GWh/mth","ind_man",0.312219578429027 +12,1,2030,1,"GWh/mth","res_com",1.17610174089412 +12,1,2030,2,"GWh/mth","agri",0 +12,1,2030,2,"GWh/mth","ind_man",0.303504504242955 +12,1,2030,2,"GWh/mth","res_com",1.14960924589295 +12,1,2030,3,"GWh/mth","agri",0 +12,1,2030,3,"GWh/mth","ind_man",0.296402004398184 +12,1,2030,3,"GWh/mth","res_com",1.13902574558832 +12,1,2030,4,"GWh/mth","agri",1.00135521839511e-07 +12,1,2030,4,"GWh/mth","ind_man",0.289803628142047 +12,1,2030,4,"GWh/mth","res_com",1.11101115005143 +12,1,2030,5,"GWh/mth","agri",0.000429536107401064 +12,1,2030,5,"GWh/mth","ind_man",0.281190160588983 +12,1,2030,5,"GWh/mth","res_com",1.10241288628734 +12,1,2030,6,"GWh/mth","agri",6.8509783738908e-06 +12,1,2030,6,"GWh/mth","ind_man",0.274020986772121 +12,1,2030,6,"GWh/mth","res_com",1.09408610028575 +12,1,2030,7,"GWh/mth","agri",6.19864343760484e-07 +12,1,2030,7,"GWh/mth","ind_man",0.273179304327099 +12,1,2030,7,"GWh/mth","res_com",1.08909410979089 +12,1,2030,8,"GWh/mth","agri",1.59512580610801e-05 +12,1,2030,8,"GWh/mth","ind_man",0.281479672181745 +12,1,2030,8,"GWh/mth","res_com",1.11612591754523 +12,1,2030,9,"GWh/mth","agri",8.31717708721121e-05 +12,1,2030,9,"GWh/mth","ind_man",0.289939573732308 +12,1,2030,9,"GWh/mth","res_com",1.1216224974287 +12,1,2030,10,"GWh/mth","agri",0.000107117163181439 +12,1,2030,10,"GWh/mth","ind_man",0.297643321394409 +12,1,2030,10,"GWh/mth","res_com",1.13586258826536 +12,1,2030,11,"GWh/mth","agri",2.07993463484278e-05 +12,1,2030,11,"GWh/mth","ind_man",0.304721260330079 +12,1,2030,11,"GWh/mth","res_com",1.14594374807426 +12,1,2030,12,"GWh/mth","agri",0 +12,1,2030,12,"GWh/mth","ind_man",0.312316867706357 +12,1,2030,12,"GWh/mth","res_com",1.16771693986157 +12,1,2040,1,"GWh/mth","agri",0 +12,1,2040,1,"GWh/mth","ind_man",0.479459406453312 +12,1,2040,1,"GWh/mth","res_com",1.81370870269988 +12,1,2040,2,"GWh/mth","agri",0 +12,1,2040,2,"GWh/mth","ind_man",0.466076119224894 +12,1,2040,2,"GWh/mth","res_com",1.77288587632223 +12,1,2040,3,"GWh/mth","agri",0 +12,1,2040,3,"GWh/mth","ind_man",0.455169178740755 +12,1,2040,3,"GWh/mth","res_com",1.75664686017155 +12,1,2040,4,"GWh/mth","agri",4.56009644334982e-07 +12,1,2040,4,"GWh/mth","ind_man",0.445036394694215 +12,1,2040,4,"GWh/mth","res_com",1.71342849253261 +12,1,2040,5,"GWh/mth","agri",0.000865738114283091 +12,1,2040,5,"GWh/mth","ind_man",0.431809139500045 +12,1,2040,5,"GWh/mth","res_com",1.70028999435153 +12,1,2040,6,"GWh/mth","agri",1.65517026958146e-05 +12,1,2040,6,"GWh/mth","ind_man",0.420799811256478 +12,1,2040,6,"GWh/mth","res_com",1.68754388311027 +12,1,2040,7,"GWh/mth","agri",2.71743696795708e-06 +12,1,2040,7,"GWh/mth","ind_man",0.419507283198043 +12,1,2040,7,"GWh/mth","res_com",1.67983629893838 +12,1,2040,8,"GWh/mth","agri",2.97379742759191e-05 +12,1,2040,8,"GWh/mth","ind_man",0.43225372743116 +12,1,2040,8,"GWh/mth","res_com",1.7215014983862 +12,1,2040,9,"GWh/mth","agri",0.000147957181914463 +12,1,2040,9,"GWh/mth","ind_man",0.445245159283369 +12,1,2040,9,"GWh/mth","res_com",1.729843955759 +12,1,2040,10,"GWh/mth","agri",0.000190554652986736 +12,1,2040,10,"GWh/mth","ind_man",0.457075404843632 +12,1,2040,10,"GWh/mth","res_com",1.75172900414484 +12,1,2040,11,"GWh/mth","agri",3.70006908105326e-05 +12,1,2040,11,"GWh/mth","ind_man",0.467944628414056 +12,1,2040,11,"GWh/mth","res_com",1.76719126030635 +12,1,2040,12,"GWh/mth","agri",0 +12,1,2040,12,"GWh/mth","ind_man",0.479608808548458 +12,1,2040,12,"GWh/mth","res_com",1.80073372678941 +12,1,2050,1,"GWh/mth","agri",0 +12,1,2050,1,"GWh/mth","ind_man",0.658295291288733 +12,1,2050,1,"GWh/mth","res_com",2.64866170746912 +12,1,2050,2,"GWh/mth","agri",0 +12,1,2050,2,"GWh/mth","ind_man",0.63992010697521 +12,1,2050,2,"GWh/mth","res_com",2.58992017836702 +12,1,2050,3,"GWh/mth","agri",0 +12,1,2050,3,"GWh/mth","ind_man",0.624944933964865 +12,1,2050,3,"GWh/mth","res_com",2.56843686262076 +12,1,2050,4,"GWh/mth","agri",4.46231663948863e-07 +12,1,2050,4,"GWh/mth","ind_man",0.611032673749083 +12,1,2050,4,"GWh/mth","res_com",2.50488669749451 +12,1,2050,5,"GWh/mth","agri",0.00143694455041257 +12,1,2050,5,"GWh/mth","ind_man",0.592871720613535 +12,1,2050,5,"GWh/mth","res_com",2.48899058633207 +12,1,2050,6,"GWh/mth","agri",2.41937297371687e-05 +12,1,2050,6,"GWh/mth","ind_man",0.577755969737766 +12,1,2050,6,"GWh/mth","res_com",2.47295422041277 +12,1,2050,7,"GWh/mth","agri",2.92142295743672e-06 +12,1,2050,7,"GWh/mth","ind_man",0.575981335382336 +12,1,2050,7,"GWh/mth","res_com",2.46144705452628 +12,1,2050,8,"GWh/mth","agri",5.2992101111487e-05 +12,1,2050,8,"GWh/mth","ind_man",0.593482137549103 +12,1,2050,8,"GWh/mth","res_com",2.52170873251151 +12,1,2050,9,"GWh/mth","agri",0.000271218620995951 +12,1,2050,9,"GWh/mth","ind_man",0.611319306452871 +12,1,2050,9,"GWh/mth","res_com",2.53025273291646 +12,1,2050,10,"GWh/mth","agri",0.000349304113258192 +12,1,2050,10,"GWh/mth","ind_man",0.627562172568938 +12,1,2050,10,"GWh/mth","res_com",2.56017331795249 +12,1,2050,11,"GWh/mth","agri",6.78256053371969e-05 +12,1,2050,11,"GWh/mth","ind_man",0.642485560451353 +12,1,2050,11,"GWh/mth","res_com",2.58046573540651 +12,1,2050,12,"GWh/mth","agri",0 +12,1,2050,12,"GWh/mth","ind_man",0.658500419594528 +12,1,2050,12,"GWh/mth","res_com",2.62850601855828 +12,1,2060,1,"GWh/mth","agri",0 +12,1,2060,1,"GWh/mth","ind_man",0.753588379073122 +12,1,2060,1,"GWh/mth","res_com",3.54994693547941 +12,1,2060,2,"GWh/mth","agri",0 +12,1,2060,2,"GWh/mth","ind_man",0.732553251607925 +12,1,2060,2,"GWh/mth","res_com",3.47425864285383 +12,1,2060,3,"GWh/mth","agri",0 +12,1,2060,3,"GWh/mth","ind_man",0.715410312102597 +12,1,2060,3,"GWh/mth","res_com",3.45322785832375 +12,1,2060,4,"GWh/mth","agri",1.5676943988331e-06 +12,1,2060,4,"GWh/mth","ind_man",0.699484149840779 +12,1,2060,4,"GWh/mth","res_com",3.36653633403883 +12,1,2060,5,"GWh/mth","agri",0.00249779045405216 +12,1,2060,5,"GWh/mth","ind_man",0.678694265093088 +12,1,2060,5,"GWh/mth","res_com",3.35667926528926 +12,1,2060,6,"GWh/mth","agri",5.07335813339511e-05 +12,1,2060,6,"GWh/mth","ind_man",0.661390398041808 +12,1,2060,6,"GWh/mth","res_com",3.34415281819235 +12,1,2060,7,"GWh/mth","agri",1.0061025091528e-05 +12,1,2060,7,"GWh/mth","ind_man",0.659358872303962 +12,1,2060,7,"GWh/mth","res_com",3.32785561191947 +12,1,2060,8,"GWh/mth","agri",9.15802163121102e-05 +12,1,2060,8,"GWh/mth","ind_man",0.679393044372115 +12,1,2060,8,"GWh/mth","res_com",3.40659014065876 +12,1,2060,9,"GWh/mth","agri",0.000443541842188292 +12,1,2060,9,"GWh/mth","ind_man",0.69981227473776 +12,1,2060,9,"GWh/mth","res_com",3.4053820568644 +12,1,2060,10,"GWh/mth","agri",0.0005712424453744 +12,1,2060,10,"GWh/mth","ind_man",0.71840641525477 +12,1,2060,10,"GWh/mth","res_com",3.43838924820844 +12,1,2060,11,"GWh/mth","agri",0.00011091992173542 +12,1,2060,11,"GWh/mth","ind_man",0.735490073353816 +12,1,2060,11,"GWh/mth","res_com",3.45762716122522 +12,1,2060,12,"GWh/mth","agri",0 +12,1,2060,12,"GWh/mth","ind_man",0.753823201210713 +12,1,2060,12,"GWh/mth","res_com",3.51873162734294 +13,0,2020,1,"GWh/mth","agri",1.10758312208786 +13,0,2020,1,"GWh/mth","ind_man",0.04883299619914 +13,0,2020,1,"GWh/mth","res_com",0.507900682454506 +13,0,2020,2,"GWh/mth","agri",0.587789649127711 +13,0,2020,2,"GWh/mth","ind_man",0.0474699068414992 +13,0,2020,2,"GWh/mth","res_com",0.523083700287711 +13,0,2020,3,"GWh/mth","agri",0.391859766085141 +13,0,2020,3,"GWh/mth","ind_man",0.0463590336871978 +13,0,2020,3,"GWh/mth","res_com",0.532677283540078 +13,0,2020,4,"GWh/mth","agri",1.68475660346965e-11 +13,0,2020,4,"GWh/mth","ind_man",0.045327008455924 +13,0,2020,4,"GWh/mth","res_com",0.525503083483976 +13,0,2020,5,"GWh/mth","agri",2.04755442766405e-07 +13,0,2020,5,"GWh/mth","ind_man",0.0439798109790822 +13,0,2020,5,"GWh/mth","res_com",0.551683751578398 +13,0,2020,6,"GWh/mth","agri",5.77169905043409e-05 +13,0,2020,6,"GWh/mth","ind_man",0.0428585096195989 +13,0,2020,6,"GWh/mth","res_com",0.56186668067631 +13,0,2020,7,"GWh/mth","agri",0.000329495024510345 +13,0,2020,7,"GWh/mth","ind_man",0.0427268654868208 +13,0,2020,7,"GWh/mth","res_com",0.566153055998883 +13,0,2020,8,"GWh/mth","agri",0.000897451783587819 +13,0,2020,8,"GWh/mth","ind_man",0.0440250923114705 +13,0,2020,8,"GWh/mth","res_com",0.544943141362493 +13,0,2020,9,"GWh/mth","agri",0.0012789470436342 +13,0,2020,9,"GWh/mth","ind_man",0.0453482711535611 +13,0,2020,9,"GWh/mth","res_com",0.540643306827459 +13,0,2020,10,"GWh/mth","agri",0.0019289361113397 +13,0,2020,10,"GWh/mth","ind_man",0.0465531830370356 +13,0,2020,10,"GWh/mth","res_com",0.543711436363098 +13,0,2020,11,"GWh/mth","agri",0.00219948637790397 +13,0,2020,11,"GWh/mth","ind_man",0.0476602147192971 +13,0,2020,11,"GWh/mth","res_com",0.482817522240742 +13,0,2020,12,"GWh/mth","agri",0.000443625417525366 +13,0,2020,12,"GWh/mth","ind_man",0.0488482128198721 +13,0,2020,12,"GWh/mth","res_com",0.470260074325856 +13,0,2030,1,"GWh/mth","agri",1.72055157325254 +13,0,2030,1,"GWh/mth","ind_man",2.12902620506318 +13,0,2030,1,"GWh/mth","res_com",5.0684426484888 +13,0,2030,2,"GWh/mth","agri",0.912776243390746 +13,0,2030,2,"GWh/mth","ind_man",2.06959808907321 +13,0,2030,2,"GWh/mth","res_com",4.97186591973684 +13,0,2030,3,"GWh/mth","agri",0.608517495593831 +13,0,2030,3,"GWh/mth","ind_man",2.02116612216371 +13,0,2030,3,"GWh/mth","res_com",4.88749313707575 +13,0,2030,4,"GWh/mth","agri",1.94842814727519e-11 +13,0,2030,4,"GWh/mth","ind_man",1.97617177545788 +13,0,2030,4,"GWh/mth","res_com",4.78633628936278 +13,0,2030,5,"GWh/mth","agri",8.41610844090431e-08 +13,0,2030,5,"GWh/mth","ind_man",1.91743651539121 +13,0,2030,5,"GWh/mth","res_com",4.7060895736599 +13,0,2030,6,"GWh/mth","agri",5.27275499680972e-05 +13,0,2030,6,"GWh/mth","ind_man",1.86854989847388 +13,0,2030,6,"GWh/mth","res_com",4.6214179358702 +13,0,2030,7,"GWh/mth","agri",0.000486367745265355 +13,0,2030,7,"GWh/mth","ind_man",1.86281046345571 +13,0,2030,7,"GWh/mth","res_com",4.61677481834001 +13,0,2030,8,"GWh/mth","agri",0.0015472820404862 +13,0,2030,8,"GWh/mth","ind_man",1.91941069577657 +13,0,2030,8,"GWh/mth","res_com",4.69807326575407 +13,0,2030,9,"GWh/mth","agri",0.00240714525552492 +13,0,2030,9,"GWh/mth","ind_man",1.97709878882964 +13,0,2030,9,"GWh/mth","res_com",4.81048441498521 +13,0,2030,10,"GWh/mth","agri",0.00376334179737277 +13,0,2030,10,"GWh/mth","ind_man",2.0296306663382 +13,0,2030,10,"GWh/mth","res_com",4.92262005969021 +13,0,2030,11,"GWh/mth","agri",0.00414768905405055 +13,0,2030,11,"GWh/mth","ind_man",2.07789515233776 +13,0,2030,11,"GWh/mth","res_com",4.92698272185263 +13,0,2030,12,"GWh/mth","agri",0.000434808623706657 +13,0,2030,12,"GWh/mth","ind_man",2.12968962092566 +13,0,2030,12,"GWh/mth","res_com",5.01236575653172 +13,0,2040,1,"GWh/mth","agri",2.66206803700033 +13,0,2040,1,"GWh/mth","ind_man",3.64017520469237 +13,0,2040,1,"GWh/mth","res_com",8.48724281619739 +13,0,2040,2,"GWh/mth","agri",1.41226366023443 +13,0,2040,2,"GWh/mth","ind_man",3.538565955462 +13,0,2040,2,"GWh/mth","res_com",8.31960076574798 +13,0,2040,3,"GWh/mth","agri",0.941509106822952 +13,0,2040,3,"GWh/mth","ind_man",3.45575774735296 +13,0,2040,3,"GWh/mth","res_com",8.17425972927641 +13,0,2040,4,"GWh/mth","agri",3.84711712877626e-11 +13,0,2040,4,"GWh/mth","ind_man",3.37882712769202 +13,0,2040,4,"GWh/mth","res_com",8.0040757375569 +13,0,2040,5,"GWh/mth","agri",2.24404195424502e-07 +13,0,2040,5,"GWh/mth","ind_man",3.27840251251943 +13,0,2040,5,"GWh/mth","res_com",7.86187183075569 +13,0,2040,6,"GWh/mth","agri",0.000149430546227052 +13,0,2040,6,"GWh/mth","ind_man",3.19481695104509 +13,0,2040,6,"GWh/mth","res_com",7.71593115233416 +13,0,2040,7,"GWh/mth","agri",0.00123545393530048 +13,0,2040,7,"GWh/mth","ind_man",3.18500375617113 +13,0,2040,7,"GWh/mth","res_com",7.70696055575475 +13,0,2040,8,"GWh/mth","agri",0.0038506590519156 +13,0,2040,8,"GWh/mth","ind_man",3.28177793479995 +13,0,2040,8,"GWh/mth","res_com",7.85015107574309 +13,0,2040,9,"GWh/mth","agri",0.0063461216782458 +13,0,2040,9,"GWh/mth","ind_man",3.38041212043767 +13,0,2040,9,"GWh/mth","res_com",8.0416328937056 +13,0,2040,10,"GWh/mth","agri",0.00994241718971132 +13,0,2040,10,"GWh/mth","ind_man",3.4702302905982 +13,0,2040,10,"GWh/mth","res_com",8.23108728741899 +13,0,2040,11,"GWh/mth","agri",0.0118713688478274 +13,0,2040,11,"GWh/mth","ind_man",3.55275214250636 +13,0,2040,11,"GWh/mth","res_com",8.2529663966663 +13,0,2040,12,"GWh/mth","agri",0.00120299741193706 +13,0,2040,12,"GWh/mth","ind_man",3.64130950260155 +13,0,2040,12,"GWh/mth","res_com",8.40094078407882 +13,0,2050,1,"GWh/mth","agri",4.12498912590477 +13,0,2050,1,"GWh/mth","ind_man",4.93748779358652 +13,0,2050,1,"GWh/mth","res_com",11.6736881295231 +13,0,2050,2,"GWh/mth","agri",2.18836339282367 +13,0,2050,2,"GWh/mth","ind_man",4.79966628786786 +13,0,2050,2,"GWh/mth","res_com",11.4554844002556 +13,0,2050,3,"GWh/mth","agri",1.45890892854911 +13,0,2050,3,"GWh/mth","ind_man",4.6873462774958 +13,0,2050,3,"GWh/mth","res_com",11.2640715932357 +13,0,2050,4,"GWh/mth","agri",6.20558177413792e-11 +13,0,2050,4,"GWh/mth","ind_man",4.58299855405676 +13,0,2050,4,"GWh/mth","res_com",11.031647829477 +13,0,2050,5,"GWh/mth","agri",3.6771315983198e-07 +13,0,2050,5,"GWh/mth","ind_man",4.44678387105163 +13,0,2050,5,"GWh/mth","res_com",10.8524394970438 +13,0,2050,6,"GWh/mth","agri",0.000240417908499661 +13,0,2050,6,"GWh/mth","ind_man",4.33340946836694 +13,0,2050,6,"GWh/mth","res_com",10.6604122251193 +13,0,2050,7,"GWh/mth","agri",0.00196666331094988 +13,0,2050,7,"GWh/mth","ind_man",4.32009897445339 +13,0,2050,7,"GWh/mth","res_com",10.6505685090271 +13,0,2050,8,"GWh/mth","agri",0.00615131990508134 +13,0,2050,8,"GWh/mth","ind_man",4.45136225131387 +13,0,2050,8,"GWh/mth","res_com",10.8327774999012 +13,0,2050,9,"GWh/mth","agri",0.0102435309530665 +13,0,2050,9,"GWh/mth","ind_man",4.58514841825133 +13,0,2050,9,"GWh/mth","res_com",11.0893344494143 +13,0,2050,10,"GWh/mth","agri",0.0160563298370721 +13,0,2050,10,"GWh/mth","ind_man",4.7069766528479 +13,0,2050,10,"GWh/mth","res_com",11.3463880619611 +13,0,2050,11,"GWh/mth","agri",0.019753720530846 +13,0,2050,11,"GWh/mth","ind_man",4.81890825327623 +13,0,2050,11,"GWh/mth","res_com",11.3460157390496 +13,0,2050,12,"GWh/mth","agri",0.00202939627768515 +13,0,2050,12,"GWh/mth","ind_man",4.93902634098218 +13,0,2050,12,"GWh/mth","res_com",11.5390959788289 +13,0,2060,1,"GWh/mth","agri",6.35458899332925 +13,0,2060,1,"GWh/mth","ind_man",6.40828260502123 +13,0,2060,1,"GWh/mth","res_com",15.4670285020184 +13,0,2060,2,"GWh/mth","agri",3.37119674864398 +13,0,2060,2,"GWh/mth","ind_man",6.2294063840325 +13,0,2060,2,"GWh/mth","res_com",15.2011246523123 +13,0,2060,3,"GWh/mth","agri",2.24746449909599 +13,0,2060,3,"GWh/mth","ind_man",6.08362812619094 +13,0,2060,3,"GWh/mth","res_com",14.9634955598776 +13,0,2060,4,"GWh/mth","agri",9.73176591633736e-11 +13,0,2060,4,"GWh/mth","ind_man",5.94819696586349 +13,0,2060,4,"GWh/mth","res_com",14.6586255506536 +13,0,2060,5,"GWh/mth","agri",5.70181643754726e-07 +13,0,2060,5,"GWh/mth","ind_man",5.77140621312804 +13,0,2060,5,"GWh/mth","res_com",14.4519755949478 +13,0,2060,6,"GWh/mth","agri",0.000380480136533049 +13,0,2060,6,"GWh/mth","ind_man",5.62425947718619 +13,0,2060,6,"GWh/mth","res_com",14.213937288154 +13,0,2060,7,"GWh/mth","agri",0.00308376901464952 +13,0,2060,7,"GWh/mth","ind_man",5.60698401035441 +13,0,2060,7,"GWh/mth","res_com",14.2055566868896 +13,0,2060,8,"GWh/mth","agri",0.00969028906706672 +13,0,2060,8,"GWh/mth","ind_man",5.77734841609041 +13,0,2060,8,"GWh/mth","res_com",14.419352692369 +13,0,2060,9,"GWh/mth","agri",0.0162273081507015 +13,0,2060,9,"GWh/mth","ind_man",5.95098723854814 +13,0,2060,9,"GWh/mth","res_com",14.7463967065285 +13,0,2060,10,"GWh/mth","agri",0.0254147119931747 +13,0,2060,10,"GWh/mth","ind_man",6.10910606115662 +13,0,2060,10,"GWh/mth","res_com",15.0803002434451 +13,0,2060,11,"GWh/mth","agri",0.0331682605312698 +13,0,2060,11,"GWh/mth","ind_man",6.2543802082459 +13,0,2060,11,"GWh/mth","res_com",15.0226802873001 +13,0,2060,12,"GWh/mth","agri",0.00363698310767089 +13,0,2060,12,"GWh/mth","ind_man",6.41027945988442 +13,0,2060,12,"GWh/mth","res_com",15.2589037560123 +13,1,2020,1,"GWh/mth","agri",0.0488575008329799 +13,1,2020,1,"GWh/mth","ind_man",1.29320588913389 +13,1,2020,1,"GWh/mth","res_com",4.79632318352174 +13,1,2020,2,"GWh/mth","agri",0.0257618008822069 +13,1,2020,2,"GWh/mth","ind_man",1.25710826412787 +13,1,2020,2,"GWh/mth","res_com",4.67120180303116 +13,1,2020,3,"GWh/mth","agri",0.0171745339214713 +13,1,2020,3,"GWh/mth","ind_man",1.22768988276612 +13,1,2020,3,"GWh/mth","res_com",4.58398526143658 +13,1,2020,4,"GWh/mth","agri",4.96939706503017e-18 +13,1,2020,4,"GWh/mth","ind_man",1.20035956902957 +13,1,2020,4,"GWh/mth","res_com",4.47773102865294 +13,1,2020,5,"GWh/mth","agri",4.80675842861716e-12 +13,1,2020,5,"GWh/mth","ind_man",1.16468279622265 +13,1,2020,5,"GWh/mth","res_com",4.37845245009478 +13,1,2020,6,"GWh/mth","agri",5.4188563700581e-07 +13,1,2020,6,"GWh/mth","ind_man",1.13498825289247 +13,1,2020,6,"GWh/mth","res_com",4.29351587867152 +13,1,2020,7,"GWh/mth","agri",7.61451295169763e-05 +13,1,2020,7,"GWh/mth","ind_man",1.13150202470602 +13,1,2020,7,"GWh/mth","res_com",4.27817552246462 +13,1,2020,8,"GWh/mth","agri",0.000178219390765379 +13,1,2020,8,"GWh/mth","ind_man",1.16588194618825 +13,1,2020,8,"GWh/mth","res_com",4.39902617250584 +13,1,2020,9,"GWh/mth","agri",0.000120346749616387 +13,1,2020,9,"GWh/mth","ind_man",1.20092265235321 +13,1,2020,9,"GWh/mth","res_com",4.49418408061819 +13,1,2020,10,"GWh/mth","agri",0.000152442999870853 +13,1,2020,10,"GWh/mth","ind_man",1.23283138752978 +13,1,2020,10,"GWh/mth","res_com",4.59265988990798 +13,1,2020,11,"GWh/mth","agri",0.000185037132670275 +13,1,2020,11,"GWh/mth","ind_man",1.26214803820426 +13,1,2020,11,"GWh/mth","res_com",4.67702733465809 +13,1,2020,12,"GWh/mth","agri",0.000121975781339242 +13,1,2020,12,"GWh/mth","ind_man",1.29360885895092 +13,1,2020,12,"GWh/mth","res_com",4.78429763119856 +13,1,2030,1,"GWh/mth","agri",0.0882603811712339 +13,1,2030,1,"GWh/mth","ind_man",1.80019878243492 +13,1,2030,1,"GWh/mth","res_com",6.71755433389409 +13,1,2030,2,"GWh/mth","agri",0.0468918756943025 +13,1,2030,2,"GWh/mth","ind_man",1.74994932012529 +13,1,2030,2,"GWh/mth","res_com",6.54476934609686 +13,1,2030,3,"GWh/mth","agri",0.0312612504628683 +13,1,2030,3,"GWh/mth","ind_man",1.70899765515561 +13,1,2030,3,"GWh/mth","res_com",6.42834868620106 +13,1,2030,4,"GWh/mth","agri",1.47950575440708e-17 +13,1,2030,4,"GWh/mth","ind_man",1.67095267103862 +13,1,2030,4,"GWh/mth","res_com",6.27834242010092 +13,1,2030,5,"GWh/mth","agri",1.41570513344002e-11 +13,1,2030,5,"GWh/mth","ind_man",1.62128905327452 +13,1,2030,5,"GWh/mth","res_com",6.14798592579878 +13,1,2030,6,"GWh/mth","agri",1.05406531441407e-09 +13,1,2030,6,"GWh/mth","ind_man",1.57995295884663 +13,1,2030,6,"GWh/mth","res_com",6.03560688723166 +13,1,2030,7,"GWh/mth","agri",7.87169536772412e-05 +13,1,2030,7,"GWh/mth","ind_man",1.57509997774804 +13,1,2030,7,"GWh/mth","res_com",6.01355310157907 +13,1,2030,8,"GWh/mth","agri",0.000245776210162108 +13,1,2030,8,"GWh/mth","ind_man",1.62295832212503 +13,1,2030,8,"GWh/mth","res_com",6.18087463771909 +13,1,2030,9,"GWh/mth","agri",0.000206354883683252 +13,1,2030,9,"GWh/mth","ind_man",1.67173650748891 +13,1,2030,9,"GWh/mth","res_com",6.30512937937555 +13,1,2030,10,"GWh/mth","agri",0.000323808533225735 +13,1,2030,10,"GWh/mth","ind_man",1.71615485316499 +13,1,2030,10,"GWh/mth","res_com",6.43792237007944 +13,1,2030,11,"GWh/mth","agri",0.000440767008302193 +13,1,2030,11,"GWh/mth","ind_man",1.75696490459819 +13,1,2030,11,"GWh/mth","res_com",6.54938243786337 +13,1,2030,12,"GWh/mth","agri",5.57740569391036e-05 +13,1,2030,12,"GWh/mth","ind_man",1.8007597339277 +13,1,2030,12,"GWh/mth","res_com",6.69703475251757 +13,1,2040,1,"GWh/mth","agri",0.136558033657338 +13,1,2040,1,"GWh/mth","ind_man",2.6393858390984 +13,1,2040,1,"GWh/mth","res_com",10.0343782823542 +13,1,2040,2,"GWh/mth","agri",0.0725519452141832 +13,1,2040,2,"GWh/mth","ind_man",2.56571190900999 +13,1,2040,2,"GWh/mth","res_com",9.77727263167911 +13,1,2040,3,"GWh/mth","agri",0.0483679634761221 +13,1,2040,3,"GWh/mth","ind_man",2.50567007048464 +13,1,2040,3,"GWh/mth","res_com",9.60543377783458 +13,1,2040,4,"GWh/mth","agri",1.25234078153792e-14 +13,1,2040,4,"GWh/mth","ind_man",2.44988990147948 +13,1,2040,4,"GWh/mth","res_com",9.38096700344902 +13,1,2040,5,"GWh/mth","agri",2.92536190955049e-10 +13,1,2040,5,"GWh/mth","ind_man",2.3770749153102 +13,1,2040,5,"GWh/mth","res_com",9.1894285288097 +13,1,2040,6,"GWh/mth","agri",5.85693518863271e-09 +13,1,2040,6,"GWh/mth","ind_man",2.31646944032535 +13,1,2040,6,"GWh/mth","res_com",9.02391909170099 +13,1,2040,7,"GWh/mth","agri",0.00017613928824793 +13,1,2040,7,"GWh/mth","ind_man",2.30935417632562 +13,1,2040,7,"GWh/mth","res_com",8.9908124500851 +13,1,2040,8,"GWh/mth","agri",0.00057046872056388 +13,1,2040,8,"GWh/mth","ind_man",2.37952233645539 +13,1,2040,8,"GWh/mth","res_com",9.23989761744959 +13,1,2040,9,"GWh/mth","agri",0.000540524902426919 +13,1,2040,9,"GWh/mth","ind_man",2.45103913391273 +13,1,2040,9,"GWh/mth","res_com",9.42234209774818 +13,1,2040,10,"GWh/mth","agri",0.000848395870690052 +13,1,2040,10,"GWh/mth","ind_man",2.51616369333224 +13,1,2040,10,"GWh/mth","res_com",9.61890533165259 +13,1,2040,11,"GWh/mth","agri",0.00115285509796932 +13,1,2040,11,"GWh/mth","ind_man",2.57599790325209 +13,1,2040,11,"GWh/mth","res_com",9.78271540533987 +13,1,2040,12,"GWh/mth","agri",0.000138947248504869 +13,1,2040,12,"GWh/mth","ind_man",2.6402082857309 +13,1,2040,12,"GWh/mth","res_com",10.0022580422244 +13,1,2050,1,"GWh/mth","agri",0.211602557133061 +13,1,2050,1,"GWh/mth","ind_man",3.9989104104237 +13,1,2050,1,"GWh/mth","res_com",15.3675825250461 +13,1,2050,2,"GWh/mth","agri",0.112422365210836 +13,1,2050,2,"GWh/mth","ind_man",3.88728768302891 +13,1,2050,2,"GWh/mth","res_com",14.9739233697357 +13,1,2050,3,"GWh/mth","agri",0.0749482434738907 +13,1,2050,3,"GWh/mth","ind_man",3.796318818385 +13,1,2050,3,"GWh/mth","res_com",14.7115868661867 +13,1,2050,4,"GWh/mth","agri",1.37967010833503e-15 +13,1,2050,4,"GWh/mth","ind_man",3.71180677197419 +13,1,2050,4,"GWh/mth","res_com",14.3675385206258 +13,1,2050,5,"GWh/mth","agri",1.08247652655726e-09 +13,1,2050,5,"GWh/mth","ind_man",3.60148542300208 +13,1,2050,5,"GWh/mth","res_com",14.0753608106066 +13,1,2050,6,"GWh/mth","agri",1.69123425714864e-08 +13,1,2050,6,"GWh/mth","ind_man",3.50966259768588 +13,1,2050,6,"GWh/mth","res_com",13.8228715344373 +13,1,2050,7,"GWh/mth","agri",0.000276042272456097 +13,1,2050,7,"GWh/mth","ind_man",3.4988823234039 +13,1,2050,7,"GWh/mth","res_com",13.7719864989603 +13,1,2050,8,"GWh/mth","agri",0.00089393156500796 +13,1,2050,8,"GWh/mth","ind_man",3.60519348938299 +13,1,2050,8,"GWh/mth","res_com",14.1535268853676 +13,1,2050,9,"GWh/mth","agri",0.000847504116934018 +13,1,2050,9,"GWh/mth","ind_man",3.71354796398682 +13,1,2050,9,"GWh/mth","res_com",14.4314385637164 +13,1,2050,10,"GWh/mth","agri",0.00133110127502062 +13,1,2050,10,"GWh/mth","ind_man",3.81221761462263 +13,1,2050,10,"GWh/mth","res_com",14.7316069555348 +13,1,2050,11,"GWh/mth","agri",0.00183781145931112 +13,1,2050,11,"GWh/mth","ind_man",3.90287190298151 +13,1,2050,11,"GWh/mth","res_com",14.9821085609881 +13,1,2050,12,"GWh/mth","agri",0.000222355665964041 +13,1,2050,12,"GWh/mth","ind_man",4.00015649212651 +13,1,2050,12,"GWh/mth","res_com",15.3181573779104 +13,1,2060,1,"GWh/mth","agri",0.325975957627074 +13,1,2060,1,"GWh/mth","ind_man",6.3333373993009 +13,1,2060,1,"GWh/mth","res_com",24.1858335934051 +13,1,2060,2,"GWh/mth","agri",0.173187832202133 +13,1,2060,2,"GWh/mth","ind_man",6.15655314522542 +13,1,2060,2,"GWh/mth","res_com",23.5651084029512 +13,1,2060,3,"GWh/mth","agri",0.115458554801422 +13,1,2060,3,"GWh/mth","ind_man",6.01247977185866 +13,1,2060,3,"GWh/mth","res_com",23.1493310924915 +13,1,2060,4,"GWh/mth","agri",1.32103534306843e-15 +13,1,2060,4,"GWh/mth","ind_man",5.87863248615057 +13,1,2060,4,"GWh/mth","res_com",22.6085023879741 +13,1,2060,5,"GWh/mth","agri",1.2358188460719e-09 +13,1,2060,5,"GWh/mth","ind_man",5.70390931066629 +13,1,2060,5,"GWh/mth","res_com",22.1442770209445 +13,1,2060,6,"GWh/mth","agri",3.33499752830548e-08 +13,1,2060,6,"GWh/mth","ind_man",5.55848346362338 +13,1,2060,6,"GWh/mth","res_com",21.7435601496254 +13,1,2060,7,"GWh/mth","agri",0.000429942361076796 +13,1,2060,7,"GWh/mth","ind_man",5.54141003429453 +13,1,2060,7,"GWh/mth","res_com",21.6637912062223 +13,1,2060,8,"GWh/mth","agri",0.00138740443118553 +13,1,2060,8,"GWh/mth","ind_man",5.70978201924913 +13,1,2060,8,"GWh/mth","res_com",22.2651673584333 +13,1,2060,9,"GWh/mth","agri",0.00131007368035531 +13,1,2060,9,"GWh/mth","ind_man",5.88139012644784 +13,1,2060,9,"GWh/mth","res_com",22.7071639690754 +13,1,2060,10,"GWh/mth","agri",0.00205726582700914 +13,1,2060,10,"GWh/mth","ind_man",6.03765974102056 +13,1,2060,10,"GWh/mth","res_com",23.1822074989888 +13,1,2060,11,"GWh/mth","agri",0.00285890630562338 +13,1,2060,11,"GWh/mth","ind_man",6.18123489923708 +13,1,2060,11,"GWh/mth","res_com",23.5797127550771 +13,1,2060,12,"GWh/mth","agri",0.000349433228662603 +13,1,2060,12,"GWh/mth","ind_man",6.33531090084032 +13,1,2060,12,"GWh/mth","res_com",24.10985315046 +14,0,2020,1,"GWh/mth","agri",0.138010270167653 +14,0,2020,1,"GWh/mth","ind_man",0 +14,0,2020,1,"GWh/mth","res_com",0.269561645528617 +14,0,2020,2,"GWh/mth","agri",0.0741217107417919 +14,0,2020,2,"GWh/mth","ind_man",0 +14,0,2020,2,"GWh/mth","res_com",0.287873341137264 +14,0,2020,3,"GWh/mth","agri",0.0494144738278612 +14,0,2020,3,"GWh/mth","ind_man",0 +14,0,2020,3,"GWh/mth","res_com",0.299109109615215 +14,0,2020,4,"GWh/mth","agri",1.79954943097779e-08 +14,0,2020,4,"GWh/mth","ind_man",0 +14,0,2020,4,"GWh/mth","res_com",0.297115257095495 +14,0,2020,5,"GWh/mth","agri",1.26638499895449e-05 +14,0,2020,5,"GWh/mth","ind_man",0 +14,0,2020,5,"GWh/mth","res_com",0.323255508387207 +14,0,2020,6,"GWh/mth","agri",0.000171800711187258 +14,0,2020,6,"GWh/mth","ind_man",0 +14,0,2020,6,"GWh/mth","res_com",0.334801076177506 +14,0,2020,7,"GWh/mth","agri",0.000324645609031654 +14,0,2020,7,"GWh/mth","ind_man",0 +14,0,2020,7,"GWh/mth","res_com",0.339377366583976 +14,0,2020,8,"GWh/mth","agri",0.000959767384619679 +14,0,2020,8,"GWh/mth","ind_man",0 +14,0,2020,8,"GWh/mth","res_com",0.315792523773765 +14,0,2020,9,"GWh/mth","agri",0.00300698881553645 +14,0,2020,9,"GWh/mth","ind_man",0 +14,0,2020,9,"GWh/mth","res_com",0.309484320947357 +14,0,2020,10,"GWh/mth","agri",0.00431778180724267 +14,0,2020,10,"GWh/mth","ind_man",0 +14,0,2020,10,"GWh/mth","res_com",0.309160614048025 +14,0,2020,11,"GWh/mth","agri",0.00264133714260886 +14,0,2020,11,"GWh/mth","ind_man",0 +14,0,2020,11,"GWh/mth","res_com",0.251945829449651 +14,0,2020,12,"GWh/mth","agri",0.000432544755162721 +14,0,2020,12,"GWh/mth","ind_man",0 +14,0,2020,12,"GWh/mth","res_com",0.236733112613648 +14,0,2030,1,"GWh/mth","agri",0.215274298843661 +14,0,2030,1,"GWh/mth","ind_man",2.06394459722232 +14,0,2030,1,"GWh/mth","res_com",4.2652053709599 +14,0,2030,2,"GWh/mth","agri",0.115591947451207 +14,0,2030,2,"GWh/mth","ind_man",2.00633312272337 +14,0,2030,2,"GWh/mth","res_com",4.18622933927961 +14,0,2030,3,"GWh/mth","agri",0.0770612983008049 +14,0,2030,3,"GWh/mth","ind_man",1.95938165909272 +14,0,2030,3,"GWh/mth","res_com",4.11618206245707 +14,0,2030,4,"GWh/mth","agri",5.97780917369214e-08 +14,0,2030,4,"GWh/mth","ind_man",1.9157627320132 +14,0,2030,4,"GWh/mth","res_com",4.03171606062909 +14,0,2030,5,"GWh/mth","agri",1.60924918294039e-05 +14,0,2030,5,"GWh/mth","ind_man",1.85882293371821 +14,0,2030,5,"GWh/mth","res_com",3.9662414136923 +14,0,2030,6,"GWh/mth","agri",0.000278458472074666 +14,0,2030,6,"GWh/mth","ind_man",1.81143071814892 +14,0,2030,6,"GWh/mth","res_com",3.89585416291898 +14,0,2030,7,"GWh/mth","agri",0.000562704521636586 +14,0,2030,7,"GWh/mth","ind_man",1.80586673031792 +14,0,2030,7,"GWh/mth","res_com",3.89257177859997 +14,0,2030,8,"GWh/mth","agri",0.00183531952409811 +14,0,2030,8,"GWh/mth","ind_man",1.86073676593437 +14,0,2030,8,"GWh/mth","res_com",3.95820949135961 +14,0,2030,9,"GWh/mth","agri",0.00573455351180221 +14,0,2030,9,"GWh/mth","ind_man",1.91666140777193 +14,0,2030,9,"GWh/mth","res_com",4.05265969007686 +14,0,2030,10,"GWh/mth","agri",0.00859736816001768 +14,0,2030,10,"GWh/mth","ind_man",1.96758745297884 +14,0,2030,10,"GWh/mth","res_com",4.14704455746819 +14,0,2030,11,"GWh/mth","agri",0.00598034804283813 +14,0,2030,11,"GWh/mth","ind_man",2.01437655537673 +14,0,2030,11,"GWh/mth","res_com",4.14536534758985 +14,0,2030,12,"GWh/mth","agri",0.00051016976687241 +14,0,2030,12,"GWh/mth","ind_man",2.06458773331046 +14,0,2030,12,"GWh/mth","res_com",4.21534880112616 +14,0,2040,1,"GWh/mth","agri",0.331693042854476 +14,0,2040,1,"GWh/mth","ind_man",3.36025426800442 +14,0,2040,1,"GWh/mth","res_com",6.91429753192327 +14,0,2040,2,"GWh/mth","agri",0.178041530008276 +14,0,2040,2,"GWh/mth","ind_man",3.26645853175662 +14,0,2040,2,"GWh/mth","res_com",6.78330904964012 +14,0,2040,3,"GWh/mth","agri",0.118694353338851 +14,0,2040,3,"GWh/mth","ind_man",3.19001808065814 +14,0,2040,3,"GWh/mth","res_com",6.66776272565087 +14,0,2040,4,"GWh/mth","agri",5.81115049717075e-07 +14,0,2040,4,"GWh/mth","ind_man",3.1190032452396 +14,0,2040,4,"GWh/mth","res_com",6.53041626123145 +14,0,2040,5,"GWh/mth","agri",6.18540092525788e-05 +14,0,2040,5,"GWh/mth","ind_man",3.02630104746862 +14,0,2040,5,"GWh/mth","res_com",6.42041990453921 +14,0,2040,6,"GWh/mth","agri",0.000553961044561936 +14,0,2040,6,"GWh/mth","ind_man",2.94914301965567 +14,0,2040,6,"GWh/mth","res_com",6.30428027860991 +14,0,2040,7,"GWh/mth","agri",0.00132174054036485 +14,0,2040,7,"GWh/mth","ind_man",2.94008443645464 +14,0,2040,7,"GWh/mth","res_com",6.29835227890972 +14,0,2040,8,"GWh/mth","agri",0.0044213607346568 +14,0,2040,8,"GWh/mth","ind_man",3.02941690769145 +14,0,2040,8,"GWh/mth","res_com",6.40828494990033 +14,0,2040,9,"GWh/mth","agri",0.0134190456421413 +14,0,2040,9,"GWh/mth","ind_man",3.12046635576006 +14,0,2040,9,"GWh/mth","res_com",6.56295781567035 +14,0,2040,10,"GWh/mth","agri",0.0202132632522775 +14,0,2040,10,"GWh/mth","ind_man",3.20337771926729 +14,0,2040,10,"GWh/mth","res_com",6.71676647989236 +14,0,2040,11,"GWh/mth","agri",0.0150681680810252 +14,0,2040,11,"GWh/mth","ind_man",3.27955383428522 +14,0,2040,11,"GWh/mth","res_com",6.72131151904591 +14,0,2040,12,"GWh/mth","agri",0.00125652033964564 +14,0,2040,12,"GWh/mth","ind_man",3.36130134106442 +14,0,2040,12,"GWh/mth","res_com",6.83725674466479 +14,0,2050,1,"GWh/mth","agri",0.516115968635677 +14,0,2050,1,"GWh/mth","ind_man",4.38599531609275 +14,0,2050,1,"GWh/mth","res_com",9.18369006922542 +14,0,2050,2,"GWh/mth","agri",0.277129458768278 +14,0,2050,2,"GWh/mth","ind_man",4.26356777726944 +14,0,2050,2,"GWh/mth","res_com",9.02343380406285 +14,0,2050,3,"GWh/mth","agri",0.184752972512185 +14,0,2050,3,"GWh/mth","ind_man",4.1637933454146 +14,0,2050,3,"GWh/mth","res_com",8.87920196267803 +14,0,2050,4,"GWh/mth","agri",2.00418357184584e-06 +14,0,2050,4,"GWh/mth","ind_man",4.07110073626161 +14,0,2050,4,"GWh/mth","res_com",8.69871895489868 +14,0,2050,5,"GWh/mth","agri",0.000143019998058 +14,0,2050,5,"GWh/mth","ind_man",3.95010054616096 +14,0,2050,5,"GWh/mth","res_com",8.57049287847071 +14,0,2050,6,"GWh/mth","agri",0.000930500943832047 +14,0,2050,6,"GWh/mth","ind_man",3.84938949229552 +14,0,2050,6,"GWh/mth","res_com",8.42566848572407 +14,0,2050,7,"GWh/mth","agri",0.00218375643027982 +14,0,2050,7,"GWh/mth","ind_man",3.83756571340223 +14,0,2050,7,"GWh/mth","res_com",8.42060821396361 +14,0,2050,8,"GWh/mth","agri",0.00722866533200721 +14,0,2050,8,"GWh/mth","ind_man",3.95416754444531 +14,0,2050,8,"GWh/mth","res_com",8.55027023234782 +14,0,2050,9,"GWh/mth","agri",0.0217725766818785 +14,0,2050,9,"GWh/mth","ind_man",4.07301047147146 +14,0,2050,9,"GWh/mth","res_com",8.74847717243527 +14,0,2050,10,"GWh/mth","agri",0.0329975680344565 +14,0,2050,10,"GWh/mth","ind_man",4.18123110687282 +14,0,2050,10,"GWh/mth","res_com",8.94905120483846 +14,0,2050,11,"GWh/mth","agri",0.0253736705062281 +14,0,2050,11,"GWh/mth","ind_man",4.28066051221517 +14,0,2050,11,"GWh/mth","res_com",8.92140215532097 +14,0,2050,12,"GWh/mth","agri",0.00217658876537651 +14,0,2050,12,"GWh/mth","ind_man",4.3873620155061 +14,0,2050,12,"GWh/mth","res_com",9.06383519655143 +14,0,2060,1,"GWh/mth","agri",0.795082060453764 +14,0,2060,1,"GWh/mth","ind_man",5.24137122630713 +14,0,2060,1,"GWh/mth","res_com",11.3704720982707 +14,0,2060,2,"GWh/mth","agri",0.426920836556126 +14,0,2060,2,"GWh/mth","ind_man",5.09506733561631 +14,0,2060,2,"GWh/mth","res_com",11.2011135910795 +14,0,2060,3,"GWh/mth","agri",0.284613891037417 +14,0,2060,3,"GWh/mth","ind_man",4.97583445948297 +14,0,2060,3,"GWh/mth","res_com",11.0420975156049 +14,0,2060,4,"GWh/mth","agri",6.97133060877776e-06 +14,0,2060,4,"GWh/mth","ind_man",4.86506453396042 +14,0,2060,4,"GWh/mth","res_com",10.8227521113866 +14,0,2060,5,"GWh/mth","agri",0.000315455976955285 +14,0,2060,5,"GWh/mth","ind_man",4.72046635975713 +14,0,2060,5,"GWh/mth","res_com",10.7018326854602 +14,0,2060,6,"GWh/mth","agri",0.00145972801191604 +14,0,2060,6,"GWh/mth","ind_man",4.60011419750912 +14,0,2060,6,"GWh/mth","res_com",10.5424968232194 +14,0,2060,7,"GWh/mth","agri",0.00343917166461026 +14,0,2060,7,"GWh/mth","ind_man",4.58598449375633 +14,0,2060,7,"GWh/mth","res_com",10.5421879323377 +14,0,2060,8,"GWh/mth","agri",0.0114529511022912 +14,0,2060,8,"GWh/mth","ind_man",4.72532652176113 +14,0,2060,8,"GWh/mth","res_com",10.6681043690346 +14,0,2060,9,"GWh/mth","agri",0.0345260426631755 +14,0,2060,9,"GWh/mth","ind_man",4.86734671404895 +14,0,2060,9,"GWh/mth","res_com",10.8981959722346 +14,0,2060,10,"GWh/mth","agri",0.0523919162783991 +14,0,2060,10,"GWh/mth","ind_man",4.9966730091328 +14,0,2060,10,"GWh/mth","res_com",11.1386598661321 +14,0,2060,11,"GWh/mth","agri",0.0410194262416478 +14,0,2060,11,"GWh/mth","ind_man",5.11549357018038 +14,0,2060,11,"GWh/mth","res_com",11.0331100890945 +14,0,2060,12,"GWh/mth","agri",0.00367904611431107 +14,0,2060,12,"GWh/mth","ind_man",5.24300446539288 +14,0,2060,12,"GWh/mth","res_com",11.1849690517013 +14,1,2020,1,"GWh/mth","agri",0.00757675465638884 +14,1,2020,1,"GWh/mth","ind_man",0.295184221937699 +14,1,2020,1,"GWh/mth","res_com",1.02043790408636 +14,1,2020,2,"GWh/mth","agri",0.00425991121957383 +14,1,2020,2,"GWh/mth","ind_man",0.286944660518491 +14,1,2020,2,"GWh/mth","res_com",0.996152575277242 +14,1,2020,3,"GWh/mth","agri",0.00283994081304922 +14,1,2020,3,"GWh/mth","ind_man",0.280229687994858 +14,1,2020,3,"GWh/mth","res_com",0.983122061777857 +14,1,2020,4,"GWh/mth","agri",4.85390720750236e-22 +14,1,2020,4,"GWh/mth","ind_man",0.273991333017184 +14,1,2020,4,"GWh/mth","res_com",0.959542324205756 +14,1,2020,5,"GWh/mth","agri",4.07983968483603e-16 +14,1,2020,5,"GWh/mth","ind_man",0.265847834359508 +14,1,2020,5,"GWh/mth","res_com",0.946596746916825 +14,1,2020,6,"GWh/mth","agri",7.51370538008794e-06 +14,1,2020,6,"GWh/mth","ind_man",0.259069825735851 +14,1,2020,6,"GWh/mth","res_com",0.934891423539717 +14,1,2020,7,"GWh/mth","agri",2.59466369450797e-05 +14,1,2020,7,"GWh/mth","ind_man",0.258274067254264 +14,1,2020,7,"GWh/mth","res_com",0.931070929507183 +14,1,2020,8,"GWh/mth","agri",3.56116175640577e-05 +14,1,2020,8,"GWh/mth","ind_man",0.26612154959121 +14,1,2020,8,"GWh/mth","res_com",0.955143584768814 +14,1,2020,9,"GWh/mth","agri",4.76643964187376e-05 +14,1,2020,9,"GWh/mth","ind_man",0.27411986113028 +14,1,2020,9,"GWh/mth","res_com",0.96646396060255 +14,1,2020,10,"GWh/mth","agri",5.9985988201151e-05 +14,1,2020,10,"GWh/mth","ind_man",0.281403276126494 +14,1,2020,10,"GWh/mth","res_com",0.982441577566789 +14,1,2020,11,"GWh/mth","agri",6.22082705275265e-05 +14,1,2020,11,"GWh/mth","ind_man",0.288095027835854 +14,1,2020,11,"GWh/mth","res_com",0.99441094869443 +14,1,2020,12,"GWh/mth","agri",4.816871338056e-05 +14,1,2020,12,"GWh/mth","ind_man",0.295276202907554 +14,1,2020,12,"GWh/mth","res_com",1.01476870696207 +14,1,2030,1,"GWh/mth","agri",0.0124412843789332 +14,1,2030,1,"GWh/mth","ind_man",0.557072466015154 +14,1,2030,1,"GWh/mth","res_com",1.81332635744942 +14,1,2030,2,"GWh/mth","agri",0.00700631829697605 +14,1,2030,2,"GWh/mth","ind_man",0.541522743307921 +14,1,2030,2,"GWh/mth","res_com",1.76960814983631 +14,1,2030,3,"GWh/mth","agri",0.0046708788646507 +14,1,2030,3,"GWh/mth","ind_man",0.528850228908578 +14,1,2030,3,"GWh/mth","res_com",1.7444710755094 +14,1,2030,4,"GWh/mth","agri",1.48601788570781e-21 +14,1,2030,4,"GWh/mth","ind_man",0.517077188437518 +14,1,2030,4,"GWh/mth","res_com",1.70311653436072 +14,1,2030,5,"GWh/mth","agri",1.32673678238911e-15 +14,1,2030,5,"GWh/mth","ind_man",0.501708755634969 +14,1,2030,5,"GWh/mth","res_com",1.67720000052517 +14,1,2030,6,"GWh/mth","agri",7.65307157069426e-07 +14,1,2030,6,"GWh/mth","ind_man",0.488917279336315 +14,1,2030,6,"GWh/mth","res_com",1.6540930390449 +14,1,2030,7,"GWh/mth","agri",2.57443494601098e-05 +14,1,2030,7,"GWh/mth","ind_man",0.487415521766822 +14,1,2030,7,"GWh/mth","res_com",1.64761041580969 +14,1,2030,8,"GWh/mth","agri",5.73503064615645e-05 +14,1,2030,8,"GWh/mth","ind_man",0.502225311764253 +14,1,2030,8,"GWh/mth","res_com",1.69069267042111 +14,1,2030,9,"GWh/mth","agri",0.0001116582067714 +14,1,2030,9,"GWh/mth","ind_man",0.517319747041921 +14,1,2030,9,"GWh/mth","res_com",1.71411402319746 +14,1,2030,10,"GWh/mth","agri",0.000180687009397926 +14,1,2030,10,"GWh/mth","ind_man",0.531065027620668 +14,1,2030,10,"GWh/mth","res_com",1.74441090668253 +14,1,2030,11,"GWh/mth","agri",0.00019167573084453 +14,1,2030,11,"GWh/mth","ind_man",0.543693719636195 +14,1,2030,11,"GWh/mth","res_com",1.76737856684207 +14,1,2030,12,"GWh/mth","agri",1.16876236704029e-05 +14,1,2030,12,"GWh/mth","ind_man",0.557246052751488 +14,1,2030,12,"GWh/mth","res_com",1.80423322850488 +14,1,2040,1,"GWh/mth","agri",0.0206325631009454 +14,1,2040,1,"GWh/mth","ind_man",0.752079967350599 +14,1,2040,1,"GWh/mth","res_com",2.53452967409895 +14,1,2040,2,"GWh/mth","agri",0.0116446902210589 +14,1,2040,2,"GWh/mth","ind_man",0.731086944612245 +14,1,2040,2,"GWh/mth","res_com",2.47445485047302 +14,1,2040,3,"GWh/mth","agri",0.00776312681403924 +14,1,2040,3,"GWh/mth","ind_man",0.713978319079407 +14,1,2040,3,"GWh/mth","res_com",2.44172898753717 +14,1,2040,4,"GWh/mth","agri",3.7245315903909e-20 +14,1,2040,4,"GWh/mth","ind_man",0.698084035241564 +14,1,2040,4,"GWh/mth","res_com",2.3834734714286 +14,1,2040,5,"GWh/mth","agri",2.92994720474505e-14 +14,1,2040,5,"GWh/mth","ind_man",0.677335764333383 +14,1,2040,5,"GWh/mth","res_com",2.35085349569336 +14,1,2040,6,"GWh/mth","agri",2.22468148195633e-06 +14,1,2040,6,"GWh/mth","ind_man",0.66006653337341 +14,1,2040,6,"GWh/mth","res_com",2.32132654844144 +14,1,2040,7,"GWh/mth","agri",7.48366174950394e-05 +14,1,2040,7,"GWh/mth","ind_man",0.65803907401626 +14,1,2040,7,"GWh/mth","res_com",2.31202729969788 +14,1,2040,8,"GWh/mth","agri",0.000166701107152207 +14,1,2040,8,"GWh/mth","ind_man",0.678033144908707 +14,1,2040,8,"GWh/mth","res_com",2.37147822965313 +14,1,2040,9,"GWh/mth","agri",0.00032225429980583 +14,1,2040,9,"GWh/mth","ind_man",0.698411503351027 +14,1,2040,9,"GWh/mth","res_com",2.4003709487809 +14,1,2040,10,"GWh/mth","agri",0.000520987230652659 +14,1,2040,10,"GWh/mth","ind_man",0.716968425115327 +14,1,2040,10,"GWh/mth","res_com",2.44055813364081 +14,1,2040,11,"GWh/mth","agri",0.000655463047367257 +14,1,2040,11,"GWh/mth","ind_man",0.734017887901844 +14,1,2040,11,"GWh/mth","res_com",2.46994876507479 +14,1,2040,12,"GWh/mth","agri",6.27615545467032e-05 +14,1,2040,12,"GWh/mth","ind_man",0.752314319459093 +14,1,2040,12,"GWh/mth","res_com",2.5203761527199 +14,1,2050,1,"GWh/mth","agri",0.0298277387165863 +14,1,2050,1,"GWh/mth","ind_man",1.03857286692456 +14,1,2050,1,"GWh/mth","res_com",3.65775535775035 +14,1,2050,2,"GWh/mth","agri",0.0167975126331257 +14,1,2050,2,"GWh/mth","ind_man",1.00958288612825 +14,1,2050,2,"GWh/mth","res_com",3.57219246335214 +14,1,2050,3,"GWh/mth","agri",0.0111983417554171 +14,1,2050,3,"GWh/mth","ind_man",0.985957001860423 +14,1,2050,3,"GWh/mth","res_com",3.52761547315271 +14,1,2050,4,"GWh/mth","agri",1.38574280830377e-19 +14,1,2050,4,"GWh/mth","ind_man",0.964008043438711 +14,1,2050,4,"GWh/mth","res_com",3.44304386498245 +14,1,2050,5,"GWh/mth","agri",1.09011111039041e-13 +14,1,2050,5,"GWh/mth","ind_man",0.935356048788796 +14,1,2050,5,"GWh/mth","res_com",3.39993570108742 +14,1,2050,6,"GWh/mth","agri",3.4568561915238e-06 +14,1,2050,6,"GWh/mth","ind_man",0.911508379011254 +14,1,2050,6,"GWh/mth","res_com",3.36037314282493 +14,1,2050,7,"GWh/mth","agri",0.000116286182710161 +14,1,2050,7,"GWh/mth","ind_man",0.908708591264552 +14,1,2050,7,"GWh/mth","res_com",3.34669036510761 +14,1,2050,8,"GWh/mth","agri",0.000259058507781217 +14,1,2050,8,"GWh/mth","ind_man",0.936319085400453 +14,1,2050,8,"GWh/mth","res_com",3.43164461623245 +14,1,2050,9,"GWh/mth","agri",0.000501338366391003 +14,1,2050,9,"GWh/mth","ind_man",0.964460255315154 +14,1,2050,9,"GWh/mth","res_com",3.46910984259628 +14,1,2050,10,"GWh/mth","agri",0.000810367332626488 +14,1,2050,10,"GWh/mth","ind_man",0.990086141224517 +14,1,2050,10,"GWh/mth","res_com",3.52472928361516 +14,1,2050,11,"GWh/mth","agri",0.00102491012765502 +14,1,2050,11,"GWh/mth","ind_man",1.01363032563897 +14,1,2050,11,"GWh/mth","res_com",3.56415939770968 +14,1,2050,12,"GWh/mth","agri",9.23248168193392e-05 +14,1,2050,12,"GWh/mth","ind_man",1.03889649174075 +14,1,2050,12,"GWh/mth","res_com",3.6357398553775 +14,1,2060,1,"GWh/mth","agri",0.0459499441959731 +14,1,2060,1,"GWh/mth","ind_man",1.61674649407784 +14,1,2060,1,"GWh/mth","res_com",5.64317521126567 +14,1,2060,2,"GWh/mth","agri",0.0258767443102912 +14,1,2060,2,"GWh/mth","ind_man",1.57161778784213 +14,1,2060,2,"GWh/mth","res_com",5.51113118816994 +14,1,2060,3,"GWh/mth","agri",0.0172511628735275 +14,1,2060,3,"GWh/mth","ind_man",1.53483937125147 +14,1,2060,3,"GWh/mth","res_com",5.44226958296973 +14,1,2060,4,"GWh/mth","agri",5.06613324313743e-19 +14,1,2060,4,"GWh/mth","ind_man",1.50067142530653 +14,1,2060,4,"GWh/mth","res_com",5.31180935557067 +14,1,2060,5,"GWh/mth","agri",3.77400837211106e-13 +14,1,2060,5,"GWh/mth","ind_man",1.4560688621414 +14,1,2060,5,"GWh/mth","res_com",5.2451700120582 +14,1,2060,6,"GWh/mth","agri",5.47912504014277e-06 +14,1,2060,6,"GWh/mth","ind_man",1.41894519202383 +14,1,2060,6,"GWh/mth","res_com",5.1840314055508 +14,1,2060,7,"GWh/mth","agri",0.000184313675282846 +14,1,2060,7,"GWh/mth","ind_man",1.41458676213624 +14,1,2060,7,"GWh/mth","res_com",5.16293039335226 +14,1,2060,8,"GWh/mth","agri",0.000410587283769172 +14,1,2060,8,"GWh/mth","ind_man",1.45756802133875 +14,1,2060,8,"GWh/mth","res_com",5.29402568462572 +14,1,2060,9,"GWh/mth","agri",0.000794837859387978 +14,1,2060,9,"GWh/mth","ind_man",1.50137538358341 +14,1,2060,9,"GWh/mth","res_com",5.35196790949596 +14,1,2060,10,"GWh/mth","agri",0.00128505547268266 +14,1,2060,10,"GWh/mth","ind_man",1.54126720294539 +14,1,2060,10,"GWh/mth","res_com",5.43785663409698 +14,1,2060,11,"GWh/mth","agri",0.00176855294354205 +14,1,2060,11,"GWh/mth","ind_man",1.57791843736546 +14,1,2060,11,"GWh/mth","res_com",5.49878876468347 +14,1,2060,12,"GWh/mth","agri",0.000183919518076915 +14,1,2060,12,"GWh/mth","ind_man",1.61725028086413 +14,1,2060,12,"GWh/mth","res_com",5.60926270555399 +15,0,2020,1,"GWh/mth","agri",0 +15,0,2020,1,"GWh/mth","ind_man",282.982587101107 +15,0,2020,1,"GWh/mth","res_com",3.16973678294681 +15,0,2020,2,"GWh/mth","agri",0 +15,0,2020,2,"GWh/mth","ind_man",282.953715176579 +15,0,2020,2,"GWh/mth","res_com",3.09607459796657 +15,0,2020,3,"GWh/mth","agri",0 +15,0,2020,3,"GWh/mth","ind_man",282.930185504301 +15,0,2020,3,"GWh/mth","res_com",3.03338821692456 +15,0,2020,4,"GWh/mth","agri",2.57228970408916e-07 +15,0,2020,4,"GWh/mth","ind_man",282.908325928902 +15,0,2020,4,"GWh/mth","res_com",2.97061522037404 +15,0,2020,5,"GWh/mth","agri",4.77774751604536e-06 +15,0,2020,5,"GWh/mth","ind_man",282.879790614135 +15,0,2020,5,"GWh/mth","res_com",2.89983363119949 +15,0,2020,6,"GWh/mth","agri",8.99148499520109e-05 +15,0,2020,6,"GWh/mth","ind_man",282.856040059527 +15,0,2020,6,"GWh/mth","res_com",2.83677739933615 +15,0,2020,7,"GWh/mth","agri",0.000176610776989099 +15,0,2020,7,"GWh/mth","ind_man",282.853251673392 +15,0,2020,7,"GWh/mth","res_com",2.83145633594492 +15,0,2020,8,"GWh/mth","agri",0.000795344973203453 +15,0,2020,8,"GWh/mth","ind_man",282.880749728961 +15,0,2020,8,"GWh/mth","res_com",2.89984509369573 +15,0,2020,9,"GWh/mth","agri",0.00282698293058757 +15,0,2020,9,"GWh/mth","ind_man",282.90877629923 +15,0,2020,9,"GWh/mth","res_com",2.97678453823689 +15,0,2020,10,"GWh/mth","agri",0.00333160871054405 +15,0,2020,10,"GWh/mth","ind_man",282.934297828518 +15,0,2020,10,"GWh/mth","res_com",3.05143246940048 +15,0,2020,11,"GWh/mth","agri",0.000583614406822624 +15,0,2020,11,"GWh/mth","ind_man",282.95774613365 +15,0,2020,11,"GWh/mth","res_com",3.09123131394316 +15,0,2020,12,"GWh/mth","agri",0.00012119068087485 +15,0,2020,12,"GWh/mth","ind_man",282.982909408022 +15,0,2020,12,"GWh/mth","res_com",3.15598742101467 +15,0,2030,1,"GWh/mth","agri",0.000115259986865907 +15,0,2030,1,"GWh/mth","ind_man",356.853577157193 +15,0,2030,1,"GWh/mth","res_com",5.30838465076254 +15,0,2030,2,"GWh/mth","agri",0.000115259986865907 +15,0,2030,2,"GWh/mth","ind_man",356.798327886815 +15,0,2030,2,"GWh/mth","res_com",5.1833164370393 +15,0,2030,3,"GWh/mth","agri",0.000115259986865907 +15,0,2030,3,"GWh/mth","ind_man",356.753301542127 +15,0,2030,3,"GWh/mth","res_com",5.07725286433927 +15,0,2030,4,"GWh/mth","agri",0.000116250096733616 +15,0,2030,4,"GWh/mth","ind_man",356.71147109226 +15,0,2030,4,"GWh/mth","res_com",4.9716605158278 +15,0,2030,5,"GWh/mth","agri",0.000123022843970047 +15,0,2030,5,"GWh/mth","ind_man",356.656865957803 +15,0,2030,5,"GWh/mth","res_com",4.85118647093729 +15,0,2030,6,"GWh/mth","agri",0.000284553613234426 +15,0,2030,6,"GWh/mth","ind_man",356.611416933029 +15,0,2030,6,"GWh/mth","res_com",4.74447069079696 +15,0,2030,7,"GWh/mth","agri",0.000430081912087628 +15,0,2030,7,"GWh/mth","ind_man",356.606081081608 +15,0,2030,7,"GWh/mth","res_com",4.73518815672435 +15,0,2030,8,"GWh/mth","agri",0.00150512634613083 +15,0,2030,8,"GWh/mth","ind_man",356.658701318458 +15,0,2030,8,"GWh/mth","res_com",4.85156800057471 +15,0,2030,9,"GWh/mth","agri",0.00512182533422868 +15,0,2030,9,"GWh/mth","ind_man",356.712332920228 +15,0,2030,9,"GWh/mth","res_com",4.98142220720772 +15,0,2030,10,"GWh/mth","agri",0.00602693380092032 +15,0,2030,10,"GWh/mth","ind_man",356.761170879426 +15,0,2030,10,"GWh/mth","res_com",5.10684175848215 +15,0,2030,11,"GWh/mth","agri",0.000986555450213605 +15,0,2030,11,"GWh/mth","ind_man",356.806041520068 +15,0,2030,11,"GWh/mth","res_com",5.17722755614299 +15,0,2030,12,"GWh/mth","agri",0.000132003198888955 +15,0,2030,12,"GWh/mth","ind_man",356.85419392321 +15,0,2030,12,"GWh/mth","res_com",5.28709787445656 +15,0,2040,1,"GWh/mth","agri",0.000369102660451624 +15,0,2040,1,"GWh/mth","ind_man",446.031619856434 +15,0,2040,1,"GWh/mth","res_com",7.29580390919869 +15,0,2040,2,"GWh/mth","agri",0.000369102660451624 +15,0,2040,2,"GWh/mth","ind_man",445.957545118808 +15,0,2040,2,"GWh/mth","res_com",7.12780089109137 +15,0,2040,3,"GWh/mth","agri",0.000369102660451624 +15,0,2040,3,"GWh/mth","ind_man",445.897176635275 +15,0,2040,3,"GWh/mth","res_com",6.98450530239963 +15,0,2040,4,"GWh/mth","agri",0.000372954146905846 +15,0,2040,4,"GWh/mth","ind_man",445.84109300598 +15,0,2040,4,"GWh/mth","res_com",6.8405203214296 +15,0,2040,5,"GWh/mth","agri",0.000395943008618151 +15,0,2040,5,"GWh/mth","ind_man",445.767881885177 +15,0,2040,5,"GWh/mth","res_com",6.67928726869325 +15,0,2040,6,"GWh/mth","agri",0.000944551381723357 +15,0,2040,6,"GWh/mth","ind_man",445.706946698839 +15,0,2040,6,"GWh/mth","res_com",6.53518019854044 +15,0,2040,7,"GWh/mth","agri",0.00141388752567744 +15,0,2040,7,"GWh/mth","ind_man",445.699792725741 +15,0,2040,7,"GWh/mth","res_com",6.52326838614398 +15,0,2040,8,"GWh/mth","agri",0.00457512040036044 +15,0,2040,8,"GWh/mth","ind_man",445.770342621003 +15,0,2040,8,"GWh/mth","res_com",6.67908691601901 +15,0,2040,9,"GWh/mth","agri",0.0149123811502429 +15,0,2040,9,"GWh/mth","ind_man",445.842248490571 +15,0,2040,9,"GWh/mth","res_com",6.85516174928469 +15,0,2040,10,"GWh/mth","agri",0.0175332887667418 +15,0,2040,10,"GWh/mth","ind_man",445.907727346473 +15,0,2040,10,"GWh/mth","res_com",7.02659477817806 +15,0,2040,11,"GWh/mth","agri",0.00291146642210147 +15,0,2040,11,"GWh/mth","ind_man",445.967887071841 +15,0,2040,11,"GWh/mth","res_com",7.11499120115978 +15,0,2040,12,"GWh/mth","agri",0.000379920938342333 +15,0,2040,12,"GWh/mth","ind_man",446.032446777415 +15,0,2040,12,"GWh/mth","res_com",7.26275227942863 +15,0,2050,1,"GWh/mth","agri",0.000560884829265272 +15,0,2050,1,"GWh/mth","ind_man",556.909142437863 +15,0,2050,1,"GWh/mth","res_com",11.3708293688983 +15,0,2050,2,"GWh/mth","agri",0.000560884829265272 +15,0,2050,2,"GWh/mth","ind_man",556.795528408385 +15,0,2050,2,"GWh/mth","res_com",11.1088289319205 +15,0,2050,3,"GWh/mth","agri",0.000560884829265272 +15,0,2050,3,"GWh/mth","ind_man",556.702936697803 +15,0,2050,3,"GWh/mth","res_com",10.8853885993246 +15,0,2050,4,"GWh/mth","agri",0.000569206400502856 +15,0,2050,4,"GWh/mth","ind_man",556.616916992352 +15,0,2050,4,"GWh/mth","res_com",10.6608886887042 +15,0,2050,5,"GWh/mth","agri",0.000618552520283541 +15,0,2050,5,"GWh/mth","ind_man",556.504627557336 +15,0,2050,5,"GWh/mth","res_com",10.4094614211485 +15,0,2050,6,"GWh/mth","agri",0.00152410892161994 +15,0,2050,6,"GWh/mth","ind_man",556.411166651786 +15,0,2050,6,"GWh/mth","res_com",10.1847469883277 +15,0,2050,7,"GWh/mth","agri",0.00230172134742076 +15,0,2050,7,"GWh/mth","ind_man",556.400194061986 +15,0,2050,7,"GWh/mth","res_com",10.166147585945 +15,0,2050,8,"GWh/mth","agri",0.0074086873467308 +15,0,2050,8,"GWh/mth","ind_man",556.508401774047 +15,0,2050,8,"GWh/mth","res_com",10.4091188280808 +15,0,2050,9,"GWh/mth","agri",0.0239751478706615 +15,0,2050,9,"GWh/mth","ind_man",556.618689246491 +15,0,2050,9,"GWh/mth","res_com",10.683701764854 +15,0,2050,10,"GWh/mth","agri",0.0281704673390949 +15,0,2050,10,"GWh/mth","ind_man",556.719119121818 +15,0,2050,10,"GWh/mth","res_com",10.9509365577406 +15,0,2050,11,"GWh/mth","agri",0.00465103478780845 +15,0,2050,11,"GWh/mth","ind_man",556.811390644207 +15,0,2050,11,"GWh/mth","res_com",11.0889467787332 +15,0,2050,12,"GWh/mth","agri",0.000561065697583111 +15,0,2050,12,"GWh/mth","ind_man",556.910410749134 +15,0,2050,12,"GWh/mth","res_com",11.3193722224122 +15,0,2060,1,"GWh/mth","agri",0.000857823856523358 +15,0,2060,1,"GWh/mth","ind_man",693.38207292566 +15,0,2060,1,"GWh/mth","res_com",16.4014550758886 +15,0,2060,2,"GWh/mth","agri",0.000857823856523358 +15,0,2060,2,"GWh/mth","ind_man",693.221611370949 +15,0,2060,2,"GWh/mth","res_com",16.028975881857 +15,0,2060,3,"GWh/mth","agri",0.000857823856523358 +15,0,2060,3,"GWh/mth","ind_man",693.090840462625 +15,0,2060,3,"GWh/mth","res_com",15.7101378957069 +15,0,2060,4,"GWh/mth","agri",0.000875412745098425 +15,0,2060,4,"GWh/mth","ind_man",692.969351455186 +15,0,2060,4,"GWh/mth","res_com",15.3878666009255 +15,0,2060,5,"GWh/mth","agri",0.0009665033649593 +15,0,2060,5,"GWh/mth","ind_man",692.810760677241 +15,0,2060,5,"GWh/mth","res_com",15.0313124882704 +15,0,2060,6,"GWh/mth","agri",0.00244073280033394 +15,0,2060,6,"GWh/mth","ind_man",692.678762170736 +15,0,2060,6,"GWh/mth","res_com",14.7107499349006 +15,0,2060,7,"GWh/mth","agri",0.00369578428385654 +15,0,2060,7,"GWh/mth","ind_man",692.663265151339 +15,0,2060,7,"GWh/mth","res_com",14.6851043312744 +15,0,2060,8,"GWh/mth","agri",0.0117235686265556 +15,0,2060,8,"GWh/mth","ind_man",692.816091151691 +15,0,2060,8,"GWh/mth","res_com",15.0297504191864 +15,0,2060,9,"GWh/mth","agri",0.0375877314846805 +15,0,2060,9,"GWh/mth","ind_man",692.971854479291 +15,0,2060,9,"GWh/mth","res_com",15.4225247085539 +15,0,2060,10,"GWh/mth","agri",0.0441496500964083 +15,0,2060,10,"GWh/mth","ind_man",693.113695535439 +15,0,2060,10,"GWh/mth","res_com",15.806680519077 +15,0,2060,11,"GWh/mth","agri",0.00728584938206641 +15,0,2060,11,"GWh/mth","ind_man",693.244014229407 +15,0,2060,11,"GWh/mth","res_com",15.9940002682888 +15,0,2060,12,"GWh/mth","agri",0.000858123193208618 +15,0,2060,12,"GWh/mth","ind_man",693.383864211467 +15,0,2060,12,"GWh/mth","res_com",16.3218372293673 +15,1,2020,1,"GWh/mth","agri",0 +15,1,2020,1,"GWh/mth","ind_man",23.6133734403613 +15,1,2020,1,"GWh/mth","res_com",6.76581006672465 +15,1,2020,2,"GWh/mth","agri",0 +15,1,2020,2,"GWh/mth","ind_man",23.5591951497809 +15,1,2020,2,"GWh/mth","res_com",6.58252641127202 +15,1,2020,3,"GWh/mth","agri",0 +15,1,2020,3,"GWh/mth","ind_man",23.515041618529 +15,1,2020,3,"GWh/mth","res_com",6.44307977309206 +15,1,2020,4,"GWh/mth","agri",5.06924738703813e-14 +15,1,2020,4,"GWh/mth","ind_man",23.4740220312563 +15,1,2020,4,"GWh/mth","res_com",6.29712063389382 +15,1,2020,5,"GWh/mth","agri",5.83992265112398e-08 +15,1,2020,5,"GWh/mth","ind_man",23.4204753903407 +15,1,2020,5,"GWh/mth","res_com",6.13186841681399 +15,1,2020,6,"GWh/mth","agri",4.96307101333608e-06 +15,1,2020,6,"GWh/mth","ind_man",23.3759073724468 +15,1,2020,6,"GWh/mth","res_com",5.99322049051755 +15,1,2020,7,"GWh/mth","agri",6.65322395531412e-06 +15,1,2020,7,"GWh/mth","ind_man",23.3706749538684 +15,1,2020,7,"GWh/mth","res_com",5.97331319817486 +15,1,2020,8,"GWh/mth","agri",1.006120627804e-05 +15,1,2020,8,"GWh/mth","ind_man",23.4222751734365 +15,1,2020,8,"GWh/mth","res_com",6.14941577893548 +15,1,2020,9,"GWh/mth","agri",1.66150802122301e-05 +15,1,2020,9,"GWh/mth","ind_man",23.4748671531147 +15,1,2020,9,"GWh/mth","res_com",6.30920380759854 +15,1,2020,10,"GWh/mth","agri",1.69558055168769e-05 +15,1,2020,10,"GWh/mth","ind_man",23.5227584126134 +15,1,2020,10,"GWh/mth","res_com",6.4628885777943 +15,1,2020,11,"GWh/mth","agri",2.47052915905919e-06 +15,1,2020,11,"GWh/mth","ind_man",23.5667592580657 +15,1,2020,11,"GWh/mth","res_com",6.60142291822689 +15,1,2020,12,"GWh/mth","agri",0 +15,1,2020,12,"GWh/mth","ind_man",23.6139782506733 +15,1,2020,12,"GWh/mth","res_com",6.75997215156067 +15,1,2030,1,"GWh/mth","agri",0 +15,1,2030,1,"GWh/mth","ind_man",29.9794426510221 +15,1,2030,1,"GWh/mth","res_com",9.10726238394283 +15,1,2030,2,"GWh/mth","agri",0 +15,1,2030,2,"GWh/mth","ind_man",29.9040366072582 +15,1,2030,2,"GWh/mth","res_com",8.86183167319496 +15,1,2030,3,"GWh/mth","agri",0 +15,1,2030,3,"GWh/mth","ind_man",29.8425831528535 +15,1,2030,3,"GWh/mth","res_com",8.67732101008536 +15,1,2030,4,"GWh/mth","agri",1.53243595963706e-13 +15,1,2030,4,"GWh/mth","ind_man",29.7854915621088 +15,1,2030,4,"GWh/mth","res_com",8.48020125578221 +15,1,2030,5,"GWh/mth","agri",1.8044797730478e-07 +15,1,2030,5,"GWh/mth","ind_man",29.710964656497 +15,1,2030,5,"GWh/mth","res_com",8.26251927986323 +15,1,2030,6,"GWh/mth","agri",1.51672359168846e-05 +15,1,2030,6,"GWh/mth","ind_man",29.6489343142368 +15,1,2030,6,"GWh/mth","res_com",8.07957180092819 +15,1,2030,7,"GWh/mth","agri",2.0322356284168e-05 +15,1,2030,7,"GWh/mth","ind_man",29.641651766558 +15,1,2030,7,"GWh/mth","res_com",8.05242623800601 +15,1,2030,8,"GWh/mth","agri",3.06866096845523e-05 +15,1,2030,8,"GWh/mth","ind_man",29.7134696178281 +15,1,2030,8,"GWh/mth","res_com",8.28855892212253 +15,1,2030,9,"GWh/mth","agri",5.07468659219008e-05 +15,1,2030,9,"GWh/mth","ind_man",29.7866678136139 +15,1,2030,9,"GWh/mth","res_com",8.49849892138584 +15,1,2030,10,"GWh/mth","agri",5.19802482124646e-05 +15,1,2030,10,"GWh/mth","ind_man",29.8533234864116 +15,1,2030,10,"GWh/mth","res_com",8.70246711656028 +15,1,2030,11,"GWh/mth","agri",7.5974157135397e-06 +15,1,2030,11,"GWh/mth","ind_man",29.9145644307508 +15,1,2030,11,"GWh/mth","res_com",8.88551823529922 +15,1,2030,12,"GWh/mth","agri",0 +15,1,2030,12,"GWh/mth","ind_man",29.9802844338167 +15,1,2030,12,"GWh/mth","res_com",9.09756183236038 +15,1,2040,1,"GWh/mth","agri",0 +15,1,2040,1,"GWh/mth","ind_man",38.1511934610233 +15,1,2040,1,"GWh/mth","res_com",14.0406813793621 +15,1,2040,2,"GWh/mth","agri",0 +15,1,2040,2,"GWh/mth","ind_man",38.0375804916175 +15,1,2040,2,"GWh/mth","res_com",13.6624524478919 +15,1,2040,3,"GWh/mth","agri",0 +15,1,2040,3,"GWh/mth","ind_man",37.9449896449603 +15,1,2040,3,"GWh/mth","res_com",13.3781791453341 +15,1,2040,4,"GWh/mth","agri",6.52843542941993e-13 +15,1,2040,4,"GWh/mth","ind_man",37.8589707421132 +15,1,2040,4,"GWh/mth","res_com",13.0742528833866 +15,1,2040,5,"GWh/mth","agri",7.52205517856705e-07 +15,1,2040,5,"GWh/mth","ind_man",37.7466823548098 +15,1,2040,5,"GWh/mth","res_com",12.7389805941961 +15,1,2040,6,"GWh/mth","agri",6.26552580423613e-05 +15,1,2040,6,"GWh/mth","ind_man",37.6532223212943 +15,1,2040,6,"GWh/mth","res_com",12.4571348948282 +15,1,2040,7,"GWh/mth","agri",8.39108017624062e-05 +15,1,2040,7,"GWh/mth","ind_man",37.6422498338738 +15,1,2040,7,"GWh/mth","res_com",12.4152931288766 +15,1,2040,8,"GWh/mth","agri",0.000126556690100156 +15,1,2040,8,"GWh/mth","ind_man",37.750456536306 +15,1,2040,8,"GWh/mth","res_com",12.7791629727867 +15,1,2040,9,"GWh/mth","agri",0.000209519936626533 +15,1,2040,9,"GWh/mth","ind_man",37.8607429797164 +15,1,2040,9,"GWh/mth","res_com",13.1026040569174 +15,1,2040,10,"GWh/mth","agri",0.000215519457516701 +15,1,2040,10,"GWh/mth","ind_man",37.9611719179856 +15,1,2040,10,"GWh/mth","res_com",13.41692942991 +15,1,2040,11,"GWh/mth","agri",3.17103463369061e-05 +15,1,2040,11,"GWh/mth","ind_man",38.0534425794379 +15,1,2040,11,"GWh/mth","res_com",13.6987184976748 +15,1,2040,12,"GWh/mth","agri",0 +15,1,2040,12,"GWh/mth","ind_man",38.1524617604609 +15,1,2040,12,"GWh/mth","res_com",14.0254873353813 +15,1,2050,1,"GWh/mth","agri",0 +15,1,2050,1,"GWh/mth","ind_man",48.5264609943078 +15,1,2050,1,"GWh/mth","res_com",21.1321788302572 +15,1,2050,2,"GWh/mth","agri",0 +15,1,2050,2,"GWh/mth","ind_man",48.3580999332256 +15,1,2050,2,"GWh/mth","res_com",20.5633671324466 +15,1,2050,3,"GWh/mth","agri",0 +15,1,2050,3,"GWh/mth","ind_man",48.2208911860971 +15,1,2050,3,"GWh/mth","res_com",20.1369827465822 +15,1,2050,4,"GWh/mth","agri",1.32814761446734e-12 +15,1,2050,4,"GWh/mth","ind_man",48.0934212869104 +15,1,2050,4,"GWh/mth","res_com",19.6792343329615 +15,1,2050,5,"GWh/mth","agri",1.50992118900202e-06 +15,1,2050,5,"GWh/mth","ind_man",47.9270231007482 +15,1,2050,5,"GWh/mth","res_com",19.1767211363859 +15,1,2050,6,"GWh/mth","agri",0.000119733735906334 +15,1,2050,6,"GWh/mth","ind_man",47.7885263209022 +15,1,2050,6,"GWh/mth","res_com",18.7542344307646 +15,1,2050,7,"GWh/mth","agri",0.000159925106168041 +15,1,2050,7,"GWh/mth","ind_man",47.7722663847831 +15,1,2050,7,"GWh/mth","res_com",18.6910467488183 +15,1,2050,8,"GWh/mth","agri",0.000239578924305115 +15,1,2050,8,"GWh/mth","ind_man",47.9326159939253 +15,1,2050,8,"GWh/mth","res_com",19.2384994478754 +15,1,2050,9,"GWh/mth","agri",0.000399176195211964 +15,1,2050,9,"GWh/mth","ind_man",48.0960475346436 +15,1,2050,9,"GWh/mth","res_com",19.7227968364479 +15,1,2050,10,"GWh/mth","agri",0.000420127616657211 +15,1,2050,10,"GWh/mth","ind_man",48.2448714118717 +15,1,2050,10,"GWh/mth","res_com",20.1944778325228 +15,1,2050,11,"GWh/mth","agri",6.39039838425014e-05 +15,1,2050,11,"GWh/mth","ind_man",48.3816056821765 +15,1,2050,11,"GWh/mth","res_com",20.6174182362836 +15,1,2050,12,"GWh/mth","agri",0 +15,1,2050,12,"GWh/mth","ind_man",48.5283404649369 +15,1,2050,12,"GWh/mth","res_com",21.1087031029508 +15,1,2060,1,"GWh/mth","agri",0 +15,1,2060,1,"GWh/mth","ind_man",62.2877181989063 +15,1,2060,1,"GWh/mth","res_com",32.9670514538293 +15,1,2060,2,"GWh/mth","agri",0 +15,1,2060,2,"GWh/mth","ind_man",62.0244507309733 +15,1,2060,2,"GWh/mth","res_com",32.0792710221368 +15,1,2060,3,"GWh/mth","agri",0 +15,1,2060,3,"GWh/mth","ind_man",61.8098963726047 +15,1,2060,3,"GWh/mth","res_com",31.4130329440772 +15,1,2060,4,"GWh/mth","agri",2.22538276664076e-12 +15,1,2060,4,"GWh/mth","ind_man",61.6105707246144 +15,1,2060,4,"GWh/mth","res_com",30.6991446297882 +15,1,2060,5,"GWh/mth","agri",2.54576375542831e-06 +15,1,2060,5,"GWh/mth","ind_man",61.3503726190788 +15,1,2060,5,"GWh/mth","res_com",29.9136320433422 +15,1,2060,6,"GWh/mth","agri",0.000202692084955796 +15,1,2060,6,"GWh/mth","ind_man",61.1338041541822 +15,1,2060,6,"GWh/mth","res_com",29.2533102493609 +15,1,2060,7,"GWh/mth","agri",0.000270787705752451 +15,1,2060,7,"GWh/mth","ind_man",61.1083783687703 +15,1,2060,7,"GWh/mth","res_com",29.1548563823203 +15,1,2060,8,"GWh/mth","agri",0.000405886559879178 +15,1,2060,8,"GWh/mth","ind_man",61.3591182685519 +15,1,2060,8,"GWh/mth","res_com",30.009184871655 +15,1,2060,9,"GWh/mth","agri",0.000675911969684224 +15,1,2060,9,"GWh/mth","ind_man",61.6146774081102 +15,1,2060,9,"GWh/mth","res_com",30.7664328232049 +15,1,2060,10,"GWh/mth","agri",0.000710150269158483 +15,1,2060,10,"GWh/mth","ind_man",61.8473944334956 +15,1,2060,10,"GWh/mth","res_com",31.50324556547 +15,1,2060,11,"GWh/mth","agri",0.000107777630308974 +15,1,2060,11,"GWh/mth","ind_man",62.0612068488571 +15,1,2060,11,"GWh/mth","res_com",32.1641456870795 +15,1,2060,12,"GWh/mth","agri",0 +15,1,2060,12,"GWh/mth","ind_man",62.2906571413815 +15,1,2060,12,"GWh/mth","res_com",32.9310154519376 +16,0,2020,1,"GWh/mth","agri",0.0835964113571231 +16,0,2020,1,"GWh/mth","ind_man",209.802014908588 +16,0,2020,1,"GWh/mth","res_com",0.396496802346086 +16,0,2020,2,"GWh/mth","agri",0.103457946686348 +16,0,2020,2,"GWh/mth","ind_man",209.800840889878 +16,0,2020,2,"GWh/mth","res_com",0.422512197177078 +16,0,2020,3,"GWh/mth","agri",0.0689719655758744 +16,0,2020,3,"GWh/mth","ind_man",209.799884103105 +16,0,2020,3,"GWh/mth","res_com",0.436058264394506 +16,0,2020,4,"GWh/mth","agri",0.00027865132849295 +16,0,2020,4,"GWh/mth","ind_man",209.79899522746 +16,0,2020,4,"GWh/mth","res_com",0.438857366518987 +16,0,2020,5,"GWh/mth","agri",9.60949021793882e-05 +16,0,2020,5,"GWh/mth","ind_man",209.797834896308 +16,0,2020,5,"GWh/mth","res_com",0.468024156015781 +16,0,2020,6,"GWh/mth","agri",3.59647012703861e-06 +16,0,2020,6,"GWh/mth","ind_man",209.796869127799 +16,0,2020,6,"GWh/mth","res_com",0.482078548506795 +16,0,2020,7,"GWh/mth","agri",7.47417627989538e-06 +16,0,2020,7,"GWh/mth","ind_man",209.796755743688 +16,0,2020,7,"GWh/mth","res_com",0.489350463286358 +16,0,2020,8,"GWh/mth","agri",2.97676440145481e-05 +16,0,2020,8,"GWh/mth","ind_man",209.797873896782 +16,0,2020,8,"GWh/mth","res_com",0.460147089799121 +16,0,2020,9,"GWh/mth","agri",4.6553465017371e-05 +16,0,2020,9,"GWh/mth","ind_man",209.799013540863 +16,0,2020,9,"GWh/mth","res_com",0.450131752232296 +16,0,2020,10,"GWh/mth","agri",5.09295252329462e-05 +16,0,2020,10,"GWh/mth","ind_man",209.800051322493 +16,0,2020,10,"GWh/mth","res_com",0.452086051352545 +16,0,2020,11,"GWh/mth","agri",5.02989060727667e-05 +16,0,2020,11,"GWh/mth","ind_man",209.801004800635 +16,0,2020,11,"GWh/mth","res_com",0.381542515094572 +16,0,2020,12,"GWh/mth","agri",3.64957641643739e-06 +16,0,2020,12,"GWh/mth","ind_man",209.80202801455 +16,0,2020,12,"GWh/mth","res_com",0.360396364193819 +16,0,2030,1,"GWh/mth","agri",0.130616477878034 +16,0,2030,1,"GWh/mth","ind_man",265.633294300676 +16,0,2030,1,"GWh/mth","res_com",3.57780812690062 +16,0,2030,2,"GWh/mth","agri",0.161561816832473 +16,0,2030,2,"GWh/mth","ind_man",265.58810687448 +16,0,2030,2,"GWh/mth","res_com",3.53534622130511 +16,0,2030,3,"GWh/mth","agri",0.107707880200373 +16,0,2030,3,"GWh/mth","ind_man",265.551280603047 +16,0,2030,3,"GWh/mth","res_com",3.48891511150855 +16,0,2030,4,"GWh/mth","agri",0.000553714902669841 +16,0,2030,4,"GWh/mth","ind_man",265.517068198915 +16,0,2030,4,"GWh/mth","res_com",3.43059927568618 +16,0,2030,5,"GWh/mth","agri",0.00022140487477061 +16,0,2030,5,"GWh/mth","ind_man",265.47240760039 +16,0,2030,5,"GWh/mth","res_com",3.39401229782759 +16,0,2030,6,"GWh/mth","agri",6.44688512984644e-06 +16,0,2030,6,"GWh/mth","ind_man",265.435235626197 +16,0,2030,6,"GWh/mth","res_com",3.34773973818679 +16,0,2030,7,"GWh/mth","agri",1.33295686010423e-05 +16,0,2030,7,"GWh/mth","ind_man",265.430871525266 +16,0,2030,7,"GWh/mth","res_com",3.3509999442069 +16,0,2030,8,"GWh/mth","agri",5.56164563317625e-05 +16,0,2030,8,"GWh/mth","ind_man",265.473908710243 +16,0,2030,8,"GWh/mth","res_com",3.38459666040971 +16,0,2030,9,"GWh/mth","agri",8.71569104370749e-05 +16,0,2030,9,"GWh/mth","ind_man",265.517773073159 +16,0,2030,9,"GWh/mth","res_com",3.44935855267917 +16,0,2030,10,"GWh/mth","agri",0.000118572991447542 +16,0,2030,10,"GWh/mth","ind_man",265.55771679842 +16,0,2030,10,"GWh/mth","res_com",3.52549064777711 +16,0,2030,11,"GWh/mth","agri",9.95443197634138e-05 +16,0,2030,11,"GWh/mth","ind_man",265.594415722198 +16,0,2030,11,"GWh/mth","res_com",3.48347471327375 +16,0,2030,12,"GWh/mth","agri",5.76703778921757e-06 +16,0,2030,12,"GWh/mth","ind_man",265.633798742973 +16,0,2030,12,"GWh/mth","res_com",3.52284337419137 +16,0,2040,1,"GWh/mth","agri",0.202092140840254 +16,0,2040,1,"GWh/mth","ind_man",331.908235950869 +16,0,2040,1,"GWh/mth","res_com",4.64662136889871 +16,0,2040,2,"GWh/mth","agri",0.249971320404181 +16,0,2040,2,"GWh/mth","ind_man",331.851011050425 +16,0,2040,2,"GWh/mth","res_com",4.60573921904376 +16,0,2040,3,"GWh/mth","agri",0.166647551245576 +16,0,2040,3,"GWh/mth","ind_man",331.80437463198 +16,0,2040,3,"GWh/mth","res_com",4.55412413413622 +16,0,2040,4,"GWh/mth","agri",0.00105927241251201 +16,0,2040,4,"GWh/mth","ind_man",331.761048388704 +16,0,2040,4,"GWh/mth","res_com",4.48268532686562 +16,0,2040,5,"GWh/mth","agri",0.000486946284689055 +16,0,2040,5,"GWh/mth","ind_man",331.704490657504 +16,0,2040,5,"GWh/mth","res_com",4.45060365086086 +16,0,2040,6,"GWh/mth","agri",2.08367185657552e-05 +16,0,2040,6,"GWh/mth","ind_man",331.657416444574 +16,0,2040,6,"GWh/mth","res_com",4.39942372783469 +16,0,2040,7,"GWh/mth","agri",4.32380757183829e-05 +16,0,2040,7,"GWh/mth","ind_man",331.651889791204 +16,0,2040,7,"GWh/mth","res_com",4.40686461844832 +16,0,2040,8,"GWh/mth","agri",0.000174066220098202 +16,0,2040,8,"GWh/mth","ind_man",331.706391647871 +16,0,2040,8,"GWh/mth","res_com",4.43521124153892 +16,0,2040,9,"GWh/mth","agri",0.000274641169535995 +16,0,2040,9,"GWh/mth","ind_man",331.761941034332 +16,0,2040,9,"GWh/mth","res_com",4.51132291717083 +16,0,2040,10,"GWh/mth","agri",0.000290756527886195 +16,0,2040,10,"GWh/mth","ind_man",331.812525364838 +16,0,2040,10,"GWh/mth","res_com",4.60717987732762 +16,0,2040,11,"GWh/mth","agri",0.00021835519113309 +16,0,2040,11,"GWh/mth","ind_man",331.859000511497 +16,0,2040,11,"GWh/mth","res_com",4.52201805582043 +16,0,2040,12,"GWh/mth","agri",9.23375254946693e-06 +16,0,2040,12,"GWh/mth","ind_man",331.908874771502 +16,0,2040,12,"GWh/mth","res_com",4.56130189903264 +16,0,2050,1,"GWh/mth","agri",0.313150479931464 +16,0,2050,1,"GWh/mth","ind_man",413.607354628757 +16,0,2050,1,"GWh/mth","res_com",5.43840292343562 +16,0,2050,2,"GWh/mth","agri",0.3873413316728 +16,0,2050,2,"GWh/mth","ind_man",413.542765529405 +16,0,2050,2,"GWh/mth","res_com",5.41294704666099 +16,0,2050,3,"GWh/mth","agri",0.258227561179164 +16,0,2050,3,"GWh/mth","ind_man",413.490127530195 +16,0,2050,3,"GWh/mth","res_com",5.36664443185563 +16,0,2050,4,"GWh/mth","agri",0.00170626954902085 +16,0,2050,4,"GWh/mth","ind_man",413.441225688344 +16,0,2050,4,"GWh/mth","res_com",5.28955033536749 +16,0,2050,5,"GWh/mth","agri",0.000793462606362868 +16,0,2050,5,"GWh/mth","ind_man",413.377389615389 +16,0,2050,5,"GWh/mth","res_com",5.27691451397276 +16,0,2050,6,"GWh/mth","agri",3.38800928943354e-05 +16,0,2050,6,"GWh/mth","ind_man",413.324257482484 +16,0,2050,6,"GWh/mth","res_com",5.23156798776024 +16,0,2050,7,"GWh/mth","agri",6.79574512795885e-05 +16,0,2050,7,"GWh/mth","ind_man",413.318019611193 +16,0,2050,7,"GWh/mth","res_com",5.24518540607948 +16,0,2050,8,"GWh/mth","agri",0.000265536838143217 +16,0,2050,8,"GWh/mth","ind_man",413.379535241763 +16,0,2050,8,"GWh/mth","res_com",5.25442723959621 +16,0,2050,9,"GWh/mth","agri",0.000410456839744512 +16,0,2050,9,"GWh/mth","ind_man",413.44223320739 +16,0,2050,9,"GWh/mth","res_com",5.33012806826791 +16,0,2050,10,"GWh/mth","agri",0.000468628893401532 +16,0,2050,10,"GWh/mth","ind_man",413.499327170391 +16,0,2050,10,"GWh/mth","res_com",5.43706943201837 +16,0,2050,11,"GWh/mth","agri",0.000371071812974248 +16,0,2050,11,"GWh/mth","ind_man",413.551783143957 +16,0,2050,11,"GWh/mth","res_com",5.28917152768516 +16,0,2050,12,"GWh/mth","agri",1.45496651792125e-05 +16,0,2050,12,"GWh/mth","ind_man",413.608075658397 +16,0,2050,12,"GWh/mth","res_com",5.31649148619653 +16,0,2060,1,"GWh/mth","agri",0.482411597289188 +16,0,2060,1,"GWh/mth","ind_man",514.247051479955 +16,0,2060,1,"GWh/mth","res_com",6.83629632567817 +16,0,2060,2,"GWh/mth","agri",0.596703382186392 +16,0,2060,2,"GWh/mth","ind_man",514.172495437212 +16,0,2060,2,"GWh/mth","res_com",6.85749469584222 +16,0,2060,3,"GWh/mth","agri",0.397802265344421 +16,0,2060,3,"GWh/mth","ind_man",514.111734705782 +16,0,2060,3,"GWh/mth","res_com",6.83109300703222 +16,0,2060,4,"GWh/mth","agri",0.00272924393289142 +16,0,2060,4,"GWh/mth","ind_man",514.055286669691 +16,0,2060,4,"GWh/mth","res_com",6.75049908856731 +16,0,2060,5,"GWh/mth","agri",0.00138583556361824 +16,0,2060,5,"GWh/mth","ind_man",513.981599855173 +16,0,2060,5,"GWh/mth","res_com",6.79132004664329 +16,0,2060,6,"GWh/mth","agri",5.81213689658041e-05 +16,0,2060,6,"GWh/mth","ind_man",513.920268738752 +16,0,2060,6,"GWh/mth","res_com",6.76686590247575 +16,0,2060,7,"GWh/mth","agri",0.000115593249400502 +16,0,2060,7,"GWh/mth","ind_man",513.913068282278 +16,0,2060,7,"GWh/mth","res_com",6.79610020347005 +16,0,2060,8,"GWh/mth","agri",0.00044276632851761 +16,0,2060,8,"GWh/mth","ind_man",513.98407657978 +16,0,2060,8,"GWh/mth","res_com",6.75063093876886 +16,0,2060,9,"GWh/mth","agri",0.000698416439143922 +16,0,2060,9,"GWh/mth","ind_man",514.056449662113 +16,0,2060,9,"GWh/mth","res_com",6.81700656204921 +16,0,2060,10,"GWh/mth","agri",0.00078499368842825 +16,0,2060,10,"GWh/mth","ind_man",514.122353970868 +16,0,2060,10,"GWh/mth","res_com",6.94082238390981 +16,0,2060,11,"GWh/mth","agri",0.000613440846179706 +16,0,2060,11,"GWh/mth","ind_man",514.182904587714 +16,0,2060,11,"GWh/mth","res_com",6.64106041519343 +16,0,2060,12,"GWh/mth","agri",2.31323734857875e-05 +16,0,2060,12,"GWh/mth","ind_man",514.247883773905 +16,0,2060,12,"GWh/mth","res_com",6.6313052306729 +16,1,2020,1,"GWh/mth","agri",0.0113020636890421 +16,1,2020,1,"GWh/mth","ind_man",13.5849614434396 +16,1,2020,1,"GWh/mth","res_com",4.271153271877 +16,1,2020,2,"GWh/mth","agri",0.0191932658446555 +16,1,2020,2,"GWh/mth","ind_man",13.5509252784877 +16,1,2020,2,"GWh/mth","res_com",4.17123117365709 +16,1,2020,3,"GWh/mth","agri",0.0127955110067668 +16,1,2020,3,"GWh/mth","ind_man",13.5231869195104 +16,1,2020,3,"GWh/mth","res_com",4.12391376182912 +16,1,2020,4,"GWh/mth","agri",0.000278203541118664 +16,1,2020,4,"GWh/mth","ind_man",13.4974173829726 +16,1,2020,4,"GWh/mth","res_com",4.02382101974687 +16,1,2020,5,"GWh/mth","agri",4.10667982385276e-06 +16,1,2020,5,"GWh/mth","ind_man",13.4637780362288 +16,1,2020,5,"GWh/mth","res_com",3.97940157701125 +16,1,2020,6,"GWh/mth","agri",8.4372540529069e-07 +16,1,2020,6,"GWh/mth","ind_man",13.4357792863169 +16,1,2020,6,"GWh/mth","res_com",3.93892916499062 +16,1,2020,7,"GWh/mth","agri",1.12554431937904e-06 +16,1,2020,7,"GWh/mth","ind_man",13.4324921493489 +16,1,2020,7,"GWh/mth","res_com",3.92171219873862 +16,1,2020,8,"GWh/mth","agri",1.66869186669253e-06 +16,1,2020,8,"GWh/mth","ind_man",13.4649087052416 +16,1,2020,8,"GWh/mth","res_com",4.02252163208785 +16,1,2020,9,"GWh/mth","agri",2.68280627585455e-06 +16,1,2020,9,"GWh/mth","ind_man",13.4979483097824 +16,1,2020,9,"GWh/mth","res_com",4.0567974659106 +16,1,2020,10,"GWh/mth","agri",3.91121343964623e-06 +16,1,2020,10,"GWh/mth","ind_man",13.5280348036637 +16,1,2020,10,"GWh/mth","res_com",4.11652226893527 +16,1,2020,11,"GWh/mth","agri",3.63151687018838e-06 +16,1,2020,11,"GWh/mth","ind_man",13.555677241581 +16,1,2020,11,"GWh/mth","res_com",4.16278196430647 +16,1,2020,12,"GWh/mth","agri",1.07239959713038e-06 +16,1,2020,12,"GWh/mth","ind_man",13.5853414004911 +16,1,2020,12,"GWh/mth","res_com",4.24578454977516 +16,1,2030,1,"GWh/mth","agri",0.0178161287927202 +16,1,2030,1,"GWh/mth","ind_man",18.0907614359098 +16,1,2030,1,"GWh/mth","res_com",7.86340986531081 +16,1,2030,2,"GWh/mth","agri",0.0302794027282114 +16,1,2030,2,"GWh/mth","ind_man",18.0202305704459 +16,1,2030,2,"GWh/mth","res_com",7.67469916980673 +16,1,2030,3,"GWh/mth","agri",0.0201862693405998 +16,1,2030,3,"GWh/mth","ind_man",17.9627502265826 +16,1,2030,3,"GWh/mth","res_com",7.57411910953982 +16,1,2030,4,"GWh/mth","agri",0.000567351126931236 +16,1,2030,4,"GWh/mth","ind_man",17.9093497416222 +16,1,2030,4,"GWh/mth","res_com",7.39275263922941 +16,1,2030,5,"GWh/mth","agri",2.13611576863874e-05 +16,1,2030,5,"GWh/mth","ind_man",17.8396411759586 +16,1,2030,5,"GWh/mth","res_com",7.29125643238559 +16,1,2030,6,"GWh/mth","agri",1.65379022420497e-06 +16,1,2030,6,"GWh/mth","ind_man",17.7816212413983 +16,1,2030,6,"GWh/mth","res_com",7.20113511823922 +16,1,2030,7,"GWh/mth","agri",2.19461863116326e-06 +16,1,2030,7,"GWh/mth","ind_man",17.7748095275762 +16,1,2030,7,"GWh/mth","res_com",7.17115781278623 +16,1,2030,8,"GWh/mth","agri",3.25371045416276e-06 +16,1,2030,8,"GWh/mth","ind_man",17.8419841856409 +16,1,2030,8,"GWh/mth","res_com",7.3596356494122 +16,1,2030,9,"GWh/mth","agri",5.23106018661476e-06 +16,1,2030,9,"GWh/mth","ind_man",17.9104499456977 +16,1,2030,9,"GWh/mth","res_com",7.44500979719469 +16,1,2030,10,"GWh/mth","agri",7.88557101911047e-06 +16,1,2030,10,"GWh/mth","ind_man",17.9727961722843 +16,1,2030,10,"GWh/mth","res_com",7.56751331249066 +16,1,2030,11,"GWh/mth","agri",6.95837939290119e-06 +16,1,2030,11,"GWh/mth","ind_man",18.0300777453581 +16,1,2030,11,"GWh/mth","res_com",7.66540942714187 +16,1,2030,12,"GWh/mth","agri",1.69243965107576e-06 +16,1,2030,12,"GWh/mth","ind_man",18.0915487954645 +16,1,2030,12,"GWh/mth","res_com",7.82351965968373 +16,1,2040,1,"GWh/mth","agri",0.0275654317716986 +16,1,2040,1,"GWh/mth","ind_man",22.3905778034623 +16,1,2040,1,"GWh/mth","res_com",10.2841720211917 +16,1,2040,2,"GWh/mth","agri",0.0468488311744439 +16,1,2040,2,"GWh/mth","ind_man",22.3083722229524 +16,1,2040,2,"GWh/mth","res_com",10.0447348563136 +16,1,2040,3,"GWh/mth","agri",0.0312325556583659 +16,1,2040,3,"GWh/mth","ind_man",22.2413773689391 +16,1,2040,3,"GWh/mth","res_com",9.93193347194991 +16,1,2040,4,"GWh/mth","agri",0.00103414661897303 +16,1,2040,4,"GWh/mth","ind_man",22.1791376978844 +16,1,2040,4,"GWh/mth","res_com",9.69109877375614 +16,1,2040,5,"GWh/mth","agri",5.71516348932493e-05 +16,1,2040,5,"GWh/mth","ind_man",22.0978905294398 +16,1,2040,5,"GWh/mth","res_com",9.5859888769062 +16,1,2040,6,"GWh/mth","agri",3.91376255692155e-06 +16,1,2040,6,"GWh/mth","ind_man",22.0302667682636 +16,1,2040,6,"GWh/mth","res_com",9.48977139912987 +16,1,2040,7,"GWh/mth","agri",5.09354168950736e-06 +16,1,2040,7,"GWh/mth","ind_man",22.0223275364773 +16,1,2040,7,"GWh/mth","res_com",9.44846411488492 +16,1,2040,8,"GWh/mth","agri",7.55207647961059e-06 +16,1,2040,8,"GWh/mth","ind_man",22.100621368907 +16,1,2040,8,"GWh/mth","res_com",9.69004108009742 +16,1,2040,9,"GWh/mth","agri",1.21413572506094e-05 +16,1,2040,9,"GWh/mth","ind_man",22.1804200146985 +16,1,2040,9,"GWh/mth","res_com",9.77113242253833 +16,1,2040,10,"GWh/mth","agri",1.85970155918679e-05 +16,1,2040,10,"GWh/mth","ind_man",22.2530861831262 +16,1,2040,10,"GWh/mth","res_com",9.91422950591857 +16,1,2040,11,"GWh/mth","agri",1.46410772771992e-05 +16,1,2040,11,"GWh/mth","ind_man",22.3198493645515 +16,1,2040,11,"GWh/mth","res_com",10.0230263088418 +16,1,2040,12,"GWh/mth","agri",2.61857277033768e-06 +16,1,2040,12,"GWh/mth","ind_man",22.3914954917515 +16,1,2040,12,"GWh/mth","res_com",10.2218666699515 +16,1,2050,1,"GWh/mth","agri",0.0427138242632047 +16,1,2050,1,"GWh/mth","ind_man",28.6247629480854 +16,1,2050,1,"GWh/mth","res_com",15.6039254059934 +16,1,2050,2,"GWh/mth","agri",0.0725942825164185 +16,1,2050,2,"GWh/mth","ind_man",28.5025443856066 +16,1,2050,2,"GWh/mth","res_com",15.2534531044303 +16,1,2050,3,"GWh/mth","agri",0.0483961907275573 +16,1,2050,3,"GWh/mth","ind_man",28.4029402626238 +16,1,2050,3,"GWh/mth","res_com",15.0926109232781 +16,1,2050,4,"GWh/mth","agri",0.0016082810709678 +16,1,2050,4,"GWh/mth","ind_man",28.3104058741033 +16,1,2050,4,"GWh/mth","res_com",14.7300689892381 +16,1,2050,5,"GWh/mth","agri",8.14125060473072e-05 +16,1,2050,5,"GWh/mth","ind_man",28.1896122239499 +16,1,2050,5,"GWh/mth","res_com",14.5878779150486 +16,1,2050,6,"GWh/mth","agri",6.29432660597445e-06 +16,1,2050,6,"GWh/mth","ind_man",28.0890730777132 +16,1,2050,6,"GWh/mth","res_com",14.4528985056031 +16,1,2050,7,"GWh/mth","agri",9.27137069719123e-06 +16,1,2050,7,"GWh/mth","ind_man",28.0772694812896 +16,1,2050,7,"GWh/mth","res_com",14.3924475284436 +16,1,2050,8,"GWh/mth","agri",1.96813119509231e-05 +16,1,2050,8,"GWh/mth","ind_man",28.1936722801161 +16,1,2050,8,"GWh/mth","res_com",14.7458060485571 +16,1,2050,9,"GWh/mth","agri",4.04238479771939e-05 +16,1,2050,9,"GWh/mth","ind_man",28.3123123495116 +16,1,2050,9,"GWh/mth","res_com",14.8569704444769 +16,1,2050,10,"GWh/mth","agri",4.23268620754587e-05 +16,1,2050,10,"GWh/mth","ind_man",28.4203482588864 +16,1,2050,10,"GWh/mth","res_com",15.0686414097977 +16,1,2050,11,"GWh/mth","agri",2.36514044508393e-05 +16,1,2050,11,"GWh/mth","ind_man",28.5196079442959 +16,1,2050,11,"GWh/mth","res_com",15.2057018211631 +16,1,2050,12,"GWh/mth","agri",4.057591336097e-06 +16,1,2050,12,"GWh/mth","ind_man",28.6261273146261 +16,1,2050,12,"GWh/mth","res_com",15.4964334516657 +16,1,2060,1,"GWh/mth","agri",0.065801094073533 +16,1,2060,1,"GWh/mth","ind_man",36.6274799607137 +16,1,2060,1,"GWh/mth","res_com",23.33931612313 +16,1,2060,2,"GWh/mth","agri",0.111832253268373 +16,1,2060,2,"GWh/mth","ind_man",36.4468965993581 +16,1,2060,2,"GWh/mth","res_com",22.8015310034249 +16,1,2060,3,"GWh/mth","agri",0.0745548392405821 +16,1,2060,3,"GWh/mth","ind_man",36.2997270780652 +16,1,2060,3,"GWh/mth","res_com",22.5597875714826 +16,1,2060,4,"GWh/mth","agri",0.00252225818639924 +16,1,2060,4,"GWh/mth","ind_man",36.1630034038449 +16,1,2060,4,"GWh/mth","res_com",22.0104638730477 +16,1,2060,5,"GWh/mth","agri",0.000143441481244784 +16,1,2060,5,"GWh/mth","ind_man",35.9845254138187 +16,1,2060,5,"GWh/mth","res_com",21.7929359364779 +16,1,2060,6,"GWh/mth","agri",1.00262416059923e-05 +16,1,2060,6,"GWh/mth","ind_man",35.8359743540859 +16,1,2060,6,"GWh/mth","res_com",21.5910381108766 +16,1,2060,7,"GWh/mth","agri",1.31000767278723e-05 +16,1,2060,7,"GWh/mth","ind_man",35.8185340154415 +16,1,2060,7,"GWh/mth","res_com",21.4956956690229 +16,1,2060,8,"GWh/mth","agri",1.94301786904584e-05 +16,1,2060,8,"GWh/mth","ind_man",35.9905243273628 +16,1,2060,8,"GWh/mth","res_com",22.0401957327553 +16,1,2060,9,"GWh/mth","agri",3.12333994751852e-05 +16,1,2060,9,"GWh/mth","ind_man",36.1658203060453 +16,1,2060,9,"GWh/mth","res_com",22.200984374348 +16,1,2060,10,"GWh/mth","agri",4.74581182133411e-05 +16,1,2060,10,"GWh/mth","ind_man",36.3254481667101 +16,1,2060,10,"GWh/mth","res_com",22.5127163549211 +16,1,2060,11,"GWh/mth","agri",3.73977942917297e-05 +16,1,2060,11,"GWh/mth","ind_man",36.4721087661706 +16,1,2060,11,"GWh/mth","res_com",22.744995678548 +16,1,2060,12,"GWh/mth","agri",6.25076199155667e-06 +16,1,2060,12,"GWh/mth","ind_man",36.6294958729537 +16,1,2060,12,"GWh/mth","res_com",23.190210794422 +17,0,2020,1,"GWh/mth","agri",0.363462268259286 +17,0,2020,1,"GWh/mth","ind_man",0.0492731728526927 +17,0,2020,1,"GWh/mth","res_com",0.620505854958348 +17,0,2020,2,"GWh/mth","agri",0.200189562674203 +17,0,2020,2,"GWh/mth","ind_man",0.0478977967185146 +17,0,2020,2,"GWh/mth","res_com",0.672132384868633 +17,0,2020,3,"GWh/mth","agri",0.133459708449469 +17,0,2020,3,"GWh/mth","ind_man",0.0467769102440069 +17,0,2020,3,"GWh/mth","res_com",0.698070576616027 +17,0,2020,4,"GWh/mth","agri",2.09494620497678e-16 +17,0,2020,4,"GWh/mth","ind_man",0.0457355824212879 +17,0,2020,4,"GWh/mth","res_com",0.703688436591791 +17,0,2020,5,"GWh/mth","agri",6.57692601487645e-14 +17,0,2020,5,"GWh/mth","ind_man",0.0443762414160291 +17,0,2020,5,"GWh/mth","res_com",0.76127535662386 +17,0,2020,6,"GWh/mth","agri",2.80872157590272e-05 +17,0,2020,6,"GWh/mth","ind_man",0.0432448327373465 +17,0,2020,6,"GWh/mth","res_com",0.787487275560472 +17,0,2020,7,"GWh/mth","agri",0.000927580423322107 +17,0,2020,7,"GWh/mth","ind_man",0.0431120019750692 +17,0,2020,7,"GWh/mth","res_com",0.801757814923582 +17,0,2020,8,"GWh/mth","agri",0.00200984895764388 +17,0,2020,8,"GWh/mth","ind_man",0.0444219309106624 +17,0,2020,8,"GWh/mth","res_com",0.741120219761588 +17,0,2020,9,"GWh/mth","agri",0.0022945757185311 +17,0,2020,9,"GWh/mth","ind_man",0.0457570367791511 +17,0,2020,9,"GWh/mth","res_com",0.726196966091624 +17,0,2020,10,"GWh/mth","agri",0.00222719383191331 +17,0,2020,10,"GWh/mth","ind_man",0.0469728096402835 +17,0,2020,10,"GWh/mth","res_com",0.72926253222633 +17,0,2020,11,"GWh/mth","agri",0.00178592524723917 +17,0,2020,11,"GWh/mth","ind_man",0.0480898200160352 +17,0,2020,11,"GWh/mth","res_com",0.589592029572965 +17,0,2020,12,"GWh/mth","agri",0.000411462592241633 +17,0,2020,12,"GWh/mth","ind_man",0.0492885266348056 +17,0,2020,12,"GWh/mth","res_com",0.547577169050994 +17,0,2030,1,"GWh/mth","agri",0.553299102957541 +17,0,2030,1,"GWh/mth","ind_man",3.96714186698815 +17,0,2030,1,"GWh/mth","res_com",9.36575118013754 +17,0,2030,2,"GWh/mth","agri",0.305218604803376 +17,0,2030,2,"GWh/mth","ind_man",3.85640590401158 +17,0,2030,2,"GWh/mth","res_com",9.21063640552945 +17,0,2030,3,"GWh/mth","agri",0.203488468512444 +17,0,2030,3,"GWh/mth","ind_man",3.76615972330683 +17,0,2030,3,"GWh/mth","res_com",9.05935965300679 +17,0,2030,4,"GWh/mth","agri",2.81959305823778e-05 +17,0,2030,4,"GWh/mth","ind_man",3.68231906593494 +17,0,2030,4,"GWh/mth","res_com",8.89024951346749 +17,0,2030,5,"GWh/mth","agri",2.8195930721419e-05 +17,0,2030,5,"GWh/mth","ind_man",3.57287414284063 +17,0,2030,5,"GWh/mth","res_com",8.74713849478421 +17,0,2030,6,"GWh/mth","agri",4.16173686229052e-05 +17,0,2030,6,"GWh/mth","ind_man",3.48178078558324 +17,0,2030,6,"GWh/mth","res_com",8.59448596296062 +17,0,2030,7,"GWh/mth","agri",0.00133940521341535 +17,0,2030,7,"GWh/mth","ind_man",3.47108615303279 +17,0,2030,7,"GWh/mth","res_com",8.59381610466955 +17,0,2030,8,"GWh/mth","agri",0.00319496020195551 +17,0,2030,8,"GWh/mth","ind_man",3.57655275123029 +17,0,2030,8,"GWh/mth","res_com",8.72381795698529 +17,0,2030,9,"GWh/mth","agri",0.0041890025623141 +17,0,2030,9,"GWh/mth","ind_man",3.6840464253961 +17,0,2030,9,"GWh/mth","res_com",8.92868290651159 +17,0,2030,10,"GWh/mth","agri",0.00416875614548118 +17,0,2030,10,"GWh/mth","ind_man",3.78193221473964 +17,0,2030,10,"GWh/mth","res_com",9.14087854252086 +17,0,2030,11,"GWh/mth","agri",0.00299863367612626 +17,0,2030,11,"GWh/mth","ind_man",3.8718663182477 +17,0,2030,11,"GWh/mth","res_com",9.11601934547778 +17,0,2030,12,"GWh/mth","agri",0.000150932427628234 +17,0,2030,12,"GWh/mth","ind_man",3.96837804944425 +17,0,2030,12,"GWh/mth","res_com",9.25580084782779 +17,0,2040,1,"GWh/mth","agri",0.854014938638905 +17,0,2040,1,"GWh/mth","ind_man",5.95992782421957 +17,0,2040,1,"GWh/mth","res_com",14.0408303946648 +17,0,2040,2,"GWh/mth","agri",0.471087226235307 +17,0,2040,2,"GWh/mth","ind_man",5.79356665816758 +17,0,2040,2,"GWh/mth","res_com",13.8125726204716 +17,0,2040,3,"GWh/mth","agri",0.314078179134142 +17,0,2040,3,"GWh/mth","ind_man",5.65798775994679 +17,0,2040,3,"GWh/mth","res_com",13.5882765758647 +17,0,2040,4,"GWh/mth","agri",6.00849318131958e-05 +17,0,2040,4,"GWh/mth","ind_man",5.53203202571163 +17,0,2040,4,"GWh/mth","res_com",13.335955795644 +17,0,2040,5,"GWh/mth","agri",6.00849322448875e-05 +17,0,2040,5,"GWh/mth","ind_man",5.36761041835818 +17,0,2040,5,"GWh/mth","res_com",13.1260145841158 +17,0,2040,6,"GWh/mth","agri",8.85027922411822e-05 +17,0,2040,6,"GWh/mth","ind_man",5.23075878745543 +17,0,2040,6,"GWh/mth","res_com",12.8996855022721 +17,0,2040,7,"GWh/mth","agri",0.0032253979392677 +17,0,2040,7,"GWh/mth","ind_man",5.21469199674204 +17,0,2040,7,"GWh/mth","res_com",12.8996719211869 +17,0,2040,8,"GWh/mth","agri",0.00794777668983593 +17,0,2040,8,"GWh/mth","ind_man",5.37313687575019 +17,0,2040,8,"GWh/mth","res_com",13.0898134236185 +17,0,2040,9,"GWh/mth","agri",0.0102940537363807 +17,0,2040,9,"GWh/mth","ind_man",5.53462707727777 +17,0,2040,9,"GWh/mth","res_com",13.3949182766399 +17,0,2040,10,"GWh/mth","agri",0.0104178390713928 +17,0,2040,10,"GWh/mth","ind_man",5.68168313402201 +17,0,2040,10,"GWh/mth","res_com",13.7122669432673 +17,0,2040,11,"GWh/mth","agri",0.00820838884713813 +17,0,2040,11,"GWh/mth","ind_man",5.81679319154331 +17,0,2040,11,"GWh/mth","res_com",13.6655294272407 +17,0,2040,12,"GWh/mth","agri",0.00029607031548189 +17,0,2040,12,"GWh/mth","ind_man",5.96178496935401 +17,0,2040,12,"GWh/mth","res_com",13.8715358357722 +17,0,2050,1,"GWh/mth","agri",1.32655243667549 +17,0,2050,1,"GWh/mth","ind_man",7.51345357342422 +17,0,2050,1,"GWh/mth","res_com",18.0850124687479 +17,0,2050,2,"GWh/mth","agri",0.731784239578985 +17,0,2050,2,"GWh/mth","ind_man",7.30372839982851 +17,0,2050,2,"GWh/mth","res_com",17.8350863794979 +17,0,2050,3,"GWh/mth","agri",0.48788820501629 +17,0,2050,3,"GWh/mth","ind_man",7.13280925661703 +17,0,2050,3,"GWh/mth","res_com",17.5717955391418 +17,0,2050,4,"GWh/mth","agri",9.61358909011433e-05 +17,0,2050,4,"GWh/mth","ind_man",6.97402166901627 +17,0,2050,4,"GWh/mth","res_com",17.258694802298 +17,0,2050,5,"GWh/mth","agri",9.61358919756455e-05 +17,0,2050,5,"GWh/mth","ind_man",6.76674162305704 +17,0,2050,5,"GWh/mth","res_com",17.0361256044555 +17,0,2050,6,"GWh/mth","agri",0.000141280148858237 +17,0,2050,6,"GWh/mth","ind_man",6.59421799432168 +17,0,2050,6,"GWh/mth","res_com",16.770469394134 +17,0,2050,7,"GWh/mth","agri",0.00508679973971415 +17,0,2050,7,"GWh/mth","ind_man",6.57396320438809 +17,0,2050,7,"GWh/mth","res_com",16.780641910054 +17,0,2050,8,"GWh/mth","agri",0.0128018115247186 +17,0,2050,8,"GWh/mth","ind_man",6.77370861699808 +17,0,2050,8,"GWh/mth","res_com",16.9761636462863 +17,0,2050,9,"GWh/mth","agri",0.0169704690779517 +17,0,2050,9,"GWh/mth","ind_man",6.97729315149691 +17,0,2050,9,"GWh/mth","res_com",17.3489356989005 +17,0,2050,10,"GWh/mth","agri",0.0172089688266955 +17,0,2050,10,"GWh/mth","ind_man",7.16268111048337 +17,0,2050,10,"GWh/mth","res_com",17.7498645338176 +17,0,2050,11,"GWh/mth","agri",0.0138950491668352 +17,0,2050,11,"GWh/mth","ind_man",7.33300920411627 +17,0,2050,11,"GWh/mth","res_com",17.5912165459961 +17,0,2050,12,"GWh/mth","agri",0.000484209550959098 +17,0,2050,12,"GWh/mth","ind_man",7.51579480542539 +17,0,2050,12,"GWh/mth","res_com",17.82004720888 +17,0,2060,1,"GWh/mth","agri",2.04355202428996 +17,0,2060,1,"GWh/mth","ind_man",9.32178909927961 +17,0,2060,1,"GWh/mth","res_com",23.0215646738852 +17,0,2060,2,"GWh/mth","agri",1.12730538133118 +17,0,2060,2,"GWh/mth","ind_man",9.06158734013331 +17,0,2060,2,"GWh/mth","res_com",22.7716117626036 +17,0,2060,3,"GWh/mth","agri",0.75158098317078 +17,0,2060,3,"GWh/mth","ind_man",8.84953143395423 +17,0,2060,3,"GWh/mth","res_com",22.4760796286893 +17,0,2060,4,"GWh/mth","agri",0.000132186849989391 +17,0,2060,4,"GWh/mth","ind_man",8.65252690218561 +17,0,2060,4,"GWh/mth","res_com",22.096002230321 +17,0,2060,5,"GWh/mth","agri",0.000132186851611583 +17,0,2060,5,"GWh/mth","ind_man",8.39535876318821 +17,0,2060,5,"GWh/mth","res_com",21.8866182600658 +17,0,2060,6,"GWh/mth","agri",0.000205632434729342 +17,0,2060,6,"GWh/mth","ind_man",8.18131220443899 +17,0,2060,6,"GWh/mth","res_com",21.588475521056 +17,0,2060,7,"GWh/mth","agri",0.0080296573308167 +17,0,2060,7,"GWh/mth","ind_man",8.1561824983503 +17,0,2060,7,"GWh/mth","res_com",21.6171902643478 +17,0,2060,8,"GWh/mth","agri",0.0202904834969322 +17,0,2060,8,"GWh/mth","ind_man",8.40400257093116 +17,0,2060,8,"GWh/mth","res_com",21.7897595626249 +17,0,2060,9,"GWh/mth","agri",0.0271433175711689 +17,0,2060,9,"GWh/mth","ind_man",8.65658576398977 +17,0,2060,9,"GWh/mth","res_com",22.232912476604 +17,0,2060,10,"GWh/mth","agri",0.0276131174385157 +17,0,2060,10,"GWh/mth","ind_man",8.8865928357484 +17,0,2060,10,"GWh/mth","res_com",22.7311596159131 +17,0,2060,11,"GWh/mth","agri",0.0229477245137141 +17,0,2060,11,"GWh/mth","ind_man",9.09791543873144 +17,0,2060,11,"GWh/mth","res_com",22.3770711914021 +17,0,2060,12,"GWh/mth","agri",0.000777205583251798 +17,0,2060,12,"GWh/mth","ind_man",9.32469381822598 +17,0,2060,12,"GWh/mth","res_com",22.6118751839915 +17,1,2020,1,"GWh/mth","agri",0.0603998644103946 +17,1,2020,1,"GWh/mth","ind_man",1.74551245574496 +17,1,2020,1,"GWh/mth","res_com",6.66613339416008 +17,1,2020,2,"GWh/mth","agri",0.0326365352177955 +17,1,2020,2,"GWh/mth","ind_man",1.69678946847723 +17,1,2020,2,"GWh/mth","res_com",6.49934012954376 +17,1,2020,3,"GWh/mth","agri",0.021757690145197 +17,1,2020,3,"GWh/mth","ind_man",1.65708183063993 +17,1,2020,3,"GWh/mth","res_com",6.39664756754804 +17,1,2020,4,"GWh/mth","agri",0 +17,1,2020,4,"GWh/mth","ind_man",1.6201925746851 +17,1,2020,4,"GWh/mth","res_com",6.24548356255973 +17,1,2020,5,"GWh/mth","agri",0 +17,1,2020,5,"GWh/mth","ind_man",1.57203763521372 +17,1,2020,5,"GWh/mth","res_com",6.13456788932487 +17,1,2020,6,"GWh/mth","agri",8.28413204633679e-12 +17,1,2020,6,"GWh/mth","ind_man",1.53195724609239 +17,1,2020,6,"GWh/mth","res_com",6.03795445628928 +17,1,2020,7,"GWh/mth","agri",1.40557577892514e-06 +17,1,2020,7,"GWh/mth","ind_man",1.5272516885519 +17,1,2020,7,"GWh/mth","res_com",6.01449263830296 +17,1,2020,8,"GWh/mth","agri",1.872592781585e-05 +17,1,2020,8,"GWh/mth","ind_man",1.57365619511888 +17,1,2020,8,"GWh/mth","res_com",6.17800247692147 +17,1,2020,9,"GWh/mth","agri",4.1257711395382e-05 +17,1,2020,9,"GWh/mth","ind_man",1.62095259980043 +17,1,2020,9,"GWh/mth","res_com",6.2797208465527 +17,1,2020,10,"GWh/mth","agri",4.38471635327134e-05 +17,1,2020,10,"GWh/mth","ind_man",1.66402160773316 +17,1,2020,10,"GWh/mth","res_com",6.3995700104048 +17,1,2020,11,"GWh/mth","agri",9.71810703999682e-05 +17,1,2020,11,"GWh/mth","ind_man",1.70359193396119 +17,1,2020,11,"GWh/mth","res_com",6.4986086218757 +17,1,2020,12,"GWh/mth","agri",5.76125417548751e-06 +17,1,2020,12,"GWh/mth","ind_man",1.74605636668816 +17,1,2020,12,"GWh/mth","res_com",6.63998384046562 +17,1,2030,1,"GWh/mth","agri",0.109700349261188 +17,1,2030,1,"GWh/mth","ind_man",2.7999639356129 +17,1,2030,1,"GWh/mth","res_com",10.3093399468071 +17,1,2030,2,"GWh/mth","agri",0.0589775568851124 +17,1,2030,2,"GWh/mth","ind_man",2.72180774329474 +17,1,2030,2,"GWh/mth","res_com",10.0532563857696 +17,1,2030,3,"GWh/mth","agri",0.0393183712567416 +17,1,2030,3,"GWh/mth","ind_man",2.65811300794817 +17,1,2030,3,"GWh/mth","res_com",9.89617071580724 +17,1,2030,4,"GWh/mth","agri",0 +17,1,2030,4,"GWh/mth","ind_man",2.59893921864338 +17,1,2030,4,"GWh/mth","res_com",9.66268572446295 +17,1,2030,5,"GWh/mth","agri",0 +17,1,2030,5,"GWh/mth","ind_man",2.52169422769663 +17,1,2030,5,"GWh/mth","res_com",9.49401434169805 +17,1,2030,6,"GWh/mth","agri",4.38410184274194e-11 +17,1,2030,6,"GWh/mth","ind_man",2.45740156470491 +17,1,2030,6,"GWh/mth","res_com",9.34647334616832 +17,1,2030,7,"GWh/mth","agri",2.35192011285625e-06 +17,1,2030,7,"GWh/mth","ind_man",2.44985341380689 +17,1,2030,7,"GWh/mth","res_com",9.31045132044325 +17,1,2030,8,"GWh/mth","agri",7.8868422164384e-05 +17,1,2030,8,"GWh/mth","ind_man",2.52429054796186 +17,1,2030,8,"GWh/mth","res_com",9.56142258821139 +17,1,2030,9,"GWh/mth","agri",0.000226859557666588 +17,1,2030,9,"GWh/mth","ind_man",2.60015836944697 +17,1,2030,9,"GWh/mth","res_com",9.71661393619862 +17,1,2030,10,"GWh/mth","agri",0.000184492874967635 +17,1,2030,10,"GWh/mth","ind_man",2.66924505430985 +17,1,2030,10,"GWh/mth","res_com",9.90092201714773 +17,1,2030,11,"GWh/mth","agri",0.000194775367129278 +17,1,2030,11,"GWh/mth","ind_man",2.73271952909474 +17,1,2030,11,"GWh/mth","res_com",10.0498862465119 +17,1,2030,12,"GWh/mth","agri",9.19633223359378e-06 +17,1,2030,12,"GWh/mth","ind_man",2.80083641923234 +17,1,2030,12,"GWh/mth","res_com",10.2668994604431 +17,1,2040,1,"GWh/mth","agri",0.171806081478535 +17,1,2040,1,"GWh/mth","ind_man",3.86856904310355 +17,1,2040,1,"GWh/mth","res_com",14.8475444239841 +17,1,2040,2,"GWh/mth","agri",0.0924200211148424 +17,1,2040,2,"GWh/mth","ind_man",3.7605845714883 +17,1,2040,2,"GWh/mth","res_com",14.4829458624006 +17,1,2040,3,"GWh/mth","agri",0.061613347409895 +17,1,2040,3,"GWh/mth","ind_man",3.67258076606912 +17,1,2040,3,"GWh/mth","res_com",14.2654726519219 +17,1,2040,4,"GWh/mth","agri",0 +17,1,2040,4,"GWh/mth","ind_man",3.59082332392638 +17,1,2040,4,"GWh/mth","res_com",13.9277176630341 +17,1,2040,5,"GWh/mth","agri",0 +17,1,2040,5,"GWh/mth","ind_man",3.48409781331868 +17,1,2040,5,"GWh/mth","res_com",13.6981151549131 +17,1,2040,6,"GWh/mth","agri",7.56208472635333e-11 +17,1,2040,6,"GWh/mth","ind_man",3.39526788140957 +17,1,2040,6,"GWh/mth","res_com",13.4956457413394 +17,1,2040,7,"GWh/mth","agri",8.06345791579532e-06 +17,1,2040,7,"GWh/mth","ind_man",3.38483898176363 +17,1,2040,7,"GWh/mth","res_com",13.4430763135171 +17,1,2040,8,"GWh/mth","agri",0.000197083864929211 +17,1,2040,8,"GWh/mth","ind_man",3.48768501816668 +17,1,2040,8,"GWh/mth","res_com",13.801089298025 +17,1,2040,9,"GWh/mth","agri",0.000532173436720652 +17,1,2040,9,"GWh/mth","ind_man",3.59250776314278 +17,1,2040,9,"GWh/mth","res_com",14.0109823794811 +17,1,2040,10,"GWh/mth","agri",0.000459308210422667 +17,1,2040,10,"GWh/mth","ind_man",3.68796135343792 +17,1,2040,10,"GWh/mth","res_com",14.2687855711069 +17,1,2040,11,"GWh/mth","agri",0.000499351697251854 +17,1,2040,11,"GWh/mth","ind_man",3.77566083594084 +17,1,2040,11,"GWh/mth","res_com",14.4723282158289 +17,1,2040,12,"GWh/mth","agri",1.63365656247064e-05 +17,1,2040,12,"GWh/mth","ind_man",3.86977450974468 +17,1,2040,12,"GWh/mth","res_com",14.7805731849326 +17,1,2050,1,"GWh/mth","agri",0.263004466035809 +17,1,2050,1,"GWh/mth","ind_man",5.72442681510779 +17,1,2050,1,"GWh/mth","res_com",22.4067993480821 +17,1,2050,2,"GWh/mth","agri",0.141397552160333 +17,1,2050,2,"GWh/mth","ind_man",5.5646392559245 +17,1,2050,2,"GWh/mth","res_com",21.8573137094608 +17,1,2050,3,"GWh/mth","agri",0.094265034773555 +17,1,2050,3,"GWh/mth","ind_man",5.43441763186658 +17,1,2050,3,"GWh/mth","res_com",21.5332445842904 +17,1,2050,4,"GWh/mth","agri",0 +17,1,2050,4,"GWh/mth","ind_man",5.31343892141269 +17,1,2050,4,"GWh/mth","res_com",21.0222803100508 +17,1,2050,5,"GWh/mth","agri",0 +17,1,2050,5,"GWh/mth","ind_man",5.1555142810685 +17,1,2050,5,"GWh/mth","res_com",20.6816120436145 +17,1,2050,6,"GWh/mth","agri",1.25024089456676e-10 +17,1,2050,6,"GWh/mth","ind_man",5.02407021517773 +17,1,2050,6,"GWh/mth","res_com",20.3809193114263 +17,1,2050,7,"GWh/mth","agri",1.02851415232524e-05 +17,1,2050,7,"GWh/mth","ind_man",5.0086382887677 +17,1,2050,7,"GWh/mth","res_com",20.3007835458271 +17,1,2050,8,"GWh/mth","agri",0.00027653752111229 +17,1,2050,8,"GWh/mth","ind_man",5.16082236563268 +17,1,2050,8,"GWh/mth","res_com",20.841080349599 +17,1,2050,9,"GWh/mth","agri",0.000763288964801048 +17,1,2050,9,"GWh/mth","ind_man",5.3159314319279 +17,1,2050,9,"GWh/mth","res_com",21.1505664975758 +17,1,2050,10,"GWh/mth","agri",0.000645462477987654 +17,1,2050,10,"GWh/mth","ind_man",5.45717670525652 +17,1,2050,10,"GWh/mth","res_com",21.5354530969354 +17,1,2050,11,"GWh/mth","agri",0.000761378200391343 +17,1,2050,11,"GWh/mth","ind_man",5.58694801441948 +17,1,2050,11,"GWh/mth","res_com",21.8402329146038 +17,1,2050,12,"GWh/mth","agri",2.51327030795758e-05 +17,1,2050,12,"GWh/mth","ind_man",5.72621057687818 +17,1,2050,12,"GWh/mth","res_com",22.3043294054431 +17,1,2060,1,"GWh/mth","agri",0.405161137170516 +17,1,2060,1,"GWh/mth","ind_man",8.85858106575026 +17,1,2060,1,"GWh/mth","res_com",34.6265441929196 +17,1,2060,2,"GWh/mth","agri",0.217824411463064 +17,1,2060,2,"GWh/mth","ind_man",8.61130896462255 +17,1,2060,2,"GWh/mth","res_com",33.7770234492628 +17,1,2060,3,"GWh/mth","agri",0.14521627430871 +17,1,2060,3,"GWh/mth","ind_man",8.40979030598826 +17,1,2060,3,"GWh/mth","res_com",33.2753202931395 +17,1,2060,4,"GWh/mth","agri",0 +17,1,2060,4,"GWh/mth","ind_man",8.22257510551485 +17,1,2060,4,"GWh/mth","res_com",32.4858786072539 +17,1,2060,5,"GWh/mth","agri",0 +17,1,2060,5,"GWh/mth","ind_man",7.97818588123894 +17,1,2060,5,"GWh/mth","res_com",31.9580785680193 +17,1,2060,6,"GWh/mth","agri",1.64626521704837e-10 +17,1,2060,6,"GWh/mth","ind_man",7.77477548734026 +17,1,2060,6,"GWh/mth","res_com",31.4923637915537 +17,1,2060,7,"GWh/mth","agri",1.57507039556758e-05 +17,1,2060,7,"GWh/mth","ind_man",7.75089449881174 +17,1,2060,7,"GWh/mth","res_com",31.3686209462758 +17,1,2060,8,"GWh/mth","agri",0.000425576396805105 +17,1,2060,8,"GWh/mth","ind_man",7.98640017044804 +17,1,2060,8,"GWh/mth","res_com",32.2038418989834 +17,1,2060,9,"GWh/mth","agri",0.0011736583616505 +17,1,2060,9,"GWh/mth","ind_man",8.22643227884756 +17,1,2060,9,"GWh/mth","res_com",32.683552125478 +17,1,2060,10,"GWh/mth","agri",0.000991502347214619 +17,1,2060,10,"GWh/mth","ind_man",8.44501009359635 +17,1,2060,10,"GWh/mth","res_com",33.2791544386783 +17,1,2060,11,"GWh/mth","agri",0.00119683252206247 +17,1,2060,11,"GWh/mth","ind_man",8.64583188752593 +17,1,2060,11,"GWh/mth","res_com",33.7511336685547 +17,1,2060,12,"GWh/mth","agri",3.88155784948064e-05 +17,1,2060,12,"GWh/mth","ind_man",8.86134144661553 +17,1,2060,12,"GWh/mth","res_com",34.4687220232359 +18,0,2020,1,"GWh/mth","agri",0.131934043758908 +18,0,2020,1,"GWh/mth","ind_man",0 +18,0,2020,1,"GWh/mth","res_com",0.142256190396725 +18,0,2020,2,"GWh/mth","agri",0.0724268557348149 +18,0,2020,2,"GWh/mth","ind_man",0 +18,0,2020,2,"GWh/mth","res_com",0.152132067326699 +18,0,2020,3,"GWh/mth","agri",0.0482845704898766 +18,0,2020,3,"GWh/mth","ind_man",0 +18,0,2020,3,"GWh/mth","res_com",0.158074901427583 +18,0,2020,4,"GWh/mth","agri",0 +18,0,2020,4,"GWh/mth","ind_man",0 +18,0,2020,4,"GWh/mth","res_com",0.158430240291487 +18,0,2020,5,"GWh/mth","agri",0 +18,0,2020,5,"GWh/mth","ind_man",0 +18,0,2020,5,"GWh/mth","res_com",0.171014604945921 +18,0,2020,6,"GWh/mth","agri",0.00152270524667865 +18,0,2020,6,"GWh/mth","ind_man",0 +18,0,2020,6,"GWh/mth","res_com",0.177240746769728 +18,0,2020,7,"GWh/mth","agri",0.00937300814067729 +18,0,2020,7,"GWh/mth","ind_man",0 +18,0,2020,7,"GWh/mth","res_com",0.179762113284346 +18,0,2020,8,"GWh/mth","agri",0.0182709583032552 +18,0,2020,8,"GWh/mth","ind_man",0 +18,0,2020,8,"GWh/mth","res_com",0.168357703178791 +18,0,2020,9,"GWh/mth","agri",0.0178197302033334 +18,0,2020,9,"GWh/mth","ind_man",0 +18,0,2020,9,"GWh/mth","res_com",0.163643997241493 +18,0,2020,10,"GWh/mth","agri",0.0179422187577418 +18,0,2020,10,"GWh/mth","ind_man",0 +18,0,2020,10,"GWh/mth","res_com",0.16344988088832 +18,0,2020,11,"GWh/mth","agri",0.0118268168958934 +18,0,2020,11,"GWh/mth","ind_man",0 +18,0,2020,11,"GWh/mth","res_com",0.135684036631937 +18,0,2020,12,"GWh/mth","agri",0.00787716106486073 +18,0,2020,12,"GWh/mth","ind_man",0 +18,0,2020,12,"GWh/mth","res_com",0.127534414654114 +18,0,2030,1,"GWh/mth","agri",0.209948797693588 +18,0,2030,1,"GWh/mth","ind_man",0.447979450896383 +18,0,2030,1,"GWh/mth","res_com",1.16130806487563 +18,0,2030,2,"GWh/mth","agri",0.116872412327376 +18,0,2030,2,"GWh/mth","ind_man",0.435474872650385 +18,0,2030,2,"GWh/mth","res_com",1.15041758507839 +18,0,2030,3,"GWh/mth","agri",0.0791109801425936 +18,0,2030,3,"GWh/mth","ind_man",0.425284051189215 +18,0,2030,3,"GWh/mth","res_com",1.13828200328168 +18,0,2030,4,"GWh/mth","agri",0.00358811577302805 +18,0,2030,4,"GWh/mth","ind_man",0.415816557232221 +18,0,2030,4,"GWh/mth","res_com",1.11894997227743 +18,0,2030,5,"GWh/mth","agri",0.00358811577302805 +18,0,2030,5,"GWh/mth","ind_man",0.403457766396135 +18,0,2030,5,"GWh/mth","res_com",1.11260381605269 +18,0,2030,6,"GWh/mth","agri",0.00386755076761708 +18,0,2030,6,"GWh/mth","ind_man",0.393171279667729 +18,0,2030,6,"GWh/mth","res_com",1.10070940084175 +18,0,2030,7,"GWh/mth","agri",0.0185514431252203 +18,0,2030,7,"GWh/mth","ind_man",0.391963615364782 +18,0,2030,7,"GWh/mth","res_com",1.102090809784 +18,0,2030,8,"GWh/mth","agri",0.0439098725893067 +18,0,2030,8,"GWh/mth","ind_man",0.403873163934644 +18,0,2030,8,"GWh/mth","res_com",1.10934928511031 +18,0,2030,9,"GWh/mth","agri",0.0412892861432998 +18,0,2030,9,"GWh/mth","ind_man",0.416011614925859 +18,0,2030,9,"GWh/mth","res_com",1.12748301877053 +18,0,2030,10,"GWh/mth","agri",0.0414801554407936 +18,0,2030,10,"GWh/mth","ind_man",0.427065119849788 +18,0,2030,10,"GWh/mth","res_com",1.15036536389582 +18,0,2030,11,"GWh/mth","agri",0.0178928214638106 +18,0,2030,11,"GWh/mth","ind_man",0.437220700783673 +18,0,2030,11,"GWh/mth","res_com",1.12849034967751 +18,0,2030,12,"GWh/mth","agri",0.0041575250035898 +18,0,2030,12,"GWh/mth","ind_man",0.448119043670339 +18,0,2030,12,"GWh/mth","res_com",1.13869141901455 +18,0,2040,1,"GWh/mth","agri",0.327977124716925 +18,0,2040,1,"GWh/mth","ind_man",0.592379883682428 +18,0,2040,1,"GWh/mth","res_com",1.57223785512325 +18,0,2040,2,"GWh/mth","agri",0.183967683596528 +18,0,2040,2,"GWh/mth","ind_man",0.575844614950704 +18,0,2040,2,"GWh/mth","res_com",1.56165608093547 +18,0,2040,3,"GWh/mth","agri",0.125542523192626 +18,0,2040,3,"GWh/mth","ind_man",0.562368912840446 +18,0,2040,3,"GWh/mth","res_com",1.54798804586297 +18,0,2040,4,"GWh/mth","agri",0.0086922023848224 +18,0,2040,4,"GWh/mth","ind_man",0.549849693582093 +18,0,2040,4,"GWh/mth","res_com",1.52282295402027 +18,0,2040,5,"GWh/mth","agri",0.0086922023848224 +18,0,2040,5,"GWh/mth","ind_man",0.533507204962834 +18,0,2040,5,"GWh/mth","res_com",1.51919915934084 +18,0,2040,6,"GWh/mth","agri",0.00953222228026889 +18,0,2040,6,"GWh/mth","ind_man",0.519905001112901 +18,0,2040,6,"GWh/mth","res_com",1.50595221563484 +18,0,2040,7,"GWh/mth","agri",0.0477547818969625 +18,0,2040,7,"GWh/mth","ind_man",0.518308061704463 +18,0,2040,7,"GWh/mth","res_com",1.50869492205515 +18,0,2040,8,"GWh/mth","agri",0.110108946990916 +18,0,2040,8,"GWh/mth","ind_man",0.53405650057238 +18,0,2040,8,"GWh/mth","res_com",1.51395546477393 +18,0,2040,9,"GWh/mth","agri",0.112876973583737 +18,0,2040,9,"GWh/mth","ind_man",0.550107625622587 +18,0,2040,9,"GWh/mth","res_com",1.53592765895434 +18,0,2040,10,"GWh/mth","agri",0.113319257931307 +18,0,2040,10,"GWh/mth","ind_man",0.564724086150003 +18,0,2040,10,"GWh/mth","res_com",1.56579084029621 +18,0,2040,11,"GWh/mth","agri",0.0482565530569881 +18,0,2040,11,"GWh/mth","ind_man",0.578153188400796 +18,0,2040,11,"GWh/mth","res_com",1.52685474050833 +18,0,2040,12,"GWh/mth","agri",0.00986024879171779 +18,0,2040,12,"GWh/mth","ind_man",0.592564472397454 +18,0,2040,12,"GWh/mth","res_com",1.53717500417486 +18,0,2050,1,"GWh/mth","agri",0.508274745192076 +18,0,2050,1,"GWh/mth","ind_man",0.710263754935103 +18,0,2050,1,"GWh/mth","res_com",1.99624488518499 +18,0,2050,2,"GWh/mth","agri",0.285125911130482 +18,0,2050,2,"GWh/mth","ind_man",0.690437960066363 +18,0,2050,2,"GWh/mth","res_com",1.99212996685793 +18,0,2050,3,"GWh/mth","agri",0.194593607674818 +18,0,2050,3,"GWh/mth","ind_man",0.674280586994003 +18,0,2050,3,"GWh/mth","res_com",1.98096018240162 +18,0,2050,4,"GWh/mth","agri",0.0135290007634895 +18,0,2050,4,"GWh/mth","ind_man",0.659270037304135 +18,0,2050,4,"GWh/mth","res_com",1.95126476082457 +18,0,2050,5,"GWh/mth","agri",0.0135290007634895 +18,0,2050,5,"GWh/mth","ind_man",0.63967538587954 +18,0,2050,5,"GWh/mth","res_com",1.95778833915587 +18,0,2050,6,"GWh/mth","agri",0.0147799382133843 +18,0,2050,6,"GWh/mth","ind_man",0.623366337162711 +18,0,2050,6,"GWh/mth","res_com",1.94736501634107 +18,0,2050,7,"GWh/mth","agri",0.0765785446495786 +18,0,2050,7,"GWh/mth","ind_man",0.621451606072265 +18,0,2050,7,"GWh/mth","res_com",1.95280112599179 +18,0,2050,8,"GWh/mth","agri",0.177139896030455 +18,0,2050,8,"GWh/mth","ind_man",0.640333991569828 +18,0,2050,8,"GWh/mth","res_com",1.94925500502405 +18,0,2050,9,"GWh/mth","agri",0.181653945593514 +18,0,2050,9,"GWh/mth","ind_man",0.659579297940165 +18,0,2050,9,"GWh/mth","res_com",1.9713794801062 +18,0,2050,10,"GWh/mth","agri",0.182366708142068 +18,0,2050,10,"GWh/mth","ind_man",0.677104440883116 +18,0,2050,10,"GWh/mth","res_com",2.00679701382465 +18,0,2050,11,"GWh/mth","agri",0.0775006916236477 +18,0,2050,11,"GWh/mth","ind_man",0.693205940702393 +18,0,2050,11,"GWh/mth","res_com",1.93648903796579 +18,0,2050,12,"GWh/mth","agri",0.0141718109908666 +18,0,2050,12,"GWh/mth","ind_man",0.710485076889924 +18,0,2050,12,"GWh/mth","res_com",1.9417763788382 +18,0,2060,1,"GWh/mth","agri",0.783137330946922 +18,0,2060,1,"GWh/mth","ind_man",0.823795112384797 +18,0,2060,1,"GWh/mth","res_com",2.5207582395753 +18,0,2060,2,"GWh/mth","agri",0.439374212664511 +18,0,2060,2,"GWh/mth","ind_man",0.800800284338836 +18,0,2060,2,"GWh/mth","res_com",2.52989646554654 +18,0,2060,3,"GWh/mth","agri",0.299908250083598 +18,0,2060,3,"GWh/mth","ind_man",0.782060253084948 +18,0,2060,3,"GWh/mth","res_com",2.52530278840469 +18,0,2060,4,"GWh/mth","agri",0.0209763249217729 +18,0,2060,4,"GWh/mth","ind_man",0.764650357982174 +18,0,2060,4,"GWh/mth","res_com",2.49127488838069 +18,0,2060,5,"GWh/mth","agri",0.0209763249217729 +18,0,2060,5,"GWh/mth","ind_man",0.741923620259312 +18,0,2060,5,"GWh/mth","res_com",2.51662138442656 +18,0,2060,6,"GWh/mth","agri",0.0230175922648104 +18,0,2060,6,"GWh/mth","ind_man",0.723007668928251 +18,0,2060,6,"GWh/mth","res_com",2.51329604711039 +18,0,2060,7,"GWh/mth","agri",0.123188068342159 +18,0,2060,7,"GWh/mth","ind_man",0.720786879675131 +18,0,2060,7,"GWh/mth","res_com",2.52316519423992 +18,0,2060,8,"GWh/mth","agri",0.283864229658253 +18,0,2060,8,"GWh/mth","ind_man",0.742687500078433 +18,0,2060,8,"GWh/mth","res_com",2.50296154343649 +18,0,2060,9,"GWh/mth","agri",0.293481852866924 +18,0,2060,9,"GWh/mth","ind_man",0.765009052056938 +18,0,2060,9,"GWh/mth","res_com",2.52202039540734 +18,0,2060,10,"GWh/mth","agri",0.294692347148452 +18,0,2060,10,"GWh/mth","ind_man",0.785335482907357 +18,0,2060,10,"GWh/mth","res_com",2.56290021465766 +18,0,2060,11,"GWh/mth","agri",0.125425435931823 +18,0,2060,11,"GWh/mth","ind_man",0.804010709907216 +18,0,2060,11,"GWh/mth","res_com",2.4420201661347 +18,0,2060,12,"GWh/mth","agri",0.0217712042629948 +18,0,2060,12,"GWh/mth","ind_man",0.824051811313017 +18,0,2060,12,"GWh/mth","res_com",2.43667615625385 +18,1,2020,1,"GWh/mth","agri",0.017584342029585 +18,1,2020,1,"GWh/mth","ind_man",0.239111126108945 +18,1,2020,1,"GWh/mth","res_com",1.15341795688975 +18,1,2020,2,"GWh/mth","agri",0.00894711874452013 +18,1,2020,2,"GWh/mth","ind_man",0.232436749014337 +18,1,2020,2,"GWh/mth","res_com",1.12599472045803 +18,1,2020,3,"GWh/mth","agri",0.00596474582968008 +18,1,2020,3,"GWh/mth","ind_man",0.226997350419871 +18,1,2020,3,"GWh/mth","res_com",1.11079805281609 +18,1,2020,4,"GWh/mth","agri",0 +18,1,2020,4,"GWh/mth","ind_man",0.221944031262135 +18,1,2020,4,"GWh/mth","res_com",1.08441533221112 +18,1,2020,5,"GWh/mth","agri",0 +18,1,2020,5,"GWh/mth","ind_man",0.215347468879088 +18,1,2020,5,"GWh/mth","res_com",1.06908267941374 +18,1,2020,6,"GWh/mth","agri",6.28922125357908e-05 +18,1,2020,6,"GWh/mth","ind_man",0.209857008501023 +18,1,2020,6,"GWh/mth","res_com",1.05529689117234 +18,1,2020,7,"GWh/mth","agri",0.000232110537308185 +18,1,2020,7,"GWh/mth","ind_man",0.209212412033793 +18,1,2020,7,"GWh/mth","res_com",1.05111374114208 +18,1,2020,8,"GWh/mth","agri",0.000300556761503851 +18,1,2020,8,"GWh/mth","ind_man",0.215569189257148 +18,1,2020,8,"GWh/mth","res_com",1.07825671303266 +18,1,2020,9,"GWh/mth","agri",0.000349319271004547 +18,1,2020,9,"GWh/mth","ind_man",0.222048144217961 +18,1,2020,9,"GWh/mth","res_com",1.09186131652064 +18,1,2020,10,"GWh/mth","agri",0.000347633904844229 +18,1,2020,10,"GWh/mth","ind_man",0.227948004143507 +18,1,2020,10,"GWh/mth","res_com",1.11043893021135 +18,1,2020,11,"GWh/mth","agri",0.00031592265387903 +18,1,2020,11,"GWh/mth","ind_man",0.233368592941794 +18,1,2020,11,"GWh/mth","res_com",1.12416763769902 +18,1,2020,12,"GWh/mth","agri",0.000302262451769739 +18,1,2020,12,"GWh/mth","ind_man",0.239185634404606 +18,1,2020,12,"GWh/mth","res_com",1.14722042269116 +18,1,2030,1,"GWh/mth","agri",0.0278201210308286 +18,1,2030,1,"GWh/mth","ind_man",0.478442289399676 +18,1,2030,1,"GWh/mth","res_com",1.97797225984085 +18,1,2030,2,"GWh/mth","agri",0.0143104669929124 +18,1,2030,2,"GWh/mth","ind_man",0.465087393249816 +18,1,2030,2,"GWh/mth","res_com",1.9303577176467 +18,1,2030,3,"GWh/mth","agri",0.0096456777473675 +18,1,2030,3,"GWh/mth","ind_man",0.454203590564247 +18,1,2030,3,"GWh/mth","res_com",1.90270725188641 +18,1,2030,4,"GWh/mth","agri",0.000316099256277725 +18,1,2030,4,"GWh/mth","ind_man",0.44409230203394 +18,1,2030,4,"GWh/mth","res_com",1.8578139917811 +18,1,2030,5,"GWh/mth","agri",0.000316099256277725 +18,1,2030,5,"GWh/mth","ind_man",0.430893106914617 +18,1,2030,5,"GWh/mth","res_com",1.82916475657771 +18,1,2030,6,"GWh/mth","agri",0.00031879529201719 +18,1,2030,6,"GWh/mth","ind_man",0.419907133673277 +18,1,2030,6,"GWh/mth","res_com",1.80368542307356 +18,1,2030,7,"GWh/mth","agri",0.000426117670331627 +18,1,2030,7,"GWh/mth","ind_man",0.418617347561945 +18,1,2030,7,"GWh/mth","res_com",1.79670519115757 +18,1,2030,8,"GWh/mth","agri",0.000541932032669923 +18,1,2030,8,"GWh/mth","ind_man",0.431336751704434 +18,1,2030,8,"GWh/mth","res_com",1.84364462759722 +18,1,2030,9,"GWh/mth","agri",0.000645375734601814 +18,1,2030,9,"GWh/mth","ind_man",0.444300623753436 +18,1,2030,9,"GWh/mth","res_com",1.8695667841967 +18,1,2030,10,"GWh/mth","agri",0.000634454700341266 +18,1,2030,10,"GWh/mth","ind_man",0.456105772831398 +18,1,2030,10,"GWh/mth","res_com",1.90289310812215 +18,1,2030,11,"GWh/mth","agri",0.000428195439105124 +18,1,2030,11,"GWh/mth","ind_man",0.466951938615272 +18,1,2030,11,"GWh/mth","res_com",1.92803676611582 +18,1,2030,12,"GWh/mth","agri",0.00034106057491537 +18,1,2030,12,"GWh/mth","ind_man",0.478591374555751 +18,1,2030,12,"GWh/mth","res_com",1.96821531402145 +18,1,2040,1,"GWh/mth","agri",0.0432941253506617 +18,1,2040,1,"GWh/mth","ind_man",0.618919865370988 +18,1,2040,1,"GWh/mth","res_com",2.82286097950948 +18,1,2040,2,"GWh/mth","agri",0.0223917480175119 +18,1,2040,2,"GWh/mth","ind_man",0.601643778557077 +18,1,2040,2,"GWh/mth","res_com",2.75582011969683 +18,1,2040,3,"GWh/mth","agri",0.0151743030173409 +18,1,2040,3,"GWh/mth","ind_man",0.587564333988477 +18,1,2040,3,"GWh/mth","res_com",2.71844141378575 +18,1,2040,4,"GWh/mth","agri",0.000739413016998889 +18,1,2040,4,"GWh/mth","ind_man",0.574484224904147 +18,1,2040,4,"GWh/mth","res_com",2.65400088274855 +18,1,2040,5,"GWh/mth","agri",0.000739413016998889 +18,1,2040,5,"GWh/mth","ind_man",0.557409555195272 +18,1,2040,5,"GWh/mth","res_com",2.61622619558615 +18,1,2040,6,"GWh/mth","agri",0.000747937195155685 +18,1,2040,6,"GWh/mth","ind_man",0.543197941318015 +18,1,2040,6,"GWh/mth","res_com",2.5822574203896 +18,1,2040,7,"GWh/mth","agri",0.00109308959246694 +18,1,2040,7,"GWh/mth","ind_man",0.54152945534997 +18,1,2040,7,"GWh/mth","res_com",2.57209771537711 +18,1,2040,8,"GWh/mth","agri",0.00142124612143933 +18,1,2040,8,"GWh/mth","ind_man",0.557983460511901 +18,1,2040,8,"GWh/mth","res_com",2.63840949003949 +18,1,2040,9,"GWh/mth","agri",0.00174569983342048 +18,1,2040,9,"GWh/mth","ind_man",0.574753712893484 +18,1,2040,9,"GWh/mth","res_com",2.67208160412444 +18,1,2040,10,"GWh/mth","agri",0.0017113189661581 +18,1,2040,10,"GWh/mth","ind_man",0.590025024480894 +18,1,2040,10,"GWh/mth","res_com",2.71778475374145 +18,1,2040,11,"GWh/mth","agri",0.00106334462529795 +18,1,2040,11,"GWh/mth","ind_man",0.604055781409112 +18,1,2040,11,"GWh/mth","res_com",2.75130356452987 +18,1,2040,12,"GWh/mth","agri",0.000783630233679028 +18,1,2040,12,"GWh/mth","ind_man",0.619112724085134 +18,1,2040,12,"GWh/mth","res_com",2.80769085511073 +18,1,2050,1,"GWh/mth","agri",0.0671322658995109 +18,1,2050,1,"GWh/mth","ind_man",0.978433576208265 +18,1,2050,1,"GWh/mth","res_com",4.41693689496515 +18,1,2050,2,"GWh/mth","agri",0.0347431315849883 +18,1,2050,2,"GWh/mth","ind_man",0.951122280594758 +18,1,2050,2,"GWh/mth","res_com",4.31185972381263 +18,1,2050,3,"GWh/mth","agri",0.02355938957362 +18,1,2050,3,"GWh/mth","ind_man",0.928864469735798 +18,1,2050,3,"GWh/mth","res_com",4.25296635434556 +18,1,2050,4,"GWh/mth","agri",0.00119190555088356 +18,1,2050,4,"GWh/mth","ind_man",0.90818648115499 +18,1,2050,4,"GWh/mth","res_com",4.15220861495923 +18,1,2050,5,"GWh/mth","agri",0.00119190555088356 +18,1,2050,5,"GWh/mth","ind_man",0.881193600362879 +18,1,2050,5,"GWh/mth","res_com",4.09249456533952 +18,1,2050,6,"GWh/mth","agri",0.00120664322616967 +18,1,2050,6,"GWh/mth","ind_man",0.858726846639792 +18,1,2050,6,"GWh/mth","res_com",4.03887589224277 +18,1,2050,7,"GWh/mth","agri",0.00179331288270002 +18,1,2050,7,"GWh/mth","ind_man",0.856089182567418 +18,1,2050,7,"GWh/mth","res_com",4.02301763229355 +18,1,2050,8,"GWh/mth","agri",0.00235176629537836 +18,1,2050,8,"GWh/mth","ind_man",0.882100871663691 +18,1,2050,8,"GWh/mth","res_com",4.12690821579004 +18,1,2050,9,"GWh/mth","agri",0.00286165816224269 +18,1,2050,9,"GWh/mth","ind_man",0.908612507385372 +18,1,2050,9,"GWh/mth","res_com",4.18024410421349 +18,1,2050,10,"GWh/mth","agri",0.00280261722121137 +18,1,2050,10,"GWh/mth","ind_man",0.932754508387237 +18,1,2050,10,"GWh/mth","res_com",4.25211896367994 +18,1,2050,11,"GWh/mth","agri",0.00175417769121486 +18,1,2050,11,"GWh/mth","ind_man",0.954935350280164 +18,1,2050,11,"GWh/mth","res_com",4.30502789307224 +18,1,2050,12,"GWh/mth","agri",0.00120097924758456 +18,1,2050,12,"GWh/mth","ind_man",0.978738461302351 +18,1,2050,12,"GWh/mth","res_com",4.39344346783172 +18,1,2060,1,"GWh/mth","agri",0.10349365745666 +18,1,2060,1,"GWh/mth","ind_man",1.54834387443249 +18,1,2060,1,"GWh/mth","res_com",6.91332736110169 +18,1,2060,2,"GWh/mth","agri",0.0535978564893343 +18,1,2060,2,"GWh/mth","ind_man",1.50512451003796 +18,1,2060,2,"GWh/mth","res_com",6.74841261483172 +18,1,2060,3,"GWh/mth","agri",0.0363691846745725 +18,1,2060,3,"GWh/mth","ind_man",1.4699021444735 +18,1,2060,3,"GWh/mth","res_com",6.65520741750151 +18,1,2060,4,"GWh/mth","agri",0.00191184104504883 +18,1,2060,4,"GWh/mth","ind_man",1.43717980364915 +18,1,2060,4,"GWh/mth","res_com",6.4976856991381 +18,1,2060,5,"GWh/mth","agri",0.00191184104504883 +18,1,2060,5,"GWh/mth","ind_man",1.39446432183819 +18,1,2060,5,"GWh/mth","res_com",6.40268878605476 +18,1,2060,6,"GWh/mth","agri",0.00193644830172661 +18,1,2060,6,"GWh/mth","ind_man",1.35891131001256 +18,1,2060,6,"GWh/mth","res_com",6.317586039197 +18,1,2060,7,"GWh/mth","agri",0.00291600109116915 +18,1,2060,7,"GWh/mth","ind_man",1.35473728010539 +18,1,2060,7,"GWh/mth","res_com",6.29286240855807 +18,1,2060,8,"GWh/mth","agri",0.00384844168675757 +18,1,2060,8,"GWh/mth","ind_man",1.39590005339444 +18,1,2060,8,"GWh/mth","res_com",6.45580443820757 +18,1,2060,9,"GWh/mth","agri",0.00469521552412146 +18,1,2060,9,"GWh/mth","ind_man",1.4378539782893 +18,1,2060,9,"GWh/mth","res_com",6.54092212020371 +18,1,2060,10,"GWh/mth","agri",0.00459538498190819 +18,1,2060,10,"GWh/mth","ind_man",1.47605802225991 +18,1,2060,10,"GWh/mth","res_com",6.65433532286429 +18,1,2060,11,"GWh/mth","agri",0.00278770213986266 +18,1,2060,11,"GWh/mth","ind_man",1.51115858658004 +18,1,2060,11,"GWh/mth","res_com",6.73831285378603 +18,1,2060,12,"GWh/mth","agri",0.00192031610189989 +18,1,2060,12,"GWh/mth","ind_man",1.54882634659955 +18,1,2060,12,"GWh/mth","res_com",6.87716945209645 +19,0,2020,1,"GWh/mth","agri",0.0307218486700962 +19,0,2020,1,"GWh/mth","ind_man",0 +19,0,2020,1,"GWh/mth","res_com",0.0490729350500539 +19,0,2020,2,"GWh/mth","agri",0.0166209137129701 +19,0,2020,2,"GWh/mth","ind_man",0 +19,0,2020,2,"GWh/mth","res_com",0.0552458472692573 +19,0,2020,3,"GWh/mth","agri",0.0110806091419801 +19,0,2020,3,"GWh/mth","ind_man",0 +19,0,2020,3,"GWh/mth","res_com",0.0583933899807735 +19,0,2020,4,"GWh/mth","agri",0 +19,0,2020,4,"GWh/mth","ind_man",0 +19,0,2020,4,"GWh/mth","res_com",0.0599831831497026 +19,0,2020,5,"GWh/mth","agri",0 +19,0,2020,5,"GWh/mth","ind_man",0 +19,0,2020,5,"GWh/mth","res_com",0.0661145734891341 +19,0,2020,6,"GWh/mth","agri",0.00022028868959153 +19,0,2020,6,"GWh/mth","ind_man",0 +19,0,2020,6,"GWh/mth","res_com",0.0693287792373336 +19,0,2020,7,"GWh/mth","agri",0.00381284388061562 +19,0,2020,7,"GWh/mth","ind_man",0 +19,0,2020,7,"GWh/mth","res_com",0.0709829942742617 +19,0,2020,8,"GWh/mth","agri",0.00859548414674234 +19,0,2020,8,"GWh/mth","ind_man",0 +19,0,2020,8,"GWh/mth","res_com",0.0643522457747396 +19,0,2020,9,"GWh/mth","agri",0.0124055356534959 +19,0,2020,9,"GWh/mth","ind_man",0 +19,0,2020,9,"GWh/mth","res_com",0.0618289232493007 +19,0,2020,10,"GWh/mth","agri",0.0128438277865378 +19,0,2020,10,"GWh/mth","ind_man",0 +19,0,2020,10,"GWh/mth","res_com",0.0617864046235473 +19,0,2020,11,"GWh/mth","agri",0.00540008372368906 +19,0,2020,11,"GWh/mth","ind_man",0 +19,0,2020,11,"GWh/mth","res_com",0.0472706008703933 +19,0,2020,12,"GWh/mth","agri",0.00204274246880695 +19,0,2020,12,"GWh/mth","ind_man",0 +19,0,2020,12,"GWh/mth","res_com",0.0422472702606195 +19,0,2030,1,"GWh/mth","agri",0.0488226664201785 +19,0,2030,1,"GWh/mth","ind_man",0.284787699011079 +19,0,2030,1,"GWh/mth","res_com",0.799882429307021 +19,0,2030,2,"GWh/mth","agri",0.0267671114582807 +19,0,2030,2,"GWh/mth","ind_man",0.27683833870302 +19,0,2030,2,"GWh/mth","res_com",0.789352769567238 +19,0,2030,3,"GWh/mth","agri",0.0181014100460938 +19,0,2030,3,"GWh/mth","ind_man",0.270359870574287 +19,0,2030,3,"GWh/mth","res_com",0.77782592482048 +19,0,2030,4,"GWh/mth","agri",0.00077000722171985 +19,0,2030,4,"GWh/mth","ind_man",0.264341233304165 +19,0,2030,4,"GWh/mth","res_com",0.765030164885558 +19,0,2030,5,"GWh/mth","agri",0.00077000722171985 +19,0,2030,5,"GWh/mth","ind_man",0.256484552383365 +19,0,2030,5,"GWh/mth","res_com",0.754670889340228 +19,0,2030,6,"GWh/mth","agri",0.000805330028577657 +19,0,2030,6,"GWh/mth","ind_man",0.249945268314802 +19,0,2030,6,"GWh/mth","res_com",0.743093891129639 +19,0,2030,7,"GWh/mth","agri",0.0061059954277888 +19,0,2030,7,"GWh/mth","ind_man",0.249177536809872 +19,0,2030,7,"GWh/mth","res_com",0.74373187559088 +19,0,2030,8,"GWh/mth","agri",0.0153048045937252 +19,0,2030,8,"GWh/mth","ind_man",0.256748627239768 +19,0,2030,8,"GWh/mth","res_com",0.752584930131323 +19,0,2030,9,"GWh/mth","agri",0.0225492837446268 +19,0,2030,9,"GWh/mth","ind_man",0.264465234598498 +19,0,2030,9,"GWh/mth","res_com",0.768231985240635 +19,0,2030,10,"GWh/mth","agri",0.0233259961071054 +19,0,2030,10,"GWh/mth","ind_man",0.271492124396668 +19,0,2030,10,"GWh/mth","res_com",0.786008000255688 +19,0,2030,11,"GWh/mth","agri",0.00824884163889997 +19,0,2030,11,"GWh/mth","ind_man",0.277948189558797 +19,0,2030,11,"GWh/mth","res_com",0.779696634972172 +19,0,2030,12,"GWh/mth","agri",0.000883666893174752 +19,0,2030,12,"GWh/mth","ind_man",0.284876440369224 +19,0,2030,12,"GWh/mth","res_com",0.789431600261892 +19,0,2040,1,"GWh/mth","agri",0.0755519796460474 +19,0,2040,1,"GWh/mth","ind_man",0.279044406265672 +19,0,2040,1,"GWh/mth","res_com",0.82128730632595 +19,0,2040,2,"GWh/mth","agri",0.0414272322016101 +19,0,2040,2,"GWh/mth","ind_man",0.271255360126892 +19,0,2040,2,"GWh/mth","res_com",0.816616070456636 +19,0,2040,3,"GWh/mth","agri",0.0280195046413358 +19,0,2040,3,"GWh/mth","ind_man",0.264907542792187 +19,0,2040,3,"GWh/mth","res_com",0.808251809726751 +19,0,2040,4,"GWh/mth","agri",0.00120404952078706 +19,0,2040,4,"GWh/mth","ind_man",0.25901028294072 +19,0,2040,4,"GWh/mth","res_com",0.797252076233425 +19,0,2040,5,"GWh/mth","agri",0.00120404952078706 +19,0,2040,5,"GWh/mth","ind_man",0.251312047130759 +19,0,2040,5,"GWh/mth","res_com",0.792708982322863 +19,0,2040,6,"GWh/mth","agri",0.00129721077000714 +19,0,2040,6,"GWh/mth","ind_man",0.244904640326844 +19,0,2040,6,"GWh/mth","res_com",0.784356024508685 +19,0,2040,7,"GWh/mth","agri",0.0140709095371599 +19,0,2040,7,"GWh/mth","ind_man",0.244152391607155 +19,0,2040,7,"GWh/mth","res_com",0.786465401747928 +19,0,2040,8,"GWh/mth","agri",0.03637306334334 +19,0,2040,8,"GWh/mth","ind_man",0.251570796408802 +19,0,2040,8,"GWh/mth","res_com",0.789095522256087 +19,0,2040,9,"GWh/mth","agri",0.0535415419724255 +19,0,2040,9,"GWh/mth","ind_man",0.259131783509999 +19,0,2040,9,"GWh/mth","res_com",0.802024723584441 +19,0,2040,10,"GWh/mth","agri",0.0556304508647776 +19,0,2040,10,"GWh/mth","ind_man",0.266016962534351 +19,0,2040,10,"GWh/mth","res_com",0.819256124479226 +19,0,2040,11,"GWh/mth","agri",0.0188968189806699 +19,0,2040,11,"GWh/mth","ind_man",0.272342828701445 +19,0,2040,11,"GWh/mth","res_com",0.800053537796874 +19,0,2040,12,"GWh/mth","agri",0.00133556558945498 +19,0,2040,12,"GWh/mth","ind_man",0.279131357983322 +19,0,2040,12,"GWh/mth","res_com",0.804987874641407 +19,0,2050,1,"GWh/mth","agri",0.117081057448085 +19,0,2050,1,"GWh/mth","ind_man",0.277076482980115 +19,0,2050,1,"GWh/mth","res_com",0.879055045495746 +19,0,2050,2,"GWh/mth","agri",0.0642032909236929 +19,0,2050,2,"GWh/mth","ind_man",0.269342368045562 +19,0,2050,2,"GWh/mth","res_com",0.882802457038441 +19,0,2050,3,"GWh/mth","agri",0.0434274393599793 +19,0,2050,3,"GWh/mth","ind_man",0.263039317842055 +19,0,2050,3,"GWh/mth","res_com",0.878794654237065 +19,0,2050,4,"GWh/mth","agri",0.001875736232552 +19,0,2050,4,"GWh/mth","ind_man",0.257183647625507 +19,0,2050,4,"GWh/mth","res_com",0.870067605278136 +19,0,2050,5,"GWh/mth","agri",0.001875736232552 +19,0,2050,5,"GWh/mth","ind_man",0.249539702592096 +19,0,2050,5,"GWh/mth","res_com",0.873885499161598 +19,0,2050,6,"GWh/mth","agri",0.00202263517100301 +19,0,2050,6,"GWh/mth","ind_man",0.243177483166127 +19,0,2050,6,"GWh/mth","res_com",0.869979255871738 +19,0,2050,7,"GWh/mth","agri",0.0224779766188757 +19,0,2050,7,"GWh/mth","ind_man",0.242430539579738 +19,0,2050,7,"GWh/mth","res_com",0.874308800522971 +19,0,2050,8,"GWh/mth","agri",0.0584382878425186 +19,0,2050,8,"GWh/mth","ind_man",0.249796627075526 +19,0,2050,8,"GWh/mth","res_com",0.867921346375586 +19,0,2050,9,"GWh/mth","agri",0.0854669499110407 +19,0,2050,9,"GWh/mth","ind_man",0.257304291328301 +19,0,2050,9,"GWh/mth","res_com",0.877291663243286 +19,0,2050,10,"GWh/mth","agri",0.0888149642724933 +19,0,2050,10,"GWh/mth","ind_man",0.26414091355014 +19,0,2050,10,"GWh/mth","res_com",0.894281585342255 +19,0,2050,11,"GWh/mth","agri",0.0301642691701838 +19,0,2050,11,"GWh/mth","ind_man",0.270422167393704 +19,0,2050,11,"GWh/mth","res_com",0.855604330273555 +19,0,2050,12,"GWh/mth","agri",0.00205947178912724 +19,0,2050,12,"GWh/mth","ind_man",0.277162821482428 +19,0,2050,12,"GWh/mth","res_com",0.853675736844878 +19,0,2060,1,"GWh/mth","agri",0.180334459378767 +19,0,2060,1,"GWh/mth","ind_man",0.309125018683481 +19,0,2060,1,"GWh/mth","res_com",1.06472250001542 +19,0,2060,2,"GWh/mth","agri",0.0988757056968326 +19,0,2060,2,"GWh/mth","ind_man",0.300496323826634 +19,0,2060,2,"GWh/mth","res_com",1.07857551377856 +19,0,2060,3,"GWh/mth","agri",0.0668702885565245 +19,0,2060,3,"GWh/mth","ind_man",0.293464220304294 +19,0,2060,3,"GWh/mth","res_com",1.07898645764114 +19,0,2060,4,"GWh/mth","agri",0.00285945427590836 +19,0,2060,4,"GWh/mth","ind_man",0.286931243757076 +19,0,2060,4,"GWh/mth","res_com",1.0716599605775 +19,0,2060,5,"GWh/mth","agri",0.00285945427590836 +19,0,2060,5,"GWh/mth","ind_man",0.278403148460594 +19,0,2060,5,"GWh/mth","res_com",1.08552734963206 +19,0,2060,6,"GWh/mth","agri",0.00309033715475983 +19,0,2060,6,"GWh/mth","ind_man",0.271305031804253 +19,0,2060,6,"GWh/mth","res_com",1.08615656304064 +19,0,2060,7,"GWh/mth","agri",0.0352140679234223 +19,0,2060,7,"GWh/mth","ind_man",0.270471691682369 +19,0,2060,7,"GWh/mth","res_com",1.09360662876229 +19,0,2060,8,"GWh/mth","agri",0.0916414815706499 +19,0,2060,8,"GWh/mth","ind_man",0.278689790563475 +19,0,2060,8,"GWh/mth","res_com",1.07607109218984 +19,0,2060,9,"GWh/mth","agri",0.133814317126573 +19,0,2060,9,"GWh/mth","ind_man",0.287065841924626 +19,0,2060,9,"GWh/mth","res_com",1.08266265712004 +19,0,2060,10,"GWh/mth","agri",0.139032340214023 +19,0,2060,10,"GWh/mth","ind_man",0.294693234005424 +19,0,2060,10,"GWh/mth","res_com",1.10169336370887 +19,0,2060,11,"GWh/mth","agri",0.0471810184899735 +19,0,2060,11,"GWh/mth","ind_man",0.301701020053751 +19,0,2060,11,"GWh/mth","res_com",1.03554841208481 +19,0,2060,12,"GWh/mth","agri",0.00315900950840741 +19,0,2060,12,"GWh/mth","ind_man",0.309221343679575 +19,0,2060,12,"GWh/mth","res_com",1.02553520826768 +19,1,2020,1,"GWh/mth","agri",0 +19,1,2020,1,"GWh/mth","ind_man",0 +19,1,2020,1,"GWh/mth","res_com",0 +19,1,2020,2,"GWh/mth","agri",0 +19,1,2020,2,"GWh/mth","ind_man",0 +19,1,2020,2,"GWh/mth","res_com",0 +19,1,2020,3,"GWh/mth","agri",0 +19,1,2020,3,"GWh/mth","ind_man",0 +19,1,2020,3,"GWh/mth","res_com",0 +19,1,2020,4,"GWh/mth","agri",0 +19,1,2020,4,"GWh/mth","ind_man",0 +19,1,2020,4,"GWh/mth","res_com",0 +19,1,2020,5,"GWh/mth","agri",0 +19,1,2020,5,"GWh/mth","ind_man",0 +19,1,2020,5,"GWh/mth","res_com",0 +19,1,2020,6,"GWh/mth","agri",0 +19,1,2020,6,"GWh/mth","ind_man",0 +19,1,2020,6,"GWh/mth","res_com",0 +19,1,2020,7,"GWh/mth","agri",0 +19,1,2020,7,"GWh/mth","ind_man",0 +19,1,2020,7,"GWh/mth","res_com",0 +19,1,2020,8,"GWh/mth","agri",0 +19,1,2020,8,"GWh/mth","ind_man",0 +19,1,2020,8,"GWh/mth","res_com",0 +19,1,2020,9,"GWh/mth","agri",0 +19,1,2020,9,"GWh/mth","ind_man",0 +19,1,2020,9,"GWh/mth","res_com",0 +19,1,2020,10,"GWh/mth","agri",0 +19,1,2020,10,"GWh/mth","ind_man",0 +19,1,2020,10,"GWh/mth","res_com",0 +19,1,2020,11,"GWh/mth","agri",0 +19,1,2020,11,"GWh/mth","ind_man",0 +19,1,2020,11,"GWh/mth","res_com",0 +19,1,2020,12,"GWh/mth","agri",0 +19,1,2020,12,"GWh/mth","ind_man",0 +19,1,2020,12,"GWh/mth","res_com",0 +19,1,2030,1,"GWh/mth","agri",0 +19,1,2030,1,"GWh/mth","ind_man",0 +19,1,2030,1,"GWh/mth","res_com",0 +19,1,2030,2,"GWh/mth","agri",0 +19,1,2030,2,"GWh/mth","ind_man",0 +19,1,2030,2,"GWh/mth","res_com",0 +19,1,2030,3,"GWh/mth","agri",0 +19,1,2030,3,"GWh/mth","ind_man",0 +19,1,2030,3,"GWh/mth","res_com",0 +19,1,2030,4,"GWh/mth","agri",0 +19,1,2030,4,"GWh/mth","ind_man",0 +19,1,2030,4,"GWh/mth","res_com",0 +19,1,2030,5,"GWh/mth","agri",0 +19,1,2030,5,"GWh/mth","ind_man",0 +19,1,2030,5,"GWh/mth","res_com",0 +19,1,2030,6,"GWh/mth","agri",0 +19,1,2030,6,"GWh/mth","ind_man",0 +19,1,2030,6,"GWh/mth","res_com",0 +19,1,2030,7,"GWh/mth","agri",0 +19,1,2030,7,"GWh/mth","ind_man",0 +19,1,2030,7,"GWh/mth","res_com",0 +19,1,2030,8,"GWh/mth","agri",0 +19,1,2030,8,"GWh/mth","ind_man",0 +19,1,2030,8,"GWh/mth","res_com",0 +19,1,2030,9,"GWh/mth","agri",0 +19,1,2030,9,"GWh/mth","ind_man",0 +19,1,2030,9,"GWh/mth","res_com",0 +19,1,2030,10,"GWh/mth","agri",0 +19,1,2030,10,"GWh/mth","ind_man",0 +19,1,2030,10,"GWh/mth","res_com",0 +19,1,2030,11,"GWh/mth","agri",0 +19,1,2030,11,"GWh/mth","ind_man",0 +19,1,2030,11,"GWh/mth","res_com",0 +19,1,2030,12,"GWh/mth","agri",0 +19,1,2030,12,"GWh/mth","ind_man",0 +19,1,2030,12,"GWh/mth","res_com",0 +19,1,2040,1,"GWh/mth","agri",0 +19,1,2040,1,"GWh/mth","ind_man",0 +19,1,2040,1,"GWh/mth","res_com",0 +19,1,2040,2,"GWh/mth","agri",0 +19,1,2040,2,"GWh/mth","ind_man",0 +19,1,2040,2,"GWh/mth","res_com",0 +19,1,2040,3,"GWh/mth","agri",0 +19,1,2040,3,"GWh/mth","ind_man",0 +19,1,2040,3,"GWh/mth","res_com",0 +19,1,2040,4,"GWh/mth","agri",0 +19,1,2040,4,"GWh/mth","ind_man",0 +19,1,2040,4,"GWh/mth","res_com",0 +19,1,2040,5,"GWh/mth","agri",0 +19,1,2040,5,"GWh/mth","ind_man",0 +19,1,2040,5,"GWh/mth","res_com",0 +19,1,2040,6,"GWh/mth","agri",0 +19,1,2040,6,"GWh/mth","ind_man",0 +19,1,2040,6,"GWh/mth","res_com",0 +19,1,2040,7,"GWh/mth","agri",0 +19,1,2040,7,"GWh/mth","ind_man",0 +19,1,2040,7,"GWh/mth","res_com",0 +19,1,2040,8,"GWh/mth","agri",0 +19,1,2040,8,"GWh/mth","ind_man",0 +19,1,2040,8,"GWh/mth","res_com",0 +19,1,2040,9,"GWh/mth","agri",0 +19,1,2040,9,"GWh/mth","ind_man",0 +19,1,2040,9,"GWh/mth","res_com",0 +19,1,2040,10,"GWh/mth","agri",0 +19,1,2040,10,"GWh/mth","ind_man",0 +19,1,2040,10,"GWh/mth","res_com",0 +19,1,2040,11,"GWh/mth","agri",0 +19,1,2040,11,"GWh/mth","ind_man",0 +19,1,2040,11,"GWh/mth","res_com",0 +19,1,2040,12,"GWh/mth","agri",0 +19,1,2040,12,"GWh/mth","ind_man",0 +19,1,2040,12,"GWh/mth","res_com",0 +19,1,2050,1,"GWh/mth","agri",0 +19,1,2050,1,"GWh/mth","ind_man",0 +19,1,2050,1,"GWh/mth","res_com",0 +19,1,2050,2,"GWh/mth","agri",0 +19,1,2050,2,"GWh/mth","ind_man",0 +19,1,2050,2,"GWh/mth","res_com",0 +19,1,2050,3,"GWh/mth","agri",0 +19,1,2050,3,"GWh/mth","ind_man",0 +19,1,2050,3,"GWh/mth","res_com",0 +19,1,2050,4,"GWh/mth","agri",0 +19,1,2050,4,"GWh/mth","ind_man",0 +19,1,2050,4,"GWh/mth","res_com",0 +19,1,2050,5,"GWh/mth","agri",0 +19,1,2050,5,"GWh/mth","ind_man",0 +19,1,2050,5,"GWh/mth","res_com",0 +19,1,2050,6,"GWh/mth","agri",0 +19,1,2050,6,"GWh/mth","ind_man",0 +19,1,2050,6,"GWh/mth","res_com",0 +19,1,2050,7,"GWh/mth","agri",0 +19,1,2050,7,"GWh/mth","ind_man",0 +19,1,2050,7,"GWh/mth","res_com",0 +19,1,2050,8,"GWh/mth","agri",0 +19,1,2050,8,"GWh/mth","ind_man",0 +19,1,2050,8,"GWh/mth","res_com",0 +19,1,2050,9,"GWh/mth","agri",0 +19,1,2050,9,"GWh/mth","ind_man",0 +19,1,2050,9,"GWh/mth","res_com",0 +19,1,2050,10,"GWh/mth","agri",0 +19,1,2050,10,"GWh/mth","ind_man",0 +19,1,2050,10,"GWh/mth","res_com",0 +19,1,2050,11,"GWh/mth","agri",0 +19,1,2050,11,"GWh/mth","ind_man",0 +19,1,2050,11,"GWh/mth","res_com",0 +19,1,2050,12,"GWh/mth","agri",0 +19,1,2050,12,"GWh/mth","ind_man",0 +19,1,2050,12,"GWh/mth","res_com",0 +19,1,2060,1,"GWh/mth","agri",0 +19,1,2060,1,"GWh/mth","ind_man",0 +19,1,2060,1,"GWh/mth","res_com",0 +19,1,2060,2,"GWh/mth","agri",0 +19,1,2060,2,"GWh/mth","ind_man",0 +19,1,2060,2,"GWh/mth","res_com",0 +19,1,2060,3,"GWh/mth","agri",0 +19,1,2060,3,"GWh/mth","ind_man",0 +19,1,2060,3,"GWh/mth","res_com",0 +19,1,2060,4,"GWh/mth","agri",0 +19,1,2060,4,"GWh/mth","ind_man",0 +19,1,2060,4,"GWh/mth","res_com",0 +19,1,2060,5,"GWh/mth","agri",0 +19,1,2060,5,"GWh/mth","ind_man",0 +19,1,2060,5,"GWh/mth","res_com",0 +19,1,2060,6,"GWh/mth","agri",0 +19,1,2060,6,"GWh/mth","ind_man",0 +19,1,2060,6,"GWh/mth","res_com",0 +19,1,2060,7,"GWh/mth","agri",0 +19,1,2060,7,"GWh/mth","ind_man",0 +19,1,2060,7,"GWh/mth","res_com",0 +19,1,2060,8,"GWh/mth","agri",0 +19,1,2060,8,"GWh/mth","ind_man",0 +19,1,2060,8,"GWh/mth","res_com",0 +19,1,2060,9,"GWh/mth","agri",0 +19,1,2060,9,"GWh/mth","ind_man",0 +19,1,2060,9,"GWh/mth","res_com",0 +19,1,2060,10,"GWh/mth","agri",0 +19,1,2060,10,"GWh/mth","ind_man",0 +19,1,2060,10,"GWh/mth","res_com",0 +19,1,2060,11,"GWh/mth","agri",0 +19,1,2060,11,"GWh/mth","ind_man",0 +19,1,2060,11,"GWh/mth","res_com",0 +19,1,2060,12,"GWh/mth","agri",0 +19,1,2060,12,"GWh/mth","ind_man",0 +19,1,2060,12,"GWh/mth","res_com",0 +20,0,2020,1,"GWh/mth","agri",0.411810587445487 +20,0,2020,1,"GWh/mth","ind_man",2.69811514175101 +20,0,2020,1,"GWh/mth","res_com",0.876899629476867 +20,0,2020,2,"GWh/mth","agri",0.501050518458148 +20,0,2020,2,"GWh/mth","ind_man",2.693608179998 +20,0,2020,2,"GWh/mth","res_com",0.889104290927497 +20,0,2020,3,"GWh/mth","agri",0.334168151459964 +20,0,2020,3,"GWh/mth","ind_man",2.68993515387478 +20,0,2020,3,"GWh/mth","res_com",0.896283571510454 +20,0,2020,4,"GWh/mth","agri",0.0179316168283445 +20,0,2020,4,"GWh/mth","ind_man",2.68652283301744 +20,0,2020,4,"GWh/mth","res_com",0.883231260984457 +20,0,2020,5,"GWh/mth","agri",0.0046436738558238 +20,0,2020,5,"GWh/mth","ind_man",2.68206841668159 +20,0,2020,5,"GWh/mth","res_com",0.908859877115721 +20,0,2020,6,"GWh/mth","agri",4.37104206672293e-05 +20,0,2020,6,"GWh/mth","ind_man",2.67836091041102 +20,0,2020,6,"GWh/mth","res_com",0.916969855448307 +20,0,2020,7,"GWh/mth","agri",1.6972800137245e-06 +20,0,2020,7,"GWh/mth","ind_man",2.67792563808782 +20,0,2020,7,"GWh/mth","res_com",0.921506943638163 +20,0,2020,8,"GWh/mth","agri",0.000140243316678925 +20,0,2020,8,"GWh/mth","ind_man",2.6822181363108 +20,0,2020,8,"GWh/mth","res_com",0.902894854908702 +20,0,2020,9,"GWh/mth","agri",0.000767470411798989 +20,0,2020,9,"GWh/mth","ind_man",2.68659313667323 +20,0,2020,9,"GWh/mth","res_com",0.901427412493269 +20,0,2020,10,"GWh/mth","agri",0.000998187857626444 +20,0,2020,10,"GWh/mth","ind_man",2.69057709542409 +20,0,2020,10,"GWh/mth","res_com",0.910372100023642 +20,0,2020,11,"GWh/mth","agri",0.000851310928733387 +20,0,2020,11,"GWh/mth","ind_man",2.69423741998269 +20,0,2020,11,"GWh/mth","res_com",0.842395687814926 +20,0,2020,12,"GWh/mth","agri",0.00061609001529719 +20,0,2020,12,"GWh/mth","ind_man",2.69816545446695 +20,0,2020,12,"GWh/mth","res_com",0.832526291931483 +20,0,2030,1,"GWh/mth","agri",0.641168369295787 +20,0,2030,1,"GWh/mth","ind_man",6.70440421091529 +20,0,2030,1,"GWh/mth","res_com",8.34575494391246 +20,0,2030,2,"GWh/mth","agri",0.781792785455249 +20,0,2030,2,"GWh/mth","ind_man",6.60475167889299 +20,0,2030,2,"GWh/mth","res_com",8.16933297818808 +20,0,2030,3,"GWh/mth","agri",0.521490049391943 +20,0,2030,3,"GWh/mth","ind_man",6.52353813118154 +20,0,2030,3,"GWh/mth","res_com",8.02103300940274 +20,0,2030,4,"GWh/mth","agri",0.0411893462017719 +20,0,2030,4,"GWh/mth","ind_man",6.44808898558382 +20,0,2030,4,"GWh/mth","res_com",7.85314469215741 +20,0,2030,5,"GWh/mth","agri",0.0106617299426188 +20,0,2030,5,"GWh/mth","ind_man",6.34959827479602 +20,0,2030,5,"GWh/mth","res_com",7.69939374570008 +20,0,2030,6,"GWh/mth","agri",0.00012726604583516 +20,0,2030,6,"GWh/mth","ind_man",6.26762234342645 +20,0,2030,6,"GWh/mth","res_com",7.55097661865889 +20,0,2030,7,"GWh/mth","agri",3.09442479972283e-05 +20,0,2030,7,"GWh/mth","ind_man",6.25799812394026 +20,0,2030,7,"GWh/mth","res_com",7.53918045077375 +20,0,2030,8,"GWh/mth","agri",0.000455543620770375 +20,0,2030,8,"GWh/mth","ind_man",6.35290869564301 +20,0,2030,8,"GWh/mth","res_com",7.69632028971991 +20,0,2030,9,"GWh/mth","agri",0.00265326338650555 +20,0,2030,9,"GWh/mth","ind_man",6.44964345568902 +20,0,2030,9,"GWh/mth","res_com",7.88412739499953 +20,0,2030,10,"GWh/mth","agri",0.00361291080851829 +20,0,2030,10,"GWh/mth","ind_man",6.53773197268823 +20,0,2030,10,"GWh/mth","res_com",8.07077610292493 +20,0,2030,11,"GWh/mth","agri",0.00171222833523386 +20,0,2030,11,"GWh/mth","ind_man",6.61866467863879 +20,0,2030,11,"GWh/mth","res_com",8.1244860876826 +20,0,2030,12,"GWh/mth","agri",0.000976513814378347 +20,0,2030,12,"GWh/mth","ind_man",6.70551666533823 +20,0,2030,12,"GWh/mth","res_com",8.27945951374832 +20,0,2040,1,"GWh/mth","agri",0.992006483738305 +20,0,2040,1,"GWh/mth","ind_man",9.95690554414025 +20,0,2040,1,"GWh/mth","res_com",14.1563853949468 +20,0,2040,2,"GWh/mth","agri",1.20958308492773 +20,0,2040,2,"GWh/mth","ind_man",9.78681502793058 +20,0,2040,2,"GWh/mth","res_com",13.8487068613564 +20,0,2040,3,"GWh/mth","agri",0.806927332370467 +20,0,2040,3,"GWh/mth","ind_man",9.64819683155232 +20,0,2040,3,"GWh/mth","res_com",13.5909626553368 +20,0,2040,4,"GWh/mth","agri",0.0924385777507896 +20,0,2040,4,"GWh/mth","ind_man",9.5194175234719 +20,0,2040,4,"GWh/mth","res_com",13.3049191162425 +20,0,2040,5,"GWh/mth","agri",0.0237690933142526 +20,0,2040,5,"GWh/mth","ind_man",9.35131004542002 +20,0,2040,5,"GWh/mth","res_com",13.032722323791 +20,0,2040,6,"GWh/mth","agri",0.000232050712352073 +20,0,2040,6,"GWh/mth","ind_man",9.21139058526722 +20,0,2040,6,"GWh/mth","res_com",12.7745312616288 +20,0,2040,7,"GWh/mth","agri",3.16689268421782e-05 +20,0,2040,7,"GWh/mth","ind_man",9.19496362222575 +20,0,2040,7,"GWh/mth","res_com",12.7529272917439 +20,0,2040,8,"GWh/mth","agri",0.00119898310171843 +20,0,2040,8,"GWh/mth","ind_man",9.35696039046703 +20,0,2040,8,"GWh/mth","res_com",13.0291202484617 +20,0,2040,9,"GWh/mth","agri",0.00798921717537058 +20,0,2040,9,"GWh/mth","ind_man",9.52207074880658 +20,0,2040,9,"GWh/mth","res_com",13.353397626858 +20,0,2040,10,"GWh/mth","agri",0.0112522701247475 +20,0,2040,10,"GWh/mth","ind_man",9.67242338937156 +20,0,2040,10,"GWh/mth","res_com",13.6728706748972 +20,0,2040,11,"GWh/mth","agri",0.00369476934573393 +20,0,2040,11,"GWh/mth","ind_man",9.81056223495848 +20,0,2040,11,"GWh/mth","res_com",13.7841657379114 +20,0,2040,12,"GWh/mth","agri",0.00151135434134298 +20,0,2040,12,"GWh/mth","ind_man",9.95880432125326 +20,0,2040,12,"GWh/mth","res_com",14.0541994634358 +20,0,2050,1,"GWh/mth","agri",1.53712953715955 +20,0,2050,1,"GWh/mth","ind_man",13.6403886677224 +20,0,2050,1,"GWh/mth","res_com",20.7974188511541 +20,0,2050,2,"GWh/mth","agri",1.87427385559275 +20,0,2050,2,"GWh/mth","ind_man",13.3929386703636 +20,0,2050,2,"GWh/mth","res_com",20.3524372686495 +20,0,2050,3,"GWh/mth","agri",1.25039878029078 +20,0,2050,3,"GWh/mth","ind_man",13.191275032131 +20,0,2050,3,"GWh/mth","res_com",19.9789508177133 +20,0,2050,4,"GWh/mth","agri",0.161231219096061 +20,0,2050,4,"GWh/mth","ind_man",13.0039251424694 +20,0,2050,4,"GWh/mth","res_com",19.5597750415851 +20,0,2050,5,"GWh/mth","agri",0.0431333074546712 +20,0,2050,5,"GWh/mth","ind_man",12.7593600960051 +20,0,2050,5,"GWh/mth","res_com",19.1694034366988 +20,0,2050,6,"GWh/mth","agri",0.000390451782988154 +20,0,2050,6,"GWh/mth","ind_man",12.5558033615275 +20,0,2050,6,"GWh/mth","res_com",18.7954676898948 +20,0,2050,7,"GWh/mth","agri",2.8814486039732e-05 +20,0,2050,7,"GWh/mth","ind_man",12.5319051921773 +20,0,2050,7,"GWh/mth","res_com",18.7650606070205 +20,0,2050,8,"GWh/mth","agri",0.00242492557426518 +20,0,2050,8,"GWh/mth","ind_man",12.7675802948623 +20,0,2050,8,"GWh/mth","res_com",19.1627661602707 +20,0,2050,9,"GWh/mth","agri",0.0176475256652043 +20,0,2050,9,"GWh/mth","ind_man",13.007785090788 +20,0,2050,9,"GWh/mth","res_com",19.6343988563263 +20,0,2050,10,"GWh/mth","agri",0.0255866573509994 +20,0,2050,10,"GWh/mth","ind_man",13.2265201580909 +20,0,2050,10,"GWh/mth","res_com",20.1013443544971 +20,0,2050,11,"GWh/mth","agri",0.00720959059793895 +20,0,2050,11,"GWh/mth","ind_man",13.4274864302698 +20,0,2050,11,"GWh/mth","res_com",20.2479911096601 +20,0,2050,12,"GWh/mth","agri",0.0022702748691641 +20,0,2050,12,"GWh/mth","ind_man",13.6431510345026 +20,0,2050,12,"GWh/mth","res_com",20.6387225814679 +20,0,2060,1,"GWh/mth","agri",2.36796416669673 +20,0,2060,1,"GWh/mth","ind_man",17.8637226340294 +20,0,2060,1,"GWh/mth","res_com",28.6210832491199 +20,0,2060,2,"GWh/mth","agri",2.88733852374026 +20,0,2060,2,"GWh/mth","ind_man",17.5295963512707 +20,0,2060,2,"GWh/mth","res_com",28.030979742534 +20,0,2060,3,"GWh/mth","agri",1.92629192057971 +20,0,2060,3,"GWh/mth","ind_man",17.2572943810569 +20,0,2060,3,"GWh/mth","res_com",27.5333639813299 +20,0,2060,4,"GWh/mth","agri",0.274410697928304 +20,0,2060,4,"GWh/mth","ind_man",17.0043199503596 +20,0,2060,4,"GWh/mth","res_com",26.959845194003 +20,0,2060,5,"GWh/mth","agri",0.0754098908691633 +20,0,2060,5,"GWh/mth","ind_man",16.6740891532693 +20,0,2060,5,"GWh/mth","res_com",26.452756743262 +20,0,2060,6,"GWh/mth","agri",0.00067625150924177 +20,0,2060,6,"GWh/mth","ind_man",16.3992309768803 +20,0,2060,6,"GWh/mth","res_com",25.9551786510064 +20,0,2060,7,"GWh/mth","agri",5.55383353284808e-05 +20,0,2060,7,"GWh/mth","ind_man",16.3669618050278 +20,0,2060,7,"GWh/mth","res_com",25.9175492852412 +20,0,2060,8,"GWh/mth","agri",0.00464726517511994 +20,0,2060,8,"GWh/mth","ind_man",16.6851887067832 +20,0,2060,8,"GWh/mth","res_com",26.4393629526488 +20,0,2060,9,"GWh/mth","agri",0.0369223898833745 +20,0,2060,9,"GWh/mth","ind_man",17.0095319535809 +20,0,2060,9,"GWh/mth","res_com",27.0733159011955 +20,0,2060,10,"GWh/mth","agri",0.0549393102161947 +20,0,2060,10,"GWh/mth","ind_man",17.3048850985676 +20,0,2060,10,"GWh/mth","res_com",27.7083250400343 +20,0,2060,11,"GWh/mth","agri",0.0140930218985574 +20,0,2060,11,"GWh/mth","ind_man",17.5762454307547 +20,0,2060,11,"GWh/mth","res_com",27.856760715744 +20,0,2060,12,"GWh/mth","agri",0.00349738263760101 +20,0,2060,12,"GWh/mth","ind_man",17.8674525970673 +20,0,2060,12,"GWh/mth","res_com",28.3755450525848 +20,1,2020,1,"GWh/mth","agri",0.0121205301239103 +20,1,2020,1,"GWh/mth","ind_man",2.87008424481812 +20,1,2020,1,"GWh/mth","res_com",6.12160756644181 +20,1,2020,2,"GWh/mth","agri",0.010728216107707 +20,1,2020,2,"GWh/mth","ind_man",2.82537390955872 +20,1,2020,2,"GWh/mth","res_com",5.96082820884082 +20,1,2020,3,"GWh/mth","agri",0.00715214410573334 +20,1,2020,3,"GWh/mth","ind_man",2.78893645160259 +20,1,2020,3,"GWh/mth","res_com",5.84618242346339 +20,1,2020,4,"GWh/mth","agri",4.56868359051268e-08 +20,1,2020,4,"GWh/mth","ind_man",2.75508526361717 +20,1,2020,4,"GWh/mth","res_com",5.7119234398194 +20,1,2020,5,"GWh/mth","agri",6.11162901459718e-06 +20,1,2020,5,"GWh/mth","ind_man",2.71089619375717 +20,1,2020,5,"GWh/mth","res_com",5.57977434275927 +20,1,2020,6,"GWh/mth","agri",8.45259162019464e-08 +20,1,2020,6,"GWh/mth","ind_man",2.67411668298753 +20,1,2020,6,"GWh/mth","res_com",5.46755949843001 +20,1,2020,7,"GWh/mth","agri",4.5643710693113e-10 +20,1,2020,7,"GWh/mth","ind_man",2.66979865843658 +20,1,2020,7,"GWh/mth","res_com",5.44845219190394 +20,1,2020,8,"GWh/mth","agri",1.42742702591751e-08 +20,1,2020,8,"GWh/mth","ind_man",2.71238145482294 +20,1,2020,8,"GWh/mth","res_com",5.60388460187634 +20,1,2020,9,"GWh/mth","agri",7.03406001305657e-08 +20,1,2020,9,"GWh/mth","ind_man",2.7557826957661 +20,1,2020,9,"GWh/mth","res_com",5.7302371638983 +20,1,2020,10,"GWh/mth","agri",9.1034224071292e-08 +20,1,2020,10,"GWh/mth","ind_man",2.79530469332716 +20,1,2020,10,"GWh/mth","res_com",5.85901970185098 +20,1,2020,11,"GWh/mth","agri",6.231977214285e-05 +20,1,2020,11,"GWh/mth","ind_man",2.83161614816997 +20,1,2020,11,"GWh/mth","res_com",5.97094942579245 +20,1,2020,12,"GWh/mth","agri",5.71101433446047e-05 +20,1,2020,12,"GWh/mth","ind_man",2.87058336118979 +20,1,2020,12,"GWh/mth","res_com",6.1091190692964 +20,1,2030,1,"GWh/mth","agri",0.0219354926354603 +20,1,2030,1,"GWh/mth","ind_man",3.92701616801676 +20,1,2030,1,"GWh/mth","res_com",8.63551327552507 +20,1,2030,2,"GWh/mth","agri",0.0187152947651692 +20,1,2030,2,"GWh/mth","ind_man",3.86114494980423 +20,1,2030,2,"GWh/mth","res_com",8.41109652372798 +20,1,2030,3,"GWh/mth","agri",0.0124768634271745 +20,1,2030,3,"GWh/mth","ind_man",3.80746206574147 +20,1,2030,3,"GWh/mth","res_com",8.25402470218195 +20,1,2030,4,"GWh/mth","agri",3.40733122020854e-07 +20,1,2030,4,"GWh/mth","ind_man",3.75758950322089 +20,1,2030,4,"GWh/mth","res_com",8.06396319146057 +20,1,2030,5,"GWh/mth","agri",3.29001886850341e-05 +20,1,2030,5,"GWh/mth","ind_man",3.69248625927363 +20,1,2030,5,"GWh/mth","res_com",7.88461717373575 +20,1,2030,6,"GWh/mth","agri",4.41900240394568e-07 +20,1,2030,6,"GWh/mth","ind_man",3.63829943276919 +20,1,2030,6,"GWh/mth","res_com",7.73163180348043 +20,1,2030,7,"GWh/mth","agri",2.54309944597501e-09 +20,1,2030,7,"GWh/mth","ind_man",3.63193773729559 +20,1,2030,7,"GWh/mth","res_com",7.70436986965136 +20,1,2030,8,"GWh/mth","agri",7.73911609148171e-08 +20,1,2030,8,"GWh/mth","ind_man",3.69467447716997 +20,1,2030,8,"GWh/mth","res_com",7.92166780802624 +20,1,2030,9,"GWh/mth","agri",3.80728971243271e-07 +20,1,2030,9,"GWh/mth","ind_man",3.75861702191436 +20,1,2030,9,"GWh/mth","res_com",8.0927139526988 +20,1,2030,10,"GWh/mth","agri",4.94155499786683e-07 +20,1,2030,10,"GWh/mth","ind_man",3.81684432239052 +20,1,2030,10,"GWh/mth","res_com",8.27038970470972 +20,1,2030,11,"GWh/mth","agri",0.000115759621854774 +20,1,2030,11,"GWh/mth","ind_man",3.87034156752832 +20,1,2030,11,"GWh/mth","res_com",8.42223452451912 +20,1,2030,12,"GWh/mth","agri",0.000106024225399602 +20,1,2030,12,"GWh/mth","ind_man",3.92775151037644 +20,1,2030,12,"GWh/mth","res_com",8.6147504346149 +20,1,2040,1,"GWh/mth","agri",0.0339389848746742 +20,1,2040,1,"GWh/mth","ind_man",5.20637956368104 +20,1,2040,1,"GWh/mth","res_com",12.4848522169419 +20,1,2040,2,"GWh/mth","agri",0.0289566373783344 +20,1,2040,2,"GWh/mth","ind_man",5.1149721159995 +20,1,2040,2,"GWh/mth","res_com",12.1620873413249 +20,1,2040,3,"GWh/mth","agri",0.0193044263418215 +20,1,2040,3,"GWh/mth","ind_man",5.04047804181175 +20,1,2040,3,"GWh/mth","res_com",11.9389944465586 +20,1,2040,4,"GWh/mth","agri",1.62834381206353e-06 +20,1,2040,4,"GWh/mth","ind_man",4.9712714327183 +20,1,2040,4,"GWh/mth","res_com",11.663444617868 +20,1,2040,5,"GWh/mth","agri",8.16762856448364e-05 +20,1,2040,5,"GWh/mth","ind_man",4.88092967911952 +20,1,2040,5,"GWh/mth","res_com",11.4101288506019 +20,1,2040,6,"GWh/mth","agri",1.04699358817479e-06 +20,1,2040,6,"GWh/mth","ind_man",4.80573629962632 +20,1,2040,6,"GWh/mth","res_com",11.1935456902125 +20,1,2040,7,"GWh/mth","agri",1.16933885819788e-08 +20,1,2040,7,"GWh/mth","ind_man",4.79690837201319 +20,1,2040,7,"GWh/mth","res_com",11.153727516142 +20,1,2040,8,"GWh/mth","agri",2.03033764613779e-07 +20,1,2040,8,"GWh/mth","ind_man",4.88396620126535 +20,1,2040,8,"GWh/mth","res_com",11.4666418085198 +20,1,2040,9,"GWh/mth","agri",9.17803218001747e-07 +20,1,2040,9,"GWh/mth","ind_man",4.97269728855889 +20,1,2040,9,"GWh/mth","res_com",11.7075468097259 +20,1,2040,10,"GWh/mth","agri",1.19753354456279e-06 +20,1,2040,10,"GWh/mth","ind_man",5.05349750853873 +20,1,2040,10,"GWh/mth","res_com",11.9608312180304 +20,1,2040,11,"GWh/mth","agri",0.000179192343898133 +20,1,2040,11,"GWh/mth","ind_man",5.12773397734461 +20,1,2040,11,"GWh/mth","res_com",12.1759057267888 +20,1,2040,12,"GWh/mth","agri",0.000164042570188601 +20,1,2040,12,"GWh/mth","ind_man",5.20739997547991 +20,1,2040,12,"GWh/mth","res_com",12.4524545611905 +20,1,2050,1,"GWh/mth","agri",0.0525899194184497 +20,1,2050,1,"GWh/mth","ind_man",7.13489342971787 +20,1,2050,1,"GWh/mth","res_com",18.466757760843 +20,1,2050,2,"GWh/mth","agri",0.0448695572946328 +20,1,2050,2,"GWh/mth","ind_man",7.00238414042752 +20,1,2050,2,"GWh/mth","res_com",17.991157095018 +20,1,2050,3,"GWh/mth","agri",0.029913043490558 +20,1,2050,3,"GWh/mth","ind_man",6.89439341234865 +20,1,2050,3,"GWh/mth","res_com",17.6654622320161 +20,1,2050,4,"GWh/mth","agri",5.97244458922678e-06 +20,1,2050,4,"GWh/mth","ind_man",6.79406768596892 +20,1,2050,4,"GWh/mth","res_com",17.257063722464 +20,1,2050,5,"GWh/mth","agri",0.000181980292835883 +20,1,2050,5,"GWh/mth","ind_man",6.66310328573399 +20,1,2050,5,"GWh/mth","res_com",16.8887913675057 +20,1,2050,6,"GWh/mth","agri",2.23351679548179e-06 +20,1,2050,6,"GWh/mth","ind_man",6.55409880602578 +20,1,2050,6,"GWh/mth","res_com",16.5733713399339 +20,1,2050,7,"GWh/mth","agri",3.75021060077156e-08 +20,1,2050,7,"GWh/mth","ind_man",6.54130135413762 +20,1,2050,7,"GWh/mth","res_com",16.5140411325114 +20,1,2050,8,"GWh/mth","agri",4.91238999579106e-07 +20,1,2050,8,"GWh/mth","ind_man",6.66750519609977 +20,1,2050,8,"GWh/mth","res_com",16.9755455067819 +20,1,2050,9,"GWh/mth","agri",2.27674408052381e-06 +20,1,2050,9,"GWh/mth","ind_man",6.79613468541874 +20,1,2050,9,"GWh/mth","res_com",17.3250192122569 +20,1,2050,10,"GWh/mth","agri",2.9943384158658e-06 +20,1,2050,10,"GWh/mth","ind_man",6.91326715105035 +20,1,2050,10,"GWh/mth","res_com",17.6958043045322 +20,1,2050,11,"GWh/mth","agri",0.000277890721064431 +20,1,2050,11,"GWh/mth","ind_man",7.02088444012688 +20,1,2050,11,"GWh/mth","res_com",18.0091434845117 +20,1,2050,12,"GWh/mth","agri",0.000254191030755599 +20,1,2050,12,"GWh/mth","ind_man",7.13637267507131 +20,1,2050,12,"GWh/mth","res_com",18.4162822779602 +20,1,2060,1,"GWh/mth","agri",0.0810153221975469 +20,1,2060,1,"GWh/mth","ind_man",10.0306560000554 +20,1,2060,1,"GWh/mth","res_com",27.816472065647 +20,1,2060,2,"GWh/mth","agri",0.0691220234083623 +20,1,2060,2,"GWh/mth","ind_man",9.83292188182913 +20,1,2060,2,"GWh/mth","res_com",27.101438803097 +20,1,2060,3,"GWh/mth","agri",0.0460813682937255 +20,1,2060,3,"GWh/mth","ind_man",9.67177505576394 +20,1,2060,3,"GWh/mth","res_com",26.6140740318232 +20,1,2060,4,"GWh/mth","agri",2.00166185735025e-05 +20,1,2060,4,"GWh/mth","ind_man",9.52206616254331 +20,1,2060,4,"GWh/mth","res_com",25.9982833552595 +20,1,2060,5,"GWh/mth","agri",0.000341339041477122 +20,1,2060,5,"GWh/mth","ind_man",9.32663737156437 +20,1,2060,5,"GWh/mth","res_com",25.4483848844719 +20,1,2060,6,"GWh/mth","agri",3.9215397454237e-06 +20,1,2060,6,"GWh/mth","ind_man",9.16397779657719 +20,1,2060,6,"GWh/mth","res_com",24.976983516592 +20,1,2060,7,"GWh/mth","agri",1.307588365404e-07 +20,1,2060,7,"GWh/mth","ind_man",9.1448810760514 +20,1,2060,7,"GWh/mth","res_com",24.8872878155257 +20,1,2060,8,"GWh/mth","agri",1.14107607452928e-06 +20,1,2060,8,"GWh/mth","ind_man",9.33320602700997 +20,1,2060,8,"GWh/mth","res_com",25.5814447322196 +20,1,2060,9,"GWh/mth","agri",5.00577862815136e-06 +20,1,2060,9,"GWh/mth","ind_man",9.52515059772346 +20,1,2060,9,"GWh/mth","res_com",26.1026944200972 +20,1,2060,10,"GWh/mth","agri",6.68088837916124e-06 +20,1,2060,10,"GWh/mth","ind_man",9.69993898374063 +20,1,2060,10,"GWh/mth","res_com",26.6583045651507 +20,1,2060,11,"GWh/mth","agri",0.000428513520032978 +20,1,2060,11,"GWh/mth","ind_man",9.86052855353921 +20,1,2060,11,"GWh/mth","res_com",27.1266849750586 +20,1,2060,12,"GWh/mth","agri",0.000391583949544477 +20,1,2060,12,"GWh/mth","ind_man",10.0328633719097 +20,1,2060,12,"GWh/mth","res_com",27.7385171947506 +21,0,2020,1,"GWh/mth","agri",2.02685291685476e-19 +21,0,2020,1,"GWh/mth","ind_man",0 +21,0,2020,1,"GWh/mth","res_com",0.0340247905130238 +21,0,2020,2,"GWh/mth","agri",0 +21,0,2020,2,"GWh/mth","ind_man",0 +21,0,2020,2,"GWh/mth","res_com",0.036446317530629 +21,0,2020,3,"GWh/mth","agri",1.5697491963258e-06 +21,0,2020,3,"GWh/mth","ind_man",0 +21,0,2020,3,"GWh/mth","res_com",0.0379278213776963 +21,0,2020,4,"GWh/mth","agri",7.82685980908215e-05 +21,0,2020,4,"GWh/mth","ind_man",0 +21,0,2020,4,"GWh/mth","res_com",0.0375285337167068 +21,0,2020,5,"GWh/mth","agri",6.39969430515243e-06 +21,0,2020,5,"GWh/mth","ind_man",0 +21,0,2020,5,"GWh/mth","res_com",0.0411141188345316 +21,0,2020,6,"GWh/mth","agri",2.34138256608348e-10 +21,0,2020,6,"GWh/mth","ind_man",0 +21,0,2020,6,"GWh/mth","res_com",0.0426117962187691 +21,0,2020,7,"GWh/mth","agri",2.97241142707612e-09 +21,0,2020,7,"GWh/mth","ind_man",0 +21,0,2020,7,"GWh/mth","res_com",0.0432102951797625 +21,0,2020,8,"GWh/mth","agri",3.21906890045504e-07 +21,0,2020,8,"GWh/mth","ind_man",0 +21,0,2020,8,"GWh/mth","res_com",0.0399294592069236 +21,0,2020,9,"GWh/mth","agri",6.93708303580578e-06 +21,0,2020,9,"GWh/mth","ind_man",0 +21,0,2020,9,"GWh/mth","res_com",0.0393074187152652 +21,0,2020,10,"GWh/mth","agri",1.12744944861004e-05 +21,0,2020,10,"GWh/mth","ind_man",0 +21,0,2020,10,"GWh/mth","res_com",0.0392634098300731 +21,0,2020,11,"GWh/mth","agri",2.51466595864239e-06 +21,0,2020,11,"GWh/mth","ind_man",0 +21,0,2020,11,"GWh/mth","res_com",0.0313868982191469 +21,0,2020,12,"GWh/mth","agri",1.14188819305321e-08 +21,0,2020,12,"GWh/mth","ind_man",0 +21,0,2020,12,"GWh/mth","res_com",0.0293666351030096 +21,0,2030,1,"GWh/mth","agri",1.14091726308579e-18 +21,0,2030,1,"GWh/mth","ind_man",0.662309427148016 +21,0,2030,1,"GWh/mth","res_com",1.30018259275943 +21,0,2030,2,"GWh/mth","agri",0 +21,0,2030,2,"GWh/mth","ind_man",0.6438221951148 +21,0,2030,2,"GWh/mth","res_com",1.26916329710623 +21,0,2030,3,"GWh/mth","agri",6.84835697633534e-06 +21,0,2030,3,"GWh/mth","ind_man",0.628755706885016 +21,0,2030,3,"GWh/mth","res_com",1.24311410118849 +21,0,2030,4,"GWh/mth","agri",0.000214346057153036 +21,0,2030,4,"GWh/mth","ind_man",0.614758612851713 +21,0,2030,4,"GWh/mth","res_com",1.21613652457267 +21,0,2030,5,"GWh/mth","agri",1.58998879419272e-05 +21,0,2030,5,"GWh/mth","ind_man",0.596486918329761 +21,0,2030,5,"GWh/mth","res_com",1.18734375898759 +21,0,2030,6,"GWh/mth","agri",1.09053717505167e-09 +21,0,2030,6,"GWh/mth","ind_man",0.581278995022512 +21,0,2030,6,"GWh/mth","res_com",1.16105357338999 +21,0,2030,7,"GWh/mth","agri",4.80167735200315e-09 +21,0,2030,7,"GWh/mth","ind_man",0.579493539347991 +21,0,2030,7,"GWh/mth","res_com",1.15862812915333 +21,0,2030,8,"GWh/mth","agri",6.30205570458471e-07 +21,0,2030,8,"GWh/mth","ind_man",0.5971010574498 +21,0,2030,8,"GWh/mth","res_com",1.18664708016457 +21,0,2030,9,"GWh/mth","agri",3.34357438057221e-05 +21,0,2030,9,"GWh/mth","ind_man",0.615046993376927 +21,0,2030,9,"GWh/mth","res_com",1.2194618629715 +21,0,2030,10,"GWh/mth","agri",5.82252678570567e-05 +21,0,2030,10,"GWh/mth","ind_man",0.631388904818393 +21,0,2030,10,"GWh/mth","res_com",1.25016077789456 +21,0,2030,11,"GWh/mth","agri",1.19109727127237e-05 +21,0,2030,11,"GWh/mth","ind_man",0.646403292146244 +21,0,2030,11,"GWh/mth","res_com",1.26610932098192 +21,0,2030,12,"GWh/mth","agri",1.87760281368625e-08 +21,0,2030,12,"GWh/mth","ind_man",0.662515806279845 +21,0,2030,12,"GWh/mth","res_com",1.29328523904575 +21,0,2040,1,"GWh/mth","agri",2.13301457466455e-18 +21,0,2040,1,"GWh/mth","ind_man",1.23731184268495 +21,0,2040,1,"GWh/mth","res_com",2.41268288476637 +21,0,2040,2,"GWh/mth","agri",0 +21,0,2040,2,"GWh/mth","ind_man",1.2027744041471 +21,0,2040,2,"GWh/mth","res_com",2.35349556995568 +21,0,2040,3,"GWh/mth","agri",1.64184764897189e-05 +21,0,2040,3,"GWh/mth","ind_man",1.17462752362532 +21,0,2040,3,"GWh/mth","res_com",2.30406928482439 +21,0,2040,4,"GWh/mth","agri",0.000553136931590146 +21,0,2040,4,"GWh/mth","ind_man",1.14847846172059 +21,0,2040,4,"GWh/mth","res_com",2.25385409274631 +21,0,2040,5,"GWh/mth","agri",4.22519673860508e-05 +21,0,2040,5,"GWh/mth","ind_man",1.11434368560048 +21,0,2040,5,"GWh/mth","res_com",2.19824220925002 +21,0,2040,6,"GWh/mth","agri",6.41326444824371e-09 +21,0,2040,6,"GWh/mth","ind_man",1.085932579191 +21,0,2040,6,"GWh/mth","res_com",2.14835742403294 +21,0,2040,7,"GWh/mth","agri",1.16472915627498e-08 +21,0,2040,7,"GWh/mth","ind_man",1.08259703033707 +21,0,2040,7,"GWh/mth","res_com",2.14352367012533 +21,0,2040,8,"GWh/mth","agri",1.91490280422401e-06 +21,0,2040,8,"GWh/mth","ind_man",1.11549100673941 +21,0,2040,8,"GWh/mth","res_com",2.19753614627743 +21,0,2040,9,"GWh/mth","agri",0.000142096155279744 +21,0,2040,9,"GWh/mth","ind_man",1.14901720784803 +21,0,2040,9,"GWh/mth","res_com",2.25917372509971 +21,0,2040,10,"GWh/mth","agri",0.000250512963885562 +21,0,2040,10,"GWh/mth","ind_man",1.17954680584229 +21,0,2040,10,"GWh/mth","res_com",2.31656638559497 +21,0,2040,11,"GWh/mth","agri",5.04204392644765e-05 +21,0,2040,11,"GWh/mth","ind_man",1.20759635260989 +21,0,2040,11,"GWh/mth","res_com",2.35033321455539 +21,0,2040,12,"GWh/mth","agri",5.03219939595776e-08 +21,0,2040,12,"GWh/mth","ind_man",1.23769739562052 +21,0,2040,12,"GWh/mth","res_com",2.40213613535329 +21,0,2050,1,"GWh/mth","agri",5.52238562941841e-18 +21,0,2050,1,"GWh/mth","ind_man",1.92024808584873 +21,0,2050,1,"GWh/mth","res_com",3.74990807047243 +21,0,2050,2,"GWh/mth","agri",0 +21,0,2050,2,"GWh/mth","ind_man",1.86664765307625 +21,0,2050,2,"GWh/mth","res_com",3.65787790477183 +21,0,2050,3,"GWh/mth","agri",3.78688609777324e-05 +21,0,2050,3,"GWh/mth","ind_man",1.82296505699984 +21,0,2050,3,"GWh/mth","res_com",3.58103150668831 +21,0,2050,4,"GWh/mth","agri",0.00119856595081239 +21,0,2050,4,"GWh/mth","ind_man",1.78238297870959 +21,0,2050,4,"GWh/mth","res_com",3.50298099271473 +21,0,2050,5,"GWh/mth","agri",9.98185788684082e-05 +21,0,2050,5,"GWh/mth","ind_man",1.72940745851795 +21,0,2050,5,"GWh/mth","res_com",3.41649480620603 +21,0,2050,6,"GWh/mth","agri",2.30512411147002e-08 +21,0,2050,6,"GWh/mth","ind_man",1.6853147966541 +21,0,2050,6,"GWh/mth","res_com",3.33893551828664 +21,0,2050,7,"GWh/mth","agri",2.13954866905336e-08 +21,0,2050,7,"GWh/mth","ind_man",1.68013818629521 +21,0,2050,7,"GWh/mth","res_com",3.33141480562135 +21,0,2050,8,"GWh/mth","agri",4.63977114324732e-06 +21,0,2050,8,"GWh/mth","ind_man",1.73118804538771 +21,0,2050,8,"GWh/mth","res_com",3.41541125755167 +21,0,2050,9,"GWh/mth","agri",0.000452995236604475 +21,0,2050,9,"GWh/mth","ind_man",1.78321908662054 +21,0,2050,9,"GWh/mth","res_com",3.51122893509955 +21,0,2050,10,"GWh/mth","agri",0.000804547520469745 +21,0,2050,10,"GWh/mth","ind_man",1.8305995448751 +21,0,2050,10,"GWh/mth","res_com",3.60044143581638 +21,0,2050,11,"GWh/mth","agri",0.000160352336709576 +21,0,2050,11,"GWh/mth","ind_man",1.8741310836766 +21,0,2050,11,"GWh/mth","res_com",3.65302193882266 +21,0,2050,12,"GWh/mth","agri",1.06330269025638e-07 +21,0,2050,12,"GWh/mth","ind_man",1.92084644534145 +21,0,2050,12,"GWh/mth","res_com",3.73356896515923 +21,0,2060,1,"GWh/mth","agri",8.66972553554068e-18 +21,0,2060,1,"GWh/mth","ind_man",2.77460340177271 +21,0,2060,1,"GWh/mth","res_com",5.437477588962 +21,0,2060,2,"GWh/mth","agri",0 +21,0,2060,2,"GWh/mth","ind_man",2.69715510527238 +21,0,2060,2,"GWh/mth","res_com",5.30517499501031 +21,0,2060,3,"GWh/mth","agri",6.08562186215443e-05 +21,0,2060,3,"GWh/mth","ind_man",2.63403728181766 +21,0,2060,3,"GWh/mth","res_com",5.19451073826106 +21,0,2060,4,"GWh/mth","agri",0.00213392503730523 +21,0,2060,4,"GWh/mth","ind_man",2.5753994561612 +21,0,2060,4,"GWh/mth","res_com",5.08144368742208 +21,0,2060,5,"GWh/mth","agri",0.000224731391486481 +21,0,2060,5,"GWh/mth","ind_man",2.49885410787126 +21,0,2060,5,"GWh/mth","res_com",4.95757123362647 +21,0,2060,6,"GWh/mth","agri",8.24199088032307e-08 +21,0,2060,6,"GWh/mth","ind_man",2.43514377247124 +21,0,2060,6,"GWh/mth","res_com",4.84588121851743 +21,0,2060,7,"GWh/mth","agri",3.45575175514967e-08 +21,0,2060,7,"GWh/mth","ind_man",2.4276639885739 +21,0,2060,7,"GWh/mth","res_com",4.83521015454363 +21,0,2060,8,"GWh/mth","agri",9.12167808125891e-06 +21,0,2060,8,"GWh/mth","ind_man",2.50142691209504 +21,0,2060,8,"GWh/mth","res_com",4.95558739766961 +21,0,2060,9,"GWh/mth","agri",0.000985541764704455 +21,0,2060,9,"GWh/mth","ind_man",2.57660756456713 +21,0,2060,9,"GWh/mth","res_com",5.09400199440951 +21,0,2060,10,"GWh/mth","agri",0.00175182342352386 +21,0,2060,10,"GWh/mth","ind_man",2.64506850022406 +21,0,2060,10,"GWh/mth","res_com",5.22306297417559 +21,0,2060,11,"GWh/mth","agri",0.000347980620242076 +21,0,2060,11,"GWh/mth","ind_man",2.70796805811618 +21,0,2060,11,"GWh/mth","res_com",5.29637205598265 +21,0,2060,12,"GWh/mth","agri",2.11273120002558e-07 +21,0,2060,12,"GWh/mth","ind_man",2.77546798291523 +21,0,2060,12,"GWh/mth","res_com",5.41220129977836 +21,1,2020,1,"GWh/mth","agri",0 +21,1,2020,1,"GWh/mth","ind_man",0 +21,1,2020,1,"GWh/mth","res_com",0.107734033012569 +21,1,2020,2,"GWh/mth","agri",0 +21,1,2020,2,"GWh/mth","ind_man",0 +21,1,2020,2,"GWh/mth","res_com",0.105918339247813 +21,1,2020,3,"GWh/mth","agri",0 +21,1,2020,3,"GWh/mth","ind_man",0 +21,1,2020,3,"GWh/mth","res_com",0.106656705263805 +21,1,2020,4,"GWh/mth","agri",1.07652106213627e-10 +21,1,2020,4,"GWh/mth","ind_man",0 +21,1,2020,4,"GWh/mth","res_com",0.103685743511695 +21,1,2020,5,"GWh/mth","agri",5.38161310441773e-11 +21,1,2020,5,"GWh/mth","ind_man",0 +21,1,2020,5,"GWh/mth","res_com",0.105441599173807 +21,1,2020,6,"GWh/mth","agri",1.59451253577223e-17 +21,1,2020,6,"GWh/mth","ind_man",0 +21,1,2020,6,"GWh/mth","res_com",0.106653523355114 +21,1,2020,7,"GWh/mth","agri",0 +21,1,2020,7,"GWh/mth","ind_man",0 +21,1,2020,7,"GWh/mth","res_com",0.105980680768713 +21,1,2020,8,"GWh/mth","agri",1.939523651196e-10 +21,1,2020,8,"GWh/mth","ind_man",0 +21,1,2020,8,"GWh/mth","res_com",0.108040386766144 +21,1,2020,9,"GWh/mth","agri",3.40840901508747e-08 +21,1,2020,9,"GWh/mth","ind_man",0 +21,1,2020,9,"GWh/mth","res_com",0.10576951767767 +21,1,2020,10,"GWh/mth","agri",6.13238789864779e-08 +21,1,2020,10,"GWh/mth","ind_man",0 +21,1,2020,10,"GWh/mth","res_com",0.105489869579776 +21,1,2020,11,"GWh/mth","agri",1.20649460543589e-08 +21,1,2020,11,"GWh/mth","ind_man",0 +21,1,2020,11,"GWh/mth","res_com",0.104692965828487 +21,1,2020,12,"GWh/mth","agri",0 +21,1,2020,12,"GWh/mth","ind_man",0 +21,1,2020,12,"GWh/mth","res_com",0.106007855824786 +21,1,2030,1,"GWh/mth","agri",0 +21,1,2030,1,"GWh/mth","ind_man",0.0434512553395713 +21,1,2030,1,"GWh/mth","res_com",0.284461499258627 +21,1,2030,2,"GWh/mth","agri",0 +21,1,2030,2,"GWh/mth","ind_man",0.0422383880502497 +21,1,2030,2,"GWh/mth","res_com",0.278384919940492 +21,1,2030,3,"GWh/mth","agri",0 +21,1,2030,3,"GWh/mth","ind_man",0.0412499409584394 +21,1,2030,3,"GWh/mth","res_com",0.276902076801696 +21,1,2030,4,"GWh/mth","agri",6.68682156144788e-10 +21,1,2030,4,"GWh/mth","ind_man",0.0403316521920059 +21,1,2030,4,"GWh/mth","res_com",0.269804621878574 +21,1,2030,5,"GWh/mth","agri",3.34279447079093e-10 +21,1,2030,5,"GWh/mth","ind_man",0.0391329253860495 +21,1,2030,5,"GWh/mth","res_com",0.269352109408061 +21,1,2030,6,"GWh/mth","agri",9.9043308851221e-17 +21,1,2030,6,"GWh/mth","ind_man",0.0381351993508738 +21,1,2030,6,"GWh/mth","res_com",0.268585206614139 +21,1,2030,7,"GWh/mth","agri",0 +21,1,2030,7,"GWh/mth","ind_man",0.0380180633307129 +21,1,2030,7,"GWh/mth","res_com",0.26722021484909 +21,1,2030,8,"GWh/mth","agri",1.20473709488035e-09 +21,1,2030,8,"GWh/mth","ind_man",0.0391732163959989 +21,1,2030,8,"GWh/mth","res_com",0.273524444379275 +21,1,2030,9,"GWh/mth","agri",2.11713673739857e-07 +21,1,2030,9,"GWh/mth","ind_man",0.0403505715902848 +21,1,2030,9,"GWh/mth","res_com",0.273114382473743 +21,1,2030,10,"GWh/mth","agri",3.80913900025947e-07 +21,1,2030,10,"GWh/mth","ind_man",0.0414226936795588 +21,1,2030,10,"GWh/mth","res_com",0.275538007747859 +21,1,2030,11,"GWh/mth","agri",7.49415355180298e-08 +21,1,2030,11,"GWh/mth","ind_man",0.0424077226566624 +21,1,2030,11,"GWh/mth","res_com",0.276920169377313 +21,1,2030,12,"GWh/mth","agri",0 +21,1,2030,12,"GWh/mth","ind_man",0.0434647949812951 +21,1,2030,12,"GWh/mth","res_com",0.281797682351528 +21,1,2040,1,"GWh/mth","agri",0 +21,1,2040,1,"GWh/mth","ind_man",0.0319014473902251 +21,1,2040,1,"GWh/mth","res_com",0.345860126556296 +21,1,2040,2,"GWh/mth","agri",0 +21,1,2040,2,"GWh/mth","ind_man",0.0310109731859877 +21,1,2040,2,"GWh/mth","res_com",0.339089546359714 +21,1,2040,3,"GWh/mth","agri",0 +21,1,2040,3,"GWh/mth","ind_man",0.0302852658928157 +21,1,2040,3,"GWh/mth","res_com",0.33893961622547 +21,1,2040,4,"GWh/mth","agri",2.75240041341084e-09 +21,1,2040,4,"GWh/mth","ind_man",0.0296110680924881 +21,1,2040,4,"GWh/mth","res_com",0.329950456273884 +21,1,2040,5,"GWh/mth","agri",1.37594651215755e-09 +21,1,2040,5,"GWh/mth","ind_man",0.0287309756800453 +21,1,2040,5,"GWh/mth","res_com",0.331850855902323 +21,1,2040,6,"GWh/mth","agri",4.07675802523284e-16 +21,1,2040,6,"GWh/mth","ind_man",0.0279984558858006 +21,1,2040,6,"GWh/mth","res_com",0.332828771292208 +21,1,2040,7,"GWh/mth","agri",0 +21,1,2040,7,"GWh/mth","ind_man",0.0279124558714061 +21,1,2040,7,"GWh/mth","res_com",0.330970948271079 +21,1,2040,8,"GWh/mth","agri",4.95886395340732e-09 +21,1,2040,8,"GWh/mth","ind_man",0.0287605569090376 +21,1,2040,8,"GWh/mth","res_com",0.338218958988651 +21,1,2040,9,"GWh/mth","agri",8.71442665445577e-07 +21,1,2040,9,"GWh/mth","ind_man",0.0296249585125492 +21,1,2040,9,"GWh/mth","res_com",0.335030332801548 +21,1,2040,10,"GWh/mth","agri",1.56789412078954e-06 +21,1,2040,10,"GWh/mth","ind_man",0.0304120990947851 +21,1,2040,10,"GWh/mth","res_com",0.336454332081216 +21,1,2040,11,"GWh/mth","agri",3.08469690756393e-07 +21,1,2040,11,"GWh/mth","ind_man",0.0311352968446623 +21,1,2040,11,"GWh/mth","res_com",0.336455901297737 +21,1,2040,12,"GWh/mth","agri",0 +21,1,2040,12,"GWh/mth","ind_man",0.0319113880505065 +21,1,2040,12,"GWh/mth","res_com",0.341709248503973 +21,1,2050,1,"GWh/mth","agri",0 +21,1,2050,1,"GWh/mth","ind_man",0.0260640700791582 +21,1,2050,1,"GWh/mth","res_com",0.47355011117636 +21,1,2050,2,"GWh/mth","agri",0 +21,1,2050,2,"GWh/mth","ind_man",0.0253365362535288 +21,1,2050,2,"GWh/mth","res_com",0.464799898204994 +21,1,2050,3,"GWh/mth","agri",0 +21,1,2050,3,"GWh/mth","ind_man",0.0247436200289192 +21,1,2050,3,"GWh/mth","res_com",0.465986508550976 +21,1,2050,4,"GWh/mth","agri",1.0240533570172e-08 +21,1,2050,4,"GWh/mth","ind_man",0.0241927880086662 +21,1,2050,4,"GWh/mth","res_com",0.453375637896433 +21,1,2050,5,"GWh/mth","agri",5.11932289352087e-09 +21,1,2050,5,"GWh/mth","ind_man",0.023473736298145 +21,1,2050,5,"GWh/mth","res_com",0.458041182859332 +21,1,2050,6,"GWh/mth","agri",1.51679156896833e-15 +21,1,2050,6,"GWh/mth","ind_man",0.0228752541346863 +21,1,2050,6,"GWh/mth","res_com",0.460988758531118 +21,1,2050,7,"GWh/mth","agri",0 +21,1,2050,7,"GWh/mth","ind_man",0.0228049905389765 +21,1,2050,7,"GWh/mth","res_com",0.4582781325707 +21,1,2050,8,"GWh/mth","agri",1.84498638124581e-08 +21,1,2050,8,"GWh/mth","ind_man",0.0234979047070592 +21,1,2050,8,"GWh/mth","res_com",0.467850994510693 +21,1,2050,9,"GWh/mth","agri",3.24227457113215e-06 +21,1,2050,9,"GWh/mth","ind_man",0.0242041367376901 +21,1,2050,9,"GWh/mth","res_com",0.461219966320643 +21,1,2050,10,"GWh/mth","agri",5.83347986004825e-06 +21,1,2050,10,"GWh/mth","ind_man",0.0248472450909441 +21,1,2050,10,"GWh/mth","res_com",0.461887464050939 +21,1,2050,11,"GWh/mth","agri",1.14768701827683e-06 +21,1,2050,11,"GWh/mth","ind_man",0.0254381109724609 +21,1,2050,11,"GWh/mth","res_com",0.460475868835442 +21,1,2050,12,"GWh/mth","agri",0 +21,1,2050,12,"GWh/mth","ind_man",0.0260721917816953 +21,1,2050,12,"GWh/mth","res_com",0.467098710383394 +21,1,2060,1,"GWh/mth","agri",0 +21,1,2060,1,"GWh/mth","ind_man",0.043548772180661 +21,1,2060,1,"GWh/mth","res_com",0.738578922598093 +21,1,2060,2,"GWh/mth","agri",0 +21,1,2060,2,"GWh/mth","ind_man",0.0423331828759271 +21,1,2060,2,"GWh/mth","res_com",0.724845953953988 +21,1,2060,3,"GWh/mth","agri",0 +21,1,2060,3,"GWh/mth","ind_man",0.0413425174307638 +21,1,2060,3,"GWh/mth","res_com",0.726467611259594 +21,1,2060,4,"GWh/mth","agri",3.74383379343077e-08 +21,1,2060,4,"GWh/mth","ind_man",0.0404221677659969 +21,1,2060,4,"GWh/mth","res_com",0.706848749279776 +21,1,2060,5,"GWh/mth","agri",1.87157181966303e-08 +21,1,2060,5,"GWh/mth","ind_man",0.0392207506798511 +21,1,2060,5,"GWh/mth","res_com",0.713785848062737 +21,1,2060,6,"GWh/mth","agri",5.54523403940085e-15 +21,1,2060,6,"GWh/mth","ind_man",0.0382207854667629 +21,1,2060,6,"GWh/mth","res_com",0.718118354028109 +21,1,2060,7,"GWh/mth","agri",0 +21,1,2060,7,"GWh/mth","ind_man",0.0381033865604191 +21,1,2060,7,"GWh/mth","res_com",0.713918155354748 +21,1,2060,8,"GWh/mth","agri",6.74508053237269e-08 +21,1,2060,8,"GWh/mth","ind_man",0.0392611321141619 +21,1,2060,8,"GWh/mth","res_com",0.728906376096544 +21,1,2060,9,"GWh/mth","agri",1.18534225036303e-05 +21,1,2060,9,"GWh/mth","ind_man",0.0404411296247281 +21,1,2060,9,"GWh/mth","res_com",0.718936968688122 +21,1,2060,10,"GWh/mth","agri",2.13266026459397e-05 +21,1,2060,10,"GWh/mth","ind_man",0.0415156578575897 +21,1,2060,10,"GWh/mth","res_com",0.720189050624555 +21,1,2060,11,"GWh/mth","agri",4.19582574859372e-06 +21,1,2060,11,"GWh/mth","ind_man",0.0425028975168353 +21,1,2060,11,"GWh/mth","res_com",0.718220088271794 +21,1,2060,12,"GWh/mth","agri",0 +21,1,2060,12,"GWh/mth","ind_man",0.0435623422091499 +21,1,2060,12,"GWh/mth","res_com",0.728643298306215 +22,0,2020,1,"GWh/mth","agri",0.704097318496062 +22,0,2020,1,"GWh/mth","ind_man",3.87941262893782 +22,0,2020,1,"GWh/mth","res_com",10.7521311499081 +22,0,2020,2,"GWh/mth","agri",0.757582758920266 +22,0,2020,2,"GWh/mth","ind_man",3.77112547721692 +22,0,2020,2,"GWh/mth","res_com",10.4894031982164 +22,0,2020,3,"GWh/mth","agri",0.505055220165459 +22,0,2020,3,"GWh/mth","ind_man",3.68287499743127 +22,0,2020,3,"GWh/mth","res_com",10.2715181478506 +22,0,2020,4,"GWh/mth","agri",0.00833359185665939 +22,0,2020,4,"GWh/mth","ind_man",3.60088838945704 +22,0,2020,4,"GWh/mth","res_com",10.0513013507376 +22,0,2020,5,"GWh/mth","agri",0.00149390182241426 +22,0,2020,5,"GWh/mth","ind_man",3.49386372760709 +22,0,2020,5,"GWh/mth","res_com",9.80310663179985 +22,0,2020,6,"GWh/mth","agri",0.000309406338152444 +22,0,2020,6,"GWh/mth","ind_man",3.40478480570179 +22,0,2020,6,"GWh/mth","res_com",9.58397735301681 +22,0,2020,7,"GWh/mth","agri",0.000312039071394255 +22,0,2020,7,"GWh/mth","ind_man",3.39432667388571 +22,0,2020,7,"GWh/mth","res_com",9.5622974432599 +22,0,2020,8,"GWh/mth","agri",0.000669911036185665 +22,0,2020,8,"GWh/mth","ind_man",3.49746098737804 +22,0,2020,8,"GWh/mth","res_com",9.80622868799511 +22,0,2020,9,"GWh/mth","agri",0.0021344965890782 +22,0,2020,9,"GWh/mth","ind_man",3.60257755015081 +22,0,2020,9,"GWh/mth","res_com",10.0724849289214 +22,0,2020,10,"GWh/mth","agri",0.00241761150403532 +22,0,2020,10,"GWh/mth","ind_man",3.69829869653401 +22,0,2020,10,"GWh/mth","res_com",10.3258000527133 +22,0,2020,11,"GWh/mth","agri",0.000665114564843735 +22,0,2020,11,"GWh/mth","ind_man",3.7862440003873 +22,0,2020,11,"GWh/mth","res_com",10.4824371715644 +22,0,2020,12,"GWh/mth","agri",0.000360227887330169 +22,0,2020,12,"GWh/mth","ind_man",3.88062147449784 +22,0,2020,12,"GWh/mth","res_com",10.7123425408351 +22,0,2030,1,"GWh/mth","agri",1.09699912496346 +22,0,2030,1,"GWh/mth","ind_man",8.08834656946691 +22,0,2030,1,"GWh/mth","res_com",20.3854405087643 +22,0,2030,2,"GWh/mth","agri",1.18043617481129 +22,0,2030,2,"GWh/mth","ind_man",7.86257424362414 +22,0,2030,2,"GWh/mth","res_com",19.8749121907719 +22,0,2030,3,"GWh/mth","agri",0.787038691405247 +22,0,2030,3,"GWh/mth","ind_man",7.67857719724048 +22,0,2030,3,"GWh/mth","res_com",19.4529486956587 +22,0,2030,4,"GWh/mth","agri",0.026121349239793 +22,0,2030,4,"GWh/mth","ind_man",7.50763995421454 +22,0,2030,4,"GWh/mth","res_com",19.0331258921192 +22,0,2030,5,"GWh/mth","agri",0.00416337485777867 +22,0,2030,5,"GWh/mth","ind_man",7.28449984530599 +22,0,2030,5,"GWh/mth","res_com",18.5464635875027 +22,0,2030,6,"GWh/mth","agri",0.000284576666499972 +22,0,2030,6,"GWh/mth","ind_man",7.09877554595456 +22,0,2030,6,"GWh/mth","res_com",18.1217939336356 +22,0,2030,7,"GWh/mth","agri",0.000293308950292658 +22,0,2030,7,"GWh/mth","ind_man",7.07697095781494 +22,0,2030,7,"GWh/mth","res_com",18.0782667753744 +22,0,2030,8,"GWh/mth","agri",0.00145619367089823 +22,0,2030,8,"GWh/mth","ind_man",7.29199991980459 +22,0,2030,8,"GWh/mth","res_com",18.5546785560896 +22,0,2030,9,"GWh/mth","agri",0.00635114935045075 +22,0,2030,9,"GWh/mth","ind_man",7.51116175465435 +22,0,2030,9,"GWh/mth","res_com",19.0677878816634 +22,0,2030,10,"GWh/mth","agri",0.00739507262010793 +22,0,2030,10,"GWh/mth","ind_man",7.71073470036236 +22,0,2030,10,"GWh/mth","res_com",19.5520369553292 +22,0,2030,11,"GWh/mth","agri",0.00138946892114842 +22,0,2030,11,"GWh/mth","ind_man",7.89409547292272 +22,0,2030,11,"GWh/mth","res_com",19.8779708207088 +22,0,2030,12,"GWh/mth","agri",0.000342534686925265 +22,0,2030,12,"GWh/mth","ind_man",8.09086694117614 +22,0,2030,12,"GWh/mth","res_com",20.3243690285744 +22,0,2040,1,"GWh/mth","agri",1.69757708560779 +22,0,2040,1,"GWh/mth","ind_man",13.9671584312126 +22,0,2040,1,"GWh/mth","res_com",34.7434990472826 +22,0,2040,2,"GWh/mth","agri",1.82667237513847 +22,0,2040,2,"GWh/mth","ind_man",13.5772891523252 +22,0,2040,2,"GWh/mth","res_com",33.8642003613437 +22,0,2040,3,"GWh/mth","agri",1.21800078244002 +22,0,2040,3,"GWh/mth","ind_man",13.2595584671173 +22,0,2040,3,"GWh/mth","res_com",33.1384727098614 +22,0,2040,4,"GWh/mth","agri",0.0652048504191087 +22,0,2040,4,"GWh/mth","ind_man",12.9643797758196 +22,0,2040,4,"GWh/mth","res_com",32.4212285291675 +22,0,2040,5,"GWh/mth","agri",0.0109318170595952 +22,0,2040,5,"GWh/mth","ind_man",12.5790558747334 +22,0,2040,5,"GWh/mth","res_com",31.5798980560792 +22,0,2040,6,"GWh/mth","agri",0.000756695233844571 +22,0,2040,6,"GWh/mth","ind_man",12.2583425260547 +22,0,2040,6,"GWh/mth","res_com",30.8492994387114 +22,0,2040,7,"GWh/mth","agri",0.000787859870373053 +22,0,2040,7,"GWh/mth","ind_man",12.2206898198486 +22,0,2040,7,"GWh/mth","res_com",30.7733193740734 +22,0,2040,8,"GWh/mth","agri",0.00446611137579206 +22,0,2040,8,"GWh/mth","ind_man",12.5920071902919 +22,0,2040,8,"GWh/mth","res_com",31.5955782432246 +22,0,2040,9,"GWh/mth","agri",0.0200167829343866 +22,0,2040,9,"GWh/mth","ind_man",12.9704613085882 +22,0,2040,9,"GWh/mth","res_com",32.4762527213834 +22,0,2040,10,"GWh/mth","agri",0.0234336272966284 +22,0,2040,10,"GWh/mth","ind_man",13.3150888449267 +22,0,2040,10,"GWh/mth","res_com",33.3045173948755 +22,0,2040,11,"GWh/mth","agri",0.00427032226339187 +22,0,2040,11,"GWh/mth","ind_man",13.6317207966395 +22,0,2040,11,"GWh/mth","res_com",33.8814143444755 +22,0,2040,12,"GWh/mth","agri",0.000888641401045542 +22,0,2040,12,"GWh/mth","ind_man",13.971510671892 +22,0,2040,12,"GWh/mth","res_com",34.650006169455 +22,0,2050,1,"GWh/mth","agri",2.63034954296678 +22,0,2050,1,"GWh/mth","ind_man",22.9735255428475 +22,0,2050,1,"GWh/mth","res_com",56.8824081352784 +22,0,2050,2,"GWh/mth","agri",2.8303882565226 +22,0,2050,2,"GWh/mth","ind_man",22.3322589687622 +22,0,2050,2,"GWh/mth","res_com",55.4348769934429 +22,0,2050,3,"GWh/mth","agri",1.8872253973354 +22,0,2050,3,"GWh/mth","ind_man",21.8096477269467 +22,0,2050,3,"GWh/mth","res_com",54.2410422619445 +22,0,2050,4,"GWh/mth","agri",0.120535146049631 +22,0,2050,4,"GWh/mth","ind_man",21.3241305591111 +22,0,2050,4,"GWh/mth","res_com",53.0652710136444 +22,0,2050,5,"GWh/mth","agri",0.0207193272838156 +22,0,2050,5,"GWh/mth","ind_man",20.6903403341724 +22,0,2050,5,"GWh/mth","res_com",51.6775644775 +22,0,2050,6,"GWh/mth","agri",0.000944105071738475 +22,0,2050,6,"GWh/mth","ind_man",20.1628231341572 +22,0,2050,6,"GWh/mth","res_com",50.4755315362824 +22,0,2050,7,"GWh/mth","agri",0.0010132091381625 +22,0,2050,7,"GWh/mth","ind_man",20.1008910373715 +22,0,2050,7,"GWh/mth","res_com",50.3495861158675 +22,0,2050,8,"GWh/mth","agri",0.0089247510736053 +22,0,2050,8,"GWh/mth","ind_man",20.7116429763857 +22,0,2050,8,"GWh/mth","res_com",51.704685934603 +22,0,2050,9,"GWh/mth","agri",0.0428825121956502 +22,0,2050,9,"GWh/mth","ind_man",21.3341336137114 +22,0,2050,9,"GWh/mth","res_com",53.1518595881003 +22,0,2050,10,"GWh/mth","agri",0.0507176505273253 +22,0,2050,10,"GWh/mth","ind_man",21.9009854574729 +22,0,2050,10,"GWh/mth","res_com",54.5104453287726 +22,0,2050,11,"GWh/mth","agri",0.00853332650749005 +22,0,2050,11,"GWh/mth","ind_man",22.4217894754255 +22,0,2050,11,"GWh/mth","res_com",55.4734208708749 +22,0,2050,12,"GWh/mth","agri",0.00102983782300846 +22,0,2050,12,"GWh/mth","ind_man",22.9806842153082 +22,0,2050,12,"GWh/mth","res_com",56.7384859986177 +22,0,2060,1,"GWh/mth","agri",4.05198586756134 +22,0,2060,1,"GWh/mth","ind_man",35.733887130919 +22,0,2060,1,"GWh/mth","res_com",88.706949970418 +22,0,2060,2,"GWh/mth","agri",4.36014760292658 +22,0,2060,2,"GWh/mth","ind_man",34.7364369425942 +22,0,2060,2,"GWh/mth","res_com",86.4468945271712 +22,0,2060,3,"GWh/mth","agri",2.90719533057532 +22,0,2060,3,"GWh/mth","ind_man",33.9235477282873 +22,0,2060,3,"GWh/mth","res_com",84.583233981391 +22,0,2060,4,"GWh/mth","agri",0.214271878706313 +22,0,2060,4,"GWh/mth","ind_man",33.168356034126 +22,0,2060,4,"GWh/mth","res_com",82.7491426284413 +22,0,2060,5,"GWh/mth","agri",0.0386054229073356 +22,0,2060,5,"GWh/mth","ind_man",32.1825348409269 +22,0,2060,5,"GWh/mth","res_com",80.5815987611911 +22,0,2060,6,"GWh/mth","agri",0.00136097502279489 +22,0,2060,6,"GWh/mth","ind_man",31.3620147144099 +22,0,2060,6,"GWh/mth","res_com",78.7050783679011 +22,0,2060,7,"GWh/mth","agri",0.00149723250362758 +22,0,2060,7,"GWh/mth","ind_man",31.2656831978477 +22,0,2060,7,"GWh/mth","res_com",78.5081493455334 +22,0,2060,8,"GWh/mth","agri",0.0170702844557648 +22,0,2060,8,"GWh/mth","ind_man",32.2156697731785 +22,0,2060,8,"GWh/mth","res_com",80.6243801772557 +22,0,2060,9,"GWh/mth","agri",0.0853389704636428 +22,0,2060,9,"GWh/mth","ind_man",33.1839151621051 +22,0,2060,9,"GWh/mth","res_com",82.8830030513748 +22,0,2060,10,"GWh/mth","agri",0.10199065286721 +22,0,2060,10,"GWh/mth","ind_man",34.0656178753934 +22,0,2060,10,"GWh/mth","res_com",85.0025421145171 +22,0,2060,11,"GWh/mth","agri",0.0167495360092521 +22,0,2060,11,"GWh/mth","ind_man",34.8756960656188 +22,0,2060,11,"GWh/mth","res_com",86.5104767784085 +22,0,2060,12,"GWh/mth","agri",0.00145325053551852 +22,0,2060,12,"GWh/mth","ind_man",35.7450219997592 +22,0,2060,12,"GWh/mth","res_com",88.4855726334069 +22,1,2020,1,"GWh/mth","agri",0.025972103091124 +22,1,2020,1,"GWh/mth","ind_man",3.27782161917979 +22,1,2020,1,"GWh/mth","res_com",10.1022121021088 +22,1,2020,2,"GWh/mth","agri",0.0285579187655439 +22,1,2020,2,"GWh/mth","ind_man",3.1863268489812 +22,1,2020,2,"GWh/mth","res_com",9.82926413750036 +22,1,2020,3,"GWh/mth","agri",0.0190386125103676 +22,1,2020,3,"GWh/mth","ind_man",3.11176160980385 +22,1,2020,3,"GWh/mth","res_com",9.62222674629352 +22,1,2020,4,"GWh/mth","agri",0.000962245547478344 +22,1,2020,4,"GWh/mth","ind_man",3.04248888689303 +22,1,2020,4,"GWh/mth","res_com",9.40382729565098 +22,1,2020,5,"GWh/mth","agri",9.50906880324692e-05 +22,1,2020,5,"GWh/mth","ind_man",2.9520608288462 +22,1,2020,5,"GWh/mth","res_com",9.15925527073922 +22,1,2020,6,"GWh/mth","agri",2.48940534272999e-13 +22,1,2020,6,"GWh/mth","ind_man",2.87679561630954 +22,1,2020,6,"GWh/mth","res_com",8.95352796831009 +22,1,2020,7,"GWh/mth","agri",7.53211737761018e-08 +22,1,2020,7,"GWh/mth","ind_man",2.86795925528228 +22,1,2020,7,"GWh/mth","res_com",8.92376327119526 +22,1,2020,8,"GWh/mth","agri",5.97187473900129e-06 +22,1,2020,8,"GWh/mth","ind_man",2.95510025181428 +22,1,2020,8,"GWh/mth","res_com",9.18571602000723 +22,1,2020,9,"GWh/mth","agri",2.64317475705117e-05 +22,1,2020,9,"GWh/mth","ind_man",3.04391610486902 +22,1,2020,9,"GWh/mth","res_com",9.42295078691686 +22,1,2020,10,"GWh/mth","agri",2.93417321058562e-05 +22,1,2020,10,"GWh/mth","ind_man",3.1247935141673 +22,1,2020,10,"GWh/mth","res_com",9.65149512102678 +22,1,2020,11,"GWh/mth","agri",4.29587175094997e-06 +22,1,2020,11,"GWh/mth","ind_man",3.19910090186959 +22,1,2020,11,"GWh/mth","res_com",9.85580523708237 +22,1,2020,12,"GWh/mth","agri",2.89428613875516e-07 +22,1,2020,12,"GWh/mth","ind_man",3.27884300578902 +22,1,2020,12,"GWh/mth","res_com",10.0918391334462 +22,1,2030,1,"GWh/mth","agri",0.0451608131837207 +22,1,2030,1,"GWh/mth","ind_man",4.28105738062538 +22,1,2030,1,"GWh/mth","res_com",13.2102077225106 +22,1,2030,2,"GWh/mth","agri",0.0494259387183002 +22,1,2030,2,"GWh/mth","ind_man",4.16155900433932 +22,1,2030,2,"GWh/mth","res_com",12.8556046641297 +22,1,2030,3,"GWh/mth","agri",0.0329506258122172 +22,1,2030,3,"GWh/mth","ind_man",4.06417174395566 +22,1,2030,3,"GWh/mth","res_com",12.5907143449492 +22,1,2030,4,"GWh/mth","agri",0.00337280656164111 +22,1,2030,4,"GWh/mth","ind_man",3.97369686882575 +22,1,2030,4,"GWh/mth","res_com",12.3038420075854 +22,1,2030,5,"GWh/mth","agri",0.000336403073893526 +22,1,2030,5,"GWh/mth","ind_man",3.85559169096867 +22,1,2030,5,"GWh/mth","res_com",11.9928059650681 +22,1,2030,6,"GWh/mth","agri",8.64846189852808e-13 +22,1,2030,6,"GWh/mth","ind_man",3.75729021789613 +22,1,2030,6,"GWh/mth","res_com",11.730516191673 +22,1,2030,7,"GWh/mth","agri",2.61201725302744e-07 +22,1,2030,7,"GWh/mth","ind_man",3.7457493309936 +22,1,2030,7,"GWh/mth","res_com",11.6909441392654 +22,1,2030,8,"GWh/mth","agri",2.10102701855103e-05 +22,1,2030,8,"GWh/mth","ind_man",3.85956138353955 +22,1,2030,8,"GWh/mth","res_com",12.0317679528635 +22,1,2030,9,"GWh/mth","agri",9.32889457984331e-05 +22,1,2030,9,"GWh/mth","ind_man",3.97556091231553 +22,1,2030,9,"GWh/mth","res_com",12.3326504942898 +22,1,2030,10,"GWh/mth","agri",0.000103772917244428 +22,1,2030,10,"GWh/mth","ind_man",4.08119229505346 +22,1,2030,10,"GWh/mth","res_com",12.6261929002887 +22,1,2030,11,"GWh/mth","agri",1.44682343654277e-05 +22,1,2030,11,"GWh/mth","ind_man",4.17824278391975 +22,1,2030,11,"GWh/mth","res_com",12.8869710939176 +22,1,2030,12,"GWh/mth","agri",4.52701110821862e-07 +22,1,2030,12,"GWh/mth","ind_man",4.28239138082122 +22,1,2030,12,"GWh/mth","res_com",13.1931248971112 +22,1,2040,1,"GWh/mth","agri",0.0698909755323498 +22,1,2040,1,"GWh/mth","ind_man",6.51486210920676 +22,1,2040,1,"GWh/mth","res_com",20.239869773657 +22,1,2040,2,"GWh/mth","agri",0.0764900537209414 +22,1,2040,2,"GWh/mth","ind_man",6.33301090410471 +22,1,2040,2,"GWh/mth","res_com",19.6967819016629 +22,1,2040,3,"GWh/mth","agri",0.0509991561688629 +22,1,2040,3,"GWh/mth","ind_man",6.18480813170918 +22,1,2040,3,"GWh/mth","res_com",19.2914703406637 +22,1,2040,4,"GWh/mth","agri",0.00694171470962142 +22,1,2040,4,"GWh/mth","ind_man",6.04712454482557 +22,1,2040,4,"GWh/mth","res_com",18.8518261742692 +22,1,2040,5,"GWh/mth","agri",0.000708493859531065 +22,1,2040,5,"GWh/mth","ind_man",5.86739349249154 +22,1,2040,5,"GWh/mth","res_com",18.376081139202 +22,1,2040,6,"GWh/mth","agri",1.73610662847646e-05 +22,1,2040,6,"GWh/mth","ind_man",5.71779948211974 +22,1,2040,6,"GWh/mth","res_com",17.9748357275488 +22,1,2040,7,"GWh/mth","agri",1.7866171610671e-05 +22,1,2040,7,"GWh/mth","ind_man",5.70023669795148 +22,1,2040,7,"GWh/mth","res_com",17.9141461442269 +22,1,2040,8,"GWh/mth","agri",5.75308759542093e-05 +22,1,2040,8,"GWh/mth","ind_man",5.87343452334346 +22,1,2040,8,"GWh/mth","res_com",18.4361791096395 +22,1,2040,9,"GWh/mth","agri",0.000197834860423878 +22,1,2040,9,"GWh/mth","ind_man",6.04996122399658 +22,1,2040,9,"GWh/mth","res_com",18.8963124434707 +22,1,2040,10,"GWh/mth","agri",0.000218178011859478 +22,1,2040,10,"GWh/mth","ind_man",6.21070980355473 +22,1,2040,10,"GWh/mth","res_com",19.3455714219943 +22,1,2040,11,"GWh/mth","agri",4.60011605791068e-05 +22,1,2040,11,"GWh/mth","ind_man",6.35840008106804 +22,1,2040,11,"GWh/mth","res_com",19.7445362991835 +22,1,2040,12,"GWh/mth","agri",1.83627218417531e-05 +22,1,2040,12,"GWh/mth","ind_man",6.51689217480898 +22,1,2040,12,"GWh/mth","res_com",20.2133768505254 +22,1,2050,1,"GWh/mth","agri",0.108289838610446 +22,1,2050,1,"GWh/mth","ind_man",10.1540438587085 +22,1,2050,1,"GWh/mth","res_com",31.5373397798832 +22,1,2050,2,"GWh/mth","agri",0.118515394603225 +22,1,2050,2,"GWh/mth","ind_man",9.87061113497435 +22,1,2050,2,"GWh/mth","res_com",30.6909227732973 +22,1,2050,3,"GWh/mth","agri",0.0790161505003856 +22,1,2050,3,"GWh/mth","ind_man",9.63962275399853 +22,1,2050,3,"GWh/mth","res_com",30.0588988624384 +22,1,2050,4,"GWh/mth","agri",0.0133656603318278 +22,1,2050,4,"GWh/mth","ind_man",9.42502954290589 +22,1,2050,4,"GWh/mth","res_com",29.3739573230478 +22,1,2050,5,"GWh/mth","agri",0.00135610344238164 +22,1,2050,5,"GWh/mth","ind_man",9.14490128269413 +22,1,2050,5,"GWh/mth","res_com",28.6319478262401 +22,1,2050,6,"GWh/mth","agri",2.26678144850202e-05 +22,1,2050,6,"GWh/mth","ind_man",8.91174452252744 +22,1,2050,6,"GWh/mth","res_com",28.0061872629922 +22,1,2050,7,"GWh/mth","agri",2.35821106017862e-05 +22,1,2050,7,"GWh/mth","ind_man",8.88437122164459 +22,1,2050,7,"GWh/mth","res_com",27.9116749406832 +22,1,2050,8,"GWh/mth","agri",9.69488601488655e-05 +22,1,2050,8,"GWh/mth","ind_man",9.15431681462619 +22,1,2050,8,"GWh/mth","res_com",28.7252342978135 +22,1,2050,9,"GWh/mth","agri",0.000366221302882703 +22,1,2050,9,"GWh/mth","ind_man",9.42945078225564 +22,1,2050,9,"GWh/mth","res_com",29.4429668202301 +22,1,2050,10,"GWh/mth","agri",0.000406314020022959 +22,1,2050,10,"GWh/mth","ind_man",9.679993019328 +22,1,2050,10,"GWh/mth","res_com",30.1434257439117 +22,1,2050,11,"GWh/mth","agri",8.09095948716356e-05 +22,1,2050,11,"GWh/mth","ind_man",9.91018262737138 +22,1,2050,11,"GWh/mth","res_com",30.7656014448413 +22,1,2050,12,"GWh/mth","agri",2.84538290175255e-05 +22,1,2050,12,"GWh/mth","ind_man",10.1572079126541 +22,1,2050,12,"GWh/mth","res_com",31.4963423192976 +22,1,2060,1,"GWh/mth","agri",0.166849159673221 +22,1,2060,1,"GWh/mth","ind_man",15.7996696063995 +22,1,2060,1,"GWh/mth","res_com",49.0146706935425 +22,1,2060,2,"GWh/mth","agri",0.182601735881076 +22,1,2060,2,"GWh/mth","ind_man",15.3586489201631 +22,1,2060,2,"GWh/mth","res_com",47.6987238934636 +22,1,2060,3,"GWh/mth","agri",0.121752736245079 +22,1,2060,3,"GWh/mth","ind_man",14.9992315143376 +22,1,2060,3,"GWh/mth","res_com",46.7152783169725 +22,1,2060,4,"GWh/mth","agri",0.0234224672884016 +22,1,2060,4,"GWh/mth","ind_man",14.6653249562984 +22,1,2060,4,"GWh/mth","res_com",45.6510086007051 +22,1,2060,5,"GWh/mth","agri",0.00242119815406805 +22,1,2060,5,"GWh/mth","ind_man",14.2294460079359 +22,1,2060,5,"GWh/mth","res_com",44.4960429479155 +22,1,2060,6,"GWh/mth","agri",5.47369784443992e-05 +22,1,2060,6,"GWh/mth","ind_man",13.8666546089236 +22,1,2060,6,"GWh/mth","res_com",43.5221540701975 +22,1,2060,7,"GWh/mth","agri",5.64011537528286e-05 +22,1,2060,7,"GWh/mth","ind_man",13.8240618137769 +22,1,2060,7,"GWh/mth","res_com",43.3753947721148 +22,1,2060,8,"GWh/mth","agri",0.000194364567763657 +22,1,2060,8,"GWh/mth","ind_man",14.2440965546309 +22,1,2060,8,"GWh/mth","res_com",44.6401514515535 +22,1,2060,9,"GWh/mth","agri",0.000713109308520839 +22,1,2060,9,"GWh/mth","ind_man",14.6722043948698 +22,1,2060,9,"GWh/mth","res_com",45.7575061488112 +22,1,2060,10,"GWh/mth","agri",0.000792213270564224 +22,1,2060,10,"GWh/mth","ind_man",15.0620475571875 +22,1,2060,10,"GWh/mth","res_com",46.8472066969922 +22,1,2060,11,"GWh/mth","agri",0.000159311170275508 +22,1,2060,11,"GWh/mth","ind_man",15.4202220741109 +22,1,2060,11,"GWh/mth","res_com",47.8154470926517 +22,1,2060,12,"GWh/mth","agri",5.64089556076685e-05 +22,1,2060,12,"GWh/mth","ind_man",15.8045928672846 +22,1,2060,12,"GWh/mth","res_com",48.9516479988267 +23,0,2020,1,"GWh/mth","agri",0.336457876741615 +23,0,2020,1,"GWh/mth","ind_man",0.203316274564751 +23,0,2020,1,"GWh/mth","res_com",1.20030815052235 +23,0,2020,2,"GWh/mth","agri",0.193143502741971 +23,0,2020,2,"GWh/mth","ind_man",0.197641049375532 +23,0,2020,2,"GWh/mth","res_com",1.25410007560927 +23,0,2020,3,"GWh/mth","agri",0.128796575000419 +23,0,2020,3,"GWh/mth","ind_man",0.19301592683901 +23,0,2020,3,"GWh/mth","res_com",1.28284171468856 +23,0,2020,4,"GWh/mth","agri",0.0017815027799502 +23,0,2020,4,"GWh/mth","ind_man",0.188719087783225 +23,0,2020,4,"GWh/mth","res_com",1.28064802706401 +23,0,2020,5,"GWh/mth","agri",0.000286230507207074 +23,0,2020,5,"GWh/mth","ind_man",0.183110028470594 +23,0,2020,5,"GWh/mth","res_com",1.34771705754642 +23,0,2020,6,"GWh/mth","agri",1.90502418044296e-06 +23,0,2020,6,"GWh/mth","ind_man",0.178441488081533 +23,0,2020,6,"GWh/mth","res_com",1.37786427714947 +23,0,2020,7,"GWh/mth","agri",2.11948783605788e-06 +23,0,2020,7,"GWh/mth","ind_man",0.177893387478908 +23,0,2020,7,"GWh/mth","res_com",1.39342914918647 +23,0,2020,8,"GWh/mth","agri",2.03280588525764e-05 +23,0,2020,8,"GWh/mth","ind_man",0.183298557385981 +23,0,2020,8,"GWh/mth","res_com",1.33038395898676 +23,0,2020,9,"GWh/mth","agri",5.72736935859971e-05 +23,0,2020,9,"GWh/mth","ind_man",0.188807615066154 +23,0,2020,9,"GWh/mth","res_com",1.31129037345622 +23,0,2020,10,"GWh/mth","agri",0.000201506863231652 +23,0,2020,10,"GWh/mth","ind_man",0.19382426803432 +23,0,2020,10,"GWh/mth","res_com",1.3194693626955 +23,0,2020,11,"GWh/mth","agri",0.00833174394063557 +23,0,2020,11,"GWh/mth","ind_man",0.19843339659454 +23,0,2020,11,"GWh/mth","res_com",1.15408472974931 +23,0,2020,12,"GWh/mth","agri",0.0058910933125917 +23,0,2020,12,"GWh/mth","ind_man",0.203379628994737 +23,0,2020,12,"GWh/mth","res_com",1.11028741602656 +23,0,2030,1,"GWh/mth","agri",0.523223646247175 +23,0,2030,1,"GWh/mth","ind_man",4.16290128450648 +23,0,2030,1,"GWh/mth","res_com",9.01333691788107 +23,0,2030,2,"GWh/mth","agri",0.300581192566869 +23,0,2030,2,"GWh/mth","ind_man",4.04670103304781 +23,0,2030,2,"GWh/mth","res_com",8.89808793602649 +23,0,2030,3,"GWh/mth","agri",0.200447071678515 +23,0,2030,3,"GWh/mth","ind_man",3.95200163630987 +23,0,2030,3,"GWh/mth","res_com",8.78059798352949 +23,0,2030,4,"GWh/mth","agri",0.00315729737194865 +23,0,2030,4,"GWh/mth","ind_man",3.86402384474875 +23,0,2030,4,"GWh/mth","res_com",8.62631129148035 +23,0,2030,5,"GWh/mth","agri",0.000710154909346532 +23,0,2030,5,"GWh/mth","ind_man",3.74917833979636 +23,0,2030,5,"GWh/mth","res_com",8.53412828696958 +23,0,2030,6,"GWh/mth","agri",2.13791492457878e-06 +23,0,2030,6,"GWh/mth","ind_man",3.6535899624075 +23,0,2030,6,"GWh/mth","res_com",8.41731259879969 +23,0,2030,7,"GWh/mth","agri",3.45722274592905e-06 +23,0,2030,7,"GWh/mth","ind_man",3.64236760105157 +23,0,2030,7,"GWh/mth","res_com",8.42237465932826 +23,0,2030,8,"GWh/mth","agri",6.27004474959549e-05 +23,0,2030,8,"GWh/mth","ind_man",3.75303846986076 +23,0,2030,8,"GWh/mth","res_com",8.51370362680161 +23,0,2030,9,"GWh/mth","agri",0.000182926838093144 +23,0,2030,9,"GWh/mth","ind_man",3.86583644111176 +23,0,2030,9,"GWh/mth","res_com",8.67727556859722 +23,0,2030,10,"GWh/mth","agri",0.000509422270087678 +23,0,2030,10,"GWh/mth","ind_man",3.96855242452138 +23,0,2030,10,"GWh/mth","res_com",8.86617454806707 +23,0,2030,11,"GWh/mth","agri",0.0180579305214576 +23,0,2030,11,"GWh/mth","ind_man",4.06292434455027 +23,0,2030,11,"GWh/mth","res_com",8.76972270790053 +23,0,2030,12,"GWh/mth","agri",0.0126833459409272 +23,0,2030,12,"GWh/mth","ind_man",4.16419846663581 +23,0,2030,12,"GWh/mth","res_com",8.87498426665829 +23,0,2040,1,"GWh/mth","agri",0.809540944038257 +23,0,2040,1,"GWh/mth","ind_man",5.53997033337827 +23,0,2040,1,"GWh/mth","res_com",12.2241854949005 +23,0,2040,2,"GWh/mth","agri",0.46506457446263 +23,0,2040,2,"GWh/mth","ind_man",5.38533156060506 +23,0,2040,2,"GWh/mth","res_com",12.0939204236638 +23,0,2040,3,"GWh/mth","agri",0.310163318697218 +23,0,2040,3,"GWh/mth","ind_man",5.25930602873151 +23,0,2040,3,"GWh/mth","res_com",11.9512972198791 +23,0,2040,4,"GWh/mth","agri",0.00645138308402237 +23,0,2040,4,"GWh/mth","ind_man",5.14222557883981 +23,0,2040,4,"GWh/mth","res_com",11.7489619804686 +23,0,2040,5,"GWh/mth","agri",0.0015884302940867 +23,0,2040,5,"GWh/mth","ind_man",4.98938969663284 +23,0,2040,5,"GWh/mth","res_com",11.6538247961543 +23,0,2040,6,"GWh/mth","agri",4.9705665657233e-06 +23,0,2040,6,"GWh/mth","ind_man",4.86218111330155 +23,0,2040,6,"GWh/mth","res_com",11.5126124303708 +23,0,2040,7,"GWh/mth","agri",7.49445179753235e-06 +23,0,2040,7,"GWh/mth","ind_man",4.84724644520993 +23,0,2040,7,"GWh/mth","res_com",11.5250851224063 +23,0,2040,8,"GWh/mth","agri",0.000135948903595532 +23,0,2040,8,"GWh/mth","ind_man",4.99452674038628 +23,0,2040,8,"GWh/mth","res_com",11.6206271878228 +23,0,2040,9,"GWh/mth","agri",0.000396933188587874 +23,0,2040,9,"GWh/mth","ind_man",5.14463777393914 +23,0,2040,9,"GWh/mth","res_com",11.8270652872258 +23,0,2040,10,"GWh/mth","agri",0.00106638778336007 +23,0,2040,10,"GWh/mth","ind_man",5.281331743352 +23,0,2040,10,"GWh/mth","res_com",12.0768588540133 +23,0,2040,11,"GWh/mth","agri",0.037241263172809 +23,0,2040,11,"GWh/mth","ind_man",5.40692147069187 +23,0,2040,11,"GWh/mth","res_com",11.8886029214761 +23,0,2040,12,"GWh/mth","agri",0.0265844621605433 +23,0,2040,12,"GWh/mth","ind_man",5.5416966175302 +23,0,2040,12,"GWh/mth","res_com",12.0095874084183 +23,0,2050,1,"GWh/mth","agri",1.25441857410051 +23,0,2050,1,"GWh/mth","ind_man",6.32213289206495 +23,0,2050,1,"GWh/mth","res_com",14.7666225247319 +23,0,2050,2,"GWh/mth","agri",0.720637596724821 +23,0,2050,2,"GWh/mth","ind_man",6.14566139259721 +23,0,2050,2,"GWh/mth","res_com",14.6813169552794 +23,0,2050,3,"GWh/mth","agri",0.480623628440746 +23,0,2050,3,"GWh/mth","ind_man",6.00184290398593 +23,0,2050,3,"GWh/mth","res_com",14.5552971397519 +23,0,2050,4,"GWh/mth","agri",0.0107056997473374 +23,0,2050,4,"GWh/mth","ind_man",5.86823241173864 +23,0,2050,4,"GWh/mth","res_com",14.3300093603892 +23,0,2050,5,"GWh/mth","agri",0.00278867747914807 +23,0,2050,5,"GWh/mth","ind_man",5.69381834454286 +23,0,2050,5,"GWh/mth","res_com",14.2977771904794 +23,0,2050,6,"GWh/mth","agri",9.52887686159387e-06 +23,0,2050,6,"GWh/mth","ind_man",5.54864977495933 +23,0,2050,6,"GWh/mth","res_com",14.1748351532468 +23,0,2050,7,"GWh/mth","agri",1.35716568047548e-05 +23,0,2050,7,"GWh/mth","ind_man",5.53160655077359 +23,0,2050,7,"GWh/mth","res_com",14.2054178578647 +23,0,2050,8,"GWh/mth","agri",0.000246210704401361 +23,0,2050,8,"GWh/mth","ind_man",5.69968066353146 +23,0,2050,8,"GWh/mth","res_com",14.2424644578523 +23,0,2050,9,"GWh/mth","agri",0.000719100119972819 +23,0,2050,9,"GWh/mth","ind_man",5.87098517340736 +23,0,2050,9,"GWh/mth","res_com",14.449215813414 +23,0,2050,10,"GWh/mth","agri",0.00190480680911913 +23,0,2050,10,"GWh/mth","ind_man",6.02697832646906 +23,0,2050,10,"GWh/mth","res_com",14.7332603002678 +23,0,2050,11,"GWh/mth","agri",0.0631246272482361 +23,0,2050,11,"GWh/mth","ind_man",6.17029948133825 +23,0,2050,11,"GWh/mth","res_com",14.3468970876771 +23,0,2050,12,"GWh/mth","agri",0.0452497936203349 +23,0,2050,12,"GWh/mth","ind_man",6.32410290222046 +23,0,2050,12,"GWh/mth","res_com",14.4327925038929 +23,0,2060,1,"GWh/mth","agri",1.93244496426604 +23,0,2060,1,"GWh/mth","ind_man",7.21811854929574 +23,0,2060,1,"GWh/mth","res_com",18.1226423068747 +23,0,2060,2,"GWh/mth","agri",1.11014977265482 +23,0,2060,2,"GWh/mth","ind_man",7.01663714650383 +23,0,2060,2,"GWh/mth","res_com",18.1203409307161 +23,0,2060,3,"GWh/mth","agri",0.7404252604897 +23,0,2060,3,"GWh/mth","ind_man",6.85243640632646 +23,0,2060,3,"GWh/mth","res_com",18.0314287419061 +23,0,2060,4,"GWh/mth","agri",0.0177733625950443 +23,0,2060,4,"GWh/mth","ind_man",6.69989036072195 +23,0,2060,4,"GWh/mth","res_com",17.7821246854047 +23,0,2060,5,"GWh/mth","agri",0.00493102791429779 +23,0,2060,5,"GWh/mth","ind_man",6.50075797372893 +23,0,2060,5,"GWh/mth","res_com",17.8600781479224 +23,0,2060,6,"GWh/mth","agri",1.85731345183136e-05 +23,0,2060,6,"GWh/mth","ind_man",6.33501581633127 +23,0,2060,6,"GWh/mth","res_com",17.7768950755055 +23,0,2060,7,"GWh/mth","agri",2.22569696816946e-05 +23,0,2060,7,"GWh/mth","ind_man",6.31555719141224 +23,0,2060,7,"GWh/mth","res_com",17.836477474076 +23,0,2060,8,"GWh/mth","agri",0.000403795991741899 +23,0,2060,8,"GWh/mth","ind_man",6.50745111260404 +23,0,2060,8,"GWh/mth","res_com",17.7705792249353 +23,0,2060,9,"GWh/mth","agri",0.00117959339072329 +23,0,2060,9,"GWh/mth","ind_man",6.70303324942771 +23,0,2060,9,"GWh/mth","res_com",17.9637494588736 +23,0,2060,10,"GWh/mth","agri",0.00323499528237118 +23,0,2060,10,"GWh/mth","ind_man",6.88113407250452 +23,0,2060,10,"GWh/mth","res_com",18.287192898365 +23,0,2060,11,"GWh/mth","agri",0.105519308287413 +23,0,2060,11,"GWh/mth","ind_man",7.04476699578051 +23,0,2060,11,"GWh/mth","res_com",17.5871375275585 +23,0,2060,12,"GWh/mth","agri",0.0759523993380483 +23,0,2060,12,"GWh/mth","ind_man",7.2203677533363 +23,0,2060,12,"GWh/mth","res_com",17.6069323313908 +23,1,2020,1,"GWh/mth","agri",0.0140492300854981 +23,1,2020,1,"GWh/mth","ind_man",1.83400289697575 +23,1,2020,1,"GWh/mth","res_com",5.85556202324258 +23,1,2020,2,"GWh/mth","agri",0.00714271100334638 +23,1,2020,2,"GWh/mth","ind_man",1.78280985077077 +23,1,2020,2,"GWh/mth","res_com",5.70225817934652 +23,1,2020,3,"GWh/mth","agri",0.00477860303998041 +23,1,2020,3,"GWh/mth","ind_man",1.74108919585021 +23,1,2020,3,"GWh/mth","res_com",5.59419527683553 +23,1,2020,4,"GWh/mth","agri",0.000831725976633784 +23,1,2020,4,"GWh/mth","ind_man",1.70232980340602 +23,1,2020,4,"GWh/mth","res_com",5.46514366405905 +23,1,2020,5,"GWh/mth","agri",1.08551282214115e-05 +23,1,2020,5,"GWh/mth","ind_man",1.65173360272952 +23,1,2020,5,"GWh/mth","res_com",5.34130069967791 +23,1,2020,6,"GWh/mth","agri",1.02966106473628e-09 +23,1,2020,6,"GWh/mth","ind_man",1.60962129953827 +23,1,2020,6,"GWh/mth","res_com",5.23580065493187 +23,1,2020,7,"GWh/mth","agri",9.61976544616013e-13 +23,1,2020,7,"GWh/mth","ind_man",1.60467718920967 +23,1,2020,7,"GWh/mth","res_com",5.21728488551886 +23,1,2020,8,"GWh/mth","agri",2.82887020596684e-11 +23,1,2020,8,"GWh/mth","ind_man",1.65343421709364 +23,1,2020,8,"GWh/mth","res_com",5.36547239324906 +23,1,2020,9,"GWh/mth","agri",1.92840794563503e-10 +23,1,2020,9,"GWh/mth","ind_man",1.70312835872925 +23,1,2020,9,"GWh/mth","res_com",5.48391402737134 +23,1,2020,10,"GWh/mth","agri",1.26810975916664e-06 +23,1,2020,10,"GWh/mth","ind_man",1.74838079165147 +23,1,2020,10,"GWh/mth","res_com",5.60559312479277 +23,1,2020,11,"GWh/mth","agri",6.87940267163612e-05 +23,1,2020,11,"GWh/mth","ind_man",1.78995717381799 +23,1,2020,11,"GWh/mth","res_com",5.71077288531032 +23,1,2020,12,"GWh/mth","agri",6.47511178407666e-05 +23,1,2020,12,"GWh/mth","ind_man",1.83457438200999 +23,1,2020,12,"GWh/mth","res_com",5.8423586201391 +23,1,2030,1,"GWh/mth","agri",0.0250115440197214 +23,1,2030,1,"GWh/mth","ind_man",2.8094076164527 +23,1,2030,1,"GWh/mth","res_com",8.59803302181139 +23,1,2030,2,"GWh/mth","agri",0.0126904882685806 +23,1,2030,2,"GWh/mth","ind_man",2.73098781997645 +23,1,2030,2,"GWh/mth","res_com",8.37409960239531 +23,1,2030,3,"GWh/mth","agri",0.00849064554407223 +23,1,2030,3,"GWh/mth","ind_man",2.66707825588007 +23,1,2030,3,"GWh/mth","res_com",8.21794753297205 +23,1,2030,4,"GWh/mth","agri",0.00150834227732459 +23,1,2030,4,"GWh/mth","ind_man",2.60770488601171 +23,1,2030,4,"GWh/mth","res_com",8.02799329236347 +23,1,2030,5,"GWh/mth","agri",2.1553806229053e-05 +23,1,2030,5,"GWh/mth","ind_man",2.53019936419464 +23,1,2030,5,"GWh/mth","res_com",7.84998100415704 +23,1,2030,6,"GWh/mth","agri",2.10472789331917e-09 +23,1,2030,6,"GWh/mth","ind_man",2.46568985577077 +23,1,2030,6,"GWh/mth","res_com",7.69795767361944 +23,1,2030,7,"GWh/mth","agri",3.01766791874378e-12 +23,1,2030,7,"GWh/mth","ind_man",2.45811624657055 +23,1,2030,7,"GWh/mth","res_com",7.67055476850747 +23,1,2030,8,"GWh/mth","agri",8.90703542051691e-11 +23,1,2030,8,"GWh/mth","ind_man",2.53280444129407 +23,1,2030,8,"GWh/mth","res_com",7.88719897436624 +23,1,2030,9,"GWh/mth","agri",6.09038656366661e-10 +23,1,2030,9,"GWh/mth","ind_man",2.60892814875079 +23,1,2030,9,"GWh/mth","res_com",8.05717935080514 +23,1,2030,10,"GWh/mth","agri",3.27523271814256e-06 +23,1,2030,10,"GWh/mth","ind_man",2.67824784825854 +23,1,2030,10,"GWh/mth","res_com",8.23362994067953 +23,1,2030,11,"GWh/mth","agri",0.000136571144863884 +23,1,2030,11,"GWh/mth","ind_man",2.74193640890137 +23,1,2030,11,"GWh/mth","res_com",8.38497094060798 +23,1,2030,12,"GWh/mth","agri",0.000121236720513978 +23,1,2030,12,"GWh/mth","ind_man",2.81028304277319 +23,1,2030,12,"GWh/mth","res_com",8.57697957984476 +23,1,2040,1,"GWh/mth","agri",0.038698306360593 +23,1,2040,1,"GWh/mth","ind_man",3.86444117268244 +23,1,2040,1,"GWh/mth","res_com",12.2210920483088 +23,1,2040,2,"GWh/mth","agri",0.0196349494655673 +23,1,2040,2,"GWh/mth","ind_man",3.75657192349217 +23,1,2040,2,"GWh/mth","res_com",11.9048187113547 +23,1,2040,3,"GWh/mth","agri",0.0131512795114427 +23,1,2040,3,"GWh/mth","ind_man",3.66866202057318 +23,1,2040,3,"GWh/mth","res_com",11.6878298155448 +23,1,2040,4,"GWh/mth","agri",0.00305470261336697 +23,1,2040,4,"GWh/mth","ind_man",3.58699181588785 +23,1,2040,4,"GWh/mth","res_com",11.416794653715 +23,1,2040,5,"GWh/mth","agri",4.32838922896792e-05 +23,1,2040,5,"GWh/mth","ind_man",3.48038018435882 +23,1,2040,5,"GWh/mth","res_com",11.1712192102906 +23,1,2040,6,"GWh/mth","agri",4.42684013719864e-09 +23,1,2040,6,"GWh/mth","ind_man",3.39164503644978 +23,1,2040,6,"GWh/mth","res_com",10.9608494188304 +23,1,2040,7,"GWh/mth","agri",4.93431848541468e-12 +23,1,2040,7,"GWh/mth","ind_man",3.38122726472889 +23,1,2040,7,"GWh/mth","res_com",10.9213678469848 +23,1,2040,8,"GWh/mth","agri",2.2349767314651e-10 +23,1,2040,8,"GWh/mth","ind_man",3.48396356155979 +23,1,2040,8,"GWh/mth","res_com",11.227800269094 +23,1,2040,9,"GWh/mth","agri",1.96425009219795e-09 +23,1,2040,9,"GWh/mth","ind_man",3.5886744577609 +23,1,2040,9,"GWh/mth","res_com",11.46148074946 +23,1,2040,10,"GWh/mth","agri",5.91253397776495e-06 +23,1,2040,10,"GWh/mth","ind_man",3.68402619642884 +23,1,2040,10,"GWh/mth","res_com",11.7077923672718 +23,1,2040,11,"GWh/mth","agri",0.000284985461171598 +23,1,2040,11,"GWh/mth","ind_man",3.77163210115256 +23,1,2040,11,"GWh/mth","res_com",11.91742260185 +23,1,2040,12,"GWh/mth","agri",0.000251897566573018 +23,1,2040,12,"GWh/mth","ind_man",3.86564535305724 +23,1,2040,12,"GWh/mth","res_com",12.1881806503871 +23,1,2050,1,"GWh/mth","agri",0.0599646931294258 +23,1,2050,1,"GWh/mth","ind_man",5.93480214735596 +23,1,2050,1,"GWh/mth","res_com",18.8727415764488 +23,1,2050,2,"GWh/mth","agri",0.0304252002230643 +23,1,2050,2,"GWh/mth","ind_man",5.769142321492 +23,1,2050,2,"GWh/mth","res_com",18.3844591114487 +23,1,2050,3,"GWh/mth","agri",0.0203790503792579 +23,1,2050,3,"GWh/mth","ind_man",5.63413499253962 +23,1,2050,3,"GWh/mth","res_com",18.0496897179113 +23,1,2050,4,"GWh/mth","agri",0.00476442579994835 +23,1,2050,4,"GWh/mth","ind_man",5.50871025853983 +23,1,2050,4,"GWh/mth","res_com",17.6310693764149 +23,1,2050,5,"GWh/mth","agri",7.02988821637133e-05 +23,1,2050,5,"GWh/mth","ind_man",5.34498181464366 +23,1,2050,5,"GWh/mth","res_com",17.2523153964485 +23,1,2050,6,"GWh/mth","agri",6.96984246609418e-09 +23,1,2050,6,"GWh/mth","ind_man",5.20870711855585 +23,1,2050,6,"GWh/mth","res_com",16.9278163357976 +23,1,2050,7,"GWh/mth","agri",1.09113943531793e-11 +23,1,2050,7,"GWh/mth","ind_man",5.19270806171502 +23,1,2050,7,"GWh/mth","res_com",16.8668114601511 +23,1,2050,8,"GWh/mth","agri",3.86087549312796e-10 +23,1,2050,8,"GWh/mth","ind_man",5.35048497376986 +23,1,2050,8,"GWh/mth","res_com",17.3399304993583 +23,1,2050,9,"GWh/mth","agri",2.9985320248397e-09 +23,1,2050,9,"GWh/mth","ind_man",5.51129436996894 +23,1,2050,9,"GWh/mth","res_com",17.7002843806776 +23,1,2050,10,"GWh/mth","agri",1.15333573674437e-05 +23,1,2050,10,"GWh/mth","ind_man",5.65773047239971 +23,1,2050,10,"GWh/mth","res_com",18.080366642266 +23,1,2050,11,"GWh/mth","agri",0.000478326191714567 +23,1,2050,11,"GWh/mth","ind_man",5.79227093717653 +23,1,2050,11,"GWh/mth","res_com",18.4037385366292 +23,1,2050,12,"GWh/mth","agri",0.000424972590088264 +23,1,2050,12,"GWh/mth","ind_man",5.93665146319617 +23,1,2050,12,"GWh/mth","res_com",18.8217238901505 +23,1,2060,1,"GWh/mth","agri",0.0923762384137281 +23,1,2060,1,"GWh/mth","ind_man",9.2577703230334 +23,1,2060,1,"GWh/mth","res_com",29.333571355122 +23,1,2060,2,"GWh/mth","agri",0.0468703399102698 +23,1,2060,2,"GWh/mth","ind_man",8.99935553825654 +23,1,2060,2,"GWh/mth","res_com",28.5741120144132 +23,1,2060,3,"GWh/mth","agri",0.0313993044982374 +23,1,2060,3,"GWh/mth","ind_man",8.78875595762449 +23,1,2060,3,"GWh/mth","res_com",28.0524835980509 +23,1,2060,4,"GWh/mth","agri",0.00760259209957597 +23,1,2060,4,"GWh/mth","ind_man",8.59310438384543 +23,1,2060,4,"GWh/mth","res_com",27.4021015877541 +23,1,2060,5,"GWh/mth","agri",0.000113480804970827 +23,1,2060,5,"GWh/mth","ind_man",8.33770238537886 +23,1,2060,5,"GWh/mth","res_com",26.8114566115133 +23,1,2060,6,"GWh/mth","agri",1.13155518709899e-08 +23,1,2060,6,"GWh/mth","ind_man",8.12512582327995 +23,1,2060,6,"GWh/mth","res_com",26.3055942461948 +23,1,2060,7,"GWh/mth","agri",1.82528745547277e-11 +23,1,2060,7,"GWh/mth","ind_man",8.10016869919393 +23,1,2060,7,"GWh/mth","res_com",26.2109149158237 +23,1,2060,8,"GWh/mth","agri",7.96893122580929e-10 +23,1,2060,8,"GWh/mth","ind_man",8.3462868304836 +23,1,2060,8,"GWh/mth","res_com",26.9466696073339 +23,1,2060,9,"GWh/mth","agri",6.89465368346072e-09 +23,1,2060,9,"GWh/mth","ind_man",8.59713537081109 +23,1,2060,9,"GWh/mth","res_com",27.5088411987979 +23,1,2060,10,"GWh/mth","agri",1.92633082114323e-05 +23,1,2060,10,"GWh/mth","ind_man",8.82556283471707 +23,1,2060,10,"GWh/mth","res_com",28.1007750874214 +23,1,2060,11,"GWh/mth","agri",0.000791671177943053 +23,1,2060,11,"GWh/mth","ind_man",9.03543414822208 +23,1,2060,11,"GWh/mth","res_com",28.6048250904674 +23,1,2060,12,"GWh/mth","agri",0.000693155709822016 +23,1,2060,12,"GWh/mth","ind_man",9.26065509338941 +23,1,2060,12,"GWh/mth","res_com",29.2550590654537 +24,0,2020,1,"GWh/mth","agri",1.3730670684322e-11 +24,0,2020,1,"GWh/mth","ind_man",0 +24,0,2020,1,"GWh/mth","res_com",0.0836522385461085 +24,0,2020,2,"GWh/mth","agri",0 +24,0,2020,2,"GWh/mth","ind_man",0 +24,0,2020,2,"GWh/mth","res_com",0.0879079609393603 +24,0,2020,3,"GWh/mth","agri",3.67425648650504e-06 +24,0,2020,3,"GWh/mth","ind_man",0 +24,0,2020,3,"GWh/mth","res_com",0.0908094916409088 +24,0,2020,4,"GWh/mth","agri",0.000204939604315861 +24,0,2020,4,"GWh/mth","ind_man",0 +24,0,2020,4,"GWh/mth","res_com",0.090552509590216 +24,0,2020,5,"GWh/mth","agri",8.59393367906182e-05 +24,0,2020,5,"GWh/mth","ind_man",0 +24,0,2020,5,"GWh/mth","res_com",0.0965780679760852 +24,0,2020,6,"GWh/mth","agri",8.04128590178448e-08 +24,0,2020,6,"GWh/mth","ind_man",0 +24,0,2020,6,"GWh/mth","res_com",0.0996859321189777 +24,0,2020,7,"GWh/mth","agri",9.18759938631896e-12 +24,0,2020,7,"GWh/mth","ind_man",0 +24,0,2020,7,"GWh/mth","res_com",0.100725891692155 +24,0,2020,8,"GWh/mth","agri",2.83417618350694e-11 +24,0,2020,8,"GWh/mth","ind_man",0 +24,0,2020,8,"GWh/mth","res_com",0.0958881714997771 +24,0,2020,9,"GWh/mth","agri",1.23540708820369e-10 +24,0,2020,9,"GWh/mth","ind_man",0 +24,0,2020,9,"GWh/mth","res_com",0.0932596533279182 +24,0,2020,10,"GWh/mth","agri",5.85639850003786e-06 +24,0,2020,10,"GWh/mth","ind_man",0 +24,0,2020,10,"GWh/mth","res_com",0.0930836865265068 +24,0,2020,11,"GWh/mth","agri",5.45942805303253e-05 +24,0,2020,11,"GWh/mth","ind_man",0 +24,0,2020,11,"GWh/mth","res_com",0.0802425038497214 +24,0,2020,12,"GWh/mth","agri",9.41861396587387e-05 +24,0,2020,12,"GWh/mth","ind_man",0 +24,0,2020,12,"GWh/mth","res_com",0.0766827119808419 +24,0,2030,1,"GWh/mth","agri",5.237045334483e-11 +24,0,2030,1,"GWh/mth","ind_man",0.347329494964967 +24,0,2030,1,"GWh/mth","res_com",0.755086569105102 +24,0,2030,2,"GWh/mth","agri",0 +24,0,2030,2,"GWh/mth","ind_man",0.33763438765984 +24,0,2030,2,"GWh/mth","res_com",0.744318316985587 +24,0,2030,3,"GWh/mth","agri",9.52930218076641e-06 +24,0,2030,3,"GWh/mth","ind_man",0.329733192941413 +24,0,2030,3,"GWh/mth","res_com",0.734656089426088 +24,0,2030,4,"GWh/mth","agri",0.000521153854264038 +24,0,2030,4,"GWh/mth","ind_man",0.322392811841149 +24,0,2030,4,"GWh/mth","res_com",0.721061501528076 +24,0,2030,5,"GWh/mth","agri",0.000200695095680446 +24,0,2030,5,"GWh/mth","ind_man",0.312810737103376 +24,0,2030,5,"GWh/mth","res_com",0.713264635247953 +24,0,2030,6,"GWh/mth","agri",2.13032421803802e-07 +24,0,2030,6,"GWh/mth","ind_man",0.304835370748531 +24,0,2030,6,"GWh/mth","res_com",0.703791831599367 +24,0,2030,7,"GWh/mth","agri",4.46739401045619e-11 +24,0,2030,7,"GWh/mth","ind_man",0.303899038888687 +24,0,2030,7,"GWh/mth","res_com",0.703735613274584 +24,0,2030,8,"GWh/mth","agri",1.29579300069382e-10 +24,0,2030,8,"GWh/mth","ind_man",0.313132805039688 +24,0,2030,8,"GWh/mth","res_com",0.712764396961118 +24,0,2030,9,"GWh/mth","agri",4.22560648273894e-10 +24,0,2030,9,"GWh/mth","ind_man",0.322544044872229 +24,0,2030,9,"GWh/mth","res_com",0.725567605693435 +24,0,2030,10,"GWh/mth","agri",1.05197738284284e-05 +24,0,2030,10,"GWh/mth","ind_man",0.331114099313652 +24,0,2030,10,"GWh/mth","res_com",0.740695063009877 +24,0,2030,11,"GWh/mth","agri",9.84536857401369e-05 +24,0,2030,11,"GWh/mth","ind_man",0.338987971183855 +24,0,2030,11,"GWh/mth","res_com",0.734761375215687 +24,0,2030,12,"GWh/mth","agri",0.000197837629458423 +24,0,2030,12,"GWh/mth","ind_man",0.347437724678589 +24,0,2030,12,"GWh/mth","res_com",0.744379910804363 +24,0,2040,1,"GWh/mth","agri",8.11519488712923e-11 +24,0,2040,1,"GWh/mth","ind_man",0.439209854826193 +24,0,2040,1,"GWh/mth","res_com",0.991624038371818 +24,0,2040,2,"GWh/mth","agri",0 +24,0,2040,2,"GWh/mth","ind_man",0.42695006481775 +24,0,2040,2,"GWh/mth","res_com",0.97989434974049 +24,0,2040,3,"GWh/mth","agri",1.6294719327225e-05 +24,0,2040,3,"GWh/mth","ind_man",0.416958737747804 +24,0,2040,3,"GWh/mth","res_com",0.968963498976073 +24,0,2040,4,"GWh/mth","agri",0.00111470367666029 +24,0,2040,4,"GWh/mth","ind_man",0.407676578402998 +24,0,2040,4,"GWh/mth","res_com",0.951663188234737 +24,0,2040,5,"GWh/mth","agri",0.000590905139922682 +24,0,2040,5,"GWh/mth","ind_man",0.395559721886291 +24,0,2040,5,"GWh/mth","res_com",0.944473389867511 +24,0,2040,6,"GWh/mth","agri",7.43942612113948e-07 +24,0,2040,6,"GWh/mth","ind_man",0.385474602281777 +24,0,2040,6,"GWh/mth","res_com",0.933873344462146 +24,0,2040,7,"GWh/mth","agri",2.19014284038005e-10 +24,0,2040,7,"GWh/mth","ind_man",0.384290579081349 +24,0,2040,7,"GWh/mth","res_com",0.934262601255172 +24,0,2040,8,"GWh/mth","agri",6.08341762701196e-10 +24,0,2040,8,"GWh/mth","ind_man",0.395966987648635 +24,0,2040,8,"GWh/mth","res_com",0.943535601510728 +24,0,2040,9,"GWh/mth","agri",1.4468359300757e-09 +24,0,2040,9,"GWh/mth","ind_man",0.407867817668849 +24,0,2040,9,"GWh/mth","res_com",0.958558192437738 +24,0,2040,10,"GWh/mth","agri",2.42525540887404e-05 +24,0,2040,10,"GWh/mth","ind_man",0.418704940405718 +24,0,2040,10,"GWh/mth","res_com",0.977604747387916 +24,0,2040,11,"GWh/mth","agri",0.000227926643262502 +24,0,2040,11,"GWh/mth","ind_man",0.428661716813033 +24,0,2040,11,"GWh/mth","res_com",0.964419217151265 +24,0,2040,12,"GWh/mth","agri",0.00042577135517185 +24,0,2040,12,"GWh/mth","ind_man",0.439346714947481 +24,0,2040,12,"GWh/mth","res_com",0.975003457973674 +24,0,2050,1,"GWh/mth","agri",1.35834394218745e-10 +24,0,2050,1,"GWh/mth","ind_man",0.474707906520592 +24,0,2050,1,"GWh/mth","res_com",1.16639125664774 +24,0,2050,2,"GWh/mth","agri",0 +24,0,2050,2,"GWh/mth","ind_man",0.46145724926566 +24,0,2050,2,"GWh/mth","res_com",1.15854834098915 +24,0,2050,3,"GWh/mth","agri",2.83704780947047e-05 +24,0,2050,3,"GWh/mth","ind_man",0.450658397863264 +24,0,2050,3,"GWh/mth","res_com",1.15003136307106 +24,0,2050,4,"GWh/mth","agri",0.00199941240540351 +24,0,2050,4,"GWh/mth","ind_man",0.440626030915788 +24,0,2050,4,"GWh/mth","res_com",1.13104693485057 +24,0,2050,5,"GWh/mth","agri",0.00115815730201417 +24,0,2050,5,"GWh/mth","ind_man",0.427529859399026 +24,0,2050,5,"GWh/mth","res_com",1.13011830819324 +24,0,2050,6,"GWh/mth","agri",2.03482975870956e-06 +24,0,2050,6,"GWh/mth","ind_man",0.416629634912116 +24,0,2050,6,"GWh/mth","res_com",1.12219297724404 +24,0,2050,7,"GWh/mth","agri",8.14860772840467e-10 +24,0,2050,7,"GWh/mth","ind_man",0.41534991596098 +24,0,2050,7,"GWh/mth","res_com",1.12379406064208 +24,0,2050,8,"GWh/mth","agri",2.2352491857436e-09 +24,0,2050,8,"GWh/mth","ind_man",0.427970041410689 +24,0,2050,8,"GWh/mth","res_com",1.12832191478902 +24,0,2050,9,"GWh/mth","agri",4.72935281004382e-09 +24,0,2050,9,"GWh/mth","ind_man",0.440832726622952 +24,0,2050,9,"GWh/mth","res_com",1.14156986151672 +24,0,2050,10,"GWh/mth","agri",4.15640753253298e-05 +24,0,2050,10,"GWh/mth","ind_man",0.452545733037988 +24,0,2050,10,"GWh/mth","res_com",1.16194962297506 +24,0,2050,11,"GWh/mth","agri",0.000392569393979231 +24,0,2050,11,"GWh/mth","ind_man",0.463307241305785 +24,0,2050,11,"GWh/mth","res_com",1.13312634924843 +24,0,2050,12,"GWh/mth","agri",0.000782958982615962 +24,0,2050,12,"GWh/mth","ind_man",0.474855828023147 +24,0,2050,12,"GWh/mth","res_com",1.14052160333174 +24,0,2060,1,"GWh/mth","agri",2.61771064629008e-10 +24,0,2060,1,"GWh/mth","ind_man",0.520425825641873 +24,0,2060,1,"GWh/mth","res_com",1.41764353922473 +24,0,2060,2,"GWh/mth","agri",0 +24,0,2060,2,"GWh/mth","ind_man",0.505899031064677 +24,0,2060,2,"GWh/mth","res_com",1.41614600747135 +24,0,2060,3,"GWh/mth","agri",4.8269509956211e-05 +24,0,2060,3,"GWh/mth","ind_man",0.494060169567155 +24,0,2060,3,"GWh/mth","res_com",1.41165158487789 +24,0,2060,4,"GWh/mth","agri",0.00340416414854988 +24,0,2060,4,"GWh/mth","ind_man",0.483061610705874 +24,0,2060,4,"GWh/mth","res_com",1.39041968121684 +24,0,2060,5,"GWh/mth","agri",0.00197226742837098 +24,0,2060,5,"GWh/mth","ind_man",0.46870417999798 +24,0,2060,5,"GWh/mth","res_com",1.39945028168332 +24,0,2060,6,"GWh/mth","agri",2.7869530867999e-06 +24,0,2060,6,"GWh/mth","ind_man",0.456754182430295 +24,0,2060,6,"GWh/mth","res_com",1.39594827378617 +24,0,2060,7,"GWh/mth","agri",2.97904721213663e-09 +24,0,2060,7,"GWh/mth","ind_man",0.455351216980202 +24,0,2060,7,"GWh/mth","res_com",1.39943699296227 +24,0,2060,8,"GWh/mth","agri",8.09808782180904e-09 +24,0,2060,8,"GWh/mth","ind_man",0.469186754827061 +24,0,2060,8,"GWh/mth","res_com",1.39633130351245 +24,0,2060,9,"GWh/mth","agri",1.56358817663073e-08 +24,0,2060,9,"GWh/mth","ind_man",0.483288212754376 +24,0,2060,9,"GWh/mth","res_com",1.406465252516 +24,0,2060,10,"GWh/mth","agri",6.99236306469735e-05 +24,0,2060,10,"GWh/mth","ind_man",0.49612926922418 +24,0,2060,10,"GWh/mth","res_com",1.42850419483874 +24,0,2060,11,"GWh/mth","agri",0.000662939002370315 +24,0,2060,11,"GWh/mth","ind_man",0.507927191164157 +24,0,2060,11,"GWh/mth","res_com",1.37550539783044 +24,0,2060,12,"GWh/mth","agri",0.00134335931336401 +24,0,2060,12,"GWh/mth","ind_man",0.520587993090613 +24,0,2060,12,"GWh/mth","res_com",1.37767290809023 +24,1,2020,1,"GWh/mth","agri",0 +24,1,2020,1,"GWh/mth","ind_man",0 +24,1,2020,1,"GWh/mth","res_com",0 +24,1,2020,2,"GWh/mth","agri",0 +24,1,2020,2,"GWh/mth","ind_man",0 +24,1,2020,2,"GWh/mth","res_com",0 +24,1,2020,3,"GWh/mth","agri",0 +24,1,2020,3,"GWh/mth","ind_man",0 +24,1,2020,3,"GWh/mth","res_com",0 +24,1,2020,4,"GWh/mth","agri",0 +24,1,2020,4,"GWh/mth","ind_man",0 +24,1,2020,4,"GWh/mth","res_com",0 +24,1,2020,5,"GWh/mth","agri",0 +24,1,2020,5,"GWh/mth","ind_man",0 +24,1,2020,5,"GWh/mth","res_com",0 +24,1,2020,6,"GWh/mth","agri",0 +24,1,2020,6,"GWh/mth","ind_man",0 +24,1,2020,6,"GWh/mth","res_com",0 +24,1,2020,7,"GWh/mth","agri",0 +24,1,2020,7,"GWh/mth","ind_man",0 +24,1,2020,7,"GWh/mth","res_com",0 +24,1,2020,8,"GWh/mth","agri",0 +24,1,2020,8,"GWh/mth","ind_man",0 +24,1,2020,8,"GWh/mth","res_com",0 +24,1,2020,9,"GWh/mth","agri",0 +24,1,2020,9,"GWh/mth","ind_man",0 +24,1,2020,9,"GWh/mth","res_com",0 +24,1,2020,10,"GWh/mth","agri",0 +24,1,2020,10,"GWh/mth","ind_man",0 +24,1,2020,10,"GWh/mth","res_com",0 +24,1,2020,11,"GWh/mth","agri",0 +24,1,2020,11,"GWh/mth","ind_man",0 +24,1,2020,11,"GWh/mth","res_com",0 +24,1,2020,12,"GWh/mth","agri",0 +24,1,2020,12,"GWh/mth","ind_man",0 +24,1,2020,12,"GWh/mth","res_com",0 +24,1,2030,1,"GWh/mth","agri",0 +24,1,2030,1,"GWh/mth","ind_man",0 +24,1,2030,1,"GWh/mth","res_com",0 +24,1,2030,2,"GWh/mth","agri",0 +24,1,2030,2,"GWh/mth","ind_man",0 +24,1,2030,2,"GWh/mth","res_com",0 +24,1,2030,3,"GWh/mth","agri",0 +24,1,2030,3,"GWh/mth","ind_man",0 +24,1,2030,3,"GWh/mth","res_com",0 +24,1,2030,4,"GWh/mth","agri",0 +24,1,2030,4,"GWh/mth","ind_man",0 +24,1,2030,4,"GWh/mth","res_com",0 +24,1,2030,5,"GWh/mth","agri",0 +24,1,2030,5,"GWh/mth","ind_man",0 +24,1,2030,5,"GWh/mth","res_com",0 +24,1,2030,6,"GWh/mth","agri",0 +24,1,2030,6,"GWh/mth","ind_man",0 +24,1,2030,6,"GWh/mth","res_com",0 +24,1,2030,7,"GWh/mth","agri",0 +24,1,2030,7,"GWh/mth","ind_man",0 +24,1,2030,7,"GWh/mth","res_com",0 +24,1,2030,8,"GWh/mth","agri",0 +24,1,2030,8,"GWh/mth","ind_man",0 +24,1,2030,8,"GWh/mth","res_com",0 +24,1,2030,9,"GWh/mth","agri",0 +24,1,2030,9,"GWh/mth","ind_man",0 +24,1,2030,9,"GWh/mth","res_com",0 +24,1,2030,10,"GWh/mth","agri",0 +24,1,2030,10,"GWh/mth","ind_man",0 +24,1,2030,10,"GWh/mth","res_com",0 +24,1,2030,11,"GWh/mth","agri",0 +24,1,2030,11,"GWh/mth","ind_man",0 +24,1,2030,11,"GWh/mth","res_com",0 +24,1,2030,12,"GWh/mth","agri",0 +24,1,2030,12,"GWh/mth","ind_man",0 +24,1,2030,12,"GWh/mth","res_com",0 +24,1,2040,1,"GWh/mth","agri",0 +24,1,2040,1,"GWh/mth","ind_man",0 +24,1,2040,1,"GWh/mth","res_com",0 +24,1,2040,2,"GWh/mth","agri",0 +24,1,2040,2,"GWh/mth","ind_man",0 +24,1,2040,2,"GWh/mth","res_com",0 +24,1,2040,3,"GWh/mth","agri",0 +24,1,2040,3,"GWh/mth","ind_man",0 +24,1,2040,3,"GWh/mth","res_com",0 +24,1,2040,4,"GWh/mth","agri",0 +24,1,2040,4,"GWh/mth","ind_man",0 +24,1,2040,4,"GWh/mth","res_com",0 +24,1,2040,5,"GWh/mth","agri",0 +24,1,2040,5,"GWh/mth","ind_man",0 +24,1,2040,5,"GWh/mth","res_com",0 +24,1,2040,6,"GWh/mth","agri",0 +24,1,2040,6,"GWh/mth","ind_man",0 +24,1,2040,6,"GWh/mth","res_com",0 +24,1,2040,7,"GWh/mth","agri",0 +24,1,2040,7,"GWh/mth","ind_man",0 +24,1,2040,7,"GWh/mth","res_com",0 +24,1,2040,8,"GWh/mth","agri",0 +24,1,2040,8,"GWh/mth","ind_man",0 +24,1,2040,8,"GWh/mth","res_com",0 +24,1,2040,9,"GWh/mth","agri",0 +24,1,2040,9,"GWh/mth","ind_man",0 +24,1,2040,9,"GWh/mth","res_com",0 +24,1,2040,10,"GWh/mth","agri",0 +24,1,2040,10,"GWh/mth","ind_man",0 +24,1,2040,10,"GWh/mth","res_com",0 +24,1,2040,11,"GWh/mth","agri",0 +24,1,2040,11,"GWh/mth","ind_man",0 +24,1,2040,11,"GWh/mth","res_com",0 +24,1,2040,12,"GWh/mth","agri",0 +24,1,2040,12,"GWh/mth","ind_man",0 +24,1,2040,12,"GWh/mth","res_com",0 +24,1,2050,1,"GWh/mth","agri",0 +24,1,2050,1,"GWh/mth","ind_man",0 +24,1,2050,1,"GWh/mth","res_com",0 +24,1,2050,2,"GWh/mth","agri",0 +24,1,2050,2,"GWh/mth","ind_man",0 +24,1,2050,2,"GWh/mth","res_com",0 +24,1,2050,3,"GWh/mth","agri",0 +24,1,2050,3,"GWh/mth","ind_man",0 +24,1,2050,3,"GWh/mth","res_com",0 +24,1,2050,4,"GWh/mth","agri",0 +24,1,2050,4,"GWh/mth","ind_man",0 +24,1,2050,4,"GWh/mth","res_com",0 +24,1,2050,5,"GWh/mth","agri",0 +24,1,2050,5,"GWh/mth","ind_man",0 +24,1,2050,5,"GWh/mth","res_com",0 +24,1,2050,6,"GWh/mth","agri",0 +24,1,2050,6,"GWh/mth","ind_man",0 +24,1,2050,6,"GWh/mth","res_com",0 +24,1,2050,7,"GWh/mth","agri",0 +24,1,2050,7,"GWh/mth","ind_man",0 +24,1,2050,7,"GWh/mth","res_com",0 +24,1,2050,8,"GWh/mth","agri",0 +24,1,2050,8,"GWh/mth","ind_man",0 +24,1,2050,8,"GWh/mth","res_com",0 +24,1,2050,9,"GWh/mth","agri",0 +24,1,2050,9,"GWh/mth","ind_man",0 +24,1,2050,9,"GWh/mth","res_com",0 +24,1,2050,10,"GWh/mth","agri",0 +24,1,2050,10,"GWh/mth","ind_man",0 +24,1,2050,10,"GWh/mth","res_com",0 +24,1,2050,11,"GWh/mth","agri",0 +24,1,2050,11,"GWh/mth","ind_man",0 +24,1,2050,11,"GWh/mth","res_com",0 +24,1,2050,12,"GWh/mth","agri",0 +24,1,2050,12,"GWh/mth","ind_man",0 +24,1,2050,12,"GWh/mth","res_com",0 +24,1,2060,1,"GWh/mth","agri",0 +24,1,2060,1,"GWh/mth","ind_man",0 +24,1,2060,1,"GWh/mth","res_com",0 +24,1,2060,2,"GWh/mth","agri",0 +24,1,2060,2,"GWh/mth","ind_man",0 +24,1,2060,2,"GWh/mth","res_com",0 +24,1,2060,3,"GWh/mth","agri",0 +24,1,2060,3,"GWh/mth","ind_man",0 +24,1,2060,3,"GWh/mth","res_com",0 +24,1,2060,4,"GWh/mth","agri",0 +24,1,2060,4,"GWh/mth","ind_man",0 +24,1,2060,4,"GWh/mth","res_com",0 +24,1,2060,5,"GWh/mth","agri",0 +24,1,2060,5,"GWh/mth","ind_man",0 +24,1,2060,5,"GWh/mth","res_com",0 +24,1,2060,6,"GWh/mth","agri",0 +24,1,2060,6,"GWh/mth","ind_man",0 +24,1,2060,6,"GWh/mth","res_com",0 +24,1,2060,7,"GWh/mth","agri",0 +24,1,2060,7,"GWh/mth","ind_man",0 +24,1,2060,7,"GWh/mth","res_com",0 +24,1,2060,8,"GWh/mth","agri",0 +24,1,2060,8,"GWh/mth","ind_man",0 +24,1,2060,8,"GWh/mth","res_com",0 +24,1,2060,9,"GWh/mth","agri",0 +24,1,2060,9,"GWh/mth","ind_man",0 +24,1,2060,9,"GWh/mth","res_com",0 +24,1,2060,10,"GWh/mth","agri",0 +24,1,2060,10,"GWh/mth","ind_man",0 +24,1,2060,10,"GWh/mth","res_com",0 +24,1,2060,11,"GWh/mth","agri",0 +24,1,2060,11,"GWh/mth","ind_man",0 +24,1,2060,11,"GWh/mth","res_com",0 +24,1,2060,12,"GWh/mth","agri",0 +24,1,2060,12,"GWh/mth","ind_man",0 +24,1,2060,12,"GWh/mth","res_com",0 diff --git a/nest/message_ix_models/data/leap_re_nest/energy_total_all.csv b/nest/message_ix_models/data/leap_re_nest/energy_total_all.csv new file mode 100644 index 0000000..5306434 --- /dev/null +++ b/nest/message_ix_models/data/leap_re_nest/energy_total_all.csv @@ -0,0 +1,121 @@ +BCU,year,urb_rur,tec,unit,value +1,2025,rural,grid,GWh,1.09 +2,2025,rural,grid,GWh,16.68 +3,2025,rural,grid,GWh,1.93 +4,2025,rural,grid,GWh,27.53 +5,2025,rural,grid,GWh,29.13 +6,2025,rural,grid,GWh,37.47 +7,2025,rural,grid,GWh,90.84 +8,2025,rural,grid,GWh,46.94 +9,2025,rural,grid,GWh,10.07 +10,2025,rural,grid,GWh,5.54 +11,2025,rural,grid,GWh,16.18 +12,2025,rural,grid,GWh,2.38 +13,2025,rural,grid,GWh,20.77 +14,2025,rural,grid,GWh,6.38 +15,2025,rural,grid,GWh,11.67 +16,2025,rural,grid,GWh,29.13 +17,2025,rural,grid,GWh,53.42 +18,2025,rural,grid,GWh,13.83 +19,2025,rural,grid,GWh,6.39 +20,2025,rural,grid,GWh,23.35 +21,2025,rural,grid,GWh,1.14 +22,2025,rural,grid,GWh,16.7 +23,2025,rural,grid,GWh,29.25 +24,2025,rural,grid,GWh,0.39 +1,2025,rural,mg_hydro,GWh,0 +2,2025,rural,mg_hydro,GWh,0 +3,2025,rural,mg_hydro,GWh,0 +4,2025,rural,mg_hydro,GWh,0.08 +5,2025,rural,mg_hydro,GWh,0 +6,2025,rural,mg_hydro,GWh,0 +7,2025,rural,mg_hydro,GWh,0 +8,2025,rural,mg_hydro,GWh,0.42 +9,2025,rural,mg_hydro,GWh,0 +10,2025,rural,mg_hydro,GWh,0 +11,2025,rural,mg_hydro,GWh,0 +12,2025,rural,mg_hydro,GWh,0 +13,2025,rural,mg_hydro,GWh,0 +14,2025,rural,mg_hydro,GWh,0 +15,2025,rural,mg_hydro,GWh,0.04 +16,2025,rural,mg_hydro,GWh,0.31 +17,2025,rural,mg_hydro,GWh,0.42 +18,2025,rural,mg_hydro,GWh,0 +19,2025,rural,mg_hydro,GWh,0 +20,2025,rural,mg_hydro,GWh,0 +21,2025,rural,mg_hydro,GWh,0.04 +22,2025,rural,mg_hydro,GWh,0 +23,2025,rural,mg_hydro,GWh,0.06 +24,2025,rural,mg_hydro,GWh,0 +1,2025,rural,mg_pv,GWh,0.02 +2,2025,rural,mg_pv,GWh,4.3 +3,2025,rural,mg_pv,GWh,3.23 +4,2025,rural,mg_pv,GWh,8.91 +5,2025,rural,mg_pv,GWh,2.53 +6,2025,rural,mg_pv,GWh,0.65 +7,2025,rural,mg_pv,GWh,9.31 +8,2025,rural,mg_pv,GWh,7.76 +9,2025,rural,mg_pv,GWh,0.16 +10,2025,rural,mg_pv,GWh,0.19 +11,2025,rural,mg_pv,GWh,0.36 +12,2025,rural,mg_pv,GWh,0.05 +13,2025,rural,mg_pv,GWh,7.78 +14,2025,rural,mg_pv,GWh,14.34 +15,2025,rural,mg_pv,GWh,3.9 +16,2025,rural,mg_pv,GWh,12.67 +17,2025,rural,mg_pv,GWh,18.08 +18,2025,rural,mg_pv,GWh,3.13 +19,2025,rural,mg_pv,GWh,0.18 +20,2025,rural,mg_pv,GWh,4.99 +21,2025,rural,mg_pv,GWh,1.24 +22,2025,rural,mg_pv,GWh,5.15 +23,2025,rural,mg_pv,GWh,31.46 +24,2025,rural,mg_pv,GWh,3.31 +1,2025,rural,sa_pv,GWh,0 +2,2025,rural,sa_pv,GWh,0.42 +3,2025,rural,sa_pv,GWh,0.45 +4,2025,rural,sa_pv,GWh,12.9 +5,2025,rural,sa_pv,GWh,0 +6,2025,rural,sa_pv,GWh,0 +7,2025,rural,sa_pv,GWh,0 +8,2025,rural,sa_pv,GWh,8.72 +9,2025,rural,sa_pv,GWh,0 +10,2025,rural,sa_pv,GWh,0 +11,2025,rural,sa_pv,GWh,0 +12,2025,rural,sa_pv,GWh,0 +13,2025,rural,sa_pv,GWh,6.24 +14,2025,rural,sa_pv,GWh,2.67 +15,2025,rural,sa_pv,GWh,0.24 +16,2025,rural,sa_pv,GWh,5.07 +17,2025,rural,sa_pv,GWh,5.17 +18,2025,rural,sa_pv,GWh,0.48 +19,2025,rural,sa_pv,GWh,0 +20,2025,rural,sa_pv,GWh,14.41 +21,2025,rural,sa_pv,GWh,6.66 +22,2025,rural,sa_pv,GWh,17.26 +23,2025,rural,sa_pv,GWh,110.61 +24,2025,rural,sa_pv,GWh,13.44 +1,2025,urban,grid,GWh,5.74 +2,2025,urban,grid,GWh,298.68 +3,2025,urban,grid,GWh,16.04 +4,2025,urban,grid,GWh,72.53 +5,2025,urban,grid,GWh,1157.79 +6,2025,urban,grid,GWh,40.57 +7,2025,urban,grid,GWh,242.46 +8,2025,urban,grid,GWh,500.06 +9,2025,urban,grid,GWh,2063.73 +10,2025,urban,grid,GWh,9.83 +11,2025,urban,grid,GWh,197 +12,2025,urban,grid,GWh,32.57 +13,2025,urban,grid,GWh,159.45 +14,2025,urban,grid,GWh,15.64 +15,2025,urban,grid,GWh,201.15 +16,2025,urban,grid,GWh,154.64 +17,2025,urban,grid,GWh,222.21 +18,2025,urban,grid,GWh,66.28 +19,2025,urban,grid,GWh,2.69 +20,2025,urban,grid,GWh,143.7 +21,2025,urban,grid,GWh,0 +22,2025,urban,grid,GWh,162.45 +23,2025,urban,grid,GWh,182.56 +24,2025,urban,grid,GWh,3.07 diff --git a/nest/message_ix_models/data/leap_re_nest/grid_cost_bcu.csv b/nest/message_ix_models/data/leap_re_nest/grid_cost_bcu.csv new file mode 100644 index 0000000..e3a5be3 --- /dev/null +++ b/nest/message_ix_models/data/leap_re_nest/grid_cost_bcu.csv @@ -0,0 +1,49 @@ +BCU,urb_rur,mean_dist,w.mean_dist,cost_usd_kW_km,fix_cost_usd_kW,tot_cost_usd2010_kW +1,_rur,4.973524731745616,4.621119091694185,212,1770,2291.3977061993064 +1,_urb,2.26654,0.7543092721087301,212,1770,1608.261304739209 +2,_rur,9.55652217415164,9.080941430664478,212,1770,3079.2996527507244 +2,_urb,7.839310626702997,1.8971715162131675,212,1770,1810.1669678643264 +3,_rur,23.3269306125551,24.598716072032936,212,1770,5820.773172725819 +3,_urb,33.63517786561265,23.707226964938602,212,1770,5663.276763805819 +4,_rur,15.38506987340525,14.39688118217184,212,1770,4018.449008850359 +4,_urb,11.793435852372584,8.482887188893741,212,1770,2973.643403371228 +5,_rur,6.718076702982282,6.247321961235886,212,1770,2578.6935464850067 +5,_urb,3.764888307155323,0.4146309254201761,212,1770,1548.2514634908978 +6,_rur,6.107860546194073,5.802888871336607,212,1770,2500.1770339361337 +6,_urb,6.127243515850144,5.836295349755402,212,1770,2506.0788451234544 +7,_rur,11.54530883294023,10.264717898118425,212,1770,3288.433495334255 +7,_urb,8.765904778393352,5.598737002086263,212,1770,2464.110203701907 +8,_rur,12.34072314962563,10.21843988797383,212,1770,3280.2577135420433 +8,_urb,12.304018607856651,5.332356692618429,212,1770,2417.0496823625895 +9,_rur,6.324903563129357,5.05846139712313,212,1770,2368.661513491753 +9,_urb,3.4951810584958216,0.08121347226958453,212,1770,1489.3477134342934 +10,_rur,6.0888821693907875,5.509297819811152,212,1770,2448.3092814999704 +10,_urb,3.669456375838926,1.4173208843062204,212,1770,1725.3933562274324 +11,_rur,4.35968078363584,2.021465067379349,212,1770,1832.1254952370184 +11,_urb,2.6330487804878047,0.9557581383333392,212,1770,1643.85060443889 +12,_rur,6.13566006097561,6.129484541278141,212,1770,2557.8756022924717 +12,_urb,8.135428571428571,1.7175112303139342,212,1770,1778.4269840221282 +13,_rur,16.74176991627553,16.750748626701103,212,1770,4434.2989240505285 +13,_urb,15.037524973432518,7.333615635598758,212,1770,2770.6054289557806 +14,_rur,44.36753633411321,45.22660600382322,25,1770,2417.2209584129837 +14,_urb,47.425075977653634,39.94268374438931,25,1770,2307.1392446747777 +15,_rur,15.996613893151068,14.541192833627534,212,1770,4043.9440672741985 +15,_urb,13.7221861575179,3.4669133750692276,212,1770,2087.4880295955636 +16,_rur,21.94951888514074,17.420920282508103,212,1770,4552.695916576431 +16,_urb,20.693494037478704,12.380833308581053,212,1770,3662.2805511826527 +17,_rur,18.85209085595877,18.6646273479504,212,1770,4772.417498137905 +17,_urb,18.75786036611324,12.740200451966263,212,1770,3725.7687465140402 +18,_rur,20.90160447761194,17.339966497543234,212,1770,4538.394081232638 +18,_urb,16.640087576374746,8.880296768548769,212,1770,3043.8524291102826 +19,_rur,17.886442175134032,16.874918233231423,212,1770,4456.235554537551 +19,_urb,15.357008510638298,14.060058254714615,212,1770,3958.943624999582 +20,_rur,12.854540700336432,12.209335544493838,212,1770,3631.982612860578 +20,_urb,10.047096450617284,4.987445739756272,212,1770,2356.1154140236085 +21,_rur,29.3191260638954,29.204340489134136,212,1770,6634.433486413698 +21,_urb,24.054555555555556,19.140875870446553,212,1770,4856.554737112225 +22,_rur,13.324332330150824,12.949590548086821,212,1770,3762.7609968286715 +22,_urb,8.827807926829268,3.451240577634799,212,1770,2084.7191687154814 +23,_rur,25.320342937182655,26.020487046203524,212,1770,6071.952711495956 +23,_urb,27.48395584045584,16.926782727671196,212,1770,4465.398281888578 +24,_rur,48.0674995215311,46.830875476247776,25,1770,2450.6432390884956 +24,_urb,45.0123342776204,38.57173198310105,25,1770,2278.5777496479386 diff --git a/nest/message_ix_models/data/leap_re_nest/input_data_12_ZMB.xlsx b/nest/message_ix_models/data/leap_re_nest/input_data_12_ZMB.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c22098b52572d161a44de67949c832056dba6b79 GIT binary patch literal 72804 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�q<_O)JvugcAFyOSan`IBEEP$E-99m8e5I+<5m$adN-k zXzhCLSdP@_*+(k&Xg&zi38jeyAI#jjrte<(xRM90vmRCnw~YCEV8U4YIWikEbCjoD zn>**+!OTfx)9JJv295LN`__ItDN{0K#xKDh^d~bW)UV!q!75xg-(zx~Aob0Lz3z@vJVg)4fChKwh*son zo>AyLXF|}%gCR$!s7*3d@?1Y>(wcIAuDtZcLejsio0}LK61@IB_X^)ct(N4NIb|iL z@jQtti<(Dmoj>W>&0qWP4Vqwj zx1~+<(R(Qak@Tj^3$53Nc1eVNy1nDTKJN8TJf_d3{FeFq(f8vX-P!!|!=uyTZvy#r z@5S$_e=x37rt0~Z?uz606D3ql#@7g4IxTlWBYIiSQLEc=hP%eyRLEP+dwSiYKaF#a zeU*v`C|-VZO;c_2BFm7P{?en*&m8+y$h}tC6$$wL!SP`;_4vtKt@k52lr6^2Z z8W<)8WO$B+T$rXSS6jI~%95Yvz2w38$3^y+dP$m{>A$YCm{=`u$5##ERr`<6@p! zTUhvYW$u&pE84vMiSE^iOIM1hH!HisUSGT7a>2YuX58n@TQ?qY%_(k|*}jA4G4G=` z-(-9DgOyu&yEGOn*jx{Kp5_=Drp7p0XtUtX4CD18{uMPBkDD58Hxl2x(d~kL-C??P z-?xRO%Ig;tr@2&frf}KJDjet3*sy=TPFK3c<*>l9nNLsW{<=ndqT0CXmQ6AldA3=G z&)2`QSkOeh;2+nyDkY}Xb9|Ndx+&+Q858AP#LZQxd+yt&3L1I#kA9@&vvJCi=52j7 zdBM~-FE)xC`6lBndU5VTs$rL4+?7!GjOsme@}eeG&v)7Qe#L{nL#0-YqQ^z^if8Dg z9{DuUgk!Lql<)5l4?PujjanAdWK z?acWUk3VlNE#?>%yJ38XUiQ|FTD`r$ZqhyRb>r2w^8<1YKWuv}(P?wFCTiK(Db^Kg zsSjpsGF~Nmu)g%NSiMWj!hUqPL*8^LsKUGc>1BO`bv2URk0tspp1;D89I5N>&NWWv zGv{ax-VcHP$L61FNOsunoO>}hC*#)c)I*O>PitLQTxqyH*06-%tvlJkwX?gM($^PW z)yJUqcc^A{)mdfE%Iq$#>ieeE-xs?>ER2ZWnd!HOT6v)7(`0o1gfEx_+zp!+)to+%{Lg zh23_~<)hL~p3CTEz51G(t5tlh)$V0}@inXWJ^MNuX%<`!ip{NMOCqhFJgM(n?CiQN zvopBdB;DoP;?D48mHl7NQTo9D!M|0i#&?@G^y~ER>*@I1(%<9j=ET?2yp-{^!A$jD zzV>S$(ZsUkrjD+Yu6}>s>EF}k=c=l9CC*xjjA4t|d|e?@vfKH~u}a z^J;IZf7#RS6^BbVua6B}p(Yjh?5WYRd`i8aO`FX!zhi!Rck3?wn&?v+7kK}CI%S?; zp5ez-f18g9{^$0{ed}4_y23 zR%dKEuc;agH1odY=h^qo#X!GGozm6y)y7g>(t)PQOYis(F=YCF){u-a``6)FmendP zeKS(cYi6f5)-16teYL{2bla@Xqgh8d^7Zu8^pivRWK{X8@4P#lf1f`?)ibtid`Ciz zO-*Xd1ij?ebU&9Bei`Lzar5HJwsQX|>h-PBrJ}^5rguqQYRorH*ZZ77iI3}&mV&=t ze0j&Y$91=@O2=;{r?1q$&RR$+*JLx{EO^~_cp<%*)j zg!V+L3+NBj_NG|BJlbhm!8gI;m5pxlyqp84eOAPk9rp61yB+J73F8ZUYM{rrHcY5X`hLVxH$`*6 z$|xmh?1dk$+4Y(Rt)W@yY0l(-2MklJJJ~yb+hZuAQOh)aS9h#&_&KCW_&K>Rok9p>{lk&Et_tKI|17AmAbI|X# zMExW?MWeeL^DQbgXZkE?EIS&!ROMbw_rjYQE05I0bVmtPNBgNi?rjD5-Ak4VKlen) zukr@%*SECawW;8)IEKdLN`vsVnYZw@+yn%I+psU=A24JA|M6 z;`*HMF(?s@f;{%qrDhJPvK!kT=2g<#gvor9ab-bmWGX}*K3wuZi_!4=Q9JtfGI(P;6T-X>Xv)wx(m7qH-aua z!0uI7{^znL$);^vPw6|)nMqkHk|Mq3(h@B>%z~K1}*Jsv2xuF@H903K1b< zz{CQf1UNAWC5@MsRB6p@zux|&fL+q^l7>soyWVFmc6ffZDSSBiOTJxdKAkMl_uH@? zCB;0-kiMzqmSI%^1qS|R((B9z<|v<@>~f z-c~y;thTD$+9cvj!nxT@aTxU8N}@>RWW`a9i{9im;^%lccT4f@J_ zUbm}CS@rjN8T5bpP!U;`+3-~~t~Kq+?lmP{6)n9@)-mmF={x)Ge-cV8>27i9?pzs5 z>1*EIS)EjJ>7HvqWc;p?LO6NTX=_pfQ_e^b($OW9q0c!r~1^^v;%B886=uT*EWZL2Hb zZGG|Wb6bR+RJ$L|MY%}~-nGh2Pfaf~YmuL1%?pL7RDIVkuT_u6={?k^{VsT0TC%tD zPU_Ld*DsV}gS8{8i;Hb2`k(I?eQW7`qD$$c-{dsdDN)n9wScnwl*G}D?JeQcZ}{p< zFX)Xpc{_}zuHklQjzn$4)*_0|?ff{`LuH|ns`n;cZna-nr?q%3?MuT}8fZA)DQ#*S zXeik#CYhEmomHBUARk$;vD2PnAm)2H<98#ggoN%Mi9#t@D+sP^GiriYmi`%CA0*-A zce$e4@3f&&lWkt5kx_f6(OjKUMZH7^ol+N9{|!6aG->r~U|$Oq3_mwsm7v2 z2Pa}ny`t+?vNq3`><%$&n*+xXc=lYSCcx$C^TuycYjXk@HE^_UO-S*QPqpN?N=WA_ ziZDFJZ)MvcQfYXa`}VeHb44p_x|GwOE#==5?t4-ty-?QK@nWb*h~|Q`E{-?rI;>rm z)-L0I!C@5HrY*mB;@hD$hg9}ZQakrZM7Q-tpW3ueyXCqnZ(s(3{bJXklssf3I-Ip@q?HZHJm@YVj&NCJ6r;m67$j{8nnFY;WL`iu!xK z&3(;fbqYD3Dynj-RwYKGe^x|;UbE5@J1)+82>uOhzo@?NUVD2;^iMY4J%gpxZ4p(t$5Fb|c5=hq8|5Yfa+{ z$iJSp`QrFb)zZOEeEqgH$I6{(jVYHGWy z|2$Ldb+76DOVe&}2^Bt&DCDq{aPs{!{T`?oRjPa_<5EVF!^PdwMsW=_>%F8DH9mw0 z3rCAg++tO*Q&H&E1Bq80MiP=6x$oXuLks>~<{fMse`EQ|j8(b~HJi94)qyve-@7R- z94#|(OL&6#Oxv&%m%}(~x3|6ZuC$GRzkH?t^T^kn6<-RBZkx`&8-AiVoU?Y~TQfzW zq6ZR1P!vnGvkJS;3x#L`0S<2Ej@rt#Jz{;`R<0uTjeZI@)P-ZzLC3zdw#j<62lWoQ zD_l-b@~PRX2JeXYc+X|6pTcfG(0V~!!@Sg@!qg%lZQWM29+^k5Y$u`H&~g3PO}hvn zQqtSzoMzND5cz{w_W6>~vA4IC9?Ej*M$Z4q6a|1X!|*>?%BgX5TaEGM2^3;t4NT?L69jO6#mQQ#UmxJVsH%dbN%&wk^xL7Of0=zEg1kR<;o& zK02>R)Yg8%aL3rQ>I*}?+X|sS0A<;)PJWHB28QXrY6^_>T`M5XuiIDvhXeJsg1q(4 zkNBJzTSw`B3_w5L3JweSw;Ra!M$#R;!k?WdpvylS(NUag0e zT>>xz#_So>r-)mD>#GMvLk|TS;T!#*rxx*0SXbS~9Zbl_js}cTS`GbnV6&HQ*$-2T zPWK-?WfvikS_DV<)c#z>PoY`#R=kwmd(~0{>&w~1ihv(w2h zu664`Xq+{SnRsX}Fu3Sn5UNSEA_nx0OD549s2dX!7Ix5cNcfZ97NV};90brnz@aY? z7J)7VO$KL$<}iT6-d%m0ii&R+nBZCd+BrOS{SJvPkMju4u`%jFSZFYk4e)$y#co{* z*Cg0%;aH|`Onghou}M}JNTa_gwP>bZtvPa#=(fR%0GsuG3h-uxO=0Lu0vq5M#7vj6 zOCmj}l=L7I0YySA za6VELGk|BQ>tieIQ6@bvX;~&+{$3k_mxEcT`oW>`(DwALQ?Vn4Ye1zhMSu>Pm${mB z&&f*MSEP+)$N-x1Uxs)T13rCE_sx%}ACg{FSS1Tby$PcSjq z^fr_U&6V87KCE&8qSa254>{npgKE}T1ToqHx7<*@M3u{Ir+mi;9DBjNuID)nj zXOZ2$mS={j>!BdwTirHBuNK~+a9Jr?x@M~&4mkH+R{5pwVjA?gl-(WDT^^C{f^UWH zg8M=N2i^!pC3}VLf`^5(OA1F&;MJ&iJiFlVaK+$FE&7Sx@!W+s!nsQ-g?a}*!HoKU z7va>kZ@$-?j-9G0R7&rBQ{A8AK3HZk#paTygvAnBJLS*VU z{d-*Da+FFKmNW(nF1Ym|3`|-rbT^#p(hKxz&q&$bgI3-YY`D`lA_{xT{KOmTdU$mg z_n)R$dx+^NaWz}DnG;8^Ff^8BRlI?KF%#bk&5!$n27)&tF^OK0m}pqE11Kh)3-*qe zB{V#YMeF=hNA4ZRB6K61WrR}0_m0;}CJ>Opi2F~}t2M^ve`a2@RUR4W<3{5(eyM1oT%fgdR%%fmQ#pCt zh(L0Yuw?lMYfZ&{L5$&zP)tjrSLmI1SmYmxWblE#V=>|IFl<*8g#JYDaI0O2ZbaTk zC^c;F7%e0Q^gcpO6j<41XZ6msAhA>Pl(HL2_5rE^gdm1 zR=cJ5mVjbo+Fe3JUwczRaNsjcdH$JUB#JG;U~u2+U>lJ}1P5RyA~=8<5AOiW$g}#I ztqz2DfIv?yl3*cACM{V(S`y!iOpf|OMu9g%G09#b8hBV}$wrn#u~s`cJVXPm|3A?? zo{R8CI2TE!hV31nBA^)1T^k8C2a%oCJ9by7By!hbWM}n`O%9br?nX=>A=MQsX@0#@Iga^KyfrgT^R=oS{s*M z?LMX}%&ytW&vb>)EB%hb9fc+c6x^vrIZWjFZ6mzMKp{ff72k>`8}17_0K5?*FGBPR zk;lVAY+B<<_kz7+1R_{1aASK~4 zb!=$a2lS2t1yT}D4H9JnnL&HUfdWDZrv?*ujEqn0`jc$_LDri3@eKm@Ef$6Y>^%rH zJ0j_M&xZR2`B9BkcCwqVU*|=4!-STy z{i356iSf%>+~FTJ{o<#p>D|BVU2-JF6f|z#zcZfCD#-njEqBNP3j;NWmEynnH*&N@ zFZOSA*Ic=@g0p6~F8B>{H%#R!NKOL33Y^ct%{Ic7(YDH`75s~1EtX_*?`nQK{e#m= z`H1)Cm7w5$ISyX64XpKbX_?T&Vasi6#C!G&-%9SXOfI4eFVMv)*u{=J7E2mABoCDB zFXya?jZ|18T9)YzT93*!=@N0*Oj__-xPWIvm?B4pxq6slh`@!-4jiea0EE(uw=e1_ zmreh`7k@ly@nhkF^HH@Nws#xqYWQkKJLdy2!!3ZYwxfK((As6-w`TPG*TU|Z_Ku0v zw)wS&J4=%urEo>xwK)3+w=Hj!0!M~Lw*r)}Y8lYnlBIbSOY1j)8=#im4&>`9zp|MLrfn(+Jm`jW0c|;z(ywz`_TO@WmTu!bcuaR`1GH(2GKYq>dRP-QH9%c1 zg%sgDxC|sSN-%!$_Uwz#k&{PFPZTcL%#)E+p})H18AGH%|NQH-bmfqY`0Ii>PAj{G zf0y=bcegJuIeT5eQd}@&h63Hb0{yW#L~xC`(n0arHySy*-!v5Tc?pLEF|susYdp1O z6%^^K6zP*70^mx4=5Nqe-S&!QQq^z=cw|-th3hW?rHjN8zX##*c9sfsHd0-m867Q}eUydT*gwH&U5eB#d_+*25|9qMzq z60$5IA+juzb=VTLteQRbCTZD`OVF}D^&VYiE~y`i`khvq#d z3{CWYW3!wo=y`ggrsIBbC0O(=<-7WZM+@oKCL(i3AQ;WadgZ<34Nln)H634R{)P;D zI*4%#O?GJ55lhIh0*dsF(DjfxM=n9birZ5!l7=0*1P!ZI?;%bacH|O-FPKmqPFW1W za3y3|0w6d&F;v5qkYNcRkzo<$!4=;dlUmXMf@SVHI#5TGc9z!{`KPG3WiXtFbE5j;7r@I z6V8_M?RtZ%+zpesrrT4`BI`G}pA2H$U^>b^@pQOxfXf3_)3K0*d&Clgo9GCEjJh1I zgy7~?q^~349=QbJ79=ExAY&bdD?zxW>pcX?C^B*h!mUq01-&2Qi5H5YN^l;e#|!9_ z8=sL&XdYm|@uC2sAHMXD8m1V8cYky6J9?3E5aYR~V*?Hwxqa&z?&%ut%C*l17h(PU zMB(@Z0ev)$&AFrNJ+zteK);kHj=7AGH^A74Z~d`^v@#M;CzraBOGqn14zveB5)D^E z?shqd5lJpuBbJc6Nh;EJknT2e3A&rMJvEA4v_>vLcZ30O+1oIN!VC=Zpgs`rpbsyOkJH?)bw6MaD;aIZuOdBOqlbaHJRxr96cY;RtZfoH@L z@`Uq2j4;v@Ml2yun59V9AU$E^67&Rl3*= zBM2Z-L`0AdS3)xa0}f8_a6=EEAEtC27-nfH_(i+M6G04E+yK^#2bvv-AV}2g*emXg z7AGBX=N9p^`<9e(a;u_CKt76q${QY0<{DugFQ9^AOTF?tqEV?+HqjN78+M9hB!)sV zqCtl%A?M*%q^}{JXXFxe9)5eO7wJ4Bm!R{A)_d@i&NFfeIu8i}bQuiBa3$zG&IDA@ zWiV*Nm7w#Gc7QH}EizmQInVdd<3k6wEMX3K&0W*c8CZILq+tW)<2GM$&a)fE%MpuN z%85x$&6LG$tFreeaJ@xbXOJ~!Lb>lgQW>{vvjRP7hO&5h-$wiFjYVK-5vgLVptorO zMw2HQFrT)gk|Gp2f-ubm4~+_R7I{Zyk#`n0x4KbyNi;N9;g#gLcwt~I{?nh++dsuHnT|6^W zNWnJ8Oh|dO`D^=Z&?MeXE5$;Y;PdoK7QmN!77D`OEf=V zhxt4{U@>pySW@9jeyoaCTENZG4jNtG)SpDIKGRJ%g^95bb^f%IsK-YW}J zTjVYSFJrzHt;Lu>Z3o`KPFTX_#OG%yNqj_51IrFvPDFl&ob2eoRH1%&ej4YR!kFLE zM>T83zUcOmkt|$O`9N4Q+w&v0-%_81@d01P#PeudP&cLrnhM04Q+EVfPbt_e?XHn> zNI-KGS-Wys28SFyQsXzCgJFW%VtelKh&Nk?X{02ewu97i=CzD^;}IoCpC96{&k<-{ zEOzZ-n!gE|2_>wb&|1 zVTd~vhfs{P8Cxy33ZWDd%leWi*p0;^nGzyFAw{`Bh+s^(oQ&c;d|3x-)n{kBn-bb}dJ}Wj#@+K!>N>lOr@z zuna4gISCgK(q{10FvZE$=e8xpjpI@Xw5Bm99ia}Kl2}DJB|$BoR*mGOgId8!r#NIS zo^)(F!%6p#BSL5bJ(vwIJeAnQM3LjKQ-U8DPAPCA_|4u|!ZkLKQGnurh|C)gFXRxd z?hnM2&@7MUo*+lR&YX@XG#n2S#)o}i7VK>n1+)UL8 z5m>dz?Cjb?vx_iAfC~nD?I2jd1;dfh1e$#aq)0LUVkNYY*)^DE7Yk$*G0k4;5zaLG zGchF`2e>!O(Ic2c5xn2!H60)LSbp}>qLiQt##x7^B!dgfGhG>ML8?-$TVfv|*YdLZK!_J#O2 z9)3(KO3Tq-)SK&W9aa4k*8Z3n5vP@{3t%mIr!G6W$3TubW&^uM{5 zLFaPU`jal>B+L{g#6N>?7a_Dh_aY<}vdUQvN4$NIq(2h-{~#fo{Mc2b$>{)5hFcaw zDCjC|wSxf(UF9!?8Ljr_c(r#}BOk~pK}H@>6p1hONJbWIb*$Acz#Syoxy$Du=~q ztHqXQ!|^Xg`5?6+KY)?-Fsih7YiE;NpLipsS3P^*SIZjZdO!D^kE0s*WsROK*5p~4 zR^~n3R<;~I@Rf=6AVS?^r&it==v#ULt z_8sLsNNtzN;8;#?GtuZUc;71;BTILBW3|lss(yC(Q}7E~E{+*~eCzH+u^#DWOJj`= zk;lC8p!W}wbS=kXS%m;buLIP&CzmPC0Lh4A8AX=v1{MJ`Ac(#@7=4EHJMdr_h}7Lw zGsc;x!~e^e5S}V<+Bbl!2U{^&)r{H?=0^!oC7lEHkPV(1L#3(;c{`>smJN-(rCW(d z{{o0wRgNPk>cJfd4Pa}^x(O71XM&Il`~qYE^9q2*Dwg*}^Yp8y2kHo9dNq&2Jx~~t zP&hX=>38bc`2cK<4!PGr2H@ZWihwZzz79^4(Bt_M+mDYAw7!$ilMHqTdMoz{NC9@Q zY=TA#n9iQTqn!ioIZwhr>H@Cw2zFm%^!kH;;rwv}A%Qp0y3<3uH}{RlSrDh*l@))t1bTZ(=7tyA}8U!UASa55&;H+bY9WcfawP@Z# zUGS2Qqyn>A$^dBPHtl!NzYCyx!P%G`)i@4{jJu;T#{j1iWK^kHck(zZuA|| zhE*p|HQMBw2LwT?U)D&e1>6_x5AbBY9<&~RJp>q#o5Dyn?nu54M`2jJl_V*?`pedM z95xv<1h*674k&^Z3Q~kD$=TZcQ2VdcYjCac_7w7*Ecl^cYJbOqvTCtkl1gMYMM_pR zt^h}k?kizkGR|B3G8J#BOrTuKvbr12-@V{n+1>Wzjk;mY`|LT}E5bW~qqJoH$uDXw zXk8_6l0VU5O;edV16FQyQ38iFm)ff!wu3xSNIafycf0%6V^)?!i_6p}FHd7yFjM0P zHW00@eXZP5D+8@Rw0m1p7y+|BZOl%NFyQLQxC!XW*qK>l4+>ZUy0Sq)pLWiG3vh<6 zO*L(Rg?b#viH5KRG~mPTEJ!~hDl^K}7&Cngi&`2P}*^p|7>61j%T?lgLhiA~*fFCP*R4XOalHFmN#C ztp)Q8F?3)lfmB{T^u+p%5I}>q+Cb6)L=(WF^=PZr@Ebr_jZ#DNCt z2Lnwx(K!q>L(rl)M8YE^WW7yDY(}Pnk!J>Jq>x9XA&6oeN+4Gloac$x4(WpgU*!w`M#64frsz6q12}@$(QT_{jF-B>6W; z5vfh^fCTA?mZG7!KX~XQIv<7^#G4>3rdfi`scgI=@tPH?h=72%xMVsfm;O`e(~)2%-YhzVaX{r`7RgKS;1c@o?Odjal- zpzpxJo}dKV^b39{!qD|UBN_kR6dr{k6oXD7&Sxfgl{&2=xJ0tZMw+%+){qFXitx|fW3{G^k3U1l67=ikWTV`f_HHdy1bPfosC4p z>&FmuBk~oZ8|deV`(&pZ+1NaU6Cn*jRiZ@@Q;d+%g{@pNu>|t=8H(u&lY+c3_f*B_fSE!Ry8h)XBY8Og`;mC&)M|2Hr~>wdlKs8;{o9ujxHNf+{9FIMJq$;RyDWd<8d83(8^$W{tk!_%Y8kp<4^-}~-PZ={=5as#aU*9c@9y!wHd z8o*HvQiK#+wyt%;|YbH8w}5Mm|`xFEX=|9~fHL@t{_Yjnwy9s_^}MC_Pd zh@w=X?|>9^zc;iQWk^;T(Q^+Ibs$LxpC@B-vYm~bbmNr({J?c_&Z;oPSR!6WcMBjf zt0*)3rf-LPlsST^Pmu>}M#3ONwAT0Ea2uZS5M00D}jgrsoO%vOtMEW4O+)6A

Akoow3VIh`1`Y0MoaMGH>oSgL^<<@W7Z%VHiou31Yn@#we)o(B;8 zZDm!M9G#TV3>-@_y_y9&_XA{hlmNcs97vG51)H`XKg5lJ4e9fI9_{YRLXfj$?8X}j=m6LVrSpLbauYBTYl&O@eG&j6 zyN7&-AZVfQ{L@OPitkaS%Zglp?gMDLIymQ57U;koPgPjPtlgOPglh`HAsQ=(5F^)- zXzTFbCbKZXW1Un8FZ7>Sh&qemiDdFMIC&FK3O3RIF~uOqm#701{$O+mxZIT!v>&8S{_iIYGBY*E1Wq{n2sU$&^x|ro)OKTDi0?QppCv*$8?gvk_vc_V14M(kZ zW!L)tG0iB;u_FJRV2DP_w`!iM>h6Z*XDI)&xzFGmUT7MTxLvYfq4|zQgHf%Vn8!p; zA!3aGmw7yxzz8S%KSf3oxy2wow6z*Pg6R0>kp}WZ(IN)mq){+Q_O9K#u`A;yrZGD+ zZo*+N4qn%AtU(WrK$&!8?Oqc{d0nH6y;N(+xa4aCQK@-K4h(uT>K}OP)2CT%y zI96gJjg^>a_TR+Bzf*Q4*x!p^MX^E&93_pb){IIdb?OKZWH0arLiiF$8G{T* zV0oD52zQEPl4KkwNzBpQN$S#!nNNvGm;X^FBpZGA|DT}K2W!v&DJ2GG7Hc@(VWwr8 zk*S(G0{TRLX#n7#*$B!}a!ls1Th*xD_u~fd?3FDN2W*bdpV<>+)@UU+^>_6yD$R87 z>f)1ErpB#K$Y=RRHOn__{_7hARsA<$pa*sERH|7cCg1n0^UR4R({hc!^BDL*w3L}s z%gankEy$JHOC)o4&n8o9T?R{9CAeA42(U5Gc&bB=87@(kf1`ZT;j?!CPbkqnJ`NmP zz{V_l2jJZU$mbFz9`b-`L~Ph0d)N7@%DsS+y~z6;VlLCS_05JEl!rO1%Y!J5&bfz9Bx-v3aEe_M@wk^5FQHHv&zFWPJxFO$b=7s zZgP+s4#d)cNqUWL2dUL+L*4?9#mnih!NUVFxWx=$n1%^j3lNlN=bxaL!EXV(T)>qA zVN#eGflH6WK#g>Ew=!1_K;pJY}edNS&|MoK)7pJaM%{y9uaiiE*qF=EdW^I^}JsjOx) zm2BK$@9e=TGR(a(voPUafFv}@zF{0=rwq|a366#mMp%^J$jl~sQb9-xpQJ%_2H`zf z%qBc&3K9h5zhlPai)s4n)?wZ&-wSbOUZrEUGub#}!7W6}px#O%bX_$$sgPDs)_s2$%QB@@a z@_$<}0sJ3eWnKcwMlZ0PBVJ@bvx`WuEFs@T2alUeJ@VVLMW@N1xe7ni;G9_)xTVjT z7H{#m9lx3{3Lcuh1Z5Wr-4JTxLn zY{s#YOIbze$RgxE;6L-#cz&kgMgH3N`-yB43OU(}Jf*NL_r9P>pBa5R}-?ha|N;H;G`5WtmB_Fhr7^B@B^+ypvCxM!Ys1^|UF6^-8(1!I;I& z1|t;F35;O1{|>LN5B7zCe@kAR;0ndaoYrY~h*#C4PgyWiT8-D469l5n)ow z8@N5nH=Uz2{bb4o^#-yfb@paW4=~^AQHOWeqKkSxnn5N&Fep<{Ka(+V-dX7DV za+cMD5RNRW5X2QT>IZ&}j-CzdoFwa(0fgg#!QWSaRj^}?fQsrXHcoQDErS!LFilel zysw_`^D~_405%l9KkWmOEx*lUr(Fl!GJsQM$^XBgqMRgLgF$)<%xY}s@d3VwU%6JH zzXq>d@1e`4TmZ+xG)VcuBj!QsBfv!V~lA6Tfute zdN%WwYmn%`_v=XSQhypB*F~9!`vYfDiQ7MB=jCSdGrK7mP~4m~e*bq|B1%8}K{QtC zADMwku!S&^{Vj7S|5_!?cQQ|svCJGgkYq&=h9z7QRpNUZOw^!%OuO^Eote2Pxql#$ z_^+h}87|aT;z0@r7#(hX;H#})(e*BnLW>wjFViY+lI$F$h_)kSI;I1aC_-z){6Kt^ z{2!$Mk?EZO?#Y=%4kPRB;X0B&)EO@I4y|cFoiqni{@|RPHFC})eu^p2JWyG((gjr& zQ}yVwyMtf|f0yrVsqLtjSf$7fzb{1*u7Gi>!*n4U$P0Y|emAjcSeL2B~j!=Y8lle#fJSSYZ27IcN=p04_^Z`|(7C%r$pDHE3 z6N(P=-_xwfp@skrxeUPx4+AL+wBS7OFaUgihn3h^YPO0X7l$ZDUB@>d@rcw%=+Ps+ z`;NpTI)~zEkrrorGaicv2{?$c*2piaV~iok2*Z&Q@fJM9cnAg(p!iPWYqyLAnb0|e zvV)-UZ>~4^1}%8t4${$>JAib8Jj|GW_a}?cEYgFLihd-=@h|?+=U+qP#RY-`@x2f- z9e4QR&#J#sagU^u-UxeZf{t-@HGM?qI_L{90M+P<`4PpEb(QHg5GO1=NR*H~FvYrM$p+Y-OB<&7XWE-WvxZo!S zgrSI}Z(%4Jg7w2j1-PKN^4ES#KtJy#_o^37zCD09yan>l@b?@MZ}>Hc!A2*>jR|6_ z-d*rx_38F~B_8?JLH%-EI9ILe=FjK+`IOW0Ipxu36MK%j@`3Lr@_ndwmrQ^Es&>UW z3Rg4`uVcl#@!)OYeDE%?)-qSV6p+c*Yy-ZL_!`v1qhHVLy&4_PiKA7ycL}JVFA-9} zw+zA3PMI0N=v3}n@lLF=pN5)&uM|?AP2bAr|< zwc&>bDM*>7F?+xX0)8Md{{WpVYc11v?}h1gs6C%3Tl>9DP?)F?kX{!z7RliP@-VAy zPts)J`^YLjC&3WRGVWPW3w}kBUG^Y`MtXlRJic_e0O`K%VuArbFd5K13aSr3`52B> zNLtPm0RYyu3^1Ts;5&?Bl`MUS(A^Y$url+#k03yD_G55=6lDDJn+kbTPPdbzRNrBc zWiTSL3R4gucT?y`s24CmEF)5N8DK-50FC-SgGBhqA{N?UM3xa!+`&u8r>hOlA3jM_ z$_4un$^9Us4P&`K$MPIpCA~7x8YB*a zbjNRY)Q;I(VE#(*Yd}w%JSJYVz86BgB|PAJj4%fh<_r#G0dq6QOOUCD9KetU3oZM1 ztVLh31b^k#XPwyq!|OX2YT__Si?C(CY%7TP@Kxw{`-tStfkSQ1;wO?JOITlq1TkNV zToHciGn8PgVCGxkaM-+-s9#WyBih%JDVVO)9unV=WY&YoSH=BZ)+E}Y{he|u(M}~A zCJ6E+Hj)38lM#w2ShM~UDjlq>$95i?WcvCjwBR~ZtTUi5Wu3VV0rxVcFkkCtYYvj1 zh@J*7!eu>*xmDF3_Qhyd`=1MRCUmQH`hv zugXh+FA@%(yNUehC-_&qp8p(t0}@azA#_AiWH;-T>%ohPbj(=(Bg~zfy)B@T?kXTf z&I1yXx#?n@#xp$b0#F=;C!-9!717WTm+$77xd(bCm5ncKHE%4D$ zm3VoJ3*M<^YNdPui8+W;0ZvOaZ0C_jsajzF)Ffa@80$Mu6*U_6CFcI{dhb6BwfW|s zv0PU$)_8-l*hZ7+(o+*Szh<@h(4!d4VwXmmUm+q^p9)0h+1{<0G5^N7$ps@)x`XO#+#5J@p5tyjmo^63~5Sk4>h@cQ(i^ub9n|bV0}Qb_Np8WM?(RzJ62aT98-9FNRUu9 zL}rLfZFvbi{PJ`#7SzHT{O73%00+N>&?96y!f8pJN8pUb`{B|X`4?hJOoHlBEloGK>T7c8{!g@slvkq`VX=O>KR&Nh)d8K;em`?VuIoEp+^sX z30cEd04js$A&?S7Kg1a~Ci)`_j@<+Rhunk! z4!X%mx*#{f@D3+9OFif&&2sWf(GV0q1_=WAx0#;UlGV=kqCZyRzyp^ zvlqxjbGKEt2#Sl%QYh@CU|A6EmO_B39hz-z;!nmR(gSG^!>#pQPvQ(_% zJ-&Og!Uc!rjAv+NIIJ2mtJcP_tp1 zLJ#iwPP1W~B4;Gf`vH`}nnGt(9T`tnQ{;?;o1&A)s_+nWOtb}%r4xeefWTG(V3YCy z;|P}aRCk(2M;@~9m~>036*MLY1a<sO5B<4515tt@3j1Pg53ZQa!Dg*yMJm>UJ;1 zWA=1GhH#ts9Ir>ZOY+YJ-2!s-VD3}Bn03)$2bqTu^U7eH;P4n z;>;CHU(JZf+G2Pt&%6^;24Q#Vrq4$P}^~k>9?O4#32O9GmGRABd z=;P~7oQbP?uMOP-`cD9Z28Qx`BOfK!qrC2+;1-Pz#auy#KqX^oi(;<9m>rbJpxlP-y(ZRgtli7?!_%^1;L%uh!$Rmq# zF^)6qVPBRI?8TY0*dwdz5gei<7Y=9knYROW$a@$NMZm<%n#Oj!aL~>dh3`cRe3M;-?g^Beb824wnQy58jh^F^!Qj;BHk$h}g ze!xJGpE1HPKE$1*|@A`kpl7Bc_OT3XdrG&l6OAJJxDh(=1S#pfTmE zS;?5$meeN@hm5haVQtmsIL-lo8^G%@T=iE)Qv~`%gkxy#A0Q&1#hhV?&oTz}mQ>=v z$|p}p2S%`~1!p{X!i6XJ9E}cqPBjDj81mc+#lx#FYK`I?ao(fj-qAVIhZ*NwH9NWk zj`v7B#l5-ab*a3wMoL~VZgt7VO;ETXuLdy&>*zZf&|V5)LxwK$$cr>&lVK2@K-3$t zDU5oeOq2*car_ygDVrKF>ajsINK+K`FywesJp{VADFx_i9vB3EpY8+B@I}lSpFk@L zUaN{bmzb!zReg%+m#TqhK-auf_tzR7=r~wB=9(oHo+RPYq9so!jTJMv%(wSbF_i+xM`<@cRCF5r%P0*E4VK0@|S+N+3Ovc?}4P$AFMXkemew90-j z0$ydwlP-JHflwe)h+Lqd^n)}-{+7x^NKaq@sjR`9va137ZN#P{V>WP9aQM4pVULff zY1hFq51lfj9M*v23_hbadFn$h%uN&SVMVMv6K}@#tiWC%4PFLjo=O?{JO-UMSZCl6 z&nb8d*keN_4`-0cLlA!=c{_q8gFAEbc$-Pa2G|rrOvpm=ZfIV{kq|SR0-nw_7V>nc z%>da<)CMwtHlIw?Q1Iz;0V`@3)C+NZeF4P|*yRkM!pxl$U04|Bn8-!Nizhiix$yy$jZvlq|HpTEk=dZ@Z8jXtFj*tbO`v~m@ zwFC^rW#%x#djUiUcC1#BPH=;*K_ugKRQe$1AEDd*zxLh&D$b>A6U8lfu;A`)!9#F& zg1fuBOK^903-0dj4#6Q1f?IH(PIB_)JACJ#nY-59wf?*2Hqc$&UG=<=g4a6jAobBO*+G?u%+$w1e)_P?pwHY|=8oam29{=X5K`-4_sP5osP z(ocVLe0Ng+VzxZUxc;IROWXfqzJ5;V|9#jxz!d$nCw?<Kh#K!(&S4-F6(tp#sfPZ!J7sUveM*$Y^m-%eT{w1rQJ^!09{6EfF z{y&w%50Y?!Rqc1r|0cEoJ^!08^C0`p76N+y7ftuG=YKO_|F05ozt_e8eOS=H44Y>N zb>Lh}_HQBVuTK8vU;#eWZz%$1fd7u9?g_wf){h+np1)QC{OI2d9AH-eO?(07`rmvZ zzykbY+Lw_YdzoXynBA^c)q!Q z_q6j21O)W_>q$LW9Nw1~mbYU10w@PrSJyip3mrFyF`o&EfiEx1OWsEs00C!dKLjqHUtom5k3$Q2H+ECb2=w0 zTQfUj0|R?Ix}Pshw9XdhX>n>5OZ2b<>tsiq3NCbQ=tbnhfef|hjFK%pfwTEYl07lj z%e5ywg&({9nH7a|8ZGuSpCgV&Go*4H;j@?%C8d0$rLm2ZsGVzuh8ilUocORUjO8a) zS)*c^jK4E`-5WZ_nU+uiZQ*B6v409%G{`7a0r%aHUU~0Fm9OB7>8^k!eS$KXeeQen zK667tlt!FMSI#-Tc7VEY?IM#494n?M%d};^32IHp)=bmR&T@t%LVIzfAUdSntaOkf zh{8?^#*096DqZ^y!=zDv*mZhK3ceexs&J#z!faLM%Yh?Q&JgAxo70P{GEu{*#$ggyadBh&H1dTa-9<7x-#LWMnHI zGqropz})s0Cr?p|c6w7YmcFxnymw1eMJQNZ%R zycRd876NSM=P|A-?JOovjd1cPf1n$FPj0c1(jmm77WJ`X9u9-pkudU8$f z4dfGZH5OaaPMyQ;tAD9^T(YFy3_XhAvluNw5>CT`RAR?4zeA|5Bjkq6+K&h&t@zmq+T#i zY~{yK!+W+|+&mW5d+`)CM|T+2pLq_a`ktR!Sw z9hB+UG5oAQnzOE`YxpiMxlP~p`BsaxOUv$#*x#DlYE?miX^Qw;TPRhIi!&2}6{(|S zH}!zoRfUi?M5!)BG2)tjzoARZ)mwo)>8v4>6h4g9AdyU7`A;S=I_89g9w3rWp|S4I z3It)2KXa@r>`DGkdo@g_{*^zr!*AwyTApD}Vb0`Gm)N^fa%;ZW*kkVg0|PSeLP4}L zDl^U)5fQMz1*Hy(Ijj%})Uv`f`2uDb7-IdWUfD`^3}}3F`Jr5GH+n$+dFbBK2d=ie z>vqZo{2y5ykVQ@OLQzVQ0N(`@=Z8zmRf++VMe;KXEg(xG1|I;KBQdYG zN*tB|aJ6)CxupdXPcq~o2_PM{otQXQ$KWqCQ26Et>M_&(v}Y|=cjmeGh%-$9Pz^Z* zpoULC-4g}2!8(aQ>QP`T>dYMU)c&&#wxSFE0~UwKBJWcboARWD?@#D~%CYh)CAX1B zXmx%x`QH+pr^HOB!!kwYiV@fBa3`7l5gs*68|aH|4iT{usK2#0fSlO@3#V4Vq^?x zl}_qDb+h?I@MGjLJ}U=V`BKz+rq$+a0f8Z}+;D zSyWV%dRKmaZ#~EzK5ijA&@xMOb1vf=+3E>5HuAJ8I78=1lKa@=NZqkq9Jx`bG_$SS zMBi6!pU*_fA+}C7V1uJD@WsFl_gLx90LPr!YVKLaj?@!V1#U};DD0b2kN)z(^6KXU z=@w(bwUM1=_d8n6#4AFfek-9;B_qH;2eS2$9MnoZDu+`tvp&?|tY5F0cN&PNLbIz$ zq8n+_7#+1mTdldjaIZ0Sxz6PHH)|yj{=-@!3RE!efd*w_3j)!T{{VjW8*qq zi_G1o&9^dFBBr?w4XPmvIxqz{n;dxb4NQvt!i-h4;|l7S)bP9VCo*$UbPn$W0rQWg zgXmV0R}!>3gk`tur!@V_DPaW0=?@JsZYs|B}$66H9 z*aDvGwd&20+akH6QMCX@>p#t!{>-&KEhyj{=>O8JG5<7cGvZdc^oT$k_hOF-2`9b0 z$SL?Da|Pk`4T^OwP6M!AA$YTnnyN=$>ptZA`RX}h_+d2d$z5BUdqt>=e&^FEF{HUk z$n@PGrp?9f4t6M0WH&+IqAJbvib`+n&1`;Av#GQ^!1Csmp>NNVgt8b-lAlFd4(0 zG^>%!8ul&SD9eM6P*Kv+E=@-)=lto4{5T0nsy5v%I^9KYhmMhLPL=qJiG6lAx3uw1 za#14{<{?9?DK1SOp*`oYnGy3kvFZ+cSp{UL#*z@WBJsPluXLh9i#fYkyAA$+&sGx6 zp6Y5XM`&vdQepm(;5i4d-Dg#SB;<)N?H){aECdK5p)C}Jg}av^L$fI6mBX5 zPw?MLb}}*bZ8jedmdsE&`&a}|3GboUJwpC58?&n+e)Ndo8%oh!ykou3$e=A3g1x9$ z#cG%~4OZ)K%&3Wp4%MM3dz?tSr|wQnQs{cP*xa6P$Bx@T;%}F&FP)uODewJkF($Mk zN4^g1aa@aKO5~^Em|TGdp2ZLB^Z_rp+pyxD@tHv)-M$Oz;Z(-<{s=}rzZ%AxvR)pi zZO~baqt?+wM$yI?KAhX5gq+cSuo*_X*3#}Qr`(=!>aekOB&u^O)cqDqtA9DR`+J$c z6)2vSG|Y$-a{KZP$%%ULd?!HB3 zi2F;V&|goXb71&)trLl{6EFm5`uFPkvts>waQ%t~*&fBbi3!SVpPu^O{q*8~>b(81 zEDS(6f>UMw)LG-bN#sSG)<_f)!9_U1pq5&BkCe{u)?JQp3E>C^ZtaTVN%xprDSI)I z!saL^7#^*>lDz*bJq*5x7mPwU{sYH{q8Tgjz+e#Eg~@e z&tt3$9kE>s&{zHVKtQhnH3GPf_QnPl2EU#eehjZem9bE)wT6;6899h0EdF7ur`Eo>o)cqYNijE$VxU0NhA z49Ni6^7a+=gZOf$r!A7j5Y)f|=&gWxb^@L#`!Xe3A5=heW2YgT&pK(?fJiq{CfWct zj^A1m8dbhr83s|zji#@zjGG4|0ns5`yqK5Ur&j4N4AFdWVdU#d#Z@HPRa-sPd_f;~ z<&JR(mcHv`FmU2-x=mk`BO`kn-;zA;pf}K=O?@C0*oIKyx6FEGY?9D+SDv!_zSm_s zjSuCg>XxqsTBJU3dGM&(Q9oS>Y|QK%Ur@imaS(4Ar2{8(H<#U_bfP$dwl=AyQPYG| z9QpBcmV#Gh03K}fhTyA;_Y^$pJ%QRTvrx3udOnLEY05NQn8^r;+BOEzeylTf zYFa|o@7|4gy$0*|zAc7gLN*Gn30e05Yj|qXGq-nBq+ZkIz#9QAj;KV_v+5cCa#*+?BI#?~p|O169`CTYS0< zZnvk?z4O2hZm)~o+a9gzraDS-OGpxV`Qy1rt>?!_^fj%Hr_=qjw|lc>XWhLW54R(U z9nWVRmzA3B%KljSDluB(K{gx)$xJ9KLdW3-b>Hd z8^epV>sWL=G6cAh~dPsQJgYz zdTN~^u^M~c6xlkdA3(ydk7OayVqBj9~4d`=!3%q>P$M zn^Qi$0*|?Mrce*(PZTTIRpmZeE1Ny=+*NQ=NrWI@oWanMFvOB|z>w8~=R?sn^4DBU zR-Up~o|4&5%vKe$*@mIFKt*-lzSi>ZT2ahqTs4N;hVO*s8Dy)XI~YR<8QdzJp?W?0@h=_I^C zuMQN5<4}*48irtqPI8OurO~4CiicyK!p^avQu0RRQQb=6rNT?KLA2)_bY|=#G6`74 zkj;?7^Z6oQZv9l;w~kXvyolZ1h8G^$2FkJX7Aa3znT`rFBG^0B&vt)|!6&s6HG2Ej zX;XXH_;YK>G<#eG5l5(uV@{HOMmI}v`RJ516&{B4VoF!`0WDWjG3ZsB^y*u@xnVm9 zlW#@^eU$sN_OW|`oL}KezVpvkQ|4PfO3~Pso6$DGBhR^rwSJlP2nFq;r^y^;lvHVz z>Itc-kzKB3qK1N%o@KqUa1dhSJ}W1CH<&)E>cC5VAeMe}H@wn1X9(%!!{uu2#a1Y{ zE5m1%NJM@&jWrm@svWu#s}c^i-pWo!^Xy4s4!J6}Kof_l(}AeqCzp*>U-HorXb9~e+Q#*lkU9FtL<~nU7f`eb0vy?e_3sYy?pax}1 zV&IvpQUn<<##z*W^_caDPo<~5P2r*64s>nWQvdvq%uUQ&%9?U;AfRX*ARxG3=GV^N z#oWN|hv6MnS&qnML-f!xc?Ld{Y6OE45EW`-o))ReO=wnHQUW2Z>gSzjYa1&6wq9tC zALUQ{b$;nMP+Lzaor5;9IH&C@d<|lzQJH8tSq-HvovAmx?fdTPa3us z%l~_}sgDVB&~%;H!whC%D?bRTRuzeC+TJ~4=bb=w4jQm`5XIr z8|?t?wsc77Jy(yiLuw{Hi!@~ln&3Pe(PR>(eV^j7NjyRIB=lrFm6RB?)LL4Z$kt=_ zM(jtFQlb!m_#i zAcDzuN~AHHY^l+))(Or1Xt)Lo3GnTo8s)42-v;3w8?8o(zXopcrM^4 zWhjkVcm{0Wh*9aREOF~qe0;E%DwmmrX;D_LDwn3ev}5xsN{wrO(*OPhS?)2y(;gFV zrm*sjiW5%S#@El=sUd<;h;I-Mk-&-z^9l9HU?a6CLAD2a^Hbh zXVaK9*BCXEO=zzg(jl#~!Gywf5a~7FY(+Cd_?TjDQs?O2BAzet1+d@}3Q>fS9}X10 z_Rg|@F&Mhc6G`1A&&J`FSAYWKJ&O-OQRMdfuCLqs38sXGKiUW`*&rF&~wlusbAa{5*VVw&KGux?91o;`& z1Q(9XHpci*IFyx6SWKU{wyfyJ*mj=lX0u3fTq_XT!#|CYM4IZX4iWE1Jubl;kIml3 zorFAEi{-8{qI^>n)`O>ofg*onDmbSpT313x?1@Al*Kw|&I=eaK9uDn3w1Ns7_*xSQ zE-Qe-=rk`Yg@ES_XWaR9qBe7!BUUszYHdfq%<$vq^yFq1Ca%6o(g@vVIz5BwgK*Rt zTxp{M2D^gTMd`DAdouK}S8o;b$zjO)t;z-9nwZcBVP(HoK)bECVGqxp4(fO7)WVxW{Tx9ZRlvwDMn#3Bk?jN zEwfW}Ki6?DDR~v)ZAdG?lurc)1cdU}#BQu(YoIT0Z);*{^mBgqkL9*np@$8)26;pX zC_riKbxLH_s!S)~?WYwDlz=c}G9p0E54p&Hx>mH_aI1;KS@THu;=_Hxaq>wm=scvkSa?o_g?G`~AZwodilR@s$)&;%2rc|`^<)zpBbDbb0ZC=8hYNYgFN%dHg9K>BBpCHJ!;RL z^;K;QSnq9sU<02{?;K+5!~x9+!*UCKDOg~z@2eIQn(}EIii3IJwuJ`*} z?U7Z=4g8y{(>Gf8uB~^qVH6jZH;L&|3tVau&U~ud`wt5(@BXoaOoEu!_a-?jR^)HxI^fZbrQZ);5i{~31gJxK}R)Kpv*9Cf3^_FGz-g3s=>}mkXkQ^8;BJ| zfostkhsw=~^?)}isOzpAN%!)}-?6>gBl zfrP0+6&9+ce8f{HcBvx!9gntt^hNTIAB>f(~m zVm8M)f4oZDoTL6MgdkU_*1$Q;gew^zNlpzXO%>wEo7-3U4d5Yy0#}bBYM)dY_OvmN zE>y9?-DHg^;&Cd&SxF&59fs>xJC~_DR_7~gVm#D@l+wUc?qFYii1xCbV~~7RFQo$= zqde#cC2Yw}eiSORRjAW)=@t{L1nordb{pXacAj>9E<|85)=hl~;o?3eFrVO)H5^Ud zkrD?vPFUU*7NMAM^7}9M*v@AR2_mc5$R0R-m-8^v-?ihzD3-QKwuCM!zcitu_nU3v zm?V3suOr?iND)YHAqvf1>@e0nJ~(`Ff?SS%T^#I^Z++2=M}ABLXn zHg!?jJoHE`*=Ft2;UW|E;fc%6HPKAS2Dyl~^d(-Ea=?Cw>xHiJ#`J@wVn zarxV~_xoG0=aSHDvvJ0zp2p?FTILBDlE%_4%`K~!i_%LgwF>2F23$1XgAX_qZPoHa z59t;xTcS0*R6W$S0Lz$z$d5HilIr^$Dy{y&R~4HFz0hca)kV62yxGpMiVqc~^J?Sk zeY%@ZuLWmA=r_rIX?m-+2Lo2Jf*5h+P;cXgybh)XA`0n;QCGA(Mp<*kzt)^-&}I!7 z@Kmfxo^O+9PN2`|+jVrV^4%1@SubdKww8A74FLNXr(&G`MnA7xWSn6#qrapMJtl( zhQ!;Amc=GR$*cq6-X7y95wEH9`^TUs6D0*pa!Ng=zURwZNv!DFxF{|XW{{3uMpR_y zTI{?fo1ZI8wgW}Qq+Z(JU#sUfuP<(4Hj%!kN$xQy=A2ge%oQ1&i8k(#CbiG3s$S+ zPf3_7Z1yp9S8|xM7H6|@g*Hwu7v@g&2n)S=yO7z>Vov(zZV|-X(+3#;njhg~>b=>_ z&^K{tH!N&1bb8YF>V2upm7rZ$;4ESou`St{=%#+c_qmv{e3y0N&TmU878j4HqQV`B zu(;**XXb^_Ui(qYgVnq5%wOa@bI0*%=P_cNk>1$(#Bj;hVD!FtYyYDj@C4EpAZeka6(K&#*zf@WxNIYc$&@cyol2s%9M^$nT7N%EDOlj zpttVJ;OjJ^cTkVKjPDrjKa1)}+aT+@7(h7K%8+%)J5(dAkbe|8#r3*Uw_hZcmYWK+ z6muMgtUx4JeA_(4B=~moV9=M)8|;iXtCv6|K0!XuzfcmN2-*LR8H5BiCHj3f_T&-R zt|RQnm{Rm?CoMUi2mxsEN1W^i4tZ=w<(SS5C|PA4@B~z65w}X9GH`e(xS(22I^Yh~ zoID8ssQ0<*6+B+4JRHVxenKitjTV>&T9p)MZKb!}y5l;6Vl%;UcM{Pt)w~!7f`f0B ziEw4YOTV)rFDMNU10}57ei9TTO#;#yotfKypSRK+!;DXYzl|@4J8L-GWfu7*{ZOa5 zBH~NK8?rZh!C$Zt!~+rbrqfDBf}rSvg814YA&77>KXT=|qi7HFFIdHM zM|;IkbzRor;|5)5XO&vadeo0~@h&I#iAVcI~N4h#jLh(h~7qfQYEu zcWF&cU-k$QQCvnvTr7W}>~SXfkKnxs%n69@uLl*Pk$FWrA&U|jzhXb-d6|;sESd@81=;3Objf|X44wdI8vq+2rudKp3-ZA9J0~NoXEi>f0U@5J-*|idv zmOd^iiYphL@y#{Uj4?*xeY!ibY?ezp)E<(4?N!ui75bYVqJyK9u-d{*In3n8a*kKAVV+-Q;SJ6H-2T%^J1m1)llh! z7T)B306|)IlzVez9S0)~K47g4KE4OTp9y|q>@aIbx{>!yJ$Pbz8`Y@lw1>*2Dp=*! zS{5+b*CoHz>~{DZ%tecE@zS-d8|S&rOB7z?J`#&-Asw3P(6ISB)@95-%Fc|}TXDDo ztkoC&sdZHl2sx}`CQhr)B3J3=v1j%^*|zj0%#C8(lZFTfEd#E{mcS`aqxni%@rzT}Vsp~v`O zFX^QrTIA9sk~gH@(@7fWXK2t}7CjbROU{>BLmw5kJ$xaoU6k9p$bl4=8Gq|rO+>48 zp_>za|9)kOo-EU(eX-$^sOlNJaEoe#*^U~o7k&4V&hN6UeqOkX;K8rpF8nmS#B^6z zk2U+LOFXS1@cM*)9C`p7v2bQtF56dzHSOJ2YJcKvjDSykR z8%l93g{Aw%9B>68;@u0HLi*Mb%PPVOWxZg}ll!yHl7lgyf~nqm3myjVO4RT+_wYL3$EdH23jB(B2F1e#R3*;$y6_Fv=T`%&8sRoyD{o zH5KyEL(1d6rS`q)!dwm+vA+3aThNkQ_4V)H**C=!E*G@62eXp&_rZoHda&B{odEa-(1qM(fkH_gJ#O zO0HxBvl?`&Q!^ysDd#s`z+LRScDmpc<@1sm`DZc$1P8t14S+4W1?VafK$HI-z^P?x zVE$Ja=g-9)?T`1RF%wdt1c?17r0t+zXloR5`{Rzf`ty{^5WMMI#MPg`Dwi72YeeHE zvFO?u&b!`rj1Jgd8VFbSB!xNo+Rn@PO1W65)9oHy?d@m8#O2S}UciH|>gAMNeb>DW z%N^a8#gq`qYiuOmjk0qF5;5hadVLP8ApS+gQydCLE2~ z@`8nA*@Hax`T9!32&KI3u5$N#G*VXUW3=2^T-5+Ixn3Zt(Z~31o3K8121iGA;ae3) zb)Vf&i5p5grD@U(XLgJqjn(^aeA&^MLwIg!Ymi|irs4;0 za83)JFros3AQB?;sJ-_C+kg03(l!?=9$y^Kl zZ7zD^6{@lCeNZF4!#)L7)OWXq!A+RP(kXTMEx_%crmYMHn2_$-^&W<>RK~s7=RVsv z$I-pg=)N=KXS;vAg8e5UUFb`OoB@QS@xKz%&nV)*)UQhnlmRi|#P%dtpnit_+*{hOBSngwborQHC*vzTFfl)DyYJ8U%@u?D2mO5Ko3c z4fkLIEp9G8R=gYYcI-ztl}59 zJ|={wB$LRpZ)S@9P%HJV?a-NY+T*hN4j`p9FLs*pJ(O6Y{)@2DKC|}h8j19|I(G;A z7=@Z#<6p5lFX>%3`JL!yfW*83hK20cfVBqjy7mUP@&@+yKS{(F?-^)yO)PDV$PGmF zMIbiS1Kb0!0~8>@A>aZC@zcAbpbKK(h;?#-L-0dLLfCf>c8@v+>Ok9_-a`lpK?nsX zso!E#@TO!E_y$9Z2-7owisEHKlW5z8&`aQJcq0{q3orpQghg7)@kSXf5Q0)F2O0W< zB>^}pUszatSYRygFWw`p{#f7`x~<7?7}HcvIS%Jzls%F{p4mJ^JUYTt*c$nOl$QFp zhv9gGwbv2pqFRA^eBa}x1KRcvqYAE**M<_HEKq>0OT=Hz*R!&)FtD_@`$ab?EQbJm zJr9Jhco6TiKXN!$J09lQB#gn;A8uV`$MF~+*-(E-#2;#sxjVu6ENaqxUx_F44k~;! zjh$&nq-Hrcrc(I8e~KLoo)Dtwl{`$_*ka;r=-s{xiq(TU|k7h(aq45U*D$-ZqSF zsFG5U+M=D*UxFWjE?Su+V1j6HX4|SRfmU+)tzwi3Oz~ah<9oJeGN4e!@elkE8u|B( zMtQjx)zQiB^-PUAZe6RuxL>8krS_a5dEd##=dj#NB%h}=?5&9Ob>%8eJ# z>9pLUa@)EHE}9MLjyiAAe>JH4T>VK_&n_PVyrTGw6zf5$Cv)y*g$>~%FY0NvhfnGC zn%P#iO*)lodK`tUr?W~B!%7eNvfK|~2U7sLMgB{#?2T;=bo34M z`Tx={Kw#S6KKQ9`X)#?9%lL@AC-HX(P$v0T-oRK`*nKMCoC!;ISD@5xt@Zl&jOM9| zbm!Y7vhXVJ78ha8{dK_VoqEhOsUGajgS!U<$Kh8usTFQe zxja`qo@%+JsO&*u>zE+SPsx2tD^5|mP53{ZkkO}0kFHdVw=fX5G0lc=t$j>9GXP`Sytuh~g>dzOL{+EMx`zQX z0#!<77-~d>GD6+lwtYxh&JZJAmox2=RpBOa@(nuWSWtq4r~m~E#kFcQhx`NnGU#iI z`+zC;A;nJ$;p10%Q7%Hg1ZF|w;!+{*>nJWXC?f|A;*!?zE#tY6UxiRedEb#W0J(m& zT%9(f$Mtf$ju3H^7KjtY)qAGsj*pS6ck9kK4npK0Yu1mUC)v-L&$on^y(9hp*awLc z=wo=#6VoWN8|nbu=8Um%f{L5&xvCUa!5zrCqmN1Bpm{vO8E_n_PUJ=jn`*_( zaAIbs%&Gb4aAHh?Xn&Y3yfj8Uaqs`&Jo(qI$GYyIQg8w ze*X4S=DU!1Y>f)-XV5je@LOt+8!SXfi}xi-G3?K?C@7pqoNGO{xEib?ab8DT7uL=q zfH2)+{y6t$x1i#ImVsS8RmB01YRMVtyLidag=6U4%UwRzLlR(ZL+ysZ zQ{dbgj%{Si(y4r$HvAf0n2ncuIN&kj(ewIfQO;Oz>MRWihDMzQpG14e2JGbg*#J$o zMWOn`Luk!8OtGYDJ6~OW5FdyNh{Yzp4-1$h6``I5_!${?NIKDZc=ASl)|ky9T#w8} zD&sG1K8!9PwD5_uDgZ zg=G7@TFin5y%e85HwWXQ4&p1g;ukE7eP;bC{~(sE5-9t9hDTO)6f69qG;aQ3jY3tf zLqB5VWBV00cb}>~;}wgOxt&_FPX!+Q9i5vNhH0cevp1N?zkW9=kTwo?*6-~fUy;I6 zElczEy=u&7$-CLFwnY>~@(2Y(1`)^OY~$l607l05fq|m0Do~3Cf>sdR_z{8sA4krv zJ4>Seivj-ANqjND`=pxBFqcQFS9!DIaO(qc4P3B8_j^Qa_iHaYoKQGvMl`P~wZp#6 zownvCQ=E{N4ML|S&MPo$lu-Z^nNy8b<*a91iAn_{tkkNjfTD8y6*^tsJLOlZ`ax&l zcix0t5x|1$XPZSTk^C}dXCZuOdc>wFX=DVx9?m#@ADZl^AVmwHnU20J%onRyo{+r(yzGjwArQ0F-V3xYA$%B z@vN>z6OOC(Q>}PNZ|`(s-IwxH$9f!{&Kt*`wci7iGF#tx^lA0%Pd^iql~cNkGa!CY z5zaHw0qOl_g0i}nLQlqhwq}ak7h(2kye37^M;u>!udlGtokaTvwDc|1 zWT6p5OM z5h>!Maj_mkESpg4a)wCG`QAABhVnXXrGi4v=oL`~ZnUcUz`m%Okl{b5)X=?5B!M%Fik!RzB{IWxc z_>BJGkLi&*$=qZ% zVau!-$`UW0!!Hp4!u!u*7OsFQf&>sP^S{|q9dkW?V;vLAACfhXk(KfX*wJ;#R(_@v zON!xU%wbZ-W9SPYxY>_jFxkDkM;0qIgJE=%H%ad4$sM<6B`3Xw>F%6taHfggmF1ZG z^XV+D9qGsL_z&jl7R_BMaO?9uRgG;!R5OYOda7i;T`q8AT#*xUcg0n0XDvFlv=6r! z1#6>U>^Q{VNzKo;S2-SYCX)_nUcCnr)C?Bw*~1kmAxP8M1=H_EP-^uK^W_GQMDeHa zoD1Cw209et%G!=j&&t-|hy3t!z<|lKfB;$k?|!()$V&UsqkLSKd_c%M znFL9-gR2x6%TU)P6xvdoS+fYQjjA8MI-#i~Fzg>#vpaU0XfvtjD5AUp(K9HsLlFi8 z&vK#3Tif2vR}X9;uZ%G1Dpuu>h|r!YZfqZR=6A8!7@CE{AnSt2$fMbojJO(SLD3tz z&Pobz<#)4D!|F@(O2M(jc-H3ZgeG{a?4#$)9>A%+5GG*H2g5^{DlLBr)Wx8X#mgDG zMc)5T6H;jL9hR%XrouE1R>us*aU9JJe#Eg~d~TJ+a*^ac29H>X9b-XnjLkRact zfyi_e^)OpO%^S&YC#x%3j~cbvSyD64B&5LuABS3r#l_H=CCPf3vIbB4oXFb&3iO|Y zml~x{vJ&u3*w4ZHZ`!A0ZTI?knKDwK>aYADk5E08~7knH>5)8)V+Gp|hu<4F-j=I@z=HAx^g zHC4wrlwMoh zNDV%?osJc~cV0hs)vP}KQ|Vj8UC_<#xSLV>Q+T#Gq1I4;&wjS)4|@g+rXla@QJiH= z8e1^$ZrzK{paNIjA{Pywy0lv6{kZehBBq=y5Y848kAb1qSy|~qEI@%vYQNg#>b>X6 zHvpeWEyb#ID_vtg!Fs%ReZ!O3+OF|c>-&X0DN7gKy2ulN?fIqUz#ue$sK(#7A9&=n zz&Qr!xg^Z5Gh}~y_D4#M-wMEsS=wtUxL6z5Y5Y)p8S%dZ)G5*vT>!F50H$dGFYs>< zG628!i~jz}I=(EZ^VKh^6EM0^04GF$7|=ft2|!riUo5(=m6h2)T{U#^N|+Z=Z9PD< zF#nVUq}TzK02Kap;U9NW_zm%om52fFCprVv6B`ic`Qz>je;!Q$O8W0q{?B_c{G=>i zHpQ6w;tOUM5Ky}T%nOtaF9BX2j`#zxzx@;7&ryk&MPG*B{wdmX@T=&{VBD7oFXKc1 zAm|_cMEF;n-HT|^mq0H=^!@-*p8g%^-vjnuqP*N_|ASI|^LLa#)%m&Y{u1crmgpZK z(fj`j=;sFMOQ4r~R)2ub9)AM;+bu}`aR=)q;LEL=KY-%T{}aGJ8#gZjUv6vs0kj5q ze19L9|5n34n;b6zU$Xvx0CRwU0>0q<>0Z45xd-qP^d*=62Q(YxC+Odp^_QhzGNyk@ z--7)t{emvF`$zutCF)E1?hk4=#NX=lkCV_#(&ta&ptfT#EgHfPw#2fq!3^y)6CrmB^p6KtQ4hz(D`8E_qq} n@2=#(7assD5C2vCFUL|w92{^rAb>>z{A2?RVHpa*%mMumy?Tq- literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/data/leap_re_nest/input_data_48_CHN - Copy.xlsx b/nest/message_ix_models/data/leap_re_nest/input_data_48_CHN - Copy.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..821a3c2a243d7a960639d41ab0082afb891301c0 GIT binary patch literal 78004 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 NPl1VWRc6Dy`4^67vvL3c literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/data/leap_re_nest/ref_scen.xlsx b/nest/message_ix_models/data/leap_re_nest/ref_scen.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..caee70187b661efa4752092967c72c74a56b5204 GIT binary patch literal 2255630 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 z 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Π^b8ZfIu@QG3$DK9X(K>!$k} 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 M?S(>y0+_A8>ttqev+hK-)JnvCBrNSjrr=__RB zgE+ij{2S=pWZ2B&H6%!Es7kx3jNpQfb7{=tbTd;S?kBrYny4|Jq6CK`Y5Z}^JWtYa zSX|Lo?uoIuEgF0a0rI+Vp2(~Aq&HOecd6!8L9;6e{Al|r2Mu2P-QO3=&!aky9L+laFBu=?&Q`C0u*(D^D&)E%Cp1U1K^$)e+zrCkFJ zIT&M6FC1KpKv_O0b$meM$}&iJs7kS^3<2*YDG~gfJe|$3YMLB?MzTsZ;|0tZi1G7E zY*^#+WK-xd%d*&X$wD9TZszP;M-a8!jf3ZO0NE!ewWNLd?kZbb&l3tU8U(#z!f~?} z%@N=Y5a}kWm8U2{&DSVYnBVm3q=!!xRu@pJ`HbJJ3IXd_U;tiGKG19;FCBMVA~;kv zv#AULk92-M-iyxh^ZH)`!moRZB4GI_ySVRJwlK^VeQ1Tg=ZW-a4T9dVJbkz=D4&E5 zDRHqen!$fqSE!qUfM+<9eC=~bqj{et*v*u@bp!#Q#h%xkymlE4#t1YsaV`jr&+G~U z8h9<3*FbkDFpTeTJAXGDfdwi*3cR9i>{De3%@FrIp&PA10L_TE;5B3FHeUvrWPHI3 z5HLa(aA)*o?M(ajsT{uUsq=@-_!YMWWb<`rAz(SE5_uXC=XzV*fJPPExc50z@YWFo zEIV02W)-mPbn?@jM6NWQp^AHoB4D!7f*9(n_#k*YgjDd_kuon@g8%|9)XfRl$q&8N z`I1j@TVOVScNPMwVWcprl39`lG(*9Sd#b7Zd{TXg=E5ciak$d!Q`AiOlc(s>aJ$WNU&{GGiY#WG4_Rxei}HQ7xV9vLluk$(IpRR+9jnRSx7_Gwl z?;>KNqsrz(;CE3PG<5}``3AoA zmwW`(nUa3dh}!D%-VOK|9^J2JQG80zB4I_T>}NjFP6Wmh(X((6<&{_`YNDgX=0jkK zwb`Ph*i)<11`THL+v^IcQxNcBVrhdEZTzfNshYM_HX|uokl=~#LN1iKea>ka9*qhcRcMO0Ue4&u5l?X36`}9ZUHU_-X95pR65WB1YfV+kRRg#bJgC zjUb?-1xz%CDW?RQqXkYwHbp=Brc!=_57|)yGU?CFt7hOAyv|N^EtU1<7xh8J-I)}p z-3r`sQVABIENIE2XllQJR38Fb@>t@BmZOA^xi=;HwvaWNSe?H0tQ-ebrN++-Cvu%4VtpQRJM>`v;bj$b8;LhLcSpD z)METR$R}k&L%>=tQ^ha(3??xD^R%EkDH9ztHXi~dpd9|RN{aVsVIVes(N09=FG?Rz zM8yPNdq=TADQrzO8soQb7gc8?K#6xeQybsYV)Y{aweEp|m^zc<7mcXhp3CQws%Op1 zG)usKr7X4l2;A{XSk={)}GB!j}at* z6-{i&Mmj)2^ybH0iY7Xn*?fqs3yJH}WpIX` z)3b1-mF(2_@DOm$TV;Q{lplfP1fqW&xw7hfw7`<{1?b9YMfT>ur9{p@sdB#5cH2#s55XdsP4#B; zA#h-Q9s(Pk8P1|K3s^YonM?el5x8&;`aFb`T0XL*)-#v-MI#`Ea%;czZEOL~!DW8* z=2CtHb_DIAg@YPzn7%KS4HXm(K|rXu0CM7>_|#j#u<>Uzp2i3gKV?NaJ&0!K*$zOt*qN8V148EJK< zm0vUhjFF8Rk$B>d)th*sb%h_CD7DL|vk|zERYz&I%iyXBb)8@{%wq)!sEtCAV4?@J zS+h3V9%i#qnQWnuXaOQ_gYXQRpVT1bEUzhJLiX+Q>TCi>WdpvtUa5X@UPow zVQseguW00+gkklpf~jr@p=sHC2$aa+Q|(YVIFgw%-$ds=n~xx*p7jkVq+aWGC3sQq zd|1wd<0crV~}#wq({Qx3>VIznJHBZO-cy@jV+fJ04XUy1ZdP* ze#ZL)tT_`qVb*G>GY|PiBY11hm+8tx?b|ig*#w2I(`yc|Ix7>MDK;MhW^H$BHJI(` z@|rL8Sk_cb)CBSFt3YjbM14C2bqsbvW!mb@IKOBFR#s=}+b_fG{zN~z(PMtZO3-`O zCmc5HYu?ZwmXBpe#Y9IC@4n8E=}Fbo0t*#fOIL{7x9h625paB={=eCykUaBk-KMI&$qf|q7+X7+l60pE?8 zxE9@f%#Q$KCi;EQINY=Ns~*g7qJ7ycaHZ2wotf(wjli5MginMYgKxM?@>M_PN34XY z+o@n40NjuOL>PmGs$WT}4*?4fJ%`P_kAgNME5t*;Xar0ry=pR@{^q;lO|mFU^&ue3 zPQg|^@TE2;A)EyP1wbR_XOmI{>~YQyCcpw%V303MpA=W=7mXkb&aXwd;0Vzclav>J z(Fn5OL`Vmy@&sAqN4I>!kFbGOmyTFedGi(=$0xF;lAwY z2rO@Refv`0RKNd$@%FeN0e4xs&y)R_q<#Bxbv6R#0wZn7C{TuEQu>?dRDR$i@S9=7 z&u}cGR!$EXDf@O4bv6R@eP1j^CO$fARW2MlG~%cM>Qa6P?9`4`scpR3^FvCC+s`B5 zk3f^YF3dXB9Y^553siUf8CI0g`gRju(8L-hB24D%F4F#gS@Gf7W^8DEhej= z-~O`0RsJaU`s_?rTVFi+6!^)5u9}E?RFmWXxNd9|j;kAje&`82hpZd>KO2iSj9%Cx z{wp|Se&~qavB1nFM3abnqWj@1;ocSPnK{VqAY6C#XG`0_|Nu-33vW>NM`A0k#+x- zG!~d+@jpH-e;`!gfhT^ov=|K@%17LyEc`+)NK?&iUwn|?Dy4-+dn<*^ev4oiNiaXw z!n-z0gpsgsML)>Nl&C+PJ`Q`_vCikR+oMr&sNsX)Wq3$nus8Z@nS7z|ToKgL8V?4J z<#rl{AYKhD?x8sac4+OtO<7V5P$j#qVd-fGWf{Danc&0(W>(tVvl*VB!4RR$z4v$3 zp^@k>K-=mxedfm#d|fIv3^XP|neB;a5_lft+ymw+%X5rQh8T(HYxtqvXsKbL_;F@>7P+mk)yP zVKyQ8q#i*bCnX6h7 z`fzeh%*fJ;#8O!`yM{AB5a1?$5=SC~TX~%$Akv9KT3`OVkf|D=gl()%V=cy!l` z@TojcUWZb6Wy{9efH$iMnrv7A#EZEC@ftfm2v)-sKFZ!`t|hZv`}dkn4@2Z22n%Q^ z@)|2E5McsKhQZ1Mj-4;X71spqvzUwsPBuv$j=?>bT~W`4eyb{ z+Bp{Ho1^<-{8(3|DNC;`xe=GnL4D zS5J?nEc!9E4lf0_N;8=7NF8N`V*{q|wy8QwanI88R~%izev){1YA($Bm>$=00K&dK zjAktz$e5^%H`x|db7RDIKDg17)v5*OYT(bx0Ibwt9c+o|pbuX286I9Ss<171r)_v? z0zP3CxWUR+%2dP$XjH~-Vk&U>=inprpr03*Kz-LGXk^NB`1LWtGXQ)8ORyqAbJeM4 zMB&B3X{T$_7H57XZ^#gD2K174X{gF-Er3R#UQ(DIGl>E3g{VnzBjqSV8W#`FMNv8O z-0uA;d>6bhUZrZa3R>ceI=dUTgU#_(aqvP`bDlFt>2HU)k!UGYH3?H#NK_d%RpaBI z;)>hamiW?MR{3D2u$Hn(V_em7qCUQeUY=uM6RyKubwF!G`za0v&a?4>^YDNq!HIWc zNEd*NK&3+3BF4c8^(pY7UE7j5gTt?gpL%GhW(xfPk@p-uI(g5LZxz(TCU##s)^U3) z(wg9{WAr6FeIFg6^OmZST9;513+BT|f9Y2FP#LX0Sa-m8oj-Y^2DKK@bGTw1t|Qqh zI13A;8AzcHC};q+!0XF=hSN?M37`s)AZ@XW+pnOp{H$X*Ey%2~J5lbb{wazj#Tp+( zgIdA)A2?H4$JGpunjU?9{s~V8CR0Hs5O~P1fAkVfAv|HmQ~mW6%PbncQd;nT2^5;v zB;e|q%w$NbV5eNPmn5R;cs}Yzo^pjiW|+Xw&yrw#)sllHm8eHgnDX|b@;J?9glx#n z82C)G48}=!!ivM;pSUQU-er|-1&@VXEfe0}23eNtj(@Njf;mjg3asq=pNO^-<$;cO zIKL-t`Y{bhM<#XngJ3Ue9dyP#nHD9g97K%J|9&F+isaIN7x4|7hsOQnp>WjC?$Z-- zSPra43%Y8)E`-jP0ku2!Vo(q;Pi%dn8ZWKSAdTEEfhQhI->3{wE6A|@@*$}xP9E2q zk?cih$UgZ!t>;5hew=(hNi+I)TGaKp1g9HTHC16IWw^YZ*zRr_SrQFP!!!M!ngPSl zHFpdw(wT#Pv4gM*X@zvk;O44zX?LL$E$TveTj{!$7pfcO9?brt@FJ7lJ4h@?MRL-i?)k6FFD2)a0dJm>=uuOD(s%k2$ zZvu;gb!-mFYaPpaCt^K!Sx;4>Nf|g$m?5W90Upl()aloOm#x7=4U=JxcIB5fuFC3P zfou!YRAY&d>}vD>f)MMMLElFoeH$*kEj=sa8nG(eDYWk4#Jl{G>XvVbu}@XS<@Cis zrE1}AiH42?cX7Vr59WJrgcvqd|5yZAKW>8XG@x7G8GAV*;$u?6si&%|l@$v)> zTV;f)A#(nw^ib1U4a;a>mChz`JYvvm?~4-Sn%c88;^p)ih#dLZGwk~4t-3DQiCoj+ z)#;uHxM0R|eeXyw2qPB#zdsd6fGde4_Oqv}ey790&_mO`s$WdX2rkUvxLFee^GnJq zkBI%$)>a{cAR~I2ScY@D?i$oUC$0nb#>*2lJd>$Wgs>nHv;~X!%Q`0^dh5aX#r3lt zYYB4JC?v60m9Kh$^+jf09UffP63BnmU~M{cfqyIl%;yEx;}%1)uAAJqcBVFbeD>P( zECgJx#WS|1XRn1@?dQ!6`!`2@>wjT2nR#+SLfSGDd3_Uk==@)%JAdko9=KCjXLd@@ z@gxH1rnx+$^M=WN>-IJ-Z5+MNWG(f#d;L@#K|l0p3&g{Pt(EH2Tyi(Q=UT+n6)RPg zAg>?cDgUQ?$XG1`xlg&*MV4gPzrB;V&TRSvf2^Z8D%Z#A%Ox-exU6A{jRWLt&`GFq zorRP1+~tUL<>gBjmKdDvoSsGCc+o(mEHF7$Apy+qFp%OM>WNk%1na^zu2^`J&%*4~ z9LJLgus9T|S?+jh4%jxpkOG5syK-@Y&qw1sW)N9SJ6W=KEf**Fd_6u^*1W@H)itm? z1^WaDZyR9f=tq#_XukO*8Rb3#m&7qiZl0qIf&LZ{e`w{ZSoE+l*{xof+x6{HiO<$_ z=D+-75g`3B7nD928}y>pNpQAndKLmUrmCw-HD9Ug=Ql@tE}0zczBW8Ce3x~=->$e^ z9AOLM+rbrI=bKApRAwj26TqwCclQOAUzINnI8SU{Vq9HSWKxCzf^E-U?o78h{O$9b z#>R-ruUD>kq%$M^V-YanUpL`|e+I6jMjGy%-{NIBrtIDBkxk~~3!s*H`m$Vpu=gFdLPy9z8!hzWl=gy@nd2)=nH z1;r3kB_za}T9PEoVjcIln^hr>09PK2&N&YC5ZPx`H=Osx3vKD-+ zW`WfX!wx(G+=NhJLJ061Vta`k#$$sg+QGv7=k)2i&~83#jJX7R18vWLNZD?D=1&v` z8my;+!TJwh1w-H`G6cZ?4LGPz>@8O%|I zI@@9}OP^>>8cdWYfT44lc)kGFINngANQJ7ZioOaWM}A&{G?~mY=Yl6P7?I6ir{$sW9`hN*kkDB;bBU8 zk~~4f9Oas?5OEMLJ+9F{V6D=#qJEKMErIuTbJ>sYE6~$}xETG*=7cLgyV9BG{9_4L za9Ru9xl)ysxeJ4GyL~`~IKk(3lxmMd07`XouT*GrV`0o?1D|wemVYb)=5j1=E#joMr>K38BflMZ4!p<8#|CqoD7(`syK$j~z}mRb#!g7V z-rK~y?jMVQsmPT+dhi)<)a(B6*BkB@Fn5`ln!cDC$ay<&3-Bt5nmcqu)7f~nnz!!0 zbP57WKE^9KWumfq@RUIP!&Jh}^f2qm@&C890T=eqDr@Hd%M)ry($4ys`$XX+>e zj$>BRrB{$En@f%CLE1*Rk-hMbeS!DILC<0cJ#dg3VEW(yhrWau0;I&FpvQy-&aaO2-fe@7 z_qn+Wb=&gIika^?!Vk$OGQ*JvX4S0;wg-y=dXz@8#YE#&<@OBi8Q|0+7F&HYsgzjB zvhuf=cqmgKr1J6r^J4UUajeR+IAq>6u7T6NuHh4H9JRWG-!4xnEj@7{J2c!Ht(=+L zvn(T%kKqCVPPM)?dWfWX{~_;kV|xh%ND^+qRs=_kjc7;`4h-suO4O`8eEnsyZC#sM zyrzc?T37Epn{&d0Mogbq|MhkJeusZj?$_Zc{an{SBO$7V1V*(eV!MFrCN1ZpNhx*j z`bSfyT7OM_oAKGIw|=IR^Bs>qDChBjoMy-$oY^g4)@*(tHfK{_3j~>n#UK-!Ax{a5 zmhns5R`Cq4M=A487^5o%w*Q$*d8eB(Z!IZ(zm~>#SUtP+bc2FOhMD>4RaAAwMn819Q!d}qT7)jj-R%sm!7u?X)5j~54+Q_D7h9dkKH7ze8P zXP3h;P>p6X%Yh-t&@bDt_a(EGBOF7TC&q1F=$`$+YCTYEfmjW(XycqQ82tzppeXcS zFsKVT_1f*#vSQ{vj_^LrW;otRtjt=UZ3|rE8d%pfVpmb243@@5eJ0v%g`02;|MQ?a#!}9)FHeU1WtY? zuGkd_0V2v?z%|S{Ec`uO!_Le6=`AmFbeH3mrYx#qo5Uul?kHQ9RCn}!dhL1nxo0}7 zo{hw&!WUc|>??xl{ZT6btOhCh0V~TjHB?nS7JvmMrTu7P#|&pUEm6eIm9FYE*1n{( zad2TV7!wPlG4aaJb)hIF0p+q5(gbj%D06ZCNvY%U_yb+AzWXc-i@#ZH3p3+amF9a_Fe=_4a!tz)g z)CjZN%Z0Hv={p<7;0ViNnv)$Hb=Bou+^`X0 zmn?;&iq~B*WHv@aX6@U1YC4Q>;et#*y}8Rusp9JlwI|#17Zfv(afBtX=-`RbZxi!S zkc|HQ6ZVfs?ltaZt?-4@WBZQqvP!U+xIkRF*fuxVt*a)gDUVV0jifCMP}tzYE=34`oMA%u%G?o0R*C0mpuA5ui+*Y+vMUOr-4cyU~QPbjtZyG!w zxVAa1YNm=Fek4&D5=(x}d9hVZT+u^@ByPS?(_;K%;`vs!HwqrN&>GI>gevZv3E(03 zVE^bNy?52KU$a(ok~bz8UqO?;txw}J7VG|k{RT{DcMSvv5r*56gr#F@$onWfKbN5a zea+^_IR-A_)c95jInv|uebD1YQzz-jk)9#e3t1zv)*wNxuvZHR7kM+i<`+zG$Q+5a zB%b@B@56mW;=pt|BEGi8gI;yhxV;8o-LNzIXMqvi`7PFbc}5QVl!*xk0PrY;3AjCAIM%6Zk>vhRz!B6n-)1i zgV-@qBmMvcNho9T_^v1`vO@C`h2szCI)qz8hzLT4MNI+CKzuY$aj0|AZ}%Hn4`P(H z?-_WTzcq+j3{fwHG3te#^g>pp z)U)L2E9#0<)MAP~bT&iNoKTW*I|a@o_;XdtNGy8XyfjFE2zHLcI)B%{PB9>)M-J7Z zRU!x}ii}4N1Vk|&0U~L^?O>ZS17(B#;Lhi|7H8++SuK}Eb7#o4IGh}b zr9h$Z(nzT3q*)8V&my=ouxXV*Ycw8H=BB1&gM5uLkS|?TkVl*35#r|A?+G3Sz%AR% zcw-eLrB>HG#L zt3(Race4J@7qH5Dx?9#1><6vK9{NUE=wI?`NKubBHo>xgpvqd{+P=;#K)0Cf0Nqt( z=@WAEcU(PBK@`{FFPA3{THe?iq+86Sa)j-%ql14Q`*vd)kMt^mdpi(TDE*NixiTN? z26qqBODtVZvTnSwgPaG1-RLTxF-^(1^SH9`vQs0mvpEOlo(|lBO&`7G`DVsFnRu=1 z?$KhkrAB{iV%pQ?^}5AbIQT|ZNU%KVPCEaf%EHT1M`HCk2WQd!tybf`8+=EvSO8&X z9ZrwL8gPVNTD$1LUsy05Sjar@-MHXg}2FUVe9T za^&OLsJGx6Jj>VEPtV8?D6yKKxSpK)FF%T0BTu!vd-;)$Z>svv5@^#Ju@Qa}fUQL2&=oT8a$TXW8#giDA2G4DuGhn(H4s%3`Wc1}ICZ_2#MA*-ouMJFq%4Lw zD?bmI-J&*~GD43Br@U=EIQiZqf8Nci+XbZv@J-13v@GxY;I7@mZ2f#AX9Upe?Hdz2 z#$>N5?V~Mt@B?pVTU;)T_y=#cSr98;rL63LfV*@u?=J1_(ddy>ZS!?=T~UF~K&t?P z_0awLcek5ePBq2Fy#u-Sz@8)wCQ1+3zq)k0CIv1ks+bF!~31rW~RIIQzfIGvzBPfU`)R z_0_iND58j*2;r#KCV&9Kkw=83Mf-e0B1~?PkqiReik~nyBFa}|+V|XS{o4|rCQA@N1-HrgvU9#Y^{ZOR&4npD8aKJTFVG2XLmy}*J)ZP_q#|UJ zy6=Zj#;6Cr?QU!=yqMd0z>QhrA5#LSADyt*%x}qw-;#T`naeJv;aq?0AM+SfoK46b zE$Ab|2vjZJFw6bX;WFf?XU&=Xu zfw!U2cLR$AwDhj`H#@*zuFoMi<~x7lt6Ark*-CQlz27z3Sl2YLBFf%yh9>y_bfX{{ zCMI-(xcU3o6E^uVE40E~R`IWc?ICW2DHBtlP8tFl75 z$|(mL2aE+@s(5sLnR0Y5{~dz4D*J#7UkN6)f=z9BP zwQG1(*p?gA@-~5TlEZ?VV^fOv>=2CFW@dB?dZsk>g_@N;`=C?(&}ylKpTonPR+8NIMnVWmi394_YZPwlIMgfm~P)j7#A|U7VKCK1Fstd`60n3d1z^&e6 zoAZ{0<8`=`qCQGbE_G@1A-%Qli zFxT_Tc$YsZwzK#LA_|CfTSjo$yynl=8Nf>%bp=xC0(DKB0QgroT$x`-MM)gJnO+NO zRIfX#>IzEh;L;`2Gq5GU=7>7PJ{5aMRI+9!OUwkPeqwdYh;EeZ-=-Hc2n|(JP+CKB z^l!<3apW7&I${%ND)NgzjV{k)W%%2MRS1V6+3j-{{Gk9TWMRq@l~H^VwA0(o(;NDN z5gaJ;E}&K8bn5Bn>Qr&nDzB!zO_F$v^irMC3EPL}RWCuEuTFse zo0mn2z|yuFie39BQ5}dB_Q@K$R$oWCk1?sC&v^S$Rp;Gx2sXjW-wI)_4oYJj4aV(V z6JJd1H~#**#dP}(lIRMFcX^4sC%%k`)-{IJY`FdovvYs34Sw;J_ly1T3oH78!!MPN zr*69H9n}$3GpU-LU!T#FYjws3y$;qt4;w0JoAP=2dg9Q?iHGJk*@;6CkmIz{zU5X? zA98T7==@R|s5ACc{&-hrRsclb3VH!$gx8#dLm(2shy;=H}K)5&kmQNpm$RHj7e+!tn(C~2#qGhdmarb;?N#_R7 z@zN>p?w&I{>;ry#qu;!vT=$$+qxWxHOQz%_x{@x>=2wm0v0t{mwcwZEk0{VL^Z1~b zE1VZbN-nZgUeaagF=!$%Y1ASrq$O`M8h&0yF*EHr=YY}ge-<9EgD^zl4M*^%!3zv_ zVTJR8NJ$6`b~QKr&o;4<@x#C|xmIJ8-D4|ijWNmjN^W=~H_x=QO=oVx#oX{WPo@N0 zt2JLGLJTtENJc6@(F4MG4R#o|3}x|HAn$PG{Q6&9s$d8u>9(LODlV0UD9ybY${v|1XeBOC}s* zsD($)Oza7#Z)z}{e2Ia&3?G1(7UOU*a2^m0vjxQ=;%`TEcX=+xPz!v~XkmcNp06pF z7ouGoS?VxKi`qYWJ5HK0eyDctgJ~Tp=eeW{Gq)B04Z|8_n>r9me0Pl~l!(mH>a3ZM zGU=Ew8&TK}UU0zifB)N-sQ>N|z!GA=WDU23yGiC~-MXUKUSsj7#0Ur@JeYu(T zkW9z^k!dkE(_+lz`r*e+;@nIUB-2DPzGOkD+w@{5n$?#l<8EzkX}_!DPoyrW!A};l zG*Zq7o0R?vA&I~fHt^&I^3aLY&bsA2{8U;OZNnu=l{k3o(=(>A|EMzd2lxBAyePkufR-?QF!sfQ%A!x-hq50z%=bwnXXI^>%BJR}ZZf@J28Mz1)pJ*8{oK&qF zB7GWAE)X@y*9v?+F6$}%p77WAgp%_^9p4PkrddKK?`|%%gifY5kC09V9hVwD)QB1( z?euAu-WP$}7IHk^0zeE&2_?XUgumjJSrKwoEN$oxC=dCHioi&(=sb3LqJ9WJnWD1w z2rEkac~pl-Qge%1Q}Cp)^SX;8%axb*xLt&pXtMjFi}LveU~D-j8KE9kj17!OP@$Qq zS8^cA9$Y0dA5kfsLShL+YtF-V92;#@Crs3z4hOTHiO9T5@+DzA22O~l$HdDKHnc`f z+j!qmZVqLu@Bb*wvN4?^sn!sW{uDJW&%biDqzfD zv|Z+ow%&X*ZZ`^|FZp@RG3$s3S?_!gWjFMSHNpBs=FlC%3uF#iJZ$LY%67hIK5Cqa zTH>HF7@qT>&})g$A))XDBZ|s|+}zc6OE0#zV0^8MEQp~sT@5!zoHxv491&qdS?`$E z52>CTQCi-I+V}Sqd0d;L2$MhKf}tW#{y&*y#&T5)EzJCIWyN46`%-2$tMliuz_+;7 zd1_B+HG~K=fOXu$Y}f#rLO)NPR{SYKeJR0n+~yyy{lx3$8qEo1DyP3D%>@^#H-#=_ z4ynW7AWp*Da=h=?L|A^!_2sr^4{6OyXbp*0W)T@SG+Q(I)hm?X%j!Qtf--fjq-a^| zmzq{f$HQJ#VnDAFsCUQdamf8{2rL9q^~C-%67ulLUSYB3XKsDm5UD@2*p z(UiK0R|j!dI@DGAh}2P%k-u<}?+&52SVuB2D(<3_Aie~#zrSWj5blW`N=tS0PC zQm#@lMwhPz4RPeWDS**d{*iMH{T3yFNxT|o3Ns@kQaoHeY}MKn->4Yh;(9jrza~v~ zMiO_it8sI?XHjWcNX!uo_OL~!u&NAM>zdfAh6#&mtKN|$7w22XCl|O=eh#Y4tg#_3 zf1gVXeGLV5Lx!A=Iw8RP?h)rbl8^F47Ebi|wq-i)r{>bsABY zvRq%TxlN57Ks2?CCe)pwkZ#j>b1pVWUUA|i5i@ZpxWKXo>{{1Ia7RUz>-DY*CLvZ>7TiDr>p zx?#2^<7Vcmh`Tj;^gzXTNt@eu6_viko5)@UcrIJ0v;5M-r}A}RWHsNcezAKN-d@C( z(TR~6a5rGEHrs5`5_eA@?*HA`MQtTjwVg&BdXOMS&e2U)c7U6lcB~{c3XDiH)awKp zVEDvyWsYTqLmqu6QjG+<|6RY-J!|(5)o^Xugw1Y)TXcwa#mn+Re;dh?yLov2ROYLw zw;xnlS3Hi~Lf)fECI)2>R2E#WUUyZ!35mJG{lEWIbiq4)?@MM+;yW7?$B$c0S@re_ zx$wNg3%DG?X2R@pg-CfY?UyWfXBKh<0^!<7zojjJ*H?_8m#YlH3*KK+{FuC1_dpR1 z@4e7nG#)82)HTsGp`i~0JcZ{ZpZoRr4j(+xcHmq1`%ufD4CkunI(!J>5;)jkuGLyk zb?>yWcW`$^{b|zm#%5{n8b+y0Xj41{796btxnU6;?F2 zD028Y{;afp0s>A>eF}!bxN?1LmrAB|BT6n`wq2sKqoeUvLD@Vnz9K0S&9g3L%OY+ZR-Neo5JwqI`wW3;Ryu z?)0HB(EJcE6_==~ZNhq}mg6Jae%V%LktwL&4Csa=+%T0hb*BV?=;MNE(@eo3U<#xl zjERXm8{!lki+fE@WAVTtV9Hp9Vf}LVtOJl=v$>yQ1tbtg;z&H0?Oj9z_Cug<%{Ic$tQ`DQKK56&3T19H zxM{BriMfDttr>|7G{@Q+^+J_OFW;^4Ox5`0V$|8=W<#}=1IydI*Ks~IUF+Ocq_ezD zct0UcUXX)2Dy`hu_3e*6X^Ox%fCBcJ3W<5}?LKvn;dpIC@%?BqzO8;_bZW{b*yyp+ zY?zC_MaTjJi4ub6xfyj|XjZZl+w!%dLZ=FLEVgucA%f8kEc4qr^`}I|p}UFpNqI^; z>>4DR0k;cy+9&Yv{30agEPRZX>p+O_%Ogd=^Njofx(06ct1Bc(0kjb8IM%h?pfQg8YMDQPz42DSO3|ncvZ<5U(s4^)U@!Vh{jtPpf|CLldvRF*+&T?EvV-A z6Nb)G@0OIM)tU0~@K3HA=eaYzI0EIQfqe^oJ{(a#qddJS_uESsc`&V@d8M@}a|9Yw^- zDhTR8{T8@Hl8f_a(@by}4$3IMg~Y5Tb#PSjTdn6}9d^WyD!Em77OJ-Rl)$L`fg}hp zaA!Lc37Cn@KXlRtB|!9Asxm`jtiYRd=Bo1=*fp(-2PVzI%l2t~ccwW+JR$9RJuRFJ z5KfwWZdH0nj42WHcY*-*MefFL&R$nUJCDMdA2cl-bQWCw6kdVd*~E|YCKGZI1>vAB z$j_~c;_}8adMKQ6HNsZ!cyAH`aj@UV4UZmva&Xby;LfUFLt+*}ebnX;zve%&uD}O> zxY-PKI-CoMSws@r$QZrEPl8i?u7dwBCjbBVYyJ!C>S@cE&kkuJF-u572RDN-2D=LW zy9)ll6uRM(t(it*@QSK5uuiNSYfnmOeri~+=bp6=`i?QQ0#D^=4+V-I!Ch77Lt>Vb zvU;}U|7HE2n8P49&^Q`g&NAgB{1LDGE2#fivxJHGtRL{#uR94RlK_2p)E5$tzh|zr zFZ84tDB@>(%$w7eFxcr$AoT#24sg8A)=`keI4^1Ykqm2th zA$@&kTf6gKGD5}fS>thSA<^8}ZSl}ns$4`0hIEoA^{Hrz*_53W+MPh$kghlL0}Ph= z8NlPX&^B#i$9B*Yj9+ee->H~>e`tkd{><+5EH_A_nsVr)UCx=phFQ>CFDEmbU3yckxaH8)J`8-U~UQJ0-A zdp!|we0H+O*t}nfso)1f6oFcm*{E0#3&b+|zNE@6@jf9XZ1TW)FSV z?`5vai$UNKT!S3JVJw_jomX?y5)GBEDyUsS^tinn#cOB+Pz9CaF3rYgTL(rNUr=Aj zEkTk1LdBK!I#AD|PJ#vw7u^keDTw^QgB_WKrQwkU%yoG&2)tD^Y549$l?kv70+orN z1WAIP*mvaA3^R%w!Zy=O5P<_hGT46Br~)W2jLqJ7Iw@f##3oi$6GMD&Bm^A+VyXKL z(V|A0$SL@ZQ=3-4e`1#V1v1r>k0qnMm9A1FKE zQ5MX7&{lqDniO~!85TVLwqwH-Yg3-BYqKROL36B78djzGnriHYmQZXNg{#5?AVo>Ya$n9N4ijXx_c5 zyrxnFC_dXgkTZwSYHngp-{RfRN_Z9Bd8dLlrumD;$8 zLCngrXAoGkyh%rKhaln-NLF&1Z$P6WqY9-$6}1AyJ5HrtZr zH*2u*mi6N%+T+d?m*x>5&yh&%y z4nYJ8QJyfldNw)!F0jZoTd_Q8zTDzvGK-r>i=^!?ETiKtT~_7Z8gpgpboaH0 z>e*?m^Le)WD@3>lcAM;m<6?!X?`CJ90s<%|WaPzUz?!eqEW@R5&QKv95SaAX>=3je zmlN%JUz?*dlY8Zy=*ua<$2rtDagXl%7~G>f*AzpS#iyV*iDN5!Hl?I|MI6PnqZI!59M5 z8EWNXxbKH)jH;`Rko&nJ)7ns{JrJ&nsI&0rih9#!wP*oj(*=tHSisx~FvqL@pUjte zF)!h)m$B-acIqaZs!!llB4g@}`s@tWA9+9!h%6$v`uU{8LvE_0LmDu)`Pf91PNZ)f zUF#~YeHOJ0=0kDy%;$MA&q1`B%_3y@WSCV3>VuZW3KB6K>rbSlDp^;xqi>s3_MCg4 z9NL>`?MQa?MB^bDbqu@-KcHl)u4Y2MFEckUCKo%v z_8Pgcm+lbg7+?ST1pQOnl=Qc@lxi{Ca@D=$;(oc3wNCo>QZQQy`gkPqByo zTsgHr)UEMO#i&^xi~cHy(KO;AeK52C|(RXgh~fjwn3beR!L%7uJF6k7l*qc zM|P8HMt-a&4XT;T$aF#b82P3yIk!RG6JQy;~>h+q4kE}O-kzLzR&sz3)=)=1W)Fn z0hUhWg8y5q;!%Um=tB6DLh>$v=q zXaH~u2S`8%1E(TtXscvD7%7DN+#r+~b~Z-xax9_-wn}~?DG*PRCk9BlvaX1_uT`>{ zq+I+lr4xcXdACYdlaymWru-Q8$tMa@faLf?E$54TZOwR}WuwX2%Lx_#4jRP>Hre0& zfwF^ly*V6|y|&02bn4-S^`Ghl?Q4t5xc?7$`=5ltk^h4*I6?>mP$kf8{!G~e#z%HF z`raE~L7=N;9Fcu^>&b6KP6_Qo9>DYIHv9Ka)r!a+eSf9RLyh)zc(ZBT!?}4_cSt9HC5vEq(v>GqL_? zk6&H|M8iVXI0{+?|nKJ7EDI3iJ` z{a>dUh)iNkB4_ZPf-Dl_Ka>gVMatEHGB8qkls|!AEN1sQE2K!~V`S9(5zesH^$rg{ zMa6_e+0I4Q+c@&0-}F;loeg6j*s z>PeNW5h9^(8KLo2EK0eG_`H$pMJK8R$a5)x=Myv{bS^66)_n|*Y^YrV_uU`=f4nGP zbtNGeid!b@GS@gLd|}Z!DY^;E{~ul70o8QUy-hD7NEPXU1OpaOq$AZ35(`aNEFdhf zf{Ic^5J71!hE4+Nsx%?4*iedvB4won*9AdV0i{PNQbYj}1-?7Kz^?B5|IYE`U?wwj z=T5)#-1|`ACT*EBg_-|3mIAmzuZuI-gMF_=zZgXNKg|T?)j21lt(%p!GtrAZAX?7- zK6l4q`6?Mb(1k;}W$wvn@;|AV6(G6q?~XkKn?`eNCXzPC8Jq;>JPo*XzF53;{yw+f zvE1yH_rUnKc(qy+NzE>tW4R?0j^rG$0x}6DQ~l4JGOsN9hiDF{?SA~hcXk3_dssAp z-)`xy4_-RsHecR4hMB2MoJJ#I+l0WyK2a@nrS=X!>x|4bfWUx+?Gpl*`b2eLDGHv) zt`WKs&45J7QEHd=y$7Uu$hCqNWW)L$Sza(lh#_g;=V*y4Uji_ICk+-IguS!8`ufRe zI~d=&fDd4UWubcTqCN7!0&2m$lhO7Q0$0JM$7F$n4nXvz;2fc|rps+td37EFQjaF3 zIAFK^PI}q>PiOAr?JCEkm9kbL4c51@uUNb*;JG!xyo7+QaOZ@;b-3h`i;b*o(J(xt zZ`1K9-L!1bp&X*Eh$IK>=GMvR-4gXMVu$5FtF4ms5USYb)N;1O{TKi((WRjW`APNv6Zup2Ok z5Eb4hVE+!C5crH47dBdrA>#r>5&@L;LZ9e7Gz?|=%(*o4`__0YT)i zQM}$t427wHr**g+ujm(5u2b0j&z*A#Vvs|dfcvNcZI!S1MwmIDVA2Bfc~sD2xY+9g z4QcFzfK#O|UTlmYk%n>cRl$_A#o!ZJn~~SrvUahnZwljAEW_ekv$b@_s-(Y9~ff63*>)t%13y^9Ss7He3#`v z#)3so)yLj8oD1Pf+&-h6ePw6VI6L#g0#fHRQX?DK=uM#Qqw@H>Zv%LIwE7E z8O|dNnKb%rRnX}UXyt+0_Q#wO)lsZ1I!McBR+46?jLsaIlRlbY=jjnvRW}on*xXoq z#|#}OVIsjge8<(C9zDS=*w2e>ISFo-Y*j%N48&YS&F=GOLk?P?`i#XNGZANzsd5De zEuh`jG{8^3A2UZ%s}m$8te}AfW`LJt=lmEm7j|a7du2t&Tz^v2Dt?)-+^Ag$jX+vN zBe7CbWW=|#bK(?H7ao2@nbrKoZ$ zDe$Xb5ZnQv008NEx^4Q?7tQw3)5%Wpo2@tYOU25mAoD?(7+Ds*jDL-A^VFWO2%JOa zgCzCK*9Q-V!Gj+!=RCiqMzAqi;s*o51UFnG79ZV#gZNM6@c@>&s}tOq0pXr%AJ2f& z!j>3va4a!LK^(a-9SY-^5IFT&O|ogqSV)lT6Wn&3vif)jl+1syAxv=p^nEp06cKP; zx--Fz*$|)_-T_hbcFgQ>=5eX-mj&j0zgUyF^_=`!bYrTH!Jf(?jW_) zLUj!7t6Htlgcma-xNX7u4dT>3bRDlB8#lxp9DKv7x_`tWsD$?q zd}{o3W1mCs3~5=tpfn0&f(a}_A%&D3tL#dgtH_%A3gJ84|4vFvTA`r?FJn`O0H=7 z$$78iX(!`!>WK^^GaTlx@RH-iR*na#!jcsNvmheM#D8U4uw_c<(O ze#u~fQd$kn=oP@2h^72vNSHnqW%y#$<2&*_`8Uc!YAxiSO| zu>PKjxCOhu>ORg3^VJJdhryHKbP_3X1r5t#ntX10Go=;f$dFp2KgepCiMWR4_=G** zT_q9$Y!Ihz9H48~12RpGoY1S^YOXYl7PxbOD%!iRTvtzrg(&w-0Q2xACU^yx>P6 zOFO_p6F{_S?U&s_bzJb2F+&Qf6CB|fAuwx<#M{4S_cvluV=0X@5$VvVe?bWQ!pr2$ zkHi_&n^_z5OO?o}`2B!H2!8LY*Y9=U#qAC0#c&WRgccwll6cOuH+AiJdpD!5=}~3~ z1~jnyXQ}xQ&>$;hp8qF@=QE_JIzc{I9%i01>bGrECIHx?8ga?Wm@qb(;Q&-od+q^t z9jWzVW6#WY@!I{o2hi=^`>+0MdMiFcSd$)fa|}?@lvA+>H@v`$aR?0!7dlSRg`i=|lbMJZ(2UBy zslno5%OA`KyqNjG`xPh0Sb9^&gy!x+O65$%87#;2AiTcMqL=YZ?Dc)PR0Mf8bO?w07Tw#6IiubzBpjg=hF4}$9?nD@ z!>Zxnuouw@KgHWI_k~%&IVx_&(J*x8M=@U!I^l9Hv1OeZWLP^5Cl=T*hymN6jt$$S7hnc4)@3bNtM_u+XV%9s72SP?B3e;#N5 z6jpT$TP{v5@0i5hg&QbBCV}tJwLV^CBsjTfb32)-hzyUr2Ux$)M8E?c)B(7GeoK8+ zM;Fv#WTRFqNW$tk!>MCZ5#h4pkF)K=&`TW>O0&lDi#T!y8_CP89#}*T%=pbWC2C{mB|JMHFo;$*-E&~v!iHU&uE*8C)I5tdq zsVvrSGZE;0U%BHgOl!;?s|lR0j>g(~ZVRirfYp!g>;ITaf3G3xsGFgfm;kcE@B|1j zh3uZ&`lR+ss@x+W3AO>Afa8vJ3BqryPQ)&cU4bGn^j`fHb42Lfc=xvoJ2P|bDsV)2 z!&tLMGK)f=iBJPc@cTM`D=xN-TS6KPupj}CCA`5_9uCsr!XSk)6G6bf@A|E{+>)_~ zG|(SnL4rD#(8I}qAq`#*QBr3jR%1wmZHn<13@NFwxM4_x%o^fHf>{q0-LF>~eTOty z`5rLiUw6N;NvF-pbgZB`W zH9h>L%sSAA?F9&*fcYQ@OQ|3nhdTxX!y>MR?!fMf8z;Cuunfov4to%P z1wj;kpCfZZo%{!BV31v&mE{!nZEnT;38J}g^Q9SbV~uP&612MU+zQ34+>7Zba0Z0N zd|BL0xjYkv*=P2ALpIXdJnme;>RW$JWI}ifWZZ}vT_I~Y{>_!K8e(ID|Np+GGx$S& zA}z=);>M310U!deDZ(K9TUZP#{7VIQWF&DhL?x zLtzM?ps;X}iG({{IhJdF@!skR>mz*%d!=0OfnuWgLNS;EZbyW!FvNJM1UnHwvJ+A6 zDfP`qeuDarLVc9(yWhO+K0o{m&d*Y0>^FTP9V9pb2cnadbgszd>4ydz-F8i`uAm!C z@cZ_Obp4ZxqMmm5)!e#YkmS|j>ySP}?yHf-!q9w=B?!MFb+<{cV?sIpp|@=qSm#9E z)yO`J{T{Lq-WvPq#n&$xF1v^obmIyB6MZ7XKh$DAR%2E+tB4RLwqey7Gf`ll`a1)A zfJR|a!TK|&ZugHJVelnqSH+>ZS|EGH;vN z8rjKMZDgR*iRz?ZoJ4Ac@ifv7<|+R0K9TvF&;JD+MD~gB)XHM07QHs55NbA>TiVe% zp1X84D(IFI{Ly_P0{@yU0=aWJ;YsboEU(T)S#b~tAyf=4(lo~E>1hcL^WnJ5yLQ!#`JU=e^?zoUd^7J13mLWCUKFw69rD8nBN2Gba7 zVkB0(4aNoW2TZ}NHhJK+S$B@rM51(@wuZE;Ju?6NAD9E1iNwuu+9#!5G5gT>KR})e z(k^knY{#(bYco;XplW5zRv{_TIx@Yp=&sG_1aJYCTvLJD6=n(6lOI6`axxg`V8B)R zvGt8U1*(i|3j7jG(a4xUx%rPVfpU8$YR?3J!T%Z)7;7tVPGOe$i^c@!e~k%l5d5xB zB&zoF@7Fkx{8L;&;;}}5gi<&YC$KF`mB5D9<9`+6P-t1h333PD|X4%>sk1pr|Z zrXY%utgF3tMfQRJ0uP!W&p=pG**Edp5VG{Y=mPBude{X27nltQ4Qr_p>kgP}Pt1)18B%$x4ko7iC?L}gv?X;-)btRj~7lEkWj9zj5i*C+lr=Tbn@ z_V2P>;ADZr>~~ovPXAy{02sqaymlMP1pwH|mN=nySvcgLGS|$>IX#j1Z(8Y#CX7-6 zvn2eGi$oGp^K^yK6@y-uOxLVW7hgg|5rrXH*XN)w1PQtIJ#@#_rlnSv8Lv%&PSZiC z1ua;s0k!ZkFg*Da_+@!W%lO>Ws&I1wMGs&I4^KY+ucyHh{IkuwTG?mu+Q0qNci?pO zHVx?it!x`5WvHDTo>)I zFeO4+=PwpuGyvygG+#SSv?AC0$5M z7?Za{A)!NqJR#=bQ!sBf??~`zHXDCM`4h{A#i@Cgp#2-lc8ccEQS%TiGIos|3wXPn z>pi$Fc#`Z2sZBGC%;t<<&q-{>S)Qo93T{9;TeEg8T*dav0SrYs0=KFtxK*j+PhB|5 zJ8W_#?!n`_RAkM~RJtVZx&gr8o}?8;M=ef!?QDMV>ZA_xvn;~z?-zN1%swkOZoNoF zHlej%n3I?dC*))PDkFS>|u1v$K)A$Qct7K2B;oJ;$wzc6mzgpZk~ z*A#lD@W0yNa(k((rb$ z(N8BT(`C}A0-Ou@!MOmez$rVd>Mx#6TCC2o-hg3Tfjfar*!qPH!!wM(n_c=LY;;ib z$PD>lz3j6jXu&l-#1qu|Sz>C0{&|Gkv@9<;4F9-as}pw~f8J*J^nKW3sPtUjHT=ham1We3{-(y!2<;+kR( z+E05q2tgp;#Nxh!FAGwn!~6{SW4$ap8BTTWQZ)5D=ti({Ur5t|A8Q*_Bg=**vE~;$ zEzP`w{tXsS)M=9g$y$E%nHNTq7km42ze0(Ms~@V56utnw8Zc8sn&wB(0N@Z}DVbMf zp8@#?RmqcrDeNF^?cjfb9Td&upVl!d3%9TBLF{XPGmmz+jVoi5nTT zXJ(=%pssA|h?apjV1CLz&$~}9d*8z``dC5q7~Bi8Z7XbK4YPg@{%8s;n|a~ymHAne7++8PD`uak|~XfJvs zJ0~eQWBHz*AYSqyUP3(p^lEX6p@e`D8i7Vfl&%4@pTedRqmQ!7!%vps{w(m#}IOzy$oW3=s zvY?$e4$Oj1oO0hLnlcQ6QVgKn)}pLzjDU&@Na+x@@0&LKaSuVTtO5P%{3Ob#vhkmc z_Y+N9^n;#5WD)43@}PyNS&7`$rx$a!x8c1!1iets52Z&wYp1_op238OABZ1U!)Jtk zuK;r)%f0~8!kh$}$8zdJXvon-(?Y$Vd$4lzrI`hw1yf~X3!r$o5QXc_0-Kw4VmD#! zj*#b$l646VSW3BG00=fQK(Jkm7#rdJh)ss;_gWV*fJDB)UltY?5c>~b zn!%6>j3gD0UX?~hoA~{66wS5k8Q2$Y^_kFluS5U+S!=ZiJ5_BXg$`U8D|sV zAH>u}f!%YH7Ausft|%6vdA%Tb0&oo?903j9$BjWB;IKgAQ+P4vDxTa(VZlsCpxXT> z*d8N20Q!s->M9gmG)n#j^*H@ok9w$9c18XTrz-$*0u=B;r7x>YX0Q;v#@3O*oBm2q zSng;KX)?@_^j)(huKC`a@8|7%e;Jby9){pJw0oNx*G~V6|p-%8T`>MSXt%C1OS^2ay6GG;VW!+rN4`WvU|HZQY7WLm=MSRiR5Q z%ac;;xVl;unPGoSpgqVNt;C%j$N{OVPd!Y6(8>@BEwLaP-p-MuUZ+mEVU-Dj^Xf!h97aLYJ=0#jH@N%CS{7En z1SMw}vl7>ueqT`Jo=7E6&HnX%>dLG4IdKIL>RAkosuyW320PJuOH3R_DZzi(?JICy zN=)cEe~ROvJ2(5+*AvY(ZFngUK`9TSRIW*+1)FD}9z}unQyb3u=CMl`^j*_dUDMW3 zGiaN=s#;;n_!0o0H_U3aWmTFEl28;qT0u0eAeGjfVX-a`#UO)7(f2~5lhHw4txim> z&K4Ytd1{3YLDoVK@{}}mM2dbabk=@fMK24haTpi{4zf0 zL>B;5T}-UbR;+GJF@eXv)VvTDhJ8la=h0S9scN&VYNJ-QWkgIM2HfD61UDE)&mTrO zaIfi*4fS*#adRC(mmt_LN*_bc(f|u5;N!lHpK=$RawksZh*B&j2QRmRQyIq3yBkpU zVqLYiUDgUI5rfrwA#m&BDg}yhM+oLZf@tT0RObSdk{mA5+Lr_;IG!Lv?jrZ(XK_l;;xeAaooq3m5FJ-bHO;58ylyKt-F2DHr{m{TFODTuZyNVRDeAY@ycySFmEx-fQW$y#NqvzGdQ%cfo%-y_~mQ zk*?z(q2r&T)11-6$L6i~-7Tmob+m^|*NmE~Z2e0gEiINeEjAkE98gonsA&(SDrYgN z$vHayq^C99PirhOVT4F*_!ShZzT=ei`B=Q;YBBrOVyFq}N8->b#(izasj#(D>e>5J zm6s~@H~b}MhVL4hGASi7Pwtw|pIDt4cv$ZgsiKCvqQPnZR0MJoGy-eOnLk7(0=! zxBZ6K>*Lbv!|9=vY_cMg9QX=1SWL4m(6TvD!+oH}@&HL8C9o>qkQG0eZ~43gZ(N(N zNR<$zNC;9Tj#{*EYxdzZbIJrPiNjB=@qM%e8gBwEI)T=|^HB zR*G~X{|F)f6d`{@iJWZS*GpF1i?!E@Y$Q zUvp&so1A>-K;h+$QTAu9yByK$TO-q!O9fp1rWfFJxwe>~y-Nu`r^Eq2Qsxux%qNzaTY`D4&z0(gh;`}-8AE|v#cT*hiZ~-hf)Q+Ffn$L`djK)$ z@hwgjx%tkzib*U#!zw>RmfxVQpVnD)MqonMB|&YzhH8&{xgPi89$z(y%;ELDr@%B= z>>O`>MS8nmM7v)~`|}KFZ}2No9fi^(;(^fYH2EaTVMB|Zz?c#ma5yRNU!yasP#*!h3ZD? zu>hsea1-dz$X*&>3@=|yG+)dZU!0hCwV?3w#g>r88Y~F-5gQ9H# z?A4T?4K02)r2Op7d-w$rJ#wcQTMTpE*prWs?d6K?#l>C~rBH@;!vyC)#Kq)J0oI_F zRbtOqiM6bPTKMFjSjuk+7UgN-qd<$|%xk6Kvq(0g%o7|7g*xS8(#NxNcr zcf~~SiUE8u{i$Ed)8{Tvgol2ub4im+q8v1|IA{o;U4ak3U^_VF`6E~FH`W=ww7?kN zz?kU3nEo9iQ|L-eq&GfyiH_h)EYr|cq(AqIcVbH zb`04O^>)>&Bovq)mupq?WAm0!dwzm!+c1qg(FsjKgz)(Oi8H~Sc>74>oz z_2P<4kC?6>W<}f_>m4j;XeGt@-R}ox5U}jrHV>mL5SgH$3(NCBKc58Je5R9)v)e_8%> zcu7SuaYZpnMd+6_dGUwl(NTPfUtjyJf(T<{6n{ete?y8tOq-xqG;M@I@^f`S6Q9KL zH>~nEWI<9k&Y^!b@V;}J6=10LXD`>Ey|_PN(nRt3Rw;NIEh_l1m<`iNG22LyiROJg zMrd^wI%P}0)+sR?wvl3wks=$C>{EJnoQ&RlZc)3hdTGw*c%9EhJD-EySh8HyH|70e zcMh5;(#QQG#{E*pVH)}rp=r3RC8EwW+g~>096mr<%uiV?Kp9R2l*!$j;g2KYDUkH| z9R8!S*au~?kDR1~o8b>mQYYk65%W_K3s5PQqVZQDL!MPs-Q0Tf1e}aQFxy|+^3p#``TA-|+ktNoo(==ZwG~S3;(~4Bg6-nx zid2`8heWo(geOa_`YYX`;Fyh74YyT|r4{Ur2`$7Pu)yW=C+u#_YkPnv_HhyWa76Sp znVRXFD%I@rq+xJ>T%MfFeHy++P3*avSPKx8dXkbKQqh*Wp%g01SGpu2_?v{_CD>Ar zu0}`mIPi8~@3rf82VK!WLeW1(5l)D?f!&@QS4$Hwgq~LMk5KVXQGpcv2fWxvJm@kZ z6U6hjiL2p`t3kMflmrX9A%%|WIdvSF;`d4l?vWJS3p@fkJlpzk+hFUi));TMcIcy# zVtGli(WF?9-^<#8fC;?kqcTlDWx52aCjk{`)pBZh_G!x_Fl?o8u}Itlyp=2YS zJPi$MzG|p;u8-?nAA+Ui{R$>ztl^J8X1cU$BvEn=EpiPhxv+0HXJ_dRw~L&bMwys~ zYN>r(seQOqI5?4qq8g^X>;d3?x7Ce~+_uq|CIi?La zkf>YZr`H{p@nZgzp8Zog^Cy@I2|d4@NiB|p>6&|C{@!0X`~1m=YlRQjQo%($>iAWR z)QnkvsLA)C`v=RLdZTjfGQ>6+Vms6-jXzn`O(;Wp8;o4xc;|2vrO?o_(2!b))|G0J z`PI~wXbE1}J!*FM2+hv%&XFe8eZ%Veh7I@OcraFkjt6Jcf=9pHJ+ko|;qRx@32E_C zY4NFP@z`21=F13xo{Z4#N!@ki^(Gx{+YQ>bI@)MK`0%ol`pz0{LX}6$!n?d&h|GPR zne+(%s0e>X1f1@jXA#qcu;$&@pIo^;W~ggkj0sPc)P#8p&Tj zuDgsfw00ZX_g7#WwLe%ug>TkTZ<1lZXt~}E%K%dr_n7NO+atV3Kc7cG!6O&;m=A%W zi~^*MR&K`vf1AEK;l4U*AIj4+F-`E#McXbH+IGJsN_|UA{RT$QY5Gz;2_BT7nZ01 z4tw)TN>Y@FR3+4*vRJNB!|GAPhEbIANQqd2rNCYmS1+fjOw>>&YASne3ogWt?`T(Y ztp!a&n_l$uz33;r==V8v6^y|(!IFAo0*Pg?g)dX_B7~*m!qVZ>c18nN-7!t*MeRZx z?pH&2;NTnYCye(8cG++XPd^}rs32LO#@TwgAr<1F3UNrqE4udRXKk8m8GRn<3ic=O z$aFe?KooxfgTF;aN%*0qVw80P6C!(^xx;l7bI&o$5xv~kaOmyz*K&!xFwhoru zAw1C=PdtQ&Y+D~QIGg`z*mOJaUY^P6ZprDM$!I@5hEAifAAgO30~V!`qGn{NW<*sR z;%xA-OA@LZ;V-iJF0u(1nP`I_=SpWYmQGOWUd*)g?6h=d8Wect`vP^hHL}(jRj)H@ zSU0pZd5V~5^6-L!FQn7=21M-*VC-$lu&|5@=Cak<(I>7EzRe%zxJk@}3WcxWhMCp=?FJ!7D6(4m3X56WKb&L3*K%?pf8 zJd$wk5`;0b&In(`<||?oim=92Oj8e17f)q-1IPy(gby~LZ+Hqe!2_BI1xA4iod3S7 z?8PPZTB4>X>b7Tk2~sV={T2DanQNc^=QsS!z){#jql&p&c+lLwq)z-zop?$8`lfA} zDLxk8E?+?{v89+FY?6ST#2O5MAG*Ayv zVV4~gHV9EidkxyNU(?1oW>KUKA3AG8IGl$+K(7-g+7s$OH%u;vi&VFOKc zfKO0%oBX!H(Y3?+7CYfKL+Umo^)>^|^R>jq<>ZUtjXe+WH`shP*n}HM3f%d0!g=WW zRZ}3v5gXeEVcQ0(Es~;2)2Kmn2sR6Oqg(`UXGo5hicIx@<5too*Kp zWf#D(3oy=Nx{+SLW~U-S-ddOCL7Htqlx+aRHo!Oo(*AtSTuSqXv>gFaI|3Lx0)jd^ zgY+9d1t0ZXO4WeW?Ez8S0~p&|1X{axBLmqg%jPjVI8GJ)Gv=Y)aC*=}nsn$YieJ+p zcY{F8BM@&8;3SiyC+SEAZWsDW^ZmmzVKomd+Gq1K_YlPp8`iMA-x|Y@p9_t<8_L7MVhJ^P&LB;%I5o(P52cif;;IhH~g`9LW^c6EN4h9XQVDi z1?GNVAU|W1B*j*oVk?OiI4NlXe{j?x4J!)H$P#Bn#lecQs@a4K{#dLGXM~Sr^F^`= zkx;GhB0|4^9_8D7tGE}%qP@+N5Z4;kHi zwK)Nf(PRFP88yhbBUywLZ1eznAtjw|5fEh&z_5UoXoQ5;1_q!Ld?P(El*po(>_8ss zqKzGYT=bLYWM|R%`>D}>mEbUlq21w@lJ1$3-iXu0UAv`HBUP= zz(wE&FHH?~6w0!X^BOjbwwcWCK+a=2gnzC4DLZZCO${nLmR( z>FI9tbWb|m=wp=+r&^=+tr)T#wfT3T?8oSvB0TT*o}IiyUyhS8Wo-ILvHd`?{YXJo zja@`bl~zO`+_$@vNDL_wBb9{aeIzA-K|v+9LWzDhs~dz@H&9n2A*#@jhOVsp;_9xLOm}T&UlUH5s-*;|94Q0&$Q)93otQL0v{EzO%!4 zX?eB_Ae%J^n>A3)8cMufUVkApxjv-Zp$5PXKA7qZ3r3_}0DL1*(};HPbnK-2lIZ*9 zmPVR0-98}FJ^)r2*pBzK9U!Ek9qnyms7xYbtBl4gTjsdW|(j8kedfxbQ&aVHP6K&^~{Rd!&{@*G~rGzL>r2&O5U>nNzcLj}a zZIIDam(@_0)l`Qof{X!*IsgZY|4EW2ocz)a?ctnazHcEqBWN$|=hTO+Eb30oH0SIz zXLLp|eE0@=u)ziU^na6JKYtq@pN5o;Of1*facK;ZGzR(x?dRWop`D!0{jufF0*FKg z-M#tYp!K~{EG&6qzy9AcR+s1qFP;L>_+0ED=9Tb#UdGO?ncY-$?L(8uZSqfzFGl$v zRDw^|X{>qUmKJ!t7C=2iuelLu&8ZQE*{^`DOIAo7B7h&R(Qv_T^7qr>7F}Da^o1Zh zLx6=zi<=?P=q37LRjKWby#z;8^2Xza@FeB*?@Xw&l3IR)5Z9~=D!etneU z_NxLKNVx`HlYcbrgQY>IfnNtph<+_t^I77=(NMV4iY1`sgsSC7g<#@*B5&4S+;I%{ zcXFe56=XVOv!;Q64VEc9l)g29z7_4NDD+u#(sqW(cE&LPrq52RrLxsh;e3_~Zq0C8 zk0r>`K=2KvKZha__;O9g+YJD;WfNen+`zAl6&LcFA7lu@8kPU;_^wt;J_TQ5fggeh z@FT~{B4*6g5>bgr6>$G2$nHU^i28f<{E^j2djM`yr?(<-6N93aLP5e`c|EqgFZcn0 zz6ftJCOENEoO@D0>q09ZB2J`@PeZ5YFg&0%Lqr-AzU#pX+Bkl=J-DlA9CQJ$)fBA_ zSaC;Qo8c;w^Sru4nkoP~#?M$QNzoF=lJ>t|Yp@**+qGbWKn*hwu%2h}&r?9_Rc&IJ z9i*$s7hqJU*>RI}kxBY7tyQMQMWZ|eP4YwdPCdnhOgJZaCp*(k10qdZfYV@Kd(brN zlUL#heG$+V!j5CpMc8yuaC6;ss@88Xw^4N~pgNNP>oFGp7*^fOrRu_O;PnuuvXw5< zish=9-eP*Cb*a4L?6_xik!M&+>4Qx+amXxS*HxqfQu?#wYUm<0C@u1)5-0ApmpOpZ zx>zzHc-fP9&^*u1vK6!@!21z7GUx|bcd+<7kPO~VulXChKd0)q0Nj!f&KHT!biIH` zJ=Crb#arN>;0fm#K>)tVm#7_L^BiJc5h3g2AYj6c9W9jLnCNB^*h?XkZa}0iri|90 z$WNb(35kmxxfSn3NOZ;}qK+hta^CDszy6x(l19#_$d_2iqd{ZXaoQpb0C<%!GW^K` z*vKGjrI2A{koI@Let#yBxugs)c3e7LBpqw;)ujekLW3JwGDdh=L#)A;iw!myZ`TH; zZwjz(Wbrp*N^b(C^Dy8<=L*{UuCVsU5)-G>1dz$ClDDa0usic~Cov0RYlqQA!l1U9 zb$zK?=V1>;tH3TGI34kapRN3ZW9Uqdn|TcjBbO;xa+^YO*KQ5KBqM zh%=!CBB7K7m;sG%+bz5eo5zNE1)Q^zI}h2NRir~ylj5^>1v_odu=vk_h+!5r*tlrQ z_*5cgR%@nIqAL4H6^e=sKJ+zWX8x+#Q67ja^Fb51V?|1;L_mQnM%{utL{+t!h=3U? z$;A`dJVdOL@QiJEm~&>P123R3F{Lj!*%=&?tMk3Bi7Go91xO(vI+g%SEkDarh@H}S z0^LO+2+Et(dFM%sd=_s>6)#lMq-NH$-<2H+Ifz3|)`ILf#S{_6lw(>m%R3$_59P2R zc$pV_E`%^wG8pbmU+|AyfN=RL9rqjg>9Cf8t64JBT(&cLZGgF!pE=aDCG;ixj5GVp zVu9oRaplP(<;kGx2v_J>EKB$i6`3se@TBx)k#v-@x#rw_513_P-ptMf8;n; z&mH96I;LuH zcC%^8ichMSF;bQ_R0j1>7uHPx8?U)*YnBZs@l3tU7bV#lC8Rr-!vn$6-=!U^mnl(_ zeFSMAE*0CDzTi(8ZGsraz(x!$ew?)Sqp{WpW2D>pz(w6|2Hgf4=d*?$RSf}gh8^Cl zHLGC=kR^5?hZ$6*C_AHwbi96Wb6t(Y3P^m*VCw7J^fTA-d^0Oj&_?SLs?nOY6t!7PyPZQ@#nfmVtE zk}nhF!=eo#`6l)AS+5^ey$1Q32xi5^9bG645(8We_46t1k1X0DVZ|t=tm@0xosRm8 z%Dv-n{h*Hj0ogz{Yp+M>6Hs=$P?C#3Qmi1PE0T7Y%f?ph%O-roQe4+R*oiMsyJB3e-H>3!jvHj?{m+C zi{)wd$1xKiP(PGc-o7x0!G6JUGDIDQjE6Hl**`KF4Vkh^)rxRrq^}(a?lJumHZ}0x zJnQqOy4buuSMeBQBak{oi(fNQhQSEY5aj_~7N6vtAmWTMH>{k@SuYjjGE`dJ`p9&FKhof&W_!;*@nMHebQ7x&OY>s52ic(xt4b#D$C?2o5jv7ffs` z1XvcgN1B^ta>9;uWLch;bttR&7LVrM}yPl{&Tu zO4aDjp7t`-_xvU&jhX?>A95=(<`0FHbIz(;|NMlx7yyw066c*$dREol89kPGq$`jT z<&a0^zr|_!sU3!FLx}h#DC4~hWP9p#V@|GSh5Vq5ivj}Uhp2&HY^NkXRK5u2j)ndnEpw^# z4aJ;!@?;Ph%i&k+J1=8X67e7BX%2s^%Z zPWtb3juJAE67;On#`mEq^zePz+bl$zk_HS^(h~RIFVwfGsM{ocaxNZp9^;zdpvjQT zveW6ivOvpk@;`rz`>5Mh*Mjpm570GzudA+CICpy8F>1FfoZ?3o3`zDR z@8!Lz`9l&|#wi+PY~DS!U3Lr7WJoGt`SMFRX`NV_?G*FQ3O_t_4ItPruL3RV4LK)( z7N4I#9c3nMh#~W4of0&-0mbNM4I?EYkGlW*Ri3orhU9;W)Z`R-9xGD+{!X>H*`S5QCxfAkA`4#u&(GkGCkc6xAWgVlccSjwr8@C^>V7WKS*}RraB2VUWt- zw|r}~-eLSob+&{jP0J=+!_V1*2m0Zzm;=um{h_LJ*q{a93VvG9_3CplngK(2#ELUk zRMA)|HX7v_ue=>4-pr3YB3>nMT1UoOcYkmNf076V`sV=j&-cpg_^sT7{O)8gtHWnZvW@F0x9t+boP zQ}S!9O7^}Hl)fq=iDWXuYW-?i>Vq!LU=$sC>2 zFK!0r+if<>7TST+-DFj(uQVe8%ZcjY7Y3tSyNi3d&j2al+1=#4J=b}+^flqsNhdmH zMQbnbRfbV1)M+u;Ctc}vGQ(G1Ui01e zk!u^0zy!a`r!|rY5=ijap)X1(6EhJwPoAjfcQqU&ZeBt&?posxm~leQf9U=udD=qa zutnZ4XTg2IPaReZtJWKLhU`Z!qeUT3JaCx!z7?DK!>!oNzZx&p9DSqu0`M%_zr1mz z0%`ZgaaYi;Rq>`d<}DlyaMi(9J4mbJqb6{n5|}6Bt!jGfoU&HihYOV)zZL zt8w;!nvqnNDFS6~_RjI!J70Z^g$cTIU>-)?*_JEI&F@xy-6=4SN+`5-*`xsz+crZ% zdJf{#yglS)FP)_`+^S$ab=S&464v=Dw9X4VT<Vzvo&CB#CK-MSm)c8d6)i#W6 z!5x1tN2FZ%OV#`FX+*2=VRdT-!?rVSS?x+qX$1{w1x;y}p2t-}k^MXj`>q?Womy_} zZ_aL0i+1OYcE?AfA$HHYlLa30arThp07;SVypitsNNn_-f5T6>TE6q)UFOb*Ipzh{ z^ECqVHDu7@$?*+VFck@D!Nb$%1BZ9F5+6{q+AOl#C|NMJ#Me0*v=BQY)Y2fSnD~H| z*;bX=#>#}G6w&he120*bOBH6esfD=nhPdNlLoENiSrwKp$)_eKzHT)>v9?rdKik%) z$JU2!8^~=f6m&zO1W?WrDCwruex|KYwyh7-HZbz@nst1zKv{)cKjuoke$4u~d;GIl z(Py!V&tm_&B-Q=u>SoxO#C0Nr9t+(M&p7q$?tA_lgSI|&lY&T-0y^+;5C|Jm4FW*m zC}hOnYcpLVFkM5Q1~g8J8!wY?3cl><@!_rUN22}*qW(wtzVXzNNfNuCYls#>fh7UF9di?n|*ZE#6MU#v)Ywk zq!nhQ6~18g5O*1Tgx^H9ehhYO&TCW4bqAkgd@cZHC?C>>$z&vhF@{ID(N=Y%jRhck zNy*JON-@d>4BzJ-e>+a}c3k3Zz|yNm7M0U~0vS-sUHAC%IMMRB#Bxa4J&S`5LC88H zR@&{hs@rX>+o-fRFR(wBab9~%WE39BD3kzn-zsWgR4)Jm zeb=_?kSBN$@FVQP-8QvKciu{Od}WR(ZOTjt)&nrZ2ZIDp+~b$Wi!P5(Tn+&MaBv>! zC&xe_oRs{#ijK_%ZEE%Iy!Gz*deqn<-r1yZekc!_#=ZCYfD=UIF9q~ppfYCQV{|@P zH0@{Bt_)eJaB`(W$jYM@>$X_+%pm!`!mEz%`UkAywyNSbRxxUp-Z34ZVZdbH??XRY z5P7tKeiR#bmkbJ*Qk;G0{soc#1$6&r{+ivM%7$7vRm=Vgz~SAAUtg%De@{!lP^%P5 z5$Q<0jT!+@0heX>dmiv{JK*DaAP_VV_Ac=mN}0Rv|8?Qlg_0+m$PT>%U)=FuaztpO ztj#dHbfW$^ZP}}}49EoBd~j|)1h+tL?nBRW^o7Bx$3ot9Na4nyn-4v@ATqju9t{^J zyx(PmfDOnqKdWL+uPY($gh|T={pTC>TOhpc9tJwT5b$}ga|eK7&Uh!tM`#B>A)PZYW+z(%mwx@K0Uwquzv~UE(p9L z2x|c4`Tcqr@-8L;oAmuQ>BHy1LFtQ3T{PZwTtdrL=K@FHFLZ7{b9c4uXu|r!P5SpX z=@&w1a1vkUCo)i-+tY&L^7a(t%{_R{J@CLMra?*#qOzKhE1rs_M?{{tw-5blLFCl} z`c>#awGM(R#17LSnVXg^bf2mC)|9}}dXoUv15X7s5xJOR#ei}XPBo(EaXSxQI}f~F zu4rE81GFq{ERASBf2I{ebLi;lZ_v}%(L=H{)g1E#>&~yxB#2X@DkxAC z6sYjU`uo@+0a!#Y?H0?-d{cNzk(t%DltVwG3M%fSLvXz$9-*8eQm5hl&e#Ty3z){ z<2M4+DxU7aOZULjv6{A5lGRYk$IC8(Mh~z!{cR|!9)yKWO!*UuT7FRWMACYU4?w>K zc=|d%|H%sn9DH8;+Pm%GejJ~WB$|+vm;f*>xoaOM;lu>7Qp~s3r=U>7j`aeL^<+mI zKxwp`TToh976;GU2nPA8!1_SFz=3-50aW`~;4N4X#1oDUqIZ<|!}Tj~C@JJADcn#3 z4a2iIDs*xLUV*I3JmN=^L`RYmM^JqZO{>db+#uBDtkQmVuuo604?7s3jzYVJ62B$E z2nXb(_emdmZ$V^l0lgQN1bu8t0FV6&gz?<`fHl!pHPObJfL&E$y?1Iq)?_c)^~viC zH|yWqtY5gfG{T*)aguxi2|7PL64HI-u^bA19OBax;=>MsS+o2Snl%t~U>x52cOe=eHr1!EJF5 z>Q}ZaE3_#qw8Ib9Z9(%lu9?^L>zA$FHrCx9@nOlLVabVM$!J*!(Ep+gl;zK9S5>ntDXwHd86XHUrtZ%W)R{Q3EUV9n0-!sa`Ey~9; z3Kg4qXUA#^XBWOON)c$c5NM|e972L5rz}VCxwQ+$0C-?V`(#J^FyVEgfp)=$B6tXC zMGg`OXMJ#IeF$e46NFI0GnBwQ>yv%fhY1PypJ8?lvi$>tw9y=yLhIcuf!!?fZiL$# ztnTpq6?WR8#%>BgphHv@PO2(|s3Jhmz~NL`5Fi&qp#ub3t}s%rkS>S8sc!3Ef?sTW zdMl_|v>k8YDQMtHG=QfTvgt(|<%MOwWc?2ZTPs^`cE$&>l-pHJ+Eh*2A%o91OW01` z)0{@%XW8b1$`V?p7;t-l*Vmwht)W5M9crPT@gr{WBcAca+yyeiXnlakw69Jb zMWM~I?RZyDL03;Apc6I7iKq0xfMgpEBha>5C^LQ}JAQ--*&2k_jbsGU7ng|m5&HVV z==FuE>s$D{_S41T)BsDwG05~(EtC*Hf{Py^#KZIudQfcA0OcW3nq}JYPM(5JoC_UAaGX>OF34}gr;T^tA>^bd??WYwE$!|r54JL9qEZ3VaLKbeK!G}(_yvQ51B5r zln<$yc&nKlLYbo0kJ?^FT?2@)V$i;1d$nYHgX9oT6kVizzUpOzcNciC{c0XZX+XR3;_&edj-mLQZpAi<7e(U+x!swM-#t1I{$bpDi)Zq3y3%rb z#&YO$)yUMxsj6tc38w%N?AJ3y*%0jav@~{|>rpVYF%?`X!)cl!iQM zXzl<;IbTUm&199Di5&EY6+}71#%qdl#IAL(|IJdPuYlbZ6mUl)cKLjl0JGdh8=}nO z_HJP-w3u&U#_ZCCmW#Jni?=t3qt)O}atbD$KuX-{@1-Ms#bYu6mdd?1>AUtc^9UnZ zERl1RzfBBFEQW>2q;NFkyEE;Nm29>v!*qa-_djZ?xW;q_T!2)MQHw z$zI65MG60NevjU1-hc1sbLL}m+WN`Fa zHn13BZ$Z58rW!VocKNv*ox&AQ&LII_R*eG4aw5Xj05;mjKf4X)I$ zy;6@;79zrTxaDW)5_VK$ZqPr<6yP;pN zWM)?Tg^yoAxBoFX_`NU?lW_>%CVsJH5QH|u$~>fx7!0t3}!yM26|;S~Epmwi|Si z$wkoFmlXB=2Hs`{-un%pOAnvpmkM+VB9~f3+ogT%nSJbKee8Y4>*sfEBnJNH{P z%e%(&^QZh1JQbfx2gt;aO2m)K#N)^IPh%+qxU{W__W}X-%mMbY0T`K9bV&OX_JIk% zW(~#LwZz+v#BmBbUrf+ID-j&KIC8S@%E8l}ls$!EdkT~G;8=ESk_-kjX~>2TreqRE zB@#wu5?})!CN^MjHcET@4?_{H!Z5AEBrPoB+vP1AhGjU2rX<_7B-@Q7SDVttrr5*1 z1I0G3C&{fRZCvlHIrj6nK4DuM+oiMZnX~O>v$4ju;s%I;#QtU;D1;#KwI&TF7$lyc z+12$UjsPbq$q)81e2EYO)^G2p`ie{(!AD@*dnw6N6m8gKv zaRLO$S*QtTut>M;<8LR5-cC%p4Lt7+-_{kpY$$^IHnmr8YH!%ITHm47`o1rdE)nvm zBIz3^*FL@|QM4#ArRcwFn}yos+pFc<8{}7OvskUI09JOQ=;Oqc$BAIS+N%~PTx2f6 z?1IxA^Udwj1@_DZ_Ob<8Y!S7sczgjNkQFc`pC_ts-{-w`pEtaAAcyJ(blQI_v!z}7 zo;~wDd)a$XX6)^EW!@!P3|uO&+H!Jm4`a6lW z96GqqhGIEQcP|TaeaCW!JYJHz3(2e=azSo?r?(dNP{ZbvkRJTD>tfYNk~if@>k?0Q zgqp-(USsmy`)njGL2}|X{KffJyZr(+B}?6P1tj1pm;Cfzo1TlvdiB7%XXy{{;}XZy z7W4tZEZ4!7a(J397u&m24%a4%_Z18GmIn6;Lk7!xmxA;TH?ZAKgsk}OdWjahKw>x+ zcpt$J4UWnu?zNF1YUO_rq-m9xVONI5*dtD{FGeLN3aG3HyuZ+U&H`qCILW=i_GW1^ zEh`^FSS{mTBLp}*`IfQmz0k*d*g57p>hO z&kfD}PW12oJC?3sQfa;HuuX65nhviPSwB6E2DU(yv$|9X9T&{r55?3Pul4>I z;46_)bTxu3l?+ZD;|w3&jmJvivRkW6;V+qd!}We4ds`u|`jOTPs4Td8X9odg{PZ?7 zK-eY<7zL4!PH;DU>A?sSq~l2}m!b?XN)Zatf&kHb5glI7-g<>Wt|3DkiorBpJSs%= z)!lb2z}uNP&Sw*$Ry2~SKOMC*QNU3Kl^lM$jHlc}PodDT)WTOf)Z4lUit0_%MH9n% zg&j>9+`5yXnC^6xOrn4xQLOf~xUX$=z2rBItZk5YH?-+VAZAM8JC-(-rRl9#IKY@d zg<8{eVOZg$tFsTC*A}?!pYeW|VJ)yku^5OiuM#IFro9gMY#48`cC6Gfz8pMo#!rSg z*phEkG=rLRtmn(EeL#&qphjs$R|8aI{7Y|HGx43LUaOyZEehHa@zeWI&-OP3wWV_p z2AdQl5GnmmzMKn`>@S^PFYFhh+}g;P$#%E^J#fiV2(|#0C9s72AOI5d@0)&~qkNAe z#4_ej>NAX$4#kv9ISep1qAWdb9U7C%>6GoQ6_11=vuftH>8Kcrz&dHv<@(cWLsM8dIH&R%N`Q&0%z*vYqWt^`oBHdcR z8gvp>Ud2b~#8w9^B}ON(LFah=^lsF%{Y>p#QIKYNbPfiQJcL5(P$;sziU$kr)_%*} z6&$)`K`lT7v2OV}~ACFV0V{Al6@w zWtb53T->tMJ7oTR#NTjgKp@fQ$K6g4I3kHC@v$Qmg;?-g1N9pn>;t2&t8r`FNSrHz z{Qa+TQ?^boWd}}ct!C=i7cG%cbk*vBShe_uhwc^wQ?#`X?*k75Hea?h`v9X5j7^|R zA3cA4^k!_S6L0|ki2Er)V4VbkM?Zomb*rd!N3x_p_cKldrbeJ+Z3pAyxyw+!mso7W~SfIy)z@T+jk4cQ?VJVC1Wo-bF14(_(QK`bL+%|>86w=rgvk|9030HPeqBu zL*OBbnDUVj5ugD7{^DUi;j8Cg$2JRyAPddfb6Lwjdjqg&VBxaWPLd6!eTwcb06J(C z8LQvilk^7T`2fxSdYpxfSGnd#Nakm7l%< zad-%2=v)pUEsOxtViDL{wsy}lgWbKb+i={wU=PrHr^}^|_cK00rlXS@y0#FHS`OX* zeU}a8_7vSwqTAcY==#3sEcv}BY8*OQE@j%!2w4E3M*pu< z;0g>I6qp9*rlMqG1Pqa5RB5wZP6u@^eQsQw*~56P z@4#piC3uQ%1@f+I3>%+Mv(OBDn6szbFZdxecu>)X;y*<BM7g&EfJd7kpt^z2a0usZm7;= zFaNw7)cKSz-!RWN#0u1zcBw)gf?pIQASm-Q$kKAlSI?%FtsIaXVBNeJUebYIFV5i7 z*gqBZdz642z^zY}6s{~0cgxVVW!ZxVF>1MRqYXl~)rNmc!;jJ0!OD=&A7&oxv334( zc5080r@q{&W(11Ui%?33tve(~>nd4dr-wE~Li_P5P6Ak@lrE{+v~<7??&~d8GXUS^ z{*Ym&ZwRDD2T<5h@5I`9+ujDqtWF@gd>X1x_YKhkUPkzumYGRIxOWakTv(-H!!+Lz z4P+Rf8*=ltH!Y&oavVGdK~V0pHa&oisO9)V!4tkoB-UK6y4swtYRefvg_Q2qmaA&J zFpUEzTyM8feD&fUvxyJ_y3F1%F^1F+oad%Zta)W@C=ye2S}@_Xho6Uui_w*ddi zm2w#j=!^6q6?qt~NmW#@kHsEz+%zzcRgognNh?2!`T@(1h?qw7mh|lD6(>?r{mY}JNhd-d5U8|LSpDKO13IWv#g}@beG#4!^aM#i5It){ zJGJfF{&&;+-|+|j4IzlFl53lhO8dJ>ZFr>1^**;0$Wcdx!tO>!Y7xy}Q_VjoA&gU$ zqdYR|o?4;g+B-Bc$CW*SaEMAKqj`qAy%94=jRX^Ya&D5dle{ zj|M4|v|Qo77O!s2ZEgo!M^s6Ug(mu{_{=uJ-M z9He(s6BU6}r_TXu$oL7D<=%M_}tx0vxe7CC&J4*TA%ioXqQx#;m484Eou(OTeyj z7a)u@M29(;hmgQh7SK)&Zf_OusJhyezic+Ov6RDLKtrSl2{K7Di^VF}2f@lQeYU`R z%Tq=}L;?xK93YPKO`AT?f)oY@uWD$KbU=#JJwZVmMlv8K-vZ!#Go|16(jaA|?9+fu zf#`%05K9m@-`z`tL~!oT;BNX2ows2vb3GD>PJ3}dq8)34ec=jZ9a9rIhJ?cH?hE@F z(wU(fkfSO>`QS=MYHob_(FspI!>%e)2& zG$GiQX5@;ViZnO@WxWxj7w8G{R`_fdyrFDWgufsml#)m~L5)^&3su*qm~KLLC1Rg+ zR*|~bOM{e=a_ju-Z{AschuQSTPlJZeDw;?zh#b2u{S!Kxsb1L23)1_A*P0>4by_X> zfqNPLWu|^{rXIH5f2!GD zg||WWC_?{AB9snSGC>0$9-%El--z%P|Iru@THA%N9~5eCT%V?ePScKwrvGZ|_>H-R zep880V?Pq}-IU!9aQdhZQP8{jr{6bZSO*F}3u$EW1t-;O;4rWbZMymj7k*}CVyA|90xhc(rK(Ac0D?dA)KBd@4Wjvi8};Gnsf@}rX8Xt z1gvs}A_?pf(K}x{@|clNKjNUWhn!p>@PYZ$si(i%)YdZ~u%=vw9@NFX%bz6D5O#x6&sX#JMBEM2w8 zLJn z9fR?g21vCE^|kcUAQ8hrbCUa8p>H`DAq^wN31UUb#Z2Z&XVZ=LVBXn(IwjI*Cr8uL zf6d6_|EnTAX&tL(QJdB!9bq%foBF#*oT0mlCX(aesS#zcHk@Roox>?0W526zTn#M} z>UQY9wmW2%Bc$(h)s3p5C8*#0VfEju)D9 zRna8KJ-C+$OqFnK#VqIF(%M00JJ5Vcw`)Q-PBKU^J9k04Rd{VP5~N2j8j{vG_SZ@3 zf=+j^8`vw093zOdd_}^1TVA8{)q(M0OLvY1~3et zVA|CPMzYIBAibMnXN4N;om8rkz`Bu->G>x@3PIlVETg8(SFZY& zH7rOv;F=i_t{KMf=Ogo_tN!5{79=o7bPW4ilQ1hGW|`%`eql$VkVyg(m?McdiK#NX z;7A&f3GNQIncNEs>7>rEhRk(2y$y0xO_m~GN>X~({b?a_N{ z1UItF${|5g@WPP!-y(hoc@Z&v^aZ8OH53W9jBB1O0}waS76MS`wR=TRvdcOmVIuMD zF5^}qxDZDKnp<(@7kCH)Oq1%Qi4A_RVQ&+vLU-@gd*Zt@pJR1OksUonO`&KaWy50U#^^`mN7 zkYL@!Xo_kWf!l)dRha{>`iV6xNIE2et9LlT)mf+2G!E~YFVzShT`PM833QN|YK#jM zGQSC^hwqpcF_}a{=n(a*yTd`9fQJ&b)YK zwl!4tz43N1A&@Mt%#oB#8FLLqYHqBxgMefRDr&}@G?`Pb`cG>kbW$DN1?dM z9fD+)d1D+^&yB9uD#YnvubF%d37k^HpTKuU9kKa)w}h%lv-L3`Aqu+d+ddgK%zFrG z+VEKLGN zkQ(K4ThQ>d8^9MXF=XtKJGRT1Y()ZmG$wDn@?OV2)D9p+Er}}9`}!D=;7em0j`M0E zV<@!VWGhmm)j4n_yV7=TU%xtP`;sYJ+(MB6=<9F+;SH?u|CFz=%?=^wwz-8O!AH@$ z79}M?h(5=8P_&`3{)$R95}2GAN6D+V5v2~M&J`X9dz0j2NPtX~W<1$kxHA-$W5;&MKbq_wK1=)RcEQ9J~V`xaEBuExGG!=y5D z)8A0bf&_44#|G#o=D9EueCrh)u3Eu%UfDND;0reFL0=GNyeTODT3<{|6c0h(dEWYj zi&H;4I(1_9fx|?>!&K!=yXSFPQ9J|z!~opKx$EvnV75FF^Mc|1#Kjs#SL~w+|-eNL|gwPugr;Q$B zZvkiGphBZziHa5yG{z5)DLBoNTLgAkC4HP5TqXjrbIg@lFf zIdLm?5O*<|0d9Z|$AW~)%dt)hfI)`mqylr%J6aV@nvp;P-LWgPh)@UDS&qk&DIsp5 z1gTYLYBDqpU9~?3QNeKOpvT-FBND?ykaylIM;yrWtGM-#V3GGTAi)7D+(kU(r<{j_ zj!Y61t`Q=|s8kc=@xBkfxvb%erkh%4Zp@Ct?Iw4S z8m&qfGFE$@0x%wbxar$GVL?I!jH+iU4bQ+)gKM|w6Hf#$3(Ee91b0P+vYg^Ow?ovo z=Ij96OPxrjTy+a2NaLg*o;Q1GxC2*v_JQ@DG0UJzLB0{MEQjQDBv{vctLxf-X<)8Y z&M}#i?iPxKXD8+r8?*?$R48l`a>#N_PA8}&WD2aisnE+2=8tpvncKc(@hy7UpG-c6 z1XVJwR(W=5V5xNIWHKe&Effi>Y+2sr2a(;9mXk`GU;(^T(Ly3D&&rj95T(6tY0I0D zlVki4fL{}LI+lkZFc`taNw$9TonYtKmPG{A__dz_=^9$dB`0pkI$&4S8-$DWu3IP) zSiyD99hDm#Ab)^IX3#HP};Ab0SOu%og%&>xr#<@{Q!#t0=k3y8IZ1}+^TKHWwdSku7HPv zOLb}RLY?(zTT6IWus~e0LOvC|{eiy>{(bQPloAJ|j^9LnOi}d%Y`w(grge!D!V3AWobS z2_fEEe*2hh1a-_VWIg&lU`f4HEp-z@R{4Ya8YJ5P6iRA4+CLD1>ynF0YK3LLi6S&(DC zxQZb6l>R|JU)%Wl`Blem!cFgC9V0>SJ>x>Tc8dp4CRVq{@2Y$@EW#*#MEK}H0H_NQ z`~D@!_2d6r5a)OZPN(kPU&Jg10<3xn+CumqUh0{t@BW|s@~>6lq^E5z!rwa#*#bfF z^3&=HlSp}1gM>+{&e0*<&xeqVL`+}-2{Z|MlLB249@oD)A19AW|A1p*>NH!I)>AR^ z;0GEpfR7q=VLWdJpGx%Kou>Lg4{<>MzkqO@<`C=e9iI9QvO9ezJRCPKwy#DIqwoBk zi0GM&Iw%4<9pUbNOC5vRV_?l!pZ)Zse!+*_65e;4#V8E53xL=1&uAL>l-n^Zw*N@? zaL%KDC#~XtbU0jewZkh@>ZdS4);INnge~a^%SiQ0|0Ur{*9?BBK_oM}tlzU5Ya8VV zU;Tzd_Zj_4^|E`P%g1jX{jcdtSe~Z)4-Kk^n7(flhIFsMK6Ldtwqgo02ZPngifgS$ z>nycRhX~D^4-MyF4{d>548q>_ z{#M735Q!}2WAx9kZaCjTR+s8H-FP;Fyz}@^QGF5CPvlT*Ug+^`u_h9l7{1foIDdW@ z82y$-2oniGILHRR(|DV&xpOAex@~u!;Y_h661q@)r_o?(W107EdY9@L33@LRN5{4M z=^4s<^e0lKH+>qZpDwOKg434EN_e&#k#4(UDMqhb>o0m#OyCF-IDetCzbO_HH3DAN zcQszzCxYib{N@#@X88^_`O%l^_`VhUBT0o-cQR{K4`0$mO#53GfyG^It~mLzxkRQO z*AME1o|Qep11N2VIe!fTTWxbZ8$sY&w>Zb!11=-s%{}Xn`o?j({{Ax@?dItrGsF@7 zKtC(Wd$$mR-gDQ%r&%#Swcp@jZHbpJ+^uj2DbK3!Ki&{}snf+$&-&?*aEy=nS^cOv z5QO~;WLdFk&Vy_*-*@^ooLS2yGI{kMKs-L0eWK8bMjzf&Q}=5`KxFWeBVgr4+w zLpJVv-mwL-=Ge!+H2z!hB%95I&+~&)-g!#e#8Rm*8X3fpAGmbyfJ^tlCvtziPWQ7) z_k+_1K<=xJ_;~N-ZdQHab>K1%_*wNJ!JYk((H{nIzN-IfX5qx_h~H1^`1Il-NJfDZ z2~RYdMx|SDuK`eDVQ(3KD+we#(MWAK$i$67ZR@7Pqu;v#>UZODO@l9jIB75Y>5#xT z%cc5eLRF67D>cL&jAtVV_Hi(bCk`~+|BLF9J&Pl9hC$je^lRk*amikd*3T7JA%Ph% z|6*1NzEBH0o)E!D_J~^u5_&avZYpA)F+5Ni^0)e))BHa;FF&2esDO3OL+!$_1I`so z{bScKQ7;%T;(%zxO)syG5eZFmjziMOsuS@o(HT`}c$P=JY=g}&53-Vp2^1s!aX^(- zfA(*UAIkQU)fo*keExU+yA*5=nGVN))R4S|DqQ)xfpbxj;eg2!zZ2rwP4Hy=m6S^G zjU0GKp5Ps=>aIBXsrlASFRp*YCwP~3O^hR*Zn=u>zTS@#=-OJhDzbl-WgZ* zt{xoqH7?%egf_s7o5&oQf}v6_CfK$oW8s^pJl{Z>XcH1eLZe-jktrskauNvpm8I+T zwX0S*H{Po+DwK*%)X({b5r2_#OJolwVnN38f0ad5SIzknDuDM<|1FYZivzp=ed3|e zLr^!#9Yrm#p7RX`kmY{U$*$?LA4&{v$}dzmHm1H-A6;XEyz#K4cwv{y$jVW#8N>7h-Pw zr;GUYc1(3u${(;u|AQ5L<_<FC6KPc7Gm_OpL z_3=(R2B*>`E-61;w^TQ`@bc}5O~ii`gF`slSHD<8eHFOHp^b2JR_B~xb>AAods26R z17~o5{`32pMSSDG4X{!Kwr=_a%O9o-tnh2Ip96_39hhd7`0yg8AubigBH}d4@dKVU z|5HNRw;r0rMM$|~@|IUSPy2_8uvkkjyK95h+rE%O}kD6bv_-Ec&_Aas)^ zJ2(SvsH?fFcJ%-(azouK`@b@wBQR~bfd@_#8$RvSZhFhhUF!rZ>p~Lt?U{X7ec*`1K^x)g0!5yzF{@E z8x)st5udV`cOdk9wsd4aJ2%e9)&K#j$;nN|th*+nM@7!u!4`D)y+(J-&U291T3%9~ zOfkjchjfuA9EHFfnjL`j{Rd$zzA+{@!&n5f);bQxD8Z~7sqgmn~*OVi$VN)^8KF?X(N*D+LZ{rJJkMRP(+U}$B* zj69u+I~b>&BLXusG<=SD)H>T;6`(w3@m?i$naO_NCmy<}y-E@A2Xvvb#2?V@bO%83 zol)e>3+zJBV{&WuWDt>E>xwD>ieJ&wG_PQagpO%Wj&h<-$%ofE{zg8`W!9Ff)eBy; z*_W>sM7)8f&sxC!eg_2#m_o3?aLqh5Zb7`Q_%c?jN75Gi%G%g3wg%gxqHnV!xw$srch< zAoh0lKE#DSZETT3WFL7 z^^OKUhFMC>Sl?Oprt94D!C~bTyV$tESmgzwF{{>)Y-@~h&)g9LFpIn-&#Y7BS}$SR z#|1UsTX4OO6S0v_O+NF$=4Q(EDW-kUaka?-b<~unOS*@FXVjP~_s%W}M+k&t{yK=u zbZEEcVB`?*Esuc{<<-xjE|XJAkZlSYxf{}0nLF(Lu1R=*frf$i6XDSq?>q_B#lFS) zXzUw<%q@pNoiEuAUq5zN-mR2)SIa8;S@6u{j*b$5iKB&;o2IRGismLHj*pG|DOPzM z^gx?VPa2I{C?L!*8`f?D%$hT<5M2u??T7kxK-C%W%4`@C!KjHI6*_Z=;8?DMNx#g? z%H1{`eB}u|)I0>J-NL(J>?GS;H*2_@1Ytw%E$8Mg%ua~a!aH^i%a%4@gBwqTf5yKF z(PhHLLxHAqqNd;P zd+0R)CEB4x;+D3FRATCd?xbm@F|0j5V%XsuRs_aFX3@36$Mh+oe1Ihb6ckJ0iF#n( zL*_3zwRKzAVLBwhlfQ1M8H2ZPmM7Y+Pv79njrFm2F0byu4aQLz11PtZh9DHkr?GFP zrEfX&ir>eSBHR4QElE2N?`XAR>E;Ga(3o9ONK2z2-&^n1s-oaq-_{7W7uxFjQ^MUb z%Z|d*`g%_NqDO_#+yMx90G+ZURwdl#wh`!J|7L*6g_A>d;%WW8DJCb-iT>=L5R8vo z8QVH*Ncr(1?sly55m-FiGwZD2JH<2uVbPYimM(HfV5V@TE(vG&Y?lj)pc*d8D`dxI zt(_J;%9aAxV|`?t%eAo2=3h8Rz;J-6WY`t3lG}bfcdF~@roF-w-}EZ|HnY}%P+iQ= z&(C(RpK0n?mo226>5; zG~r#8?6i_b4+uuvz}Qt83%aWkPGm2aRJXO=n3XN(5-8;c=;S!%syZQu)hbBi%hFFg zmxaZ*D#L=Ye;J$KZ9wD`0$fG0Z!Xe!~2fU~6yrwnByGmoCiayFGa81F2&A zcNl8*pVjQ4PUgP;OPGv;x~Sj*W%U$o7~J6)Dorlm16i5D)VQLlacxV8Vy%wCR$lmd=wtOBf%z+PeogiPE!8i`wCbbLC zTLyL#=6|D)s>X^{+{l;dJsK;6ai$V_3U$m@aU3Ng)|y`}(E_b8+#n&bl%#sfQ15a- zPlJeff~tm$hv%vlg6FTVW(U)rZzJBLKA)n!+OMNzAizm<0%lX5aq#l62%)iI5%FeK zjjZpBc0ti5YSE@C+O&Qhjqi#om;^7gh!RCvM8!GPG-NzI6(!ED+P0_9hnx0XJ5IbB zz1B~!Ul$$|H_rH&7$xX(iQ3ZVY)?QL5%$UQ4AdN6NN8=TATQjLA?)8qpX@y=$#Dd- zXL1~eim14|TIs6Lp!xUHAXghzuC^)KoBcZb4d&_kR>uq;IExDTw0vC9JzU3pJI=f7 zYwW^GJX?I|IOqwv(A-ru(4{nDPK}3$B+8ud?~-Rz zpZnc`o2#~6RRjGYBWAJTLApK*4)}LT1C&Lsm)f+7Mi2Ouz}4uZ>+@L)|1PP6vTndt zS1VM}K#$Xic|63^fwS^-LhV$;mbfPI=xfA|UNc1-4y#ekbslCGAT-~sfs(FJ^114E zC+q9<4z2)7)H={9}b!Y+1kpq8;a9ZcPg_t|?0?%Vj z?Og(^I>B_V{j=$v;Nzyv+m$=W={(-=Gw)7CCdYE9fZ=PUb+|?fTR0Ju3@>zs&RLf@ zIt5Do(ocUM#i@FQmMzMp>!QJ%i_xi1WT$s(^qj;_Y~Ie{CnP?-bG5#VsmPyVInaG* z4XLx;WA7MP-waW&CQ!=diLCn$jh+*PN}tasT%D3shSM^&Uo8|Y1=H%EE|4$cAp7dq z>l}U(emjOL#nACUDe-=K4V0qiMs0Xt4990k*wxGey?(r)yWt7*&*16|9f{9eSPZ~D zedzCU`6lSKXpHH=vB0Wo?DZDovZ}?ueqIajfjl4OSrsX2P=cmt7a_hxt*ES*ZsOMV zcDObt>MUE(?W$!ikA@kQWh)%~Rq*kl%jJMI4;t~~FLRf%4%94#DjOx#JPoAqp$(Lp z-t7IpzIcJ`hVr{!DccdTCojnjzTQ*r$T!(p#Cb+@48fg#EA3TPVlwzyr2cA=3Xs<& z{Nk=~rJqHgrzg&7@!Q9zJ0_m)7=3#8%|+>!KKe|!g!k0s>u*fYd)ju%&-MYbW`{n>T4hmrn1s*bFX(g2eEEwcmMbKfW^etV4mCw-z>keENxzH|6U8 zs&ms%2uwakH0O~%&k!`$8TX0S8RMKz}Q zyeEx5^#MtxYMFJBds#OMUVGY845{PR4RQ+dif@(EQ1<#w){xgzQ+GK5VqS1ek$00v z+)NgD?@76j;4MnUZ<-(B!3E5&K!Gy%fu94bE-!SpU7RRlB{JQ%Hk3_^dcQ9NtsU*7 zFNC0f&mk@!s5udWe29g(ekyWvB*zhMm?jyr&c);fdvlA2GkJmG)+IRxfl}&y^#0UR z!WhYzl|;y|r`X5i$0a@qFG8|(e7=;BeJ9Mmm6Fp9l#=YD*CtBwL;5l+%~dHfS*9X? zj^Owc9vHL~i0Qbc=@RSa&#JR6pZO#|mDrM__#ev_N@yI@!eCdI36GHZ>*1T>!3@n( zP=dbrMEEOS_6SpZ&A=)$Y?7SsdI#wy;1w*VvnI`#Mb6l+Zt;T5rOC+AaE>?dRDmw@ z>ep1yUtoKt^L$Uvt0Z?x#b!Hd1WL{H(tjXgOEvZga|R!foq=#_&0z7=meeVxgSQ(g zbCa|q7zFEit2^l|M-b#~hA+!Xjz-5mzlVDLy*z>(;#(z_h?FJkBbdqZng@GXs|Ey%qq4n27-@ zf0nSPHfom|x2Og+(${5Cx}{eq6N3B5%NlYz%e?YR!}ab9OiyP-1;&5NXwZ8-Lo~!M2u_8Qt*Is zVEq|L+Sg1i`u>8cjB=nR1SmpLIz#uGa6pD8ijIveJv-HMdO`O@4fEd^AlqV1MpugN zcje)w2S&Hj?DX<`dHmSLCxuWS%5)v%g^l_)gw#qW=MLPK+Z8BvvzLB9p$(fVl&#$$D#$Lrl_>gv-o?^w!!=?gt`>dWc=&WH<@qG-Rbm_rdTwlSC=~1<)670F zdX{Df1uy?3zEzNDlhMV}b3@WU1)W++h3j1Itm`PDDQd98?c!N|*gssz{ZJt!0jios zZndeXOth(p?s_EZ$ENH{wEPP*WHczuuy_l(zh^&Md-9LhA1$sviUZiGKGc}5(B6Ct zq}uC0r|^Zz>>G3}A7RzF3r(Px}7z8WV1CnUEt^A(3G|ay&bKKlXDR2!dAoP^qoT6n# zsXqc!%4|AlPN9R<$6mhk7`4qU;HFr}6!Kw5-xk*L-E`d4NxA77c9SSt21TtYIlnz9 z|80ebZ<_Dsn-Xb0Lf9H@Y&v{MORkyjWVVmr1YJJ4!o5)|&ZqIo-sWLL>8H553;y zYjVH)LQ-ybUKdwhmq9sRU$x$hiGl`T8uTvrBQsVlk=G@G*F|H|OntOehs-h$nN6J% zn>tMn%1vhN6BiF=@*2w+PmYF~&7tPgjl|q_B^}79n&A}ta{tQD=Sj+Z<9lvsM`pjd zDt)Mz=}@otU)muKJYrwGuN*v2vH<2^$h;zL(aU7fE7o>pj4eWO0>f#~%lhz*b3OQw zdE3>X@DY3ABlVnJZw1VJTl4ec*$j94If=PB{bx0GhFN+jNW&%ZgcCmzmG6@dk_EUvaJmc94kvVu`C#9oF+-#$-zz&|bs>bVbzI3BTgJW{_2 z>fsFj8_viWWm3y`HGw=8=SkE2E|dJ@M!9}BMg-yUdU-(3uEDNH>iw^*cm>7{t%|j* zsP#I)6@ry!U&AjmF~4}USQSfq^fGz$rnX&?4SG#PX72tx{^aM>-ycLzKN4+VQ?6&5 z&*~Z-I8VnJ^!Ddz+yxS4-;ZThx*9A$VqXSnRFf*fegzKdEF-g!eK_-xs{v~bJ8O;l zO;XY$;C;2*%Zl3}@@icT_-oktfv28S3%nwS!gXLO4t6IfoMQLM+SQr9t23!%HftiC zxcZjwe)ngk&-%aQ_rr_r6E*B7YASL}Nq2jNn={X3G@OQ4cA6tTI+j+HDEAt8VWnKp zKA)*??5^X(_e4k)9g@sSnEH`MFx zjXM`Ed@ek|ylz8p27HOJ$DRYv!PPq0Ez-F#a|Uc!4SOTB{Tu0e@8YdRbm-`w{_^RI zbNk1rgQwdmpIpN}xhkG&Z#*SObKTZf9G|9KsyO@0{Zc8+;;qqnOrtZ}Qt2`W)#~P# z|CZmK;`mSs%v_dsXS#N0w3_lwPJ-!?U+$5AS_hu;cEVHMFm^Y^kDVso3(ML>m^OL3 zu_ASp-U8a>bPMBj!!~`e%~PvwdN0vijCN8a-NGc@y4y+`5{Bp}I79@woqJ+OmiL0u zHR_9#i4>NJT)fd}oQMXQ!zdBFXR;+c11pg>?PD_SdwA2M`{eayDwcxJco|sTzQ>}G zJjxL~^TsJ}{kRwvK6c8OK=_ILNT;4pUtDLTa3@jWxUM*-xXQ;)pRSS#cyZ=EZkSfA zl~#P_V`quz6r5Y*la`W+QH{r$T5bkRwd_o_K?epOzPK3QBrnmW)mAc5?$O;I6rmRh zLPiP8L@nO96qF4X2$v9OG{|8~*^qfB#lS7hprsMeFrTb|Yg0jkyRzno?gggV#pj=1 zkB+==XxF>i7k4^J_;eHo6V}`!4r)78@%_k{n)@af*G<&NBP}`T%N?^{iB;6EG^r(< zo8Kyik1M8JeE;CN&yKjczn9!{rg~W@pmJsV{+;sU^|yk`}sDi^Xh z&+pNn_lI1TPHqNywd{E)Nsa>?^+G5`F#XK)p=<}+l?Q{Y;{NNPH~FHhgWkapc& zxN~8QydwZCZ6Qr>alue`?V_8%VOcr~OF7rl)E51Ss3*0ef&$9x1RzK%Gm+>y#GcLi z2rNE)a&~27*^pHy#ltPk13p-#KE6SrQq?QpUe;DX;p&b#C4I#Vk5bIWRvX~{ou-4v3Lpl zvN;~^sM1{v(0T4m7ozjp!fVE2n)5h2Y(vQKxzFQ1qbw=zd&mheCVaWvLj*Eb&WLfj zGdrB~yt@n-AJZqs=<`n)<8YYKYj2Tmi#q37KrrlpVMk>!YpYAQMW6G`B^Z`twmpY# zZA4X3aY=3&8b0_4h$V7oUM@4*`vjpwAN4Q7Vi4y{NM4y@98L=?2zvfDn6@vjNkT7IOK56lvTG{3xK9rk#r~rSTeTHp$#7u!xY9X4NNAA$S2b_@e zx{PJ!)x@gNxWdOHj}eZj851Dqx|t$irWhW)EBul=W8sMU z9h}(~(Jv7d8JC&AfQkT*`9)E_a#pwKsQMu1uA4<7(<#xcJ_^>J9xRcpK4?SW7OaSN z|4DWGV8*^$Ks~y7pm+RWG464+4Nt|p6V5)5rp>w%2yi8Q<5mxcK5%pMjbpq!^_1rIF##Rkd$5G)@b3!gv%i$g`?{>m zJ0Xuhq43LMOQnj#G9)P|pEhC+AJww`%^_TiV( z%Cjp0!IEY?Th9(=eoA2j_`PZPiGR~~kNo<~qK%Wrj`xQwr9L<6>Fu81R$4LuKMC76 z!ep}&wJ?AF<5`_exfEzZDwQONO-RAx0Jy@q5wR#+upB(IGSR%^WL*&-wQKjC?VxPk zgEgd=lf;Xe4zgo5q_^Ka3BL!Jql=T#dwub=g!8EKfN;y)MajQP1OYXLvFTlmivkz? z#F5Bkia5K;cd;_yFMTtfogg+-Dw`0_6eglw2(O>p6Z2ti&VRaqwEH;k+(c*V(1%2> zxrzT=mIbe~?yih42W&B)W2Xpgu^`*FhlE-qm?VUPIlZQsi?7^Jq3 zew$+jzcGu|!3;ZT_Drm;kUGOkWx5ldSggHy!UJ%0)JYFiaoMR8b|07B{9}q!U`1ux zZB#B9Jbp+%xu6lK}e6Ws!>3^ku-n7bXOW}ODN!+LtfG{?;ameQ9_PWSU2UL z%QCxnYd6EmBQN($_)5c=Q@ESm0PVC>hA|Evd)qzoU*4nj|I*`c^9(h3UezbU;3M3`iXvA#<2lr{j005cmh`6 zlZr3X&U3-U`Y-laBq}GC7~@HLD$a?kCd?$mB%%4NCuqXg7{1c^d|_v$yWuXL0is2g zR-#4f0;6d?)1Mk-J(0iSq)`t77kh|jp}^ESsd)3Tq&wPZBHD^&cfo=MOATrv62Q_c z4^V~Nk3tgHh{F%u;#J3eO#k{U33~2tTmp1gN%%>ysivrZtq27bw`<%e_IpzlOPbXE zuXd=WsF>d3`*v`m6sIX?RsJ>Sr#w|Rc12vn*JqI7*S!LfGUrKaPeTYO|5nRw*X+B!MJSa_T-UHFtHpIHUp@1(2@l$VM+Nj--}Rw~Mj@p_Ewmd+*&e71c3jPkd5{5n5p zl9C=)>P)S4)7CFb5=H?56~PXJvk6eVP;^8Rix)!iC9Ws{wjR4`esW)6zV~0B`MIAq!s#qrUE1BblPedQv&-0OQ89!Qmm!blj~?RUSL0yACDJ=q@MC zJoO%p-08vMz?Ez!Q(~<7=;*fO_ti%CPuHr+E@w_x_aa>zY{6QJ}Rfbk22C^-TuZ`&w7X=MEfK zc^Q_pxh-yS>b1nV7i&zURSFhc7-W+9Yfg$K+b4OK$5%2*CY!k0O-M7|XE9V!zwkm` zrGa%!MLd{YTP3W=>^#%pHTb>sg&n(98pcN##PIhV)hv7;)8t+M(3(`gLMG2Z+s5r~ z>e#kTC=crkz=_--(ObSP`E^**>H4@qY+Q%^^KNqJj^U>n7rs7W|2!w;ZZf%G+UQhY z(9`nw`eeSP2f=c8Knsz=(<8eElH1*aR8Q2|hOKGLy0H7EBq*7VwUO(HK=Lp!Tc^^J zUnd;De(mx;mGeDjI!xEEv8++C(P=CZS!wWNSM^rCQgZG9%i3M`uBsqkKNNXPEfR@E z+7kM!lxSIG3$LxL6wu4ICx{00=WDGA7uxe11b^HUipo6I8Ht0gaV7Xu~Nw5jL7bo4Uq6G!K_f8 zB=p2KEWu1xyX~TJ&+^Nkgg^u5{0-%f{wc~1N;7oil(gI!b^+#8hVS*Sxxdb?S^vx3 zsZo)iv)sm!lSTo+woE)fo#d-jyZ_8B6I3 ze?Td@qm=*dUW1mh+2)(|leZr!S7Q z)h2D_PuQC3VYEi=9%L+7qc->BN@=H#GNpX^X^pmdwt{VmiS=%l|@(|`SzRYY{zNYj&EanJi^9MYsjBJQLlCEEm^`dwO?=Omq$nDS31vRZCZcyraJv` zTKePLKIzb|d8q41|5{*xRdC&N)h_a02D$be^+h|{MZ0YubZB$9(ngJRGk@89^oIINJKC3a+pg%)4#g@YaG=f7JoD2~Y+kzkAD?zcGwzHYgk$Q7H67&Q z(42i~2F0|`hgkO>K51HTM6SuBmhM!o2i)JdcQB00N3=zKSfiZIO}kg=r0K0Anzyjd4&$p; z6;l$qnW~T2bM(oH#vMC0LH>$V4;Hz=D-d@Fmfx&1%c(6ZNvXE4otNzmZxdYkTpeaL z4d5-@h=TYNf+X3|CiSWQL3Z5cOgFC`@iWmB7tvJ85zQ2A%6Ekcrn#Y}TT-5Rl1V9d z^x)pjJ$rYKxnrdmD{R?WT4|GVYEXgbn!l>}Q_G-NOw@z7YOC9cEr(Lwh7K^>N>- z2==i)@!rR+sX9e5zULB3h9ph!iO@8U+4THPFw9*RdMO| z>(osJ_x*uevt?h(QbyJ+DP$j8$S4MFR8kpPk|k1>5DH~$hI+D0 zl%f)uR7#1m4b>poQVC@VWt*(|pZoDVzrO$1|NnZO=kwBY=G=Skx#w=@zVE$pX{r;e zxvfRlDuzGyv{gThIF7S@&oEE34rKh1vu#Tv<3EZjN(d=ZgK7)kw}M;zNU%)w>^(O9 znxZ24zXeNRwkrjcSTx?KU|a3PL?2%kRUh?y8Ip)rH5GL8;xI$d@) zwmQmc1-_KzmHcUV!p8}-JS&os6yaNoWH^4NT=*Z6G-qS;qpapgB;|@ab9*2()}vyP zCrTHY@}C39oF7HyC4}U`rQ;>KlmawUY?7d^WdBs7J4ibf; z-Yd)XNtS${~Ar^ zL{5yfO7zGj^oVdBU{O+05!{NTY?c^+F61^E&M8PU=2VIsmD)E3h(Q_jjQ=oRx_T)Of`>pag5_vZCuT$ z;va;$K&z{>@#!P1r@tCp4S405w=!X>;hzJR(|%`T?<1_1?(Wnp1Ybk^h&F6r{(^=fw>|LDL6H8HwzuYGz&6MQOy{x^L6% zOg4dJx%p@l<=vw3^zf~p6o#?q_-$`RqcUX`b)1U2;Hjbb$8Soj13t>D?4K|) zj^yJNEhFFR)|QaiEOF(k?aYqjgL=N7KCU-!He}Pg|E132cE;|t62v3UW=EV4`E(UT zJE*_ut9s08r55S-+5h~Jn7y=+aQoM6_OBLZ-sbH zh4^o`*8gd}ZTJ}H7tR5ash|DnNb;ZX_SbCfAh{*#^&sr%z}W3w`?GD~1b%0;t?nse ztg~4xGfR>5}3VjVsq6zlEa{qj2NHB@d^osoyTb^t|L@L#6Z4g`?MoHvzCuf>`ft zR`0BIYEIJR8rEG9)W#=Yo=W1`Pv7)&PLgj{vMGO)sW;tZSk7-!`${Ln`Pj22<@3q4 zqPh}7x>pFUkr#H%U>)K9z^m6GO&xs+Mz3>KFG}?(3PKYa70Ly)$o~ zpza~q%3M+oRL2E^3Fh+g3#*$J9&dLDmS~<>zn8FI=8|Wi`r$zJOV4J94~u<#j>fNM z1IE|e{oXP=ocf)OligX9-Cf#VtQl)buA8WQXw#3SyM7-bOy<&Hpn5NoW!`vU5GunL zD)ZKW+wk+0Dk0u|LMDY%CdI??$)T_8A7#HBf9ga8FG)H>}@ZH7ti|JtosqB=WpjDd9T2uDA%LN&EXm&I!-L} z7(@c#9h$I6v#>9LyBhZlj@*${E0p}PX7`{rZsR$-+vLoa?AYAtKe;-^QFjUnM(#7C zN#dhPGkj9hlJHi{rOO$kN#A8S@?ZWOS{UqjSWZ4^^(-u=jyDF1U^Txw;lo-Elm#D7 z-y;Qq8@5hX-riqxvE9R%$!X+Oz|A}3+pha z4ZU%UAfsj@qehT<%Ua{3Apj1YmV0tdVGrRllq*HtG9|+@Wh+xBvN*b&T!Dwq3EvewCI$QhsK&Y9<~m5~1&`8Fg31qd9+0nax9eVa&+~NA;nPK=)5h#%hr+@x-CS;doY>I1 z<4!-F@h{vtU$`s2=$A~3t1{h1_zBHih<7n%>+tC!>X*`(FQw!!6RT}3e$CX|Ms5d> zb-H2aHNWJq-JoWdYWl;V}pwqTVB;KXUc{85y|yxYuBquu0MY3K66gA&DC0b z!I;ZjCGA#6{+H6Q$a>yLNUL7zhqNhEIiVtHG3C3ApM}N)V1FtN3#sP~skaTOmuiy6 z1{WT2P_^}V>zFhCi96>Lcf}`QwGAApd-k0)0(XdGa|^S}gd&C%9S$iXh3IfO#8q8A zL?1=v@Da`<6)>Nth(Axscn(!@^u7caO#I;i?*najD0}NiT-K>MuTyhbcU=9%;z8Cx ze#Zj86`p%hb09B%JBX^3*mt}i;?`rR3y<<6Pqu9$@?FuxW}K?SCV zC1!^6n@Ynr)$?wux7}1Pbx+E4pV>jvwgTzt;V)YCS@yIY;S%+{67{wc+hGwpxVq<_ z98Dim4bI+v|9I;cXMB`9XOz2Q6iRgya*K=h@#{am*nXe#y>8^1wAw$?YS*NXs~=lD zcy6IvE@)*KXfqu4Euuawjd@r~eh99i?uuN4z%?KAd;KH(ZmD~o$BPahFCrZ`X7>>k zLm@)LdV}YBIc}fkenh>rJ==84rAF8R-< z&P@p`l$ghsl#)xp7i@6UI|Ij|^B~7@wW1KReSugO{#?mL%;^b%=%e>i*TDc4}p5Ol2v#vNUA> zp6jOOpTc(EXFyX|>Is8ohqsKHmyDXX%yD1u#m?)wet4hGLFhexyeyv~-}<=AXs?6O zUMHjW&K`(%>$1XaP4Uv5vlmP5=J%C`U99K5SZ{j~?9G|DzFw&oHS0SAz+;w%b=UKD z*V}d@-fFRtjIvbd@E**&vFy+dCUUx%bGi^Xy#;Vgzd)F%a;)NCdcvp0sovF&$CEhm zBt<+ac`Wt18m@S=&ky$Q`JrXb2c)3i>6gXRFK47*{?5X?_MdjOjq=dX9qxb0a>aLo zYE6r=rje~%p^kp^fu=mG_b<+B?vHTNaKS$!aXum`J|ZQ*y}Xj<1pEHQGs}F3>DE7o zmDGlm)P|M75g%v=Xx_Kc^L}T}l7%v?_$`($E|#7lmJZI%C54>(aPxS5RLeMJf8&Vv zMm4XEYTg@<`{p2*;g#38WdOFB%HX=Pd(U3t9vAaHE`&X(j14Pgv|FCj%#3t$bHShW z;5_T0c=ns5Lq##Rwl#Wpt`$(+Mw@;aP^yebfNUzxCjJ>!JA8aQR%};ER+Cm znDZ6qlSF?Xydr+^O2)w}&`*mzRabke{??!;?Q_Yjt*xs1y@Cftxeto+A3&#)W+vuF zI0A+@Q)SuMRgMqx;0*Fm47z0y?L2@w0Mvs&VM9HCT!wgDMn+u5R;J_1pb+@7xqNx8 z8s3IpHx{a@c1Be#R22Tnxb z&I{haLJn*rTXKgETqAgsX7VqK=U@I{BhQKR>7-D1%6aEQd`M;9=~%0%3!X^gB$BpL zZCDe!AMqp*wR}1Th5gK0!tKd-8%FMIP%GSU&(Vt4>}#wdHWQ8hyw+j*(VKh?TG-kOe&&orp0WgNgc^&5tI175*{hea!ol-3ZiCo*QZM%1~ZM#*ip@em0an(|uwKZKE2PX^D zN873UXfgX}n?~Bz4(`O3Q&CtoTveZtrHhb}Pk?2@18Ire_T(J1L&MPbHUByOyVBUivQ& zF2~9)R|I}jJw4S%;cugi@u@yBs7h{HRV>wPgAZM`=^#AycCG3Ic~j%}rz+CrDj(OB z`3JF_=lk6Islf`0Q%tVUQ0se3*`=Gd>#?Rv-*=YN2GP(#Cf=(n_gTNMn4-tn+f}u< zt1_1Y^X`KWzWb5x!HRufQ-9-!sqe#T(nD$=*R%zpB&Rcyr!zdwdPhPJKE3_f___!C zb&rLZ+kOH8dg>@7TyC9od?4_fZTQriEBtS+jPco47(~C~o59Hm>zx zuLZF`Aa;5eCiZ!4M^=5ty~(!}SKTz%$C`zc8X+!`C_L6TFX^mTY`W*qqru;@Q}OZ^ z_Luz+Kl62S7{DeDb$VK^u%7oiA4mT5>ES`$2L~Tpe0t$o;){FYd)_uQ&&iMNH4u{tv~ciV-{OC<*gSTk;@~^ zFw3s+mtDE1)u3avQ!gsy^U!q|5lc2m5&s zwYFP)r@WnC;1h$(DBAqQ41;e8*tIrVx7woB(vjrarHSXN;rQW8U zyG`3O@@{L-zmWuQvx3lI@{6viUAn(^J+^)E)XBfN?4^<^3_Iop;lbpbuAp7I0l>+5 zdLd&L3n;#0F?@ZKGTKDFN;`KI5^J(H3XQsf_Rq-nqtX6bL#m$SXVOA_8dv#%{#y0l zQ7 z#pe3jbqcE-#PETn3EMrUWHR_=GVVL3`nBDZ9=l0*^nUmCLK{leM>VV9j&JTA-{g_t zn}!hIu9xywMJuUN_DV&&jJMi*bT{vLY<>UP`5l8;$AuV=P?ogD?{rn^2Gs*MPkt&q zsJDM7rKmMKHX4qk(%i!<8&_2}wimiTd0>IHd<*QfF6jd^J%c|T6#1a!fmOOqDUD{; z*m!04UR|O~mzhhK)Q1yJd%LTa=7^1rs~Q{IV@kF^&VNh`?QUGv4GA9C8|hZUMSAS& zSarhV_~$UgJ4L=!8toj7wpFz&zbFpPQ$HXpQOh-CON|6ZQ-C6COX>ZiG9Nv4zHPP2+FofdirM3GJSYeO*=ix(q)I zPOybU z+m-&od@Ld^d<+|t4g*u(zsj4?;W2gaD*wT&CmfE*?(XE$sHUIlsyYSgba?D|wkd1y znQ!ki-&n&%Znb&L4Igy=f0#b_r<+hjg6-0mx1S=*H+{HdaG=${%lM@S`%4e$wsE?@ zH~Z-f+)Ffz+Zd^LddL5jBvuM}6JkA|AAL*8S!D*j$5ZdSpi>mJRZ1~vPs zM`O6qmwJ4DZAUB;Ro?3y0og&CBqt*ge>5}&8Tg42e$ z=r?{P*in~Z)m3HHwce+1;KqvNHbqOzfIGn zC-R96_quUZ9eBa&E^`}SkO(mo293cc4u1|!2eNd|Wi|7bX@v)0P8aH3Q~JpFZN9|2^<27o2i2Q)&b#%ExI!2geTU$k zG;i9A=Hlf{rFAy+kg;n@(*Hod<~K@qk-ce`f#*=N!i)UN)4Ti+im|v!fBeP|w*ruA znL8=`NFiKHlMS|@8fJx{m+fO;hE7+Nj`w$7kw>Fw7u>?|ao2C@Wr6nt9pT$-{T|}q zli1(qUsJOwd#m)GB>#Ru(jhI<_hFM*8u{a2S-ii+ZMyYsx^^yZsq@&??LB_<6OTPJ zeGg~q1hIOz>H?ld)FI9O{Q&=Pfwz+@f$*L*^?wQlDN-JHkur^8S(I3kpMQcD`k21z zF*41N3mMbtF3TOZ{DCQXY9Q@g;AFPmLh3x!e`-1T6-4R*?DFHwlfcQS%0EvS3;s_C z-$+yG6#jI|;6V{XHs*2-v~qqGi-`lv#{_v4uggqiQ~0x2m_Ix0R93^&?uIKW15A_dG41aI5-(~8IO_J#|B`ZzR(53{cI3>NeIsXpv2zr zR{E+|IzR>-?_+==EWf)j0V!Z&#Xt7vl7(K8^i}QjV?~shmJQasOFt(Jd%)70BeX6&=VG|UW1>3FRtpZ(mBNCSpX*q^^LLi_7hlU6(-tds+i{T+e zRk@0SxY69WQFx)iXrml-<=dMdz7_U^&EIjtM$+&6v~~GuOYrJ}^2U7rgC8&3JN=ig z6JHlzgT$pl(rkOkr~VM7xA)d5OHpHrV%vJ9L#l zqmZlq^(Pel?4&?`8CmY7;az+hE>_ks$$72aJN4Qz;xty`h5Zg`O z7SfCfPQ$CJ#quLvisN0Ju>UL6g*PX0nIlEqm;15N5v0}(brGyczr`-E6TAGvfwAcU z;{vqT+9A*0FiQCHy@bVQm4|vL7aGPTHyEwm5S~YNJ$&s1`|p_K)t5cZSP-b-!WdzL zkqxjexE`jQh>V$)HYIFeM6>7sFKjGygV7n_g}EM1{^Wjn0JdzR_pbJ`iY9;R-ency zV8yik^sH3?!vRL8RPh%^az>LMH;i{}FzVb8e(R{K_cFPwZ@oB$ zP+6=qYaLQq6r0LCQ$`P`jAk?j-@0|`)-7yh%c8RZ;UwttMh)`e@F=6VJCNNZ%HPV) zaAV3SRi75CPuu6ys*r*WuPT16TYXw#Y5zO_^1A%XFPtb!-ue6qY6+Ra$yve4nZZtL zyYNRyTt`SHZTV^%cYz3NVUd_yNKp2;{E1=}l4ixUw#y`4hRH)N%cF9_6W~}~{v>J@ zB7|`)FY5-lnJZjG!VU&ua#o}mspk2a$+LT|N2zOQv1?Fr z$sw(1ACGNXJAi&OY~fRWea8ah%L_kiy4Kh=Iir8%!f$GQ^3njZI|kaUeNm;-Re(1o zaha0*Az*ysHV|D9E%jjup3$vs8M4`uX`S(` zmnGBw{C*KncXJxE+0q@TNKM)&Wz7YqQT!mB1}RnKt%PPl9^a^4VLK>g(H4rF%)l^qXg zmGH+aM$HKeDY&(gS}nffC4fu99}mWi_Qs4N&Wls(mtfymvKGIP%8SYdSP;{YW>cm; zzT*AJv-cyJ)36_bEc0QaQtu{-!AweBmy~+efw8{q1q>)0VmF0 zbQBjl8XLyU52`M0X?kPeQy~dj z6`UN+J&6f#4M9$TDMfF=l+rc`*=)cx$A>p70cGt>0i{N;vM8S%#jQwr{FSP2aZexZ zqSlwj)|U#7bj32eFyILI&I_rs<#v4xIx?jf@=K3t&Kcgk0Vrz`0`*m)05d%{7AkFY zMtULl7~U%u$nJ9;04{b4+S8oEE9(R*>r4ur1oyiFQ6PBFt=|+&8EvH&l*Sg6nzr4N z?M6c|JKH;9K*qM~910*u){W0e8qG>BY*U=i^O)Jz zc3>p_aht+1Xk+#>y$Z)4Dw9TWq*1{S-{afg3*IlFH^4@G_V;Q6(}PjdSzXg9JJKXL zb_$8))JaRFQ}z)Nna*&pSP-_8)x^-8;vC?`29mgB|X>#FLY6Y&;{&Cu- z)O3TtXPN)Mzej&fBTjk+U8acx;Op0lP){4eX?QLcN4^|H+QKmC@ks6qwu zcRkz~@?azLs+3k2yajX6pe^l7x!g<8odPVCkOwNjI;l=r*#QMu%)e?dYXq1zphl#3 zybRjB(a&qUwR~Bb89GI{LLz2&nr8#mnonEI@JL zl|-3ySqxdn8@-ftg%BdS)0~WDw2`=fBSirm$waZ2GWv!pTN*11^E;Zh2MIVYbyYuBD_kCy-Roc)U3ZJyzoTIaf+bpNlfZAPeQ46YhWQ2qKftCL#_z& zx32daLYg-KvMav5iPGMbZ#7yfQOXehMPPaoFLs(=#AG%TyEjwBO6#3!Ok)3J@7@qX zOzbpI#FW!oNv`L*XY+N6Ma?*muo1T~Ds1?7LijO}4NT{RPQ)^-86Orh8WKXRd*2E7 zjy_aa8iCn|YM|U7?Bsi_u&Q0J8~dWE0MJ0=bK0 ztcyYw$`+$Ij5U@`i0cG$7sgmVAZ0$9Yd#8(H{N&@gnEj(nx(l^PR9u-6>R8NM|ZB7 z@kEcEmPZzvmXw>85m>jvV_Iz}nY$)SLoNnq3=^Qc4gKck_7MrQ<#;2SC^ z2dIq+gLiqKqW@HWF24W!Pph|6L??dY2-n0BWkh)Z)6^1?MOy-&Wz$BZUPryTo{9^# zlX?@M^FM^`^p`w6zN_a1U3cu7pwT~qM)3WQAi`uF^(DCDbLdMYl{+Rf)cJtu`G7P; z0CQO7XY*ZVlTCm8g2Sg1^25Mh2#8(?Nc&685NXY_xIV|fSOjUpSK(V(V zBT~OAQojL_7ki&y?Clfp%r{E~Joz@l{52iVJ{=#6kuGjrx9}q>EZ6wsgP+z@mjj}g z1JV#-aE<(Ozf@T^%d?6|jw6AcBOw+em=-Fm$norRD)tBboPJfbegh)F`7*uISOH8C zJ$=*v$*Hr+p$g&&uXo`D9B=|oh%8{`9kV;ve>nixsJ3y~OoqxH7|kA-h6uV3wM3Z& zq>+dlfxy%EOCf<>At4qcn8kivMG!*aJyYJ(IWrg1)qAL%fzh0SX^4c;G*&^S$5ba_ z-qu#aj~J_O7OQWA2y9?`wQf-fLR-;pm1P3E zWkM`QuoB6|ts4w@aV0z=OX$b4$(Ur{YYmrjJobbzZcQI<4RnRldMD*joqhJVb~k|l zMN+;%;2FajR>Kh4gCi+x*p=K z`dF;`aENa3Cmcu)V}?S368s;L-ZIq_+0_$cG1A5PZN1wi?h|tM6-d$W#6A{c9}W>_ zX3J*U4{0}R`jxReB3y+cT=2aEkBlF*ZlkG{jT*jgQh~XWOCO6%9}W>1cR`-42*yo_ z%ov?~`Lp8t3lrOUk@&$KGQB%w1`wf1YHgu8-OsJXBV9*Hfboxh)j#?Th`iW;dsx#=SF-Tahv47$>v;Fh7KkIO$k-|r6SVwBi5m`zD*f(QzmEyw3oS{S8=`arvU( z%H$Gd@)4D>2HtdR8gHg8hzi^8^(9jE&8Ye|h`7=Ig3#{KKh|;NrS4tI0uIUoPKaP^ zxKQYJdZ^ci5Ki>{DobQ9ON_+`t&h0*RXY0B zaOvqv0>n&xvrK&(MBpl0En86=bV%e@JpQO)r%dinnS4ZL=fdwa_b9JwzVe82 zaf@=nmj|nBk(m8U_5Y~wAgLWPxjSU?5kZ;w9q+GqxVJr(ThZu|@(vl?4jBbR$YJ3e z$4r9ZDW?p5<2`*Wd-`yQpoKsL3qeuxOmo7DPXap8>6*T=M<0tv9}W?C$44C}CFC7{ z+D7J3IHu3NHAmn0bRWyNQML?byK$&e7Ahzq9wd>m;0uOqZOiBjB!kv}` z@BUx;$?W;bu^6GAM9#eb&xsSka*EPVl>KFJ{xS-PpiqjA{gHVH5kV2D|4NYIvXS9} zFF^*g5L^ZfK!Zk^c;z4&T#$?cBGjHahxOw_x6Q-p%E7bL64PZhy%N$Kb0CF%ASD(f z-2lyAn{m+eSJ>2ZGQNj`7f8bkkpB{R(eq=lD^3odtY@99H~&ir)7CNH^yBHvU1Tvc z0V0cm8H<4pA|6;6#k7P9=-o73Wm9>ZY|-$QM~;hIjtjp35p)WN6d7t=@A2jXEan5a zzm#vlRekTm@54?a2F8Q|7Qz7TFCkuGZ4y}nf))ZoRstf3&_sa*msv2roTk4TPn73M zkmrJLqCE5^r+0TkU-H~K!cKAFnR2QOE>%VW5g7D~qucf7jzLjv+mK))&cF<3V1o#h zXCn&-PtVmQkze#sYy{G51jvY>FG(r9N*wwY1RU2MQG$RFK|ll%^d%QJTt>R7jQ0_) z4g4aJ*-7MBj8I>)R%58|hZ-qe%vOM?Vqm6XV1vk;{r4$L3j$ctF;NovaE1&nLq-7+ z^d&CaoiJ9Mi*Nfv ze?}SE7%IgN{v*@-56szx(GJP=CFqnPWOxXIA6?X=C!>!-02`hnu`^qIcbj^4{Yv!K zGyEc*^&*6!CGQVu%^^rCsq82`aPTdR*)ORiyLl%ysJcO>_ZW%2%t*}UL zCGnfe8~=$gt{z~IL9*ryIQ14ZCRYuJmA8c~HxDu*|Bv_KzjSxI1N;M}JEti7YX_`+ zxZ%-_gdgxlLadn3ivjj9l;HWT|DJY9l{|Gg{YO`7!PN*e%}{u_A;5JBi|L{$B))g* z^`_9X#6iMcMOmW8T=ae@qL~BjMDKiWl#K?8q$#tdAMZ>p$cQjg18JNWto9-gYGi4++)DE*^_(D)~Kb$u! zW$q>m7Ai2FvRSGUq{~ekYyhX?XJ)#Ste2Z_JvpI67W4uxoTFMfGQgU#)*+Dva4!XE z@Y*Lz@NQdvT7-=p(oc%jmg!BDor^X>svmJ((V^|AnFd?B`g^M3B~%fty_BYpB4eV(H^B%smjx5#(Fv*AZjPFGDe)h0LTYJK``LGnC2O9*i^v20iSn{S z+tHb)3q~vOA?xkE$9BK$`=PQiCBisxfPF=!7sX{|N`V8CLP@p}>lAA*rz)pJn8~2J z{tumVcgsy)gw7G&Zh}hz|8D8Z`^or&wwAQ!CC|Vfr7d%Lk)6O|d&QS1Jr}KuOu3r| z$4`5ePe8iZX}Je@&jI##U;|di*InNmz)p=fIk6_*nHkpcEsh;#nq5C$bMBd#8T z8mo9za4EuU4XUw`_Kfxq`IjIB1a4z1ahxGO7p;b6Q)Firk>*%x!p7E|1PHH3o);sk z#6ToBKpJyY9&+6}O0HUt&3Y`xo-42dNgv+L#h@5o=3o^EMERhVQYpo)I= zY!N$(Q&@w}QbOHs8(_bH>E?C_i%?7d9z+8r83{73H~F8mi>6cz1#gn(;~v&6hP!*YxhG7lf&o1jKuPI%-sgGkDAE$ zQhZye!jr7>phZNXmEL|QiZE2R2@xV3H}H}J>{?hZiC{ZcYsGnPZWI41<*q!u-~ju2 z#EGj|fnk_ve@D?5-m#51SqC!|-%t&{S*x=V2Vt3qY$o(oV>~!nAz;)N#BIWC6U{kXq=8Ez4W)VX z1Uwy$6e+oxiQeii0m1) zKknmXj1q;7SLjv~IjwXC(gww(L3AX82p*N{W=XZ9l=_nTr+$ zg)DbJfu?ZZ&fW$V11%-bT>tz&+wnZgTls!ks^|HLDqhso0yI{-Rp^H$4q4NS$Gqia zn=Pn8i3!g_Mw1~fiLDo57550gWq|!C)VL&IWws1#I|`}Bw9FpU`M&tiO{q!J@&j1QMDR4@~Yjj?VY3xXp#0};uIR7)=aW$g6k!{l3J00 zr&T4jZQFf`d~?wfPzvi`A|_}nH0kK@yf)kLJSEt|gep48sytw@FK+!vC%D2difC*0 zYr7$y{2#A0THGC9GKCddtrrC|AXK5v~a4-T!ch?Xi{_wWn-?96)D z20s4?^F?wqU)<*ew3{_j&(#KAEE2PC+#Cib1+jawvJR#ugqi;SJLoU)n?xVLf(l05 z{g4|OVYW1@@F6v|0R465op}D$%tt&uFG~nZv(fVttTX+T-KHi~>@S0>X+!tJG2HF{ zUz+nXJNSH^OilhjX~Mle$joJzu~gVc>Xq+AMi|e)D+i#zTs2=YHnF|s8l_4esjuIK(uX$T@-Ra{oJfLrLZnFb?{6?)daMDc~x*qDHga>)!4*zUFt=fV&!pEMO}Jk4!&Ve>&Z}=k7o@M} zznqv@OctD#M&sk2@Ky`h!+?KXmwZN|=0BW(!(4D5J33RlNpi)fLCgrm{*M*<@TK1$ z#;VbcfV+hE*9>1=*1P%h#@Y7<(#+uDGyKxN$%6-54cM5Ptk7>rI|LufoeB&7tgx=+ zKx_eos0|BDmwwz9T?NZdL(!p~sqc2SPVC>hR*C`lkUtKFs1rII=dwO0<7WR;N!b8x zY7jc2k#Y>hqk@xUCvQx3yq(?C9lm^0_oTHfd0(OVJ1}{E^VvUnRgXmSPf zEO)CsKAL2rP~sSy1G(BvFT!>fbGwR-IBrk$Zc5s7TmCS(6hW?K9;~wWYWeO%uE8GQBny9#y*JtoNbhQsSFVs(F_=xD3D0oFADNJ5~2UTn=CNbqhA9hqP zcSX;RrXpO2g4c(p;~&(z?&9_O+5I4!VHwt$E?KP1&3B_3BxgLMXa~bj)^QEMjSm)v zzgznrnyyA_D5!Lpjwa2U>sw?d4~@t&&1U@~A@6B3BjP>R+gD?)>@F^`+a> z%%!lfx;4{D$BJ1_u?2ICKWf<#2D@D>Gu#fvM_*F2COGwOUQ;uRWm$Kw0$(|RcBh&X zSiX(S{CFzq7NDK^lxwXTe7L8SJ;Tj4vHMVr$5C3Yx zXI9|i$fD&}_v5Fh=2J;Hu{@NT<;bc^w;uaXm)$pvhG48`=XFSAMSJyj;eK^%dQjo^ zucp4HergReqXnWslYb)(mJUI*uNQzrLswlPID zWQ`k2u8`m^t;$>yB>4Agh(O9F$PzaB=hnLY+5$%82=|c|+9$MiSVV7FWa}{5x0RYS z!6}JM|KKJ%56=Ue{E9xUif}K4Xg{Blwf36mBrmw!+}qSnsZKk9{jMXW7}E1z>(;y( zrN`KV@M#=kdc#s%hch9$*a=Q9l-w_eNBlia;U_o44y1}t>sCmRwV#g-nW8t*2XzzC zeM+u3m0T%y-J+W-afd;1?)6I#&V_pu*^p;g**#OrDpNijVO|9V7BXhCqV>YcMH0th zlb@|_4F|G#i#^&lcZlxuSFfBoow2D;wvN22u0wlskq#b_I5m==HZc>Iq{$6lB^=)U2=gYd?=cR7 zvfpOWVsk@V-mc%kt4%6VJ{DpA223mzu?x0JjwjT>7O^ng+0xoL8@9J@O%W=2b%z)l zV&MjwPdESHdgPMI&MjOwu%Z8(+1aF$LHCI2dX(VvTIhf{6y%25@FQ&m$^IX7s2T9> z4ICHNN|!I^#ghKZs%AD!scy|qEUN=W|C3eQ=1S^?2~K`g(6M@NCk+Hd$)u1m_g&szwh@3}eT#F3QfYZP_L(Ki3>T z=o(R70V7gw02j;_A!w%ZKXSov0VI-pC5~=$fSwmI%eWmT^8|@cXJbynNM+`EpmO<@ zFaqoGIxIHVC#;`eOOH1({?f-+iSBN3%vu=@{x@0Q3C=E*Y~fCd?}TC(?EXgIs4v() zIpNJHn~m{CsUD6yhlWSii?Y|(xAec4pPMZ!aEUN~2%6%;2IN;-T}Q<8*P-#BjmQl9 z@R-^)9I*M{n&&SEXCUG6mBq-^)A~P~!?)A6g`cclGjMV6V2c6!jSYw!^KRq5=fjIv z)D8txN#~d~7c~>aVL%UJ_E*Sa(gM$0`s1A)Uw90ig*PXH)GB-T!f4w1G`P~}=*qbK z%Q}_o^U#FCrLuy35#}YJm%{#?D`T+OOXHtQclM>Hkv+P#)hiD>qk(wrc0V@WUv#7X zHkoLe`mF3yh^P1Qk-bteD0gPtRxFhMtG8a3aYG?J;@4}6dL_;U_VSx0h1O{yI8dA!ZT8P) zbyW+(>%Je75^kH-VNRZ~9=5*_sFQpB;;g%KdK_6W@=RFmnrSew$PF%2IMr)vAsoYH z`e#U7F>fGNmU>`<^9kr0*ZZvv4gM+?D9SxH4&hda9E-ceutf*RnSGfJUylK(Kf2x1ZNf?IO1NF$VQF|I><72 z-+=&M+_9Z1aC6huKE6%0LB-sTw^Cd$!TlJ*`?utYi`s_xF!E<(2ou?S78F&Oo$2DZ za|+G~XS&JddJeZH-oh!tQV z9g=xq!(-4PqB;*27dEeZPEH2@oi``=VwcW{Q$#?Q;uK8z^u)lbyQxxtFa`sl`r@WPpyA6P$@i$05Zqw4_pi|1HaFML=~D+sC&G z6U&4U*;dP(Fi-;sj95U7Fux8)l-s|Hf}cXo;d6tIT ztbP%6eHhf)7(CR9N!cx>(7qj$HQKn@=fc-X*O@hmnh9XyzHLT6lS-8Xb_nZ|1X!1{ z!JQG+*B~d^ZU>6igrWyRt?aE)?zmM@up>Knhw-4^^`K3h*X!fZ z!;+Ijj?H*@vyc>jZsop6Kmn zvlEerqG8Og>-a5w99#Mf)^%{1J;hQ}T&^eSxhzFuy6wb1k`fMwDXMAI?rE@`8_(8QFz|NB&h zY3ifKQN0_a^UVAN(R|>`#fX>j_o!)|1Rc)}aaz(P#=M1suV=Q#s zEk%VCFO?}STgeGt@~+ifiXDnU(2%e z;<9uMLX{wevt{}aFYB9MhPv9&y#tGKJElUsDIE^WD+I%NWtmFb!F%CyToj3+ z=$lh80sDR3_7p|1wq7ge$sQbHmj9cUP_2+n?$JXGQO#h3i3dzYfU1G;VO!j*QC zZ8phPry$^AC|;Lt0(XNcqr1V5Zu{tSQo;VDLgudWF8!amR06(ldOAUL8a$^oZ|l}B zVdXC2w;OwWv-KPp`D+8ij@IxT1wZHv?j|BXhZ zQBU|T=BNACo#IQUvINGkfR%L1VlgXat$#SYK8u8Bw#AFK!9`r9dEbHxzG+_*MCx6r zSL(WiAO6ZQ{MBHeuh)+r?;ktgZ42VnlP+1Kd@BC^`*rrs>yT#cZ&BwAhv56hXZrGo z0>W;*=DG12X(_U4epg=!6S05TBzs5gC8voD(yzIXo>!0bPj@D8? z1;l*%mCdIctJ{QS2Z|i>4%7flHUpaCxy%PcN$YY}$sQKrF_VX@<@KR5$?890}hZCt> zCsGNde|5MFI@AQj)ciu`(Oof5`5M8JHK`;`=HhwL#q-EMX9Lky0-cMii?ZJSEZA~v zZjiV<`-NW(V5nEWa$JQRA9$TJ_Byvy6|TWL{KDIr{(Ur*U-=9_Ts&qa{moq3qg4tP zp~r6@QM^}HV33__0DdlU{~xaV|Ikl@pBH6Z$bfU#GXXI(U<_x$v22(nvae zZ(j%*-I0Y+Q52e|vj)Ff7Xxq5$6)|n>jN);SS0Y+IO8vTc>jQW{u4#PJ`L{1e+NqmJd?73uZRt{CNhOL~z49G$=z9gH)ASr49AFdbfXeOlR` zab3R}jmYZVXHCl%l+Hp=^PrXAW}XqYXn3tNHzk%D=Q)t*aN$-p|3_k8JSzPwRyo4ul`J z)tk*v3JlY#3RntF%FCrOyyy4;QJh7hxBLyPl1$!Us)}8`5 z)A^6uTkSVvq_q_Q03C$^vaGdURoEuOy}%fZ$oE=S)x5CAhg&eHf}3IIozbpejS(GQ z!9-|+>Crhj^~7LCB#UB1iGU|F(TN$+FlIJn{}Auq&w-JGJJ{}?q83~SQ_CF|(%Pku z_w47uNWl|nree((#+<(>sdzv6{X<>*2N=|9>(u)SPKOd&U?2YK-V#prr6-N6W*XYm%0Q_1n9Sz4-E;9IS88_^Mxx5&bJ* zUs94~0Mow(U7X+*k*=7 zGS(zo6qRj|Wr!k6wrnNof8I~^{oecg{r=B$p8L#o=A8Fz@B5zjJ?EYD2k3vX(wf|T zOsa7h=$cgj1mFnoHHO=2CsntMWAIsZ3kG0dIuEo7I3{(tU%}vdhdTynFn-iq@OeHG zk3sl63q?%cx^uk{^WFqQB2-T<}S%#$lkFq%R>bD?arJ zBzUHALDnIv_MFC+GZ>uJz*<&>XFp9tM@HQ@gm<5Ka0T{#LleuY=?mlm- zaTw^n(U&Nm(GR~1FEzG>U6?WSmA>`S@8CNOKKLQWJfmx2557jL`%0w6iZLjWhHj+D z7vEtPtcNF9Ki+?ykHTXRJ|CrWX5_8tS814zOElC5FCR==eD(?k*B1+-YaXER-w-W@ zVplyHk3qQluh(Ai)ay!8;`zN>>To5GF?fOd-DtuC+yW0Ktvq`LgX=4S8<;5dh=aRURJm?|iFd{i16p_ih=-;Pc)s7$iXg_B7-Mf5-occ^(2?Z~rIe zSqStP{sV)2xsS65l1$lQ_Q$}3?=bif2rWjb=H;3^d<`M1WIO&BrYxsE$E7pprsj*j zf9Qjb2VEOWW6;9Vz(9*V_^{IJ*!$7y@#ZLfx#I82acYsG+I1F_A zU;G5XG-DW^mpBY`d0zemz_2ll)Jq%&x>DFX+Yr^YL)&P_%Vy5sz+(`8{s#0d?xeKp zYsrXXnCu&P48pU2VI4@s4^n*z;XRlyzJqBA|;Eb~#qJ`M^xibcj zL3n2j>ZTWv9P#Z6Sy2D0u_llGeoud${@)LM`3-AuhBdl|h7!eIl(aOs%x}Q|4Rdja z`IfC1Y&YM60W9rM@P}8%OJeXCgfEHt39xd)TjI7njj<0r7_1uu>;6hD)+e1`E$eZ! zw#j%)JqC@&TQERd#UH81t7kUf#A6V?`Q}dme$2dN3epd6Z?X}*L4sR`v0NXc-ANW1r7t~F_`HYLCapY^eLfx|%80(&le1EwIBj^Ikv#Xj(0uucrk zPL;EJf1)fFm8j!B@L;eGhlMP>A^x#ztp?KRjQxb^cxcC8&TNRnZ-9mX8FGW} zXVe}Qdg@t-=vqUl-=aMoZuDpdk{wG%vqIKH^)DBrNr&l&$}_wVCiS{s>4nUFpVfV6 z*Vw-veiE-Lg8m2X_>-AGqws$sj?CX2>CZzH)*6bsnvNH1jU)LKU)<;t$j;4eld+bCRnx1@m+gah%!86*1Cns#AWUWaM123V^Yq|17q0@t_#e0T zNK8yHmFe(>UY+K6PGmR-(y4Kub($|7N1P?aPGN|0xFA%b3^nTmX1(T1i;+!|V)6(h zM9si>etmTt-RDWLGtV8ocMe?{!OP;^TN-!64b(~9i|F_9cW*J<4c(g8tRhv;_y=9D znfSBw;zIlyTyolTcOUU;oOm_d*9HA*anqFTw*(Q^jci&YCcg&BrW-FD87_=uW5A7K z_{>xUehRt_CU}iLW4F1m2%h0Y;5i7fTjKNguTtnl26s@i;aeAOOH@}V-6-$w zy}OgRrLMF1aVO^IdgvK>db0#ww=5QrwJ(sP9$ZTWJFa4%5)!CLXXr}962E94$l@a* z<_&ET+QOs1EL^^gCMFm-@SYnY@fg&_QyL-FzJdZHaV9$gpAE9e(BKz>df)#& z1bvMtFqDTrPxskMRLE&=fZyP9&@U#h+E{4ZdC#@##+>p>v$n-S+2_j_lAdN)1^7ws z%@1pBR!OlFIZO&6F`a)%a7f=S2tMGeo$(0DGCq2=Bj^O_3Q5+Q(enMYS?lPS!7GK$ zU9GEfOfHAI3B@<2V>PuL-qt9BQc~*MdTR~+yU2w`ZTGv z(@)bZ(&xMHQTw`Y-nM#Mo4bC$#Y9-g#+?kY{pH&jR>U7fdhOTQ4I4#TCWn{b;M_4w zzT~b`VWJZq4_IBms?8y6;neW*e9LDpr-7?zGRQJtjtCS4KJjN~WMO2|1 z93OEaPYZeZDSyyc1=P%(tHyuT2;FPGN9k>y z(ZlUUy!=Cp%uM0;r0OKqutBCD9@Zf8PT#*aJ-=Vx?DTSljyIC}7-r;QQ0>G@@cSt< zA+6T}R)u%fGG2@s{25l`Q+d|0SGE)ocr6wn64V|6VmZ@-n0sV$;V^i7iN}T|^oo}K zI0d-~u!Hrat%UPpL5|%+U5yYSus!{~ORRD9+&9i_MfY*Ry!?^Q3H?i^M{PN8j_G{( zXc7|khoC`1be=+Gjmr7z4WPjhbDi9`^~T!s7RwUTjQ86{9CorVeIEl#=h4$!&lvqw zI!h?qBro5Xd*29S#!*z64$C@kcAz~dNO`$+AxkakB`6Ty?(2GEzLR&_AjIu^fw6+^ zN*KnodKWg#vD}{0`9O$F@fM>z$ADP3k;n_5F9<%NwK(2q+jKGlFE?)7kZq8c|C)Q> z3>&4>mxF@&HCt?`3H5n=l?qD~JKjm^_swp&s>}cANFb4S0xz{MRz>Cr2}Bu> zWMQH#?XKdVTZZhIt(PYb!h2WSW5NfXe*5lNNgufXrzQBiw%KAbzLQY#&a-U~x~jaq zWvy-7(y`*r5P_R14kw4eAcZ_&xi=kK~t{!Q@Zs+yOXJ(zA9Wl~tq`p8_0W}We#eV$-BL0EeY=z@58YNJ5R^noIMZqFoyu?F;kVE759vATPDqfrn)6iaC>o$IWdDGGj z*1n~< zCV?e)z;eN3PWSbfA1MJV9|voTP~ZNNbK~4EhDtvfcHgh`>Z}ah*#r(AHx8LuF0;9) zvU=!%M08%&rJn&dENk1NwrXURwkw?LVO)m?)D1;&sSwo<3Te zP@k=RtUmX#m-}g_i=iK>=csS|1F7y&BX_|hN8E|LB=NlB>aaJMfkz|LF$4EYUDyR4 z`|erYFIA@MkNd;AuvD$|4a}9{l%a*7@M#oR`)%(RfNob~n>-gJ&X---Jc{C@>|0=# zSF{%dBMJQcP>rV!`MKs>U>|qG(`z!e>TcRqOqe@ek~cr1xij*eS8P}s?Erb&b@jP_ zJg#Z+(jWY)@zwwD#EwXb+8eSJbliy(2a{JWuK(e0e#_HgLzL}ke}vEK%Pj^G{4dLy z3b#dTXI(yme1pjg(OSopDZ{r%1DV}yerPj6^3Ic0amXF%u=yS7DR z`!p-0LY?mPT_hf<%^q9-IpV46a%cP_)?CxvW}SJ3-8OUci%TapsD7iDRhk=OWM^7t z_wKhG_h?S;%~Xlyj+%^54qt!E(Xw1@+&1yZCM3!QuzteMsNsO;5d#SbJyj%=JZD*|Hu*r%k zBu-$)cr9}qq6p}CId8R>&G=;DMZ0$>>S+dFeATy?Q{!u1xAVI3jmk|nEp5)o-@!Eq zyrdzRz&ypbvZVScLQ&->EtdmIg3B9(P*o9+l(k|vsrRh7Q=e#-Q5BI?8?>;98zFT~ z+e<5<>ix*i;Uc=8L?mSeW0+YCb2`&gy<0&aebFcQ%ksxc2n@lw;kCUX59U3`d@O=@v>(RDqDI|@w zAzqS(9ck1gYM7?BmATbvsVd>tbFO&;D$Z-)SBKuA6T*9 zTtwGSyZqak^lK>%b=B+5+hRux^dNe4l?9vE@k3ng-EVI0J~cV9-^w#ht)U@T|EPK5 zJ`Z6h-f5X&35^3$mo%k9YpCZlHNknCDbe&*&fwJ*+F@bhX~|Lgw0t4%%V;olc>D$m zP5ztx)GdKvyvE;@yEIv@W z*n$&G+bpx7z~|AJXhzF1vzqZ5FiC-+u;m!jM)yCF2=x%Ku;Og`eowO@;5i z8$_q0>B~U5`Sg{(>1rwaG*alFPS+=%7=&3PPwrPyWiHf<2@S7Jleg{Paj?JS%%F6= zL%)0J`DJPJFxscFx@X;A*B&YrGPEjwb?$59o_l4l-d`RBixC>f^}r3HxY~S9I*D?; z2dyN7n?`Rt=8F3mMt-hk-FCFv#=bnoslTb=b!kCis48p_C(<3mvRt$77QX0Ai!o*(>CJKUwGK&xS zmY?{rN$myKcTjiQ0xxe`sLoV(d-~Odjvr1J;~3=*i+I-*8YvYy_?nj?6-9oj7@%=U z_kz0pmh#TCgSved`2D6tUp~{+-1p**LZ2oS+uygH8SJ}iq{N5D^IeC>R#MZvYX7SA zMoZ7AGHzpdX*y^yaCf(Wi(G-++xIpF)eqVlYhTAX#t=aMeVMPWfR8jPr7CC|Nvt?W zDtn4XVc^o_N|&ww2T4O?ZA6@-Fh){zXbFVL%#sW9VKd%^cD^OA8^hz%MT<|YqE+R3 zKe~=Z%Gw{1aePK?%A-p`x;V0yef+7=(fCV8?sEid8qX7)ii+(O%jwpXMb6IQ*ZGVj zWHg^{v!U=F8C0|JCD&vaDiKM(=1dMxyC7FiGK4MEE_h&K%!-j0!|kD_PSNxjxB^+j zH6ua3gdTy4BO(4o!{GE!d|vO<#GV-t?hzWqG`+N6Ey})0*0%FKXw=3(YHgszya961 z>}iW(6}AspwcsEt5|@wfe0|+9WG76 zNoq1zWv?QPGGP457BzJOoR(4{2+~G_9%l3l+GoH1nVzK&2fLm%_+U0R)E_COW zpZ2zyD5v@LLa^5MQbc?;p_-?%++P;tbM8&TaU1opix|oW>dlOkjdfP z*7txsK6Q3|s+g`G;%IE+sqK0?`)^R`Y>`*t7T*$&hVUU867Z^`n#_z~zb*(^(xH|h z0@H9n*UlV&%IGJ@Lg8-LzPUGH;E|D$nSDw_pZ163S zX$aRwEEULABN4LZM)F3ZGjBxqDHW~tHQ$TeK^;R&0pS_ZwnPf_YD&44u%cXE67*uE z%64|WUBM2@{{WKjm^zz~BBrc^BySr}6vz@xO^Gv$>l{gp2zI1yo}$^(!G)@;S0Gbt zdc>%iF78mX=PmCv9MFw5!|yk;Ut(pe;H|J`M@pPPTv%E81E2cZ*MW{P%fMCVbyvV@ ziwu8341_4VcdG+ePRCQOxPTP@!-gM?uX1--7A;8gU2^(!} zORf6cdfJ9e%1h#Cte&}OB>Yj{xnw|>7pd!gQ5JHCQ>1alDe>HC*FUDtF1{y*!?Y#m zez|ad^JUOBtkqZLhfm4Zy714*qV>%2wMNL3%y+j2l|i^KAN!u~Q3~@XAO2zT^+%*4 zeerT6VSIk;F5~ZR{*RI@tyJcHN_y(TtCB^dY2)ffPZ*IsbtB^19Fee^Egr-du z9t&Y9=gf{=sQ(A&NvXF`;>$yMcw8yVd~bd$vO=%=(MQh+ORJT)ddxdhKr>+T&3-yt~Z7rf}4!#G@{J z2qTPBTs`}6>!>rY><}+D91xBIA@iR6!Tz^11wn!&ZSyv#(LxO+$_1pU(@#ymw0vka zZMO`s*>a9J;$z+pI$7zM7r(my30N_MY5BFCgbR*VGX^(wKNGD{xn0v^h5b!FayQKlh1td zt=-ld1etviHXA6%!9;)?0-1-x9F?$L(cFFKfVd5K;uSaTqpkt+gw+(>U4ZnOhwnt4 zxfAtiyH{Y67)}EWZeAw@dk$H6^W>^6lh;9lHH&Zr-E)MZ_j`-2X{0;J~ZlI_3C;3-CWbIH2cy_zjxg@bZ zb>!LYSiA|ZasK+!hk}gSudY<%14b2>=exDLU!9P$F9IU*AET&AJu=lE0ZA4|KA8WY z&i*gEd;5%k$``ghNMQQrWDG5TcU|pkAIF$UFsw%k(A=H`?|ERZ`2Ba0B$7{Z(CWKC zQJ63OgOb_=`8U#6=i{E;rUYcXyB~FTBjfe7?&+3GaRm3uZJzvV%cSd@$+N$;YDP)z zPy783Ob?jnWAJWMql3Mfy~#-@JKj?&W`9iA$Edw#d~{yq%uL;MxBo2&xwBcvvdwLD zsfH4tFIg+TDk1h*{bbd>OxZNXs`#47b43F_<_%3ejlz+WXc09w-ma`;`O@Q3nL%B` zjU-Wlj6%ibmTK;gGN=c9$=bI|{o|8rIEik)UDT$@j0|w)ra8v}le@=;o@XGQiaTRF zKNi_fKV(4AIET$(=@KL105^s4L92qB^U>G=l(y`VBzJ+*mOJYSGR7K!)2`s=e>8SN zxT*B|#9i0m?VzdAeoNV%v3CcGI%Xa+Mu4A!y2%1cx>ZOot@w>)iE|?@8mE~sb>eC9 z^(ORIVYl-@)1X)Jz^|@jC8pdo28pd3ECOz@VM6@0lH|Q-x z+?-T=MKTtoRQLF6KY9>R*Wq@ti}M9hnx`c0BF;rbAW3%YM5|TbWJXOUE@smOoYPQM zL}aX~k-TNA;`Z2)i(S-@lNoQ2K{^LeY$ueyKnGgt`JyQw%RyveZmE+T$AynrDwBpz zw7_k6GNT1Eq2Yi@h(<6AjbnOBp{#-1{?V9?j8WWx7AzIg3oBk@Ct_*Gw}*^bWZ2P; ze4!!bU2GNdrM=6o!t zF}VtU$~C7e@tu$8TR87i)>oHM1Iu;BKoSAvWf`YZ5B2EPwd^@vwBTd;y@{tr`1u~l zcV&#*mczR!zvex;hx(>sM*O>|KPEF4Kqa|Sr&^Pc;K;9_lBvzRO|WkB3>f1eA2FRO zuTK=P=UaR)E;?!Sv888X8Gn6(_&vz3&m^Mr`N*J*sVPvr=JE{~iy(^g6>*7XxpJNT zDtb)ySRlDmCRv}Libw{GQq*Lug->V^WHg!qbE{0YKEV)Ub_-+1xSlEMU6XUR25tkl~Wl~2vbVJ zqa;4lAn621R?S^EV61Bf=MVc)OYipO6TVez>9R4Ia4cxsI548J_cSE{&Ji>T_8$-k z7iby_OW^QBdXAP}t2}{elI|q!N z(LTSDnIGh9+_RAwWHAl-QlU>66HHfxeutjwGdy~>Wd9LubpbVdYq3G*V1IbdY1 zdbR@%=@<#-eVq1bg{5Q$T ztJHpFIYWxFh*1-_Csx6TUZ;?KjjT;q$TcIW$oQ7=HY5l_D$LwsC9>e@C)pa!++ybO zjG6Dk9SP~;tOB_`^pp2tmkgx579+@mBpW(@qo(gMuW4rGt@qW@pIXRVuRwBYE$vuU z&R7rfDRlOZ-84%k6}P0U_q_$Fl^U(+H;zeTj&D>NF1~7ob18r7q5*&BMh+NDLM~4t z_+BVSH&&!dvJxb5p8HN0t@pLmha`@qPm=7u{D1MI+*42wiIi-RP^Ec=w)z&X_brob zNKi$3RS_06llFb*|4WTVJil*D5Rx+eDNpzxk9}CC84j7|vJ|Vm`cpao9<4c;d4_dN zpCf2U`nS>^sm$@>In^8_AxbmrLdaUo_U$R!Bz)A%?8IoMc=og?h-fh7X+$H& z?t?gNc#T*}3RwPP=@!~WHJZwZ!&q+n&5{5t;|E4s_MK+J(JPB4v2`@am()W(o!4Ry zHq?N?3GLztK}?BsJ?e}2rC2y9ChuFO+mH}OlNcA*j@95z)yzV(&q_p2cPu$=pt!cV zEIO7uOeIZaFb9_Ix8rvT&UAun6+3t9sfCwerTO{cTtax4l_>X*OhW3qD!eONtla-I?LEU(tx3$QaI0@wa6E6+KvU~F!&qzmT_5scUk?#g&(QjsNMXv{5Ay3@x3Qt)W3aCKXG*i6QvSk^@v(E zrDoRN)Dx0HF(R3IW62!4qGB1B+dg2-Zs3p39~Zt*eQw)r3GRZVb_+icx=(qArxHc< zfw1b_CrQ)ihtHn>=C#~z<;$8;uOd}nOONx5(>ANW?3!@>^Mrnp|Fvk+erwOlvc86d z8YF1*fY2aX7&hTWFJ|JBSy5e7zp0G5pT<$1e^rI+K2rJPgFe>=QQ;aB_|kx?$7e<= zDaCG?j8kR64})mX58uU#?y`~ryWvd>?6ohQ=m{9hd#6VD;u;F7r4eKIBMEnm*oRro z_x)v=2KoGE@_3v0;7H5<)6DDC%Qu`XX+vL*9e`WG{H2?}B(Gt}DcWx+=dK$x)@=mM zx5RifoD|(?fK>3fp8YAnD=UpiGC*8!j;vQVey~EjCIGkRROQLqv?BYBa4B87$U-#9 zP1>8hwCVS7sxX|vY35Dp!Sm=LHRH8QVo= zO=XY=Az*qmv8&l%5{9Q2*>5gq*n)&D`|OI}ZL|AL64wP+N*R>FrSf({rlqIbEGAT* zx(>p5r6moQOt{rWEt$$Vix_&_RHIA|?4Mll?!k0p2kTasl@c=l>5*L%1#109aQLzV z6t1a*aJ$QDD?-(koetVHe3`ci&Uh`e0jJMBn(^-+`_7ZH*{jm>848q#FTn$e_4$V@ zO~E@i21nu!oL0C4<_h-mz3bgCX_*0z%QnnK_IJr3HXlH0TaHP{EUb&z{flkx2z7cD ziU|JrF5#VM+_A5#(cx~hEmYDox*(w6aWe*ujhj$FKaUbJeRPa-zU*qW@<42?!#K5N zDkB?HamH``({BFzF331@j^j=bOBLLmYBQqjRs86#rHiy%^g^B#LFQtXU+A(XKPfq% zFYz38N2OXTLr9Cw&d9DX@tEM0VZ&a4}>%~rFRK#69Y zh|-sjnWu+p47Yr#HomJFvkPczlW4p5Jh%)Sh|_nYyS$+v72V1H(-ZdvgR(wc_V0W# zsB<0U&*3ZOi)zabgb&3E?-WY9rHSX}%=&@3qAIRJXvlc~H?Cj}31{>2>q2o#(>3i( ziM0+5GG8JD{39>rou}~jG5t!!`=~<|K`*BliWyDUEU<6 zgF5%oh&B7no&=p-<;VTW|VJ_R(+o2^ZEuv%y$Z99o#R2IuqDP1K;#s z)G2n3h<%#DdtOlSpDX^_bnP={jhC|{;=QNqSI!^-E2(u$&7_H!=gj`_Se%wM9?rm$ z3Y)x++(kLC&Klp-jM3u$F-V~)&h-xk@>?0ngFT$Q$|Uys$p@6e&xaXTcX?@FbUcD< z7OZOKFVm3F_UjZF(vjgHg*o4ZiY!{)`3LztzagBCU+3x}ooxs=Iv_doTjQ&sF-?;y zFrBh?2sG~TvViklS733+>9-@Zi;)}=G)-Y$kRvSe;px`svAvxm#7{F4pxNJZ#YZ^T zs^};ZLTBZunK^JlE%Fl=Ialn?xz>wt!CCXz4g4=T_WN~e4e4A#a#X1mRz$hHm|Z&x z{4gO6{5tm!>0HMYDE{Wj|5fTK_tFz;#gU?uI*cd@LqGYL(nXCV@3`-1vmE)w(#WsV zc1Y(whu5Jp7ud^hie*U48I5G8Y+BYmyKdKzP*UyqkDqB@NI=;%8n@38*}Y}w-x z%N?Qanoc=`49@S+ux)nP6U0~iAu=~1Q`5=>ncJjfEa=O(wQ-gZE7M9g(x=8C5|*M=D2s{ z@xFKnin+|o3_(;gExJ2rwi|4^Nxju^{NkTT!2`|pR*)O^KsbRM#=%7D&k7*rFf%wK z-<~^?p~*4k{(&wEN^`#ja$zo5YV3@47^137r?_In)5_nyT#cM?M?8fAcY9fkl_Vr_ z)#N948xN3Jxsvmzv6D@y1UN1pOkwq`>C>wP)WKm}1Y=luYp%GQbIlh+{WVieM;kGm`CWix38(sXx@L?K za8#Ig97KD2qp<6gICaXEFzxQbSlMg=Y7L#@tMCeABSXMh_ql~MF>cOmGiKFt$0z5u zLj`Kn+X3ayfi~-*_k|YHlyu~ZldXzLS1PR`{uyUdPg*jf5@1Tjf-z!V-(@yMY=a`` z9ZFt8De6n48k2(*-9e_Q&e!~PuHZ%Pp6n+hNt-9)5E-^uUdc`p}N`u zbJ%1^ClSIhWBipb-n2R!mIY8i6cpGv?Y@Jt(g`WRC-&vHY6v4c?XCzOvyjeCBWpvA zJ2Li{Y8yed>vLx7rYrX`WeXVNGf{9%+KH1WM`P*xb!raj_;Hqfqf4Z`x%9h;jR%+g zUV&CVHz#VxSKS<1t#RS-|A`RLb07 z;IyUDDSPjJ+;C=Gbm5kKbV^y6N|_%F{E8t)agzu!T2c7isI7+TSp-u3n5tZ0$QBUP zzXg1^G}>>!vJGvuXk(nN{DUd`VK+Ku$he8*lLiuRb4RI*rc-!^0zowx=!eJVdt~i) z=5gpQ;Vv1{;pHq7qQ})2j<5N1qZtUQ>??PI_^<=4a%JxD;%32i(WKzYrA*m0mPuj0 zTGww&Qh43)bx#g2X%=j3S!>@$7_&B$X5Q1Z-OCPAFB3x*cS8H;z`~0vfpf)wajtEr zuRMXcyQNr7lm!0;Mz){C<+5CtO}nenS9+L9e*&R8sxI6=23~7y(Jjok@8VC<6b4rZ zp`pf}N6J`%rUiWuWMQ7AXj*Ce`MUvA%rvww6voc@eJ6IGyzZl-}D_)Oc- zA|UGe^>YB>P`&}DccVF8)*QbPNZ&;Bz^c;@e|OC5Gb#)vcW$JlY@}3fgxL-@$H63v zE<9X&%T|lpp>JoC3n!a7z^}iXhV?$axVk0j<4lUO-(GNjZ12cD8J} z{Y%23PE|^ZDy33&NH63;I=Wp%vWNlg2+&56=~3joD4-Qh3{-jx3rvCXARGBchHWOp zJ}l$0K86*s>xZ>NUNnW*X&BfRolWXiXw##(OE7}P88`_Bh_F*}g-2|h%{-&GX8o-#-b#b{m7okh zqMOsHLAw(1uy(nH7tWIgFo_h|W{T{?iilEG`cPghh1WT&5sNS~C523>B!h;NuP_Zy z)gFp)bt-z;VMO2<5#AaR?3GA<)L^t9*1CRO=juoOn)PGI=|}3XGgpn}R`%ho&4OfW z@8u`qz^}Z&1zNgf$3!jhB9?ej*x#KRcoPDiLB!h$9e29+FyR0p<^bXL0XAF?=#yIa z%G+Hv%YPKlkk0RKHnnLxPI14<2)@C<-DJeo=L~ooS00B6o2BR(D>*^k&Nkc5M%(X@ z*;)aZmstr1xf2OnI}Q-2JJ@DB*oSw3Afnvra`eHXWpRGKP*+5TXjq2m-;f;C(o&Ui zsf@Vje8c%IuU2>yzWRwGpgso^1Mqepq-p~4U(JPe^Ok<$0f&{k4m8XydqGdIa zUjHTWSS=6&o3lv7tiR@?5znq=)B0-jH?D4a$)UhPQWy5%iOu)cpH)Y{3l#~x+ouA^iMi9NOhk$b{!x-Dl0YG7DRCuVg?H`aY9T9 z8Hb(*uLE>&^3Zry%@(gB8ktTb=g~@6S;Wacl}^4-qwsDTb}8wuFwE+$6Kad5xa%;3 zwV5~_rbNn$Xq0vk!ZW_v7&QAkITe+4SP(cCgtr#l<+545C0?!!vi8flFh*%^wyO!d zcz3h*?&g5q%@NW0ka`$~>?XlHJM{khw2QjV#m6VZna>DJQ3a;xW+sU2B7uoa9y??} z`VkwOI7YQ%n_00BTfxGxS$!(f91*X4n4kZRJHiwlVv2r3RJYb(RPAGjj*t#ndp<66 zZq{~g4sdSHPbW2>w1yVA==@igbKx@P`fTPc8=*r2FZxO02{wcn8^UcHc2J>65)*FO z+?4a1Us!uSDGP1Z4s8wyC7~UhvQ#JwmUz{+nn-Wr1G4-B^414vkBoYK_ypQKzucd` zZzO$0v8sql^nD)sP777fT;F2U7b!oOt2@!*b{Es!)85ks=PL39f9ExTUliq_Y9|5OZpXs1lI*HC?k&&cx6$XlQNmJB{PXWe9d zit{>`9eg$$cP<+;nE}xW^dY(sxZTWtW}Gi-m@j%DA8o6tEXajnZ+`@v_zAo41Sdj_ z6XCWKm_gw$WCoUr{iBM<)+(>bojYApcDhvV%mUNRuTadegPq?2a;846x=V_>OQkwO zJY;R?M+o4yksO|IiV$;(aQhT^FZdc|YXis@4hc{bx$}Ta$^n5tq4ehOhU48ktmT%mgkbUa*>0I)HC24 zNbC&z@B}I$hDx|i1;;q$rgVj(Px;DVyC&8%pffBIJx~M@?TSrZ5CSE2Typ1mmz47^ zmFI^cL-1CYYGVDg_rGWgM7q4sjsz9z+Aqj)=MH`syia{@58M3?VsDu zySO*8f*V=5CYFSZTaS#-fg*4`^QYr~Ne`I=tOwo9ZJ>wq@P*oLcGs<4f8G8!*H^!} z{z$XuwxU=YY|$QU2^egNh%Owz_fvU(UpLsXe=84}L#<%%7^Zx|ba~&H%R|Q@OHFY1 zfApm9C`E^W_V|K6|3+4qiz3icOW9_n?8BufNl;ge8nlK9Cibu}e-J!tk59M9XV??9 zC7mOo%HNJs)bm+b0`ZHdOIstW_nacSKCnMg>vd%KTSceH}0o$yAeYgOUc9Eo< z%2QcCcVMbFv5hR>M&8iWXW>OwNU%3-B#|f;@wf@4rdlMlWmd7KAMTNKJ@)kjYhoRFQyqC*9R)V8Hw{*=9+0(bN_(TST@%@*9xa9*EnyzkM)W5)w9s~O z>d_&ud6ies?Xo0JvV>2vRs+|#>31ChAHV5Neph@mRKfq?8`tfDHRXY|D{!ji8{1cc z$`u9O746vz9b47jad*0;?{s;F7Paj07_@RYHC+B-_`tE^d3D+N{CmplIJ+$S6D+F} zEZY<8AXRHVSVA_1FP+CN)|5EGqTXg(+-4uWjq=46-hU!#0~RIogC4KQn_iK(y#hTH zABy$;;=AHO>FFm>E_jk1Ta_*HBpVX<7?ilz(r`Z{Pk0=%Yr~CQwNnhXQ@mP1&)H*&-GuYTPygnn}#j#PJT*XEU9|tJE;+RA4P+)+l~`>< z)g@ik<(Vq1iFR=U{yU$lq97Z?`D?T;{E)7g#Ruhg;!KfOTOtIOokktSP7MJ+avnfl z0(P3rj{Tf1G6}js_Wvc!2j;b%kR!6vjGf}No#G5=vc_U5)GcDB>jQp_KJd-YztS?a zl&pv&D=sAui=GlmwnIB<&362y<#yfrr^rgI<%nLCtSCZO6oue*3ciNw1a`!irF&6b zFSNxlv?VOm+US&>chFKHG!dnuQ7tBwZIQ}8nu=VVlu`+EBQ5*0Y*t18!k6D=qcrx> zG=!F-RbrEg532w zi^^nMFxf|$&4Qob9fFb~Oq)tE+wnGQ7Y}<@ESZJYq5AxRjT6{{luyONLBfS4?7~{@ z0`p0CHY68)h?%~ORk~QQ6qbk!Mk6|bK14%>?BqFC^J}(s4cqz^TEh4Ob0DjT(ZxS{ z98lL!&Ps4$#kjC;0~hs;D62?=;7PxN*j-@7`m#hWVC>Yg(TC`KRV?0G$&6MqT3rd@ z)J=Bi1FFjwwvxGyF6oXg&m7UZrLG%Tj)EfZ-GlO$p&7E`G+7Z=W|=4hwAIUIH3sDV z4^)bi!<5QXAWqB1ABVv2aA9#=SZ|T0B3)uRp(TGX;c+ZH$%?) zFPXZf_%Dq_{+DDXKz_O@2$Tv7_!djCRNn}N9GAup$L0`&btWoUxB?q29c77uGvuhf= z^m>co^_H;fEfHqR&Y&JJq>eHcjUA_0oKvi~r(kiy*Hs>aDQIDR4XZ@|nyf&R8T*@t zADa*O0+#iO^PolG0(b=l}X5{j2QdxpO0jgOd*Rl@OnI6HPITjJgU4|Q!Jl@wXJ zL){j1Up+gD7MytB#~h*f8WYc==VZonsNV=LG-{x<#u9fR76@|7WLpen5kXaVCTh%1 zF(z##LFeNAQEOX8k}ceB)6NQ^b(XO-gA5&V94?PbI?pgvNxnohV~vX*TT!RuozWH> z#bz5+rO3^~F0UzU00UyM0KLEr?J`5JJUKSc4!%8F%XiN4LO|KX{% zuoY8Y{@a+k?)RNGhh}f<%u|#)4zj4{*cRuSc^XA78GEdM+OhIxR!483~jV&OCO!FR-Cpbtaa$QWkpE2lvdd}G&3fgBXu^G zJ4AJ3Tex8y_2KU2n)u%=M8=HH`b74!&x$2yiALv)D>B!sYe5G?Df1okM%E`sFQcqj zLkuGUui)VCly}VQS)Y!2sb$5gVt>cOfmgG`J+H$*^Gx$glIMf6*k;36OuX+_P%`nn z`)Q_o(?R~Tu?{2DV{D6KmPvPPBgyoA@fVRNIwah3g9x}fk*RD3rVq=gjDvjM5!WFf&Ch( zb%ms?4r><2ntl0v@FC;G;*M>s((h`)a97b*Nb%@k#%yK~hY|Xl_{$wf!7>sL6R9aw9XYWOj*jvz{{v zzubl}n(-*=qd>9^e=V~^d4USj-i7T-;NOMt=*`0 zY;!xLf!}&;l8_#DbU+=u_9`hs!rDz3Nu#^$m}l?&L&{qc7`X~6zH$6nD#Yw|`E1If z!LZT;9p|6`-aY~y7KkTMQEl1gwuq*2JOe~gcxd_xN?{iS!ZDT*4m8TSaArgp3J3Y>CBLfDz)u4BnX%2y5WnWzp4#O( zXNnHxbtnNz66M?lW`r*ysUj_ChE9Ice{y%olfNens_L2Top&jzcacRX+ZI873B~A3 z4b-|8s|0&XH!Dlb{vGhj=)e4KQ_dY@MjS=_mX^{^-&1jAP+J9Z7GOF%Mx8;`W+S$_ z5fUW$HhP=qP)V(Tn6!jQV5k@}$XX@ss*I{;y^vOsIIAL;yE&s`P>Pmq?vJyQh_!;b z;cz_^TZF)!v%08A&CgKb1G-Y$+p%H#WvS!hR*mz*KXeF(I?NS%Vn8CwET12h)k8ROz3~79UGC5iQKjm z)saJ)&@^xD^@I^o#ehb8@v!`gV`Bb7PpOEXXjsh(4`O_~d_0WAOr?+8jKfM#UqSPQ zX8%U+VM^*@FrmEa>lG;Hr(CA53ac?WPmF7qk3*tG=8px;4jU$tsTCDoin3 zN!SoA;N^qd!Tz>CDCZW_BY5bdW;DJetM26!e+5Hb4xYdO?u+xe_n8sBnV|Fd?K!=W zI(b)Uj|qj>B`O!&JI9?<$Ke^Fe5uF#nKeT@_{uWl;BBl^Qbdvp(YIaR7fi1(-#+lo zdxb|mF5wrFACTVd^4@^tGtI0<{^E=C;RTMK?VWF(Q{N(v>hX_O0mEB9SDYMyA%CI@ z@qD}ddBm`jJNAC}hm*ovCV6V%M>o_ZcDqqO6qtYDfbDI!`bpQx>`6UyN6fY#$^Y2- z+~Uj#9!&mysx!tCGseF>Ms%Zg7MOPem9Uh4b)oZaA_*TBluR`0O~5-+Bw=#UuCyy7 z7Dn>s@Tm8yQG&!4H{mU8c!6{B4ffgySNjlN2ul#$s09V)1;~b9ljhLlg$fE-1O*sCOR?W;5mM^Ya~vQx|estP0VpUET`0 zEIS%CCc?WOqHR9`q~Grhzwj5a4j!%2lK%UO1o699P;#YF?+W7Q{RZ9$!PDU%f~1f+ z$NuT&Jqxh9Nq&S~)I1rQ_D)v+f# zArzR4nD9KGa8pI$CbS3Bwn81fV&~!8;Ogcjq_&jN3$ho}*5(|CgR8VQ@+s2K(38EE(~lJ&EDU(|W5 z`6RjY!nMkz5g@W`r(;ma$1rnB*73_ZmdO#+ZZ^&2n8&`3Q6XBk%OjvH^6}k;d`Ze{ z_1~VJ#Qb#7OEEn{0RejdmosRK4R}ri)kdhHllH>*hnzz$2 zDCA*S1kWC*)&oZ=+#YV*=X_2mJwgzH8$Mcr!Fb!EjaLoa*>PQ zV{%=;K|+F@TMP#77pMHxugzyyu{95~R@x4?sXCttUuZxDnMmOs10&@iC%L1(6z2*}XP={G3%hFzt+)x=pP*|)w zr^!3L^eJ2O2+I^?-|T$uL0UvUf({Xm&onx^K$CxRUdsbgW52b51nK{=_1$4jC(r-q zd05~OPXX^lY)R&<#m->JsMnLWuk?EN(`h` zdnQad8-((=NuTz1&2T_ae~<$gx6FNPve{`_cENLpAzE}99syi5 z2*I{sEvIU*ML5esixI;3^=ig)1jzI{{EX(Wz_T15Ok?@pHy;7b>|pK#W-aGH0U6af zXKmm9c^~7$m5lcYU-Esp0{I}OL{PS1;Gr#oy;4Cb7wKX-w7GO}=L3!AY>*;?%a&N! zw6AG+3*Ho%8up4tFT*2X^cf=hh+7EY^I2Y*zGxr`fp=70t*ayerEDcABX7_SjR7G7 zqY zWv3XH)%91TEoXw75P-y5@A!-0ca9b%LrX!&&jUgPSeNL})-~KIfYrqWt={_>)30QF zj{tRnTj;JYD=q!upxDAhgfJ$aL&TWd2fi6d`QXF`m9LgC5h&B>;Xi-TbTX?7FgH`T zGCTq>LshC%?dkUaml)bPCoD5^^h~XH`0aHyxBpe5q&%o#o(02t$Y}vDa-JHjSZ-wk z`a@d`H+bgB+Q!|FN>)>5Yv}_0Rr?ryIToC;2Z?bbC<9c7l%aP0JCTF!OJ^a_v9rGo?kN$p_UJ@qd|ui;?AM{wKR|tfyp^ z)KAl!KZ8ETUoDYV?aRjyQ7awablF@JUsr|X3i`7zM+%%~A?rlZq!T*0{FfoDe zZ9I^V^|jbSKwdCFzz|^aci21`C;F@I3JJ6?oda{$20C*5!F|zPzhUx#qBY^x`d5hm zbBX_M8CKbREb0Gt&48lp`jkWTu8XPvmwMzz{f8LhDj-$<-(-NE)bd|F1M_3{XEZ-T zll4J}ziAjuOBM!4!0A{2+P&@n?y+*cf}z#Odmq|`G~RDGT%hoLcN@B0wLq45Yve|I z2$!?r5~h;;^8f*XcQge8+WZmK*E!cg{F^iQppz_3hzK}vhk4uC3}>j#bFIajFWTeu z$O{K(zGZj>5Oj6vp%PDDA(+Q>XW1W)`wPx&>E(tJCIU!b>|oWC5<_I6uwVH4jr^Yc zZ~uTYLH$Ep1aL`n4(zUvueXQeLGaF59aL^CVIsh)KFbiT>dsMK<1O*Vna=H^!IZyD zk`ZuO-p*!WH=j|AB9n+#q@YTH{GlxZDzE48g{iakh!0op&pZ-T4GucC2o5Mwb732l znc+2Va}JfMFhtsBLPUTv+wuCc>5CT}$yJ!#c~W>D9rd3s!y`a5Q^v=uK0a1Y*@jNq z6Hr=Q86H9S{d?5_%tL1(?xUsBCh~6swDVjOB_OXDARs_LL@6z9z6yum;Iz|sRmw>WVj&E3Oj%wJr9Yd9Q6@EvfXiig z1R%f*5rDFkN2p()xQA|Oc1oBCSPx`&mFz?}F%Pkum@U5f7|wpUf_wnVQZ zSqsv22a+%ZoI)zl=)GFPm)e|s8J@Wrdk{=*&ttO?@Nfv6dMY0czO*)ZfdHLpUsUE< z1X4-TLcKg=yNLn?tn#7DLmx^9PoFQd6;blsjWHTn25(sMJ?5MV%l z8b$;1OI4yrgQV>yL`Y23x27zCFs0?;k))?NVq zvz1)EM+D^c0|W%#(IBRs|`*cuLykZAf zIQ^5&Flyv*T^f{!oCW4EjC>?I2oPyTasS_^)`ER7-T*BB2WZV@cmxSn&(Ga!_3*e;1QFdN*%Jbox5YBn04;#rCjWO+vW$ zFBAU7_cHEGc$0;I%5;%U-;T=5$=$?V_PFQdj+s#ixGbB84oiMs#{&a)oc#R2g*oM( z#swJo*35MljPONI)tCoKn)Lc z96qLn82r$BNqf?p1NgiX4hX-_NrvrunC(OBa;T2;_j&5YIbXSA%y(d}p+~*)5eF!H z%W{&#qx4KQ)@#!41=?ZoXF7Pt#Mk|J22MWG6dgnOKE|DCZ?X`8nq^dsnzBd5Qy~WK z2ihS(tjqwl&8JV8ztrjL7ucg&O{G^nk9JMwPPdw68$O9TMJea4+xZ?Z6)I+TmH zX0KFff5#e*B4huDffW{yw_^Bd#JU?D~;9|&xs2MhXV}*O`0&!4ufmY_pr}icHeN$nKWqIXxHlj^SV!QpUw}Y z%_;XYEvI zqIYVQ#s*DQ1jyy~@R zsPRD-vE!G)e-2ayhH(J`BvnErf~wjs*srr+snry58z1+q*f~=RpK#76OQjvojJIM<1SJkL;BoudU+paxd?_0`ewJ0s^KLy*n250vd{`CyerN z;{pU&R`oWnMDDe^zp>91g6XYN!3jkKb+|$gKRaCsEX}#PjZHL0`Ela{1Z*W9*>LSR zT8Y6|H<+=#;Dj~8mn_>+7URaIB1ZX1;{pUwf(}k8K_|SF6Oeu7Pjov35$GdY!kHWI zGt9R+Cwif&(n6Dfzyl}V+Qjv6iMh&L+j+AyVJC@y#<+8xEDM390LCrx=iqP~)?haX zqWM&6EXzWGlvSa|mPc-SY9iACSPquaE24y35eT3-4KEn#Rq=4z2A9|tpyOC+(zNJy z2%_)b-}|b4EC6l5L3Us}^Mo}5wClhvPn|F2;pi1S;Z_7x9xRzDUsj|G#+`d)SqO*- z*SAi{lp9rIqe(NMgU1}e--ZDC2yhRqijh9TPc!bM$g&Vv3eSH6FEqH-eRy0SRvnSB zhlHO=L;&5D8u{^FE!a*c6Fpmevi1G6!K+kD?!U|4;dlQ)Nj;IgH;R{zSL|38n=eoE~? zuHnUHPxXNB{}d?v$;ci~`|q{_Qa%n`ZSN9DyO05%yKTKsxR>U4!%srNzjK8mX+` zG&;WGG&%t?tW)UTcgqMwgCaY?W}aXnfI>Cx;}=z7|Gzs8DOADV|5t&SW;AQ#e>6;5 zly(0m3VH%YP)Dx(i%&p$Q?2>i|LRJ?@dVL3Ra9QK*ElE7of;9--7smg+;Q+|{ytgO zJ{c%9amNsqZV!(R{rNISFz+iNmmwcn76!;C#}pyA zhvAbQJLs<7uLS8kG?Nf`M>mFPAVUJZ_1%I4@;|!!irM#cZ^R_vpl>f27a&lk4KzUz zN~JadE>G7{&DFa>ps_p%2KJT zEDHe!mELu&-(EVPdDV90Rhu8bD~jEJkm1KXK|xS|Q1mwMoYQugk_~PVgDM0i!mS7( z&xgv9JXdl{2t6{r6xofLr5s@o-(e;X0dy~Cvm<;@J!CSefO#3`&ap-SO-@mz4OYh@ z+86)mf2M?@+K#`9AZ77Ed0nPsyPfQSIrD@W0?^Ta>z8-!@!14eR}|1qe20~$5CK~4 z9nrUX;$u_>N&}97&#aYZ5&|&v@*<3(l7Z<#q5K5nPHR~f0&02ZfD?GNz(u^N2FzK% z(d`gK-%Hd6gU-OMTopKJQ?Je`KW|)s0E|~;n820XGPu@kUEvU&zD+X;1Nl2*1s9G( zI@X>?J{5ZBWmQezqyrHbzY;MYE?&rjO z!_uHWONVG6QWXRFdtzm6N0sMqz+AW#_g_J;xG3C;p~S*2S#Klm#6`r4YaON8!k&{3 zGoui2OLrbXcV2H|g2o)RMGSOZt4+5Gc)X)!w!6v# z4>1!DB0z6yry8$KMVk5dj*Zey(p|Ev2*41wM%Rh?ClDpQ(oLnegl}fxS1KU9(sO+Q zI#=D=yQgoV)@2IDTXA`R38L7~X_>TjbO#J@e)AHY-yoOmBlUtXpDWDAae1~e2rx&0 zkHyY2$R{R-F?P=fpPz1%k%S>YRSsuDrrQKk(2h?)lz{S`Mwg6r5RiHifTMvzrABmcq~)B99ZxuAs3IU8aOb@Om0;JmM!1jZ zpn6<0me$IyB7i8b8e=owz0zM*IHg6{6xte<80#Q>-KHTe0c9&Omfn$FML^lWAkb+_ zxzKRVpn1_95a426d_rmQuj~{%?qXOln`D7{>_lCJDP79@i_+mkuevC*!cb{JNM2R7 z^?BVra1cYsG52JF>)DCx5a3ui5giMI8Zg;dhy|o+DYR`uKx`$0{mB=);cuf-V;v07 zPQkPU$1$rvMyr1|2a81@(1-4Tf%X$oE0*?d(^~MV!On$BjivWwS21)hXIZN+zI^LH z30YbBg^&nP64tXHe@jO(+xEZc*j~|!Y#mxxp~OaA&=M|+-uRGKdL!&zWRD$Bmm>e3 z|4Yf4Us+iA3kdb11RB*p+(I&#Y>pWfgM+iNv`Kaq!?$`-G3Z6fqBkVcN+JTxmCni@P8*);DSymtVvW=` z4Kj?l#ySW|uM zJ{s)D)IwVdl34EEeL}$+6p|fWKj9D-HbkCuWX0z|y1o8)q^dM>Cm-O&J3U2-$&jhM z#Fz==5bTD3nT;$#`o4GW{xE(y_s4e^zfIP={_As0l@=>=2bVav{cL`>=|1CYW~B(= zAKEd^^fLWT&!ih0#b^j$AKS5`@R{?~!tc3?SYWBIwJm3F!Twi78^FQ;6{L4va1W~4 z7@H*8A|45^2|YY8d277dV`~dq;kh-6{{4d$i%}Gt9VAqBrWKm1-n( zMEC9@+Mv0q9Ux*VYm~?;3L4}X+z0OA4W&q-BVwU>cGDepgQAkG`Lg%brKu!kSAzq| zZiBS1Nzxa4Jn9h-K+BaKs`Pl_s3(heZm*REDzOt4VV*4NU*$Nai`e)`^qpho?eVGz zH=?j~@7H-7DAo&IZ8^X`hgA&$PZZg04L%pfYTiSD=OvW~r^-23#6QXkR>53Ho96bm zdORCjFf>qUizj=~Kjw9cY{Q@hcvU9_;LPvzV-Wt6?rl?URoxP5 zrd5^Zb=KQb(dQpCz+xBTA(-xx&9*Uh#t*vZbAcY_+r9#9!kV%PZcIDaW=x00%BIJ8 z1p6Md2sZF*lFA6MS{g>pltM?fF1ImQ17~tLza}@C5Efp;D5Jw?k%0X!xGapVtb+3nwVInyd(4^(64z|KWNOekVZj7ng z{JvmyZ%VCYW{+iNd)y$Ou#yM*flbf&G9)O!d)x9o%tUS57Nl{fOIr$Tn+jaE_|=-2 zBc?ImtgtC(>j>^kkISweheqbTjX#Su(niHM#MP$Vckm8=Wj!93WzbXYg=A7l*oF@< z@MctY*klM{uPRpUdhregPGK?=@??~z_=83ljddmy8m%p|oe(!nk1C?#&4;D>4T~qq3vn9{A33lQgwG$55xaDl+&uDL& z6Nu@6z>Mbm`wj9SGG6O)stwnmkwm-dp|77Y`f1xPzv+>j@p-S#uKyFpwJljAKr*Uw z%Ae{ui~5K8_=odP)PIztv z49a+pm7(j!KF8^_zo7Eqmv@-f9shUz|*&iM)ED2_E>c9z3-Ya$Jf=VDx@IAB|3oNxzZ@iaBE&WfgAA%3gev+&GoIl006_X$xEA`lM*CccP5_#$>e&6vTDWhQNKRpvzq&XftBRN$5|R#;K&&Z_FbsYR&(Wy=GFk-r`E|? zhbnImEXfk|Ei0~?CUJGz3EK_$)PA4eK}d@xuO_BOz>HFZaMxvf20sRcr~cNhH8YA}i8lh&NB{(QtTV00ofiGT%?14hL&`jCZ%~u*GdgCU%{5K_V+F znzB0$YwetmoN`vz$z>qSP3xvle6)NVaWg_?T;}<^{NguX1==)pAOioZo1v8=kY48vPr-RWavEFL zmO4*Is`-~JO5to~%+zw0WMC!!0p0UWG0e2$DKPA;$-fv@#Z9ObsXTCdi!noKP;QH@ zq*dF*3dlRFnFEsAT&qwcBGliH!Io**RcL%$UzfYtcm?=K1goQMg$i;``YJrvt0PAP zR$|--b$_P%k#*&x)2fsfA7pF5y>eL5SB@#&P;%~$_J6tW!-i=$++gKj9ekHVgDu8L zWr)T}q@%#m@QiQi**{zU%oYOl2qLlw{rFteR8Ndxl`Q{>ZvmifO>Ey z59@bsoSJcITzObQo_Ne5qQ`0l`lR0cAo@hx@F#3^FXqaRwCk1*>rNzI@GlBKI(R1f zrEJDNa?sV-5^TBgg~@H`_WKtX&l(4&ok3s3N54j23>Tf-L&ZjkBu8@+?}jU$koB&z z;Z^~o%@?zP(bV>fMO~+nXi8$(Hj~pl4)ujIpDk;Y$!5NubGV=g@p*4m$gdcm_3j&v z&#dEe&AZq|SkEs5PUClCobK(HMQmB6XY#yShVgpQ`xLv)a^L~@THY_3n0aLU)RQ9q z7J398xWV%=F& zG|fn2ZnGz+?LxJ@MYZ4-y(c>oKcf2wc=wVJWT~mBuqoW z*QIaVy%6OD3w%&iEN)6TS;v_RkxNzaH5fwvtZW^@&HBsOZ1KD3CJH(}Qkm)q;$Rpx zb|g0ciw5PZIDEJde8wzCBrNF5ynf65wMlMIWzq%cZ6D?}&S>|uOfY)L9~B(pa)9FX zni5zOz1x2(>N<+ev}sHI5(@hrMtUKCB$r>oI>*b!*N3hF0~u}S;UytWGW~POg>2xJ zQ*;&Z$~h<|c8MRhCee=-4wbl5LY3dG-?gq7W5;`}a9{^_YFbt1-WVBO@9sJ2^cmZY z*ap33qp?EX(HotPP06N9`$D;!BXmhNpN}T4DujCcqieBYn-sg`0Jf%3)vn1+J2tOy zU9!jIxA|;XwL6!Upe056qId6W2dq!=&aeF0Wopq` zcz1O1kfYAC>*k+>z_VP?y^M>>aC^09A2#%xWI#!c$A~FSOAiFE2^*f5-jdCU${b9e zcV5#oHWFDg(V0eQY_bj3FU1!3mDgc$hvfh*T6L57VVYIKv!;~(Q?{q3FP-&Ppn1@5 z;@2u?6ZhG-*WuaYZS!1gH%k^@jNM@jOKtTd+T@M#hKW}Xr(Z`E?ldFLpLyN4AjYE> z&76dRIwobpo#L3u^74_ZyuQ!4TexrwTQc3I*Aey4HlhMyoX&B(^yW7c_T;8{Vxq;f zu-@SA+4MYY?q(^n!u9zbHTxz@CJz@hWem=BF*r)%sT>NpJe59!B`MZ@ch;@(k!;BW z>3|)U+>lo1jI9a~P+T5b>8AY9ivpDw1#RP?%8e>F)I;AcvS7)wWFsM=YI{#Kic$9d z2UvFfg8|2(^bIit`UzII(%>Gw-^lEUEsSgCexmOr!c7hJg&@?6(0)NSay;~>y)BJT zWHq>%j%qFP(}$#238F$ptoXDnS+QVG-R65M{ZRfwbE@b&7tzEI+YC^Q>A%jib``dE zm$(b{cLf!q1wAv8wRlmVN%nnAI30LD^)?1>t`zB})FxIx8WfQ>N6d?@Wzt+&y>0r4 zdG-o_CT}AQ>k8V)=Mv$$HoboL0QrZNCEAzXK(YIf%&UsF z5MuxI)-MWefg0;_4qQ#oVQt97gk7kRQv?OpRyn$11+J{}WyO?Y+fxhrToDu)D|2UH z1ul9$w!PpGBsJJyMX$V^FX&gG>sO9`N_0{kJT#x6ws#!}?Uilz)BlWvBKK4|PSMy_ z>C0qks?7uTs={+CXMmEcq1jWEq^F-@N$i(l*;G!2EVpkQ+ZEH{gcCa9^j%)Q)T*=k zaW3SW%bTBH@E*+g4r`?z4*0-|de3@c(cC$=S9Jz5I2Cr+eJZPbPjtk|M=S0e_HlJ@ z3~=wPpk!B24nN#r6uBXG8n7XdcnihY4Rh}-qhyys$|guTkEOuP(R9bg)9#(uDB0H_ zWx=!UhS>>$K%*^ z0xpSw(@%SIa_+13=r}fywnqNP8dpn65z>-+5=yNqAyCO zzF2%fex!Odv*w3-=@YGV2OQ0sXJ^e*z0|)VNmopSl~TJ&WC@{twM3(%7tRJhr8J%- z#A-O;R2^^%j)KOkF?5*JH^c-gu*ca~TrQs_)jxh@ZI}V^TPWFq6rBnQ!z=?^P~K2N zH{9EPcl1VHxY0X3r-YFks^!Tp1<5Xo@j-YqV$E?hNwX+dSy3!3Ey<-I$wiSC^mr?= z<`|Y%wN0ePvhEsl=(MF|+fsBkv_silXt83l5?PCD#BatQ!gV0LO{sW#ITiRIhCfwj8bIgKHbypVU~gN#V;q?I2f1{8`C{vG`8VX zx8W3K3K}zG5@9k2S!P8OOtV?fTlDK&uBbO%Nr?%S*6pk>!UjB3@}a^mt=`kYpa@_8RLfWkznChebTSmr>#oE z5~qsNMr{k`V+#n8>Q_CB=;7zK4?UrD+C}@ci|%Ur{Eft#BZxhes%?*7P@0MYjZV5~ zpLEeJ3QRO6)&yfova4@K)a7mT(-DRoaEuY#DT(a1*Jt0DFS`V*HAIIoY9FoKKHlA+ za=HBP)HLudp2M@7!y|OcRs`wVV$)2S0qCt6G9Ke613d$iHtAwY_F@WiLz~S2;Zi%M zF!&{KGSfxHj`JO#_<{YFsnE<+=n!yiNI&~N6=syb&T|(h$PWoZh9ZV5uc4Utb9r`i zdB1n|uVCof?nhtP^M{wRu8G`tv621ApE$ywIOV;9HyJUz_TD~59B&x#KZ@1 zr^L>RHlh-cx|h+BA0^3uQOlz><$V>_hb}d>JP5+A zZgj*&`-sbGS6F#${jnDEIPwp^N-tI(agk}ex&G2}a%Zf@CY zVJ-z>Q0HKtzpgE&x0cDzaiaaZtob2!Ic>PN*$LmmP z^_0|!?utiZ^u2HNPijp*L8mR|mnHeR&(0Zn<4ejh!A8d|rq3tC22+CH@;$k-^iYmPGskC;stL%(f^ z5fZK1Ud3lF85b>)w>RAno|>j;mtZjI+J<1v;x23)z4UG*Gx4%-`OxNJ1vBTtn0#GI zWk7xUOQsW2VXtg+UeGw|`fmKnz4s28h5e@(w+o_bfta86bMyE3Vgufro*@6DxA?3? zGIuiMJoRhXP+I5Pyd%0PB-E!4>eP?L8z^HHOFrEKEw((~r6AsgcIkfuG>~T#{O;b# z%#E@Oxu(6Y#^h}{+LtJyqPeojsZL4sx8b57m&5Z!t~oX{*z zcs!0^UVz6q=}(R1%I8~U@HWcC9pI{5ab9S4UU>XGd~gVTfTHHg@m3il`1YqWMh zKhb4sIlN`dI{dX8%IN1gnNJ`27q@$Cp2YWZuXIuK)G2xD{&{Jsc6+yAJPydH8+X09 zBqIEsDDz`GamW&{WPw+*#J6lOz-M7=94Fm>{7AX{M*QZLlO<@6%P=LPIF|6mp{Xx$ z68YwKp=0LRkj_BEbeB$lO13}cmOpEm&>1_azE{e7ZXrVwB;co#C=3gEEV*jt&bUR;wLL3-$*3*|x_qA+1{dh(4anj#XG&3Nc)n>bgwzRZQUB z%B@ptN{0Wq{8Ac=|M?!o49s)U&U0ClM{zgH_=IT=RH;|rL~}}&S|04RD{DW6xm%E$mUl|b0FNLTC5js+c%GvjipqZJ=`w7B8yNF7YTiEJG z#V*>#E^CUR?JuV$S2MmMM0!44UgAa*YoOvZh2GF?hQeNS0As7Qt~?qZoqaN;f&kmW-j(-X?q~Z&xV#;2ris)572SM$RX4Nbk=6 z-2RC7rxXIo<;{b+K z=3m5{^M%BT0r)+MAJB@4|ief$pArzeux>H421HyxWC?|!h^I{j7VJA-sj z4lSPN5YO8aFPhtXeJ0v3kd`?scxgo+p@$YGhd^wl!jp6JO)=96-A2|@y~<~74KI$W z7w2a$19%Dr?E{iT+r+Qpi`yEuf9`Ngo?X1WZ+z{^k0D!I)FCvQ z7l+`*aY7}$m@2_a{OXkci!0-yC$dKUwH%MoOAC{^g=(eH{<=R@&^AX%Pb_Lx>)w2M zY~icT!$SX5UX`2J+D#neM*1+XHwkE8WPzA?sJ=X6|0cD`b)?eWV%gWYXf4}M;TJE3 z#ZdEiTn@Zl68$HTW46Fdr*G zi~S&Sl2#h-$~ir>LhPT;tD=gnsbWp-;mPKS?sxNKDqyRa@_@^SKo~dFKabY59rkf5 z^%l!gob{5O;mz}$;_EJEpWnnooeOJ)ua4-)Gr_(W3+`qD#`R(EA>>(^=LOOAljy>( z{mo#IvmPDG82bDel$^I3%--`L7Dfw~)Wn5H=`D;NIhlp!9Vj0vUbaIHVS=~lf7N4lxYKCHZ3HV00esx-Vgs@~FR)R>~G=_RYOZIss-KqV!EhR%8hsFK(LcBu`QWR0qkXX#W)+}Acz+|4hbhZZglsypkcL7udA)x-eX`SY9S zJrYhV%x4xaWqY!GjH)m(Kvf+tOqrXh^CLH{ZEl`5_HN%|zud)rbN1ndo(g-M;feY< z_uFyqr5e(f5>itM)CCsrD^eine$D9*p}XXQJEQN0I9Gc0zUTSu{n`R>7CT%XdEw2^ z-qP7xeIqF&2jw4rq4IoEtFWkaQgoA_SQ6<(gz$7=zzRk`PK@TlYVUtuzU8W|%dmfgQ9&y4o*y zHIVOIA@KzAn?tsU%~62fFCCKPox?UG-R_BZ7H7=mhO-Of3sWF?d@|1=nLe{@6$>J$ zu5u{k4n`)Rm!xh8?8Vmh&{cFiARFvE(ARJ#5ZsZJaMF%pl0d10n>*1_b z&Nmr$Vwl0JN!#072J@Wsa-A4k$P4$)HZsXW|1T`c1$OBbChG#ba8vA}`X0}HAeN`RM~zXmPpi|Pmk70!48h^l0s|4_5EtNkj4p2$j0V99F-!g_||K`f|m_V@mj za-%qv@$PAMS__k8l<%UG@1oz?JqAt@6*X(~p;+{yhfzhk11HIWvw-$?TnpZ_e0sq_ zI@=pA>%AEj>Gqr?dyXa}xIuF}Cw3QhLU}A0gz23&`6TOnaeVrs$4u1Yc;y{D80e{jcA<5< zP!f=uuFYB(C0JC-G|9$7ju|o%naK%E-ZR6Yo-jRdEo0A5L}_Sx$P`oxtt*9SddTj_ zN;A4p1wp~!&fYZ-V3a)#0!{ouK~ZmYUIoBSt-@TYVdXLdd&DmKZ#SGF~k;)F6jM3T3IJUQwt@UNQ9 zs64#H41dVL`>#s!Rt{k+%2M-l$TRH*MON4nv&2x|#*WPpEv(F8GH_Z?5FcoP9Qbf3#Q%lT@BnTBm@>z4%z>W2@(Fi<-2T|Fc4{%Gy^nlciC2!#uNWo~i?a(i>QhiX4^viW9v z{8R=jKDQ6N^++)nQSIHcG%LE+`cS%}xv;N=osMT-@}4}CrPP+U@em9PRu1t5m}S)L z$&-)_eO#m$d~+`Vi^(51E-*jUs(xoj%b4AiGWQSNkG0Se0fCeg`A7JWC(SoE4dtnL zfhOe+Nmum8yl0Lr!oxq<^1WQZ@h~?5l8GM)si(~sZ%6GV_B>ut`U~{i4n6N340wTj zf26JJy9;X#hRm6YOKL7qFObT2yD)dd(x7IGt?DeAgW9HuwHj+Uw3}rPH=)tGM=m$l zjmJ+zTw=YQcBVbVm)@6~EXy^4XVn+{xiTJHFrm8$m2I7+?T=(W+x5J+BM}jyX~E^O zd0K6QzE66th?+v8qzoP<@M_>4)2ChyK1`5p(KB~O>m6&hh8{;%50l1~qfbc6a$23W?t;_W(Dw&z@#!@07F8CD*x>zn#UBKBsK`Se{CaS}n~QLKt4u_{;M>XUi{M`Lw?)dY$8BY~}M`wjMIik2A}M8Xt}jZ~?Z` zli8>rD~CPqY3-bsmTpQ-f=K{!uAB~BGGv^u?5nx3{j$;T<;Nri$6)jGtS58sFO&3bzGPnJufeON3N5KH^}c+)=zAM!ichmUb!F0Kp{T80Tvh7mr% zznAClS|Ylx;tl6S{fCcsY@-UdQJ-w1222B!_dSWbf5p-gIQ_#66K0$-Q`v-xE6M`z zX^08Gu$=^K|hQ zZF=s}4gM@pzICe_Zg{6NTc()ycn2}BRtugB1Z{cYF5Rm78{Q|FEy{U@ig||fA?>xh zCR&S_8!kw+FG#qzgfC~{H5BmV`it%Xd7f){yVvlxuHo6Q;r%Zg|K#@S9*2fql-s)~ zCs5QnO7jeSy2cKw>JF-MgYgVJTIRXE|2JhMwDm8E&P#!8ejdX6kIf!Py{~BH;mS23J!f4T;vOeE)4JeX@ zwp@6#1QQ4T$&TtCQ!vzBmF+EE+PA_Pd2-`5Uf{{MKhb&%D8`Y{<0)#d@Ewku4ZFp`K(&D!ZM>Wt2tw>=Fu=8ZhrWM5WbOJSrKwYq!u>*Vyj9nl)?BDl~(W)Ih-GrET>brS?wBp+oGrgOJV%?;#mQrYTm4 zmX%Aw53(HyK}-QpWXXea9nO+j5Yi#y>NAIE31y7Qfp|X|gLg<8^+1q`sVx&5@HxFt zC}XElTJj*Dq`@PR8VDSDYl(#VCxxW&-NAnlKt2i6ZSxUsV){W$eEhtOw}x}JY5iT7)^IBs()sSPGTeL56Y?G}G&4u^Bz^8nTwvU?bD)7J{XrWuNaH%N}5!Hwz z(dI~KoxMi1cN)bhUrG(F@M_Kjxg$}NNK~WM?@T(|F)3KF4a>px1(p*va)}*rCW{`k z(28gCU_Zs^?{pXbHA!bJK4*o8}a;uc$MuU%XVmKYBy;khI(dNp)P6i1-)!lWuCbe{x|=$EWOP<>JYwfL z{_w~$e`Qo?EUywLw#11I5Aank4NTY1@r>o!$MXJ9TJ_lj=~zD?VhZXdT%7nN-${e# z)N%8t{nqR~Taonh6?UH5?|~z|QX;p{^*dx<7-v>UeR{58E?cYa$j!NIP?v}wTORpG z@ha8CmTFLCy=N2z6K-X=z8f2}V|8wqwST4@`oNBR&!#>-vZP1h15!#|=9i^QX4N>R zQHu@Bt0e{1k{L9HKfJ&amUBQb1WMvTefHif?3TD9!e<)b9Sxfd zQmdGhP9{?cWa{*`(OLRwQ}UG6Av_uCY?|&&rTOseeRwvP-XLF$kH7Es0j6gAR;7wc z!$dEKi5hZZM_t(BHas?DY##Vi9#sj$OVJ9oB4pp#XMGiFt0gI2 z!Gwb$otER6lR5f3~Mp?(~!*;r

D=OXWs6_>hWF1tBX=N=s~g^rjAY*%kA9199(GCZ@S_U-sPh>SuAX3&yDGb7 z>qlnGCy#sHI~6)3{jNm%r3dS-c}LjQ8x^{v0>p7DqqS!E>Serci=RDKk+FkRC_9P=Y0D=!kyk0icF7`V_E{=049=P@4Boqnwa(iLy=XSPmX zyisLMt<#5LbUifhDt*}Y($Yi2!lUCv$K-7N?kSN5YE(?0n`(qmX|H+quX&~w zBTG8RRNP-RJV5MKM`;X*4$8CdgtT{=2X0N}(|+=|-8CJJ!0OJdK8vkw%|Ez}?e441 z(wo~nuSslssa3baee>C@H@(gZj{K(~l?rXKibbh96}rUVpW_1VM=L26nPd}^ornkP zJ-`Mt$E(jffn%-435J*5Zg^bqm(I>*-C-rnpE#(&SzzFz|9Bsf_4?L%G|3R({kpHH z_)j()UTW4iY6`JWlCQHT<;DyPU_%}=JZ7s+bS%{Uqf5WMHpD(kzD^C&?g+H**ZiPg zcx^D!LF7qnd=U<_Ni3J0+E}DZ{JVmI6c?5TL0ZCk?qAb+UuKaZY7QhN>!uB$H8E`f zXpI9}OFd{_@|?Re@8xW3wWy0nVS-}y&a`wd{)KHlXSf+x=uU8w9t*O`j!{HDHQEkf z&q0ik?uh8R8G7-$ERa}vSQPu7WwMmG+Z_T-FS1}tPUA%$bWup!I$zPvBona?2lQ%H z(^#-v0dpqZU9#ep)tL;kdmejX!NCUbvVc8e&ijxCOKdIRq>44Hvw8xeB0{k&iS0u7TG2>-(5D4ijm#P7lRwZW zuV;jy^XVxQ51BJ@&?!Gf2K&{(ix43f@>N-hG+9-p==){p`vZmGybDGa$_@r*#9!G> zntcR&*taP*7?TM4g$09fF>g*>kNyYuQ1pKYc3CJ2qJwqCX20qYha?VY66;wDya}*n zs67Kgus6hTd9PffIHTW_4Fv7dB$#M#Ula?kMrn+o?pb;eecNbNSrVPViN-IE|55 zKSiQ4SKgMf&Rdt<&K{)s$aC%i3&|Uvg9i%S(X416?X$gjklkI^AH^sy4YA)V`mXq| zCz7C#+O^nIVtoF{GOw_mpV~tN_3}dhz4C)5>;-g^a+cRX906jQ$&;coh#xlDI&aP( zLadC^kje~EtTB7WIj&-pB=!0el_$;y#ml_FTeRBw&Oo8N(AfY&Y}l)Z5r=Eu7uBIrmx9t`@3~Csd=*c-{u*MB7NiCx7`ul!G{md*F`eUbq7|M~CnqF%Y&M z(XrHD&L+ag19~8nPQJ3c1+U3UWoU z)`;X4O*wn(J)B$+#qeay*kSh^p8#(%JGH~5x`0RdPAArdjfVV}(`BmspdWjI2rG?m{v&H_AxhxnEw}g__$JdTT_`CHsCCzapfvUKAUH z>Mf|ij=2?-CRl$%6u02=$`JcQqVF8kyWYmPh?LT?##zFB_;CiCy@2Qlt?t1MIk{C| ztAeWs^p1VokvOvJcyo}Wez_pTo&kADAH(3a0$8!tSAAqZUWsCryq8(LAWnzy5FLVL z==l6IRG5EV7LM%YImPY-51>`8ON?!)n!!a5??FdT+K_iu7usb-Cf&%l<{lf0t+W)i0`WvY<{ZQ`RCnI@bjPM2;Rd%PWrNI3%69t zf)%;~o$3u{_QSMyKrY%%ck{*eYR2Q@$3W}>6nW!di8`VQm|fsTdR*@$?Yd6c@{L+}YET*c!zG4Kvr2Tkd_fU}aY+ z?(W|TdGzW z1cLYIAx&aM-;n1V!O~vGe-bNw;Fx5)^7I|Y>D6_a1MMgKUKqOSQ!1cX#U;zX(mRoS zK)x9{u&cZ3>!P&U?Sm)nG9mHeg3JEAl_cQm#1Gnll65578Cq@M5|*t>O(vu0s!ka0W>(`mC~r@W6*(zmsqE zwMTGifo#rGt2BJ8wI4xgiZyu)Vb>%PD&*Dvb?}d+xeiK$2yYGT;^_s`1w2wzGej^q(QAQk0JAo&m&%%??=A2Xw5DOtzUSWd{ zDo@dHbe2&FUldZw5y!eJo+?s6o!kA#tNo8Yx* z9N(Q*BG1_aJ+5;-Z__(c&?^3yTxIfuS2znS$jVD?derFVr}PLvQ{m=B7oIKI2GZrC zAA?9&+;5L4`eS+lJph9 zxLQ){2d1uV1#8MeEmo)<(&8V+>@8d9seYDG@Zoj z8(j*q-vAV=yOWK22=CHQ^$44PfVCVf!8)YM`R=N=21m=H+S;C#$&B62zpUBe@W{b} zD7^AgY7~PxrCUy&@byR!$SisYh?0!)TPE#mFNIt@%Dx8nHvRGc%hSUf-oU9^l})8{ zhh5I(TyDt^GRl-x!xi3cTDtL8rvopJ*M2?m~(;Q(S(^g8DH zVda36PuAw5v@>p6Mn@QAR)z~otIe;!{{QHD6L6^4FL3-;SBlVL>2jsrmXt!5s1#)x z+sqKcZIMitl%WU}Qe>$tp~*hWXDlTmOKw`+Xk%t7V~bX!p<*b)|Gb~kz4!b3{r=D6 z>3RB`dAIYP_q^vlE0QnVP2LL5yTk3KLKMmq^-moof22SwxG>i9fXUyXVAt4}ItTr2 zD~Ps0LJIEjhNZa?lE~88N`{6nYubrIE;I~M=xW55S%baB9+n`=!h)qRH2wb1Agyb6 z3_uCmidSSvvue(>HOD8f(6#V`C?nCFM@ud-O%Ll+d#CBGS(6TBk+LvaCd{*p`RG?b zd7AmXy8HL)4#YyT51~96Ml(-`fIidRn>wUrMoXF4)Ln3ugxV~cY$TnO{N-l0C+lvJ z04h{@HrGY$3E2|B6|90}M%O8f>qxx%d}~B36c9#BuVYgv!5S!AG>h@p^=@Y2Wk+h1 z_ye9k?bpTaJh_v=F#`#)VzPInDe z2(M$~k1)_q29u4cWF)OT7_~CI8}bPofQ+*}ms0_;P8CEaB;t6Hajoj1`baNwxC@kp zbRrv*Q5&ILw7gOo;wC8-GT(;gE}dXt{D;}~GS7CN8uleu)R1|$WSlYdfp5K|q7ym9 zj4uF|(bI`h7#OTpr}mpahV|yn!a>#GC4B$iM&IksZiqzOMC^(B;2%iOtOK~P0kSbL zAmcZ9ZrQ^= z1od<}ODK#IN@EEniOs^#C$Jvyzgl|&3iN0e@z)nopo*&h`N73boltBR9tiV40I0d8I?C%VqHgV}z7PBtziL!Bd;+_keFqEjg@IeUv-)9xhX zItgDn2?PH?iF$6vpjxz3=h@XbD|v&_dNI{Ec*n;%c)LkPiECJ?`JU28FUU1+&O(y2 zaJRF5boIi;=n_OlMQgEfZM7yIt5 zsEOg(#_$qjcuPi!peHqT+r1lM<1cURtldIzU?A?R*uM|F2F;G)7FH;cs?07y%u$6+ zQ)a8Gu#K0M2H<{whugnye>KMc3W~}5HB_E0m6u56(Vk~EoaLZ^`sIXl2&nJ+xhVqM zLj-wm0TfP}%VO1Jmfh^s!Gg80;59&`FLrbv5bh=cq%T+>%)IT6Law6_iayUh@jw?j zFA}0Q$~Y5)nKcSLTLoUC0xzP+d~`zpt*)x9C?PqM4g)>!JVjxgqBNeOBn>eK-yqo9 zVSp`xc9}IouC0)pDC90lcR>1-T?Ccfjo}Z7F?3&p3UFbtZQ~}kk+$z59M3X7NDMKf zXqC`EEe?ri(c)OD@vO7SnGNceKpo%+K!*NeAnBOx4Q}EM@HOo}j@$HGqz1v39_$E7 zz=T{&;VVmFpadcdPPBF{2Zyb8tjXFXOxY#8vP(ajEC28c(we#Ubh`Jn8Bs#|nKS`Y zwV!#`KK;`^5J3;;DRgxzT$9NUHoU;syue?7f&b=HAE>q%V5Dc@Fu%Ou%JY2IdH#*_ zlsPOP_4{7xzIg-D+_xp4ePt_Z{@~jF!A<-Frg%8xKT}MzuW>UIlFWp=&4hs;P_j)< z^eQe5{3F0mUIPHHvNA#foiFXbfJ*fXcpwIiRX8&p)l4^8rM*g z@);<3HH1M&DgHS08Gm$M;Il69!RrK~bU*3oK)2sy)c-mvPoHZJ8r6rLar11x1ywb~Ik)2r1lTmU#h# zxD<1qOG_@hvqW(y@Yx^ti~GP8Iz*dA(_*P2S7_&*xC0p!a!s`qH$UrW9OGzw)-mkr zHkA7RK+hS-j$CiWn#3QqP85a{rO^pogC*X9wI496^R09@rmdZ2E%aYoL0n6f%q0An zsDHDHdj{9dH1R#QSB>4)se6)p$M&)gJ-G4;pLGTKx~&C=1_$|a{riE+U0tV``hH$v(Q8bJ4-<0mMlKy8qtx*trWfq^6h1yfWK#1B)9|(`EFXtMu z@igN`6+|QCj!0Sx0(0V%k{ED8*+EGKafUIATM5aS@y zm2E<)P9TtQiM=Sx#ZgJcW*yJ@-E5+<1TkbQ7J8%#>4@@B5T>BigR-Fh6g>?Td)~%8 z@Off4v?W$>;g2?7t~V^gyJkMBc%xB4)PUt^T>Z4zO1Rhx90@TCR5i@6AeaJ9Pl_?e zaE+EGcABYpzR8wqn8epi0_@1!Ldg_{z+dND#CX$vdew$-uD zpp_&-&K{r>%mQs75%;jb+gbg6~92YB+1rVHv zU3%FbPvysGl-z!N%T(_7wcT&(xDI0{yoR5ywhu5o9ZH;u)Tq-x5<73z zzK^Jp;btjAzkWT(8)pj=WPn}Wy3-h@Ipj5^`@Qjw*`a3DL3!~)f#(NY$Qg((7nyW5 zA2#hRVH?9jI;8{z1#t7b)%y_mI;g7K_}a_{r-|PNpIyoObi#WBvl4Kj8HIdSrkAVp zcTSh*Z`|)Ko)Zh|&$Z1H2oKr^G{Nqq#SDqhfwUfT)OogOawzskd42!XE2TMJw`X0` zgL!)OoDy@kGxG!!soR8VUTNuL2fWm4rw4IWM6OzhwZtC?xBb?ie{1!fgk#>?%zu!s zm^l3d+cMLgC&h6yCC4iPL9+ls+Izmd+FEx5{ZBOMlap5Sa&@rJt<$0Z;wesyC&1dM z-7JxQ`{9w7&!$qUKIMcQV;a5#f{wqp4YGhiM6cxB!g2N3F=fAVy5XH|zYB!#VVSu| z6CP!XYr>@$T8-Mtim0BAoYRvKd(w7vx(hyK(?`V19BygEhE{g7zYHy?wCwudE|$P= z-`j^YL=?ZB8vpf<@5H$KYA@}YkDb2@2!8T-`B*Hza)CFEMUz?)?UkZ=khP&`02L;37RzfaApLE^*ml z|2Qkz`LMuK`lb*jncc-T)!$ld=Cs=Yw~KmB5Y8>i92{m%UfXIA8Cvt5ll7GW+P#k# zlaV5xILjsh+;>?u65K2)Ci;Ft{CyEB7!X`kvw)km9DQ%tX@Wa%(3h+eMbpc|I>o%| z^uDPJ-y<8Xnako-xhlrY_xiTPiP6(~rFnN)nZ>aCG9tP%>^``)-#8n(Uj|tpkcWB& zM4M)1qNC@qh_|r!8PzurJo!<+I*{Eigc5&)&0Q0kW(?LxSEnB<{~kBKAZSLgq)?)o z7zWlsb!q4ENo6z0H&n*%EH3CGSt18^Emqq6{2AKFQwkY0*qwfbU0f>!x%LjJVbZ8k zMOg>DVr$%N>cn!3Y{(jV*KQkRwU7Zr$AG_~i0+SOeLPjQhGiH`d~$dWN*Vg0#?7vd zbq$!TqQ~LJP(gx-Gz7zgqrP;PAG3=KMlnrka1olHy~dZB`Erw2CuC4u#cS7Lb&(v= z1gvnc3b1|zK-R@;0^tZLK)^y2BW;Sr%%X31lSe0p!g+3cl%G5#1sKvpi8ioW)>-3CWz|_2=#UXjl!9cHB|!e! zJsv2u!H;r=^;>3BBGr%7VrHTKScb&f4qF^_cA@WRbZZLlNCR2bMzqUM_Ski4h z5qfP)_Fx*9mOrSSO8FaMX>Tb*>f=2yo-1 zHMDa;t6?E;-~d4+S`b9C79Mbh65x~S*5Hmjp81Xv*1U=o)we&HjrBKkj-=!tFW_bB zLV*SgLx@bnLbycTqy`V3$c|nNweLWe-*;5UOTDTc#3m$1I3AZ4YnEA2g#)fl{sD$( zLW#cui505obbfPb5KjCx644=~J<0C!pB$$D05)#D;^=2&v~oKmoTzFyRxz#X{M<+A z0S29RBn$=1+!{9gGRJz$vp)xW=SH`E>JuKc3uw9~j(h6pzG5N{?O0{_?MOZ&Di3^y zZ8Fm5)7JzJ&`-B;XqyNLFSXa{|5Ho?1yQIX24+D1i!_(8s`A^Bct%tlG$XX!^n|i~ z#PSCrW*Jy6>+KRX|Ib18pTTumb4-f0>Zy$Wy5oowNE22Wem@e%hziA9t(Jt@XI1|N ztix*HYtMUI$#-!3WC;$%1%LmmqYnBP?#)0sT zN8zR&t$jJ@N+b5DzQ;9mtQmBRLt3|6V%`2wCH(;>KJMD+KJbywOSl6QC~s-hMzBq) zq)lSjOtc_{fZ;E324ly)46C682+6Q>h7b1I0&yLmrrIPTFQ9Xn_ul2kZ>x+somG7~ zRp<^Ku2r%=mysAq95;Mo7HwZ7(hDoxr_-`d^<}*0HLl8d@Z|Vke z!&zI&7(h*XUTLDMna!GcG(NbTO_&ZBR(z-}^g7_ixaUWcrO*=3aOz$M;oMT%m66{u z41wGsl~f}p)kx}T2vLuG3;1|H_m14&!_Q&Jp3WD2IWPJ&Huc<~Qs%C=fq%OpJaxPy z-HEZ7(e|S6h#Mmc`gwh!@r5Q_g?zYNL364B!qsI#@qRQcLhUHbIlFTwi`g7w~jR9^eJ(J^F_h9Sgo#eMDAJS zC+X<24oy4sgR+l(x@q%?OZGFO_A%aQ2fJ=5nOrFMa7o*%z9aZI;72X#P$KGu;zL`> z2evyWBHo5-PWw{EX)9jN|4L`BvLs#KQ~gXxF?BJ!LRyqUg4W3zu1~7r}*^S zM7V}a$d9{CiN_78MjBK&hzj8q+=crN?G(cDifN_BfUdfVge?o%4b^}%9tFOt93AqRS z)5g&kVqL&Jp@Pu7Gka)N$pdc={T?Ap)(T>2(#(^hX8=t!YprD8&o1(93##(sZ1chq z!h)W&*IXS;ct7sk#+^dafQo@Cin7s(UosCl^QV~)O=$aqoC14}7t8@U;VC@EP~_%l zV1(PzA3Xiy$fpG{#bEBQp+{At_?wn{d)F+Ry*ZeGT*)GI@5gJ)wlVvT<1^xL7&{Rl?#=vfpkR=-ji*Pbein$RzM(PO$ zpFxy|1>!wt+e%6R{j&20p>&bVnyUlIMe!PRS5Nbp*z}m+EWoa<<*&oW9Fh@WDpx z+?VQ0hA^hj{$GOZzXbjHga1m zL245_Nhdo9-oAVvq3YJ5<`Di@xO9%(WJHxQX5C~!*moMvnhuAl5nn-Q`Dne|jmU`~ zgC~LiO{-vMiq7)Ian;&6*krNpn%?1}F&2E_W5@ z$YMFNMLCI8fe4{BP?-o0G;ga@a0|HCY+J@Xy^OoS+ZIPCWVNUU!1Ed%?lv9nX&s0; zaa5EI_05ItK0t+Rs6+m;RC`(KpR&~ZH#iU^5)=0aJ`yC*{7~z*LzT2cb@vX{z`& zLybQY?q{Mj-D{58B5@do|U5HT8-Oc1dAC?63@pP2uUIRGWp0ov5z9 zj2-AH)<;4&dRh*~OdN0|uRnP}g>}!bK$cRFcz!6n_hh4m;4cdh=7?JoNIqIByHx#` zQtg*gZ8`=PRT|HBl$`Ad0)!SgsvH3`NtA%OzxPO^krukCND|W(@o*&D>=7<(Dcg-$g>7<@UyQd!yrhv8r1}Y*cf&aD;Am| zDQPTgzUPkbYx5(9U)F~_nd1Vn>aY+A$Hw~^iKj`{%-mBOz)`AbFeAd`naTZd^EO+- z5o1=A5$ny}!bGSVb8gGa8z3&5y$Dg~H8YcZ*HWu)bGO~*etEq+vZ47SE;}I-0nfLe z6{H%Y!c?KI5!^Z*{VKT!$VeqsqhhBjZ>K6}8+?HQA^+raUy#^-N4Tf=FNCP*M-4r97Fank?3|#4k2!CfIq%Es z;G{6Il@-#?0-Zpr`Rjt5>w@D)?qvC5nX=z>oaV7*=dcq?uM4K?OcM>iCrv!tP9BJ0 zRKsuTw^Vh@@m~xLxX>vj{%PZj8dd^n=j5KPt$c3Zjfc-3JXk`Nr83;v+-2@(C%hd zdNTIWYW)5~c%vZC;@htnDlRm67ijefQbWu^=>yn;9IO$$6c%2c%Ck&`iPrghm|c*- z-HNNqj3Twzy5rxjMShA@&HVas45|{GY}sw7yNnRCi~$#lR!PxQC_Z42+9BW+7ujM( zPnG+JNw&WoI7Wh)ZbE%*>muRbyNw){u4@%v4J=qAArRuMQ80ezy9 z2HtlIJ&v%Hs+&x2l%W@OzyWf`KWX!660xCobN%OhNmpA9IKmH=ZO9OI`73twwXJRs z4?o1y$BNeH?@D!ar7B+Slkg7BjqhK?L9cxj_FY)x!n1VYxg04>KN2POxf17uSkXzq zY^|`TXI7|Q#olGtXId~c4OaqPUUfVVn2<{g^OiY8~O0u^B%c!$JP*5OP zQ^k|^r`lk)HW-qbw>eV((=2SdPd9O&B5!SQ5uR?=ChZ^m|85pnQ`hVNb2NqyOwQMl z3ck#imOPihnwOs!iXU>)m$0G10_=yc*FW=&8?Wn)C_PStVMoH}xTS(@FEeOBR@Wzc zKalaf7bAAJfd>KZla!BL&ckl@CK^5>-B^lDxb0_{f*dt;l#N!s|^zbu_5gq z>btZ@0e4ArRV0x=IFor3e}ZrzE=;4~yxD?`d{wG?H8G?5JZus~=-y5Yl=RSV?+w&% z`m)6181^(9!`8|_^(9lQ$&hf3*LLJy<>w|G3!3p5HpIXLz*fjmB?HaT``+9nGDMZx zfyak<%DnFfyx1707_)`G&Ptp5)A6HImV+7PVn#RrZ8#$!leO;;#9Y%P&ePi>Bx`pM zw$TMaS=i-F>}F4BKvkE_vfx=_jK(h{Y=Ejf{`OQyd#XXlK;T+rK9>vW7=S`Od+n(Q zqcDyPW-A3la!j5UicjlOrqR6|!Qf?WueNQ;J|57ttxOQqj9qTR zh8o%;VwAXIp>euTgA$|8DnUUN^m*H}szbN-V`3oB693CcVA~p&7-^Om>Ha>blo+y| zSwBCpmbi!NxQBZ14aNa*9Q&#C=(vIh8DE6ow*M2R{v&45WP|kJVrQB>{?}F|2zrBE z?!|7ti5u*(K+TrV`6TIiEYWik6S)Gn>0#@H9*%OsTMyw(uW7!jH*fWt3u`SkTr0U+r zn|pbEXUXa@Wba1R?!dGy2DrxL#}>#MW($X|1%bu=I=yx zbfO0D`C?N07k+@7&&YB<1;+Xu{D-C!SKN7XZt(bmCHS!$8pN;^=SF%(W6do#BzBRiwVtaxnD^55NWN!@3ObmpQV`_aHUE;;t!xxpL#OEMmmB5up$ z4~9Z|A&J2>l6oqHUo_`6ZWkNO0Tq+cq<)^-m*anDz_cn0j93NmsCr@Xci((iSV2+! z+%JQzp38W8rdItQRy2DX6c}|T3ks4!pXaQyEPXrfJKp=D=2>YXHmC)a1``DZi3m7u zsVE`^-1Y9P{GXKjOu6xqp%a~vz8%$Bj?CP zy{(V!%qrNLlra{^@ZCVLfB`D4iUpMQcnVJNOJ0&GfRZSO7{`$|e0-%+7_@}Y63FHq za!Bwr^Qe+>Dj5B<8a_P5QXTR8sU@#Q7B7zqIWH~wrMNVF@GLXi-YdxOe z52gK9-zZv1xc!7{`2;D-S9j^)5WR{84P3hoNlP zGk${{Yvf|k!~HAGm<#3Rz;4<#AdaX3|J!&-3R$gUN0YZh#^->`xHAN}0$qn~KTFIfRUnOMPQw{HEXDi%6YC!KFD$B$GT zbi#9)c!NM$ZM74k2eRM)tX9ht=y$w(FT^icDVG+IfR#<`upc3 z6_0R@T4ag~Psi!9=}fGpX{pMARZ2hJ+;Uc4V-em`akrY*b+k>M5!1x$@_BRS2jjb18=+$0bW=x;EwcsA*3uNZ z$t>-S;iJxWgtigE&tYGb2OM3mgp*vRl+V`z_KC6{UZYH@sk{f+kI!E-nT5EP{@wj6 zvj@Lo&r{q5{!~$}0Jshq50*h$ZwNG8w0XXq_+sXtV+}ypT6l{0jAmP}8Ut z*@N#<(+~auqTDXjbbLhd=2FD4z^J|W`^izK7&@3rwzK78V80LZb+h8Pp(z)vKK}6W z&>~lwaPrv0<&d1`wu)=GMmZdl7n2gC3TgZ}O2}oLh%iH5qIy4jXy=DiW=i6j!`(io zWPDIB7x0^Gj~SMa*&jmeW}@}B>)dJZm1!`f1QLS_bmkSKyGX+=>=60Y*xceo$IOYW z5w&rtT%8am5p|%0ZJdFEAl*JQ|Ax-_-fANOmm)uDN8jqGvqe;YOM~+(TD;%go6EDa zpHp;&)z8MuuK6Ak1&SA$BU%m_M8oxX;4uQ39=q?aI1pYulJwF#1G#vYjoBZ7VOR;* zla52BA5mYAB)I^Y_hk{A7yYr4K_J{uvbRc4RbZ$WsPunh_%;~t_~yZe=jM82Cvfp1uH50GzQUNBN< zxhfQi`ooG1ccLov@3^r|EWo_OvAK|_r&#L6n6qI;xD5_#mznsBfrAv zJd|q@AmII=iCHM)Zuxmy=dfJnC)EIBW*f5$bbc+OiknbKedgyf(jpX%NRw%lB> z1Hg)Cwi~!K-$M$et9OTjRrxZ3RoNdFREm zNL0q_6~G{-Avc+FUSO(?Q`U&fw32fI)!TVx02qZ_X3DKXfV>ZzQMK2&%%zmGd1dV# zPjXFDw!;uo_1h?O0;y8Sb$5peG|>Yqt{k%Bp4X!h1O2o>s?%^VTr*_6=RJ6Py*X&F zhP=Jx%@s(;=25+*v{Ad5=FM4K!#jQzY@ZAARvz;d3KLb7X#OFae!?Jftm-=__A7Y& zm^)0!!-nWcrF~ajJLEey9LQnF6@trOT;5k?cXO2&5A&(-%|SagWWkj;=Mj-INMrZ= zkgCTwA8{H9*GyA3!@T3-7|5~4;ripjBN^Vu7)e>i;Tj>;vmCh*O7UYn@uA#f96m7E z-qO!bfBC)OlREsQqoZ&8Z7{=>tghzI6}88{`JKXeX7Y%PGV5_-kHRF~O)j3tam%g> z9_x_1-DDeN7&2x*5G0wxt|MW4elz>AH>QFk3GI%bX8R5d2OeX{A$xAM)_)paFe@qB z-uZ-Pnqu5JqYuktPaISVJRx+F`Gdv`8Jg3tX(v}jkO;aH4-n*tC!UItqXmSCMpGGX9G;>Ie%9d~q@bGNqMF{s? zHAZGn6ntqMKIUNYTi)NI$B=ACnkk2zMyvU{+3`bnks=r-Gc{~yoh4jomzxc-og;Q? z0`MCPs_@*V^kEayenWxoDOPq`q}qmM*XlRktm!PyHYIHVoJ!S`l+iuQu0QWqHP$5z zS(N0F+14^})=o_dx{&8N$VU{)*D$8f&W)NUoY+i6ggr`Dh&9PmqnO6>skDCof#KYa zJ~)N5%zIv1-UtSl5bhkvQd8|_6wV9+ijt4W*ofXX4vTg?fm6r?Q(o+H)RT#ZRJ~PP z0*7XwcMSlAHQ}7tF|a1?5c)V$E5s*9W!a7iE}@X=%Li(w%M}uU+O?paMVuFEXQiQ4 z^Q;r=+fD|A=Y6&=K*ej~u%#Fr(l;G4nWpj^5g*9a_#ve^Vgsj|f*;ZGLOBuSqKj+L zO-4l+HQ_`pf)iB@cz&I%v`7{fHKq7}wy@VZ7wHTB1ab4h5KAq721UxSY4-1HN- zh+|c>)>xxLSdY+io`TXBq=Ab+<24!Gyt!Q?yu+ezdqOMBZRGIV-hxfYeF_ev9UR8+ z)<)rFQ!eDG)1=gIUHeq@pN4I#i*-v0P(o#E$_!hF5rwCRLw2mOp5t(K(~gP34<#By zp0RmXy(Xc=3aR$7%+ivb3(&HqvLAe_&yI`>P2G8}NoQzF&dtZDP)uC_qvi2__WYOm=irhukFm3!>VCGu;kMVLWKi1o4|e+; zzUUdAQk3viu85XbFkLedxg}}GyR`3W&t2YUZ#i%Npt<9h-cWf|Cy@EsrSJdI_4B;f z*7<44c?~-Yrv^Vx18ar ziOmaB-QGuT_0EW#T&bv_du-OZeuo{1>o*tJ?|fleN=ny{@z|q{}fEa=}Y+UZ)%r# zd2Ww8|4mz#49}U`EcQxt`uk_o_OHp;4xU}1k;+H55oP!gY z_h&}>kqmW}0x0v7u|10W3oumkJy+$?fd-PP1*&jaHZiNZ`FE{?*+3QAy}f(zn|XRR zzx1Km%wGz#sqkE`(8vH4v+-5x!=|5?LBd<{$;6Mi)7na||lqRmML=e|GNP8`@6 zI{>Q$x3{~a<~mSB^#IDtT6z2B?=aUxSgS$zv0OnM30=?hk+;lsqSW81Hmkz&VZv9p z2XG*H4NM+`#TONL`<$UFz-M4EE+rPhz?mMb^zsP9qQ=6fP;oQ zcI-&i{B{kfjAcQ01+ny5-P4aiLd5cCqdS<@T2N{MB-VI5N9)#6BiO0)gqE$0#~-(y zYj#ZeO+R`g4~$(g15^tj+N``7+YE>0z%_`5xDo99&+q5`m*+LfpWMQQ@aUz)6-c1; z@E!(w(&T>(TTXJ%h(ltvyx*|0|L_6tVY!d~K_4%m80c)~H`B!2wFHNQ-1)7fs+P;N zma(sB8gmKy{Ew@bYpv~l0GqUtcPPK|NWQu;LP-90Z$Jolve+(A0pBGUM5p89qo+VK zogbh7rhjTnhu}{$+Ow7E!X%L0b_{AB7N*jjiZ5Wdb zGBi410rA>G=f5Ac*&r<~vAo3%=9Aj8C8wq(R}Y1a-&qJ{=;ruP+CMffl9-bGF`gf( zUH?YVsFd(T8@yjKWNAQ-5?(9dP6p1=C zR^Y`T)%#P=Ui~I~@nl8k*Yi*RD%fRNYk2y^l)6zycj6oWk^w=#`wEqqlXskIMjiR@KfYAIy+(PUL<2i;_ocZB zgkN2P+Mv{$oxGM(yQ41Uo$f@^RkwHdO`#_BaeV(B^hK`k>Z@zdp?-N%r1YeJQk5^+H+dw9xeey3C9PaAIalxs zwJs>Kl#ZBm`@Eg0<+N*RRIkxqK^VeJ9#dx?t4AGRhw7h2j)!lYvMZSyQ!glMn2=rN z2*ZCXY`yvl!q74%B5L=4o;p=uW|}#s!rr|Ca67I_DFEEAO^NYbQ>e^Zft>%zqhX|# z6JsmW&Br@M7QF7=ng|;>DF`BxumaEQw`GUwYqVIGVm#LsYN1A!W!Sih*5!!sOU-!` z{_H%#Ms4*GC?Ib5s2X;pekZjR-;r)V7gAG$Zl)uRyTB2M1T{(#HyRkr@11U>`zRD| zlsetWJ&N?GLHDX-A!@YTg*UMz)vDgq(rX)wJL4=i9!DVY$U?k2BMZwl-OL zKKgdz$2@ALInQzDE{JZ6f7iO@&#KqCdjyc&ZiFfx$ zz(GoSk}l!7<_bO)2_hnZlkPvZ8%-0y=%7TTs=}PnXp$53x(~IzRvI6v@_xGQWZmm6 z-0UL3nIt_rj_SMZ>dbri4g-lqhSAJYcW|OT2M(pIS5? zX5&nz2_5dD^P})2*i9`J`&`2!t)oIBrK4nC%MuA2z&g3*P{;|#z-S!n7?d}H{@U^* z@cuGCmDpmWo=PIiQ!s}m=suukec}1OdbB6OAJdIMt{!B(hhy9)SmrEOg~^UEJ>h5! z#LcehPuFt(CPNma8<|yy-X&A7@0>tHLy;^)Dr=E=Tj~$OL5*$fdF5crR*yH_o#B89de(G#kq?=M1?1fYYemwdH z^a=%A?xo}C$=FUGht7xJimTBF<j*zG47$#Zheq zx+?ixgCV-A7QDrx&}0NZClky%8skYWtOm{jId{nEVe*@R-GqQ6#5?N;3!H3$%a_c) zt^68M+(Sem+Q8)lu{}LXWLBVHP9NnATi~Ch$H3QC*}j8i)X;>8UqLuRg^~P|tbT&5 zSa33kg{^2L$vxzdFnMEqq?*n`n+JiOw!U_UoXgu^N|#_YCIT9ux+br4fI{!B!nrj( z$hz-xCbLBmL0^<_P`;MOJmOfOKjP@GfgO@?UXOas?ZLtg?N&G!yPEjz6_q=nKd#BP zt0OaDui^O=(A~y)MGma2Tz8VMf&K*7mdcKw0v-adugbx%KA*6vcDGlieq7UvzsBb{ z56Ats6m8S{QF-jn!SQd;R+MhJMVTm%5pgU;MCo1RjqN6ZPuXWh#L+M*P(mpuRgB+#Y{Z$3-LiLkW#-2 zj7`ZA46YwnWnxc7*U$2qXJI_8@SZp73xOkJP~-Mj z=oA7~DRytKh+ar7%)_irigFFGT-U8}Rw3W;rpy_67Ft*}=bkbpUm24q(CFwZIjg0p z@WNgvcgGVFiCP$|&$ZAeN$+y#n?1DyW)fe$jZ2He{D-Hfq1m+d$okF45F~Uf_i`Mz z_Fu?AzY7a@0s2Nn)W&rw1t!+N**DjK0uwu5W@mqS1G>32 zw$E{xSh0vq$i1~LhOZF=t>QeCW+Bl;U>F$ju0~W}`EqLXU}MryS|IzOz1!mLe)8KZ zfUm#lSg_A(?>yeZCbGISFMP>+dzE*94EL7ieW!pMxVyg=EO+LeUozW4MZy8T_w1C)|40cddpy+R<&7H81kQqj zff;$&F_Sg<23mN7+XGF^eNKCSXAz{~TC}qW)IyE^~5h=qqzS zu6YG$xCVoMMLP$IIeH$ZZQ`3}K*@ul^G5%e3CJ?|NC##3P+V01N{ea&e#eXlR zj)9@;F?=Szn_X}4{zYe)h6-fW4|^pm93*)&9Z6$}BD@=zPjH5M<+oJt`*b*?F!&*pKgx_~ehU zfUx(xAMs|Y#t4bl8V)83WcT-bN6Q^XxiDUJ%@!n}AY~??ta-EVH3P~u=&G#7ZQfIK zzvRt6r_5ps^yI=A38BC>@;(hHMj;|CXU@$#h>!BZC;tT+rKaY=>&Hl>70h-B!68q5 z@}K@MWQKzs4teO4{}4e!_pX=^r&wc1*kXNUEc5+T&H1%=;>j{sZ>>AR*Em9%;UmSk zy@H$E;Nw4w(ZsbPkSkB@HuNJIR-Dq)=e(OZ4`;%w=>;K%HCXNQC#G!Zx3{C*p@TcK zRX*{UlA!`o>J2?DneIx#s-NB~^T{uRL0LgzIB658dORYLcVfvwf{GVGXDOlWi;j~w zB2l7JMztdmj*kIBMIVQVbPkFkQ8o!&5;Z4w8^>ZB@K<7RM0_WH9Jniq8}!NUANM{f zcX$Hhr*wAjJC2Tn0Tn8O=#yz5_coO~G@+T*IjNq5`zPf@V|>+uac!@$c^6+%cqu;8 zM0$cFT`{@r2;JC>pmnv+zzaK2w~}4Wy_e#Xp8``~6MDl4;j75JOz{zxC|c*m*YE zf9g`$NC*ftdW4mXOn0Uk?@=NP^G<_|i2XZXbS?=zL?&e1`ahxIE?l3^mMg@nJMJa> zGz%_l#NC6Q93?*1WrmoGfnZh2`Pn4n}(TzHv2(ue5@P_{0) z?30nw<&B7li!9)Qhz*Qh_vSOb;ovuy99wUR*mkpEC41`9s%|($vkM1L#MNi0_?loWB>$b8x5Xc8mrjK+!Js}UEB_9>~(REvrlK@H@ z0y(#c%%)ysIhrj=6 zB!cC4?5^r!{a=j=IX}?rQYeMdWiWcNtG?e}UbzF0JF_YEa9Z3SnZUqX703h?62Yy4 z!f(KQ@-f&UZR5uel%Gtu6Nd0eJasqy!~BLKpZp?3eLulE(q(j^^9#}ob+-xtm-ytD z{4cl~z%Tz#@X05kNLDM$N#u6bCUP+sj^gymbMFZX0l$qa`W4YZsV^_O{&z|zTkuvT zKU@6=Gd)3Yc@fs&IJ{+8x}t)@D~};_ETF33E@#rtnXrvDXN(-jo%Ln*kQrgS_5Dct za7mg|S0b|4X0E9C-$okFBXcQ+7{GCk*Os+vgEyu@jEz@B$utMulG;<^?bdzAOd`vr%Ey`u+WNw{Ck-` zj7-#W%t;F|BMdgPen0&N*1KnL@8fdfV>l@absHZ}%nPi2zW$)#+A>81d-?DeKqdLz;kxb3<<4&Oe<4bZ|9=qYe;`xkHX=fvhhN6XbuT^(*dIurOK|Bk zwNy0uWi;A-bVgW(7aw>519$o!Anic#YPcg16dTfKaTPH{fR_5gN&{yk)-1QZw7J8`^ z^pa)(E4NBn7R?;Fcph`I3ERD1NCKcd&pxHI??Z-JV;pN$3NtMZD;d7Nm(SV@Oa}8- z2DJdFz~9Mmx<+i$u+hmEqXR07W|l$;^ha z{sYSX7bN*`QSX`=Ds)w4`b5oM z<=3mwFQS`Xg-%mO>;5Q^MrZ>&U)tIs%DwV`M;nwl2iH85LbpyoQL&dlJ^K`X zwjxKg+LsdeYCUv?BwZmd)JLwrkR~WZjI=CXovWtx`v?2~8+1z=Q6#(8gU|Bdvqh~- zURWFRtPvNbD(z(M|FtMRn3*1orH}k)DCeMVG*l}YhT0-(eU7Bv=~*}j^*mVAyKY8* zp{k&8g5jZD4MO5|)H!g3IR9FN*y^VKX%IY5#GrRl{e{=&@08lDTLC#~iMk1U$g}7s z^R5I-T|vCwSay2*u%;5Zx*_7gC5K4UiZn}-lii#MMI zcO2xzz4I1$9J2T^yp_20w6%`+V7W;aIf%bB)h=JK6a3Y`N*;9Gz|8t zsUe{6rneC*itI#+!mTq;DkR2=0!!f$^TNIMbW;57R9_4hspl;`@Gt* zGh`&kI>WhXy@&ZQ(8Z-uJ9Y`_=fqDsqn7`C*ZVmy^rFk2o)=j0MXQj?(ZTRsHPL|= zxWtKIjBZ==9$xxsXV2>tcti*+;jo|h&twss2YZZZtCvSY=EynI+Ws7-7va!JyuheMmHB!dWt6V=O}FtEVpg{HVuu zZo+OT7vDXJ&?;L@8$ZT}^P?I@s3_gpBT%xj5-jj=gCws|^I7@O)lO)7%SOAD65Az42m^&BscC#fUrocWs0_*yCu zr6cR9ZTbm)GXEaQhe5*Wg@ec(_hEpYvGI}HP)O6mhd2AVGlQ@JiwaF_Qi82g(D3bR za75|_Sk*_fN_{5lLu_e-sslVzAGz@Y+E{@iqz5)?PI&2Z-HtNXhf+w#+BaXg92|Gq zb!$fGXH&FVd%Evc(v`8q%d_d2SL>2AOXE~acz5)~q)F@vv`wM9M@F_bKBnZsHHmISh4=;Gx<`Q>QvQP*`l`0IB7K&$g3Zyw;TfTo8x*@xo} zEKJ!!`OYf}OfDn`$0eiXe>sRCyNJ4e!-ml2S0A}W1+;~D8_Lf%-Oy${-{ezLupr45 zas}7mn+kTWNKS%BLej`OQ@*AtdJyVXA_Dbk@(ubj`>N-c7H^v`F>K1o^4KpewqG3J zU32{Iy9d&17pql7r$8!pDl1mhVk^P{kMKhev3rC|WYzw?5#_`P;9iOzK_|ZCNx$Ez zgOcyDt6$!mJj9q}g1}q*2}fs9>;V%nBDLN7#fR|=pmR;_=dZmnO7oIk!F&bAhl*H< zR$B?UwOo$(iARV(paUZe>^)OXJOixYMMJ!Z{suhMK3xnJpg&j0D3Z1Q)e6{=id{~D^`3h#4(BcJGdFjXW^RxK z4dxt|wE1NvNlANNko_)s?7cjkx4O@q;3$2_C1}h0hSjW91@Kaf8=sJ37buY}b+Jnx zYC-0>I0Rvxv;ztd-4Sf5E4bvrg>#c;UU^{cr%SLo)#AZ2hV%6L%)NdNHf_c07<7KM zx{gT*b;#n*bXDw3y?vb^HdXdU)HfLQnNwTi1qF)s-m*wKgmnMZ%SF9s>Kjb^%)?vb z;lM+*!NbQf;cyCFODToJQrd+|WGh`P zrCR;mEM+7Nt=awgr6lChch#zEaO^WLY>l@n9GKgCYBmU0n(US{0rg5hsCQgOuoqUP z*PTKgiih)DSz%{3b)d=TLi;MKPo-NWy)H zt*lemaH!9`r8PdUP|-dXUrfp4Q<2f^$XSyPQ!-8;!mjAlX}E! zqP)ehHzxDaJ^nw+z62iX?fw6@P*GG!DecJ;$`V&AHOVs88Cyo_QcMeJP()=(QQGXX z4Kv0Nu2LBxi!v8sEP<`+B`+L3quh+S+S9gx*obx&7bI#{^p7-;9 zj;uzRvNLtu;aBI-$ufe)G*#0C1VMdNJ!95mcI%h>;R2WivOhw7st*YWpX;OEFzhpP zwXt43-$n?HU0HWO-X%t}OnEzX+~r7(ht3J09g&1y*UmCN7@;l1jgnx>%fT1LQURTM zwBox6V0Z%G8O_K97g9!yzq_8dA29`(>u1%!2|>4m6ir&-hbhP-a{UH4s-YtU4kE+80k zqe4JCxHA=fXlk{%gK|aX%mHEA*~6Cafjsx~Pavm5?fq~=TeGe90ElD<&ekbY_6V?k z3>z^WZA1|S69o_q^>L3xC{tdHsEM?Q(ke;q**aik^M^PJwkZoi!LT2d?csbXH^=Io zK?ww^{odUt&Qx)tI&vTXR&maF8X77`;T;v>N7BFcRHub|(gpOW1iWSNWH1W#g=a-; z>w7VGt}{8}mytKhxx`kc!$ub&FQdbP(@wDttE+_4K?Frzk05fRl9=+kL|BQxMJsXj zMMWlaa6|iG>qj$|)SZT`M5O zf|5_xZ|r``C~P{ST2PFgFT6~E*)^t>UuaWkci*8 zs5!`$N1TmFy0heK2{zgZyHYoXbe0tR}~9_PJ}ksb;};r_t;!IRj?Yo6*tS_`9b zmwr-{j~wwfe6Kf0I&TSW*Y2}*4$7NlSx|T=!1^;X2lo3KpCpIZjOyvU>NjvcAsbd8 z1whJzFj*tsS@*u{2`N}tEL+${B#`?Kk9PBK>}BMsX1b@PDR_hbf z>A{iNHl*T10pT^=s7UPeo+kfyCOVX4g+O_y|4>QoJ^Ot9?R}4_Jv|bc+42NSgr(>| zy23)%r&PW{2>?EYfdRS2Uc(0o>>vcj$Ea<3nVtKw+oPhuFA^?(EGP^MKwzGYY&5*_2f~+;z&29{ zjG@DIvXDLIMJkhyAH#pe_n!dC28W!Y{KsJjrxbGgQcBDHQo#KGyaC!bNE6v(; z(6vqD@#8!3{;*yG@JO4hn2;`knp#s`^9@4`)DTu8a;dBg39z0By~i}Y+Ibjx?q;D# zQ90yopCF`*W0_ku9U@plWYIjTp4dj1f>1rbpr{APckjfLq&I_gcqu}R7bOAHMgNqt z5-a=I+WHu~lHzQ}61OT?c`U&C4*)KCQFVZ`8N2?$pJ~J!0KZQ!y!%H3tcTINUp`F< zTb9!{7ekwg5#PB{U(h?`oml!K=b3fF1^^`a*nk>Y?Z~RWTi8tTJb*?Ac zx{GX@y>Ke&1N;&zZ;oE;4D;vz&NAgXL@Z?6-!)K4#@oiQvMwU?A9@rx5rAwLezVOW;KK~c|V$F?0 zPIYF-k6EQ6858C%u!J60(?P3*lg8HXXw+*FFhgW^K|gfSM+nKRak-s}4zPOJiNu2K zhPIA!$3Lj*fH`o*Okltp?T1l+ZF z*~_yd>w?1m{JH%0Bv<`8TK zdNPc}{2>W$FY6l{<`@zK{do+=ub5G*$WIka4rGP~peg+c;Y7JnD%?(4b+Kjk^4EU@xY(YBstzy&$Ch8ia^PEFx3y!e` zEIW9Fkp_W<=8%a`bVEMvM}899^c8CtJcF)c4D=T>R_$*1l=h=GsTQjJh{n%!6?y+r z-9Y=%hO18yjc23mTxi7#9MKHKzzjV3YEaMmSw#!yHqF?%)Abo_T(XO?0zY3c8Rz9f zo>#&MgcYq5fU5EYldmvCi(onOy*Z_MIX@wsEk7SJOO3q*N4FR%dj7~w63>S?rO}z8 z8_Wb3bE6#Z{FX=UTQi+>6D-2Twg(RV;UqrFy)0_`0dj2}0KgIq5xafcM^}EoH zpvm^TXf16Ol_)BT@*Y-RQTL3NLZ$-r$)j2E;OORWB*$3|PkFQVdPTMsZrIbHiYZ8E z!rRYIJoOD}E+qIJcd83@S%P%rG-b~vI~onThi5hor5fQmqYEZSF+(F^V%VwX5FmyO zr<>6_`S2f{G^57`xr|ktdMC}b8;%VWo`aq;kh!EIQK}7g2is{B1cKk4B}wE-fg}6P z#@#l{G~;0Tzlttbmy z6=G_3^o8kPt4cud5nGDQ-UHx^6czPHmp4FR66}y-DRr*(zQpK4cLSCPUa9B`K4EaR zDo$_=7uGd%<7ZlmJT26q*Y-*90s|53UsB}=Mz#~%qv*uUY}8V8t)p4h!8FU21uCM` z38-F{bvifF?0)O2Y(yyN$GYte{CmHRqxt4YCNWTEf#5zG=v1sUP^@S0CvxcznF9X(Jpnd)XWE8op z0>QD&t&SF?M9V*I7RN~rd4M)gKGM0l_J7_WOcQsVO5^~C0g*UD`5+r zJ$GG4f>awg`6H8*Ynwx7WRu`;AFonuQ4~Qrid;i5Re{#Qd@X}CXj1cNU0TFwopdDK z|ISosr!^tEJKA$8id+~OjdFn3RD^G^ZvJIZz6PN+tEJa4Lk-|PqqlZOr%und74>%z z2Xl;!aEPe_F$EK!A=e zAU%Ia%-|Z%fc3ZkmV#rfM}n)aj;_7^H-p*6Co@&iT9j}w1f;?>M6nuU5|#Up0@AYw zJ}!w;$dS*fYN))Cl%ro*l?1Of*s;H;9r>Spv7QKVg-9rwxnysW6cxTmB@k)$F%X}w zWrZ)cgU~N0`A?zYdr8-_*HOTh=`GxAz}kzjqZV;@Qle?`ulcNj0 z3|L<9mQd-+KTK765sZZ3n!h80xQ0P!!+Z-ZRF{P{_y8PzCna2ok|v@afSskP@?jLHVnq0I4Sf+%l}}N%$VDdJO!vu) zs6lRY_5tpUe~6Q65G&5eZr|rr%!lrc5mV% z>OZs-bGRl5jI{1ySfh|r>kkcJD7!GahHnow3>Vm1Kha8ySqYB_T)rSr+RiH8pn?&} zk{}oVed<@nMYK=ot!9}>?-WIwMb;fTA*eSIAh1`kXBGtC4=NJsUV;?F+##uI#zl+> zjY=tstf*8C6vc(%Q)_-`m zN{Xxs!uls2g5Z^en}XaN&wCtT}IT#=kT`V?R^{d>9jP(^*qhyJgQqaLw;EKp-2$H@VdqZ)$;^d2<%Y~T&yv4IUX6dBiMZu z?Sy*0i8|`8ceC>k8SL|d_eCAvm+6A3o3bt%0TMxPohw=%^9QXnndQvy!_BV_Uo+gL zyUCz>svv7BG@TR9Y#pG>XlKQpW7>ha^`LsPAPdln7?rux$;)lfj!P_>VdL7i#z-N7 zt+aJ_!orl8gk9xgD*bWF=tDS$b9J?5b;0jBJ^LclmM@BC6s|!S9FqxN zp}c4db~FG=bgz?0y-DKS(WooZDW1)HmhFJ9R?VIg) zk%GKO+P>nSLgiF}EyfPKxU;nhh$*NBRzNNmdi)4w~u( z6l)n&*S2QiLYrnS+`b)sM49)uY-mx|FG#cPIlJ5ZK!@WmjT=x1qewTEeCjf+kfSC9(h2b#;AuE) zhshhFP(^UN>lx&r0$Wo}^8%p4MN>1}&HxEVJ^EpxK9D6)p;(eGIbaG_?s))w*wyRy zMq5yEv6m$mwYJk`l3~74yyE`8LIZ;wT>eemDqLfbgA2tUJ=YnF4p>{@B;|5mRijr3 zzeVo^WaO6umW;I1Cw_11)EAi-8&N^PPJ5=z3)GWGrG0y*cHUVFHY(sw=8n)Vu+UKJ z)Pc;4{iuL1`B&0b@kWE{@q#Q=5YX@yF+mV0^X>Yp?%oxP&_KimS*W1uUR15Jr#>WY zc-D{UY_?qe9J{T{$*6!Ix&$*1$X8oFRt&CB8eZNYimD9Go+-$hDWIiTe_r5mn5uZt<4b6+d>WJVkIK1xHFQ7G&WUK?`*`R`uwBRSQ z?QlXA&BqlPG#gwvLoEFf8M7i6T*aW-;KC6{9g(@x$i{!E$(YbO@ zE9`>r(PMek%d`{4^(MFos0`Ct!JlRKFrYVxN1azhH9n(cPbOd+8Hz^d_4v@Zczt?;b0 zmt<{Ce+bS{CZB*5)@Mm%(Bi943bJsaowE7dfM0dCLJqYA5-mcA*F^4-eeQ!ie;hLZVfZAVq2v8%#ZBez5ATiKkWeN$E;$wEl<#VlKkkwj1Q&0+gqmDzEIF6~M6OSKM14H#>tLESNgL zxY&;hmv2(@9S<>oz7OIe?T{X;5}L)T{Wzi83(7jB4DhFC)xm-+RC2^dc5uE&;Re9L zm#BnB7|GKDBx#oGXt&ttf=M1h1 zDhT$wkH5(P`}MVWcYC!%H78;b*8~^A|H0S-!`TKGjt!zhIn>0#+#{GQ8$1FjF}P^h zv4{RKMRp6{EZ@Z&cwVkgXg0WT=t#=GhK{7fko)Cyl0_scP8;X%KN zfLWHycF+T;(HB^8KGGAiFOElr`!C8?^*@3vTxe%(-%C`mBF~@>Wf1!+;m?#9RN%1r zov|ftmVMC_m06GTKkZ>V7(hSht=TXASN6r7sK9!Sk+Ryw?DWW502$sFr|h!~p#u_w1a5q7Zl;iXadnho(ozy~>ZX z>IRg@_Wz)4br*&Q*h*qy5*B73XII?m@CUTAp<1Dhh)7gqf#d>=gOLZ79yWBp+@Q-_ z{Yb6YzxYG|@T`)l2zT+$U1OA|nwK$x2r=eAwetEOoGnqK);GA6Y2+0m5ik$hOr`g* z^f3R6F&BrxkFrsojE=+F@3;sVaN{)k2Y5OO1bLVobIer{^MGx8R0DN_L+l%O{Hz~4p~Zw#p9KXR^U-opw)(4K;jsRP)W z8o zFwkZTnJW?07f^s*Nn@~~ypXAZf6o^EKG9km@HK&}jF72>e@_$rJ`LH9Fv071$pPp! zY^8|YTOznDX#O=TFGSFTA?ai9mIzk9bNCs$CkGT-)u225*a4*c6%5J^1!13$?i_9( zZb)PmqWkR-VtC6P2p*Y*$J>I>*zzhSvS*Sz)0$m}dzeGWT|o24&`KnAA!4op4GW(a z@T_$&ho%;176!EiPg^7khwMmg=B-0!Y*!Z!3P4w1!mFw!ot&+w3ota{d6T+0<|>WB zhGpF3|3%#r5HBN}-p@a(QiOzxrXn#Sg_~>u$I&lzuSuJchXumJp&twA=ZWN8WE&9@ zz0SH+@fvi7TZpvJlsxLI9;pf0dSdV=#Me6hVG1_-5B9wxB{~73w_3WLsmCX(r<*^Z z9mY?bSmbN#+E%(Bti^wb-7EJ8*#0l>mVoFEBefOu4k0FHa+@1Fo5}vV_I^?`f96U7!V_iOn=KQimg6Pshe-K|3?AS2*J$G!RU;{CUWOcU2{T6(RE zTH7OK%hZEtBVaO_`-dfw^tt4um2l+kj81sI{gI!)~(>SIOXMb&P-rzCC3} zy=dP7ZC+tj4EUGwwyW5x=O$^Djno25iz;GiVWyG=u(SeffkkFBt85$cqO0d#1pXE~ zcXWU;1WkM7kFVoweJWhizW>ooWJQgPeymbqX?sf@Kf;Dg>2kf>!~FjwZ(W~~Sc}8^ zrY1Ja!lcB64*+E3j$0D!Gh#yK;R;Y}l8w+q*ZTtWDI$IK4PMBDutGDYUM!xdV8H+L zSG?@L=Eg?hl3+yC^)UY@drP1=vO2%OhB&zg7%Zs*;yQRc9Q{(FOmIL9fT;i(o)?xw zaP^uMNzJ36U;=mrL5rs>ZSP-Z=2q5C<@QJ=Gxc=A$>;vuS7VDOGRz^#M^I;&R1;X7*Ve>FJ< z3nIZGiY{4ruQW-wtU6CXME*iYzl11VJVUeGh~3*AZ5`8Y=2Ez8I+B|I1snDZ@pWTC zyb;9n1w;xG|CS`g$w3Si1;KzDQXar_KJ8&5c9`0wuITA9l2=fm-503(bqaoxxM&rJ z6$SZr#O^{W%oT!LE&So-zYT~ek<1-<(7x5bm>K|K`pKAbz>1y-ehoi>DF?Rmb+B4H zI;~@s<;Yevp2l8~N#@9{4a7%$xzrTZp2R5!0cAWs;=E9--b{6 ziwW8#c@nv%cqmMr8{vd2i&x=%0NX zLcvbVex)b2`(P|}JsBdl*5OgMR@&K$8%j}ypTGhcu) zOf9o*msTKF4!hROMyzS5>GSifKdfO#;{Io(#;{O7+CZuxzZJdD>Hm z$2kM6rv+350&=WKPJcFuh+ZEtEejF^xb|CB!$4#yq2rLF8A)}YKrr8<>Jx%ZBBs|U zol9D0wDRH4%5kGKu%L3x*jf$dytFQysDvk-@_pL8KgUD=9trD3{INu!7ey$*TKy-V zt7poXSlK8!3ps>O2xLaaf2xfpKuj+c2?eI5C8B!uhmAG%&#%0#TRl@IFr|U@0b}qT zZ45EJ0t7No%@(jRG+3&Eo&R3~1e=8Q*-n~4Rp?*fl(wfmuaRk!mWw{fieFFC3}OrG zm*=5>p-_$M6r8x=y|6x_jbT~r(jSKZ1xjrzCu#|A)p%(CzlimXiG9ShEg%uO^jnpo z1BY_xbC|yQtpLFUVZEqw|If;%Lugfig=&_T769R*V84h)sci3{DGbxMxfPJJEG!r5 z-mw){22~vsY#IkU*8b2(F_-~yb5O}4jg4aG=-Z)ov&ZK(Lw+wp^pJM{qWZL86T(qM zq%P@QNaD%Mz~YCH>v$u zWNx;TZV(*Cn-GZ>SW@qSc;o=Q+?j~mQv)=q1?YQsNBCBsb zaMYyHDUSGC=nxzM3hw}YD~L71(i)?ViBb^!d`3K}0EaAr7nUWE*+N`^TqB~BPtx7lA2tJWZNeilKd~{Tg{hE0g^o5$OERV9a7Tprxtg3El>iM^ zkscvZQG#X=;sba}6qF#`c(vHv!R=+FWRzls(r;A?+f~-Z2Tj~QiPilnUOiM!&lE00 zngNtf;%hnlQZsjCwtU}G;AfUrxUJvnIu`N%Rpe^VluU*+0gDLZ&^{OunFS&a{Z@Zt zk^T5dV-6qaUq%W#(=%Ka(spFpXWIv{>s|AEGMw@JHTk^loOM4IU?ODAY?0o^kS;a_ zYi8Y{GDQ1Pw!KDHH4nOOI>DB2C6GB`xPqj)*o-@R{pHm(dGi?P2<4$TGr!klK^ySMlB(1+kS{z*WXa53mv?bJ zX*pVSf9Lr(--h@iLKtMBfTogrGFIcJ-i7R|pY#F&b|?xmGs3+-q81ac;_5=LI~SUd z@w=Wa3u2jxmSRVIPo)MLF2GZ{S(Xk^V~T3JMT-O|lL??qCjDW=`iLZ8$S_@Qwjw@V zJ%wGv!2eT{_mINsq<9;}J$)PnQLIC}sKEer$E{KMCGG+&kbg zl;%7vwA|_*K9KSzOBx~BkLIE9h#2?Y(nE$1`>(fbNcu4sp+##2n-14Ud_jDuPrIgm zFo8t@Ywl&Y*KFk=6{~)mbl&*3`-moQ6t^raukY=Wc%hvP!z%%5t@~~0n0s~h@G5JV zYC!$o1Rt&5Dlj`=AHSHeW{-AiZCT zW>Qe@=X$-<@#V6bK`Jgk>0=(1*IOiqHvPEA7B_EMxuf6aRuAJClBbVwz=kO+DTW_@ zTwZP70*a+gbq@nnQeFmr7&Yxz3tqRi96QQ88p{7Z-_CqHJE0tDvvve|50^a9NZ1O1 z1|0$oSku>hI|^HyuaBseqwq~1D9twadKeHqcU6_M_Uq1j2)#+kWlQxHy7$}E^)TWD zFIwAhNE$nWv<@2E3m+9tKJ)}$lw5k0w&qiWEDa`i{*_Z=Md^f35hGn-1|iIMFN)|| z>ORGoUPa`_CowgV9ZvD(tp2)_3!Dh@@LdY|3ezh=H%Mhqzs*yiH(kO!LkP^$1zWJg z^?47YNMHtzArE_+=ZBgigm3^9adF-0BBWzybAX?xkjxFIk*FvihplsnTqW8NF+b$=UyEgSOI07@@u|IH{ z^#K0h+V+M!OWc6YlmJb8_1l1l&QK9I9Y?4x8=l)Wye4P{%Fox4T+Y)A%7H+n!}l?r zZiRN!_C@V`INOK6C-jjJi1PDKIwSM%-+YEJ6f{K~h=q#pXKD&zili}#%Ex{3`?fXS zkdvU7*is1Hw)8N{VX4$^t_%$tLv5z`6npib7?o|2>;^U!xG_dCn_s$LdEdjR zMaN|vIxYp&$NPsLUV=!#46fePlyX^vAQc+C0v7I~SD_hi^yhvGr4Z`2(!bxPi#NV~W_~>xyRHPaKT?hO4SN?1AMOdKQ$O`g3(eLP16M2g z^iC9zw)vz2$5u19>UNhJv=OI`-KEWJ&Pj6CF)+Yx_= z4LQ>;KSnvz*t1wpE$k4rV*WS5+$M?!6mkEiV_?7L?dJ<=yXsQB1XU`KwCR_;2~ z!}tMTCDqb@YQ#~ppUc03HGj03jYD8f?{rEB8@m$_S|fFH!#LjR8vY&XAHr!9Sejx8 z6A>lYn+>VRMiT6Gq?PkFVAu2~Q4%u|ZzUTjF!3S^Of~=)v*bQljwRR=a^n%|MX#TR z2@)gh9nfEX^f11`AeBpR)qMJuz4N%bS76qOY!e`OJpYxwlNKT1#@Az?b-!Jv_A>D0 zu*B$g5Y79r`isEqJqq%J{60R2B_sn$y3cH337>e*8tjxyyKZD>BMSkdaXqUf&rzon5Cu!aR~0 z0TB1uMnNiJFn1Ca-oFMyHdITsnJL1Et@Rs#)p$i>4J*!yo(~{PE>P0q5haaYzf82` zA}U}+fP-OB4y2M)0gl_M^$2qs%d&SmyUm3>(X}H%`bHkIp1?PLUvBy5?!)-db#U}q{@*6SaQU^(U+EFX(Ak!_*&mzjI@eTcnshgSN2CH zV$WPV4I|EysiCyw!x$79|E)Q@EY5GQ%b-l3EZ*^w$gg(7ulM{@IDb= z2kyYpULyMrKnu}vpcAfnT+|TUz_uR|p4tRveB6+@sG<2Qh3_z8ky;)Dd`$?wi~o$@ z%$V;A0>|Otii_Etp+URAY_Df)f^z(kCa%X>!b`0>vp-OjVh?gXtO-)_gGe@2%fw*B z`AIDL8(>}<*k8%!D0{^g={lxnES8BcJGlwKRX&)iJ#sRtM!k9J7k#Zg}LZ zs>Jp&Jw1B|5wuaSDfd?P@EMHB=$A`EJp%3-5zZ%(j!PV?wTi zrv*hhF~w|mu3Q{Z9(C!?*dxN5apYR$#h`F^E&)MSj(+FTHes$7hH4^nf2p~cwhh-n z!tsW)E1sX-&My*3)G>jY3?@j&iVYu?QT#n1SL&*r}0wYPx&xt`e&*(76^65c;{C-VGdO|7N zl`D6GC?Afd6c8CD5h4Ruod@5WS@RMiQ1Vyq<0zxxYm}?c6de?G0B7x~FoxQF$@zu* zI4Cq*5ZPQT!fUil+U;MEmND#f_j9Ul2fqm7Fuo4W^{42OOKy=n;TgO* zI2^uiw7M>&T+q+gi-qcGm-1J7a}dW;<(KMPf_^!DRIPp~ztEe*Le){t*U=29NNSnn zeoV~zrAi=?UApA_dsKH#An}43)rji$liZC5p6_&d zwi@YrvFJJWajLEg=qTEsyqKpLnp(X`{QJtjVSqWNEBOMw$0&wM}vrR#RM` z(X5}rE|m*fE(d0@4eGFAJeglP-;an0uj!=cN;x*~Cm*J4g*g_zGU-PWtTcEDeq3gqt8O+{6 zmx6)O;>WSecnj1nwL>cLS-?LLuH3^>hEwQ$t&$1w9O-v-36;xFW@~cj3{AKD_TKEGl;Q@N&L#sr2F91n+z)jzNjs1Wtx7t!31(5t4`wWJV zyO!*=!G-@yAQ74!6@rxOPfqvGH0)e?2$58xlrK{|X>h?7p%@yqKBOXIz8~J~+2pv{ zlWd!Q_*#}NA ziGu2vhZMz^WP|cpbg~{2Y}h;KQ%Jx*mkp11#rYUSJdNc6Bj@nU@WZy2Czpub$EUE4 z7l(bAEBApY{~opm;Wc44{QlpobQ2~ORPJb|88*`xzn#%45}N3D*Z*2oAR_LI)vbj? z{g>m=`p~#hj)iA4jr^6V2EEq8dl*^Oj&j1GEM}HpnYl@N6lmDG8TO#8OE6kXlvNRa z<=+%YjJ$&X2@rfC`utYgTo>Bs0w0uxUYy`BOed6bz?VzFoF+||0OZv+mE{o|ESn(t z-akb9*?JUN#GDG(b8)%(IphFW>;P9NqsPZ#N68vg(IBy#IkNTzvpsts8xfciR#Rdy zfytlZaB#{OFC93%F|6Ea#-f5PLMXX?vkt}eF%9MP zsh4f`5Wz5;n5m%urbg&;Aw?0`4u=@ax>LG<+To%l1g^`#TJuB=#NbM*S_7j7oWRKq zayC#W4ECQifZG(7GUs_G`5as6JN?e0kmVM((fY)}1=Ev!hQIPig^%IZ4dQ#rrg3j% zkE2ir(h^&BU2<~k(OWy{M}saT*DmKwxT6^3>rcUvhp-EF$_rrY)IY%-FmS38r zu^EwCzHb@cuuz-)0tsefK|RjVs>5%L5WExX)iXRn%l1D-jsH*45C4~F#QzqZaNBYG z3^>+Rt~@#G{b_jI_K&ul=FZe}wGz9~sPm36*KDi{k<b_y1(oY!u(!uME=m^@|ef%&S3jB4R(Apikf&PJk3KZ-mG z^lo$*A(cxMlyz~PY8<|g<6iTtsyf4Y#*)yL#sx^|&_*2tX>8HWWFl;o24tbm_&4q;6St;f76$+E!Ob zuFH{J&lWW%mZoQd?J@BD>p6X@*$dC&{OO!Jeiql0B1iyL>=y`U_`ChopYpA=i?(2}8U&TNdEE!Fm0mjKJ^=~b&Z6FPJOXglQ4#*Lwn134t z5t1+*tFHJteP+fR)4F=1Z?WIz6m#` zke(6-2CGW7mm7&LSiAS3hT^)4BjVym8MiVzCIaD=Q zTfR9V;|S^oBK0KKw~0n3cJwu46pn#peNkdud~eVWxZy{#`vE$^(A7YI{_GW94Kxj1 z4RpwN6yRw<_X2sv`67r$a=t3upi=ay7pIE>DoFuC4F(aU#QF=*+^iqr@*e2y18&Q( zq87#A#{2o_I1-cAhMB`9Hm~K9u(pyoZg{eNh14rP1`NVQ7x5ga_%!|jNGrR+Z9CNW zC@UPkW`-SdE@#5K$mRc>%IPWBqqDEamK#N+Y1u@t%}s9GeIOMkuo zQybQ)*akUm2r@Wpgl>9)z<24J`r4n~Obs_z6hQ{3N~~5S!nH_zsb%o&_J_Q%dSM^x zJPkSPt!wc;HfMT|H|!F3NzRBtx3)~lhrC%-bPG-?{lWTAPesbxejjwvi`&_qqAO*J zq;KkIf2yBa106xSBy_V-5_&1rk~$`I-xs-qF9zLw1>V__ipGu!1tS&7K`U_Y51@CR z9M61kBp=*X`-@u!e&{tC&o!QPPjr>f-9!Vx3+EzO?enloVCl;f=iS=1u+%m5@J|Z(%q)HA7ohO?VEZ%f^&1B;BV{YMJwLaeFEL)muk!MgC zxxZ;$hM;fz!#t06mjljlInLB6#Oq;hy2r@0_O2{ z9I>UjC#toU>NL%a|j^`-lN{@ok4i!ji;pdjawD#xquKC|WMpI7KXfz_)L5AN)o@*uLe za|6{jjZAClx+i+Rf!-6gFwjPsB)QHPM?0A7(SW`tqlvEVc#*p!9M!^%sU5sDp5J$^ z><3r4(fYA>{~X%&&K>$q<7diQ+|#*qVNtap82(@)=?SIuqdvR?Gh%%&Nstt?-OxfQ zlX~^LS;6zNHQ4Fzd$e2kH&*(O|Lzs%K59$IU61_Q#DK?0{69*BxWVI zQLd>l@EUrNtjR{<+FFXc-R}Bv7G!TEk0aA6y1rY$+HT=bmW#f7Nv1vS97`dc3T;vP zPUE)P!X%cv8Ccvs_nEeRQ+gZJZ0oy(Yv@e@cgEqVJR{-PuISfp*e=-pxao4JkS4j6 zq`v^(>2(>_mHW%8_pfVR_dxnlAUw|!wqdF8_}f)zmS^&hHT8dk*HJHa;)85hyz5dQ zVDYS9d*j91B33H=JTPs*+lt`do;rXw3+d{%1^No34F~-Qu56x1deX$%y#ehsxz4AP zr2Y{-#E{Z$3dM3jAY=&^{lg6z&wG?!N|`jSZPvLw@0Gh=?U*{n>U!8t@<}uUe_G+U zdq8+R6vl;ighZa|-;w*Dt((?{cSQAik&Gvj;e*Vbu0)Z{n%*%PsXPOadA@FrNTzN? z<{pyK1(`=(-$gQkKV_!mDS=Gmx@8~}ou{;~ak1|cczP{Tm{7UZ|xLuiWDsWk1|G(}#MHi)L^!zG76qbngn13#LsXQ%cv90+}# zsf&cL26k7y()4HJHE^sf4;t!vVLQL%WZ=ipXi)>k|D^$)g0fq~rJCMu@4H@9UVyh< z4G&9wk>emyr?SnzrP*g@Iz8FX@&X#Ra^qFYc~Ob_vo>Aesb_3_u!Qw0dR<90Z*w$h z?)3D%8-uFr{1wpSF`W;D!i!+3-ci*Tc!8UAbIaj zb=IRU)?-iGYNa!A0y^?oUmvbrXR+q1tdOqM5S4T{3iozvBb-{(+HPuFp5;DVOGshe z^Q9~K&>N49kM;ONeC8g@tyWX~J_v4TpM^M;_D#fho6zY0*}f1CLUFM*UuiEBjVU0M zq2!a%cx)n}TJs#NacD@&VS}#wne%z?0<2^XTkYEzLVqH^6+TBHS`mvj4tCuyFgqUE zb)Pbcx_A;EV_(s7-kk6?2Lor1C;b_Ms)jum59gra_l!qhA~r0&=!6Vpe1R5O) zJeCg~b)~1WZKtTV{YlLKsB``!53TudL@fCA+wr zcj216-)i_eC3f7+cDRQ5Tg?-lk}cfLTX0SKZ#55eN>+0>uf{b=qA9xncFvWB!ZO`q z&YUkp8!yR{6P4`UleW53CtQ#{bERX7uj%WjFWKgDIfs|ZH6@qM=Wd>FJJ%{p>){o2 zCR%0X-65Up|D0fuMW4xiXKF5EV!m(Vg{tFmrzfZ@uPUBmqN->@@c)=!sdK&(W=rLg z2b>)0i%ck++YBy5?terH@?0DQ%WR`xf8juun2@o0k;(fdIjuu4edCpU;v0`G4cAu3 z=Vy*lR_%EbEwn4rOy-ms>LerX^d@y>4d{eDA3ABxFV;CusJs`xvM8;`Tho z+Vg?-+!^;`W0fx8_O6VzR|oC+#ws6IV zJ9_%KGfufd!>+H7nN^OHkBMyz3nNdqqh)tBn#w#k-M6u-YEk^bolP@m+AVX4-9gZ6 z&(GI6pAVC|?9YEdKvx4Zh0(OsNgbP**9WL%5hR8MDD6OsETx&Des!&y` zoHXwUnpb6qqcIExJCb9Pv%BYFcihbnQ8%U&)n??i_BN5@lx#%ZtdyIy!^#nLLnx%L zIW)3LGiOOvjwrUF1y@7Q8kk*dUqO6_2QbMMYi}zWEA1OAjTtbjaY`3(W7R9sDk;qB zeAT{ZQj1O6cstspZYMJtM|e}Js*We1g_;)S_eoeBswqLH4R@KE$(TSLz3M!!I}_R4 zEi68&=~>`B+@&_pwPe7*2siwf=ol|{`q<8s&iVMlUKaz5a>_yC@j1zhj-;x+KP zyDo#dtSJ3ZzxjjB+;fHAo8c>YJuJ+3MqbnoLSJ`2N9Q~Tt>dK&p8Cr|+t4~{!8*23 z{5==@MoKgc-s1C^%(K(L_ZJS{b0jmYBPo##7-3%08+eJp2UsTf~E=8qy+;>Jb(qr${ z?tN9dL)duBUpW8t{uau4&&8I{c7cM{1w_ax_d&&8@z#?lGH+6P1ck*{{aZ1l1nfMOV)@ zFw3%h8WuBH4|PfmxSMg=CngNX`tu3Gi{8(T*FOGeg&p>`tKVGaJ1W=Zc=FiD0c-W; zojq@Z&(NkgJh@z|rbAqc3apbZUZ*K_dz&JT3CnyR4X>rDj$KaiNT%gTc)bAjCNPGFPNq}*;BZ};1f9!T7A7s-kLUh$nQdZ*aabI0e=xB1(9ByB~7Iw46;sxJL8 zPYG%B^fkX!e91k5j^7L9C3e#s2zp(k{lm+oHZRsN170ROMWpYJR-iXq9lzO*Ps)R& zV1cifT5vbx0<&F=XB(TEIRfFMd1uYmzFW-JEpxssAUJWOuEJWs*)wM=7())v!*=)% z9wM%@v*+y%0Bs@aK2tuCcwO%HbuFZeA$?nzxmxHb*4G)YrdPIgf57>d(EAY;tQM+0 zyS{ycA6Ts3Ex{$h+^8SS)hm;C5NtsfEOqy2+w}hCYw<@p^OQOC6Wlu8OD=Bu#p6yz zGTnN^3@&@TC|3lV?+>zfLvTqnH)WjEh7Yxtpu0{*ZqLjvCMzJ1SkkpPFkNr4`9~Jp$J9z{-VTwzBchBM$ zI5kN+izlEnkTk_=8Q8Mi!&+i*DG{8u=GRTa)1 zM_(Daj;AsmPcxr#>xxrd+}5G#`0y9fh>>+Uu~f+F>+vbemOpF>-xvDl*=Uu(WL-Dd z^;Ae)X3skkQ1Ss*3HRm=!%uz8+HpNKxWaXT6uWhQlW&^KyY;BeEn{u=42T6DL>6oQ zV9(+KJp9?B;UAUhE9Ky&fBZ#r$)i#!GJqG%O+_Zl{eRF#4*R)hN*8~hW z--hD>=O^&RWpks%q3QioYHF8G%#EMGca`I(yX1=t7f%CS+)iiqm1VqmNtR*plp56; zxvkMnx*0BRM#baqMT*4k!A6otW+`P(8$k;UlRS@=yDU!@$XlJD%0!Zt?4GPEZQoRO zH$pUsjd)*-vkQlP(V0I}xOmw}FUxPsPi1X}Uf45pTl1TW=`L=BUwUDW%iWSkf8l3; zI^g_lu(Z?^PCs|q6jXC;Cm1=%F7A3k(Q6~@7YzW}Djs%)UKJiK^NTZG@)d=P*NFNV zd(E$Uo$a^QY&aWmegT?<(;`##0{KKx;1D)QmpKro<;3sVT6Xsw8alF!MU6hH80d{L z*60iTSio8$^ij-_|I=pQ#-gf9tUElA=S(cloXJv87(i%~0pqq}^sz z)Sv7T!tX9GdtbWnN2IBZru~J0^GlKOI4|m+{;bdo$ZD$v>)}q9fsLk57Fajon?!mC zOCr4uDoVRlZ8U9g#gbKXjCWd{M>gdeFqHU|O>Kk|$U5|1h&6|a{BfiWA(8ue6vH+` z2(Fl?^j3eWgv~yq;|gF7Q8?|!Wp}Z$DOHU%&UB??Nl>BA$u%xRR;UE2(mEj|b0y2T zc*;2TT8nhLAFmE3)eV`h5=aR{2HBL23^2$(yo}9sS&A#}?2w4AOrOVBl4Z4H)2fLj zUt$fWP}L%l{)NmPT{bp%TzFA8k>&b&GCt^#Dd_{IWC|<3eRJ8}Q^-b=x`n47EFsN1 zDTjFx0VV5sQAe=QH>_Qc3Q<7FsO)Yy7OMD7C^VpCJ}+u57HS0{Fu7~zo%loeLxQsQ z#@k2(E6tHTu~hj|po)H9h!hW5lZUZ2IRvL+_UiPF&8i7pjQuf`v~iiQOL5BXnv7Jr1@Yo*_A zbKt3%$O`>FVui|oM^D=5$nu26}OwAE-eK;5uK-TYa0_aN@(hNv6t z765B^4^;S|iig)pm%I$?1b$#t!z%$sb+v$S0$G3FH{K&(46@VLft~ILCt0$Kn;u%; z<=e0(p!_Vc;qAk<)YWCqR|EtwK&{dhqKnbwZnc``_n{L!0!~ED25P{0KAeoompoyL zQXi-9*xiiG)+aqaXPEMH;F}%-wjkCVVeyerqq%0ou7L9ou+T32X*Nu}qrJe%=7Tne;hIsRKBc6Fc|&26wEcX5|Ak;Gh#_vWc5QuU{{-&W<54Bm#9yJ z%Qd%y3c=IA5ZU#J;x8a{fkvF=&4hWn9=25X6mKnnW)alp@G#*2SX_;23I(k-T8YK32cR>zF-&kwdNQ0 zEOv!A!bZOVtfX}rCjXDFFOP?M3;(|e$t725%9=t&=oTaUzE|jqo0&ikb5%-Bemp5!Ye%S`(x%Y==hqc4%3&mX#o zH0u6OBh#@FvYwH34zyM^&$vn zKn|$sI!?-+KZJS4cJyzCAS`qWNB{m}B6@lKWwh1bM!2z&aXrb;pyPl*e+dR=oS`Yq zL=J&WgghZuQ3q0J(Bak!$&>H{`3{nUUJ}~M^e!>6mnY|eNbC8Tywoz6_P^aDUV_;@ zzO@zwuWgh|Gnz=_5v@-2|es3!S<@}P)x8^xHfEk}-7qb$tz*>)KenE08=$$>(K$-)|A!;z^ z`}{d19himDpbp{$wKP|kmb+d*DljGaEOCYA^{mTprLQl6`vj?dOy}#6BVRwk6ttB~ zEE{xgJEqx%bbiv}>-FEQVB#hUWb|>Z$Uwmyw7Pn5tLau%0A!OT^V|97DTkl=C(Hq1 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�r4scj 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%0DQV&Y}Y2x^!vCag9y>pKzo!*s&OD-57h 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

g#JaqaW+$~QU2AdTGw$X(K~1ZL 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

`XGr~xQ@Ah zRhNbyxe&a*XtnO-PIHj4P8XQ@YhpvgKFv2{87J@MyF`PfMiV=s;cI^F>le3tfj|2L z6OyT~)-j!t&OF9--x-H={`2Yo7fObW`wSb$a*^8PuQyR|;=* z0JRnk)f$gkbkbsVFy_cYV~YUKYiGQKN&zhNYPW`78gdsTgx10R*a@zK)U+s`ff}71 z2EFK9fgpyrtHwevCvk>ZT$S2fF14$9%h9iRmu;FNV&bQ>FDk5qi2~6|tC!7$uXyXm z2^Gur53R21r|(MwsV%IFyQ)5t+R5t%T5q{Q`Wm$H#q5yc4(^7pDr)2acP&PMp;a4Yf82iCxsn zz;m0;=}2!iU-6LP+r9PA+zcf&&zvrx&{R*U89%*E!P+>=wJIOdkuI#WGo&s6o6UCDGz>(i)j{qZ{`a*MQm z+V3*PMJkEvxQ{Rm#U!Tj!Peu??m1y`2V5t}X<9`pz^IfEH74K=IN+|(RBW~iPxp(f zwh+II{U4pXwBpF~~%g2JPQE#VNKb7HjS~d7sM@;Yc z|3}$-hBdV{0i&QC!J|@DL^_1f6qJDUqJ$Ep!{I0jHo8cW9;%8$Ku`z@p-SjB6x)%i z7({vrh={aMLkpPDi+AlEPIUH-=i@MA1wNwOasz{7usd(pr<%VKX3{)A-ZzNtw1(N8ZFog8;RPtw=K5Q6fY&? z=Q32O)l|$fAc1LlkFP)WIKhALgl`J8705AhSK%=}Z#F~qdo{HKup#~K+aBN8`@s!J zM;JwM(?Ly)`Frnyl=Z^T<)7j`C^Fd3TD2GG7rP~jNHWvL{2JKj!M%B*<%z86i% z;Lh7)L=S&;oHi9+r#Gva_TdaV^zO6b`1pvTM5hK67{h!lfN90-|Y^GG$6pW*-m=l z*Z6FEFku?Hu);=+FI`w!GzJn_7HpkO@@On}!LTb{#0mn4#R59UChz}uIwtR&suQ$S z^f;wiUX0v11;{9AV*T%Y!z32*duvq{ug**YP8R_x+>^nG|09eD^-RagVFt1A6(mfV zOkujcEy@;UsmB`5E>c<^^Q&YCJJ{mSE^2VPu#q5NQmr9&|E0XCF_p&y?~BdNK_?nj zFQ|-Dh2&{9v~guVw<0Vn+%B}NZ_AVshS2SnLVl$T(1AHc=C+y%q-&zdA)}V@U&%; zg{5jr7IPh06^x=9v|I!e-3eI*=#Iw7StY}};n_uq237`T-y?n%A81^xjLV-t?fgFg z-02jv41N_a2*90w+2!MZ0UVngYY{PR@v32tjQJ2BE3-Ro87qEIjbQP?n;P((2z7LP zHIWrRHM$Y9Fy0oQtqZYlBLrlO!ll|$q~H*}mQjTtRl_cP?uZvLg5IlP0cCM{wiFro zz4=5EA2dy5afhoD!Ruq-HQ+vTn7m>@87Jc>>N2zxu|Ku`Dn{Zbz_B2}eOOmuqJXx= zBog?&n=2=e(*gHoaDYnNL;wqT5D~=blzjw#6=!IS;&deEWRf_&6BZtf9wQw9@X#p< zY5XczAOIdZ5*&Aya))IT9Cyx6MzA->t6p^MiVpC%GTYS*HeQTU@_8UlhG(I6&q$eG zAE*qbj~lf72{B=y5~nM@z?2?fsu6mbN6Ufer15*#R=(IxKZOJhoC2c51Bnivg{P2~ zg_vlHSH0l)Ei6QwK4u2C%M&|e^WbGUwJalZNJA7MJj*NZQ-A)yP;&)eo^$->86y4) zdm?Ef(aR$tPBellj8cL zb%GL#9&Q?7zUhye3AIb=j~e_oMX}Qm@tuJ!k7B2us2do&+-%|5% z3yl=66O>iN=0j|kWKu=~Ht>L|1Cr7WH-1v~rSPlhL43QxBo5Di#y}pa%Mek-VxiB; zBQSX+{=-(Ix_DJNM@Dfl5NyLbm_TUe2x01R#_@YwRu*HZK&bY{srmx@hU4DmI-s8r zpW;ATu$5mYOg|J!xLwlZzpclR;#CojT`B%RXzq|Q)E*h#A)S_nR1(;^p6<1|F&nzz zi%lfD(5J}As~U86FXJbc?MhF?i|fCM=&S&+5_yY`Su@(f;Z z`4pdi8)CgDllA`pA^WYNIzcu?k9l<QU|?#0C5XKebJ$^ghu?F z4a_bP;W-rw=@az5z2W>P7!Fuic+O`Ia0hqj4}COH5!m5PY2$eSMS-lXkbH4W#3JRs zZ|R(BJIxS+m^c0bo>ES*Hr}36^|kS;2OSw_p!c6^!I?f_*|{Oh4z}8{_c9SN;QfBb zE^e4T;60erPXFO(Q`-GHjYvJCs-Ws0G;7Wqa=j#YtIP-(e};?@coP*qjZkMe zROZr%G1a%OdMGg*fC(eYVB0l5G_;Og)*p1nT4W+zE8|s192j?le9X*TDyM->Pl;eiV9)jIk36Md9~ey+pomzcqKqnBFF5Ij;W4U zWjJ)D`T3if-Km~d(>Q&5Z+H*5ZJza^?oM^n)k)3jLi5%Te(%7Q914k)psmmWQ*GUz@k^=_!g4uhz zoJbYGM3amU9^W?6uE6-vep&Pqq%duLXZ#g62M#o_3OV*a6!^8J+I9AUzKIg0=RrA+Z~(jiiiQ<_E4&(4$>}~oBiLL|Ns1aU?KZMjP~G@ z9(vVdg$XxvGi-H++BcKij4+6#*FMx?t9xAAg0zZsJn4>ACurTTLk1_h@>?o!k~c{v zyIuk$ly=`AT1dcudPwWOy6PCv6r@~)j3a`*Myr&Q`=u0KfEoeRD(~yxhO4l`15f7W zIl&-4Rp54F!836u*7t@pFSmB-r%>&gdB-YFTDO1j;DibU0f`tA8Ybug8YcLc=#daD4^2Ms>eu(O7;+y zFt=aBRGO`+vj>F~5#s{yeT%PqW$MKJP_|b@W7l z+hVsNBp5=HNuPGnC@R7H{X^k7{{xV8?Z$2Jf9b~xp%d^=vB<Wr1@BonO<&LAG{jW~U#J}4wGEXL16-Sek{ zBR=T3*}yyXH}{b=WFp6BJFq|_)_e2x8GO+DtO2#8Pj>)5Vf_8`Fg`0@AWhO!8EDRG zzmHZ4OUWEK3*YjwXNvFQpnxiZRrGA2c_{oFex_%hY1UmyXB+SmB>}W!WVI3ob)Msc4 z;K%A{D_{;I2r|xxFcOBm{AZA?o%Fk-%pMGugV_B%ItTlK1-^{H9m1TyNB|ZXmAu`4 zH$|wW1Zp2RZ%K&D2xtO`RbAJ(t?s#^;P`2~dF3$Gg>caa!BI^l9`myGhcE8XetNDX zPISd+57bRBC=}MO>l7ii2S8R5gk5s%16YFCEW9(nT&f9LSgVSkTZSguAYe@<+KSgI z1)4_OMG&dp0#a2~OfJoViSWGwo<|6t|IDKShsve7%ik+*h3q>HyO{rAsoiGG*;f(Y zGvHtv8ssz13sd-iNl;Z0JlhWz2aEs-2Kq^?+MNRqZ~zYSN@Rl%x4-ufg(kpkKjhvS zCgYM|^ch-`>Yjkap+Q!{5Q$%JlNh;8V$FW8Go0&H@jWyL+ZaEfW;O@R!UhecM23`r zvhu8!dOBF4wO%!%zIZ7u1T3nkn4E)HR1R45$f&$xTI~@(BxxP=@`|Qy1U!5olTg9b zmA`N6$^mNNhwI9#YtH5rq)p{ORrl|`DS zDLk%FA2rHE2mR??K}p)0b73JVK79c$b^UohBF2!S62#x#D)bW=^K(yBeKhzaJ9dgi zz>U;Q{nWJOF3qSYzB7Jb)QY?Rbk$&B1o|X{CHBIZOTBC)3(x>BWzmnnyAw3POROlN z^%>XgJRitHx;IlR^)$CaOR!urBIYn9z@NXn3&0#Eu9wix?IOW2Oe}gFB4Q*civZv& z0FbzB|J=JY1~dY4hbH~`q)uPlJo3Ye^i_V+!4i_de+W zHR8)pt`DEvh>e_7nEEhiEE!HNE?cR)|!D}u9r7zAAxWfAS*={FJ{mee4!>#fxO-h>nj8#tQu$!?DF z2DH%_epguZB~QOGfH?6V2<@a#jsOz?(ImWih*zK^tLx+Cz0@(UU4J)HM0@+M1aU_0 z#br(oOvOqk@o9rQsCH+-1}no0zpW>VIVa}p@BfAKdJgWys{-DK!MxX@=`>u51e&HI ze#$K|VlPl=!bU4VVWL<*0HT63`+PLRhD*8t;(a`IqWagN=MUh(T3nXHvXD@)1X8OmT>sYWQ0W2y-a`P*06<4Vt`;rz z97t&GpITutj+6jD{{9wdsERy+Inn-pssPCuo!wU_6dW~!)IH&!j@cg__rw=?FTKMU zYeE>*d*NS1%t_RHHSmsoaMMIUXKXM#3T&XUENSf=+_fZ0B+F&g4mf> zOgivT7|0?Rdq+iZ!a%`GL7DsxpzQt`xg?kn|8(675L2KbIp>oA0-!Px^zqO%=sYlh zzw}9kKj_>)0CesqPMv}}?-NUV6ObAawsY)7TSajAK*1}}d>d#!8*Qrr6IK%3%Pkf< zf#omlfInBps)EGju_mrWz}rB!=+fX7&MMM0Lm>;Gods<1u%u%rAr(d&W_))=@H1w+ z-4(c76VaF_5MRC_KR)fLU_hg80i)i6KX2I{HQ_&_UI$iW5JqdAIqJXBf=BHI2p*aW zjoJ%Xuz4OuDopT1kOsr?`nM^EN;_I-FW}@9P-gnS^1C6C@jR{Yb=n~@w5sV+Y0v_; zs_CMtrEw|HW?Gn1FoCs3es4--3C6YzjJ@cs2yPj0egSCG%j|sDHckH1`Nw}d7x-`I zu<=oX#Apt5E~o|BAkg_ag|9S+?9BnLh`n5bAL4sh9Crb6JPZ~BC>XT!F)N(>5zQSG zDz5Pod+>tB2N*eauv7u&+g^A+8i5=pfNDpF>aMaX-U38FIs_A4DeXT*AFBvHI%x1N ztcEoV%(hPfKB#Qqs4qAz*ROItfwac*eDVg_q}-y=b+#ZOoxE7{?yaP@|AA8W$~2Mr z^*~HMdu5`2KIsozA&GtRAV#}io&I64>_+)c?brOJdnzXt=64I_ksNo0Zp8cF=<(%9 z(cY^2{-G(jH$KdA0MVBduyyfs2Nd6B$?&8%WOGPXQ38Z`oh_nYx-2M>Gu%q1QU=>rKW!~g7Vq)* z>pCtukd1!@3xgYLBgJZnMiJgC`$osQ^|p+D-K0!+Ua|=RCH~^4o;a>orz*J1m5y-B zE{Gh6G5!S2)qF+T`+~1cbX5jFO+hCne7tTNrC8n;_E1=cN3?%Tm{p1bj+?ka_M7c> zb=%rG_rVxh4MQ&HFIROGANOmdCnk^6H4;T)Bw8lGmV>he{^cC~=ZsF|31MwdJw-_&aP;W+-JM=~c-WGRooRJ1BBf-!VRsxiOfqvRtr0cleR ztJ2A70!jlkVyx(>kL}n;?eI@oN%msD7tDJhy*U+DCE4B=$}NoiwpfmaNMmJ89r4%> zvnc?_f%oFM7t4Do-82n`Bht-Yrx2zlWR7ZfpqxD%N7f1jduZei!^1t(YGQ}Educ(66ae$PDsHB=q4 zZ!W{j2ZD0<0Z?vF0n`l`N{_z&6#PGOI$U!GJ6QRA*-RyZ9rRf~kg>9*=K*;n-0o*C z5!hm1XIdC7y75>WrKfvraTewsopJgVc_Q)t=gxf4FATysYUZi&xIQjQqp{0t?WC&D z-Or6q6pnwo17|!gaFxHL7K?z3{43TKRQCS2RJT2veZO)NB(q;CQq@L*B?nveVe6gY z8f*3vtNIns5~n^&5EGB7bc>0Y8lC(0W9yfv5KqEwOue|(&*Vh&DD--Uo9we9F56yQ zwyaHsdSjO@Iap0N;Xwn5r{fI4Ux-(#lsd^~?7yK(?m)SEsMZtGrx094c`s1}wNr;R z@nG7Fc7x;pN!3}hZyrY&2R({uOwn?-ZW-(FSLSh6N}vTj8U_KYMbjUSo1|dsc`S*hI9Z$XfZ!ajGtG_2xr$P4 zsmT%LUO9!rVky`bS9(>{E{7BGboDv@;WVojZNmQeqUn3omCbTx?!Lb`uH{>>Hnzu<~KY*tCD~rn6ETzcGJMSPfJFy~~Zg*n* zdW*lOAZ*gK*RSwt=5A9XlrIuWBZ+bzH-#iYtn(eJgX*SZTR0-CC3qZ!8PKVpghT#2*syDIcoDgwvsxGAM*l!&u>?DpYx@Oifk!G71-F1pt`YzjOV&aj075q9Djl#O#91Sc1<7rT zhV9>?G1!QnFdu7Ai*q#{JICGrqlEhk#P>rsmp*Uv{SaS{<^z3axoo8a1*RA0Y-5$E zD_aM{Vcj9y`{|^#UjDBHrEQ4K^8-4}PQ;}e|L(+?*@-0~uE^A&<_lXQ;DSbC6tAY!o?rlt3Un+;OMbKto2|0i;fh`V53tPj9-%Cd7ZvmMftI``NbFCgi~(eB7V%RFYtt(2lDX71 ztea^!s<2U{@d+snN^t$zcF)ekP^iHgEF-AyilV9=>hDxq>)`4MK& z6Q-S#N~g*1;c3(V^KrKPA7dtO=Cp9~C2FIX^CiFk4OC$rzTs1Cu_`>7EB{B^gU8nk z%4dB`Kw96=QM`XXPGE(xii+rWlpFjrziXLbquo_7MYVSJKK=*sv>ay=ufyXkai(9P zOhPdPQLr24{TS|bf2dbhUG9WieM*Ay8Q|o z&zJE2Y3*yA@|ShiUD!~g8N()LBRqs@@f%ww!nOBHEub-JGP`-CpgZNP3VcS&z^_BH zr2jlv&`Ca;d8;uOi7UeVy!PAW)C*fc4_g*uAg!$b$P^##o~)J;F>L|rDM|B=p+6|y zR!efb(p#r31QuCh;fTC;Ib=T3zEH>{DcBle9~aoPU&6rpkd=f%ZN3Z?l}XqSxT?J} zRevq9@YI;`m2-$&$`0{>6+D{bVC(!yQJ(lvHpUK-eE?S`aglK9sd4lI;-A;q%-7b4 z?ESch#D1mQ#!1Sb@y1EVWPyA_37raJLGN-&!6pb3T$JCGP} zDWG+GME1em6}J)Sc&B6e==f-ND=3bM_7?)*Y9s}lBe2q1$EXN%1b!GinsG2@nK@bW z#mnn=~xQq85c>%F0W`eHDJ4A-Jk~aUiY^ic_nOOMb9smmEG~MH+KIUk{hqA zhbePx>9kOzE~UO)q>2ST{W}{MXd%5T4S5^ZG)iV3rucNSASM!I3RJhcA~>KzLCZzd zoS$2XWVc?lZ7x$M@ra}XZJcIG=Cpt zY15bW$lkB=w%# z2}@+{YDnhugcbJJqW0FyM@pXX-;Z(%yo|{@YYj1$Tjo`M>yZ+EBc=6R-T(`nMrdy_ zpVXB7nYYy#NGIus<$EWCBDXr{zK^M6tNX@|rXEpR;^$h+-5+2PrxDsy%qKfl8_O#@ zwJifg+Qh`xu|lPSu8Q}4CwBZwdnxfK`#`|bb1P}PF2S89Pm59Vuqa1WKXvm!J9vP;&(H4`6WhQ<;guv(^>bFXybgxC)9xt-IdrpMBVi+rJ3XkN?wi zwzur#(!thx43`2m#=J{gda4o3kU$DLTS4aek!VMq8whWg-DGZtzt|Gu{P zJ4-|d6#D|vSJD{P7sjx@$RAniZ0?(-%a{MUnW!&)IGb-@mEtFz2_X{B@Uk+FZ{N1W zwzQoyESYHQQ2(y8PdLV2S?lOw&kJ`>zIJmmOmXYDXb;OEPm5xc=}(obAW6NijKL>7 z@nfL#A#|J}$iKdSAJPC8{nno^o0rrzye~?H2zhkQE4vpjm3>fR@5ukCEDPx$juiLK zi|NXbuMkGsad#%rw_YcA@8%G7mlA|LdXkZS14x%kyP84krKLV%REQ0dh1NeQk66at zkv6#H4`5?us0bJqVWI(G(TvTF^9?okvTX!w(JPS}?m{LV^Z9OWvfq#TamyaYFCeUy)Aj>*5iI!)THDfUGL?!L=e?G1 z`A&qmp~)y>$z2ZPafG3=ceE?4dR!sZ^TF@&Lt~Xi?0PswJ~e&mYNu8gk?P*z)YolB zG(a5(N)Ab8GT0q!;!>4Ew!S_a{?)5U`Bz#J$k)kd2B~u}DF~oiJQ~lO%+d6#p|q_E zdCP}ZMl}am*(Y-knpwmbVu_q*#u4_)dn8R>yD1%og*8^^wajA9z|T#w+4rqC#~;xx z;|iq>Y%n}8nlbrqc6ac`9ZpPjGrXZ?-ZK?mo??SnKKEOY#&|B$%mP3D?toZRCK`_< z=leiD8!$R}_s;$GN)x$!W^K5_>%bD=)shl#Da63WDD3IE87Fh)n({jHhP=T@*{1Nd zvmoh=i~$)>EGck%2YNNG2Y1E{@Q_XcTP%!Cmi}8K*M7`NV~y@bHtWl$XCE-D!l|mE zaR;d2bo^5{C1~2=S#E%7SADNVxA0=3zncO16|v+g2N;BY$8E^u>p5CO?G*~j=`kw!BA3Y134{8*lBX4|B0+mG19%}uDg9->iL-Bp6*i_k~ zTrhAwJLtyXjqI~lHR^T@{#b+!sJrrjHQ|{tbn^&ujwk7M9kUY=VbzJP<)xuhKq3

}BDZ>>xt<;d#dO;( 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

a(l|+t0KAN={GoBOU=%W^Koi$ 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�((+Ea=&ViBO%UFbu6zz!_ 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

3&bvLO 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

QexPUEL9tskXa;w!1B$B=gs)d%r>c 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

wz00IJ;@U4fdbFcyn#lk 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 IR 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%0DpicL}UPSBzSY0(HO2%U9tPSc&(H8WQ* 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 literal 0 HcmV?d00001 diff --git a/nest/message_ix_models/project/leap_re_nest/build.py b/nest/message_ix_models/project/leap_re_nest/build.py new file mode 100644 index 0000000..fa79b0b --- /dev/null +++ b/nest/message_ix_models/project/leap_re_nest/build.py @@ -0,0 +1,120 @@ +# LEAP-RE NEST implementation of a national model + +import ixmp as ix +import message_ix +import pandas as pd +from message_ix_models.util import private_data_path + +from message_data.projects.leap_re_nest.utils import map_basin +from message_data.projects.leap_re_nest.script.add_timeslice import ( + xls_to_df, + time_setup, + duration_time + ) + +from message_data.projects.leap_re_nest.script import add_MLED_demand +from message_data.projects.leap_re_nest.script import add_grid_shares_OnSSET + +# 1) Generate a Country model. See documentation # + +# 2) adjust nodes, years and time-steps +# +# 2.1 add sub-basin nodes + +# load a scenario +# IIASA users +mp = ix.Platform(name='ixmp_dev' , jvmargs=['-Xmx14G']) +# external users +# mp2 = ix.Platform(name='local' , jvmargs=['-Xmx14G']) + +modelName = 'MESSAGEix_ZM' +scenarioName = 'single_node' +scen2Name = 'sub-units' + +# IIASA users +sc_ref = message_ix.Scenario(mp, modelName, scenarioName,cache=True) +# sc_ref.to_excel(private_data_path("projects","leap_re_nest","ref_scen.xlsx") ) +# # external users in local database +# sc_ref2 = ix.Scenario(mp2, modelName, "test", version='new',annotation="load from excel") +# # the following units seem to not be present in the platform, need to add them the first time +# ix.Platform.add_unit(mp2,unit = 'MUSD/a') +# ix.Platform.add_unit(mp2,unit = 'GWa/a') +# ix.Platform.add_unit(mp2,unit = 'TUSD') + +# sc_ref2.read_excel(private_data_path("projects","leap_re_nest","ref_scen.xlsx"), +# add_units=True, +# init_items=True, +# commit_steps=True) +# sc_ref2.commit("") +# sc_ref2.solve(solve_options={"lpmethod": "4"},model="MESSAGE") + +# for all +sc = sc_ref.clone(modelName, scen2Name,keep_solution=False) + +sc.check_out() +# add basins +map_basin(sc) +# check +sc.set('node') +sc.commit("add nodes") + +# 2.2 add sub-annual time steps +n_time = 12 # number of time slices <= file ID +file_id = "12" +model_family = "ZMB" +set_update = True # if True, adds time slices and set adjustments +last_year = 2060 # either int (year) or None (removes extra years) +node_exlude = ["World"] + +xls_file = "input_data_" + file_id + "_" + model_family + ".xlsx" +path_xls = private_data_path("projects","leap_re_nest",xls_file) + +if sc.has_solution(): + sc.remove_solution() + +nodes = [x for x in sc.set("node") if x not in ["World"] + node_exlude] + +# 2.2.1) Loading Excel data (time series) +xls = pd.ExcelFile(path_xls) + +# 2.2.1) Updating sets related to time +# Adding subannual time slices to the relevant sets +duration, df_time, dict_xls = xls_to_df(xls, n_time, nodes) +times = df_time["time"].tolist() + +if set_update: + time_setup(sc, df_time, last_year) + duration_time(sc, df_time) + if last_year: + df = sc.par("bound_activity_up") + assert max(set(df["year_act"])) <= last_year + +sc.set('map_time') +sc.set_as_default() + +# scen_list = mp.scenario_list(default=False) +# scen_list = scen_list[(scen_list['model']==modelName)] + +# 3) Demand processing +# TODO adding the scenario dimension +# scen = ["baseline", "moderate", "increased"] +scen3Name = "MLED_demand" +sc3 = sc.clone(modelName, scen3Name,keep_solution=False) + +add_MLED_demand.main(sc3) +add_grid_shares_OnSSET.main(sc3) + +caseName = sc3.model + "__" + sc3.scenario + "__v" + str(sc3.version) + +# %%4) add water structure + +# when using the CLI it would be something like +# with the correct scenari name +# mix-models --url=ixmp://ixmp_dev/MESSAGEix_ZM/MLED_demand water --regions=ZMB nexus --rcps=7p0 --rels=low + +# Solving the model +sc3.solve(solve_options={"lpmethod": "4"},model="MESSAGE", case=caseName) +sc3.set_as_default() + +# ADD GDP and Pop info in the timeseries + diff --git a/nest/message_ix_models/project/leap_re_nest/doc.rst b/nest/message_ix_models/project/leap_re_nest/doc.rst new file mode 100644 index 0000000..9a08f10 --- /dev/null +++ b/nest/message_ix_models/project/leap_re_nest/doc.rst @@ -0,0 +1,84 @@ +LEAP-RE NEST implementation of a national model +*********************************************** + +Project organization +==================== + +- https://www.leap-re.eu/re4afagri/ +- Duration 2021-05 to 2024-03 +- Modeling work is divided into 4 parts across the consortium partners. The ECE Program is involved with the development of the MLED model and NEST, the latter using the MESSAGEix framework. +- `Comprehensive Project documentation `_ +- `p:LEAP_RE label `_ on GitHub. + +.. contents:: + :local: + +Task 12.2 Integration of Modelling Infrastructure +------------------------------------------------- + +Project Lead: + Giacomo Falchetta +Lead Modeler: + Adriano Vinca +Technical Advice: + Muhammad Awais + +- Build a country (Zambia) national model, using the downscaling prototype​ +- Set right setup for parameters that will not be edited later, e.g. resources​ +- Add sub-annual time steps​ +- Energy demand from MLED (will require the basin structure, either add only the nodes, or do after adding the water module). Not all demand will be edited​ +- Rural energy supply options (ONSET connection: solar, small generation, minigrid, connection to main grid​ +- Water module (Need clean PR to be finalized)​ +- Crops, connect to Watercrop + +Material and code +================= + +This folder contains scripts and data processing tools for developing national models for climate-energy-land-water analysis. Particulat features are the sub-national spatial disaggregation and the sub-annual time resolution. + +.. contents:: + :local: + :backlinks: none + +Folders +======= + +:file:`data/projects/leap_re_nest` + TODO +:file:`message_data/projects/leap_re_nest/script/` + Contains the script to build scenarios, run the model and post-processing. + +Usage +===== + +Make sure *ixmp* amd *message_ix* packages are cloned and *ixmp* is installed. + +**Different required steps rely on external repositories (waiting for PRs)** + + +1) Country model prototype +-------------------------- + +Clone the repository `Github branch `_ +run the script run :file:`interface_standalone.py`. + + +2) Scenario generation and run +------------------------------ + +In :file:`/projects/leap_re_nest/script/`: + +1. :file:`1_adding_time_steps.py` this file take a scenario from the ENGAGE family, clones it, and calibrates it with MACRO. + The output will have the scenario name ``baseline_calibrated``. + + - Make sure the model and scenario names are those desired. + +2. :file:`2_fix_units.py` this script takes the baseline calibrated scenario adjust units for few reported variables and add historical data from original ENGAGE scenario. + + - Make sure the ENGAGE scenario for historical data is the same as in step 1. + +3. :file:`3_scenario_editor_R11_markers.py` this script generates, calibrates and run the post-processing for four different COVID-19 scenarios with a fixed GDP trajectory. + +4. [not necessary for the following steps] In case interested in running scenarios that explore GDP uncertainty, run :file:`4. GDP_sensitivity.py`. + +The scripts :file:`scenario_editor_functions.py` and :file:`adjust_growth_rates.py` contain functions used in 1-4, do not need to be run separately. diff --git a/nest/message_ix_models/project/leap_re_nest/script/add_MLED_demand.py b/nest/message_ix_models/project/leap_re_nest/script/add_MLED_demand.py new file mode 100644 index 0000000..326bdea --- /dev/null +++ b/nest/message_ix_models/project/leap_re_nest/script/add_MLED_demand.py @@ -0,0 +1,82 @@ +# add MLED demand and create distribution line technologies +# also using OnSSeT data +from message_ix_models.util import (broadcast,private_data_path) +import numpy as np +import pandas as pd + +def dem_from_csv(sc,csv_file): + + strings = ["B"+ str(x) for x in csv_file['BCU']] + csv_file['BCU'] = strings + + nodes = list(sc.set('node')) + nodes_df = pd.DataFrame({ + "node" : nodes, + "BCU" : [x.split("|")[0] for x in nodes] + }) + + dem = csv_file.merge(nodes_df,how = 'left') + dem = dem[dem['mess_sect'] != "agri"] + dem_names = sc.idx_names('demand') + dem_ur = dem[dem["isurban"] == 1] + dem_ur['mess_sect'] = dem_ur['mess_sect']+ "_urb" + dem_rur = dem[dem["isurban"] == 0] + dem_rur['mess_sect'] = dem_rur['mess_sect']+ "_rur" + + dem = pd.concat([dem_ur,dem_rur]) + dem['value'] = dem['value'] / 8760 # from GWh/month to GWa/m + dem.drop(columns=["isurban"],inplace = True) + dem.columns = ['id', 'year', 'time', 'unit', 'commodity', 'value', 'node'] + dem['level'] = "useful" + dem['unit'] = 'GWa/a' # actual unit is GWa/m + dem = dem[[*dem_names,'unit','value']] + + return dem + + +def main(sc): + """ This script removes old electricity demand from MESSAGE and + replaces it with estimated demand from MLED, with sub-annual timestep + (by adding the technologies...) + """ + + #load previous total demand in firstmodelyear + firstmy = sc.firstmodelyear + dem_el_old = sc.par("demand",{"year" : firstmy, + "commodity" : ["i_spec","rc_spec"]}) + tot_dem_el_old = sum(dem_el_old.value) # GWa/a + + dem_remove = sc.par("demand", {"commodity" : ["i_spec","rc_spec"]}) + sc.check_out() + sc.remove_par("demand",dem_remove) + print("Removed old electricity demand: " + str(tot_dem_el_old) + + " GWa/a") + + file = "electricity_demand_MLED_NEST_GWh_mth.csv" + path_csv = private_data_path('projects','leap_re_nest',file) + + dem_csv = pd.read_csv(path_csv) + dem = dem_from_csv(sc,dem_csv) + tot_dem_el_new = sum(dem[dem["year"] == firstmy]["value"]) + + #add demand + sc.add_set('commodity',["ind_man_urb","ind_man_rur", + "res_com_urb","res_com_rur"]) + sc.add_par('demand',dem) + sc.commit("") + print('Electricity demand from MLED added ' + str(tot_dem_el_new) + + " GWa/a") + + + +if __name__ == '__main__': + import sys + # parse sys.argv[1:] using optparse or argparse or what have you + main('test') + + + + + + + diff --git a/nest/message_ix_models/project/leap_re_nest/script/add_grid_shares_OnSSET.py b/nest/message_ix_models/project/leap_re_nest/script/add_grid_shares_OnSSET.py new file mode 100644 index 0000000..2515d16 --- /dev/null +++ b/nest/message_ix_models/project/leap_re_nest/script/add_grid_shares_OnSSET.py @@ -0,0 +1,406 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Nov 14 16:38:39 2022 + +@author: vinca +""" + +# add OnSSET shares of grid vs off grid electricity +from message_ix_models.util import (broadcast,private_data_path, + same_node,same_time) +import numpy as np +import pandas as pd +from message_ix import make_df +from message_data.model.water.utils import map_yv_ya_lt + +def add_trsm_dist_basin(sc): + + # sub-time + ti = list(sc.set('time')) + ti.remove('year') + # sub-nodes, basins + ba = np.array(sc.set('node')) + ba = ba[['|' in x for x in ba]] + # modes for sub-basins + mo = np.array(sc.set('mode')) + mo = mo[['|' in x for x in mo]] + + map_mode_node = pd.DataFrame({"mode" : mo, + "node_loc" : ba}) + last_vtg_year = 2010 + file = "OnSSET_cost_paramters.csv" + path_csv = private_data_path('projects','leap_re_nest',file) + onsset_pars = pd.read_csv(path_csv) + file = "grid_cost_bcu.csv" + path_csv = private_data_path('projects','leap_re_nest',file) + grid_cost = pd.read_csv(path_csv)[["BCU", "urb_rur","tot_cost_usd2010_kW"]] + grid_loss = onsset_pars["Value"][onsset_pars["Variable"] == "grid_losses"] + sc.check_out() + + for ur in ["_urb","_rur"]: + # load elec_t_d and make a elec_t_basin with outputs to the basin by mode + inp_t = sc.par('input',{'technology' : "elec_t_d"}) + inp_t["mode"] = np.nan + inp_t["node_loc"] = np.nan + inp_t["time"] = np.nan + map_mode_node_t = pd.DataFrame({"mode" : mo, + "node_loc" : ba}) + inp_t = inp_t.pipe(broadcast, map_mode_node_t, time = ti) + inp_t['technology'] = 'elec_t_d_basin'+ur + + sc.add_set('technology', ["elec_t_d_basin"+ur,"sp_el_I_basin"+ur, + "sp_el_RC_basin"+ur]) + sc.add_set('level',["sec_urb","sec_rur", + "final_urb","final_rur"]) + # no ned for parameter before 2010, save space + inp_t = inp_t[inp_t["year_vtg"] >= last_vtg_year] + sc.add_par('input',inp_t) + + # from country to sub-basins + out_t = sc.par('output',{'technology' : "elec_t_d"}) + out_t["time_dest"] = np.nan + out_t["time"] = np.nan + out_t["mode"] = np.nan + out_t["node_dest"] = np.nan + out_t["node_loc"] = np.nan + map_mode_node_t = pd.DataFrame({"mode" : mo, + "node_loc" : ba}) + out_t = out_t.pipe(broadcast, map_mode_node_t,time = ti).pipe(same_time).pipe(same_node) + out_t['technology'] = 'elec_t_d_basin'+ur + out_t['level'] = 'sec'+ur + # Apply grid losses from OnSET + out_t['value'] = out_t['value'] - float(grid_loss) + # no ned for parameter before 2010, save space + out_t = out_t[out_t["year_vtg"] >= last_vtg_year] + sc.add_par('output',out_t) + + # tec lifetime + tecl_t = sc.par('technical_lifetime',{'technology' : "elec_t_d"}) + tecl_t['technology'] = 'elec_t_d_basin'+ur + tecl_t["node_loc"] = np.nan + tecl_t = tecl_t.pipe(broadcast, node_loc = ba) + tecl_t = tecl_t[tecl_t["year_vtg"] >= last_vtg_year] + sc.add_par('technical_lifetime',tecl_t) + + # add inv cotst + grid_cost + inv_t = sc.par('inv_cost',{'technology' : "elec_t_d"}) + inv_t['technology'] = 'elec_t_d_basin'+ur + inv_t["node_loc"] = np.nan + inv_t = inv_t.pipe(broadcast, node_loc = ba) + inv_t["BCU"] = [int(x.split('|')[0][1:]) for x in inv_t.node_loc] + inv_t = inv_t.merge(grid_cost[grid_cost["urb_rur"] == ur], + how = "left") + inv_t["value"] = inv_t["tot_cost_usd2010_kW"] + inv_t = inv_t[['node_loc', 'technology', 'year_vtg', 'value', 'unit',]] + inv_t = inv_t[inv_t["year_vtg"] >= last_vtg_year] + + sc.add_par('inv_cost',inv_t) + # fix cost + fix_t = sc.par('fix_cost',{'technology' : "elec_t_d"}) + fix_t['technology'] = 'elec_t_d_basin'+ur + fix_t["node_loc"] = np.nan + fix_t = fix_t.pipe(broadcast, node_loc = ba) + fix_t = fix_t[fix_t["year_vtg"] >= last_vtg_year] + sc.add_par('fix_cost',fix_t) + # add var cost + var_t = sc.par('var_cost',{'technology' : "elec_t_d"}) + # add the mode dimension when creating heterogenous cost mapping + var_t["mode"] = np.nan + var_t["node_loc"] = np.nan + var_t["time"] = np.nan + var_t = var_t.pipe(broadcast, map_mode_node_t,time = ti) + var_t['technology'] = 'elec_t_d_basin'+ur + var_t = var_t[var_t["year_vtg"] >= last_vtg_year] + sc.add_par('var_cost',var_t) + + # add sp_el_I and sp_el_RC to link the new transmission technologies to the new demands + # between transmission and final user there is a splitter that takes some energy form rural generation + + inp = sc.par('input',{'technology' : "sp_el_I"}) + inp["time"] = np.nan + inp["node_loc"] = np.nan + inp = inp.pipe(broadcast, time = ti, + node_loc = ba) + inp["level"] = 'final'+ur + inp["time_origin"] = inp["time"] + inp["node_origin"] = inp["node_loc"] + + inp_I = inp.copy(deep = True) + inp_I['technology'] = 'sp_el_I_basin'+ur + inp_RC = inp.copy(deep = True) + inp_RC['technology'] = 'sp_el_RC_basin'+ur + inp_RC = inp_RC[inp_RC["year_vtg"] >= last_vtg_year] + sc.add_par('input', pd.concat([inp_I,inp_RC]) ) + # output, need to be split into basins + out = sc.par('output',{'technology' : "sp_el_I"}) + out["time"] = np.nan + out["node_loc"] = np.nan + out = out.pipe(broadcast, time = ti, + node_loc = ba) + out["time_dest"] = out["time"] + out["node_dest"] = out["node_loc"] + + out_I = out.copy(deep = True) + out_I['technology'] = 'sp_el_I_basin'+ur + out_I['commodity'] = 'ind_man'+ur + out_RC = out.copy(deep = True) + out_RC['technology'] = 'sp_el_RC_basin'+ur + out_RC['commodity'] = 'res_com'+ur + + #existing capacity should be added + # 1. first save a model output where the model builds needed capacity in 2020 + # 2. that can be used as calibration and to be compared with OnSSET data + # This is done externlly to this function, in calib_energy() + out_RC = out_RC[out_RC["year_vtg"] >= last_vtg_year] + sc.add_par('output', pd.concat([out_I,out_RC]) ) + + sc.commit('new electricity transmission') + print('New distribution and linkaged to basin\'s demand added') + +def add_offgrid_gen(sc): + + # get some info needed + first_year = sc.firstmodelyear + years = sc.set("year") + + ti = list(sc.set('time')) + ti.remove('year') + # lifetime of offgrid technologies + lt = 30 + yv_ya_gr = map_yv_ya_lt(years[years >= first_year-lt], lt, first_year) + + # add needed sets + sc.check_out() + sc.add_set("technology",["offgrid_urb","offgrid_rur"]) + sc.add_set("level",["offgrid_final_urb","offgrid_final_rur"]) + + file = "energy_total_all.csv" + path_csv = private_data_path('projects','leap_re_nest',file) + onsset_en = pd.read_csv(path_csv) + + strings = ["B"+ str(x) for x in onsset_en['BCU']] + onsset_en['BCU'] = strings + + nodes = list(sc.set('node')) + nodes_df = pd.DataFrame({ + "node" : nodes, + "BCU" : [x.split("|")[0] for x in nodes] + }) + + # Calculate the share of grid vs offgrid generation and use it to make a + # share constraints + df = onsset_en.merge(nodes_df,how = 'left') + df_grid = df.copy() + df_grid["tec"][df_grid["tec"] != "grid"] = "offgrid" + df_grid = (df_grid + .groupby(['node','year','urb_rur',"tec"],as_index=False) + .sum("value") + ) + df_grid = (df_grid + .groupby(['node','year','urb_rur']) + .apply(lambda grp: grp.assign(share = lambda x: x.value / x.value.sum() ) ) + ) + df_grid["urb_rur"] = "_" + df_grid["urb_rur"] + + # also calculate the share of different off-grid technologies within + # the off-grid generation. This is used to assign costs to the single + # off-grid technology + + df_off = df.copy() + df_off = df_off[df_off["tec"] != "grid"] + df_off = (df_off + .groupby(['node','year','urb_rur']) + .apply(lambda grp: grp.assign(share = lambda x: x.value / x.value.sum() ) ) + ) + + # load file with investment cost assumption from OnSSET + file = "OnSSET_cost_paramters.xlsx" + path_xls = private_data_path('projects','leap_re_nest',file) + tec_cost = pd.read_excel(path_xls, sheet_name="for_NEST") + + df_offc = df_off.merge(tec_cost,how = "left") + df_offc['tot_cost'] = df_offc["share"] * df_offc["inv_cost"] + df_offc = (df_offc + .groupby(['node','year','urb_rur'],as_index=False) + .sum("tot_cost") + ) + + df_offc["urb_rur"] = "_" + df_offc["urb_rur"] + + for ur in ["_urb","_rur"]: + + # only one off-grid technology + out_t = ( + make_df( + "output", + technology = "offgrid" + ur, + commodity = "electr", + level = "offgrid_final"+ur, + time = ti, + mode = "M1", + unit = "GWa", + value = 1, + ) + .pipe(broadcast,yv_ya_gr, + node_loc = df.node.unique(), + ) + .pipe(same_node) + .pipe(same_time) + ) + + # lifetime + lt_t = ( + make_df( "technical_lifetime", + technology = "offgrid" + ur, + year_vtg = out_t.year_vtg.unique(), + unit = "year", + value = lt + ) + .pipe(broadcast, + node_loc = df.node.unique() ) + ) + + # capital cost + inv_df = df_offc[df_offc['urb_rur'].str.contains(ur) ] + + inv_t = ( + make_df( "inv_cost", + technology = "offgrid" + ur, + # year_vtg = inv_df["year"], # to change once we have values for all years + unit = "USD/kW", + node_loc = inv_df["node"], + value = 3000 if inv_df.empty else inv_df["tot_cost"] + ) + .pipe(broadcast, + year_vtg = out_t.year_vtg.unique() + ) + ) + + # add paramenters + sc.add_par("output",out_t) + sc.add_par("technical_lifetime",lt_t) + sc.add_par("inv_cost",inv_t) + + # add technology with share constraint + sc.add_set("technology",["elec_fin" + ur]) + map_lvl_mode = pd.DataFrame({"level" : ["sec" + ur, "offgrid_final" + ur], + "mode" : ["M1","M2"]}) + inp_f = ( + make_df("input", + technology = "elec_fin" + ur, + commodity = "electr", + year_vtg = out_t.year_vtg.unique(), + year_act = out_t.year_vtg.unique(), + unit = "GWa", + value = 1 + ) + .pipe(broadcast, map_lvl_mode, + time = ti, + node_loc = df.node.unique()) + .pipe(same_node) + .pipe(same_time) + ) + + out_f = ( + make_df("output", + technology = "elec_fin" + ur, + commodity = "electr", + level = "final" + ur, + year_vtg = out_t.year_vtg.unique(), + year_act = out_t.year_vtg.unique(), + unit = "GWa", + value = 1 + ) + .pipe(broadcast, mode = ["M1","M2"], + time = ti, + node_loc = df.node.unique()) + .pipe(same_node) + .pipe(same_time) + ) + + sc.add_par("input",inp_f) + sc.add_par("output",out_f) + + # add share for the electricity use from df_gridd + sc.add_set("shares",["share_grid"]) + share_df = df_grid[df_grid['urb_rur'].str.contains(ur) ] + share_df["share"][share_df["share"].isna() ] = 1 + share_g = share_df[share_df["tec"] == "grid"] + share_og = share_g.copy() + share_og["tec"] = "offgrid" + share_og["share"] = 1 - share_og["share"] + share_df = pd.concat([share_g,share_og]) + + share_df["mode"] = np.where(share_df['tec'] == "grid", 'M1','M2') + + share_f = ( + make_df( + "share_mode_up", + shares="share_grid", + technology="elec_fin"+ur, + mode=share_df["mode"], + node_share=share_df["node"], + value=share_df["share"], + unit="%", + # year_act=df_sw["year"], # to be fixed when we have annual values + ) + .pipe(broadcast, + time = ti, + year_act = out_t.year_vtg.unique() ) + ) + + sc.add_par("share_mode_up",share_f) + sc.add_par("share_mode_lo",share_f) + + sc.commit("adding off-grid generation and share constraints") + print("Adding off-grid generation and share constraints") + +def calib_energy(sc,sc_cali): + """ calibrating the historical capacity of different energy technologies + including transmission lines + """ + calib_cap = sc_cali.var("CAP_NEW") + calib_cap = calib_cap[(calib_cap["year_vtg"] == 2020) & + (calib_cap["lvl"] > 0)] + calib_cap["value"] = calib_cap["lvl"] + # if set to 2020 it will be inglored by the model (not consider as historical) + calib_cap["year_vtg"] = 2015 + calib_cap.drop(columns = {"lvl","mrg"}, inplace=True) + calib_cap.reset_index(drop = True, inplace=True) + calib_cap["unit"] = "GWa/a" + + # add it as historical new capacity to the main scenario + sc.check_out() + sc.add_par("historical_new_capacity", calib_cap) + sc.commit("calibrating historical new capcity") + print("Calibrated historical new caapcity added to the model") + +def main(sc): + """ Adding transmission technologies in the sub-nodes and off-grid generation + """ + + #load previous total demand in firstmodelyear + + add_trsm_dist_basin(sc) + add_offgrid_gen(sc) + + # calibration + sc_cali = sc.clone(sc.model, sc.scenario + '_cali',keep_solution=False) + sc_cali.check_out() + ytr = sc.set("year") + ytr = ytr[ytr > sc.firstmodelyear] + print("Removing future years for calibration") + sc_cali.remove_set("year",ytr) + sc_cali.commit("removing future years for calibration...") + print( "Running the calibration...") + sc_cali.solve(solve_options={"lpmethod": "4"},model="MESSAGE") + sc_cali.set_as_default() + print("calibration solved") + + calib_energy(sc,sc_cali) + + +if __name__ == '__main__': + # parse sys.argv[1:] using optparse or argparse or what have you + main('test') \ No newline at end of file diff --git a/nest/message_ix_models/project/leap_re_nest/script/add_timeslice.py b/nest/message_ix_models/project/leap_re_nest/script/add_timeslice.py new file mode 100644 index 0000000..79c434b --- /dev/null +++ b/nest/message_ix_models/project/leap_re_nest/script/add_timeslice.py @@ -0,0 +1,1273 @@ +# -*- coding: utf-8 -*- +""" +This script receives a scenario with only 'year' as time slice, and an Excel +file for the input data for a number of sub-annual time slices. +Then the script does the following: + - it reads data of timeslices and their duration from Excel + - it adds timeslices to relevant parameters, e.g., "output", "input", + "capacity_factor", "var_cost" etc., for those technologies that their + electricity generation must be at the sub-annual level. + - adds year-equivalent of all technologies with timeslices, by relations + for summing up each technology to 'year'. + - modifies parameters as needed + Als it can do the following (some are optional): + - remove extra vintage years, and exctra technologies + - correct capacity factor of zero for VRE + - copying historical data to "ref" parameters +""" + +import pandas as pd +import os +from itertools import product +from datetime import datetime +from timeit import default_timer as timer + +# path_files = r"C:\Users\zakeri\Documents\Github\python_scripts" +# os.chdir(path_files) + +# 1.1) A function for reading input data from excel and formatting as needed +def xls_to_df(xls, n_time, nodes, exclude_sheets=["peak_demand"]): + # Converting time series based on the number of time slices + df_time = xls.parse("time_steps", converters={"time": str}) + df_time = df_time.loc[df_time["lvl_temporal"] != "Sum"] + n_xls = len(df_time["time"]) + dur = df_time["duration_time"] + length = int(n_xls / n_time) + par_list = [x for x in xls.sheet_names if x not in ["time_steps"] + exclude_sheets] + + dict_xls = {} + for p in par_list: + df_xls = xls.parse(p) + idx = df_xls.columns[0] + df_xls = df_xls.set_index(idx) + + new = pd.DataFrame(index=range(1, n_time + 1), columns=df_xls.columns) + for col, rate in df_xls.loc["rate", :].to_dict().items(): + df_xls = df_xls.loc[df_xls.index != "rate"] + z = 1 + for i in list(range(0, n_xls, length)): + if rate == "Yes": + new.loc[z, col] = float( + df_xls.iloc[i: i + length, :][col].sum()) + elif rate == "No": + new.loc[z, col] = float( + df_xls.iloc[i: i + length, :][col].mean()) + z = z + 1 + new.loc["rate", col] = rate + + # populating "all" nodes + for col in new.columns: + if col.split(",")[0] == "all": + for node in nodes: + c = node + "," + col.split(",")[1] + new[c] = new.loc[:, col] + new = new.drop(col, axis=1) + + dict_xls[p] = new + + duration = [round(x, 8) for x in dur.groupby(dur.index // length).sum()] + df_time = df_time.loc[0: n_time - 1, :] + df_time["duration_time"] = duration + return duration, df_time, dict_xls + + +# 1.2) A function for updating sets and duration time after adding time slices +def time_setup(sc, df, last_year=False, remove_old_time_lvl=False): + sc.check_out() + # Changing the last year if needed + if last_year: + print("- Removing extra model years...") + for y in [x for x in sc.set("year").tolist() if int(x) > last_year]: + sc.remove_set("year", y) + # sc.commit('') + # sc.check_out() + print("- Extra model years bigger than {}" " removed.".format(str(last_year))) + + # Adding sub-annual time slices to the set 'time' + for t in df["time"].tolist(): + sc.add_set("time", t) + + # Adding sub-annual time levels to the set 'lvl_temporal' + for l in set(df["lvl_temporal"]): + sc.add_set("lvl_temporal", l) + + # Adding temporal hierarchy + df_ref = sc.set("map_temporal_hierarchy") + d = pd.DataFrame(columns=df_ref.columns, index=[0]) + + for i in df.index: + d["lvl_temporal"] = df.loc[i, "lvl_temporal"] + d["time"] = df.loc[i, "time"] + d["time_parent"] = df.loc[i, "parent_time"] + # df = df.append(df_new, ignore_index=True) + sc.add_set("map_temporal_hierarchy", d) + + if remove_old_time_lvl: + sc.remove_set("map_temporal_hierarchy", df_ref) + sc.commit("") + print("- All sets modified for the new time slices.") + + +# 1.3) A function for modifying duration time +def duration_time(sc, df): + sc.check_out() + df_ref = sc.par("duration_time") + d = df_ref.copy() + sc.remove_par("duration_time", df_ref) + + for i in df.index: + d["time"] = df.loc[i, "time"] + d["unit"] = "%" + df["value"] = df.loc[i, "duration_time"] + sc.add_par("duration_time", df) + + check = sc.par("duration_time") + check.loc[0, "value"] = check.loc[0, "value"] + 1.00 - check["value"].sum() + sc.add_par("duration_time", check.loc[[0]]) + sc.commit("duration time modified") + print('- Parameter "duration_time" updated for new values.') + + +# 1.4) Setting up for parameters +def par_setup(sc, dict_xls, par_update): + sc.check_out() + xls_pars = [x for x in dict_xls.keys() if x in sc.par_list()] + + index_cols = {} + for parname in set(list(par_update.keys()) + xls_pars): + if "technology" in sc.idx_names(parname): + index_cols[parname] = "technology" + elif "commodity" in sc.idx_names(parname): + index_cols[parname] = "commodity" + elif "relation" in sc.idx_names(parname): + index_cols[parname] = "relation" + + if parname in xls_pars: + df_xls = dict_xls[parname] + + for item in df_xls.columns: + if df_xls.loc["rate", item] == "No": + if "," in item: + node_col = [x for x in sc.idx_names(parname) if "node" in x] + df_item = sc.par( + parname, + { + index_cols[parname]: [item.split(",")[1]], + node_col[0]: [item.split(",")[0]], + }, + ) + else: + df_item = sc.par(parname, {index_cols[parname]: [item]}) + df_item["value"] = 1 + sc.add_par(parname, df_item) + + if parname not in par_update.keys(): + par_update[parname] = {} + + par_update[parname][item] = df_xls[item].tolist() + sc.commit("") + print("- Input data of parameters are set up.") + return par_update, index_cols + + +# 1.5) The main function for adding timeslices to a scenario +def par_time_update(sc, parname, data_dict, index_col, item_list, n1, nn, sc_ref=None): + sc.check_out() + if not sc_ref: + sc_ref = sc + + node_tec = [ + (k.split(",")[0], k.split(",")[1]) for k in data_dict.keys() if "," in k + ] + node_col = [ + x for x in sc.idx_names(parname) if x in ["node", "node_loc", "node_rel"] + ][0] + for key, ratio in data_dict.items(): + df = [] + + if key == "all": + if item_list: + df_ref = sc_ref.par(parname, {index_col: item_list, "time": "year"}) + else: + df_ref = sc_ref.par(parname, {"time": "year"}) + + # Excluding those technologies that have explicit CF through Excel + df_ref = df_ref.loc[~df_ref[index_col].isin(data_dict.keys())] + + # also for "node,technology" pairs + for x in node_tec: + df_ref = df_ref.loc[ + (df_ref[index_col] != x[1]) & (df_ref[node_col] != x[1]) + ] + + # This part is for those parameters defined per node (key='KAZ,i_spec') + elif "," in key: + + df_ref = sc_ref.par( + parname, + { + index_col: key.split(",")[1], + node_col: key.split(",")[0], + "time": "year", + }, + ) + + else: + df_ref = sc_ref.par(parname, {index_col: key, "time": "year"}) + + if not df_ref.empty: + if nn >= n_time: + sc.remove_par(parname, df_ref) + time_cols = [ + x + for x in sc.idx_names(parname) + if x in ["time", "time_dest", "time_origin"] + ] + + for ti in df_time["time"][n1:nn].tolist(): + df_new = df_ref.copy() + for col in time_cols: + if col == "time_origin": + df_new.loc[df_new["technology"].isin(tec_inp), col] = ti + elif col == "time_dest": + df_new.loc[~df_new["technology"].isin(tec_only_inp), col] = ti + else: + df_new[col] = ti + df_new["value"] *= ratio[df_time["time"].tolist().index(ti)] + df.append(df_new) + + df = pd.concat(df, ignore_index=True) + sc.add_par(parname, df) + sc.commit("") + df = df_new = [] + + +# 1.6) A function for minor adjustments in some parameters +def par_adjust(parname, dict_data, multiplier=0, plus=0): + df = sc.par(parname, dict_data) + df["value"] *= multiplier + df["value"] += plus + sc.add_par(parname, df) + + +# 1.7) Removing cooling technologies from a list +def remove_cooling(sc, tec_list): + print("- Removing cooling technologies...") + # Both commodity and technology must be removed + cool_terms = ["__air", "__cl_fresh", "__ot_fresh", "__ot_saline"] + tec_cool = [ + x + for x in set(sc.set("technology")) + if x in [y + z for (y, z) in product(tec_list, cool_terms)] + ] + # tec_cool = sc2.set('cat_tec', {'type_tec': 'power_plant_cooling'}) + com_cool = [ + x + for x in sc.set("commodity").tolist() + if any([y in x for y in ["cooling", "freshwater"]]) + ] + lvl_cool = ["cooling", "water_supply"] + + sc.check_out() + for x in tec_cool: + sc.remove_set("technology", x) + for x in com_cool: + sc.remove_set("commodity", x) + for x in lvl_cool: + if x in sc.set("level"): + sc.remove_set("level", x) + tec_list = [x for x in tec_list if x not in tec_cool] + tec_rem = list(set([x.split("__")[0] for x in tec_cool])) + print( + "- Cooling technologies for {}, and cooling commodities and" + " levels were removed.".format(tec_rem) + ) + sc.commit("cooling removed") + return sorted(tec_list) + + +# 1.8) Removing data from a parameter if value iz zero +def remove_data_zero(sc, parname, filter_dict, value=0): + sc.check_out() + df = sc.par(parname, filter_dict) + df = df.loc[df["value"] == value] + sc.remove_par(parname, df) + sc.commit("zero removed") + return df + + +# 1.9) removing some parameters if needed +def par_remove(sc, par_dict, verb=True): + for parname, filters in par_dict.items(): + df = sc.par(parname, filters) + sc.remove_par(parname, df) + if verb: + if not filters: + filters = "All" + print('> {} data was removed from parmeter "{}".'.format(filters, parname)) + + +# 1.10) Adding year-equivalent of technologies at the timeslice level +def rel_year_equivalent( + sc, + tec_list, + rel_ref="res_marg", + tec_ref="elec_t_d", + rel_bound="CH4_Emission", + remove_existing=False, +): + """ + sc: object, MESSAGEix scenario + tec_list: list, technologies for which to add a 'year' equivalent relaiton + rel_ref: string, a relation to copy data of relation activity from + tec_ref: string or list, a technology to copy a relation from, if list + the technology and nodes are mapped as ['tec', ['node1', 'node2']] + rel_bound: string, a relation to copy data of relation upper and lower from + remove_existing: boolean, if True all data for (rel_new) is removed + + """ + parname = "relation_activity_time" + for tec in tec_list: + rel_new = tec + "_year" + + # adding sets + if remove_existing and rel_new in set(sc.set("relation")): + sc.remove_set("relation", rel_new) + + sc.add_set("relation", rel_new) + + # The part for technologies in 'time' slices' + df = sc.par(parname, {"relation": rel_ref, "technology": tec_ref}) + df["relation"] = rel_new + df["technology"] = tec + df["value"] = -1 + + # mapping with technical_lifetime + df_lt = sc.par("technical_lifetime", {"technology": tec}) + df_lt = df_lt.set_index(["node_loc", "technology", "year_vtg"]) + df = df.set_index(["node_loc", "technology", "year_act"]) + + if not df_lt.empty: + df = df.loc[df.index.isin(set(df_lt.index))] + df = df.reset_index() + + # The part for equivalent technology at 'year' level + d = df.loc[df["time"] == df["time"][0]].copy() + d["value"] = 1 + d["time"] = "year" + + df = df.append(d, ignore_index=True) + sc.add_par(parname, df) + + # relation upper and lower + df = df.set_index(["node_rel", "year_rel"]) + for par in ["relation_lower_time", "relation_upper_time"]: + df_b = sc.par(par, {"relation": rel_bound}) + df_b = df_b.set_index(["node_rel", "year_rel"]) + df_b = df_b.loc[df_b.index.isin(set(df.index))] + df_b = df_b.reset_index() + + df_b["relation"] = rel_new + sc.add_par(par, df_b) + + +# 1.11) Sorting relations based on their applicability to time slices +def relation_tec( + sc, + tec_list, + times, + rel_yr_ti=["res_marg"], + rel_remain=["CO2_cc", "CO2_trp", "CO2_ind", "CO2_r_c"], +): + + sc.check_out() + print("- Removing extra relations...") + # removing extra relations + for r in ["RES_variable_limt", "gas_prod"]: + if r in set(sc.set("relation")): + sc.remove_set("relation", r) + print(r) + + rel_list = [x for x in sc.set("relation").to_list() if x not in rel_remain] + for r in rel_list: + if ( + sc.par("relation_lower", {"relation": r}).empty + and (sc.par("relation_upper", {"relation": r}).empty) + and (sc.par("relation_cost", {"relation": r}).empty) + ): + sc.remove_set("relation", r) + print(r) + + rel_list = sc.set("relation").to_list() + tec_in = list(set(sc.par("input")["technology"])) + tec_out = list(set(sc.par("output")["technology"])) + tec_in_out = set(tec_in + tec_out) + + rel_time = [] # relations at time level (including their lower/upper) + account = {} # most of accounting relations (will be at year level) + rel_year = [] # relations must be at year (but time related tecs at time) + rel_pot = [] # potential relations (must be at year level) + tecs_free = [] + yr_list = [x for x in sc.set("year") if x >= sc.firstmodelyear] + + for r in rel_list: + d = sc.par("relation_activity", {"relation": r, "year_act": yr_list}) + + # free technologies (have no input/output) + tec_free = [x for x in set(d["technology"]) if x not in tec_in_out] + tecs_free = tecs_free + tec_free + + # technologies in this relation that must be at time level + tec_time = [x for x in set(d["technology"]) if x in tec_list] + tec_time = tec_time + tec_free + + # if all tecs at time slices, then the relation at time level + if len(tec_time) == len(set(d["technology"])): + rel_time.append(r) + + # if all tecs at time slice but one not, collected as accounting for now + elif len(tec_time) + 1 == len(set(d["technology"])) and len(tec_time) > 0: + account[r] = [x for x in set(d["technology"]) if x not in tec_time][0] + + # all other relations (mix of time and non-time tecs, at year level) + else: + rel_year.append(r) + + d2 = sc.par("relation_upper", {"relation": r, "year_rel": yr_list}) + if not d2.empty: + if d2["value"].mode()[0] != 0: + rel_pot.append(r) + d3 = sc.par("relation_lower", {"relation": r, "year_rel": yr_list}) + if not d3.empty: + if d3["value"].mode()[0] != 0: + rel_pot.append(r) + + # potential and accounting relations will be accounted at the year level + rel_year2 = [x for x in rel_pot if x not in rel_year] + rel_year3 = [x for x in set(account.keys()) if x not in rel_year] + + # here we exclude all relations that can be with time index but not urgent + rel_year4 = [x for x in rel_time if x[0].isupper()] + + # min/max and 'res_marg' at the 'year' level + rel_year5 = [ + x + for x in rel_time + if any( + [y in x for y in ["min", "max", "lim", "unabated", "weight", "res_marg"]] + ) + ] + + # final set of year and time relations + rel_yr = sorted(rel_year + rel_year2 + rel_year3 + rel_year4 + rel_year5) + rel_ti = [x for x in rel_time if x not in rel_yr] + + # 1) adding relation for year level + df = sc.par("relation_activity", {"relation": rel_yr, "year_act": yr_list}) + + # Not adding 'time' for relations at 'year' (except 'res_marg') + df_yr = df.loc[~df["relation"].isin(rel_yr_ti)].copy() + df_yr = df_yr.append( + df.loc[(df["relation"].isin(rel_yr_ti)) & (~df["technology"].isin(tec_list))], + ignore_index=True, + ) + df_yr.loc[:, "time"] = "year" + sc.add_par("relation_activity_time", df_yr) + print('- Relation activity for "year" related relations added.') + + # adding relation for time-related technologies in year level + df_ti = df.loc[ + (df["relation"].isin(rel_yr_ti)) & (df["technology"].isin(tec_list)) + ].copy() + + for ti in times: + df_ti.loc[:, "time"] = ti + sc.add_par("relation_activity_time", df_ti) + + # 2) adding relations for time level + df = sc.par("relation_activity", {"relation": rel_ti, "year_act": yr_list}) + for ti in times: + df.loc[:, "time"] = ti + sc.add_par("relation_activity_time", df) + print("- Relation activity for relations at time slice level added.") + + for relname in ["relation_upper", "relation_lower"]: + df = sc.par(relname) + sc.remove_par(relname, df) + df = df.loc[df["year_rel"].isin(yr_list)] + df_yr = df.loc[df["relation"].isin(rel_yr)].copy() + + df_yr.loc[:, "time"] = "year" + sc.add_par(relname + "_time", df_yr) + + df_ti = df.loc[df["relation"].isin(rel_ti)].copy() + for ti in times: + df_ti.loc[:, "time"] = ti + sc.add_par(relname + "_time", df_ti) + + print("- Relation upper and lower updated for time slices.") + + # 3) Conversion of rel_total_capcaity to rel_activity for curtailment + rel_curt = [x for x in rel_list if "curtailment" in x] + df = sc.par("relation_total_capacity", {"relation": rel_curt}) + if not df.empty: + sc.remove_par("relation_total_capacity", df) + + tecs = list(set(df["technology"])) + df = df.loc[df["year_rel"].isin(yr_list)] + df = df.set_index(["node_rel", "technology", "year_rel"]).sort_index() + + # first, dividing by capacity factor of the respective technologies + cf = ( + sc.par("capacity_factor", {"technology": tecs}) + .groupby(["node_loc", "technology", "year_act"]) + .mean() + .sort_index() + ) + + for i in set(df.index): + df.loc[i, "value"] /= cf.loc[i, "value"] + + # then, converting to relation_activity + df = df.reset_index() + df["year_act"] = df["year_rel"] + df["node_loc"] = df["node_rel"] + df["mode"] = "M1" + for ti in times: + df.loc[:, "time"] = ti + sc.add_par("relation_activity_time", df) + print( + "- Relation total capacity converted to activity for" + " curtailment technologies." + ) + + # 4) Adding year equivalent relation for technologies at 'time' level + print( + "- Adding year-equivalent relations for technologies" + " active at time slice level..." + ) + rel_year_equivalent(sc, tec_list) + + # 5) Removing relation_activity for all + sc.remove_par("relation_activity", sc.par("relation_activity")) + sc.commit("relations updated") + print("- Relations were successfully set up for time slices.") + return rel_yr, rel_ti + + +# 1.12) Adding mapping parameters +def mapping_sets(sc, par_list): + sc.check_out() + for parname in par_list: + setname = "is_" + parname + + # initiating the sets + idx_s = sc.idx_sets(parname) + idx_n = sc.idx_names(parname) + try: + sc.set(setname) + except: + sc.init_set(setname, idx_sets=idx_s, idx_names=idx_n) + print("- Set {} was initiated.".format(setname)) + + # emptying old data in sets + df = sc.set(setname) + sc.remove_set(setname, df) + + # adding data to the mapping sets + df = sc.par(parname) + if not df.empty: + # for i in df.index: + # d = df.loc[i, :].copy().drop(['value', 'unit']) + df = df.drop(["value", "unit"], axis=1) + sc.add_set(setname, df) + + print('- Mapping sets updated for "{}"'.format(setname)) + sc.commit("") + + +# 1.13) Initialization of new parameters +def init_par_time(sc, par_list=[]): + sc.check_out() + if not par_list: + par_list = [ + "emission_factor", + "relation_activity", + "relation_upper", + "relation_lower", + ] + for parname in par_list: + idx_s = sc.idx_sets(parname) + ["time"] + idx_n = sc.idx_names(parname) + ["time"] + try: + sc.par(parname + "_time") + except: + sc.init_par(parname + "_time", idx_sets=idx_s, idx_names=idx_n) + print("- Parameter {} was initiated.".format(parname + "_time")) + for setname in ["is_relation_lower_time", "is_relation_upper_time"]: + p = setname.split("is_")[1] + idx_s = sc.idx_sets(p) + idx_n = sc.idx_names(p) + try: + sc.set(setname) + except: + sc.init_set(setname, idx_sets=idx_s, idx_names=idx_n) + print("- Set {} was initiated.".format(setname)) + + sc.commit("") + + +# 1.14) Updating reserve margin +def update_res_marg(sc, path_xls, sc_ref=[], # based on a reference scenario + parname='relation_activity_time', + reserve_margin=0.2, # on top of peak load for reserves + xls_sheet='peak_demand', nodes='all'): + # Notice: if based on sc_ref, double check if should reserve_margin = 0 + + # 1) Loading Excel data (peak demand per region in GW) + xls = pd.ExcelFile(path_xls) + df = xls.parse('peak_demand').set_index('year') + peak = df.loc['peak', :] + peak_growth = df.loc[df.index != 'peak'] + + + resm_old = sc.par(parname, {'relation': 'res_marg', + 'technology': 'elec_t_d'}) + if sc_ref: + resm_ref = sc_ref.par('relation_activity', {'relation': 'res_marg', + 'technology': 'elec_t_d'}) + dem_ref = sc_ref.par('demand', {'commodity': ['i_spec', 'rc_spec']}) + dem_ref = dem_ref.groupby(['node', 'year', 'time']).sum() + + + if nodes == 'all': + nodes = list(set(resm_old['node_loc'])) + + if 'time' not in sc.idx_names(parname): + resm_old['time'] = 'year' + if sc_ref: + resm_ref['time'] = 'year' + resm_ref = resm_ref.set_index(['node_loc', 'year_act', 'time'] + ).sort_index() + + resm = resm_old.set_index(['node_loc', 'year_act', 'time']).sort_index() + + # Total electricity demand + dur = sc.par('duration_time') + dem = sc.par('demand', {'commodity': ['i_spec', 'rc_spec']}) + dem = dem.groupby(['node', 'year', 'time']).sum().reset_index() + d = dem.pivot_table(values='value', + columns='year', index=['node', 'time']) + dem_growth = d.copy() + yr_first = sc.firstmodelyear + dem_growth[yr_first] = 0 + for yr in [x for x in dem_growth.columns if x > yr_first]: + dem_growth[yr] = (d[yr] - d[yr_first]) / d[yr_first] + + # Finding max demand based on duration time + dem['actual'] = 0 + for t in set(sc.set('time')): + dem.loc[dem['time'] == t, 'actual' + ] = dem.loc[dem['time'] == t, 'value'] / float( + dur.loc[dur['time'] == t, 'value']) + dem_max = dem.loc[dem.groupby(['node', 'year'])['actual'].idxmax()].set_index( + ['node', 'year', 'time']) + + # udating res_marg only for timeslices that maximum demand (GW) happens + resm = resm.loc[resm.index.isin(dem_max.index)] + + for i in resm.index: + if sc_ref: + ref_res = float(resm_ref.loc[(i[0], i[1]), 'value']) + ref_dem = float(dem_ref.loc[(i[0], i[1]), 'value']) + peak_dem = -ref_res * ref_dem + else: + growth_demand = 1 + dem_growth.loc[(i[0], i[2]), i[1]] + growth_peak = 1 + peak_growth.loc[i[1], i[0]] + peak_dem = float(peak[i[0]]) * growth_demand * growth_peak + + # duration = float(dur.loc[dur['time'] == i[2], 'value']) + # max_dem = dem.loc[i, 'value'] / duration + max_dem = dem_max.loc[i, 'actual'] + + if (peak_dem / max_dem) < 1: + new_res = - (1. + reserve_margin) + else: + new_res = - (peak_dem / max_dem) * (1. + reserve_margin) + + resm.loc[i, 'value'] = new_res + + if 'time' not in sc.idx_names(parname): + resm = resm.reset_index().drop(['time'], axis=1) + + sc.check_out() + sc.remove_par(parname, resm_old) + sc.add_par(parname, resm.reset_index()) + sc.commit('res_marg updated') + print('- Reserve margin updated based on the new peak demand data.') + + +# 1.15) Copying historical data to "ref" parameters +def historical_to_ref(sc, year_list=[], sc_ref=None, regions=all, + remove_ref=True): + + if regions == all: + regions = list(sc.set('node')) + + sc.check_out() + + if not year_list: + year_list = [x for x in set(sc.set('year')) if x < sc.firstmodelyear] + + par_list = ['historical_activity', 'historical_new_capacity', + 'historical_extraction'] + par_list_ref = [x.replace('historical', 'ref') for x in par_list] + + # If no reference scenario is given, uses the same scenario + if not sc_ref: + sc_ref = sc + + # Remove the existing "ref" data + if remove_ref: + for parname in par_list_ref: + node_col = [x for x in sc.par(parname).columns if 'node' in x][0] + year_col = [x for x in sc.par(parname).columns if 'year' in x][0] + df_ref = sc.par(parname, {node_col: regions, year_col: year_list}) + sc.remove_par(parname, df_ref) + + # Add new "ref" data + for parname in par_list: + node_col = [x for x in sc.par(parname).columns if 'node' in x][0] + year_col = [x for x in sc.par(parname).columns if 'year' in x][0] + df_par = sc_ref.par(parname, {node_col: regions, year_col: year_list}) + if not df_par.empty: + sc.add_par(par_list_ref[par_list.index(parname)], df_par) + + print('> The content of parameter "{}" was copied to "{}" to the scenario.'.format(parname, + par_list_ref[par_list.index(parname)])) + + sc.commit(' ') +# %% 2) Input data and specifications +if __name__ == "__main__": + import ixmp as ix + import message_ix + + mp = ix.Platform(name="ene_ixmp", jvmargs=["-Xms2g", "-Xmx14g"]) + start = timer() + # model, scenario, version, suffix of Excel file + # Country model: 'MESSAGE_China', 'baseline', 7, '48' (cleaned up, VRE new, unit, 2110) + model_ref = "MESSAGEix_China" + scenario_ref = "baseline" + version_ref = None + model_family = "CHN" + n_time = 48 # number of time slices <= file ID + file_id = "48" + + path_files = r"C:\Users\zakeri\Documents\Github\time_clustering" + path_xls = path_files + "\\scenario work\\China\\data" + xls_file = "input_data_" + file_id + "_" + model_family + ".xlsx" + + os.chdir(path_files) + + clone = True # if True, clones a new scenario + model_new = model_ref + scenario_new = scenario_ref + "_t" + str(n_time) + version_new = 1 # if clone False will be used + + interval = 50 # intervals for commiting to the DB (no impact on results) + set_update = True # if True, adds time slices and set adjustments + last_year = None # either int (year) or None (removes extra years) + node_exlude = ["World"] # nodes to be excluded from the timeslicing + + # 2) Adjustment related to general cleanup + vre_cleanup = False # do it if not yet, cleanup VRE and new implementation + unit_correct = False # if True, corrects the units + cleaning = False # cleanup of technologies and relations + + # 3) Adjustment related to cleanup before adding time slices + remove_old_time_lvl = True # if True, removes old temporal mapping + remove_cool_tec = True # if True, removes all cooling technologies + remove_extra_vintage = False # removes vintaging before 2020 (not safe) + + # 3) Adjustment after adding time slices + growth_act_adjust = True # if true, does some adjustments for growth rates + + # a relation to connect collectors and their input tecs (not needed) + add_relation_collector = False + + # adding index of 'time' to parameters like rel_activity (removes old data) + add_time_index = [] # ['emission_factor'] # a list of parameters or [] + + # if True, finds relations for tecs at time slice level and addes times + relation_modification = True + + # if True, the content of historical parameters will be copied to ref + history_to_ref = False + + # if a list, removes those parameters like relation_activity # can be [] + par_old_removal = [ # 'relation_activity', 'relation_upper', 'relation_lower', + # 'relation_cost', + ] + # updating reserve margin + update_reserve_marg = True # if True, based on Excel sheet: peak_demand + # 2.1) Loading/clonning scenarios + print("- Loading reference scenario and cloning...") + sc_ref = message_ix.Scenario( + mp, model=model_ref, scenario=scenario_ref, version=version_ref + ) + if clone: + sc = sc_ref.clone(model=model_new, scenario=scenario_new, keep_solution=False) + else: + sc = message_ix.Scenario( + mp, model=model_new, scenario=scenario_new, version=version_new + ) + # sc_ref = None + version_cloned = sc.version + + if sc.has_solution(): + sc.remove_solution() + + # try: + # sc.par("storage_initial") + # except: + # addNewParameter(sc, path_xls, remove_par=True) + + nodes = [x for x in sc.set("node") if x not in ["World"] + node_exlude] + + # 2.2) Loading Excel data (time series) + xls = pd.ExcelFile("//".join([path_xls, xls_file])) + + # ----------------------------------------------------------------------------- + # 3) Updating sets related to time + # Adding subannual time slices to the relevant sets + duration, df_time, dict_xls = xls_to_df(xls, n_time, nodes) + times = df_time["time"].tolist() + + if set_update: + time_setup(sc, df_time, last_year) + duration_time(sc, df_time) + if last_year: + df = sc.par("bound_activity_up") + assert max(set(df["year_act"])) <= last_year + + # ----------------------------------------------------------------------------- + # 4) Modifying some parameters before adding sub-annual time slices + # List of technologies that will have output to time slices + # sectors/commodities represented at time slice level + # Representaiton model (input= to, ta ... output: ta, td) + + print("- Identifying technologies to be represented at subannual level...") + sectors = ["rc_spec", "i_spec", "i_therm", "rc_therm", "transport"] + coms = ["electr", "d_heat"] + + tec_out = list(set(sc.par("output", {"commodity": coms + sectors})["technology"])) + extra_com = ["Trans", "Itherm", "RCtherm", "back_"] + tec_out = sorted([x for x in tec_out if not any([y in x for y in extra_com])]) + len(tec_out) + + # List of technologies that must have input from time slices + tec_inp = sorted(set(sc.par("input", {"commodity": coms})["technology"])) + len(tec_inp) + + # Excluding technologies with zero output from time slices + df_rem_out = set( + remove_data_zero(sc, "output", {"technology": tec_out})["technology"] + ) + tec_out = sorted([x for x in tec_out if x not in df_rem_out]) + + df_rem_in = set( + remove_data_zero(sc, "input", {"technology": tec_inp})["technology"] + ) + tec_inp = sorted([x for x in tec_inp if x not in df_rem_in]) + len(tec_inp) + + # technologies with output to 'useful' level (already timeslices in demand) + use_tec = set( + sc.par("output", {"commodity": sectors, "level": "useful"})["technology"] + ) + + # Technologies with only input needed at timeslice (output: 'year'/nothing) + # representaiton mode (to='1', ta='1' ... ta='1', td='year') + tec_only_inp = [x for x in tec_inp if x not in tec_out and x not in use_tec] + len(tec_only_inp) + + # All technologies relevant to time slices + tec_list = tec_out + tec_inp + + if remove_cool_tec: + tec_list = remove_cooling(sc, tec_list) + tec_list = list(set(tec_list)) + + if remove_extra_vintage: + extra_y = [int(y) for y in sc.set("year") if int(y) < sc.firstmodelyear] + for parname in [ + p + for p in sc.par_list() + if len([y for y in set(sc.idx_names(p)) if "year" in y]) == 2 + and "year_act" in set(sc.idx_names(p)) + ]: + df_rem = sc.par(parname, {"year_act": extra_y}) + sc.remove_par(parname, df_rem) + + # first initialization of parameters with time slice + init_par_time(sc) + + # second, converting and updating relation parameters + if relation_modification: + relation_tec(sc, tec_list, times) + + # finding relevant parameters + par_list = [ + x + for x in sc.par_list() + if "time" in sc.idx_sets(x) and "technology" in sc.idx_sets(x) + ] + + # parameters that should get the same value as 'year' + par_equal = [ + "input", + "output", + "capacity_factor", + "var_cost", + # 'growth_activity_up', 'growth_activity_lo', + # 'level_cost_activity_soft_up', + # 'level_cost_activity_soft_lo', + # 'soft_activity_lo', 'soft_activity_up', + ] + + # parameters that should divide values of 'year' between time slices + par_divide = [ # 'demand' # demand will be treated from EXcel + # 'historical_activity', + # 'bound_activity_lo', 'bound_activity_up', + # 'initial_activity_up', 'initial_activity_lo', + # 'abs_cost_activity_soft_up', 'abs_cost_activity_soft_lo', + ] + + # parameters that should be neglected for time slices (removed) + par_ignore = [] + + sc.check_out() + par_update = {} # a dictionary for updating parameters with time index + for parname in par_list: + if parname in par_equal: + par_update[parname] = {"all": [1] * n_time} + elif parname in par_divide: + par_update[parname] = {"all": duration} + elif parname in par_ignore: + par_remove(sc, {parname: {"technology": tec_list}}, verb=False) + sc.commit("") + + # Moving parameters with no 'time' index to the new ones with 'time' + for parname in add_time_index: + df = sc.par(parname) + df_new = df.copy() + df_new["time"] = "year" + sc.remove_par(parname, df) + sc.add_par(parname + "_time", df_new) + par_update[parname + "_time"] = {"all": [1] * n_time} + + # Setting up the data and values of parameters + par_update, index_cols = par_setup(sc, dict_xls, par_update) + + print("- Parameters are being modified for time slices...") + for parname, data_dict in par_update.items(): + index_col = index_cols[parname] + if index_col == "technology": + item_list = tec_list + else: + item_list = None + n1 = 0 + while n1 < n_time: + nn = min([n_time, n1 + interval - 1]) + par_time_update(sc, parname, data_dict, index_col, item_list, n1, nn) + print(" ", end="\r") + print(str(nn + 1), end="\r") + n1 = n1 + interval + print('- Time slices added to "{}".'.format(parname)) + print("- All parameters sucessfully modified for time slices.") + + # ------------------------------------------------------------------------- + # 5) Doing some adjustments and solving + sc.check_out() + + # Finding other commodity/levels that must be at the time slice level + # 1) Correcting input of tec_inp technologies + com_div = [] + for t in tec_inp: + # technologies with electr input that have other input commodities too + df = sc.par("input", {"technology": t}) + df = df.loc[~df["commodity"].isin(coms + sectors)].set_index( + ["commodity", "level"] + ) + com_div = com_div + list(set(df.index)) + com_div = set(com_div) + print( + "- Divider technologies being added for commodity/levels of" + ": {}".format(com_div) + ) + + for x in com_div: + tec = x[0] + "_divider" + sc.add_set("technology", tec) + + yr_list = [int(x) for x in sc.set("year") if int(x) >= sc.firstmodelyear] + df = sc.par( + "input", + { + "commodity": x[0], + "level": x[1], + "time": "year", + "year_act": yr_list, + "year_vtg": yr_list, + }, + ) + df = df.loc[(df["year_act"] == df["year_vtg"])].copy() + + df["technology"] = tec + df = df.drop_duplicates() + df["value"] = 1 + + for ti in df_time["time"].tolist(): + df["time"] = ti + sc.add_par("input", df) + + df2 = df.copy() + df2 = df2.rename( + {"time_origin": "time_dest", "node_origin": "node_dest"}, axis=1 + ) + df2["time_dest"] = ti + sc.add_par("output", df2) + + # 2) Correcting output of tec_out technologies + com_coll = [] + for t in tec_out: + df = sc.par("output", {"technology": t}) + df = df.loc[~df["commodity"].isin(coms + sectors)].set_index( + ["commodity", "level"] + ) + com_coll = com_coll + list(set(df.index)) + com_coll = set(com_coll) + print( + "- Collector technologies being added for commodity/levels of" + ": {}".format(com_coll) + ) + + for x in com_coll: + tec = x[0] + "_collector" + sc.add_set("technology", tec) + + df = sc.par( + "output", + { + "commodity": x[0], + "level": x[1], + "time": times, + "year_act": yr_list, + "year_vtg": yr_list, + }, + ) + t_list = list(set(df["technology"])) + df = df.loc[(df["year_act"] == df["year_vtg"])].copy() + + df["technology"] = tec + df = df.drop_duplicates() + df["value"] = 1 + df["time_dest"] = "year" + + for ti in times: + df["time"] = ti + sc.add_par("output", df) + + # adding input of collector + inp = df.copy() + inp = inp.rename( + {"time_dest": "time_origin", "node_dest": "node_origin"}, axis=1 + ) + inp["node_origin"] = inp["node_loc"] + inp["time_origin"] = ti + sc.add_par("input", inp) + + # adding a relation for collectors + if add_relation_collector: + rel = x[0] + "_aggregation" + sc.add_set("relation", rel) + rac = df.copy() + rac = rac.rename( + { + "commodity": "relation", + "year_vtg": "year_rel", + "node_dest": "node_rel", + }, + axis=1, + ).drop(["time_dest", "level"], axis=1) + rac["relation"] = rel + rac["value"] = -1 + sc.add_par("relation_activity_time", rac) + dlo = rac.copy().drop( + ["node_loc", "year_act", "technology", "mode"], axis=1 + ) + dlo["value"] = 0 + sc.add_par("relation_lower_time", dlo) + + rac["value"] = 1 + for tec, ti in product(t_list, times): + rac["technology"] = tec + rac["time"] = ti + sc.add_par("relation_activity_time", rac) + + if par_old_removal: + for par in par_old_removal: + par_remove(sc, {par: {}}) + + # Saving tec_list as a tec_type + for t in tec_list: + sc.add_cat("technology", "time_slice", t) + print( + "- Technologies active at time slice level saved with a type_tec" + ' of "time_slice" in this scenario.' + ) + + # Adjusting of dynamic act for some technologies + # (if growth and initial parameters were at the "time" level) + if growth_act_adjust: + + if "R11_WEU" in set(sc.set("node")): # for t=12 + par_adjust( + "relation_activity_time", + { + "node_loc": "R11_WEU", + "relation": "UE_res_comm_th_biomass", + "technology": ["useful_res_comm_th"], + }, + multiplier=0.70, + ) + + if "R11_CPA" in set(sc.set("node")): # for t=24 + par_adjust( + "bound_activity_up", + {"node_loc": "R11_CPA", "technology": ["hydro_lc"], "year_act": 2020}, + multiplier=1.05, + ) + + if "R11_SAS" in set(sc.set("node")): + df = sc.par( + "bound_new_capacity_up", + { + "node_loc": "R11_SAS", + "technology": "hydro_lc", + "year_vtg": [ + x for x in set(sc.set("year")) if x >= sc.firstmodelyear + ], + }, + ) + sc.remove_par("bound_new_capacity_up", df) + df["value"] = 41.7 + df = df.rename({"year_vtg": "year_act"}, axis=1) + sc.add_par("bound_total_capacity_up", df) + + # TODO MESSAGE bug: changing capacity factor of zero + tecs = ["wind_ppl", "wind_ppf", "solar_pv_ppl", "hydro_lc", "hydro_hc"] + df = sc.par("capacity_factor", {"technology": tecs, "time": times}) + df = df.loc[df["value"] == 0].copy() + df["value"] = 0.000001 + sc.add_par("capacity_factor", df) + + sc.commit("") + + # Adjustment of reserve margins (in relation_activity_time) + if update_reserve_marg: + update_res_marg( + sc, "//".join([path_xls, xls_file])) + + # copying historical activity to ref_activity + if history_to_ref: + historical_to_ref(sc) + + # At the end, updating mapping sets based on new relation_act_time + mapping_sets(sc, par_list=["relation_upper_time", "relation_lower_time"]) + end = timer() + + print( + "Elapsed time for adding time slices and modifying scenario:", + int((end - start) / 60), + "min and", + round((end - start) % 60, 2), + "sec.", + ) + + casename = sc.model + "__" + sc.scenario + "__v" + str(sc.version) + print( + 'Solving scenario "{}", started at {}, please wait...' + "!".format(casename, datetime.now().strftime("%H:%M:%S")) + ) + start = timer() + sc.solve(case=casename, solve_options={"lpmethod": "4"}) + end = timer() + print( + "Elapsed time solving scenario:", + int((end - start) / 60), + "min and", + round((end - start) % 60, 2), + "sec.", + ) + + # %% Some specific adjustments for some scenarios + # 1) Correcting historical activity of some technologies from Excel + parname = "historical_activity" + xls = pd.ExcelFile("//".join([path_xls, xls_file])) + df_xls = xls.parse(parname, converters={"time": str}) + df_xls = df_xls.set_index(df_xls.columns[0]) + + sc.check_out() + for tec in df_xls.columns: + df = sc.par(parname, {"technology": tec}) + df_yr = df.copy().groupby(["node_loc", "year_act"]).sum() + df_yr = df_yr.loc[df_yr["value"] > 0] + + df = df.set_index(["node_loc", "year_act", "time"]) + for i in df_yr.index: + for ti in df_time["time"].tolist(): + df.loc[(i[0], i[1], ti), "value"] = ( + df_xls.loc[ti, tec] * df_yr.loc[i, "value"] + ) + sc.add_par(parname, df.reset_index()) + + # 2) Removing initial_act_up and _lo for time slices + sc.check_out() + par_list = [ + "initial_activity_up", + "initial_activity_lo", + "growth_activity_up", + "growth_activity_lo", + ] + for parname in par_list: + df = sc.par(parname) + df = df.loc[df["time"] != "year"] + sc.remove_par(parname, df) + sc.commit("") + + # 3) Copying relation parameters back + for p in par_old_removal: + df = sc_ref.par(p) + df = df.loc[df["relation"].isin(set(sc.set("relation")))] + if "technology" in df.columns: + df = df.loc[df["technology"].isin(set(sc.set("technology")))] + sc.add_par(p, df) + + # 4) testing the balance of rc_therm + ti = "1" + dur = float(sc.par("duration_time", {"time": ti})["value"]) + for com, lvl in com_coll: + tec = com + "_collector" + tecs = list( + set(sc.par("output", {"commodity": com, "level": lvl})["technology"]) + ) + df = sc.var("ACT", {"technology": tecs, "year_act": yr_list}) + coll = df.loc[df["technology"] == tec].groupby(["year_act"]).sum() + if not coll.empty: + rest = df.loc[df["technology"] != tec].groupby(["year_act"]).sum() + ratio = (rest[rest["lvl"] > 0] / coll[coll["lvl"] > 0])["lvl"] + print( + "- Results for commodity {} at level {} is {}.".format(com, lvl, ratio) + ) + # df=sc.par('input',{'technology':'rc_therm_collector'}) diff --git a/nest/message_ix_models/project/leap_re_nest/utils.py b/nest/message_ix_models/project/leap_re_nest/utils.py new file mode 100644 index 0000000..4f58a48 --- /dev/null +++ b/nest/message_ix_models/project/leap_re_nest/utils.py @@ -0,0 +1,47 @@ +# utils for NEST model +import pandas as pd +from message_ix_models.util import private_data_path + +def map_basin(sc): + """Return specification for mapping basins to regions + + The basins are spatially consolidated from HydroSHEDS basins delineation + database.This delineation is then intersected with MESSAGE regions to form new + water sector regions for the nexus module. + The nomenclature for basin names is | such as R1|AFR + """ + + + # define an empty dictionary + results = {} + # read csv file for basin names and region mapping + # reading basin_delineation + FILE = f"basins_by_region_simpl_ZMB.csv" + PATH = private_data_path("projects","leap_re_nest", "delineation", FILE) + + df = pd.read_csv(PATH) + # Assigning proper nomenclature + df["node"] = "B" + df["BCU_name"].astype(str) + df["mode"] = "M" + df["BCU_name"].astype(str) + df["region"] = df["REGION"].astype(str) + results["node"] = df["node"] + results["mode"] = df["mode"] + # map nodes as per dimensions + df1 = pd.DataFrame({"node_parent": df["region"], "node": df["node"]}) + df2 = pd.DataFrame({"node_parent": df["node"], "node": df["node"]}) + frame = [df1, df2] + df_node = pd.concat(frame) + nodes = df_node.values.tolist() + + results["map_node"] = nodes + + # context.all_nodes = df["node"] + + for set_name, config in results.items(): + + print("Adding set",set_name) + # print("config",config) + # Sets to add + sc.add_set(set_name,config) + + print("sets for nodes updated") \ No newline at end of file From 0b243fedfe2253f71e5b64b0e8757f2fedd85781 Mon Sep 17 00:00:00 2001 From: adrivinca Date: Tue, 28 Feb 2023 12:31:29 +0100 Subject: [PATCH 3/4] Update readme and build for NEST --- .../project/leap_re_nest/build.py | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/nest/message_ix_models/project/leap_re_nest/build.py b/nest/message_ix_models/project/leap_re_nest/build.py index fa79b0b..a2cbb2c 100644 --- a/nest/message_ix_models/project/leap_re_nest/build.py +++ b/nest/message_ix_models/project/leap_re_nest/build.py @@ -23,33 +23,29 @@ # load a scenario # IIASA users -mp = ix.Platform(name='ixmp_dev' , jvmargs=['-Xmx14G']) +# mp = ix.Platform(name='ixmp_dev' , jvmargs=['-Xmx14G']) # external users -# mp2 = ix.Platform(name='local' , jvmargs=['-Xmx14G']) +mp2 = ix.Platform(name='local' , jvmargs=['-Xmx14G']) modelName = 'MESSAGEix_ZM' scenarioName = 'single_node' scen2Name = 'sub-units' # IIASA users -sc_ref = message_ix.Scenario(mp, modelName, scenarioName,cache=True) +# sc_ref = message_ix.Scenario(mp, modelName, scenarioName,cache=True) # sc_ref.to_excel(private_data_path("projects","leap_re_nest","ref_scen.xlsx") ) # # external users in local database -# sc_ref2 = ix.Scenario(mp2, modelName, "test", version='new',annotation="load from excel") -# # the following units seem to not be present in the platform, need to add them the first time -# ix.Platform.add_unit(mp2,unit = 'MUSD/a') -# ix.Platform.add_unit(mp2,unit = 'GWa/a') -# ix.Platform.add_unit(mp2,unit = 'TUSD') - -# sc_ref2.read_excel(private_data_path("projects","leap_re_nest","ref_scen.xlsx"), -# add_units=True, -# init_items=True, -# commit_steps=True) +sc_ref2 = message_ix.Scenario(mp2, modelName, "test", version='new',annotation="load from excel") + +sc_ref2.read_excel(private_data_path("projects","leap_re_nest","ref_scen.xlsx"), + add_units=True, + init_items=True, + commit_steps=True) # sc_ref2.commit("") # sc_ref2.solve(solve_options={"lpmethod": "4"},model="MESSAGE") # for all -sc = sc_ref.clone(modelName, scen2Name,keep_solution=False) +sc = sc_ref2.clone(modelName, scen2Name,keep_solution=False) sc.check_out() # add basins @@ -105,6 +101,9 @@ add_grid_shares_OnSSET.main(sc3) caseName = sc3.model + "__" + sc3.scenario + "__v" + str(sc3.version) +# Solving the model +sc3.solve(solve_options={"lpmethod": "4"},model="MESSAGE", case=caseName) +sc3.set_as_default() # %%4) add water structure @@ -112,9 +111,6 @@ # with the correct scenari name # mix-models --url=ixmp://ixmp_dev/MESSAGEix_ZM/MLED_demand water --regions=ZMB nexus --rcps=7p0 --rels=low -# Solving the model -sc3.solve(solve_options={"lpmethod": "4"},model="MESSAGE", case=caseName) -sc3.set_as_default() +# %% 5) add irrigation and adjust electricity uses in the water # ADD GDP and Pop info in the timeseries - From fe341799ed00f31cfbd8099405dfd998d162a73f Mon Sep 17 00:00:00 2001 From: Adriano Vinca Date: Tue, 28 Feb 2023 14:57:19 +0100 Subject: [PATCH 4/4] Update README.md Nest part --- README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b01b6a7..e4f3445 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Once downloaded, the database(s) (a zipped folder for each of the four models) s - For WaterCROP: - For M-LED: at *line 10* of the `MLED_hourly.R` file, defining the `db_folder` parameter - For OnSSET: include the OnSSET replication data folder unzipped in `onsset\onsset_replication` (more details below) -- For NEST: +- For NEST: The database only raw data needed in the pre-processing phase. The data needed to run the model is already included in the Github repository ## Setting up the environment @@ -66,7 +66,11 @@ Each models is developed in a specific programming language and has thus specifi - Go to the instructions below to run the different OnSSET parts of the model. ### For NEST: - - XXX + - The requirements to run NEST are the same for running MESSAGEix, please check the [MESSAGEix documentation](https://docs.messageix.org/en/stable/install.html) + - Python 3.7 or newer + - GAMS with an active licence for the solver cplex + - R only needed to run pre-processing scripts + - once the setup is installed, also install the content of this folder as a `message-ix-models` package from source, following ths instructions in the `message-ix-models` [documentation](https://docs.messageix.org/projects/models/en/latest/install.html) ## Operating the platform @@ -84,16 +88,18 @@ Each models is developed in a specific programming language and has thus specifi - Open the `OnSSET_Scenario_Running.ipynb` Notebook and run all of the cells. This will take a few minutes and will run the different scenarios and calculate the least-cost electrification options for the entire country. It will output it's results into several folders as .CSV files both as full results files for every population cluster in the country as well as summary files (also used later by NEST). ### For NEST: - - XXX + - After having installed the folder by source (see *Setting up the environment*) run the script `nest\message_ix_models\project\leap_re_nest\build.py` + - around line 126, at * 4) add water structure* follow the instruction and run the command in the command prompt ## Soft-linking the models +**RELEASE NOtE:** the current release is still not including all the exchange of data for future scenarios, which will be included in the next release. + ### WaterCrop to M-LED: - WaterCrop produces netcdf files of irrigation water requirements and yield growth potential for all African countries. These files are contained (and can be updated) in the `./MLED_database/input_folder/watercrop` folder and corresponding subfolders for each crop. These files are then read in the `scenario_countryname.R` file of M-LED. ### WaterCROP to NEST: - - xxx - - + - NEST uses the same input as M-LED ### M-LED to OnSSET: - The details of transferring the demand data from the MLED modelling into OnSSET compatible files are completed in the `MLED_extraction_to_OnSSET.ipynb` notebook in the onsset root folder @@ -128,7 +134,7 @@ In particular results can be examined by: - Otherwise they can be visusalised in GIS software such as QGIS: https://download.qgis.org/. They can be linked back to the cluster .gpkg shape files using a join on the "id" variable to visualise the shapes in addition to the electrification optimization information. - Go to the RE4AFAGRI visualisation platform (coming soon) to see the existing scenarios. -### For NEST: +### For NEST: work in progress ## Support

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