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=None, 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 of a cartesian above or below this triaxial's surface. |
normal3d(self, x_xyz, y=None, z=None, length=1.0) Get a 3-D vector perpendicular to at a cartesian on 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: `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=None, name='') |
Compute the intersection of this triaxial's surface with a Line-Of-Sight from a Point-Of-View in space. See Also: Function pygeodesy.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 of a cartesian 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 perpendicular to (the nearest point on) this triaxial's surface, otherwise the `radial` line to this triaxial's center (`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 ... an Ellipsoid ....

### normal3d (self, x_xyz, y=None, z=None, length=1.0) |
Get a 3-D vector perpendicular to at a cartesian on 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`. 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`). Returns: `INT0` if `(x, y, z)` is near this triaxial's surface within tolerance `eps`, otherwise a neg- or positive `float` if 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: `TriaxialError` - This `a != b`, `b != c` and `c != a`. 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.