-
Notifications
You must be signed in to change notification settings - Fork 5
Description
At the moment, the time attribute in breakpoints() gets lost most of the time, leading to output such as:
Optimal 2-segment partition:
Call:
breakpoints.matrix(X = X, y = y, h = h, breaks = breaks, hpc = hpc)
Breakpoints at observation number:
104
Corresponding to breakdates:
0.4521739This is not useful, as the breakdates should actually tell you which year and day the break happened, rather than in which part of the time series it happened (that's already given by the observation number).
It works properly if the input is a ts object, since then datatsp is preserved. However, it is rare to run breakpoints() over a ts rather than a bfastpp() data.frame. The latter contains time as a column, which should then be preserved.
I propose to handle time better and different from the other covariates in X. If the input is ts, then decompose its input into year fractions as per bfastpp. If the input is a data.frame, make use of the time column. Add a time element to the result that holds the timestamps, either as POSIXct or year fractions.
This is a prerequisite to better plotting of breakpoints() diagnostics, as as it is it is impossible to plot the time series with correct labels, or to put the breakpoint at a particular time.