pygeodesy 24.10.24__py2.py3-none-any.whl → 24.12.12__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.10.24.dist-info → PyGeodesy-24.12.12.dist-info}/METADATA +6 -6
- PyGeodesy-24.12.12.dist-info/RECORD +118 -0
- {PyGeodesy-24.10.24.dist-info → PyGeodesy-24.12.12.dist-info}/WHEEL +1 -1
- pygeodesy/__init__.py +5 -5
- 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 +55 -65
- pygeodesy/basics.py +35 -34
- pygeodesy/booleans.py +37 -37
- pygeodesy/cartesianBase.py +26 -65
- pygeodesy/clipy.py +1 -1
- pygeodesy/constants.py +7 -7
- pygeodesy/css.py +8 -9
- pygeodesy/datums.py +1 -1
- pygeodesy/deprecated/__init__.py +2 -2
- pygeodesy/deprecated/bases.py +1 -1
- pygeodesy/deprecated/classes.py +10 -10
- pygeodesy/deprecated/consterns.py +1 -1
- pygeodesy/deprecated/datum.py +1 -1
- pygeodesy/deprecated/functions.py +23 -13
- 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 +63 -69
- pygeodesy/elevations.py +1 -1
- pygeodesy/ellipsoidalBase.py +106 -121
- pygeodesy/ellipsoidalBaseDI.py +115 -119
- pygeodesy/ellipsoidalExact.py +36 -38
- pygeodesy/ellipsoidalGeodSolve.py +1 -1
- pygeodesy/ellipsoidalKarney.py +1 -1
- pygeodesy/ellipsoidalNvector.py +1 -1
- pygeodesy/ellipsoidalVincenty.py +6 -5
- pygeodesy/ellipsoids.py +7 -8
- pygeodesy/elliptic.py +6 -6
- pygeodesy/epsg.py +1 -1
- pygeodesy/errors.py +25 -25
- pygeodesy/etm.py +84 -76
- pygeodesy/fmath.py +54 -51
- pygeodesy/formy.py +74 -106
- pygeodesy/frechet.py +1 -1
- pygeodesy/fstats.py +1 -1
- pygeodesy/fsums.py +82 -72
- pygeodesy/gars.py +1 -1
- pygeodesy/geodesici.py +4 -4
- pygeodesy/geodesicw.py +16 -15
- 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 +3 -3
- pygeodesy/geodesicx/__main__.py +1 -1
- 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 +8 -17
- pygeodesy/geohash.py +1 -1
- pygeodesy/geoids.py +6 -6
- pygeodesy/hausdorff.py +1 -1
- pygeodesy/heights.py +3 -3
- pygeodesy/internals.py +64 -80
- pygeodesy/interns.py +2 -3
- pygeodesy/iters.py +1 -1
- pygeodesy/karney.py +4 -4
- pygeodesy/ktm.py +20 -21
- pygeodesy/latlonBase.py +296 -346
- pygeodesy/lazily.py +15 -15
- pygeodesy/lcc.py +5 -5
- pygeodesy/ltp.py +55 -59
- pygeodesy/ltpTuples.py +208 -192
- pygeodesy/mgrs.py +9 -10
- pygeodesy/named.py +153 -3
- pygeodesy/namedTuples.py +58 -7
- pygeodesy/nvectorBase.py +122 -105
- pygeodesy/osgr.py +10 -13
- pygeodesy/points.py +1 -1
- pygeodesy/props.py +3 -3
- pygeodesy/resections.py +26 -26
- pygeodesy/rhumb/__init__.py +2 -2
- pygeodesy/rhumb/aux_.py +2 -2
- pygeodesy/rhumb/bases.py +2 -2
- pygeodesy/rhumb/ekx.py +4 -4
- pygeodesy/rhumb/solve.py +4 -4
- pygeodesy/simplify.py +291 -403
- pygeodesy/solveBase.py +1 -1
- pygeodesy/sphericalBase.py +1 -1
- pygeodesy/sphericalNvector.py +84 -127
- pygeodesy/sphericalTrigonometry.py +66 -71
- pygeodesy/streprs.py +10 -5
- pygeodesy/trf.py +1 -1
- pygeodesy/triaxials.py +23 -16
- pygeodesy/units.py +17 -17
- pygeodesy/unitsBase.py +1 -1
- pygeodesy/ups.py +4 -4
- pygeodesy/utily.py +202 -145
- pygeodesy/utm.py +10 -10
- pygeodesy/utmups.py +1 -1
- pygeodesy/utmupsBase.py +1 -1
- pygeodesy/vector2d.py +17 -17
- pygeodesy/vector3d.py +32 -23
- pygeodesy/vector3dBase.py +22 -19
- pygeodesy/webmercator.py +5 -5
- pygeodesy/wgrs.py +5 -5
- PyGeodesy-24.10.24.dist-info/RECORD +0 -118
- {PyGeodesy-24.10.24.dist-info → PyGeodesy-24.12.12.dist-info}/top_level.txt +0 -0
pygeodesy/ktm.py
CHANGED
|
@@ -35,7 +35,7 @@ following exceptions:
|
|
|
35
35
|
- Evaluating the convergence and scale using the expression for the
|
|
36
36
|
projection or its inverse.
|
|
37
37
|
|
|
38
|
-
Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-
|
|
38
|
+
Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)
|
|
39
39
|
and licensed under the MIT/X11 License. For more information, see the
|
|
40
40
|
U{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.
|
|
41
41
|
'''
|
|
@@ -49,8 +49,7 @@ from pygeodesy.constants import INF, _K0_UTM, PI, PI_2, _0_0s, _0_0, \
|
|
|
49
49
|
from pygeodesy.datums import Datum, _spherical_datum, _WGS84, _EWGS84
|
|
50
50
|
# from pygeodesy.ellipsoids import _EWGS84 # from .datums
|
|
51
51
|
from pygeodesy.errors import _ValueError, _xkwds_pop2, _Xorder
|
|
52
|
-
from pygeodesy.fmath import hypot, hypot1
|
|
53
|
-
from pygeodesy.fsums import fsum1f_
|
|
52
|
+
from pygeodesy.fmath import fdot_, hypot, hypot1
|
|
54
53
|
from pygeodesy.interns import _COMMASPACE_, _singular_
|
|
55
54
|
from pygeodesy.karney import _atan2d, _diff182, _fix90, _norm180, \
|
|
56
55
|
_polynomial, _unsigned2
|
|
@@ -61,13 +60,13 @@ from pygeodesy.props import property_doc_, Property, Property_RO, \
|
|
|
61
60
|
_update_all
|
|
62
61
|
# from pygeodesy.streprs import pairs # from .named
|
|
63
62
|
from pygeodesy.units import Degrees, Scalar_, _1mm as _TOL_10 # PYCHOK used!
|
|
64
|
-
from pygeodesy.utily import atan1d, _loneg, sincos2, sincos2d_
|
|
63
|
+
from pygeodesy.utily import atan1d, atan2, _loneg, sincos2, sincos2d_
|
|
65
64
|
|
|
66
65
|
from cmath import polar
|
|
67
|
-
from math import
|
|
66
|
+
from math import asinh, cos, cosh, degrees, fabs, sin, sinh, sqrt, tanh
|
|
68
67
|
|
|
69
68
|
__all__ = _ALL_LAZY.ktm
|
|
70
|
-
__version__ = '24.
|
|
69
|
+
__version__ = '24.11.24'
|
|
71
70
|
|
|
72
71
|
|
|
73
72
|
class KTMError(_ValueError):
|
|
@@ -149,7 +148,8 @@ class KTransverseMercator(_NamedBase):
|
|
|
149
148
|
else:
|
|
150
149
|
self.ellipsoid = a_earth
|
|
151
150
|
|
|
152
|
-
|
|
151
|
+
if lon0:
|
|
152
|
+
self.lon0 = lon0
|
|
153
153
|
self.k0 = k0
|
|
154
154
|
if raiser:
|
|
155
155
|
self.raiser = True
|
|
@@ -426,17 +426,17 @@ class KTransverseMercator(_NamedBase):
|
|
|
426
426
|
return _COMMASPACE_.join(pairs(d, **kwds))
|
|
427
427
|
|
|
428
428
|
|
|
429
|
-
def
|
|
430
|
-
'''(INTERNAL)
|
|
431
|
-
C{a}, C{b0} and C{b1} and scalar C{Cn}.
|
|
429
|
+
def _cfma(a, b0, b1, Cn):
|
|
430
|
+
'''(INTERNAL) Complex fused-multiply-add M{a * b0 - b1 + Cn} with
|
|
431
|
+
complex C{a}, C{b0} and C{b1} and scalar C{Cn}.
|
|
432
432
|
|
|
433
433
|
@see: CPython function U{_Py_c_prod<https://GitHub.com/python/
|
|
434
434
|
cpython/blob/main/Objects/complexobject.c>}.
|
|
435
435
|
|
|
436
|
-
@note: Python function C{cmath.fsum}
|
|
436
|
+
@note: Python function C{cmath.fsum} no longer exists.
|
|
437
437
|
'''
|
|
438
|
-
r =
|
|
439
|
-
j =
|
|
438
|
+
r = fdot_(a.real, b0.real, -a.imag, b0.imag, -b1.real, _1_0, start=Cn)
|
|
439
|
+
j = fdot_(a.real, b0.imag, a.imag, b0.real, -b1.imag, _1_0)
|
|
440
440
|
return complex(r, j)
|
|
441
441
|
|
|
442
442
|
|
|
@@ -461,19 +461,18 @@ def _Cyxgk4(E, xi_, eta_, C):
|
|
|
461
461
|
y0 = complex(Cn) # +0j
|
|
462
462
|
z0 = complex(Cn * (n * 2))
|
|
463
463
|
n -= 1
|
|
464
|
-
_c = _cma
|
|
465
464
|
while n > 0:
|
|
466
465
|
Cn = C[n]
|
|
467
|
-
y1 =
|
|
468
|
-
z1 =
|
|
466
|
+
y1 = _cfma(a, y0, y1, Cn)
|
|
467
|
+
z1 = _cfma(a, z0, z1, Cn * (n * 2))
|
|
469
468
|
n -= 1
|
|
470
469
|
Cn = C[n]
|
|
471
|
-
y0 =
|
|
472
|
-
z0 =
|
|
470
|
+
y0 = _cfma(a, y1, y0, Cn)
|
|
471
|
+
z0 = _cfma(a, z1, z0, Cn * (n * 2))
|
|
473
472
|
n -= 1
|
|
474
473
|
# assert n == 0
|
|
475
|
-
x =
|
|
476
|
-
c =
|
|
474
|
+
x = _cfma(s, y0, -x, _0_0)
|
|
475
|
+
c = _cfma(c, z0, z1, _1_0)
|
|
477
476
|
|
|
478
477
|
# Gauss-Schreiber to Gauss-Krueger TM
|
|
479
478
|
# C{cmath.polar} handles INF, NAN, etc.
|
|
@@ -613,7 +612,7 @@ if __name__ == '__main__':
|
|
|
613
612
|
|
|
614
613
|
# **) MIT License
|
|
615
614
|
#
|
|
616
|
-
# Copyright (C) 2022-
|
|
615
|
+
# Copyright (C) 2022-2025 -- mrJean1 at Gmail -- All Rights Reserved.
|
|
617
616
|
#
|
|
618
617
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
619
618
|
# copy of this software and associated documentation files (the "Software"),
|