Numpy error on rasterize
Closed this issue · 1 comments
itsgifnotjiff commented
Thanks for contacting us! Please read and follow these instructions carefully, then delete this introductory text to keep your issue easy to read. Note that the issue tracker is NOT the place for usage questions and technical assistance; post those at Discourse instead. Issues without the required information below may be closed immediately.
ALL software version info
xarray - [ 2023.5.0 ]
hvplot - [ 0.8.3 ]
numpy - [ 1.24.3 ]
holoviews - [ 1.16.0 ]
geoviews - [ 1.10.0 ]
panel - [ 1.0.3 ]
bokeh - [ 3.1.1 ]
Python - 3.10.11
JupyterLab - 3.6.3
Description of expected behavior and the observed behavior
Well the expectation is to see the rasterized image of the example dataset.
Complete, minimal, self-contained example code that reproduces the issue
import xarray as xr
ds = xr.tutorial.open_dataset('rasm')
ds.Tair.hvplot.quadmesh(x='xc', y='yc', geo=True, widget_location='bottom', rasterize=True)
Stack traceback and/or browser JavaScript console output
WARNING:param.dynamic_operation: Callable raised "AttributeError("module 'numpy' has no attribute 'warnings'")".
Invoked as dynamic_operation(cftime.DatetimeNoLeap(1980, 9, 16, 12, 0, 0, 0, has_year_zero=True), height=400, scale=1.0, width=400, x_range=None, y_range=None)
WARNING:param.dynamic_operation: Callable raised "AttributeError("module 'numpy' has no attribute 'warnings'")".
Invoked as dynamic_operation(cftime.DatetimeNoLeap(1980, 9, 16, 12, 0, 0, 0, has_year_zero=True), height=400, scale=1.0, width=400, x_range=None, y_range=None)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
File /mamba/envs/dev/lib/python3.10/site-packages/IPython/core/formatters.py:974, in MimeBundleFormatter.__call__(self, obj, include, exclude)
971 method = get_real_method(obj, self.print_method)
973 if method is not None:
--> 974 return method(include=include, exclude=exclude)
975 return None
976 else:
File /mamba/envs/dev/lib/python3.10/site-packages/panel/viewable.py:808, in Viewable._repr_mimebundle_(self, include, exclude)
806 doc = Document()
807 comm = state._comm_manager.get_server_comm()
--> 808 model = self._render_model(doc, comm)
809 if config.embed:
810 return render_model(model)
File /mamba/envs/dev/lib/python3.10/site-packages/panel/viewable.py:726, in Viewable._render_model(self, doc, comm)
724 if comm is None:
725 comm = state._comm_manager.get_server_comm()
--> 726 model = self.get_root(doc, comm)
728 if self._design and self._design.theme.bokeh_theme:
729 doc.theme = self._design.theme.bokeh_theme
File /mamba/envs/dev/lib/python3.10/site-packages/panel/layout/base.py:279, in Panel.get_root(self, doc, comm, preprocess)
275 def get_root(
276 self, doc: Optional[Document] = None, comm: Optional[Comm] = None,
277 preprocess: bool = True
278 ) -> Model:
--> 279 root = super().get_root(doc, comm, preprocess)
280 # ALERT: Find a better way to handle this
281 if hasattr(root, 'styles') and 'overflow-x' in root.styles:
File /mamba/envs/dev/lib/python3.10/site-packages/panel/viewable.py:648, in Renderable.get_root(self, doc, comm, preprocess)
646 wrapper = self._design._wrapper(self)
647 if wrapper is self:
--> 648 root = self._get_model(doc, comm=comm)
649 if preprocess:
650 self._preprocess(root)
File /mamba/envs/dev/lib/python3.10/site-packages/panel/layout/base.py:164, in Panel._get_model(self, doc, root, parent, comm)
162 root = root or model
163 self._models[root.ref['id']] = (model, parent)
--> 164 objects = self._get_objects(model, [], doc, root, comm)
165 props = self._get_properties(doc)
166 props[self._property_mapping['objects']] = objects
File /mamba/envs/dev/lib/python3.10/site-packages/panel/layout/base.py:149, in Panel._get_objects(self, model, old_objects, doc, root, comm)
147 else:
148 try:
--> 149 child = pane._get_model(doc, root, model, comm)
150 except RerenderError:
151 return self._get_objects(model, current_objects[:i], doc, root, comm)
File /mamba/envs/dev/lib/python3.10/site-packages/panel/pane/holoviews.py:380, in HoloViews._get_model(self, doc, root, parent, comm)
378 plot = self.object
379 else:
--> 380 plot = self._render(doc, comm, root)
382 plot.pane = self
383 backend = plot.renderer.backend
File /mamba/envs/dev/lib/python3.10/site-packages/panel/pane/holoviews.py:461, in HoloViews._render(self, doc, comm, root)
458 if comm:
459 kwargs['comm'] = comm
--> 461 return renderer.get_plot(self.object, **kwargs)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/plotting/bokeh/renderer.py:70, in BokehRenderer.get_plot(self_or_cls, obj, doc, renderer, **kwargs)
63 @bothmethod
64 def get_plot(self_or_cls, obj, doc=None, renderer=None, **kwargs):
65 """
66 Given a HoloViews Viewable return a corresponding plot instance.
67 Allows supplying a document attach the plot to, useful when
68 combining the bokeh model with another plot.
69 """
---> 70 plot = super().get_plot(obj, doc, renderer, **kwargs)
71 if plot.document is None:
72 plot.document = Document() if self_or_cls.notebook_context else curdoc()
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/plotting/renderer.py:218, in Renderer.get_plot(self_or_cls, obj, doc, renderer, comm, **kwargs)
215 raise SkipRendering(msg.format(dims=dims))
217 # Initialize DynamicMaps with first data item
--> 218 initialize_dynamic(obj)
220 if not renderer:
221 renderer = self_or_cls
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/plotting/util.py:257, in initialize_dynamic(obj)
255 continue
256 if not len(dmap):
--> 257 dmap[dmap._initial_key()]
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/spaces.py:1213, in DynamicMap.__getitem__(self, key)
1211 # Not a cross product and nothing cached so compute element.
1212 if cache is not None: return cache
-> 1213 val = self._execute_callback(*tuple_key)
1214 if data_slice:
1215 val = self._dataslice(val, data_slice)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/spaces.py:980, in DynamicMap._execute_callback(self, *args)
977 kwargs['_memoization_hash_'] = hash_items
979 with dynamicmap_memoization(self.callback, self.streams):
--> 980 retval = self.callback(*args, **kwargs)
981 return self._style(retval)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/spaces.py:580, in Callable.__call__(self, *args, **kwargs)
577 args, kwargs = (), dict(pos_kwargs, **kwargs)
579 try:
--> 580 ret = self.callable(*args, **kwargs)
581 except KeyError:
582 # KeyError is caught separately because it is used to signal
583 # invalid keys on DynamicMap and should not warn
584 raise
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/util/__init__.py:1025, in Dynamic._dynamic_operation.<locals>.dynamic_operation(*key, **kwargs)
1024 def dynamic_operation(*key, **kwargs):
-> 1025 key, obj = resolve(key, kwargs)
1026 return apply(obj, *key, **kwargs)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/util/__init__.py:1014, in Dynamic._dynamic_operation.<locals>.resolve(key, kwargs)
1012 elif isinstance(map_obj, DynamicMap) and map_obj._posarg_keys and not key:
1013 key = tuple(kwargs[k] for k in map_obj._posarg_keys)
-> 1014 return key, map_obj[key]
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/spaces.py:1213, in DynamicMap.__getitem__(self, key)
1211 # Not a cross product and nothing cached so compute element.
1212 if cache is not None: return cache
-> 1213 val = self._execute_callback(*tuple_key)
1214 if data_slice:
1215 val = self._dataslice(val, data_slice)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/spaces.py:980, in DynamicMap._execute_callback(self, *args)
977 kwargs['_memoization_hash_'] = hash_items
979 with dynamicmap_memoization(self.callback, self.streams):
--> 980 retval = self.callback(*args, **kwargs)
981 return self._style(retval)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/spaces.py:580, in Callable.__call__(self, *args, **kwargs)
577 args, kwargs = (), dict(pos_kwargs, **kwargs)
579 try:
--> 580 ret = self.callable(*args, **kwargs)
581 except KeyError:
582 # KeyError is caught separately because it is used to signal
583 # invalid keys on DynamicMap and should not warn
584 raise
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/util/__init__.py:1026, in Dynamic._dynamic_operation.<locals>.dynamic_operation(*key, **kwargs)
1024 def dynamic_operation(*key, **kwargs):
1025 key, obj = resolve(key, kwargs)
-> 1026 return apply(obj, *key, **kwargs)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/util/__init__.py:1018, in Dynamic._dynamic_operation.<locals>.apply(element, *key, **kwargs)
1016 def apply(element, *key, **kwargs):
1017 kwargs = dict(util.resolve_dependent_kwargs(self.p.kwargs), **kwargs)
-> 1018 processed = self._process(element, key, kwargs)
1019 if (self.p.link_dataset and isinstance(element, Dataset) and
1020 isinstance(processed, Dataset) and processed._dataset is None):
1021 processed._dataset = element.dataset
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/util/__init__.py:1000, in Dynamic._process(self, element, key, kwargs)
998 elif isinstance(self.p.operation, Operation):
999 kwargs = {k: v for k, v in kwargs.items() if k in self.p.operation.param}
-> 1000 return self.p.operation.process_element(element, key, **kwargs)
1001 else:
1002 return self.p.operation(element, **kwargs)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/operation.py:194, in Operation.process_element(self, element, key, **params)
191 else:
192 self.p = param.ParamOverrides(self, params,
193 allow_extra_keywords=self._allow_extra_keywords)
--> 194 return self._apply(element, key)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/operation.py:141, in Operation._apply(self, element, key)
139 if not in_method:
140 element._in_method = True
--> 141 ret = self._process(element, key)
142 if hasattr(element, '_in_method') and not in_method:
143 element._in_method = in_method
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/operation/datashader.py:1401, in rasterize._process(self, element, key)
1398 op = transform.instance(**{k:v for k,v in extended_kws.items()
1399 if k in transform.param})
1400 op._precomputed = self._precomputed
-> 1401 element = element.map(op, predicate)
1402 self._precomputed = op._precomputed
1404 unused_params = list(all_supplied_kws - all_allowed_kws)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/data/__init__.py:199, in PipelineMeta.pipelined.<locals>.pipelined_fn(*args, **kwargs)
196 inst._in_method = True
198 try:
--> 199 result = method_fn(*args, **kwargs)
200 if PipelineMeta.disable:
201 return result
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/data/__init__.py:1207, in Dataset.map(self, *args, **kwargs)
1205 @wraps(LabelledData.map)
1206 def map(self, *args, **kwargs):
-> 1207 return super().map(*args, **kwargs)
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/dimension.py:700, in LabelledData.map(self, map_fn, specs, clone)
698 return deep_mapped
699 else:
--> 700 return map_fn(self) if applies else self
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/operation.py:214, in Operation.__call__(self, element, **kwargs)
210 return element.clone([(k, self._apply(el, key=k))
211 for k, el in element.items()])
212 elif ((self._per_element and isinstance(element, Element)) or
213 (not self._per_element and isinstance(element, ViewableElement))):
--> 214 return self._apply(element)
215 elif 'streams' not in kwargs:
216 kwargs['streams'] = self.p.streams
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/core/operation.py:141, in Operation._apply(self, element, key)
139 if not in_method:
140 element._in_method = True
--> 141 ret = self._process(element, key)
142 if hasattr(element, '_in_method') and not in_method:
143 element._in_method = in_method
File /mamba/envs/dev/lib/python3.10/site-packages/holoviews/operation/datashader.py:1042, in quadmesh_rasterize._process(self, element, key)
1038 cvs = ds.Canvas(plot_width=width, plot_height=height,
1039 x_range=x_range, y_range=y_range)
1041 vdim = getattr(agg_fn, 'column', element.vdims[0].name)
-> 1042 agg = cvs.quadmesh(data[vdim], x.name, y.name, agg_fn)
1043 xdim, ydim = list(agg.dims)[:2][::-1]
1044 if xtype == "datetime":
File /mamba/envs/dev/lib/python3.10/site-packages/datashader/core.py:850, in Canvas.quadmesh(self, source, x, y, agg)
848 elif xarr.ndim == 2:
849 glyph = QuadMeshCurvilinear(x, y, name)
--> 850 return bypixel(source, self, glyph, agg)
851 else:
852 raise ValueError("""\
853 x- and y-coordinate arrays must have 1 or 2 dimensions.
854 Received arrays with dimensions: {dims}""".format(
855 dims=list(xarr.dims)))
File /mamba/envs/dev/lib/python3.10/site-packages/datashader/core.py:1258, in bypixel(source, canvas, glyph, agg, antialias)
1255 canvas.validate()
1257 # All-NaN objects (e.g. chunks of arrays with no data) are valid in Datashader
-> 1258 with np.warnings.catch_warnings():
1259 np.warnings.filterwarnings('ignore', r'All-NaN (slice|axis) encountered')
1260 return bypixel.pipeline(source, schema, canvas, glyph, agg, antialias=antialias)
File /mamba/envs/dev/lib/python3.10/site-packages/numpy/__init__.py:320, in __getattr__(attr)
317 from .testing import Tester
318 return Tester
--> 320 raise AttributeError("module {!r} has no attribute "
321 "{!r}".format(__name__, attr))
AttributeError: module 'numpy' has no attribute 'warnings'
Column
[0] HoloViews(DynamicMap, widget_location='bottom')
[1] WidgetBox(align=('center', 'end'))
[0] DiscreteSlider(margin=(20, 20, 20, 20), name='time', options=OrderedDict([('1980-09-16 ...]), value=cftime.DatetimeNoLeap(1980..., width=250)
itsgifnotjiff commented
I seem to have posted in the right repo but Mr. @hoxbro is already aware of it as mentioned in this hvplot issue.