pygeodesy 24.8.4__py2.py3-none-any.whl → 24.9.9__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 (76) hide show
  1. {PyGeodesy-24.8.4.dist-info → PyGeodesy-24.9.9.dist-info}/METADATA +17 -16
  2. PyGeodesy-24.9.9.dist-info/RECORD +118 -0
  3. {PyGeodesy-24.8.4.dist-info → PyGeodesy-24.9.9.dist-info}/WHEEL +1 -1
  4. pygeodesy/__init__.py +23 -23
  5. pygeodesy/__main__.py +46 -47
  6. pygeodesy/auxilats/_CX_4.py +104 -181
  7. pygeodesy/auxilats/_CX_6.py +152 -277
  8. pygeodesy/auxilats/_CX_8.py +211 -438
  9. pygeodesy/auxilats/_CX_Rs.py +222 -0
  10. pygeodesy/auxilats/__init__.py +2 -2
  11. pygeodesy/auxilats/__main__.py +30 -38
  12. pygeodesy/auxilats/auxDST.py +2 -2
  13. pygeodesy/auxilats/auxLat.py +28 -36
  14. pygeodesy/auxilats/auxily.py +30 -50
  15. pygeodesy/basics.py +18 -7
  16. pygeodesy/booleans.py +10 -11
  17. pygeodesy/cartesianBase.py +5 -5
  18. pygeodesy/constants.py +35 -34
  19. pygeodesy/ellipsoidalBase.py +18 -15
  20. pygeodesy/ellipsoidalExact.py +2 -2
  21. pygeodesy/ellipsoidalGeodSolve.py +2 -2
  22. pygeodesy/ellipsoidalKarney.py +2 -2
  23. pygeodesy/ellipsoidalNvector.py +2 -2
  24. pygeodesy/ellipsoidalVincenty.py +7 -6
  25. pygeodesy/elliptic.py +154 -88
  26. pygeodesy/epsg.py +3 -3
  27. pygeodesy/etm.py +71 -59
  28. pygeodesy/fmath.py +99 -90
  29. pygeodesy/fsums.py +201 -14
  30. pygeodesy/gars.py +9 -8
  31. pygeodesy/geodesici.py +6 -5
  32. pygeodesy/geodesicx/_C4_24.py +1 -3
  33. pygeodesy/geodesicx/_C4_27.py +1 -3
  34. pygeodesy/geodesicx/_C4_30.py +1 -3
  35. pygeodesy/geodesicx/__init__.py +1 -1
  36. pygeodesy/geodesicx/__main__.py +44 -46
  37. pygeodesy/geodesicx/gx.py +3 -3
  38. pygeodesy/geodesicx/gxarea.py +5 -5
  39. pygeodesy/geodesicx/gxbases.py +32 -18
  40. pygeodesy/geodsolve.py +3 -3
  41. pygeodesy/geohash.py +18 -11
  42. pygeodesy/geoids.py +293 -315
  43. pygeodesy/heights.py +150 -158
  44. pygeodesy/internals.py +70 -9
  45. pygeodesy/interns.py +4 -4
  46. pygeodesy/karney.py +83 -60
  47. pygeodesy/ktm.py +4 -4
  48. pygeodesy/latlonBase.py +13 -7
  49. pygeodesy/lazily.py +13 -8
  50. pygeodesy/ltp.py +5 -6
  51. pygeodesy/ltpTuples.py +7 -1
  52. pygeodesy/mgrs.py +47 -42
  53. pygeodesy/named.py +8 -4
  54. pygeodesy/namedTuples.py +14 -1
  55. pygeodesy/osgr.py +7 -7
  56. pygeodesy/points.py +2 -2
  57. pygeodesy/props.py +7 -6
  58. pygeodesy/resections.py +7 -7
  59. pygeodesy/rhumb/__init__.py +1 -1
  60. pygeodesy/rhumb/aux_.py +42 -60
  61. pygeodesy/rhumb/solve.py +3 -3
  62. pygeodesy/simplify.py +10 -10
  63. pygeodesy/sphericalBase.py +3 -3
  64. pygeodesy/sphericalTrigonometry.py +2 -2
  65. pygeodesy/streprs.py +3 -3
  66. pygeodesy/triaxials.py +207 -201
  67. pygeodesy/units.py +3 -3
  68. pygeodesy/unitsBase.py +4 -4
  69. pygeodesy/utmupsBase.py +3 -3
  70. pygeodesy/vector2d.py +158 -51
  71. pygeodesy/vector3d.py +13 -52
  72. pygeodesy/vector3dBase.py +81 -63
  73. pygeodesy/webmercator.py +3 -3
  74. pygeodesy/wgrs.py +20 -22
  75. PyGeodesy-24.8.4.dist-info/RECORD +0 -117
  76. {PyGeodesy-24.8.4.dist-info → PyGeodesy-24.9.9.dist-info}/top_level.txt +0 -0
