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/lcc.py CHANGED
@@ -30,26 +30,25 @@ from pygeodesy.constants import EPS, EPS02, PI_2, _float as _F, _0_0, _0_5, \
30
30
  from pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase as _LLEB
31
31
  from pygeodesy.datums import Datums, _ellipsoidal_datum
32
32
  from pygeodesy.errors import _IsnotError, _ValueError
33
- from pygeodesy.fmath import _ALL_LAZY, hypot
33
+ from pygeodesy.fmath import hypot, _ALL_LAZY
34
34
  from pygeodesy.interns import NN, _COMMASPACE_, _ellipsoidal_, _GRS80_, _k0_, \
35
- _lat0_, _lon0_, _m_, _NAD83_, _NTF_, _SPACE_, _WGS84_, \
36
- _C_ # PYCHOK used!
35
+ _lat0_, _lon0_, _m_, _NAD83_, _NTF_, _SPACE_, \
36
+ _WGS84_, _C_ # PYCHOK used!
37
37
  # from pygeodesy.lazily import _ALL_LAZY # from .fmath
38
- from pygeodesy.named import _lazyNamedEnumItem as _lazy, _NamedBase, \
39
- _NamedEnum, _NamedEnumItem, nameof, _xnamed
38
+ from pygeodesy.named import _lazyNamedEnumItem as _lazy, _name2__, _NamedBase, \
39
+ _NamedEnum, _NamedEnumItem, _xnamed
40
40
  from pygeodesy.namedTuples import EasNor3Tuple, LatLonDatum3Tuple, \
41
41
  LatLon2Tuple, _LL4Tuple, PhiLam2Tuple
42
- from pygeodesy.props import deprecated_method, Property, Property_RO, \
43
- _update_all
42
+ from pygeodesy.props import deprecated_method, Property, Property_RO, _update_all
44
43
  from pygeodesy.streprs import Fmt, _fstrENH2, _xzipairs
45
- from pygeodesy.units import Easting, Height, _heigHt, Lam_, Northing, \
46
- Phi_, Scalar_
44
+ from pygeodesy.units import Easting, Height, _heigHt, Lam_, Northing, Phi_, \
45
+ Scalar_
47
46
  from pygeodesy.utily import atan1, degrees90, degrees180, sincos2, tanPI_2_2
48
47
 
49
48
  from math import atan, fabs, log, radians, sin, sqrt
50
49
 
51
50
  __all__ = _ALL_LAZY.lcc
52
- __version__ = '23.12.03'
51
+ __version__ = '24.05.24'
53
52
 
54
53
  _E0_ = 'E0'
55
54
  _N0_ = 'N0'
@@ -83,7 +82,7 @@ class Conic(_NamedEnumItem):
83
82
  _r0 = _0_0 # precomputed rho0 (C{float})
84
83
 
85
84
  def __init__(self, latlon0, par1, par2=None, E0=0, N0=0,
86
- k0=1, opt3=0, name=NN, auth=NN):
85
+ k0=1, opt3=0, auth=NN, **name):
87
86
  '''New Lambert conformal conic projection.
88
87
 
89
88
  @arg latlon0: Origin with (ellipsoidal) datum (C{LatLon}).
@@ -93,8 +92,8 @@ class Conic(_NamedEnumItem):
93
92
  @kwarg N0: Optional, false northing (C{meter}).
94
93
  @kwarg k0: Optional scale factor (C{scalar}).
95
94
  @kwarg opt3: Optional meridian (C{degrees180}).
96
- @kwarg name: Optional name of the conic (C{str}).
97
95
  @kwarg auth: Optional authentication authority (C{str}).
96
+ @kwarg name: Optional C{B{name}=NN} for the conic (C{str}).
98
97
 
99
98
  @return: A Lambert projection (L{Conic}).
100
99
 
@@ -283,7 +282,7 @@ class Conic(_NamedEnumItem):
283
282
  '''Return this conic as a string.
284
283
 
285
284
  @kwarg prec: Number of (decimal) digits, unstripped (C{int}).
