diff --git a/rules/build_electricity.smk b/rules/build_electricity.smk index d922a753..edf5fca3 100644 --- a/rules/build_electricity.smk +++ b/rules/build_electricity.smk @@ -267,6 +267,7 @@ def input_ua_md_availability_matrix(w): rule build_renewable_profiles: params: snapshots=config_provider("snapshots"), + drop_leap_day=config_provider("enable", "drop_leap_day"), renewable=config_provider("renewable"), input: unpack(input_ua_md_availability_matrix), @@ -345,6 +346,7 @@ rule build_hydro_profile: hydro=config_provider("renewable", "hydro"), countries=config_provider("countries"), snapshots=config_provider("snapshots"), + drop_leap_day=config_provider("enable", "drop_leap_day"), input: country_shapes=resources("country_shapes.geojson"), eia_hydro_generation="data/eia_hydro_annual_generation.csv", @@ -370,6 +372,7 @@ rule build_hydro_profile: rule build_line_rating: params: snapshots=config_provider("snapshots"), + drop_leap_day=config_provider("enable", "drop_leap_day"), input: base_network=resources("networks/base.nc"), cutout=lambda w: "cutouts/" @@ -413,6 +416,7 @@ rule add_electricity: length_factor=config_provider("lines", "length_factor"), scaling_factor=config_provider("load", "scaling_factor"), countries=config_provider("countries"), + snapshots=config_provider("snapshots"), renewable=config_provider("renewable"), electricity=config_provider("electricity"), conventional=config_provider("conventional"), diff --git a/scripts/build_hydro_profile.py b/scripts/build_hydro_profile.py index ebadd047..510bc6fa 100644 --- a/scripts/build_hydro_profile.py +++ b/scripts/build_hydro_profile.py @@ -174,7 +174,12 @@ if __name__ == "__main__": set_scenario_config(snakemake) params_hydro = snakemake.params.hydro - cutout = atlite.Cutout(snakemake.input.cutout) + + time = pd.date_range(freq="h", **snakemake.params.snapshots) + if snakemake.params.drop_leap_day: + time = time[~((time.month == 2) & (time.day == 29))] + + cutout = atlite.Cutout(snakemake.input.cutout).sel(time=time) countries = snakemake.params.countries country_shapes = ( diff --git a/scripts/build_line_rating.py b/scripts/build_line_rating.py index 5b4642d1..794638d2 100755 --- a/scripts/build_line_rating.py +++ b/scripts/build_line_rating.py @@ -146,10 +146,11 @@ if __name__ == "__main__": configure_logging(snakemake) set_scenario_config(snakemake) - snapshots = snakemake.params.snapshots - n = pypsa.Network(snakemake.input.base_network) - time = pd.date_range(freq="h", **snapshots) + time = pd.date_range(freq="h", **snakemake.params.snapshots) + if snakemake.params.drop_leap_day: + time = time[~((time.month == 2) & (time.day == 29))] + cutout = atlite.Cutout(snakemake.input.cutout).sel(time=time) da = calculate_line_rating(n, cutout) diff --git a/scripts/build_renewable_profiles.py b/scripts/build_renewable_profiles.py index e1576850..88057fb6 100644 --- a/scripts/build_renewable_profiles.py +++ b/scripts/build_renewable_profiles.py @@ -227,9 +227,11 @@ if __name__ == "__main__": else: client = None - sns = pd.date_range(freq="h", **snakemake.params.snapshots) + time = pd.date_range(freq="h", **snakemake.params.snapshots) + if snakemake.params.drop_leap_day: + time = time[~((time.month == 2) & (time.day == 29))] - cutout = atlite.Cutout(snakemake.input.cutout).sel(time=sns) + cutout = atlite.Cutout(snakemake.input.cutout).sel(time=time) regions = gpd.read_file(snakemake.input.regions) assert not regions.empty, ( f"List of regions in {snakemake.input.regions} is empty, please "