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

# Class Triaxial

      object --+
               |
    named._Named --+
                   |
    named._NamedBase --+
                       |
                      Triaxial

Known Subclasses:
  - JacobiConformal

Triaxial ellipsoid with 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, 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`, ellipsoidal lat- and longitude `beta` and `omega` are in `Radians` by default (or `Degrees`.

Instance Methods
__init__(self, a, b, c, name='') New Triaxial. |
__str__(self) Default `str(self)`. |
area_p(self, p=1.6075) Approximate the surface area (`meter` squared). |
forwardBetaOmega(self, beta, omega, height=0, name='') Convert ellipsoidal lat- and longitude `beta`, `omega` and height to cartesian. |
forwardBetaOmega_(self, sbeta, cbeta, somega, comega, name='') Convert ellipsoidal lat- and longitude `beta` and `omega` to cartesian coordinates on the ellipsoid's surface. |
forwardLatLon(self, lat, lon, height=0, name='') Convert geodetic lat-, longitude and heigth to cartesian. |
forwardLatLon_(self, slat, clat, slon, clon, height=0, name='') Convert geodetic lat-, longitude and heigth to cartesian. |
hartzell(self, pov, los=None, name='') Compute the intersection of a Line-Of-Sight from a Point-Of-View in space with the surface of this triaxial. |
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. |
reverseBetaOmega(self, x, y, z, name='') Convert cartesian to ellipsoidal lat- and longitude, `beta`, `omega` and height. |
reverseLatLon(self, x, y, z, name='') Convert cartesian to geodetic lat-, longitude and height. |
toStr(self, prec=9, name='', **unused) Return this `Triaxial` as a string. |
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 semi-axis (`meter`, conventionally).
| area Get the surface area (`meter` squared).
| b Get the middle semi-axis (`meter`, same units as `a`).
| c Get the smallest semi-axis (`meter`, same units as `a`).
| e2ab Get the `ab` ellipse' (1st) eccentricity squared (`scalar`), 1 - (b / a)**2.
| e2bc Get the `bc` ellipse' (1st) eccentricity squared (`scalar`), 1 - (c / b)**2.
| e2ac Get the `ac` ellipse' (1st) eccentricity squared (`scalar`), 1 - (c / a)**2.
| volume Get the volume (`meter**3`), 4 / 3 * PI * a * b * c.
Inherited from `named._Named`: `classname`, `classnaming`, `iteration`, `name`, `named`, `named2`, `named3`, `named4` Inherited from `object`: `__class__`

Method Details

### __init__ (self, a, b, c, name='') (Constructor) |
New Triaxial. Arguments: `a` - The largest semi-axis (`meter`, conventionally). `b` - The middle semi-axis (`meter`, same units as `a`). `c` - The smallest semi-axis (`meter`, same units as `a`). `name` - Optional name (`str`). Raises: `TriaxialError` - Semi-axes not ordered, spherical or invalid. Overrides: object.__init__ Note: The semi-axes must be ordered as `a >= b >= c > 0` and be ellipsoidal, `a > c`.

### __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`), 1.6 for near-spherical or 1.5849625007 for "near-flat" triaxials See Also: Surface area.

### forwardBetaOmega (self, beta, omega, height=0, name='') |
Convert ellipsoidal lat- and longitude `beta`, `omega` and height to cartesian. Arguments: `beta` - Ellipsoidal latitude (`radians` or Degrees). `omega` - Ellipsoidal longitude (`radians` or Degrees). `height` - Height above or below the ellipsoid's surface (`meter`, same units as this triaxial's `a`, `b` and `c` semi-axes). `name` - Optional name (`str`). Returns: A Vector3Tuple`(x, y, z)`. See Also: Expressions (23-25).

### forwardBetaOmega_ (self, sbeta, cbeta, somega, comega, name='') |
Convert ellipsoidal lat- and longitude `beta` and `omega` to cartesian coordinates on the ellipsoid's surface. Arguments: `sbeta` - Ellipsoidal latitude `sin(beta)` (`scalar`). `cbeta` - Ellipsoidal latitude `cos(beta)` (`scalar`). `somega` - Ellipsoidal longitude `sin(omega)` (`scalar`). `comega` - Ellipsoidal longitude `cos(omega)` (`scalar`). `name` - Optional name (`str`). Returns: A Vector3Tuple`(x, y, z)`. See Also: Triaxial ellipsoid coordinate system and expressions (23-25).

