Package pygeodesy :: Module triaxials :: Class Triaxial_
[frames] | no frames]

Class Triaxial_

  object --+            
           |            
named._Named --+        
               |        
named._NamedBase --+    
                   |    
named._NamedEnumItem --+
                       |
                      Triaxial_
Known Subclasses:

Unordered triaxial ellipsoid and base class.

Triaxial ellipsoids with right-handed semi-axes a, b and c, oriented such that the large principal ellipse ab is the equator Z=0, beta=0, while the small principal ellipse ac is the prime meridian, plane Y=0, omega=0.

The four umbilic points, abs(omega) = abs(beta) = PI/2, lie on the middle principal ellipse bc in plane X=0, omega=PI/2.


Note: Geodetic lat- and longitudes are in degrees, geodetic phi and lambda are in radians, but ellipsoidal lat- and longitude beta and omega are in Radians by default (or in Degrees if converted).

Instance Methods
 
__init__(self, a_triaxial, b=None, c=None, name='')
New unordered Triaxial_.
 
__str__(self)
Default str(self).
 
area_p(self, p=1.6075)
Approximate the surface area (meter squared).
 
hartzell4(self, pov, los=False, name='')
Compute the intersection of this triaxial's surface with a Line-Of-Sight from a Point-Of-View in space.
 
height4(self, x_xyz, y=None, z=None, normal=True, eps=2.220446049250313e-16)
Compute the projection on and the height above or below this triaxial's surface.
 
normal3d(self, x_xyz, y=None, z=None, length=1.0)
Get a 3-D vector at a cartesian on and perpendicular to this triaxial's surface.
 
sideOf(self, x_xyz, y=None, z=None, eps=8.881784197001252e-16)
Is a cartesian above, below or on the surface of this triaxial?
 
toEllipsoid(self, name='')
Convert this triaxial to an Ellipsoid, provided 2 axes match.
 
toStr(self, prec=9, name='', **unused)
Return this Triaxial as a string.

Inherited from named._NamedEnumItem: unregister

Inherited from named._NamedBase: __repr__, others, toRepr

Inherited from named._Named: __imatmul__, __matmul__, __rmatmul__, attrs, classof, copy, dup, methodname, rename, toStr2

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

Properties
  a
Get the (largest) x semi-axis (meter, conventionally).
  area
Get the surface area (meter squared).
  b
Get the (middle) y semi-axis (meter, same units as a).
  c
Get the (smallest) z semi-axis (meter, same units as a).
  e2ab
Get the ab ellipse' (1st) eccentricity squared (scalar), 1 - (b/a)**2.
  e2ac
Get the ac ellipse' (1st) eccentricity squared (scalar), 1 - (c/a)**2.
  e2bc
Get the bc ellipse' (1st) eccentricity squared (scalar), 1 - (c/b)**2.
  isOrdered
Is this triaxial ordered and not spherical (bool)?
  isSpherical
Is this triaxial spherical (Radius or INT0)?
  volume
Get the volume (meter**3), 4 / 3 * PI * a * b * c.

Inherited from named._NamedEnumItem: name

Inherited from named._Named: classname, classnaming, iteration, named, named2, named3, named4, sizeof

Inherited from object: __class__

Method Details

__init__ (self, a_triaxial, b=None, c=None, name='')
(Constructor)

 

New unordered Triaxial_.

Arguments:
  • a_triaxial - Large, X semi-axis (scalar, conventionally in meter) or an other Triaxial or Triaxial_ instance.
  • b - Middle, Y semi-axis (meter, same units as a), required if a_triaxial is scalar, ignored otherwise.
  • c - Small, Z semi-axis (meter, same units as a), required if a_triaxial is scalar, ignored otherwise.
  • name - Optional name (str).
Raises:
Overrides: object.__init__

__str__ (self)
(Informal representation operator)

 

Default str(self).

Overrides: object.__str__
(inherited documentation)

area_p (self, p=1.6075)

 

Approximate the surface area (meter squared).

Arguments:
  • p - Exponent (scalar > 0), 1.6 for near-spherical or 1.5849625007 for "near-flat" triaxials.

See Also: Surface area.

hartzell4 (self, pov, los=False, name='')

 

Compute the intersection of this triaxial's surface with a Line-Of-Sight from a Point-Of-View in space.

See Also: Function hartzell4 for further details.

height4 (self, x_xyz, y=None, z=None, normal=True, eps=2.220446049250313e-16)

 

Compute the projection on and the height above or below this triaxial's surface.

