pygeodesy 24.6.9__py2.py3-none-any.whl → 24.7.7__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 (87) hide show
  1. {PyGeodesy-24.6.9.dist-info → PyGeodesy-24.7.7.dist-info}/METADATA +2 -2
  2. PyGeodesy-24.7.7.dist-info/RECORD +117 -0
  3. pygeodesy/__init__.py +39 -32
  4. pygeodesy/__main__.py +6 -1
  5. pygeodesy/albers.py +2 -2
  6. pygeodesy/auxilats/__init__.py +1 -1
  7. pygeodesy/auxilats/auxAngle.py +40 -39
  8. pygeodesy/auxilats/auxDLat.py +3 -2
  9. pygeodesy/auxilats/auxLat.py +16 -18
  10. pygeodesy/auxilats/auxily.py +1 -1
  11. pygeodesy/azimuthal.py +10 -10
  12. pygeodesy/basics.py +16 -4
  13. pygeodesy/booleans.py +4 -4
  14. pygeodesy/cartesianBase.py +11 -14
  15. pygeodesy/css.py +14 -18
  16. pygeodesy/datums.py +6 -6
  17. pygeodesy/deprecated/__init__.py +1 -1
  18. pygeodesy/deprecated/classes.py +25 -4
  19. pygeodesy/deprecated/datum.py +3 -3
  20. pygeodesy/deprecated/functions.py +6 -8
  21. pygeodesy/dms.py +23 -27
  22. pygeodesy/ecef.py +4 -4
  23. pygeodesy/elevations.py +4 -4
  24. pygeodesy/ellipsoidalBase.py +23 -28
  25. pygeodesy/ellipsoidalBaseDI.py +19 -23
  26. pygeodesy/ellipsoidalExact.py +3 -3
  27. pygeodesy/ellipsoidalGeodSolve.py +15 -23
  28. pygeodesy/ellipsoidalKarney.py +37 -60
  29. pygeodesy/ellipsoidalNvector.py +38 -44
  30. pygeodesy/ellipsoidalVincenty.py +11 -14
  31. pygeodesy/ellipsoids.py +107 -101
  32. pygeodesy/errors.py +109 -48
  33. pygeodesy/etm.py +32 -44
  34. pygeodesy/formy.py +55 -58
  35. pygeodesy/frechet.py +18 -20
  36. pygeodesy/fsums.py +3 -3
  37. pygeodesy/gars.py +3 -4
  38. pygeodesy/geodesici.py +1696 -0
  39. pygeodesy/geodesicw.py +15 -15
  40. pygeodesy/geodesicx/__init__.py +4 -4
  41. pygeodesy/geodesicx/gx.py +34 -55
  42. pygeodesy/geodesicx/gxbases.py +20 -8
  43. pygeodesy/geodesicx/gxline.py +93 -88
  44. pygeodesy/geodsolve.py +108 -59
  45. pygeodesy/geohash.py +26 -34
  46. pygeodesy/geoids.py +28 -37
  47. pygeodesy/hausdorff.py +17 -18
  48. pygeodesy/heights.py +2 -2
  49. pygeodesy/internals.py +46 -13
  50. pygeodesy/interns.py +2 -2
  51. pygeodesy/karney.py +78 -15
  52. pygeodesy/ktm.py +13 -16
  53. pygeodesy/latlonBase.py +17 -19
  54. pygeodesy/lazily.py +28 -25
  55. pygeodesy/lcc.py +28 -31
  56. pygeodesy/ltp.py +7 -8
  57. pygeodesy/ltpTuples.py +71 -73
  58. pygeodesy/mgrs.py +8 -9
  59. pygeodesy/named.py +19 -10
  60. pygeodesy/nvectorBase.py +9 -10
  61. pygeodesy/osgr.py +9 -9
  62. pygeodesy/points.py +6 -6
  63. pygeodesy/rhumb/__init__.py +1 -1
  64. pygeodesy/rhumb/aux_.py +5 -5
  65. pygeodesy/rhumb/bases.py +30 -31
  66. pygeodesy/rhumb/ekx.py +3 -4
  67. pygeodesy/rhumb/solve.py +21 -22
  68. pygeodesy/solveBase.py +177 -123
  69. pygeodesy/sphericalBase.py +10 -11
  70. pygeodesy/sphericalNvector.py +13 -13
  71. pygeodesy/sphericalTrigonometry.py +86 -97
  72. pygeodesy/streprs.py +4 -34
  73. pygeodesy/triaxials.py +48 -43
  74. pygeodesy/units.py +208 -275
  75. pygeodesy/unitsBase.py +115 -107
  76. pygeodesy/ups.py +26 -31
  77. pygeodesy/utily.py +8 -8
  78. pygeodesy/utm.py +35 -40
  79. pygeodesy/utmups.py +43 -46
  80. pygeodesy/utmupsBase.py +8 -9
  81. pygeodesy/vector3d.py +26 -27
  82. pygeodesy/vector3dBase.py +6 -7
  83. pygeodesy/webmercator.py +19 -21
  84. pygeodesy/wgrs.py +18 -20
  85. PyGeodesy-24.6.9.dist-info/RECORD +0 -116
  86. {PyGeodesy-24.6.9.dist-info → PyGeodesy-24.7.7.dist-info}/WHEEL +0 -0
  87. {PyGeodesy-24.6.9.dist-info → PyGeodesy-24.7.7.dist-info}/top_level.txt +0 -0