pygeodesy/booleans.py CHANGED
@@ -24,10 +24,10 @@ from pygeodesy.errors import ClipError, _IsnotError, _TypeError, \
24
24
  from pygeodesy.fmath import favg, hypot, hypot2
25
25
  # from pygeodesy.fsums import fsum1 # _MODS
26
26
  from pygeodesy.interns import NN, _BANG_, _clip_, _clipid_, _COMMASPACE_, \
27
- _composite_, _DOT_, _e_, _ELLIPSIS_, _few_, \
28
- _height_, _lat_, _LatLon_, _lon_, _not_, \
29
- _points_, _SPACE_, _too_, _X_, _x_, \
30
- _B_, _d_, _R_ # PYCHOK used!
27
+ _composite_, _DOT_, _duplicate_, _e_, \
28
+ _ELLIPSIS_, _few_, _height_, _lat_, _LatLon_, \
29
+ _lon_, _not_, _points_, _SPACE_, _too_, _X_, \
30
+ _x_, _B_, _d_, _R_ # PYCHOK used!
31
31
  from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS
32
32
  from pygeodesy.latlonBase import LatLonBase, \
33
33
  LatLon2Tuple, Property_RO, property_RO
@@ -43,7 +43,7 @@ from pygeodesy.utily import fabs, _unrollon, _Wrap
43
43
  # from math import fabs # from .utily
44
44
 
45
45
  __all__ = _ALL_LAZY.booleans
46
- __version__ = '24.06.15'
46
+ __version__ = '24.08.30'
47
47
 
48
48
  _0_EPS = EPS # near-zero, positive
49
49
  _EPS_0 = -EPS # near-zero, negative
@@ -51,12 +51,11 @@ _1_EPS = _1_0 + EPS # near-one, over
51
51
  _EPS_1 = _1_0 - EPS # near-one, under
52
52
  _10EPS = EPS * 10 # see ._2Abs, ._10eps
53
53
 
54
- _alpha_ = 'alpha'
55
- _boolean_ = 'boolean'
56
- _case_ = 'case'
57
- _corners_ = 'corners'
58
- _duplicate_ = 'duplicate'
59
- _open_ = 'open'
54
+ _alpha_ = 'alpha'
55
+ _boolean_ = 'boolean'
56
+ _case_ = 'case'
57
+ _corners_ = 'corners'
58
+ _open_ = 'open'
60
59
 
61
60
 
62
61
  def _Enum(txt, enum): # PYCHOK unused
@@ -43,7 +43,7 @@ from pygeodesy.vector3d import Vector3d, _xyzhdlln4
43
43
  # from math import atan2, degrees, fabs, radians, sqrt # from .fmath, .utily
44
44
 
45
45
  __all__ = _ALL_LAZY.cartesianBase
46
- __version__ = '24.07.29'
46
+ __version__ = '24.08.18'
47
47
 
48
48
  _r_ = 'r'
49
49
  _theta_ = 'theta'
@@ -342,9 +342,9 @@ class CartesianBase(Vector3d):
342
342
  I{overriding} this datum (L{Datum}, L{Ellipsoid},
343
343
  L{Ellipsoid2}, L{a_f2Tuple}, L{Triaxial}, L{Triaxial_},
344
344
  L{JacobiConformal} or C{meter}, conventionally).
345
- @kwarg normal: If C{True} the projection is the nearest point on the
345
+ @kwarg normal: If C{True}, the projection is the nearest point on the
346
346
  ellipsoid's surface, otherwise the intersection of the
347
- radial line to the ellipsoid's center and the surface.
347
+ radial line to the ellipsoid's center and surface C{bool}).
348
348
  @kwarg Cartesian_and_kwds: Optional C{B{Cartesian}=None} class to return
349
349
  the I{projection} and additional B{C{Cartesian}} keyword
350
350
  arguments.
@@ -437,7 +437,7 @@ class CartesianBase(Vector3d):
437
437
  # <https://GitHub.com/pbrod/nvector>/src/nvector/core.py>
