pygeodesy 24.5.15__py2.py3-none-any.whl → 24.5.24__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 (72) hide show
  1. {PyGeodesy-24.5.15.dist-info → PyGeodesy-24.5.24.dist-info}/METADATA +2 -2
  2. PyGeodesy-24.5.24.dist-info/RECORD +116 -0
  3. pygeodesy/__init__.py +1 -1
  4. pygeodesy/albers.py +41 -41
  5. pygeodesy/auxilats/__init__.py +1 -1
  6. pygeodesy/auxilats/auxAngle.py +32 -31
  7. pygeodesy/auxilats/auxLat.py +80 -51
  8. pygeodesy/azimuthal.py +123 -124
  9. pygeodesy/basics.py +8 -6
  10. pygeodesy/booleans.py +11 -12
  11. pygeodesy/cartesianBase.py +25 -23
  12. pygeodesy/clipy.py +3 -3
  13. pygeodesy/css.py +50 -42
  14. pygeodesy/datums.py +42 -41
  15. pygeodesy/dms.py +6 -6
  16. pygeodesy/ecef.py +23 -24
  17. pygeodesy/ellipsoidalBase.py +28 -27
  18. pygeodesy/ellipsoidalBaseDI.py +3 -4
  19. pygeodesy/ellipsoidalNvector.py +11 -12
  20. pygeodesy/ellipsoids.py +41 -35
  21. pygeodesy/elliptic.py +3 -4
  22. pygeodesy/epsg.py +4 -3
  23. pygeodesy/errors.py +34 -12
  24. pygeodesy/etm.py +62 -54
  25. pygeodesy/fmath.py +36 -30
  26. pygeodesy/formy.py +93 -65
  27. pygeodesy/frechet.py +117 -102
  28. pygeodesy/fstats.py +21 -14
  29. pygeodesy/fsums.py +67 -57
  30. pygeodesy/gars.py +10 -9
  31. pygeodesy/geodesicw.py +19 -17
  32. pygeodesy/geodesicx/__init__.py +1 -1
  33. pygeodesy/geodesicx/gx.py +40 -32
  34. pygeodesy/geodesicx/gxarea.py +12 -9
  35. pygeodesy/geodesicx/gxbases.py +3 -4
  36. pygeodesy/geodesicx/gxline.py +6 -8
  37. pygeodesy/geodsolve.py +28 -27
  38. pygeodesy/geohash.py +47 -44
  39. pygeodesy/geoids.py +34 -32
  40. pygeodesy/hausdorff.py +112 -99
  41. pygeodesy/heights.py +134 -127
  42. pygeodesy/internals.py +14 -9
  43. pygeodesy/interns.py +3 -6
  44. pygeodesy/iters.py +19 -17
  45. pygeodesy/karney.py +15 -12
  46. pygeodesy/ktm.py +25 -18
  47. pygeodesy/latlonBase.py +12 -11
  48. pygeodesy/lazily.py +4 -4
  49. pygeodesy/lcc.py +24 -25
  50. pygeodesy/ltp.py +83 -71
  51. pygeodesy/ltpTuples.py +7 -5
  52. pygeodesy/mgrs.py +3 -3
  53. pygeodesy/named.py +126 -42
  54. pygeodesy/namedTuples.py +33 -25
  55. pygeodesy/nvectorBase.py +7 -7
  56. pygeodesy/points.py +9 -9
  57. pygeodesy/rhumb/__init__.py +1 -1
  58. pygeodesy/solveBase.py +5 -5
  59. pygeodesy/sphericalTrigonometry.py +5 -5
  60. pygeodesy/streprs.py +5 -5
  61. pygeodesy/trf.py +5 -5
  62. pygeodesy/triaxials.py +67 -63
  63. pygeodesy/units.py +35 -35
  64. pygeodesy/unitsBase.py +24 -11
  65. pygeodesy/utm.py +53 -53
  66. pygeodesy/utmupsBase.py +10 -8
  67. pygeodesy/vector2d.py +6 -7
  68. pygeodesy/vector3d.py +16 -17
  69. pygeodesy/vector3dBase.py +4 -5
  70. PyGeodesy-24.5.15.dist-info/RECORD +0 -116
  71. {PyGeodesy-24.5.15.dist-info → PyGeodesy-24.5.24.dist-info}/WHEEL +0 -0
  72. {PyGeodesy-24.5.15.dist-info → PyGeodesy-24.5.24.dist-info}/top_level.txt +0 -0
pygeodesy/utmupsBase.py CHANGED
@@ -11,14 +11,14 @@ from pygeodesy.constants import _float, _0_0, _0_5, _N_90_0, _180_0
11
11
  from pygeodesy.datums import _ellipsoidal_datum, _WGS84
12
12
  from pygeodesy.dms import degDMS, parseDMS2
13
13
  from pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase as _LLEB
