pygeodesy 24.6.9__py2.py3-none-any.whl → 24.7.7__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 (87) hide show
  1. {PyGeodesy-24.6.9.dist-info → PyGeodesy-24.7.7.dist-info}/METADATA +2 -2
  2. PyGeodesy-24.7.7.dist-info/RECORD +117 -0
  3. pygeodesy/__init__.py +39 -32
  4. pygeodesy/__main__.py +6 -1
  5. pygeodesy/albers.py +2 -2
  6. pygeodesy/auxilats/__init__.py +1 -1
  7. pygeodesy/auxilats/auxAngle.py +40 -39
  8. pygeodesy/auxilats/auxDLat.py +3 -2
  9. pygeodesy/auxilats/auxLat.py +16 -18
  10. pygeodesy/auxilats/auxily.py +1 -1
  11. pygeodesy/azimuthal.py +10 -10
  12. pygeodesy/basics.py +16 -4
  13. pygeodesy/booleans.py +4 -4
  14. pygeodesy/cartesianBase.py +11 -14
  15. pygeodesy/css.py +14 -18
  16. pygeodesy/datums.py +6 -6
  17. pygeodesy/deprecated/__init__.py +1 -1
  18. pygeodesy/deprecated/classes.py +25 -4
  19. pygeodesy/deprecated/datum.py +3 -3
  20. pygeodesy/deprecated/functions.py +6 -8
  21. pygeodesy/dms.py +23 -27
  22. pygeodesy/ecef.py +4 -4
  23. pygeodesy/elevations.py +4 -4
  24. pygeodesy/ellipsoidalBase.py +23 -28
  25. pygeodesy/ellipsoidalBaseDI.py +19 -23
  26. pygeodesy/ellipsoidalExact.py +3 -3
  27. pygeodesy/ellipsoidalGeodSolve.py +15 -23
  28. pygeodesy/ellipsoidalKarney.py +37 -60
  29. pygeodesy/ellipsoidalNvector.py +38 -44
  30. pygeodesy/ellipsoidalVincenty.py +11 -14
  31. pygeodesy/ellipsoids.py +107 -101
  32. pygeodesy/errors.py +109 -48
  33. pygeodesy/etm.py +32 -44
  34. pygeodesy/formy.py +55 -58
  35. pygeodesy/frechet.py +18 -20
  36. pygeodesy/fsums.py +3 -3
  37. pygeodesy/gars.py +3 -4
  38. pygeodesy/geodesici.py +1696 -0
  39. pygeodesy/geodesicw.py +15 -15
  40. pygeodesy/geodesicx/__init__.py +4 -4
  41. pygeodesy/geodesicx/gx.py +34 -55
  42. pygeodesy/geodesicx/gxbases.py +20 -8
  43. pygeodesy/geodesicx/gxline.py +93 -88
  44. pygeodesy/geodsolve.py +108 -59
  45. pygeodesy/geohash.py +26 -34
  46. pygeodesy/geoids.py +28 -37
  47. pygeodesy/hausdorff.py +17 -18
  48. pygeodesy/heights.py +2 -2
  49. pygeodesy/internals.py +46 -13
  50. pygeodesy/interns.py +2 -2
  51. pygeodesy/karney.py +78 -15
  52. pygeodesy/ktm.py +13 -16
  53. pygeodesy/latlonBase.py +17 -19
  54. pygeodesy/lazily.py +28 -25
  55. pygeodesy/lcc.py +28 -31
  56. pygeodesy/ltp.py +7 -8
  57. pygeodesy/ltpTuples.py +71 -73
  58. pygeodesy/mgrs.py +8 -9
  59. pygeodesy/named.py +19 -10
  60. pygeodesy/nvectorBase.py +9 -10
  61. pygeodesy/osgr.py +9 -9
  62. pygeodesy/points.py +6 -6
  63. pygeodesy/rhumb/__init__.py +1 -1
  64. pygeodesy/rhumb/aux_.py +5 -5
  65. pygeodesy/rhumb/bases.py +30 -31
  66. pygeodesy/rhumb/ekx.py +3 -4
  67. pygeodesy/rhumb/solve.py +21 -22
  68. pygeodesy/solveBase.py +177 -123
  69. pygeodesy/sphericalBase.py +10 -11
  70. pygeodesy/sphericalNvector.py +13 -13
  71. pygeodesy/sphericalTrigonometry.py +86 -97
  72. pygeodesy/streprs.py +4 -34
  73. pygeodesy/triaxials.py +48 -43
  74. pygeodesy/units.py +208 -275
  75. pygeodesy/unitsBase.py +115 -107
  76. pygeodesy/ups.py +26 -31
  77. pygeodesy/utily.py +8 -8
  78. pygeodesy/utm.py +35 -40
  79. pygeodesy/utmups.py +43 -46
  80. pygeodesy/utmupsBase.py +8 -9
  81. pygeodesy/vector3d.py +26 -27
  82. pygeodesy/vector3dBase.py +6 -7
  83. pygeodesy/webmercator.py +19 -21
  84. pygeodesy/wgrs.py +18 -20
  85. PyGeodesy-24.6.9.dist-info/RECORD +0 -116
  86. {PyGeodesy-24.6.9.dist-info → PyGeodesy-24.7.7.dist-info}/WHEEL +0 -0
  87. {PyGeodesy-24.6.9.dist-info → PyGeodesy-24.7.7.dist-info}/top_level.txt +0 -0
pygeodesy/ellipsoids.py CHANGED
@@ -11,55 +11,55 @@ See module L{datums} for L{Datum} and L{Transform} information and other details
11
11
 
12
12
  Following is the list of predefined L{Ellipsoid}s, all instantiated lazily.
13
13
 
