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/webmercator.py CHANGED
@@ -22,11 +22,11 @@ from pygeodesy.basics import _splituple, _xinstanceof
22
22
  from pygeodesy.constants import PI_2, R_MA, _2_0
23
23
  from pygeodesy.datums import Datum, _spherical_datum
24
24
  from pygeodesy.dms import clipDegrees, parseDMS2
25
- from pygeodesy.errors import _parseX, _ValueError, _xattr, _xkwds
25
+ from pygeodesy.errors import _parseX, _ValueError, _xattr, _xkwds, _xkwds_pop2
26
26
  from pygeodesy.interns import NN, _COMMASPACE_, _datum_, _earth_, _easting_, \
27
27
  _northing_, _radius_, _SPACE_, _x_, _y_
28
28
  # from pygeodesy.lazily import _ALL_LAZY from .named
29
- from pygeodesy.named import _NamedBase, _NamedTuple, _ALL_LAZY
29
+ from pygeodesy.named import _name2__, _NamedBase, _NamedTuple, _ALL_LAZY
30
30
  from pygeodesy.namedTuples import LatLon2Tuple, LatLonDatum3Tuple, PhiLam2Tuple
31
31
  from pygeodesy.props import deprecated_method, Property_RO
32
32
  from pygeodesy.streprs import Fmt, strs, _xzipairs
@@ -36,7 +36,7 @@ from pygeodesy.utily import degrees90, degrees180
36
36
  from math import atan, atanh, exp, radians, sin, tanh
37
37
 
38
38
  __all__ = _ALL_LAZY.webmercator
39
- __version__ = '24.02.04'
39
+ __version__ = '24.05.31'
40
40
 
41
41
  # _FalseEasting = 0 # false Easting (C{meter})
42
42
  # _FalseNorthing = 0 # false Northing (C{meter})
@@ -66,32 +66,30 @@ class Wm(_NamedBase):
66
66
  _x = 0 # Easting (C{meter})
67
67
  _y = 0 # Northing (C{meter})
68
68
 
69
- def __init__(self, x, y, earth=R_MA, name=NN, **radius):
69
+ def __init__(self, x, y, earth=R_MA, **name_radius):
70
70
  '''New L{Wm} Web Mercator (WM) coordinate.
71
71
 
72
72
  @arg x: Easting from central meridian (C{meter}).
73
73
  @arg y: Northing from equator (C{meter}).
74
- @kwarg earth: Earth radius (C{meter}), datum or
75
- ellipsoid (L{Datum}, L{a_f2Tuple},
76
- L{Ellipsoid} or L{Ellipsoid2}).
77
- @kwarg name: Optional name (C{str}).
78
- @kwarg radius: DEPRECATED, use keyword argument B{C{earth}}.
74
+ @kwarg earth: Earth radius (C{meter}), datum or ellipsoid (L{Datum},
75
+ L{a_f2Tuple}, L{Ellipsoid} or L{Ellipsoid2}).
76
+ @kwarg name_radius: Optional C{B{name}=NN} (C{str}) and DEPRECATED
77
+ keyword argument C{B{radius}=earth}, use B{C{earth}}.
79
78
 
80
- @note: WM is strictly defined for spherical and WGS84
81
- ellipsoidal earth models only.
79
+ @note: WM is strictly defined for spherical and WGS84 ellipsoidal
80
+ earth models only.
82
81
 
83
82
  @raise WebMercatorError: Invalid B{C{x}}, B{C{y}} or B{C{radius}}.
84
83
  '''
85
84
  self._x = Easting( x=x, Error=WebMercatorError)
86
85
  self._y = Northing(y=y, Error=WebMercatorError)
87
86
 
88
- R = radius.get(_radius_, earth)
89
- if R not in Wm._earths:
90
- self._datum = _datum(R, _radius_ if radius else _earth_)
91
- self._radius = self.datum.ellipsoid.a
92
-
87
+ R, name = _xkwds_pop2(name_radius, radius=earth)
93
88
  if name:
94
89
  self.name = name
90
+ if R not in Wm._earths:
91
+ self._datum = _datum(R, _radius_ if _radius_ in name_radius else _earth_)
92
+ self._radius = self.datum.ellipsoid.a
95
93
 