14
- from pygeodesy.errors import _or, ParseError, _parseX, _ValueError, \
15
- _xkwds, _xkwds_get, _xkwds_not
16
- # from pygeodesy.internals import _under # from .named
14
+ from pygeodesy.errors import _or, ParseError, _parseX, _UnexpectedError, \
15
+ _ValueError, _xkwds, _xkwds_not, _xkwds_pop2
16
+ # from pygeodesy.internals import _name__, _under # from .named
17
17
  from pygeodesy.interns import NN, _A_, _B_, _COMMA_, _Error_, \
18
18
  _gamma_, _n_a_, _not_, _N_, _NS_, _PLUS_, \
19
19
  _scale_, _SPACE_, _Y_, _Z_
20
20
  from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS
21
- from pygeodesy.named import _NamedBase, nameof, _xnamed, _under
21
+ from pygeodesy.named import _NamedBase, _xnamed, _name__, _under
22
22
  from pygeodesy.namedTuples import EasNor2Tuple, LatLonDatum5Tuple
23
23
  from pygeodesy.props import deprecated_method, property_doc_, _update_all, \
24
24
  deprecated_property_RO, Property_RO, property_RO
@@ -27,7 +27,7 @@ from pygeodesy.units import Band, Easting, Northing, Scalar, Zone
27
27
  from pygeodesy.utily import _Wrap, wrap360
28
28
 
29
29
  __all__ = _ALL_LAZY.utmupsBase
30
- __version__ = '24.05.13'
30
+ __version__ = '24.05.19'
31
31
 
32
32
  _UPS_BANDS = _A_, _B_, _Y_, _Z_ # UPS polar bands SE, SW, NE, NW
33
33
  # _UTM_BANDS = _MODS.utm._Bands
@@ -85,7 +85,7 @@ def _to4lldn(latlon, lon, datum, name, wrap=False):
85
85
  lat, lon = _Wrap.latlonDMS2(latlon, lon) if wrap else \
86
86
  parseDMS2(latlon, lon) # clipped
87
87
  d = datum or _WGS84
88
- return lat, lon, d, (name or nameof(latlon))
88
+ return lat, lon, d, _name__(name, _or_nameof=latlon)
89
89
 
90
90
 
91
91
  def _to3zBhp(zone, band, hemipole=NN, Error=_ValueError): # imported by .epsg, .ups, .utm, .utmups
@@ -186,7 +186,9 @@ class UtmUpsBase(_NamedBase):
186
186
  self._falsed = False
187
187
 
188
188
  if convergence: # for backward compatibility
189
- gamma = _xkwds_get(convergence, convergence=gamma)
189
+ gamma, kwds = _xkwds_pop2(convergence, convergence=gamma)
190
+ if kwds:
191
+ raise _UnexpectedError(**kwds)
190
192
  if gamma is not self._gamma:
191
193
  self._gamma = Scalar(gamma=gamma, Error=E)
192
194
  if scale is not self._scale:
@@ -207,7 +209,7 @@ class UtmUpsBase(_NamedBase):
207
209
  # self._notOverloaded(callername=_under('Bands'))
208
210
  if band not in self._Bands:
209
211
  t = _or(*sorted(set(map(repr, self._Bands))))
210
- raise self._Error(band=band, txt=_not_(t))
212
+ raise self._Error(band=band, txt_not_=t)
211
213
  self._band = band
212
214
  elif self._band: # reset
213
215
  self._band = NN
pygeodesy/vector2d.py CHANGED
@@ -30,7 +30,7 @@ from contextlib import contextmanager
30
30
  # from math import fabs, sqrt # from .fmath
31
31
 
32
32
  __all__ = _ALL_LAZY.vector2d
33
- __version__ = '24.05.04'
33
+ __version__ = '24.05.17'
34
34
 
35
35
  _cA_ = 'cA'
36
36
  _cB_ = 'cB'
@@ -282,11 +282,10 @@ def circum4_(*points, **useZ_Vector_and_kwds):
282
282
  C = map2(float, C)
283
283
  R = map2(float, R) # empty if rk < 4 or n <= 4
284
284
 
285
- n = circum4_.__name__
286
- c = Vector3d(*C[:3], name=n)
287
- r = Radius(sqrt(fsumf_(C[3], *c.x2y2z2)), name=n)
285
+ c = Vector3d(*C[:3], name__=circum4_) # .__name__
286
+ r = Radius(sqrt(fsumf_(C[3], *c.x2y2z2)), name=c.name)
288
287
 
289
- c = _nVc(c, **_xkwds(kwds, clas=ps[0].classof, name=n))
288
+ c = _nVc(c, **_xkwds(kwds, clas=ps[0].classof, name=c.name))
290
289
  return Circum4Tuple(r, c, rk, R)
291
290
 
292
291
 
@@ -416,8 +415,8 @@ class _numpy(object): # see also .formy._idllmn6, .geodesicw._wargs, .latlonBas
416
415
  <https://StackOverflow.com/questions/2992947>} and U{here
417
416
  <https://StackOverflow.com/questions/5889142>}.
