Skip to content

wind-up v1#100

Draft
aclerc wants to merge 32 commits into
mainfrom
v1
Draft

wind-up v1#100
aclerc wants to merge 32 commits into
mainfrom
v1

Conversation

@aclerc

@aclerc aclerc commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

v0 is a single-method tool: it measures turbine-upgrade uplift with a binned power-curve, test-vs-reference method. v1 turns wind-up into a platform in which alternative uplift methods are pluggable and objectively benchmarked on synthetic datasets with known ground truth. The driving goals are accurate and precise results from short campaigns and richer conditional information about how an upgrade performs (uplift by wind speed, uplift in wakes vs free-stream, day vs night, by direction/stability, etc.).

Metrics:

  • Campaign uplift P50 bias and spread
  • Conditional uplift distribution: can measure per bin bias and spread of uplift distributions (vs wind speed, wind direction, TI, etc)
  • Uncertainty quantification: harder to judge but can verify campaign uplift actual quantiles vs those implied by the reported uncertainty (eg verify that ground truth uplift is below P95 exactly 5% of the time)
  • AEP uplift P50 bias and spread
    • A 'ground truth' AEP can be calculated if the source data has sufficient years. HOT has 5 clean years (2016-2020) so an AEP comparison based on those 5 years can be done. In this case the method estimates the AEP based on what it has learned about the uplift (conditional distribution) and the weather data it has access to (ERA5). However this is fairly tricky because even if the uplift is a very simple function of the turbine's conditions (eg just wind speed) the relationship between ERA5 data and the turbine's wind speed will usually be complicated (eg directional effect like wakes)
    • In some cases the AEP calculation will be done with a different tool (example FLORIS for wake steering, or pre-construction yield modelling could be used). In those cases wind-up needs to report out whatever these tools need. The vs wind speed conditional uplift distribution can be used to make a new power curve for pre-construction modelling, for example. FLORIS modelling would need more complex things like Pp (can be derived from uplift vs steer command) and perhaps wake model parameters.

aclerc and others added 30 commits June 19, 2026 13:59
* implement most of issue 1

* update cp_surface

* correct period meaning

* update docstrings

* finish issue 1

* minor comment updates

* remove turbine_key

mirrors change in resgroup/hill-of-towie-open-source-analysis#53

* address PR comments

* Update hill_of_towie.py
* issue 2 initial effort

* Simplify docstring

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* add example_hot_study.py

* address PR comments

* improve kwargs enforcement

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* issue 3 WIP

* Update example_v0_study.py

* fix md has different turbines than cfg.asset.wtgs

* write out tdf

* add missing save_plots guards

* fix lint

* remove HOT details from era5.py

* fix format

* fix test_explicit_mplbackend_is_respected

* address PR comments
* update issue 4

* WIP

* cache per year, turbine

* format

* improve naive plots

* improve naive plots

* improve issue 4 descr

* rename example prepost

* rename example prepost

* rename example prepost

* run fast methods first

* fix TypeError

* address PR comment

* address PR comment
* refactor out scadadf

* improve e2e tests

* address PR comments

* fix test flake
* update issue text

* RLearner WIP

* RLearner WIP

* RLearner tested against naive

* update gitignore

* add overnight scripts

* fix typo

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* improve overnight scripts

* add findings.md

* address PR comments

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* add inspect_prepost_hard_case.py

* add diagnostics modules

* mandatory availability filter

* fix naive plot bug

* fix docstring

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix docstring

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* update findings.md

* address PR comments

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* power_model

* update docstrings

* improve histograms

* address PR comments
* add study_power_model_compare.py

* add study_power_model_compare baseline

* uplift by condition WIP

* update power_model baseline results

* add by condition diagnostic plots

* add by condition diagnostic plots

* update findings.md

* plan issues 6-8

* address PR comment
* add prediction clip

* add condition dependent comparison

* add _select_profiles

* add --accept-candidate

* update baseline

* address pr comments
* add ERA5 future work

* issue 8 substantially complete

* address PR comments

* accept new conditional uplift method

* update issue 8 text

* address PR comments
* issues 9-11

* address PR comments

* explore feature removal

* improvements from feature removal

* address PR comments
* issue 12

* address PR comments
* issue 13 complete

* further investigate half life

* address PR comments

* skip rlearner e2e tests

* address PR comments
* issue 14 WIP

* add 1 and 2 months to baseline

* accept matched count 50

* issue 14 full benchmark

* address PR comments
* issue 15 WIP

* re-number issues

* re-number issues

* fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* prune opt-in behaviour

* update docstring
* update findings.md

* add power conditional WIP

* add power conditional WIP

* improve conditional diagnostic plots

* add power plot

* rerun study_power_model_compare

* address PR comment
aclerc added 2 commits July 14, 2026 14:24
* Update naive_ratio.py

* Update method.py

* make benchmarking importable

* use shared build_toggle_df

* fix log bug

* address PR comments
* make columns required

* address PR comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant