pygeodesy 24.5.6__py2.py3-none-any.whl → 24.5.15__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 (51) hide show
  1. {PyGeodesy-24.5.6.dist-info → PyGeodesy-24.5.15.dist-info}/METADATA +4 -4
  2. {PyGeodesy-24.5.6.dist-info → PyGeodesy-24.5.15.dist-info}/RECORD +51 -50
  3. pygeodesy/__init__.py +18 -14
  4. pygeodesy/__main__.py +9 -10
  5. pygeodesy/albers.py +2 -2
  6. pygeodesy/auxilats/__main__.py +7 -10
  7. pygeodesy/auxilats/auxLat.py +2 -1
  8. pygeodesy/basics.py +161 -165
  9. pygeodesy/booleans.py +4 -4
  10. pygeodesy/constants.py +8 -6
  11. pygeodesy/datums.py +9 -8
  12. pygeodesy/ecef.py +5 -4
  13. pygeodesy/elevations.py +2 -2
  14. pygeodesy/ellipsoidalBaseDI.py +7 -5
  15. pygeodesy/elliptic.py +10 -7
  16. pygeodesy/errors.py +6 -6
  17. pygeodesy/etm.py +3 -2
  18. pygeodesy/fmath.py +14 -13
  19. pygeodesy/fstats.py +281 -219
  20. pygeodesy/fsums.py +133 -104
  21. pygeodesy/geodesicw.py +14 -14
  22. pygeodesy/geodesicx/__main__.py +4 -4
  23. pygeodesy/geodesicx/gxarea.py +4 -4
  24. pygeodesy/geodsolve.py +3 -2
  25. pygeodesy/geoids.py +6 -6
  26. pygeodesy/heights.py +4 -4
  27. pygeodesy/internals.py +571 -0
  28. pygeodesy/interns.py +5 -202
  29. pygeodesy/iters.py +3 -2
  30. pygeodesy/karney.py +4 -4
  31. pygeodesy/ktm.py +7 -7
  32. pygeodesy/lazily.py +139 -217
  33. pygeodesy/mgrs.py +3 -2
  34. pygeodesy/named.py +13 -10
  35. pygeodesy/nvectorBase.py +4 -3
  36. pygeodesy/osgr.py +14 -12
  37. pygeodesy/points.py +5 -5
  38. pygeodesy/props.py +7 -7
  39. pygeodesy/rhumb/bases.py +3 -2
  40. pygeodesy/rhumb/solve.py +2 -2
  41. pygeodesy/solveBase.py +3 -2
  42. pygeodesy/streprs.py +5 -4
  43. pygeodesy/trf.py +4 -4
  44. pygeodesy/units.py +15 -17
  45. pygeodesy/ups.py +7 -6
  46. pygeodesy/utily.py +4 -4
  47. pygeodesy/utm.py +5 -4
  48. pygeodesy/utmupsBase.py +4 -3
  49. pygeodesy/vector3dBase.py +2 -1
  50. {PyGeodesy-24.5.6.dist-info → PyGeodesy-24.5.15.dist-info}/WHEEL +0 -0
  51. {PyGeodesy-24.5.6.dist-info → PyGeodesy-24.5.15.dist-info}/top_level.txt +0 -0
pygeodesy/geodesicw.py CHANGED
@@ -20,8 +20,8 @@ from pygeodesy.datums import _earth_datum, _WGS84, _EWGS84
20
20
  # from pygeodesy.ellipsoids import _EWGS84 # from .datums
21
21
  from pygeodesy.errors import IntersectionError, GeodesicError, _xkwds_pop2
22
22
  from pygeodesy.fsums import Fsum, Fmt, unstr
23
- from pygeodesy.interns import NN, _DOT_, _dunder_nameof, _SPACE_, \
24
- _to_, _too_,_under
23
+ from pygeodesy.internals import _dunder_nameof, _under
24
+ from pygeodesy.interns import NN, _DOT_, _SPACE_, _to_, _too_
25
25
  from pygeodesy.karney import _atan2d, Caps, Direct9Tuple, GDict, \