438
438
  # _equation23 and <https://www.NavLab.net/nvector>
439
439
  E = datum.ellipsoid
440
- x, y, z = self.xyz
440
+ x, y, z = self.xyz3
441
441
 
442
442
  # Kenneth Gade eqn 23
443
443
  p = hypot2(x, y) * E.a2_
@@ -836,7 +836,7 @@ class CartesianBase(Vector3d):
836
836
  # if inverse and d != _WGS84:
837
837
  # raise _ValueError(inverse=inverse, datum=d,
838
838
  # txt_not_=_WGS84.name)
839
- xyz = transform.transform(*self.xyz, inverse=inverse)
839
+ xyz = transform.transform(*self.xyz3, inverse=inverse)
840
840
  c = self.dup(xyz=xyz, datum=datum or self.datum)
841
841
  return c
842
842
 
pygeodesy/constants.py CHANGED
@@ -17,14 +17,14 @@ from pygeodesy.interns import _INF_, _NAN_, _UNDER_
17
17
  # from pygeodesy.streprs import Fmt # from .unitsBase
18
18
  from pygeodesy.unitsBase import Float, Int, Radius, _ALL_LAZY, Fmt
19
19
 
20
- from math import fabs, isinf, isnan, pi as _PI, sqrt
20
+ from math import fabs, isinf, isnan, pi as _pi, sqrt
21
21
  try:
22
22
  from math import inf as _inf, nan as _nan # PYCHOK Python 3+
23
23
  except ImportError: # Python 2-
24
24
  _inf, _nan = float(_INF_), float(_NAN_)
25
25
 
26
26
  __all__ = _ALL_LAZY.constants
27
- __version__ = '24.05.29'
27
+ __version__ = '24.08.26'
28
28
 
29
29
 
30
30
  def _copysign_0_0(y):
@@ -100,7 +100,7 @@ def float0_(*xs):
100
100
  yield float(x) if x else _0_0
101
101
 
102
102
 
103
- def _float0(f): # in .resections, .vector3dBase, ...
103
+ def _float0(f): # in .auxilats.auxily, .resections, .vector3dBase, ...
104
104
  '''(INTERNAL) Return C{float(B{f})} or C{INT0}.
105
105
  '''
106
106
  if f:
@@ -181,6 +181,7 @@ _10_0 = _float( 10) # PYCHOK expected
181
181
  _16_0 = _float( 16) # PYCHOK expected
182
182
  _32_0 = _float( 32) # PYCHOK expected
183
183
  _60_0 = _float( 60) # PYCHOK expected
184
+ _64_0 = _float( 64) # PYCHOK expected
184
185
  _90_0 = _float( 90) # PYCHOK expected
185
186
  _100_0 = _float( 100) # PYCHOK expected
186
187
  _180_0 = _float( 180) # PYCHOK expected
@@ -224,30 +225,30 @@ except ImportError: # PYCHOK no cover
224
225
  MIN_EXP = Int(MIN_EXP =_log2(MIN)) # -307 base 10
225
226
  # RADIX = Int(Radix =2) # base
226
227
 
