Add warning when negative bev availability profile values

This commit is contained in:
Thomas Gilon 2024-01-11 14:11:25 +01:00
parent a6edce58fb
commit cd8001116d
2 changed files with 13 additions and 1 deletions

View File

@ -12,7 +12,8 @@ Upcoming Release
* New configuration option ``everywhere_powerplants`` to build conventional powerplants everywhere, irrespective of existing powerplants locations, in the network (https://github.com/PyPSA/pypsa-eur/pull/850). * New configuration option ``everywhere_powerplants`` to build conventional powerplants everywhere, irrespective of existing powerplants locations, in the network (https://github.com/PyPSA/pypsa-eur/pull/850).
* Remove option for wave energy as technology data is not maintained. * Remove option for wave energy as technology data is not maintained.
* Add warning when BEV availability weekly profile has negative values in `build_transport_demand`.
PyPSA-Eur 0.9.0 (5th January 2024) PyPSA-Eur 0.9.0 (5th January 2024)

View File

@ -8,11 +8,17 @@ improvements due to drivetrain changes, time series for electric vehicle
availability and demand-side management constraints. availability and demand-side management constraints.
""" """
import logging
import numpy as np import numpy as np
import pandas as pd import pandas as pd
import xarray as xr import xarray as xr
from _helpers import configure_logging
from _helpers import generate_periodic_profiles from _helpers import generate_periodic_profiles
logger = logging.getLogger(__name__)
def build_nodal_transport_data(fn, pop_layout): def build_nodal_transport_data(fn, pop_layout):
transport_data = pd.read_csv(fn, index_col=0) 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() 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( return generate_periodic_profiles(
dt_index=snapshots, dt_index=snapshots,
nodes=nodes, nodes=nodes,
@ -160,6 +170,7 @@ if __name__ == "__main__":
simpl="", simpl="",
clusters=48, clusters=48,
) )
configure_logging(snakemake)
pop_layout = pd.read_csv(snakemake.input.clustered_pop_layout, index_col=0) pop_layout = pd.read_csv(snakemake.input.clustered_pop_layout, index_col=0)