Skip to content

breakpoints(): Better handling of time #15

@GreatEmerald

Description

@GreatEmerald

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.4521739

This 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions