Skip to contents

3D orientation tensor, which characterize data distribution using eigenvalue method. See (Watson 1966, Scheidegger 1965).

Usage

is.ortensor(object)

as.ortensor(object)

# S3 method for class 'spherical'
ortensor(x, norm = TRUE, w = NULL)

ortensor(x, norm = TRUE, w = NULL)

Arguments

object

3x3 matrix

x

object of class "Vec3", "Line", "Ray", or "Plane", 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

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

See also

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)))
#>            [,1]        [,2]        [,3]
#> [1,]  0.1751165 -0.20424156 -0.12844355
#> [2,] -0.2042416  0.78304491 -0.01023266
#> [3,] -0.1284435 -0.01023266  1.14637005
#> attr(,"class")
#> [1] "matrix"   "array"    "ortensor"

test <- as.ortensor(diag(3))
is.ortensor(test)
#> [1] TRUE