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.
Files changed (118) hide show
  1. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/METADATA +34 -35
  2. PyGeodesy-25.1.5.dist-info/RECORD +118 -0
  3. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/WHEEL +1 -1
  4. pygeodesy/__init__.py +19 -19
  5. pygeodesy/__main__.py +1 -1
  6. pygeodesy/albers.py +5 -5
  7. pygeodesy/auxilats/_CX_4.py +1 -1
  8. pygeodesy/auxilats/_CX_6.py +1 -1
  9. pygeodesy/auxilats/_CX_8.py +1 -1
  10. pygeodesy/auxilats/_CX_Rs.py +1 -1
  11. pygeodesy/auxilats/__init__.py +1 -1
  12. pygeodesy/auxilats/__main__.py +1 -1
  13. pygeodesy/auxilats/auxAngle.py +5 -5
  14. pygeodesy/auxilats/auxDLat.py +6 -6
  15. pygeodesy/auxilats/auxDST.py +2 -2
  16. pygeodesy/auxilats/auxLat.py +5 -5
  17. pygeodesy/auxilats/auxily.py +2 -2
  18. pygeodesy/azimuthal.py +5 -5
  19. pygeodesy/basics.py +60 -8
  20. pygeodesy/booleans.py +1 -1
  21. pygeodesy/cartesianBase.py +22 -61
  22. pygeodesy/clipy.py +1 -1
  23. pygeodesy/constants.py +5 -5
  24. pygeodesy/css.py +1 -1
  25. pygeodesy/datums.py +1 -1
  26. pygeodesy/deprecated/__init__.py +2 -2
  27. pygeodesy/deprecated/bases.py +1 -1
  28. pygeodesy/deprecated/classes.py +86 -2
  29. pygeodesy/deprecated/consterns.py +1 -1
  30. pygeodesy/deprecated/datum.py +5 -5
  31. pygeodesy/deprecated/functions.py +42 -8
  32. pygeodesy/deprecated/nvector.py +1 -1
  33. pygeodesy/deprecated/rhumbBase.py +1 -1
  34. pygeodesy/deprecated/rhumbaux.py +1 -1
  35. pygeodesy/deprecated/rhumbsolve.py +1 -1
  36. pygeodesy/deprecated/rhumbx.py +1 -1
  37. pygeodesy/dms.py +1 -1
  38. pygeodesy/ecef.py +53 -56
  39. pygeodesy/elevations.py +1 -1
  40. pygeodesy/ellipsoidalBase.py +3 -3
  41. pygeodesy/ellipsoidalBaseDI.py +1 -1
  42. pygeodesy/ellipsoidalExact.py +1 -1
  43. pygeodesy/ellipsoidalGeodSolve.py +1 -1
  44. pygeodesy/ellipsoidalKarney.py +1 -1
  45. pygeodesy/ellipsoidalNvector.py +1 -1
  46. pygeodesy/ellipsoidalVincenty.py +6 -5
  47. pygeodesy/ellipsoids.py +4 -5
  48. pygeodesy/elliptic.py +6 -6
  49. pygeodesy/epsg.py +1 -1
  50. pygeodesy/errors.py +1 -1
  51. pygeodesy/etm.py +5 -5
  52. pygeodesy/fmath.py +18 -17
  53. pygeodesy/formy.py +409 -555
  54. pygeodesy/frechet.py +29 -86
  55. pygeodesy/fstats.py +1 -1
  56. pygeodesy/fsums.py +32 -33
  57. pygeodesy/gars.py +1 -1
  58. pygeodesy/geodesici.py +7 -7
  59. pygeodesy/geodesicw.py +1 -1
  60. pygeodesy/geodesicx/_C4_24.py +2 -2
  61. pygeodesy/geodesicx/_C4_27.py +2 -2
  62. pygeodesy/geodesicx/_C4_30.py +2 -2
  63. pygeodesy/geodesicx/__init__.py +2 -2
  64. pygeodesy/geodesicx/__main__.py +4 -5
  65. pygeodesy/geodesicx/gx.py +6 -5
  66. pygeodesy/geodesicx/gxarea.py +2 -2
  67. pygeodesy/geodesicx/gxbases.py +2 -2
  68. pygeodesy/geodesicx/gxline.py +16 -12
  69. pygeodesy/geodsolve.py +1 -1
  70. pygeodesy/geohash.py +1 -1
  71. pygeodesy/geoids.py +277 -203
  72. pygeodesy/hausdorff.py +23 -81
  73. pygeodesy/heights.py +115 -150
  74. pygeodesy/internals.py +1 -1
  75. pygeodesy/interns.py +2 -3
  76. pygeodesy/iters.py +1 -1
  77. pygeodesy/karney.py +3 -3
  78. pygeodesy/ktm.py +16 -15
  79. pygeodesy/latlonBase.py +323 -409
  80. pygeodesy/lazily.py +53 -44
  81. pygeodesy/lcc.py +1 -1
  82. pygeodesy/ltp.py +46 -50
  83. pygeodesy/ltpTuples.py +147 -130
  84. pygeodesy/mgrs.py +1 -1
  85. pygeodesy/named.py +149 -3
  86. pygeodesy/namedTuples.py +58 -7
  87. pygeodesy/nvectorBase.py +122 -105
  88. pygeodesy/osgr.py +1 -1
  89. pygeodesy/points.py +1 -1
  90. pygeodesy/props.py +1 -1
  91. pygeodesy/resections.py +18 -17
  92. pygeodesy/rhumb/__init__.py +1 -1
  93. pygeodesy/rhumb/aux_.py +2 -2
  94. pygeodesy/rhumb/bases.py +2 -2
  95. pygeodesy/rhumb/ekx.py +4 -4
  96. pygeodesy/rhumb/solve.py +1 -1
  97. pygeodesy/simplify.py +289 -401
  98. pygeodesy/solveBase.py +1 -1
  99. pygeodesy/sphericalBase.py +1 -1
  100. pygeodesy/sphericalNvector.py +5 -5
  101. pygeodesy/sphericalTrigonometry.py +7 -6
  102. pygeodesy/streprs.py +10 -5
  103. pygeodesy/trf.py +1 -1
  104. pygeodesy/triaxials.py +23 -16
  105. pygeodesy/units.py +16 -16
  106. pygeodesy/unitsBase.py +1 -1
  107. pygeodesy/ups.py +4 -4
  108. pygeodesy/utily.py +341 -211
  109. pygeodesy/utm.py +5 -5
  110. pygeodesy/utmups.py +1 -1
  111. pygeodesy/utmupsBase.py +1 -1
  112. pygeodesy/vector2d.py +5 -5
  113. pygeodesy/vector3d.py +14 -3
  114. pygeodesy/vector3dBase.py +5 -5
  115. pygeodesy/webmercator.py +1 -1
  116. pygeodesy/wgrs.py +1 -1
  117. PyGeodesy-24.11.11.dist-info/RECORD +0 -118
  118. {PyGeodesy-24.11.11.dist-info → PyGeodesy-25.1.5.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyGeodesy
3
- Version: 24.11.11
3
+ Version: 25.1.5
4
4
  Summary: Pure Python geodesy tools
5
5
  Home-page: https://GitHub.com/mrJean1/PyGeodesy
6
6
  Author: Jean M. Brouwers
@@ -8,7 +8,7 @@ Author-email: mrJean1@Gmail.com
8
8
  Maintainer: Jean M. Brouwers
9
9
  Maintainer-email: mrJean1@Gmail.com
10
10
  License: MIT
11
- Keywords: AER Albers altitude Andoyer annulus antipode area attitude Authalic auxiliary azimuth azimuthal azimuth-elevation-range bearing bank Barsky Barth beta bi-quadratic boolean cached Cagnoli cartesian Cassini Cassini-Soldner chord circle-intersections circumcenter circumcircle circumradius clip Cohen Cohen-Sutherland Collins composite conformal conic constants contact-triangle Cook Correia cosines-law coverage curvature cylindrical datum deprecation deficit development discrete distance Douglas earth east-north-up eccentricity ECEF elevation ellipsoid ellipsoidal-latitude-beta ellipsoidal-longitude-omega elliptic ENU EPSG equal-area equidistant equirectangular ETM ETRF Euclidean even-odd-rule ExactTM excess Farrell Farrell-Barth Field-Of-View flattening fma fmath footprint Forster Forster-Hormann-Popa Forsythe FOV fractional Frechet Fréchet frustum Fsum fused-multiply-add GARS geocentric GeoConvert GeodesicExact geodesy geodetic GeodSolve GeodTest geographiclib Geohash geoid geoidHeight GeoidHeights georef Girard gnomonic gons grades gradians Greiner Greiner-Hormann Hartzell Hausdorff Haversine heading height Heron Hodgman horizon Hormann Hubeny IDW incenter incirle infix_@_operator inradius intermediate interpolate intersect intersection intersection3d intersections IntersectTool Inverse-Distance-Weighting Isometric ITRF Jacobi Jacobi-Conformal Jarque-Bera Jekel Karney Krueger Krüger kurtosis Lambert latitude law-of-cosines least-squares Lesh L_Huilier LHuilier Liang Liang-Barsky linearize Line-Of-Sight LocalCartesian local-tangent-plane local-x-y-z longitude LOS loxodrome lstsq LTP lune LV03 LV95 mean memoize memoized Mercator Meeus MGRS nearest NED Niemeyer non-finite normalize Norrdine north-east-down numpy n-vector Nvector oblate omega orthographic orthometric-height OSGB OSGR overlap parallel parallel-of-latitude Parametric path-intersection perimeter Peucker Pierlot pitch plumb Point-Of-View polar Popa POV precision-cubic-root precision-hypotenuse precision-powers precision-running-summation precision-square-root precision-summation prolate Pseudo-Mercator PyGeodesy PyInstaller PyPy quartic radical radii radius Ramer Ramer-Douglas-Peucker Rectifying Reduced resect resection Rey-Jer Reumann Reumann-Witkam rhumb RhumbSolve running-linear-regression running-statistics running-stats running-summation scipy secant semi-perimeter sexagecimal simplify skewness Snellius Snellius-Pothenot Snyder Soddy Soddy-circles Soldner sphere sphere-intersections spherical-deficit spherical-excess spherical-triangle squared-quartic standard-deviation stereographic Sudano surface-area Sutherland Sutherland-Hodgman tangent-circles Terrestrial-Reference-Frame Thomas Tienstra tilt TMcoords TMExact toise transverse TransverseMercatorExact TRF triangle triangulate triaxial triaxial-ellipsoid trigonometry trilaterate trilaterate-2d trilaterate-3d TwoProduct TwoSum umbilic-point unit unroll UPS UTM UTM/UPS variance velocities Veness Vermeille viewing-frustum Vincenty Visvalingam Visvalingam-Whyatt volume volumetric Web-Mercator Welford WGRS WGS Whyatt Wildberger Witkam winding-number XYZ yaw You zenzi-cubic zenzi-quartic
11
+ Keywords: AER Albers altitude Andoyer annulus antipode area attitude Authalic auxiliary azimuth azimuthal azimuth-elevation-range bearing bank Barsky Barth beta bi-quadratic boolean cached Cagnoli cartesian Cassini Cassini-Soldner chord circle-intersections circumcenter circumcircle circumradius clip Cohen Cohen-Sutherland Collins composite conformal conic constants contact-triangle Cook Correia cosines-law coverage curvature cylindrical datum deprecation deficit development discrete distance Douglas earth east-north-up eccentricity ECEF elevation ellipsoid ellipsoidal-latitude-beta ellipsoidal-longitude-omega elliptic ENU EPSG equal-area equidistant equirectangular ETM ETRF Euclidean even-odd-rule ExactTM excess Farrell Farrell-Barth Ferrari-solution Field-Of-View flattening fma fmath footprint Forster Forster-Hormann-Popa Forsythe FOV fractional Frechet Fréchet frustum Fsum fused-multiply-add GARS geocentric GeoConvert GeodesicExact geodesy geodetic GeodSolve GeodTest geographiclib Geohash geoid geoidHeight GeoidHeights georef Girard gnomonic gons grades gradians Greiner Greiner-Hormann Hartzell Hausdorff Haversine heading height Heikkinen Heron Hodgman horizon Hormann Hubeny IDW incenter incirle infix_@_operator inradius intermediate interpolate intersect intersection intersection3d intersections IntersectTool Inverse-Distance-Weighting Isometric ITRF Jacobi Jacobi-Conformal Jarque-Bera Jekel Karney Krueger Krüger kurtosis Lambert latitude law-of-cosines least-squares Lesh L_Huilier LHuilier Liang Liang-Barsky linearize Line-Of-Sight LocalCartesian local-tangent-plane local-x-y-z longitude LOS loxodrome lstsq LTP lune LV03 LV95 mean memoize memoized Mercator Meeus MGRS nearest NED Niemeyer non-finite normalize Norrdine north-east-down numpy n-vector Nvector oblate omega orthographic orthometric-height OSGB OSGR overlap parallel parallel-of-latitude Parametric path-intersection perimeter Peucker Pierlot pitch plumb Point-Of-View polar Popa POV precision-cubic-root precision-hypotenuse precision-powers precision-running-summation precision-square-root precision-summation prolate Pseudo-Mercator PyGeodesy PyInstaller PyPy quartic radical radii radius Ramer Ramer-Douglas-Peucker Rectifying Reduced resect resection Rey-Jer Reumann Reumann-Witkam rhumb RhumbSolve running-linear-regression running-statistics running-stats running-summation scipy secant semi-perimeter sexagecimal simplify skewness Snellius Snellius-Pothenot Snyder Soddy Soddy-circles Soldner sphere sphere-intersections spherical-deficit spherical-excess spherical-triangle squared-quartic standard-deviation stereographic Sudano surface-area Sutherland Sutherland-Hodgman tangent-circles Terrestrial-Reference-Frame Thomas Tienstra tilt TMcoords TMExact toise transverse TransverseMercatorExact TRF triangle triangulate triaxial triaxial-ellipsoid trigonometry trilaterate trilaterate-2d trilaterate-3d TwoProduct TwoSum umbilic-point unit unroll UPS UTM UTM/UPS variance velocities Veness Vermeille viewing-frustum Vincenty Visvalingam Visvalingam-Whyatt volume volumetric Web-Mercator Welford WGRS WGS Whyatt Wildberger Witkam winding-number XYZ yaw You zenzi-cubic zenzi-quartic
12
12
  Classifier: Development Status :: 5 - Production/Stable
13
13
  Classifier: Environment :: Console
14
14
  Classifier: Intended Audience :: Developers
@@ -33,8 +33,8 @@ earth models using precision trigonometric, vector-based, exact, elliptic, itera
33
33
  approximate methods for geodetic (lat-/longitude), geocentric (ECEF_ cartesian) and certain
34
34
  `triaxial ellipsoidal`_ coordinates.
35
35
 
36
- Transcoded from `JavaScript originals`_ by *Chris Veness (C) 2005-2024* and from several `C++
37
- classes`_ by *Charles F.F. Karney (C) 2008-2024* and published under the same `MIT License`_.
36
+ Transcoded partially from `JavaScript originals`_ by *Chris Veness (C) 2005-2024* and from several
37
+ `C++ classes`_ by *Charles F.F. Karney (C) 2008-2024* and published under the same `MIT License`_.
38
38
 
39
39
  There are four modules for ellipsoidal earth models, *ellipsoidalExact*, *-Karney*, *-Vincenty*
40
40
  and *-Nvector* and two for spherical ones, *sphericalTrigonometry* and *-Nvector*. Each module
@@ -73,7 +73,7 @@ If the wheel ``PyGeodesy-yy.m.d-py2.py3-none-any.whl`` is missing in `PyPI Downl
73
73
  the file from `GitHub/dist`_. Install that with ``python[3] -m pip install <path-to-downloaded-wheel>``
74
74
  and verify with ``python[3] -m pygeodesy``.
75
75
 
76
- Alternatively, download ``PyGeodesy-yy.m.d.zip`` from PyPI_ or GitHub_, ``unzip`` the downloaded file,
76
+ Alternatively, download ``PyGeodesy-yy.m.d.tar.gz`` from PyPI_ or GitHub_, ``unzip`` the downloaded file,
77
77
  ``cd`` to directory ``PyGeodesy-yy.m.d`` and type ``python[3] setup.py install``.
78
78
 
79
79
  To run all PyGeodesy tests, type ``python[3] test/run.py`` or type ``python[3] test/unitTestSuite.py``
@@ -108,49 +108,49 @@ variable ``PYGEODESY_RHUMBSOLVE`` or with property ``Ellipsoid.rhumbsolve``.
108
108
  Documentation
109
109
  =============
110
110
 
111
- In addition to the ``pygeodesy`` package, the PyGeodesy_ `distribution files`_ contain the tests,
112
- the test results (on macOS only) and the complete documentation_ generated by Epydoc_ using command
113
- line: ``epydoc --html --no-private --no-source --name=PyGeodesy --url=... -v pygeodesy``.
111
+ In addition to the ``pygeodesy`` package, the PyGeodesy_ `distribution files`_ contain the tests, the
112
+ test results (on macOS only) and the complete documentation_ generated by Epydoc_ using command line:
113
+ `epydoc --html --no-private --no-source --name=PyGeodesy --url=... -v pygeodesy``.
114
114
 
115
115
  Tests
116
116
  =====
117
117
 
118
- The tests ran with Python 3.13.0 (with geographiclib_ 2.0), 3.12.7 (with geographiclib_ 2.0, numpy_
119
- 2.1.0, scipy_ 1.14.1, GeodSolve_ 2.3, IntersectTool_ 2.3 and RhumbSolve_ 2.3), 3.11.5 (with
120
- geographiclib_ 2.0, numpy_ 1.24.2 and scipy_ 1.10.1), Python 3.10.8 (with geographiclib_ 2.0, numpy_
121
- 1.23.3, scipy_ 1.9.1, GeoConvert_ 2.3, GeodSolve_ 2.3), Python 3.9.6 and Python 2.7.18 (with
122
- geographiclib_ 1.50, numpy_ 1.16.6, scipy_ 1.2.2, GeoConvert_ 2.3, GeodSolve_ 2.3, IntersectTool_
123
- 2.3 and RhumbSolve_ 2.3), all on macOS 14.6.1 Sonoma in 64-bit.
118
+ The tests ran with Python 3.13.1 (with geographiclib_ 2.0), 3.12.7 (with geographiclib_ 2.0, numpy_ 2.1.0,
119
+ scipy_ 1.14.1, GeodSolve_ 2.3, IntersectTool_ 2.3 and RhumbSolve_ 2.3), 3.11.5 (with geographiclib_ 2.0,
120
+ numpy_ 1.24.2 and scipy_ 1.10.1), Python 3.10.8 (with geographiclib_ 2.0, numpy_ 1.23.3, scipy_ 1.9.1,
121
+ GeoConvert_ 2.3, GeodSolve_ 2.3), Python 3.9.6 and Python 2.7.18 (with geographiclib_ 1.50, numpy_ 1.16.6,
122
+ scipy_ 1.2.2, GeoConvert_ 2.3, GeodSolve_ 2.3, IntersectTool_ 2.3 and RhumbSolve_ 2.3), all on macOS 14.6.1
123
+ Sonoma in 64-bit.
124
124
 
125
125
  All tests ran with and without ``lazy import`` for Python 3 and with command line option ``-W default``
126
126
  and env variable ``PYGEODESY_WARNINGS=on`` for all Python versions. The results of those tests are
127
127
  included in the distribution files.
128
128
 
129
- Python 3.13.0, 3.12.7, 3.11.5 and 3.10.8 run on Apple M1 Silicon (``arm64``), *natively*. Python 2.7.18
129
+ Python 3.13.1, 3.12.7, 3.11.5 and 3.10.8 run on Apple M1 Silicon (``arm64``), *natively*. Python 2.7.18
130
130
  runs on Intel (``x86_64``) or Intel *emulation* (\"``arm64_x86_64``\", see function `pygeodesy.machine`_).
131
131
 
132
- Test coverage has been measured with coverage_ 7.6.1 using Python 3.13.0, 3.12.7, 3.11.5 and 3.10.8. The
132
+ Test coverage has been measured with coverage_ 7.6.1 using Python 3.13.1, 3.12.7, 3.11.5 and 3.10.8. The
133
133
  complete coverage report in HTML and a PDF summary are included in the distribution files.
134
134
 
135
- The tests also ran with Python 3.13.0 (and geographiclib_ 2.0) on `Debian 12`_ in 64-bit only and with
135
+ The tests also ran with Python 3.13.1 (and geographiclib_ 2.0) on `Debian 12`_ in 64-bit only and with
136
136
  Python 3.12.5 (and geographiclib_ 2.0) on `Windows 2019Server`_ in 64-bit only and with Python 2.7.18
137
137
  (and with geographiclib_ 1.52) on `Windows 10`_ in 64- and 32-bit.
138
138
 
139
- A single-File and single-Directory application with ``pygeodesy`` has been bundled using PyInstaller_
140
- 3.4 and 64-bit Python 3.7.4 and 3.7.3 on macOS 10.13.6 High Sierra.
141
-
142
- Previously, the tests were run with Python 3.12.0-6, 3.11.2-4, 3.10.1-7, 3.9.1, 3.8.7, 3.7.1, 2.7.15, PyPy_
143
- 7.3.12 (Python 3.10.12), 7.3.1 (Python 3.6.9) and PyPy_ 7.1.1 (Python 2.7.13) (and geographiclib_ 1.52,
144
- numpy_ 1.16.3, 1.16.4, 1.16.6, 1.19.0, 1.19.4, 1.19.5 or 1.22.4 and scipy_ 1.2.1, 1.4.1, 1.5.2 or 1.8.1)
145
- on `Ubuntu 16.04`_, with Python 3.10.0-1, 3.9.0-5, 3.8.0-6, 3.7.2-6, 3.7.0, 3.6.2-5, 3.5.3, 2.7.13-17,
146
- 2.7.10 and 2.6.9 (and numpy_ 1.19.0, 1.16.5, 1.16.2, 1.15.2, 1.14.0, 1.13.1, 1.8.0rc1 or 1.6.2 and scipy_
147
- 1.5.0), PyPy_ 7.3.0 (Python 2.7.13 and 3.6.9), PyPy_ 6.0.0 (Python 2.7.13 and 3.5.3) and `Intel-Python`_
148
- 3.5.3 (and numpy_ 1.11.3) on macOS 14.0-5 Sonoma, 13.0-5.2 Ventura, 12.1-6 Monterey, 11.0-5.2-6.1 Big
149
- Sur (aka 10.16), 10.15.3, 10.15.5-7 Catalina, 10.14 Mojave, 10.13.6 High Sierra and 10.12 Sierra, MacOS X
150
- 10.11 El Capitan and/or MacOS X 10.10 Yosemite, with Pythonista_ 3.2 (with geographiclib 1.50 or 1.49 and
151
- numpy 1.8.0) on iOS 14.4.2, 11.4.1, 12.0-3 on iPad4, iPhone6, iPhone10 and/or iPhone12, with Pythonista_
152
- 3.1 on iOS 10.3.3, 11.0.3, 11.1.2 and 11.3 on iPad4, all in 64-bit only and with 32-bit Python 2.7.14 on
153
- Windows Server 2012R2, Windows 10 Pro and 32-bit Python 2.6.6 on Windows XP SP3.
139
+ A single-File and single-Directory application with ``pygeodesy`` has been bundled using PyInstaller_ 3.4
140
+ and 64-bit Python 3.7.4 and 3.7.3 on macOS 10.13.6 High Sierra.
141
+
142
+ Previously, the tests were run with Python 3.13.0, 3.12.0-6, 3.11.2-4, 3.10.1-7, 3.9.1, 3.8.7, 3.7.1, 2.7.15,
143
+ PyPy_ 7.3.12 (Python 3.10.12), 7.3.1 (Python 3.6.9) and PyPy_ 7.1.1 (Python 2.7.13) (and geographiclib_ 1.52,
144
+ numpy_ 1.16.3, 1.16.4, 1.16.6, 1.19.0, 1.19.4, 1.19.5 or 1.22.4 and scipy_ 1.2.1, 1.4.1, 1.5.2 or 1.8.1) on
145
+ Ubuntu 16.04, with Python 3.10.0-1, 3.9.0-5, 3.8.0-6, 3.7.2-6, 3.7.0, 3.6.2-5, 3.5.3, 2.7.13-17, 2.7.10
146
+ and 2.6.9 (and numpy_ 1.19.0, 1.16.5, 1.16.2, 1.15.2, 1.14.0, 1.13.1, 1.8.0rc1 or 1.6.2 and scipy_ 1.5.0),
147
+ PyPy_ 7.3.0 (Python 2.7.13 and 3.6.9), PyPy_ 6.0.0 (Python 2.7.13 and 3.5.3) and `Intel-Python`_ 3.5.3 (and
148
+ numpy_ 1.11.3) on macOS 14.0-5 Sonoma, 13.0-5.2 Ventura, 12.1-6 Monterey, 11.0-5.2-6.1 Big Sur (aka 10.16),
149
+ 10.15.3, 10.15.5-7 Catalina, 10.14 Mojave, 10.13.6 High Sierra and 10.12 Sierra, MacOS X 10.11 El Capitan
150
+ and/or MacOS X 10.10 Yosemite, with Pythonista_ 3.2 (with geographiclib 1.50 or 1.49 and numpy 1.8.0) on
151
+ iOS 14.4.2, 11.4.1, 12.0-3 on iPad4, iPhone6, iPhone10 and/or iPhone12, with Pythonista_ 3.1 on iOS 10.3.3,
152
+ 11.0.3, 11.1.2 and 11.3 on iPad4, all in 64-bit only and with 32-bit Python 2.7.14 on Windows Server 2012R2,
153
+ Windows 10 Pro and 32-bit Python 2.6.6 on Windows XP SP3.
154
154
 
155
155
  Notes
156
156
  =====
@@ -160,12 +160,12 @@ and McCabe_ using Python 2.7.18 and with Flake8_ using Python 3.11.5, both in 64
160
160
 
161
161
  For a summary of all *Karney*-based functionality in ``pygeodesy``, see module karney_.
162
162
 
163
- *Last updated: Nov 11, 2024.*
163
+ *Last updated: Jan 05, 2025.*
164
164
 
165
165
  License
166
166
  =======
167
167
 
168
- Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.
168
+ Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
169
169
 
170
170
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
171
171
  documentation files (the "Software"), to deal in the Software without restriction, including without limitation
@@ -265,7 +265,6 @@ DEALINGS IN THE SOFTWARE.
265
265
  .. _Sutherland-Hodgman: https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm
266
266
  .. _TRF: http://ITRF.ENSG.IGN.FR
267
267
  .. _triaxial ellipsoidal: https://GeographicLib.SourceForge.io/1.44/triaxial.html
268
- .. _Ubuntu 16.04: https://Travis-CI.com/mrJean1/PyGeodesy
269
268
  .. _UPS: https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system
270
269
  .. _UTM: https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html
271
270
  .. _Vector-based: https://www.Movable-Type.co.UK/scripts/latlong-vectors.html
@@ -0,0 +1,118 @@
1
+ pygeodesy/LICENSE,sha256=YfgAiyxOwY6P9Kkb1_5XN81nueTLrpb3Ffkv3EuPgFU,1144
2
+ pygeodesy/__init__.py,sha256=oSRVJhOmmebIxdlJGcBqWj9vKnIBeT-8vQ-ozepzIfA,42648
3
+ pygeodesy/__main__.py,sha256=SJ-P17Lpr0_yOQSB9ItjqJzPue35ije8oxHPGS_OZk8,5442
4
+ pygeodesy/albers.py,sha256=0pl5e39wacZyEDP7GjHGRx9WXUc_vq36wPUusC7ltLo,30955
5
+ pygeodesy/azimuthal.py,sha256=or03e4j4AycZqVpkcsCj_doCFO7tkypB1Fu98tdg_E8,49763
6
+ pygeodesy/basics.py,sha256=h2yPijizu_JR2_h4d-FYqLaAAexKUbWTdtDMQvUbqlg,31784
7
+ pygeodesy/booleans.py,sha256=RuZ26Hkl_fiDjvcg3FipsKrrB8kcQVYXHTUajPVocRE,73544
8
+ pygeodesy/cartesianBase.py,sha256=TPCRRw_Jua7lpnZ29LsIorPAhZ-uEn39y9hAScWnEMQ,45350
9
+ pygeodesy/clipy.py,sha256=r2M4Kzu4q95dFzia0w88oFoU9rM5ejwdRZ-aeqdB0JY,27728
10
+ pygeodesy/constants.py,sha256=_LHRE9sAYn2YjPjfarhNukFGXNnXrd5VZhBm0euZF-U,19825
11
+ pygeodesy/css.py,sha256=g86DBzqNRbeWECY3101fMuBDien8Q4gtc16g83U0hFg,25642
12
+ pygeodesy/datums.py,sha256=pdIPv57Fs1sqKe8p8_HOAgyeT1tUQlvwuUsJ3uf5z6Q,34057
13
+ pygeodesy/dms.py,sha256=09Yw1w-uxhROlQA8cbActNp4A5n-lvPsVKJZvLnomJM,42174
14
+ pygeodesy/ecef.py,sha256=JfbsBHYnFG2yD3w0NnYlo5NJ8TxYsb7H3fuv_tyD48I,59386
15
+ pygeodesy/elevations.py,sha256=JMKlXMWzUp4evbCJA7mZX02UuXIr681zHM5knn3ycq0,10801
16
+ pygeodesy/ellipsoidalBase.py,sha256=_WxC5rzxZ5IQ0yl3Pm73W4KplbaO5idCD4vKEexYCWY,55111
17
+ pygeodesy/ellipsoidalBaseDI.py,sha256=cVAgJ057TAlqa-B4Ho1I1P-mfBFO_kx4WeFM71oUrzU,38243
18
+ pygeodesy/ellipsoidalExact.py,sha256=-f-6kbE-hnO8aNUuSVnvaawwwKp1x76hT2aWCZq7jwo,16972
19
+ pygeodesy/ellipsoidalGeodSolve.py,sha256=wHv9UHYqnoU_PH8zgRJ-kA1-o-7zZLs1-O_zZHSQb1U,16666
20
+ pygeodesy/ellipsoidalKarney.py,sha256=5RfQzNJFq4VklDnr3TRo6kh29rcQ4D7XkXUr_2Zqf38,18721
21
+ pygeodesy/ellipsoidalNvector.py,sha256=0Ufhw1Nr_pTIbATpCm2PgtvBDZ0fRPzVyjjDg8dSSrI,30039
22
+ pygeodesy/ellipsoidalVincenty.py,sha256=6uxN-8w4U_7zN8wPh85qd8Vr4G72W5NQe9e3eW1Nb_g,25985
23
+ pygeodesy/ellipsoids.py,sha256=AiGIy-154FZ1YgDBckV_HM_sS64nmFLmq96tdOEzfz8,106900
24
+ pygeodesy/elliptic.py,sha256=s9MZgTK3zl4AQVSans3RjYoDqQ425xU2t2zIyxAFhYM,45003
25
+ pygeodesy/epsg.py,sha256=VIBidzAEuoBF4LdlJ4r3WtpL0Ymhru8kf4fAgfFr5ok,8220
26
+ pygeodesy/errors.py,sha256=MskMWomF3bVK4orjSmIfVYilLeXGLi1-bcuyqhmBrXc,32098
27
+ pygeodesy/etm.py,sha256=NLhinROJNuql1fRtPozUeVOyczc9RNBgtm-6h8AxY2M,46722
28
+ pygeodesy/fmath.py,sha256=Uo8tTS4hNwNEuSoDHz0H82LA7mSF9LRRieLTODwHlw4,36933
29
+ pygeodesy/formy.py,sha256=qXUGFwRn6cAxW7Z9U42c5hVEIhYuVZxdwShqeyfIVVU,69849
30
+ pygeodesy/frechet.py,sha256=jOxnFQNI4eL-axq8IiytpUvOXkyOdeVkXIAVZeBbu_M,31765
31
+ pygeodesy/fstats.py,sha256=Bt2U_xdJW3Cio7Jn6MdxEJNGWR9VgNE5RLRb3ux5-g4,28288
32
+ pygeodesy/fsums.py,sha256=O2pHSJqMJ4DUfo6wr9LerutKVFdlOaJOAohxZVcvZss,103979
33
+ pygeodesy/gars.py,sha256=9DcCpPRv6QOgWeHIjW5qNZ8FSKZZueodRqi8xQru1Ik,11829
34
+ pygeodesy/geodesici.py,sha256=eYEHEmkbtndfXH9_dtphhMGeI9RgqL0PgqmdF7I-Rck,74776
35
+ pygeodesy/geodesicw.py,sha256=C4HED2A4V7T9hdY-q4yoalvz5cWiXAoCSRo8iMeSJEE,28774
36
+ pygeodesy/geodsolve.py,sha256=BN769RW0D27HL4nM4DRg39rMvz--_gVeK6E2wphZmkw,28989
37
+ pygeodesy/geohash.py,sha256=pgSqcjOUx-9cTcBOiesBT2jLaRHaRGhAxTgt_jMFZ0Y,40201
38
+ pygeodesy/geoids.py,sha256=ucMC9xuP5RqqbRdAy_LDNp2IIg1Z_i5xP_O37iClOaI,86215
39
+ pygeodesy/hausdorff.py,sha256=idjw0Or_2fxJhGN0jLoV1rX39HXgEOi0XeJaAxwnKck,32137
40
+ pygeodesy/heights.py,sha256=u8G9-uD_QxwlYZTc64Z145oche2xtSVb_8wa9GkTKVs,41190
41
+ pygeodesy/internals.py,sha256=y0e861QXZMWFNrI03u41rJ8VQXojxwd5G3naCNDzs2M,24299
42
+ pygeodesy/interns.py,sha256=TituXfrjkSxLcZlTdSofCfqpGNpu6dw02x9eEQYyEzs,23346
43
+ pygeodesy/iters.py,sha256=hG4wctuBdr35Zr6u0iDAA-rAH0XR9Diw2ARKwcr-5Aw,20311
44
+ pygeodesy/karney.py,sha256=X2dgUXyJ8IjyYSd1kxW6XB6szG7l85YTcDcjO1_wdfg,40480
45
+ pygeodesy/ktm.py,sha256=axEWse4f3SAbJz-PHoVBEjIJ7JW45reSJeOsPWKcAM0,27247
46
+ pygeodesy/latlonBase.py,sha256=c5EkQshey_Wvaxz_7f5cO7JJcrWxPFgbuPtLrnnxq_E,75653
47
+ pygeodesy/lazily.py,sha256=lrOtlNNM_ujQEPKIJd3M0pK9ck3j0obKvLYeI2ZV440,47004
48
+ pygeodesy/lcc.py,sha256=htSplUo-1vXpMKINc2RUKvrMeltUI7RZrfXCFJJIrbI,25671
49
+ pygeodesy/ltp.py,sha256=GbalGvmsaxAiwPhzrXcOA-JUmKwTCnYwyA3oFaIJgac,50576
50
+ pygeodesy/ltpTuples.py,sha256=EFQOY3Vt76BjVRoPuxn7RheBWhRWzKofiGm43Pnvm2I,58999
51
+ pygeodesy/mgrs.py,sha256=jvoyB3_U_EpP4HBoDzTt6V-MoDYC32nOf077w-5txsQ,29819
52
+ pygeodesy/named.py,sha256=n8Ly9WZXkgKp9-RUsbzbzBpuWL4D1cIZ-YWgBootkkE,58510
53
+ pygeodesy/namedTuples.py,sha256=dBM93PadrJHkdqe3yinW_Pc7M_5ACYeU6rat5Dwp3Mk,30622
54
+ pygeodesy/nvectorBase.py,sha256=DF2qWGbcWfqjw9a11BTesLDDYd5bWKQlplOwSntlBJo,29969
55
+ pygeodesy/osgr.py,sha256=1TMaToE-7uoVEqHS482pTilDpPWKSj9bgAOVhkx5R_E,30777
56
+ pygeodesy/points.py,sha256=WxjsmZNAt7UGWV2OCaGwitwWCsLnp109atxNYJ6ruKw,64389
57
+ pygeodesy/props.py,sha256=4_DEjpVsF8awOcBm9bgKPfYT1_kB7kC824EjB5iSbes,24565
58
+ pygeodesy/resections.py,sha256=jbtj91Zocvb1fk_gq9VUAmkyZAoYr3xBW0ZlokG5WcI,43603
59
+ pygeodesy/simplify.py,sha256=DRXzd7r5YwEq-6TzbbruZ8SIrrRD8E8G0Iv0B1Jcwlg,22072
60
+ pygeodesy/solveBase.py,sha256=QjvN3R3AIe24ljRayzslEh41VeMUdp8jHnHPQJGU4QM,18485
61
+ pygeodesy/sphericalBase.py,sha256=_-3s4OQFf2otND-6LEZXhvTUq0lgX1Yzl7EUx1c58fA,32110
62
+ pygeodesy/sphericalNvector.py,sha256=ujLLfxKSOqTnSNSs_KxtD55odo6p2Q2YcOBby7yTqHQ,54771
63
+ pygeodesy/sphericalTrigonometry.py,sha256=XiTwW-xWK2BNh5oi-XX872y-12VUR9KOmrhWvTSzM9U,63989
64
+ pygeodesy/streprs.py,sha256=gEYIV5gdUG_gLGSQgvJZAeUnUIu25dgOneneq30ijlg,23573
65
+ pygeodesy/trf.py,sha256=4XqTHksjVUnDWySjHsJNVFR15W5woYitq_ELXCnq6oA,119073
66
+ pygeodesy/triaxials.py,sha256=GMaap3es1szw052XmJulOAJQ0ibl36NVYKSQyxG_Fwk,63952
67
+ pygeodesy/units.py,sha256=Nme99EnQkA831DV4zHJbtJB5naqbnCc097I0xSglEFM,35452
68
+ pygeodesy/unitsBase.py,sha256=uiPDOpLdFou3HG2VqlcX5trpvfelNvOdMP8cy9432IE,14060
69
+ pygeodesy/ups.py,sha256=GzhE5nMD_flcPsMRAg-3GxlyOp6LNpzPRkXMc3KQC7o,23349
70
+ pygeodesy/utily.py,sha256=L8WQOvbcUJDwz3c_YX93oBGVSypKSbNbqjOMtwvFwmU,40017
71
+ pygeodesy/utm.py,sha256=kcXliftP9q0nTxviIOixVyvResK2Jydj-G52CXJiSuQ,31123
72
+ pygeodesy/utmups.py,sha256=mjdweGi9XaBw9u8nnbjsobd9-JUA-2hydMbe2eNBD7s,13196
73
+ pygeodesy/utmupsBase.py,sha256=MPUm9VYLiHjkvHswAH9v32_IhbPVbhTKqELMP-q1mJ0,18730
74
+ pygeodesy/vector2d.py,sha256=H9KTc8HLFJUU-hOmKTz1qNt2sDRpOGBoTR6AwuFn53s,39660
75
+ pygeodesy/vector3d.py,sha256=VMTtPPq1f-Royez1FqYD8f9TdneZaSo58uRTT5CpaYY,42949
76
+ pygeodesy/vector3dBase.py,sha256=BHenp3NGpfhVbJ6JMgdNLx6vAcwDWDJIxl9hAdp-AVw,36301
77
+ pygeodesy/webmercator.py,sha256=BuIxFYidm84ilQII-NZs1RWNfSS1tMWmqlM6bCt96pw,14936
78
+ pygeodesy/wgrs.py,sha256=gfB-UnQjc738bXjkArHQBlI7vJKhAka53BTDMNuHPjk,15455
79
+ pygeodesy/auxilats/_CX_4.py,sha256=XYQuKoZLDmkCL9d5zGmehdV9rCvQrE6owVjotB5D_vU,6829
80
+ pygeodesy/auxilats/_CX_6.py,sha256=Z-qnxeASDoPJjxMALC3Uqjcnrr28-7CvNAxjoH32K2s,11277
81
+ pygeodesy/auxilats/_CX_8.py,sha256=fdV8el73U1v3xUgUCGHLf4SXhC38DxkSh7LUsmMAqRA,18899
82
+ pygeodesy/auxilats/_CX_Rs.py,sha256=X4nU0UlHFNBKTW8ararl9QG2S0MGyc2BNeCpVsBuQsU,7967
83
+ pygeodesy/auxilats/__init__.py,sha256=fBtFng0tOIF06zdzqejDUkaHD1Iwg6HK1uZZLuSKASw,2881
84
+ pygeodesy/auxilats/__main__.py,sha256=nia-aPEuwCCDf8SJcRHfMtFJv-eiQZ0Nxlha3KLSdaI,3171
85
+ pygeodesy/auxilats/auxAngle.py,sha256=bhtf3mw6HFpatBAlGlRsWNLowJwXdHFLIKKwUdoliqo,16745
86
+ pygeodesy/auxilats/auxDLat.py,sha256=GnnvcKZY1jG4SWjYOlDqhGemooQmxDXX-jGr5yg89NM,10960
87
+ pygeodesy/auxilats/auxDST.py,sha256=3maal46InF3sRgbh-iQrTm4L11qzfe4gr_S8rh1-faU,10468
88
+ pygeodesy/auxilats/auxLat.py,sha256=diAy7DeL5NTvX1t8UWPWTjjQ_JV1F3F9iGj_GotcoUQ,31908
89
+ pygeodesy/auxilats/auxily.py,sha256=yNdN2rmISVv21gjubDBKBj6iC6MX4uUHUeZwtYsCA1c,7882
90
+ pygeodesy/deprecated/__init__.py,sha256=ndsBPtmorXG2F4nMuC-wKvR9zIu8GI2WWU3-lkMsTsQ,2815
91
+ pygeodesy/deprecated/bases.py,sha256=ykcmjlPG58xY6sS3M_sLr9pfxrSPuw4oqXvNi811Sog,1655
92
+ pygeodesy/deprecated/classes.py,sha256=4IHdSkJrexTK5cI96d94VAFOxAZKx1kwYJLcgAq_erA,16388
93
+ pygeodesy/deprecated/consterns.py,sha256=dQGhrSQN-JUHjQDLkLwv_RcfFIDwwu0d-P-wai7sR2g,1908
94
+ pygeodesy/deprecated/datum.py,sha256=aeY-POZBZrKKiTnrhqOImV5AfiXu2-9Vz8xu_d4ze2g,1910
95
+ pygeodesy/deprecated/functions.py,sha256=mpgYzx_ynbIrfy9WBDfjhNtI-sRx7nKwucyGaxqE10k,15792
96
+ pygeodesy/deprecated/nvector.py,sha256=rttz-znpX2Tm1ttoJt8_E8V_9n_ZciKi_CvvbwFmZQM,2117
97
+ pygeodesy/deprecated/rhumbBase.py,sha256=ptcQnDYAaXZqlVtevRnU5m8xsviqLYzPt6wEfXa-LEE,1375
98
+ pygeodesy/deprecated/rhumbaux.py,sha256=x3d5BsrVRKkNeGxHjVbcuQ74zy5lvJsgvpIdPEOOnQ0,1428
99
+ pygeodesy/deprecated/rhumbsolve.py,sha256=ojLzYUAPra9IXo_-TrnQlbUmkvyI8wa_Fh0VvtQ86ZM,1431
100
+ pygeodesy/deprecated/rhumbx.py,sha256=9GTE8CbsD_vRiAnR13gyquPHRpyiHOhPvCUzs5hfWx8,1425
101
+ pygeodesy/geodesicx/_C4_24.py,sha256=3OkzOxf0DdO1QL4N9CVYjpOgFCm8FcYjCyvcTLpL2wc,90707
102
+ pygeodesy/geodesicx/_C4_27.py,sha256=grqtju94Nu9V_eQPqe_7aRbLCYflxRuK127pPOPwuDA,134215
103
+ pygeodesy/geodesicx/_C4_30.py,sha256=I4ZuTy64yOq1IVgRtc_kqOL0HnKzXeTea7kTFSolcJs,201921
104
+ pygeodesy/geodesicx/__init__.py,sha256=dGVtLErbUtxd2Xt1M_e4wKf6rJoNMWwQmYEN-FZEzUY,2478
105
+ pygeodesy/geodesicx/__main__.py,sha256=x-9DiCBXFX7YZ0Ary1A4gIqV2LCqWF-HbqzsJzv2Ye0,4141
106
+ pygeodesy/geodesicx/gx.py,sha256=hviRcMq3IUh3sYIdV_zpuLEMhZL7kiALUgv0pl4ObL4,60641
107
+ pygeodesy/geodesicx/gxarea.py,sha256=ZnXURCXVdZVir34yNA7gNJdWhDrZ4tzlGKm3Wf4Z3b0,19454
108
+ pygeodesy/geodesicx/gxbases.py,sha256=EF9IL_oQBSlF70_ROag-DRBoU-ASWKlX-l-wfrUEQYs,6130
109
+ pygeodesy/geodesicx/gxline.py,sha256=Gg9X5j4FCMFlHNxFBIp7ftN85CXUNug5M4bI2w6hudg,27611
110
+ pygeodesy/rhumb/__init__.py,sha256=3tF4bK26udhoEG3RQ992UzrlYmlAU0l6NiIY1tmABiM,2207
111
+ pygeodesy/rhumb/aux_.py,sha256=636KtNGMCLd0xbqyST-Xwv4dG4npekQDVoHMbcP3EUo,16048
112
+ pygeodesy/rhumb/bases.py,sha256=UUzUVaDbZF5WgeHdTkQKUg8NQAwe6tGqIrqyxCraMz8,54162
113
+ pygeodesy/rhumb/ekx.py,sha256=QWU5muyirMsjbm-lGmgxuO_6snaurOQ-dcF6GrdmffU,24055
114
+ pygeodesy/rhumb/solve.py,sha256=PwMWh-TGLj4Pr1g5kIjcK-PfPN-1p26B7QGRbY27_ag,23943
115
+ PyGeodesy-25.1.5.dist-info/METADATA,sha256=UIK1rcjrUK20UCRnOXmJ-KFxBL7ImBlDjwEd8g0nlMM,19900
116
+ PyGeodesy-25.1.5.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
117
+ PyGeodesy-25.1.5.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
118
+ PyGeodesy-25.1.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.0)
2
+ Generator: bdist_wheel (0.45.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any
pygeodesy/__init__.py CHANGED
@@ -7,9 +7,9 @@ methods for geodetic (lat-/longitude), geocentric (U{ECEF<https://WikiPedia.org/
7
7
  cartesian) and certain U{triaxial ellipsoidal<https://GeographicLib.SourceForge.io/1.44/triaxial.html>}
8
8
  coordinates.
9
9
 
10
- Transcoded from U{JavaScript originals<https://GitHub.com/ChrisVeness/geodesy>} by I{Chris Veness (C) 2005-2024}
11
- and from several U{C++ classes<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>} by I{Charles F. F.
12
- Karney (C) 2008-2024} and published under the same U{MIT License<https://OpenSource.org/licenses/MIT>}**.
10
+ Transcoded partially from U{JavaScript originals<https://GitHub.com/ChrisVeness/geodesy>} by I{Chris Veness (C)
11
+ 2005-2024} and from several U{C++ classes<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>} by I{Charles
12
+ F. F. Karney (C) 2008-2024} and published under the same U{MIT License<https://OpenSource.org/licenses/MIT>}**.
13
13
 
14
14
  There are four modules for ellipsoidal earth models, C{ellipsoidalExact}, C{-Karney}, C{-Vincenty} and C{-Nvector}
15
15
  and two for spherical ones, C{sphericalTrigonometry} and C{-Nvector}. Each module provides a geodetic B{C{LatLon}}
@@ -72,7 +72,7 @@ PyPI.org/project/PyGeodesy/#files>}, download the file from U{GitHub/dist<https:
72
72
  PyGeodesy/tree/master/dist>}. Install that with C{python[3] -m pip install <path-to-downloaded-wheel>}
73
73
  and verify with C{python[3] -m pygeodesy}.
74
74
 
75
- Alternatively, download C{PyGeodesy-yy.m.d.zip} from U{PyPI<https://PyPI.org/project/PyGeodesy>}
75
+ Alternatively, download C{PyGeodesy-yy.m.d.tar.gz} from U{PyPI<https://PyPI.org/project/PyGeodesy>}
76
76
  or U{GitHub<https://GitHub.com/mrJean1/PyGeodesy>}, C{unzip} the downloaded file, C{cd} to
77
77
  directory C{Pygeodesy-yy.m.d} and type C{python[3] setup.py install}.
78
78
 
@@ -122,7 +122,7 @@ C{epydoc --html --no-private --no-source --name=PyGeodesy --url=... -v pygeodesy
122
122
  Tests
123
123
  =====
124
124
 
125
- The tests ran with Python 3.13.0 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0),
125
+ The tests ran with Python 3.13.1 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0),
126
126
  Python 3.12.7 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0,
127
127
  U{numpy<https://PyPI.org/project/numpy>} 2.1.0, U{scipy<https://PyPI.org/project/scipy>} 1.14.1,
128
128
  U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3,
@@ -146,24 +146,24 @@ env variable C{PYGEODESY_WARNINGS=on} for all Python versions. The results of t
146
146
  the distribution files.
147
147
 
148
148
  Test coverage has been measured with U{coverage<https://PyPI.org/project/coverage>} 7.6.1 using Python
149
- 3.13.0, 3.12.7, 3.11.5 and 3.10.8. The complete coverage report in HTML and a PDF summary are included in
149
+ 3.13.1, 3.12.7, 3.11.5 and 3.10.8. The complete coverage report in HTML and a PDF summary are included in
150
150
  the distribution files.
151
151
 
152
- Python 3.13.0, 3.12.7, 3.11.5 and 3.10.8 run on Apple M1 Silicon (C{arm64}), I{natively}. Python 2.7.18 runs
152
+ Python 3.13.1, 3.12.7, 3.11.5 and 3.10.8 run on Apple M1 Silicon (C{arm64}), I{natively}. Python 2.7.18 runs
153
153
  on Intel (C{x86_64}) or Intel I{emulation} ("C{arm64_x86_64}", see function L{machine<pygeodesy.machine>}).
154
154
 
155
- The tests also ran with Python 3.13.0 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on
155
+ The tests also ran with Python 3.13.1 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on
156
156
  U{Debian 12<https://Cirrus-CI.com/github/mrJean1/PyGeodesy/master>} in 64-bit only, with Python 3.12.5 (and
157
- U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Windows
158
- 2019Server<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>} in 64-bit only and with Python 2.7.18 (and
159
- U{geographiclib<https://PyPI.org/project/geographiclib>} 1.52) on U{Windows
160
- 10<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>} in 64- and 32-bit.
157
+ U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Windows 2019Server
158
+ <https://CI.AppVeyor.com/project/mrJean1/pygeodesy>} in 64-bit only and with Python 2.7.18 (and U{geographiclib
159
+ <https://PyPI.org/project/geographiclib>} 1.52) on U{Windows 10<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>}
160
+ in 64- and 32-bit.
161
161
 
162
162
  A single-File and single-Directory application with C{pygeodesy} has been bundled using U{PyInstaller
163
163
  <https://PyPI.org/project/pyinstaller>} 3.4 and 64-bit Python 3.7.3 on macOS 10.13.6 High Sierra.
164
164
 
165
- Previously, the tests were run with Python 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, U{PyPy
166
- <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
165
+ Previously, the tests were run with Python 3.13.0, 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,
166
+ 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
167
167
  2.7.13) (and U{geographiclib <https://PyPI.org/project/geographiclib>} 1.52, U{numpy<https://PyPI.org/project/numpy>}
168
168
  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,
169
169
  1.5.2 or 1.8.1) on U{Ubuntu 16.04<https://Travis-CI.com/mrJean1/PyGeodesy>}, with Python 3.10.0-1, 3.9.0-5, 3.8.0-6,
@@ -243,7 +243,7 @@ and:
243
243
  License
244
244
  =======
245
245
 
246
- **) U{Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.<https://OpenSource.org/licenses/MIT>}
246
+ **) U{Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.<https://OpenSource.org/licenses/MIT>}
247
247
 
248
248
  C{Permission is hereby granted, free of charge, to any person obtaining a copy of this software
249
249
  and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -527,7 +527,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
527
527
  from pygeodesy.mgrs import * # PYCHOK __all__
528
528
  from pygeodesy.named import * # PYCHOK __all__
529
529
  from pygeodesy.namedTuples import * # PYCHOK __all__
530
- # from pygeodesy.nvectorBase import * # PYCHOK __(_)__ INTERNAL
530
+ from pygeodesy.nvectorBase import * # PYCHOK __(_)__ INTERNAL
531
531
  from pygeodesy.osgr import * # PYCHOK __all__
532
532
  from pygeodesy.points import * # PYCHOK __all__
533
533
  from pygeodesy.props import * # PYCHOK __all__
@@ -566,7 +566,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
566
566
  # GilderGeek<https://GitHub.com/mrJean1/PyGeodesy/issues/31>)
567
567
  ns = list(lazily._ALL_INIT)
568
568
  # XXX ps = () if _isfrozen else set([_pygeodesy_] + __name__.split(_DOT_))
569
- for mod, attrs in lazily._ALL_LAZY.enums():
569
+ for mod, attrs in lazily._all_enums():
570
570
  mod = _headof(_headof(mod))
571
571
  if mod not in globalocals:
572
572
  t = _DOT_(_pygeodesy_, mod)
@@ -598,7 +598,7 @@ else:
598
598
 
599
599
  from pygeodesy.internals import _version2, _DOT_ # PYCHOK import
600
600
  # from pygeodesy.interns import _DOT_ # from .internals
601
- __version__ = '24.11.11'
601
+ __version__ = '25.01.05'
602
602
  # see setup.py for similar logic
603
603
  version = _DOT_(*_version2(__version__, n=3))
604
604
 
@@ -606,7 +606,7 @@ del _DOT_, _lazy_import2, _os_path, _sys, _version2
606
606
 
607
607
  # **) MIT License
608
608
  #
609
- # Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.
609
+ # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
610
610
  #
611
611
  # Permission is hereby granted, free of charge, to any person obtaining a
612
612
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/__main__.py CHANGED
@@ -85,7 +85,7 @@ except ImportError:
85
85
 
86
86
  # **) MIT License
87
87
  #
88
- # Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.
88
+ # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
89
89
  #
90
90
  # Permission is hereby granted, free of charge, to any person obtaining a
91
91
  # copy of this software and associated documentation files (the "Software"),
pygeodesy/albers.py CHANGED
@@ -32,13 +32,13 @@ from pygeodesy.named import _name2__, _NamedBase, _NamedTuple, _Pass
32
32
  from pygeodesy.props import deprecated_Property_RO, Property_RO, _update_all
33
33
  from pygeodesy.streprs import Fmt, strs, unstr
34
34
  from pygeodesy.units import Bearing, Float_, Lat, Lat_, Lon, Meter, Scalar_
35
- from pygeodesy.utily import atan1, atan1d, degrees360, sincos2, sincos2d, \
36
- sincos2d_
35
+ from pygeodesy.utily import atan1, atan1d, atan2, degrees360, sincos2, \
36
+ sincos2d, sincos2d_
37
37
 
38
- from math import atan2, atanh, degrees, fabs, radians, sqrt
38
+ from math import atanh, degrees, fabs, radians, sqrt
39
39
 
40
40
  __all__ = _ALL_LAZY.albers
41
- __version__ = '24.10.15'
41
+ __version__ = '24.11.24'
42
42
 
43
43
  _k1_ = 'k1'
44
44
  _NUMIT = 8 # XXX 4?
@@ -834,7 +834,7 @@ __all__ += _ALL_DOCS(_AlbersBase)
834
834
 
835
835
  # **) MIT License
836
836
  #
837
- # Copyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.
837
+ # Copyright (C) 2016-2025 -- mrJean1 at Gmail -- All Rights Reserved.
838
838
  #
839
839
  # Permission is hereby granted, free of charge, to any person obtaining a
840
840
  # copy of this software and associated documentation files (the "Software"),
@@ -120,7 +120,7 @@ del _Rcoeffs, _Rdict, _Rtuple
120
120
 
121
121
  # **) MIT License
122
122
  #
123
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
123
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
124
124
  #
125
125
  # Permission is hereby granted, free of charge, to any person obtaining a
126
126
  # copy of this software and associated documentation files (the "Software"),
@@ -168,7 +168,7 @@ del _Rcoeffs, _Rdict, _Rtuple
168
168
 
169
169
  # **) MIT License
170
170
  #
171
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
171
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
172
172
  #
173
173
  # Permission is hereby granted, free of charge, to any person obtaining a
174
174
  # copy of this software and associated documentation files (the "Software"),
@@ -227,7 +227,7 @@ del _Rcoeffs, _Rdict, _Rtuple
227
227
 
228
228
  # **) MIT License
229
229
  #
230
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
230
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
231
231
  #
232
232
  # Permission is hereby granted, free of charge, to any person obtaining a
233
233
  # copy of this software and associated documentation files (the "Software"),
@@ -201,7 +201,7 @@ class _Rtuple(list): # MUST be list, NOT tuple!
201
201
 
202
202
  # **) MIT License
203
203
  #
204
- # Copyright (C) 2024-2024 -- mrJean1 at Gmail -- All Rights Reserved.
204
+ # Copyright (C) 2024-2025 -- mrJean1 at Gmail -- All Rights Reserved.
205
205
  #
206
206
  # Permission is hereby granted, free of charge, to any person obtaining a
207
207
  # copy of this software and associated documentation files (the "Software"),
@@ -33,7 +33,7 @@ __version__ = '24.09.04'
33
33
 
34
34
  # **) MIT License
35
35
  #
36
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
36
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
37
37
  #
38
38
  # Permission is hereby granted, free of charge, to any person obtaining a
39
39
  # copy of this software and associated documentation files (the "Software"),
@@ -51,7 +51,7 @@ _main(ALorder=int(argv[1])) if len(argv) == 2 and argv[1].isdigit() else _main()
51
51
 
52
52
  # **) MIT License
53
53
  #
54
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
54
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
55
55
  #
56
56
  # Permission is hereby granted, free of charge, to any person obtaining a
57
57
  # copy of this software and associated documentation files (the "Software"),
@@ -7,7 +7,7 @@ Class L{AuxAngle} transcoded to Python from I{Karney}'s C++ class U{AuxAngle
7
7
  <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html>}
8
8
  in I{GeographicLib version 2.2+}.
9
9
 
10
- Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2023) and licensed
10
+ Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed
11
11
  under the MIT/X11 License. For more information, see the U{GeographicLib
12
12
  <https://GeographicLib.SourceForge.io>} documentation.
13
13
  '''
@@ -27,12 +27,12 @@ from pygeodesy.props import Property, Property_RO, property_RO, property_ROver,
27
27
  _update_all
28
28
  # from pygeodesy.streprs import unstr # from .fmath
29
29
  from pygeodesy.units import Degrees, Radians
30
- from pygeodesy.utily import atan2d, sincos2, sincos2d
30
+ from pygeodesy.utily import atan2, atan2d, sincos2, sincos2d
31
31
 
32
- from math import asinh, atan2, copysign, degrees, fabs, radians, sinh
32
+ from math import asinh, copysign, degrees, fabs, radians, sinh
33
33
 
34
34
  __all__ = ()
35
- __version__ = '24.07.25'
35
+ __version__ = '24.11.24'
36
36
 
37
37
  _0_INF_NAN_NINF = (0, _0_0) + _INF_NAN_NINF
38
38
  _MAX_2 = MAX * _0_5 # PYCHOK used!
@@ -529,7 +529,7 @@ __all__ += _ALL_DOCS(AuxAngle, AuxBeta, AuxChi, AuxMu, AuxPhi, AuxTheta, AuxXi)
529
529
 
530
530
  # **) MIT License
531
531
  #
532
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
532
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
533
533
  #
534
534
  # Permission is hereby granted, free of charge, to any person obtaining a
535
535
  # copy of this software and associated documentation files (the "Software"),
@@ -4,7 +4,7 @@ u'''Class L{AuxDLat} transcoded to Python from I{Karney}'s C++ class U{DAuxLatit
4
4
  <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html>}
5
5
  in I{GeographicLib version 2.2+}.
6
6
 
7
- Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2023) and licensed
7
+ Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed
8
8
  under the MIT/X11 License. For more information, see the U{GeographicLib
9
9
  <https://GeographicLib.SourceForge.io>} documentation.
10
10
  '''
@@ -12,7 +12,7 @@ under the MIT/X11 License. For more information, see the U{GeographicLib
12
12
  from __future__ import division as _; del _ # PYCHOK semicolon
13
13
 
14
14
  from pygeodesy.auxilats.auxily import Aux, _Datan, _Dasinh, _Dm, _sc, _sn, \
15
- atan1, AuxError
15
+ AuxError
16
16
  from pygeodesy.auxilats.auxLat import AuxLat, _ALL_DOCS
17
17
  from pygeodesy.basics import map1, _reverange
18
18
  from pygeodesy.constants import INF, NAN, isfinite, isinf, isnan, _0_0, _0_5, \
@@ -21,12 +21,12 @@ from pygeodesy.elliptic import Elliptic as _Ef, Fsum
21
21
  # from pygeodesy.errors import AuxError # from .auxilats.auxily
22
22
  # from pygeodesy.fsums import Fsum # from .elliptic
23
23
  # from pygeodesy.lazily import _ALL_DOCS # from .auxilats.auxLat
24
- # from pygeodesy.utily import atan1 # from .auxilats.auxily
24
+ from pygeodesy.utily import atan1, atan2 # from .auxilats.auxily
25
25
 
26
- from math import atan2, cos, sin, sqrt
26
+ from math import cos, sin, sqrt
27
27
 
28
28
  __all__ = ()
29
- __version__ = '24.06.16'
29
+ __version__ = '24.11.24'
30
30
 
31
31
 
32
32
  class AuxDLat(AuxLat):
@@ -282,7 +282,7 @@ __all__ += _ALL_DOCS(AuxDLat)
282
282
 
283
283
  # **) MIT License
284
284
  #
285
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
285
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
286
286
  #
287
287
  # Permission is hereby granted, free of charge, to any person obtaining a
288
288
  # copy of this software and associated documentation files (the "Software"),
@@ -5,7 +5,7 @@ u'''Discrete Sine Transforms (AuxDST) in Python, transcoded from I{Karney}'s C++
5
5
  U{DST<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html>}
6
6
  in I{GeographicLib version 2.2+}.
7
7
 
8
- Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2023) and licensed
8
+ Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed
9
9
  under the MIT/X11 License. For more information, see the U{GeographicLib
10
10
  <https://GeographicLib.SourceForge.io>} documentation.
11
11
 
@@ -274,7 +274,7 @@ __all__ += _ALL_DOCS(AuxDST)
274
274
 
275
275
  # **) MIT License
276
276
  #
277
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
277
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
278
278
  #
279
279
  # Permission is hereby granted, free of charge, to any person obtaining a
280
280
  # copy of this software and associated documentation files (the "Software"),
@@ -5,7 +5,7 @@ u'''Class L{AuxLat} transcoded to Python from I{Karney}'s C++ class U{AuxLatitud
5
5
  <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>}
6
6
  in I{GeographicLib version 2.2+}.
7
7
 
8
- Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2023) and licensed
8
+ Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed
9
9
  under the MIT/X11 License. For more information, see the U{GeographicLib
10
10
  <https://GeographicLib.SourceForge.io>} documentation.
11
11
 
@@ -17,7 +17,7 @@ from __future__ import division as _; del _ # PYCHOK semicolon
17
17
 
18
18
  from pygeodesy.auxilats.auxAngle import AuxAngle, AuxBeta, AuxChi, _AuxClass, \
19
19
  AuxMu, AuxPhi, AuxTheta, AuxXi
20
- from pygeodesy.auxilats.auxily import Aux, _sc, _sn, atan1
20
+ from pygeodesy.auxilats.auxily import Aux, _sc, _sn
21
21
  from pygeodesy.auxilats._CX_Rs import _Rdict, _Rtuple
22
22
  from pygeodesy.basics import _reverange, _xinstanceof, _passarg
23
23
  from pygeodesy.constants import INF, MAX_EXP, MIN_EXP, NAN, PI_2, PI_4, _EPSqrt, \
@@ -37,9 +37,9 @@ from pygeodesy.karney import _2cos2x, _polynomial, _ALL_DOCS, cbrt
37
37
  # from pygeodesy.named import _name__ # from .datums
38
38
  from pygeodesy.props import Property, Property_RO, _update_all
39
39
  from pygeodesy.units import _isDegrees, _isRadius, Degrees, Meter
40
- # from pygeodesy.utily import atan1 # from .auxily
40
+ from pygeodesy.utily import atan1, atan2
41
41
 
42
- from math import asinh, atan2, copysign, cosh, fabs, sin, sinh, sqrt
42
+ from math import asinh, copysign, cosh, fabs, sin, sinh, sqrt
43
43
  try:
44
44
  from math import exp2 as _exp2
45
45
  except ImportError: # Python 3.11-
@@ -847,7 +847,7 @@ __all__ += _ALL_DOCS(AuxLat)
847
847
 
848
848
  # **) MIT License
849
849
  #
850
- # Copyright (C) 2023-2024 -- mrJean1 at Gmail -- All Rights Reserved.
850
+ # Copyright (C) 2023-2025 -- mrJean1 at Gmail -- All Rights Reserved.
851
851
  #
852
852
  # Permission is hereby granted, free of charge, to any person obtaining a
853
853
  # copy of this software and associated documentation files (the "Software"),