From 793573f655f15cef251d726d3822c870e82f4bbc Mon Sep 17 00:00:00 2001 From: Fabian Date: Wed, 19 Jul 2023 10:11:54 +0200 Subject: [PATCH] validate: add line plot for price comparison --- config/config.validation.yaml | 4 +++- config/test/config.validation.yaml | 4 ++-- rules/validate.smk | 2 +- scripts/plot_validation_electricity_prices.py | 8 +++++++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/config/config.validation.yaml b/config/config.validation.yaml index 8315c690..28d1f803 100644 --- a/config/config.validation.yaml +++ b/config/config.validation.yaml @@ -70,10 +70,12 @@ renewable: cutout: europe-2019-era5 conventional: - unit_commitment: false + unit_commitment: true dynamic_fuel_price: true nuclear: p_max_pu: "data/nuclear_p_max_pu.csv" # float of file name + biomass: + p_max_pu: 0.7 load: diff --git a/config/test/config.validation.yaml b/config/test/config.validation.yaml index 6fb8a2b9..ffa7e58f 100644 --- a/config/test/config.validation.yaml +++ b/config/test/config.validation.yaml @@ -17,9 +17,9 @@ snapshots: inclusive: 'left' # include start, not end conventional: - unit_commitment: false + unit_commitment: true solving: options: - linearized_unit_commitment: false + linearized_unit_commitment: true rolling_horizon: false diff --git a/rules/validate.smk b/rules/validate.smk index 63b55bbb..59c7be03 100644 --- a/rules/validate.smk +++ b/rules/validate.smk @@ -8,7 +8,7 @@ PRODUCTION_PLOTS = [ "seasonal_operation_area", ] CROSS_BORDER_PLOTS = [] -PRICES_PLOTS = ["price_bar"] +PRICES_PLOTS = ["price_bar", "price_line"] rule build_electricity_production: diff --git a/scripts/plot_validation_electricity_prices.py b/scripts/plot_validation_electricity_prices.py index 85735789..2a187b9f 100644 --- a/scripts/plot_validation_electricity_prices.py +++ b/scripts/plot_validation_electricity_prices.py @@ -44,7 +44,6 @@ if __name__ == "__main__": data = pd.concat([historic, optimized], keys=["Historic", "Optimized"], axis=1) data.columns.names = ["Kind", "Country"] - # %% total production per carrier fig, ax = plt.subplots(figsize=(6, 6)) df = data.mean().unstack().T @@ -52,6 +51,13 @@ if __name__ == "__main__": ax.grid(axis="y") fig.savefig(snakemake.output.price_bar, bbox_inches="tight") + fig, ax = plt.subplots() + + df = data.groupby(level="Kind", axis=1).mean() + df.plot(ax=ax, xlabel="", ylabel="Electricity Price [€/MWh]", alpha=0.8) + ax.grid(axis="x") + fig.savefig(snakemake.output.price_line, bbox_inches="tight") + # touch file with open(snakemake.output.plots_touch, "a"): pass