From d4fa922a2a6af9abb8df01f03de58661de0fe3f7 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Fri, 29 Jul 2022 21:19:26 +0200 Subject: [PATCH] drop_leap_days when aggregating snapshots --- scripts/prepare_sector_network.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 3f25251f..45bd9abb 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -571,7 +571,7 @@ def add_co2limit(n, Nyears=1., limit=0.): ) # TODO PyPSA-Eur merge issue -def average_every_nhours(n, offset): +def average_every_nhours(n, offset, drop_leap_day=False): logger.info(f'Resampling the network to {offset}') m = n.copy(with_time=False) @@ -590,6 +590,10 @@ def average_every_nhours(n, offset): else: pnl[k] = df.resample(offset).mean() + if drop_leap_day: + sns = m.snapshots[~((m.snapshots.month == 2) & (m.snapshots.day == 29))] + m.set_snapshots(sns) + return m @@ -2428,7 +2432,8 @@ if __name__ == "__main__": for o in opts: m = re.match(r'^\d+h$', o, re.IGNORECASE) if m is not None: - n = average_every_nhours(n, m.group(0)) + drop_leap_day = snakemake.config["atlite"].get("drop_leap_day", False) + n = average_every_nhours(n, m.group(0), drop_leap_day) break limit_type = "config"