pvanalytics.features.clipping.geometric(ac_power, window=None, slope_max=0.2, freq=None, tracking=False)#

Identify clipping based on a the shape of the ac_power curve on each day.

Each day is checked for periods where the slope of ac_power is small. The power values in these periods are used to calculate a minimum and a maximum clipped power level for that day. Any power values that are within this range are flagged as clipped. The methodology for computing the thresholds varies depending on the frequency of ac_power. For high frequency data (less than 10 minute timestamp spacing) the minimum clipped power is the mean of the low-slope period(s) on that day minus 2 times the standard deviation in the same period(s). For lower frequency data the absolute minimum and maximum of the low slope period(s) on each day are used.

If the frequency of ac_power is less than ten minutes, then ac_power is down-sampled to 15 minutes and the mean value in each 15-minute period is used to reduce noise inherent in high frequency data.

  • ac_power (Series) – AC power data.

  • window (int, optional) – Size of the rolling window used to identify low-slope periods. If not specified and tracking is False then window=3 is used. If not specified and tracking is True then window=5 is used.

  • slope_max (float, default 0.2) – Maximum difference in maximum and minimum power for a window to be flagged as clipped. Units are percent of average power in the interval.

  • freq (str, optional) – Frequency of ac_power. If not specified then pandas.infer_freq() is used.

  • tracking (bool, default False) – If True then a larger default window is used. If window is specified then tracking has no effect.


Boolean Series with True for values that appear to be clipped.

Return type



ValueError – If the index of ac_power is not sorted.


Based on code from the PVFleets QA project.

Examples using pvanalytics.features.clipping.geometric#

Clipping Detection

Clipping Detection

PV Fleets QA Process: Power

PV Fleets QA Process: Power

Detect if a System is Tracking

Detect if a System is Tracking