26
26
  _kWrapped, Inverse10Tuple
27
27
  from pygeodesy.latlonBase import LatLonBase as _LLB, F_D, Radius_
@@ -37,7 +37,7 @@ from contextlib import contextmanager
37
37
  # from math import fabs # from .utily
38
38
 
39
39
  __all__ = _ALL_LAZY.geodesicw
40
- __version__ = '24.04.07'
40
+ __version__ = '24.05.14'
41
41
 
42
42
  _plumb_ = 'plumb'
43
43
  _TRIPS = 65
@@ -353,17 +353,17 @@ class _gWrapped(_kWrapped):
353
353
  @arg radius: Radius of the circle (C{meter}, conventionally).
354
354
  @kwarg tol: Convergence tolerance (C{scalar}).
355
355
 
356
- @return: 2-Tuple C{(P, Q)} with both intersections (representing a
357
- geodesic chord), each a L{GDict} from method L{Position}
358
- extended to 14 items by C{lon0, lat0, azi0, a02, s02, at}
359
- with the circle center C{lat0}, C{lon0}, azimuth C{azi0} at,
360
- distance C{a02} in C{degrees} and C{s02} in C{meter} along
361
- the geodesic from the circle center to the intersection
362
- C{lat2}, C{lon2} and the angle C{at} between the geodesic
363
- and this line at the intersection. The I{geodesic} azimuth
364
- at the intersection is C{(at + azi2)}. If this line is
365
- tangential to the circle, both intersections are the same
366
- L{GDict} instance.
356
+ @return: 2-Tuple C{(P, Q)} with both intersections points (representing
357
+ a geodesic chord), each a L{GDict} from method L{Position} and
358
+ extended to 14 items C{lat1, lon1, azi1, lat2, lon2, azi2, a12,
359
+ s12, lat0, lon0, azi0, a02, s02, at} with the circle center
360
+ C{lat0}, C{lon0}, azimuth C{azi0} at the intersection, distance
361
+ C{a02} in C{degrees} and C{s02} in C{meter} along the geodesic
362
+ from the circle center to the intersection C{lat2, lon2} and
363
+ the angle C{at} between the geodesic and this line at the
364
+ intersection. The I{geodesic} azimuth at the intersection is
365
+ C{(at + azi2)}. If this line is tangential to the circle, both
366
+ intersections are the same L{GDict} instance.
367
367
 
368
368
  @raise IntersectionError: The circle and this geodesic line do not
369
369
  intersect.
@@ -5,7 +5,7 @@ u'''Print L{geodesicx} version, etc. using C{python -m pygeodesy.geodesicx}.
5
5
  '''
6
6
 
7
7
  __all__ = ()
8
- __version__ = '23.06.19'
8
+ __version__ = '24.05.13'
9
9
 
10
10
 
11
11
  def _C4stats(nC4=None): # PYCHOK no cover
@@ -28,8 +28,8 @@ def _main(): # PYCHOK no cover
28
28
  try:
29
29
  from pygeodesy import geodesicx as _gx, GeodesicError, \
30
30
  GeodesicSolve, printf, pygeodesy_abspath
31
- from pygeodesy.interns import _COMMASPACE_, _DOT_, _pythonarchine, \
32
- _SPACE_, _usage, _version_
31
+ from pygeodesy.internals import _Pythonarchine, _usage
32
+ from pygeodesy.interns import _COMMASPACE_, _DOT_, _SPACE_, _version_
33
33
  from pygeodesy.streprs import Fmt
34
34
 
35
35
  def _dot_attr(name, value):
@@ -41,7 +41,7 @@ def _main(): # PYCHOK no cover
41
41
  def _name_version(pkg):
42
42
  return _SPACE_(pkg.__name__, pkg.__version__)
43
43
 
44
- v = _pythonarchine()
44
+ v = _Pythonarchine()
45
45
  try:
46
46
  import geographiclib
47
47
  v.append(_name_version(geographiclib))
