[yt-users] Profile plot of a 2d projection FRB object

Cameron Hummels chummels at gmail.com
Wed Jan 14 06:39:51 PST 2015


Hi Ben,

I have some code which does this, but I'm in the middle of job stuff at the
moment, and it will take me a few days to extract out the relevant parts of
the code to get to you (and upgrade to yt3).

Cameron

On Tue, Jan 13, 2015 at 10:49 AM, Ben Thompson <bthompson2090 at gmail.com>
wrote:

> Hello everyone.
>
> I was wondering if anyone has had experience with producing a profile plot
> from a 2d projection object (FRB object).
>
> Essentially, what I am trying to do is plot the stellar surface density of
> a galaxy as a function of radius.
>
> This is achieved by doing the following from a disk YT object called
> cylinder (in which the origional simulation object is called shot)
>
> center = cylinder.get_field_parameter("center")
> normal = cylinder.get_field_parameter("normal")
> image_width = (100,"kpc")
> three_image_width = YTArray((image_width[0], image_width[0],
> image_width[0]),image_width[1])
> left = center - image_width
> right = center + image_width
> region = shot.region(center, left, right)
>
> proj =
> yt.ProjectionPlot(cylinder.ds,"z",[("deposit","stars_density")],center=center,width=image_width,data_source=region,axes_unit="kpc")
>
> the error arrises here
>
> prof =
> yt.create_profile(proj,bin_fields="cylindrical_r",fields=[("deposit","stars_density")],n_bins=128,weight_field=None
> )
>
> where I get the error
>
>
> /gpfs/home/........./profiles.pyc in create_profile(data_source,
> bin_fields, fields, n_bins, extrema, logs, units, weight_field,
> accumulation, fractional)
>    1304     else:
>    1305         raise NotImplementedError
> -> 1306     bin_fields = data_source._determine_fields(bin_fields)
>    1307     fields = data_source._determine_fields(fields)
>    1308     if units is not None:
>
> AttributeError: 'FixedResolutionBuffer' object has no attribute
> '_determine_fields'
>
> Any ideas how to get around this error?
>
>
> Also some other things to add as a postscript. Since how the projection
> works, if I provide weights=None as a keyword argument within the
> ProjectionPlot object, I get a surface density (g/cm^2). But also a
> "cylindrical_r" in cm^2 as well. I *think* the way to get around this is to
> do another projection where weights="ones", get the radius values out of
> that profile.. and then in matplotlib, useing the surface density array
> from the former profile, and the radius bin array from the latter...
> Produce a plot of the surface density as a function of radius from those
> two arrays (I might check by hand afterwards to see if this does the
> trick). This seems kinda convoluted so I am wondering if there is an easier
> way than this.
>
>
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>


-- 
Cameron Hummels
Postdoctoral Researcher
Steward Observatory
University of Arizona
http://chummels.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20150114/8fcb7d67/attachment.html>


More information about the yt-users mailing list