Spatial Rotation Methods

Python classes providing vector operation functionality to osirisl1services.services

Module osirisl1services.spatialrotation

class spatialrotation.Vector(x: float, y: float, z: float)[source]

Vector of the form:

x <i>, y <j>, z <k>

property x

Alias for field number 0

property y

Alias for field number 1

property z

Alias for field number 2

class spatialrotation.ECI(x: float, y: float, z: float)[source]

Vector class denoting Earth Centered Inertial (fixed to the stars) reference frame.

to_geo(mjd: float) Vector[source]

Code to calculate theta copied from the ECIToGeo C++ L1 Services function.

class spatialrotation.ECEF(x: float, y: float, z: float)[source]

Vector class denoting Earth Centered, Earth Fixed reference frame.

class spatialrotation.Geodetic(latitude: float, longitude: float, height: float)[source]

Vector class denoting Earth Centered, Earth Fixed reference frame in latitude, longitude, height.

class spatialrotation.UnitQuaternion(a: float, b: float, c: float, d: float)[source]

Normalized Quaternion with multiply and vector rotate methods of the form:

a + bi + cj + dk

property a

Alias for field number 0

property b

Alias for field number 1

property c

Alias for field number 2

property d

Alias for field number 3

rot(other: Sequence[Vector]) List[Vector][source]

Rotate a list of vectors by a Quaternion.

q * v * q’

rot_no_z(other: Sequence[Vector]) List[Vector][source]

Rotate a list of vectors with z=0.0 by a Quaternion.

q * v * q’

rot_unit_x() Vector[source]

Rotate the x-unit vector <1, 0, 0> by a Quaternion.

q * v * q’

slerp(other, alpha)[source]

Quaternion slerp adapted from c++ reference on wikipedia article.

Only unit quaternions are valid rotations.

class spatialrotation.TaitBryanZYX(yaw, pitch, roll)[source]
property yaw

Alias for field number 0

property pitch

Alias for field number 1

property roll

Alias for field number 2