From b23b7a143c4a521e5f39150f72c1514308d0bf1a Mon Sep 17 00:00:00 2001 From: martavp Date: Wed, 8 Jul 2020 16:34:15 +0200 Subject: [PATCH] Add carbon_budget_name and planning_horizons to the wildcards also for the overnight option (they are not used in this case). Also, rename prenetworks_bf to prenetworks_brownfield --- Snakefile | 348 +++++++++++++++++++----------------------------------- 1 file changed, 124 insertions(+), 224 deletions(-) diff --git a/Snakefile b/Snakefile index 60ce0c64..2f3f7a01 100755 --- a/Snakefile +++ b/Snakefile @@ -175,168 +175,133 @@ rule build_industrial_demand: resources: mem_mb=1000 script: 'scripts/build_industrial_demand.py' + +rule prepare_sector_network: + input: + network=pypsaeur('networks/{network}_s{simpl}_{clusters}_ec_lv{lv}_{opts}.nc'), + energy_totals_name='data/energy_totals.csv', + co2_totals_name='data/co2_totals.csv', + transport_name='data/transport_data.csv', + biomass_potentials='data/biomass_potentials.csv', + timezone_mappings='data/timezone_mappings.csv', + heat_profile="data/heat_load_profile_BDEW.csv", + costs="data/costs.csv", #"data/costs/costs_{planning_horizons}.csv", + co2_budget="data/co2_budget.csv", + clustered_pop_layout="resources/pop_layout_{network}_s{simpl}_{clusters}.csv", + industrial_demand="resources/industrial_demand_{network}_s{simpl}_{clusters}.csv", + heat_demand_urban="resources/heat_demand_urban_{network}_s{simpl}_{clusters}.nc", + heat_demand_rural="resources/heat_demand_rural_{network}_s{simpl}_{clusters}.nc", + heat_demand_total="resources/heat_demand_total_{network}_s{simpl}_{clusters}.nc", + temp_soil_total="resources/temp_soil_total_{network}_s{simpl}_{clusters}.nc", + temp_soil_rural="resources/temp_soil_rural_{network}_s{simpl}_{clusters}.nc", + temp_soil_urban="resources/temp_soil_urban_{network}_s{simpl}_{clusters}.nc", + temp_air_total="resources/temp_air_total_{network}_s{simpl}_{clusters}.nc", + temp_air_rural="resources/temp_air_rural_{network}_s{simpl}_{clusters}.nc", + temp_air_urban="resources/temp_air_urban_{network}_s{simpl}_{clusters}.nc", + cop_soil_total="resources/cop_soil_total_{network}_s{simpl}_{clusters}.nc", + cop_soil_rural="resources/cop_soil_rural_{network}_s{simpl}_{clusters}.nc", + cop_soil_urban="resources/cop_soil_urban_{network}_s{simpl}_{clusters}.nc", + cop_air_total="resources/cop_air_total_{network}_s{simpl}_{clusters}.nc", + cop_air_rural="resources/cop_air_rural_{network}_s{simpl}_{clusters}.nc", + cop_air_urban="resources/cop_air_urban_{network}_s{simpl}_{clusters}.nc", + solar_thermal_total="resources/solar_thermal_total_{network}_s{simpl}_{clusters}.nc", + solar_thermal_urban="resources/solar_thermal_urban_{network}_s{simpl}_{clusters}.nc", + solar_thermal_rural="resources/solar_thermal_rural_{network}_s{simpl}_{clusters}.nc" + output: config['results_dir'] + config['run'] + '/prenetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc' + threads: 1 + resources: mem_mb=2000 + benchmark: "benchmarks/prepare_network/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}" + script: "scripts/prepare_sector_network.py" + + + +rule plot_network: + input: + network=config['results_dir'] + config['run'] + "/postnetworks/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc" + output: + map=config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}-costs-all_{co2_budget_name}_{planning_horizons}.pdf", + today=config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}-today.pdf" + threads: 2 + resources: mem_mb=10000 + script: "scripts/plot_network.py" + + +rule copy_config: + input: + networks=expand(config['results_dir'] + config['run'] + "/prenetworks_brownfield/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc", + **config['scenario']) + output: + config=config['summary_dir'] + '/' + config['run'] + '/configs/config.yaml' + threads: 1 + resources: mem_mb=1000 + script: + 'scripts/copy_config.py' + + +rule make_summary: + input: + networks=expand(config['results_dir'] + config['run'] + "/postnetworks/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc", + **config['scenario']), + #plots=expand(config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}-costs-all_{co2_budget_name}_{planning_horizons}.pdf", + # **config['scenario']) + #heat_demand_name='data/heating/daily_heat_demand.h5' + output: + nodal_costs=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_costs.csv', + nodal_capacities=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_capacities.csv', + nodal_cfs=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_cfs.csv', + cfs=config['summary_dir'] + '/' + config['run'] + '/csvs/cfs.csv', + costs=config['summary_dir'] + '/' + config['run'] + '/csvs/costs.csv', + capacities=config['summary_dir'] + '/' + config['run'] + '/csvs/capacities.csv', + curtailment=config['summary_dir'] + '/' + config['run'] + '/csvs/curtailment.csv', + energy=config['summary_dir'] + '/' + config['run'] + '/csvs/energy.csv', + supply=config['summary_dir'] + '/' + config['run'] + '/csvs/supply.csv', + supply_energy=config['summary_dir'] + '/' + config['run'] + '/csvs/supply_energy.csv', + prices=config['summary_dir'] + '/' + config['run'] + '/csvs/prices.csv', + weighted_prices=config['summary_dir'] + '/' + config['run'] + '/csvs/weighted_prices.csv', + market_values=config['summary_dir'] + '/' + config['run'] + '/csvs/market_values.csv', + price_statistics=config['summary_dir'] + '/' + config['run'] + '/csvs/price_statistics.csv', + metrics=config['summary_dir'] + '/' + config['run'] + '/csvs/metrics.csv' + threads: 2 + resources: mem_mb=10000 + script: + 'scripts/make_summary.py' + + +rule plot_summary: + input: + costs=config['summary_dir'] + '/' + config['run'] + '/csvs/costs.csv', + energy=config['summary_dir'] + '/' + config['run'] + '/csvs/energy.csv', + balances=config['summary_dir'] + '/' + config['run'] + '/csvs/supply_energy.csv' + output: + costs=config['summary_dir'] + '/' + config['run'] + '/graphs/costs.pdf', + energy=config['summary_dir'] + '/' + config['run'] + '/graphs/energy.pdf', + #balances=config['summary_dir'] + '/' + config['run'] + '/graphs/balances-energy.pdf' + threads: 2 + resources: mem_mb=10000 + script: + 'scripts/plot_summary.py' + if config["foresight"] == "overnight": - - rule prepare_sector_network: - input: - network=pypsaeur('networks/{network}_s{simpl}_{clusters}_ec_lv{lv}_{opts}.nc'), - energy_totals_name='data/energy_totals.csv', - co2_totals_name='data/co2_totals.csv', - transport_name='data/transport_data.csv', - biomass_potentials='data/biomass_potentials.csv', - timezone_mappings='data/timezone_mappings.csv', - heat_profile="data/heat_load_profile_BDEW.csv", - costs="data/costs.csv", - clustered_pop_layout="resources/pop_layout_{network}_s{simpl}_{clusters}.csv", - industrial_demand="resources/industrial_demand_{network}_s{simpl}_{clusters}.csv", - heat_demand_urban="resources/heat_demand_urban_{network}_s{simpl}_{clusters}.nc", - heat_demand_rural="resources/heat_demand_rural_{network}_s{simpl}_{clusters}.nc", - heat_demand_total="resources/heat_demand_total_{network}_s{simpl}_{clusters}.nc", - temp_soil_total="resources/temp_soil_total_{network}_s{simpl}_{clusters}.nc", - temp_soil_rural="resources/temp_soil_rural_{network}_s{simpl}_{clusters}.nc", - temp_soil_urban="resources/temp_soil_urban_{network}_s{simpl}_{clusters}.nc", - temp_air_total="resources/temp_air_total_{network}_s{simpl}_{clusters}.nc", - temp_air_rural="resources/temp_air_rural_{network}_s{simpl}_{clusters}.nc", - temp_air_urban="resources/temp_air_urban_{network}_s{simpl}_{clusters}.nc", - cop_soil_total="resources/cop_soil_total_{network}_s{simpl}_{clusters}.nc", - cop_soil_rural="resources/cop_soil_rural_{network}_s{simpl}_{clusters}.nc", - cop_soil_urban="resources/cop_soil_urban_{network}_s{simpl}_{clusters}.nc", - cop_air_total="resources/cop_air_total_{network}_s{simpl}_{clusters}.nc", - cop_air_rural="resources/cop_air_rural_{network}_s{simpl}_{clusters}.nc", - cop_air_urban="resources/cop_air_urban_{network}_s{simpl}_{clusters}.nc", - solar_thermal_total="resources/solar_thermal_total_{network}_s{simpl}_{clusters}.nc", - solar_thermal_urban="resources/solar_thermal_urban_{network}_s{simpl}_{clusters}.nc", - solar_thermal_rural="resources/solar_thermal_rural_{network}_s{simpl}_{clusters}.nc" - output: config['results_dir'] + config['run'] + '/prenetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}.nc' - threads: 1 - resources: mem_mb=2000 - benchmark: "benchmarks/prepare_network/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}" - script: "scripts/prepare_sector_network.py" - - + rule solve_network: input: - network=config['results_dir'] + config['run'] + "/prenetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}.nc", - config=config['summary_dir'] + '/' + config['run'] + '/configs/config.yaml' - output: config['results_dir'] + config['run'] + "/postnetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}.nc" + network=config['results_dir'] + config['run'] + "/prenetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc", + costs="data/costs/costs_{planning_horizons}.csv", + + output: config['results_dir'] + config['run'] + "/postnetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc" shadow: "shallow" log: - solver="logs/" + config['run'] + "/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_solver.log", - python="logs/" + config['run'] + "/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_python.log", - memory="logs/" + config['run'] + "/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_memory.log" - benchmark: "benchmarks/solve_network/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}" + solver="logs/" + config['run'] + "/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}_solver.log", + python="logs/" + config['run'] + "/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}_python.log", + memory="logs/" + config['run'] + "/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}_memory.log" + benchmark: "benchmarks/solve_network/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}" threads: 4 resources: mem_mb=config['solving']['mem'] - # group: "solve" # with group, threads is ignored https://bitbucket.org/snakemake/snakemake/issues/971/group-job-description-does-not-contain + # group: "solve" # with group, threads is ignored https://bitbucket.org/snakemake/snakemake/issues/971/group-job-description-does-not-contain script: "scripts/solve_network.py" - - - rule plot_network: - input: - network=config['results_dir'] + config['run'] + "/postnetworks/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}.nc" - output: - map=config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}-costs-all.pdf", - today=config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}-today.pdf" - threads: 2 - resources: mem_mb=10000 - script: "scripts/plot_network.py" - - - rule copy_config: - input: - networks=expand(config['results_dir'] + config['run'] + "/prenetworks/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}.nc", - **config['scenario']) - output: - config=config['summary_dir'] + '/' + config['run'] + '/configs/config.yaml' - threads: 1 - resources: mem_mb=1000 - script: - 'scripts/copy_config.py' - - - rule make_summary: - input: - networks=expand(config['results_dir'] + config['run'] + "/postnetworks/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}.nc", - **config['scenario']), - plots=expand(config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}-costs-all.pdf", - **config['scenario']) - #heat_demand_name='data/heating/daily_heat_demand.h5' - output: - nodal_costs=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_costs.csv', - nodal_capacities=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_capacities.csv', - nodal_cfs=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_cfs.csv', - cfs=config['summary_dir'] + '/' + config['run'] + '/csvs/cfs.csv', - costs=config['summary_dir'] + '/' + config['run'] + '/csvs/costs.csv', - capacities=config['summary_dir'] + '/' + config['run'] + '/csvs/capacities.csv', - curtailment=config['summary_dir'] + '/' + config['run'] + '/csvs/curtailment.csv', - energy=config['summary_dir'] + '/' + config['run'] + '/csvs/energy.csv', - supply=config['summary_dir'] + '/' + config['run'] + '/csvs/supply.csv', - supply_energy=config['summary_dir'] + '/' + config['run'] + '/csvs/supply_energy.csv', - prices=config['summary_dir'] + '/' + config['run'] + '/csvs/prices.csv', - weighted_prices=config['summary_dir'] + '/' + config['run'] + '/csvs/weighted_prices.csv', - market_values=config['summary_dir'] + '/' + config['run'] + '/csvs/market_values.csv', - price_statistics=config['summary_dir'] + '/' + config['run'] + '/csvs/price_statistics.csv', - metrics=config['summary_dir'] + '/' + config['run'] + '/csvs/metrics.csv' - threads: 2 - resources: mem_mb=10000 - script: - 'scripts/make_summary.py' - - - rule plot_summary: - input: - costs=config['summary_dir'] + '/' + config['run'] + '/csvs/costs.csv', - energy=config['summary_dir'] + '/' + config['run'] + '/csvs/energy.csv', - balances=config['summary_dir'] + '/' + config['run'] + '/csvs/supply_energy.csv' - output: - costs=config['summary_dir'] + '/' + config['run'] + '/graphs/costs.pdf', - energy=config['summary_dir'] + '/' + config['run'] + '/graphs/energy.pdf', - balances=config['summary_dir'] + '/' + config['run'] + '/graphs/balances-energy.pdf' - threads: 2 - resources: mem_mb=10000 - script: - 'scripts/plot_summary.py' - - -if config["foresight"] == "myopic": + - rule prepare_sector_network_myopic: - input: - network=pypsaeur('networks/{network}_s{simpl}_{clusters}_ec_lv{lv}_{opts}.nc'), - energy_totals_name='data/energy_totals.csv', - co2_totals_name='data/co2_totals.csv', - transport_name='data/transport_data.csv', - biomass_potentials='data/biomass_potentials.csv', - timezone_mappings='data/timezone_mappings.csv', - heat_profile="data/heat_load_profile_BDEW.csv", - costs="data/costs.csv", #"data/costs/costs_{planning_horizons}.csv", - co2_budget="data/co2_budget.csv", - clustered_pop_layout="resources/pop_layout_{network}_s{simpl}_{clusters}.csv", - industrial_demand="resources/industrial_demand_{network}_s{simpl}_{clusters}.csv", - heat_demand_urban="resources/heat_demand_urban_{network}_s{simpl}_{clusters}.nc", - heat_demand_rural="resources/heat_demand_rural_{network}_s{simpl}_{clusters}.nc", - heat_demand_total="resources/heat_demand_total_{network}_s{simpl}_{clusters}.nc", - temp_soil_total="resources/temp_soil_total_{network}_s{simpl}_{clusters}.nc", - temp_soil_rural="resources/temp_soil_rural_{network}_s{simpl}_{clusters}.nc", - temp_soil_urban="resources/temp_soil_urban_{network}_s{simpl}_{clusters}.nc", - temp_air_total="resources/temp_air_total_{network}_s{simpl}_{clusters}.nc", - temp_air_rural="resources/temp_air_rural_{network}_s{simpl}_{clusters}.nc", - temp_air_urban="resources/temp_air_urban_{network}_s{simpl}_{clusters}.nc", - cop_soil_total="resources/cop_soil_total_{network}_s{simpl}_{clusters}.nc", - cop_soil_rural="resources/cop_soil_rural_{network}_s{simpl}_{clusters}.nc", - cop_soil_urban="resources/cop_soil_urban_{network}_s{simpl}_{clusters}.nc", - cop_air_total="resources/cop_air_total_{network}_s{simpl}_{clusters}.nc", - cop_air_rural="resources/cop_air_rural_{network}_s{simpl}_{clusters}.nc", - cop_air_urban="resources/cop_air_urban_{network}_s{simpl}_{clusters}.nc", - solar_thermal_total="resources/solar_thermal_total_{network}_s{simpl}_{clusters}.nc", - solar_thermal_urban="resources/solar_thermal_urban_{network}_s{simpl}_{clusters}.nc", - solar_thermal_rural="resources/solar_thermal_rural_{network}_s{simpl}_{clusters}.nc" - output: config['results_dir'] + config['run'] + '/prenetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc' - threads: 1 - resources: mem_mb=2000 - benchmark: "benchmarks/prepare_network/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}" - script: "scripts/prepare_sector_network.py" - +if config["foresight"] == "myopic": rule add_existing_baseyear: input: @@ -344,7 +309,7 @@ if config["foresight"] == "myopic": costs="data/costs/costs_{}.csv".format(config['scenario']['planning_horizons'][0]), cop_soil_total="resources/cop_soil_total_{network}_s{simpl}_{clusters}.nc", cop_air_total="resources/cop_air_total_{network}_s{simpl}_{clusters}.nc" - output: config['results_dir'] + config['run'] + '/prenetworks_bf/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc' + output: config['results_dir'] + config['run'] + '/prenetworks_brownfield/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc' wildcard_constraints: planning_horizons=config['scenario']['planning_horizons'][0] #only applies to baseyear threads: 1 @@ -364,15 +329,16 @@ if config["foresight"] == "myopic": cop_soil_total="resources/cop_soil_total_{network}_s{simpl}_{clusters}.nc", cop_air_total="resources/cop_air_total_{network}_s{simpl}_{clusters}.nc" - output: config['results_dir'] + config['run'] + "/prenetworks_bf/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc" + output: config['results_dir'] + config['run'] + "/prenetworks_brownfield/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc" threads: 4 resources: mem_mb=2000 script: "scripts/add_brownfield.py" - + ruleorder: add_existing_baseyear > add_brownfield + rule solve_network_myopic: input: - network=config['results_dir'] + config['run'] + "/prenetworks_bf/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc", + network=config['results_dir'] + config['run'] + "/prenetworks_brownfield/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc", costs="data/costs/costs_{planning_horizons}.csv", output: config['results_dir'] + config['run'] + "/postnetworks/{network}_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc" @@ -386,72 +352,6 @@ if config["foresight"] == "myopic": resources: mem_mb=config['solving']['mem'] script: "scripts/solve_network.py" - - rule plot_network: - input: - network=config['results_dir'] + config['run'] + "/postnetworks/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc" - output: - map=config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}-costs-all_{co2_budget_name}_{planning_horizons}.pdf", - today=config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}-today.pdf" - threads: 2 - resources: mem_mb=10000 - script: "scripts/plot_network.py" - - - rule copy_config: - input: - networks=expand(config['results_dir'] + config['run'] + "/prenetworks_bf/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc", - **config['scenario']) - output: - config=config['summary_dir'] + '/' + config['run'] + '/configs/config.yaml' - threads: 1 - resources: mem_mb=1000 - script: - 'scripts/copy_config.py' - - - rule make_summary: - input: - networks=expand(config['results_dir'] + config['run'] + "/postnetworks/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}_{co2_budget_name}_{planning_horizons}.nc", - **config['scenario']), - #plots=expand(config['results_dir'] + config['run'] + "/maps/elec_s{simpl}_{clusters}_lv{lv}_{opts}_{sector_opts}-costs-all_{co2_budget_name}_{planning_horizons}.pdf", - # **config['scenario']) - #heat_demand_name='data/heating/daily_heat_demand.h5' - output: - nodal_costs=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_costs.csv', - nodal_capacities=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_capacities.csv', - nodal_cfs=config['summary_dir'] + '/' + config['run'] + '/csvs/nodal_cfs.csv', - cfs=config['summary_dir'] + '/' + config['run'] + '/csvs/cfs.csv', - costs=config['summary_dir'] + '/' + config['run'] + '/csvs/costs.csv', - capacities=config['summary_dir'] + '/' + config['run'] + '/csvs/capacities.csv', - curtailment=config['summary_dir'] + '/' + config['run'] + '/csvs/curtailment.csv', - energy=config['summary_dir'] + '/' + config['run'] + '/csvs/energy.csv', - supply=config['summary_dir'] + '/' + config['run'] + '/csvs/supply.csv', - supply_energy=config['summary_dir'] + '/' + config['run'] + '/csvs/supply_energy.csv', - prices=config['summary_dir'] + '/' + config['run'] + '/csvs/prices.csv', - weighted_prices=config['summary_dir'] + '/' + config['run'] + '/csvs/weighted_prices.csv', - market_values=config['summary_dir'] + '/' + config['run'] + '/csvs/market_values.csv', - price_statistics=config['summary_dir'] + '/' + config['run'] + '/csvs/price_statistics.csv', - metrics=config['summary_dir'] + '/' + config['run'] + '/csvs/metrics.csv' - threads: 2 - resources: mem_mb=10000 - script: - 'scripts/make_summary.py' - - - rule plot_summary: - input: - costs=config['summary_dir'] + '/' + config['run'] + '/csvs/costs.csv', - energy=config['summary_dir'] + '/' + config['run'] + '/csvs/energy.csv', - balances=config['summary_dir'] + '/' + config['run'] + '/csvs/supply_energy.csv' - output: - costs=config['summary_dir'] + '/' + config['run'] + '/graphs/costs.pdf', - energy=config['summary_dir'] + '/' + config['run'] + '/graphs/energy.pdf', - #balances=config['summary_dir'] + '/' + config['run'] + '/graphs/balances-energy.pdf' - threads: 2 - resources: mem_mb=10000 - script: - 'scripts/plot_summary.py' -ruleorder: add_existing_baseyear > add_brownfield +