14
- @var Ellipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, b=6356256.90923729, f_=299.3249646, f=0.00334085, f2=0.00335205, n=0.00167322, e=0.08167337, e2=0.00667054, e21=0.99332946, e22=0.00671533, e32=0.00334643, A=6366914.60892522, L=10001126.0807165, R1=6370461.23374576, R2=6370459.65470808, R3=6370453.30994572, Rbiaxial=6366919.065224, Rtriaxial=6372243.45317691)
15
- @var Ellipsoids.AiryModified: Ellipsoid(name='AiryModified', a=6377340.189, b=6356034.44793853, f_=299.3249646, f=0.00334085, f2=0.00335205, n=0.00167322, e=0.08167337, e2=0.00667054, e21=0.99332946, e22=0.00671533, e32=0.00334643, A=6366691.77461988, L=10000776.05340819, R1=6370238.27531284, R2=6370236.69633043, R3=6370230.35179013, Rbiaxial=6366696.2307627, Rtriaxial=6372020.43236847)
16
- @var Ellipsoids.ATS1977: Ellipsoid(name='ATS1977', a=6378135, b=6356750.30492159, f_=298.257, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181922, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367447.14116695, L=10001962.58040571, R1=6371006.7683072, R2=6371005.17780873, R3=6370998.78689182, Rbiaxial=6367451.62986519, Rtriaxial=6372795.55363648)
17
- @var Ellipsoids.Australia1966: Ellipsoid(name='Australia1966', a=6378160, b=6356774.71919531, f_=298.25, f=0.00335289, f2=0.00336417, n=0.00167926, e=0.08182018, e2=0.00669454, e21=0.99330546, e22=0.00673966, e32=0.00335851, A=6367471.84853228, L=10002001.39064442, R1=6371031.5730651, R2=6371029.9824858, R3=6371023.59124344, Rbiaxial=6367476.337459, Rtriaxial=6372820.40754721)
18
- @var Ellipsoids.Bessel1841: Ellipsoid(name='Bessel1841', a=6377397.155, b=6356078.962818, f_=299.1528128, f=0.00334277, f2=0.00335398, n=0.00167418, e=0.08169683, e2=0.00667437, e21=0.99332563, e22=0.00671922, e32=0.00334836, A=6366742.52023395, L=10000855.76443237, R1=6370291.09093933, R2=6370289.51012659, R3=6370283.15821523, Rbiaxial=6366746.98155108, Rtriaxial=6372074.29334012)
19
- @var Ellipsoids.BesselModified: Ellipsoid(name='BesselModified', a=6377492.018, b=6356173.5087127, f_=299.1528128, f=0.00334277, f2=0.00335398, n=0.00167418, e=0.08169683, e2=0.00667437, e21=0.99332563, e22=0.00671922, e32=0.00334836, A=6366837.22474766, L=10001004.52593463, R1=6370385.84823756, R2=6370384.26740131, R3=6370377.91539546, Rbiaxial=6366841.68613115, Rtriaxial=6372169.07716325)
20
- @var Ellipsoids.CGCS2000: Ellipsoid(name='CGCS2000', a=6378137, b=6356752.31414036, f_=298.2572221, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367449.14577105, L=10001965.72923046, R1=6371008.77138012, R2=6371007.18088352, R3=6371000.78997414, Rbiaxial=6367453.63446401, Rtriaxial=6372797.55593326)
21
- @var Ellipsoids.Clarke1866: Ellipsoid(name='Clarke1866', a=6378206.4, b=6356583.8, f_=294.97869821, f=0.00339008, f2=0.00340161, n=0.00169792, e=0.08227185, e2=0.00676866, e21=0.99323134, e22=0.00681478, e32=0.00339582, A=6367399.68916978, L=10001888.04298286, R1=6370998.86666667, R2=6370997.240633, R3=6370990.70659881, Rbiaxial=6367404.2783313, Rtriaxial=6372807.62791066)
22
- @var Ellipsoids.Clarke1880: Ellipsoid(name='Clarke1880', a=6378249.145, b=6356514.86954978, f_=293.465, f=0.00340756, f2=0.00341921, n=0.00170669, e=0.0824834, e2=0.00680351, e21=0.99319649, e22=0.00685012, e32=0.00341337, A=6367386.64398051, L=10001867.55164747, R1=6371004.38651659, R2=6371002.74366963, R3=6370996.1419165, Rbiaxial=6367391.2806777, Rtriaxial=6372822.52526083)
23
- @var Ellipsoids.Clarke1880IGN: Ellipsoid(name='Clarke1880IGN', a=6378249.2, b=6356515, f_=293.46602129, f=0.00340755, f2=0.0034192, n=0.00170668, e=0.08248326, e2=0.00680349, e21=0.99319651, e22=0.00685009, e32=0.00341336, A=6367386.73667336, L=10001867.69724907, R1=6371004.46666667, R2=6371002.82383112, R3=6370996.22212395, Rbiaxial=6367391.37333829, Rtriaxial=6372822.59907505)
24
- @var Ellipsoids.Clarke1880Mod: Ellipsoid(name='Clarke1880Mod', a=6378249.145, b=6356514.96639549, f_=293.46630766, f=0.00340755, f2=0.0034192, n=0.00170668, e=0.08248322, e2=0.00680348, e21=0.99319652, e22=0.00685009, e32=0.00341335, A=6367386.69236201, L=10001867.62764496, R1=6371004.4187985, R2=6371002.77596616, R3=6370996.17427195, Rbiaxial=6367391.32901784, Rtriaxial=6372822.5494103)
25
- @var Ellipsoids.CPM1799: Ellipsoid(name='CPM1799', a=6375738.7, b=6356671.92557493, f_=334.39, f=0.00299052, f2=0.00299949, n=0.0014975, e=0.07727934, e2=0.0059721, e21=0.9940279, e22=0.00600798, e32=0.00299499, A=6366208.88184784, L=10000017.52721564, R1=6369383.10852498, R2=6369381.8434158, R3=6369376.76247022, Rbiaxial=6366212.45090321, Rtriaxial=6370977.3559758)
26
- @var Ellipsoids.Delambre1810: Ellipsoid(name='Delambre1810', a=6376428, b=6355957.92616372, f_=311.5, f=0.00321027, f2=0.00322061, n=0.00160772, e=0.08006397, e2=0.00641024, e21=0.99358976, e22=0.0064516, e32=0.00321543, A=6366197.07684334, L=9999998.98395793, R1=6369604.64205457, R2=6369603.18419749, R3=6369597.32739068, Rbiaxial=6366201.19059818, Rtriaxial=6371316.64722284)
27
- @var Ellipsoids.Engelis1985: Ellipsoid(name='Engelis1985', a=6378136.05, b=6356751.32272154, f_=298.2566, f=0.00335282, f2=0.0033641, n=0.00167922, e=0.08181928, e2=0.00669439, e21=0.99330561, e22=0.00673951, e32=0.00335844, A=6367448.17507971, L=10001964.20447208, R1=6371007.80757385, R2=6371006.21707085, R3=6370999.82613573, Rbiaxial=6367452.66379074, Rtriaxial=6372796.59560563)
28
- @var Ellipsoids.Everest1969: Ellipsoid(name='Everest1969', a=6377295.664, b=6356094.667915, f_=300.8017, f=0.00332445, f2=0.00333554, n=0.00166499, e=0.08147298, e2=0.00663785, e21=0.99336215, e22=0.0066822, e32=0.00332998, A=6366699.57839501, L=10000788.3115495, R1=6370228.665305, R2=6370227.10178537, R3=6370220.81951618, Rbiaxial=6366703.99082487, Rtriaxial=6372002.02812501)
29
- @var Ellipsoids.Everest1975: Ellipsoid(name='Everest1975', a=6377299.151, b=6356098.14512013, f_=300.8017255, f=0.00332445, f2=0.00333554, n=0.00166499, e=0.08147298, e2=0.00663785, e21=0.99336215, e22=0.0066822, e32=0.00332997, A=6366703.06049924, L=10000793.78122603, R1=6370232.14904004, R2=6370230.58551983, R3=6370224.30324826, Rbiaxial=6366707.47293076, Rtriaxial=6372005.51267879)
30
- @var Ellipsoids.Fisher1968: Ellipsoid(name='Fisher1968', a=6378150, b=6356768.33724438, f_=298.3, f=0.00335233, f2=0.00336361, n=0.00167898, e=0.08181333, e2=0.00669342, e21=0.99330658, e22=0.00673853, e32=0.00335795, A=6367463.65604381, L=10001988.52191361, R1=6371022.77908146, R2=6371021.18903735, R3=6371014.79995035, Rbiaxial=6367468.14345752, Rtriaxial=6372811.30979281)
31
- @var Ellipsoids.GEM10C: Ellipsoid(name='GEM10C', a=6378137, b=6356752.31424783, f_=298.2572236, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367449.14582474, L=10001965.7293148, R1=6371008.77141594, R2=6371007.18091936, R3=6371000.79001005, Rbiaxial=6367453.63451765, Rtriaxial=6372797.55596006)
32
- @var Ellipsoids.GPES: Ellipsoid(name='GPES', a=6378135, b=6378135, f_=0, f=0, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6378135, L=10018751.02980197, R1=6378135, R2=6378135, R3=6378135, Rbiaxial=6378135, Rtriaxial=6378135)
33
- @var Ellipsoids.GRS67: Ellipsoid(name='GRS67', a=6378160, b=6356774.51609071, f_=298.24716743, f=0.00335292, f2=0.0033642, n=0.00167928, e=0.08182057, e2=0.00669461, e21=0.99330539, e22=0.00673973, e32=0.00335854, A=6367471.74706533, L=10002001.2312605, R1=6371031.50536357, R2=6371029.91475409, R3=6371023.52339015, Rbiaxial=6367476.23607738, Rtriaxial=6372820.3568989)
34
- @var Ellipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, b=6356752.31414035, f_=298.2572221, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367449.14577104, L=10001965.72923046, R1=6371008.77138012, R2=6371007.18088351, R3=6371000.78997414, Rbiaxial=6367453.634464, Rtriaxial=6372797.55593326)
35
- @var Ellipsoids.Helmert1906: Ellipsoid(name='Helmert1906', a=6378200, b=6356818.16962789, f_=298.3, f=0.00335233, f2=0.00336361, n=0.00167898, e=0.08181333, e2=0.00669342, e21=0.99330658, e22=0.00673853, e32=0.00335795, A=6367513.57227074, L=10002066.93013953, R1=6371072.7232093, R2=6371071.13315272, R3=6371064.74401563, Rbiaxial=6367518.05971963, Rtriaxial=6372861.26794141)
36
- @var Ellipsoids.IAU76: Ellipsoid(name='IAU76', a=6378140, b=6356755.28815753, f_=298.257, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181922, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367452.13278844, L=10001970.4212264, R1=6371011.76271918, R2=6371010.17221946, R3=6371003.78129754, Rbiaxial=6367456.6214902, Rtriaxial=6372800.54945074)
37
- @var Ellipsoids.IERS1989: Ellipsoid(name='IERS1989', a=6378136, b=6356751.30156878, f_=298.257, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181922, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367448.13949125, L=10001964.14856985, R1=6371007.76718959, R2=6371006.17669088, R3=6370999.78577297, Rbiaxial=6367452.62819019, Rtriaxial=6372796.55279934)
38
- @var Ellipsoids.IERS1992TOPEX: Ellipsoid(name='IERS1992TOPEX', a=6378136.3, b=6356751.61659215, f_=298.25722356, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367448.44699641, L=10001964.63159783, R1=6371008.07219738, R2=6371006.48170097, R3=6371000.09079236, Rbiaxial=6367452.93568883, Rtriaxial=6372796.85654541)
39
- @var Ellipsoids.IERS2003: Ellipsoid(name='IERS2003', a=6378136.6, b=6356751.85797165, f_=298.25642, f=0.00335282, f2=0.0033641, n=0.00167922, e=0.0818193, e2=0.0066944, e21=0.9933056, e22=0.00673951, e32=0.00335844, A=6367448.71771058, L=10001965.05683465, R1=6371008.35265722, R2=6371006.76215217, R3=6371000.37120877, Rbiaxial=6367453.20642742, Rtriaxial=6372797.14192686)
40
- @var Ellipsoids.Intl1924: Ellipsoid(name='Intl1924', a=6378388, b=6356911.94612795, f_=297, f=0.003367, f2=0.00337838, n=0.00168634, e=0.08199189, e2=0.00672267, e21=0.99327733, e22=0.00676817, e32=0.00337267, A=6367654.50005758, L=10002288.29898944, R1=6371229.31537598, R2=6371227.71133444, R3=6371221.26587487, Rbiaxial=6367659.02704315, Rtriaxial=6373025.77129687)
41
- @var Ellipsoids.Intl1967: Ellipsoid(name='Intl1967', a=6378157.5, b=6356772.2, f_=298.24961539, f=0.0033529, f2=0.00336418, n=0.00167926, e=0.08182023, e2=0.00669455, e21=0.99330545, e22=0.00673967, e32=0.00335852, A=6367469.33894446, L=10001997.44859308, R1=6371029.06666667, R2=6371027.47608389, R3=6371021.08482752, Rbiaxial=6367473.827881, Rtriaxial=6372817.9027631)
42
- @var Ellipsoids.Krassovski1940: Ellipsoid(name='Krassovski1940', a=6378245, b=6356863.01877305, f_=298.3, f=0.00335233, f2=0.00336361, n=0.00167898, e=0.08181333, e2=0.00669342, e21=0.99330658, e22=0.00673853, e32=0.00335795, A=6367558.49687498, L=10002137.49754285, R1=6371117.67292435, R2=6371116.08285656, R3=6371109.69367439, Rbiaxial=6367562.98435553, Rtriaxial=6372906.23027515)
43
- @var Ellipsoids.Krassowsky1940: Ellipsoid(name='Krassowsky1940', a=6378245, b=6356863.01877305, f_=298.3, f=0.00335233, f2=0.00336361, n=0.00167898, e=0.08181333, e2=0.00669342, e21=0.99330658, e22=0.00673853, e32=0.00335795, A=6367558.49687498, L=10002137.49754285, R1=6371117.67292435, R2=6371116.08285656, R3=6371109.69367439, Rbiaxial=6367562.98435553, Rtriaxial=6372906.23027515)
44
- @var Ellipsoids.Maupertuis1738: Ellipsoid(name='Maupertuis1738', a=6397300, b=6363806.28272251, f_=191, f=0.0052356, f2=0.00526316, n=0.00262467, e=0.10219488, e2=0.01044379, e21=0.98955621, e22=0.01055402, e32=0.00524931, A=6380564.13011837, L=10022566.69846922, R1=6386135.42757417, R2=6386131.54144847, R3=6386115.8862823, Rbiaxial=6380575.11882818, Rtriaxial=6388943.03218495)
45
- @var Ellipsoids.Mercury1960: Ellipsoid(name='Mercury1960', a=6378166, b=6356784.28360711, f_=298.3, f=0.00335233, f2=0.00336361, n=0.00167898, e=0.08181333, e2=0.00669342, e21=0.99330658, e22=0.00673853, e32=0.00335795, A=6367479.62923643, L=10002013.61254591, R1=6371038.76120237, R2=6371037.17115427, R3=6371030.78205124, Rbiaxial=6367484.1166614, Rtriaxial=6372827.29640037)
46
- @var Ellipsoids.Mercury1968Mod: Ellipsoid(name='Mercury1968Mod', a=6378150, b=6356768.33724438, f_=298.3, f=0.00335233, f2=0.00336361, n=0.00167898, e=0.08181333, e2=0.00669342, e21=0.99330658, e22=0.00673853, e32=0.00335795, A=6367463.65604381, L=10001988.52191361, R1=6371022.77908146, R2=6371021.18903735, R3=6371014.79995035, Rbiaxial=6367468.14345752, Rtriaxial=6372811.30979281)
47
- @var Ellipsoids.NWL1965: Ellipsoid(name='NWL1965', a=6378145, b=6356759.76948868, f_=298.25, f=0.00335289, f2=0.00336417, n=0.00167926, e=0.08182018, e2=0.00669454, e21=0.99330546, e22=0.00673966, e32=0.00335851, A=6367456.87366841, L=10001977.86818326, R1=6371016.58982956, R2=6371014.999254, R3=6371008.60802667, Rbiaxial=6367461.36258457, Rtriaxial=6372805.42010473)
48
- @var Ellipsoids.OSU86F: Ellipsoid(name='OSU86F', a=6378136.2, b=6356751.51693008, f_=298.2572236, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367448.3471653, L=10001964.47478349, R1=6371007.97231003, R2=6371006.38181364, R3=6370999.99090513, Rbiaxial=6367452.83585765, Rtriaxial=6372796.75662978)
49
- @var Ellipsoids.OSU91A: Ellipsoid(name='OSU91A', a=6378136.3, b=6356751.6165948, f_=298.2572236, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367448.44699773, L=10001964.63159991, R1=6371008.07219827, R2=6371006.48170186, R3=6371000.09079324, Rbiaxial=6367452.93569015, Rtriaxial=6372796.85654607)
50
- @var Ellipsoids.Plessis1817: Ellipsoid(name='Plessis1817', a=6376523, b=6355862.93325557, f_=308.64, f=0.00324002, f2=0.00325055, n=0.00162264, e=0.08043347, e2=0.00646954, e21=0.99353046, e22=0.00651167, e32=0.00324527, A=6366197.15710739, L=9999999.11003639, R1=6369636.31108519, R2=6369634.82608583, R3=6369628.85999668, Rbiaxial=6366201.34758009, Rtriaxial=6371364.26393357)
51
- @var Ellipsoids.PZ90: Ellipsoid(name='PZ90', a=6378136, b=6356751.36174571, f_=298.2578393, f=0.0033528, f2=0.00336408, n=0.00167922, e=0.08181911, e2=0.00669437, e21=0.99330563, e22=0.00673948, e32=0.00335842, A=6367448.16955443, L=10001964.19579298, R1=6371007.78724857, R2=6371006.1967588, R3=6370999.80587691, Rbiaxial=6367452.65822809, Rtriaxial=6372796.56780569)
52
- @var Ellipsoids.SGS85: Ellipsoid(name='SGS85', a=6378136, b=6356751.30156878, f_=298.257, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181922, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367448.13949125, L=10001964.14856985, R1=6371007.76718959, R2=6371006.17669087, R3=6370999.78577297, Rbiaxial=6367452.62819019, Rtriaxial=6372796.55279934)
53
- @var Ellipsoids.SoAmerican1969: Ellipsoid(name='SoAmerican1969', a=6378160, b=6356774.71919531, f_=298.25, f=0.00335289, f2=0.00336417, n=0.00167926, e=0.08182018, e2=0.00669454, e21=0.99330546, e22=0.00673966, e32=0.00335851, A=6367471.84853228, L=10002001.39064442, R1=6371031.5730651, R2=6371029.98248581, R3=6371023.59124344, Rbiaxial=6367476.337459, Rtriaxial=6372820.40754721)
54
- @var Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, b=6371008.771415, f_=0, f=0, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6371008.771415, L=10007557.17611675, R1=6371008.771415, R2=6371008.771415, R3=6371008.771415, Rbiaxial=6371008.771415, Rtriaxial=6371008.771415)
55
- @var Ellipsoids.SphereAuthalic: Ellipsoid(name='SphereAuthalic', a=6371000, b=6371000, f_=0, f=0, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6371000, L=10007543.39801029, R1=6371000, R2=6371000, R3=6371000, Rbiaxial=6371000, Rtriaxial=6371000)
56
- @var Ellipsoids.SpherePopular: Ellipsoid(name='SpherePopular', a=6378137, b=6378137, f_=0, f=0, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6378137, L=10018754.17139462, R1=6378137, R2=6378137, R3=6378137, Rbiaxial=6378137, Rtriaxial=6378137)
57
- @var Ellipsoids.Struve1860: Ellipsoid(name='Struve1860', a=6378298.3, b=6356657.14266956, f_=294.73, f=0.00339294, f2=0.00340449, n=0.00169935, e=0.0823065, e2=0.00677436, e21=0.99322564, e22=0.00682056, e32=0.00339869, A=6367482.31832549, L=10002017.83655714, R1=6371084.58088985, R2=6371082.95208988, R3=6371076.40691418, Rbiaxial=6367486.91530791, Rtriaxial=6372894.90029454)
58
- @var Ellipsoids.WGS60: Ellipsoid(name='WGS60', a=6378165, b=6356783.28695944, f_=298.3, f=0.00335233, f2=0.00336361, n=0.00167898, e=0.08181333, e2=0.00669342, e21=0.99330658, e22=0.00673853, e32=0.00335795, A=6367478.63091189, L=10002012.04438139, R1=6371037.76231981, R2=6371036.17227197, R3=6371029.78316994, Rbiaxial=6367483.11833616, Rtriaxial=6372826.29723739)
59
- @var Ellipsoids.WGS66: Ellipsoid(name='WGS66', a=6378145, b=6356759.76948868, f_=298.25, f=0.00335289, f2=0.00336417, n=0.00167926, e=0.08182018, e2=0.00669454, e21=0.99330546, e22=0.00673966, e32=0.00335851, A=6367456.87366841, L=10001977.86818326, R1=6371016.58982956, R2=6371014.999254, R3=6371008.60802667, Rbiaxial=6367461.36258457, Rtriaxial=6372805.42010473)
60
- @var Ellipsoids.WGS72: Ellipsoid(name='WGS72', a=6378135, b=6356750.52001609, f_=298.26, f=0.00335278, f2=0.00336406, n=0.0016792, e=0.08181881, e2=0.00669432, e21=0.99330568, e22=0.00673943, e32=0.0033584, A=6367447.24862383, L=10001962.74919858, R1=6371006.84000536, R2=6371005.24953886, R3=6370998.8587507, Rbiaxial=6367451.7372317, Rtriaxial=6372795.60727472)
61
- @var Ellipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, b=6356752.31424518, f_=298.25722356, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367449.14582341, L=10001965.72931272, R1=6371008.77141506, R2=6371007.18091847, R3=6371000.79000916, Rbiaxial=6367453.63451633, Rtriaxial=6372797.5559594)
62
- @var Ellipsoids.WGS84_NGS: Ellipsoid(name='WGS84_NGS', a=6378137, b=6356752.31414035, f_=298.2572221, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367449.14577104, L=10001965.72923046, R1=6371008.77138012, R2=6371007.18088351, R3=6371000.78997414, Rbiaxial=6367453.634464, Rtriaxial=6372797.55593326)
14
+ @var Ellipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729)
15
+ @var Ellipsoids.AiryModified: Ellipsoid(name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853)
16
+ @var Ellipsoids.ATS1977: Ellipsoid(name='ATS1977', a=6378135, f=0.00335281, f_=298.257, b=6356750.30492159)
17
+ @var Ellipsoids.Australia1966: Ellipsoid(name='Australia1966', a=6378160, f=0.00335289, f_=298.25, b=6356774.71919531)
18
+ @var Ellipsoids.Bessel1841: Ellipsoid(name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818)
19
+ @var Ellipsoids.BesselModified: Ellipsoid(name='BesselModified', a=6377492.018, f=0.00334277, f_=299.1528128, b=6356173.5087127)
20
+ @var Ellipsoids.CGCS2000: Ellipsoid(name='CGCS2000', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414036)
21
+ @var Ellipsoids.Clarke1866: Ellipsoid(name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8)
22
+ @var Ellipsoids.Clarke1880: Ellipsoid(name='Clarke1880', a=6378249.145, f=0.00340756, f_=293.465, b=6356514.86954978)
23
+ @var Ellipsoids.Clarke1880IGN: Ellipsoid(name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515)
24
+ @var Ellipsoids.Clarke1880Mod: Ellipsoid(name='Clarke1880Mod', a=6378249.145, f=0.00340755, f_=293.46630766, b=6356514.96639549)
25
+ @var Ellipsoids.CPM1799: Ellipsoid(name='CPM1799', a=6375738.7, f=0.00299052, f_=334.39, b=6356671.92557493)
26
+ @var Ellipsoids.Delambre1810: Ellipsoid(name='Delambre1810', a=6376428, f=0.00321027, f_=311.5, b=6355957.92616372)
27
+ @var Ellipsoids.Engelis1985: Ellipsoid(name='Engelis1985', a=6378136.05, f=0.00335282, f_=298.2566, b=6356751.32272154)
28
+ @var Ellipsoids.Everest1969: Ellipsoid(name='Everest1969', a=6377295.664, f=0.00332445, f_=300.8017, b=6356094.667915)
29
+ @var Ellipsoids.Everest1975: Ellipsoid(name='Everest1975', a=6377299.151, f=0.00332445, f_=300.8017255, b=6356098.14512013)
30
+ @var Ellipsoids.Fisher1968: Ellipsoid(name='Fisher1968', a=6378150, f=0.00335233, f_=298.3, b=6356768.33724438)
31
+ @var Ellipsoids.GEM10C: Ellipsoid(name='GEM10C', a=6378137, f=0.00335281, f_=298.2572236, b=6356752.31424783)
32
+ @var Ellipsoids.GPES: Ellipsoid(name='GPES', a=6378135, f=0, f_=0, b=6378135)
33
+ @var Ellipsoids.GRS67: Ellipsoid(name='GRS67', a=6378160, f=0.00335292, f_=298.24716743, b=6356774.51609071)
34
+ @var Ellipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035)
35
+ @var Ellipsoids.Helmert1906: Ellipsoid(name='Helmert1906', a=6378200, f=0.00335233, f_=298.3, b=6356818.16962789)
36
+ @var Ellipsoids.IAU76: Ellipsoid(name='IAU76', a=6378140, f=0.00335281, f_=298.257, b=6356755.28815753)
37
+ @var Ellipsoids.IERS1989: Ellipsoid(name='IERS1989', a=6378136, f=0.00335281, f_=298.257, b=6356751.30156878)
38
+ @var Ellipsoids.IERS1992TOPEX: Ellipsoid(name='IERS1992TOPEX', a=6378136.3, f=0.00335281, f_=298.25722356, b=6356751.61659215)
39
+ @var Ellipsoids.IERS2003: Ellipsoid(name='IERS2003', a=6378136.6, f=0.00335282, f_=298.25642, b=6356751.85797165)
40
+ @var Ellipsoids.Intl1924: Ellipsoid(name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795)
41
+ @var Ellipsoids.Intl1967: Ellipsoid(name='Intl1967', a=6378157.5, f=0.0033529, f_=298.24961539, b=6356772.2)
42
+ @var Ellipsoids.Krassovski1940: Ellipsoid(name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305)
43
+ @var Ellipsoids.Krassowsky1940: Ellipsoid(name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305)
44
+ @var Ellipsoids.Maupertuis1738: Ellipsoid(name='Maupertuis1738', a=6397300, f=0.0052356, f_=191, b=6363806.28272251)
45
+ @var Ellipsoids.Mercury1960: Ellipsoid(name='Mercury1960', a=6378166, f=0.00335233, f_=298.3, b=6356784.28360711)
46
+ @var Ellipsoids.Mercury1968Mod: Ellipsoid(name='Mercury1968Mod', a=6378150, f=0.00335233, f_=298.3, b=6356768.33724438)
47
+ @var Ellipsoids.NWL1965: Ellipsoid(name='NWL1965', a=6378145, f=0.00335289, f_=298.25, b=6356759.76948868)
48
+ @var Ellipsoids.OSU86F: Ellipsoid(name='OSU86F', a=6378136.2, f=0.00335281, f_=298.2572236, b=6356751.51693008)
49
+ @var Ellipsoids.OSU91A: Ellipsoid(name='OSU91A', a=6378136.3, f=0.00335281, f_=298.2572236, b=6356751.6165948)
50
+ @var Ellipsoids.Plessis1817: Ellipsoid(name='Plessis1817', a=6376523, f=0.00324002, f_=308.64, b=6355862.93325557)
51
+ @var Ellipsoids.PZ90: Ellipsoid(name='PZ90', a=6378136, f=0.0033528, f_=298.2578393, b=6356751.36174571)
52
+ @var Ellipsoids.SGS85: Ellipsoid(name='SGS85', a=6378136, f=0.00335281, f_=298.257, b=6356751.30156878)
53
+ @var Ellipsoids.SoAmerican1969: Ellipsoid(name='SoAmerican1969', a=6378160, f=0.00335289, f_=298.25, b=6356774.71919531)
54
+ @var Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415)
55
+ @var Ellipsoids.SphereAuthalic: Ellipsoid(name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000)
56
+ @var Ellipsoids.SpherePopular: Ellipsoid(name='SpherePopular', a=6378137, f=0, f_=0, b=6378137)
57
+ @var Ellipsoids.Struve1860: Ellipsoid(name='Struve1860', a=6378298.3, f=0.00339294, f_=294.73, b=6356657.14266956)
58
+ @var Ellipsoids.WGS60: Ellipsoid(name='WGS60', a=6378165, f=0.00335233, f_=298.3, b=6356783.28695944)
59
+ @var Ellipsoids.WGS66: Ellipsoid(name='WGS66', a=6378145, f=0.00335289, f_=298.25, b=6356759.76948868)
60
+ @var Ellipsoids.WGS72: Ellipsoid(name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609)
61
+ @var Ellipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518)
62
+ @var Ellipsoids.WGS84_NGS: Ellipsoid(name='WGS84_NGS', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035)
63
63
  '''
64
64
  # make sure int/int division yields float quotient, see .basics
65
65
  from __future__ import division as _; del _ # PYCHOK semicolon
@@ -79,21 +79,21 @@ from pygeodesy.interns import NN, _a_, _Airy1830_, _AiryModified_, _b_, _Bessel1
79
79
  _Krassowsky1940_, _lat_, _meridional_, _negative_, _not_finite_, \
80
80
  _prime_vertical_, _radius_, _Sphere_, _SPACE_, _vs_, _WGS72_, _WGS84_
81
81
  # from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS # from .named
82
- from pygeodesy.named import _lazyNamedEnumItem as _lazy, _name__, _name2__, _NamedEnum, \
82
+ from pygeodesy.named import _lazyNamedEnumItem as _lazy, _name__, _NamedEnum, \
83
83
  _NamedEnumItem, _NamedTuple, _Pass, _ALL_LAZY, _MODS
84
84
  from pygeodesy.namedTuples import Distance2Tuple, Vector3Tuple, Vector4Tuple
85
85
  from pygeodesy.props import deprecated_Property_RO, Property_RO, property_doc_, \
86
86
  deprecated_property_RO, property_RO
87
87
  from pygeodesy.streprs import Fmt, fstr, instr, strs, unstr
88
88
  # from pygeodesy.triaxials import _hartzell3 # _MODS
89
- from pygeodesy.units import Bearing_, Distance, Float, Float_, Height, Lam_, Lat, Meter, \
90
- Meter2, Meter3, Phi, Phi_, Radius, Radius_, Scalar
89
+ from pygeodesy.units import Bearing_, Distance, Float, Float_, Height, Lamd, Lat, Meter, \
90
+ Meter2, Meter3, Phi, Phid, Radius, Radius_, Scalar
91
91
  from pygeodesy.utily import atan1, atan1d, atan2b, degrees90, m2radians, radians2m, sincos2d
92
92
 
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.05.28'
96
+ __version__ = '24.06.24'
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
@@ -443,7 +443,7 @@ class Ellipsoid(_NamedEnumItem):
443
443
  '''