227
- EPS0 = _Float( EPS0 = EPS**2) # PYCHOK near-/non-zero comparison 4.930381e-32, or EPS or EPS_2
228
- EPS02 = _Float( EPS02 = EPS**4) # PYCHOK near-zero-squared comparison 2.430865e-63
229
- EPS_2 = _Float( EPS_2 = EPS / _2_0) # PYCHOK ≈ 1.110223024625e-16
230
- EPS1 = _Float( EPS1 =_1_0 - EPS) # PYCHOK ≈ 0.9999999999999998
231
- EPS2 = _Float( EPS2 = EPS * _2_0) # PYCHOK ≈ 4.440892098501e-16
232
- EPS4 = _Float( EPS4 = EPS * _4_0) # PYCHOK ≈ 8.881784197001e-16
233
- # _1EPS = _Float(_1EPS =_1_0 + EPS) # PYCHOK ≈ 1.0000000000000002
234
- _1_EPS = _Float(_1_EPS =_1_0 / EPS) # PYCHOK = 4503599627370496.0
235
- # _2_EPS = _Float(_2_EPS =_2_0 / EPS) # PYCHOK = 9007199254740992.0
236
- _EPS2e4 = _Float(_EPS2e4 = EPS2 * 1.e4) # PYCHOK ≈ 4.440892098501e-12
237
- _EPS4e8 = _Float(_EPS4e8 = EPS4 * 1.e8) # PYCHOK ≈ 8.881784197001e-08
238
- _EPSmin = _Float(_EPSmin = sqrt(MIN)) # PYCHOK = 1.49166814624e-154
239
- _EPSqrt = _Float(_EPSqrt = sqrt(EPS)) # PYCHOK = 1.49011611938e5-08
240
- _EPStol = _Float(_EPStol =_EPSqrt * _0_1) # PYCHOK = 1.49011611938e5-09 == sqrt(EPS * _0_01)
241
-
242
- _89_999_ = _Float(_89_999_= EPS1 * _90_0) # just below 90.0
228
+ EPS0 = _Float( EPS0 = EPS**2) # PYCHOK near-/non-zero comparison 4.930381e-32, or EPS or EPS_2
229
+ EPS02 = _Float( EPS02 = EPS**4) # PYCHOK near-zero-squared comparison 2.430865e-63
230
+ EPS_2 = _Float( EPS_2 = EPS / _2_0) # PYCHOK ≈ 1.110223024625e-16
231
+ EPS1 = _Float( EPS1 =_1_0 - EPS) # PYCHOK ≈ 0.9999999999999998
232
+ EPS2 = _Float( EPS2 = EPS * _2_0) # PYCHOK ≈ 4.440892098501e-16
233
+ EPS4 = _Float( EPS4 = EPS * _4_0) # PYCHOK ≈ 8.881784197001e-16
234
+ # _1EPS = _Float(_1EPS =_1_0 + EPS) # PYCHOK ≈ 1.0000000000000002
235
+ _1_EPS = _Float(_1_EPS =_1_0 / EPS) # PYCHOK = 4503599627370496.0
236
+ # _2_EPS = _Float(_2_EPS =_2_0 / EPS) # PYCHOK = 9007199254740992.0
237
+ _EPS2e4 = _Float(_EPS2e4= EPS2 * 1.e4) # PYCHOK ≈ 4.440892098501e-12
238
+ _EPS4e8 = _Float(_EPS4e8= EPS4 * 1.e8) # PYCHOK ≈ 8.881784197001e-08
239
+ _EPSjam = _Float(_EPSjam= pow(EPS, 0.75)) # PYCHOK = 1.818989403546e-12
240
+ _EPSmin = _Float(_EPSmin= sqrt(MIN)) # PYCHOK = 1.49166814624e-154
241
+ _EPSqrt = _Float(_EPSqrt= sqrt(EPS)) # PYCHOK = 1.49011611938e5-08
242
+ _EPStol = _Float(_EPStol=_EPSqrt * _0_1) # PYCHOK = 1.49011611938e5-09 == sqrt(EPS * _0_01)
243
+
244
+ _89_999 = _Float(_89_999=_90_0 * EPS1) # just below 90.0
243
245
  # <https://Numbers.Computation.Free.FR/Constants/Miscellaneous/digits.html>
244
- _1__90 = _Float(_1__90 =_1_0 / _90_0) # PYCHOK = 0.011_111_111_111_111_111_111_111_111_111_111_111_111_111_111_11111
245
- _2__PI = _Float(_2__PI =_2_0 / _PI) # PYCHOK = 0.636_619_772_367_581_343_075_535_053_490_057_448_137_838_582_96182
246
+ _1__90 = _Float(_1__90 =_1_0 / _90_0) # PYCHOK = 0.011_111_111_111_111_111_111_111_111_111_111_111_111_111_111_11111
247
+ _2__PI = _Float(_2__PI =_2_0 / _pi) # PYCHOK = 0.636_619_772_367_581_343_075_535_053_490_057_448_137_838_582_96182
246
248
 
247
- _1_16th = _Float(_1_16th =_1_0 / _16_0) # PYCHOK in .ellipsoids, .karney
248
- _1_64th = _Float(_1_64th =_1_0 / 64) # PYCHOK in .elliptic, pow(2.0, -6)
249
- _1_3rd = _Float(_1_3rd =_1_0 / _3_0) # PYCHOK in .fmath
250
- _1_6th = _Float(_1_6th =_1_0 / _6_0) # PYCHOK in .fmath
249
+ _1_16th = _Float(_1_16th=_1_0 / _16_0) # PYCHOK in .ellipsoids, .karney
250
+ _1_3rd = _Float(_1_3rd =_1_0 / _3_0) # PYCHOK in .fmath
251
+ _1_6th = _Float(_1_6th =_1_0 / _6_0) # PYCHOK in .fmath
251
252
 
