pygeodesy 25.11.5__py2.py3-none-any.whl → 25.12.31__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. pygeodesy/__init__.py +46 -25
  2. pygeodesy/__main__.py +1 -1
  3. pygeodesy/albers.py +1 -1
  4. pygeodesy/angles.py +960 -0
  5. pygeodesy/auxilats/_CX_4.py +1 -1
  6. pygeodesy/auxilats/_CX_6.py +1 -1
  7. pygeodesy/auxilats/_CX_8.py +1 -1
  8. pygeodesy/auxilats/_CX_Rs.py +1 -1
  9. pygeodesy/auxilats/__init__.py +2 -2
  10. pygeodesy/auxilats/__main__.py +1 -1
  11. pygeodesy/auxilats/auxAngle.py +7 -8
  12. pygeodesy/auxilats/auxDLat.py +1 -1
  13. pygeodesy/auxilats/auxDST.py +1 -1
  14. pygeodesy/auxilats/auxLat.py +1 -1
  15. pygeodesy/auxilats/auxily.py +1 -1
  16. pygeodesy/azimuthal.py +6 -5
  17. pygeodesy/basics.py +14 -10
  18. pygeodesy/booleans.py +1 -1
  19. pygeodesy/cartesianBase.py +7 -7
  20. pygeodesy/clipy.py +1 -1
  21. pygeodesy/constants.py +29 -24
  22. pygeodesy/css.py +1 -1
  23. pygeodesy/datums.py +1 -1
  24. pygeodesy/deprecated/__init__.py +1 -1
  25. pygeodesy/deprecated/bases.py +1 -1
  26. pygeodesy/deprecated/classes.py +14 -7
  27. pygeodesy/deprecated/consterns.py +1 -1
  28. pygeodesy/deprecated/datum.py +1 -1
  29. pygeodesy/deprecated/functions.py +1 -1
  30. pygeodesy/deprecated/nvector.py +1 -1
  31. pygeodesy/deprecated/rhumbBase.py +1 -1
  32. pygeodesy/deprecated/rhumbaux.py +1 -1
  33. pygeodesy/deprecated/rhumbsolve.py +1 -1
  34. pygeodesy/deprecated/rhumbx.py +1 -1
  35. pygeodesy/dms.py +1 -1
  36. pygeodesy/ecef.py +1 -1
  37. pygeodesy/ecefLocals.py +1 -1
  38. pygeodesy/elevations.py +1 -1
  39. pygeodesy/ellipsoidalBase.py +1 -1
  40. pygeodesy/ellipsoidalBaseDI.py +1 -1
  41. pygeodesy/ellipsoidalExact.py +1 -1
  42. pygeodesy/ellipsoidalGeodSolve.py +1 -1
  43. pygeodesy/ellipsoidalKarney.py +1 -1
  44. pygeodesy/ellipsoidalNvector.py +1 -1
  45. pygeodesy/ellipsoidalVincenty.py +1 -1
  46. pygeodesy/ellipsoids.py +30 -17
  47. pygeodesy/elliptic.py +1 -1
  48. pygeodesy/epsg.py +1 -1
  49. pygeodesy/errors.py +8 -4
  50. pygeodesy/etm.py +1 -1
  51. pygeodesy/fmath.py +19 -14
  52. pygeodesy/formy.py +251 -10
  53. pygeodesy/frechet.py +1 -1
  54. pygeodesy/fstats.py +1 -1
  55. pygeodesy/fsums.py +41 -29
  56. pygeodesy/gars.py +1 -1
  57. pygeodesy/geod3solve.py +489 -0
  58. pygeodesy/geodesici.py +9 -8
  59. pygeodesy/geodesicw.py +1 -1
  60. pygeodesy/geodesicx/_C4_24.py +1 -1
  61. pygeodesy/geodesicx/_C4_27.py +1 -1
  62. pygeodesy/geodesicx/_C4_30.py +1 -1
  63. pygeodesy/geodesicx/__init__.py +2 -2
  64. pygeodesy/geodesicx/__main__.py +1 -1
  65. pygeodesy/geodesicx/gx.py +1 -1
  66. pygeodesy/geodesicx/gxarea.py +54 -24
  67. pygeodesy/geodesicx/gxbases.py +1 -1
  68. pygeodesy/geodesicx/gxline.py +1 -1
  69. pygeodesy/geodsolve.py +73 -104
  70. pygeodesy/geohash.py +1 -1
  71. pygeodesy/geoids.py +1 -1
  72. pygeodesy/hausdorff.py +1 -1
  73. pygeodesy/heights.py +1 -1
  74. pygeodesy/internals.py +1 -1
  75. pygeodesy/interns.py +3 -3
  76. pygeodesy/iters.py +1 -1
  77. pygeodesy/karney.py +152 -151
  78. pygeodesy/ktm.py +1 -1
  79. pygeodesy/latlonBase.py +1 -1
  80. pygeodesy/lazily.py +24 -13
  81. pygeodesy/lcc.py +1 -1
  82. pygeodesy/ltp.py +1 -1
  83. pygeodesy/ltpTuples.py +1 -1
  84. pygeodesy/mgrs.py +3 -3
  85. pygeodesy/named.py +15 -10
  86. pygeodesy/namedTuples.py +1 -1
  87. pygeodesy/nvectorBase.py +1 -1
  88. pygeodesy/osgr.py +1 -1
  89. pygeodesy/points.py +1 -1
  90. pygeodesy/props.py +6 -4
  91. pygeodesy/resections.py +1 -1
  92. pygeodesy/rhumb/__init__.py +8 -6
  93. pygeodesy/rhumb/aux_.py +1 -1
  94. pygeodesy/rhumb/bases.py +1 -1
  95. pygeodesy/rhumb/ekx.py +1 -1
  96. pygeodesy/rhumb/solve.py +91 -84
  97. pygeodesy/simplify.py +1 -1
  98. pygeodesy/solveBase.py +72 -49
  99. pygeodesy/sphericalBase.py +1 -1
  100. pygeodesy/sphericalNvector.py +1 -1
  101. pygeodesy/sphericalTrigonometry.py +1 -1
  102. pygeodesy/streprs.py +6 -4
  103. pygeodesy/trf.py +2 -4
  104. pygeodesy/triaxials/__init__.py +70 -0
  105. pygeodesy/triaxials/bases.py +966 -0
  106. pygeodesy/triaxials/conformal3.py +617 -0
  107. pygeodesy/triaxials/triaxial3.py +968 -0
  108. pygeodesy/{triaxials.py → triaxials/triaxial5.py} +353 -781
  109. pygeodesy/units.py +1 -1
  110. pygeodesy/unitsBase.py +1 -1
  111. pygeodesy/ups.py +2 -3
  112. pygeodesy/utily.py +17 -14
  113. pygeodesy/utm.py +1 -1
  114. pygeodesy/utmups.py +1 -1
  115. pygeodesy/utmupsBase.py +1 -1
  116. pygeodesy/vector2d.py +1 -1
  117. pygeodesy/vector3d.py +1 -1
  118. pygeodesy/vector3dBase.py +1 -1
  119. pygeodesy/webmercator.py +1 -1
  120. pygeodesy/wgrs.py +1 -1
  121. {pygeodesy-25.11.5.dist-info → pygeodesy-25.12.31.dist-info}/METADATA +28 -21
  122. pygeodesy-25.12.31.dist-info/RECORD +125 -0
  123. pygeodesy-25.11.5.dist-info/RECORD +0 -119
  124. {pygeodesy-25.11.5.dist-info → pygeodesy-25.12.31.dist-info}/WHEEL +0 -0
  125. {pygeodesy-25.11.5.dist-info → pygeodesy-25.12.31.dist-info}/top_level.txt +0 -0
pygeodesy/units.py CHANGED
@@ -877,7 +877,7 @@ __all__ += _ALL_DOCS(_NamedUnit)
877
877
 
878
878
  # **) MIT License
879
879
  #
880
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
880
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
881
881
  #
882
882
  # Permission is hereby granted, free of charge, to any person obtaining a
883
883
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/unitsBase.py CHANGED
@@ -350,7 +350,7 @@ __all__ += _ALL_DOCS(_NamedUnit)
350
350
 
351
351
  # **) MIT License
352
352
  #
353
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
353
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
354
354
  #
355
355
  # Permission is hereby granted, free of charge, to any person obtaining a