@@ -27,10 +27,10 @@ from pygeodesy.named import ADict, callername, _NamedBase, pairs
27
27
  from pygeodesy.props import Property, Property_RO, property_RO
28
28
  # from pygeodesy.streprs import pairs # from .named
29
29
 
30
- from math import fmod
30
+ from math import fmod as _fmod
31
31
 
32
32
  __all__ = ()
33
- __version__ = '24.03.24'
33
+ __version__ = '24.05.10'
34
34
 
35
35
 
36
36
  class GeodesicAreaExact(_NamedBase):
@@ -198,8 +198,8 @@ class GeodesicAreaExact(_NamedBase):
198
198
  # Since we only need the parity of the result we
199
199
  # can use std::remquo but this is buggy with g++
200
200
  # 4.8.3 and requires C++11. So instead we do:
201
- lon1 = fmod( lon1, _720_0) # r.lon1
202
- lon2 = fmod(r.lon2, _720_0)
201
+ lon1 = _fmod( lon1, _720_0) # r.lon1
202
+ lon2 = _fmod(r.lon2, _720_0)
203
203
  # int(True) == 1, int(False) == 0
204
204
  r.set_(xing=int(lon2 > 360 or -360 < lon2 <= 0) -
205
205
  int(lon1 > 360 or -360 < lon1 <= 0))
pygeodesy/geodsolve.py CHANGED
@@ -12,6 +12,7 @@ of the C{GeodSolve} executable.
12
12
  from pygeodesy.basics import _xinstanceof
13
13
  # from pygeodesy.errors import _xkwds # from .karney
14
14
  # from pygeodesy.geodesicx import GeodesicAreaExact # _MODS
15
+ # from pygeodesy.internals import printf # from .lazily
15
16
  from pygeodesy.interns import NN, _a12_, _azi1_, _azi2_, \
16
17
  _lat1_, _lat2_, _lon1_, _lon2_, _m12_, \
17
18
  _M12_, _M21_, _s12_, _S12_, _UNDER_
@@ -19,14 +20,14 @@ from pygeodesy.interns import _UNUSED_, _not_ # PYCHOK used!
19
20
  from pygeodesy.karney import _Azi, Caps, _Deg, GeodesicError, _GTuple, \
20
21
  _Pass, _Lat, _Lon, _M, _M2, _sincos2d, _xkwds
21
22
  from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, \
22
- _PYGEODESY_GEODSOLVE_, _getenv, printf
23
+ _getenv, _PYGEODESY_GEODSOLVE_, printf
23
24
  from pygeodesy.namedTuples import Destination3Tuple, Distance3Tuple
24
25
  from pygeodesy.props import Property, Property_RO
25
26
  from pygeodesy.solveBase import _SolveBase, _SolveLineBase
26
27
  from pygeodesy.utily import _unrollon, _Wrap, wrap360
27
28
 
28
29
  __all__ = _ALL_LAZY.geodsolve
29
- __version__ = '24.04.07'
30
+ __version__ = '24.05.13'
30
31
 
31
32
 
32
33
  class GeodSolve12Tuple(_GTuple):
pygeodesy/geoids.py CHANGED
@@ -92,12 +92,12 @@ from pygeodesy.fmath import favg, Fdot, fdot, Fhorner, frange
92
92
  # from pygoedesy.formy import heightOrthometric # _MODS
93
93
  from pygeodesy.heights import _as_llis2, _ascalar, _height_called, HeightError, \
94
94
  _HeightsBase, _ellipsoidal_datum, _Wrap
95
+ # from pygeodesy.internals import _version2 # _MODS
95
96
  from pygeodesy.interns import MISSING, NN, _4_, _COLONSPACE_, _COMMASPACE_, \
96
97
  _cubic_, _E_, _height_, _in_, _kind_, _knots_, \
97
98
  _lat_, _linear_, _lon_, _mean_, _N_, _n_a_, \
