pygeodesy 24.5.15__py2.py3-none-any.whl → 24.6.1__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 (90) hide show
  1. {PyGeodesy-24.5.15.dist-info → PyGeodesy-24.6.1.dist-info}/METADATA +6 -5
  2. PyGeodesy-24.6.1.dist-info/RECORD +116 -0
  3. pygeodesy/__init__.py +4 -4
  4. pygeodesy/albers.py +41 -41
  5. pygeodesy/auxilats/__init__.py +1 -1
  6. pygeodesy/auxilats/__main__.py +2 -2
  7. pygeodesy/auxilats/auxAngle.py +32 -31
  8. pygeodesy/auxilats/auxLat.py +80 -51
  9. pygeodesy/azimuthal.py +123 -124
  10. pygeodesy/basics.py +46 -10
  11. pygeodesy/booleans.py +13 -14
  12. pygeodesy/cartesianBase.py +25 -23
  13. pygeodesy/clipy.py +3 -3
  14. pygeodesy/constants.py +3 -3
  15. pygeodesy/css.py +50 -42
  16. pygeodesy/datums.py +42 -41
  17. pygeodesy/deprecated/functions.py +9 -3
  18. pygeodesy/dms.py +6 -6
  19. pygeodesy/ecef.py +41 -41
  20. pygeodesy/ellipsoidalBase.py +41 -41
  21. pygeodesy/ellipsoidalBaseDI.py +3 -4
  22. pygeodesy/ellipsoidalGeodSolve.py +2 -2
  23. pygeodesy/ellipsoidalKarney.py +3 -3
  24. pygeodesy/ellipsoidalNvector.py +11 -12
  25. pygeodesy/ellipsoids.py +45 -38
  26. pygeodesy/elliptic.py +3 -4
  27. pygeodesy/epsg.py +4 -3
  28. pygeodesy/errors.py +52 -20
  29. pygeodesy/etm.py +68 -65
  30. pygeodesy/fmath.py +44 -49
  31. pygeodesy/formy.py +129 -115
  32. pygeodesy/frechet.py +118 -103
  33. pygeodesy/fstats.py +21 -14
  34. pygeodesy/fsums.py +124 -80
  35. pygeodesy/gars.py +10 -9
  36. pygeodesy/geodesicw.py +19 -17
  37. pygeodesy/geodesicx/__init__.py +1 -1
  38. pygeodesy/geodesicx/__main__.py +2 -2
  39. pygeodesy/geodesicx/gx.py +39 -33
  40. pygeodesy/geodesicx/gxarea.py +12 -9
  41. pygeodesy/geodesicx/gxbases.py +3 -4
  42. pygeodesy/geodesicx/gxline.py +6 -8
  43. pygeodesy/geodsolve.py +29 -28
  44. pygeodesy/geohash.py +60 -57
  45. pygeodesy/geoids.py +34 -32
  46. pygeodesy/hausdorff.py +114 -101
  47. pygeodesy/heights.py +137 -130
  48. pygeodesy/internals.py +16 -11
  49. pygeodesy/interns.py +3 -6
  50. pygeodesy/iters.py +19 -17
  51. pygeodesy/karney.py +21 -17
  52. pygeodesy/ktm.py +25 -18
  53. pygeodesy/latlonBase.py +12 -11
  54. pygeodesy/lazily.py +6 -6
  55. pygeodesy/lcc.py +24 -25
  56. pygeodesy/ltp.py +143 -113
  57. pygeodesy/ltpTuples.py +207 -150
  58. pygeodesy/mgrs.py +26 -26
  59. pygeodesy/named.py +172 -90
  60. pygeodesy/namedTuples.py +33 -25
  61. pygeodesy/nvectorBase.py +8 -8
  62. pygeodesy/osgr.py +40 -48
  63. pygeodesy/points.py +18 -18
  64. pygeodesy/props.py +29 -16
  65. pygeodesy/rhumb/__init__.py +1 -1
  66. pygeodesy/rhumb/aux_.py +13 -15
  67. pygeodesy/rhumb/bases.py +12 -5
  68. pygeodesy/rhumb/ekx.py +24 -18
  69. pygeodesy/rhumb/solve.py +13 -10
  70. pygeodesy/simplify.py +16 -16
  71. pygeodesy/solveBase.py +18 -18
  72. pygeodesy/sphericalBase.py +17 -21
  73. pygeodesy/sphericalTrigonometry.py +21 -21
  74. pygeodesy/streprs.py +5 -5
  75. pygeodesy/trf.py +13 -11
  76. pygeodesy/triaxials.py +68 -64
  77. pygeodesy/units.py +35 -35
  78. pygeodesy/unitsBase.py +24 -11
  79. pygeodesy/ups.py +66 -70
  80. pygeodesy/utily.py +3 -3
  81. pygeodesy/utm.py +183 -187
  82. pygeodesy/utmups.py +38 -38
  83. pygeodesy/utmupsBase.py +104 -106
  84. pygeodesy/vector2d.py +6 -7
  85. pygeodesy/vector3d.py +16 -17
  86. pygeodesy/vector3dBase.py +4 -5
  87. pygeodesy/webmercator.py +43 -51
  88. PyGeodesy-24.5.15.dist-info/RECORD +0 -116
  89. {PyGeodesy-24.5.15.dist-info → PyGeodesy-24.6.1.dist-info}/WHEEL +0 -0
  90. {PyGeodesy-24.5.15.dist-info → PyGeodesy-24.6.1.dist-info}/top_level.txt +0 -0
