Learn R Programming

paleomorph (version 0.1.4)

procrustes: Conducts Procrustes superimposition to align 3D shapes with or without scaling to centroid size.

Description

Conducts Procrustes superimposition to align 3D shapes with or without scaling to centroid size. Skips any missing values in computation of Procrustes coordinates.

Usage

procrustes(A, scale = TRUE, scaleDelta = FALSE, maxiter = 1000,
  tolerance = 1e-05)

Arguments

A
N x 3 x M matrix where N is the number of landmarks, 3 is the number of dimensions, and M is the number of specimens
scale
Logical indicating whether objects should be scaled to unit centroid size
scaleDelta
Logical determining whether deltaa should be scaled by the total number of landmarks.
maxiter
Maximum number of iterations to attempt
tolerance
Difference between two iterations that will cause the search to stop.

Value

A new (N x 3 x M) array, where each 3d vector has been rotated and translated to minimize distances among specimens, and scaled to unit centroid size if requested.

Details

A number of computations are run until the difference between two iterations is less than tolerance. The more specimens and landmarks you have, the less each landmark is allowed to move before this tolerance is reached. Setting scaleDelta = TRUE will make the alignment run faster but have potentially less well aligned results. But the alignment between a large and small array of shapes should be more comparable with scaleDelta = TRUE. However, preliminary tests imply that run time scales linearly with scaleDelta set to TRUE or FALSE.

Examples

Run this code
# Make an array with 6 specimens and 20 landmarks
A <- array(rep(rnorm(6 * 20, sd = 20), each = 6) + rnorm(20 * 3 * 6 ), 
      dim = c(20, 3, 6))

# Align the data (although it is already largely aligned)
aligned <- procrustes(A)

plotSpecimens(aligned)




Run the code above in your browser using DataLab