pygeodesy.triaxials

Package pygeodesy :: Package triaxials |
[frames] | no frames]

# Package triaxials

Package of lazily imported modules triaxials.conformal3, triaxials.triaxial3 and triaxials.triaxial5 for triaxial ellipsoids.

Mostly transcoded to pure Python from Karney's GeographicLib 2.7 Triaxial<https:// GeographicLib.SourceForge.io/C++/doc/namespaceGeographicLib_1_1Triaxial.html classes and the experimental GeographicLib 2.52 Jacobi class.

Copyright (C) Charles Karney (2008-2024, 2024-2025) and licensed under the MIT/X11 License. For more information, see the GeographicLib 2.5.2 and 2.7 documentation.

Version: 26.02.06

Submodules
pygeodesy.triaxials.bases: (INTERNAL) Base classes for ordered triaxial ellipsoid classes Conformal, Conformal3, Triaxial, Triaxial3 and unordered Triaxial_. pygeodesy.triaxials.conformal3: Jacobi Conformal projection classes Conformal3, Conformal3B and Conformal3Sphere on triaxial ellipsoids and spheres using Ang, Deg, Rad lat-, longitude, heading and meridian (convergence) angles. pygeodesy.triaxials.triaxial3: Ordered triaxial ellipsoid classes Triaxial3 and Triaxial3B for conversion between variuos lat-/longitudal and cartesian coordinates on a triaxial ellipsoid using Ang, Deg, Rad lat-, longitude and heading angles. pygeodesy.triaxials.triaxial5: Triaxal ellipsoid classes Triaxial and unordered Triaxial_ and Jacobi conformal projections Conformal and ConformalSphere, transcoded from Karney's GeographicLib 2.5.2 C++ class JacobiConformal to pure Python and miscellaneous classes BetaOmega2Tuple, BetaOmega3Tuple and Conformal2Tuple, all kept for backward copability.

Classes
| LLK Enum-like `Lat-/Longitude Kinds (LLK)`, see coord.
| TriaxialError Raised for any triaxial issue.
| BetOmgGam5Tuple 5-Tuple `(bet, omg, gam, scale, llk)` with ellipsoidal lat- `bet`, longitude `omg` and meridian convergence `gam` all Angles, `scale` and kind `llk` set to `LLK.CONFORMAL`.
| Conformal3 Jacobi Conformal projection of triaxial ellipsoid using class Ang lat- and longitudes.
| Conformal3B Jacobi Conformal projection on a triaxial ellipsoid specified by its middle semi-axis and shape.
| Conformal3Sphere Jacobi Conformal projection on a spherical triaxial.
| Conformal5Tuple 5-Tuple `(x, y, z, scale, llk)` with the easting `x` and northing `y` projection, `scale` or `NAN` but with `z=INT0` and kind `llk=LLK.CONFORMAL` always.
| BetOmgAlp5Tuple 5-Tuple `(bet, omg, alp, h, llk)` with ellipsoidal lat- `bet`, longitude `omg` and azimuth `alp`, all in Angles on and height `h` off the triaxial's surface and kind `llk` set to `LLK.ELLIPSOIDAL`.
| Cartesian5Tuple 5-Tuple `(x, y, z, h, llk)` with cartesian `x`, `y` and `z` coordinates on and height `h` above or below the triaxial's surface and kind `llk` set to the original `LLK` or `None`.
| PhiLamZet5Tuple 5-Tuple `(phi, lam, zet, h, llk)` with trixial lat- lat- `phi`, longitude `lam` and azimuth `zet`, all in Angles on and height `h` off the triaxial's surface and kind `llk` set to an `LLK`.
| Triaxial3 Ordered triaxial ellipsoid convering between cartesian and lat-/longitudes using using class Ang.
| Triaxial3B Triaxial ellipsoid specified by its middle semi-axis and shape.
| BetaOmega2Tuple 2-Tuple `(beta, omega)` with ellipsoidal lat- and longitude `beta` and `omega` both in Radians (or Degrees).
| BetaOmega3Tuple 3-Tuple `(beta, omega, height)` with ellipsoidal lat- and longitude `beta` and `omega` both in Radians (or Degrees) and the `height`, rather the (signed) distance to the triaxial's surface (measured along the radial line to the triaxial's center) in `meter`, conventionally.
| Conformal This is a Jacobi Conformal projection of a triaxial ellipsoid to a plane where the `X` and `Y` grid lines are straight.
| ConformalSphere Alternate, Jacobi Conformal projection on a spherical triaxial.
| Conformal2Tuple 2-Tuple `(x, y)` with a Jacobi Conformal `x` and `y` projection, both in Radians (or Degrees).
| Triaxial Ordered triaxial ellipsoid.
| Triaxial_ Unordered triaxial ellipsoid.

