pygeodesy 24.11.11__py2.py3-none-any.whl → 25.1.5__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.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/METADATA +34 -35
- PyGeodesy-25.1.5.dist-info/RECORD +118 -0
- {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/WHEEL +1 -1
- pygeodesy/__init__.py +19 -19
- pygeodesy/__main__.py +1 -1
- pygeodesy/albers.py +5 -5
- pygeodesy/auxilats/_CX_4.py +1 -1
- pygeodesy/auxilats/_CX_6.py +1 -1
- pygeodesy/auxilats/_CX_8.py +1 -1
- pygeodesy/auxilats/_CX_Rs.py +1 -1
- pygeodesy/auxilats/__init__.py +1 -1
- pygeodesy/auxilats/__main__.py +1 -1
- pygeodesy/auxilats/auxAngle.py +5 -5
- pygeodesy/auxilats/auxDLat.py +6 -6
- pygeodesy/auxilats/auxDST.py +2 -2
- pygeodesy/auxilats/auxLat.py +5 -5
- pygeodesy/auxilats/auxily.py +2 -2
- pygeodesy/azimuthal.py +5 -5
- pygeodesy/basics.py +60 -8
- pygeodesy/booleans.py +1 -1
- pygeodesy/cartesianBase.py +22 -61
- pygeodesy/clipy.py +1 -1
- pygeodesy/constants.py +5 -5
- pygeodesy/css.py +1 -1
- pygeodesy/datums.py +1 -1
- pygeodesy/deprecated/__init__.py +2 -2
- pygeodesy/deprecated/bases.py +1 -1
- pygeodesy/deprecated/classes.py +86 -2
- pygeodesy/deprecated/consterns.py +1 -1
- pygeodesy/deprecated/datum.py +5 -5
- pygeodesy/deprecated/functions.py +42 -8
- pygeodesy/deprecated/nvector.py +1 -1
- pygeodesy/deprecated/rhumbBase.py +1 -1
- pygeodesy/deprecated/rhumbaux.py +1 -1
- pygeodesy/deprecated/rhumbsolve.py +1 -1
- pygeodesy/deprecated/rhumbx.py +1 -1
- pygeodesy/dms.py +1 -1
- pygeodesy/ecef.py +53 -56
- pygeodesy/elevations.py +1 -1
- pygeodesy/ellipsoidalBase.py +3 -3
- pygeodesy/ellipsoidalBaseDI.py +1 -1
- pygeodesy/ellipsoidalExact.py +1 -1
- pygeodesy/ellipsoidalGeodSolve.py +1 -1
- pygeodesy/ellipsoidalKarney.py +1 -1
- pygeodesy/ellipsoidalNvector.py +1 -1
- pygeodesy/ellipsoidalVincenty.py +6 -5
- pygeodesy/ellipsoids.py +4 -5
- pygeodesy/elliptic.py +6 -6
- pygeodesy/epsg.py +1 -1
- pygeodesy/errors.py +1 -1
- pygeodesy/etm.py +5 -5
- pygeodesy/fmath.py +18 -17
- pygeodesy/formy.py +409 -555
- pygeodesy/frechet.py +29 -86
- pygeodesy/fstats.py +1 -1
- pygeodesy/fsums.py +32 -33
- pygeodesy/gars.py +1 -1
- pygeodesy/geodesici.py +7 -7
- pygeodesy/geodesicw.py +1 -1
- pygeodesy/geodesicx/_C4_24.py +2 -2
- pygeodesy/geodesicx/_C4_27.py +2 -2
- pygeodesy/geodesicx/_C4_30.py +2 -2
- pygeodesy/geodesicx/__init__.py +2 -2
- pygeodesy/geodesicx/__main__.py +4 -5
- pygeodesy/geodesicx/gx.py +6 -5
- pygeodesy/geodesicx/gxarea.py +2 -2
- pygeodesy/geodesicx/gxbases.py +2 -2
- pygeodesy/geodesicx/gxline.py +16 -12
- pygeodesy/geodsolve.py +1 -1
- pygeodesy/geohash.py +1 -1
- pygeodesy/geoids.py +277 -203
- pygeodesy/hausdorff.py +23 -81
- pygeodesy/heights.py +115 -150
- pygeodesy/internals.py +1 -1
- pygeodesy/interns.py +2 -3
- pygeodesy/iters.py +1 -1
- pygeodesy/karney.py +3 -3
- pygeodesy/ktm.py +16 -15
- pygeodesy/latlonBase.py +323 -409
- pygeodesy/lazily.py +53 -44
- pygeodesy/lcc.py +1 -1
- pygeodesy/ltp.py +46 -50
- pygeodesy/ltpTuples.py +147 -130
- pygeodesy/mgrs.py +1 -1
- pygeodesy/named.py +149 -3
- pygeodesy/namedTuples.py +58 -7
- pygeodesy/nvectorBase.py +122 -105
- pygeodesy/osgr.py +1 -1
- pygeodesy/points.py +1 -1
- pygeodesy/props.py +1 -1
- pygeodesy/resections.py +18 -17
- pygeodesy/rhumb/__init__.py +1 -1
- pygeodesy/rhumb/aux_.py +2 -2
- pygeodesy/rhumb/bases.py +2 -2
- pygeodesy/rhumb/ekx.py +4 -4
- pygeodesy/rhumb/solve.py +1 -1
- pygeodesy/simplify.py +289 -401
- pygeodesy/solveBase.py +1 -1
- pygeodesy/sphericalBase.py +1 -1
- pygeodesy/sphericalNvector.py +5 -5
- pygeodesy/sphericalTrigonometry.py +7 -6
- pygeodesy/streprs.py +10 -5
- pygeodesy/trf.py +1 -1
- pygeodesy/triaxials.py +23 -16
- pygeodesy/units.py +16 -16
- pygeodesy/unitsBase.py +1 -1
- pygeodesy/ups.py +4 -4
- pygeodesy/utily.py +341 -211
- pygeodesy/utm.py +5 -5
- pygeodesy/utmups.py +1 -1
- pygeodesy/utmupsBase.py +1 -1
- pygeodesy/vector2d.py +5 -5
- pygeodesy/vector3d.py +14 -3
- pygeodesy/vector3dBase.py +5 -5
- pygeodesy/webmercator.py +1 -1
- pygeodesy/wgrs.py +1 -1
- PyGeodesy-24.11.11.dist-info/RECORD +0 -118
- {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/top_level.txt +0 -0
pygeodesy/fmath.py
CHANGED
|
@@ -23,7 +23,7 @@ from math import fabs, sqrt # pow
|
|
|
23
23
|
import operator as _operator # in .datums, .trf, .utm
|
|
24
24
|
|
|
25
25
|
__all__ = _ALL_LAZY.fmath
|
|
26
|
-
__version__ = '24.
|
|
26
|
+
__version__ = '24.12.31'
|
|
27
27
|
|
|
28
28
|
# sqrt(2) - 1 <https://WikiPedia.org/wiki/Square_root_of_2>
|
|
29
29
|
_0_4142 = 0.41421356237309504880 # ... ~ 3730904090310553 / 9007199254740992
|
|
@@ -107,16 +107,18 @@ class Fhypot(Fsum):
|
|
|
107
107
|
other settings, see class L{Fsum<Fsum.__init__>} and method
|
|
108
108
|
L{root<Fsum.root>}.
|
|
109
109
|
'''
|
|
110
|
+
def _r_X_kwds(power=None, raiser=True, root=2, **kwds):
|
|
111
|
+
# DEPRECATED keyword argument C{power=2}, use C{root=2}
|
|
112
|
+
return (root if power is None else power), raiser, kwds
|
|
113
|
+
|
|
110
114
|
r = None # _xkwds_pop2 error
|
|
111
115
|
try:
|
|
112
|
-
r, kwds =
|
|
113
|
-
r, kwds = _xkwds_pop2(kwds, power=r) # for backward compatibility
|
|
114
|
-
t, kwds = _xkwds_pop2(kwds, raiser=True)
|
|
116
|
+
r, X, kwds = _r_X_kwds(**root_name_f2product_nonfinites_RESIDUAL_raiser)
|
|
115
117
|
Fsum.__init__(self, **kwds)
|
|
116
118
|
self(_0_0)
|
|
117
119
|
if xs:
|
|
118
|
-
self._facc_power(r, xs, Fhypot, raiser=
|
|
119
|
-
self._fset(self.root(r, raiser=
|
|
120
|
+
self._facc_power(r, xs, Fhypot, raiser=X)
|
|
121
|
+
self._fset(self.root(r, raiser=X))
|
|
120
122
|
except Exception as X:
|
|
121
123
|
raise self._ErrorXs(X, xs, root=r)
|
|
122
124
|
|
|
@@ -163,11 +165,11 @@ class Fpowers(Fsum):
|
|
|
163
165
|
L{fpow<Fsum.fpow>}.
|
|
164
166
|
'''
|
|
165
167
|
try:
|
|
166
|
-
|
|
168
|
+
X, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)
|
|
167
169
|
Fsum.__init__(self, **kwds)
|
|
168
170
|
self(_0_0)
|
|
169
171
|
if xs:
|
|
170
|
-
self._facc_power(power, xs, Fpowers, raiser=
|
|
172
|
+
self._facc_power(power, xs, Fpowers, raiser=X) # x**0 == 1
|
|
171
173
|
except Exception as X:
|
|
172
174
|
raise self._ErrorXs(X, xs, power=power)
|
|
173
175
|
|
|
@@ -187,12 +189,12 @@ class Froot(Fsum):
|
|
|
187
189
|
L{fpow<Fsum.fpow>}.
|
|
188
190
|
'''
|
|
189
191
|
try:
|
|
190
|
-
|
|
192
|
+
X, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)
|
|
191
193
|
Fsum.__init__(self, **kwds)
|
|
192
194
|
self(_0_0)
|
|
193
195
|
if xs:
|
|
194
196
|
self.fadd(xs)
|
|
195
|
-
self(self.root(root, raiser=
|
|
197
|
+
self(self.root(root, raiser=X))
|
|
196
198
|
except Exception as X:
|
|
197
199
|
raise self._ErrorXs(X, xs, root=root)
|
|
198
200
|
|
|
@@ -425,8 +427,7 @@ def fdot(xs, *ys, **start_f2product_nonfinites):
|
|
|
425
427
|
'''Return the precision dot product M{sum(xs[i] * ys[i] for i in range(len(xs)))}.
|
|
426
428
|
|
|
427
429
|
@arg xs: Iterable of values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
|
|
428
|
-
@arg ys: Other values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all
|
|
429
|
-
positional.
|
|
430
|
+
@arg ys: Other values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all positional.
|
|
430
431
|
@kwarg start_f2product_nonfinites: Optional bias C{B{start}=0} (C{scalar}, an
|
|
431
432
|
L{Fsum} or L{Fsum2Tuple}) and settings C{B{f2product}=None} (C{bool})
|
|
432
433
|
and C{B{nonfinites=True}} (C{bool}), see class L{Fsum<Fsum.__init__>}.
|
|
@@ -458,9 +459,9 @@ def fdot_(*xys, **start_f2product_nonfinites):
|
|
|
458
459
|
def fdot3(xs, ys, zs, **start_f2product_nonfinites):
|
|
459
460
|
'''Return the (precision) dot product M{start + sum(xs[i] * ys[i] * zs[i] for i in range(len(xs)))}.
|
|
460
461
|
|
|
461
|
-
@arg xs:
|
|
462
|
-
@arg ys:
|
|
463
|
-
@arg zs:
|
|
462
|
+
@arg xs: X values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
|
|
463
|
+
@arg ys: Y values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
|
|
464
|
+
@arg zs: Z values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).
|
|
464
465
|
|
|
465
466
|
@see: Function L{fdot} for further details.
|
|
466
467
|
|
|
@@ -833,7 +834,7 @@ if _MODS.sys_version_info2 < (3, 8): # PYCHOK no cover
|
|
|
833
834
|
'''
|
|
834
835
|
return float(_Hypot(*xs))
|
|
835
836
|
|
|
836
|
-
elif _MODS.sys_version_info2 < (3, 10):
|
|
837
|
+
elif _MODS.sys_version_info2 < (3, 10): # PYCHOK no cover
|
|
837
838
|
# In Python 3.8 and 3.9 C{math.hypot} is inaccurate, see
|
|
838
839
|
# U{agdhruv<https://GitHub.com/geopy/geopy/issues/466>},
|
|
839
840
|
# U{cffk<https://Bugs.Python.org/issue43088>} and module
|
|
@@ -1094,7 +1095,7 @@ def zqrt(x):
|
|
|
1094
1095
|
|
|
1095
1096
|
# **) MIT License
|
|
1096
1097
|
#
|
|
1097
|
-
# Copyright (C) 2016-
|
|
1098
|
+
# Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
|
|
1098
1099
|
#
|
|
1099
1100
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
1100
1101
|
# copy of this software and associated documentation files (the "Software"),
|