• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pvlib / pvanalytics / 784 / 3
100%
master: 100%

Build:
DEFAULT BRANCH: master
Ran 13 Oct 2020 01:20PM UTC
Files 37
Run time 9s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

13 Oct 2020 01:14PM UTC coverage: 99.662% (-0.3%) from 100.0%
784.3

push

travis-ci

web-flow
Time shift detection (#74)

* Implementation of ruptures-based time shift detection

* Add optional dependency on ruptures 

* Add tests for +/- 1-hour shifts

Create a fixture that can be used for most/all time-shift tests.

* Exclude the change point from shift labels

The index returned by ruptures is the first index of the changed
signal. We change the call to pandas.cut() to be closed on the
left and open on the right so that the shift labels are assigned
correctly.

Also pass jump=1 to ruptures.Pelt.__init__ to get the best
precision in the changepoint detection results. We may want to
allow users to pass a different `jump` if they want to get better
performance at the price of reduced precision.

* Only append last index if not identified as a breakpoint

Ruptures seems to always return the last index when using Pelt;
however, there does not appear to be any guarantee of this in the
documentation. To make sure that the entire series is covered by
the intervals passed to cut we add the last index+1 if it is not
already present in the breakpoint list.

* Refactor rounding to support more conservative shift estimates

Adds parameters to specify where to round to and the point at
which to round up instead of down. Will facilitate the more
conservative shift estimation in the PVFleets project, just need
to expose these two params at the top-level API.

* Tweak the ruptures.Pelt.predict() penalty parameter

Reducing the penalty slightly gets all the tests passing. I am
slightly concerned about whether the value we are using (13) is
actually a reasonable value. The effect of `pen` and its interaction
with the `min_size` parameter to ruptures.Pelt() makes me think
that `pen` (and other ruptures-related paramters) should be exposed
in the API.

* Document the algorithm implemented by time.shifts_ruptures()

* Explicitly unset the frequency for the daytime mask in tests

Having a frequency set creates probl... (continued)

1473 of 1478 relevant lines covered (99.66%)

1.0 hits per line

Source Files on job 784.3
  • Tree
  • List 0
  • Changed 11
  • Source Changed 2
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 695
  • Travis Job 784.3
  • f6bd37ac on github
  • Prev Job for on master (#767.3)
  • Next Job for on master (#804.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc