[yt-users] getting slice array

Slavin, Jonathan jslavin at cfa.harvard.edu
Tue Aug 11 12:01:06 PDT 2015


​Hi Nathan,

Thanks!  It seems though that the frb cannot be directly passed to
matplotlib's imshow, though np.array(frb) can.

I would like it in general if yt could provide simpler means of accessing
arrays or array-like objects such as are plotted up.  There are many
reasons for this besides the desire to plot using matplotlib -- e.g. to
create plots of ratios of quantities, or to plot scaled variables.​
 Perhaps this is possible now, though it's not obvious from the docs.

Regards,
Jon

On Tue, Aug 11, 2015 at 2:42 PM, <yt-users-request at lists.spacepope.org>
wrote:

> Date: Tue, 11 Aug 2015 13:17:50 -0500
> From: Nathan Goldbaum <nathan12343 at gmail.com>
> To: Discussion of the yt analysis package
>         <yt-users at lists.spacepope.org>
> Subject: Re: [yt-users] getting slice array
> Message-ID:
>         <CAJXewOmiymap0uUBy0hL=
> zo0Ltf0kG7UErXYFy9dqZseXoapsg at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> On Tue, Aug 11, 2015 at 1:10 PM, Slavin, Jonathan <jslavin at cfa.harvard.edu
> >
> wrote:
>
> > Hi all,
> >
> > I'm new to using yt, though I'm an experienced python and matplotlib
> > user.  I've been doing runs with FLASH and would like to be able to plot
> > the results with matplotlib.  I've used yt "interactively" in an ipython
> > notebook and found it a bit cumbersome - e.g. you can't pan and zoom like
> > you can with matplotlib.  On the other hand yt has some nice facilities
> for
> > accessing the data.  So my question is, how do I get a slice, such as is
> > plotted using the yt.SlicePlot function, in an array that I can then
> > manipulate, plot, etc.?  If I do:
> > ds = yt.load(file)
> > slc = ds.slice(2,0.)
> > d = slc['density']
> > I have a YTArray that's apparently 1-D:
> > d.shape
> > (138496,)
> > I should mention that this is a 2-D, cylindrically symmetric (r-z) run.
> > Thanks in advance for any help you can offer.
> >
>
> If you have a yt plot object (e.g. a SlicePlot or a ProjectionPlot), you
> can do:
>
> slc = yt.SlicePlot(...)
> densit_image = slc.frb['density']
>
> "frb" here is a FixedResolutionBuffer object which translates the
> multiresolution 1-D array you ran into above into a 2D pixelized
> representation of your data.
>
> You can also create a FixedResolutionBuffer object directly:
>
> http://yt-project.org/docs/dev/analyzing/generating_processed_data.html#d-image-arrays
>
> The image arrays you get back from a FixedResolutionBuffer object can be
> passed directly to e.g. matplotlib's imshow command.
>
> By the way, Matt Turk has an open pull request to add the interactive
> panning and zooming you were looking for:
>
>
> http://yt-project.org/docs/dev/analyzing/generating_processed_data.html#d-image-arrays
>
> I'm hoping to finish up that pull request soon, since having interactive
> plots both in the notebook and using matplotlib's interactive backends is a
> common feature request.
>




-- 
________________________________________________________
Jonathan D. Slavin                 Harvard-Smithsonian CfA
jslavin at cfa.harvard.edu       60 Garden Street, MS 83
phone: (617) 496-7981       Cambridge, MA 02138-1516
cell: (781) 363-0035             USA
________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20150811/8a37c9df/attachment.htm>


More information about the yt-users mailing list