252
253
  _K0_UTM = _Float(_K0_UTM = 0.9996) # PYCHOK in .etm, .ktm, .utm, UTM scale at central meridian
253
254
  # sqrt(2) <https://WikiPedia.org/wiki/Square_root_of_2>
@@ -261,14 +262,14 @@ NAN = Float(NAN =_nan) # PYCHOK Not-A-Number, see function L{isnan}, NOT _
261
262
  NEG0 = Float(NEG0=_N_0_0) # PYCHOK NEGative 0.0, see function L{isneg0}, NOT _Float!
262
263
  NINF = Float(NINF=-INF) # PYCHOK Negative INFinity, NOT _Float!
263
264
 
264
- PI = _Float(PI =_PI) # 3.1415_9265_3589_7932_3846_2643_3832_795
265
- PI2 = _Float(PI2 =_PI * _2_0) # PYCHOK Two PI, M{PI * 2} aka I{Tau}
266
- PI_2 = _Float(PI_2 =_PI / _2_0) # PYCHOK Half PI, M{PI / 2}
267
- PI3 = _Float(PI3 =_PI * _3_0) # PYCHOK Three PI, M{PI * 3}
268
- PI3_2 = _Float(PI3_2=_PI * _1_5) # PYCHOK PI and a half, M{PI * 3 / 2}
269
- PI_3 = _Float(PI_3 =_PI / _3_0) # PYCHOK One third PI, M{PI / 3}
270
- PI4 = _Float(PI4 =_PI * _4_0) # PYCHOK Four PI, M{PI * 4}
271
- PI_4 = _Float(PI_4 =_PI / _4_0) # PYCHOK Quarter PI, M{PI / 4}
265
+ PI = _Float(PI =_pi) # 3.1415_9265_3589_7932_3846_2643_3832_795
266
+ PI2 = _Float(PI2 =_pi * _2_0) # PYCHOK Two PI, M{PI * 2} aka I{Tau}
267
+ PI_2 = _Float(PI_2 =_pi / _2_0) # PYCHOK Half PI, M{PI / 2}
268
+ PI3 = _Float(PI3 =_pi * _3_0) # PYCHOK Three PI, M{PI * 3}
269
+ PI3_2 = _Float(PI3_2=_pi * _1_5) # PYCHOK PI and a half, M{PI * 3 / 2}
270
+ PI_3 = _Float(PI_3 =_pi / _3_0) # PYCHOK One third PI, M{PI / 3}
271
+ PI4 = _Float(PI4 =_pi * _4_0) # PYCHOK Four PI, M{PI * 4}
272
+ PI_4 = _Float(PI_4 =_pi / _4_0) # PYCHOK Quarter PI, M{PI / 4}
272
273
 
273
274
  R_MA = _Radius(R_MA=6378137.0) # PYCHOK equatorial earth radius (C{meter}), WGS84, EPSG:3785
274
275
  R_MB = _Radius(R_MB=6356752.3) # PYCHOK polar earth radius (C{meter}), WGS84, EPSG:3785
@@ -441,7 +442,7 @@ def isnon0(x, eps0=EPS0):
441
442
  def _off90(lat):
442
443
  '''(INTERNAL) Off 90.0 for .gars and .wgrs.
443
444
  '''
444
- return max(min(lat, _89_999_), -_89_999_)
445
+ return max(min(lat, _89_999), -_89_999)
445
446
 
446
447
 
447
448
  try:
@@ -35,7 +35,7 @@ from pygeodesy.units import Epoch, _isDegrees, Radius_, _1mm as _TOL_M
35
35
  # from math import fabs # from .latlonBase
36
36
 
37
37
  __all__ = _ALL_LAZY.ellipsoidalBase
38
- __version__ = '24.06.24'
38
+ __version__ = '24.08.14'
39
39
 
40
40
 
41
41
  class CartesianEllipsoidalBase(CartesianBase):
@@ -111,7 +111,7 @@ class CartesianEllipsoidalBase(CartesianBase):
111
111
  C{Vector3Tuple} or C{Vector4Tuple}).
