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/namedTuples.py CHANGED
@@ -28,7 +28,7 @@ from pygeodesy.units import Band, Bearing, Degrees, Degrees2, Easting, FIx, \
28
28
  Radius, Scalar, Str, INT0
29
29
 
30
30
  __all__ = _ALL_LAZY.namedTuples
31
- __version__ = '24.06.08'
31
+ __version__ = '24.08.18'
32
32
 
33
33
  # __DUNDER gets mangled in class
34
34
  _closest_ = 'closest'
@@ -676,6 +676,12 @@ class Vector3Tuple(_NamedTuple):
676
676
  '''
677
677
  return self
678
678
 
679
+ @property_RO
680
+ def xyz3(self):
681
+ '''Get X, Y and Z components as C{3-tuple}.
682
+ '''
683
+ return tuple(self)
684
+
679
685
 
680
686
  class Vector4Tuple(_NamedTuple): # .nvector.py
681
687
  '''4-Tuple C{(x, y, z, h)} of (geocentric) components, all
@@ -697,6 +703,13 @@ class Vector4Tuple(_NamedTuple): # .nvector.py
697
703
  '''
698
704
  return Vector3Tuple(*self[:3])
699
705
 
706
+ @property_RO
707
+ def xyz3(self):
708
+ '''Get X, Y and Z components as C{3-tuple}.
709
+ '''
710
+ return tuple(self[:3])
711
+
712
+
700
713
  # **) MIT License
701
714
  #
702
715
  # Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.
pygeodesy/osgr.py CHANGED
@@ -53,7 +53,7 @@ from pygeodesy.utily import degrees90, degrees180, sincostan3, truncate
53
53
  from math import cos, fabs, radians, sin, sqrt
54
54
 
55
55
  __all__ = _ALL_LAZY.osgr
56
- __version__ = '24.06.15'
56
+ __version__ = '24.08.13'
57
57
 
58
58
  _equivalent_ = 'equivalent'
59
59
  _OSGR_ = 'OSGR'
@@ -289,9 +289,9 @@ class Osgr(_NamedBase):
289
289
  @kwarg datum: Optional datum to convert to (L{Datum},
290
290
  L{Ellipsoid}, L{Ellipsoid2}, L{Ellipsoid2}
291
291
  or L{a_f2Tuple}).
292
- @kwarg kTM: If C{True} use I{Karney}'s Krüger method from
293
- module L{ktm}, otherwise use the Ordnance
294
- Survey formulation (C{bool}).
292
+ @kwarg kTM: If C{True}, use I{Karney}'s Krüger method from
293
+ module L{ktm}, otherwise use the Ordnance Survey
294
+ formulation (C{bool}).
295
295
  @kwarg eps: Tolerance for OS convergence (C{meter}).
296
296
  @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword
297
297
  arguments, ignored if C{B{LatLon} is None}.
@@ -585,9 +585,9 @@ def toOsgr(latlon, lon=None, kTM=False, datum=_WGS84, Osgr=Osgr, # MCCABE 14
585
585
  @arg latlon: Latitude (C{degrees}) or an (ellipsoidal) geodetic
586
586
  C{LatLon} point.
587
587
  @kwarg lon: Optional longitude in degrees (scalar or C{None}).
588
- @kwarg kTM: If C{True} use I{Karney}'s Krüger method from
589
- module L{ktm}, otherwise use the Ordnance
590
- Survey formulation (C{bool}).
588
+ @kwarg kTM: If C{True}, use I{Karney}'s Krüger method from
589
+ module L{ktm}, otherwise use the Ordnance Survey
590
+ formulation (C{bool}).
591
591
  @kwarg datum: Optional datum to convert B{C{lat, lon}} from
592
592
  (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or
593
593
  L{a_f2Tuple}).
pygeodesy/points.py CHANGED
@@ -62,7 +62,7 @@ from pygeodesy.utily import atan2b, degrees90, degrees180, degrees2m, \
62
62
  from math import cos, fabs, fmod as _fmod, radians, sin
63
63
 
64
64
  __all__ = _ALL_LAZY.points
65
- __version__ = '24.06.15'
65
+ __version__ = '24.08.13'
66
66
 
67
67
  _ilat_ = 'ilat'
68
68
  _ilon_ = 'ilon'
@@ -217,7 +217,7 @@ class _Basequence(_Sequence): # immutable, on purpose
217
217
  def copy(self, deep=False): # PYCHOK no cover
218
218
  '''Make a shallow or deep copy of this instance.
219
219
 
220
- @kwarg deep: If C{True} make a deep, otherwise a
220
+ @kwarg deep: If C{True}, make a deep, otherwise a
221
221
  shallow copy (C{bool}).
222
222
 
223
223
  @return: The copy (C{This class}).
pygeodesy/props.py CHANGED
@@ -25,12 +25,11 @@ from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, \
25
25
  from functools import wraps as _wraps
26
26
 
27
27
  __all__ = _ALL_LAZY.props
28
- __version__ = '24.07.23'
28
+ __version__ = '24.09.02'
29
29
 
30
30
  _class_ = 'class'
31
31
  _dont_use_ = _DEPRECATED_ + ", don't use."
32
32
  _function_ = 'function'
33
- _get_and_set_ = 'get and set'
34
33
  _has_been_ = 'has been' # PYCHOK used!
35
34
  _method_ = 'method'
36
35
  _not_an_inst_ = _not_(_an_, 'instance')
@@ -396,7 +395,9 @@ class property_ROver(_property_RO___):
396
395
  # No __doc__ on purpose
397
396
 
398
397
  def _fget(self, inst):
399
- '''Get the C{property} value I{once} and overwrite C{self}, this C{property} instance.
398
+ '''Get the C{property} value I{once} and overwrite C{self},
399
+ this C{property} instance in the (super-)class of C{self}
400
+ where this property is define as a L{property_ROver}.
400
401
  '''
401
402
  v = self.method(inst)
402
403
  n = self.name
@@ -411,8 +412,8 @@ class property_ROver(_property_RO___):
411
412
  return v
412
413
 
413
414
 
414
- class _NamedProperty(property):
415
- '''Class C{property} with retrievable name.
415
+ class _NamedProperty(property): # in .named
416
+ '''Class C{property} with a C{.name} attribute.
416
417
  '''
417
418
  @Property_RO
418
419
  def name(self):
@@ -445,7 +446,7 @@ def property_doc_(doc):
445
446
  def _documented_property(method):
446
447
  '''(INTERNAL) Return the documented C{property}.
447
448
  '''
448
- t = _get_and_set_ if doc.startswith(_SPACE_) else NN
449
+ t = 'get and set' if doc.startswith(_SPACE_) else NN
449
450
  return _NamedProperty(method, None, None, NN('Property to ', t, doc))
450
451
 
451
452
  return _documented_property
pygeodesy/resections.py CHANGED
@@ -34,7 +34,7 @@ from pygeodesy.vector3d import _otherV3d, Vector3d
34
34
  from math import cos, atan2, degrees, fabs, radians, sin, sqrt
35
35
 
36
36
  __all__ = _ALL_LAZY.resections
37
- __version__ = '24.04.14'
37
+ __version__ = '24.08.18'
38
38
 
39
39
  _concyclic_ = 'concyclic'
40
40
  _PA_ = 'PA'
@@ -356,8 +356,8 @@ def pierlot(point1, point2, point3, alpha12, alpha23, useZ=False, eps=EPS,
356
356
  def _pierlot3(B1, B2, B3, a12, a23, useZ, cot):
357
357
  '''(INTERNAL) Shared L{pierlot} and L{pierlotx}.
358
358
  '''
359
- x1_, y1_, _ = B1.minus(B2).xyz
360
- x3_, y3_, _ = B3.minus(B2).xyz
359
+ x1_, y1_, _ = B1.minus(B2).xyz3
360
+ x3_, y3_, _ = B3.minus(B2).xyz3
361
361
 
362
362
  s12, c12, s23, c23 = sincos2d_(a12, a23)
363
363
  # cot31 = (1 - cot12 * cot23) / (cot12 + cot32)
@@ -402,7 +402,7 @@ def _pierlot3(B1, B2, B3, a12, a23, useZ, cot):
402
402
  x, y = _pierlotxy2(B2, -K, Y12_23, X12_23, (X31_23 * Y12_23 -
403
403
  X12_23 * Y31_23))
404
404
  else:
405
- x, y, _ = B2.xyz
405
+ x, y, _ = B2.xyz3
406
406
  return x, y, _zidw(x, y, useZ, B1, B2, B3)
407
407
 
408
408
 
@@ -484,8 +484,8 @@ def _pierlotx3(a_z_Bs, useZ, cot, Cs):
484
484
  Cs(4)
485
485
  return _pierlot3(B1, B2, B3, a12, a23, useZ, cot)
486
486
 
487
- x1_, y1_, _ = B1.minus(B3).xyz
488
- x2_, y2_, _ = B2.minus(B3).xyz
487
+ x1_, y1_, _ = B1.minus(B3).xyz3
488
+ x2_, y2_, _ = B2.minus(B3).xyz3
489
489
 
490
490
  K = _Fsumf_(y1_ * x2_, -x1_ * y2_)
491
491
  if K:
@@ -508,7 +508,7 @@ def _pierlotx3(a_z_Bs, useZ, cot, Cs):
508
508
  x, y = _pierlotxy2(B3, K, Y31_23, X31_23, (X31_23 * _Fsumf_(x2_, -x1_) +
509
509
  Y31_23 * _Fsumf_(y2_, -y1_)))
510
510
  else:
511
- x, y, _ = B3.xyz
511
+ x, y, _ = B3.xyz3
512
512
  return x, y, _zidw(x, y, useZ, B1, B2, B3)
513
513
 
514
514
 
@@ -9,7 +9,7 @@ u'''Package of lazily imported C{rhumb} modules L{rhumb.aux_}, L{rhumb.ekx} and
9
9
  from pygeodesy.lazily import _ALL_LAZY, _ALL_OTHER, _lazy_import_as, _unLazy0
10
10
 
11
11
  __all__ = _ALL_LAZY.rhumb
12
- __version__ = '24.06.18'
12
+ __version__ = '24.09.02'
13
13
 
14
14
  if _unLazy0: # or _isfrozen
15
15
  from pygeodesy.rhumb.aux_ import RhumbAux, RhumbLineAux
pygeodesy/rhumb/aux_.py CHANGED
@@ -31,7 +31,8 @@ from __future__ import division as _; del _ # PYCHOK semicolon
31
31
  from pygeodesy.auxilats.auxAngle import AuxMu, AuxPhi, hypot
32
32
  from pygeodesy.auxilats.auxDLat import AuxDLat, _DClenshaw
33
33
  # from pygeodesy.auxilats.auxDST import AuxDST # _MODS
34
- from pygeodesy.auxilats.auxily import _Dlam, _Dp0Dpsi, _Ufloats
34
+ from pygeodesy.auxilats.auxily import _Dlam, _Dp0Dpsi
35
+ from pygeodesy.auxilats._CX_Rs import _Rdict, _Rtuple
35
36
  from pygeodesy.basics import copysign0, _reverange, _xkwds_get1
36
37
  from pygeodesy.constants import EPS_2, MANT_DIG, PI4, isinf, \
37
38
  _0_0, _4_0, _720_0, _log2, _over
@@ -47,7 +48,7 @@ from pygeodesy.rhumb.bases import RhumbBase, RhumbLineBase, \
47
48
  from math import ceil as _ceil, fabs, radians
48
49
 
49
50
  __all__ = _ALL_LAZY.rhumb_aux_
50
- __version__ = '24.06.11'
51
+ __version__ = '24.09.02'
51
52
 
52
53
  # DIGITS = (sizeof(real) * 8) bits
53
54
  # = (ctypes.sizeof(ctypes.c_double(1.0)) * 8) bits
@@ -302,73 +303,54 @@ def _RAseries(auxD):
302
303
  Cs = _RACoeffs[aL]
303
304
  # assert len(Cs) == (aL * (aL + 1)) // 2
304
305
  pP = []
305
- _P = pP.append
306
306
  _p = _polynomial
307
307
  for m in _reverange(aL): # order
308
308
  j = i + m + 1
309
- _P(_p(n, Cs, i, j) * d)
309
+ pP.append(_p(n, Cs, i, j) * d)
310
310
  d *= n
311
311
  i = j
312
312
  # assert i == len(pP)
313
313
  return pP
314
314
 
315
315
 
316
- _f, _u = float, _Ufloats()
317
- _RACoeffs = { # Rhumb Area Coefficients in matrix Q
318
- 4: _u( # GEOGRAPHICLIB_RHUMBAREA_ORDER == 4
319
- 596 / _f(2025), -398 / _f(945), 22 / _f(45), -1 / _f(3),
320
- 1543 / _f(4725), -118 / _f(315), 1 / _f(5),
321
- 152 / _f(945), -17 / _f(315),
322
- 5 / _f(252)),
323
- 5: _u( # GEOGRAPHICLIB_RHUMBAREA_ORDER == 5
324
- -102614 / _f(467775), 596 / _f(2025), -398 / _f(945), 22 / _f(45),
325
- -1 / _f(3),
326
- -24562 / _f(155925), 1543 / _f(4725), -118 / _f(315), 1 / _f(5),
327
- -38068 / _f(155925), 152 / _f(945), -17 / _f(315),
328
- -752 / _f(10395), 5 / _f(252),
329
- -101 / _f(17325)),
330
- 6: _u( # GEOGRAPHICLIB_RHUMBAREA_ORDER == 6
331
- 138734126 / _f(638512875), -102614 / _f(467775), 596 / _f(2025),
332
- -398 / _f(945), 22 / _f(45), -1 / _f(3),
333
- 17749373 / _f(425675250), -24562 / _f(155925), 1543 / _f(4725),
334
- -118 / _f(315), 1 / _f(5),
335
- 1882432 / _f(8513505), -38068 / _f(155925), 152 / _f(945),
336
- -17 / _f(315),
337
- 268864 / _f(2027025), -752 / _f(10395), 5 / _f(252),
338
- 62464 / _f(2027025), -101 / _f(17325),
339
- 11537 / _f(4054050)),
340
- 7: _u( # GEOGRAPHICLIB_RHUMBAREA_ORDER == 7
341
- -565017322 / _f(1915538625), 138734126 / _f(638512875),
342
- -102614 / _f(467775), 596 / _f(2025), -398 / _f(945), 22 / _f(45),
343
- -1 / _f(3),
344
- -1969276 / _f(58046625), 17749373 / _f(425675250), -24562 / _f(155925),
345
- 1543 / _f(4725), -118 / _f(315), 1 / _f(5),
346
- -58573784 / _f(638512875), 1882432 / _f(8513505), -38068 / _f(155925),
347
- 152 / _f(945), -17 / _f(315),
348
- -6975184 / _f(42567525), 268864 / _f(2027025), -752 / _f(10395),
349
- 5 / _f(252),
350
- -112832 / _f(1447875), 62464 / _f(2027025), -101 / _f(17325),
351
- -4096 / _f(289575), 11537 / _f(4054050),
352
- -311 / _f(525525)),
353
- 8: _u( # GEOGRAPHICLIB_RHUMBAREA_ORDER == 8
354
- 188270561816 / _f(488462349375), -565017322 / _f(1915538625),
355
- 138734126 / _f(638512875), -102614 / _f(467775), 596 / _f(2025),
356
- -398 / _f(945), 22 / _f(45), -1 / _f(3),
357
- 2332829602 / _f(23260111875), -1969276 / _f(58046625),
358
- 17749373 / _f(425675250), -24562 / _f(155925), 1543 / _f(4725),
359
- -118 / _f(315), 1 / _f(5),
360
- -41570288 / _f(930404475), -58573784 / _f(638512875),
361
- 1882432 / _f(8513505), -38068 / _f(155925), 152 / _f(945),
362
- -17 / _f(315),
363
- 1538774036 / _f(10854718875), -6975184 / _f(42567525),
364
- 268864 / _f(2027025), -752 / _f(10395), 5 / _f(252),
365
- 436821248 / _f(3618239625), -112832 / _f(1447875),
366
- 62464 / _f(2027025), -101 / _f(17325),
367
- 3059776 / _f(80405325), -4096 / _f(289575), 11537 / _f(4054050),
368
- 4193792 / _f(723647925), -311 / _f(525525),
369
- 1097653 / _f(1929727800))
370
- }
371
- del _f, _u, _Ufloats
316
+ _RACoeffs = _Rdict(110, # Rhumb Area Coefficients in matrix Q
317
+ _Rtuple(4, 10, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 4
318
+ '596/2025, -398/945, 22/45, -1/3',
319
+ '1543/4725, -118/315, 1/5',
320
+ '152/945, -17/315',
321
+ '5/252'),
322
+ _Rtuple(5, 15, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 5
323
+ '-102614/467775, 596/2025, -398/945, 22/45, -1/3',
324
+ '-24562/155925, 1543/4725, -118/315, 1/5',
325
+ '-38068/155925, 152/945, -17/315',
326
+ '-752/10395, 5/252',
327
+ '-101/17325'),
328
+ _Rtuple(6, 21, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 6
329
+ '138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',
330
+ '17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',
331
+ '1882432/8513505, -38068/155925, 152/945, -17/315',
332
+ '268864/2027025, -752/10395, 5/252',
333
+ '62464/2027025, -101/17325',
334
+ '11537/4054050'),
335
+ _Rtuple(7, 28, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 7
336
+ '-565017322/1915538625, 138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',
337
+ '-1969276/58046625, 17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',
338
+ '-58573784/638512875, 1882432/8513505, -38068/155925, 152/945, -17/315',
339
+ '-6975184/42567525, 268864/2027025, -752/10395, 5/252',
340
+ '-112832/1447875, 62464/2027025, -101/17325',
341
+ '-4096/289575, 11537/4054050',
342
+ '-311/525525'),
343
+ _Rtuple(8, 36, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 8
344
+ '188270561816/488462349375, -565017322/1915538625, 138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',
345
+ '2332829602/23260111875, -1969276/58046625, 17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',
346
+ '-41570288/930404475, -58573784/638512875, 1882432/8513505, -38068/155925, 152/945, -17/315',
347
+ '1538774036/10854718875, -6975184/42567525, 268864/2027025, -752/10395, 5/252',
348
+ '436821248/3618239625, -112832/1447875, 62464/2027025, -101/17325',
349
+ '3059776/80405325, -4096/289575, 11537/4054050',
350
+ '4193792/723647925, -311/525525',
351
+ '1097653/1929727800')
352
+ )
353
+ del _Rdict, _Rtuple
372
354
 
373
355
  __all__ += _ALL_DOCS(Caps)
374
356
 
pygeodesy/rhumb/solve.py CHANGED
@@ -21,7 +21,7 @@ from pygeodesy.solveBase import _SolveGDictBase, _SolveGDictLineBase
21
21
  from pygeodesy.utily import _unrollon, _Wrap, wrap360
22
22
 
23
23
  __all__ = _ALL_LAZY.rhumb_solve
24
- __version__ = '24.07.11'
24
+ __version__ = '24.08.13'
25
25
 
26
26
 
27
27
  class _RhumbSolveBase(_SolveGDictBase):
@@ -94,8 +94,8 @@ class RhumbSolve(_RhumbSolveBase):
94
94
  # '''Set up a L{RhumbArea} to compute area and
95
95
  # perimeter of a polygon.
96
96
  #
97
- # @kwarg polyline: If C{True} perimeter only, otherwise
98
- # area and perimeter (C{bool}).
97
+ # @kwarg polyline: If C{True}, compute the perimeter only,
98
+ # otherwise perimeter and area (C{bool}).
99
99
  # @kwarg name: Optional C{B{name}=NN} (C{str}).
100
100
  #
101
101
  # @return: A L{RhumbArea} instance.
pygeodesy/simplify.py CHANGED
@@ -86,7 +86,7 @@ from pygeodesy.units import _ALL_LAZY, _1mm, Radius_
86
86
  from math import degrees, fabs, radians
87
87
 
88
88
  __all__ = _ALL_LAZY.simplify
89
- __version__ = '24.05.25'
89
+ __version__ = '24.08.13'
90
90
 
91
91
 
92
92
  # try:
@@ -383,7 +383,7 @@ def simplify1(points, distance=_1mm, radius=R_M, indices=False, **options):
383
383
  @arg points: Path points (C{LatLon}[]).
384
384
  @kwarg distance: Tolerance (C{meter}, same units as B{C{radius}}).
385
385
  @kwarg radius: Mean earth radius (C{meter}).
386
- @kwarg indices: If C{True} return the simplified point indices
386
+ @kwarg indices: If C{True}, return the simplified point indices
387
387
  instead of the simplified points (C{bool}).
388
388
  @kwarg options: Optional keyword arguments passed thru to
389
389
  function L{pygeodesy.equirectangular4}.
@@ -426,9 +426,9 @@ def simplifyRDP(points, distance=_1mm, radius=R_M, shortest=False,
426
426
  @arg points: Path points (C{LatLon}[]).
427
427
  @kwarg distance: Tolerance (C{meter}, same units as B{C{radius}}).
428
428
  @kwarg radius: Mean earth radius (C{meter}).
429
- @kwarg shortest: If C{True} use the I{shortest} otherwise the
429
+ @kwarg shortest: If C{True}, use the I{shortest} otherwise the
430
430
  I{perpendicular} distance (C{bool}).
431
- @kwarg indices: If C{True} return the simplified point indices
431
+ @kwarg indices: If C{True}, return the simplified point indices
432
432
  instead of the simplified points (C{bool}).
433
433
  @kwarg options: Optional keyword arguments passed thru to
434
434
  function L{pygeodesy.equirectangular4}.
@@ -460,9 +460,9 @@ def simplifyRDPm(points, distance=_1mm, radius=R_M, shortest=False,
460
460
  @arg points: Path points (C{LatLon}[]).
461
461
  @kwarg distance: Tolerance (C{meter}, same units as B{C{radius}}).
462
462
  @kwarg radius: Mean earth radius (C{meter}).
463
- @kwarg shortest: If C{True} use the I{shortest} otherwise the
463
+ @kwarg shortest: If C{True}, use the I{shortest} otherwise the
464
464
  I{perpendicular} distance (C{bool}).
465
- @kwarg indices: If C{True} return the simplified point indices
465
+ @kwarg indices: If C{True}, return the simplified point indices
466
466
  instead of the simplified points (C{bool}).
467
467
  @kwarg options: Optional keyword arguments passed thru to
468
468
  function L{pygeodesy.equirectangular4}.
@@ -491,9 +491,9 @@ def simplifyRW(points, pipe=_1mm, radius=R_M, shortest=False,
491
491
  @kwarg pipe: Pipe radius, half-width (C{meter}, same units as
492
492
  B{C{radius}}).
493
493
  @kwarg radius: Mean earth radius (C{meter}).
494
- @kwarg shortest: If C{True} use the I{shortest} otherwise the
494
+ @kwarg shortest: If C{True}, use the I{shortest} otherwise the
495
495
  I{perpendicular} distance (C{bool}).
496
- @kwarg indices: If C{True} return the simplified point indices
496
+ @kwarg indices: If C{True}, return the simplified point indices
497
497
  instead of the simplified points (C{bool}).
498
498
  @kwarg options: Optional keyword arguments passed thru to
499
499
  function L{pygeodesy.equirectangular4}.
@@ -544,7 +544,7 @@ def simplifyVW(points, area=_1mm, radius=R_M, attr=None,
544
544
  @kwarg radius: Mean earth radius (C{meter}).
545
545
  @kwarg attr: Optional, points attribute to save the area value
546
546
  (C{str}).
547
- @kwarg indices: If C{True} return the simplified point indices
547
+ @kwarg indices: If C{True}, return the simplified point indices
548
548
  instead of the simplified points (C{bool}).
549
549
  @kwarg options: Optional keyword arguments passed thru to
550
550
  function L{pygeodesy.equirectangular4}.
@@ -600,7 +600,7 @@ def simplifyVWm(points, area=_1mm, radius=R_M, attr=None,
600
600
  @kwarg radius: Mean earth radius (C{meter}).
601
601
  @kwarg attr: Optional, points attribute to save the area value
602
602
  (C{str}).
603
- @kwarg indices: If C{True} return the simplified point indices
603
+ @kwarg indices: If C{True}, return the simplified point indices
604
604
  instead of the simplified points (C{bool}).
605
605
  @kwarg options: Optional keyword arguments passed thru to
606
606
  function L{pygeodesy.equirectangular4}.
@@ -40,7 +40,7 @@ from pygeodesy.utily import acos1, asin1, atan2b, atan2d, degrees90, \
40
40
  from math import cos, fabs, log, sin, sqrt
41
41
 
42
42
  __all__ = _ALL_LAZY.sphericalBase
43
- __version__ = '24.06.12'
43
+ __version__ = '24.08,13'
44
44
 
45
45
 
46
46
  class CartesianSphericalBase(CartesianBase):
@@ -210,7 +210,7 @@ class LatLonSphericalBase(LatLonBase):
210
210
  B{C{point}} I{of} the (great circle) line (compass
211
211
  C{degrees}).
212
212
  @kwarg radius: Mean earth radius (C{meter}, conventionally).
213
- @kwarg exact: If C{True} use the I{exact} rhumb methods for azimuth,
213
+ @kwarg exact: If C{True}, use the I{exact} rhumb methods for azimuth,
214
214
  destination and distance, if C{False} use the basic
215
215
  rhumb methods (C{bool}) or if C{None} use the I{great
216
216
  circle} methods.
@@ -474,7 +474,7 @@ class LatLonSphericalBase(LatLonBase):
474
474
  @arg other: An other point (this I{on} C{LatLon}) or the azimuth I{of}
475
475
  (compass C{degrees}) the rhumb line.
476
476
  @kwarg radius: Mean earth radius (C{meter}, conventionally).
477
- @kwarg exact: If C{True} use the I{exact} rhumb methods for azimuth,
477
+ @kwarg exact: If C{True}, use the I{exact} rhumb methods for azimuth,
478
478
  destination and distance, if C{False} use the basic
479
479
  rhumb methods (C{bool}) or if C{None} use the I{great
480
480
  circle} methods.
@@ -54,7 +54,7 @@ from pygeodesy.vector3d import sumOf, Vector3d
54
54
  from math import asin, atan2, cos, degrees, fabs, radians, sin
55
55
 
56
56
  __all__ = _ALL_LAZY.sphericalTrigonometry
57
- __version__ = '24.06.21'
57
+ __version__ = '24.08.13'
58
58
 
59
59
  _PI_EPS4 = PI - EPS4
60
60
  if _PI_EPS4 >= PI:
@@ -706,7 +706,7 @@ class LatLon(LatLonSphericalBase):
706
706
  @arg distance2: Distance to point2 (C{meter}, same units as B{C{radius}}).
707
707
  @arg point3: Third center point (C{LatLon}).
708
708
  @arg distance3: Distance to point3 (C{meter}, same units as B{C{radius}}).
709
- @kwarg area: If C{True} compute the area overlap, otherwise the perimeter
709
+ @kwarg area: If C{True}, compute the area overlap, otherwise the perimeter
710
710
  intersection of the circles (C{bool}).
711
711
  @kwarg eps: The required I{minimal overlap} for C{B{area}=True} or the
712
712
  I{intersection margin} if C{B{area}=False} (C{meter}, same
pygeodesy/streprs.py CHANGED
@@ -22,7 +22,7 @@ from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _dunder_nameof
22
22
  from math import fabs, log10 as _log10
23
23
 
24
24
  __all__ = _ALL_LAZY.streprs
25
- __version__ = '24.06.15'
25
+ __version__ = '24.08.13'
26
26
 
27
27
  _at_ = 'at' # PYCHOK used!
28
28
  _EN_PREC = 6 # max MGRS/OSGR precision, 1 micrometer
@@ -310,8 +310,8 @@ def fstr(floats, prec=6, fmt=Fmt.F, ints=False, sep=_COMMASPACE_, strepr=None, f
310
310
  @kwarg strepr: Optional callable to format non-C{floats} (typically
311
311
  C{repr}, C{str}) or C{None} to raise a TypeError and used
312
312
  only if C{B{force} is not True}.
313
- @kwarg force: If C{True} format all B{C{floats}} using B{C{fmt}},
314
- otherwise use B{C{strepr}} for non-C{floats}.
313
+ @kwarg force: If C{True}, format all B{C{floats}} using B{C{fmt}},
314
+ otherwise use B{C{strepr}} for non-C{floats} (C{bool}).
315
315
 
316
316
  @return: The C{sep.join(strs(floats, ...)} joined (C{str}) or single
317
317
  C{strs((floats,), ...)} (C{str}) if B{C{floats}} is C{scalar}.