pygeodesy/hausdorff.py CHANGED
@@ -74,10 +74,10 @@ import pygeodesy.formy as _formy
74
74
  from pygeodesy.interns import NN, _i_, _j_, _units_
75
75
  # from pygeodesy.iters import points2 # from .points
76
76
  from pygeodesy.lazily import _ALL_LAZY, _FOR_DOCS
77
- from pygeodesy.named import _Named, _NamedTuple, _Pass
77
+ from pygeodesy.named import _name2__, _Named, _NamedTuple, _Pass
78
78
  # from pygeodesy.namedTuples import PhiLam2Tuple # from .points
79
79
  from pygeodesy.points import _distanceTo, points2 as _points2, PhiLam2Tuple, radians
80
- from pygeodesy.props import Property_RO, property_doc_, property_RO
80
+ from pygeodesy.props import Property, Property_RO, property_doc_, property_RO
81
81
  from pygeodesy.units import Float, Number_, _xUnit, _xUnits
82
82
  from pygeodesy.unitsBase import _Str_degrees, _Str_degrees2, _Str_meter, _Str_NN, \
83
83
  _Str_radians, _Str_radians2
@@ -86,7 +86,7 @@ from pygeodesy.unitsBase import _Str_degrees, _Str_degrees2, _Str_meter, _Str_NN
86
86
  from random import Random
87
87
 
88
88
  __all__ = _ALL_LAZY.hausdorff
89
- __version__ = '24.04.07'
89
+ __version__ = '24.05.26'
90
90
 
91
91
 
92
92
  class HausdorffError(PointsError):
@@ -100,35 +100,36 @@ class Hausdorff(_Named):
100
100
  be overloaded.
101
101
  '''
102
102
  _datum = _WGS84
103
- _func = None # formy function
103
+ _func = None # formy function/property
104
104
  _kwds = {} # func_ options
105
105
  _model = ()
106
106
  _seed = None
107
107
  _units = _Str_NN # XXX Str to _Pass and for backward compatibility
108
108
 
109
- def __init__(self, point1s, seed=None, name=NN, units=NN, **kwds):
109
+ def __init__(self, point1s, seed=None, units=NN, **name__kwds):
110
110
  '''New C{Hausdorff...} calculator.
111
111
 
112
- @arg point1s: Initial set of points, aka the C{model} or
113
- C{template} (C{LatLon}[], C{Numpy2LatLon}[],
114
- C{Tuple2LatLon}[] or C{other}[]).
115
- @kwarg seed: Random sampling seed (C{any}) or C{None}, C{0}
116
- or C{False} for no U{random sampling<https://
117
- Publik.TUWien.ac.AT/files/PubDat_247739.pdf>}.
118
- @kwarg name: Optional name for this interpolator (C{str}).
112
+ @arg point1s: Initial set of points, aka the C{model} or C{template}
113
+ (C{LatLon}[], C{Numpy2LatLon}[], C{Tuple2LatLon}[] or
114
+ C{other}[]).
115
+ @kwarg seed: Random sampling seed (C{any}) or C{None}, C{0} or C{False}
116
+ for no U{random sampling<https://Publik.TUWien.ac.AT/files/
117
+ PubDat_247739.pdf>}.
119
118
  @kwarg units: Optional, the distance units (C{Unit} or C{str}).