pygeodesy/frechet.py CHANGED
@@ -84,26 +84,24 @@ than the well-known C{Hausdorff} distance, see the L{hausdorff} module.
84
84
  # from pygeodesy.basics import isscalar # from .points
85
85
  from pygeodesy.constants import EPS, EPS1, INF, NINF
86
86
  from pygeodesy.datums import _ellipsoidal_datum, _WGS84
87
- from pygeodesy.errors import PointsError, _xattr, _xcallable, _xkwds, \
88
- _xkwds_get
87
+ from pygeodesy.errors import PointsError, _xattr, _xcallable, _xkwds, _xkwds_get
89
88
  import pygeodesy.formy as _formy
90
89
  from pygeodesy.interns import NN, _DOT_, _n_, _units_
91
90
  # from pygeodesy.iters import points2 as _points2 # from .points
92
91
  from pygeodesy.lazily import _ALL_LAZY, _FOR_DOCS
93
92
  from pygeodesy.named import _name2__, _Named, _NamedTuple, _Pass
94
93
  # from pygeodesy.namedTuples import PhiLam2Tuple # from .points
95
- from pygeodesy.points import _distanceTo, _fractional, isscalar, \
96
- PhiLam2Tuple, points2 as _points2, radians
94
+ from pygeodesy.points import _distanceTo, _fractional, isscalar, PhiLam2Tuple, \
95
+ points2 as _points2, radians
97
96
  from pygeodesy.props import Property, property_doc_, property_RO
98
- from pygeodesy.units import FIx, Float, Number_, _xUnit, _xUnits
99
- from pygeodesy.unitsBase import _Str_degrees, _Str_meter, _Str_NN, \
100
- _Str_radians, _Str_radians2
97
+ from pygeodesy.units import FIx, Float, Number_
98
+ from pygeodesy import unitsBase as _unitsBase # _Str_..., _xUnit, _xUnits
101
99
 
102
100
  from collections import defaultdict as _defaultdict
103
101
  # from math import radians # from .points
104
102
 
105
103
  __all__ = _ALL_LAZY.frechet
106
- __version__ = '24.06.10'
104
+ __version__ = '24.06.15'
107
105
 
108
106
 
109
107
  def _fraction(fraction, n):
@@ -134,7 +132,7 @@ class Frechet(_Named):
134
132
  _kwds = {} # func_ options
135
133
  _n1 = 0
136
134
  _ps1 = None
137
- _units = _Str_NN # XXX Str to _Pass and for backward compatibility
135
+ _units = _unitsBase._Str_NN # XXX Str to _Pass and for backward compatibility
138
136
 
139
137
  def __init__(self, point1s, fraction=None, units=NN, **name__kwds):
140
138
  '''New C{Frechet...} calculator/interpolator.
@@ -316,7 +314,7 @@ class Frechet(_Named):
316
314
 
317
315
  @raise TypeError: Invalid B{C{units}}.
318
316
  '''
