pygeodesy 24.8.4__py2.py3-none-any.whl → 24.8.24__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 (50) hide show
  1. {PyGeodesy-24.8.4.dist-info → PyGeodesy-24.8.24.dist-info}/METADATA +16 -15
  2. {PyGeodesy-24.8.4.dist-info → PyGeodesy-24.8.24.dist-info}/RECORD +50 -50
  3. {PyGeodesy-24.8.4.dist-info → PyGeodesy-24.8.24.dist-info}/WHEEL +1 -1
  4. pygeodesy/__init__.py +23 -23
  5. pygeodesy/auxilats/auxDST.py +2 -2
  6. pygeodesy/basics.py +3 -3
  7. pygeodesy/cartesianBase.py +5 -5
  8. pygeodesy/constants.py +11 -11
  9. pygeodesy/ellipsoidalBase.py +18 -15
  10. pygeodesy/ellipsoidalExact.py +2 -2
  11. pygeodesy/ellipsoidalGeodSolve.py +2 -2
  12. pygeodesy/ellipsoidalKarney.py +2 -2
  13. pygeodesy/ellipsoidalNvector.py +2 -2
  14. pygeodesy/ellipsoidalVincenty.py +7 -6
  15. pygeodesy/epsg.py +3 -3
  16. pygeodesy/fmath.py +2 -1
  17. pygeodesy/fsums.py +4 -4
  18. pygeodesy/gars.py +9 -8
  19. pygeodesy/geodesicx/gx.py +3 -3
  20. pygeodesy/geodesicx/gxarea.py +3 -3
  21. pygeodesy/geodsolve.py +3 -3
  22. pygeodesy/geohash.py +18 -11
  23. pygeodesy/geoids.py +293 -315
  24. pygeodesy/heights.py +150 -158
  25. pygeodesy/internals.py +21 -1
  26. pygeodesy/interns.py +2 -3
  27. pygeodesy/latlonBase.py +13 -7
  28. pygeodesy/lazily.py +6 -6
  29. pygeodesy/ltp.py +5 -6
  30. pygeodesy/ltpTuples.py +7 -1
  31. pygeodesy/named.py +5 -4
  32. pygeodesy/namedTuples.py +14 -1
  33. pygeodesy/osgr.py +7 -7
  34. pygeodesy/points.py +2 -2
  35. pygeodesy/resections.py +7 -7
  36. pygeodesy/rhumb/solve.py +3 -3
  37. pygeodesy/simplify.py +10 -10
  38. pygeodesy/sphericalBase.py +3 -3
  39. pygeodesy/sphericalTrigonometry.py +2 -2
  40. pygeodesy/streprs.py +3 -3
  41. pygeodesy/triaxials.py +207 -201
  42. pygeodesy/units.py +3 -3
  43. pygeodesy/unitsBase.py +4 -4
  44. pygeodesy/utmupsBase.py +3 -3
  45. pygeodesy/vector2d.py +158 -51
  46. pygeodesy/vector3d.py +13 -52
  47. pygeodesy/vector3dBase.py +81 -63
  48. pygeodesy/webmercator.py +3 -3
  49. pygeodesy/wgrs.py +20 -22
  50. {PyGeodesy-24.8.4.dist-info → PyGeodesy-24.8.24.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyGeodesy
3
- Version: 24.8.4
3
+ Version: 24.8.24
4
4
  Summary: Pure Python geodesy tools
5
5
  Home-page: https://GitHub.com/mrJean1/PyGeodesy
6
6
  Author: Jean M. Brouwers
@@ -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-2022* and from several `C++
37
- classes`_ by *Charles F.F. Karney (C) 2008-2023* and published under the same `MIT License`_.
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`_.
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
@@ -115,36 +115,37 @@ 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.0b4, 3.12.4 (with geographiclib_ 2.0, GeodSolve_ 2.3, IntersectTool_ 2.3
119
- and RhumbSolve_ 2.3), 3.11.5 (with geographiclib_ 2.0, numpy_ 1.24.2 and scipy_ 1.10.1), Python 3.10.8
120
- (with geographiclib_ 2.0, numpy_ 1.23.3, scipy_ 1.9.1, GeoConvert_ 2.3, GeodSolve_ 2.3), Python 3.9.6
121
- and Python 2.7.18 (with geographiclib_ 1.50, numpy_ 1.16.6, scipy_ 1.2.2, GeoConvert_ 2.3, GeodSolve_
122
- 2.3, IntersectTool_ 2.3 and RhumbSolve_ 2.3), all on macOS 14.5 Sonoma in 64-bit.
118
+ The tests ran with Python 3.13.0rc1, 3.12.5 (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.
123
124
 
124
125
  All tests ran with and without ``lazy import`` for Python 3 and with command line option ``-W default``
125
126
  and env variable ``PYGEODESY_WARNINGS=on`` for all Python versions. The results of those tests are
126
127
  included in the distribution files.
127
128
 
128
- Python 3.13.0b4, 3.12.4, 3.11.5 and 3.10.8 run on Apple M1 Silicon (``arm64``), *natively*. Python 2.7.18
129
+ Python 3.13.0rc1, 3.12.5, 3.11.5 and 3.10.8 run on Apple M1 Silicon (``arm64``), *natively*. Python 2.7.18
129
130
  runs on Intel (``x86_64``) or Intel *emulation* (\"``arm64_x86_64``\", see function `pygeodesy.machine`_).
130
131
 
131
- Test coverage has been measured with coverage_ 7.6.0 using Python 3.12.4, 3.11.5 and 3.10.8. The complete
132
+ Test coverage has been measured with coverage_ 7.6.0 using Python 3.12.5, 3.11.5 and 3.10.8. The complete
132
133
  coverage report in HTML and a PDF summary are included in the distribution files.
133
134
 
134
- The tests also ran with Python 3.12.4 (and geographiclib_ 2.0) on `Debian 12`_ in 64-bit only and with
135
+ The tests also ran with Python 3.12.5 (and geographiclib_ 2.0) on `Debian 12`_ in 64-bit only and with
135
136
  Python 3.12.3 (and geographiclib_ 2.0) on `Windows 2019Server`_ in 64-bit only and with Python 2.7.18
136
137
  (and with geographiclib_ 1.52) on `Windows 10`_ in 64- and 32-bit.
137
138
 
138
139
  A single-File and single-Directory application with ``pygeodesy`` has been bundled using PyInstaller_
139
140
  3.4 and 64-bit Python 3.7.4 and 3.7.3 on macOS 10.13.6 High Sierra.
140
141
 
141
- Previously, the tests were run with Python 3.12.0-3, 3.11.2-4, 3.10.1-7, 3.9.1, 3.8.7, 3.7.1, 2.7.15, PyPy_
142
+ Previously, the tests were run with Python 3.12.0-4, 3.11.2-4, 3.10.1-7, 3.9.1, 3.8.7, 3.7.1, 2.7.15, PyPy_
142
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,
143
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)
144
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,
145
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_
146
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`_
147
- 3.5.3 (and numpy_ 1.11.3) on macOS 14.0-4.1 Sonoma, 13.0-5.2 Ventura, 12.1-6 Monterey, 11.0-5.2-6.1 Big
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
148
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
149
150
  10.11 El Capitan and/or MacOS X 10.10 Yosemite, with Pythonista_ 3.2 (with geographiclib 1.50 or 1.49 and
150
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_
@@ -155,11 +156,11 @@ Notes
155
156
  =====
156
157
 
157
158
  All Python source code has been statically checked_ with PyChecker_, PyFlakes_, PyCodeStyle_ (formerly Pep8)
158
- and McCabe_ using Python 2.7.18 and with Flake8_ using Python 3.11.5, both in 64-bit on macOS 14.5 Sonoma.
159
+ and McCabe_ using Python 2.7.18 and with Flake8_ using Python 3.11.5, both in 64-bit on macOS 14.6.1 Sonoma.
159
160
 
160
161
  For a summary of all *Karney*-based functionality in ``pygeodesy``, see module karney_.
161
162
 
162
- *Last updated: Aug 04, 2024.*
163
+ *Last updated: Aug 24, 2024.*
163
164
 
164
165
  License
165
166
  =======
@@ -1,81 +1,81 @@
1
1
  pygeodesy/LICENSE,sha256=YfgAiyxOwY6P9Kkb1_5XN81nueTLrpb3Ffkv3EuPgFU,1144
2
- pygeodesy/__init__.py,sha256=pjLvi1mnybZenPXxPN_4a_OUOSAa8vIwar_gXiTJfI4,42175
2
+ pygeodesy/__init__.py,sha256=Qjs1tGLEQgsV6UELl1zfonI_jkCSJztZcVFbS62yboU,42225
3
3
  pygeodesy/__main__.py,sha256=VWxepzxGqR5wsHYyIHFSsRMlZ27keX3xyEhBuGDRXxk,4727
4
4
  pygeodesy/albers.py,sha256=JXqeWAteV2N601e5R-D7bCsa8qAYv3oWm7M3R4uszXM,31078
5
5
  pygeodesy/azimuthal.py,sha256=erI5DTM0-Nr5YC2LnBTVNbUKlrnnXJUwKe0SCQ7-Soc,50223
6
- pygeodesy/basics.py,sha256=mSim8pSrRLMFYTnTrJDvkthfrw2MWBmMya3hOHWX4co,29785
6
+ pygeodesy/basics.py,sha256=89s7SLLxPFJqTzeHv2C_FwW77pAU4Sa7uHq9d9k9eJA,29797
7
7
  pygeodesy/booleans.py,sha256=5IeA6QWihiPWSv2JnCbMT53ey1WYIU7od5VQ1YUFqX8,73529
8
- pygeodesy/cartesianBase.py,sha256=FHXBzIsvU817CQuhgsk4JSRuZQ2rm1ll-gqKUx47x6I,46927
8
+ pygeodesy/cartesianBase.py,sha256=jzPJR4_3Yp5jmK7A5inGOXskDebs7YMdjQzINHjzkP8,46935
9
9
  pygeodesy/clipy.py,sha256=3ysIEWQ89HjvLnSlZm0nZAt9EN5AQxIs1sLLM8yF9zM,27675
10
- pygeodesy/constants.py,sha256=-weWOuHwE-qI6pYRLcTucI0KNcNJm6vPNzxwrJzACKs,19192
10
+ pygeodesy/constants.py,sha256=T9t9hSwJfvPu5zhOPCp5-Z3xLFPo10UBo459TSlO-Xs,19192
11
11
  pygeodesy/css.py,sha256=rPr5EcGm_blVt72h-851ytpVxdPhx1MEqqGs3Ppx3eI,25651
12
12
  pygeodesy/datums.py,sha256=-m9-cvUVOaJ92eeFgc3O54lel3WqnVYcS7o6WCXkNyw,34043
13
13
  pygeodesy/dms.py,sha256=QxiRtyc8QSiW-egm6Mrcrgmi_deWz3YnYwIm82JS4TU,44443
14
14
  pygeodesy/ecef.py,sha256=_yy_TIUGsXmEZ7aRcmchbJwTp7x__edx6EPiS3Xznes,59587
15
15
  pygeodesy/elevations.py,sha256=4FuVcVNb_D09gmcvUlck344N4f7Jms76SIRrdutvKjk,10801
16
- pygeodesy/ellipsoidalBase.py,sha256=olFcHvMeoW8Z_0T-Bn3XOpGGatoluaOZ50Fzm-ByAVg,55126
16
+ pygeodesy/ellipsoidalBase.py,sha256=IDu0-cKGhkCk3Aj16DJXt2gxjGYsFcjSTrvwG5GbATs,55385
17
17
  pygeodesy/ellipsoidalBaseDI.py,sha256=OxbSBntV9xiOgsb-0un0cUYIVoPiIiH-lt3baBkbaS8,38400
18
- pygeodesy/ellipsoidalExact.py,sha256=GnSMNVnSG4VyORMcQZKxpA-R6HA0gWbTBkEIg1qrVaE,16945
19
- pygeodesy/ellipsoidalGeodSolve.py,sha256=CqdNNqdwuUNIwZvYVMsk3rnW0U3KMgEoSQj_VIcFBEI,16665
20
- pygeodesy/ellipsoidalKarney.py,sha256=XIvmSmMt0CGd0LtXxcDHX3KXXR2Mn8cRukefNQErJFU,18720
21
- pygeodesy/ellipsoidalNvector.py,sha256=BbCWTZr9he3ayC8YEtLRXWVJ-g4HqHBuTVJsM33JKhw,30038
22
- pygeodesy/ellipsoidalVincenty.py,sha256=gsUFMKgqMZKT02jDm7TEJ_jSHX8d-KJCz91iCfku5kg,25951
18
+ pygeodesy/ellipsoidalExact.py,sha256=wmIGgZyd0cvjswP4KOeDuEcuagjwQQRRq1cmseRoD-Q,16946
19
+ pygeodesy/ellipsoidalGeodSolve.py,sha256=fAT4b3HXkM6i1W_C0rb4vbSxZqr4c6rS7PIvGF2ad7s,16666
20
+ pygeodesy/ellipsoidalKarney.py,sha256=qvJa8kZ4SgaRR2UbjtkcRxw_CRbwhXoUT4Dn_6DJ6Ag,18721
21
+ pygeodesy/ellipsoidalNvector.py,sha256=rzjFx-y1Z2apUK4yYelcZMYelYFTU-diFGI6o-nxkUk,30039
22
+ pygeodesy/ellipsoidalVincenty.py,sha256=hSQ7s6QGDJSsrZvP7KwM1Q4wJz0YjyFjODF6XPGZ5WQ,25946
23
23
  pygeodesy/ellipsoids.py,sha256=i7piclEb17hYt5wqL7Q0p5qLuRVvz3yonUSUcvmiozc,108005
24
24
  pygeodesy/elliptic.py,sha256=-80MbZvRPk-TeA_ggkfXhjuPv07MzsB4HxNF7gbdhB4,42501
25
- pygeodesy/epsg.py,sha256=oWHX_QVChE5roktAyXUmPmX49XHiryYmXTHxQzrAprE,8222
25
+ pygeodesy/epsg.py,sha256=Vq_M1g7Z0x5Noqsmt6OCQkPdYJj4jpWObtixL5pAjDA,8220
26
26
  pygeodesy/errors.py,sha256=-UnQ1GhkiTR6uBd0z0vd_pFEmjWXlOESRDwMdxY_JD0,30605
27
27
  pygeodesy/etm.py,sha256=y3dAqS-iWnbWzmsu4zB7kryAp_I17XEdzNRRk0klTww,44696
28
- pygeodesy/fmath.py,sha256=EOHD0uZ8VULZtXAk8tVeuPaSTozPDCN8GJcemCo-jqg,33709
28
+ pygeodesy/fmath.py,sha256=REWFTf7IxoW3OhVcKg5M0Lpdx7cj3bDkaGDOb9VvNPE,33726
29
29
  pygeodesy/formy.py,sha256=PrAlrSASKIXeFvawueyo7kRC-UJJSEQR3APhirHqhtE,75032
30
30
  pygeodesy/frechet.py,sha256=F6TYbOEYSOFcll6nvp4GhqafUWXh1umAKb1QaMYQtuM,34372
31
31
  pygeodesy/fstats.py,sha256=4eIhzSCMnn-2nVP3Q-5cCWCI-rvH0CE-zkk9hp3Pvn8,28642
32
- pygeodesy/fsums.py,sha256=VbI_1i-0BCeRpPnG58EDPVKossR7JORZzFXEspoaiJU,80839
33
- pygeodesy/gars.py,sha256=OLsBs8rkOeehVhO1Rqqip0wxxfaxrKpF8QyuMK3V1_Y,11776
32
+ pygeodesy/fsums.py,sha256=YEPE4vT24Y-6gTuvm2tsFD0W1EtXqTUHn3BtfCm3Mm4,80841
33
+ pygeodesy/gars.py,sha256=KRlyZUv1euEl7ZkDYSZG913GAfFMRG2m2hp37ObYY_Y,11829
34
34
  pygeodesy/geodesici.py,sha256=rbHsTKnne7atLGGumPOm7HPogM_ugKnohFmY6uSft6g,74966
35
35
  pygeodesy/geodesicw.py,sha256=oEs96Epw839BH3rVpxVdpXuQRBudbOftUsSBUid8fcc,28710
36
- pygeodesy/geodsolve.py,sha256=M1kU9HOKnvf8agv_V4fN0QcNh40N6dExuCd0pPTKsoM,23540
37
- pygeodesy/geohash.py,sha256=EyssZKlyxoySV4wbp8Zy2rDETuq-J7bwcQndv0iUMcY,39848
38
- pygeodesy/geoids.py,sha256=UstNCTde42mSxlu6JHyxIX8V425QP2pnPb__ZkjB7cc,80761
36
+ pygeodesy/geodsolve.py,sha256=_Vlb1c3j8n7dW99AinJ2HA_DiV4YnlRjbBY7Ha8AvEk,23553
37
+ pygeodesy/geohash.py,sha256=CHJUhvV26PLpjkaTwF4fS42ZRSSsnpH2zyGvadPxqG4,40201
38
+ pygeodesy/geoids.py,sha256=EWKfkmdl2GSL0eQCr79ndDwSGXYOPChGokxocCy7YuM,82371
39
39
  pygeodesy/hausdorff.py,sha256=-aKtRbMefDSoIk4V3wCvNrXPZ7Bqk1P6-XuGuI7o8Zc,34770
40
- pygeodesy/heights.py,sha256=5k5p73UNsAk6uFRDBUkh2lIc1EZTqiG9ViUCcoQnlxI,43244
41
- pygeodesy/internals.py,sha256=NiubVptqyoPuWiyB9ma8ApXbMbzrzCiw9IqToPg5AlM,20751
42
- pygeodesy/interns.py,sha256=kReVkCWA_rw8GyaYFVRI9dfdXu7MF9nD1MgoXsdsK7I,23273
40
+ pygeodesy/heights.py,sha256=Gv3b1xC7I0tBvTO-DdmWVW8A3ZV3RKxY3jveUUZso38,42909
41
+ pygeodesy/internals.py,sha256=za7RSqQ9Vbgx-cpjrtVE-GKsZpS8zym-YYomhGk8tSk,21345
42
+ pygeodesy/interns.py,sha256=USTdoOChgxRk9nITMBRMC9pgtrui84aISS3KYwSIYMk,23221
43
43
  pygeodesy/iters.py,sha256=xPH0ytomvJeKHu717Fjzi3QbRrEikO6n7vqkY_IDz1k,20311
44
44
  pygeodesy/karney.py,sha256=y9xMgJX0W0tLrQQnO6c9-It7QgDSOcd4Irvs2D68vBI,38035
45
45
  pygeodesy/ktm.py,sha256=EJ52Llx5DPFNNl2DEH8rL1-k955qOxYZLAg4-UpnlbA,27246
46
- pygeodesy/latlonBase.py,sha256=jyL5Eqg1BWYmOrHG4GAFjL3U5iADJdv_QEI-AHK-hz0,78949
47
- pygeodesy/lazily.py,sha256=Fbb3XltvdbSTqhM1mTHrK9qTFt8a3JUQitvuPYxpCr4,47153
46
+ pygeodesy/latlonBase.py,sha256=kCK6IcVg4oeGPYkIU0rgKbZLCRo36wC9NtY5OKBlpeQ,79106
47
+ pygeodesy/lazily.py,sha256=LwXhg41ElZ0Qpx7y0nYatcsP_1APTfpsOPaeEnjXjA8,47195
48
48
  pygeodesy/lcc.py,sha256=oDooTzFHnqsMtSKmmmfEbypHpdlPltfo7Mt0pAO4-_A,25669
49
- pygeodesy/ltp.py,sha256=JhEhn5uM0OW9xeEFdVbfBhI7LQkPglvFqMlbBzgqOUg,50766
50
- pygeodesy/ltpTuples.py,sha256=S03fH1aAzQbFEB-ig-nGRi2NXHkiSMuL_ugR3ytd_5A,58331
49
+ pygeodesy/ltp.py,sha256=ZMdfJHLKeDHSoymmjWfoAZTtrdoADf0O6WccRf53L2w,50745
50
+ pygeodesy/ltpTuples.py,sha256=oNTxtjxmHveMDQvPdQCHl-JzSJJGb1jFRrF8SEG_Ojw,58480
51
51
  pygeodesy/mgrs.py,sha256=w50bvM3qDtHDBDBRQ_EgZnPn7vxVXgoFnleeZgefkVk,29679
52
- pygeodesy/named.py,sha256=T0LPPhCKJFu2S5IaQmUUbwTS21JbXmkHsvKRgTpT2Nk,52267
53
- pygeodesy/namedTuples.py,sha256=UDmL4kCihvf8tIUVXzGzRLzL_1BLuyqm04pite6YUuk,28495
52
+ pygeodesy/named.py,sha256=CLaiCzPKiua3E4xMD8jkZna2pIHWPXUrmRSzFgU1YRo,52303
53
+ pygeodesy/namedTuples.py,sha256=e0rV1Zb2tbx8fztXcSkUFsRTmZtye8B5i_Hi4vBUndU,28758
54
54
  pygeodesy/nvectorBase.py,sha256=rClYu26Bof9DsM1F60i0eccktNo8xYA_vkThwoY7N4o,28644
55
- pygeodesy/osgr.py,sha256=O8mLlmnQkcyXU4xczLGD1zhSyt8RQ3EsXctUnCIjO8U,30819
56
- pygeodesy/points.py,sha256=GirmbiqjD7Q0Z4SDySQO__Jgun-i8vMdJ81U2Kz8V0w,64408
55
+ pygeodesy/osgr.py,sha256=3Qon_oWuVrIb1vYnd3ae3L5MDkjp_tngyVdiYHuL4to,30821
56
+ pygeodesy/points.py,sha256=e8ri5Pu5snpN4P6pPbGxmW_yx4-ApD9mOBuR0REoflA,64409
57
57
  pygeodesy/props.py,sha256=2vQD2PoHy1f7osxEf9H0hNvg7gDPd0t8rCy-EuezcI4,23725
58
- pygeodesy/resections.py,sha256=nkfBxYrsEdyq2JqAbPrRWKplJBzFkIXLvEZGB4gPu_A,43550
59
- pygeodesy/simplify.py,sha256=NybC-pfze0ObEm4ZCz6ZQrjJlQ-QyA83E6mSJqCuKq4,25223
58
+ pygeodesy/resections.py,sha256=fFthuI9EoO4WdY25Y_rCDN56gz2mPFsUypR3oGlh8Ks,43556
59
+ pygeodesy/simplify.py,sha256=vkOtO478sOjZHZBuSFvCaRh72qSDQuzXLQpMK1LKyYI,25232
60
60
  pygeodesy/solveBase.py,sha256=oI_-FFjSPI1_yQ598hF6HFKUa4tLsAfbnWtKoQ-TJgE,19206
61
- pygeodesy/sphericalBase.py,sha256=YvjMZmmfy9pZeKHbY-ca0oi-Jy-OxsG9dhefy5LTjRA,32237
61
+ pygeodesy/sphericalBase.py,sha256=bDVuArfePzqcothiTTkyisUGrMDTallXKROjihotcn8,32239
62
62
  pygeodesy/sphericalNvector.py,sha256=MiWcCy5CdvXsCa3963GeUMEnSYGhBiXzkoAEX_tGX4Q,56952
63
- pygeodesy/sphericalTrigonometry.py,sha256=Jf3FUUYEWXbNkiagr0HyMJ6E-cNghnTjcdgntTm28RE,64076
64
- pygeodesy/streprs.py,sha256=xudQ6zi5jFT_CmstSPysjxpZKyLBQNkUk1ETh0uvQ04,23030
63
+ pygeodesy/sphericalTrigonometry.py,sha256=F84lPOSLj4Z2-f8xMjpqvTISuBpsjFwdF8fkuaEi5Hs,64077
64
+ pygeodesy/streprs.py,sha256=1szfCzFlVgsyJ0H_QFGtzyMfOJpyIZNfj34qvWNACM4,23041
65
65
  pygeodesy/trf.py,sha256=CRFHmu0lFNtc41fddXavEkHmgnTFWEqR4RTFodcFKsw,119022
66
- pygeodesy/triaxials.py,sha256=BirxUH-heFmFslT9E7bgOYrKyGFPW5BMnYkiFlhD7j0,62723
67
- pygeodesy/units.py,sha256=KHtejDr2I8EcWNBdupdyCkrjnjZIY3NIM1P5ghMaBBA,35270
68
- pygeodesy/unitsBase.py,sha256=yT7dgfwxtd1hHEn02NwPAdStsVWDfPH-Qdfrhvje7Yw,14057
66
+ pygeodesy/triaxials.py,sha256=ZFcGukYKd5z-N18MWVTiu2iuVl3NmYmkzaz63DcOxAQ,62555
67
+ pygeodesy/units.py,sha256=gHN-uzsOwIYjyhtWs0th0VHNY-fOiUiZo9G1cZi0oXg,35272
68
+ pygeodesy/unitsBase.py,sha256=ZZ-VDntCOTjSerQJf9aaLE_J0lozrpmUhynRBaCtg24,14060
69
69
  pygeodesy/ups.py,sha256=zapIvzoVuj_FDGC6sr8O8ynPhfqXwUg-EFCVnJdM9Eo,23329
70
70
  pygeodesy/utily.py,sha256=Zb6L9unzHHhp67znmQLLdizvyX6p4eczR1PDtcyWH-s,36189
71
71
  pygeodesy/utm.py,sha256=lCp7mNEaJNrAYnbdPaNUKkhbsX_GdssTEkp68uYdMLI,31091
72
72
  pygeodesy/utmups.py,sha256=g2Z_aEOt6fhV9f4fASlW4_K_O_P4zBsBbWfQV11mIKo,13196
73
- pygeodesy/utmupsBase.py,sha256=TJJeHSASjggUpzdpxwrOTH1tfHvDBxly47GJL27D8zY,18729
74
- pygeodesy/vector2d.py,sha256=zJq5PB777_mFJpKD-rt_T0Vm4SNbVwF7pc3KxX8uCT8,34994
75
- pygeodesy/vector3d.py,sha256=uDNnYSj4BL_Nec6SkyxXDbYaNjvI15HQX0xh25dRLI8,44883
76
- pygeodesy/vector3dBase.py,sha256=Om0Uq1zgjuJ6slj12KiFus_tobjYTPxgVZejNd0YzFI,35729
77
- pygeodesy/webmercator.py,sha256=stO_thswe_D4uxXWH43YWSN6-WWWpv_uIuOwvBIp8Ug,14932
78
- pygeodesy/wgrs.py,sha256=SN5L1t-T-GsIFwhI99pbB5EPjOsKq_uP8YXshEqvcrA,15456
73
+ pygeodesy/utmupsBase.py,sha256=S4s1Sehj9jSMy-XRxwtwVstG3QhyVt924V0FHu0cPIk,18730
74
+ pygeodesy/vector2d.py,sha256=O9a3uRIREL2k7G-pnpuacjBcAlKg75MnokjtfJB-nBs,39659
75
+ pygeodesy/vector3d.py,sha256=5oqlXXsm_YNGEMkVyKfmyp3qdMRxm-gzlK9V0_EK9hE,42687
76
+ pygeodesy/vector3dBase.py,sha256=UOy6W-r8nTZTOMvxUgFQN6cFQo9H4zw0efqtcSpyy8s,36154
77
+ pygeodesy/webmercator.py,sha256=fFQtTxIsjOE35_nX_mAgFv1Eov7AdcsCBjT2ONm3qmI,14934
78
+ pygeodesy/wgrs.py,sha256=6dO31uMKF-t-uQz58hdutilE2A5msOs5Bybq5Uq3qgk,15453
79
79
  pygeodesy/auxilats/_CX_4.py,sha256=U41njj8Pu8cHMGuoUUVA20QIvRJAq-VGCnyoKJl0Ylo,8662
80
80
  pygeodesy/auxilats/_CX_6.py,sha256=x4hrHxunjqqkEsZbVW1dyn3R5mR8EWYOuX77RzDEyh4,14856
81
81
  pygeodesy/auxilats/_CX_8.py,sha256=t-OO48t4cCOsOgMi1FoyPw2DQqybVZFsgQMqAYP-jKY,25304
@@ -83,7 +83,7 @@ pygeodesy/auxilats/__init__.py,sha256=YNp41rRC5DmAhBx4RPqoqh4yxD9Vjf9Wk_USwqeZYc
83
83
  pygeodesy/auxilats/__main__.py,sha256=Vuj1YSp1LV0zejVzi6EYauka1Dv8kwOHI_aeHxQEVYk,2899
84
84
  pygeodesy/auxilats/auxAngle.py,sha256=nr-su1loEbv1uVxg7_cEjH0M1DLyodsulPfq4NVT5kY,16745
85
85
  pygeodesy/auxilats/auxDLat.py,sha256=3sq7Wc-ykpVbldNh10IZ3tIlJ7DcQFDlmZ4nOhJEgo0,10969
86
- pygeodesy/auxilats/auxDST.py,sha256=6rFoF2TmFnJZ2KR8sbYERqruovWkS1LMMGwiU6TgAtw,10467
86
+ pygeodesy/auxilats/auxDST.py,sha256=BSHR0M3hQBR1KjF_BUJHrNzGXr2PblYXUQsMD5L1Kcc,10468
87
87
  pygeodesy/auxilats/auxLat.py,sha256=QeTx8dqov1NwNSEam9VC_wq36nRCUpbJpY4hH1NvyNg,32493
88
88
  pygeodesy/auxilats/auxily.py,sha256=evkD4NGJPGdy3QtP7zI76IY2uDTGc1YjsVG4-BwzZIg,8235
89
89
  pygeodesy/deprecated/__init__.py,sha256=cBYqbh5Njkd5SnaJDaMUP6PL66HfLWii_JoLjnKfnP4,2815
@@ -102,16 +102,16 @@ pygeodesy/geodesicx/_C4_27.py,sha256=bPbj2Ckrn9WJglm3SNTXyMkULNwANM0tCQ-LKxP1L58
102
102
  pygeodesy/geodesicx/_C4_30.py,sha256=QZO8p971ztJwDGLOaJYgIhklztz9GlqbtS-xRP_E7o4,201964
103
103
  pygeodesy/geodesicx/__init__.py,sha256=4qAIrE-cnOvi1B38iK-52PB2BpB1zxsVYEryHm4QTJk,2478
104
104
  pygeodesy/geodesicx/__main__.py,sha256=JnKrYmg1q9J5wRRqUy-dQ9abj2-2jpWtrolMMaFfWiY,3176
105
- pygeodesy/geodesicx/gx.py,sha256=ovPbV2kIR7rtoAVUxm4PXNUKUTbkzulNyqSi8bQpGQU,60595
106
- pygeodesy/geodesicx/gxarea.py,sha256=-Kwe6spe2MSQbeLFDd6UN2NOi4JOjYhHAEzonOU3u4A,19409
105
+ pygeodesy/geodesicx/gx.py,sha256=yeNpMQbw_uWfs4KOQX8RMAQt6WNsG3zsGgmZRVgbQIk,60612
106
+ pygeodesy/geodesicx/gxarea.py,sha256=Yo2kj6IhrFWHHe3D52_5AASNaGBoujclG8NBBmPGCZA,19422
107
107
  pygeodesy/geodesicx/gxbases.py,sha256=Awt9zc1lyPS0vp4df2u4H_rhMeFu1pJaZPhb1iMoc-Q,5693
108
108
  pygeodesy/geodesicx/gxline.py,sha256=zNQF8lz9caHZlsUcL8NfjG02KIza39Q6Qd6XizDp_UI,27537
109
109
  pygeodesy/rhumb/__init__.py,sha256=kTuNSKiiQyXvQdYc5KUd5admuKJ2QmDCWQwkIobnM-w,2207
110
110
  pygeodesy/rhumb/aux_.py,sha256=lOjpEU3Pe2I5DwC933UCf-SW73l5NMuDACeZhbVs3lE,16657
111
111
  pygeodesy/rhumb/bases.py,sha256=awpP60K6EOzS753oXM-h9S6paS6FwoCnco8Zt8n81jY,54162
112
112
  pygeodesy/rhumb/ekx.py,sha256=JsmdCatWKqsffF8jCh4HDu5IKt_kHq1qUdmP1LMuofY,24044
113
- pygeodesy/rhumb/solve.py,sha256=3bzvHfvHtgq_rc7iiTL6h7yjtdGNutvJUYn9K9MpFKM,24046
114
- PyGeodesy-24.8.4.dist-info/METADATA,sha256=3DSSgW62gsowGJvtr9xL2w1tC5u_oy-VgPxAhOdwq1g,19739
115
- PyGeodesy-24.8.4.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
116
- PyGeodesy-24.8.4.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
117
- PyGeodesy-24.8.4.dist-info/RECORD,,
113
+ pygeodesy/rhumb/solve.py,sha256=d4RujlW8B7BFAHlrwfj2Bup-uXZZTpgKWgI2JJBqUGc,24059
114
+ PyGeodesy-24.8.24.dist-info/METADATA,sha256=UTCfv5UAppB-IyUdVou09q_x3lSpIdeVE-_djSIMk6I,19773
115
+ PyGeodesy-24.8.24.dist-info/WHEEL,sha256=fS9sRbCBHs7VFcwJLnLXN1MZRR0_TVTxvXKzOnaSFs8,110
116
+ PyGeodesy-24.8.24.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
117
+ PyGeodesy-24.8.24.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: bdist_wheel (0.44.0)
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-2022}
10
+ Transcoded from U{JavaScript originals<https://GitHub.com/ChrisVeness/geodesy>} by I{Chris Veness (C) 2005-2024}
11
11
  and from several U{C++ classes<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>} by I{Charles F. F.
12
- Karney (C) 2008-2023} and published under the same U{MIT License<https://OpenSource.org/licenses/MIT>}**.
12
+ 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}}
@@ -17,7 +17,7 @@ and a geocentric B{C{Cartesian}} class with methods and functions to compute dis
17
17
  forward and reverse azimuth, initial and final bearing, intermediate and nearest points, intersections of geodesic,
18
18
  great circle and rhumb lines, circle intersections and secants, U{3-point resections
19
19
  <https://WikiPedia.org/wiki/Position_resection_and_intersection>}, triangulation, trilateration (by intersection,
20
- by overlap and in 3d), conversions and unrolling, among other things. For more information and further details see
20
+ by overlap and in 3-D), conversions and unrolling, among other things. For more information and further details see
21
21
  the U{documentation<https://mrJean1.GitHub.io/PyGeodesy>}, the descriptions of U{Latitude/Longitude
22
22
  <https://www.Movable-Type.co.UK/scripts/latlong.html>}, U{Vincenty
23
23
  <https://www.Movable-Type.co.UK/scripts/latlong-vincenty.html>} and U{Vector-based
@@ -41,12 +41,11 @@ Frames) and modules to encode and decode U{EPSG<https://EPSG.org>}, U{Geohashes
41
41
  <https://WikiPedia.org/wiki/World_Geographic_Reference_System>} and U{Garefs (GARS)
42
42
  <https://WikiPedia.org/wiki/Global_Area_Reference_System>}.
43
43
 
44
- Other modules provide U{Albers equal-area<https://GeographicLib.SourceForge.io/
45
- C++/doc/classGeographicLib_1_1AlbersEqualArea.html>} projections, U{equidistant
46
- <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>}
47
- and other I{azimuthal} projections, Lambert I{conformal conic} projections and
48
- positions, functions to clip paths or polygons of C{LatLon} points using the
49
- U{Cohen-Sutherland<https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm>},
44
+ Other modules provide U{Albers equal-area
45
+ <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html>} projections, U{equidistant
46
+ <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>} and other I{azimuthal}
47
+ projections, Lambert I{conformal conic} projections and positions, functions to clip paths or polygons of C{LatLon}
48
+ points using the U{Cohen-Sutherland<https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm>},
50
49
  U{Forster-Hormann-Popa<https://www.ScienceDirect.com/science/article/pii/S259014861930007X>},
51
50
  U{Greiner-Hormann<http://www.inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf>},
52
51
  U{Liang-Barsky<https://www.CS.Helsinki.FI/group/goa/viewing/leikkaus/intro.html>} and
@@ -123,7 +122,8 @@ C{epydoc --html --no-private --no-source --name=PyGeodesy --url=... -v pygeodesy
123
122
  Tests
124
123
  =====
125
124
 
126
- The tests ran with Python 3.13.0b4, Python 3.12.4 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0,
125
+ The tests ran with Python 3.13.0rc1, Python 3.12.5 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0,
126
+ U{numpy<https://PyPI.org/project/numpy>} 2.1.0, U{scipy<https://PyPI.org/project/scipy>} 1.14.1,
127
127
  U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3,
128
128
  U{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3 and
129
129
  U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3),
@@ -138,19 +138,19 @@ U{numpy<https://PyPI.org/project/numpy>} 1.16.6, U{scipy<https://PyPI.org/projec
138
138
  U{GeoConvert<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3,
139
139
  U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3,
140
140
  U{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3 and
141
- U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3), all in 64-bit on macOS 14.5 Sonoma.
141
+ U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.3), all in 64-bit on macOS 14.6.1 Sonoma.
142
142
 
143
143
  All tests ran with and without C{lazy import} for Python 3 and with command line option C{-W default} and
144
144
  env variable C{PYGEODESY_WARNINGS=on} for all Python versions. The results of those tests are included in
145
145
  the distribution files.
146
146
 
147
- Test coverage has been measured with U{coverage<https://PyPI.org/project/coverage>} 7.6.0 using Python 3.12.4,
147
+ Test coverage has been measured with U{coverage<https://PyPI.org/project/coverage>} 7.6.0 using Python 3.12.5,
148
148
  3.11.5 and 3.10.8. The complete coverage report in HTML and a PDF summary are included in the distribution files.
149
149
 
150
- Python 3.13.0b4, 3.12.4, 3.11.5 and 3.10.8 run on Apple M1 Silicon (C{arm64}), I{natively}. Python 2.7.18 runs on
150
+ Python 3.13.0rc1, 3.12.5, 3.11.5 and 3.10.8 run on Apple M1 Silicon (C{arm64}), I{natively}. Python 2.7.18 runs on
151
151
  Intel (C{x86_64}) or Intel I{emulation} ("C{arm64_x86_64}", see function L{machine<pygeodesy.machine>}).
152
152
 
153
- The tests also ran with Python 3.12.4 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Debian
153
+ The tests also ran with Python 3.12.5 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Debian
154
154
  12<https://Cirrus-CI.com/github/mrJean1/PyGeodesy/master>} in 64-bit only, with Python 3.12.3 (and
155
155
  U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Windows
156
156
  2019Server<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>} in 64-bit only and with Python 2.7.18 (and
@@ -160,7 +160,7 @@ U{geographiclib<https://PyPI.org/project/geographiclib>} 1.52) on U{Windows
160
160
  A single-File and single-Directory application with C{pygeodesy} has been bundled using U{PyInstaller
161
161
  <https://PyPI.org/project/pyinstaller>} 3.4 and 64-bit Python 3.7.3 on macOS 10.13.6 High Sierra.
162
162
 
163
- Previously, the tests were run with Python 3.12.0-3, 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
163
+ Previously, the tests were run with Python 3.12.0-4, 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
164
164
  <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
165
  2.7.13) (and U{geographiclib <https://PyPI.org/project/geographiclib>} 1.52, U{numpy<https://PyPI.org/project/numpy>}
166
166
  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,7 +169,7 @@ Previously, the tests were run with Python 3.12.0-3, 3.11.2-4, 3.10.1-7, 3.9.6,
169
169
  1.16.5, 1.16.2, 1.15.2, 1.14.0, 1.13.1, 1.8.0rc1 or 1.6.2 and U{scipy<https://PyPI.org/project/scipy>} 1.5.0), U{PyPy
170
170
  <https://PyPy.org>} 7.3.0 (Python 2.7.13 and 3.6.9), U{PyPy<https://PyPy.org>} 6.0.0 (Python 2.7.13 and 3.5.3)
171
171
  and U{Intel-Python<https://software.Intel.com/en-us/distribution-for-python>} 3.5.3 (and U{numpy
172
- <https://PyPI.org/project/numpy>} 1.11.3) on macOS 14.0-4.1 Sonoma, 13.0-5.2 Ventura, 12.1-6 Monterey, 11.0-5.2-6.1
172
+ <https://PyPI.org/project/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
173
173
  Big 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
174
174
  10.11 El Capitan and/or MacOS X 10.10 Yosemite, with U{Pythonista<https://OMZ-Software.com/pythonista>}3.2 (with
175
175
  geographiclib 1.50 or 1.49 and numpy 1.8.0) on iOS 14.4.2, 11.4.1, 12.0-3 on iPad4, iPhone6, iPhone10 and/or
@@ -184,7 +184,7 @@ All Python source code has been statically U{checked<https://GitHub.com/ActiveSt
184
184
  Python/546532_PyChecker_postprocessor>} with U{PyChecker<https://PyPI.org/project/pychecker>}, U{PyFlakes
185
185
  <https://PyPI.org/project/pyflakes>}, U{PyCodeStyle<https://PyPI.org/project/pycodestyle>} (formerly Pep8) and
186
186
  U{McCabe<https://PyPI.org/project/mccabe>} using Python 2.7.18 and with U{Flake8<https://PyPI.org/project/flake8>}
187
- using Python 3.11.5, both in 64-bit on macOS 14.5 Sonoma.
187
+ using Python 3.11.5, both in 64-bit on macOS 14.6.1 Sonoma.
188
188
 
189
189
  For a summary of all I{Karney}-based functionality in C{pygeodesy}, see module U{karney
190
190
  <https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.karney-module.html>}.
@@ -338,7 +338,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.}
338
338
  @var S_MIN: Minutes symbol, default C{"′"} aka I{PRIME}
339
339
  @var S_SEC: Seconds symbol, default C{"″"} aka I{DOUBLE_PRIME}
340
340
  @var S_RAD: Radians symbol, default C{""} aka L{NN<pygeodesy.NN>}
341
- @var S_DMS: If C{True} include, otherwise cancel all DMS symbols, default C{True}.
341
+ @var S_DMS: If C{True}, include, otherwise cancel all DMS symbols, default C{True}.
342
342
  @var S_SEP: Separator between C{deg°|min′|sec″|suffix}, default C{""} aka L{NN<pygeodesy.NN>}
343
343
 
344
344
  @var Conics: Registered, predefined conics (C{enum-like}).
@@ -491,10 +491,10 @@ if _init__all__ and not _lazy_import2: # import and set __all__
491
491
  # from pygeodesy.ellipsoidalGeodSolve import * # PYCHOK __(_)__
492
492
  # from pygeodesy.ellipsoidalKarney import * # PYCHOK __(_)__
493
493
  # from pygeodesy.ellipsoidalNvector import * # PYCHOK __(_)__
494
- from pygeodesy.ellipsoidalVincenty import VincentyError # PYCHOK lazily
494
+ from pygeodesy.ellipsoidalVincenty import * # PYCHOK __(_)__
495
495
  from pygeodesy.ellipsoids import * # PYCHOK __all__
496
496
  from pygeodesy.elliptic import * # PYCHOK __all__
497
- from pygeodesy.epsg import Epsg, EPSGError # PYCHOK lazily
497
+ from pygeodesy.epsg import * # PYCHOK __all__
498
498
  from pygeodesy.etm import * # PYCHOK __all__
499
499
  from pygeodesy.errors import * # PYCHOK __all__
500
500
  from pygeodesy.fmath import * # PYCHOK __all__
@@ -502,7 +502,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
502
502
  from pygeodesy.frechet import * # PYCHOK __all__
503
503
  from pygeodesy.fstats import * # PYCHOK __all__
504
504
  from pygeodesy.fsums import * # PYCHOK __all__
505
- from pygeodesy.gars import Garef, GARSError # PYCHOK lazily
505
+ from pygeodesy.gars import * # PYCHOK __all__
506
506
  from pygeodesy.geodesici import * # PYCHOK __all__
507
507
  from pygeodesy.geodesicw import * # PYCHOK __all__
508
508
  from pygeodesy.geodesicx import * # PYCHOK __all__
@@ -549,7 +549,7 @@ if _init__all__ and not _lazy_import2: # import and set __all__
549
549
  from pygeodesy.vector3d import * # PYCHOK __all__
550
550
  from pygeodesy.vector3dBase import * # PYCHOK __(_)__ INTERNAL
551
551
  from pygeodesy.webmercator import * # PYCHOK __all__
552
- from pygeodesy.wgrs import Georef, WGRSError # PYCHOK lazily
552
+ from pygeodesy.wgrs import * # PYCHOK __all__
553
553
 
554
554
  def _all(globalocals):
555
555
  from pygeodesy.internals import _headof, _DOT_ # PYCHOK expected
@@ -595,7 +595,7 @@ else:
595
595
 
596
596
  from pygeodesy.internals import _version2, _DOT_ # PYCHOK import
597
597
  # from pygeodesy.interns import _DOT_ # from .internals
598
- __version__ = '24.08.04'
598
+ __version__ = '24.08.24'
599
599
  # see setup.py for similar logic
600
600
  version = _DOT_(*_version2(__version__, n=3))
601
601
 
@@ -24,7 +24,7 @@ from pygeodesy.karney import _2cos2x, _ALL_DOCS
24
24
  from pygeodesy.props import property_RO, property_ROver
25
25
 
26
26
  __all__ = ()
27
- __version__ = '24.07.25'
27
+ __version__ = '24.08.13'
28
28
 
29
29
 
30
30
  class AuxDST(object):
@@ -92,7 +92,7 @@ class AuxDST(object):
92
92
 
93
93
  @arg data: Elements DST-III[0:N+1] or DST-IV[0:N] (C{float}[])
94
94
  with DST_III[0] = 0.
95
- @arg cIV: If C{True} DST-IV, otherwise DST-III.
95
+ @arg cIV: If C{True}, DST-IV, otherwise DST-III.
96
96
 
97
97
  @return: FFTransforms (C{float}[0:N]).
98
98
  '''
pygeodesy/basics.py CHANGED
@@ -37,7 +37,7 @@ from math import copysign as _copysign
37
37
  import inspect as _inspect
38
38
 
39
39
  __all__ = _ALL_LAZY.basics
40
- __version__ = '24.07.06'
40
+ __version__ = '24.08.13'
41
41
 
42
42
  _below_ = 'below'
43
43
  _list_tuple_types = (list, tuple)
@@ -733,7 +733,7 @@ def _xcopy(obj, deep=False):
733
733
  '''(INTERNAL) Copy an object, shallow or deep.
734
734
 
735
735
  @arg obj: The object to copy (any C{type}).
736
- @kwarg deep: If C{True} make a deep, otherwise
736
+ @kwarg deep: If C{True}, make a deep, otherwise
737
737
  a shallow copy (C{bool}).
738
738
 
739
739
  @return: The copy of B{C{obj}}.
@@ -745,7 +745,7 @@ def _xdup(obj, deep=False, **items):
745
745
  '''(INTERNAL) Duplicate an object, replacing some attributes.
746
746
 
747
747
  @arg obj: The object to copy (any C{type}).
748
- @kwarg deep: If C{True} copy deep, otherwise shallow.
748
+ @kwarg deep: If C{True}, copy deep, otherwise shallow (C{bool}).
749
749
  @kwarg items: Attributes to be changed (C{any}).
750
750
 
751
751
  @return: A duplicate of B{C{obj}} with modified
@@ -43,7 +43,7 @@ from pygeodesy.vector3d import Vector3d, _xyzhdlln4
43
43
  # from math import atan2, degrees, fabs, radians, sqrt # from .fmath, .utily
44
44
 
45
45
  __all__ = _ALL_LAZY.cartesianBase
46
- __version__ = '24.07.29'
46
+ __version__ = '24.08.18'
47
47
 
48
48
  _r_ = 'r'
49
49
  _theta_ = 'theta'
@@ -342,9 +342,9 @@ class CartesianBase(Vector3d):
342
342
  I{overriding} this datum (L{Datum}, L{Ellipsoid},
343
343
  L{Ellipsoid2}, L{a_f2Tuple}, L{Triaxial}, L{Triaxial_},
344
344
  L{JacobiConformal} or C{meter}, conventionally).
345
- @kwarg normal: If C{True} the projection is the nearest point on the
345
+ @kwarg normal: If C{True}, the projection is the nearest point on the
346
346
  ellipsoid's surface, otherwise the intersection of the
347
- radial line to the ellipsoid's center and the surface.
347
+ radial line to the ellipsoid's center and surface C{bool}).
348
348
  @kwarg Cartesian_and_kwds: Optional C{B{Cartesian}=None} class to return
349
349
  the I{projection} and additional B{C{Cartesian}} keyword
350
350
  arguments.
@@ -437,7 +437,7 @@ class CartesianBase(Vector3d):
437
437
  # <https://GitHub.com/pbrod/nvector>/src/nvector/core.py>
438
438
  # _equation23 and <https://www.NavLab.net/nvector>
439
439
  E = datum.ellipsoid
440
- x, y, z = self.xyz
440
+ x, y, z = self.xyz3
441
441
 
442
442
  # Kenneth Gade eqn 23
443
443
  p = hypot2(x, y) * E.a2_
@@ -836,7 +836,7 @@ class CartesianBase(Vector3d):
836
836
  # if inverse and d != _WGS84:
837
837
  # raise _ValueError(inverse=inverse, datum=d,
838
838
  # txt_not_=_WGS84.name)
839
- xyz = transform.transform(*self.xyz, inverse=inverse)
839
+ xyz = transform.transform(*self.xyz3, inverse=inverse)
840
840
  c = self.dup(xyz=xyz, datum=datum or self.datum)
841
841
  return c
842
842
 
pygeodesy/constants.py CHANGED
@@ -17,14 +17,14 @@ from pygeodesy.interns import _INF_, _NAN_, _UNDER_
17
17
  # from pygeodesy.streprs import Fmt # from .unitsBase
18
18
  from pygeodesy.unitsBase import Float, Int, Radius, _ALL_LAZY, Fmt
19
19
 
20
- from math import fabs, isinf, isnan, pi as _PI, sqrt
20
+ from math import fabs, isinf, isnan, pi as _pi, sqrt
21
21
  try:
22
22
  from math import inf as _inf, nan as _nan # PYCHOK Python 3+
23
23
  except ImportError: # Python 2-
24
24
  _inf, _nan = float(_INF_), float(_NAN_)
25
25
 
26
26
  __all__ = _ALL_LAZY.constants
27
- __version__ = '24.05.29'
27
+ __version__ = '24.08.18'
28
28
 
29
29
 
30
30
  def _copysign_0_0(y):
@@ -242,7 +242,7 @@ _EPStol = _Float(_EPStol =_EPSqrt * _0_1) # PYCHOK = 1.49011611938e5-09 == sqr
242
242
  _89_999_ = _Float(_89_999_= EPS1 * _90_0) # just below 90.0
243
243
  # <https://Numbers.Computation.Free.FR/Constants/Miscellaneous/digits.html>
244
244
  _1__90 = _Float(_1__90 =_1_0 / _90_0) # PYCHOK = 0.011_111_111_111_111_111_111_111_111_111_111_111_111_111_111_11111
245
- _2__PI = _Float(_2__PI =_2_0 / _PI) # PYCHOK = 0.636_619_772_367_581_343_075_535_053_490_057_448_137_838_582_96182
245
+ _2__PI = _Float(_2__PI =_2_0 / _pi) # PYCHOK = 0.636_619_772_367_581_343_075_535_053_490_057_448_137_838_582_96182
246
246
 
247
247
  _1_16th = _Float(_1_16th =_1_0 / _16_0) # PYCHOK in .ellipsoids, .karney
248
248
  _1_64th = _Float(_1_64th =_1_0 / 64) # PYCHOK in .elliptic, pow(2.0, -6)
@@ -261,14 +261,14 @@ NAN = Float(NAN =_nan) # PYCHOK Not-A-Number, see function L{isnan}, NOT _
261
261
  NEG0 = Float(NEG0=_N_0_0) # PYCHOK NEGative 0.0, see function L{isneg0}, NOT _Float!
262
262
  NINF = Float(NINF=-INF) # PYCHOK Negative INFinity, NOT _Float!
263
263
 
264
- PI = _Float(PI =_PI) # 3.1415_9265_3589_7932_3846_2643_3832_795
265
- PI2 = _Float(PI2 =_PI * _2_0) # PYCHOK Two PI, M{PI * 2} aka I{Tau}
266
- PI_2 = _Float(PI_2 =_PI / _2_0) # PYCHOK Half PI, M{PI / 2}
267
- PI3 = _Float(PI3 =_PI * _3_0) # PYCHOK Three PI, M{PI * 3}
268
- PI3_2 = _Float(PI3_2=_PI * _1_5) # PYCHOK PI and a half, M{PI * 3 / 2}
269
- PI_3 = _Float(PI_3 =_PI / _3_0) # PYCHOK One third PI, M{PI / 3}
270
- PI4 = _Float(PI4 =_PI * _4_0) # PYCHOK Four PI, M{PI * 4}
271
- PI_4 = _Float(PI_4 =_PI / _4_0) # PYCHOK Quarter PI, M{PI / 4}
264
+ PI = _Float(PI =_pi) # 3.1415_9265_3589_7932_3846_2643_3832_795
265
+ PI2 = _Float(PI2 =_pi * _2_0) # PYCHOK Two PI, M{PI * 2} aka I{Tau}
266
+ PI_2 = _Float(PI_2 =_pi / _2_0) # PYCHOK Half PI, M{PI / 2}
267
+ PI3 = _Float(PI3 =_pi * _3_0) # PYCHOK Three PI, M{PI * 3}
268
+ PI3_2 = _Float(PI3_2=_pi * _1_5) # PYCHOK PI and a half, M{PI * 3 / 2}
269
+ PI_3 = _Float(PI_3 =_pi / _3_0) # PYCHOK One third PI, M{PI / 3}
270
+ PI4 = _Float(PI4 =_pi * _4_0) # PYCHOK Four PI, M{PI * 4}
271
+ PI_4 = _Float(PI_4 =_pi / _4_0) # PYCHOK Quarter PI, M{PI / 4}
272
272
 
273
273
  R_MA = _Radius(R_MA=6378137.0) # PYCHOK equatorial earth radius (C{meter}), WGS84, EPSG:3785
274
274
  R_MB = _Radius(R_MB=6356752.3) # PYCHOK polar earth radius (C{meter}), WGS84, EPSG:3785