pygeodesy 24.11.11__py2.py3-none-any.whl → 25.1.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 (118) hide show
  1. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/METADATA +34 -35
  2. PyGeodesy-25.1.5.dist-info/RECORD +118 -0
  3. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/WHEEL +1 -1
  4. pygeodesy/__init__.py +19 -19
  5. pygeodesy/__main__.py +1 -1
  6. pygeodesy/albers.py +5 -5
  7. pygeodesy/auxilats/_CX_4.py +1 -1
  8. pygeodesy/auxilats/_CX_6.py +1 -1
  9. pygeodesy/auxilats/_CX_8.py +1 -1
  10. pygeodesy/auxilats/_CX_Rs.py +1 -1
  11. pygeodesy/auxilats/__init__.py +1 -1
  12. pygeodesy/auxilats/__main__.py +1 -1
  13. pygeodesy/auxilats/auxAngle.py +5 -5
  14. pygeodesy/auxilats/auxDLat.py +6 -6
  15. pygeodesy/auxilats/auxDST.py +2 -2
  16. pygeodesy/auxilats/auxLat.py +5 -5
  17. pygeodesy/auxilats/auxily.py +2 -2
  18. pygeodesy/azimuthal.py +5 -5
  19. pygeodesy/basics.py +60 -8
  20. pygeodesy/booleans.py +1 -1
  21. pygeodesy/cartesianBase.py +22 -61
  22. pygeodesy/clipy.py +1 -1
  23. pygeodesy/constants.py +5 -5
  24. pygeodesy/css.py +1 -1
  25. pygeodesy/datums.py +1 -1
  26. pygeodesy/deprecated/__init__.py +2 -2
  27. pygeodesy/deprecated/bases.py +1 -1
  28. pygeodesy/deprecated/classes.py +86 -2
  29. pygeodesy/deprecated/consterns.py +1 -1
  30. pygeodesy/deprecated/datum.py +5 -5
  31. pygeodesy/deprecated/functions.py +42 -8
  32. pygeodesy/deprecated/nvector.py +1 -1
  33. pygeodesy/deprecated/rhumbBase.py +1 -1
  34. pygeodesy/deprecated/rhumbaux.py +1 -1
  35. pygeodesy/deprecated/rhumbsolve.py +1 -1
  36. pygeodesy/deprecated/rhumbx.py +1 -1
  37. pygeodesy/dms.py +1 -1
  38. pygeodesy/ecef.py +53 -56
  39. pygeodesy/elevations.py +1 -1
  40. pygeodesy/ellipsoidalBase.py +3 -3
  41. pygeodesy/ellipsoidalBaseDI.py +1 -1
  42. pygeodesy/ellipsoidalExact.py +1 -1
  43. pygeodesy/ellipsoidalGeodSolve.py +1 -1
  44. pygeodesy/ellipsoidalKarney.py +1 -1
  45. pygeodesy/ellipsoidalNvector.py +1 -1
  46. pygeodesy/ellipsoidalVincenty.py +6 -5
  47. pygeodesy/ellipsoids.py +4 -5
  48. pygeodesy/elliptic.py +6 -6
  49. pygeodesy/epsg.py +1 -1
  50. pygeodesy/errors.py +1 -1
  51. pygeodesy/etm.py +5 -5
  52. pygeodesy/fmath.py +18 -17
  53. pygeodesy/formy.py +409 -555
  54. pygeodesy/frechet.py +29 -86
  55. pygeodesy/fstats.py +1 -1
  56. pygeodesy/fsums.py +32 -33
  57. pygeodesy/gars.py +1 -1
  58. pygeodesy/geodesici.py +7 -7
  59. pygeodesy/geodesicw.py +1 -1
  60. pygeodesy/geodesicx/_C4_24.py +2 -2
  61. pygeodesy/geodesicx/_C4_27.py +2 -2
  62. pygeodesy/geodesicx/_C4_30.py +2 -2
  63. pygeodesy/geodesicx/__init__.py +2 -2
  64. pygeodesy/geodesicx/__main__.py +4 -5
  65. pygeodesy/geodesicx/gx.py +6 -5
  66. pygeodesy/geodesicx/gxarea.py +2 -2
  67. pygeodesy/geodesicx/gxbases.py +2 -2
  68. pygeodesy/geodesicx/gxline.py +16 -12
  69. pygeodesy/geodsolve.py +1 -1
  70. pygeodesy/geohash.py +1 -1
  71. pygeodesy/geoids.py +277 -203
  72. pygeodesy/hausdorff.py +23 -81
  73. pygeodesy/heights.py +115 -150
  74. pygeodesy/internals.py +1 -1
  75. pygeodesy/interns.py +2 -3
  76. pygeodesy/iters.py +1 -1
  77. pygeodesy/karney.py +3 -3
  78. pygeodesy/ktm.py +16 -15
  79. pygeodesy/latlonBase.py +323 -409
  80. pygeodesy/lazily.py +53 -44
  81. pygeodesy/lcc.py +1 -1
  82. pygeodesy/ltp.py +46 -50
  83. pygeodesy/ltpTuples.py +147 -130
  84. pygeodesy/mgrs.py +1 -1
  85. pygeodesy/named.py +149 -3
  86. pygeodesy/namedTuples.py +58 -7
  87. pygeodesy/nvectorBase.py +122 -105
  88. pygeodesy/osgr.py +1 -1
  89. pygeodesy/points.py +1 -1
  90. pygeodesy/props.py +1 -1
  91. pygeodesy/resections.py +18 -17
  92. pygeodesy/rhumb/__init__.py +1 -1
  93. pygeodesy/rhumb/aux_.py +2 -2
  94. pygeodesy/rhumb/bases.py +2 -2
  95. pygeodesy/rhumb/ekx.py +4 -4
  96. pygeodesy/rhumb/solve.py +1 -1
  97. pygeodesy/simplify.py +289 -401
  98. pygeodesy/solveBase.py +1 -1
  99. pygeodesy/sphericalBase.py +1 -1
  100. pygeodesy/sphericalNvector.py +5 -5
  101. pygeodesy/sphericalTrigonometry.py +7 -6
  102. pygeodesy/streprs.py +10 -5
  103. pygeodesy/trf.py +1 -1
  104. pygeodesy/triaxials.py +23 -16
  105. pygeodesy/units.py +16 -16
  106. pygeodesy/unitsBase.py +1 -1
  107. pygeodesy/ups.py +4 -4
  108. pygeodesy/utily.py +341 -211
  109. pygeodesy/utm.py +5 -5
  110. pygeodesy/utmups.py +1 -1
  111. pygeodesy/utmupsBase.py +1 -1
  112. pygeodesy/vector2d.py +5 -5
  113. pygeodesy/vector3d.py +14 -3
  114. pygeodesy/vector3dBase.py +5 -5
  115. pygeodesy/webmercator.py +1 -1
  116. pygeodesy/wgrs.py +1 -1
  117. PyGeodesy-24.11.11.dist-info/RECORD +0 -118
  118. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/top_level.txt +0 -0
pygeodesy/hausdorff.py CHANGED
@@ -4,7 +4,6 @@
4
4
  u'''Hausdorff distances.
5
5
 
6
6
  Classes L{Hausdorff}, L{HausdorffDegrees}, L{HausdorffRadians},
7
- L{HausdorffCosineAndoyerLambert}, L{HausdorffCosineForsytheAndoyerLambert},
8
7
  L{HausdorffCosineLaw}, L{HausdorffDistanceTo}, L{HausdorffEquirectangular},
9
8
  L{HausdorffEuclidean}, L{HausdorffFlatLocal}, L{HausdorffFlatPolar},
10
9
  L{HausdorffHaversine}, L{HausdorffHubeny}, L{HausdorffKarney},
@@ -85,7 +84,7 @@ from pygeodesy import unitsBase as _unitsBase # _Str_..., _xUnit, _xUnits
85
84
  from random import Random
86
85
 
87
86
  __all__ = _ALL_LAZY.hausdorff
88
- __version__ = '24.06.15'
87
+ __version__ = '24.12.31'
89
88
 
90
89
 
91
90
  class HausdorffError(PointsError):
@@ -171,7 +170,7 @@ class Hausdorff(_Named):
171
170
  return self._hausdorff_(point2s, False, early, self.distance)
172
171
 
173
172
  def distance(self, point1, point2):
174
- '''Return the distance between B{C{point1}} and B{C{point2s}},
173
+ '''Return the distance between B{C{point1}} and B{C{point2}},
175
174
  subject to the supplied optional keyword arguments, see
176
175
  property C{kwds}.
177
176
  '''
@@ -341,7 +340,7 @@ class _HausdorffMeterRadians(Hausdorff):
341
340
  return self._hausdorff_(point2s, True, early, _formy._radistance(self))
342
341
 
343
342
  @Property
344
- def _func_(self):
343
+ def _func_(self): # see _formy._radistance
345
344
  '''(INTERNAL) I{Must be overloaded}.'''
346
345
  self._notOverloaded(**self.kwds)
347
346
 
@@ -350,69 +349,22 @@ class _HausdorffMeterRadians(Hausdorff):
350
349
  return _formy._Propy(func, 3, self.kwds)
351
350
 
352
351
 
353
- class HausdorffCosineAndoyerLambert(_HausdorffMeterRadians):
354
- '''Compute the C{Hausdorff} distance based on the I{angular} distance
355
- in C{radians} from function L{pygeodesy.cosineAndoyerLambert}.
356
- '''
357
- def __init__(self, point1s, **seed_name__datum_wrap):
358
- '''New L{HausdorffCosineAndoyerLambert} calculator.
359
-
360
- @kwarg seed_name__datum_wrap: Optional C{B{seed}=None} and
361
- C{B{name}=NN} and keyword arguments for
362
- function L{pygeodesy.cosineAndoyerLambert}.
363
-
364
- @see: L{Hausdorff.__init__} for details about B{C{point1s}},
365
- B{C{seed}}, B{C{name}} and other exceptions.
366
- '''
367
- Hausdorff.__init__(self, point1s, **seed_name__datum_wrap)
368
- self._func = _formy.cosineAndoyerLambert
369
- self._func_ = _formy.cosineAndoyerLambert_
370
-
371
- if _FOR_DOCS:
372
- directed = Hausdorff.directed
373
- symmetric = Hausdorff.symmetric
374
-
375
-
376
- class HausdorffCosineForsytheAndoyerLambert(_HausdorffMeterRadians):
377
- '''Compute the C{Hausdorff} distance based on the I{angular} distance
378
- in C{radians} from function L{pygeodesy.cosineForsytheAndoyerLambert}.
379
- '''
380
- def __init__(self, point1s, **seed_name__datum_wrap):
381
- '''New L{HausdorffCosineForsytheAndoyerLambert} calculator.
382
-
383
- @kwarg seed_name__datum_wrap: Optional C{B{seed}=None} and
384
- C{B{name}=NN} and keyword arguments for function
385
- L{pygeodesy.cosineForsytheAndoyerLambert}.
386
-
387
- @see: L{Hausdorff.__init__} for details about B{C{point1s}},
388
- B{C{seed}}, B{C{name}} and other exceptions.
389
- '''
390
- Hausdorff.__init__(self, point1s, **seed_name__datum_wrap)
391
- self._func = _formy.cosineForsytheAndoyerLambert
392
- self._func_ = _formy.cosineForsytheAndoyerLambert_
393
-
394
- if _FOR_DOCS:
395
- directed = Hausdorff.directed
396
- symmetric = Hausdorff.symmetric
397
-
398
-
399
352
  class HausdorffCosineLaw(_HausdorffMeterRadians):
400
- '''Compute the C{Hausdorff} distance based on the I{angular}
401
- distance in C{radians} from function L{pygeodesy.cosineLaw_}.
353
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.cosineLaw_}.
402
354
 
403
355
  @note: See note at function L{pygeodesy.vincentys_}.
404
356
  '''
405
- def __init__(self, point1s, **seed_name__radius_wrap):
357
+ def __init__(self, point1s, **seed_name__corr_earth_wrap):
406
358
  '''New L{HausdorffCosineLaw} calculator.
407
359
 
408
- @kwarg seed_name__radius_wrap: Optional C{B{seed}=None} and
409
- C{B{name}=NN} and keyword arguments for
410
- function L{pygeodesy.cosineLaw}.
360
+ @kwarg seed_name__corr_earth_wrap: Optional C{B{seed}=None} and
361
+ C{B{name}=NN} and keyword arguments for function
362
+ L{pygeodesy.cosineLaw}.
411
363
 
412
364
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
413
365
  B{C{seed}}, B{C{name}} and other exceptions.
414
366
  '''
415
- Hausdorff.__init__(self, point1s, **seed_name__radius_wrap)
367
+ Hausdorff.__init__(self, point1s, **seed_name__corr_earth_wrap)
416
368
  self._func = _formy.cosineLaw
417
369
  self._func_ = _formy.cosineLaw_
418
370
 
@@ -422,8 +374,7 @@ class HausdorffCosineLaw(_HausdorffMeterRadians):
422
374
 
423
375
 
424
376
  class HausdorffDistanceTo(Hausdorff):
425
- '''Compute the C{Hausdorff} distance based on the distance from the
426
- points' C{LatLon.distanceTo} method, conventionally in C{meter}.
377
+ '''Compute the C{Hausdorff} distance the points' C{LatLon.distanceTo} method.
427
378
  '''
428
379
  _units = _unitsBase._Str_meter
429
380
 
@@ -460,8 +411,7 @@ class HausdorffDistanceTo(Hausdorff):
460
411
 
461
412
 
462
413
  class HausdorffEquirectangular(Hausdorff):
463
- '''Compute the C{Hausdorff} distance based on the C{equirectangular} distance
464
- in C{radians squared} like function L{pygeodesy.equirectangular}.
414
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.equirectangular}.
465
415
  '''
466
416
  _units = _unitsBase._Str_degrees2
467
417
 
@@ -486,8 +436,7 @@ class HausdorffEquirectangular(Hausdorff):
486
436
 
487
437
 
488
438
  class HausdorffEuclidean(_HausdorffMeterRadians):
489
- '''Compute the C{Hausdorff} distance based on the C{Euclidean}
490
- distance in C{radians} from function L{pygeodesy.euclidean_}.
439
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.euclidean_}.
491
440
  '''
492
441
  def __init__(self, point1s, **seed_name__adjust_radius_wrap):
493
442
  '''New L{HausdorffEuclidean} calculator.