120
- @kwarg kwds: Optional keyword argument for distance function,
121
- retrievable with property C{kwds}.
119
+ @kwarg name__kwds: Optional calculator/interpolator C{B{name}=NN} (C{str})
120
+ and keyword arguments for the distance function, retrievable
121
+ with property C{kwds}.
122
122
 
123
- @raise HausdorffError: Insufficient number of B{C{point1s}}
124
- or an invalid B{C{point1}}, B{C{seed}}
125
- or B{C{units}}.
123
+ @raise HausdorffError: Insufficient number of B{C{point1s}} or an invalid
124
+ B{C{point1}}, B{C{seed}} or B{C{units}}.
126
125
  '''
126
+ name, kwds = _name2__(**name__kwds) # name__=self.__class__
127
+ if name:
128
+ self.name = name
129
+
127
130
  _, self._model = self._points2(point1s)
128
131
  if seed:
129
132
  self.seed = seed
130
- if name:
131
- self.name = name
132
133
  if units: # and not self.units:
133
134
  self.units = units
134
135
  if kwds:
@@ -178,6 +179,15 @@ class Hausdorff(_Named):
178
179
  return self._func(point1.lat, point1.lon,
179
180
  point2.lat, point2.lon, **self._kwds)
180
181
 
182
+ @Property
183
+ def _func(self):
184
+ '''(INTERNAL) I{Must be overloaded}.'''
185
+ self._notOverloaded(**self.kwds)
186
+
187
+ @_func.setter_ # PYCHOK setter_underscore!
188
+ def _func(self, func):
189
+ return _formy._Propy(func, 4, self.kwds)
190
+
181
191
  def _hausdorff_(self, point2s, both, early, distance):
182
192
  _, ps2 = self._points2(point2s)
183
193
  return _hausdorff_(self._model, ps2, both, early, self.seed,
@@ -288,8 +298,7 @@ class HausdorffRadians(Hausdorff):
288
298
  symmetric = Hausdorff.symmetric
289
299
 
290
300
  def distance(self, point1, point2): # PYCHOK no cover
291
- '''Return the distance in C{radians} between B{C{point1}} and B{C{point2}}.
292
- I{Must be overloaded}.'''
301
+ '''I{Must be overloaded}.'''
293
302
  self._notOverloaded(point1, point2)
294
303
 
295
304
  def point(self, point):
@@ -332,26 +341,31 @@ class _HausdorffMeterRadians(Hausdorff):
332
341
  '''
333
342
  return self._hausdorff_(point2s, True, early, _formy._radistance(self))
334
343
 
335
- def _func_(self, *args, **kwds): # PYCHOK no cover
344
+ @Property
345
+ def _func_(self):
336
346
  '''(INTERNAL) I{Must be overloaded}.'''
337
- self._notOverloaded(*args, **kwds)
347
+ self._notOverloaded(**self.kwds)
348
+
349
+ @_func_.setter_ # PYCHOK setter_underscore!
350
+ def _func_(self, func):
351
+ return _formy._Propy(func, 3, self.kwds)
338
352
 
339
353
 
340
354
  class HausdorffCosineAndoyerLambert(_HausdorffMeterRadians):
341
355
  '''Compute the C{Hausdorff} distance based on the I{angular} distance
342
356
  in C{radians} from function L{pygeodesy.cosineAndoyerLambert}.
343
357
  '''
344
- def __init__(self, point1s, seed=None, name=NN, **datum_wrap):
358
+ def __init__(self, point1s, **seed_name__datum_wrap):
345
359
  '''New L{HausdorffCosineAndoyerLambert} calculator.
346
360
 
347
- @see: L{Hausdorff.__init__} for details about B{C{point1s}},
348
- B{C{seed}}, B{C{name}} and other exceptions.
361
+ @kwarg seed_name__datum_wrap: Optional C{B{seed}=None} and
362
+ C{B{name}=NN} and keyword arguments for
363
+ function L{pygeodesy.cosineAndoyerLambert}.
349
364
 
350
- @kwarg datum_wrap: Optional keyword arguments for function
351
- L{pygeodesy.cosineAndoyerLambert}.
365
+ @see: L{Hausdorff.__init__} for details about B{C{point1s}},
366
+ B{C{seed}}, B{C{name}} and other exceptions.
352
367
  '''
353
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
354
- **datum_wrap)
368
+ Hausdorff.__init__(self, point1s, **seed_name__datum_wrap)
355
369
  self._func = _formy.cosineAndoyerLambert
356
370
  self._func_ = _formy.cosineAndoyerLambert_
357
371
 
@@ -364,17 +378,17 @@ class HausdorffCosineForsytheAndoyerLambert(_HausdorffMeterRadians):
364
378
  '''Compute the C{Hausdorff} distance based on the I{angular} distance
365
379
  in C{radians} from function L{pygeodesy.cosineForsytheAndoyerLambert}.
366
380
  '''
367
- def __init__(self, point1s, seed=None, name=NN, **datum_wrap):
381
+ def __init__(self, point1s, **seed_name__datum_wrap):
368
382
  '''New L{HausdorffCosineForsytheAndoyerLambert} calculator.
369
383
 
384
+ @kwarg seed_name__datum_wrap: Optional C{B{seed}=None} and
385
+ C{B{name}=NN} and keyword arguments for function
386
+ L{pygeodesy.cosineForsytheAndoyerLambert}.
387
+
370
388
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
371
389
  B{C{seed}}, B{C{name}} and other exceptions.
372
-
373
- @kwarg datum_wrap: Optional keyword arguments for function
374
- L{pygeodesy.cosineAndoyerLambert}.
375
390
  '''
376
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
377
- **datum_wrap)
391
+ Hausdorff.__init__(self, point1s, **seed_name__datum_wrap)
378
392
  self._func = _formy.cosineForsytheAndoyerLambert
379
393
  self._func_ = _formy.cosineForsytheAndoyerLambert_
380
394
 
@@ -389,17 +403,17 @@ class HausdorffCosineLaw(_HausdorffMeterRadians):
389
403
 
390
404
  @note: See note at function L{pygeodesy.vincentys_}.
391
405
  '''
392
- def __init__(self, point1s, seed=None, name=NN, **radius_wrap):
406
+ def __init__(self, point1s, **seed_name__radius_wrap):
393
407
  '''New L{HausdorffCosineLaw} calculator.
394
408
 
395
- @kwarg radius_wrap: Optional keyword arguments for function
396
- L{pygeodesy.cosineLaw}.
409
+ @kwarg seed_name__radius_wrap: Optional C{B{seed}=None} and
410
+ C{B{name}=NN} and keyword arguments for
411
+ function L{pygeodesy.cosineLaw}.
397
412
 
398
413
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
399
414
  B{C{seed}}, B{C{name}} and other exceptions.
400
415
  '''
401
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
402
- **radius_wrap)
416
+ Hausdorff.__init__(self, point1s, **seed_name__radius_wrap)
403
417
  self._func = _formy.cosineLaw
404
418
  self._func_ = _formy.cosineLaw_
405
419
 
@@ -414,12 +428,12 @@ class HausdorffDistanceTo(Hausdorff):
414
428
  '''
415
429
  _units = _Str_meter
416
430
 
417
- def __init__(self, point1s, seed=None, name=NN, **distanceTo_kwds):
431
+ def __init__(self, point1s, **seed_name__distanceTo_kwds):
418
432
  '''New L{HausdorffDistanceTo} calculator.
419
433
 
420
- @kwarg distanceTo_kwds: Optional keyword arguments for each
421
- B{C{point1s}}' C{LatLon.distanceTo}
422
- method.
434
+ @kwarg seed_name__distanceTo_kwds: Optional C{B{seed}=None} and
435
+ C{B{name}=NN} and keyword arguments for each
436
+ B{C{point1s}}' C{LatLon.distanceTo} method.
423
437
 
424
438
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
425
439
  B{C{seed}}, B{C{name}} and other exceptions.
@@ -428,8 +442,7 @@ class HausdorffDistanceTo(Hausdorff):
428
442
  I{must} be instances of the same ellipsoidal or
429
443
  spherical C{LatLon} class.
430
444
  '''
