diff --git a/doc/release_notes.rst b/doc/release_notes.rst index ee8858a47..44cea086f 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -16,6 +16,8 @@ Upcoming Release * Bugfix: Assure entering of code block which corrects Norwegian heat demand. +* Add warning when BEV availability weekly profile has negative values in `build_transport_demand`. + PyPSA-Eur 0.9.0 (5th January 2024) ================================== diff --git a/scripts/build_transport_demand.py b/scripts/build_transport_demand.py index 0bcfb7ed6..be8ad4141 100644 --- a/scripts/build_transport_demand.py +++ b/scripts/build_transport_demand.py @@ -8,11 +8,17 @@ availability and demand-side management constraints. """ +import logging + import numpy as np import pandas as pd import xarray as xr + +from _helpers import configure_logging from _helpers import generate_periodic_profiles +logger = logging.getLogger(__name__) + def build_nodal_transport_data(fn, pop_layout): transport_data = pd.read_csv(fn, index_col=0) @@ -130,6 +136,10 @@ def bev_availability_profile(fn, snapshots, nodes, options): traffic.mean() - traffic.min() ) + if not avail[avail < 0].empty: + logger.warning("The BEV availability weekly profile has negative values which can " + "lead to infeasibility.") + return generate_periodic_profiles( dt_index=snapshots, nodes=nodes, @@ -160,6 +170,7 @@ def bev_dsm_profile(snapshots, nodes, options): simpl="", clusters=48, ) + configure_logging(snakemake) pop_layout = pd.read_csv(snakemake.input.clustered_pop_layout, index_col=0)