Learn R Programming

tectonicr (version 0.4.8)

ort-eigen: Decomposition of Orientation Tensor in 2D

Description

Spectral decomposition of the 2D orientation tensor into two Eigenvectors and corresponding Eigenvalues provides provides a measure of location and a corresponding measure of dispersion, respectively.

Usage

ot_eigen2d(x, w = NULL, scale = FALSE)

principal_direction(x, w = NULL)

axial_strength(x, w = NULL)

axial_dispersion(x, w = NULL)

Value

ot_eigen2d returns a list of the Eigenvalues and the axial angles corresponding to the Eigenvectors. principal_direction(), axial_strength() and axial_dispersion() are convenience functions to return the orientation of the largest eigenvalue, the orientation strength, the axial dispersion respectively.

Arguments

x

numeric. Axial angular data (in degrees).

w

(optional) Weights. A vector of positive numbers and of the same length as x.

scale

logical. Whether the Eigenvalues should be scaled so they sum up to 1. Only applicable when weighting are specified, otherwise the eigenvalues are always scaled.

Details

The Eigenvalues (\(\lambda_1 > \lambda_2\)) can be interpreted as the fractions of the variance explained by the orientation of the associated Eigenvectors. The two perpendicular Eigenvectors (\(a_1, a_2\)) are the "principal directions" with respect to the highest and the lowest concentration of orientation data.

The strength of the orientation is the largest eigenvalue \(\lambda_1\) normalized by the sum of the eigenvalues (scale=TRUE). Then \(\lambda_2 = 1-\lambda_1\) is a measure of dispersion of 2D orientation data with respect to \(a_1\).

See Also

ortensor2d()

Examples

Run this code
test <- rvm(100, mean = 0, k = 10) / 2
ot_eigen2d(test)

data("nuvel1")
PoR <- subset(nuvel1, nuvel1$plate.rot == "na")
sa.por <- PoR_shmax(san_andreas, PoR, "right")
sa_eig <- ot_eigen2d(sa.por$azi.PoR, w = weighting(san_andreas$unc), scale = TRUE)
print(sa_eig)

rose(sa.por$azi.PoR, muci = FALSE)
rose_line(sa_eig$vectors,
  col = c("red", "green"),
  radius = sa_eig$values, lwd = 2
)
graphics::legend("topright",
  legend = round(sa_eig$values, 2),
  col = c("red", "green"), lty = 1
)

principal_direction(sa.por$azi.PoR)

axial_strength(sa.por$azi.PoR)

axial_dispersion(sa.por$azi.PoR)

Run the code above in your browser using DataLab