home / github / issues

Menu
  • Search all tables
  • GraphQL API

issues: 831148018

This data as json

id node_id number title user state locked assignee milestone comments created_at updated_at closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
831148018 MDU6SXNzdWU4MzExNDgwMTg= 5034 output_dtypes needs to be a tuple, not a sequence 4441338 closed 0     4 2021-03-14T12:47:49Z 2021-04-19T19:33:14Z 2021-04-19T19:33:14Z NONE      

https://github.com/pydata/xarray/blob/d4b7a608bab0e7c140937b0b59ca45115d205145/xarray/core/computation.py#L807

If a sequence, I get TypeError: Field elements must be 2- or 3-tuples, got 'dtype('float64')'

MVE ( WIP, will finish later )

```

p,v are chunked in 'time'

M is a positive integer

msd_w_one_mol takes two args, has two outputs

m,w = xr.apply_ufunc( msd_w_one_mol, p,v, input_core_dims=[('time','spatial'),('time',)], output_core_dims=[('interval',),('interval',)], vectorize=True, dask='parallelized', dask_gufunc_kwargs={ 'output_sizes':{'interval':M}, 'allow_rechunk':True,

'meta':(np.empty((M,),dtype=p.dtype),np.empty((M,),dtype=np.min_scalar_type(M)))

'output_dtypes':[p.dtype,np.min_scalar_type(M)],

},
output_dtypes=[p.dtype,np.min_scalar_type(M)] # error
output_dtypes=(p.dtype,np.min_scalar_type(M)) # works

)

```

Stack Trace: ```


ValueError Traceback (most recent call last) ~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/dask/array/gufunc.py in apply_gufunc(func, signature, args, kwargs) 429 try: --> 430 tmp = blockwise( # First try to compute meta 431 func, loop_output_dims, arginds, concatenate=True, **kwargs

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/dask/array/blockwise.py in blockwise(func, out_ind, name, token, dtype, adjust_chunks, new_axes, align_arrays, concatenate, meta, args, kwargs) 278 --> 279 meta = compute_meta(func, dtype, args[::2], **kwargs) 280 return new_da_object(graph, out, chunks, meta=meta, dtype=dtype)

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/dask/array/utils.py in compute_meta(func, _dtype, args, kwargs) 138 if isinstance(func, np.vectorize): --> 139 meta = func(args_meta) 140 else:

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/numpy/lib/function_base.py in call(self, args, *kwargs) 2112 -> 2113 return self._vectorize_call(func=func, args=vargs) 2114

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/numpy/lib/function_base.py in _vectorize_call(self, func, args) 2186 if self.signature is not None: -> 2187 res = self._vectorize_call_with_signature(func, args) 2188 elif not args:

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/numpy/lib/function_base.py in _vectorize_call_with_signature(self, func, args) 2260 for dim in dims): -> 2261 raise ValueError('cannot call vectorize with a signature ' 2262 'including new output dimensions on size 0 '

ValueError: cannot call vectorize with a signature including new output dimensions on size 0 inputs

During handling of the above exception, another exception occurred:

TypeError Traceback (most recent call last) <ipython-input-119-a2a3ac7df12d> in <module> ----> 1 m,w = xr.apply_ufunc( 2 msd_w_one_mol, 3 p,v, 4 input_core_dims=[('time','spatial'),('time',)], 5 output_core_dims=[('interval',),('interval',)],

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/xarray/core/computation.py in apply_ufunc(func, input_core_dims, output_core_dims, exclude_dims, vectorize, join, dataset_join, dataset_fill_value, keep_attrs, kwargs, dask, output_dtypes, output_sizes, meta, dask_gufunc_kwargs, args) 1126 # feed DataArray apply_variable_ufunc through apply_dataarray_vfunc 1127 elif any(isinstance(a, DataArray) for a in args): -> 1128 return apply_dataarray_vfunc( 1129 variables_vfunc, 1130 args,

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/xarray/core/computation.py in apply_dataarray_vfunc(func, signature, join, exclude_dims, keep_attrs, args) 269 270 data_vars = [getattr(a, "variable", a) for a in args] --> 271 result_var = func(data_vars) 272 273 if signature.num_outputs > 1:

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/xarray/core/computation.py in apply_variable_ufunc(func, signature, exclude_dims, dask, output_dtypes, vectorize, keep_attrs, dask_gufunc_kwargs, args) 722 ) 723 --> 724 result_data = func(input_data) 725 726 if signature.num_outputs == 1:

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/xarray/core/computation.py in func(*arrays) 690 import dask.array as da 691 --> 692 res = da.apply_gufunc( 693 numpy_func, 694 signature.to_gufunc_string(exclude_dims),

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/dask/array/gufunc.py in apply_gufunc(func, signature, args, *kwargs) 441 ) 442 else: --> 443 meta = tuple( 444 meta_from_array(sample, dtype=odt) 445 for ocd, odt in zip((output_coredimss,), (output_dtypes,))

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/dask/array/gufunc.py in <genexpr>(.0) 442 else: 443 meta = tuple( --> 444 meta_from_array(sample, dtype=odt) 445 for ocd, odt in zip((output_coredimss,), (output_dtypes,)) 446 )

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/dask/array/utils.py in meta_from_array(x, ndim, dtype) 104 meta = np.array(meta) 105 --> 106 if dtype and meta.dtype != dtype: 107 try: 108 meta = meta.astype(dtype)

TypeError: Field elements must be 2- or 3-tuples, got 'dtype('float64')' ```

Preliminary investigation using %debug: ```

~/dotfiles/conda/base/.conda/lib/python3.8/site-packages/dask/array/utils.py(106)meta_from_array() 104 meta = np.array(meta) 105 --> 106 if dtype and meta.dtype != dtype: 107 try: 108 meta = meta.astype(dtype)

ipdb> print(dtype)

[dtype('float64'), dtype('uint16')]

ipdb> print(meta.dtype)

float64

ipdb> print(dtype)

[dtype('float64'), dtype('uint16')]

```

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/5034/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed 13221727 issue

Links from other tables

  • 0 rows from issues_id in issues_labels
  • 4 rows from issue in issue_comments
Powered by Datasette · Queries took 1.873ms · About: xarray-datasette