pygeodesy 24.5.24__py2.py3-none-any.whl → 24.6.9__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 (71) hide show
  1. {PyGeodesy-24.5.24.dist-info → PyGeodesy-24.6.9.dist-info}/METADATA +6 -5
  2. PyGeodesy-24.6.9.dist-info/RECORD +116 -0
  3. pygeodesy/__init__.py +4 -4
  4. pygeodesy/auxilats/__init__.py +1 -1
  5. pygeodesy/auxilats/__main__.py +2 -2
  6. pygeodesy/auxilats/auxAngle.py +4 -4
  7. pygeodesy/basics.py +39 -5
  8. pygeodesy/booleans.py +54 -67
  9. pygeodesy/cartesianBase.py +138 -147
  10. pygeodesy/constants.py +3 -3
  11. pygeodesy/deprecated/functions.py +9 -3
  12. pygeodesy/ecef.py +67 -72
  13. pygeodesy/ellipsoidalBase.py +18 -56
  14. pygeodesy/ellipsoidalGeodSolve.py +2 -2
  15. pygeodesy/ellipsoidalKarney.py +3 -3
  16. pygeodesy/ellipsoidalNvector.py +7 -7
  17. pygeodesy/ellipsoids.py +6 -5
  18. pygeodesy/errors.py +20 -10
  19. pygeodesy/etm.py +16 -21
  20. pygeodesy/fmath.py +9 -20
  21. pygeodesy/formy.py +60 -74
  22. pygeodesy/frechet.py +13 -14
  23. pygeodesy/fsums.py +60 -26
  24. pygeodesy/geodesicx/__init__.py +1 -1
  25. pygeodesy/geodesicx/__main__.py +2 -2
  26. pygeodesy/geodesicx/gx.py +3 -5
  27. pygeodesy/geodsolve.py +24 -26
  28. pygeodesy/geohash.py +27 -40
  29. pygeodesy/geoids.py +1 -1
  30. pygeodesy/hausdorff.py +17 -18
  31. pygeodesy/heights.py +17 -30
  32. pygeodesy/internals.py +15 -14
  33. pygeodesy/interns.py +3 -9
  34. pygeodesy/iters.py +2 -2
  35. pygeodesy/karney.py +8 -7
  36. pygeodesy/latlonBase.py +189 -176
  37. pygeodesy/lazily.py +92 -56
  38. pygeodesy/lcc.py +2 -2
  39. pygeodesy/ltp.py +93 -55
  40. pygeodesy/ltpTuples.py +304 -240
  41. pygeodesy/mgrs.py +51 -24
  42. pygeodesy/named.py +159 -136
  43. pygeodesy/namedTuples.py +43 -14
  44. pygeodesy/nvectorBase.py +20 -23
  45. pygeodesy/osgr.py +40 -48
  46. pygeodesy/points.py +11 -11
  47. pygeodesy/props.py +29 -16
  48. pygeodesy/rhumb/aux_.py +13 -15
  49. pygeodesy/rhumb/bases.py +12 -5
  50. pygeodesy/rhumb/ekx.py +24 -18
  51. pygeodesy/rhumb/solve.py +20 -70
  52. pygeodesy/simplify.py +16 -16
  53. pygeodesy/solveBase.py +35 -32
  54. pygeodesy/sphericalBase.py +33 -31
  55. pygeodesy/sphericalTrigonometry.py +17 -17
  56. pygeodesy/streprs.py +6 -4
  57. pygeodesy/trf.py +11 -9
  58. pygeodesy/triaxials.py +71 -50
  59. pygeodesy/units.py +40 -65
  60. pygeodesy/unitsBase.py +2 -2
  61. pygeodesy/ups.py +66 -70
  62. pygeodesy/utily.py +7 -6
  63. pygeodesy/utm.py +152 -156
  64. pygeodesy/utmups.py +38 -38
  65. pygeodesy/utmupsBase.py +102 -106
  66. pygeodesy/vector3d.py +34 -36
  67. pygeodesy/vector3dBase.py +12 -9
  68. pygeodesy/webmercator.py +43 -51
  69. PyGeodesy-24.5.24.dist-info/RECORD +0 -116
  70. {PyGeodesy-24.5.24.dist-info → PyGeodesy-24.6.9.dist-info}/WHEEL +0 -0
  71. {PyGeodesy-24.5.24.dist-info → PyGeodesy-24.6.9.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=dxRGIMc_KFg9rWL9IHUZhVmCD3d_3a7DJpfSsyRS0is,41050
3
- pygeodesy/__main__.py,sha256=UmTd6Qw20g_pgnQjdaHePm-xuOEBi1tUNRLO0eL0-rU,4593
4
- pygeodesy/albers.py,sha256=2t8EjmoFWmkdTb4DUHMlECkwTPDS1wpNf92WD_UWXds,31081
5
- pygeodesy/azimuthal.py,sha256=RQdZbHoLlHSamhnJ4GMrrRU6UrYmTpa1yK59nYB-A4o,50252
6
- pygeodesy/basics.py,sha256=QE3Z3JC-BOAyaj_k6pxqwUpVLzkxJx0Ed1Dcjie8lbg,28241
7
- pygeodesy/booleans.py,sha256=_OMqrm3R8vHHWo3heglKhUCKWdG8HzHmHLGKRNMF0nY,74141
8
- pygeodesy/cartesianBase.py,sha256=P3EUMYKad9HxNSQQJTbPu4QehQu5HDxqOo9-xYsTdp4,47366
9
- pygeodesy/clipy.py,sha256=3ysIEWQ89HjvLnSlZm0nZAt9EN5AQxIs1sLLM8yF9zM,27675
10
- pygeodesy/constants.py,sha256=-KhClvNhehL7UCnqPgZyEnS3cSyYf7EBDRF0Vgmcgks,19190
11
- pygeodesy/css.py,sha256=RXlLh76tVDFClVh7L1U3FFrLZvjBPFASDf3vq8dHecE,25778
12
- pygeodesy/datums.py,sha256=GYbtvPyzDChHYgnNleBqsM-MNwLNQqrO2_MMV4Z9kmI,34006
13
- pygeodesy/dms.py,sha256=VujWxk1L2Kp6OMfnu0XPI-j8bnyJ33sFmtB9_MbHqSU,44455
14
- pygeodesy/ecef.py,sha256=U_vxQKD1HXB-O10Q_9tZ4EiD9SdFYuG__5lqvrhE_0M,59795
15
- pygeodesy/elevations.py,sha256=1qZM2w0rDF7jHunydpTEmdLwOwF81KUL9L6RALJC7K4,10807
16
- pygeodesy/ellipsoidalBase.py,sha256=VTzRrHlfZ-VXAEUczQjDNMDbTN9kVYBgCMuOos021Dk,56710
17
- pygeodesy/ellipsoidalBaseDI.py,sha256=lPUPP5lVsCzI5RIukxmJ5MH6j2Mb7mdvftQ0tsvsW6g,38585
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=JuxCUqUtot4e8587Q84Npc1_SdahywTYsybRSMTRtSc,30265
22
- pygeodesy/ellipsoidalVincenty.py,sha256=Uk93B8GFcMnWiwKUOA84TlLwbBlvzVnsAXAx0cU7cn4,26004
23
- pygeodesy/ellipsoids.py,sha256=I-vlTW3hqNK-Joqo8q3f1KxY-Y3yD4mVxo7TBWSGxYw,120212
24
- pygeodesy/elliptic.py,sha256=-80MbZvRPk-TeA_ggkfXhjuPv07MzsB4HxNF7gbdhB4,42501
25
- pygeodesy/epsg.py,sha256=oWHX_QVChE5roktAyXUmPmX49XHiryYmXTHxQzrAprE,8222
26
- pygeodesy/errors.py,sha256=A8eOE3ddsH9kFP6O60cA5ZuQMjBWpmbRDdWKM2Onvng,28187
27
- pygeodesy/etm.py,sha256=w0_8tF6p54K2dBAhsOW9YZTTWHJY7BnFnqh34PKm8PU,45075
28
- pygeodesy/fmath.py,sha256=71kngkiWgwFoLbJ6JKb2dJ0ZBmTFd_mdsGZkU_m-8Ts,34103
29
- pygeodesy/formy.py,sha256=CmQlz2I1KNXeIU73T9zzHNvTnenMFvfnZVCJCxhSwZg,75693
30
- pygeodesy/frechet.py,sha256=MwOC2VvOL4lNcvpF-kUaN5FYNp6xudYP5dyBtSwKz3Y,34338
31
- pygeodesy/fstats.py,sha256=4eIhzSCMnn-2nVP3Q-5cCWCI-rvH0CE-zkk9hp3Pvn8,28642
32
- pygeodesy/fsums.py,sha256=VdvK7Z01MNRcknf8hWujvD08WMCgJ98OdUCCbT9Xfqk,79434
33
- pygeodesy/gars.py,sha256=gVnLQIEofyf_dA8dhpLrmhtIxGhBHZVRw8PbWgYUnnY,11400
34
- pygeodesy/geodesicw.py,sha256=PwUO5jCGExhMt6cKkQwVnPTHMMVadkTrd6pV4UWZYNY,27064
35
- pygeodesy/geodsolve.py,sha256=gRwdmjYe2oslt2z2vBnMlh_FURqGm9ai7t4XPrnjCxQ,22019
36
- pygeodesy/geohash.py,sha256=plBNMHbiQa9E8RPq7rgFYoJAl14mhkgnDucGoXD5YHg,32373
37
- pygeodesy/geoids.py,sha256=25HrOgsCvFnXTjh3ghc1Y1FQKjerPpo_OLlQBNayK_0,80887
38
- pygeodesy/hausdorff.py,sha256=3mC7QbRZawpqFaguTieHMCaDzVt22PNhJ0s9ZPgQA1k,34712
39
- pygeodesy/heights.py,sha256=ZqRy20ZUVatumPWWS-j7Vvq3BA7HaRWMOd6BvbMhHm8,43575
40
- pygeodesy/internals.py,sha256=iTOhd3Lb96JuaeR9BFDv0ixGRktn7O_HpHrp5W_1LTY,19344
41
- pygeodesy/interns.py,sha256=QoDo_S1qY8IJVqI0pH2jGESLEexEF480PuwWZnTVrRI,23600
42
- pygeodesy/iters.py,sha256=ML14NjtDpfPRtDJQsUYUtJZ81HH4NPFrCjecxwkcIuM,20309
43
- pygeodesy/karney.py,sha256=7d0VroQiobcTS5ccaWg99rGRaMUorqRJTaCBaSscKI4,35084
44
- pygeodesy/ktm.py,sha256=itQElJegrfhpAuMujAWFTcyuMSeKIgSyw5qkkHFs7vE,27519
45
- pygeodesy/latlonBase.py,sha256=DglIfu916vtMV8-wEUs4GrXmk698-j3dkSud8FOBB6o,77762
46
- pygeodesy/lazily.py,sha256=FjvgzWyXiM9gJNzTCVWi_RxonR0OrBJOQiFFl0n1Cx4,45478
47
- pygeodesy/lcc.py,sha256=6vGht5JCN_BYYzbU2YCK6jz3PFcVymvY-RK2Uflt7ZE,25745
48
- pygeodesy/ltp.py,sha256=QcDoeOXBQLto2vXTWhKUFKre7bfGN4lZLcgLsZLKwMY,49258
49
- pygeodesy/ltpTuples.py,sha256=bZjcmj4Ug42d2gjofhfzr2Min_A8M62vZOOSINY1K9s,55771
50
- pygeodesy/mgrs.py,sha256=zddMOnUIs8VSk0c3muTaljTl7OViCgX6JB28gWPdmVM,29029
51
- pygeodesy/named.py,sha256=SOlbmB6Ned9TacOSTwchi8hcOmvCNAy6A2M_DMhDusM,51204
52
- pygeodesy/namedTuples.py,sha256=N8fyc6OMdXNHgOk_tK2zhuWwBq6oB-QcAY-PG9xIgWk,27535
53
- pygeodesy/nvectorBase.py,sha256=Z6tA3XthUu990UOUv0o8l5gjnmE7e2Cqkob69spoXYE,28831
54
- pygeodesy/osgr.py,sha256=s_-21bYhXUv37thzgIQjGmMmMdT46RlecOixHRufW4o,31044
55
- pygeodesy/points.py,sha256=9VfKDo9rt935WW61k4PpXSKzSx02demxhLVpf9DRcNk,64412
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=W7qF_dW24Dd9aS2wh0nD9Lj8BgOSImsACxR1-iNRuyQ,16709
60
- pygeodesy/sphericalBase.py,sha256=sH2WwmY_RL0STyr1OhtCDKvGhO0Ks7o3V-MHLddpiHQ,31944
61
- pygeodesy/sphericalNvector.py,sha256=TBs_nid_DTcox7bBegh_Djv4zZRGRY4mH6dd1xIHGms,56963
62
- pygeodesy/sphericalTrigonometry.py,sha256=p9sDwyHH441pdPktUE6zrRtGQpwNO8F4ey07QtUW7z0,64209
63
- pygeodesy/streprs.py,sha256=AZzil7Encfb1E7NG7tNHHivuayKQ-LZJJTMVumUhsEQ,23993
64
- pygeodesy/trf.py,sha256=r5d_fFHQiPH8HPnBdzLhCju2rKNRCEDZ8UwIBWujR2E,118904
65
- pygeodesy/triaxials.py,sha256=5WKymGpixPjsgol4ifSl5pH-f7bTfZsMrmcYFuZBtwY,62040
66
- pygeodesy/units.py,sha256=DIllydnoz4rfw3ST91D_6-K_QGFiCqNcYvf6B_mUJMs,38827
67
- pygeodesy/unitsBase.py,sha256=FA4DuXUb88YYsDS3aIkd7BGvj70JATMeuBV_efshUx0,13544
68
- pygeodesy/ups.py,sha256=Rw4cO7Q20w-y7DKEHiuX7BkansDZnm8uvQRApFJ-USo,23287
69
- pygeodesy/utily.py,sha256=AOEHXi7H5QsTmgxcp0qOGC2qvIdqS01Mfu0Y8m3Bp6w,36141
70
- pygeodesy/utm.py,sha256=p1MH5qm5Fi9nWEfY7ww-y1O4FcuQuuR08mNlHp7MLKk,31135
71
- pygeodesy/utmups.py,sha256=u2hlWSnmZKwR-ApgKw16R9p75sW_yaqQAmbcBUE8Zfg,13007
72
- pygeodesy/utmupsBase.py,sha256=x9LHKi44aYB473ukVvxt1rRJ68MOAQGWiiOhzRskiio,18974
73
- pygeodesy/vector2d.py,sha256=zJq5PB777_mFJpKD-rt_T0Vm4SNbVwF7pc3KxX8uCT8,34994
74
- pygeodesy/vector3d.py,sha256=danoz3QA90EJjqr2dmLPCYP5UG0m_pgiyNuNBW0aNJ8,45065
75
- pygeodesy/vector3dBase.py,sha256=GhEq2oFfLoF57cDy6lvsB0b-dgTneMcrtDSyIiGr4mY,35630
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=xLIJ2uAhO-p_NDywrEi0tJxJ7r7jw3yG5B2CfSjNKJw,2881
82
- pygeodesy/auxilats/__main__.py,sha256=BsNxHMo-VqXL0-kFTrpMUz5SFUO_K4udQLemXgvTxLE,2896
83
- pygeodesy/auxilats/auxAngle.py,sha256=ybW0FMGaf69V5FYgVoqZENU-5b43FsmCPSYXcOu2fT8,16740
84
- pygeodesy/auxilats/auxDLat.py,sha256=U3BHF6AkW5--nrwH9whL5wZVIZLH_keRLfUz6c6KBx4,10950
85
- pygeodesy/auxilats/auxDST.py,sha256=bdNEh3TdABWH7qW6ngZx5SnzDM3B5rtPLvYhvCnFsKc,10497
86
- pygeodesy/auxilats/auxLat.py,sha256=GUpK5_rcL8IHjC209dhIibYYBJudFU0Yk7JD-KUApbc,32529
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=b5pOZbSBjN9WVP7fOMSBzTIbx1H0omHMXzOgf6rAgvs,2446
103
- pygeodesy/geodesicx/__main__.py,sha256=FVlmJft__Utk30zYwCbvrJpmAFi_jmyigzbm4An3Wws,3167
104
- pygeodesy/geodesicx/gx.py,sha256=reyK3UrooZmXTrwPcU36kO0R_ffZ5cMjPZoQ1qWHaO0,61729
105
- pygeodesy/geodesicx/gxarea.py,sha256=-Kwe6spe2MSQbeLFDd6UN2NOi4JOjYhHAEzonOU3u4A,19409
106
- pygeodesy/geodesicx/gxbases.py,sha256=nSQpDPuRQFkkzvjOaalBTHOQCYT1fhSOb5uy-5NvvSA,5215
107
- pygeodesy/geodesicx/gxline.py,sha256=GP7BXfpsePLZy0SLLiIO6ytWKFpBLuPsOaL2Z_-45iU,27373
108
- pygeodesy/rhumb/__init__.py,sha256=70qKVuNKkddfqMSxZ9c0VCZM1w0_Ka_nBWwtpfxxh2o,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.24.dist-info/METADATA,sha256=b7AJM6eBNwRiyOCN0orAkHqGorz9KpaFu18NxBuTs48,19364
114
- PyGeodesy-24.5.24.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
115
- PyGeodesy-24.5.24.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
116
- PyGeodesy-24.5.24.dist-info/RECORD,,