431
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
432
- **distanceTo_kwds)
445
+ Hausdorff.__init__(self, point1s, **seed_name__distanceTo_kwds)
433
446
 
434
447
  if _FOR_DOCS:
435
448
  directed = Hausdorff.directed
@@ -449,23 +462,23 @@ class HausdorffDistanceTo(Hausdorff):
449
462
 
450
463
  class HausdorffEquirectangular(Hausdorff):
451
464
  '''Compute the C{Hausdorff} distance based on the C{equirectangular} distance
452
- in C{radians squared} like function L{pygeodesy.equirectangular_}.
465
+ in C{radians squared} like function L{pygeodesy.equirectangular}.
453
466
  '''
454
467
  _units = _Str_degrees2
455
468
 
456
- def __init__(self, point1s, seed=None, name=NN, **adjust_limit_wrap):
469
+ def __init__(self, point1s, **seed_name__adjust_limit_wrap):
457
470
  '''New L{HausdorffEquirectangular} calculator.
458
471
 
459
- @kwarg adjust_limit_wrap: Optional keyword arguments for function
460
- L{pygeodesy.equirectangular_} I{with default}
461
- C{B{limit}=0} for I{backward compatibility}.
472
+ @kwarg seed_name__adjust_limit_wrap: Optional C{B{seed}=None} and
473
+ C{B{name}=NN} and keyword arguments for function
474
+ L{pygeodesy.equirectangular} I{with default}
475
+ C{B{limit}=0} for I{backward compatibility}.
462
476
 
463
477
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
464
478
  B{C{seed}}, B{C{name}} and other exceptions.
465
479
  '''
466
- adjust_limit_wrap = _xkwds(adjust_limit_wrap, limit=0)
467
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
468
- **adjust_limit_wrap)
480
+ Hausdorff.__init__(self, point1s, **_xkwds(seed_name__adjust_limit_wrap,
481
+ limit=0))
469
482
  self._func = _formy._equirectangular # helper
470
483
 
471
484
  if _FOR_DOCS:
@@ -477,17 +490,17 @@ class HausdorffEuclidean(_HausdorffMeterRadians):
477
490
  '''Compute the C{Hausdorff} distance based on the C{Euclidean}
478
491
  distance in C{radians} from function L{pygeodesy.euclidean_}.
479
492
  '''
480
- def __init__(self, point1s, seed=None, name=NN, **adjust_wrap):
493
+ def __init__(self, point1s, **seed_name__adjust_radius_wrap):
481
494
  '''New L{HausdorffEuclidean} calculator.
482
495
 
483
- @kwarg adjust_radius_wrap: Optional keyword arguments for
484
- function L{pygeodesy.euclidean}.
496
+ @kwarg seed_name__adjust_radius_wrap: Optional C{B{seed}=None}
497
+ and C{B{name}=NN} and keyword arguments for
498
+ function L{pygeodesy.euclidean}.
485
499
 
486
500
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
487
501
  B{C{seed}}, B{C{name}} and other exceptions.
488
502
  '''
489
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
490
- **adjust_wrap)
503
+ Hausdorff.__init__(self, point1s, **seed_name__adjust_radius_wrap)
491
504
  self._func = _formy.euclidean
492
505
  self._func_ = _formy.euclidean_
493
506
 
@@ -502,22 +515,22 @@ class HausdorffExact(Hausdorff):
502
515
  '''
503
516
  _units = _Str_degrees
504
517
 
505
- def __init__(self, point1s, seed=None, name=NN, datum=None, **wrap):
518
+ def __init__(self, point1s, datum=None, **seed_name__wrap):
506
519
  '''New L{HausdorffKarney} calculator.
507
520
 
508
- @kwarg datum: Datum to override the default C{Datums.WGS84} and
509
- first B{C{point1s}}' datum (L{Datum}, L{Ellipsoid},
510
- L{Ellipsoid2} or L{a_f2Tuple}).
511
- @kwarg wrap: Optional keyword argument for method C{Inverse1}
512
- of class L{geodesicx.GeodesicExact}.
513
-
514
- @see: L{Hausdorff.__init__} for details about B{C{point1s}},
515
- B{C{seed}}, B{C{name}} and other exceptions.
521
+ @kwarg datum: Datum to override the default C{Datums.WGS84} and first
522
+ B{C{point1s}}' datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}
523
+ or L{a_f2Tuple}).
524
+ @kwarg seed_name__wrap: Optional C{B{seed}=None} and C{B{name}=NN} and
525
+ keyword argument for method C{Inverse1} of class
526
+ L{geodesicx.GeodesicExact}.
516
527
 
