twdtw_knn1 | R Documentation |
This function prepares a KNN-1 model with the Time Warp Dynamic Time Warping (TWDTW) algorithm. If a formula is provided, the training samples are resampled using Generalized Additive Models (GAM).
twdtw_knn1(
x,
y,
time_weight,
cycle_length,
time_scale,
formula = NULL,
start_column = "start_date",
end_column = "end_date",
label_colum = "label",
sampling_freq = NULL,
...
)
x |
A three-dimensional stars object (x, y, time) with bands as attributes. |
y |
An sf object with the coordinates of the training points. |
time_weight |
A numeric vector with length two (steepness and midpoint of logistic weight) or a function. See details in twdtw. |
cycle_length |
The length of the cycle, e.g. phenological cycles. Details in twdtw. |
time_scale |
Specifies the time scale for the observations. Details in twdtw. |
formula |
Either NULL or a formula to reduce samples of the same label using Generalized Additive Models (GAM).
Default is |
start_column |
Name of the column in y that indicates the start date. Default is 'start_date'. |
end_column |
Name of the column in y that indicates the end date. Default is 'end_date'. |
label_colum |
Name of the column in y containing land use labels. Default is 'label'. |
sampling_freq |
The time frequency for sampling, including the unit (e.g., '16 day'). If NULL, the function will infer the frequency. This parameter is only used if a formula is provided. |
... |
Additional arguments passed to the gam function and to twdtw function. |
If formula
is NULL, the KNN-1 model will retain all training samples. If a formula is passed (e.g., band ~ s(time)
),
then samples of the same label (land cover class) will be resampled using GAM.
Resampling can significantly reduce prediction processing time.
A 'twdtw_knn1' model containing the trained model information and the data used.
## Not run:
# 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()
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.