444
444
  if self.f:
445
445
  f = self._albersCyl._tanf if inverse else self._albersCyl._txif # PYCHOK attr
446
- lat = atan1d(f(tan(Phi_(lat)))) # PYCHOK attr
446
+ lat = atan1d(f(tan(Phid(lat)))) # PYCHOK attr
447
447
  return _aux(lat, inverse, Ellipsoid.auxAuthalic)
448
448
 
449
449
  def auxConformal(self, lat, inverse=False):
@@ -462,7 +462,7 @@ class Ellipsoid(_NamedEnumItem):
462
462
  '''
463
463
  if self.f:
464
464
  f = self.es_tauf if inverse else self.es_taupf # PYCHOK attr
465
- lat = atan1d(f(tan(Phi_(lat)))) # PYCHOK attr
465
+ lat = atan1d(f(tan(Phid(lat)))) # PYCHOK attr
466
466
  return _aux(lat, inverse, Ellipsoid.auxConformal)
467
467
 
468
468
  def auxGeocentric(self, lat, inverse=False):
@@ -481,7 +481,7 @@ class Ellipsoid(_NamedEnumItem):
481
481
  '''
482
482
  if self.f:
483
483
  f = self.a2_b2 if inverse else self.b2_a2
484
- lat = atan1d(f * tan(Phi_(lat)))
484
+ lat = atan1d(f * tan(Phid(lat)))
485
485
  return _aux(lat, inverse, Ellipsoid.auxGeocentric)