418
417
  '''
419
- def _Error(txt=self.null_space2.__name__, **kwds):
420
- return _AssertionError(txt=txt, **kwds)
418
+ def _Error(**kwds):
419
+ return _AssertionError(txt__=self.null_space2, **kwds)
421
420
 
422
421
  np = self.np
423
422
  A = np.array(A)
pygeodesy/vector3d.py CHANGED
@@ -14,11 +14,11 @@ from pygeodesy.errors import IntersectionError, _ValueError, VectorError, \
14
14
  from pygeodesy.fmath import euclid, fabs, fdot, hypot, sqrt, fsum1_
15
15
  # from pygeodesy.fsums import fsum1_ # from .fmath
16
16
  # from pygeodesy.formy import _radical2 # in _intersects2 below
17
- from pygeodesy.interns import NN, _COMMA_, _concentric_, _intersection_, \
18
- _near_, _negative_, _no_, _too_
17
+ from pygeodesy.interns import _COMMA_, _concentric_, _intersection_, \
18
+ _near_, _negative_, _no_, _too_
19
19
  from pygeodesy.iters import PointsIter, Fmt
20
20
  from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS
21
- from pygeodesy.named import _xnamed, _xotherError
21
+ from pygeodesy.named import _name__, _name2__, _xnamed, _xotherError
22
22
  from pygeodesy.namedTuples import Intersection3Tuple, NearestOn2Tuple, \
23
23
  NearestOn6Tuple, Vector3Tuple # Vector4Tuple
24
24
  # from pygeodesy.nvectorBase import _nsumOf # _MODS
@@ -31,7 +31,7 @@ from pygeodesy.vector3dBase import Vector3dBase
31
31
  # from math import fabs, sqrt # from .fmath
32
32
 
33
33
  __all__ = _ALL_LAZY.vector3d
34
- __version__ = '24.02.20'
34
+ __version__ = '24.05.21'
35
35
 
36
36
 
37
37
  class Vector3d(Vector3dBase):
@@ -236,18 +236,18 @@ class Vector3d(Vector3dBase):
236
236
  '''
237
237
  return nearestOn6(self, points, closed=closed, useZ=useZ) # Vector=self.classof
238
238
 
239
- def parse(self, str3d, sep=_COMMA_, name=NN):
239
+ def parse(self, str3d, sep=_COMMA_, **name):
240
240
  '''Parse an C{"x, y, z"} string to a L{Vector3d} instance.
241
241
 
242
242
  @arg str3d: X, y and z string (C{str}), see function L{parse3d}.
243
243
  @kwarg sep: Optional separator (C{str}).
244
- @kwarg name: Optional instance name (C{str}), overriding this name.
244
+ @kwarg name: Optional instance C{B{name}=NN} (C{str}), overriding this name.
245
245
 
246
246
  @return: The instance (L{Vector3d}).
247
247
 
248
248
  @raise VectorError: Invalid B{C{str3d}}.
249
249
  '''
250
- return parse3d(str3d, sep=sep, Vector=self.classof, name=name or self.name)
250
+ return parse3d(str3d, sep=sep, Vector=self.classof, name=self._name__(name))
251
251
 
252
252
  def radii11(self, point2, point3):
