-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
Due to the transformations of arguments to arrays, if optional arguments are passed as arguments in geo_strf_dyn_height, an error is raised.
I guess that a check should be implemented in
Lines 51 to 57 in d75dfe5
| for i, arg in enumerate(args): | |
| if ismasked[i]: | |
| newargs.append(masked_to_nan(arg)) | |
| elif isduck[i]: | |
| newargs.append(arg) | |
| else: | |
| newargs.append(np.asarray(arg, dtype=float)) |
exemple 1
gsw.geo_strf_dyn_height([34, 34.1, 34.2], [0, 1, 2], [0, 10, 20], 0, 0, 1.0, 'pchip')raises
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-88-9be1c2b56a01> in <module>
----> 1 gsw.geo_strf_dyn_height([34, 34.1, 34.2], [0, 1, 2], [0, 10, 20], 0, 0, 1.0, 'pchip')
~/.cache/pypoetry/virtualenvs/gsw-xarray-NsrEXKiZ-py3.8/lib/python3.8/site-packages/gsw/_utilities.py in wrapper(*args, **kw)
55 newargs.append(arg)
56 else:
---> 57 newargs.append(np.asarray(arg, dtype=float))
58
59 if p is not None:
ValueError: could not convert string to float: 'pchip'exemple 2
gsw.geo_strf_dyn_height([34, 34.1, 34.2], [0, 1, 2], [0, 10, 20], 0, 0, )raises
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-14-ced139a8dd2a> in <module>
----> 1 gsw.geo_strf_dyn_height([34, 34.1, 34.2], [0, 1, 2], [0, 10, 20], 0, 0, )
~/.cache/pypoetry/virtualenvs/gsw-xarray-NsrEXKiZ-py3.8/lib/python3.8/site-packages/gsw/_utilities.py in wrapper(*args, **kw)
60 kw['p'] = newargs.pop()
61
---> 62 ret = f(*newargs, **kw)
63
64 if isinstance(ret, tuple):
~/.cache/pypoetry/virtualenvs/gsw-xarray-NsrEXKiZ-py3.8/lib/python3.8/site-packages/gsw/geostrophy.py in geo_strf_dyn_height(SA, CT, p, p_ref, axis, max_dp, interp_method)
67 with np.errstate(invalid='ignore'):
68 # The need for this context seems to be a bug in np.ma.any.
---> 69 if np.ma.any(np.ma.diff(np.ma.masked_invalid(p), axis=axis) <= 0):
70 raise ValueError('p must be increasing along the specified axis')
71 p = np.broadcast_to(p, SA.shape)
~/.cache/pypoetry/virtualenvs/gsw-xarray-NsrEXKiZ-py3.8/lib/python3.8/site-packages/numpy/ma/core.py in __call__(self, *args, **params)
8200 _extras[p] = params.pop(p)
8201 # Get the result
-> 8202 result = self._func.__call__(*args, **params).view(MaskedArray)
8203 if "fill_value" in common_params:
8204 result.fill_value = _extras.get("fill_value", None)
~/.cache/pypoetry/virtualenvs/gsw-xarray-NsrEXKiZ-py3.8/lib/python3.8/site-packages/numpy/core/overrides.py in diff(*args, **kwargs)
~/.cache/pypoetry/virtualenvs/gsw-xarray-NsrEXKiZ-py3.8/lib/python3.8/site-packages/numpy/lib/function_base.py in diff(a, n, axis, prepend, append)
1412 if nd == 0:
1413 raise ValueError("diff requires input that is at least one dimensional")
-> 1414 axis = normalize_axis_index(axis, nd)
1415
1416 combined = []
TypeError: only integer scalar arrays can be converted to a scalar indexMetadata
Metadata
Assignees
Labels
No labels