pygeodesy 24.11.11__py2.py3-none-any.whl → 25.1.5__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 (118) hide show
  1. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/METADATA +34 -35
  2. PyGeodesy-25.1.5.dist-info/RECORD +118 -0
  3. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/WHEEL +1 -1
  4. pygeodesy/__init__.py +19 -19
  5. pygeodesy/__main__.py +1 -1
  6. pygeodesy/albers.py +5 -5
  7. pygeodesy/auxilats/_CX_4.py +1 -1
  8. pygeodesy/auxilats/_CX_6.py +1 -1
  9. pygeodesy/auxilats/_CX_8.py +1 -1
  10. pygeodesy/auxilats/_CX_Rs.py +1 -1
  11. pygeodesy/auxilats/__init__.py +1 -1
  12. pygeodesy/auxilats/__main__.py +1 -1
  13. pygeodesy/auxilats/auxAngle.py +5 -5
  14. pygeodesy/auxilats/auxDLat.py +6 -6
  15. pygeodesy/auxilats/auxDST.py +2 -2
  16. pygeodesy/auxilats/auxLat.py +5 -5
  17. pygeodesy/auxilats/auxily.py +2 -2
  18. pygeodesy/azimuthal.py +5 -5
  19. pygeodesy/basics.py +60 -8
  20. pygeodesy/booleans.py +1 -1
  21. pygeodesy/cartesianBase.py +22 -61
  22. pygeodesy/clipy.py +1 -1
  23. pygeodesy/constants.py +5 -5
  24. pygeodesy/css.py +1 -1
  25. pygeodesy/datums.py +1 -1
  26. pygeodesy/deprecated/__init__.py +2 -2
  27. pygeodesy/deprecated/bases.py +1 -1
  28. pygeodesy/deprecated/classes.py +86 -2
  29. pygeodesy/deprecated/consterns.py +1 -1
  30. pygeodesy/deprecated/datum.py +5 -5
  31. pygeodesy/deprecated/functions.py +42 -8
  32. pygeodesy/deprecated/nvector.py +1 -1
  33. pygeodesy/deprecated/rhumbBase.py +1 -1
  34. pygeodesy/deprecated/rhumbaux.py +1 -1
  35. pygeodesy/deprecated/rhumbsolve.py +1 -1
  36. pygeodesy/deprecated/rhumbx.py +1 -1
  37. pygeodesy/dms.py +1 -1
  38. pygeodesy/ecef.py +53 -56
  39. pygeodesy/elevations.py +1 -1
  40. pygeodesy/ellipsoidalBase.py +3 -3
  41. pygeodesy/ellipsoidalBaseDI.py +1 -1
  42. pygeodesy/ellipsoidalExact.py +1 -1
  43. pygeodesy/ellipsoidalGeodSolve.py +1 -1
  44. pygeodesy/ellipsoidalKarney.py +1 -1
  45. pygeodesy/ellipsoidalNvector.py +1 -1
  46. pygeodesy/ellipsoidalVincenty.py +6 -5
  47. pygeodesy/ellipsoids.py +4 -5
  48. pygeodesy/elliptic.py +6 -6
  49. pygeodesy/epsg.py +1 -1
  50. pygeodesy/errors.py +1 -1
  51. pygeodesy/etm.py +5 -5
  52. pygeodesy/fmath.py +18 -17
  53. pygeodesy/formy.py +409 -555
  54. pygeodesy/frechet.py +29 -86
  55. pygeodesy/fstats.py +1 -1
  56. pygeodesy/fsums.py +32 -33
  57. pygeodesy/gars.py +1 -1
  58. pygeodesy/geodesici.py +7 -7
  59. pygeodesy/geodesicw.py +1 -1
  60. pygeodesy/geodesicx/_C4_24.py +2 -2
  61. pygeodesy/geodesicx/_C4_27.py +2 -2
  62. pygeodesy/geodesicx/_C4_30.py +2 -2
  63. pygeodesy/geodesicx/__init__.py +2 -2
  64. pygeodesy/geodesicx/__main__.py +4 -5
  65. pygeodesy/geodesicx/gx.py +6 -5
  66. pygeodesy/geodesicx/gxarea.py +2 -2
  67. pygeodesy/geodesicx/gxbases.py +2 -2
  68. pygeodesy/geodesicx/gxline.py +16 -12
  69. pygeodesy/geodsolve.py +1 -1
  70. pygeodesy/geohash.py +1 -1
  71. pygeodesy/geoids.py +277 -203
  72. pygeodesy/hausdorff.py +23 -81
  73. pygeodesy/heights.py +115 -150
  74. pygeodesy/internals.py +1 -1
  75. pygeodesy/interns.py +2 -3
  76. pygeodesy/iters.py +1 -1
  77. pygeodesy/karney.py +3 -3
  78. pygeodesy/ktm.py +16 -15
  79. pygeodesy/latlonBase.py +323 -409
  80. pygeodesy/lazily.py +53 -44
  81. pygeodesy/lcc.py +1 -1
  82. pygeodesy/ltp.py +46 -50
  83. pygeodesy/ltpTuples.py +147 -130
  84. pygeodesy/mgrs.py +1 -1
  85. pygeodesy/named.py +149 -3
  86. pygeodesy/namedTuples.py +58 -7
  87. pygeodesy/nvectorBase.py +122 -105
  88. pygeodesy/osgr.py +1 -1
  89. pygeodesy/points.py +1 -1
  90. pygeodesy/props.py +1 -1
  91. pygeodesy/resections.py +18 -17
  92. pygeodesy/rhumb/__init__.py +1 -1
  93. pygeodesy/rhumb/aux_.py +2 -2
  94. pygeodesy/rhumb/bases.py +2 -2
  95. pygeodesy/rhumb/ekx.py +4 -4
  96. pygeodesy/rhumb/solve.py +1 -1
  97. pygeodesy/simplify.py +289 -401
  98. pygeodesy/solveBase.py +1 -1
  99. pygeodesy/sphericalBase.py +1 -1
  100. pygeodesy/sphericalNvector.py +5 -5
  101. pygeodesy/sphericalTrigonometry.py +7 -6
  102. pygeodesy/streprs.py +10 -5
  103. pygeodesy/trf.py +1 -1
  104. pygeodesy/triaxials.py +23 -16
  105. pygeodesy/units.py +16 -16
  106. pygeodesy/unitsBase.py +1 -1
  107. pygeodesy/ups.py +4 -4
  108. pygeodesy/utily.py +341 -211
  109. pygeodesy/utm.py +5 -5
  110. pygeodesy/utmups.py +1 -1
  111. pygeodesy/utmupsBase.py +1 -1
  112. pygeodesy/vector2d.py +5 -5
  113. pygeodesy/vector3d.py +14 -3
  114. pygeodesy/vector3dBase.py +5 -5
  115. pygeodesy/webmercator.py +1 -1
  116. pygeodesy/wgrs.py +1 -1
  117. PyGeodesy-24.11.11.dist-info/RECORD +0 -118
  118. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/top_level.txt +0 -0