486
486
 
487
487
  def auxIsometric(self, lat, inverse=False):
@@ -503,7 +503,7 @@ class Ellipsoid(_NamedEnumItem):
503
503
  U{Snyder<https://Pubs.USGS.gov/pp/1395/report.pdf>}, pp 15-16.
504
504
  '''
505
505
  if self.f:
506
- r = Phi_(lat, clip=0)
506
+ r = Phid(lat, clip=0)
507
507
  lat = degrees(atan1(self.es_tauf(sinh(r))) if inverse else
508
508
  asinh(self.es_taupf(tan(r))))
509
509
  # clip=0, since auxIsometric(+/-90) is far outside [-90..+90]
@@ -664,7 +664,7 @@ class Ellipsoid(_NamedEnumItem):
664
664
  instance.
665
665
 
666
666
  @raise RangeError: Latitude B{C{lat}} outside valid range and
667
- L{pygeodesy.rangerrors} set to C{True}.
667
+ L{rangerrors<pygeodesy.rangerrors>} is C{True}.
668
668
 
669
669
  @raise TypeError: Invalid B{C{lat}}.
670
670
 
@@ -702,7 +702,7 @@ class Ellipsoid(_NamedEnumItem):
702
702
  and polar radii) or C{0} for near-polar B{C{lat}}.
703
703
 
704
704
  @raise RangeError: Latitude B{C{lat}} outside valid range and
705
- L{pygeodesy.rangerrors} set to C{True}.
705
+ L{rangerrors<pygeodesy.rangerrors>} is C{True}.
706
706
 
707
707
  @raise ValueError: Invalid B{C{deg}} or B{C{lat}}.
708
708
  '''
@@ -730,10 +730,10 @@ class Ellipsoid(_NamedEnumItem):
730
730
 
731
731
  @see: Function L{pygeodesy.flatLocal}/L{pygeodesy.hubeny}.
732
732
  '''
733
- phi0 = Phi_(lat0=lat0)
733
+ phi0 = Phid(lat0=lat0)
734
734
  m, n = self.roc2_(phi0, scaled=True)
735
- m *= Phi_(lat1=lat1) - phi0
736
- n *= Lam_(lon1=lon1) - Lam_(lon0=lon0)
735
+ m *= Phid(lat1=lat1) - phi0
736
+ n *= Lamd(lon1=lon1) - Lamd(lon0=lon0)
737
737
  return Distance2Tuple(hypot(m, n), atan2b(n, m))
738
738
 
739
739
  @Property_RO
@@ -1033,9 +1033,12 @@ class Ellipsoid(_NamedEnumItem):
1033
1033
  def _Geodesics(self):
1034
1034
  '''(INTERNAL) Get all C{Geodesic...} classes, I{once}.
1035
1035
  '''
1036
- Ellipsoid._Geodesics = t = (_MODS.geodesicw._wrapped.Geodesic, # overwrite property_RO
1037
- _MODS.geodesicx.GeodesicExact,
1038
- _MODS.geodsolve.GeodesicSolve)
1036
+ try:
1037
+ t = _MODS.geodesicw._wrapped.Geodesic,
1038
+ except ImportError:
1039
+ t = ()
1040
+ Ellipsoid._Geodesics = t = (_MODS.geodesicx.GeodesicExact, # overwrite property_RO
1041
+ _MODS.geodsolve.GeodesicSolve) + t
1039
1042
  return t
1040
1043
 
1041
1044
  @property_RO
@@ -1156,7 +1159,7 @@ class Ellipsoid(_NamedEnumItem):
1156
1159
  v = v.times_(t, t, 0) # force z=0.0
1157
1160
  h = x - a # equatorial
1158
1161
  else: # normal in 1st quadrant
1159
- x, y, i = _normalTo3(x, y, self)
1162
+ x, y, i = _plumbTo3(x, y, self)
1160
1163
  t, v = v, v.times_(x, x, y)
1161
1164
  h = t.minus(v).length
1162
1165
 
@@ -1260,7 +1263,7 @@ class Ellipsoid(_NamedEnumItem):
1260
1263
  @return: The meridional length at B{C{lat}}, negative on southern
1261
1264
  hemisphere (C{meter}).
1262
1265
  '''
1263
- r = self._elliptic_e22.fEd(self.auxParametric(lat)) if self.f else Phi_(lat)
1266
+ r = self._elliptic_e22.fEd(self.auxParametric(lat)) if self.f else Phid(lat)
1264
1267
  return Distance(Llat=self.b * r)
1265
1268
 
1266
1269
  Lmeridian = Llat # meridional distance
@@ -1283,8 +1286,8 @@ class Ellipsoid(_NamedEnumItem):
1283
1286
  return self.a
1284
1287
 
1285
1288
  def m2degrees(self, distance, lat=0):
1286
- '''Convert a distance to an angle along the equator or
1287
- along a parallel of (geodetic) latitude.
1289
+ '''Convert a distance to an angle along the equator or along
1290
+ a parallel of (geodetic) latitude.
1288
1291
 
1289
1292
  @arg distance: Distance (C{meter}).
1290
1293
  @kwarg lat: Parallel latitude (C{degrees90}, C{str}).
@@ -1292,7 +1295,7 @@ class Ellipsoid(_NamedEnumItem):
1292
1295
  @return: Angle (C{degrees}) or C{INF} for near-polar B{C{lat}}.
1293
1296
 
1294
1297
  @raise RangeError: Latitude B{C{lat}} outside valid range and
1295
- L{pygeodesy.rangerrors} set to C{True}.
1298
+ L{rangerrors<pygeodesy.rangerrors>} is C{True}.
1296
1299
 
1297
1300
  @raise ValueError: Invalid B{C{distance}} or B{C{lat}}.
1298
1301
  '''
@@ -1308,7 +1311,7 @@ class Ellipsoid(_NamedEnumItem):
1308
1311
  @return: Angle (C{radians}) or C{INF} for near-polar B{C{lat}}.
1309
1312
 
1310
1313
  @raise RangeError: Latitude B{C{lat}} outside valid range and
1311
- L{pygeodesy.rangerrors} set to C{True}.
1314
+ L{rangerrors<pygeodesy.rangerrors>} is C{True}.
1312
1315
 
1313
1316
  @raise ValueError: Invalid B{C{distance}} or B{C{lat}}.
1314
1317
  '''
@@ -1408,8 +1411,8 @@ class Ellipsoid(_NamedEnumItem):
1408
1411
  Rvolumetric = R3
1409
1412
 
1410
1413
  def radians2m(self, rad, lat=0):
1411
- '''Convert an angle to the distance along the equator or
1412
- along a parallel of (geodetic) latitude.
1414
+ '''Convert an angle to the distance along the equator or along
1415
+ a parallel of (geodetic) latitude.
1413
1416
 
1414
1417
  @arg rad: The angle (C{radians}).
1415
1418
  @kwarg lat: Parallel latitude (C{degrees90}, C{str}).
@@ -1418,7 +1421,7 @@ class Ellipsoid(_NamedEnumItem):
1418
1421
  and polar radii) or C{0} for near-polar B{C{lat}}.