96
94
  @Property_RO
97
95
  def datum(self):
@@ -143,20 +141,18 @@ class Wm(_NamedBase):
143
141
 
144
142
  return LatLon2Tuple(degrees90(y), degrees180(x), name=self.name)
145
143
 
146
- def parse(self, strWM, name=NN):
144
+ def parse(self, strWM, **name):
147
145
  '''Parse a string to a similar L{Wm} instance.
148
146
 
149
- @arg strWM: The WM coordinate (C{str}), see
150
- function L{parseWM}.
151
- @kwarg name: Optional instance name (C{str}),
152
- overriding this name.
147
+ @arg strWM: The WM coordinate (C{str}), see function L{parseWM}.
148
+ @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.
153
149
 
154
150
  @return: The similar instance (L{Wm}).
155
151
 
156
152
  @raise WebMercatorError: Invalid B{C{strWM}}.
157
153
  '''
158
154
  return parseWM(strWM, radius=self.radius, Wm=self.classof,
159
- name=name or self.name)
155
+ name=self._name__(name))
160
156
 
161
157
  @deprecated_method
162
158
  def parseWM(self, strWM, name=NN): # PYCHOK no cover
@@ -189,16 +185,14 @@ class Wm(_NamedBase):
189
185
  @kwarg LatLon: Ellipsoidal or sphperical C{LatLon} class to
190
186
  return the geodetic point (C{LatLon}) or C{None}.
191
187
  @kwarg datum: Optional, datum (C{Datum}) overriding this WM's.
192
- @kwarg LatLon_kwds: Optional, additional B{C{LatLon}}
193
- keyword arguments, ignored if
194
- C{B{LatLon} is None}.
188
+ @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword
189
+ arguments, ignored if C{B{LatLon} is None}.
195
190
 
196
- @return: This WM coordinate as B{C{LatLon}} or if
197
- C{B{LatLon} is None} a L{LatLonDatum3Tuple}.
191
+ @return: This WM coordinate as B{C{LatLon}} or if C{B{LatLon}
192
+ is None} a L{LatLonDatum3Tuple}.
198
193
 
199
- @raise TypeError: If B{C{LatLon}} and B{C{datum}} are
200
- incompatible or if B{C{datum}} is
201
- invalid.
194
+ @raise TypeError: If B{C{datum}} is invalid or if B{C{LatLon}}
195
+ and B{C{datum}} are incompatible.
202
196
  '''
203
197
  d = datum or self.datum
204
198
  _xinstanceof(Datum, datum=d)
@@ -278,7 +272,7 @@ def _datum(earth, name=_datum_):
278
272
  raise WebMercatorError(name, earth, cause=x)
279
273
 
280
274
 
281
- def parseWM(strWM, radius=R_MA, Wm=Wm, name=NN):
275
+ def parseWM(strWM, radius=R_MA, Wm=Wm, **name):
282
276
  '''Parse a string C{"e n [r]"} representing a WM coordinate,
283
277
  consisting of easting, northing and an optional radius.
284
278
 
@@ -287,11 +281,10 @@ def parseWM(strWM, radius=R_MA, Wm=Wm, name=NN):
287
281
  case B{C{strWM}} doesn't include C{r}.
288
282
  @kwarg Wm: Optional class to return the WM coordinate (L{Wm})
289
283
  or C{None}.
290
- @kwarg name: Optional name (C{str}).
284
+ @kwarg name: Optional C{B{name}=NN} (C{str}).
291
285
 
292
- @return: The WM coordinate (B{C{Wm}}) or an
293
- L{EasNorRadius3Tuple}C{(easting, northing, radius)}
294
- if B{C{Wm}} is C{None}.
286
+ @return: The WM coordinate (B{C{Wm}}) or if B{C{Wm}} is C{None}
287
+ an L{EasNorRadius3Tuple}C{(easting, northing, radius)}.
295
288
 
296
289
  @raise WebMercatorError: Invalid B{C{strWM}}.