pygeodesy/fmath.py CHANGED
@@ -23,7 +23,7 @@ from math import fabs, sqrt # pow
23
23
  import operator as _operator # in .datums, .trf, .utm
24
24
 
25
25
  __all__ = _ALL_LAZY.fmath
26
- __version__ = '24.11.08'
26
+ __version__ = '24.12.31'
27
27
 
28
28
  # sqrt(2) - 1 <https://WikiPedia.org/wiki/Square_root_of_2>
29
29
  _0_4142 = 0.41421356237309504880 # ... ~ 3730904090310553 / 9007199254740992
@@ -107,16 +107,18 @@ class Fhypot(Fsum):
107
107
  other settings, see class L{Fsum<Fsum.__init__>} and method
108
108
  L{root<Fsum.root>}.
109
109
  '''
110
+ def _r_X_kwds(power=None, raiser=True, root=2, **kwds):
111
+ # DEPRECATED keyword argument C{power=2}, use C{root=2}
112
+ return (root if power is None else power), raiser, kwds
113
+
110
114
  r = None # _xkwds_pop2 error
111
115
  try:
112
- r, kwds = _xkwds_pop2(root_name_f2product_nonfinites_RESIDUAL_raiser, root=2)
113
- r, kwds = _xkwds_pop2(kwds, power=r) # for backward compatibility
114
- t, kwds = _xkwds_pop2(kwds, raiser=True)
116
+ r, X, kwds = _r_X_kwds(**root_name_f2product_nonfinites_RESIDUAL_raiser)
115
117
  Fsum.__init__(self, **kwds)
116
118
  self(_0_0)
117
119
  if xs:
118
- self._facc_power(r, xs, Fhypot, raiser=t)
119
- self._fset(self.root(r, raiser=t))
120
+ self._facc_power(r, xs, Fhypot, raiser=X)
121
+ self._fset(self.root(r, raiser=X))
120
122
  except Exception as X:
121
123
  raise self._ErrorXs(X, xs, root=r)
122
124
 
@@ -163,11 +165,11 @@ class Fpowers(Fsum):
163
165
  L{fpow<Fsum.fpow>}.
164
166
  '''