356
356
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/ups.py CHANGED
@@ -22,7 +22,7 @@ other than C{"std"}, zones C{'A'} and C{'Y'} are used for negative, west longitu
22
22
  '''
23
23
 
24
24
  # from pygeodesy.basics import neg as _neg # from .dms
25
- from pygeodesy.constants import EPS, EPS0, _EPSmin as _Tol90, \
25
+ from pygeodesy.constants import EPS, EPS0, _EPSmin as _Tol90, _K0_UPS, \
26
26
  isnear90, _0_0, _0_5, _1_0, _2_0
27
27
  from pygeodesy.datums import _ellipsoidal_datum, _WGS84
28
28
  from pygeodesy.dms import degDMS, _neg, parseDMS2
@@ -53,7 +53,6 @@ __version__ = '25.04.14'
53
53
 
54
54
  _BZ_UPS = _envPYGEODESY('UPS_POLES', _std_) == _std_
55
55
  _Falsing = Meter(2000e3) # false easting and northing (C{meter})
56
- _K0_UPS = Float(_K0_UPS= 0.994) # scale factor at central meridian
57
56
  _K1_UPS = Float(_K1_UPS=_1_0) # rescale point scale factor
58
57
 
59
58
 
@@ -509,7 +508,7 @@ def upsZoneBand5(lat, lon, strict=True, **name):
509
508
 
510
509
  # **) MIT License
511
510
  #
512
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
511
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
513
512
  #
514
513
  # Permission is hereby granted, free of charge, to any person obtaining a
515
514
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/utily.py CHANGED
@@ -16,7 +16,7 @@ from pygeodesy.constants import EPS, EPS0, NAN, PI, PI2, PI_2, PI_4, PI_6, R_M,
16
16
  _M_KM, _M_NM, _M_SM, _0_0, _0_5, _1_0, _N_1_0, \
17
17
  _10_0, _90_0, _180_0, _360_0, _copysign_0_0, \
18
18
  _copysignINF, _float, _isfinite, isnan, isnear0, \
19
- _over_1, _umod_360, _umod_PI2
19
+ _over_1, _umod_360, _umod_PI2, OVERFLOW
20
20
  from pygeodesy.errors import _ValueError, _xkwds, _xkwds_get
21
21
  from pygeodesy.internals import _Enum, _passargs, typename
22
22
  from pygeodesy.interns import _edge_, _radians_, _semi_circular_, _SPACE_
@@ -28,7 +28,7 @@ from math import acos, asin, asinh, atan2 as _atan2, cos, degrees, fabs, \
28
28
  radians, sin, sinh, tan as _tan # pow
29
29
 
30
30
  __all__ = _ALL_LAZY.utily
31
- __version__ = '25.10.29'
31
+ __version__ = '25.11.09'
32
32
 
33
33
  # sqrt(3) <https://WikiPedia.org/wiki/Square_root_of_3>
34
34
  _COS_30, _SIN_30 = 0.86602540378443864676, _0_5 # sqrt(3) / 2
@@ -815,8 +815,8 @@ def SinCos2(x, unit=Radians):
815
815
 
816
816
  @return: 2-Tuple (C{sin(B{x})}, C{cos(B{x})}).
817
817
  '''
