powerplantmatching icon indicating copy to clipboard operation
powerplantmatching copied to clipboard

Efficiencies

Open bourbl opened this issue 3 years ago • 4 comments

Change proposed in this Pull Request

Add efficiencies to conventional power plants based on their commissioning year. It uses information of fuel consumption from EEA and total generation from ENTSOE to form a linear regression between efficiency and commissioning year.

  • There are not so many data points unfortunately.
  • I hope I have used the proper function for matching the datasets.
  • Documentation is not added.
  • Downloading generation from ENTSOE takes very long unfortunately and it sometimes breaks. I have compiled a .csv file though and can upload it somewhere.

Type of change

  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [x] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)
  • [ ] Other

Checklist

  • [ ] I have added a note to release notes doc/release_notes.rst.
  • [ ] I have used pre-commit run --all to lint/format/check my contribution
  • [ ] I have documented the effects of my code changes in the documentation doc/.
  • [ ] I have adjusted the docstrings in the code appropriately.

bourbl avatar Sep 23 '22 09:09 bourbl

Hey @bourbl! Thank you for your PR. I like the idea to retrieve data from EEA and Entsoe to calculate efficiencies. Allow me to pose some questions before fully reviewing the code?

  1. What do the functions EEA and ENTSOE_generation return in particular? Do they return efficiency values per plant or technology / commissioning year?
  2. Did you see the functions in powerplantmatching.heuristics? There is already a function fill_commissioning_years, why not taking the approach to create a fill_efficiencies function which uses stored data created from your EEA / ENTSOE approach.

FabianHofmann avatar Oct 07 '22 09:10 FabianHofmann

Hi @FabianHofmann, yes, of course. You can also contact me by e-mail.

  1. They both return dataframes with power plant names and a feature value. In EEA the feature value is annual fuel consumption and in ENTSOE_generation it's annual electricity generation. Then the idea is to use link_multiple_datasets to match these tables including the final matched dataset to generate efficiencies by dividing the two values (unfortunately the only fields available for matching are the names and the countries). Afterwards, using the efficiencies calculated above, extrapolate the missing efficiencies by linear regression based on the commissioning year.
  2. The data tables do not include documented efficiencies, the PR is to find a way to circumvent the lack of it. Nevertheless, I should have used the fill_commissioning_years in the extrapolate_efficiencies because I did something like that in line 150.

bourbl avatar Oct 11 '22 14:10 bourbl

@bourbl thanks for the explanation

  1. Yes, that makes sense
  2. I rather thought about pre-calculating the efficiencies with your approach, store the data somewhere and use it in a function called fill_missing_efficiencies. But independent of this, the extrapolate_efficiencies should be moved to heuristics.py and named fill_missing_efficiencies, then it meets the naming convention.

FabianHofmann avatar Oct 24 '22 09:10 FabianHofmann

Hi @FabianHofmann, yes, of course. You can also contact me by e-mail.

  1. They both return dataframes with power plant names and a feature value. In EEA the feature value is annual fuel consumption and in ENTSOE_generation it's annual electricity generation. Then the idea is to use link_multiple_datasets to match these tables including the final matched dataset to generate efficiencies by dividing the two values (unfortunately the only fields available for matching are the names and the countries). Afterwards, using the efficiencies calculated above, extrapolate the missing efficiencies by linear regression based on the commissioning year.
  2. The data tables do not include documented efficiencies, the PR is to find a way to circumvent the lack of it. Nevertheless, I should have used the fill_commissioning_years in the extrapolate_efficiencies because I did something like that in line 150.

@bourbl @FabianHofmann @pz-max

I am affraid that, by doing the extrapolation by the commissioning year, you would be introducing a logical error in the model.

The PP's efficiency is not to be assigned according to the commissioning year, rather the refurbishment year, since at that time, as most of the components are upgraded/replaced, all is refurbished and efficacy of the PP is reset & increased.

We are not talking regular mentanance here, but a major power-plant upgrade/refurbishment. All power-plant have this at some stage: hydro, nuclear, gas, combined-cycle, coal.

Now, how does one get the refurbishemnt year - I would aim for the TSO/sys. operator website, since they contain much more detailed info compared to the ENTSO-E stuff.

mdzzg avatar Sep 02 '24 12:09 mdzzg