Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loss factor analysis #122

Merged
merged 20 commits into from
Mar 15, 2024
Merged

Loss factor analysis #122

merged 20 commits into from
Mar 15, 2024

Conversation

bmeyers
Copy link
Collaborator

@bmeyers bmeyers commented Mar 14, 2024

This branch contains the new algorithm for estimating PV system loss factors, including a degradation rate.

@bmeyers bmeyers requested a review from pluflou March 14, 2024 17:06
@bmeyers
Copy link
Collaborator Author

bmeyers commented Mar 14, 2024

Need to address dependencies: ModuleNotFoundError: No module named 'spcqe'

spcqe is not yet pip installable, so we won't pass tests until we get it listed. @pluflou we already discussed this task, but wanted to highlight the connection here.

@bmeyers
Copy link
Collaborator Author

bmeyers commented Mar 14, 2024

added git+https://github.com/cvxgrp/spcqe.git to the requirements for now, until we have the package published on PyPI

@bmeyers
Copy link
Collaborator Author

bmeyers commented Mar 14, 2024

to-do list

  • capture outputs of degradation estimation method
  • add functionality to "lock in" a known degradation rate in SD model
  • add plotting functions
  • add wrapper method to DataHandler

This module is for estimation of degradation and soiling losses from unlabeled
daily energy production data. Model is of the form

y_t = x_t * d_t * s_t * w_t, for t = 1,...,T
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated model has one additional factor and is aware of missing/bad days.

error_metric = np.sum(np.abs(residual))
return error_metric

def make_problem(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consider moving to _osd_signal_decompositions.py

self.soiling_energy_loss = None
self.capacity_change_loss = None
self.weather_energy_loss = None
self.weather_percent_loss = None
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clean up imports (e.g. weather_percent_loss)

fraction_hold=0.2,
method="median_unbiased",
verbose=False,
debug=False,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clean up?

return _fig_decomp


def model_wrapper(energy_model, use_ixs):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider using static methods from here onwards (@pluflou check best practice)

@pluflou pluflou merged commit a117e1e into dev Mar 15, 2024
1 check passed
@bmeyers bmeyers deleted the new-deg branch March 15, 2024 17:54
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.

2 participants