This function predicts the classes of new data using the Time Warped Dynamic Time Warping (TWDTW)
method with a 1-nearest neighbor approach. The prediction is based on the minimum TWDTW distance
to the known patterns stored in the twdtw_knn1
model.
Usage
# S3 method for twdtw_knn1
predict(object, newdata, ...)
Arguments
- object
A
twdtw_knn1
model object generated by thetwdtw_knn1
function.- newdata
A data frame or similar object containing the new observations (time series data) to be predicted.
- ...
Additional arguments passed to the twdtw function. If provided, they will overwrite twdtw arguments previously passed to twdtw_knn1.
Examples
if (FALSE) {
# Read training samples
samples_path <-
system.file("mato_grosso_brazil/samples.gpkg", package = "dtwSat")
samples <- st_read(samples_path, quiet = TRUE)
# Get satellite image time sereis files
tif_path <- system.file("mato_grosso_brazil", package = "dtwSat")
tif_files <- dir(tif_path, pattern = "\\.tif$", full.names = TRUE)
# Get acquisition dates
acquisition_date <- regmatches(tif_files, regexpr("[0-9]{8}", tif_files))
acquisition_date <- as.Date(acquisition_date, format = "%Y%m%d")
# Create a 3D datacube
dc <- read_stars(tif_files,
proxy = FALSE,
along = list(time = acquisition_date),
RasterIO = list(bands = 1:6))
dc <- st_set_dimensions(dc, 3, c("EVI", "NDVI", "RED", "BLUE", "NIR", "MIR"))
dc <- split(dc, c("band"))
# Create a knn1-twdtw model
m <- twdtw_knn1(x = dc,
y = samples,
cycle_length = 'year',
time_scale = 'day',
time_weight = c(steepness = 0.1, midpoint = 50),
formula = band ~ s(time))
print(m)
# Visualize model patterns
plot(m)
# Classify satellite images
system.time(lu <- predict(dc, model = m))
# Visualise land use classification
ggplot() +
geom_stars(data = lu) +
theme_minimal()
}