319
- self._units = _xUnits(units, Base=Float)
317
+ self._units = _unitsBase._xUnits(units, Base=Float)
320
318
 
321
319
  @property_RO
322
320
  def wrap(self):
@@ -328,7 +326,7 @@ class Frechet(_Named):
328
326
  class FrechetDegrees(Frechet):
329
327
  '''DEPRECATED, use an other C{Frechet*} class.
330
328
  '''
331
- _units = _Str_degrees
329
+ _units = _unitsBase._Str_degrees
332
330
 
333
331
  if _FOR_DOCS:
334
332
  __init__ = Frechet.__init__
@@ -342,7 +340,7 @@ class FrechetDegrees(Frechet):
342
340
  class FrechetRadians(Frechet):
343
341
  '''DEPRECATED, use an other C{Frechet*} class.
344
342
  '''
345
- _units = _Str_radians
343
+ _units = _unitsBase._Str_radians
346
344
 
347
345
  if _FOR_DOCS:
348
346
  __init__ = Frechet.__init__
@@ -369,8 +367,8 @@ class _FrechetMeterRadians(Frechet):
369
367
  the optional keyword arguments supplied at instantiation
370
368
  of the C{Frechet*} sub-class.
371
369
  '''
372
- _units = _Str_meter
373
- _units_ = _Str_radians
370
+ _units = _unitsBase._Str_meter
371
+ _units_ = _unitsBase._Str_radians
374
372
 
375
373
  def discrete(self, point2s, fraction=None):
376
374
  '''Overloaded method L{Frechet.discrete} to determine
@@ -464,7 +462,7 @@ class FrechetDistanceTo(Frechet): # FrechetMeter
464
462
  '''Compute the C{Frechet} distance based on the distance from the
465
463
  point1s' C{LatLon.distanceTo} method, conventionally in C{meter}.
466
464
  '''
467
- _units = _Str_meter
465
+ _units = _unitsBase._Str_meter
468
466
 
469
467
  def __init__(self, point1s, **fraction_name__distanceTo_kwds):
470
468
  '''New L{FrechetDistanceTo} calculator/interpolator.
@@ -500,7 +498,7 @@ class FrechetEquirectangular(Frechet):
500
498
  '''Compute the C{Frechet} distance based on the I{equirectangular}
501
499
  distance in C{radians squared} like function L{pygeodesy.equirectangular}.
502
500
  '''
503
- _units = _Str_radians2
501
+ _units = _unitsBase._Str_radians2
504
502
 
505
503
  def __init__(self, point1s, **fraction_name__adjust_limit_wrap):
506
504
  '''New L{FrechetEquirectangular} calculator/interpolator.
@@ -547,7 +545,7 @@ class FrechetExact(Frechet):
547
545
  '''Compute the C{Frechet} distance based on the I{angular} distance
548
546
  in C{degrees} from method L{GeodesicExact}C{.Inverse}.
549
547
  '''
550
- _units = _Str_degrees
548
+ _units = _unitsBase._Str_degrees
551
549
 
552
550
  def __init__(self, point1s, datum=None, **fraction_name__wrap):
553
551
  '''New L{FrechetExact} calculator/interpolator.
@@ -576,7 +574,7 @@ class FrechetFlatLocal(_FrechetMeterRadians):
576
574
  '''Compute the C{Frechet} distance based on the I{angular} distance in
577
575
  C{radians squared} like function L{pygeodesy.flatLocal_}/L{pygeodesy.hubeny}.
578
576
  '''
579
- _units_ = _Str_radians2 # see L{flatLocal_}
577
+ _units_ = _unitsBase._Str_radians2 # see L{flatLocal_}
580
578
 
581
579
  def __init__(self, point1s, **fraction_name__datum_scaled_wrap):
582
580
  '''New L{FrechetFlatLocal}/L{FrechetHubeny} calculator/interpolator.
@@ -659,7 +657,7 @@ class FrechetKarney(Frechet):
659
657
  <https://GeographicLib.SourceForge.io/Python/doc/code.html>}
660
658
  C{Inverse} method.
