3D orientation tensor, which characterize data distribution using eigenvalue method. See (Watson 1966, Scheidegger 1965).
Usage
is.ortensor(object)
as.ortensor(object)
ortensor(x, norm, w, shift)
# S3 method for class 'Vec3'
ortensor(x, norm = TRUE, w = NULL, shift = NULL)
# S3 method for class 'Line'
ortensor(x, norm = TRUE, w = NULL, shift = NULL)
# S3 method for class 'Ray'
ortensor(x, norm = TRUE, w = NULL, shift = NULL)
# S3 method for class 'Plane'
ortensor(x, norm = TRUE, w = NULL, shift = NULL)
# S3 method for class 'Pair'
ortensor(x, norm = TRUE, w = NULL, shift = FALSE)Arguments
- object
3x3 matrix
- x
object of class
"Vec3","Line","Ray","Plane","Pair", or"Fault", where the rows are the observations and the columns are the coordinates.- norm
logical. Whether the tensor should be normalized or not.
- w
numeric. weightings
- shift
logical. Only for
"Pair"objects: Tensor is by default shifted towards positive eigenvalues, so it could be used as Scheidegger orientation tensor for plotting. When original Lisle tensor is needed, set shift toFALSE.
Value
ortensor() returns an object of class "ortensor"
is.ortensor returns TRUE if x is an "ortensor" object, and FALSE otherwise.
as.ortensor coerces a 3x3 matrix into an "ortensor" object.
Details
The normalized orientation tensor is given as $$D = \frac{1}{n} (x_i, y_i, z_i) (x_i, y_i, z_i)^T$$
References
Watson, G. S. (1966). The Statistics of Orientation Data. The Journal of Geology, 74(5), 786–797.
Scheidegger, A. E. (1964). The tectonic stress and tectonic motion direction in Europe and Western Asia as calculated from earthquake fault plane solutions. Bulletin of the Seismological Society of America, 54(5A), 1519–1528. doi:10.1785/BSSA05405A1519
Lisle, R. (1989). The Statistical Analysis of Orthogonal Orientation Data. The Journal of Geology, 97(3), 360-364.
See also
Other ortensor:
ot_eigen(),
strain_shape
Examples
set.seed(20250411)
x <- rfb(100, mu = Line(120, 50), k = 1, A = diag(c(10, 0, 0)))
ortensor(x, w = runif(nrow(x)))
#> Orientation tensor
#> [,1] [,2] [,3]
#> [1,] 0.1953747 -0.22524425 -0.09751770
#> [2,] -0.2252442 0.69749852 -0.01237374
#> [3,] -0.0975177 -0.01237374 1.10031778
test <- as.ortensor(diag(3))
is.ortensor(test)
#> [1] TRUE
# Orientation tensor for Pairs
ortensor(angelier1990$TYM)
#> Orientation tensor
#> [,1] [,2] [,3]
#> [1,] -0.33014781 0.17226487 -0.03483861
#> [2,] 0.17226487 -0.15036372 -0.06174581
#> [3,] -0.03483861 -0.06174581 0.48051152
