rdtools.soiling.CODSAnalysis

class rdtools.soiling.CODSAnalysis(energy_normalized_daily)

Container for the Combined Degradation and Soiling (CODS) algorithm for degradation and soiling loss analysis. Based on the method presented in 1.

Parameters

energy_normalized_daily (pandas.Series) -- Daily performance metric (i.e. performance index, yield, etc.) Index must be DatetimeIndex with daily frequency

pm

Equals energy_normalized_daily

Type

pandas.Series

result_df

Contains the columns/keys:

Column Name

Description

'soiling_ratio'

soiling ratio (SR) (-)

'soiling_rates'

soiling rates (1/day)

'cleaning_events'

True at cleaning events

'seasonal_component'

seasonal component (SC)

'degradation_trend'

degradation trend (Rd)

'total_model'

the total model fit, i.e. SR * SC * Rd * rs, where SR is the soiling ratio, SC is the seasonal component, Rd is the degradation trend, and rs is the residual shift, i.e. the mean of the residuals (adjusting the position of the model fit to the position of the input data)

'residuals'

The residuals of the model fit, i.e. PI / (SR * SC * Rd)

'SR_low'

lower bound of 95 % conf. interval of SR

'SR_high'

upper bound of 95 % conf. interval of SR

'rates_low'

lower bound of 95 % conf. interval of soiling rates

'rates_high'

upper bound of 95 % conf. interval of soiling rates

'bt_soiling_ratio'

Bootstrapped estimate of soiling ratio (SR)

'bt_soiling_rates'

Bootstrapped estimate of soiling rates

'seasonal_low'

lower bound of 95 % conf. interval of seasonal component (SC)

'seasonal_high'

upper bound of 95 % conf. interval of seasonal component (SC)

'model_high'

upper bound of 95 % confidence interval of the model fit

'model_low'

lower bound of 95 % confidence interval of the model fit

Type

pandas.DataFrame with pandas datetimeindex

degradation

List of linear degradation rate of system in %/year, lower and upper bound of 95% confidence interval

Type

list

soiling_loss

List of average soiling losses over the time series in %, lower and upper bound of 95% confidence interval

Type

list

residual_shift

Mean value of residuals. Multiply total model by this number for complete overlap with input pi

Type

float

RMSE

Root Means Squared Error of total model vs input pi

Type

float

small_soiling_signal

Whether or not the signal is deemed too small to infer anything about it

Type

bool

adf_res

The results of an Augmented Dickey-Fuller test (telling whether the residuals are stationary or not)

Type

list

Raises

ValueError -- If the performance metrix does not have daily index frequency

References

1

Skomedal, Å. and Deceglie, M. G., IEEE Journal of Photovoltaics, Sept. 2020. https://doi.org/10.1109/JPHOTOV.2020.3018219

__init__(energy_normalized_daily)

Methods

__init__(energy_normalized_daily)

iterative_signal_decomposition([order, ...])

Estimates the soiling losses and the degradation rate of a PV system based on its daily normalized energy, or daily Performance Index (PI).

run_bootstrap([reps, confidence_level, ...])

Bootstrapping of CODS algorithm for uncertainty analysis, inherently accounting for model and parameter choices.