@@ -509,8 +458,7 @@ class HausdorffEuclidean(_HausdorffMeterRadians):
509
458
 
510
459
 
511
460
  class HausdorffExact(Hausdorff):
512
- '''Compute the C{Hausdorff} distance based on the I{angular}
513
- distance in C{degrees} from method L{GeodesicExact}C{.Inverse}.
461
+ '''Compute the C{Hausdorff} distance with method L{GeodesicExact}C{.Inverse}.
514
462
  '''
515
463
  _units = _unitsBase._Str_degrees
516
464
 
@@ -539,8 +487,7 @@ class HausdorffExact(Hausdorff):
539
487
 
540
488
 
541
489
  class HausdorffFlatLocal(_HausdorffMeterRadians):
542
- '''Compute the C{Hausdorff} distance based on the I{angular} distance in
543
- C{radians squared} like function L{pygeodesy.flatLocal_}/L{pygeodesy.hubeny_}.
490
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.flatLocal_}/L{pygeodesy.hubeny_}.
544
491
  '''
545
492
  _units = _unitsBase._Str_radians2
546
493
 
@@ -566,8 +513,7 @@ class HausdorffFlatLocal(_HausdorffMeterRadians):
566
513
 
567
514
 
568
515
  class HausdorffFlatPolar(_HausdorffMeterRadians):
569
- '''Compute the C{Hausdorff} distance based on the I{angular}
570
- distance in C{radians} from function L{pygeodesy.flatPolar_}.
516
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.flatPolar_}.
571
517
  '''
572
518
  _wrap = False
573
519
 
@@ -591,8 +537,7 @@ class HausdorffFlatPolar(_HausdorffMeterRadians):
591
537
 
592
538
 
593
539
  class HausdorffHaversine(_HausdorffMeterRadians):
594
- '''Compute the C{Hausdorff} distance based on the I{angular}
595
- distance in C{radians} from function L{pygeodesy.haversine_}.
540
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.haversine_}.
596
541
 
597
542
  @note: See note under L{HausdorffVincentys}.
598
543
  '''
@@ -627,11 +572,10 @@ class HausdorffHubeny(HausdorffFlatLocal): # for Karl Hubeny
627
572
 
628
573
 
629
574
  class HausdorffKarney(Hausdorff):
630
- '''Compute the C{Hausdorff} distance based on the I{angular}
631
- distance in C{degrees} from I{Karney}'s U{geographiclib
632
- <https://PyPI.org/project/geographiclib>} U{Geodesic
633
- <https://GeographicLib.SourceForge.io/Python/doc/code.html>}
634
- Inverse method.
575
+ '''Compute the C{Hausdorff} distance with I{Karney}'s U{geographiclib
576
+ <https://PyPI.org/project/geographiclib>} U{geodesic.Geodesic
577
+ <https://GeographicLib.SourceForge.io/Python/doc/code.html>}C{.Inverse}
578
+ method.
635
579
  '''
636
580
  _units = _unitsBase._Str_degrees
637
581
 
@@ -659,8 +603,7 @@ class HausdorffKarney(Hausdorff):
659
603
 
660
604
 
661
605
  class HausdorffThomas(_HausdorffMeterRadians):
662
- '''Compute the C{Hausdorff} distance based on the I{angular}
663
- distance in C{radians} from function L{pygeodesy.thomas_}.
606
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.thomas_}.
664
607
  '''
665
608
  def __init__(self, point1s, **seed_name__datum_wrap):
666
609
  '''New L{HausdorffThomas} calculator.
@@ -682,8 +625,7 @@ class HausdorffThomas(_HausdorffMeterRadians):
682
625
 
683
626
 
684
627
  class HausdorffVincentys(_HausdorffMeterRadians):
685
- '''Compute the C{Hausdorff} distance based on the I{angular}
686
- distance in C{radians} from function L{pygeodesy.vincentys_}.
628
+ '''Compute the C{Hausdorff} distance with function L{pygeodesy.vincentys_}.
687
629
 
688
630
  @note: See note at function L{pygeodesy.vincentys_}.
689
631
  '''
@@ -882,7 +824,7 @@ def randomrangenerator(seed):
882
824
 
883
825
  # **) MIT License
884
826
  #
885
- # Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.
827
+ # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
886
828
  #
887
829
  # Permission is hereby granted, free of charge, to any person obtaining a
888
830
  # copy of this software and associated documentation files (the "Software"),