253
253
  '''Return the radii of the C{Circum-}, C{In-}, I{Soddy} and C{Tangent}
@@ -677,16 +677,15 @@ def nearestOn(point, point1, point2, within=True, useZ=True, Vector=None, **Vect
677
677
  p1 = _otherV3d(useZ=useZ, point1=point1)
678
678
  p2 = _otherV3d(useZ=useZ, point2=point2)
679
679
 
680
- n = nearestOn.__name__
681
680
  p, _ = _nearestOn2(p0, p1, p2, within=within)
682
681
  if Vector is not None:
683
- p = Vector(p.x, p.y, **_xkwds(Vector_kwds, z=p.z, name=n))
682
+ p = Vector(p.x, p.y, **_xkwds(Vector_kwds, z=p.z, name__=nearestOn))
684
683
  elif p is p1:
685
684
  p = point1
686
685
  elif p is p2:
687
686
  p = point2
688
687
  else: # ignore Vector_kwds
689
- p = point.classof(p.x, p.y, _xkwds_get(Vector_kwds, z=p.z), name=n)
688
+ p = point.classof(p.x, p.y, _xkwds_get(Vector_kwds, z=p.z), name__=nearestOn)
690
689
  return p
691
690
 
692
691
 
@@ -765,8 +764,9 @@ def nearestOn6(point, points, closed=False, useZ=True, **Vector_and_kwds): # ep
765
764
  return NearestOn6Tuple(v, sqrt(c2), f, j, s, e)
766
765
 
767
766
 
768
- def _nVc(v, clas=None, name=NN, Vector=None, **Vector_kwds): # in .vector2d
767
+ def _nVc(v, clas=None, Vector=None, **Vector_kwds_name): # in .vector2d
769
768
  # return a named C{Vector} or C{clas} instance
769
+ name, Vector_kwds = _name2__(**Vector_kwds_name)
770
770
  if Vector is not None:
771
771
  v = Vector(v.x, v.y, v.z, **Vector_kwds)
772
772
  elif clas is not None:
@@ -810,7 +810,7 @@ def parse3d(str3d, sep=_COMMA_, Vector=Vector3d, **Vector_kwds):
810
810
  except (TypeError, ValueError) as x:
811
811
  raise VectorError(str3d=str3d, cause=x)
812
812
  return _xnamed((Vector3Tuple(v) if Vector is None else # *v
813
- Vector(*v, **Vector_kwds)), parse3d.__name__)
813
+ Vector(*v, **Vector_kwds)), name__=parse3d) # .__name__
814
814
 
815
815
 
816
816
  def sumOf(vectors, Vector=Vector3d, **Vector_kwds):
@@ -831,9 +831,8 @@ def sumOf(vectors, Vector=Vector3d, **Vector_kwds):
831
831
  except (TypeError, ValueError) as x:
832
832
  raise VectorError(vectors=vectors, Vector=Vector, cause=x)
833
833
  x, y, z = t[:3]
834
- n = sumOf.__name__
835
- return Vector3Tuple(x, y, z, name=n) if Vector is None else \
836
- Vector(x, y, z, **_xkwds(Vector_kwds, name=n))
834
+ return Vector3Tuple(x, y, z, name__=sumOf) if Vector is None else \
835
+ Vector(x, y, z, **_xkwds(Vector_kwds, name__=sumOf)) # .__name__
837
836
 
838
837
 
839
838
  def trilaterate2d2(x1, y1, radius1, x2, y2, radius2, x3, y3, radius3,
@@ -930,7 +929,7 @@ def trilaterate3d2(center1, radius1, center2, radius2, center3, radius3,
930
929
  center3=center3, radius3=radius3)
931
930
 
932
931
 
933
- def _xyzhdn3(xyz, height, datum, ll): # in .cartesianBase, .nvectorBase
932
+ def _xyzhdn3(xyz, height, datum, ll, **name): # in .cartesianBase, .nvectorBase
934
933
  '''(INTERNAL) Get a C{(h, d, name)} 3-tuple.
935
934
  '''
936
935
  h = height or _xattr(xyz, height=None) \
@@ -940,7 +939,7 @@ def _xyzhdn3(xyz, height, datum, ll): # in .cartesianBase, .nvectorBase
940
939
  d = datum or _xattr(xyz, datum=None) \
941
940
  or _xattr(ll, datum=None)
942
941
 
943
- return h, d, _xattr(xyz, name=NN)
942
+ return h, d, _name__(name, _or_nameof=xyz)
944
943
 
945
944
 
946
945
  __all__ += _ALL_DOCS(intersections2, sumOf, Vector3dBase)
pygeodesy/vector3dBase.py CHANGED
@@ -15,8 +15,7 @@ from pygeodesy.constants import EPS, EPS0, INT0, PI, PI2, _copysignINF, \
15
15
  _pos_self, _0_0, _1_0
16
16
  from pygeodesy.errors import CrossError, VectorError, _xcallable, _xError
17
17
  from pygeodesy.fmath import euclid_, fdot, hypot_, hypot2_
18
- from pygeodesy.interns import NN, _coincident_, _colinear_, \
19
- _COMMASPACE_, _xyz_
18
+ from pygeodesy.interns import _coincident_, _colinear_, _COMMASPACE_, _xyz_
20
19
  from pygeodesy.lazily import _ALL_LAZY, _ALL_DOCS, _ALL_MODS as _MODS, \
21
20
  _sys_version_info2
22
21
  from pygeodesy.named import _NamedBase, _NotImplemented, _xother3
@@ -31,7 +30,7 @@ from pygeodesy.units import Float, Scalar
31
30
  from math import atan2, ceil, fabs, floor, trunc
32
31
 
33
32
  __all__ = _ALL_LAZY.vector3dBase
34
- __version__ = '24.05.10'
33
+ __version__ = '24.05.19'
35
34
 
36
35
 
37
36
  class Vector3dBase(_NamedBase): # sync __methods__ with .fsums.Fsum
@@ -44,7 +43,7 @@ class Vector3dBase(_NamedBase): # sync __methods__ with .fsums.Fsum
44
43
  # _y = INT0 # Y component
45
44
  # _z = INT0 # Z component
46
45
 
47
- def __init__(self, x_xyz, y=INT0, z=INT0, ll=None, name=NN):
46
+ def __init__(self, x_xyz, y=INT0, z=INT0, ll=None, **name):
48
47
  '''New L{Vector3d} or C{Vector3dBase} instance.
49
48
 
50
49
  The vector may be normalised or use x, y, z for position and
@@ -60,7 +59,7 @@ class Vector3dBase(_NamedBase): # sync __methods__ with .fsums.Fsum
60
59
  @kwarg z: Z component of vector (C{scalar}), ignored if B{C{x_xyz}}