165
167
  try:
166
- t, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)
168
+ X, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)
167
169
  Fsum.__init__(self, **kwds)
168
170
  self(_0_0)
169
171
  if xs:
170
- self._facc_power(power, xs, Fpowers, raiser=t) # x**0 == 1
172
+ self._facc_power(power, xs, Fpowers, raiser=X) # x**0 == 1
171
173
  except Exception as X:
172
174
  raise self._ErrorXs(X, xs, power=power)
173
175
 
@@ -187,12 +189,12 @@ class Froot(Fsum):
187
189
  L{fpow<Fsum.fpow>}.
188
190
  '''
189
191
  try:
190
- raiser, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)
192
+ X, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)
191
193
  Fsum.__init__(self, **kwds)
192
194
  self(_0_0)
193
195
  if xs:
194
196
  self.fadd(xs)
195
- self(self.root(root, raiser=raiser))
197
+ self(self.root(root, raiser=X))
196
198
  except Exception as X:
197
199
  raise self._ErrorXs(X, xs, root=root)
198
200
 
@@ -425,8 +427,7 @@ def fdot(xs, *ys, **start_f2product_nonfinites):
425
427
  '''Return the precision dot product M{sum(xs[i] * ys[i] for i in range(len(xs)))}.
426
428
 
427
429
  @arg xs: Iterable of values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
428
- @arg ys: Other values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all
429
- positional.
430
+ @arg ys: Other values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all positional.
430
431
  @kwarg start_f2product_nonfinites: Optional bias C{B{start}=0} (C{scalar}, an
431
432
  L{Fsum} or L{Fsum2Tuple}) and settings C{B{f2product}=None} (C{bool})
432
433
  and C{B{nonfinites=True}} (C{bool}), see class L{Fsum<Fsum.__init__>}.
@@ -458,9 +459,9 @@ def fdot_(*xys, **start_f2product_nonfinites):
458
459
  def fdot3(xs, ys, zs, **start_f2product_nonfinites):
459
460
  '''Return the (precision) dot product M{start + sum(xs[i] * ys[i] * zs[i] for i in range(len(xs)))}.
460
461
 
461
- @arg xs: Iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
462
- @arg ys: Iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
463
- @arg zs: Iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
462
+ @arg xs: X values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
463
+ @arg ys: Y values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
464
+ @arg zs: Z values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
464
465
 
465
466
  @see: Function L{fdot} for further details.
466
467
 
@@ -833,7 +834,7 @@ if _MODS.sys_version_info2 < (3, 8): # PYCHOK no cover
833
834
  '''
834
835
  return float(_Hypot(*xs))
835
836
 
836
- elif _MODS.sys_version_info2 < (3, 10):
837
+ elif _MODS.sys_version_info2 < (3, 10): # PYCHOK no cover
837
838
  # In Python 3.8 and 3.9 C{math.hypot} is inaccurate, see
838
839
  # U{agdhruv<https://GitHub.com/geopy/geopy/issues/466>},
839
840
  # U{cffk<https://Bugs.Python.org/issue43088>} and module
@@ -1094,7 +1095,7 @@ def zqrt(x):
1094
1095
 
1095
1096
  # **) MIT License
1096
1097
  #
1097
- # Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.
1098
+ # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
1098
1099
  #
1099
1100
  # Permission is hereby granted, free of charge, to any person obtaining a
1100
1101
  # copy of this software and associated documentation files (the "Software"),