[yt-users] error in setting width of slices

Elizabeth Tasker tasker at astro1.sci.hokudai.ac.jp
Wed Dec 14 22:54:54 PST 2011


Hi,

Sometimes when I try and set the width of an image, yt throws an error
and stops:


/home/tasker/yt-test/scripts/iyt in <module>()
    609     if (ncloudcells_final > 0):
    610        p.modify["contour"]("Clouds", ncont=1, factor=1)
--> 611     p.set_width(400, 'pc')
    612     pc.save("%s_lowresgridpot_core%d" % (fn, c))
    613

/home/tasker/yt-test/yt/visualization/plot_types.pyc in
set_width(self, width, unit)
    438             unit = self.data.pf[str(unit)]
    439         self.width = width / unit
--> 440         self._refresh_display_width()
    441
    442     def _refresh_display_width(self, width=None):

/home/tasker/yt-test/yt/visualization/plot_types.pyc in
_refresh_display_width(self, width)
    456         self.set_xlim(max(l_edge_x,self.xmin), min(r_edge_x,self.xmax))
    457         self.set_ylim(max(l_edge_y,self.ymin), min(r_edge_y,self.ymax))
--> 458         self._redraw_image()
    459
    460     def autoscale(self):

/home/tasker/yt-test/yt/visualization/plot_types.pyc in
_redraw_image(self, *args)
    403             self.norm.autoscale(na.array((newmin,newmax),
dtype='float64'))
    404         self._reset_image_parameters()
--> 405         self._run_callbacks()
    406
    407     def _reset_image_parameters(self):

/home/tasker/yt-test/yt/visualization/plot_types.pyc in _run_callbacks(self)
    256         self._axes.texts = []
    257         for cb in self._callbacks:
--> 258             cb(self)
    259
    260     def set_label(self, label):

/home/tasker/yt-test/yt/visualization/plot_modifications.pyc in
__call__(self, plot)
    238         print z.min(), z.max(), na.nanmin(z), na.nanmax(z)
    239         print zi.min(), zi.max(), na.nanmin(zi), na.nanmax(zi)
--> 240         plot._axes.contour(xi,yi,zi,self.ncont, **self.plot_args)
    241         plot._axes.set_xlim(xx0,xx1)
    242         plot._axes.set_ylim(yy0,yy1)

/home/tasker/yt/lib/python2.7/site-packages/matplotlib/axes.pyc in
contour(self, *args, **kwargs)
   7314         if not self._hold: self.cla()
   7315         kwargs['filled'] = False
-> 7316         return mcontour.QuadContourSet(self, *args, **kwargs)
   7317     contour.__doc__ = mcontour.QuadContourSet.contour_doc
   7318

/home/tasker/yt/lib/python2.7/site-packages/matplotlib/contour.pyc in
__init__(self, ax, *args, **kwargs)
   1104         are described in QuadContourSet.contour_doc.
   1105         """
-> 1106         ContourSet.__init__(self, ax, *args, **kwargs)
   1107
   1108     def _process_args(self, *args, **kwargs):

/home/tasker/yt/lib/python2.7/site-packages/matplotlib/contour.pyc in
__init__(self, ax, *args, **kwargs)
    699
    700         self._process_args(*args, **kwargs)
--> 701         self._process_levels()
    702
    703         if self.colors is not None:

/home/tasker/yt/lib/python2.7/site-packages/matplotlib/contour.pyc in
_process_levels(self)
    910             self._levels.append(max(self.levels[-1],self.zmax) + 1)
    911         self._levels = np.asarray(self._levels)
--> 912         self.vmin = np.amin(self.levels)  # alternative would
be self.layers
    913         self.vmax = np.amax(self.levels)
    914         if self.extend in ('both', 'min'):

/home/tasker/yt/lib/python2.7/site-packages/numpy/core/fromnumeric.pyc
in amin(a, axis, out)
   1893     except AttributeError:
   1894         return _wrapit(a, 'min', axis, out)
-> 1895     return amin(axis, out)
   1896
   1897

ValueError: zero-size array to minimum.reduce without identity
WARNING: Failure executing file: <findcloudsbypotential_lowresgrid.py>




I think this happens when the contour modification is zero :
p.modify["contour"]("Clouds", ncont=1, factor=1)


Is there a way of telling it just not to plot the contour if there are
no cells in the current slice that have a value and thereby avoid the
crash?

Elizabeth



More information about the yt-users mailing list