517
528
  @raise TypeError: Invalid B{C{datum}}.
529
+
530
+ @see: L{Hausdorff.__init__} for details about B{C{point1s}}, B{C{seed}},
531
+ B{C{name}} and other exceptions.
518
532
  '''
519
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
520
- **wrap)
533
+ Hausdorff.__init__(self, point1s, **seed_name__wrap)
521
534
  self._datum_setter(datum)
522
535
  self._func = self.datum.ellipsoid.geodesicx.Inverse1 # note -x
523
536
 
@@ -532,19 +545,19 @@ class HausdorffFlatLocal(_HausdorffMeterRadians):
532
545
  '''
533
546
  _units = _Str_radians2
534
547
 
535
- def __init__(self, point1s, seed=None, name=NN, **datum_scaled_wrap):
548
+ def __init__(self, point1s, **seed_name__datum_scaled_wrap):
536
549
  '''New L{HausdorffFlatLocal}/L{HausdorffHubeny} calculator.
537
550
 
538
- @kwarg datum_scaled_wrap: Optional keyword arguments for
539
- function L{pygeodesy.flatLocal}.
551
+ @kwarg seed_name__datum_scaled_wrap: Optional C{B{seed}=None} and
552
+ C{B{name}=NN} and keyword arguments for function
553
+ L{pygeodesy.flatLocal}.
540
554
 
541
555
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
542
556
  B{C{seed}}, B{C{name}} and other exceptions.
543
557
 
544
558
  @note: The distance C{units} are C{radians squared}, not C{radians}.
545
559
  '''
546
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
547
- **datum_scaled_wrap)
560
+ Hausdorff.__init__(self, point1s, **seed_name__datum_scaled_wrap)
548
561
  self._func = _formy.flatLocal
549
562
  self._func_ = self.datum.ellipsoid._hubeny_2
550
563
 
@@ -559,17 +572,17 @@ class HausdorffFlatPolar(_HausdorffMeterRadians):
559
572
  '''
560
573
  _wrap = False
561
574
 
562
- def __init__(self, points, seed=None, name=NN, **radius_wrap):
575
+ def __init__(self, points, **seed_name__radius_wrap):
563
576
  '''New L{HausdorffFlatPolar} calculator.
564
577
 
565
- @kwarg radius_wrap: Optional keyword arguments for function
566
- L{pygeodesy.flatPolar}.
578
+ @kwarg seed_name__radius_wrap: Optional C{B{seed}=None}
579
+ and C{B{name}=NN} and keyword arguments
580
+ for function L{pygeodesy.flatPolar}.
567
581
 
568
582
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
569
583
  B{C{seed}}, B{C{name}} and other exceptions.
570
584
  '''
571
- Hausdorff.__init__(self, points, seed=seed, name=name,
572
- **radius_wrap)
585
+ Hausdorff.__init__(self, points, **seed_name__radius_wrap)
573
586
  self._func = _formy.flatPolar
574
587
  self._func_ = _formy.flatPolar_
575
588
 
@@ -586,17 +599,17 @@ class HausdorffHaversine(_HausdorffMeterRadians):
586
599
  '''
587
600
  _wrap = False
588
601
 
589
- def __init__(self, points, seed=None, name=NN, **radius_wrap):
602
+ def __init__(self, points, **seed_name__radius_wrap):
590
603
  '''New L{HausdorffHaversine} calculator.
591
604
 
592
- @kwarg radius_wrap: Optional keyword arguments for function
593
- L{pygeodesy.haversine}.
605
+ @kwarg seed_name__radius_wrap: Optional C{B{seed}=None}
606
+ and C{B{name}=NN} and keyword arguments
607
+ for function L{pygeodesy.haversine}.
594
608
 
595
609
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
596
610
  B{C{seed}}, B{C{name}} and other exceptions.
597
611
  '''
