-#' @title get Forecast
+#' Compute forecast
#'
-#' @description Predict time-series curves for the selected days indices (lines in data).
+#' Predict time-series curves for the selected days indices (lines in data).
#'
#' @param data Dataset, object of type \code{Data} output of \code{getData}
#' @param indices Days indices where to forecast (the day after)
horizon = as.integer(horizon)[1]
if (horizon<=0 || horizon>length(data$getCenteredSerie(2)))
stop("Horizon too short or too long")
- integer_indices = sapply(seq_along(indices), function(i) dateIndexToInteger(indices[i],data))
+ integer_indices = sapply(indices, function(i) dateIndexToInteger(i,data))
if (any(integer_indices<=0 | integer_indices>data$getSize()))
stop("Indices out of range")
if (!is.character(forecaster) || !is.character(pjump))
stop("forecaster (name) and pjump (function) should be of class character")
- pred = Forecast$new( dates=sapply( indices, integerIndexToDate, data ) )
+ pred = Forecast$new( sapply(indices, function(i) integerIndexToDate(i,data)) )
forecaster_class_name = getFromNamespace(paste(forecaster,"Forecaster",sep=""), "talweg")
- forecaster = forecaster_class_name$new(data=data,
- pjump = getFromNamespace(paste("get",pjump,"JumpPredict",sep=""), "talweg"))
- for (today in integer_indices)
- {
- pred$append(
- new_serie = forecaster$predictSerie(today, memory, horizon, ...),
- new_params = forecaster$getParameters(),
- new_index = today
- )
- }
+ forecaster = forecaster_class_name$new( #.pjump =
+ getFromNamespace(paste("get",pjump,"JumpPredict",sep=""), "talweg"))
+
+#oo = forecaster$predictSerie(data, integer_indices[1], memory, horizon, ...)
+#browser()
+
+ library(parallel)
+ ppp <- parallel::mclapply(seq_along(integer_indices), function(i) {
+ list(
+ "forecast" = forecaster$predictSerie(data, integer_indices[i], memory, horizon, ...),
+ "params"= forecaster$getParameters(),
+ "index" = integer_indices[i] )
+ }, mc.cores=3)
+
+#browser()
+
+for (i in seq_along(integer_indices))
+{
+ pred$append(
+ new_serie = ppp[[i]]$forecast,
+ new_params = ppp[[i]]$params,
+ new_index_in_data = ppp[[i]]$index
+ )
+}
+
pred
}