61
60
  is not C{scalar}, otherwise same units as B{C{x_xyz}}.
62
61
  @kwarg ll: Optional latlon reference (C{LatLon}).
63
- @kwarg name: Optional name (C{str}).
62
+ @kwarg name: Optional C{B{name}=NN} (C{str}).
64
63
 
65
64
  @raise VectorError: Invalid B{C{x_xyz}}.
66
65
  '''
@@ -1,116 +0,0 @@
1
- pygeodesy/LICENSE,sha256=YfgAiyxOwY6P9Kkb1_5XN81nueTLrpb3Ffkv3EuPgFU,1144
2
- pygeodesy/__init__.py,sha256=RvfpiTljYzrr4QXHBQK8E-10-39sO0npEC5liSffwwk,41050
3
- pygeodesy/__main__.py,sha256=UmTd6Qw20g_pgnQjdaHePm-xuOEBi1tUNRLO0eL0-rU,4593
4
- pygeodesy/albers.py,sha256=1WTZglw_UtcrX86AhN4ICkUqJQoI-_xsQVMaqBaF2y0,30985
5
- pygeodesy/azimuthal.py,sha256=tc4JxgLi-0jzU08m4Bvi-t-kzHXYPeGuzL3j_tyVFUA,50125
6
- pygeodesy/basics.py,sha256=sAN6gt5WzUTcp0Q8i8xvRDGv5E3YwAyppzgIFmRIuzM,28215
7
- pygeodesy/booleans.py,sha256=77Kv-O2elfnU6D68cpkQrlvRFOP4uKcJ7vPXouAH_Rc,74201
8
- pygeodesy/cartesianBase.py,sha256=I3q29mRdBB3NCDmPoJsJ0QOFfLzkdMWc8X9zG4IwJyA,47264
9
- pygeodesy/clipy.py,sha256=VU3ynQ1IZ0v5hJlicqD48oW0imRgiL5_ZzRPrIjpfPw,27683
10
- pygeodesy/constants.py,sha256=-KhClvNhehL7UCnqPgZyEnS3cSyYf7EBDRF0Vgmcgks,19190
11
- pygeodesy/css.py,sha256=sKXsahUiyruDcUk-tGjA6mxq-xzwBoBKxKo9_b2uBmY,25394
12
- pygeodesy/datums.py,sha256=_zkf6gMz10MPvbabycF7-BHg2lOTACqzmeiyYqsrU0Y,33875
13
- pygeodesy/dms.py,sha256=op3MU-59CoJQRdybnu21aVM9wtocd_-XFNAZFqmozSo,44439
14
- pygeodesy/ecef.py,sha256=z2x0EjJ4HrHQ6xH44xPkxg_5-ntDdhtIkcq4YuVUAzw,59694
15
- pygeodesy/elevations.py,sha256=1qZM2w0rDF7jHunydpTEmdLwOwF81KUL9L6RALJC7K4,10807
16
- pygeodesy/ellipsoidalBase.py,sha256=dqEmBFguS_Q0K95VaBN7oZOVEaxHuicLCrqIuj1QM7w,56639
17
- pygeodesy/ellipsoidalBaseDI.py,sha256=AlfDF2IMKv5POPAyJUHOlDF9PAvkTEvg_WSz2BTptxs,38606
18
- pygeodesy/ellipsoidalExact.py,sha256=a_2C6S6hGRumavy5giRoC9QAhnjqpujiXyu92od6nKo,16951
19
- pygeodesy/ellipsoidalGeodSolve.py,sha256=xfNcb70AuPbIiJUqhisIfg6pCQBqXyQffBNuESEGCfU,16833
20
- pygeodesy/ellipsoidalKarney.py,sha256=FoOsfNf96oHuGa9k4AB42y_UUBuOkh4xMW7PFGF63SA,19246
21
- pygeodesy/ellipsoidalNvector.py,sha256=vHVKSfR86LnIapGlwl5_uCaEuQGdm0e89mwE6Ay-394,30323
22
- pygeodesy/ellipsoidalVincenty.py,sha256=Uk93B8GFcMnWiwKUOA84TlLwbBlvzVnsAXAx0cU7cn4,26004
23
- pygeodesy/ellipsoids.py,sha256=SxMsivNnE9ibUjQGd0d24H0SzoSjh6jfhLWjasOWpao,119946
24
- pygeodesy/elliptic.py,sha256=Vzk4e8oyEHFWMIORsyKciydjPQadVrw1UDJrxE7wovw,42494
25
- pygeodesy/epsg.py,sha256=ldHoLWqJWR4FUiBVnDTtrI_e7TNjjtr9OkxDlri1g5E,8165
26
- pygeodesy/errors.py,sha256=85zy2ssWLkALiAmWRBC0zRSWIFK3HZL2zuK4jt4frcU,27260
27
- pygeodesy/etm.py,sha256=FE1959eLsOPMwvlO2lMukBSV70n7a5XcGlEdeBhyabw,44620
28
- pygeodesy/fmath.py,sha256=rPZSpAXy8fjxWFMgsm1xNdSWnaGCnWKwYIrmsrG6vcI,33549
29
- pygeodesy/formy.py,sha256=Rces4Q5ecED0WVfuI9mQzeyHE54LDowYfI6faBHpyeA,74536
30
- pygeodesy/frechet.py,sha256=qgee-ISBtT7Ov3rJkcd_t-WeXTbeNoMSQuMa0j3MyQc,33512
31
- pygeodesy/fstats.py,sha256=jgFz6eQnE1QXPdKFfI6vP9rLuTN-xjuhSkw0qToVWX0,28408
32
- pygeodesy/fsums.py,sha256=I8kkE34H5sq_Ib9trj__F2G9fX54VV9aqr2LKLoJ8BA,78810
33
- pygeodesy/gars.py,sha256=fCiWBJ4kOJxPfNOxadX-OzBGDXj7C9g02NuGHiZa_88,11342
34
- pygeodesy/geodesicw.py,sha256=zQ5IGtyvVF1GLE5fEWdTkXG6Eo2pDusilg7QdI85DcQ,26970
35
- pygeodesy/geodsolve.py,sha256=uqHW-6c4dJ7W34_4rUzgz5dLJwq4pM7DjuLsB1EIogY,21958
36
- pygeodesy/geohash.py,sha256=HwukecfkWvyfz9LHKfoA-WddQHYot_mB04o0lyWrKyU,32382
37
- pygeodesy/geoids.py,sha256=jjB_UwtGSfMp22SOg93lJKgv6ySVyFQOsnx_4N_vf78,80635
38
- pygeodesy/hausdorff.py,sha256=LJULGbDop4xqiWeRH5-Uayvk5WVCZQpxK4PCYu4kqSs,34192
39
- pygeodesy/heights.py,sha256=Zlj5O6kdyNV076QDkmBrI61aV3fVXERKyvBHzCCWvdw,42555
40
- pygeodesy/internals.py,sha256=GtxQzBq1mAGYXKOF5B_STrah5Chpawg1BAhALkmwPAI,19204
41
- pygeodesy/interns.py,sha256=PIhwc05ObRnBiOxCXA8Kn4PF_4bGDCBSakUOka4mDw8,23749
42
- pygeodesy/iters.py,sha256=bYpU_TLLFuKsAqMNux0hnF8gJuByf3pT4nrxlJEJ1rk,20242
43
- pygeodesy/karney.py,sha256=NM2ahBugze9R-NGTBy_bo7IWBntsL8ymusvssKMBxgQ,35028
44
- pygeodesy/ktm.py,sha256=GikJivtyDvLgv-FWQ4m9TSlVq9cm0Zp3Ga-BCIFHzJM,27301
45
- pygeodesy/latlonBase.py,sha256=LimCMj91J3Q4D_rTu7VN7c63cLL_KzxXagFQfedobmc,77730
46
- pygeodesy/lazily.py,sha256=gtrUK_w8rtW7K5k1xvx3FNWL-Je5ZsZiiL1suNJ7erA,45474
47
- pygeodesy/lcc.py,sha256=yNpmAdOwv3HNh2ZLopF5QtvDokeQYCmnxSc8UFUPHO4,25737
48
- pygeodesy/ltp.py,sha256=8se8dYG7LG__Ru0FoK939DJBF9GCQGeJik_Un1Im8Xw,48609
49
- pygeodesy/ltpTuples.py,sha256=iKzvDfv33HfmEevjNISUS4c9KXIkiISEkVlQopyKgfY,55769
50
- pygeodesy/mgrs.py,sha256=FVq4cqD2Kr9az6YR5T5zu32abz0jB7M7rFbJYIYvCck,29038
51
- pygeodesy/named.py,sha256=NJ9ORN_y3_DoI1K95NzQQJP2q_irc-rHbmdwMTzU6wc,48337
52
- pygeodesy/namedTuples.py,sha256=msEYvQKj4oCW35Kx80RpeQXY85A1G0O3GEqsysLaV2M,27288
53
- pygeodesy/nvectorBase.py,sha256=jhx-ZE6Y9O6K_bfEd6anOMXImsuHIlFiRDJVpwrQZwI,28823
54
- pygeodesy/osgr.py,sha256=s_-21bYhXUv37thzgIQjGmMmMdT46RlecOixHRufW4o,31044
55
- pygeodesy/points.py,sha256=Bo4YwjlglBUoYW3PbR6GeRMo8plYdgxjwc0hwOQOe3Q,64450
56
- pygeodesy/props.py,sha256=o6x5XDCtq3nW17dZtQnNsqlc6FVpf2xjy6JKbdZsbBw,21493
57
- pygeodesy/resections.py,sha256=nkfBxYrsEdyq2JqAbPrRWKplJBzFkIXLvEZGB4gPu_A,43550
58
- pygeodesy/simplify.py,sha256=FT3AzXiFjFfvwJ-X2q8iA9cQOUVdBT1vD_BIskM3gK8,25223
59
- pygeodesy/solveBase.py,sha256=9t3sq7PN_6BMl-DfuPBvv9o449LylTGWL8kVp-_QdiE,16718
60
- pygeodesy/sphericalBase.py,sha256=sH2WwmY_RL0STyr1OhtCDKvGhO0Ks7o3V-MHLddpiHQ,31944
61
- pygeodesy/sphericalNvector.py,sha256=TBs_nid_DTcox7bBegh_Djv4zZRGRY4mH6dd1xIHGms,56963
62
- pygeodesy/sphericalTrigonometry.py,sha256=Q9qsqzIK43xBken2G8uP9snPXPuBoZ20pMHqbT_IjG0,64216
63
- pygeodesy/streprs.py,sha256=97RYhbaKlzvviNRzWzRvP45IAr9vUiDM3njeLHfKVm8,24004
64
- pygeodesy/trf.py,sha256=ctvCvs3mYM3u7ScTQqqJnjTrwL7KIrxhPvIJKUFquo4,118892
65
- pygeodesy/triaxials.py,sha256=nYFQcLimivcxpeXMj9a83iWuENDU1gI-2zNgCkZzL0U,61549
66
- pygeodesy/units.py,sha256=17YXkf86yyVIMobZOYGGM6BQBxCqafDsP1PoF7diZqY,38609
67
- pygeodesy/unitsBase.py,sha256=xRZlNlO7S47Mwy0FGBg_cefvB4fEtWFM5dAE-Nlw-NE,13111
68
- pygeodesy/ups.py,sha256=Rw4cO7Q20w-y7DKEHiuX7BkansDZnm8uvQRApFJ-USo,23287
69
- pygeodesy/utily.py,sha256=AOEHXi7H5QsTmgxcp0qOGC2qvIdqS01Mfu0Y8m3Bp6w,36141
70
- pygeodesy/utm.py,sha256=GhJJ8bVJQsTY4xy5SCEQw_6_5NsO4m1yVhdz8nkXCR8,31044
71
- pygeodesy/utmups.py,sha256=u2hlWSnmZKwR-ApgKw16R9p75sW_yaqQAmbcBUE8Zfg,13007
72
- pygeodesy/utmupsBase.py,sha256=dlnj7fX8gsbSNGFgWdMrSth-xoebFRx4PpPpj60jRxo,18864
73
- pygeodesy/vector2d.py,sha256=pSvfpFoSa5R37o9tSmRma7KsjNnN9GwTDG9rhFOEmfA,35004
74
- pygeodesy/vector3d.py,sha256=6ZLYLhZJoOM6UVJlbV8segkVXcFt38HA-SywCdWsynM,44972
75
- pygeodesy/vector3dBase.py,sha256=cSbGNgS_3wQztcIetFnuLM6M6ekKiepJ7LyHE318HnA,35657
76
- pygeodesy/webmercator.py,sha256=1IXiAHBXTm5kMCp5gEI67oBJeRXD7BiPVI7bcRRX1U4,14918
77
- pygeodesy/wgrs.py,sha256=AKUrYRCC67lOeJ6vUDAiGb_mY6R3ZwflXpOaP3wauOg,14774
78
- pygeodesy/auxilats/_CX_4.py,sha256=U41njj8Pu8cHMGuoUUVA20QIvRJAq-VGCnyoKJl0Ylo,8662
79
- pygeodesy/auxilats/_CX_6.py,sha256=x4hrHxunjqqkEsZbVW1dyn3R5mR8EWYOuX77RzDEyh4,14856
80
- pygeodesy/auxilats/_CX_8.py,sha256=t-OO48t4cCOsOgMi1FoyPw2DQqybVZFsgQMqAYP-jKY,25304
81
- pygeodesy/auxilats/__init__.py,sha256=yOa5RDYOOed9Z4dvcKlatH0JBgohAJ8ADXjU9mZGTfQ,2881
82
- pygeodesy/auxilats/__main__.py,sha256=BsNxHMo-VqXL0-kFTrpMUz5SFUO_K4udQLemXgvTxLE,2896
83
- pygeodesy/auxilats/auxAngle.py,sha256=LEa1GVR1EOYnTxR-mBLUj4mGoLO6jRrpsyG4v7N8W_0,16727
84
- pygeodesy/auxilats/auxDLat.py,sha256=U3BHF6AkW5--nrwH9whL5wZVIZLH_keRLfUz6c6KBx4,10950
85
- pygeodesy/auxilats/auxDST.py,sha256=bdNEh3TdABWH7qW6ngZx5SnzDM3B5rtPLvYhvCnFsKc,10497
86
- pygeodesy/auxilats/auxLat.py,sha256=Xz1e64zmPuZL5s4AL2jR7w-HFeZzReXQS3bZjW1tu-I,31342
87
- pygeodesy/auxilats/auxily.py,sha256=ZiCFedYcr32O6TWQ_dcnwMrc9TgogyuhNSbR77WMDpg,8240
88
- pygeodesy/deprecated/__init__.py,sha256=ZRGqgwSdvtKSYZdw09-LPuGa_i0jMHWKIwrPG3r1hHs,2815
89
- pygeodesy/deprecated/bases.py,sha256=nxUtxscAg5cb7HEzTSmPJFafLc9Ad2SL5ovwkYaU5z8,1655
90
- pygeodesy/deprecated/classes.py,sha256=PXgss-2kEu3bzaxvSeVZJGdcRqsdi_6_aRqsESyUQKQ,11662
91
- pygeodesy/deprecated/consterns.py,sha256=W-rQiw443_zCFEUzjCGykGND-i5P_ghEIyJUSGg7-Nc,1908
92
- pygeodesy/deprecated/datum.py,sha256=KfuMA64LYGMj1voW2uai2RGcugtWdpvlOL6UHJvpTeQ,1875
93
- pygeodesy/deprecated/functions.py,sha256=-Ckor43KBiCDa7rbwY5kHvrs5xwuixTlw1TZpNSBgrU,13647
94
- pygeodesy/deprecated/nvector.py,sha256=_dZf84RdmPr7e7i8Yi683R-8Mqn0ipTqIsDhNl29hGo,2117
95
- pygeodesy/deprecated/rhumbBase.py,sha256=d7YKW--dnRpobB2CSvhFsntWF0B5-HYJqID2pv5lD5k,1375
96
- pygeodesy/deprecated/rhumbaux.py,sha256=n29xazYMbVG4MJkLjAGu8B88bbcFF5xnvuj9xSxjfIk,1428
97
- pygeodesy/deprecated/rhumbsolve.py,sha256=QprjRfo5T1_C4ovaa1cffAcmNczzkhGIfmybAup9a9w,1431
98
- pygeodesy/deprecated/rhumbx.py,sha256=OS0p_meaoVrpZe5UhK6qZljjlrGpL0pCHWw8gofw7ks,1425
99
- pygeodesy/geodesicx/_C4_24.py,sha256=kS4XMR9m7iBs01V8K0Oz9qTYmjN-icIQGpc_8iwVhig,90750
100
- pygeodesy/geodesicx/_C4_27.py,sha256=bPbj2Ckrn9WJglm3SNTXyMkULNwANM0tCQ-LKxP1L58,134258
101
- pygeodesy/geodesicx/_C4_30.py,sha256=QZO8p971ztJwDGLOaJYgIhklztz9GlqbtS-xRP_E7o4,201964
102
- pygeodesy/geodesicx/__init__.py,sha256=GmuEpkVmz5GagH10fSHCH0QWdh9y-xojuGRmWJ6TKAw,2446
103
- pygeodesy/geodesicx/__main__.py,sha256=FVlmJft__Utk30zYwCbvrJpmAFi_jmyigzbm4An3Wws,3167
104
- pygeodesy/geodesicx/gx.py,sha256=E1WTVXsOC1jhc1xDmhCW-IEzqF0oOu74jAsIFt9YwRI,61304
105
- pygeodesy/geodesicx/gxarea.py,sha256=abjXoHKm9wcn75TM4_M4nRAdWFtKZY78dqlQhFdfcAc,19262
106
- pygeodesy/geodesicx/gxbases.py,sha256=vmqPnZGh_k7Fwev9oYoIzAZKdFFOydAXa372pHrzfMI,5279
107
- pygeodesy/geodesicx/gxline.py,sha256=gy0RT7DbcAvnSPqNl0FiqYpN00LBuJM-P9KcyasQvhU,27465
108
- pygeodesy/rhumb/__init__.py,sha256=MbwdmdduXd3fOWuS1mFdgyKBPBf7Ju1DzRf5D8w0Rok,2207
109
- pygeodesy/rhumb/aux_.py,sha256=W4HkgoHAQz_aWaysfsmOA5010nCGvBfUs2Q-bymnHYU,16660
110
- pygeodesy/rhumb/bases.py,sha256=ZK-t5BHf4LyGypSfH-yaIHol0N9uWioMzUYzp0GI03M,53882
111
- pygeodesy/rhumb/ekx.py,sha256=lF3tZ-ZY9fPJV8y1kgHW-7EOZCyb3gJr-kR-jj5Fbf8,23871
112
- pygeodesy/rhumb/solve.py,sha256=nih_QmAjOQNb5PNNXJGWkAZuGrXDTXtlxRKPZj8ZA7c,27795
113
- PyGeodesy-24.5.15.dist-info/METADATA,sha256=vzVFd4N8TwuPfoeXqDjUgOk4L1ZbuLW9ueiev5nZXPM,19364
114
- PyGeodesy-24.5.15.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
115
- PyGeodesy-24.5.15.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
116
- PyGeodesy-24.5.15.dist-info/RECORD,,