On 23/12/2023 19:22, Nikolaos Tziokas wrote:
I have 12 raster images which I stack them. Then I converted the
rasterstack to a matrix, I remove the NA's from the matrix and I convert
the matrix to monthly time-series matrix. Finally, I run the bfastlite
function, like so:

library(bfast)
library(raster)

wd <- "path"

l <- list.files(paste0(wd), pattern='.tif$',
                 all.files=TRUE, full.names=FALSE)

r <- raster::stack(paste0(wd, l))

m <- raster::as.matrix(r)
m <- m[!rowSums(is.na(m)), ]

# convert the matrix to timeseries matrix
tm <- ts(data = m, start = c(2019, 1), end = c(2019, 12), frequency = 12,
class = "ts")
class(tm)

bf <- bfastlite(
   tm,
   formula = response ~ trend + harmon,
   order = 3,
   breaks = "LWZ",
   na.action = na.omit,
   stl = "trend",
   decomp = "stl",
   sbins = 1,
   h = 0.5,
   level = 0.5,
   type = "OLS-MOSUM"
)
And the error:

Error in stats::stl(x, s.window = "periodic") :
   series is not periodic or has less than two periods


Could it be that the 12 monthly data do not show more than one full period of whatever the rasters are showing? That seems to be what the error is indicating. If you want to decompose some seasonal time series, then you need several seasons of data.



I have tried many variations in the parameters of the bfastlite function.

Any ideas what that error means and how I can overcome it? The dataset can
be downloaded from my GoogleDrive (
https://drive.google.com/drive/folders/1V115zpdU2-5fXssI6iWv_F6aNu4E5qA7).

RStudio 2023.12.0+369, R 4.3.2, Windows 11.

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

--
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to