test param in add_electricity

This commit is contained in:
virio-andreyana 2023-05-11 20:34:11 +02:00 committed by GitHub
parent 57f72b99ba
commit 1758076815
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 25 deletions

View File

@ -273,6 +273,14 @@ rule add_electricity:
nuts3_shapes=RESOURCES + "nuts3_shapes.geojson", nuts3_shapes=RESOURCES + "nuts3_shapes.geojson",
output: output:
RESOURCES + "networks/elec.nc", RESOURCES + "networks/elec.nc",
params:
costs=snakemake.config["costs"]
electricity=snakemake.config["electricity"]
renewable=snakemake.config["renewable"]
conventional=snakemake.config.get("conventional", {})
countries=snakemake.config["countries"]
scaling_factor=snakemake.config["load"]["scaling_factor"]
length_factor=snakemake.config["lines"]["length_factor"]
log: log:
LOGS + "add_electricity.log", LOGS + "add_electricity.log",
benchmark: benchmark:

View File

@ -686,15 +686,15 @@ def estimate_renewable_capacities(n, config):
) )
def add_nice_carrier_names(n, config): def add_nice_carrier_names(n, plotting):
carrier_i = n.carriers.index carrier_i = n.carriers.index
nice_names = ( nice_names = (
pd.Series(config["plotting"]["nice_names"]) pd.Series(plotting["nice_names"])
.reindex(carrier_i) .reindex(carrier_i)
.fillna(carrier_i.to_series().str.title()) .fillna(carrier_i.to_series().str.title())
) )
n.carriers["nice_name"] = nice_names n.carriers["nice_name"] = nice_names
colors = pd.Series(config["plotting"]["tech_colors"]).reindex(carrier_i) colors = pd.Series(plotting["tech_colors"]).reindex(carrier_i)
if colors.isna().any(): if colors.isna().any():
missing_i = list(colors.index[colors.isna()]) missing_i = list(colors.index[colors.isna()])
logger.warning(f"tech_colors for carriers {missing_i} not defined in config.") logger.warning(f"tech_colors for carriers {missing_i} not defined in config.")
@ -713,23 +713,23 @@ if __name__ == "__main__":
costs = load_costs( costs = load_costs(
snakemake.input.tech_costs, snakemake.input.tech_costs,
snakemake.config["costs"], snakemake.param["costs"],
snakemake.config["electricity"], snakemake.param["electricity"],
Nyears, Nyears,
) )
ppl = load_powerplants(snakemake.input.powerplants) ppl = load_powerplants(snakemake.input.powerplants)
if "renewable_carriers" in snakemake.config["electricity"]: if "renewable_carriers" in snakemake.param["electricity"]:
renewable_carriers = set(snakemake.config["electricity"]["renewable_carriers"]) renewable_carriers = set(snakemake.param["electricity"]["renewable_carriers"])
else: else:
logger.warning( logger.warning(
"Missing key `renewable_carriers` under config entry `electricity`. " "Missing key `renewable_carriers` under config entry `electricity`. "
"In future versions, this will raise an error. " "In future versions, this will raise an error. "
"Falling back to carriers listed under `renewable`." "Falling back to carriers listed under `renewable`."
) )
renewable_carriers = snakemake.config["renewable"] renewable_carriers = snakemake.param["renewable"]
extendable_carriers = snakemake.config["electricity"]["extendable_carriers"] extendable_carriers = snakemake.param["electricity"]["extendable_carriers"]
if not (set(renewable_carriers) & set(extendable_carriers["Generator"])): if not (set(renewable_carriers) & set(extendable_carriers["Generator"])):
logger.warning( logger.warning(
"No renewables found in config entry `extendable_carriers`. " "No renewables found in config entry `extendable_carriers`. "
@ -737,18 +737,18 @@ if __name__ == "__main__":
"Falling back to all renewables." "Falling back to all renewables."
) )
conventional_carriers = snakemake.config["electricity"]["conventional_carriers"] conventional_carriers = snakemake.param["electricity"]["conventional_carriers"]
attach_load( attach_load(
n, n,
snakemake.input.regions, snakemake.input.regions,
snakemake.input.load, snakemake.input.load,
snakemake.input.nuts3_shapes, snakemake.input.nuts3_shapes,
snakemake.config["countries"], snakemake.param["countries"],
snakemake.config["load"]["scaling_factor"], snakemake.param["load"]["scaling_factor"],
) )
update_transmission_costs(n, costs, snakemake.config["lines"]["length_factor"]) update_transmission_costs(n, costs, snakemake.param["lines"]["length_factor"])
conventional_inputs = { conventional_inputs = {
k: v for k, v in snakemake.input.items() if k.startswith("conventional_") k: v for k, v in snakemake.input.items() if k.startswith("conventional_")
@ -759,7 +759,7 @@ if __name__ == "__main__":
ppl, ppl,
conventional_carriers, conventional_carriers,
extendable_carriers, extendable_carriers,
snakemake.config.get("conventional", {}), snakemake.param.get("conventional", {}),
conventional_inputs, conventional_inputs,
) )
@ -769,11 +769,11 @@ if __name__ == "__main__":
snakemake.input, snakemake.input,
renewable_carriers, renewable_carriers,
extendable_carriers, extendable_carriers,
snakemake.config["lines"]["length_factor"], snakemake.param["lines"]["length_factor"],
) )
if "hydro" in renewable_carriers: if "hydro" in renewable_carriers:
conf = snakemake.config["renewable"]["hydro"] conf = snakemake.param["renewable"]["hydro"]
attach_hydro( attach_hydro(
n, n,
costs, costs,
@ -784,7 +784,7 @@ if __name__ == "__main__":
**conf, **conf,
) )
if "estimate_renewable_capacities" not in snakemake.config["electricity"]: if "estimate_renewable_capacities" not in snakemake.param["electricity"]:
logger.warning( logger.warning(
"Missing key `estimate_renewable_capacities` under config entry `electricity`. " "Missing key `estimate_renewable_capacities` under config entry `electricity`. "
"In future versions, this will raise an error. " "In future versions, this will raise an error. "
@ -792,18 +792,18 @@ if __name__ == "__main__":
) )
if ( if (
"estimate_renewable_capacities_from_capacity_stats" "estimate_renewable_capacities_from_capacity_stats"
in snakemake.config["electricity"] in snakemake.param["electricity"]
): ):
estimate_renewable_caps = { estimate_renewable_caps = {
"enable": True, "enable": True,
**snakemake.config["electricity"][ **snakemake.param["electricity"][
"estimate_renewable_capacities_from_capacity_stats" "estimate_renewable_capacities_from_capacity_stats"
], ],
} }
else: else:
estimate_renewable_caps = {"enable": False} estimate_renewable_caps = {"enable": False}
else: else:
estimate_renewable_caps = snakemake.config["electricity"][ estimate_renewable_caps = snakemake.param["electricity"][
"estimate_renewable_capacities" "estimate_renewable_capacities"
] ]
if "enable" not in estimate_renewable_caps: if "enable" not in estimate_renewable_caps:
@ -819,21 +819,21 @@ if __name__ == "__main__":
"Falling back to whether `renewable_capacities_from_opsd` is non-empty." "Falling back to whether `renewable_capacities_from_opsd` is non-empty."
) )
from_opsd = bool( from_opsd = bool(
snakemake.config["electricity"].get("renewable_capacities_from_opsd", False) snakemake.param["electricity"].get("renewable_capacities_from_opsd", False)
) )
estimate_renewable_caps["from_opsd"] = from_opsd estimate_renewable_caps["from_opsd"] = from_opsd
if estimate_renewable_caps["enable"]: if estimate_renewable_caps["enable"]:
if estimate_renewable_caps["from_opsd"]: if estimate_renewable_caps["from_opsd"]:
tech_map = snakemake.config["electricity"]["estimate_renewable_capacities"][ tech_map = snakemake.param["electricity"]["estimate_renewable_capacities"][
"technology_mapping" "technology_mapping"
] ]
attach_OPSD_renewables(n, tech_map) attach_OPSD_renewables(n, tech_map)
estimate_renewable_capacities(n, snakemake.config) estimate_renewable_capacities(n, snakemake.param)
update_p_nom_max(n) update_p_nom_max(n)
add_nice_carrier_names(n, snakemake.config) add_nice_carrier_names(n, snakemake.param["plotting"])
n.meta = snakemake.config n.meta = snakemake.param
n.export_to_netcdf(snakemake.output[0]) n.export_to_netcdf(snakemake.output[0])