Arguments:
  • x_xyz - X component (scalar) or a cartesian (Cartesian, Ecef9Tuple, Vector3d, Vector3Tuple or Vector4Tuple).
  • y - Y component (scalar), required if x_xyz if scalar.
  • z - Z component (scalar), required if x_xyz if scalar.
  • normal - If True the projection is the normal, plumb to the surface of, otherwise the radial line to the center of this triaxial (bool).
  • eps - Tolerance for root finding and validation (scalar), use a negative value to skip validation.
Returns:
Vector4Tuple(x, y, z, h) with the cartesian coordinates x, y and z of the projection on or the intersection with and with the height h above or below the triaxial's surface in meter, conventionally.
Raises:
  • TriaxialError - Non-cartesian xyz, invalid eps, no convergence in root finding or validation failed.

See Also: Method Ellipsoid.height4 and Eberly's Distance from a Point to ....

normal3d (self, x_xyz, y=None, z=None, length=1.0)

 

Get a 3-D vector at a cartesian on and perpendicular to this triaxial's surface.

Arguments:
  • x_xyz - X component (scalar) or a cartesian (Cartesian, Ecef9Tuple, Vector3d, Vector3Tuple or Vector4Tuple).
  • y - Y component (scalar), required if x_xyz if scalar.
  • z - Z component (scalar), required if x_xyz if scalar.
  • length - Optional length and in-/outward direction (scalar).
Returns:
A Vector3d(x_, y_, z_) normalized to length, pointing in- or outward for neg- respectively positive length.
Raises:

Note: Cartesian location (x, y, z) must be on this triaxial's surface, use method Triaxial.sideOf to validate.

sideOf (self, x_xyz, y=None, z=None, eps=8.881784197001252e-16)

 

Is a cartesian above, below or on the surface of this triaxial?

Arguments:
  • x_xyz - X component (scalar) or a cartesian (Cartesian, Ecef9Tuple, Vector3d, Vector3Tuple or Vector4Tuple).
  • y - Y component (scalar), required if x_xyz if scalar.
  • z - Z component (scalar), required if x_xyz if scalar.
  • eps - Near-surface tolerance (scalar, distance squared).
Returns:
INT0 if (x, y, z) is near this triaxial's surface within tolerance eps, otherwise a signed, radial, normalized distance squared (float), negative or positive for in- respectively outside this triaxial.

See Also: Methods Triaxial.height4 and Triaxial.normal3d.

toEllipsoid (self, name='')

 

Convert this triaxial to an Ellipsoid, provided 2 axes match.

Returns:
An Ellipsoid with north along this Z axis if a == b, this Y axis if a == c or this X axis if b == c.
Raises:

See Also: Method Ellipsoid.toTriaxial.

toStr (self, prec=9, name='', **unused)

 

Return this Triaxial as a string.

Arguments:
  • prec - Precision, number of decimal digits (0..9).
  • name - Override name (str) or None to exclude this triaxial's name.
Returns:
This Triaxial's attributes (str).
Overrides: named._Named.toStr

Property Details

a

Get the (largest) x semi-axis (meter, conventionally).

Get method:
a(self) - Get the (largest) x semi-axis (meter, conventionally).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

area

Get the surface area (meter squared).

Get method:
area(self) - Get the surface area (meter squared).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

b

Get the (middle) y semi-axis (meter, same units as a).

Get method:
b(self) - Get the (middle) y semi-axis (meter, same units as a).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

c

Get the (smallest) z semi-axis (meter, same units as a).

Get method:
c(self) - Get the (smallest) z semi-axis (meter, same units as a).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

e2ab

Get the ab ellipse' (1st) eccentricity squared (scalar), 1 - (b/a)**2.

Get method:
e2ab(self) - Get the ab ellipse' (1st) eccentricity squared (scalar), 1 - (b/a)**2.
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

e2ac

Get the ac ellipse' (1st) eccentricity squared (scalar), 1 - (c/a)**2.

Get method:
e2ac(self) - Get the ac ellipse' (1st) eccentricity squared (scalar), 1 - (c/a)**2.
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

e2bc

Get the bc ellipse' (1st) eccentricity squared (scalar), 1 - (c/b)**2.

Get method:
e2bc(self) - Get the bc ellipse' (1st) eccentricity squared (scalar), 1 - (c/b)**2.
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

isOrdered

Is this triaxial ordered and not spherical (bool)?

Get method:
isOrdered(self) - Is this triaxial ordered and not spherical (bool)?
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

isSpherical

Is this triaxial spherical (Radius or INT0)?

Get method:
isSpherical(self) - Is this triaxial spherical (Radius or INT0)?
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

volume

Get the volume (meter**3), 4 / 3 * PI * a * b * c.

Get method:
volume(self) - Get the volume (meter**3), 4 / 3 * PI * a * b * c.
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.