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

# Class Triaxial_

      object --+
               |
    named._Named --+
                   |
    named._NamedBase --+
                       |
    named._NamedEnumItem --+
                           |
                          Triaxial_

Known Subclasses:
  - Triaxial

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 `lon`gitudes are in `degrees`, geodetic `phi` and `lam`bda 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, **name) 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 on, above or below the surface of this triaxial? |
toEllipsoid(self, **name) Convert this triaxial to an Ellipsoid, provided 2 axes match. |
toStr(self, prec=9, **name) Return this `Triaxial` as a string. |
Inherited from `named._NamedEnumItem`: `unregister` Inherited from `named._NamedBase`: `__repr__`, `others`, `toRepr` Inherited from `named._Named`: `__format__`, `__imatmul__`, `__matmul__`, `__rmatmul__`, `attrs`, `classof`, `copy`, `dup`, `methodname`, `rename`, `renamed`, `toStr2` Inherited from `object`: `__delattr__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Properties
| a
| area
| b
| c
| e2ab
| e2ac
| e2bc
| isOrdered
| isSpherical
| unOrdered
| volume
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`, `b`). `name` - Optional `name=NN` (`str`). Raises: `TriaxialError` - Invalid semi-axis or -axes. 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, **name) |
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`, ignored otherwise. `z` - Z component (`scalar`), like `y`. `normal` - If `True`, the projection is the perpendicular, plumb to the triaxial's surface, 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. `name` - Optional `name="heigh4"` (`str`). 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: Methods Triaxial.normal3d and 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`, ignored otherwise. `z` - Z component (`scalar`), like `y`. `length` - Optional, signed 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: `TriaxialError` - Zero length cartesian or vector. Note: Cartesian `(x, y, z)` must be on this triaxial's surface, use method Triaxial.sideOf to validate. See Also: Methods Triaxial.height4 and Triaxial.sideOf.

### sideOf (self, x_xyz, y=None, z=None, eps=8.881784197001252e-16) |
Is a cartesian on, above or below 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`, ignored otherwise. `z` - Z component (`scalar`), like `y`. `eps` - On-surface tolerance (`scalar`, distance squared). Returns: `INT0` if `(x, y, z)` is near this triaxial's surface within tolerance `eps`, otherwise the signed, radial distance squared (`float`), negative for in- or positive for outside this triaxial. See Also: Methods Triaxial.height4 and Triaxial.normal3d.

### toEllipsoid (self, **name) |
Convert this triaxial to an Ellipsoid, provided 2 axes match. Arguments: `name` - Optional `name=NN` (`str`). 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: `TriaxialError` - This `a != b`, `b != c` and `c != a`. See Also: Method Ellipsoid.toTriaxial.

### toStr (self, prec=9, **name) |
Return this `Triaxial` as a string. Arguments: `prec` - Precision, number of decimal digits (0..9). `name` - Optional name (`str`), to override or `None` to exclude this triaxial's name. Returns: This `Triaxial`'s attributes (`str`). Overrides: named._Named.toStr

Property Details

### a Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### area Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### b Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### c Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### e2ab Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### e2ac Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### e2bc Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### isOrdered Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### isSpherical Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### unOrdered Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### volume Get method: _fget(inst) - Get and cache/memoize the `property` value. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.