112
112
  @arg radius2: Radius of the second sphere or circle (same units as this and
113
113
  the B{C{other}} point's coordinates).
114
- @kwarg sphere: If C{True} compute the center and radius of the intersection
114
+ @kwarg sphere: If C{True}, compute the center and radius of the intersection
115
115
  of two I{spheres}. If C{False}, ignore the C{z}-component and
116
116
  compute the intersection of two I{circles} (C{bool}).
117
117
  @kwarg Vector: Class to return intersections (C{Cartesian}, L{Vector3d} or
@@ -527,7 +527,7 @@ class LatLonEllipsoidalBase(LatLonBase):
527
527
  point is computed as the C{destination} along that bearing at
528
528
  about 1.5 times the distance from the start point to an initial
529
529
  gu-/estimate of the intersection point (and between 1/8 and 3/8
530
- of the authalic earth perimeter).
530
+ of the C{authalic} earth perimeter).
531
531
 
532
532
  @see: I{Karney's} U{intersect.cpp<https://SourceForge.net/p/geographiclib/
533
533
  discussion/1026621/thread/21aaff9f/>}, U{The B{ellipsoidal} case<https://
@@ -659,7 +659,7 @@ class LatLonEllipsoidalBase(LatLonBase):
659
659
 
660
660
  @arg point1: Start point (C{LatLon}).
661
661
  @arg point2: End point (C{LatLon}).
662
- @kwarg within: If C{True} return the closest point I{between}
662
+ @kwarg within: If C{True}, return the closest point I{between}
663
663
  B{C{point1}} and B{C{point2}}, otherwise the
664
664
  closest point elsewhere on the geodesic (C{bool}).
665
665
  @kwarg height: Optional height for the closest point (C{meter},
@@ -714,8 +714,8 @@ class LatLonEllipsoidalBase(LatLonBase):
714
714
  I{without conversion}.
715
715
  @kwarg epoch: Optional datum (L{Epoch}), overriding this epoch
716
716
  I{without conversion}.
717
- @kwarg reframe: Optional datum (L{RefFrame}), overriding this
718
- reframe I{without conversion}.
717
+ @kwarg reframe: Optional reference frame (L{RefFrame}), overriding
718
+ this reframe I{without conversion}.
719
719
  @kwarg sep: Optional separator (C{str}).
720
720
  @kwarg wrap: If C{True}, wrap or I{normalize} the lat- and
721
721
  longitude (C{bool}).
@@ -726,7 +726,8 @@ class LatLonEllipsoidalBase(LatLonBase):
726
726
  @raise ParseError: Invalid B{C{strllh}}.
727
727
  '''
728
728
  a, b, h = _MODS.dms.parse3llh(strllh, height=height, sep=sep, wrap=wrap)
729
- r = self.classof(a, b, height=h, datum=self.datum)
729
+ r = self.classof(a, b, height=h, datum=self.datum, epoch=self.epoch,
730
+ reframe=self.reframe)
730
731
  if datum not in (None, self.datum):
731
732
  r.datum = datum
732
733
  if epoch not in (None, self.epoch):
@@ -865,7 +866,7 @@ class LatLonEllipsoidalBase(LatLonBase):
865
866
  def toOsgr(self, kTM=False, **toOsgr_kwds):
866
867
  '''Convert this C{LatLon} point to an OSGR coordinate.
867
868
 
868
- @kwarg kTM: If C{True} use I{Karney}'s Krüger method from module
869
+ @kwarg kTM: If C{True}, use I{Karney}'s Krüger method from module
869
870
  L{ktm}, otherwise I{Ordinance Survery}'s recommended
870
871
  formulation (C{bool}).
871
872
  @kwarg toOsgr_kwds: Optional L{pygeodesy.toOsgr} keyword arguments.
@@ -1008,13 +1009,15 @@ class LatLonEllipsoidalBase(LatLonBase):
1008
1009
 
1009
1010
  @arg bearing1: Bearing at this point (compass C{degrees360}).
1010
1011
  @arg other: Start point of the other line (C{LatLon}).
1011
- @arg bearing2: Bearing at the other point (compass C{degrees360}).
1012
+ @arg bearing2: Bearing at the B{C{other}} point (compass C{degrees360}).
1012
1013
  @kwarg height_wrap_tol: Optional keyword arguments C{B{height}=None},
1013
- C{B{wrap}=False} and C{B{tol}}, see method L{intersection3}.
1014
+ C{B{wrap}=False} and C{B{tol}}, see method L{intersection3
1015
+ <pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase>}.
1014
1016
 
1015
1017
  @return: Triangulated point (C{LatLon}).
1016
1018
 
1017
- @see: Method L{intersection3} for further details.
1019
+ @see: Method L{intersection3<pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase>}
1020
+ for further details.
1018
1021
  '''
1019
1022
  if _isDegrees(bearing1) and _isDegrees(bearing2):
1020
1023
  r = self.intersection3(bearing1, other, bearing2, **height_wrap_tol)
@@ -1034,13 +1037,13 @@ class LatLonEllipsoidalBase(LatLonBase):
1034
1037
  @arg point3: Third center point (C{LatLon}).
1035
1038
  @arg distance3: Distance to point3 (C{meter}, same units as
1036
1039
  B{C{eps}}).
1037
- @kwarg area: If C{True} compute the area overlap, otherwise the
1040
+ @kwarg area: If C{True}, compute the area overlap, otherwise the
1038
1041
  perimeter intersection of the circles (C{bool}).
1039
1042
  @kwarg eps: The required I{minimal overlap} for C{B{area}=True}
1040
1043
  or the I{intersection margin} for C{B{area}=False}
1041
1044
  (C{meter}, conventionally).
1042
- @kwarg wrap: If C{True}, wrap or I{normalize} and unroll
1043
- B{C{point2}} and B{C{point3}} (C{bool}).
1045
+ @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{point2}}
1046
+ and B{C{point3}} (C{bool}).
1044
1047
 
1045
1048
  @return: A L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}
1046
1049
  with C{min} and C{max} in C{meter}, same units as B{C{eps}},
@@ -1049,7 +1052,7 @@ class LatLonEllipsoidalBase(LatLonBase):
1049
1052
  of trilatered points found for the given B{C{eps}}.
1050
1053
 
1051
1054
  If only a single trilaterated point is found, C{min I{is}
1052
- max}, C{minPoint I{is} maxPoint} and C{n = 1}.
1055
+ max}, C{minPoint I{is} maxPoint} and C{n=1}.
1053
1056
 
1054
1057
  For C{B{area}=True}, C{min} and C{max} are the smallest
1055
1058
  respectively largest I{radial} overlap found.
@@ -24,7 +24,7 @@ from pygeodesy.points import _areaError, ispolar # PYCHOK exported
24
24
  # from math import fabs # from .karney
25
25
 
26
26
  __all__ = _ALL_LAZY.ellipsoidalExact
27
- __version__ = '24.06.11'
27
+ __version__ = '24.08.13'
28
28
 
29
29
 
30
30
  class Cartesian(CartesianEllipsoidalBase):
@@ -252,7 +252,7 @@ def nearestOn(point, point1, point2, within=True, height=None, wrap=False,
252
252
  @arg point: Reference point (C{LatLon}).
253
253
  @arg point1: Start point of the geodesic (C{LatLon}).
254
254
  @arg point2: End point of the geodesic (C{LatLon}).
255
- @kwarg within: If C{True} return the closest point I{between}
255
+ @kwarg within: If C{True}, return the closest point I{between}
256
256
  B{C{point1}} and B{C{point2}}, otherwise the
257
257
  closest point elsewhere on the geodesic (C{bool}).
258
258
  @kwarg height: Optional height for the closest point (C{meter},
@@ -24,7 +24,7 @@ from pygeodesy.points import _areaError, ispolar # PYCHOK exported
24
24
  # from math import fabs # from .karney
25
25
 
26
26
  __all__ = _ALL_LAZY.ellipsoidalGeodSolve
27
- __version__ = '24.06.11'
27
+ __version__ = '24.08.13'
28
28
 
29
29
 
30
30
  class Cartesian(CartesianEllipsoidalBase):
@@ -244,7 +244,7 @@ def nearestOn(point, point1, point2, within=True, height=None, wrap=False,
244
244
  @arg point: Reference point (C{LatLon}).
245
245
  @arg point1: Start point of the geodesic (C{LatLon}).
246
246
  @arg point2: End point of the geodesic (C{LatLon}).
247
- @kwarg within: If C{True} return the closest point I{between}
247
+ @kwarg within: If C{True}, return the closest point I{between}
248
248
  B{C{point1}} and B{C{point2}}, otherwise the
249
249
  closest point elsewhere on the geodesic (C{bool}).
250
250
  @kwarg height: Optional height for the closest point (C{meter},
@@ -42,7 +42,7 @@ from pygeodesy.props import deprecated_method, Property_RO
42
42
  # from math import fabs # from .karney
43
43
 
44
44
  __all__ = _ALL_LAZY.ellipsoidalKarney
45
- __version__ = '24.06.11'
45
+ __version__ = '24.08.13'
46
46
 
47
47
 
48
48
  class Cartesian(CartesianEllipsoidalBase):
@@ -279,7 +279,7 @@ def nearestOn(point, point1, point2, within=True, height=None, wrap=False,
279
279
  @arg point: Reference point (C{LatLon}).
280
280
  @arg point1: Start point of the geodesic (C{LatLon}).
281
281
  @arg point2: End point of the geodesic (C{LatLon}).
282
- @kwarg within: If C{True} return the closest point I{between}
282
+ @kwarg within: If C{True}, return the closest point I{between}
283
283
  B{C{point1}} and B{C{point2}}, otherwise the
284
284
  closest point elsewhere on the geodesic (C{bool}).
285
285
  @kwarg height: Optional height for the closest point (C{meter},
@@ -48,7 +48,7 @@ from pygeodesy.units import Bearing, Distance, Height, Scalar
48
48
  # from math import fabs # from .nvectorBase
49
49
 
50
50
  __all__ = _ALL_LAZY.ellipsoidalNvector
51
- __version__ = '24.06.15'
51
+ __version__ = '24.08.13'
52
52
 
53
53
 
54
54
  class Ned(_Ned):
@@ -555,7 +555,7 @@ def nearestOn(point, point1, point2, within=True, height=None, wrap=False,
555
555
  @arg point: Reference point (C{LatLon}).
556
556
  @arg point1: Start point of the geodesic (C{LatLon}).
557
557
  @arg point2: End point of the geodesic (C{LatLon}).
558
- @kwarg within: If C{True} return the closest point I{between}
558
+ @kwarg within: If C{True}, return the closest point I{between}
559
559
  B{C{point1}} and B{C{point2}}, otherwise the
560
560
  closest point elsewhere on the geodesic (C{bool}).
561
561
  @kwarg height: Optional height for the closest point (C{meter},
@@ -59,7 +59,7 @@ from pygeodesy.errors import _and, _ValueError, _xkwds
59
59
  from pygeodesy.fmath import Fpolynomial, hypot, hypot1
60
60
  from pygeodesy.interns import _ambiguous_, _antipodal_, _COLONSPACE_, \
61
61
  _to_, _SPACE_, _limit_ # PYCHOK used!
62
- from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER
62
+ from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS
63
63
  from pygeodesy.namedTuples import Destination2Tuple, Destination3Tuple, \
64
64
  Distance3Tuple
65
65
  from pygeodesy.points import Fmt, ispolar # PYCHOK exported
@@ -72,7 +72,7 @@ from pygeodesy.utily import atan2b, atan2d, sincos2, sincos2d, unroll180, wrap18
72
72
  from math import atan2, cos, degrees, fabs, radians, tan
73
73
 
74
74
  __all__ = _ALL_LAZY.ellipsoidalVincenty
75
- __version__ = '24.06.11'
75
+ __version__ = '24.08.13'
76
76
 
77
77
  _antipodal_to_ = _SPACE_(_antipodal_, _to_)
78
78
 
@@ -510,7 +510,7 @@ def nearestOn(point, point1, point2, within=True, height=None, wrap=False,
510
510
  @arg point: Reference point (C{LatLon}).
511
511
  @arg point1: Start point of the geodesic (C{LatLon}).
512
512
  @arg point2: End point of the geodesic (C{LatLon}).
513
- @kwarg within: If C{True} return the closest point I{between}
513
+ @kwarg within: If C{True}, return the closest point I{between}
514
514
  B{C{point1}} and B{C{point2}}, otherwise the
515
515
  closest point elsewhere on the geodesic (C{bool}).
516
516
  @kwarg height: Optional height for the closest point (C{meter},
@@ -560,9 +560,10 @@ def perimeterOf(points, **closed_datum_wrap):
560
560
  return _MODS.ellipsoidalExact.perimeterOf(points, **closed_datum_wrap)
561
561
 
562
562
 
563
- __all__ += _ALL_OTHER(Cartesian, LatLon, intersecant2, # from .ellipsoidalBaseDI
564
- intersection3, intersections2, ispolar, # from .points
565
- nearestOn) + _ALL_DOCS(areaOf, perimeterOf) # deprecated
563
+ __all__ += _ALL_DOCS(Cartesian, LatLon, intersecant2, # from .ellipsoidalBaseDI
564
+ intersection3, intersections2, ispolar, # from .points
565
+ nearestOn,
566
+ areaOf, perimeterOf) # DEPRECATED
566
567
 
567
568
  # **) MIT License
568
569
  #