### forwardLatLon (self, lat, lon, height=0, name='') |
Convert geodetic lat-, longitude and heigth to cartesian. Arguments: `lat` - Geodetic latitude (`degrees`). `lon` - Geodetic longitude (`degrees`). `height` - Height above the ellipsoid (`meter`, same units as this triaxial's `a`, `b` and `c` axes). `name` - Optional name (`str`). Returns: A Vector3Tuple`(x, y, z)`. See Also: Expressions (9-11).

### forwardLatLon_ (self, slat, clat, slon, clon, height=0, name='') |
Convert geodetic lat-, longitude and heigth to cartesian. Arguments: `slat` - Geodetic latitude `sin(lat)` (`scalar`). `clat` - Geodetic latitude `cos(lat)` (`scalar`). `slon` - Geodetic longitude `sin(lon)` (`scalar`). `clon` - Geodetic longitude `cos(lon)` (`scalar`). `height` - Height above the ellipsoid (`meter`, same units as this triaxial's axes `a`, `b` and `c`). `name` - Optional name (`str`). Returns: A Vector3Tuple`(x, y, z)`. See Also: Expressions (9-11).

### hartzell (self, pov, los=None, name='') |
Compute the intersection of a Line-Of-Sight from a Point-Of-View in space with the surface of this triaxial. Arguments: `pov` - Point-Of-View outside this triaxial (`Cartesian`, Ecef9Tuple or Vector3d). `los` - Line-Of-Sight, direction to this triaxial (Vector3d) or `None` to point to this triaxial's center. `name` - Optional name (`str`). Returns: Vector4Tuple`(x, y, z, h)` on this triaxial's surface. Raises: `TriaxialError` - Null `pov` or `los` vector, `pov` is inside this triaxial or `los` points outside this triaxial or points in an opposite direction. `TypeError` - Invalid `pov` or `los`. See Also: Function pygeodesy.tyr3d for `los` and Hartzell, S. Satellite Line-of-Sight Intersection with Earth.

### 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`), needed if `x_xyz` if `scalar`. `z` - Z component (`scalar`), needed if `x_xyz` if `scalar`. `normal` - If `True` the projection is the nearest point on this triaxial's surface, otherwise the intersection of the radial line to the center and this triaxial's surface. `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` or no convergence in root finding. See Also: Eberly.

### reverseBetaOmega (self, x, y, z, name='') |
Convert cartesian to ellipsoidal lat- and longitude, `beta`, `omega` and height. Arguments: `x` - X coordinate along `a`-axis (`meter`, same units as the axes). `y` - Y coordinate along `b`-axis (`meter`, same units as the axes). `z` - Z coordinate along `c`-axis (`meter`, same units as the axes). `name` - Optional name (`str`). Returns: A BetaOmega3Tuple`(beta, omega, height)` with `beta` and `omega` in `Radians` and `height` in `meter`, same units as this triaxial's axes. See Also: Expressions (21-22).

### reverseLatLon (self, x, y, z, name='') |
Convert cartesian to geodetic lat-, longitude and height. Arguments: `x` - X coordinate along `a`-axis (`meter`, same units as the axes). `y` - Y coordinate along `b`-axis (`meter`, same units as the axes). `z` - Z coordinate along `c`-axis (`meter`, same units as the axes). `name` - Optional name (`str`). Returns: A LatLon3Tuple`(lat, lon, height)` with `lat` and `lon` in `degrees` and `height` in `meter`, same units as this triaxial's axes. See Also: Expressions (4-5).

### 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 ellipsoid's name. Returns: This `Triaxial`'s attributes (`str`). Overrides: named._Named.toStr

Property Details

### a Get the largest semi-axis (`meter`, conventionally). Get method: a(self) - Get the largest 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. See Also: Surface area.

### b Get the middle semi-axis (`meter`, same units as `a`). Get method: b(self) - Get the middle 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 semi-axis (`meter`, same units as `a`). Get method: c(self) - Get the smallest 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.

### 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.

### 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.

### 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.