1419
1422
 
1420
1423
  @raise RangeError: Latitude B{C{lat}} outside valid range and
1421
- L{pygeodesy.rangerrors} set to C{True}.
1424
+ L{rangerrors<pygeodesy.rangerrors>} is C{True}.
1422
1425
 
1423
1426
  @raise ValueError: Invalid B{C{rad}} or B{C{lat}}.
1424
1427
  '''
@@ -1452,7 +1455,7 @@ class Ellipsoid(_NamedEnumItem):
1452
1455
  @see: U{Geocentric Radius
1453
1456
  <https://WikiPedia.org/wiki/Earth_radius#Geocentric_radius>}
1454
1457
  '''
1455
- r, a = self.a, Phi_(lat)
1458
+ r, a = self.a, Phid(lat)
1456
1459
  if a and self.f:
1457
1460
  if fabs(a) < PI_2:
1458
1461
  s2, c2 = _s2_c2(a)
@@ -1555,7 +1558,7 @@ class Ellipsoid(_NamedEnumItem):
1555
1558
  @return: Approximate earth radius (C{meter}).
1556
1559
 
1557
1560
  @raise RangeError: Latitude B{C{lat}} outside valid range and
1558
- L{pygeodesy.rangerrors} set to C{True}.
1561
+ L{rangerrors<pygeodesy.rangerrors>} is C{True}.
1559
1562
 