661
659
  '''
662
- _units = _Str_degrees
660
+ _units = _unitsBase._Str_degrees
663
661
 
664
662
  def __init__(self, point1s, datum=None, **fraction_name__wrap):
665
663
  '''New L{FrechetKarney} calculator/interpolator.
@@ -845,7 +843,7 @@ class Frechet6Tuple(_NamedTuple):
845
843
  def toUnits(self, **Error_name): # PYCHOK expected
846
844
  '''Overloaded C{_NamedTuple.toUnits} for C{fd} units.
847
845
  '''
848
- U = _xUnit(self.units, Float) # PYCHOK expected
846
+ U = _unitsBase._xUnit(self.units, Float) # PYCHOK expected
849
847
  return _NamedTuple.toUnits(self.reUnit(U), **Error_name) # PYCHOK self
850
848
 
851
849
  # def __gt__(self, other):
pygeodesy/fsums.py CHANGED
@@ -47,7 +47,7 @@ from pygeodesy.streprs import Fmt, fstr, unstr
47
47
  from math import ceil as _ceil, fabs, floor as _floor # PYCHOK used! .ltp
48
48
 
49
49
  __all__ = _ALL_LAZY.fsums
50
- __version__ = '24.06.09'
50
+ __version__ = '24.06.11'
51
51
 
52
52
  _add_op_ = _PLUS_ # in .auxilats.auxAngle
53
53
  _eq_op_ = _EQUAL_ * 2 # _DEQUAL_
@@ -559,7 +559,7 @@ class Fsum(_Named): # sync __methods__ with .vector3dBase.Vector3dBase
559
559
 
560
560
  @note: If B{C{mod}} is given, the result will be an C{integer}
561
561
  L{Fsum} in Python 3+ if this instance C{is_integer} or
562
- set to C{as_integer} and B{C{mod}} is given as C{None}.
562
+ set to C{as_integer} and B{C{mod}} is given and C{None}.
563
563
 
564
564
  @raise OverflowError: Partial C{2sum} overflow.
565
565
 
@@ -1665,7 +1665,7 @@ class Fsum(_Named): # sync __methods__ with .vector3dBase.Vector3dBase
1665
1665
  @raise ResidualError: Non-zero, significant residual or invalid
1666
1666
  B{C{RESIDUAL}}.
1667
1667
 
1668
- @note: If B{C{mod}} is given as C{None}, the result will be an
1668
+ @note: If B{C{mod}} is given and C{None}, the result will be an
1669
1669
  C{integer} L{Fsum} provided this instance C{is_integer}
1670
1670
  or set to C{integer} by an L{Fsum.fint} call.
1671
1671
 
pygeodesy/gars.py CHANGED
@@ -17,20 +17,19 @@ by I{Charles Karney}. See also U{Global Area Reference System
17
17
  from pygeodesy.constants import _off90, _1_over, _0_5, \
18
18
  _1_0 # PYCHOK used!
19
19
  from pygeodesy.dms import parse3llh, Fmt # parseDMS2
20
- from pygeodesy.errors import _ValueError, _xkwds
20
+ from pygeodesy.errors import _ValueError, _xkwds, _xStrError
21
21
  from pygeodesy.interns import NN, _0to9_, _AtoZnoIO_, _COMMA_
22
22
  from pygeodesy.lazily import _ALL_LAZY, _ALL_OTHER
23
23
  from pygeodesy.named import _name__, isstr, Property_RO
24
24
  from pygeodesy.namedTuples import LatLon2Tuple, LatLonPrec3Tuple
25
25
  # from pygeodesy.props import Property_RO # from .named
26
26
  # from pygeodesy.streprs import Fmt # from .dms
27
- from pygeodesy.units import Int_, Lat, Lon, Precision_, Scalar_, \
28
- Str, _xStrError
27
+ from pygeodesy.units import Int_, Lat, Lon, Precision_, Scalar_, Str
29
28
 
30
29
  from math import floor
31
30
 
32
31
  __all__ = _ALL_LAZY.gars
33
- __version__ = '24.05.24'
32
+ __version__ = '24.06.15'
34
33
 
35
34
  _Digits = _0to9_
36
35
  _LatLen = 2