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

# Module karney

Charles F.F. Karney's geographiclib `geodesic`, wrapped.

Wrapper around Python classes `Geodesic` and `GeodesicLine` and several `Math` functions from Karney's Python package geographiclib, provided that package is installed.

The wrapped class methods return a GDict instance offering access to the `dict` items either by `key` or by `attribute` name.

# Karney-based functionality

1. The following classes and functions in `pygeodesy`
   - AlbersEqualArea, AlbersEqualArea2, AlbersEqualArea4, AlbersEqualAreaCylindrical, AlbersEqualAreaNorth, AlbersEqualAreaSouth -- AlbersEqualArea
   - CassiniSoldner -- CassiniSoldner
   - EcefKarney -- Geocentric
   - Elliptic -- EllipticFunction
   - EquidistantExact, EquidistantGeodSolve, EquidistantKarney -- AzimuthalEquidistant
   - Etm, ExactTransverseMercator -- TransverseMercatorExact
   - GeodesicAreaExact, PolygonArea -- PolygonArea
   - GeodesicExact, GeodesicLineExact -- GeodesicExact, GeodesicLineExact
   - GeoidKarney -- Geoid
   - Georef -- Georef
   - GnomonicExact, GnomonicGeodSolve, GnomonicKarney -- Gnomonic
   - LocalCartesian, Ltp -- LocalCartesian
   - Ups -- PolarStereographic
   - Utm -- TransverseMercator
   - UtmUps, Epsg -- UTMUPS
   - pygeodesy.atand, pygeodesy.atan2d, pygeodesy.sincos2, pygeodesy.sincos2d -- Math

   are transcoded from C++ classes in Karney's GeographicLib.

2. These `pygeodesy` modules and classes
   - ellipsoidalGeodSolve, ellipsoidalKarney, geodsolve, karney
   - EquidistantKarney, FrechetKarney, GeodesicSolve, GeodesicLineSolve, GnomonicGeodSolve, GnomonicKarney, HeightIDWkarney

   are or use wrappers around Karney's Python geographiclib `geodesic` or C++ utility GeodSolve.

3. All `pygeodesy` functions and methods to compute ellipsoidal intersections and trilaterations
   - ellipsoidalExact.intersection3, ellipsoidalExact.intersections2, ellipsoidalExact.nearestOn, ellipsoidalExact.LatLon.intersection3, ellipsoidalExact.LatLon.intersections2, ellipsoidalExact.LatLon.nearestOn, ellipsoidalExact.LatLon.trilaterate5
   - ellipsoidalKarney.intersection3, ellipsoidalKarney.intersections2, ellipsoidalKarney.nearestOn, ellipsoidalKarney.LatLon.intersection3, ellipsoidalKarney.LatLon.intersections2, ellipsoidalKarney.LatLon.nearestOn, ellipsoidalKarney.LatLon.trilaterate5
   - ellipsoidalVincenty.intersection3, ellipsoidalVincenty.intersections2, ellipsoidalVincenty.nearestOn, ellipsoidalVincenty.LatLon.intersection3, ellipsoidalVincenty.LatLon.intersections2, ellipsoidalVincenty.LatLon.nearestOn, ellipsoidalVincenty.LatLon.trilaterate5

   are implementations of Karney's solution posted under The ellipsoidal case and in paper Geodesics on an ellipsoid of revolution (pp 20-21, section 14. MARITIME BOUNDARIES).

4. Spherical functions
   - pygeodesy.excessKarney_, sphericalTrigonometry.areaOf

   in `pygeodesy` are based on Karney's post Area of a spherical polygon, 3rd Answer.

Version: 21.12.29

Classes
| Direct9Tuple 9-Tuple `(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)` with arc length `a12`, angles `lat2`, `lon2` and azimuth `azi2` in `degrees`, distance `s12` and reduced length `m12` in `meter` and area `S12` in `meter` squared.
| GDict Basic `dict` with both key and attribute access to the `dict` items.
| GeodesicError Error raised for pygeodesy.geodesicx lack of convergence or other pygeodesy.geodesicx or pygeodesy.karney issues.
| GeodSolve12Tuple 12-Tuple `(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)` with angles `lat1`, `lon1`, `azi1`, `lat2`, `lon2` and `azi2` and arc `a12` all in `degrees`, initial `azi1` and final `azi2` forward azimuths, distance `s12` and reduced length `m12` in `meter`, area `S12` in `meter` squared and geodesic scale factors `M12` and `M21`, both `scalar`, see GeodSolve.
| Inverse10Tuple 10-Tuple `(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)` with arc length `a12` in `degrees`, distance `s12` and reduced length `m12` in `meter`, area `S12` in `meter` squared and the sines `salp1`, `salp2` and cosines `calp1`, `calp2` of the initial `1` and final `2` foward azimuths.

Variables
| __all__ = `_ALL_LAZY.karney`