warp: Apply a warping to a given timeseries

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/warp.R

Description

Returns the indexing required to apply the optimal warping curve to a given timeseries (warps either into a query or into a reference).

Usage

1
warp(d,index.reference=FALSE)

Arguments

d

dtw object specifying the warping curve to apply

index.reference

TRUE to warp a reference, FALSE to warp a query

Details

The warping is returned as a set of indices, which can be used to subscript the timeseries to be warped (or rows in a matrix, if one wants to warp a multivariate time series). In other words, warp converts the warping curve, or its inverse, into a function in the explicit form.

Multiple indices that would be mapped to a single point are averaged, with a warning. Gaps in the index sequence are filled by linear interpolation.

Value

A list of indices to subscript the timeseries.

Author(s)

Toni Giorgino

See Also

Examples in dtw show how to graphically apply the warping via parametric plots.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
idx<-seq(0,6.28,len=100);
query<-sin(idx)+runif(100)/10;
reference<-cos(idx)

alignment<-dtw(query,reference);


wq<-warp(alignment,index.reference=FALSE);
wt<-warp(alignment,index.reference=TRUE);

old.par <- par(no.readonly = TRUE);
par(mfrow=c(2,1));

plot(reference,main="Warping query");
  lines(query[wq],col="blue");

plot(query,type="l",col="blue",
  main="Warping reference");
  points(reference[wt]);

par(old.par);


##############
##
## Asymmetric step makes it "natural" to warp
## the reference, because every query index has
## exactly one image (q->t is a function)
##

alignment<-dtw(query,reference,step=asymmetric)
wt<-warp(alignment,index.reference=TRUE);

plot(query,type="l",col="blue",
  main="Warping reference, asymmetric step");
  points(reference[wt]);

dtw documentation built on May 29, 2017, 3:24 p.m.