pygeodesy 24.8.24__py2.py3-none-any.whl → 24.9.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.
- {PyGeodesy-24.8.24.dist-info → PyGeodesy-24.9.24.dist-info}/METADATA +7 -7
- {PyGeodesy-24.8.24.dist-info → PyGeodesy-24.9.24.dist-info}/RECORD +49 -48
- pygeodesy/__init__.py +7 -5
- pygeodesy/__main__.py +46 -47
- pygeodesy/auxilats/_CX_4.py +104 -181
- pygeodesy/auxilats/_CX_6.py +152 -277
- pygeodesy/auxilats/_CX_8.py +211 -438
- pygeodesy/auxilats/_CX_Rs.py +222 -0
- pygeodesy/auxilats/__init__.py +2 -2
- pygeodesy/auxilats/__main__.py +30 -38
- pygeodesy/auxilats/auxLat.py +28 -36
- pygeodesy/auxilats/auxily.py +30 -50
- pygeodesy/basics.py +24 -14
- pygeodesy/booleans.py +13 -14
- pygeodesy/clipy.py +7 -7
- pygeodesy/constants.py +44 -31
- pygeodesy/deprecated/__init__.py +1 -1
- pygeodesy/deprecated/functions.py +9 -1
- pygeodesy/elliptic.py +154 -88
- pygeodesy/errors.py +32 -5
- pygeodesy/etm.py +71 -59
- pygeodesy/fmath.py +125 -96
- pygeodesy/fstats.py +8 -12
- pygeodesy/fsums.py +802 -355
- pygeodesy/geodesici.py +6 -5
- pygeodesy/geodesicx/_C4_24.py +1 -3
- pygeodesy/geodesicx/_C4_27.py +1 -3
- pygeodesy/geodesicx/_C4_30.py +1 -3
- pygeodesy/geodesicx/__init__.py +1 -1
- pygeodesy/geodesicx/__main__.py +44 -46
- pygeodesy/geodesicx/gxarea.py +3 -3
- pygeodesy/geodesicx/gxbases.py +32 -18
- pygeodesy/internals.py +50 -9
- pygeodesy/interns.py +3 -2
- pygeodesy/karney.py +79 -60
- pygeodesy/ktm.py +4 -4
- pygeodesy/lazily.py +10 -5
- pygeodesy/mgrs.py +47 -42
- pygeodesy/named.py +4 -1
- pygeodesy/points.py +3 -3
- pygeodesy/props.py +7 -6
- pygeodesy/resections.py +2 -2
- pygeodesy/rhumb/__init__.py +1 -1
- pygeodesy/rhumb/aux_.py +42 -60
- pygeodesy/sphericalNvector.py +4 -4
- pygeodesy/sphericalTrigonometry.py +2 -2
- pygeodesy/triaxials.py +3 -3
- {PyGeodesy-24.8.24.dist-info → PyGeodesy-24.9.24.dist-info}/WHEEL +0 -0
- {PyGeodesy-24.8.24.dist-info → PyGeodesy-24.9.24.dist-info}/top_level.txt +0 -0
pygeodesy/rhumb/aux_.py
CHANGED
|
@@ -31,7 +31,8 @@ from __future__ import division as _; del _ # PYCHOK semicolon
|
|
|
31
31
|
from pygeodesy.auxilats.auxAngle import AuxMu, AuxPhi, hypot
|
|
32
32
|
from pygeodesy.auxilats.auxDLat import AuxDLat, _DClenshaw
|
|
33
33
|
# from pygeodesy.auxilats.auxDST import AuxDST # _MODS
|
|
34
|
-
from pygeodesy.auxilats.auxily import _Dlam, _Dp0Dpsi
|
|
34
|
+
from pygeodesy.auxilats.auxily import _Dlam, _Dp0Dpsi
|
|
35
|
+
from pygeodesy.auxilats._CX_Rs import _Rdict, _Rtuple
|
|
35
36
|
from pygeodesy.basics import copysign0, _reverange, _xkwds_get1
|
|
36
37
|
from pygeodesy.constants import EPS_2, MANT_DIG, PI4, isinf, \
|
|
37
38
|
_0_0, _4_0, _720_0, _log2, _over
|
|
@@ -47,7 +48,7 @@ from pygeodesy.rhumb.bases import RhumbBase, RhumbLineBase, \
|
|
|
47
48
|
from math import ceil as _ceil, fabs, radians
|
|
48
49
|
|
|
49
50
|
__all__ = _ALL_LAZY.rhumb_aux_
|
|
50
|
-
__version__ = '24.
|
|
51
|
+
__version__ = '24.09.02'
|
|
51
52
|
|
|
52
53
|
# DIGITS = (sizeof(real) * 8) bits
|
|
53
54
|
# = (ctypes.sizeof(ctypes.c_double(1.0)) * 8) bits
|
|
@@ -302,73 +303,54 @@ def _RAseries(auxD):
|
|
|
302
303
|
Cs = _RACoeffs[aL]
|
|
303
304
|
# assert len(Cs) == (aL * (aL + 1)) // 2
|
|
304
305
|
pP = []
|
|
305
|
-
_P = pP.append
|
|
306
306
|
_p = _polynomial
|
|
307
307
|
for m in _reverange(aL): # order
|
|
308
308
|
j = i + m + 1
|
|
309
|
-
|
|
309
|
+
pP.append(_p(n, Cs, i, j) * d)
|
|
310
310
|
d *= n
|
|
311
311
|
i = j
|
|
312
312
|
# assert i == len(pP)
|
|
313
313
|
return pP
|
|
314
314
|
|
|
315
315
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
-
|
|
342
|
-
-
|
|
343
|
-
|
|
344
|
-
-
|
|
345
|
-
|
|
346
|
-
-58573784
|
|
347
|
-
|
|
348
|
-
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
188270561816 / _f(488462349375), -565017322 / _f(1915538625),
|
|
355
|
-
138734126 / _f(638512875), -102614 / _f(467775), 596 / _f(2025),
|
|
356
|
-
-398 / _f(945), 22 / _f(45), -1 / _f(3),
|
|
357
|
-
2332829602 / _f(23260111875), -1969276 / _f(58046625),
|
|
358
|
-
17749373 / _f(425675250), -24562 / _f(155925), 1543 / _f(4725),
|
|
359
|
-
-118 / _f(315), 1 / _f(5),
|
|
360
|
-
-41570288 / _f(930404475), -58573784 / _f(638512875),
|
|
361
|
-
1882432 / _f(8513505), -38068 / _f(155925), 152 / _f(945),
|
|
362
|
-
-17 / _f(315),
|
|
363
|
-
1538774036 / _f(10854718875), -6975184 / _f(42567525),
|
|
364
|
-
268864 / _f(2027025), -752 / _f(10395), 5 / _f(252),
|
|
365
|
-
436821248 / _f(3618239625), -112832 / _f(1447875),
|
|
366
|
-
62464 / _f(2027025), -101 / _f(17325),
|
|
367
|
-
3059776 / _f(80405325), -4096 / _f(289575), 11537 / _f(4054050),
|
|
368
|
-
4193792 / _f(723647925), -311 / _f(525525),
|
|
369
|
-
1097653 / _f(1929727800))
|
|
370
|
-
}
|
|
371
|
-
del _f, _u, _Ufloats
|
|
316
|
+
_RACoeffs = _Rdict(110, # Rhumb Area Coefficients in matrix Q
|
|
317
|
+
_Rtuple(4, 10, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 4
|
|
318
|
+
'596/2025, -398/945, 22/45, -1/3',
|
|
319
|
+
'1543/4725, -118/315, 1/5',
|
|
320
|
+
'152/945, -17/315',
|
|
321
|
+
'5/252'),
|
|
322
|
+
_Rtuple(5, 15, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 5
|
|
323
|
+
'-102614/467775, 596/2025, -398/945, 22/45, -1/3',
|
|
324
|
+
'-24562/155925, 1543/4725, -118/315, 1/5',
|
|
325
|
+
'-38068/155925, 152/945, -17/315',
|
|
326
|
+
'-752/10395, 5/252',
|
|
327
|
+
'-101/17325'),
|
|
328
|
+
_Rtuple(6, 21, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 6
|
|
329
|
+
'138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',
|
|
330
|
+
'17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',
|
|
331
|
+
'1882432/8513505, -38068/155925, 152/945, -17/315',
|
|
332
|
+
'268864/2027025, -752/10395, 5/252',
|
|
333
|
+
'62464/2027025, -101/17325',
|
|
334
|
+
'11537/4054050'),
|
|
335
|
+
_Rtuple(7, 28, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 7
|
|
336
|
+
'-565017322/1915538625, 138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',
|
|
337
|
+
'-1969276/58046625, 17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',
|
|
338
|
+
'-58573784/638512875, 1882432/8513505, -38068/155925, 152/945, -17/315',
|
|
339
|
+
'-6975184/42567525, 268864/2027025, -752/10395, 5/252',
|
|
340
|
+
'-112832/1447875, 62464/2027025, -101/17325',
|
|
341
|
+
'-4096/289575, 11537/4054050',
|
|
342
|
+
'-311/525525'),
|
|
343
|
+
_Rtuple(8, 36, # GEOGRAPHICLIB_RHUMBAREA_ORDER == 8
|
|
344
|
+
'188270561816/488462349375, -565017322/1915538625, 138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',
|
|
345
|
+
'2332829602/23260111875, -1969276/58046625, 17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',
|
|
346
|
+
'-41570288/930404475, -58573784/638512875, 1882432/8513505, -38068/155925, 152/945, -17/315',
|
|
347
|
+
'1538774036/10854718875, -6975184/42567525, 268864/2027025, -752/10395, 5/252',
|
|
348
|
+
'436821248/3618239625, -112832/1447875, 62464/2027025, -101/17325',
|
|
349
|
+
'3059776/80405325, -4096/289575, 11537/4054050',
|
|
350
|
+
'4193792/723647925, -311/525525',
|
|
351
|
+
'1097653/1929727800')
|
|
352
|
+
)
|
|
353
|
+
del _Rdict, _Rtuple
|
|
372
354
|
|
|
373
355
|
__all__ += _ALL_DOCS(Caps)
|
|
374
356
|
|
pygeodesy/sphericalNvector.py
CHANGED
|
@@ -61,7 +61,7 @@ from pygeodesy.utily import atan2, degrees360, fabs, sincos2, sincos2_, \
|
|
|
61
61
|
# from math import atan2, fabs # from utily
|
|
62
62
|
|
|
63
63
|
__all__ = _ALL_LAZY.sphericalNvector
|
|
64
|
-
__version__ = '24.
|
|
64
|
+
__version__ = '24.09.23'
|
|
65
65
|
|
|
66
66
|
_lines_ = 'lines'
|
|
67
67
|
|
|
@@ -491,7 +491,7 @@ class LatLon(LatLonNvectorBase, LatLonSphericalBase):
|
|
|
491
491
|
# an exterior point will sum to 0°. On a sphere, enclosed
|
|
492
492
|
# point angles will sum to less than 360° (due to spherical
|
|
493
493
|
# excess), exterior point angles will be small but non-zero.
|
|
494
|
-
s = fsum(_subtangles(points, wrap)
|
|
494
|
+
s = fsum(_subtangles(points, wrap)) # normal vector
|
|
495
495
|
# XXX are winding number optimisations equally applicable to
|
|
496
496
|
# spherical surface?
|
|
497
497
|
return fabs(s) > PI
|
|
@@ -846,7 +846,7 @@ def areaOf(points, radius=R_M, wrap=False):
|
|
|
846
846
|
# angle between edges is π−α or π+α, where α is angle between
|
|
847
847
|
# great-circle vectors; so sum α, then take n·π − |Σα| (cannot
|
|
848
848
|
# use Σ(π−|α|) as concave polygons would fail)
|
|
849
|
-
s = fsum(_interangles(points, wrap)
|
|
849
|
+
s = fsum(_interangles(points, wrap))
|
|
850
850
|
# using Girard’s theorem: A = [Σθᵢ − (n−2)·π]·R²
|
|
851
851
|
# (PI2 - abs(s) == (n*PI - abs(s)) - (n-2)*PI)
|
|
852
852
|
r = fabs(PI2 - fabs(s))
|
|
@@ -1138,7 +1138,7 @@ def perimeterOf(points, closed=False, radius=R_M, wrap=False):
|
|
|
1138
1138
|
notImplemented(None, closed=closed, points=_composite_)
|
|
1139
1139
|
r = points._sum2(LatLon, perimeterOf, closed=True, radius=None, wrap=wrap)
|
|
1140
1140
|
else:
|
|
1141
|
-
r = fsum(_rads(points, closed, wrap)
|
|
1141
|
+
r = fsum(_rads(points, closed, wrap))
|
|
1142
1142
|
return r if radius is None else (Radius(radius) * r)
|
|
1143
1143
|
|
|
1144
1144
|
|
|
@@ -54,7 +54,7 @@ from pygeodesy.vector3d import sumOf, Vector3d
|
|
|
54
54
|
from math import asin, atan2, cos, degrees, fabs, radians, sin
|
|
55
55
|
|
|
56
56
|
__all__ = _ALL_LAZY.sphericalTrigonometry
|
|
57
|
-
__version__ = '24.
|
|
57
|
+
__version__ = '24.09.23'
|
|
58
58
|
|
|
59
59
|
_PI_EPS4 = PI - EPS4
|
|
60
60
|
if _PI_EPS4 >= PI:
|
|
@@ -1302,7 +1302,7 @@ def perimeterOf(points, closed=False, radius=R_M, wrap=True):
|
|
|
1302
1302
|
raise _ValueError(closed=closed, points=_composite_)
|
|
1303
1303
|
r = points._sum2(LatLon, perimeterOf, closed=True, radius=radius, wrap=wrap)
|
|
1304
1304
|
else:
|
|
1305
|
-
r = fsum(_rads(points, closed, wrap)
|
|
1305
|
+
r = fsum(_rads(points, closed, wrap))
|
|
1306
1306
|
return _radians2m(r, radius)
|
|
1307
1307
|
|
|
1308
1308
|
|
pygeodesy/triaxials.py
CHANGED
|
@@ -33,7 +33,7 @@ from __future__ import division as _; del _ # PYCHOK semicolon
|
|
|
33
33
|
from pygeodesy.basics import isLatLon, isscalar, _ValueError
|
|
34
34
|
from pygeodesy.constants import EPS, EPS0, EPS02, EPS4, INT0, PI2, PI_3, PI4, \
|
|
35
35
|
_EPS2e4, float0_, isfinite, isnear1, _over, \
|
|
36
|
-
_0_0, _0_5, _1_0, _N_1_0, _4_0 # PYCHOK used!
|
|
36
|
+
_0_0, _0_5, _1_0, _N_1_0, _64_0, _4_0 # PYCHOK used!
|
|
37
37
|
from pygeodesy.datums import Datum, _spherical_datum, _WGS84, Ellipsoid, _EWGS84, Fmt
|
|
38
38
|
# from pygeodesy.ellipsoids import Ellipsoid, _EWGS84 # from .datums
|
|
39
39
|
# from pygeodesy.elliptic import Elliptic # _MODS
|
|
@@ -59,7 +59,7 @@ from pygeodesy.vector3d import _otherV3d, Vector3d, _ALL_LAZY, _MODS
|
|
|
59
59
|
from math import atan2, fabs, sqrt
|
|
60
60
|
|
|
61
61
|
__all__ = _ALL_LAZY.triaxials
|
|
62
|
-
__version__ = '24.08.
|
|
62
|
+
__version__ = '24.08.26'
|
|
63
63
|
|
|
64
64
|
_not_ordered_ = _not_('ordered')
|
|
65
65
|
_omega_ = 'omega'
|
|
@@ -1157,7 +1157,7 @@ Triaxials = Triaxials(Triaxial, Triaxial_) # PYCHOK singleton
|
|
|
1157
1157
|
# <https://link.Springer.com/article/10.1007/s00190-022-01650-9>
|
|
1158
1158
|
_abc84_35 = (_EWGS84.a + 35), (_EWGS84.a - 35), _EWGS84.b
|
|
1159
1159
|
Triaxials._assert( # a (Km) b (Km) c (Km) planet
|
|
1160
|
-
Amalthea = _lazy('Amalthea', 125.0, 73.0,
|
|
1160
|
+
Amalthea = _lazy('Amalthea', 125.0, 73.0, _64_0), # Jupiter
|
|
1161
1161
|
Ariel = _lazy('Ariel', 581.1, 577.9, 577.7), # Uranus
|
|
1162
1162
|
Earth = _lazy('Earth', 6378.173435, 6378.1039, 6356.7544),
|
|
1163
1163
|
Enceladus = _lazy('Enceladus', 256.6, 251.4, 248.3), # Saturn
|
|
File without changes
|
|
File without changes
|