curve_srvf_align: Align Curves

View source: R/curve_srvf_align.R

curve_srvf_alignR Documentation

Align Curves

Description

Aligns a collection of curves using the elastic square-root velocity (srvf) framework. If the curves are describing multidimensional functional data, then rotated == FALSE and mode == 'O'

Usage

curve_srvf_align(
  beta,
  mode = "O",
  rotated = TRUE,
  scale = TRUE,
  lambda = 0,
  maxit = 20,
  ms = "mean",
  parallel = TRUE
)

Arguments

beta

Array of sizes n \times T \times N for N curves of dimension n evaluated on a grid of T points

mode

Open ("O") or Closed ("C") curves

rotated

Optimize over rotation (default = TRUE)

scale

scale curves to unit length (default = TRUE)

lambda

A numeric value specifying the elasticity. Defaults to 0.0.

maxit

maximum number of iterations

ms

string defining whether the Karcher mean ("mean") or Karcher median ("median") is returned (default = "mean")

parallel

A boolean specifying whether to run calculations in parallel. Defaults to TRUE.

Value

An object of class fdacurve which is a list with the following components:

  • mu: mean srvf

  • beta: centered curves

  • betamean: mean or median curve

  • betan: aligned curves

  • qn: aligned srvfs

  • type: string indicating whether mean or median is returned

  • v: shooting vectors

  • q: array of srvfs

  • gam: array of warping functions

  • cent: centers of original curves

  • len: length of curves

  • len_q: length of srvfs

  • mean_scale: mean length

  • mean_scale_q: mean length srvf

  • E: energy

  • qun: cost function

References

Srivastava, A., Klassen, E., Joshi, S., Jermyn, I., (2011). Shape analysis of elastic curves in euclidean spaces. Pattern Analysis and Machine Intelligence, IEEE Transactions on 33 (7), 1415-1428.

Examples

data("mpeg7")
# note: use more shapes and iterations, small for speed
out = curve_srvf_align(beta[,,1,1:2],maxit=2,parallel=FALSE)

fdasrvf documentation built on Oct. 5, 2024, 1:08 a.m.