pygeodesy 25.10.10__py2.py3-none-any.whl → 25.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/__init__.py +25 -12
- pygeodesy/__main__.py +1 -1
- pygeodesy/albers.py +1 -1
- pygeodesy/angles.py +960 -0
- 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 +2 -2
- pygeodesy/auxilats/__main__.py +1 -1
- pygeodesy/auxilats/auxAngle.py +7 -8
- pygeodesy/auxilats/auxDLat.py +1 -1
- pygeodesy/auxilats/auxDST.py +1 -1
- pygeodesy/auxilats/auxLat.py +1 -1
- pygeodesy/auxilats/auxily.py +1 -1
- pygeodesy/azimuthal.py +6 -5
- pygeodesy/basics.py +14 -10
- pygeodesy/booleans.py +8 -33
- pygeodesy/cartesianBase.py +7 -7
- pygeodesy/clipy.py +17 -23
- pygeodesy/constants.py +86 -63
- 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 +32 -2
- pygeodesy/deprecated/consterns.py +1 -1
- pygeodesy/deprecated/datum.py +1 -1
- pygeodesy/deprecated/functions.py +1 -1
- 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 +1 -1
- pygeodesy/ecefLocals.py +1 -1
- pygeodesy/elevations.py +1 -1
- pygeodesy/ellipsoidalBase.py +1 -1
- 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 +1 -1
- pygeodesy/ellipsoids.py +7 -6
- pygeodesy/elliptic.py +1 -1
- pygeodesy/epsg.py +1 -1
- pygeodesy/errors.py +8 -4
- pygeodesy/etm.py +1 -1
- pygeodesy/fmath.py +15 -8
- pygeodesy/formy.py +107 -5
- pygeodesy/frechet.py +1 -1
- pygeodesy/fstats.py +1 -1
- pygeodesy/fsums.py +1 -1
- pygeodesy/gars.py +1 -1
- pygeodesy/geod3solve.py +488 -0
- pygeodesy/geodesici.py +4 -4
- pygeodesy/geodesicw.py +1 -1
- pygeodesy/geodesicx/_C4_24.py +1 -1
- pygeodesy/geodesicx/_C4_27.py +1 -1
- pygeodesy/geodesicx/_C4_30.py +1 -1
- pygeodesy/geodesicx/__init__.py +1 -1
- pygeodesy/geodesicx/__main__.py +1 -1
- pygeodesy/geodesicx/gx.py +1 -1
- pygeodesy/geodesicx/gxarea.py +1 -1
- pygeodesy/geodesicx/gxbases.py +1 -1
- pygeodesy/geodesicx/gxline.py +1 -1
- pygeodesy/geodsolve.py +70 -102
- pygeodesy/geohash.py +1 -1
- pygeodesy/geoids.py +1 -1
- pygeodesy/hausdorff.py +1 -1
- pygeodesy/heights.py +1 -1
- pygeodesy/internals.py +3 -3
- pygeodesy/interns.py +3 -3
- pygeodesy/iters.py +1 -1
- pygeodesy/karney.py +132 -116
- pygeodesy/ktm.py +1 -1
- pygeodesy/latlonBase.py +1 -1
- pygeodesy/lazily.py +25 -13
- pygeodesy/lcc.py +1 -1
- pygeodesy/ltp.py +1 -1
- pygeodesy/ltpTuples.py +1 -1
- pygeodesy/mgrs.py +3 -3
- pygeodesy/named.py +14 -9
- pygeodesy/namedTuples.py +1 -1
- pygeodesy/nvectorBase.py +1 -1
- pygeodesy/osgr.py +1 -1
- pygeodesy/points.py +1 -1
- pygeodesy/props.py +1 -1
- pygeodesy/resections.py +1 -1
- pygeodesy/rhumb/__init__.py +8 -6
- pygeodesy/rhumb/aux_.py +1 -1
- pygeodesy/rhumb/bases.py +1 -1
- pygeodesy/rhumb/ekx.py +1 -1
- pygeodesy/rhumb/solve.py +91 -84
- pygeodesy/simplify.py +1 -1
- pygeodesy/solveBase.py +72 -49
- pygeodesy/sphericalBase.py +1 -1
- pygeodesy/sphericalNvector.py +1 -1
- pygeodesy/sphericalTrigonometry.py +1 -1
- pygeodesy/streprs.py +6 -4
- pygeodesy/trf.py +1 -1
- pygeodesy/triaxials/__init__.py +70 -0
- pygeodesy/triaxials/bases.py +935 -0
- pygeodesy/triaxials/conformal3.py +617 -0
- pygeodesy/triaxials/triaxial3.py +969 -0
- pygeodesy/triaxials/triaxial5.py +1220 -0
- pygeodesy/units.py +6 -1
- pygeodesy/unitsBase.py +1 -1
- pygeodesy/ups.py +2 -3
- pygeodesy/utily.py +19 -15
- pygeodesy/utm.py +1 -1
- pygeodesy/utmups.py +1 -1
- pygeodesy/utmupsBase.py +1 -1
- pygeodesy/vector2d.py +2 -2
- pygeodesy/vector3d.py +1 -1
- pygeodesy/vector3dBase.py +195 -51
- pygeodesy/webmercator.py +1 -1
- pygeodesy/wgrs.py +1 -1
- {pygeodesy-25.10.10.dist-info → pygeodesy-25.12.12.dist-info}/METADATA +13 -13
- pygeodesy-25.12.12.dist-info/RECORD +125 -0
- pygeodesy/triaxials.py +0 -1566
- pygeodesy-25.10.10.dist-info/RECORD +0 -119
- {pygeodesy-25.10.10.dist-info → pygeodesy-25.12.12.dist-info}/WHEEL +0 -0
- {pygeodesy-25.10.10.dist-info → pygeodesy-25.12.12.dist-info}/top_level.txt +0 -0
pygeodesy/__init__.py
CHANGED
|
@@ -125,8 +125,8 @@ C{epydoc --html --no-private --no-source --name=pygeodesy --url=... -v pygeodesy
|
|
|
125
125
|
Tests
|
|
126
126
|
=====
|
|
127
127
|
|
|
128
|
-
The tests ran with Python 3.14 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.1),
|
|
129
|
-
Python 3.13.
|
|
128
|
+
The tests ran with Python 3.14.2 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.1),
|
|
129
|
+
Python 3.13.9 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.1),
|
|
130
130
|
U{numpy<https://PyPI.org/project/numpy>} 2.3.3, U{scipy<https://PyPI.org/project/scipy>} 1.16.2,
|
|
131
131
|
U{GeoConvert<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.5 and
|
|
132
132
|
U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.5),
|
|
@@ -143,20 +143,20 @@ U{GeoConvert<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.5,
|
|
|
143
143
|
U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.5,
|
|
144
144
|
U{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.5 and
|
|
145
145
|
U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.5), all in 64-bit on
|
|
146
|
-
macOS 26.
|
|
146
|
+
macOS 26.1 Tahoe.
|
|
147
147
|
|
|
148
148
|
All tests ran with and without C{lazy import} for Python 3 and with command line option C{-W default} and
|
|
149
149
|
env variable C{PYGEODESY_WARNINGS=on} for all Python versions. The results of those tests are included in
|
|
150
150
|
the distribution files.
|
|
151
151
|
|
|
152
152
|
Test coverage has been measured with U{coverage<https://PyPI.org/project/coverage>} 7.10.7 using Python
|
|
153
|
-
3.14, 3.13.
|
|
153
|
+
3.14.2, 3.13.9 and 3.12.7. The complete coverage report in HTML and a PDF summary are included in the
|
|
154
154
|
distribution files.
|
|
155
155
|
|
|
156
|
-
Python 3.14, 3.13.
|
|
156
|
+
Python 3.14.2, 3.13.9, 3.12.7 and 3.11.5 run on Apple M4 Si (C{arm64}), I{natively}. Python 2.7.18 runs
|
|
157
157
|
on Intel (C{x86_64}) or Intel I{emulation} ("C{arm64_x86_64}", see function L{machine<pygeodesy.machine>}).
|
|
158
158
|
|
|
159
|
-
The tests also ran with Python 3.13.
|
|
159
|
+
The tests also ran with Python 3.13.9 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.1) on
|
|
160
160
|
U{Debian 12<https://Cirrus-CI.com/github/mrJean1/PyGeodesy/master>} in 64-bit only, with Python 3.12.8 (and
|
|
161
161
|
U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Windows 2019Server
|
|
162
162
|
<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>} in 64-bit only and with Python 2.7.18 (and U{geographiclib
|
|
@@ -166,7 +166,7 @@ in 64- and 32-bit.
|
|
|
166
166
|
A single-File and single-Directory application with C{pygeodesy} has been bundled using U{PyInstaller
|
|
167
167
|
<https://PyPI.org/project/pyinstaller>} 3.4 and 64-bit Python 3.7.3 on macOS 10.13.6 High Sierra.
|
|
168
168
|
|
|
169
|
-
Previously, the tests were run with Python 3.13.0-
|
|
169
|
+
Previously, the tests were run with Python 3.13.0-7, 3.12.0-6, 3.11.2-4, 3.10.1-7, 3.9.6, 3.9.1, 3.8.7, 3.7.1, 2.7.15,
|
|
170
170
|
U{PyPy<https://PyPy.org>} 7.3.12 (Python 3.10.12), 7.3.1 (Python 3.6.9) and U{PyPy<https://PyPy.org>} 7.1.1 (Python
|
|
171
171
|
2.7.13) (and U{geographiclib <https://PyPI.org/project/geographiclib>} 1.52, U{numpy<https://PyPI.org/project/numpy>}
|
|
172
172
|
1.16.3, 1.16.4, 1.16.6, 1.19.0, 1.19.4, 1.19.5 or 1.22.4 and U{scipy<https://PyPI.org/project/scipy>} 1.2.1, 1.4.1,
|
|
@@ -187,10 +187,10 @@ Notes
|
|
|
187
187
|
=====
|
|
188
188
|
|
|
189
189
|
All Python source code has been statically U{checked<https://GitHub.com/ActiveState/code/tree/master/recipes/Python/
|
|
190
|
-
546532_PyChecker_postprocessor>} with U{Ruff<https://GitHub.com/astral-sh/ruff>} using Python 3.13.
|
|
190
|
+
546532_PyChecker_postprocessor>} with U{Ruff<https://GitHub.com/astral-sh/ruff>} using Python 3.13.9 and with
|
|
191
191
|
U{PyChecker<https://PyPI.org/project/pychecker>}, U{PyFlakes<https://PyPI.org/project/pyflakes>}, U{PyCodeStyle
|
|
192
192
|
<https://PyPI.org/project/pycodestyle>} (formerly Pep8) and U{McCabe<https://PyPI.org/project/mccabe>} using Python
|
|
193
|
-
2.7.18, both in 64-bit on macOS 26.
|
|
193
|
+
2.7.18, both in 64-bit on macOS 26.1 Tahoe.
|
|
194
194
|
|
|
195
195
|
For a summary of all I{Karney}-based functionality in C{pygeodesy}, see module U{karney
|
|
196
196
|
<https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.karney-module.html>}.
|
|
@@ -210,6 +210,7 @@ The following environment variables are observed by C{pygeodesy}:
|
|
|
210
210
|
- C{PYGEODESY_FSUM_RESIDUAL} - see module L{fsums<pygeodesy.fsums>} and method L{RESIDUAL<pygeodesy.Fsum.RESIDUAL>}.
|
|
211
211
|
- C{PYGEODESY_GEOCONVERT} - see module L{mgrs<pygeodesy.mgrs>}.
|
|
212
212
|
- C{PYGEODESY_GEODSOLVE} - see module L{geodsolve<pygeodesy.geodsolve>}.
|
|
213
|
+
- C{PYGEODESY_GEOD3SOLVE} - see module L{geodsolve<pygeodesy.geod3solve>}.
|
|
213
214
|
- C{PYGEODESY_INTERSECTTOOL} - see module L{geodesici<pygeodesy.geodesici>}.
|
|
214
215
|
- C{PYGEODESY_LAZY_IMPORT} - see module L{lazily<pygeodesy.lazily>} and variable L{isLazy<pygeodesy.isLazy>}.
|
|
215
216
|
- C{PYGEODESY_NOTIMPLEMENTED} - C{__special__} methods return C{NotImplemented} if set to "std".
|
|
@@ -247,7 +248,7 @@ and:
|
|
|
247
248
|
License
|
|
248
249
|
=======
|
|
249
250
|
|
|
250
|
-
**) U{Copyright (C) 2016-
|
|
251
|
+
**) U{Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.<https://OpenSource.org/licenses/MIT>}
|
|
251
252
|
|
|
252
253
|
C{Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
253
254
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
@@ -273,6 +274,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.}
|
|
|
273
274
|
@var EPS2: M{EPS * 2} ≈ 4.440892098501e-16 (C{float}).
|
|
274
275
|
@var EPS_2: M{EPS / 2} ≈ 1.110223024625e-16 (C{float}).
|
|
275
276
|
@var EPS4: M{EPS * 4} ≈ 8.881784197001e-16 (C{float}).
|
|
277
|
+
@var EPS8: M{EPS * 8} ≈ 1.776356839400e-15 (C{float}).
|
|
276
278
|
|
|
277
279
|
@var F_D: Format degrees as unsigned "deg°" with symbol, plus compass point suffix C{N, S, E} or C{W} (C{str}).
|
|
278
280
|
@var F_DM: Format degrees as unsigned "deg°min′" with symbols, plus suffix (C{str}).
|
|
@@ -321,6 +323,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.}
|
|
|
321
323
|
@var NINF: Negative infinity (C{float}), see function L{isninf<pygeodesy.isninf>} and C{INF}.
|
|
322
324
|
@var NN: Empty (C{str}), U{I{Nomen Nescio}<https://Wiktionary.org/wiki/N.N.>}.
|
|
323
325
|
|
|
326
|
+
@var OVERFLOW: Object representing C{overflow} (1 / L{EPS0<pygeodesy.constants.EPS0>} = 4.9e+32).
|
|
327
|
+
|
|
324
328
|
@var PI: Constant M{math.pi} (C{float}).
|
|
325
329
|
@var PI2: Two PI, M{PI * 2}, aka I{Tau} (C{float}).
|
|
326
330
|
@var PI_2: Half PI, M{PI / 2} (C{float}).
|
|
@@ -395,6 +399,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
|
|
|
395
399
|
|
|
396
400
|
# import all public modules and export as such
|
|
397
401
|
import pygeodesy.albers as albers # noqa: F401
|
|
402
|
+
import pygeodesy.angles as angles # noqa: F401
|
|
398
403
|
import pygeodesy.auxilats as auxilats # noqa: F401
|
|
399
404
|
import pygeodesy.azimuthal as azimuthal # noqa: F401
|
|
400
405
|
import pygeodesy.basics as basics # noqa: F401
|
|
@@ -431,6 +436,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
|
|
|
431
436
|
import pygeodesy.geodesicw as geodesicw # noqa: F401
|
|
432
437
|
import pygeodesy.geodesicx as geodesicx # noqa: F401
|
|
433
438
|
import pygeodesy.geodsolve as geodsolve # noqa: F401
|
|
439
|
+
import pygeodesy.geod3solve as geod3solve # noqa: F401
|
|
434
440
|
import pygeodesy.geohash as geohash # noqa: F401
|
|
435
441
|
import pygeodesy.geoids as geoids # noqa: F401
|
|
436
442
|
import pygeodesy.hausdorff as hausdorff # noqa: F401
|
|
@@ -481,6 +487,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
|
|
|
481
487
|
# NOT modules ellipsoidal*, epsg, gars, geohash, spherical*,
|
|
482
488
|
# vector and wgrs ... in order keep those as modules ONLY
|
|
483
489
|
from pygeodesy.albers import * # noqa: F403
|
|
490
|
+
from pygeodesy.angles import * # noqa: F403
|
|
484
491
|
from pygeodesy.azimuthal import * # noqa: F403
|
|
485
492
|
# from pygeodesy.auxilats import * # noqa: F403
|
|
486
493
|
from pygeodesy.basics import * # noqa: F403
|
|
@@ -517,6 +524,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
|
|
|
517
524
|
from pygeodesy.geodesicw import * # noqa: F403
|
|
518
525
|
from pygeodesy.geodesicx import * # noqa: F403
|
|
519
526
|
from pygeodesy.geodsolve import * # noqa: F403
|
|
527
|
+
from pygeodesy.geod3solve import * # noqa: F403
|
|
520
528
|
from pygeodesy.geohash import * # noqa: F403
|
|
521
529
|
from pygeodesy.geoids import * # noqa: F403
|
|
522
530
|
from pygeodesy.hausdorff import * # noqa: F403
|
|
@@ -548,6 +556,11 @@ if _init__all__ and not _lazy_import2: # import and set __all__
|
|
|
548
556
|
from pygeodesy.streprs import * # noqa: F403
|
|
549
557
|
from pygeodesy.trf import * # noqa: F403
|
|
550
558
|
from pygeodesy.triaxials import * # noqa: F403
|
|
559
|
+
# from pygeodesy.triaxials.bases import * # noqa: F403
|
|
560
|
+
# from pygeodesy.triaxials.conformals import * # noqa: F403
|
|
561
|
+
# from pygeodesy.triaxials.spheres import * # noqa: F403
|
|
562
|
+
# from pygeodesy.triaxials.triaxial3 import * # noqa: F403
|
|
563
|
+
# from pygeodesy.triaxials.triaxial5 import * # noqa: F403
|
|
551
564
|
from pygeodesy.units import * # noqa: F403
|
|
552
565
|
from pygeodesy.unitsBase import * # noqa: F403 Float, ...
|
|
553
566
|
from pygeodesy.ups import * # noqa: F403
|
|
@@ -605,7 +618,7 @@ else:
|
|
|
605
618
|
|
|
606
619
|
from pygeodesy.internals import _version2, _DOT_ # noqa: E402
|
|
607
620
|
# from pygeodesy.interns import _DOT_ # from .internals
|
|
608
|
-
__version__ = '25.
|
|
621
|
+
__version__ = '25.12.12'
|
|
609
622
|
# see setup.py for similar logic
|
|
610
623
|
version = _DOT_(*_version2(__version__, n=3))
|
|
611
624
|
|
|
@@ -613,7 +626,7 @@ del _DOT_, _lazy_import2, _os_path, _sys, _version2
|
|
|
613
626
|
|
|
614
627
|
# **) MIT License
|
|
615
628
|
#
|
|
616
|
-
# Copyright (C) 2016-
|
|
629
|
+
# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
|
|
617
630
|
#
|
|
618
631
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
619
632
|
# copy of this software and associated documentation files (the "Software"),
|
pygeodesy/__main__.py
CHANGED
|
@@ -86,7 +86,7 @@ except ImportError:
|
|
|
86
86
|
|
|
87
87
|
# **) MIT License
|
|
88
88
|
#
|
|
89
|
-
# Copyright (C) 2016-
|
|
89
|
+
# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
|
|
90
90
|
#
|
|
91
91
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
92
92
|
# copy of this software and associated documentation files (the "Software"),
|
pygeodesy/albers.py
CHANGED
|
@@ -827,7 +827,7 @@ __all__ += _ALL_DOCS(_AlbersBase)
|
|
|
827
827
|
|
|
828
828
|
# **) MIT License
|
|
829
829
|
#
|
|
830
|
-
# Copyright (C) 2016-
|
|
830
|
+
# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.
|
|
831
831
|
#
|
|
832
832
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
833
833
|
# copy of this software and associated documentation files (the "Software"),
|