pygeodesy 25.4.8__py2.py3-none-any.whl → 25.5.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 (97) hide show
  1. pygeodesy/__init__.py +36 -31
  2. pygeodesy/__main__.py +3 -3
  3. pygeodesy/albers.py +29 -36
  4. pygeodesy/auxilats/_CX_4.py +2 -2
  5. pygeodesy/auxilats/_CX_6.py +2 -2
  6. pygeodesy/auxilats/_CX_8.py +2 -2
  7. pygeodesy/auxilats/_CX_Rs.py +9 -9
  8. pygeodesy/auxilats/__init__.py +3 -3
  9. pygeodesy/auxilats/__main__.py +8 -6
  10. pygeodesy/auxilats/auxAngle.py +2 -2
  11. pygeodesy/auxilats/auxLat.py +5 -5
  12. pygeodesy/auxilats/auxily.py +5 -3
  13. pygeodesy/azimuthal.py +7 -6
  14. pygeodesy/basics.py +32 -18
  15. pygeodesy/booleans.py +18 -16
  16. pygeodesy/cartesianBase.py +26 -24
  17. pygeodesy/clipy.py +11 -10
  18. pygeodesy/constants.py +11 -10
  19. pygeodesy/css.py +14 -11
  20. pygeodesy/datums.py +8 -8
  21. pygeodesy/deprecated/bases.py +2 -2
  22. pygeodesy/deprecated/classes.py +2 -2
  23. pygeodesy/deprecated/consterns.py +4 -4
  24. pygeodesy/dms.py +8 -8
  25. pygeodesy/ecef.py +22 -29
  26. pygeodesy/ecefLocals.py +186 -0
  27. pygeodesy/elevations.py +9 -8
  28. pygeodesy/ellipsoidalBase.py +19 -8
  29. pygeodesy/ellipsoidalBaseDI.py +17 -15
  30. pygeodesy/ellipsoidalNvector.py +6 -3
  31. pygeodesy/ellipsoidalVincenty.py +4 -1
  32. pygeodesy/ellipsoids.py +186 -164
  33. pygeodesy/elliptic.py +9 -9
  34. pygeodesy/errors.py +44 -43
  35. pygeodesy/etm.py +7 -7
  36. pygeodesy/fmath.py +30 -14
  37. pygeodesy/formy.py +11 -12
  38. pygeodesy/frechet.py +216 -109
  39. pygeodesy/fstats.py +5 -4
  40. pygeodesy/fsums.py +79 -78
  41. pygeodesy/gars.py +4 -3
  42. pygeodesy/geodesici.py +15 -14
  43. pygeodesy/geodesicw.py +34 -32
  44. pygeodesy/geodesicx/__init__.py +1 -1
  45. pygeodesy/geodesicx/__main__.py +11 -9
  46. pygeodesy/geodesicx/gx.py +30 -33
  47. pygeodesy/geodesicx/gxarea.py +2 -2
  48. pygeodesy/geodesicx/gxline.py +5 -5
  49. pygeodesy/geodsolve.py +18 -17
  50. pygeodesy/geohash.py +5 -5
  51. pygeodesy/geoids.py +34 -31
  52. pygeodesy/hausdorff.py +17 -13
  53. pygeodesy/heights.py +2 -4
  54. pygeodesy/internals.py +28 -44
  55. pygeodesy/interns.py +10 -7
  56. pygeodesy/iters.py +8 -8
  57. pygeodesy/karney.py +68 -62
  58. pygeodesy/ktm.py +5 -5
  59. pygeodesy/latlonBase.py +20 -21
  60. pygeodesy/lazily.py +104 -78
  61. pygeodesy/lcc.py +11 -9
  62. pygeodesy/ltp.py +56 -58
  63. pygeodesy/ltpTuples.py +35 -36
  64. pygeodesy/mgrs.py +7 -6
  65. pygeodesy/named.py +48 -177
  66. pygeodesy/nvectorBase.py +7 -7
  67. pygeodesy/osgr.py +9 -8
  68. pygeodesy/points.py +12 -10
  69. pygeodesy/props.py +25 -25
  70. pygeodesy/resections.py +83 -80
  71. pygeodesy/rhumb/__init__.py +1 -1
  72. pygeodesy/rhumb/aux_.py +7 -7
  73. pygeodesy/rhumb/bases.py +22 -20
  74. pygeodesy/rhumb/ekx.py +6 -6
  75. pygeodesy/rhumb/solve.py +15 -15
  76. pygeodesy/solveBase.py +3 -3
  77. pygeodesy/sphericalBase.py +6 -6
  78. pygeodesy/sphericalNvector.py +6 -5
  79. pygeodesy/sphericalTrigonometry.py +8 -7
  80. pygeodesy/streprs.py +14 -14
  81. pygeodesy/trf.py +14 -12
  82. pygeodesy/triaxials.py +29 -26
  83. pygeodesy/units.py +5 -4
  84. pygeodesy/unitsBase.py +5 -4
  85. pygeodesy/ups.py +3 -3
  86. pygeodesy/utily.py +4 -4
  87. pygeodesy/utmups.py +4 -4
  88. pygeodesy/utmupsBase.py +110 -18
  89. pygeodesy/vector2d.py +20 -13
  90. pygeodesy/vector3d.py +7 -6
  91. pygeodesy/webmercator.py +6 -5
  92. pygeodesy/wgrs.py +6 -5
  93. {pygeodesy-25.4.8.dist-info → pygeodesy-25.5.5.dist-info}/METADATA +30 -25
  94. pygeodesy-25.5.5.dist-info/RECORD +119 -0
  95. pygeodesy-25.4.8.dist-info/RECORD +0 -118
  96. {pygeodesy-25.4.8.dist-info → pygeodesy-25.5.5.dist-info}/WHEEL +0 -0
  97. {pygeodesy-25.4.8.dist-info → pygeodesy-25.5.5.dist-info}/top_level.txt +0 -0