286
- @kwarg name: Override name (C{str}) or C{None} to exclude
285
+ @kwarg name: Overriding name (C{str}) or C{None} to exclude
287
286
  this conic's name.
288
287
 
289
288
  @return: Conic attributes (C{str}).
@@ -400,14 +399,14 @@ class Lcc(_NamedBase):
400
399
  _height = 0 # height (C{meter})
401
400
  _northing = _0_0 # Northing (C{float})
402
401
 
403
- def __init__(self, e, n, h=0, conic=Conics.WRF_Lb, name=NN):
402
+ def __init__(self, e, n, h=0, conic=Conics.WRF_Lb, **name):
404
403
  '''New L{Lcc} Lamber conformal conic position.
405
404
 
406
405
  @arg e: Easting (C{meter}).
407
406
  @arg n: Northing (C{meter}).
408
407
  @kwarg h: Optional height (C{meter}).
409
408
  @kwarg conic: Optional, the conic projection (L{Conic}).
410
- @kwarg name: Optional name (C{str}).
409
+ @kwarg name: Optional C{B{name}=NN} (C{str}).
411
410
 
412
411
  @return: The Lambert location (L{Lcc}).
413
412
 
@@ -614,27 +613,27 @@ class Lcc(_NamedBase):
614
613
  return t if sep is None else sep.join(t)
615
614
 
616
615
 
617
- def toLcc(latlon, conic=Conics.WRF_Lb, height=None, Lcc=Lcc, name=NN,
618
- **Lcc_kwds):
616
+ def toLcc(latlon, conic=Conics.WRF_Lb, height=None, Lcc=Lcc,
617
+ **name_Lcc_kwds):
619
618
  '''Convert an (ellipsoidal) geodetic point to a I{Lambert} location.
620
619
 
621
620
  @arg latlon: Ellipsoidal point (C{LatLon}).
622
621
  @kwarg conic: Optional Lambert projection to use (L{Conic}).
623
622
  @kwarg height: Optional height for the point, overriding the
624
623
  default height (C{meter}).
625
- @kwarg Lcc: Optional class to return the I{Lambert} location
626
- (L{Lcc}).
627
- @kwarg name: Optional B{C{Lcc}} name (C{str}).
628
- @kwarg Lcc_kwds: Optional, additional B{C{Lcc}} keyword
629
- arguments, ignored if B{C{Lcc}} is C{None}.
624
+ @kwarg Lcc: Class to return the I{Lambert} location (L{Lcc}).
625
+ @kwarg name_Lcc_kwds: Optional C{B{name}=NN} (C{str}) for the
626
+ location and optional, additional B{C{Lcc}} keyword
627
+ arguments, ignored if B{C{Lcc}} is C{None}.
630
628
 
631
629
  @return: The I{Lambert} location (L{Lcc}) or an
632
- L{EasNor3Tuple}C{(easting, northing, height)}
633
- if C{B{Lcc} is None}.
630
+ L{EasNor3Tuple}C{(easting, northing, height)} if
631
+ C{B{Lcc} is None}.
634
632
 
635
633
  @raise TypeError: If B{C{latlon}} is not ellipsoidal.
636
634
  '''
637
635
  _xinstanceof(_LLEB, latlon=latlon)
636
+ name, Lcc_kwds = _name2__(name_Lcc_kwds)
638
637
 
639
638
  a, b = latlon.philam
640
639
  c = conic.toDatum(latlon.datum)
@@ -649,7 +648,7 @@ def toLcc(latlon, conic=Conics.WRF_Lb, height=None, Lcc=Lcc, name=NN,
649
648
  h = _heigHt(latlon, height)
650
649
  r = EasNor3Tuple(e, n, h) if Lcc is None else \
651
650
  Lcc(e, n, h=h, conic=c, **Lcc_kwds)
652
- return _xnamed(r, name or nameof(latlon))
651
+ return _xnamed(r, name) if name else r
653
652
 
654
653
 
655
654
  if __name__ == '__main__':