pygeodesy 24.10.10__py2.py3-none-any.whl → 24.11.11__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 (76) hide show
  1. {PyGeodesy-24.10.10.dist-info → PyGeodesy-24.11.11.dist-info}/METADATA +12 -12
  2. PyGeodesy-24.11.11.dist-info/RECORD +118 -0
  3. {PyGeodesy-24.10.10.dist-info → PyGeodesy-24.11.11.dist-info}/WHEEL +1 -1
  4. pygeodesy/__init__.py +14 -14
  5. pygeodesy/__main__.py +5 -5
  6. pygeodesy/albers.py +12 -17
  7. pygeodesy/azimuthal.py +51 -61
  8. pygeodesy/basics.py +60 -62
  9. pygeodesy/booleans.py +87 -79
  10. pygeodesy/cartesianBase.py +6 -6
  11. pygeodesy/constants.py +23 -19
  12. pygeodesy/css.py +7 -8
  13. pygeodesy/datums.py +3 -3
  14. pygeodesy/deprecated/__init__.py +1 -1
  15. pygeodesy/deprecated/classes.py +9 -9
  16. pygeodesy/deprecated/functions.py +6 -6
  17. pygeodesy/dms.py +250 -270
  18. pygeodesy/ecef.py +11 -14
  19. pygeodesy/ellipsoidalBase.py +106 -121
  20. pygeodesy/ellipsoidalBaseDI.py +114 -118
  21. pygeodesy/ellipsoidalExact.py +35 -37
  22. pygeodesy/ellipsoidalNvector.py +4 -4
  23. pygeodesy/ellipsoidalVincenty.py +2 -2
  24. pygeodesy/ellipsoids.py +10 -51
  25. pygeodesy/elliptic.py +14 -14
  26. pygeodesy/errors.py +28 -28
  27. pygeodesy/etm.py +92 -68
  28. pygeodesy/fmath.py +42 -40
  29. pygeodesy/formy.py +7 -6
  30. pygeodesy/fsums.py +72 -51
  31. pygeodesy/geodesici.py +43 -40
  32. pygeodesy/geodesicw.py +17 -16
  33. pygeodesy/geodesicx/__init__.py +2 -2
  34. pygeodesy/geodesicx/gxarea.py +3 -2
  35. pygeodesy/geodsolve.py +79 -39
  36. pygeodesy/geohash.py +2 -2
  37. pygeodesy/geoids.py +32 -31
  38. pygeodesy/heights.py +2 -2
  39. pygeodesy/internals.py +201 -147
  40. pygeodesy/interns.py +23 -20
  41. pygeodesy/karney.py +62 -13
  42. pygeodesy/ktm.py +11 -13
  43. pygeodesy/latlonBase.py +18 -20
  44. pygeodesy/lazily.py +210 -218
  45. pygeodesy/lcc.py +4 -4
  46. pygeodesy/ltp.py +10 -10
  47. pygeodesy/ltpTuples.py +74 -75
  48. pygeodesy/mgrs.py +20 -21
  49. pygeodesy/named.py +15 -10
  50. pygeodesy/nvectorBase.py +1 -1
  51. pygeodesy/osgr.py +9 -12
  52. pygeodesy/points.py +2 -2
  53. pygeodesy/props.py +35 -14
  54. pygeodesy/resections.py +9 -10
  55. pygeodesy/rhumb/__init__.py +1 -1
  56. pygeodesy/rhumb/bases.py +5 -5
  57. pygeodesy/rhumb/solve.py +9 -10
  58. pygeodesy/simplify.py +5 -5
  59. pygeodesy/solveBase.py +7 -25
  60. pygeodesy/sphericalBase.py +20 -23
  61. pygeodesy/sphericalNvector.py +103 -145
  62. pygeodesy/sphericalTrigonometry.py +68 -73
  63. pygeodesy/streprs.py +5 -5
  64. pygeodesy/trf.py +6 -4
  65. pygeodesy/triaxials.py +46 -9
  66. pygeodesy/units.py +5 -4
  67. pygeodesy/ups.py +6 -6
  68. pygeodesy/utily.py +2 -2
  69. pygeodesy/utm.py +7 -7
  70. pygeodesy/vector2d.py +13 -13
  71. pygeodesy/vector3d.py +19 -21
  72. pygeodesy/vector3dBase.py +21 -19
  73. pygeodesy/webmercator.py +4 -4
  74. pygeodesy/wgrs.py +4 -4
  75. PyGeodesy-24.10.10.dist-info/RECORD +0 -118
  76. {PyGeodesy-24.10.10.dist-info → PyGeodesy-24.11.11.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyGeodesy
3
- Version: 24.10.10
3
+ Version: 24.11.11
4
4
  Summary: Pure Python geodesy tools
5
5
  Home-page: https://GitHub.com/mrJean1/PyGeodesy
6
6
  Author: Jean M. Brouwers
@@ -44,7 +44,7 @@ and nearest points, intersections of geodesic, great circle and rhumb lines, cir
44
44
  secants, `3-point resections`_, triangulation, trilateration (by intersection, by overlap and in
45
45
  3d), conversions and unrolling, among other things. For more information and further details see the
46
46
  documentation_, the descriptions of `Latitude/Longitude`_, Vincenty_ and `Vector-based`_ geodesy, the
47
- original `JavaScript source`_ or docs_ and *Karney*\'s Python geographiclib_ and `C++ GeographicLib`_.
47
+ original `JavaScript source`_ or docs_ and *Karney*\'s Python geographiclib_ and C++ `GeographicLib.`_
48
48
 
49
49
  Also included are modules for conversions to and from `Cassini-Soldner`_, ECEF_ (Earth-Centered,
50
50
  Earth-Fixed cartesian), UTM_ (Universal Transverse Mercator and Exact_), UPS_ (Universal Polar
@@ -115,12 +115,12 @@ line: ``epydoc --html --no-private --no-source --name=PyGeodesy --url=... -v pyg
115
115
  Tests
116
116
  =====
117
117
 
118
- The tests ran with Python 3.13.0, 3.12.7 (with geographiclib_ 2.0, numpy_ 2.1.0, scipy_ 1.14.1,
119
- GeodSolve_ 2.3, IntersectTool_ 2.3 and RhumbSolve_ 2.3), 3.11.5 (with geographiclib_ 2.0, numpy_
120
- 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_
122
- 1.16.6, scipy_ 1.2.2, GeoConvert_ 2.3, GeodSolve_ 2.3, IntersectTool_ 2.3 and RhumbSolve_ 2.3),
123
- all on macOS 14.6.1 Sonoma in 64-bit.
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.
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
@@ -132,7 +132,7 @@ runs on Intel (``x86_64``) or Intel *emulation* (\"``arm64_x86_64``\", see funct
132
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
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.12.7 (and geographiclib_ 2.0) on `Debian 12`_ in 64-bit only and with
135
+ The tests also ran with Python 3.13.0 (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
 
@@ -160,7 +160,7 @@ 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: Oct 10, 2024.*
163
+ *Last updated: Nov 11, 2024.*
164
164
 
165
165
  License
166
166
  =======
@@ -200,7 +200,6 @@ DEALINGS IN THE SOFTWARE.
200
200
 
201
201
  .. _Albers equal-area: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html
202
202
  .. _C++ classes: https://GeographicLib.SourceForge.io/C++/doc/annotated.html
203
- .. _C++ GeographicLib: https://GeographicLib.SourceForge.io/C++/doc/index.html
204
203
  .. _Cartesian: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy-Cartesian-attributes-table.html
205
204
  .. _Cassini-Soldner: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html
206
205
  .. _checked: https://GitHub.com/ActiveState/code/tree/master/recipes/Python/546532_PyChecker_postprocessor
@@ -222,6 +221,7 @@ DEALINGS IN THE SOFTWARE.
222
221
  .. _GeoConvert: https://GeographicLib.SourceForge.io/C++/doc/utilities.html
223
222
  .. _GeodSolve: https://GeographicLib.SourceForge.io/C++/doc/utilities.html
224
223
  .. _geographiclib: https://PyPI.org/project/geographiclib
224
+ .. _GeographicLib.: https://GeographicLib.SourceForge.io/C++/doc/index.html
225
225
  .. _Geohashes: https://www.Movable-Type.co.UK/scripts/geohash.html
226
226
  .. _Geoid: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.geoids-module.html
227
227
  .. _Georefs (WGRS): https://WikiPedia.org/wiki/World_Geographic_Reference_System
@@ -251,7 +251,7 @@ DEALINGS IN THE SOFTWARE.
251
251
  .. _PyCodeStyle: https://PyPI.org/project/pycodestyle
252
252
  .. _PyFlakes: https://PyPI.org/project/pyflakes
253
253
  .. _PyGeodesy: https://PyPI.org/project/PyGeodesy
254
- .. _pygeodesy.machine: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.interns-module.html#machine
254
+ .. _pygeodesy.machine: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.internals-module.html#machine
255
255
  .. _PyInstaller: https://PyPI.org/project/pyinstaller
256
256
  .. _PyPI: https://PyPI.org/project/PyGeodesy
257
257
  .. _PyPI Download files: https://PyPI.org/project/PyGeodesy/#files
@@ -0,0 +1,118 @@
1
+ pygeodesy/LICENSE,sha256=YfgAiyxOwY6P9Kkb1_5XN81nueTLrpb3Ffkv3EuPgFU,1144
2
+ pygeodesy/__init__.py,sha256=qZJcMz6VeaGXNy3i3cKvEG1gGfPcrUSxk8kHkFW3o9g,42631
3
+ pygeodesy/__main__.py,sha256=1lE1jMp57iXpvu3TEh2unyT2qvtSa5nJPQn_K7Wmj3E,5442
4
+ pygeodesy/albers.py,sha256=BTeUqKPgygExYBLhRJh8b8FYdwuCIpCuo8ggCw6-Auw,30955
5
+ pygeodesy/azimuthal.py,sha256=WqyA4IWGYBL3wj4oYKCNgm7IcqCtuUhE9TY5hVm7uhU,49763
6
+ pygeodesy/basics.py,sha256=a74YOBmZLWj-CEFadl-ERD9J4qVECRYSL8HBR1gsxTk,30158
7
+ pygeodesy/booleans.py,sha256=IRD4gbzZVcpMg7jh24jtotDORA2jI5-adQkzVaLMnUY,73544
8
+ pygeodesy/cartesianBase.py,sha256=7YiW3i6_HNIgEwqw4NHoFJG5FQsv6dc8opE5w2M7JsY,46939
9
+ pygeodesy/clipy.py,sha256=hzI6IutTRkbssjPPgAjXv9OcgCIIZchjnMWaHin4YAU,27728
10
+ pygeodesy/constants.py,sha256=450oXrMtOT_5A8DvQ_Sh_eu1Kg7CkYmaZpC45usCZDI,19825
11
+ pygeodesy/css.py,sha256=7y85FiUMarlZiiZ9Xn-UyRsnAaV3Met2bumARBGyr94,25642
12
+ pygeodesy/datums.py,sha256=trFx6KgEjlYY_VC6WViZhH1D-U3tDDDdbZXG6MD2H_U,34057
13
+ pygeodesy/dms.py,sha256=FiI-h3nXngSp624i0KlzHkBqYp5X5ucmvN6fLGi_Xgk,42174
14
+ pygeodesy/ecef.py,sha256=MdGNJHebXV4WxGYjUZlHZmZ1dKDv5LUG0xpyYFckuCo,59546
15
+ pygeodesy/elevations.py,sha256=4FuVcVNb_D09gmcvUlck344N4f7Jms76SIRrdutvKjk,10801
16
+ pygeodesy/ellipsoidalBase.py,sha256=GhJG4h8I7ySs6EfXdmVbXOZcvMDI7YYCc7yPj5vMHqo,55109
17
+ pygeodesy/ellipsoidalBaseDI.py,sha256=ZaIPVK187mD9CpORz9t9Vtz03TiVBZ_CRmVs-qMsKBY,38243
18
+ pygeodesy/ellipsoidalExact.py,sha256=vQuyv9jpHLnsWDAwC-GfysFrKC1NAz5hJamIZ7G3NSs,16972
19
+ pygeodesy/ellipsoidalGeodSolve.py,sha256=fAT4b3HXkM6i1W_C0rb4vbSxZqr4c6rS7PIvGF2ad7s,16666
20
+ pygeodesy/ellipsoidalKarney.py,sha256=qvJa8kZ4SgaRR2UbjtkcRxw_CRbwhXoUT4Dn_6DJ6Ag,18721
21
+ pygeodesy/ellipsoidalNvector.py,sha256=Ye6O6SIRiiwY6PJG4KD9kZ6GBpKkWWxZWsZC4k3eH-s,30039
22
+ pygeodesy/ellipsoidalVincenty.py,sha256=Eeh-lFB9y65kyYCZ5bc7uRIF9o6UT4lqdkk4EVRi0Pg,25946
23
+ pygeodesy/ellipsoids.py,sha256=wlYlii-sU2UQBdzFeHpDOamKRtqJavXQXjCr1gRDiFs,106918
24
+ pygeodesy/elliptic.py,sha256=g_IuxDoVf0npEicUCT3x39GJqo1cfpkalC7aV1Z1hFY,45004
25
+ pygeodesy/epsg.py,sha256=Vq_M1g7Z0x5Noqsmt6OCQkPdYJj4jpWObtixL5pAjDA,8220
26
+ pygeodesy/errors.py,sha256=AL-o8q1PqkTcCJTmY6g6iG9BoCpxUONhIFohgekryYw,32098
27
+ pygeodesy/etm.py,sha256=yUXxfdLKlr84a2gtv_ZGGxp1sLOqNvNr7XaOHNwqMb0,46722
28
+ pygeodesy/fmath.py,sha256=9F3381NhthGX92YoFKflAWOZlRwxFv4xJUPJnFy0Hdw,36848
29
+ pygeodesy/formy.py,sha256=s9s-aY3viaMMBnb4jhHE0ZowDUfIcuM-_r9gvilo5B4,75116
30
+ pygeodesy/frechet.py,sha256=F6TYbOEYSOFcll6nvp4GhqafUWXh1umAKb1QaMYQtuM,34372
31
+ pygeodesy/fstats.py,sha256=8Vn1cwlgCQD444WX8FfAEC-AXQcJDeI9_i14Mizp59U,28288
32
+ pygeodesy/fsums.py,sha256=ictqTC7QHDoXcvJxGN66Z_OHnnxSIwXQjlVAOffb8zM,103970
33
+ pygeodesy/gars.py,sha256=KRlyZUv1euEl7ZkDYSZG913GAfFMRG2m2hp37ObYY_Y,11829
34
+ pygeodesy/geodesici.py,sha256=4Elhe9Z8tcVFD46K0HKd_TSS24CQmgQGGlDk6DnBnmo,74775
35
+ pygeodesy/geodesicw.py,sha256=U4mLBOe3x2wGqMynBbO23drd1d9iUXOlBWuNMKdohQ0,28774
36
+ pygeodesy/geodsolve.py,sha256=qYDzQqpfrNcwts1z_yk1HjZ8IlmUXLpda46LHfu4fgs,28989
37
+ pygeodesy/geohash.py,sha256=gDmDI91GOJAdNiAcf9bHq8I581UfPnMmwjWyJlPHRlM,40201
38
+ pygeodesy/geoids.py,sha256=ZfKz2M8gSIGpzooq6or-GqiGQWsMFOLG7VQeiLwX6rA,82491
39
+ pygeodesy/hausdorff.py,sha256=-aKtRbMefDSoIk4V3wCvNrXPZ7Bqk1P6-XuGuI7o8Zc,34770
40
+ pygeodesy/heights.py,sha256=TaEDSLRD5Nsvo0SuU6u-ohATGOwMFxVd5j7DTA9izZc,42909
41
+ pygeodesy/internals.py,sha256=C3Iai8ViVYIC0UnY52fdYTZnfClELtQS4ccPij4Omyo,24299
42
+ pygeodesy/interns.py,sha256=t8hQ3Y1QHzVkoQxq8Z9f0YjkpRC0oB0G7hpV894aYjw,23403
43
+ pygeodesy/iters.py,sha256=xPH0ytomvJeKHu717Fjzi3QbRrEikO6n7vqkY_IDz1k,20311
44
+ pygeodesy/karney.py,sha256=GvyR_tHLRWQ5tsFjnp0R8OTZaBXkPnL8eprSMDJx1mM,40466
45
+ pygeodesy/ktm.py,sha256=pMKiQgtXqnjTNPrVt21N_3x0dFPLuHW0IlOYg3dNjaY,27208
46
+ pygeodesy/latlonBase.py,sha256=2aI0ryg-tRgBuemkJYQkfLkNVi3t2cX2NM7w7wdIebw,79074
47
+ pygeodesy/lazily.py,sha256=JMLMYtzJBxCHyAAJ1pNBiDUVuFimhJChKWXv2nDzA0M,46655
48
+ pygeodesy/lcc.py,sha256=Oa-u7bf_N9aF3D8Yr75In3kXQ2M4SRgGkyyt8aixo8c,25671
49
+ pygeodesy/ltp.py,sha256=tEBBq0U_wfB_8NQG5eEW13nQ2Z8rL6zq1McGcv2YBuI,50751
50
+ pygeodesy/ltpTuples.py,sha256=1AHablDH-A9KRVHMcNPcyu4y6P9kOi10BcqvIKFQrKk,58545
51
+ pygeodesy/mgrs.py,sha256=kVoKDYtm4FhX8BoEKSYbiJ-G_DrT4trb08xjlvpEl1o,29819
52
+ pygeodesy/named.py,sha256=VGY4txpgn7rALFq98zhfCQ0pOC_aPUFVa56TItzFCeM,52510
53
+ pygeodesy/namedTuples.py,sha256=e0rV1Zb2tbx8fztXcSkUFsRTmZtye8B5i_Hi4vBUndU,28758
54
+ pygeodesy/nvectorBase.py,sha256=Xy1TDcH5UuUelVZ7aSKX85hx3fLlpDkYDhuoZijQ1vI,28644
55
+ pygeodesy/osgr.py,sha256=-Ur966glrRhjxtV9DNo920j45PtsUPEQsiy8m1CMhOk,30777
56
+ pygeodesy/points.py,sha256=Vs9vShhBxebgo7UdHlt7Ov4D4Chfa723BZxV0_kpgGk,64389
57
+ pygeodesy/props.py,sha256=Qhs5TpcqoHPA64l-P1GQgG8zlboDsAqzVchDsKv2dn8,24565
58
+ pygeodesy/resections.py,sha256=pl3THJgLKnWEfQaQD1lklt6GfFjaX24ceNZb8PpK7zY,43584
59
+ pygeodesy/simplify.py,sha256=b7oSR2B3yYpwElBeJiyYyK_yFbxwz2Bzx51pymIluwE,25251
60
+ pygeodesy/solveBase.py,sha256=DpgFNHmWs1GUwCViAU-9iBsmKLVFNc8kW1zrDNi31FY,18485
61
+ pygeodesy/sphericalBase.py,sha256=lsjzDWm3VUxKTpKASqZJDYw7M_CJ4eCgzp3LiCJvMt8,32110
62
+ pygeodesy/sphericalNvector.py,sha256=Q3DUujU_xmNcPs0_vfAF8pQAtqOsBQLhq_Rz5WB-TdM,54778
63
+ pygeodesy/sphericalTrigonometry.py,sha256=lfhV2radLDKIK5NjkdtJSRb4alRAT-m0LS0Sb0EtOzk,63959
64
+ pygeodesy/streprs.py,sha256=ItNnTqkE_TMZtqgsRhDonrRDpi5gXtD44sQ_D3Qfsd0,23418
65
+ pygeodesy/trf.py,sha256=hxh6WA7IibL09dHoGMBKQeSXrRFPsYQV0F-LPAD40v4,119073
66
+ pygeodesy/triaxials.py,sha256=priBlyuraA1VhNbN0gv_UAXuulAwV14XjOBvu_oJA4U,63559
67
+ pygeodesy/units.py,sha256=Mr7kLZPSFSMp-xiKy6fqAXuop2LWSZIwWUElGMaWFJY,35316
68
+ pygeodesy/unitsBase.py,sha256=ZZ-VDntCOTjSerQJf9aaLE_J0lozrpmUhynRBaCtg24,14060
69
+ pygeodesy/ups.py,sha256=qRyk3tnQNRD7KgWGPANWOrg6Hxqd9eS7vN8or_tKk4E,23338
70
+ pygeodesy/utily.py,sha256=qLxVVE57PHEu1stJaULIYHZ6G-uNe7Fy_uoQfmNbXUg,36189
71
+ pygeodesy/utm.py,sha256=mJLJq5sEnYYtOpBs2KYiDB6bjKxfFRS1_36-Yn7HLEM,31108
72
+ pygeodesy/utmups.py,sha256=g2Z_aEOt6fhV9f4fASlW4_K_O_P4zBsBbWfQV11mIKo,13196
73
+ pygeodesy/utmupsBase.py,sha256=S4s1Sehj9jSMy-XRxwtwVstG3QhyVt924V0FHu0cPIk,18730
74
+ pygeodesy/vector2d.py,sha256=L-2g3EDZGZD6lYlTrDjInsIELul3UGVjR9eMRagVm6o,39649
75
+ pygeodesy/vector3d.py,sha256=8CA80VxV7XJvBrT3kVO13qMT3qsEoEIHvLYzFz7wIxE,42532
76
+ pygeodesy/vector3dBase.py,sha256=gLOFfUrSFFlmX3R-LmMfAvWwntAcgaF3YqBBtNbfbMw,36289
77
+ pygeodesy/webmercator.py,sha256=iMtKf_vNiM4wiH7rewVzpjMjI7C_qm_ZmSjQBTZ_y0s,14936
78
+ pygeodesy/wgrs.py,sha256=VWBkk_rf-DjpG9o_tqVMCR7FJyEh7holdTsJo1v9ads,15455
79
+ pygeodesy/auxilats/_CX_4.py,sha256=WsxGrwqEhdWBx-K5ocwwDuatIkDTZB-FwrqQITbcNU0,6829
80
+ pygeodesy/auxilats/_CX_6.py,sha256=PsaVhzOdCDyRuZ-SH6ZwbWrf_rAkidtwLuAQTlvv5XQ,11277
81
+ pygeodesy/auxilats/_CX_8.py,sha256=mxk12xvzOMNimyHM74fn9sFB0aUSBLojYqtenYhAekQ,18899
82
+ pygeodesy/auxilats/_CX_Rs.py,sha256=z7UXI7KUyURE44wGuLJE2on6SlgAZzfbay4jkbpON1U,7967
83
+ pygeodesy/auxilats/__init__.py,sha256=ywIs1e5wes3qq3dvCvX0VdxoGtFNQwBmY8Ar-07f9Kg,2881
84
+ pygeodesy/auxilats/__main__.py,sha256=pb0GWDrrg440xNvHvPAz-UTGrLu2uXp4g-RlbkW7P6c,3171
85
+ pygeodesy/auxilats/auxAngle.py,sha256=nr-su1loEbv1uVxg7_cEjH0M1DLyodsulPfq4NVT5kY,16745
86
+ pygeodesy/auxilats/auxDLat.py,sha256=3sq7Wc-ykpVbldNh10IZ3tIlJ7DcQFDlmZ4nOhJEgo0,10969
87
+ pygeodesy/auxilats/auxDST.py,sha256=BSHR0M3hQBR1KjF_BUJHrNzGXr2PblYXUQsMD5L1Kcc,10468
88
+ pygeodesy/auxilats/auxLat.py,sha256=7uxe7mtkY-9uSI3z2wmUNBqzCKyFujIpJU1v-8yDgds,31934
89
+ pygeodesy/auxilats/auxily.py,sha256=X1y4_qC40Th7CgmZILqoQCLAUQoyORcR5W-bN4X0W4I,7882
90
+ pygeodesy/deprecated/__init__.py,sha256=r_oHilCAEi6DmNefqMxLswOD8r7KK0qVaQbw_jq-A-E,2815
91
+ pygeodesy/deprecated/bases.py,sha256=nxUtxscAg5cb7HEzTSmPJFafLc9Ad2SL5ovwkYaU5z8,1655
92
+ pygeodesy/deprecated/classes.py,sha256=mt0qomTmDwhI1o06cqgHs-_KPe9uwVX5q4QeRkwTyp0,12469
93
+ pygeodesy/deprecated/consterns.py,sha256=W-rQiw443_zCFEUzjCGykGND-i5P_ghEIyJUSGg7-Nc,1908
94
+ pygeodesy/deprecated/datum.py,sha256=s8Hke053RucP5ACvg3gdX8weQfGM0x59pQyHpY11eOs,1875
95
+ pygeodesy/deprecated/functions.py,sha256=rf743PWGPP69Ay2TydjnF8YCBXm3p5y1jZvLCPu1wtc,14217
96
+ pygeodesy/deprecated/nvector.py,sha256=_dZf84RdmPr7e7i8Yi683R-8Mqn0ipTqIsDhNl29hGo,2117
97
+ pygeodesy/deprecated/rhumbBase.py,sha256=d7YKW--dnRpobB2CSvhFsntWF0B5-HYJqID2pv5lD5k,1375
98
+ pygeodesy/deprecated/rhumbaux.py,sha256=n29xazYMbVG4MJkLjAGu8B88bbcFF5xnvuj9xSxjfIk,1428
99
+ pygeodesy/deprecated/rhumbsolve.py,sha256=QprjRfo5T1_C4ovaa1cffAcmNczzkhGIfmybAup9a9w,1431
100
+ pygeodesy/deprecated/rhumbx.py,sha256=OS0p_meaoVrpZe5UhK6qZljjlrGpL0pCHWw8gofw7ks,1425
101
+ pygeodesy/geodesicx/_C4_24.py,sha256=r5-So2i4z-OFY6NFYERUvhtxYHaYphPRgUUC3PWC5K4,90707
102
+ pygeodesy/geodesicx/_C4_27.py,sha256=Pkpns4kBAHxBcvi0f9l_3GQeE6qcrl123DccEQ593To,134215
103
+ pygeodesy/geodesicx/_C4_30.py,sha256=cseNhROi7DHi77kgdrXXDXO6yiiq00DNcX0HOVf2Rpg,201921
104
+ pygeodesy/geodesicx/__init__.py,sha256=1ALfFc-DVxhdicPFtqrfLd2up5-VnBSWX0ZB7aHk-S0,2478
105
+ pygeodesy/geodesicx/__main__.py,sha256=wsJPK6lW_PsgVCR1ZJksgGhwxwrsMGSXhYkhpjbknTc,4188
106
+ pygeodesy/geodesicx/gx.py,sha256=yeNpMQbw_uWfs4KOQX8RMAQt6WNsG3zsGgmZRVgbQIk,60612
107
+ pygeodesy/geodesicx/gxarea.py,sha256=cJaXwMMxjQ21RiCGU7c2YLXNmrqkRawHxQxsg7o5gas,19454
108
+ pygeodesy/geodesicx/gxbases.py,sha256=AyvsjiSENqikJK6qpm55rDkUlBSmTDk_-FoqzzMFX1M,6130
109
+ pygeodesy/geodesicx/gxline.py,sha256=zNQF8lz9caHZlsUcL8NfjG02KIza39Q6Qd6XizDp_UI,27537
110
+ pygeodesy/rhumb/__init__.py,sha256=mejjuzcbm4zJJIWEcKCXObDIZoF1e_dtIaChg0mYbr4,2207
111
+ pygeodesy/rhumb/aux_.py,sha256=XN0zlNwhU525NdcHko-G_Igvc7-mzXbT7ypcVIt5ADw,16048
112
+ pygeodesy/rhumb/bases.py,sha256=e_ASUIK9ABtORVZaTMiFMGRc3w2wKGNDPdJEfVCp5CU,54162
113
+ pygeodesy/rhumb/ekx.py,sha256=JsmdCatWKqsffF8jCh4HDu5IKt_kHq1qUdmP1LMuofY,24044
114
+ pygeodesy/rhumb/solve.py,sha256=uP7TJyR529HNZsgmXeV6yAHhDJVBoUC-fEVBUx4-Sd0,23943
115
+ PyGeodesy-24.11.11.dist-info/METADATA,sha256=mv6od5GdIMWcu0qcRzP4L3B3jhe9pWXj56V8xRRefRk,19916
116
+ PyGeodesy-24.11.11.dist-info/WHEEL,sha256=QyeGbh-t8WT0nt0_LNSP02jN-g4ymd1egk1U3osCGMU,110
117
+ PyGeodesy-24.11.11.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
118
+ PyGeodesy-24.11.11.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.44.0)
2
+ Generator: bdist_wheel (0.45.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any
pygeodesy/__init__.py CHANGED
@@ -23,7 +23,7 @@ the U{documentation<https://mrJean1.GitHub.io/PyGeodesy>}, the descriptions of U
23
23
  <https://www.Movable-Type.co.UK/scripts/latlong-vincenty.html>} and U{Vector-based
24
24
  <https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>} geodesy, the original U{JavaScript source
25
25
  <https://GitHub.com/ChrisVeness/geodesy>} or U{docs<https://www.Movable-Type.co.UK/scripts/geodesy/docs>}
26
- and I{Karney}'s Python U{geographiclib<https://PyPI.org/project/geographiclib>} and U{C++ GeographicLib
26
+ and I{Karney}'s Python U{geographiclib<https://PyPI.org/project/geographiclib>} and C++ U{GeographicLib
27
27
  <https://GeographicLib.SourceForge.io/C++/doc/index.html>}.
28
28
 
29
29
  Also included are modules for conversions to and from U{Cassini-Soldner
@@ -122,7 +122,8 @@ 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, Python 3.12.7 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0,
125
+ The tests ran with Python 3.13.0 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0),
126
+ Python 3.12.7 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0,
126
127
  U{numpy<https://PyPI.org/project/numpy>} 2.1.0, U{scipy<https://PyPI.org/project/scipy>} 1.14.1,
127
128
  U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3,
128
129
  U{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3 and
@@ -151,7 +152,7 @@ the distribution files.
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
153
  on Intel (C{x86_64}) or Intel I{emulation} ("C{arm64_x86_64}", see function L{machine<pygeodesy.machine>}).
153
154
 
154
- The tests also ran with Python 3.12.7 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on
155
+ The tests also ran with Python 3.13.0 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on
155
156
  U{Debian 12<https://Cirrus-CI.com/github/mrJean1/PyGeodesy/master>} in 64-bit only, with Python 3.12.5 (and
156
157
  U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Windows
157
158
  2019Server<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>} in 64-bit only and with Python 2.7.18 (and
@@ -201,8 +202,8 @@ The following environment variables are observed by C{PyGeodesy}:
201
202
  - C{PYGEODESY_EXCEPTION_CHAINING} - see module L{errors<pygeodesy.errors>}.
202
203
  - C{PYGEODESY_FMT_FORM} - see module L{dms<pygeodesy.dms>}.
203
204
  - C{PYGEODESY_FSUM_F2PRODUCT} - see module L{fsums<pygeodesy.fsums>} and method L{f2product<pygeodesy.Fsum.f2product>}.
204
- - C{PYGEODESY_FSUM_NONFINITES} - see module L{fsums<pygeodesy.fsums>} and function L{nonfiniterrors<pygeodesy.nonfiniterrors>}.
205
- - C{PYGEODESY_FSUM_RESIDUAL} - see module L{fsums<pygeodesy.fsums>} and class L{Fsum<pygeodesy.Fsum>}.
205
+ - C{PYGEODESY_FSUM_NONFINITES} - see module L{fsums<pygeodesy.fsums>} and method L{nonfinites<pygeodesy.Fsum.nonfinites>}.
206
+ - C{PYGEODESY_FSUM_RESIDUAL} - see module L{fsums<pygeodesy.fsums>} and method L{RESIDUAL<pygeodesy.Fsum.RESIDUAL>}.
206
207
  - C{PYGEODESY_GEOCONVERT} - see module L{mgrs<pygeodesy.mgrs>}.
207
208
  - C{PYGEODESY_GEODSOLVE} - see module L{geodsolve<pygeodesy.geodsolve>}.
208
209
  - C{PYGEODESY_INTERSECTTOOL} - see module L{geodesici<pygeodesy.geodesici>}.
@@ -211,12 +212,13 @@ The following environment variables are observed by C{PyGeodesy}:
211
212
  - C{PYGEODESY_RHUMBSOLVE} - see module L{rhumb.solve<pygeodesy.rhumb.solve>}.
212
213
  - C{PYGEODESY_UPS_POLES} - see modules L{ups<pygeodesy.ups>} and L{mgrs<pygeodesy.mgrs>}.
213
214
 
214
- and these to control standard or I{named} C{repr}esentations:
215
+ and these to specify standard or I{named} C{repr}esentations:
215
216
 
216
217
  - C{PYGEODESY_AZIMUTH_STD_REPR} - see method L{Azimuth<pygeodesy.Azimuth>}C{.__repr__}.
217
218
  - C{PYGEODESY_BEARING_STD_REPR} - see method L{Bearing<pygeodesy.Bearing>}C{.__repr__}.
218
219
  - C{PYGEODESY_BOOL_STD_REPR} - see method L{Bool<pygeodesy.Bool>}C{.__repr__}.
219
220
  - C{PYGEODESY_DEGREES_STD_REPR} - see method L{Degrees<pygeodesy.Degrees>}C{.__repr__}.
221
+ - C{PYGEODESY_EPOCH_STD_REPR} - see method L{Float<pygeodesy.Epoch>}C{.__repr__}.
220
222
  - C{PYGEODESY_FLOAT_STD_REPR} - see method L{Float<pygeodesy.Float>}C{.__repr__}.
221
223
  - C{PYGEODESY_INT_STD_REPR} - see method L{Int<pygeodesy.Int>}C{.__repr__}.
222
224
  - C{PYGEODESY_METER_STD_REPR} - see method L{Meter<pygeodesy.Meter>}C{.__repr__}.
@@ -233,12 +235,10 @@ plus during development:
233
235
 
234
236
  and:
235
237
 
236
- - C{PYGEODESY_INIT__ALL__} - Set env variable C{PYGEODESY_INIT__ALL__} to anything
237
- other than C{"__all__"} to avoid importing all C{pygeodesy} modules unnecessarily
238
- (in Python 2 or with C{PYGEODESY_LAZY_IMPORT} turned off in Python 3). However,
239
- to import a C{pygeodesy} item, the item name must be qualified with the C{module}
240
- name, for example C{ from pygeodesy.ellipsoidalExact import LatLon } or C{ from
241
- pygeodesy.deprecated import collins }
238
+ - C{PYGEODESY_INIT__ALL__} - Set env variable C{PYGEODESY_INIT__ALL__} to anything other than C{"__all__"} to avoid
239
+ importing all C{pygeodesy} modules unnecessarily (in Python 2 or with C{PYGEODESY_LAZY_IMPORT} turned off in Python
240
+ 3). However, to import a C{pygeodesy} item, the item name must be qualified with the C{module} name, for example
241
+ C{ from pygeodesy.ellipsoidalExact import LatLon } or C{ from pygeodesy.deprecated import collins }
242
242
 
243
243
  License
244
244
  =======
@@ -582,7 +582,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
582
582
  raise ImportError('missing %s%s: %s' % (_attribute_, s, t))
583
583
  ns.extend(attrs)
584
584
  # XXX if ps: # check that mod is a _pygeodesy_ module
585
- # XXX m = globalocals[mod] # assert(_dunder_nameof(m) == mod)
585
+ # XXX m = globalocals[mod] # assert(_DUNDER_nameof(m) == mod)
586
586
  # XXX f = getattr(m, _dunder_file_, _NN)
587
587
  # XXX d = _os_path.dirname(_os_path.abspath(f)) if f else pygeodesy_abspath
588
588
  # XXX p = getattr(m, _dunder_package_, _NN) or _pygeodesy_
@@ -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.10.10'
601
+ __version__ = '24.11.11'
602
602
  # see setup.py for similar logic
603
603
  version = _DOT_(*_version2(__version__, n=3))
604
604
 
pygeodesy/__main__.py CHANGED
@@ -5,7 +5,7 @@ u'''Print L{pygeodesy} version, etc. using C{python -m pygeodesy}.
5
5
  '''
6
6
 
7
7
  __all__ = ()
8
- __version__ = '24.09.05'
8
+ __version__ = '24.10.14'
9
9
 
10
10
  from os.path import basename, dirname
11
11
 
@@ -16,9 +16,9 @@ def _main(): # PYCHOK no cover
16
16
  from pygeodesy import constants, _isfrozen, pygeodesy_abspath, version
17
17
  from pygeodesy.basics import _xcoverage,_xgeographiclib, _xnumpy, _xscipy
18
18
  from pygeodesy.internals import _name_version, printf, _usage, _versions
19
- from pygeodesy.interns import NN, _COMMASPACE_, _DEPRECATED_, _DOT_, _EQUAL_, \
20
- _pygeodesy_abspath_, _version_
21
- from pygeodesy.lazily import isLazy, _dunder_all_, _all_deprecates, _all_imports
19
+ from pygeodesy.interns import NN, _COMMASPACE_, _DEPRECATED_, _DOT_, _DUNDER_all_, \
20
+ _EQUAL_, _pygeodesy_abspath_, _version_
21
+ from pygeodesy.lazily import _all_deprecates, _all_imports, isLazy
22
22
 
23
23
  def _p(name_value):
24
24
  return _DOT_(NN, _EQUAL_(*name_value))
@@ -28,7 +28,7 @@ def _main(): # PYCHOK no cover
28
28
  ('isLazy', isLazy),
29
29
  ('_isfrozen', _isfrozen),
30
30
  ('_floats', len(constants._floats)),
31
- (_dunder_all_, len(_all_imports())),
31
+ (_DUNDER_all_, len(_all_imports())),
32
32
  (_DEPRECATED_, len(_all_deprecates()))))
33
33
 
34
34
  def _nv(_xpkg, p):
pygeodesy/albers.py CHANGED
@@ -38,12 +38,12 @@ from pygeodesy.utily import atan1, atan1d, degrees360, sincos2, sincos2d, \
38
38
  from math import atan2, atanh, degrees, fabs, radians, sqrt
39
39
 
40
40
  __all__ = _ALL_LAZY.albers
41
- __version__ = '24.06.11'
41
+ __version__ = '24.10.15'
42
42
 
43
43
  _k1_ = 'k1'
44
44
  _NUMIT = 8 # XXX 4?
45
45
  _NUMIT0 = 41 # XXX 21?
46
- _TERMS = 21 # XXX 16?
46
+ _TERMS = 31 # XXX 16?
47
47
  _TOL0 = sqrt3(_TOL)
48
48
 
49
49
 
@@ -425,15 +425,12 @@ class _AlbersBase(_NamedBase):
425
425
  e22 = E.e22 # == e2 / e21
426
426
  tol = _tol(_TOL0, ta0)
427
427
  _Ta02 = Fsum(ta0).fsum2f_
428
- _fabs = fabs
429
- _fsum1 = fsum1f_
430
- _sqrt = sqrt
431
428
  _1, _2 = _1_0, _2_0
432
429
  _4, _6 = _4_0, _6_0
433
430
  for self._iteration in range(1, _NUMIT0): # 4 trips
434
431
  ta02 = ta0**2
435
432
  sca02 = ta02 + _1
436
- sca0 = _sqrt(sca02)
433
+ sca0 = sqrt(sca02)
437
434
  sa0 = ta0 / sca0
438
435
  sa01 = sa0 + _1
439
436
  sa02 = sa0**2
@@ -449,10 +446,10 @@ class _AlbersBase(_NamedBase):
449
446
  BA = (_atanh1(e2 * sa0m1**2) * e21 - e2 * sa0m) * sa0m1 \
450
447
  - (_2 + (_1 + e2) * sa0) * sa0m**2 * e22 / sa021 # B + A
451
448
  d = (_4 - (_1 + sa02) * e2 * _2) * e22 / (sa021**2 * sca02) # dAB
452
- u = _fsum1(s1_qZ * g, -D, g * BA)
453
- du = _fsum1(s1_qZ * dg, dD, dg * BA, g * d)
449
+ u = fsum1f_(s1_qZ * g, -D, g * BA)
450
+ du = fsum1f_(s1_qZ * dg, dD, dg * BA, g * d)
454
451
  ta0, d = _Ta02(-u / du * (sca0 * sca02))
455
- if _fabs(d) < tol:
452
+ if fabs(d) < tol:
456
453
  return ta0
457
454
  raise AlbersError(Fmt.no_convergence(d, tol), txt=repr(self))
458
455
 
@@ -496,22 +493,20 @@ class _AlbersBase(_NamedBase):
496
493
  e2 = self.ellipsoid.e2
497
494
  qx = self._qx
498
495
 
499
- ta = txi
500
- _Ta2 = Fsum(ta).fsum2f_
501
- _fabs = fabs
502
- _sqrt3 = sqrt3
503
- _txif = self._txif
504
- _1 = _1_0
496
+ ta = txi
497
+ _Ta2 = Fsum(ta).fsum2f_
498
+ _txif = self._txif
499
+ _1 = _1_0
505
500
  for self._iteration in range(1, _NUMIT): # max 2, mean 1.99
506
501
  # dtxi / dta = (scxi / sca)^3 * 2 * (1 - e^2)
507
502
  # / (qZ * (1 - e^2 * sa^2)^2)
508
503
  ta2 = ta**2
509
504
  sca2 = _1 + ta2
510
505
  txia = _txif(ta)
511
- s3qx = _sqrt3(sca2 / (txia**2 + _1)) * qx # * _1_x21(txia)
506
+ s3qx = sqrt3(sca2 / (txia**2 + _1)) * qx # * _1_x21(txia)
512
507
  eta2 = (_1 - e2 * ta2 / sca2)**2
513
508
  ta, d = _Ta2((txi - txia) * s3qx * eta2)
514
- if _fabs(d) < tol:
509
+ if fabs(d) < tol:
515
510
  return ta
516
511
  raise AlbersError(Fmt.no_convergence(d, tol), txt=repr(self))
517
512