98
- _not_, _numpy_, _on_, _outside_, _S_, _s_, \
99
- _scipy_, _SPACE_, _stdev_, _supported_, _tbd_, \
100
- _W_, _width_, _version2
99
+ _not_, _numpy_, _on_, _outside_, _S_, _s_, _scipy_, \
100
+ _SPACE_, _stdev_, _supported_, _tbd_, _W_, _width_
101
101
  from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS
102
102
  from pygeodesy.named import _Named, _NamedTuple
103
103
  # from pygeodesy.namedTuples import LatLon3Tuple # _MODS
@@ -118,7 +118,7 @@ except ImportError: # Python 3+
118
118
  from io import BytesIO as _BytesIO # PYCHOK expected
119
119
 
120
120
  __all__ = _ALL_LAZY.geoids
121
- __version__ = '24.04.07'
121
+ __version__ = '24.05.13'
122
122
 
123
123
  _assert_ = 'assert'
124
124
  _bHASH_ = b'#'
@@ -1362,7 +1362,7 @@ class GeoidPGM(_GeoidBase):
1362
1362
  self._pgm = p = _PGM(g, pgm=egm_pgm, itemsize=self.u2B, sizeB=self.sizeB)
1363
1363
  if crop:
1364
1364
  g = p._cropped(g, abs(kind) + 1, *self._swne(crop))
1365
- if _version2(np.__version__) < (1, 9):
1365
+ if _MODS.internals._version2(np.__version__) < (1, 9):
1366
1366
  g = open(g.name, _rb_) # reopen tempfile for numpy 1.8.0-
1367
1367
  self._cropped = True
1368
1368
  try:
@@ -1722,7 +1722,7 @@ __all__ += _ALL_DOCS(_GeoidBase)
1722
1722
 
1723
1723
  if __name__ == '__main__':
1724
1724
 
1725
- from pygeodesy.lazily import printf, _sys
1725
+ from pygeodesy.internals import printf, _sys
1726
1726
 
1727
1727
  _crop = ()
1728
1728
  _GeoidEGM = GeoidKarney
pygeodesy/heights.py CHANGED
@@ -77,9 +77,9 @@ from pygeodesy.errors import _AssertionError, LenError, PointsError, \
77
77
  # from pygeodesy.formy import cosineAndoyerLambert, cosineForsytheAndoyerLambert, \
78
78
  # cosineLaw, equirectangular_, euclidean, flatLocal, \
79
79
  # flatPolar, haversine, thomas, vincentys # _MODS
80
+ # from pygeodesy.internals import _version2 # _MODS
80
81
  from pygeodesy.interns import NN, _COMMASPACE_, _cubic_, _insufficient_, _knots_, \
81
- _linear_, _NOTEQUAL_, _PLUS_, _scipy_, _SPACE_, \
82
- _STAR_, _version2
82
+ _linear_, _NOTEQUAL_, _PLUS_, _scipy_, _SPACE_, _STAR_
83
83
  from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS
84
84
  from pygeodesy.named import _Named
85
85
  from pygeodesy.points import _distanceTo, LatLon_, Fmt, radians, _Wrap
@@ -91,7 +91,7 @@ from pygeodesy.units import _isDegrees, Float_, Int_
91
91
  # from math import radians # from .points
92
92
 
93
93
  __all__ = _ALL_LAZY.heights
94
- __version__ = '24.04.07'
94
+ __version__ = '24.05.13'
95
95
 
96
96
  _error_ = 'error'
97
97
  _llis_ = 'llis'
@@ -332,7 +332,7 @@ class _HeightsBase(_HeightBase): # in .geoids
332
332
  def _scipy_version(self, **n):
333
333
  '''Get the C{scipy} version as 2- or 3-tuple C{(major, minor, micro)}.
334
334
  '''
335
- return _version2(self.scipy.version.version, **n)
335
+ return _MODS.internals._version2(self.scipy.version.version, **n)
336
336
 
337
337
  def _xyhs3(self, knots, **wrap):
338
338
  # convert knot C{LatLon}s to tuples or C{NumPy} arrays and C{SciPy} sphericals