Source code for attitude.orientation.linear

from __future__ import division, print_function
import numpy as N
from scipy.linalg import eig

from ...coordinates import centered
from ..base import BaseOrientation, rotation
from .regression import Regression

[docs]def axes(matrix): """ Computes the ellipse axes lengths for a covariance matrix """ return N.sqrt(eig(matrix[0:2,0:2])[0])
[docs]class LinearOrientation(BaseOrientation): def __init__(self,coordinates): self.fit = Regression(coordinates) values = self.fit.coefficients() val = values[0]**2+values[1]**2 self.azimuth = -N.arctan2(-values[1], -values[0]) self.rotation = rotation(self.azimuth) self.coefficients = N.dot(self.rotation,values) self.slope = N.arctan(-self.coefficients[0]) self.covariance_matrix = self.fit.covariance_matrix
[docs] def strike_dip(self, uncertainties=False): c = tuple(N.degrees(i) for i in (self.azimuth,self.slope)) if uncertainties: return c,self.errors() return c