pygeodesy 24.5.24__py2.py3-none-any.whl → 24.6.9__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.5.24.dist-info → PyGeodesy-24.6.9.dist-info}/METADATA +6 -5
- PyGeodesy-24.6.9.dist-info/RECORD +116 -0
- pygeodesy/__init__.py +4 -4
- pygeodesy/auxilats/__init__.py +1 -1
- pygeodesy/auxilats/__main__.py +2 -2
- pygeodesy/auxilats/auxAngle.py +4 -4
- pygeodesy/basics.py +39 -5
- pygeodesy/booleans.py +54 -67
- pygeodesy/cartesianBase.py +138 -147
- pygeodesy/constants.py +3 -3
- pygeodesy/deprecated/functions.py +9 -3
- pygeodesy/ecef.py +67 -72
- pygeodesy/ellipsoidalBase.py +18 -56
- pygeodesy/ellipsoidalGeodSolve.py +2 -2
- pygeodesy/ellipsoidalKarney.py +3 -3
- pygeodesy/ellipsoidalNvector.py +7 -7
- pygeodesy/ellipsoids.py +6 -5
- pygeodesy/errors.py +20 -10
- pygeodesy/etm.py +16 -21
- pygeodesy/fmath.py +9 -20
- pygeodesy/formy.py +60 -74
- pygeodesy/frechet.py +13 -14
- pygeodesy/fsums.py +60 -26
- pygeodesy/geodesicx/__init__.py +1 -1
- pygeodesy/geodesicx/__main__.py +2 -2
- pygeodesy/geodesicx/gx.py +3 -5
- pygeodesy/geodsolve.py +24 -26
- pygeodesy/geohash.py +27 -40
- pygeodesy/geoids.py +1 -1
- pygeodesy/hausdorff.py +17 -18
- pygeodesy/heights.py +17 -30
- pygeodesy/internals.py +15 -14
- pygeodesy/interns.py +3 -9
- pygeodesy/iters.py +2 -2
- pygeodesy/karney.py +8 -7
- pygeodesy/latlonBase.py +189 -176
- pygeodesy/lazily.py +92 -56
- pygeodesy/lcc.py +2 -2
- pygeodesy/ltp.py +93 -55
- pygeodesy/ltpTuples.py +304 -240
- pygeodesy/mgrs.py +51 -24
- pygeodesy/named.py +159 -136
- pygeodesy/namedTuples.py +43 -14
- pygeodesy/nvectorBase.py +20 -23
- pygeodesy/osgr.py +40 -48
- pygeodesy/points.py +11 -11
- pygeodesy/props.py +29 -16
- pygeodesy/rhumb/aux_.py +13 -15
- pygeodesy/rhumb/bases.py +12 -5
- pygeodesy/rhumb/ekx.py +24 -18
- pygeodesy/rhumb/solve.py +20 -70
- pygeodesy/simplify.py +16 -16
- pygeodesy/solveBase.py +35 -32
- pygeodesy/sphericalBase.py +33 -31
- pygeodesy/sphericalTrigonometry.py +17 -17
- pygeodesy/streprs.py +6 -4
- pygeodesy/trf.py +11 -9
- pygeodesy/triaxials.py +71 -50
- pygeodesy/units.py +40 -65
- pygeodesy/unitsBase.py +2 -2
- pygeodesy/ups.py +66 -70
- pygeodesy/utily.py +7 -6
- pygeodesy/utm.py +152 -156
- pygeodesy/utmups.py +38 -38
- pygeodesy/utmupsBase.py +102 -106
- pygeodesy/vector3d.py +34 -36
- pygeodesy/vector3dBase.py +12 -9
- pygeodesy/webmercator.py +43 -51
- PyGeodesy-24.5.24.dist-info/RECORD +0 -116
- {PyGeodesy-24.5.24.dist-info → PyGeodesy-24.6.9.dist-info}/WHEEL +0 -0
- {PyGeodesy-24.5.24.dist-info → PyGeodesy-24.6.9.dist-info}/top_level.txt +0 -0
pygeodesy/heights.py
CHANGED
|
@@ -75,8 +75,8 @@ from pygeodesy.errors import _AssertionError, LenError, PointsError, \
|
|
|
75
75
|
_SciPyIssue, _xattr, _xkwds, _xkwds_get, _xkwds_item2
|
|
76
76
|
# from pygeodesy.fmath import fidw # _MODS
|
|
77
77
|
# from pygeodesy.formy import cosineAndoyerLambert, cosineForsytheAndoyerLambert, \
|
|
78
|
-
# cosineLaw,
|
|
79
|
-
# flatPolar, haversine, thomas, vincentys # _MODS
|
|
78
|
+
# cosineLaw, equirectangular4, euclidean, flatLocal, \
|
|
79
|
+
# flatPolar, haversine, thomas, vincentys # _MODS.into
|
|
80
80
|
# from pygeodesy.internals import _version2 # _MODS
|
|
81
81
|
from pygeodesy.interns import NN, _COMMASPACE_, _cubic_, _insufficient_, _linear_, \
|
|
82
82
|
_NOTEQUAL_, _PLUS_, _scipy_, _SPACE_, _STAR_
|
|
@@ -91,9 +91,10 @@ from pygeodesy.units import _isDegrees, Float_, Int_
|
|
|
91
91
|
# from math import radians # from .points
|
|
92
92
|
|
|
93
93
|
__all__ = _ALL_LAZY.heights
|
|
94
|
-
__version__ = '24.
|
|
94
|
+
__version__ = '24.06.03'
|
|
95
95
|
|
|
96
96
|
_error_ = 'error'
|
|
97
|
+
_formy = _MODS.into(formy=__name__)
|
|
97
98
|
_llis_ = 'llis'
|
|
98
99
|
_smoothing_ = 'smoothing'
|
|
99
100
|
|
|
@@ -693,20 +694,6 @@ class _HeightIDW(_HeightBase):
|
|
|
693
694
|
i = Fmt.INDEX(knots=i)
|
|
694
695
|
raise HeightError(i, k, cause=e)
|
|
695
696
|
|
|
696
|
-
@property_RO
|
|
697
|
-
def _fmath(self):
|
|
698
|
-
'''(INTERNAL) Get module C{fmath}, I{once}.
|
|
699
|
-
'''
|
|
700
|
-
_HeightIDW._fmath = f = _MODS.fmath # overwrite property_RO
|
|
701
|
-
return f
|
|
702
|
-
|
|
703
|
-
@property_RO
|
|
704
|
-
def _formy(self):
|
|
705
|
-
'''(INTERNAL) Get module C{formy}, I{once}.
|
|
706
|
-
'''
|
|
707
|
-
_HeightIDW._formy = f = _MODS.formy # overwrite property_RO
|
|
708
|
-
return f
|
|
709
|
-
|
|
710
697
|
def height(self, lats, lons, **wrap):
|
|
711
698
|
'''Interpolate the height for one or several lat-/longitudes.
|
|
712
699
|
|
|
@@ -735,7 +722,7 @@ class _HeightIDW(_HeightBase):
|
|
|
735
722
|
'''
|
|
736
723
|
ds, hs = self._distances(x, y), self._heights
|
|
737
724
|
try:
|
|
738
|
-
return
|
|
725
|
+
return _MODS.fmath.fidw(hs, ds, beta=self.beta)
|
|
739
726
|
except (TypeError, ValueError) as e:
|
|
740
727
|
raise HeightError(x=x, y=y, cause=e)
|
|
741
728
|
|
|
@@ -798,7 +785,7 @@ class HeightIDWcosineAndoyerLambert(_HeightIDW):
|
|
|
798
785
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
799
786
|
'''
|
|
800
787
|
_HeightIDW.__init__(self, knots, beta=beta, **name__datum_wrap)
|
|
801
|
-
self._func =
|
|
788
|
+
self._func = _formy.cosineAndoyerLambert
|
|
802
789
|
|
|
803
790
|
if _FOR_DOCS:
|
|
804
791
|
__call__ = _HeightIDW.__call__
|
|
@@ -821,7 +808,7 @@ class HeightIDWcosineForsytheAndoyerLambert(_HeightIDW):
|
|
|
821
808
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
822
809
|
'''
|
|
823
810
|
_HeightIDW.__init__(self, knots, beta=beta, **name__datum_wrap)
|
|
824
|
-
self._func =
|
|
811
|
+
self._func = _formy.cosineForsytheAndoyerLambert
|
|
825
812
|
|
|
826
813
|
if _FOR_DOCS:
|
|
827
814
|
__call__ = _HeightIDW.__call__
|
|
@@ -845,7 +832,7 @@ class HeightIDWcosineLaw(_HeightIDW):
|
|
|
845
832
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
846
833
|
'''
|
|
847
834
|
_HeightIDW.__init__(self, knots, beta=beta, **name__radius_wrap)
|
|
848
|
-
self._func =
|
|
835
|
+
self._func = _formy.cosineLaw
|
|
849
836
|
|
|
850
837
|
if _FOR_DOCS:
|
|
851
838
|
__call__ = _HeightIDW.__call__
|
|
@@ -898,14 +885,14 @@ class HeightIDWequirectangular(_HeightIDW):
|
|
|
898
885
|
'''Height interpolator using U{Inverse Distance Weighting
|
|
899
886
|
<https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW) and
|
|
900
887
|
the I{angular} distance in C{radians squared} like function
|
|
901
|
-
L{pygeodesy.
|
|
888
|
+
L{pygeodesy.equirectangular4}.
|
|
902
889
|
'''
|
|
903
890
|
def __init__(self, knots, beta=2, **name__adjust_limit_wrap): # XXX beta=1
|
|
904
891
|
'''New L{HeightIDWequirectangular} interpolator.
|
|
905
892
|
|
|
906
893
|
@kwarg name__adjust_limit_wrap: Optional C{B{name}=NN} for this
|
|
907
894
|
height interpolator (C{str}) and keyword arguments
|
|
908
|
-
for function L{pygeodesy.
|
|
895
|
+
for function L{pygeodesy.equirectangular4}.
|
|
909
896
|
|
|
910
897
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
911
898
|
'''
|
|
@@ -914,7 +901,7 @@ class HeightIDWequirectangular(_HeightIDW):
|
|
|
914
901
|
def _distances(self, x, y):
|
|
915
902
|
'''(INTERNAL) Yield distances to C{(x, y)}.
|
|
916
903
|
'''
|
|
917
|
-
_f, kwds =
|
|
904
|
+
_f, kwds = _formy.equirectangular4, self._kwds
|
|
918
905
|
try:
|
|
919
906
|
for i, k in enumerate(self._knots):
|
|
920
907
|
yield _f(y, x, k.lat, k.lon, **kwds).distance2
|
|
@@ -942,7 +929,7 @@ class HeightIDWeuclidean(_HeightIDW):
|
|
|
942
929
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
943
930
|
'''
|
|
944
931
|
_HeightIDW.__init__(self, knots, beta=beta, **name__adjust_radius_wrap)
|
|
945
|
-
self._func =
|
|
932
|
+
self._func = _formy.euclidean
|
|
946
933
|
|
|
947
934
|
if _FOR_DOCS:
|
|
948
935
|
__call__ = _HeightIDW.__call__
|
|
@@ -995,7 +982,7 @@ class HeightIDWflatLocal(_HeightIDW):
|
|
|
995
982
|
'''
|
|
996
983
|
_HeightIDW.__init__(self, knots, beta=beta,
|
|
997
984
|
**name__datum_hypot_scaled_wrap)
|
|
998
|
-
self._func =
|
|
985
|
+
self._func = _formy.flatLocal
|
|
999
986
|
|
|
1000
987
|
if _FOR_DOCS:
|
|
1001
988
|
__call__ = _HeightIDW.__call__
|
|
@@ -1018,7 +1005,7 @@ class HeightIDWflatPolar(_HeightIDW):
|
|
|
1018
1005
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
1019
1006
|
'''
|
|
1020
1007
|
_HeightIDW.__init__(self, knots, beta=beta, **name__radius_wrap)
|
|
1021
|
-
self._func =
|
|
1008
|
+
self._func = _formy.flatPolar
|
|
1022
1009
|
|
|
1023
1010
|
if _FOR_DOCS:
|
|
1024
1011
|
__call__ = _HeightIDW.__call__
|
|
@@ -1042,7 +1029,7 @@ class HeightIDWhaversine(_HeightIDW):
|
|
|
1042
1029
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
1043
1030
|
'''
|
|
1044
1031
|
_HeightIDW.__init__(self, knots, beta=beta, **name__radius_wrap)
|
|
1045
|
-
self._func =
|
|
1032
|
+
self._func = _formy.haversine
|
|
1046
1033
|
|
|
1047
1034
|
if _FOR_DOCS:
|
|
1048
1035
|
__call__ = _HeightIDW.__call__
|
|
@@ -1106,7 +1093,7 @@ class HeightIDWthomas(_HeightIDW):
|
|
|
1106
1093
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
1107
1094
|
'''
|
|
1108
1095
|
_HeightIDW.__init__(self, knots, beta=beta, **name__datum_wrap)
|
|
1109
|
-
self._func =
|
|
1096
|
+
self._func = _formy.thomas
|
|
1110
1097
|
|
|
1111
1098
|
if _FOR_DOCS:
|
|
1112
1099
|
__call__ = _HeightIDW.__call__
|
|
@@ -1130,7 +1117,7 @@ class HeightIDWvincentys(_HeightIDW):
|
|
|
1130
1117
|
@see: L{Here<_HeightIDW.__init__>} for further details.
|
|
1131
1118
|
'''
|
|
1132
1119
|
_HeightIDW.__init__(self, knots, beta=beta, **name__radius_wrap)
|
|
1133
|
-
self._func =
|
|
1120
|
+
self._func = _formy.vincentys
|
|
1134
1121
|
|
|
1135
1122
|
if _FOR_DOCS:
|
|
1136
1123
|
__call__ = _HeightIDW.__call__
|
pygeodesy/internals.py
CHANGED
|
@@ -32,7 +32,7 @@ def _dunder_nameof(inst, *dflt):
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
def _Property_RO(method):
|
|
35
|
-
'''(INTERNAL) Can't
|
|
35
|
+
'''(INTERNAL) Can't I{recursively} import L{props.property_RO}.
|
|
36
36
|
'''
|
|
37
37
|
name = _dunder_nameof(method)
|
|
38
38
|
|
|
@@ -53,7 +53,7 @@ def _Property_RO(method):
|
|
|
53
53
|
return property(_get, _set, _del)
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
class
|
|
56
|
+
class _MODS_Base(object):
|
|
57
57
|
'''(INTERNAL) Base-class for C{lazily._ALL_MODS}.
|
|
58
58
|
'''
|
|
59
59
|
def __delattr__(self, attr): # PYCHOK no cover
|
|
@@ -207,7 +207,7 @@ class _ALL_MODS_Base(object):
|
|
|
207
207
|
from pygeodesy import streprs # DON'T _lazy_import2
|
|
208
208
|
return streprs
|
|
209
209
|
|
|
210
|
-
_MODS =
|
|
210
|
+
_MODS = _MODS_Base() # PYCHOK overwritten by .lazily
|
|
211
211
|
|
|
212
212
|
|
|
213
213
|
def _caller3(up): # in .lazily, .named
|
|
@@ -217,8 +217,9 @@ def _caller3(up): # in .lazily, .named
|
|
|
217
217
|
# sys._getframe(1) ... 'importlib._bootstrap' line 1032,
|
|
218
218
|
# may throw a ValueError('call stack not deep enough')
|
|
219
219
|
f = _sys._getframe(up + 1)
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
c = f.f_code
|
|
221
|
+
return (c.co_name, # caller name
|
|
222
|
+
_os_path.basename(c.co_filename), # file name .py
|
|
222
223
|
f.f_lineno) # line number
|
|
223
224
|
|
|
224
225
|
|
|
@@ -359,7 +360,7 @@ def _plural(noun, n):
|
|
|
359
360
|
return NN(noun, _s_) if n > 1 else (noun if n else NN)
|
|
360
361
|
|
|
361
362
|
|
|
362
|
-
def print_(*args, **
|
|
363
|
+
def print_(*args, **nl_nt_prec_prefix__end_file_flush_sep__kwds): # PYCHOK no cover
|
|
363
364
|
'''Python 3+ C{print}-like formatting and printing.
|
|
364
365
|
|
|
365
366
|
@arg args: Values to be converted to C{str} and joined by B{C{sep}},
|
|
@@ -367,16 +368,16 @@ def print_(*args, **nl_nt_prec_prefix__end_file_flush_sep_kwds): # PYCHOK no co
|
|
|
367
368
|
|
|
368
369
|
@see: Function L{printf} for further details.
|
|
369
370
|
'''
|
|
370
|
-
return printf(NN, *args, **
|
|
371
|
+
return printf(NN, *args, **nl_nt_prec_prefix__end_file_flush_sep__kwds)
|
|
371
372
|
|
|
372
373
|
|
|
373
|
-
def printf(fmt, *args, **
|
|
374
|
+
def printf(fmt, *args, **nl_nt_prec_prefix__end_file_flush_sep__kwds):
|
|
374
375
|
'''C{Printf-style} and Python 3+ C{print}-like formatting and printing.
|
|
375
376
|
|
|
376
377
|
@arg fmt: U{Printf-style<https://Docs.Python.org/3/library/stdtypes.html#
|
|
377
378
|
printf-style-string-formatting>} format specification (C{str}).
|
|
378
379
|
@arg args: Arguments to be formatted (any C{type}, all positional).
|
|
379
|
-
@kwarg
|
|
380
|
+
@kwarg nl_nt_prec_prefix__end_file_flush_sep__kwds: Optional keyword arguments
|
|
380
381
|
C{B{nl}=0} for the number of leading blank lines (C{int}), C{B{nt}=0}
|
|
381
382
|
the number of trailing blank lines (C{int}), C{B{prefix}=NN} to be
|
|
382
383
|
inserted before the formatted text (C{str}) and Python 3+ C{print}
|
|
@@ -387,7 +388,7 @@ def printf(fmt, *args, **nl_nt_prec_prefix__end_file_flush_sep_kwds):
|
|
|
387
388
|
|
|
388
389
|
@return: Number of bytes written.
|
|
389
390
|
'''
|
|
390
|
-
b, e, f, fl, p, s, kwds = _print7(**
|
|
391
|
+
b, e, f, fl, p, s, kwds = _print7(**nl_nt_prec_prefix__end_file_flush_sep__kwds)
|
|
391
392
|
try:
|
|
392
393
|
if args:
|
|
393
394
|
t = (fmt % args) if fmt else s.join(map(str, args))
|
|
@@ -399,7 +400,7 @@ def printf(fmt, *args, **nl_nt_prec_prefix__end_file_flush_sep_kwds):
|
|
|
399
400
|
except Exception as x:
|
|
400
401
|
_E, s = _MODS.errors._xError2(x)
|
|
401
402
|
unstr = _MODS.streprs.unstr
|
|
402
|
-
t = unstr(printf, fmt, *args, **
|
|
403
|
+
t = unstr(printf, fmt, *args, **nl_nt_prec_prefix__end_file_flush_sep__kwds)
|
|
403
404
|
raise _E(s, txt=t, cause=x)
|
|
404
405
|
try:
|
|
405
406
|
n = f.write(NN(b, t, e))
|
|
@@ -543,15 +544,15 @@ def _version_ints(vs):
|
|
|
543
544
|
|
|
544
545
|
|
|
545
546
|
__all__ = tuple(map(_dunder_nameof, (machine, print_, printf)))
|
|
546
|
-
__version__ = '24.05
|
|
547
|
+
__version__ = '24.06.05'
|
|
547
548
|
|
|
548
549
|
if _dunder_ismain(__name__): # PYCHOK no cover
|
|
549
550
|
|
|
550
551
|
from pygeodesy import _isfrozen, isLazy, version as vs
|
|
551
552
|
|
|
552
553
|
print_(_pygeodesy_, vs, *(_Pythonarchine() + _osversion2()
|
|
553
|
-
+ ['
|
|
554
|
-
'isLazy',
|
|
554
|
+
+ ['_isfrozen', _isfrozen,
|
|
555
|
+
'isLazy', isLazy]))
|
|
555
556
|
|
|
556
557
|
# **) MIT License
|
|
557
558
|
#
|
pygeodesy/interns.py
CHANGED
|
@@ -10,8 +10,8 @@ except NameError: # Python 3+
|
|
|
10
10
|
_intern = _sys.intern
|
|
11
11
|
|
|
12
12
|
_COMMASPACE_ = ', ' # overriden below
|
|
13
|
-
|
|
14
|
-
# ... make._dist, MANIFEST, setup.setup, test.bases,
|
|
13
|
+
_SUB_PACKAGES = 'auxilats', 'deprecated', 'geodesicx', 'rhumb' # PYCHOK in ...
|
|
14
|
+
# ... .lazily, make._dist, MANIFEST, setup.setup, test.bases, .testModules
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class _Dash(str):
|
|
@@ -145,7 +145,6 @@ _and_ = 'and' # PYCHOK OK
|
|
|
145
145
|
# _AND_ = _AMPERSAND_ # PYCHOK OK
|
|
146
146
|
_angle_ = 'angle' # PYCHOK OK
|
|
147
147
|
_antipodal_ = 'antipodal' # PYCHOK OK
|
|
148
|
-
_areaOf_ = 'areaOf' # PYCHOK OK
|
|
149
148
|
_arg_ = 'arg' # PYCHOK OK
|
|
150
149
|
# _ASTERISK_ = _STAR_ # PYCHOK OK
|
|
151
150
|
_AT_ = Str_('@') # PYCHOK OK
|
|
@@ -214,7 +213,6 @@ _ELLIPSIS4_ = Str_('....') # PYCHOK OK
|
|
|
214
213
|
# _ELLIPSISPACED_ = Str_(' ... ') # PYCHOK <https://www.ThePunctuationGuide.com/ellipses.html>
|
|
215
214
|
_ellipsoid_ = 'ellipsoid' # PYCHOK OK
|
|
216
215
|
_ellipsoidal_ = 'ellipsoidal' # PYCHOK OK
|
|
217
|
-
_enabled_ = 'enabled' # PYCHOK OK
|
|
218
216
|
_encode_ = 'encode' # PYCHOK OK
|
|
219
217
|
_end_ = 'end' # PYCHOK OK
|
|
220
218
|
_epoch_ = 'epoch' # PYCHOK OK
|
|
@@ -254,8 +252,6 @@ _intersection_ = 'intersection' # PYCHOK OK
|
|
|
254
252
|
_Intl1924_ = 'Intl1924' # PYCHOK OK
|
|
255
253
|
_invalid_ = 'invalid' # PYCHOK OK
|
|
256
254
|
_invokation_ = 'invokation' # PYCHOK OK
|
|
257
|
-
_isclockwise_ = 'isclockwise' # PYCHOK OK
|
|
258
|
-
_ispolar_ = 'ispolar' # PYCHOK OK
|
|
259
255
|
_j_ = 'j' # PYCHOK OK
|
|
260
256
|
_k0_ = 'k0' # PYCHOK OK
|
|
261
257
|
_keyword_ = 'keyword' # PYCHOK OK
|
|
@@ -317,7 +313,6 @@ _NLHASH_ = Str_(_NL_ + '# ') # PYCHOK OK
|
|
|
317
313
|
_NN_ = 'NN' # PYCHOK OK
|
|
318
314
|
_no_ = _Prefix('no') # PYCHOK OK
|
|
319
315
|
_northing_ = 'northing' # PYCHOK OK
|
|
320
|
-
_NorthPole_ = 'NorthPole' # PYCHOK OK
|
|
321
316
|
_not_ = _Prefix('not') # PYCHOK OK
|
|
322
317
|
_NOTEQUAL_ = _BANG_ + _EQUAL_ # PYCHOK OK
|
|
323
318
|
_not_finite_ = 'not finite' # PYCHOK _not_(_finite_), _infinite_
|
|
@@ -385,7 +380,6 @@ _SLASH_ = Str_('/') # PYCHOK OK
|
|
|
385
380
|
_small_ = 'small' # PYCHOK OK
|
|
386
381
|
_Sphere_ = 'Sphere' # PYCHOK OK
|
|
387
382
|
_spherical_ = 'spherical' # PYCHOK OK
|
|
388
|
-
_SouthPole_ = 'SouthPole' # PYCHOK OK
|
|
389
383
|
_SPACE_ = Str_(' ') # PYCHOK OK
|
|
390
384
|
_specified_ = 'specified' # PYCHOK OK
|
|
391
385
|
_STAR_ = Str_('*') # PYCHOK OK
|
|
@@ -447,7 +441,7 @@ _LR_PAIRS = {_LANGLE_: _RANGLE_,
|
|
|
447
441
|
|
|
448
442
|
__all__ = (_NN_, # NOT MISSING!
|
|
449
443
|
Str_.__name__) # classes
|
|
450
|
-
__version__ = '24.05
|
|
444
|
+
__version__ = '24.06.05'
|
|
451
445
|
|
|
452
446
|
if __name__ == '__main__':
|
|
453
447
|
|
pygeodesy/iters.py
CHANGED
|
@@ -26,7 +26,7 @@ from pygeodesy.units import Int, Radius
|
|
|
26
26
|
from pygeodesy.utily import degrees2m, _Wrap, _1_0
|
|
27
27
|
|
|
28
28
|
__all__ = _ALL_LAZY.iters
|
|
29
|
-
__version__ = '24.
|
|
29
|
+
__version__ = '24.06.09'
|
|
30
30
|
|
|
31
31
|
_items_ = 'items'
|
|
32
32
|
_iterNumpy2len = 1 # adjustable for testing purposes
|
|
@@ -83,7 +83,7 @@ class _BaseIter(_Named):
|
|
|
83
83
|
try:
|
|
84
84
|
self._loop = tuple(self.next for _ in range(loop))
|
|
85
85
|
if self.loop != loop:
|
|
86
|
-
raise RuntimeError # force Error
|
|
86
|
+
raise RuntimeError() # force Error
|
|
87
87
|
except (RuntimeError, StopIteration):
|
|
88
88
|
raise self._Error(self.name, self.loop, txt=_too_(_few_))
|
|
89
89
|
|
pygeodesy/karney.py
CHANGED
|
@@ -143,12 +143,13 @@ from pygeodesy.basics import _copysign, int1s, isint, itemsorted, neg, unsigned0
|
|
|
143
143
|
_xgeographiclib, _zip, _version_info
|
|
144
144
|
from pygeodesy.constants import NAN, _isfinite as _math_isfinite, _0_0, \
|
|
145
145
|
_1_16th, _1_0, _2_0, _180_0, _N_180_0, _360_0
|
|
146
|
-
from pygeodesy.errors import GeodesicError, _ValueError, _xkwds,
|
|
146
|
+
from pygeodesy.errors import GeodesicError, _ValueError, _xkwds, _xkwds_get1
|
|
147
147
|
from pygeodesy.fmath import cbrt, fremainder, norm2
|
|
148
148
|
# from pygeodesy.internals import _version_info # from .basics
|
|
149
|
-
from pygeodesy.interns import
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
from pygeodesy.interns import _2_, _a12_, _area_, _azi2_, _azi12_, _composite_, \
|
|
150
|
+
_lat1_, _lat2_, _lon1_, _lon2_, _m12_, _M12_, \
|
|
151
|
+
_M21_, _number_, _s12_, _S12_, _UNDER_, \
|
|
152
|
+
_BAR_, NN # PYCHOK used!
|
|
152
153
|
from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _getenv
|
|
153
154
|
from pygeodesy.named import ADict, _NamedBase, _NamedTuple, notImplemented, _Pass
|
|
154
155
|
from pygeodesy.props import deprecated_method, Property_RO
|
|
@@ -159,7 +160,7 @@ from pygeodesy.utily import atan2d, sincos2d, tand, _unrollon, fabs
|
|
|
159
160
|
# from math import fabs # from .utily
|
|
160
161
|
|
|
161
162
|
__all__ = _ALL_LAZY.karney
|
|
162
|
-
__version__ = '24.05.
|
|
163
|
+
__version__ = '24.05.31'
|
|
163
164
|
|
|
164
165
|
_K_2_0 = _getenv('PYGEODESY_GEOGRAPHICLIB', _2_) == _2_
|
|
165
166
|
_perimeter_ = 'perimeter'
|
|
@@ -171,7 +172,7 @@ class _GTuple(_NamedTuple): # in .testNamedTuples
|
|
|
171
172
|
def toGDict(self, **updates): # NO name=NN
|
|
172
173
|
'''Convert this C{*Tuple} to a L{GDict}.
|
|
173
174
|
|
|
174
|
-
@kwarg updates: Optional items to apply (C{
|
|
175
|
+
@kwarg updates: Optional items to apply (C{name=value} pairs)
|
|
175
176
|
'''
|
|
176
177
|
r = GDict(_zip(self._Names_, self)) # strict=True
|
|
177
178
|
if updates:
|
|
@@ -845,7 +846,7 @@ def _sum2_(s, t, *vs, **x):
|
|
|
845
846
|
|
|
846
847
|
@note: NOT "error-free", see C{pygeodesy.test/testKarney.py}.
|
|
847
848
|
'''
|
|
848
|
-
x =
|
|
849
|
+
x = _xkwds_get1(x, x=_1_0)
|
|
849
850
|
p = x != _1_0
|
|
850
851
|
|
|
851
852
|
_s2, _u0 = _sum2, unsigned0
|