Functions
hartzell4(pov, los=False, tri_biax=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, **name) Compute the intersection of a tri-/biaxial ellipsoid and a Line-Of-Sight from a Point-Of-View outside. |
height4(x_xyz, y=None, z=None, tri_biax=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, normal=True, eps=2.220446049250313e-16, **name) Compute the projection on and the height above or below a tri-/biaxial ellipsoid's surface. |

Variables
| __all__ = `_ALL_LAZY.triaxials`
| Triaxial3s = `Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a`...``
| Triaxials = ``
| __getattr__ = `_lazy_import_as(__name__)`

Function Details

### hartzell4 (pov, los=False, tri_biax=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, **name) |
Compute the intersection of a tri-/biaxial ellipsoid and a Line-Of-Sight from a Point-Of-View outside. Arguments: `pov` - Point-Of-View outside the tri-/biaxial (`Cartesian`, Ecef9Tuple, `LatLon` or Vector3d). `los` - Line-Of-Sight, direction to the tri-/biaxial (Los, Vector3d) or `True` for the normal, perpendicular, plumb to the surface of the tri-/biaxial or `False` or `None` to point to its center. `tri_biax` - A triaxial (Triaxial, Triaxial_, Triaxial3, Triaxial3B, Conformal or ConformalSphere) or biaxial ellipsoid (Datum, Ellipsoid, Ellipsoid2, a_f2Tuple) or spherical earth radius (`scalar`, conventionally in `meter`). `name` - Optional name (`str`), overriding `name="hartzell4"`. Returns: Vector4Tuple`(x, y, z, h)` on the tri-/biaxial's surface, with `h` the distance from `pov` to `(x, y, z)` along the `los`, all in `meter`, conventionally. Raises: `TriaxialError` - Invalid `pov` or `pov` inside the tri-/biaxial or invalid `los` or `los` points outside or away from the tri-/biaxial. `TypeError` - Invalid `tri_biax`, `ellipsoid` or `datum`. See Also: Class pygeodesy3.Los, functions pygeodesy.tyr3d and pygeodesy.hartzell and lookAtSpheroid and "Satellite Line-of-Sight Intersection with Earth".

### height4 (x_xyz, y=None, z=None, tri_biax=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, normal=True, eps=2.220446049250313e-16, **name) |
Compute the projection on and the height above or below a tri-/biaxial ellipsoid'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`. `tri_biax` - A triaxial (Triaxial, Triaxial_, Triaxial3, Triaxial3B, Conformal or ConformalSphere) or biaxial ellipsoid (Datum, Ellipsoid, Ellipsoid2, a_f2Tuple) or spherical earth radius (`scalar`, conventionally in `meter`). `normal` - If `True`, the projection is the perpendicular, plumb to the tri-/biaxial's surface, otherwise the `radial` line to the center of the tri-/biaxial (`bool`). `eps` - Tolerance for root finding and validation (`scalar`), use a negative value to skip validation. `name` - Optional `name="height4"` (`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 tri-/biaxial'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, Eberly's Distance from a Point to ... and Bektas' Shortest Distance from a Point to Triaxial Ellipsoid.

Variables Details

  ### Triaxial3s Value:
      Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102,
      c=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468
      480, area=510065604942135.875, R2=6371007.076110449)