[yt-users] Why the two figures have different resolutions?

Nathan Goldbaum nathan12343 at gmail.com
Mon May 15 06:56:35 PDT 2017


Hi Dan,

I adapted your script to use a public dataset from yt-project.org/data. I
also don't have a definition for a surface_brightness field in my copy of
yt, so I guess you defined that elsewhere? I used 'density'. Here's the
script I ended up coming up with:

http://paste.yt-project.org/show/7142/

(note that you can upload scripts with the "yt pastebin" command line tool,
e.g. "yt pastebin my_script.py")

And indeed, in that case I get two images that aren't the desired high
resolution you're looking for (although both images have the same
resolution). The issue is that yt is saving the figure to disk through
matplotlib. To control the image size in pixels through matplotlib you need
to know the figure size in inches and the dpi (e.g. the number of pixels
per inch of figure). Here's a revised version of the script above which
saves to disk two images with the desired 3200x3200 resolution:

http://paste.yt-project.org/show/7145/

It also hides the axes and colorbar, since that makes it easier to guess
ahead of time what the final image resolution will be. Here are the two
images:

regular projection: http://i.imgur.com/ialfYC4.png
off-axis projection: http://i.imgur.com/PcvPZ9f.png

You can share images you make using yt using the "yt upload_image" command,
which will upload an image stored locally to imgur. We usually suggest
using that to share images or alternatively something like a Jupyter
notebook on gist.github.com to avoid clogging people's e-mail with high
resolution images.

Finally, if you don't want to mess with matplotlib and just want the
underlying images, you can get those via the frb attribute of the plot
object. Something like:

    plot = yt.ProjectionPlot(ds, 'z', ('gas', 'density'))
    plot.set_buff_size((3200, 3200))

    # image will be a 3200x3200 numpy array
    image = plot.frb['gas', 'density']

I hope that helps clear things up. If you are still having issues it would
help if you could share the exact yt version you are using as well as a
runnable test script that demonstrates the issue. If you can't trigger the
issue using one of the public SPH datasets on yt-project.org/data, you can
share one of your datasets using the yt curldrop:
https://docs.hub.yt/services.html#curldrop

-Nathan

On Mon, May 15, 2017 at 4:40 AM, bazhaoyu_sjtu <hudan_bazhaoyu at sjtu.edu.cn>
wrote:

> Hi yt-users:
>
> I want to ask you a question about the figures' resolution, I handled
> Gadget file -- hdf5.
>
> I used the 'ProjectionPlot' to plot the surface brightness map which is
> integrated along the 'z' axis, please see the figure 1; And I plot another
> surface brightness map by 'OffAxisProjectionPlot' with the normal_vector is
> [0, 0, 1], please see the figure 2.
>
> # I can't upload attachments ??? #
>
> Comparing two figures, we can find the structures of them is same, but the
> resolution is different! The 'OffAxisProjectionPlot' is obviously worse
> than 'ProjectionPlot', I don't know why!
>
> Below are the process I created two figures:
>
> ======================================================================
> import yt
> import numpy as np
> import yt.units as units
> import pylab
>
> fname = "snap_206.hdf5"
> unit_base = {'UnitLength_in_cm' : 3.08568e+21,
> 'UnitMass_in_g' : 1.989e+43,
> 'UnitVelocity_in_cm_per_s' : 100000}
> bbox_lim = 1e5 # kpc
> bbox = [[-bbox_lim,bbox_lim],
> [-bbox_lim,bbox_lim],
> [-bbox_lim,bbox_lim]]
> ds = yt.load(fname,unit_base=unit_base,bounding_box=bbox)
> ds.index
> ad= ds.all_data()
>
>
> ## For 'ProjectionPlot' ##
> pz = yt.ProjectionPlot(ds, 'z', ('gas', 'surface_brightness'), 'max',
> width=(0.4,'Mpc'))
>
>
> ## For 'OffAxisProjectionPlot' ##
> L = [0,0,1]
> north_vector = [0,1,0]
> pz = yt.OffAxisProjectionPlot(ds, L, ('gas', 'surface_brightness'), 'max',
> north_vector = north_vector, width=(0.4,'Mpc'))
>
>
> pz.set_buff_size((3200,3200))
> pz.save()
> =========================================================================
>
> What can i do to fix this difference of resolution between two plot ways?
> Thanks a lot!
>
> Regards,
> Dan
>
>
> ==================================
> Department of Physics, Shanghai Jiao Tong University
> 800 Dongchuan Road, Minhang, Shanghai 200240, PRC
> E-mail : hudan_bazhaoyu at 163.com
> hudan_bazhaoyu at sjtu.edu.cn
> ==================================
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20170515/d4397a19/attachment.htm>


More information about the yt-users mailing list