1560
1563
  @raise TypeError: Invalid B{C{lat}}.
1561
1564
 
@@ -1620,7 +1623,7 @@ class Ellipsoid(_NamedEnumItem):
1620
1623
  prime vertical U{Radii of Curvature<https://WikiPedia.org/wiki/
1621
1624
  Earth_radius#Radii_of_curvature>}.
1622
1625
  '''
1623
- return self.roc2_(Phi_(lat), scaled=scaled)
1626
+ return self.roc2_(Phid(lat), scaled=scaled)
1624
1627
 
1625
1628
  def roc2_(self, phi, scaled=False):
1626
1629
  '''Compute the I{meridional} and I{prime-vertical}, I{normal} radii of
@@ -1664,7 +1667,7 @@ class Ellipsoid(_NamedEnumItem):
1664
1667
  @return: Directional radius of curvature (C{meter}).
1665
1668
 
1666
1669
  @raise RangeError: Latitude B{C{lat}} outside valid range and
1667
- L{pygeodesy.rangerrors} set to C{True}.
1670
+ L{rangerrors<pygeodesy.rangerrors>} is C{True}.
1668
1671
 
1669
1672
  @raise ValueError: Invalid B{C{lat}} or B{C{bearing}}.
1670
1673
 
@@ -1672,7 +1675,7 @@ class Ellipsoid(_NamedEnumItem):
1672
1675
  '''
1673
1676
  if self.f:
1674
1677
  s2, c2 = _s2_c2(Bearing_(bearing))
1675
- m, n = self.roc2_(Phi_(lat))
1678
+ m, n = self.roc2_(Phid(lat))
1676
1679
  if n < m: # == n / (c2 * n / m + s2)
1677
1680
  c2 *= n / m
1678
1681
  elif m < n: # == m / (c2 + s2 * m / n)
@@ -1708,12 +1711,12 @@ class Ellipsoid(_NamedEnumItem):
1708
1711
  Earth_radius#Radii_of_curvature>}
1709
1712
  '''
1710
1713
  # using ...
1711
- # m, n = self.roc2_(Phi_(lat))
1714
+ # m, n = self.roc2_(Phid(lat))
1712
1715
  # return sqrt(m * n)
1713
1716
  # ... requires 1 or 2 sqrt
1714
1717
  g = self.b
1715
1718
  if self.f:
1716
- s2, c2 = _s2_c2(Phi_(lat))
1719
+ s2, c2 = _s2_c2(Phid(lat))
1717
1720
  g = g / (c2 + self.b2_a2 * s2)
1718
1721
  return Radius(rocGauss=g)
1719
1722
 
@@ -1730,7 +1733,7 @@ class Ellipsoid(_NamedEnumItem):
1730
1733
  Earth_radius#Radii_of_curvature>}
1731
1734
  '''
1732
1735
  if self.f:
1733
- m, n = self.roc2_(Phi_(lat))
1736
+ m, n = self.roc2_(Phid(lat))
1734
1737
  m *= n * _2_0 / (m + n) # == 2 / (1 / m + 1 / n)
1735
1738
  else:
1736
1739
  m = self.a
@@ -1749,7 +1752,7 @@ class Ellipsoid(_NamedEnumItem):
1749
1752
  <https://www.EdWilliams.org/avform.htm#flat>} and U{Radii of
1750
1753
  Curvature<https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}.
1751
1754
  '''
1752
- return self.roc2_(Phi_(lat)).meridional if lat else \
1755
+ return self.roc2_(Phid(lat)).meridional if lat else \
1753
1756
  self.rocEquatorial2.meridional
1754
1757
 
1755
1758
  rocPolar = a2_b # synonymous
@@ -1769,7 +1772,7 @@ class Ellipsoid(_NamedEnumItem):
1769
1772
  U{Radii of Curvature<https://WikiPedia.org/wiki/
1770
1773
  Earth_radius#Radii_of_curvature>}.
1771
1774
  '''
1772
- return self.roc2_(Phi_(lat)).prime_vertical if lat else \
1775
+ return self.roc2_(Phid(lat)).prime_vertical if lat else \
1773
1776
  self.rocEquatorial2.prime_vertical
1774
1777
 
1775
1778
  rocTransverse = rocPrimeVertical # synonymous
@@ -1818,23 +1821,26 @@ class Ellipsoid(_NamedEnumItem):
1818
1821
  '''
1819
1822
  return Ellipsoid2(self, None, **name)
1820
1823
 
1821
- def toStr(self, prec=8, terse=0, **name): # PYCHOK expected
1824
+ def toStr(self, prec=8, terse=4, **sep_name): # PYCHOK expected
1822
1825
  '''Return this ellipsoid as a text string.
1823
1826
 
1824
1827
  @kwarg prec: Number of decimal digits, unstripped (C{int}).
1825
- @kwarg terse: Limit the number of items (C{int}, 0...18).
1826
- @kwarg name: Optional C{B{name}=NN} (C{str}) or C{None} to
1827
- exclude this ellipsoid's name.
1828
+ @kwarg terse: Limit the number of items (C{int}, 0...18),
1829
+ use C{B{terse}=0} or C{=None} for all.
1830
+ @kwarg sep_name: Optional C{B{name}=NN} (C{str}) or C{None}
1831
+ to exclude this ellipsoid's name and separator
1832
+ C{B{sep}=", "} to join the items (C{str}).
1828
1833
 
1829
1834
  @return: This C{Ellipsoid}'s attributes (C{str}).
1830
1835
  '''
1831
- E = Ellipsoid
1832
- t = E.a, E.b, E.f_, E.f, E.f2, E.n, E.e, E.e2, E.e21, E.e22, E.e32, \
1833
- E.A, E.L, E.R1, E.R2, E.R3, E.Rbiaxial, E.Rtriaxial
1836
+ E = Ellipsoid
1837
+ t = (E.a, E.f, E.f_, E.b, E.f2, E.n, E.e,
1838
+ E.e2, E.e21, E.e22, E.e32,
1839
+ E.A, E.L, E.R1, E.R2, E.R3,
1840
+ E.Rbiaxial, E.Rtriaxial)
1834
1841
  if terse:
1835
1842
  t = t[:terse]
1836
- n, _ = _name2__(**name) # name=None
1837
- return self._instr(n, prec, props=t)
1843
+ return self._instr(prec=prec, props=t, **sep_name)
1838
1844
 
1839
1845
  def toTriaxial(self, **name):
1840
1846
  '''Convert this ellipsoid to a L{Triaxial_}.
@@ -2270,10 +2276,10 @@ def n2f_(n):
2270
2276
  return f2f_(n2f(n))
2271
2277
 
2272
2278
 
2273
- def _normalTo3(px, py, E, eps=EPS): # in .height4 above
2279
+ def _plumbTo3(px, py, E, eps=EPS): # in .height4 above
2274
2280
  '''(INTERNAL) Nearest point on a 2-D ellipse in 1st quadrant.
2275
2281
 
2276
- @see: Functions C{pygeodesy.triaxial._normalTo4} and C{-To5}.
2282
+ @see: Functions C{pygeodesy.triaxial._plumbTo4} and C{-._plumbTo5}.
2277
2283
  '''
2278
2284
  a, b, e0 = E.a, E.b, EPS0
2279
2285
  if min(px, py, a, b) < e0:
@@ -2414,7 +2420,7 @@ if __name__ == '__main__':
2414
2420
  Ellipsoids.Sphere, Ellipsoids.SpherePopular,
2415
2421
  Ellipsoid(_EWGS84.b, _EWGS84.a, name='_Prolate')):
2416
2422
  e = f2n(E.f) - E.n
2417
- printf('# %s: %s', _DOT_('Ellipsoids', E.name), E.toStr(prec=10), nl=1)
2423
+ printf('# %s: %s', _DOT_('Ellipsoids', E.name), E.toStr(prec=10, terse=0), nl=1)
2418
2424
  printf('# e=%s, f_=%s, f=%s, n=%s (%s)', fstr(E.e, prec=13, fmt=Fmt.e),
2419
2425
  fstr(E.f_, prec=13, fmt=Fmt.e),
2420
2426
  fstr(E.f, prec=13, fmt=Fmt.e),
@@ -2430,31 +2436,31 @@ if __name__ == '__main__':
2430
2436
 
2431
2437
  # % python3 -m pygeodesy.ellipsoids
2432
2438
 
2433
- # Ellipsoids.WGS84: name='WGS84', a=6378137, b=6356752.3142451793, f_=298.257223563, f=0.0033528107, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007
2439
+ # Ellipsoids.WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007
2434
2440
  # e=8.1819190842622e-02, f_=2.98257223563e+02, f=3.3528106647475e-03, n=1.6792203863837e-03 (0.0e+00)
2435
2441
  # AlphaKs 0.00083773182062446994, 0.00000076085277735725, 0.00000000119764550324, 0.00000000000242917068, 0.00000000000000571182, 0.0000000000000000148, 0.00000000000000000004, 0.0
2436
2442
  # BetaKs 0.00083773216405794875, 0.0000000590587015222, 0.00000000016734826653, 0.00000000000021647981, 0.00000000000000037879, 0.00000000000000000072, 0.0, 0.0
2437
2443
  # KsOrder 8
2438
2444
 
2439
- # Ellipsoids.GRS80: name='GRS80', a=6378137, b=6356752.3141403468, f_=298.2572221009, f=0.0033528107, f2=0.0033640898, n=0.0016792204, e=0.081819191, e2=0.00669438, e21=0.99330562, e22=0.0067394968, e32=0.0033584313, A=6367449.1457710434, L=10001965.7292304561, R1=6371008.7713801153, R2=6371007.1808835147, R3=6371000.7899741363, Rbiaxial=6367453.6344640013, Rtriaxial=6372797.5559332585
2445
+ # Ellipsoids.GRS80: name='GRS80', a=6378137, f=0.0033528107, f_=298.2572221009, b=6356752.3141403468, f2=0.0033640898, n=0.0016792204, e=0.081819191, e2=0.00669438, e21=0.99330562, e22=0.0067394968, e32=0.0033584313, A=6367449.1457710434, L=10001965.7292304561, R1=6371008.7713801153, R2=6371007.1808835147, R3=6371000.7899741363, Rbiaxial=6367453.6344640013, Rtriaxial=6372797.5559332585
2440
2446
  # e=8.1819191042833e-02, f_=2.9825722210088e+02, f=3.3528106811837e-03, n=1.6792203946295e-03 (0.0e+00)
2441
2447
  # AlphaKs 0.00083773182472890429, 0.00000076085278481561, 0.00000000119764552086, 0.00000000000242917073, 0.00000000000000571182, 0.0000000000000000148, 0.00000000000000000004, 0.0
2442
2448
  # BetaKs 0.0008377321681623882, 0.00000005905870210374, 0.000000000167348269, 0.00000000000021647982, 0.00000000000000037879, 0.00000000000000000072, 0.0, 0.0
2443
2449
  # KsOrder 8
2444
2450
 
2445
- # Ellipsoids.Sphere: name='Sphere', a=6371008.7714149999, b=6371008.7714149999, f_=0, f=0, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6371008.7714149999, L=10007557.1761167478, R1=6371008.7714149999, R2=6371008.7714149999, R3=6371008.7714149999, Rbiaxial=6371008.7714149999, Rtriaxial=6371008.7714149999
2451
+ # Ellipsoids.Sphere: name='Sphere', a=6371008.7714149999, f=0, f_=0, b=6371008.7714149999, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6371008.7714149999, L=10007557.1761167478, R1=6371008.7714149999, R2=6371008.7714149999, R3=6371008.7714149999, Rbiaxial=6371008.7714149999, Rtriaxial=6371008.7714149999
2446
2452
  # e=0.0e+00, f_=0.0e+00, f=0.0e+00, n=0.0e+00 (0.0e+00)
2447
2453
  # AlphaKs 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
2448
2454
  # BetaKs 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
2449
2455
  # KsOrder 8
2450
2456
 
2451
- # Ellipsoids.SpherePopular: name='SpherePopular', a=6378137, b=6378137, f_=0, f=0, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6378137, L=10018754.171394622, R1=6378137, R2=6378137, R3=6378137, Rbiaxial=6378137, Rtriaxial=6378137
2457
+ # Ellipsoids.SpherePopular: name='SpherePopular', a=6378137, f=0, f_=0, b=6378137, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6378137, L=10018754.171394622, R1=6378137, R2=6378137, R3=6378137, Rbiaxial=6378137, Rtriaxial=6378137
2452
2458
  # e=0.0e+00, f_=0.0e+00, f=0.0e+00, n=0.0e+00 (0.0e+00)
2453
2459
  # AlphaKs 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
2454
2460
  # BetaKs 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
2455
2461
  # KsOrder 8
2456
2462
 
2457
- # Ellipsoids._Prolate: name='_Prolate', a=6356752.3142451793, b=6378137, f_=-297.257223563, f=-0.0033640898, f2=-0.0033528107, n=-0.0016792204, e=0.0820944379, e2=-0.0067394967, e21=1.0067394967, e22=-0.00669438, e32=-0.0033584313, A=6367449.1458234144, L=10035500.5204500314, R1=6363880.5428301189, R2=6363878.9413582645, R3=6363872.5644020075, Rbiaxial=6367453.6345163295, Rtriaxial=6362105.2243882557
2463
+ # Ellipsoids._Prolate: name='_Prolate', a=6356752.3142451793, f=-0.0033640898, f_=-297.257223563, b=6378137, f2=-0.0033528107, n=-0.0016792204, e=0.0820944379, e2=-0.0067394967, e21=1.0067394967, e22=-0.00669438, e32=-0.0033584313, A=6367449.1458234144, L=10035500.5204500314, R1=6363880.5428301189, R2=6363878.9413582645, R3=6363872.5644020075, Rbiaxial=6367453.6345163295, Rtriaxial=6362105.2243882557
2458
2464
  # e=8.2094437949696e-02, f_=-2.97257223563e+02, f=-3.3640898209765e-03, n=-1.6792203863837e-03 (0.0e+00)
2459
2465
  # AlphaKs -0.00084149152514366627, 0.00000076653480614871, -0.00000000120934503389, 0.0000000000024576225, -0.00000000000000578863, 0.00000000000000001502, -0.00000000000000000004, 0.0
2460
2466
  # BetaKs -0.00084149187224351817, 0.00000005842735196773, -0.0000000001680487236, 0.00000000000021706261, -0.00000000000000038002, 0.00000000000000000073, -0.0, 0.0