From ef05d7576c55f9b3976b4c1aedf97045e820967d Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Tue, 1 Aug 2023 09:45:14 +0200 Subject: [PATCH] bugfixes and allow build_renewable_profiles on subset of cutout time scope --- rules/build_electricity.smk | 2 +- scripts/build_line_rating.py | 3 ++- scripts/build_renewable_profiles.py | 8 ++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/rules/build_electricity.smk b/rules/build_electricity.smk index a94c29f5..336c77f5 100644 --- a/rules/build_electricity.smk +++ b/rules/build_electricity.smk @@ -233,7 +233,7 @@ rule determine_availability_matrix_MD_UA: conda: "../envs/environment.yaml" script: - "scripts/determine_availability_matrix_MD_UA.py" + "../scripts/determine_availability_matrix_MD_UA.py" # Optional input when having Ukraine (UA) or Moldova (MD) in the countries list diff --git a/scripts/build_line_rating.py b/scripts/build_line_rating.py index 7ece1c9d..7f842d43 100755 --- a/scripts/build_line_rating.py +++ b/scripts/build_line_rating.py @@ -149,7 +149,8 @@ if __name__ == "__main__": configure_logging(snakemake) n = pypsa.Network(snakemake.input.base_network) - cutout = atlite.Cutout(snakemake.input.cutout) + time = pd.date_range(freq="h", **snakemake.config["snapshots"]) + cutout = atlite.Cutout(snakemake.input.cutout).sel(time=time) da = calculate_line_rating(n, cutout) da.to_netcdf(snakemake.output[0]) diff --git a/scripts/build_renewable_profiles.py b/scripts/build_renewable_profiles.py index 26632e28..d66cdea2 100644 --- a/scripts/build_renewable_profiles.py +++ b/scripts/build_renewable_profiles.py @@ -185,6 +185,7 @@ import time import atlite import geopandas as gpd +import pandas as pd import numpy as np import xarray as xr from _helpers import configure_logging @@ -222,7 +223,8 @@ if __name__ == "__main__": else: client = None - cutout = atlite.Cutout(snakemake.input.cutout) + sns = pd.date_range(freq="h", **snakemake.config["snapshots"]) + cutout = atlite.Cutout(snakemake.input.cutout).sel(time=sns) regions = gpd.read_file(snakemake.input.regions) assert not regions.empty, ( f"List of regions in {snakemake.input.regions} is empty, please " @@ -380,4 +382,6 @@ if __name__ == "__main__": ds["profile"] = ds["profile"].where(ds["profile"] >= min_p_max_pu, 0) ds.to_netcdf(snakemake.output.profile) - client.shutdown() + + if client is not None: + client.shutdown()