Hi Dale,

You should be able to make a SlicePlot with a cut_region data object. I’m not sure what’s going wrong exactly based on the information in your e-mail. It’s possible you’ve hit a yt bug.

Check whether you’re using the newest release of yt, version 3.4.0.

If you can send us a self-contained script that reproduces the issue you are having that will make it easier to see what exactly is going wrong.

In your script either load fake data generated in the script or use a data file which you can share with the “yt upload” bash command helper. This will print out a url once the upload is finished that you can include in your reply so others can download the file and reproduce your issue.

Nathan



On Sun, Dec 10, 2017 at 3:05 PM Dale Braden <genghis17@comcast.net> wrote:
Hello,

I have some density data in an unsupported format which I read into yt
by means of the yt.load_uniform_grid() function.  I want to filter this
data by creating a cut_region and then do a SlicePlot on the filtered
data.  What I find is that no matter how I define the cut_region, the
dynamic range of the resulting plot is said to be 0.0, even though the
cut region has no values in it which are actually 0.0.

I do not have this problem if I use data in a supported format. For
example, I can follow the yt tutorial which creates a SlicePlot from a
cut_region on the Enzo_64 example dataset.  So I wonder if maybe the
problem I'm having is due to the fact that when one creates a dataset
using load_uniform_grid(), one ends up with a StreamDataset object
instead of an object representing a supported format.

Here is some relevant output from my session (omitting the code to read
in my data from disk):

In [8]: data2 = np.array(griddata)
In [9]: arr = data2.reshape((41,56,47))
In [10]: data = dict(density = (arr,"g/cm**3"))
In [11]: bbox = np.array([[-4.0,4.2],[-5.5,5.7],[-4.175872,5.22413]])
In [12]: ds = yt.load_uniform_grid(data, arr.shape, length_unit="cm",
bbox=bbox)
yt : [INFO     ] 2017-12-09 15:41:20,781 Parameters:
current_time              = 0.0
yt : [INFO     ] 2017-12-09 15:41:20,781 Parameters:
domain_dimensions         = [41 56 47]
yt : [INFO     ] 2017-12-09 15:41:20,782 Parameters:
domain_left_edge          = [-4.       -5.5      -4.175872]
yt : [INFO     ] 2017-12-09 15:41:20,782 Parameters:
domain_right_edge         = [ 4.2      5.7      5.22413]
yt : [INFO     ] 2017-12-09 15:41:20,783 Parameters:
cosmological_simulation   = 0.0
In [13]: ds.find_max('density')
yt : [INFO     ] 2017-12-09 15:48:16,640 Max Value is 5.14618e+01 at
0.0999999999999996 -0.0000000000000009 -0.0758711276595738
Out[13]: (51.4618 g/cm**3, YTArray([  1.00000000e-01, -8.88178420e-16, 
-7.58711277e-02]) code_length)

In [14]: ds.find_min('density')
yt : [INFO     ] 2017-12-09 15:48:53,392 Min Value is 8.71255e-12 at
-3.8999999999999999 -5.4000000000000004 -4.0758719787234039
Out[14]: (8.71255e-12 g/cm**3, YTArray([-3.9       , -5.4       ,
-4.07587198]) code_length)

So you can see from find_min() that all data values are > 0.0.  I should
mention that if I do a SlicePlot on ds.all_data(), it looks fine.  But
if I try a SlicePlot on a cut_region, even one that essentially
duplicates the entire dataset, then there's nothing to plot even though
the cut_region does have valid data in it:

In [20]: ad = ds.all_data()
In [23]: den = ad.cut_region(['obj["density"] > 0.0'])
In [24]: print den.quantities.extrema([('gas','density')])
[  8.71255000e-12   5.14618000e+01] g/cm**3
In [25]: p2 = yt.SlicePlot(ds, 'x','density', center="m", data_source=den)
yt : [INFO     ] 2017-12-09 15:55:58,155 Max Value is 5.14618e+01 at
0.0999999999999996 -0.0000000000000009 -0.0758711276595738
yt : [INFO     ] 2017-12-09 15:55:58,585 xlim = -5.600000 5.600000
yt : [INFO     ] 2017-12-09 15:55:58,585 ylim = -4.775872 4.624130
yt : [INFO     ] 2017-12-09 15:55:58,586 xlim = -5.600000 5.600000
yt : [INFO     ] 2017-12-09 15:55:58,586 ylim = -4.775872 4.624130
yt : [INFO     ] 2017-12-09 15:55:58,587 Making a fixed resolution
buffer of (('gas', 'density')) 800 by 800
yt : [WARNING  ] 2017-12-09 15:55:58,606 Plot image for field ('gas',
'density') has zero dynamic range. Min = Max = 0.000000.
yt : [WARNING  ] 2017-12-09 15:55:58,606 Switching to linear colorbar
scaling.

That first warning message is the problem: zero dynamic range. What's
going wrong?

best wishes,

Dale

_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org