297
290
  '''
@@ -304,14 +297,14 @@ def parseWM(strWM, radius=R_MA, Wm=Wm, name=NN):
304
297
  raise ValueError
305
298
  x, y, R = map(float, w)
306
299
 
307
- return EasNorRadius3Tuple(x, y, R, name=name) if Wm is None else \
308
- Wm(x, y, earth=R, name=name)
300
+ return EasNorRadius3Tuple(x, y, R, **name) if Wm is None else \
301
+ Wm(x, y, earth=R, **name)
309
302
 
310
303
  return _parseX(_WM, strWM, radius, Wm, name,
311
304
  strWM=strWM, Error=WebMercatorError)
312
305
 
313
306
 
314
- def toWm(latlon, lon=None, earth=R_MA, Wm=Wm, name=NN, **Wm_kwds):
307
+ def toWm(latlon, lon=None, earth=R_MA, Wm=Wm, **name_Wm_kwds_radius):
315
308
  '''Convert a lat-/longitude point to a WM coordinate.
316
309
 
317
310
  @arg latlon: Latitude (C{degrees}) or an (ellipsoidal or
@@ -323,31 +316,30 @@ def toWm(latlon, lon=None, earth=R_MA, Wm=Wm, name=NN, **Wm_kwds):
323
316
  datum if present.
324
317
  @kwarg Wm: Optional class to return the WM coordinate (L{Wm})
325
318
  or C{None}.
326
- @kwarg name: Optional name (C{str}).
327
- @kwarg Wm_kwds: Optional, additional B{C{Wm}} keyword arguments,
328
- ignored if C{B{Wm} is None}.
319
+ @kwarg name_Wm_kwds_radius: Optional C{B{name}=NN} (C{str}),
320
+ optional, additional B{C{Wm}} keyword arguments,
321
+ ignored if C{B{Wm} is None} and DEPRECATED keyword
322
+ argument C{B{radius}=earth}, use B{C{earth}}.
329
323
 
330
- @return: The WM coordinate (B{C{Wm}}) or if B{C{Wm}} is C{None}
331
- an L{EasNorRadius3Tuple}C{(easting, northing, radius)}.
324
+ @return: The WM coordinate (B{C{Wm}}) or if B{C{Wm}} is C{None} an
325
+ L{EasNorRadius3Tuple}C{(easting, northing, radius)}.
332
326
 
333
327
  @raise ValueError: If B{C{lon}} value is missing, if B{C{latlon}} is not
334
328
  scalar, if B{C{latlon}} is beyond the valid WM range
335
329
  and L{pygeodesy.rangerrors} is set to C{True} or if
336
330
  B{C{earth}} is invalid.
337
331
  '''
338
- if _radius_ in Wm_kwds: # remove DEPRECATED, radius
339
- d = _datum(Wm_kwds.pop(_radius_), _radius_)
340
- else:
341
- d = _datum(earth, _earth_)
332
+ name, kwds = _name2__(name_Wm_kwds_radius)
333
+ R, kwds = _xkwds_pop2(kwds, radius=earth)
334
+ d = _datum(R, _radius_ if _radius_ in name_Wm_kwds_radius else _earth_)
342
335
  try:
343
336
  y, x = latlon.lat, latlon.lon
344
337
  y = clipDegrees(y, _LatLimit)
345
338
  d = _xattr(latlon, datum=d)
346
- n = name or _xattr(latlon, name=NN)
339
+ n = latlon._name__(name)
347
340
  except AttributeError:
348
341
  y, x = parseDMS2(latlon, lon, clipLat=_LatLimit)
349
- n = name
350
-
342
+ n = name
351
343
  E = d.ellipsoid
352
344
  R = E.a
353
345
  s = sin(radians(y))
@@ -357,7 +349,7 @@ def toWm(latlon, lon=None, earth=R_MA, Wm=Wm, name=NN, **Wm_kwds):
357
349
  y *= R
358
350
  x = R * radians(x)
359
351
  r = EasNorRadius3Tuple(x, y, R, name=n) if Wm is None else \
360
- Wm(x, y, **_xkwds(Wm_kwds, earth=d, name=n))
352
+ Wm(x, y, **_xkwds(kwds, earth=d, name=n))
361
353
  return r
362
354
 
363
355
  # **) MIT License
@@ -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,,