pypsa-eur icon indicating copy to clipboard operation
pypsa-eur copied to clipboard

Replace bioenergy and MSW stores with generators

Open cpschau opened this issue 1 year ago • 1 comments

Closes # (if applicable).

Changes proposed in this Pull Request

As the Generator component is extended in https://github.com/PyPSA/PyPSA/pull/1047, it can replace the Store components for bioenergy and municipal solid waste. The extension of the Generator allows for a more efficient representation of finite resources, such as biomass, by eliminating the need for storage consistency constraints. Additionally, the desired model behavior to enforce the use of unsustainable bioenergy types and municipal solid waste is addressed through the new e_sum_min attribute.

bioenergy_balance

Checklist

  • [x] I tested my contribution locally and it works as intended.
  • [x] Code and workflow changes are sufficiently documented.
  • [x] Changed dependencies are added to envs/environment.yaml.
  • [x] Changes in configuration options are added in config/config.default.yaml.
  • [x] Changes in configuration options are documented in doc/configtables/*.csv.
  • [x] Sources of newly added data are documented in doc/data_sources.rst.
  • [ ] A release note doc/release_notes.rst is added.

cpschau avatar Oct 18 '24 12:10 cpschau

Validator Report

I am the Validator. Download all artifacts here. I'll be back and edit this comment for each new commit.

General

Plots comparison
Main branch Feature branch
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Files comparison
Status NRMSE MAE (norm)
market_values.csv :warning:Changed 0.000 0.06
weighted_prices.csv :warning:Changed 0.446 0.37
metrics.csv :warning:Changed 0.000 0.12
price_statistics.csv :warning:Changed 0.001 0.15
nodal_capacities.csv :warning: NaN mismatch
nodal_supply_energy.csv :warning: NaN mismatch
nodal_cfs.csv :warning: NaN mismatch
supply.csv :warning: NaN mismatch
costs.csv :warning: NaN mismatch
nodal_costs.csv :warning: NaN mismatch
capacities.csv :warning: NaN mismatch
curtailment.csv :warning: NaN mismatch
supply_energy.csv :warning: NaN mismatch
cfs.csv :warning: NaN mismatch
energy.csv :warning: NaN mismatch
prices.csv :white_check_mark: Almost equal 0.024 0.03

NRMSE: Normalized (combined-min-max) Root Mean Square Error MAE (norm): Mean Absolute Error on normalized data (min-max) Status Threshold: MAE (norm) > 0.05 and NRMSE > 0.3

Model Metrics

Benchmarks Image not available Image not available Image not available

Comparing replace_stores_gens (996236d) with master (acf089f). Branch is 10 commits ahead and 0 commits behind. Last updated on 2024-11-04 14:56:46 CET.

github-actions[bot] avatar Oct 18 '24 12:10 github-actions[bot]

Proposed changes make sense, but some adjustments are necessary:

* The new minimum version of PyPSA should be specified in the `environment.yaml` since this PR uses a new feature.

* A release note should be added, especially since there are some hidden changes (i.e. forced use of MSW, changed carrier name for biomass transport)

* Do you actually still need the operational limit GlobalConstraint for MSW? If you want all MSW to be used, you could also just set `e_sum_min = e_sum_max`, right?

Thanks for the review @fneum!

  1. Isn't the requirement pypsa>=0.31 already specified in the environment.yaml anyway?
  2. Done
  3. I think you need it for setups with biomass_spatial:true and biomass_transport:false when the MSW transport is mimicked using the additional Generator component. In that case the usage of MSW at a bus can be less than the bus' MSW potential (p_sum_min <= p_sum_max), as long as the difference is transported to and used at another bus using that same additional Generator as compensation. Therefore, the GlobalConstraint is still required to ensure the usage of the aggregate MSW potential.

cpschau avatar Nov 04 '24 13:11 cpschau