@@ -7,34 +7,36 @@ class C{LatLonEllipsoidalBaseDI} and functions.
7
7
  # make sure int/int division yields float quotient, see .basics
8
8
  from __future__ import division as _; del _ # PYCHOK semicolon
9
9
 
10
- from pygeodesy.basics import isLatLon, _xsubclassof
10
+ # from pygeodesy.azimuthal import _Equidistants # _MODS
11
+ from pygeodesy.basics import isLatLon, _xsubclassof, typename
11
12
  from pygeodesy.constants import EPS, MAX, PI, PI2, PI_4, isnear0, isnear1, \
12
13
  _EPSqrt as _TOL, _0_0, _0_01, _1_0, _1_5, _3_0
13
14
  # from pygeodesy.dms import F_DMS # _MODS
14
15
  from pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase, _TOL_M, property_RO
15
- from pygeodesy.errors import _AssertionError, IntersectionError, _IsnotError, \
16
- _or, _ValueError, _xellipsoidal, _xError, _xkwds_not
16
+ from pygeodesy.errors import _AssertionError, IntersectionError, _IsnotError, _or, \
17
+ _ValueError, _xellipsoidal, _xError, _xkwds_not
17
18
  from pygeodesy.fmath import favg, fmean_
18
19
  from pygeodesy.fsums import Fmt, fsumf_
19
20
  from pygeodesy.formy import _isequalTo, opposing, _radical2
20
- from pygeodesy.interns import _antipodal_, _concentric_, _ellipsoidal_, \
21
- _exceed_PI_radians_, _low_, _near_, \
22
- _SPACE_, _too_
21
+ # from pygeodesy.geodesicw import _Intersecant2, _PlumbTo # _MODS
22
+ # from pygeodesy.internals import typename # from .basics
23
+ from pygeodesy.interns import _antipodal_, _concentric_, _ellipsoidal_, _low_, \
24
+ _exceed_PI_radians_, _near_, _SPACE_, _too_
23
25
  from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS
24
- from pygeodesy.namedTuples import Bearing2Tuple, Destination2Tuple, \
25
- Intersection3Tuple, NearestOn2Tuple, \
26
- NearestOn8Tuple, _LL4Tuple
26
+ from pygeodesy.namedTuples import Bearing2Tuple, Destination2Tuple, Intersection3Tuple, \
27
+ NearestOn2Tuple, NearestOn8Tuple, _LL4Tuple
27
28
  # from pygeodesy.props import property_RO # from .ellipsoidalBase
29
+ # from pygeodesy.sphericalNvector import _intersects2 # _MODS
30
+ # from pygeodesy.sphericalTrigonometry import _intersect, LatLon # _MODS
28
31
  # from pygeodesy.streprs import Fmt # from .fsums
29
- from pygeodesy.units import _fi_j2, _isDegrees, _isHeight, _isRadius, \
30
- Radius_, Scalar
31
- from pygeodesy.utily import m2km, unroll180, _unrollon, _unrollon3, \
32
- _Wrap, wrap360
32
+ from pygeodesy.units import _fi_j2, _isDegrees, _isHeight, _isRadius, Radius_, Scalar
33
+ from pygeodesy.utily import m2km, unroll180, _unrollon, _unrollon3, _Wrap, wrap360
34
+ # from pygeodesy.vector3d import _intersects2, _intersect3d3, _nearestOn2, Vector3d # _MODS
33
35
 
34
36
  from math import degrees, radians
