pygeodesy 24.4.4__py2.py3-none-any.whl → 24.4.18__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {PyGeodesy-24.4.4.dist-info → PyGeodesy-24.4.18.dist-info}/METADATA +6 -6
- {PyGeodesy-24.4.4.dist-info → PyGeodesy-24.4.18.dist-info}/RECORD +40 -40
- pygeodesy/__init__.py +1 -1
- pygeodesy/albers.py +20 -27
- pygeodesy/auxilats/auxLat.py +3 -3
- pygeodesy/azimuthal.py +9 -8
- pygeodesy/deprecated/__init__.py +1 -1
- pygeodesy/deprecated/classes.py +14 -1
- pygeodesy/ecef.py +4 -4
- pygeodesy/ellipsoidalBase.py +2 -3
- pygeodesy/ellipsoids.py +4 -4
- pygeodesy/elliptic.py +27 -26
- pygeodesy/errors.py +27 -28
- pygeodesy/etm.py +3 -3
- pygeodesy/fmath.py +64 -65
- pygeodesy/frechet.py +6 -6
- pygeodesy/fstats.py +3 -4
- pygeodesy/fsums.py +506 -396
- pygeodesy/geodesicw.py +2 -2
- pygeodesy/geodsolve.py +4 -3
- pygeodesy/geoids.py +4 -4
- pygeodesy/hausdorff.py +5 -5
- pygeodesy/heights.py +6 -6
- pygeodesy/latlonBase.py +6 -6
- pygeodesy/lazily.py +3 -3
- pygeodesy/ltp.py +11 -11
- pygeodesy/ltpTuples.py +3 -4
- pygeodesy/named.py +14 -3
- pygeodesy/nvectorBase.py +5 -5
- pygeodesy/osgr.py +24 -24
- pygeodesy/points.py +3 -3
- pygeodesy/resections.py +16 -24
- pygeodesy/rhumb/bases.py +24 -25
- pygeodesy/sphericalNvector.py +6 -6
- pygeodesy/sphericalTrigonometry.py +3 -4
- pygeodesy/triaxials.py +4 -4
- pygeodesy/utmupsBase.py +6 -6
- pygeodesy/vector2d.py +9 -8
- {PyGeodesy-24.4.4.dist-info → PyGeodesy-24.4.18.dist-info}/WHEEL +0 -0
- {PyGeodesy-24.4.4.dist-info → PyGeodesy-24.4.18.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyGeodesy
|
|
3
|
-
Version: 24.4.
|
|
3
|
+
Version: 24.4.18
|
|
4
4
|
Summary: Pure Python geodesy tools
|
|
5
5
|
Home-page: https://GitHub.com/mrJean1/PyGeodesy
|
|
6
6
|
Author: Jean M. Brouwers
|
|
@@ -158,7 +158,7 @@ and McCabe_ using Python 2.7.18 and with Flake8_ using Python 3.11.5, both in 64
|
|
|
158
158
|
|
|
159
159
|
For a summary of all *Karney*-based functionality in ``pygeodesy``, see module karney_.
|
|
160
160
|
|
|
161
|
-
*Last updated: April
|
|
161
|
+
*Last updated: April 18, 2024.*
|
|
162
162
|
|
|
163
163
|
License
|
|
164
164
|
=======
|
|
@@ -181,20 +181,20 @@ DEALINGS IN THE SOFTWARE.
|
|
|
181
181
|
|
|
182
182
|
.. image:: https://Img.Shields.io/pypi/pyversions/PyGeodesy.svg?label=Python
|
|
183
183
|
:target: https://PyPI.org/project/PyGeodesy
|
|
184
|
+
.. image:: https://Img.Shields.io/pypi/v/PyGeodesy.svg?label=PyPI
|
|
185
|
+
:target: https://PyPI.org/project/PyGeodesy
|
|
184
186
|
.. image:: https://Img.Shields.io/appveyor/ci/mrJean1/PyGeodesy.svg?branch=master&label=AppVeyor
|
|
185
187
|
:target: https://CI.AppVeyor.com/project/mrJean1/PyGeodesy/branch/master
|
|
186
188
|
.. image:: https://Img.Shields.io/cirrus/github/mrJean1/PyGeodesy?branch=master&label=Cirrus
|
|
187
189
|
:target: https://Cirrus-CI.com/github/mrJean1/PyGeodesy
|
|
188
190
|
.. image:: https://Img.Shields.io/badge/coverage-95%25-brightgreen
|
|
189
191
|
:target: https://GitHub.com/mrJean1/PyGeodesy/blob/master/testcoverage.pdf
|
|
190
|
-
.. image:: https://Img.Shields.io/pypi/v/PyGeodesy.svg?label=PyPI
|
|
191
|
-
:target: https://PyPI.org/project/PyGeodesy
|
|
192
192
|
.. image:: https://Img.Shields.io/pypi/wheel/PyGeodesy.svg
|
|
193
193
|
:target: https://PyPI.org/project/PyGeodesy/#files
|
|
194
|
-
.. image:: https://img.shields.io/pypi/dm/PyGeodesy
|
|
195
|
-
:target: https://PyPI.org/project/PyGeodesy
|
|
196
194
|
.. image:: https://Img.Shields.io/pypi/l/PyGeodesy.svg
|
|
197
195
|
:target: https://PyPI.org/project/PyGeodesy
|
|
196
|
+
.. image:: https://img.shields.io/pypi/dm/PyGeodesy
|
|
197
|
+
:target: https://PyPI.org/project/PyGeodesy
|
|
198
198
|
|
|
199
199
|
.. _Albers equal-area: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html
|
|
200
200
|
.. _C++ classes: https://GeographicLib.SourceForge.io/C++/doc/annotated.html
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
pygeodesy/LICENSE,sha256=YfgAiyxOwY6P9Kkb1_5XN81nueTLrpb3Ffkv3EuPgFU,1144
|
|
2
|
-
pygeodesy/__init__.py,sha256=
|
|
2
|
+
pygeodesy/__init__.py,sha256=Wx1Zo8hUxl6CV1eZZvLbrQSQ6VSB8mHBTmPqxcG0Mpc,40824
|
|
3
3
|
pygeodesy/__main__.py,sha256=qMFG3caY8ZXWu6uGiemzyT4OqTFZnsFtlxcGCAgkVJw,4637
|
|
4
|
-
pygeodesy/albers.py,sha256=
|
|
5
|
-
pygeodesy/azimuthal.py,sha256=
|
|
4
|
+
pygeodesy/albers.py,sha256=g2AVlpV8JO2AYFCthoIbRC2h1OJqjb9P3hpwF0C3TI8,30994
|
|
5
|
+
pygeodesy/azimuthal.py,sha256=tc4JxgLi-0jzU08m4Bvi-t-kzHXYPeGuzL3j_tyVFUA,50125
|
|
6
6
|
pygeodesy/basics.py,sha256=_BMYLzGKA6OIS3qv25HfHy7MIh0kAbmkzyScb59clUs,28160
|
|
7
7
|
pygeodesy/booleans.py,sha256=HZbwoL-S7Ww9d4C2D1BVqXfmcuqqVpEVSU9_S0uyUyo,74204
|
|
8
8
|
pygeodesy/cartesianBase.py,sha256=I3q29mRdBB3NCDmPoJsJ0QOFfLzkdMWc8X9zG4IwJyA,47264
|
|
@@ -11,65 +11,65 @@ pygeodesy/constants.py,sha256=ypxYsWB6tNAVgrD9QVpukJAPscaLgHtPLqPuot1gUfU,19174
|
|
|
11
11
|
pygeodesy/css.py,sha256=sKXsahUiyruDcUk-tGjA6mxq-xzwBoBKxKo9_b2uBmY,25394
|
|
12
12
|
pygeodesy/datums.py,sha256=gJZPgV4bELZvZ8Sj2zE3MBysVtsLxqsN8zm0xjOKvpo,33851
|
|
13
13
|
pygeodesy/dms.py,sha256=op3MU-59CoJQRdybnu21aVM9wtocd_-XFNAZFqmozSo,44439
|
|
14
|
-
pygeodesy/ecef.py,sha256=
|
|
14
|
+
pygeodesy/ecef.py,sha256=VRoGa8zjGDPFXYr9HZiKS4XwoAI6p4N_ngsHtGipQAo,59703
|
|
15
15
|
pygeodesy/elevations.py,sha256=ZTxzLWHLUrghFI9Fkl0ZGHzdiLDe0y3ImGUsfxFg6Qc,10814
|
|
16
|
-
pygeodesy/ellipsoidalBase.py,sha256=
|
|
16
|
+
pygeodesy/ellipsoidalBase.py,sha256=dqEmBFguS_Q0K95VaBN7oZOVEaxHuicLCrqIuj1QM7w,56639
|
|
17
17
|
pygeodesy/ellipsoidalBaseDI.py,sha256=MSuQI3PlJAHL7gtVy4t0qkm1QP3zeHqbkG4tnMDWDIg,38510
|
|
18
18
|
pygeodesy/ellipsoidalExact.py,sha256=a_2C6S6hGRumavy5giRoC9QAhnjqpujiXyu92od6nKo,16951
|
|
19
19
|
pygeodesy/ellipsoidalGeodSolve.py,sha256=xfNcb70AuPbIiJUqhisIfg6pCQBqXyQffBNuESEGCfU,16833
|
|
20
20
|
pygeodesy/ellipsoidalKarney.py,sha256=FoOsfNf96oHuGa9k4AB42y_UUBuOkh4xMW7PFGF63SA,19246
|
|
21
21
|
pygeodesy/ellipsoidalNvector.py,sha256=vHVKSfR86LnIapGlwl5_uCaEuQGdm0e89mwE6Ay-394,30323
|
|
22
22
|
pygeodesy/ellipsoidalVincenty.py,sha256=Uk93B8GFcMnWiwKUOA84TlLwbBlvzVnsAXAx0cU7cn4,26004
|
|
23
|
-
pygeodesy/ellipsoids.py,sha256=
|
|
24
|
-
pygeodesy/elliptic.py,sha256=
|
|
23
|
+
pygeodesy/ellipsoids.py,sha256=SxMsivNnE9ibUjQGd0d24H0SzoSjh6jfhLWjasOWpao,119946
|
|
24
|
+
pygeodesy/elliptic.py,sha256=XRVpmpdm3hbztM4P-qhWKQizbgsXDUxWujgmOrIpgiQ,42428
|
|
25
25
|
pygeodesy/epsg.py,sha256=ldHoLWqJWR4FUiBVnDTtrI_e7TNjjtr9OkxDlri1g5E,8165
|
|
26
|
-
pygeodesy/errors.py,sha256=
|
|
27
|
-
pygeodesy/etm.py,sha256=
|
|
28
|
-
pygeodesy/fmath.py,sha256=
|
|
26
|
+
pygeodesy/errors.py,sha256=mUaacHJKcSCowlcbzamaBMDqjI2dqsTM5O4ozIITtAk,27233
|
|
27
|
+
pygeodesy/etm.py,sha256=joEhU2lw9ehRv101nRpZvXq8hOYAEzdcYFpif9_obfk,44585
|
|
28
|
+
pygeodesy/fmath.py,sha256=9jjm_QxrQKNtOUxgNk02j-UVMFVjC1cDPaEqXznKgzk,30716
|
|
29
29
|
pygeodesy/formy.py,sha256=Rces4Q5ecED0WVfuI9mQzeyHE54LDowYfI6faBHpyeA,74536
|
|
30
|
-
pygeodesy/frechet.py,sha256=
|
|
31
|
-
pygeodesy/fstats.py,sha256=
|
|
32
|
-
pygeodesy/fsums.py,sha256=
|
|
30
|
+
pygeodesy/frechet.py,sha256=qgee-ISBtT7Ov3rJkcd_t-WeXTbeNoMSQuMa0j3MyQc,33512
|
|
31
|
+
pygeodesy/fstats.py,sha256=r8O2aIknHuoHsW8gZUIY42zpHZy7syHvCB7uCVtPpkc,25559
|
|
32
|
+
pygeodesy/fsums.py,sha256=QjV9B-YGbhFALMPEQMKT8-1j7JFDWnabakAdZDvFsSs,72501
|
|
33
33
|
pygeodesy/gars.py,sha256=fCiWBJ4kOJxPfNOxadX-OzBGDXj7C9g02NuGHiZa_88,11342
|
|
34
|
-
pygeodesy/geodesicw.py,sha256=
|
|
35
|
-
pygeodesy/geodsolve.py,sha256=
|
|
34
|
+
pygeodesy/geodesicw.py,sha256=5yjJ2rLekSsjT7e-Km6v592ZcFlA41flQP_E42jU9Sw,26901
|
|
35
|
+
pygeodesy/geodsolve.py,sha256=3GLI2_4gglzTpZwKchNzAv-XhWFBzWRKjcWsjCC3dvI,21900
|
|
36
36
|
pygeodesy/geohash.py,sha256=HwukecfkWvyfz9LHKfoA-WddQHYot_mB04o0lyWrKyU,32382
|
|
37
|
-
pygeodesy/geoids.py,sha256=
|
|
38
|
-
pygeodesy/hausdorff.py,sha256=
|
|
39
|
-
pygeodesy/heights.py,sha256=
|
|
37
|
+
pygeodesy/geoids.py,sha256=EwZJ50qRXeZb1591N99hnamM_EC2NP6MIhLb5swVHf4,80605
|
|
38
|
+
pygeodesy/hausdorff.py,sha256=LJULGbDop4xqiWeRH5-Uayvk5WVCZQpxK4PCYu4kqSs,34192
|
|
39
|
+
pygeodesy/heights.py,sha256=tjr-5eb8UXn2MAp6-157sb6qxPREFk5dtDjHtBgIgZ8,42528
|
|
40
40
|
pygeodesy/interns.py,sha256=JqIAp_-TOzijDShKSmKIarz009vIXtqfB-JoD8ILvKo,30177
|
|
41
41
|
pygeodesy/iters.py,sha256=CfU365eE9F4oWZbBx0qTEvfodMhpa8rGOepLIv67xF8,20181
|
|
42
42
|
pygeodesy/karney.py,sha256=lYdsSHis8xQJVS1V0F3cphx6Dhgd77xTlMOdVR8MN8I,34994
|
|
43
43
|
pygeodesy/ktm.py,sha256=sCvbLvJItavlruilAyjeZ0sOZx2yJumzGe_UiIVbGi4,27315
|
|
44
|
-
pygeodesy/latlonBase.py,sha256=
|
|
45
|
-
pygeodesy/lazily.py,sha256=
|
|
44
|
+
pygeodesy/latlonBase.py,sha256=LimCMj91J3Q4D_rTu7VN7c63cLL_KzxXagFQfedobmc,77730
|
|
45
|
+
pygeodesy/lazily.py,sha256=4ZxBVj1Yu4Db-dw_e6oxXx7EtDSrgdGBV-ypUefMPGY,48633
|
|
46
46
|
pygeodesy/lcc.py,sha256=yNpmAdOwv3HNh2ZLopF5QtvDokeQYCmnxSc8UFUPHO4,25737
|
|
47
|
-
pygeodesy/ltp.py,sha256=
|
|
48
|
-
pygeodesy/ltpTuples.py,sha256=
|
|
47
|
+
pygeodesy/ltp.py,sha256=8se8dYG7LG__Ru0FoK939DJBF9GCQGeJik_Un1Im8Xw,48609
|
|
48
|
+
pygeodesy/ltpTuples.py,sha256=iKzvDfv33HfmEevjNISUS4c9KXIkiISEkVlQopyKgfY,55769
|
|
49
49
|
pygeodesy/mgrs.py,sha256=GJ-vG54E2zSLtROyqJ_kj8fHH-8jWGf3kVe7gb8993o,28978
|
|
50
|
-
pygeodesy/named.py,sha256=
|
|
50
|
+
pygeodesy/named.py,sha256=2Kg4tv883V80ZVUEgFzDeBmIEMkig_VUbJuufC0lhN0,48009
|
|
51
51
|
pygeodesy/namedTuples.py,sha256=msEYvQKj4oCW35Kx80RpeQXY85A1G0O3GEqsysLaV2M,27288
|
|
52
|
-
pygeodesy/nvectorBase.py,sha256=
|
|
53
|
-
pygeodesy/osgr.py,sha256=
|
|
54
|
-
pygeodesy/points.py,sha256=
|
|
52
|
+
pygeodesy/nvectorBase.py,sha256=WJY5ylZ_HCeM1wGL7ryEecJphEYibp-EAWL0piKlMG8,28766
|
|
53
|
+
pygeodesy/osgr.py,sha256=voC1rbOe4dnS_EjaDaRDRUQ4MoG7puMBEMV6lcAuIBI,31029
|
|
54
|
+
pygeodesy/points.py,sha256=QNAAF0r7iqSXFr_6aQm-wW7f6vU3KusWVhXEMVeVo58,64442
|
|
55
55
|
pygeodesy/props.py,sha256=ZnXRuSOkfkeJY3Of-iT06FNWZkTYgLZQBPBNF6aS0jE,21421
|
|
56
|
-
pygeodesy/resections.py,sha256=
|
|
56
|
+
pygeodesy/resections.py,sha256=nkfBxYrsEdyq2JqAbPrRWKplJBzFkIXLvEZGB4gPu_A,43550
|
|
57
57
|
pygeodesy/simplify.py,sha256=FT3AzXiFjFfvwJ-X2q8iA9cQOUVdBT1vD_BIskM3gK8,25223
|
|
58
58
|
pygeodesy/solveBase.py,sha256=cBe3QQWEaJlPWUlXoiYo1eFMh4z6GDZbQyt8ZiwMfos,16687
|
|
59
59
|
pygeodesy/sphericalBase.py,sha256=sH2WwmY_RL0STyr1OhtCDKvGhO0Ks7o3V-MHLddpiHQ,31944
|
|
60
|
-
pygeodesy/sphericalNvector.py,sha256=
|
|
61
|
-
pygeodesy/sphericalTrigonometry.py,sha256=
|
|
60
|
+
pygeodesy/sphericalNvector.py,sha256=TBs_nid_DTcox7bBegh_Djv4zZRGRY4mH6dd1xIHGms,56963
|
|
61
|
+
pygeodesy/sphericalTrigonometry.py,sha256=Q9qsqzIK43xBken2G8uP9snPXPuBoZ20pMHqbT_IjG0,64216
|
|
62
62
|
pygeodesy/streprs.py,sha256=-29aUO7dYe-YWfTjflljesxGUp7IfEAjk5dJLHWMPVs,23413
|
|
63
63
|
pygeodesy/trf.py,sha256=4gVtF780EEZEqWwMBDe4x1AEkIz3hB8h4l0_0NXWM5U,118903
|
|
64
|
-
pygeodesy/triaxials.py,sha256=
|
|
64
|
+
pygeodesy/triaxials.py,sha256=fkUcWkXkykZNbTq62LcdnEjhNu9q-e2UaSpRotdzuu8,61546
|
|
65
65
|
pygeodesy/units.py,sha256=ofFTYc7mF9wOpfvpYHN83dGszMM18rTdsxfEXVzaIko,38705
|
|
66
66
|
pygeodesy/unitsBase.py,sha256=xRZlNlO7S47Mwy0FGBg_cefvB4fEtWFM5dAE-Nlw-NE,13111
|
|
67
67
|
pygeodesy/ups.py,sha256=07AG-Rb1D4EvmN3g-xk3ZxKzyaNYvOzztcyYbx7t8jc,23229
|
|
68
68
|
pygeodesy/utily.py,sha256=jP82RmCPCVghxTQv4ZRuIS89afmsD-roz2iafHfyHXA,36128
|
|
69
69
|
pygeodesy/utm.py,sha256=0qF5Kjw8Wf9zxGWOaCF-LSweibat-EkHvvmy7dFO_KE,30981
|
|
70
70
|
pygeodesy/utmups.py,sha256=u2hlWSnmZKwR-ApgKw16R9p75sW_yaqQAmbcBUE8Zfg,13007
|
|
71
|
-
pygeodesy/utmupsBase.py,sha256=
|
|
72
|
-
pygeodesy/vector2d.py,sha256=
|
|
71
|
+
pygeodesy/utmupsBase.py,sha256=KetB8R0uRYU6X8nLG3JkBHUr1OfNlChKa0isgvm8Yq8,18807
|
|
72
|
+
pygeodesy/vector2d.py,sha256=IAgmn-9-P6zxh4rond2k0tuf26miVwe-eHqm5f7sWTU,35003
|
|
73
73
|
pygeodesy/vector3d.py,sha256=Q_brX_URZg_Eln01y8G8_NAEuPbbOI_IgO2wBJk1N0U,44970
|
|
74
74
|
pygeodesy/vector3dBase.py,sha256=wJpEcgHlJ5Qu0Us7CKuNDepZQzo6a-RvqZbA2-O4-ko,35583
|
|
75
75
|
pygeodesy/webmercator.py,sha256=1IXiAHBXTm5kMCp5gEI67oBJeRXD7BiPVI7bcRRX1U4,14918
|
|
@@ -82,11 +82,11 @@ pygeodesy/auxilats/__main__.py,sha256=TVN8evCKEzBKdANU5-Ucps8bZySqBTQmEGU4hy_U1c
|
|
|
82
82
|
pygeodesy/auxilats/auxAngle.py,sha256=3tTYEuiX2YmEOmoyqGPYrSN3gLXbcKWKFH1TNt3NqbI,16738
|
|
83
83
|
pygeodesy/auxilats/auxDLat.py,sha256=U3BHF6AkW5--nrwH9whL5wZVIZLH_keRLfUz6c6KBx4,10950
|
|
84
84
|
pygeodesy/auxilats/auxDST.py,sha256=bdNEh3TdABWH7qW6ngZx5SnzDM3B5rtPLvYhvCnFsKc,10497
|
|
85
|
-
pygeodesy/auxilats/auxLat.py,sha256=
|
|
85
|
+
pygeodesy/auxilats/auxLat.py,sha256=U6thEwMEoUm4OFb2_JviEtEn2-nqyVjNbII7oyMf0hM,31282
|
|
86
86
|
pygeodesy/auxilats/auxily.py,sha256=ZiCFedYcr32O6TWQ_dcnwMrc9TgogyuhNSbR77WMDpg,8240
|
|
87
|
-
pygeodesy/deprecated/__init__.py,sha256=
|
|
87
|
+
pygeodesy/deprecated/__init__.py,sha256=ZRGqgwSdvtKSYZdw09-LPuGa_i0jMHWKIwrPG3r1hHs,2815
|
|
88
88
|
pygeodesy/deprecated/bases.py,sha256=nxUtxscAg5cb7HEzTSmPJFafLc9Ad2SL5ovwkYaU5z8,1655
|
|
89
|
-
pygeodesy/deprecated/classes.py,sha256=
|
|
89
|
+
pygeodesy/deprecated/classes.py,sha256=PXgss-2kEu3bzaxvSeVZJGdcRqsdi_6_aRqsESyUQKQ,11662
|
|
90
90
|
pygeodesy/deprecated/consterns.py,sha256=W-rQiw443_zCFEUzjCGykGND-i5P_ghEIyJUSGg7-Nc,1908
|
|
91
91
|
pygeodesy/deprecated/datum.py,sha256=KfuMA64LYGMj1voW2uai2RGcugtWdpvlOL6UHJvpTeQ,1875
|
|
92
92
|
pygeodesy/deprecated/functions.py,sha256=-Ckor43KBiCDa7rbwY5kHvrs5xwuixTlw1TZpNSBgrU,13647
|
|
@@ -106,10 +106,10 @@ pygeodesy/geodesicx/gxbases.py,sha256=vmqPnZGh_k7Fwev9oYoIzAZKdFFOydAXa372pHrzfM
|
|
|
106
106
|
pygeodesy/geodesicx/gxline.py,sha256=gy0RT7DbcAvnSPqNl0FiqYpN00LBuJM-P9KcyasQvhU,27465
|
|
107
107
|
pygeodesy/rhumb/__init__.py,sha256=MbwdmdduXd3fOWuS1mFdgyKBPBf7Ju1DzRf5D8w0Rok,2207
|
|
108
108
|
pygeodesy/rhumb/aux_.py,sha256=W4HkgoHAQz_aWaysfsmOA5010nCGvBfUs2Q-bymnHYU,16660
|
|
109
|
-
pygeodesy/rhumb/bases.py,sha256=
|
|
109
|
+
pygeodesy/rhumb/bases.py,sha256=kzU_Dgt4FNPMgTg5rqbw-HiNpflDPKpmq9jhPbQmR4U,53851
|
|
110
110
|
pygeodesy/rhumb/ekx.py,sha256=lF3tZ-ZY9fPJV8y1kgHW-7EOZCyb3gJr-kR-jj5Fbf8,23871
|
|
111
111
|
pygeodesy/rhumb/solve.py,sha256=NZfwx7xv5UriQs7A0c7ZhoxxVUeAT15UwXK_jtwEXQw,27802
|
|
112
|
-
PyGeodesy-24.4.
|
|
113
|
-
PyGeodesy-24.4.
|
|
114
|
-
PyGeodesy-24.4.
|
|
115
|
-
PyGeodesy-24.4.
|
|
112
|
+
PyGeodesy-24.4.18.dist-info/METADATA,sha256=kwVbSazBaM7cCqqiNZ0-SQbbnG7-Y3vLtmAh_yGMK3s,19366
|
|
113
|
+
PyGeodesy-24.4.18.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
|
|
114
|
+
PyGeodesy-24.4.18.dist-info/top_level.txt,sha256=cEQPatCXzKZqrivpULC5V5fuy9_V_bAwaP_gUGid7pQ,10
|
|
115
|
+
PyGeodesy-24.4.18.dist-info/RECORD,,
|
pygeodesy/__init__.py
CHANGED
pygeodesy/albers.py
CHANGED
|
@@ -22,7 +22,7 @@ from pygeodesy.constants import EPS0, EPS02, _EPSqrt as _TOL, \
|
|
|
22
22
|
from pygeodesy.datums import _ellipsoidal_datum, _WGS84
|
|
23
23
|
from pygeodesy.errors import _ValueError, _xkwds
|
|
24
24
|
from pygeodesy.fmath import hypot, hypot1, sqrt3
|
|
25
|
-
from pygeodesy.fsums import Fsum, fsum1f_
|
|
25
|
+
from pygeodesy.fsums import Fsum, _Fsum1f_, fsum1f_
|
|
26
26
|
from pygeodesy.interns import NN, _COMMASPACE_, _datum_, _gamma_, _k0_, \
|
|
27
27
|
_lat_, _lat1_, _lat2_, _lon_, _name_, _not_, \
|
|
28
28
|
_negative_, _scale_, _SPACE_, _x_, _y_
|
|
@@ -38,7 +38,7 @@ 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.
|
|
41
|
+
__version__ = '24.04.14'
|
|
42
42
|
|
|
43
43
|
_k1_ = 'k1'
|
|
44
44
|
_NUMIT = 8 # XXX 4?
|
|
@@ -54,14 +54,6 @@ def _ct2(s, c):
|
|
|
54
54
|
return c, (s / c)
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
def _Fsum1(a, b, c=_0_0): # floats=True
|
|
58
|
-
'''(INTERNAL) C{Fsum} 1-primed.
|
|
59
|
-
'''
|
|
60
|
-
S = Fsum()
|
|
61
|
-
S._facc_(_1_0, a, b, c, _N_1_0, up=False)
|
|
62
|
-
return S
|
|
63
|
-
|
|
64
|
-
|
|
65
57
|
def _Ks(**name_k):
|
|
66
58
|
'''(INTERNAL) Scale C{B{k} >= EPS0}.
|
|
67
59
|
'''
|
|
@@ -388,12 +380,13 @@ class _AlbersBase(_NamedBase):
|
|
|
388
380
|
|
|
389
381
|
den = hypot(nx, y1) + nrho0 # 0 implies origin with polar aspect
|
|
390
382
|
if den:
|
|
391
|
-
drho =
|
|
383
|
+
drho = _Fsum1f_(x * nx, y_ * nrho0 * _N_2_0, y_ * ny).fover(den / k0)
|
|
392
384
|
# dsxia = scxi0 * dsxi
|
|
393
|
-
t += drho * n0
|
|
385
|
+
t += drho * n0 # k0 below
|
|
394
386
|
d_ = (nrho0 + t) * drho * self._scxi0_ # / (qZ * E.a2)
|
|
395
|
-
|
|
396
|
-
|
|
387
|
+
t_ = txi - d_
|
|
388
|
+
d_ = (txi + t_) * d_ + _1_0
|
|
389
|
+
txi = t_ / (sqrt(d_) if d_ > EPS02 else EPS0)
|
|
397
390
|
|
|
398
391
|
ta = self._tanf(txi)
|
|
399
392
|
lat = atan1d(s * ta)
|
|
@@ -431,7 +424,7 @@ class _AlbersBase(_NamedBase):
|
|
|
431
424
|
e21 = E.e21
|
|
432
425
|
e22 = E.e22 # == e2 / e21
|
|
433
426
|
tol = _tol(_TOL0, ta0)
|
|
434
|
-
_Ta02 = Fsum(ta0).
|
|
427
|
+
_Ta02 = Fsum(ta0).fsum2f_
|
|
435
428
|
_fabs = fabs
|
|
436
429
|
_fsum1 = fsum1f_
|
|
437
430
|
_sqrt = sqrt
|
|
@@ -487,11 +480,11 @@ class _AlbersBase(_NamedBase):
|
|
|
487
480
|
(ca2, sa2, ta2, scb22))
|
|
488
481
|
|
|
489
482
|
dsxi = ((esa12 / esa1_2) + _DatanheE(sa2, sa1, E)) * dsn_2 / self._qx
|
|
490
|
-
C =
|
|
483
|
+
C = _Fsum1f_(sxi * dtb12 / dsxi, scb22, scb12).fover(scb22 * scb12 * _2_0)
|
|
491
484
|
|
|
492
|
-
|
|
493
|
-
axi *= (
|
|
494
|
-
bxi *=
|
|
485
|
+
S = _Fsum1f_(sa1, sa2, sa12)
|
|
486
|
+
axi *= (S * e2 + _1).fover(S + _1, raiser=False)
|
|
487
|
+
bxi *= _Fsum1f_(sa1, sa2, esa12).fover(esa1_2) * e2 + _D2atanheE(sa1, sa2, E) * E.e21
|
|
495
488
|
s1_qZ = (axi * self._qZ - bxi) * dsn_2 / dtb12
|
|
496
489
|
ta0 = self._ta0(s1_qZ, (ta1 + ta2) * _0_5, E)
|
|
497
490
|
return ta0, C
|
|
@@ -504,7 +497,7 @@ class _AlbersBase(_NamedBase):
|
|
|
504
497
|
qx = self._qx
|
|
505
498
|
|
|
506
499
|
ta = txi
|
|
507
|
-
_Ta2 = Fsum(ta).
|
|
500
|
+
_Ta2 = Fsum(ta).fsum2f_
|
|
508
501
|
_fabs = fabs
|
|
509
502
|
_sqrt3 = sqrt3
|
|
510
503
|
_txif = self._txif
|
|
@@ -571,7 +564,7 @@ class _AlbersBase(_NamedBase):
|
|
|
571
564
|
es2m1a = es2m1 * E.e21 # e2m
|
|
572
565
|
s = sqrt((ca2 / (es1p1 * es2m1a) + _atanheE(ca2 / es1m1, E))
|
|
573
566
|
* (es1m1 / es2m1a + _atanheE(es1p1, E)))
|
|
574
|
-
t =
|
|
567
|
+
t = _Fsum1f_(sa / es2m1, _atanheE(sa, E)).fover(s)
|
|
575
568
|
return neg(t) if ta < 0 else t
|
|
576
569
|
|
|
577
570
|
|
|
@@ -732,7 +725,7 @@ def _atanh1(x):
|
|
|
732
725
|
# x < E.e^2 == 2 * E.f use ...
|
|
733
726
|
# x / 3 + x^2 / 5 + x^3 / 7 + ...
|
|
734
727
|
y, k = x, 3
|
|
735
|
-
_S2 = Fsum(y / k).
|
|
728
|
+
_S2 = Fsum(y / k).fsum2f_
|
|
736
729
|
for _ in range(_TERMS): # 9 terms
|
|
737
730
|
y *= x # x**n
|
|
738
731
|
k += 2 # 2*n + 1
|
|
@@ -781,15 +774,15 @@ def _D2atanheE(x, y, E):
|
|
|
781
774
|
e = z = _1_0
|
|
782
775
|
k = 1
|
|
783
776
|
T = Fsum() # Taylor expansion
|
|
784
|
-
_T = T.
|
|
785
|
-
_C = Fsum().
|
|
777
|
+
_T = T.Fsumf_
|
|
778
|
+
_C = Fsum().Fsum_
|
|
786
779
|
_S2 = Fsum().fsum2_
|
|
787
780
|
for _ in range(_TERMS): # 15 terms
|
|
788
|
-
T *= y;
|
|
789
|
-
T *= y;
|
|
781
|
+
T *= y; P = _T(z); z *= x # PYCHOK ;
|
|
782
|
+
T *= y; Q = _T(z); z *= x # PYCHOK ;
|
|
790
783
|
e *= e2
|
|
791
784
|
k += 2
|
|
792
|
-
s, d = _S2(_C(
|
|
785
|
+
s, d = _S2(_C(P, Q) * e / k)
|
|
793
786
|
if not d:
|
|
794
787
|
break
|
|
795
788
|
else: # PYCHOK no cover
|
pygeodesy/auxilats/auxLat.py
CHANGED
|
@@ -27,7 +27,7 @@ from pygeodesy.datums import _ellipsoidal_datum, _WGS84, Ellipsoid
|
|
|
27
27
|
from pygeodesy.elliptic import Elliptic as _Ef
|
|
28
28
|
from pygeodesy.errors import AuxError, _xkwds, _xkwds_get, _Xorder
|
|
29
29
|
# from pygeodesy.fmath import cbrt # from .karney
|
|
30
|
-
from pygeodesy.fsums import Fsum, _sum
|
|
30
|
+
from pygeodesy.fsums import Fsum, _Fsumf_, _sum
|
|
31
31
|
from pygeodesy.karney import _2cos2x, _polynomial, _ALL_DOCS, cbrt, _MODS
|
|
32
32
|
from pygeodesy.interns import NN, _DOT_, _UNDER_ # _earth_
|
|
33
33
|
# from pygeodesy.lazily import _ALL_DOCS, _ALL_MODS as _MODS # from .karney
|
|
@@ -44,7 +44,7 @@ except ImportError: # Python 3.11-
|
|
|
44
44
|
return pow(_2_0, x)
|
|
45
45
|
|
|
46
46
|
__all__ = ()
|
|
47
|
-
__version__ = '
|
|
47
|
+
__version__ = '24.04.14'
|
|
48
48
|
|
|
49
49
|
_TRIPS = 1024 # XXX 2 or 3?
|
|
50
50
|
|
|
@@ -286,7 +286,7 @@ class AuxLat(AuxAngle):
|
|
|
286
286
|
atphi = _asinh_2(tphi) # atanh(sphi)
|
|
287
287
|
t = _asinh_2(em1 * (tphi * scphib)) / em1
|
|
288
288
|
try:
|
|
289
|
-
Dg =
|
|
289
|
+
Dg = _Fsumf_(atphi, atphib, t, e * t)
|
|
290
290
|
except ValueError: # Fsum(NAN) exception
|
|
291
291
|
Dg = _sum((atphi, atphib, t, e * t))
|
|
292
292
|
e *= atphib
|
pygeodesy/azimuthal.py
CHANGED
|
@@ -58,7 +58,7 @@ from pygeodesy.interns import NN, _azimuth_, _datum_, _lat_, _lon_, \
|
|
|
58
58
|
from pygeodesy.karney import _norm180
|
|
59
59
|
from pygeodesy.latlonBase import _MODS, LatLonBase as _LLB
|
|
60
60
|
from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _FOR_DOCS # ALL_MODS
|
|
61
|
-
from pygeodesy.named import _NamedBase, _NamedTuple,
|
|
61
|
+
from pygeodesy.named import _NamedBase, _NamedTuple, _Pass
|
|
62
62
|
from pygeodesy.namedTuples import LatLon2Tuple, LatLon4Tuple
|
|
63
63
|
from pygeodesy.props import deprecated_Property_RO, Property_RO, \
|
|
64
64
|
property_doc_, _update_all
|
|
@@ -71,7 +71,7 @@ from pygeodesy.utily import asin1, atan1, atan2b, atan2d, sincos2, \
|
|
|
71
71
|
from math import acos, atan2, degrees, fabs, sin, sqrt
|
|
72
72
|
|
|
73
73
|
__all__ = _ALL_LAZY.azimuthal
|
|
74
|
-
__version__ = '24.04.
|
|
74
|
+
__version__ = '24.04.07'
|
|
75
75
|
|
|
76
76
|
_EPS_K = _EPStol * _0_1 # Karney's eps_ or _EPSmin * _0_1?
|
|
77
77
|
_over_horizon_ = 'over horizon'
|
|
@@ -145,7 +145,7 @@ class _AzimuthalBase(_NamedBase):
|
|
|
145
145
|
|
|
146
146
|
def forward(self, lat, lon, name=NN): # PYCHOK no cover
|
|
147
147
|
'''I{Must be overloaded}.'''
|
|
148
|
-
|
|
148
|
+
self._notOverloaded(lat, lon, name=name)
|
|
149
149
|
|
|
150
150
|
def _forward(self, lat, lon, name, _k_t_2):
|
|
151
151
|
'''(INTERNAL) Azimuthal (spherical) forward C{lat, lon} to C{x, y}.
|
|
@@ -236,7 +236,7 @@ class _AzimuthalBase(_NamedBase):
|
|
|
236
236
|
|
|
237
237
|
def reverse(self, x, y, name=NN, **LatLon_and_kwds): # PYCHOK no cover
|
|
238
238
|
'''I{Must be overloaded}.'''
|
|
239
|
-
|
|
239
|
+
self._notOverloaded(x, y, name=name, **LatLon_and_kwds)
|
|
240
240
|
|
|
241
241
|
def _reverse(self, x, y, name, _c, lea, LatLon=None, **LatLon_kwds):
|
|
242
242
|
'''(INTERNAL) Azimuthal (spherical) reverse C{x, y} to C{lat, lon}.
|
|
@@ -450,7 +450,7 @@ class _AzimuthalGeodesic(_AzimuthalBase):
|
|
|
450
450
|
@Property_RO
|
|
451
451
|
def geodesic(self): # PYCHOK no cover
|
|
452
452
|
'''I{Must be overloaded}.'''
|
|
453
|
-
|
|
453
|
+
self._notOverloaded()
|
|
454
454
|
|
|
455
455
|
def _7Tuple(self, e, n, r, M=None, name=NN):
|
|
456
456
|
'''(INTERNAL) Return an C{Azimuthal7Tuple}.
|
|
@@ -819,11 +819,12 @@ class _GnomonicBase(_AzimuthalGeodesic):
|
|
|
819
819
|
m = self._mask
|
|
820
820
|
g = self.geodesic
|
|
821
821
|
|
|
822
|
-
_P
|
|
823
|
-
_S2
|
|
822
|
+
_P = g.Line(self.lat0, self.lon0, z, caps=m | g.LINE_OFF).Position
|
|
823
|
+
_S2 = Fsum(s).fsum2f_
|
|
824
|
+
_abs = fabs
|
|
824
825
|
for i in range(1, _TRIPS):
|
|
825
826
|
r = _P(s, outmask=m)
|
|
826
|
-
if
|
|
827
|
+
if _abs(d) < a:
|
|
827
828
|
break
|
|
828
829
|
s, d = _S2(_d(r, q))
|
|
829
830
|
else: # PYCHOK no cover
|
pygeodesy/deprecated/__init__.py
CHANGED
|
@@ -27,7 +27,7 @@ __all__ = (_ALL_DEPRECATED.deprecated_bases +
|
|
|
27
27
|
_ALL_DEPRECATED.deprecated_classes +
|
|
28
28
|
_ALL_DEPRECATED.deprecated_consterns +
|
|
29
29
|
_ALL_DEPRECATED.deprecated_functions)
|
|
30
|
-
__version__ = '24.
|
|
30
|
+
__version__ = '24.04.17'
|
|
31
31
|
|
|
32
32
|
if _unLazy0:
|
|
33
33
|
from pygeodesy.deprecated import bases, datum, nvector, rhumbBase, \
|
pygeodesy/deprecated/classes.py
CHANGED
|
@@ -22,7 +22,7 @@ from pygeodesy.trf import TRFXform7Tuple as _TRFXform7Tuple
|
|
|
22
22
|
from pygeodesy.units import Bearing, Int, Lat, Lon, Meter
|
|
23
23
|
|
|
24
24
|
__all__ = _ALL_DEPRECATED.deprecated_classes
|
|
25
|
-
__version__ = '24.
|
|
25
|
+
__version__ = '24.04.17'
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class _Deprecated_NamedTuple(_NamedTuple):
|
|
@@ -98,6 +98,19 @@ def EcefCartesian(*args, **kwds):
|
|
|
98
98
|
return EcefCartesian_(*args, **kwds)
|
|
99
99
|
|
|
100
100
|
|
|
101
|
+
def Fn_rt(root, *xs, **name_RESIDUAL_raiser): # PYCHOK no cover
|
|
102
|
+
'''DEPRECATED on 2024.04.17, use class L{Froot}.
|
|
103
|
+
'''
|
|
104
|
+
Froot = _MODS.fmath.Froot
|
|
105
|
+
|
|
106
|
+
class Fn_rt(Froot): # PYCHOK no cover
|
|
107
|
+
'''DEPRECATED on 2024.04.17, use class L{Froot}.
|
|
108
|
+
'''
|
|
109
|
+
def __init__(self, root, *xs, **name_RESIDUAL_raiser):
|
|
110
|
+
deprecated_class(self.__class__)
|
|
111
|
+
Froot.__init__(self, root, *xs, **name_RESIDUAL_raiser)
|
|
112
|
+
|
|
113
|
+
|
|
101
114
|
def HeightIDW(knots, **kwds): # PYCHOK no cover
|
|
102
115
|
'''DEPRECATED, use class L{HeightIDWeuclidean}.'''
|
|
103
116
|
HeightIDWeuclidean = _MODS.heights.HeightIDWeuclidean
|
pygeodesy/ecef.py
CHANGED
|
@@ -73,7 +73,7 @@ from pygeodesy.interns import NN, _a_, _C_, _datum_, _ellipsoid_, _f_, _height_,
|
|
|
73
73
|
_lat_, _lon_, _M_, _name_, _singular_, _SPACE_, \
|
|
74
74
|
_x_, _xyz_, _y_, _z_
|
|
75
75
|
from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS
|
|
76
|
-
from pygeodesy.named import _NamedBase, _NamedTuple,
|
|
76
|
+
from pygeodesy.named import _NamedBase, _NamedTuple, _Pass, _xnamed
|
|
77
77
|
from pygeodesy.namedTuples import LatLon2Tuple, LatLon3Tuple, \
|
|
78
78
|
PhiLam2Tuple, Vector3Tuple, Vector4Tuple
|
|
79
79
|
from pygeodesy.props import deprecated_method, Property_RO, property_RO, property_doc_
|
|
@@ -86,7 +86,7 @@ from pygeodesy.utily import atan1, atan1d, atan2d, degrees90, degrees180, \
|
|
|
86
86
|
from math import atan2, cos, degrees, fabs, radians, sqrt
|
|
87
87
|
|
|
88
88
|
__all__ = _ALL_LAZY.ecef
|
|
89
|
-
__version__ = '24.
|
|
89
|
+
__version__ = '24.04.07'
|
|
90
90
|
|
|
91
91
|
_Ecef_ = 'Ecef'
|
|
92
92
|
_prolate_ = 'prolate'
|
|
@@ -306,7 +306,7 @@ class _EcefBase(_NamedBase):
|
|
|
306
306
|
|
|
307
307
|
def reverse(self, xyz, y=None, z=None, M=False, **name_lon00): # PYCHOK no cover
|
|
308
308
|
'''I{Must be overloaded}.'''
|
|
309
|
-
|
|
309
|
+
self._notOverloaded(xyz, y=y, z=z, M=M, **name_lon00)
|
|
310
310
|
|
|
311
311
|
def toStr(self, prec=9, **unused): # PYCHOK signature
|
|
312
312
|
'''Return this C{Ecef*} as a string.
|
|
@@ -657,7 +657,7 @@ class EcefSudano(_EcefBase):
|
|
|
657
657
|
# N / D = (z * ca + (E.e2 * E.a - R) * sa) /
|
|
658
658
|
# (E.e2 * E.a / E.e2s2(sa) - R / ca**2)
|
|
659
659
|
tol = self.tolerance
|
|
660
|
-
_S2 = Fsum(sa).
|
|
660
|
+
_S2 = Fsum(sa).fsum2f_
|
|
661
661
|
_rt = sqrt
|
|
662
662
|
for i in range(1, _TRIPS):
|
|
663
663
|
ca2 = _1_0 - sa**2
|
pygeodesy/ellipsoidalBase.py
CHANGED
|
@@ -26,7 +26,6 @@ from pygeodesy.interns import NN, _COMMA_, _ellipsoidal_
|
|
|
26
26
|
from pygeodesy.latlonBase import LatLonBase, _trilaterate5, fabs, _Wrap
|
|
27
27
|
from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS
|
|
28
28
|
# from pygeodesy.lcc import toLcc # _MODS
|
|
29
|
-
# from pygeodesy.named import notOverloaded # _MODS
|
|
30
29
|
# from pygeodesy.namedTuples import Vector3Tuple # _MODS
|
|
31
30
|
from pygeodesy.props import deprecated_method, deprecated_property_RO, \
|
|
32
31
|
Property_RO, property_doc_, property_RO, _update_all
|
|
@@ -37,7 +36,7 @@ from pygeodesy.units import Epoch, _isDegrees, Radius_, _1mm as _TOL_M
|
|
|
37
36
|
# from math import fabs # from .latlonBase
|
|
38
37
|
|
|
39
38
|
__all__ = _ALL_LAZY.ellipsoidalBase
|
|
40
|
-
__version__ = '24.
|
|
39
|
+
__version__ = '24.04.07'
|
|
41
40
|
|
|
42
41
|
|
|
43
42
|
class CartesianEllipsoidalBase(CartesianBase):
|
|
@@ -499,7 +498,7 @@ class LatLonEllipsoidalBase(LatLonBase):
|
|
|
499
498
|
|
|
500
499
|
def intermediateTo(self, other, fraction, height=None, wrap=False): # PYCHOK no cover
|
|
501
500
|
'''I{Must be overloaded}.'''
|
|
502
|
-
|
|
501
|
+
self._notOverloaded(other, fraction, height=height, wrap=wrap)
|
|
503
502
|
|
|
504
503
|
def intersection3(self, end1, other, end2, height=None, wrap=False, # was=True
|
|
505
504
|
equidistant=None, tol=_TOL_M):
|
pygeodesy/ellipsoids.py
CHANGED
|
@@ -70,8 +70,8 @@ from pygeodesy.constants import EPS, EPS0, EPS02, EPS1, INF, NINF, PI4, PI_2, PI
|
|
|
70
70
|
_0_0s, _0_0, _0_5, _1_0, _1_EPS, _2_0, _4_0, _90_0, \
|
|
71
71
|
_0_25, _3_0 # PYCHOK used!
|
|
72
72
|
from pygeodesy.errors import _AssertionError, IntersectionError, _ValueError, _xattr, _xkwds_not
|
|
73
|
-
from pygeodesy.fmath import cbrt, cbrt2, fdot, Fhorner, fpowers,
|
|
74
|
-
hypot1, hypot2, sqrt3
|
|
73
|
+
from pygeodesy.fmath import cbrt, cbrt2, fdot, Fhorner, fpowers, hypot, hypot_, \
|
|
74
|
+
hypot1, hypot2, sqrt3, Fsum
|
|
75
75
|
# from pygeodesy.fsums import Fsum # from .fmath
|
|
76
76
|
from pygeodesy.interns import NN, _a_, _Airy1830_, _AiryModified_, _b_, _Bessel1841_, _beta_, \
|
|
77
77
|
_Clarke1866_, _Clarke1880IGN_, _DOT_, _f_, _GRS80_, _height_, \
|
|
@@ -93,7 +93,7 @@ from pygeodesy.utily import atan1, atan1d, atan2b, degrees90, m2radians, radians
|
|
|
93
93
|
from math import asinh, atan, atanh, cos, degrees, exp, fabs, radians, sin, sinh, sqrt, tan
|
|
94
94
|
|
|
95
95
|
__all__ = _ALL_LAZY.ellipsoids
|
|
96
|
-
__version__ = '24.
|
|
96
|
+
__version__ = '24.04.14'
|
|
97
97
|
|
|
98
98
|
_f_0_0 = Float(f =_0_0) # zero flattening
|
|
99
99
|
_f__0_0 = Float(f_=_0_0) # zero inverse flattening
|
|
@@ -933,7 +933,7 @@ class Ellipsoid(_NamedEnumItem):
|
|
|
933
933
|
toggles on +/-1.12e-16 or +/-4.47e-16, see C{.utm.Utm._toLLEB}.
|
|
934
934
|
'''
|
|
935
935
|
e = self._1_e21
|
|
936
|
-
_F2_ = Fsum(T).
|
|
936
|
+
_F2_ = Fsum(T).fsum2f_ # τ0
|
|
937
937
|
_tf2 = self._es_taupf2
|
|
938
938
|
for i in range(1, N + 1):
|
|
939
939
|
a, h = _tf2(T)
|