818
- return sincos2d(x) if unit is Degrees or isinstanceof(x, Degrees, Degrees_) else (
819
- # sincos2(x) if unit is Radians or isinstanceof(x, Radians, Radians_) else
818
+ return sincos2d(x) if unit is Degrees or unit is degrees or isinstanceof(x, Degrees, Degrees_) else (
819
+ # sincos2(x) if unit is Radians or unit is radians or isinstanceof(x, Radians, Radians_) else
820
820
  sincos2(Radians(x))) # assume C{radians}
821
821
 
822
822
 
@@ -997,13 +997,14 @@ def tan_(*rads, **raiser_kwds):
997
997
  yield _nonfinite(tan_, r, **raiser_kwds)
998
998
 
999
999
 
1000
- def tand(deg, **raiser_kwds):
1000
+ def tand(deg, **raiser_clamp_kwds):
1001
1001
  '''Return the C{tangent} of an angle in C{degrees}.
1002
1002
 
1003
1003
  @arg deg: Angle (C{degrees}).
1004
- @kwarg raiser_kwds: Use C{B{raiser}=False} to avoid
1005
- ValueErrors and optional, additional
1006
- ValueError keyword argments.
1004
+ @kwarg raiser_clamp_kwds: Use C{B{raiser}=False} to avoid
1005
+ ValueErrors, C{B{clamp}=}L{OVERFLOW} and
1006
+ optional, additional ValueError keyword
1007
+ argments.
1007
1008
 
1008
1009
  @return: C{tan(B{deg})}.
1009
1010
 
@@ -1012,10 +1013,10 @@ def tand(deg, **raiser_kwds):
1012
1013
  try:
1013
1014
  return _tanu(*sincos2d(deg))
1014
1015
  except ZeroDivisionError:
1015
- return _nonfinite(tand, deg, **raiser_kwds)
1016
+ return _nonfinite(tand, deg, **raiser_clamp_kwds)
1016
1017
 
1017
1018
 
1018
- def tand_(*degs, **raiser_kwds):
1019
+ def tand_(*degs, **raiser_clamp_kwds):
1019
1020
  '''Yield the C{tangent} of angle(s) in C{degrees}.
1020
1021
 
1021
1022
  @arg degs: One or more angles (each in C{degrees}).
@@ -1026,9 +1027,9 @@ def tand_(*degs, **raiser_kwds):
1026
1027
  '''
1027
1028
  try:
1028
1029
  for d in degs:
1029
- yield _tanu(*sincos2d(d))
1030
+ yield _tanu(*sincos2d(d), **raiser_clamp_kwds)
1030
1031
  except ZeroDivisionError:
1031
- yield _nonfinite(tand_, d, **raiser_kwds)
1032
+ yield _nonfinite(tand_, d, **raiser_clamp_kwds)
1032
1033
 
1033
1034
 
1034
1035
  def tanPI_2_2(rad):
@@ -1042,7 +1043,7 @@ def tanPI_2_2(rad):
1042
1043
  NAN if isnan(rad) else _copysign(_90_0, rad))
1043
1044
 
1044
1045
 
1045
- def _tanu(s, c):
1046
+ def _tanu(s, c, clamp=OVERFLOW, **unused):
1046
1047
  '''(INTERNAL) Helper for functions C{_cotu}, C{sincostan3},
1047
1048
  C{sincostan3d}, C{tan}, C{tan_}, C{tand} and C{tand_}.
1048
1049
  '''
@@ -1052,6 +1053,8 @@ def _tanu(s, c):
1052
1053
  raise ZeroDivisionError()
1053
1054
  else:
1054
1055
  t = _over_1(s, c)
1056
+ if clamp:
1057
+ t = min(clamp, max(t, -clamp))
1055
1058
  return t
1056
1059
 
1057
1060
 
@@ -1384,7 +1387,7 @@ def yard2m(yards):
1384
1387
 
1385
1388
  # **) MIT License
1386
1389
  #
1387
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
1390
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
1388
1391
  #
1389
1392
  # Permission is hereby granted, free of charge, to any person obtaining a
1390
1393
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/utm.py CHANGED
@@ -733,7 +733,7 @@ def utmZoneBand5(lat, lon, cmoff=False, **name):
733
733
 
734
734
  # **) MIT License
735
735
  #
736
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
736
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
737
737
  #
738
738
  # Permission is hereby granted, free of charge, to any person obtaining a
739
739
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/utmups.py CHANGED
@@ -294,7 +294,7 @@ def utmupsZoneBand5(lat, lon, cmoff=False, **name):
294
294
 
295
295
  # **) MIT License
296
296
  #
297
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
297
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
298
298
  #
299
299
  # Permission is hereby granted, free of charge, to any person obtaining a
300
300
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/utmupsBase.py CHANGED
@@ -586,7 +586,7 @@ __all__ += _ALL_DOCS(UtmUpsBase)
586
586
 
587
587
  # **) MIT License
588
588
  #
589
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
589
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
590
590
  #
591
591
  # Permission is hereby granted, free of charge, to any person obtaining a
592
592
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/vector2d.py CHANGED
@@ -884,7 +884,7 @@ def _tri5perturbs(eps, r):
884
884
 
885
885
  # **) MIT License
886
886
  #
887
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
887
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
888
888
  #
889
889
  # Permission is hereby granted, free of charge, to any person obtaining a
890
890
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/vector3d.py CHANGED
@@ -914,7 +914,7 @@ __all__ += _ALL_DOCS(intersections2, sumOf, Vector3dBase)
914
914
 
915
915
  # **) MIT License
916
916
  #
917
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
917
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
918
918
  #
919
919
  # Permission is hereby granted, free of charge, to any person obtaining a
920
920
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/vector3dBase.py CHANGED
@@ -1196,7 +1196,7 @@ __all__ += _ALL_DOCS(Vector3dBase)
1196
1196
 
1197
1197
  # **) MIT License
1198
1198
  #
1199
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
1199
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
1200
1200
  #
1201
1201
  # Permission is hereby granted, free of charge, to any person obtaining a
1202
1202
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/webmercator.py CHANGED
@@ -353,7 +353,7 @@ def toWm(latlon, lon=None, earth=R_MA, Wm=Wm, **name_Wm_kwds_radius):
353
353
 
354
354
  # **) MIT License
355
355
  #
356
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
356
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
357
357
  #
358
358
  # Permission is hereby granted, free of charge, to any person obtaining a
359
359
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/wgrs.py CHANGED
@@ -425,7 +425,7 @@ __all__ += _ALL_DOCS(decode3, decode5, # functions
425
425
 
426
426
  # **) MIT License
427
427
  #
428
- # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
428
+ # Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
429
429
  #
430
430
  # Permission is hereby granted, free of charge, to any person obtaining a
431
431
  # copy of this software and associated documentation files (the "Software"),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pygeodesy
3
- Version: 25.11.5
3
+ Version: 25.12.31
4
4
  Summary: Pure Python geodesy tools
5
5
  Home-page: https://GitHub.com/mrJean1/PyGeodesy
6
6
  Author: Jean M. Brouwers
@@ -8,7 +8,7 @@ Author-email: mrJean1@Gmail.com
8
8
  Maintainer: Jean M. Brouwers
9
9
  Maintainer-email: mrJean1@Gmail.com
10
10
  License: MIT
11
- Keywords: AER Albers altitude Andoyer annulus antipode area attitude Authalic auxiliary azimuth azimuthal azimuth-elevation-range bearing bank Barsky Barth beta bi-quadratic boolean cached Cagnoli cartesian Cassini Cassini-Soldner chord circle-intersections circumcenter circumcircle circumradius clip Cohen Cohen-Sutherland Collins composite conformal conformal-sphere conic constants contact-triangle Cook Correia cosines-law coverage curvature cylindrical datum deprecation deficit development discrete distance Douglas earth east-north-up eccentricity ECEF elevation ellipsoid ellipsoidal-latitude-beta ellipsoidal-longitude-omega elliptic ENU EPSG equal-area equidistant equirectangular ETM ETRF Euclidean even-odd-rule ExactTM excess Farrell Farrell-Barth Ferrari-solution Field-Of-View flattening fma fmath footpoint footprint Forster Forster-Hormann-Popa Forsythe FOV fractional Frechet Fréchet frustum Fsum fused-multiply-add GARS geocentric GeoConvert GeodesicExact geodesy geodetic GeodSolve GeodTest geographiclib Geohash geoid geoidHeight GeoidHeights georef Girard gnomonic gons grades gradians Greiner Greiner-Hormann Hartzell Hausdorff Haversine heading hectare height Heikkinen Heron Hodgman horizon Hormann Hubeny IDW incenter incirle infix_@_operator inradius intermediate interpolate intersect intersection intersection3d intersections IntersectTool Inverse-Distance-Weighting Isometric ITRF Jacobi Jacobi-Conformal Jarque-Bera Jekel Karney Krueger Krüger kurtosis Lambert latitude law-of-cosines least-squares Lesh L_Huilier LHuilier Liang Liang-Barsky linearize Line-Of-Sight LocalCartesian local-tangent-plane local-x-y-z longitude LOS loxodrome lstsq LTP lune LV03 LV95 mean memoize memoized Mercator Meeus MGRS nearest NED Niemeyer non-finite normalize Norrdine north-east-down numpy n-vector Nvector oblate omega orthographic orthometric-height OSGB OSGR overlap parallel parallel-of-latitude Parametric path-intersection perimeter Peucker Pierlot pitch plumb Point-Of-View polar Popa POV precision-cubic-root precision-hypotenuse precision-powers precision-running-summation precision-square-root precision-summation prolate Pseudo-Mercator pygeodesy PyInstaller PyPy quartic radical radii radius Ramer Ramer-Douglas-Peucker Rectifying Reduced resect resection Rey-Jer Reumann Reumann-Witkam rho-theta-phi rhumb RhumbSolve running-linear-regression running-statistics running-stats running-summation scipy secant semi-perimeter sexagecimal simplify skewness Snellius Snellius-Pothenot Snyder Soddy Soddy-circles Soldner sphere sphere-intersections spherical-deficit spherical-excess spherical-polar spherical-triangle squared-quartic standard-deviation stereographic Sudano surface-area Sutherland Sutherland-Hodgman tangent-circles Terrestrial-Reference-Frame Thomas Tienstra tilt TMcoords TMExact toise transverse TransverseMercatorExact TRF triangle triangulate triaxial triaxial-ellipsoid trigonometry trilaterate trilaterate-2d trilaterate-3d TwoProduct TwoSum umbilic-point unit unroll UPS UTM UTM/UPS variance velocities Veness Vermeille viewing-frustum Vincenty Visvalingam Visvalingam-Whyatt volume volumetric Web-Mercator Welford WGRS WGS Whyatt Wildberger Witkam winding-number XYZ yaw You zenzi-cubic zenzi-quartic
11
+ Keywords: AER AGM Albers altitude Andoyer annulus antipode area Arithmetic-Geometric-Mean attitude Authalic auxiliary azimuth azimuthal azimuth-elevation-range bearing bank Barsky Barth beta bi-quadratic boolean cached Cagnoli cartesian Cassini Cassini-Soldner chord circle-intersections circumcenter circumcircle circumradius clip Cohen Cohen-Sutherland Collins composite conformal conformal-sphere conic constants contact-triangle Cook Correia cosines-law coverage curvature cylindrical datum deprecation deficit development discrete distance Douglas earth east-north-up eccentricity ECEF elevation ellipsoid ellipsoidal-latitude-beta ellipsoidal-longitude-omega elliptic ENU EPSG equal-area equidistant equirectangular ETM ETRF Euclidean even-odd-rule ExactTM excess Farrell Farrell-Barth Ferrari-solution Field-Of-View flattening fma fmath footpoint footprint Forster Forster-Hormann-Popa Forsythe FOV fractional Frechet Fréchet frustum Fsum fused-multiply-add GARS Gauss-Kummer geocentric GeoConvert GeodesicExact geodesy geodetic GeodSolve Geod3Solve GeodTest geographiclib Geohash geoid geoidHeight GeoidHeights georef Girard gnomonic gons grades gradians Greiner Greiner-Hormann Hartzell Hausdorff Haversine heading hectare height Heikkinen Heron Hodgman horizon Hormann Hubeny IDW incenter incirle infix_@_operator inradius intermediate interpolate intersect intersection intersection3d intersections IntersectTool Inverse-Distance-Weighting Isometric ITRF Jacobi Jacobi-Conformal Jarque-Bera Jekel Karney Krueger Krüger kurtosis Lambert latitude law-of-cosines least-squares Lesh L_Huilier LHuilier Liang Liang-Barsky Linderholm-Segal linearize Line-Of-Sight LocalCartesian local-tangent-plane local-x-y-z longitude LOS loxodrome lstsq LTP lune LV03 LV95 mean memoize memoized Mercator Meeus MGRS nearest NED Niemeyer non-finite normalize Norrdine north-east-down numpy n-vector Nvector oblate omega orthographic orthometric-height OSGB OSGR overlap parallel parallel-of-latitude Parametric path-intersection perimeter Peucker Pierlot pitch plumb Point-Of-View polar Popa POV precision-cubic-root precision-hypotenuse precision-powers precision-running-summation precision-square-root precision-summation prolate Pseudo-Mercator pygeodesy PyInstaller PyPy quartic radical radii radius Ramanujan Ramer Ramer-Douglas-Peucker Rectifying Reduced resect resection Rey-Jer Reumann Reumann-Witkam rho-theta-phi rhumb RhumbSolve running-linear-regression running-statistics running-stats running-summation scipy secant semi-perimeter sexagecimal simplify skewness Snellius Snellius-Pothenot Snyder Soddy Soddy-circles Soldner sphere sphere-intersections spherical-deficit spherical-excess spherical-polar spherical-triangle squared-quartic standard-deviation stereographic Sudano surface-area Sutherland Sutherland-Hodgman tangent-circles Terrestrial-Reference-Frame Thomas Tienstra tilt TMcoords TMExact toise transverse TransverseMercatorExact TRF triangle triangulate triaxial triaxial-ellipsoid trigonometry trilaterate trilaterate-2d trilaterate-3d TwoProduct TwoSum umbilic-point unit unroll UPS UTM UTM/UPS variance velocities Veness Vermeille viewing-frustum Vincenty Visvalingam Visvalingam-Whyatt volume volumetric Web-Mercator Welford WGRS WGS Whyatt Wildberger Witkam winding-number XYZ yaw You zenzi-cubic zenzi-quartic
12
12
  Classifier: Development Status :: 5 - Production/Stable
13
13
  Classifier: Environment :: Console
14
14
  Classifier: Intended Audience :: Developers
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Programming Language :: Python :: 3.15
23
24
  Classifier: Topic :: Software Development
24
25
  Classifier: Topic :: Scientific/Engineering :: GIS
25
26
 
@@ -33,8 +34,8 @@ models using precision exact, elliptic, trigonometric, vector-based, iterative a
33
34
  methods for geodetic (lat-/longitude), geocentric (ECEF_ cartesian), local (LTP_) and certain
34
35
  `triaxial ellipsoidal`_ coordinates.
35
36
 
36
- Transcoded in part from `JavaScript originals`_ by *Chris Veness (C) 2005-2024* and from several
37
- `C++ classes`_ by *Charles F.F. Karney (C) 2008-2024* and published under the same `MIT License`_.
37
+ Transcoded in part from `JavaScript originals`_ by *Chris Veness (C) 2005-2025* and from several
38
+ `C++ classes`_ by *Charles F.F. Karney (C) 2008-2025* and published under the same `MIT License`_.
38
39
 
39
40
  There are four modules for ellipsoidal earth models, *ellipsoidalExact*, *-Karney*, *-Vincenty*
40
41
  and *-Nvector* and two for spherical ones, *sphericalTrigonometry* and *-Nvector*. Each module
@@ -101,8 +102,13 @@ Modules ``ellipsoidalGeodSolve`` and ``geodsolve`` and ``azimuthal`` classes ``E
101
102
  and ``GnomonicGeodSolve`` depend on *Karney*\'s C++ utility GeodSolve_ to be executable and set with
102
103
  env variable ``PYGEODESY_GEODSOLVE`` or with property ``Ellipsoid.geodsolve``.
103
104
 
105
+ Triaxial geodesic classes ``Geodesic3Solve`` and ``GeodesicLine3Solve`` in module ``geod3solve`` need
106
+ *Karney*\'s C++ utility Geod3Solve_ to be executable and set with env variable ``PYGEODESY_GEOD3SOLVE``
107
+ or with property ``Geodesic3Solve.Geod3Solve``.
108
+
104
109
  Class ``Intersectool`` in module ``geodesici`` needs *Karney*\'s C++ utility IntersectTool_ to be
105
- executable and set with env variable ``PYGEODESY_INTERSECTTOOL``.
110
+ executable and set with env variable ``PYGEODESY_INTERSECTTOOL`` or with property
111
+ ``Intersectool.IntersectTool``.
106
112
 
107
113
  To compare ``MGRS`` results from modules ``mgrs`` and ``testMgrs`` with *Karney*\'s C++ utility
108
114
  GeoConvert_, the latter must be executable and set with env variable ``PYGEODESY_GEOCONVERT``.
@@ -120,31 +126,31 @@ test results (on macOS only) and the complete documentation_ generated by Epydoc
120
126
  Tests
121
127
  =====
122
128
 
123
- The tests ran with Python 3.14 (with geographiclib_ 2.1), Python 3.13.7 (with geographiclib_ 2.1,
124
- numpy_ 2.3.3, scipy_ 1.16.2, GeoConvert_ 2.5 and GeodSolve_ 2.5), Python 3.12.7 (with geographiclib_ 2.0,
125
- numpy_ 2.1.0, scipy_ 1.14.1, GeodSolve_ 2.5, IntersectTool_ 2.5 and RhumbSolve_ 2.5), Python 3.11.5 (with
126
- geographiclib_ 2.0, numpy_ 1.24.2 and scipy_ 1.10.1) and with Python 2.7.18 (with geographiclib_ 1.50,
127
- numpy_ 1.16.6, scipy_ 1.2.2, GeoConvert_ 2.5, GeodSolve_ 2.5, IntersectTool_ 2.5 and RhumbSolve_ 2.5),
128
- all on macOS 26.0.1 Tahoe in 64-bit.
129
+ The tests ran with Python 3.14.2 (with geographiclib_ 2.1), Python 3.13.9 (with geographiclib_ 2.1,
130
+ numpy_ 2.3.3, scipy_ 1.16.2, GeoConvert_ 2.7, GeodSolve_ 2.7 and Geod3Solve_ 2.7), Python 3.12.7 (with
131
+ geographiclib_ 2.0, numpy_ 2.1.0, scipy_ 1.14.1, GeodSolve_ 2.7, Geod3Solve_ 2.7, IntersectTool_ 2.7
132
+ and RhumbSolve_ 2.7), Python 3.11.5 (with geographiclib_ 2.0, numpy_ 1.24.2 and scipy_ 1.10.1) and with
133
+ Python 2.7.18 (with geographiclib_ 1.50, numpy_ 1.16.6, scipy_ 1.2.2, GeoConvert_ 2.7, GeodSolve_ 2.7,
134
+ Geod3Solve_ 2.7, IntersectTool_ 2.7 and RhumbSolve_ 2.7), all on macOS 26.2 Tahoe in 64-bit.
129
135
 
130
136
  All tests ran with and without ``lazy import`` for Python 3 and with command line option ``-W default``
131
137
  and env variable ``PYGEODESY_WARNINGS=on`` for all Python versions. The results of those tests are
132
138
  included in the distribution files.
133
139
 
134
- Python 3.14, 3.13.7, 3.12.7 and 3.11.5 run on Apple Si M4 (``arm64``), *natively*. Python 2.7.18 runs
140
+ Python 3.14.2, 3.13.9, 3.12.7 and 3.11.5 run on Apple M4 Si (``arm64``), *natively*. Python 2.7.18 runs
135
141
  on Intel (``x86_64``) or Intel *emulation* (\"``arm64_x86_64``\", see function `pygeodesy.machine`_).
136
142
 
137
- Test coverage has been measured with coverage_ 7.10.7 using Python 3.14, 3.13.7 and 3.12.7. The complete
138
- coverage report in HTML and a PDF summary are included in the distribution files.
143
+ Test coverage has been measured with coverage_ 7.10.7 using Python 3.14.2, 3.13.9 and 3.12.7. The
144
+ complete coverage report in HTML and a PDF summary are included in the distribution files.
139
145
 
140
- The tests also ran with Python 3.13.7 (and geographiclib_ 2.1) on `Debian 12`_ in 64-bit only and with
141
- Python 3.12.8 (and geographiclib_ 2.0) on `Windows 2019Server`_ in 64-bit only and with Python 2.7.18
146
+ The tests also ran with Python 3.14.2 (and geographiclib_ 2.1) on `Debian 12`_ in 64-bit only and with
147
+ Python 3.13.8 (and geographiclib_ 2.0) on `Windows 2019Server`_ in 64-bit only and with Python 2.7.18
142
148
  (and with geographiclib_ 1.52) on `Windows 10`_ in 64- and 32-bit.
143
149
 
144
150
  A single-File and single-Directory application with ``pygeodesy`` has been bundled using PyInstaller_ 3.4
145
151
  and 64-bit Python 3.7.4 and 3.7.3 on macOS 10.13.6 High Sierra.
146
152
 
147
- Previously, the tests were run with Python 3.13.0-6, 3.12.0-6, 3.11.2-4, 3.10.1-7, 3.9.1, 3.8.7, 3.7.1, 2.7.15,
153
+ Previously, the tests were run with Python 3.13.0-7, 3.12.0-6, 3.11.2-4, 3.10.1-7, 3.9.1, 3.8.7, 3.7.1, 2.7.15,
148
154
  PyPy_ 7.3.12 (Python 3.10.12), 7.3.1 (Python 3.6.9) and PyPy_ 7.1.1 (Python 2.7.13) (and geographiclib_ 1.52,
149
155
  numpy_ 1.16.3, 1.16.4, 1.16.6, 1.19.0, 1.19.4, 1.19.5 or 1.22.4 and scipy_ 1.2.1, 1.4.1, 1.5.2 or 1.8.1) on
150
156
  Ubuntu 16.04, with Python 3.10.0-1, 3.9.0-5, 3.8.0-6, 3.7.2-6, 3.7.0, 3.6.2-5, 3.5.3, 2.7.13-17, 2.7.10
@@ -160,17 +166,17 @@ Server 2012R2, Windows 10 Pro and 32-bit Python 2.6.6 on Windows XP SP3.
160
166
  Notes
161
167
  =====
162
168
 
163
- All Python source code has been statically checked_ with Ruff_ using Python 3.13.7 and with PyChecker_, PyFlakes_,
164
- PyCodeStyle_ (formerly Pep8) and McCabe_ using Python 2.7.18, both in 64-bit on macOS 26.0.1 Tahoe only.
169
+ All Python source code has been statically checked_ with Ruff_ using Python 3.13.9 and with PyChecker_, PyFlakes_,
170
+ PyCodeStyle_ (formerly Pep8) and McCabe_ using Python 2.7.18, both in 64-bit on macOS 26.2 Tahoe only.
165
171
 
166
172
  For a summary of all *Karney*-based functionality in ``pygeodesy``, see module karney_.
167
173
 
168
- *Last updated: Nov 05, 2025.*
174
+ *Last updated: Dec 31, 2025.*
169
175
 
170
176
  License
171
177
  =======
172
178
 
173
- **Copyright (C) 2016-2025 -\- mrJean1 at Gmail -\- All Rights Reserved.**
179
+ **Copyright (C) 2016-2026 -\- mrJean1 at Gmail -\- All Rights Reserved.**
174
180
 
175
181
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
176
182
  documentation files (the "Software"), to deal in the Software without restriction, including without limitation
@@ -224,6 +230,7 @@ DEALINGS IN THE SOFTWARE.
224
230
  .. _Garefs (GARS): https://WikiPedia.org/wiki/Global_Area_Reference_System
225
231
  .. _GeoConvert: https://GeographicLib.SourceForge.io/C++/doc/utilities.html
226
232
  .. _GeodSolve: https://GeographicLib.SourceForge.io/C++/doc/utilities.html
233
+ .. _Geod3Solve: https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html
227
234
  .. _geographiclib: https://PyPI.org/project/geographiclib
228
235
  .. _GeographicLib.: https://GeographicLib.SourceForge.io/C++/doc/index.html
229
236
  .. _Geohashes: https://www.Movable-Type.co.UK/scripts/geohash.html
@@ -0,0 +1,125 @@
1
+ pygeodesy/LICENSE,sha256=YfgAiyxOwY6P9Kkb1_5XN81nueTLrpb3Ffkv3EuPgFU,1144
2
+ pygeodesy/__init__.py,sha256=LJWArNEBwQusGv0qhNBOLJJjlAy-5oQqJ6wgce3p0wE,43782
3
+ pygeodesy/__main__.py,sha256=06sdpwiuTP1hPvKOdzjqhuuDqqpicErwnAYwioeiTNw,5597
4
+ pygeodesy/albers.py,sha256=1Jt-WWcawNw6Dj7wl6hPSLbYiGGZqFMCnRU8gyGvV7o,30908
5
+ pygeodesy/angles.py,sha256=68sNVXU3QKGZnIYyjWFcKhWlBKSmaduO--rjtoM2sqU,29996
6
+ pygeodesy/azimuthal.py,sha256=7JwLHx-mTkwxuSkWmxNPPnPFAu4a0F5X_T_JyL6aEHE,49867
7
+ pygeodesy/basics.py,sha256=bbQs7M1epOl7t8IF2xs5uA46rrdYdobSuiJJ6v5st0s,32988
8
+ pygeodesy/booleans.py,sha256=kEF7rFvQzUaGFdrDzOXo_GFauXmaDTnhd2LNDh69B28,72636
9
+ pygeodesy/cartesianBase.py,sha256=L6y0Mn3x25eLF0Wd6ntOLlyfvGqmIl15Akvs373lXhg,45382
10
+ pygeodesy/clipy.py,sha256=uLTbX6byZa6fi2Kir1WanfW47JSxAkmfngH3vD7TDfw,27481
11
+ pygeodesy/constants.py,sha256=UsVlgLUwfvP-DPP5Fa51T-aJIe5cjLpwt0LVyQwMS70,21425
12
+ pygeodesy/css.py,sha256=Fb_z5nvu5j4To1WgXGPOaEaME71IZW747FdpL4YBczc,25793
13
+ pygeodesy/datums.py,sha256=3uB7cuFdhNNMxKq96J3FjdklwaKOcdshBrGMf1Osbms,34068
14
+ pygeodesy/dms.py,sha256=2jesqmjWy-Pze5VWtgbiyC8CbjeIFbPP1qt2nYriubw,42202
15
+ pygeodesy/ecef.py,sha256=0MSfLlMedBokrrn2YcOyfa2MrJhhKzVemXTHn8Qi4KI,62577
16
+ pygeodesy/ecefLocals.py,sha256=hlx0DUW5n6v2H8SLJvaSEQQj_Sq61bLXpT8PY7SWqe4,7794
17
+ pygeodesy/elevations.py,sha256=Z4jvs_EUv_tKroxxweulRu6XxX9E5h8sbTGUTalRD2I,10879
18
+ pygeodesy/ellipsoidalBase.py,sha256=zb2PQhTWQdba7qJBgcFaQPQhOdSZQwhKGpFuts93API,55711
19
+ pygeodesy/ellipsoidalBaseDI.py,sha256=_2N4zFQN3qEyiD7ah0pzyY0FHKJYQJL6IKsvVhA-w8Y,38544
20
+ pygeodesy/ellipsoidalExact.py,sha256=irv40d_xyDIBgSXswn8op-Wjk-KZUSwVD8xWWGq8wwk,17120
21
+ pygeodesy/ellipsoidalGeodSolve.py,sha256=wuA-veOYC95vcEnbr4zT0ZzDN7s6kSuMRHpd4V1RlEw,17108
22
+ pygeodesy/ellipsoidalKarney.py,sha256=CxPB91CKA0q5E97TOcErTTQdufdB2dT4KF84QZtfnGM,18839
23
+ pygeodesy/ellipsoidalNvector.py,sha256=48N-KtVUn0wi9kXZe12hg0jABWNeaiNXyY__oS-x5I4,30146
24
+ pygeodesy/ellipsoidalVincenty.py,sha256=X4OpMPtoretveNjHlEXKL4ifmAARTRY0yxbIOlR26J8,26273
25
+ pygeodesy/ellipsoids.py,sha256=u4jeDSP9smTzK5Y2PWTa4eGI5dxUdcHxSBL9sVVvzQs,109316
26
+ pygeodesy/elliptic.py,sha256=914gDJmHVu_zlyQJy4tfqTJmq2Buqq5w3Jt-7wrXpEo,45515
27
+ pygeodesy/epsg.py,sha256=wS8Mzzk70Fzry6c0fBA16VVez3ghKG2Dhgpo2eN_Ik8,8220
28
+ pygeodesy/errors.py,sha256=76wVrhxev-n-kBOHv3MicHell3ifA2whUp4SRCrqUx4,32633
29
+ pygeodesy/etm.py,sha256=3pQmpjsrnI0mgLwhkLOCOFq_44bkhHwXExf-Keyky2w,46796
30
+ pygeodesy/fmath.py,sha256=buLhJkanh06PU-CIzdT8V8nLeQdn7D4olI6E124NA6s,37984
31
+ pygeodesy/formy.py,sha256=0PLwO2coxgCIyGDMHM9T4EBqLUAlEYOFhdxYszmUzPU,78285
32
+ pygeodesy/frechet.py,sha256=FySLdZgLb_NXd81AILx4G2C9J6dxwI5uYW1MEHuEocg,35588
33
+ pygeodesy/fstats.py,sha256=EuyC9UrJ5K0IlZqM7h3C8C7tYDrTujqoBp9-V1ICPx0,28348
34
+ pygeodesy/fsums.py,sha256=EmjY74uPwCMxXVC3pOu2F5rqc42rsvXGWPGtvbDaG3c,105304
35
+ pygeodesy/gars.py,sha256=z7yvE6dRAjtXUAB9yakH8duwF2gBKbcjXUIznNnr8_w,11761
36
+ pygeodesy/geod3solve.py,sha256=nWYPBilw5j1T-uWk_cDV7TdBpIVNP5SM2jjUsXn7y8s,21595
37
+ pygeodesy/geodesici.py,sha256=eHkXKDQzeFfJ6lVkGANqnEk5hQR-MkYXQlgXCLzbG3Y,74933
38
+ pygeodesy/geodesicw.py,sha256=bhwSBtHAaNAl487uAgifS42cKvcYTe-8O8M5S44u9_k,30029
39
+ pygeodesy/geodsolve.py,sha256=GqMn4PjXAT7jK0VjxeMv7FgNx-_T_LeAfeMda7wUSqM,25032
40
+ pygeodesy/geohash.py,sha256=LmjvzgrzD0Cj-xPCZNJp3LbVOQ7llaE2sAO0V0SxNOo,40124
41
+ pygeodesy/geoids.py,sha256=Fn3pOCokzQJuEY2UE11Ah5XuiT24WRmmoc3FeNhfpsg,86129
42
+ pygeodesy/hausdorff.py,sha256=_zfkZ4pzUE_6LwFD77RU9NC58aN8imglI7TfapM82Wc,32269
43
+ pygeodesy/heights.py,sha256=T_5ZhtFAskQf-1BHL2Nm5bTYQIMJj-d1UKhW11YPWvs,41011
44
+ pygeodesy/internals.py,sha256=_KTAnSPlLWYBEXaUxiDpE-nN-JbexcN5h_szyJwzgWE,24712
45
+ pygeodesy/interns.py,sha256=h7LupB9eEhwgW8mq3R4VMFI3i-49ObgXAEvV2JJmmpM,23521
46
+ pygeodesy/iters.py,sha256=xH719oFB-0z4jCAHeC6uLqyfWPtpQoSBF6Pgnoz5weQ,20345
47
+ pygeodesy/karney.py,sha256=_HLXxYtoh8eIMfsvsH7f4irb0L1xHljnvgLf7_e3ixc,42115
48
+ pygeodesy/ktm.py,sha256=262-FbXSHpQnlpHKyqzMO4Uuf7DflDINSSSOEmRXyRc,27270
49
+ pygeodesy/latlonBase.py,sha256=as2BBvogFBANmyixQNgVWVfXuBSvcDtb200XzSMKzE4,75317
50
+ pygeodesy/lazily.py,sha256=yfdUlY0H2t-h627-oKijSRNJtilu9J9m4PcLguoL9F8,48640
51
+ pygeodesy/lcc.py,sha256=BXWEHDRgNOzAOM5dVBfpETWVdJ7Me378Wv93n2oR_UI,25785
52
+ pygeodesy/ltp.py,sha256=-dokXawH_nvyjYaQzPQ0pguB0yAlvybnFnokEwLE488,50893
53
+ pygeodesy/ltpTuples.py,sha256=6BcsN1rjshV1w80EtXR14TzDmZLl-YReFJ4UFL-DBt0,59101
54
+ pygeodesy/mgrs.py,sha256=ZUsW0ixGlS0YOuzXFoGj3N0XrI1PbuSVYldZuqKS3g8,29842
55
+ pygeodesy/named.py,sha256=CfOdOZrMTCPWtHju158dJl8Yc8OimWW7i6uZ0LMVFjs,52988
56
+ pygeodesy/namedTuples.py,sha256=mIwqxjSRqmJ7D4_BMYhQkSoAaaP3-rwnToNenu1k3yU,30598
57
+ pygeodesy/nvectorBase.py,sha256=hDLrOOBuxz0n5zNH3nyg5FlElUD2Yusd91PRL7QLooA,29927
58
+ pygeodesy/osgr.py,sha256=afrHMVQ6wrdCaKDXMuhXcDy0MTI-8HKQccSlKGUNwps,30852
59
+ pygeodesy/points.py,sha256=Fcz220qrQqLCI9b442sOb1wR0w12EsE1LDbLFwwXWhA,64497
60
+ pygeodesy/props.py,sha256=90WNv8voJGF_X4zEL_luSmZi3XNzA6gvLDAX9Sv6tCk,24658
61
+ pygeodesy/resections.py,sha256=47twtGa_PQ71QUwReECkRpVFyuRSuYhsCecS3cThEiA,43796
62
+ pygeodesy/simplify.py,sha256=8OJj7jkxJFVE5jQRvbpm14_Oxrv4Oju7atIGFRg3zUE,22068
63
+ pygeodesy/solveBase.py,sha256=4lKwoWCiDjQjaS_iMUZ7m8nkLL92yNHBcNsmNsulOdc,19631
64
+ pygeodesy/sphericalBase.py,sha256=54na1mQCuyZ1dYzpt801AC2B7PStLNmt3CRwAC2A03A,32071
65
+ pygeodesy/sphericalNvector.py,sha256=N_qB3ziZMf0spE0fqd-GVW9omAy5YT3HdsE2DB2Td9Y,54948
66
+ pygeodesy/sphericalTrigonometry.py,sha256=YN-Gv2m1rWg2rzAXpuAFPu2WL-ARt3u1zKNWJLZ8JAk,64398
67
+ pygeodesy/streprs.py,sha256=tS21sthUtj06Jmh9rdyAbiczwjNjvZTMWvUmJwD9ODs,23728
68
+ pygeodesy/trf.py,sha256=DPfcjdSEOz7xlhdRgfQVCnX5j9jUTkfK4sYGP4EbolI,119215
69
+ pygeodesy/units.py,sha256=9zAnu28f0c7pELZviZDukxz6hjeAwhBvH5wq8F2-cww,35561
70
+ pygeodesy/unitsBase.py,sha256=9AHGuUuGWmKUYHNZt6tVxUkLDvSAyr2gitikME75eZg,14141
71
+ pygeodesy/ups.py,sha256=_Qyp1cBhAGOGPya09zZQYO468H2Nc8jxKYw-HgOMa8o,23288
72
+ pygeodesy/utily.py,sha256=lucez138JJVLAafMciduGMcDyvPrsSjwr-6ApToHPIM,41330
73
+ pygeodesy/utm.py,sha256=Cu0CTqXVSNIIdzp8cejd0ONvo8Y26WtB3spt2o10ZV8,31123
74
+ pygeodesy/utmups.py,sha256=MsgnWVw0u_4nAO_kol4GjUTg7dMGwURR2hv3TV8eVik,13176
75
+ pygeodesy/utmupsBase.py,sha256=v9ZCOBaaMaAF-rUdzL-kbj0pov-E-8aBq9nuOMSnxYw,22730
76
+ pygeodesy/vector2d.py,sha256=JQZIefGm0GmqsvTnXX2OXqbxPaliFEu7jtHCSb3oeDM,40306
77
+ pygeodesy/vector3d.py,sha256=kGSH5jJl6Z0KaqDX3GcQPgNV7JSTON2BybTgitR8IHk,43045
78
+ pygeodesy/vector3dBase.py,sha256=Qnom8vNf749ILZ0OChW4TeVZCrKnYLf_59rC_-7_cAs,40884
79
+ pygeodesy/webmercator.py,sha256=dra_UVuDBSZcXb1GpCFQzu8SYKnLXyzEFMh1Xo5wKHg,15016
80
+ pygeodesy/wgrs.py,sha256=1GjUTke4vliL_x_niBX-YC7rlWz7VewddQNTvH3ULoA,15503
81
+ pygeodesy/auxilats/_CX_4.py,sha256=SDx8G11WGE5zNscnm1Xa2s5uU1ksXda-WFK3LOH2yZ8,6830
82
+ pygeodesy/auxilats/_CX_6.py,sha256=dpyW7c79v__O9ckP7PYYRS7mDwCoWU0_OBdG1D5o7vo,11278
83
+ pygeodesy/auxilats/_CX_8.py,sha256=vmR0CyTPHYON5W5ZqGW3qlOX9iDXRtY5JEZu3GyZz80,18900
84
+ pygeodesy/auxilats/_CX_Rs.py,sha256=EV6Py2yxqtf3FAykmdAHa3Rj9V_yfP21BYwayXNk_zU,8679
85
+ pygeodesy/auxilats/__init__.py,sha256=u3hwLEvkaiD4KU-kfHfi26IbKWZHWLIBVukCFYNpQjo,2883
86
+ pygeodesy/auxilats/__main__.py,sha256=JPDbuG6UnghFtWBbNzb7Uuv9bXDW55ZXXd2PV-6Tc9o,3340
87
+ pygeodesy/auxilats/auxAngle.py,sha256=QrkiKKHpH7gYoLA5WSdePX0198oDB0yiwGSx0erWLMc,16671
88
+ pygeodesy/auxilats/auxDLat.py,sha256=6bamjB_s0RbINNU3V8W9lzsjXl3tWcjkkwLLgusclVM,10956
89
+ pygeodesy/auxilats/auxDST.py,sha256=4VkQ6RfpUA0NvTZawP-bMatJMbrFz3lbzyXKwfQmdB4,10464
90
+ pygeodesy/auxilats/auxLat.py,sha256=qWvIdfpvIQUF7jsgJyxeNgkbjlbIPsNs8-uvPMxyJbM,31972
91
+ pygeodesy/auxilats/auxily.py,sha256=_D-7n-73pVdZR459NF0WGmO3eOVEtiyaongKCGPvHkA,8085
92
+ pygeodesy/deprecated/__init__.py,sha256=TsSpb0A6l5BelXOuhHvljy6m-UoR0Sf86CsCXlgfuls,2823
93
+ pygeodesy/deprecated/bases.py,sha256=5cwF5nZ6SmAwib3iEmOJ66yzLfimfl1Ru93U_ohbtkA,1649
94
+ pygeodesy/deprecated/classes.py,sha256=3EYzIaCndfUG2jx2_5oyrcZ8LrCWrhULferR6eCBobY,17486
95
+ pygeodesy/deprecated/consterns.py,sha256=G5GisRNoza0gi2uGz0a_omVq3Herrirc5x-k7Ltzj0U,1917
96
+ pygeodesy/deprecated/datum.py,sha256=duDFoz2mAmQDt2AaHTShglWYlWXv_sKR7PhGs3lRM6s,1910
97
+ pygeodesy/deprecated/functions.py,sha256=FaryhoN9KydS3W6V951lY_qUTONCx0EpUm-FEitvZyU,15844
98
+ pygeodesy/deprecated/nvector.py,sha256=AXukNWyhy-LzA-Zio5VmPiKUaJ75U_Dr7-pyVUy0RXM,2117
99
+ pygeodesy/deprecated/rhumbBase.py,sha256=fh2ZkaW5yenFkG5xvYvyroscqWuuwQXyLfVN6gpzKf8,1370
100
+ pygeodesy/deprecated/rhumbaux.py,sha256=7g_R-_Bsc8FDmY4JcUyA7VEQe8EIJe0i8u3jOrgrrAo,1423
101
+ pygeodesy/deprecated/rhumbsolve.py,sha256=_exbzuupjgodQtdUJ_zrggqMx3X7SB88BROu0yYIJTg,1426
102
+ pygeodesy/deprecated/rhumbx.py,sha256=SdCzJgaSMBxZUQpT3vu52eE1neZTMkddz1Vuu4KsGxg,1420
103
+ pygeodesy/geodesicx/_C4_24.py,sha256=qkKFpXNPBo2RRfCjNV_AjNO4nZm_wsUux4IZuyfZJt8,90707
104
+ pygeodesy/geodesicx/_C4_27.py,sha256=rrcq4FeTQThu4vmYqLK0cmjpCLkPTCQbS728AbDjPRw,134215
105
+ pygeodesy/geodesicx/_C4_30.py,sha256=A6Keryy3a4iF6chjf1RMFG-Fb9M49_QQaI-4T-2NXx0,201921
106
+ pygeodesy/geodesicx/__init__.py,sha256=9zxci6ekoDGhyq7wAED3xPCD3-bJ_-Vx8vteCHvUOeI,2468
107
+ pygeodesy/geodesicx/__main__.py,sha256=834PZqoetW0V3xeIvCSbh6TPMCv8wq2-mUIm8cLkv-w,4330
108
+ pygeodesy/geodesicx/gx.py,sha256=qXz-YWiIjJhg2ytyFKFvjXAkVqTqQ26TzzGU3bncbfE,60438
109
+ pygeodesy/geodesicx/gxarea.py,sha256=dyoAZsCeytAUBCHG4Nxjll8AWcXmBHKzkxzIztj9X-g,20520
110
+ pygeodesy/geodesicx/gxbases.py,sha256=FC9oZLaKy-uf8o5Bmmr7MK4jBBvhzgaETzb5Qdixa04,6319
111
+ pygeodesy/geodesicx/gxline.py,sha256=PoPa_Qz9KSmP6Pb3LZgQg-9FcLpvMuVBRwxAkAtrYOw,28284
112
+ pygeodesy/rhumb/__init__.py,sha256=wetV7OwO6z-_D0FVTphwu6u0bA7h-sG3pfZa3WGAvfk,2296
113
+ pygeodesy/rhumb/aux_.py,sha256=s5jfZGkRe_Izjrv0rSpx2_0j5SA6nW9YT4ElhLS9Bw0,16117
114
+ pygeodesy/rhumb/bases.py,sha256=RBWGVBogfZAT7azFe-46mF_hUoI-bIvWCxwoiE8-Pvo,54218
115
+ pygeodesy/rhumb/ekx.py,sha256=L__f41hdrU8cVcqbWolEvdLAXtQdULlYhxsbccoYwok,24058
116
+ pygeodesy/rhumb/solve.py,sha256=85GonvF3qsp8I--XA2DUuwR0J7BU4S3O9BjnLEStcMw,24910
117
+ pygeodesy/triaxials/__init__.py,sha256=dZ3zXLWIIGhjMBYE6-8gJSfokNw4x5wg7eaTGSZH2Hw,3894
118
+ pygeodesy/triaxials/bases.py,sha256=Fv_sPyC5Mp_LouFbuOywK7BRcR0I2XmLeKCIOtlvX5w,34945
119
+ pygeodesy/triaxials/conformal3.py,sha256=FrJLQ0m58YvP_heh9jFH5TkhR46kSTzCIgtmtRPMErQ,23883
120
+ pygeodesy/triaxials/triaxial3.py,sha256=jCPAHwofXTZKpAN8xNtNlT2f5R0COzn46E1y_5mKnyU,40581
121
+ pygeodesy/triaxials/triaxial5.py,sha256=C38E8Atkxfiu8J6HOfkUUVU5lRn2kIjdSh5opkMep-s,53028
122
+ pygeodesy-25.12.31.dist-info/METADATA,sha256=cCh8F1b6GYHz1DBtBYPlSOdW5tM0JAMq7ATtdgU0yYg,20710
123
+ pygeodesy-25.12.31.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
124
+ pygeodesy-25.12.31.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
125
+ pygeodesy-25.12.31.dist-info/RECORD,,
@@ -1,119 +0,0 @@
1
- pygeodesy/LICENSE,sha256=YfgAiyxOwY6P9Kkb1_5XN81nueTLrpb3Ffkv3EuPgFU,1144
2
- pygeodesy/__init__.py,sha256=EYklJAQ7lqBC-O6RmgGjNRqP81HDX2w9pnSQ6YiQd0w,42328
3
- pygeodesy/__main__.py,sha256=HpOBmuhI7yVP1FIAEugvd9Lb54kzew-nM78be0r4SC4,5597
4
- pygeodesy/albers.py,sha256=mb3YbVvoBq8a7AytT0HeVxe8DGEvx1KFN2Usl2ksKwk,30908
5
- pygeodesy/azimuthal.py,sha256=GI7nM7RWDwOh5DKYrrZBZDHcP9aSJgCBSdgDm2ovLvY,49849
6
- pygeodesy/basics.py,sha256=sKIyFcBNz6UzzY2YRr0bt1WuQLnEFUMfLKW7z4vCOII,32915
7
- pygeodesy/booleans.py,sha256=sYXV22cKtZlJXhwxcWK5gW5r0qSOP71XnFwC4xAsa0s,72636
8
- pygeodesy/cartesianBase.py,sha256=KX74yZE-fM7wHDnrV5OkAEyKwyZJy5o9VuzVjb1caZQ,45355
9
- pygeodesy/clipy.py,sha256=a7khVUnc9PjCU7sLN2RP4BsSwDNpKlIMEasfz2wCKoc,27481
10
- pygeodesy/constants.py,sha256=8b6xQigjfq5FZYX1FCdJV4eqaHcmZr33ylq4Y0XggJc,21049
11
- pygeodesy/css.py,sha256=vdQax5m7BMSpr7PUyqedCSvx73ilWuhXQTp39i8FOfA,25793
12
- pygeodesy/datums.py,sha256=Vp1fP7sSV1EuRbuO2scnZ3qiTZD1CvL4O12KSRlf1SU,34068
13
- pygeodesy/dms.py,sha256=egtF9gjReovgaSKJ_27KHZjvo4vLDdLEZ7yXSf19EZs,42202
14
- pygeodesy/ecef.py,sha256=vxLhJeyl9EWEYTiX97cuyJuimyI3upsX2M4R30yEFNM,62577
15
- pygeodesy/ecefLocals.py,sha256=zoxGUJeYX2UXzR9r0jaByrvfrrpmrvAhjyQsz433RjA,7794
16
- pygeodesy/elevations.py,sha256=WrWPZNgkZX9Ys_1ij_gyE4jzdIv85JYAaR2cK3vc4gQ,10879
17
- pygeodesy/ellipsoidalBase.py,sha256=UpmJfjAuC7pvN9VIxLXveAmotPVW7oL2APAJUTi34Uc,55711
18
- pygeodesy/ellipsoidalBaseDI.py,sha256=PbSJkUUHpRGYgnnciMD-sWqTCReZv_FAc8SUonF3ZbI,38544
19
- pygeodesy/ellipsoidalExact.py,sha256=WEAEviB1xnWDy4OTg-XCleL14LPl2cbfO6s_FhbG8bY,17120
20
- pygeodesy/ellipsoidalGeodSolve.py,sha256=l6JwzuMlzBONhJTJhm7oi-x-FWx9cKAAIM1kMDOFaf0,17108
21
- pygeodesy/ellipsoidalKarney.py,sha256=W_Liw5MxTqJJGsxMi50ui8grRSPKwkG2HH-Mv_mXQYk,18839
22
- pygeodesy/ellipsoidalNvector.py,sha256=HLFjX6o26q2fzVCjLSL0PdEh96xhGtjfzo2V_k54j4A,30146
23
- pygeodesy/ellipsoidalVincenty.py,sha256=zeTvid09NGuYJ1WJ__a3ApCBGSzX0A-Rhs8-sQXMNQQ,26273
24
- pygeodesy/ellipsoids.py,sha256=hdBT-Vl5Ukq51s19brzctT0vZfh8qZYlbUjmrrQPE-Q,108817
25
- pygeodesy/elliptic.py,sha256=uWxzmr7woRKqhsBWm6iGTwag5Ga0L184szkPWN3diSg,45515
26
- pygeodesy/epsg.py,sha256=VIBidzAEuoBF4LdlJ4r3WtpL0Ymhru8kf4fAgfFr5ok,8220
27
- pygeodesy/errors.py,sha256=HCFhdUtRzE51CnQseuB2BgJ7MFLysmOhpbnjaEupIhA,32498
28
- pygeodesy/etm.py,sha256=swF0QL52uo_DK073hymix8IitMyArOf-n0LL98BGwRU,46796
29
- pygeodesy/fmath.py,sha256=5gPHRqD5DbPqrM8BFRFVo1IYumKUVWoTcvEtzc8BFiE,37812
30
- pygeodesy/formy.py,sha256=7-CdPiagdVrbDMjWieX_guN4RvFVCYKOM3yDKSFPRWU,69777
31
- pygeodesy/frechet.py,sha256=dBnQ5ePuaUdKv62-e9RfovFDxELsZPQEKMLww9NOf7Q,35588
32
- pygeodesy/fstats.py,sha256=M6UOrwmeGp6kjYuYfc6Iq9ibMJAFNm6D4C5GnvlJeuM,28348
33
- pygeodesy/fsums.py,sha256=I2yr6XtQH4Mf4qaiSuta2U_sKc_N0xCc7cIez9YLVo4,104978
34
- pygeodesy/gars.py,sha256=AXioT4Lh1cwrd7fF6dHcVJw-9vu2oAnZrzo_ka2Y3Ts,11761
35
- pygeodesy/geodesici.py,sha256=V2FW_xQUwm6HfiVoZoBXhipsAV0EjXHnAc_wUG78kAQ,74889
36
- pygeodesy/geodesicw.py,sha256=xDxxxr4HOT-8Mh85zD6QZzyO-mfqUavfwQMStYrsF8c,30029
37
- pygeodesy/geodsolve.py,sha256=_s6Wk13yTI8eTsaMpnzjqacNXLjPh_HoevmjECtrRjE,28668
38
- pygeodesy/geohash.py,sha256=bqJMuA0-TH2vgOd7VaW1q4dw8KL43oCmV3eSjP90Bak,40124
39
- pygeodesy/geoids.py,sha256=m0EqTAKCuOVxrRpoPdmgymu0i0ufV2xpdt_laJLFqqE,86129
40
- pygeodesy/hausdorff.py,sha256=KGB0CIeNkBqR0sXIbRJvcgXPrM-4Mpi2aBOqDeZjqZ0,32269
41
- pygeodesy/heights.py,sha256=q7ej8RO-iZ5hfNi3OxwO3w_Opk4xHAZIzHbcbFTO3CA,41011
42
- pygeodesy/internals.py,sha256=RS_8XXDMoZqgDizztPtvyn8kl3rozS4n5vg8CjOp_WQ,24712
43
- pygeodesy/interns.py,sha256=QTP_6rStQ283DE-rL7rCAcfEffuiAXustBGkCY_DHJ0,23508
44
- pygeodesy/iters.py,sha256=nKVp_LUQyTqOz_OLzY25g6-_xlKG7lmAnjKKMXESmiM,20345
45
- pygeodesy/karney.py,sha256=GJuruLHO7IjhwXYNh507EbHO5VFNXwhRpzIkaGCec7c,41652
46
- pygeodesy/ktm.py,sha256=9eZ5Wk2HHhRl0IyypJ4guhhxGJLriWZm0Wfb3Z9Gf7Y,27270
47
- pygeodesy/latlonBase.py,sha256=eF8tr0fP9nc8JMGbJ0JyeFfECZyjlBJbtIchKRdU4B4,75317
48
- pygeodesy/lazily.py,sha256=_8ZqQgupvH2cKVl84Q6yM8o6ySyef6Ioyvr77mXDFcU,47802
49
- pygeodesy/lcc.py,sha256=nU_aWXgsxwB53c3CKM-dBQoDRoypkrY-tVmKmU9yQQ8,25785
50
- pygeodesy/ltp.py,sha256=N3TMipTWKUOeZYzn3UeJJqe5J4Yk788390ohQM1ykAE,50893
51
- pygeodesy/ltpTuples.py,sha256=t-n7p9A3JCVasv8LKCV4PkOTmXJZi91BkBFm8pBZM5o,59101
52
- pygeodesy/mgrs.py,sha256=ZgCBH_M_YFxuFu5ukVOVetk-uftv-4GJP-QJrtoqtcU,29842
53
- pygeodesy/named.py,sha256=_dlImd3OzHS1vqm673e7CEJVXkbczaAwckw8H8SGoEM,52787
54
- pygeodesy/namedTuples.py,sha256=JlO8uWmR65RkT7Rdgc9knfI0-bqJeA-tm2ZKsesztVU,30598
55
- pygeodesy/nvectorBase.py,sha256=r-O-ErwTXqDfLg4zYqhB4IqTJc8P8rbJlMm0XfQN2Gs,29927
56
- pygeodesy/osgr.py,sha256=4mFUcn1vMOju3PK1rKohPtIlJZrBGPJrcRjFl-CoxqE,30852
57
- pygeodesy/points.py,sha256=2vQpgqxJiC7Cgn03pqiezTM4I-CTquv9tQZi4uYWjpw,64497
58
- pygeodesy/props.py,sha256=GCBqrkMfpbHuca2Sh68WSGDplIeZLvCDDXUewyvEiqI,24600
59
- pygeodesy/resections.py,sha256=vCbnEyNghGkblrPA58-MspaxkZcInnvRgS-oSBIe1hM,43796
60
- pygeodesy/simplify.py,sha256=O04NSb0ezXM8z3lCcajXbetZuum6PURAOPYTsJ27gxI,22068
61
- pygeodesy/solveBase.py,sha256=mZdud0LveosWEXbufVzTMM9y6wuObS0O2clDX2LmRgE,18864
62
- pygeodesy/sphericalBase.py,sha256=hq6dyeeIHBy_T0Q6PIwSvmo1U70Ir5KBeMTwQplzqHQ,32071
63
- pygeodesy/sphericalNvector.py,sha256=bu0yB4PEq1cs6BS8QFqtljWpVEw7ESwq2yILOzGDuAc,54948
64
- pygeodesy/sphericalTrigonometry.py,sha256=PqxNMSK8DI7TJuOtkQ5afzJtLfDzOkVe_tRdLTq9x14,64398
65
- pygeodesy/streprs.py,sha256=UYlk5v-GEJHMDiHZsqLssY3h6J5LbFw9dsCsKJbiERs,23684
66
- pygeodesy/trf.py,sha256=M0kzyclDJ5q4wCr-2HDIj6_J42FsrffnFGiyPkgHEmE,119216
67
- pygeodesy/triaxials.py,sha256=tj2IjG6BLmtp6PjcX-xsEv9ONv2eAp49amwon9L6v4Y,66992
68
- pygeodesy/units.py,sha256=DOSFqTdX1ryabNaQ0kmUvC1RpYzOw1i0T1205ovYeno,35561
69
- pygeodesy/unitsBase.py,sha256=cVNKG24Fov73gLFPGwGdjvXmM-8fd3MDufVubABAMeE,14141
70
- pygeodesy/ups.py,sha256=k7MDyq_aKO70m8sEeOCvpFb3nyrBmBdbdPST-UgxgeA,23349
71
- pygeodesy/utily.py,sha256=1f5tMdkmfLaYNg0ALHLpcIixuLimjLCiAVqpf_FbRng,41098
72
- pygeodesy/utm.py,sha256=kcXliftP9q0nTxviIOixVyvResK2Jydj-G52CXJiSuQ,31123
73
- pygeodesy/utmups.py,sha256=31RD8l7M-vcRXU9_wnkb_PNUcKjOr1HAmwjOndjkgXE,13176
74
- pygeodesy/utmupsBase.py,sha256=PptZ4Mm8BaDUCA8v1sK54o8idw_24kq6loAuYv0bejE,22730
75
- pygeodesy/vector2d.py,sha256=3Pqadaafd0vn4DWCHq5gaE3utL0PDZxp9hI_G5j3O1I,40306
76
- pygeodesy/vector3d.py,sha256=sC7u9tgFFWoWHFxqtO-dvKVuiEzraw50TDU_QpdDbYw,43045
77
- pygeodesy/vector3dBase.py,sha256=YMX3veS3EEjVkFszCgztbX_NtHQXd1BgaKZ898_wgJI,40884
78
- pygeodesy/webmercator.py,sha256=z3Ft5TeHc9FoLA8zQhzTrSuShHSz0aHjanbvj53ohmo,15016
79
- pygeodesy/wgrs.py,sha256=1MK72g3HsfdsvChM6rBy_auxzSvWHSoer8fEuT4LinI,15503
80
- pygeodesy/auxilats/_CX_4.py,sha256=DX67nZ1E4nOis8d_wQ8tn5T-SAVNDBJH3kp9IuQc8lM,6830
81
- pygeodesy/auxilats/_CX_6.py,sha256=T89kMuUijlLZzmqoI8XiTGTOzj4A4SKhCyt_rOroCq4,11278
82
- pygeodesy/auxilats/_CX_8.py,sha256=Ff_VTStb-dZkGz7-RL1tzymPgPbTwtl_6EzPquPMamc,18900
83
- pygeodesy/auxilats/_CX_Rs.py,sha256=hMPcfAQbkD1DzwrRTB9pecfoytxHilPp5__n6UYUNlE,8679
84
- pygeodesy/auxilats/__init__.py,sha256=kyIPbhyaXR1I6M4uyRf5VOOJ4EGqdURrrz34u5fvHho,2883
85
- pygeodesy/auxilats/__main__.py,sha256=jH0ShJaDR8zWfoLPXuut37BJbVWVDsAm9rb4xc25XOY,3340
86
- pygeodesy/auxilats/auxAngle.py,sha256=4Yb_RphD_OKVSPr--85uThNFTAMrsBfia9ba183mvtY,16751
87
- pygeodesy/auxilats/auxDLat.py,sha256=lvffZo8DdVWWEHusPNXRYQeoCFfZcG5rNhgEooL5Xu0,10956
88
- pygeodesy/auxilats/auxDST.py,sha256=ab8ByHMmX1dWBmGgOGxYUlmkZqTKKpawg5maLYYrG7M,10464
89
- pygeodesy/auxilats/auxLat.py,sha256=2d6uliIVfxOHp8qibom-8l5T7bLONSyTr6LRTt4OwRs,31972
90
- pygeodesy/auxilats/auxily.py,sha256=eA5-QSr3pZgY_5dJQsIiCWwlXofZsYJTGQVpMhfybSs,8085
91
- pygeodesy/deprecated/__init__.py,sha256=avPno_C9H8QYbAsNRkxPIyfYX_tDHeakKqSsJMwJU9U,2823
92
- pygeodesy/deprecated/bases.py,sha256=pL4fEW7PTrDc_coggRCcnrs3izp-MWUEyvr6yBNzgMw,1649
93
- pygeodesy/deprecated/classes.py,sha256=8va_ePoOq_TWkzOMJTeaIwyEuDGP9sYsbChnuH7FdqU,17266
94
- pygeodesy/deprecated/consterns.py,sha256=RC-YvqQXAEVoIaLnaLrIrA1Mr3oXLk3HT9n1HLvGCSs,1917
95
- pygeodesy/deprecated/datum.py,sha256=aeY-POZBZrKKiTnrhqOImV5AfiXu2-9Vz8xu_d4ze2g,1910
96
- pygeodesy/deprecated/functions.py,sha256=TK3T1zGAmTLowLeKZik7qknRBthCqjIGhdOjebnCdhE,15844
97
- pygeodesy/deprecated/nvector.py,sha256=rttz-znpX2Tm1ttoJt8_E8V_9n_ZciKi_CvvbwFmZQM,2117
98
- pygeodesy/deprecated/rhumbBase.py,sha256=y1DcGwGBfIbbTK5upm1XgkbCVIlpGc5MLDn5WxcuLp8,1370
99
- pygeodesy/deprecated/rhumbaux.py,sha256=pikSwb5cIE-MVwHPFjwGd-JYau_Of-Lf6wgghjNWS98,1423
100
- pygeodesy/deprecated/rhumbsolve.py,sha256=GRyrxUTT19gjSe8BohUswxXRBjoNWrzQryPbqTH2XhE,1426
101
- pygeodesy/deprecated/rhumbx.py,sha256=YSzTywlDLfVYZmJjAEi_gLtWbsf4eGxZembaL3wOTuk,1420
102
- pygeodesy/geodesicx/_C4_24.py,sha256=3OkzOxf0DdO1QL4N9CVYjpOgFCm8FcYjCyvcTLpL2wc,90707
103
- pygeodesy/geodesicx/_C4_27.py,sha256=grqtju94Nu9V_eQPqe_7aRbLCYflxRuK127pPOPwuDA,134215
104
- pygeodesy/geodesicx/_C4_30.py,sha256=I4ZuTy64yOq1IVgRtc_kqOL0HnKzXeTea7kTFSolcJs,201921
105
- pygeodesy/geodesicx/__init__.py,sha256=1wUYni2aucT66bNkOqp1ZOix6a4rlBRHJimUDUWIgt4,2468
106
- pygeodesy/geodesicx/__main__.py,sha256=ZWx2vPPaQEXwFBQWOjKYrjM9Deb0b-_778PxwiM1Rww,4330
107
- pygeodesy/geodesicx/gx.py,sha256=uEXulVciKipCz28VMQqhtV0kLuy71vy-EFF42GWWi-Q,60438
108
- pygeodesy/geodesicx/gxarea.py,sha256=a_yhNsjjRM0E9-WYBbhHjaefjLuAzhNQxTHiv0LnvO0,19588
109
- pygeodesy/geodesicx/gxbases.py,sha256=qb1tYsh2nIvyXoVhU-pdmolANHj9tHZxiH2f7Ls3Jkw,6319
110
- pygeodesy/geodesicx/gxline.py,sha256=9aUbLEok0ewg8j1UpZ1Ud7X0zH8Mu6QoUO2bjdpmEag,28284
111
- pygeodesy/rhumb/__init__.py,sha256=MByyXXwg0kJRHckEfaxWMW_2i4U15rRRgN7iTzeOK_I,2207
112
- pygeodesy/rhumb/aux_.py,sha256=2FbR_0Y0ofOROay2Z16oiLILhd7G50LUiatkQhBwEMA,16117
113
- pygeodesy/rhumb/bases.py,sha256=R-QLV8a0KZUvaI1wEkyAG4yO-IQNNK4I2O7WRIMBJuo,54218
114
- pygeodesy/rhumb/ekx.py,sha256=LlMjVJqb-Q5rJnexJi-0TPRkUZkJaPQ7fVRypxkxNjo,24058
115
- pygeodesy/rhumb/solve.py,sha256=z8z_XYObTgz7w1skNLNcLBpe-EO_r0H4sVcZGlBcWnc,24005
116
- pygeodesy-25.11.5.dist-info/METADATA,sha256=tohssI5czjmAyKZhTBWpSr9Qu8FBC0_4_xyXLYbhaKc,20142
117
- pygeodesy-25.11.5.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
118
- pygeodesy-25.11.5.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
119
- pygeodesy-25.11.5.dist-info/RECORD,,