Package pygeodesy :: Module azimuthal |
[frames] | no frames]

# Module azimuthal

Equidistant, Equal-Area, and other Azimuthal projections.

Classes Equidistant, EquidistantExact, EquidistantGeodSolve, EquidistantKarney, Gnomonic, GnomonicExact, GnomonicKarney, LambertEqualArea, Orthographic and Stereographic, classes AzimuthalError, Azimuthal7Tuple and functions equidistant and gnomonic.

EquidistantExact and GnomonicExact are based on exact geodesic GeodesicExact and GeodesicLineExact, Python versions of Karney's C++ original GeodesicExact, respectively GeodesicLineExact.

Using EquidistantGeodSolve requires Karney's utility GeodSolve to be available and set in env variable `PYGEODESY_GEODSOLVE`, see module geodsolve for more details.

EquidistantKarney and GnomonicKarney require Charles Karney's Python geographiclib package to be installed.

Other azimuthal classes implement only (**) Snyder's FORMULAS FOR THE SPHERE and use those for any datum, spherical and ellipsoidal. The radius used for the latter is the ellipsoid's mean radius of curvature at the latitude of the projection center point. For further justification, see the first paragraph under Snyder's FORMULAS FOR THE ELLIPSOID, page 197.

Page numbers in `Snyder` references apply to John P. Snyder, "Map Projections -- A Working Manual", 1987.

See also here, especially the Comparison of the Azimuthal equidistant projection and some azimuthal projections centred on 90° N at the same scale, ordered by projection altitude in Earth radii.

Version: 22.02.24

Classes
| _AzimuthalBase (INTERNAL) Base class for azimuthal projections.
| AzimuthalError An azimuthal Equidistant, EquidistantKarney, Gnomonic, LambertEqualArea, Orthographic, Stereographic or Azimuthal7Tuple issue.
| Azimuthal7Tuple 7-Tuple `(x, y, lat, lon, azimuth, scale, datum)`, in `meter`, `meter`, `degrees90`, `degrees180`, compass `degrees`, `scalar` and `Datum` where `(x, y)` is the easting and northing of a projected point, `(lat, lon)` the geodetic location, `azimuth` the azimuth, clockwise from true North and `scale` is the projection scale, either `1 / reciprocal` or `1` or `-1` in the Equidistant case.
| Equidistant Azimuthal equidistant projection for the sphere**, see Snyder, pp 195-197 and MathWorld-Wolfram.
| EquidistantExact Azimuthal equidistant projection, a Python version of Karney's C++ class AzimuthalEquidistant, based on exact geodesic classes GeodesicExact and GeodesicLineExact.
| EquidistantGeodSolve Azimuthal equidistant projection, a Python version of Karney's C++ class AzimuthalEquidistant, based on (exact) geodesic wrappers GeodesicSolve and GeodesicLineSolve and intended for testing purposes only.
| EquidistantKarney Azimuthal equidistant projection, a Python version of Karney's C++ class AzimuthalEquidistant, requiring package geographiclib to be installed.
| Gnomonic Azimuthal gnomonic projection for the sphere**, see Snyder, pp 164-168 and MathWorld-Wolfram.
| GnomonicExact Azimuthal gnomonic projection, a Python version of Karney's C++ class Gnomonic, based on exact geodesic classes GeodesicExact and GeodesicLineExact.
| GnomonicGeodSolve Azimuthal gnomonic projection, a Python version of Karney's C++ class Gnomonic, based on (exact) geodesic wrappers GeodesicSolve and GeodesicLineSolve and intended for testing purposes only.
| GnomonicKarney Azimuthal gnomonic projection, a Python version of Karney's C++ class Gnomonic, requiring package geographiclib to be installed.
| LambertEqualArea Lambert-equal-area projection for the sphere** (aka Lambert zenithal equal-area projection, see Snyder, pp 185-187 and MathWorld-Wolfram.
| Orthographic Orthographic projection for the sphere**, see Snyder, pp 148-153 and MathWorld-Wolfram.
| Stereographic Stereographic projection for the sphere**, see Snyder, pp 157-160 and MathWorld-Wolfram.

Functions
equidistant(lat0, lon0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, exact=False, geodsolve=False, name='') Return an EquidistantExact, EquidistantGeodSolve or (if Karney's geographiclib package is installed) an EquidistantKarney, otherwise an Equidistant instance. |
gnomonic(lat0, lon0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, exact=False, geodsolve=False, name='') Return a GnomonicExact or (if Karney's geographiclib package is installed) a GnomonicKarney, otherwise a Gnomonic instance. |

Variables
| __all__ = `_ALL_LAZY.azimuthal`

Function Details

### equidistant (lat0, lon0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, exact=False, geodsolve=False, name='') |
Return an EquidistantExact, EquidistantGeodSolve or (if Karney's geographiclib package is installed) an EquidistantKarney, otherwise an Equidistant instance. Arguments: `lat0` - Latitude of center point (`degrees90`). `lon0` - Longitude of center point (`degrees180`). `datum` - Optional datum or ellipsoid (Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple) or scalar earth radius (`meter`). `exact` - Return an EquidistantExact instance. `geodsolve` - Return an EquidistantGeodSolve instance. `name` - Optional name for the projection (`str`). Returns: An EquidistantExact, EquidistantGeodSolve, EquidistantKarney or Equidistant instance. Raises: `AzimuthalError` - Invalid `lat0`, `lon0` or (spherical) `datum`. `TypeError` - Invalid `datum`.

### gnomonic (lat0, lon0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, exact=False, geodsolve=False, name='') |
Return a GnomonicExact or (if Karney's geographiclib package is installed) a GnomonicKarney, otherwise a Gnomonic instance. Arguments: `lat0` - Latitude of center point (`degrees90`). `lon0` - Longitude of center point (`degrees180`). `datum` - Optional datum or ellipsoid (Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple) or scalar earth radius (`meter`). `exact` - Return a GnomonicExact instance. `geodsolve` - Return an GnomonicGeodSolve instance. `name` - Optional name for the projection (`str`). Returns: A GnomonicExact, GnomonicGeodSolve, GnomonicKarney or Gnomonic instance. Raises: `AzimuthalError` - Invalid `lat0`, `lon0` or (spherical) `datum`. `TypeError` - Invalid `datum`.