598
- Hausdorff.__init__(self, points, seed=seed, name=name,
599
- **radius_wrap)
612
+ Hausdorff.__init__(self, points, **seed_name__radius_wrap)
600
613
  self._func = _formy.haversine
601
614
  self._func_ = _formy.haversine_
602
615
 
@@ -623,14 +636,15 @@ class HausdorffKarney(Hausdorff):
623
636
  '''
624
637
  _units = _Str_degrees
625
638
 
626
- def __init__(self, point1s, datum=None, seed=None, name=NN, **wrap):
639
+ def __init__(self, point1s, datum=None, **seed_name__wrap):
627
640
  '''New L{HausdorffKarney} calculator.
628
641
 
629
642
  @kwarg datum: Datum to override the default C{Datums.WGS84} and
630
643
  first B{C{knots}}' datum (L{Datum}, L{Ellipsoid},
631
644
  L{Ellipsoid2} or L{a_f2Tuple}).
632
- @kwarg wrap: Optional keyword argument for method C{Inverse1}
633
- of class L{geodesicw.Geodesic}.
645
+ @kwarg seed_name__wrap: Optional C{B{seed}=None} and C{B{name}=NN}
646
+ and keyword arguments for method C{Inverse1} of
647
+ class L{geodesicw.Geodesic}.
634
648
 
635
649
  @raise ImportError: Package U{geographiclib
636
650
  <https://PyPI.org/project/geographiclib>} missing.
@@ -640,8 +654,7 @@ class HausdorffKarney(Hausdorff):
640
654
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
641
655
  B{C{seed}}, B{C{name}} and other exceptions.
642
656
  '''
643
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
644
- **wrap)
657
+ Hausdorff.__init__(self, point1s, **seed_name__wrap)
645
658
  self._datum_setter(datum)
646
659
  self._func = self.datum.ellipsoid.geodesic.Inverse1
647
660
 
@@ -650,17 +663,17 @@ class HausdorffThomas(_HausdorffMeterRadians):
650
663
  '''Compute the C{Hausdorff} distance based on the I{angular}
651
664
  distance in C{radians} from function L{pygeodesy.thomas_}.
652
665
  '''
653
- def __init__(self, point1s, seed=None, name=NN, **datum_wrap):
666
+ def __init__(self, point1s, **seed_name__datum_wrap):
654
667
  '''New L{HausdorffThomas} calculator.
655
668
 
656
- @kwarg datum_wrap: Optional keyword argument for function
657
- L{pygeodesy.thomas}.
669
+ @kwarg seed_name__datum_wrap: Optional C{B{seed}=None}
670
+ and C{B{name}=NN} and keyword arguments
671
+ for function L{pygeodesy.thomas}.
658
672
 
659
673
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
660
674
  B{C{seed}}, B{C{name}} and other exceptions.
661
675
  '''
662
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
663
- **datum_wrap)
676
+ Hausdorff.__init__(self, point1s, **seed_name__datum_wrap)
664
677
  self._func = _formy.thomas
665
678
  self._func_ = _formy.thomas_
666
679
 
@@ -677,17 +690,17 @@ class HausdorffVincentys(_HausdorffMeterRadians):
677
690
  '''
678
691
  _wrap = False
679
692
 
680
- def __init__(self, point1s, seed=None, name=NN, **radius_wrap):
693
+ def __init__(self, point1s, **seed_name__radius_wrap):
681
694
  '''New L{HausdorffVincentys} calculator.
682
695
 
683
- @kwarg radius_wrap: Optional keyword arguments for function
684
- L{pygeodesy.vincentys}.
696
+ @kwarg seed_name__radius_wrap: Optional C{B{seed}=None}
697
+ and C{B{name}=NN} and keyword arguments
698
+ for function L{pygeodesy.vincentys}.
685
699
 
686
700
  @see: L{Hausdorff.__init__} for details about B{C{point1s}},
687
701
  B{C{seed}}, B{C{name}} and other exceptions.
688
702
  '''
689
- Hausdorff.__init__(self, point1s, seed=seed, name=name,
690
- **radius_wrap)
703
+ Hausdorff.__init__(self, point1s, **seed_name__radius_wrap)
691
704
  self._func = _formy.vincentys
692
705
  self._func_ = _formy.vincentys_
693
706