35
37
 
36
38
  __all__ = _ALL_LAZY.ellipsoidalBaseDI
37
- __version__ = '24.11.04'
39
+ __version__ = '25.04.21'
38
40
 
39
41
  _polar__ = 'polar?'
40
42
  _TRIPS = 33 # _intersect3, _intersects2, _nearestOn interations, 6..9 sufficient?
@@ -390,7 +392,7 @@ class LatLonEllipsoidalBaseDI(LatLonEllipsoidalBase):
390
392
 
391
393
  f, j = _fi_j2(f, len(Ps)) # like .vector3d.nearestOn6
392
394
 
393
- n = self.nearestOn8.__name__ # _DUNDER_nameof
395
+ n = typename(self)
394
396
  c.rename(n)
395
397
  if s is not c:
396
398
  s = s.copy(name=n)
@@ -23,14 +23,17 @@ The Journal of Navigation (2010), vol 63, nr 3, pp 395-417.
23
23
  # make sure int/int division yields float quotient, see .basics
24
24
  from __future__ import division as _; del _ # PYCHOK semicolon
25
25
 
26
- from pygeodesy.basics import issubclassof, map2, _xinstanceof, _xsubclassof
26
+ from pygeodesy.basics import _isin, issubclassof, map2, _xinstanceof, \
27
+ _xsubclassof
27
28
  from pygeodesy.datums import _earth_ellipsoid, _ellipsoidal_datum, _WGS84
28
29
  # from pygeodesy.dms import F_D, toDMS # _MODS
30
+ # from pygeodesy.ecef import EcefVeness # _MODS
29
31
  from pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, \
30
32
  _nearestOn, LatLonEllipsoidalBase, \
31
33
  _TOL_M, _Wrap
32
34
  from pygeodesy.errors import _xkwds, _xkwds_pop2
33
35
  # from pygeodesy.fmath import fdot # from .nvectorBase
36
+ # from pygeodesy.formy import _isequalTo # _MODS
34
37
  from pygeodesy.interns import _Nv00_, _COMMASPACE_, _pole_ # PYCHOK used!
35
38
  from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER
36
39
  # from pygeodesy.ltp import Ltp # _MODS
@@ -48,7 +51,7 @@ from pygeodesy.units import Bearing, Distance, Height, Scalar
48
51
  # from math import fabs # from .nvectorBase
49
52
 
50
53
  __all__ = _ALL_LAZY.ellipsoidalNvector
51
- __version__ = '24.10.19'
54
+ __version__ = '25.04.21'
52
55
 
53
56
 
54
57
  class Ned(_Ned):
@@ -453,7 +456,7 @@ class Nvector(NvectorBase):
453
456
  @raise TypeError: If B{C{datum}} is not a L{Datum}.
454
457
  '''
455
458
  NvectorBase.__init__(self, x_xyz, y=y, z=z, h=h, ll=ll, **name)
456
- if datum not in (None, self._datum):
459
+ if not _isin(datum, None, self._datum):
457
460
  self._datum = _ellipsoidal_datum(datum, **name)
458
461
 
459
462
  @Property_RO
@@ -51,10 +51,13 @@ or by converting to anothor datum:
51
51
  from __future__ import division as _; del _ # PYCHOK semicolon
52
52
 
53
53
  from pygeodesy.constants import EPS, EPS0, _0_0, _1_0, _2_0, _3_0, _4_0, _6_0
54
+ # from pygeodesy.ecef import EcefVeness # _MODS
54
55
  from pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, _nearestOn
55
56
  from pygeodesy.ellipsoidalBaseDI import LatLonEllipsoidalBaseDI, \
56
57
  _intersection3, _intersections2, \
57
58
  _TOL_M, intersecant2
59
+ # from pygeodesy.ellipsoidalExact import areaOf, perimeterOf # _MODS
60
+ # from pygeodesy.ellipsoidalKarney import areaOf, perimeterOf # _MODS
58
61
  from pygeodesy.errors import _and, _ValueError, _xkwds
59
62
  from pygeodesy.fmath import Fpolynomial, hypot, hypot1
60
63
  from pygeodesy.interns import _ambiguous_, _antipodal_, _COLONSPACE_, \
@@ -73,7 +76,7 @@ from pygeodesy.utily import atan2, atan2b, atan2d, sincos2, sincos2d, \
73
76
  from math import cos, degrees, fabs, radians, tan as _tan
74
77
 
75
78
  __all__ = _ALL_LAZY.ellipsoidalVincenty
76
- __version__ = '24.11.26'
79
+ __version__ = '25.04.21'
77
80
 
78
81
  _antipodal_to_ = _SPACE_(_antipodal_, _to_)
79
82