I have created a new environment, installing the latest versions of numpy, dask, datashader. However, I get an error when I try to plot a dask xarray. When I use a xarray then I don’t get any errors. Moreover, if I install instead datashader 0.16.1 then everything works without issues.
Minimal reproducible example
# create dask array
N = 1000
dask_array = da.random.random((N, N), chunks=(N/10, N/10)) # .compute()
# convert to dasked xarray
dask_xarray = xr.DataArray(
dask_array,
dims=["x", "y"],
coords={"x": np.arange(N), "y": np.arange(N)},
name="example_data", # Name of the data variable
)
# create plot using Datashader
tf.shade(ds.Canvas(plot_height=300, plot_width=300).raster(dask_xarray))
Error message
TypingError Traceback (most recent call last)
Cell In[4], line 12
5 dask_xarray = xr.DataArray(
6 dask_array,
7 dims=["x", "y"],
8 coords={"x": np.arange(N), "y": np.arange(N)},
9 name="example_data", # Name of the data variable
10 )
11 # create plot using Datashader
---> 12 tf.shade(ds.Canvas(plot_height=300, plot_width=300).raster(dask_xarray))
File D:\ProgramData\environments\ds_test\lib\site-packages\datashader\core.py:1155, in Canvas.raster(self, source, layer, upsample_method, downsample_method, nan_value, agg, interpolate, chunksize, max_mem)
1151 data = resample_2d_distributed(
1152 source_window, chunksize=chunksize, max_mem=max_mem,
1153 **kwargs)
1154 else:
-> 1155 data = resample_2d(source_window, **kwargs)
1156 layers = 1
1157 else:
File D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py:347, in resample_2d(src, w, h, ds_method, us_method, fill_value, mode_rank, x_offset, y_offset, out)
344 if isinstance(src, np.ma.MaskedArray):
345 src = src.data
--> 347 resampled = _resample_2d(src, mask, use_mask, ds_method, us_method,
348 fill_value, mode_rank, x_offset, y_offset, out)
349 return _mask_or_not(resampled, src, fill_value)
File D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py:499, in _resample_2d(src, mask, use_mask, ds_method, us_method, fill_value, mode_rank, x_offset, y_offset, out)
497 def _resample_2d(src, mask, use_mask, ds_method, us_method, fill_value,
498 mode_rank, x_offset, y_offset, out):
--> 499 src_w, src_h, out_w, out_h = _get_dimensions(src, out)
500 x0_off, x1_off = x_offset
501 y0_off, y1_off = y_offset
File D:\ProgramData\environments\ds_test\lib\site-packages\numba\core\dispatcher.py:424, in _DispatcherBase._compile_for_args(self, *args, **kws)
420 msg = (f"{str(e).rstrip()} \n\nThis error may have been caused "
421 f"by the following argument(s):\n{args_str}\n")
422 e.patch_message(msg)
--> 424 error_rewrite(e, 'typing')
425 except errors.UnsupportedError as e:
426 # Something unsupported is present in the user code, add help info
427 error_rewrite(e, 'unsupported_error')
File D:\ProgramData\environments\ds_test\lib\site-packages\numba\core\dispatcher.py:365, in _DispatcherBase._compile_for_args.<locals>.error_rewrite(e, issue_type)
363 raise e
364 else:
--> 365 raise e.with_traceback(None)
TypingError: Failed in nopython mode pipeline (step: nopython frontend)
non-precise type pyobject
During: typing of argument at D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py (488)
File "D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py", line 488:
def _get_fill_value(fill_value, src, out):
<source elided>
@ngjit
^
During: Pass nopython_type_inference
This error may have been caused by the following argument(s):
- argument 0: Cannot determine Numba type of <class 'dask.array.core.Array'>
This error may have been caused by the following argument(s):
- argument 0: Cannot determine Numba type of <class 'dask.array.core.Array'>
Package Versions
numpy: 2.2.6
dask: 2025.7.0
datashader: 0.18.2
numba: 0.61.2
First reported here.