[yt-users] Column density plot

Stephanie Tonnesen stonnes at gmail.com
Tue Nov 4 13:29:01 PST 2014


Okay, I think I must be missing something because right now I am still
getting log-spaced bins:

alld = ds.all_data()
gal = alld.cut_region("obj['density'] > 1.01e-28")
logs = {('index', 'cylindrical_r'): False}
logs = {('gas', 'cell_mass'): False}
profile = yt.create_profile(gal,
                            [('index', 'cylindrical_r')],          # the
bin field
                            [('gas', 'cell_mass')],  # profile field
                            weight_field=None, n_bins=17)
coldens = profile["gas","cell_mass"]/1.6733e-24
coldens[0] = coldens[0]/(3.14159*profile.x[0]*profile.x[0])
i = 1
while i < len(coldens):
    coldens[i] = coldens[i]/((3.14159*profile.x[i]*profile.x[i]) -
(3.14159*profile.x[i-1]*profile.x[i-1]))
    i = i+1
mp.plot(profile.x/3.086e21,coldens)
mp.show()
print profile.x

[  2.59949407e+20   3.49922639e+20   4.71037249e+20   6.34071835e+20
   8.53535665e+20   1.14895993e+21   1.54663592e+21   2.08195484e+21
   2.80255739e+21   3.77257363e+21   5.07833019e+21   6.83603292e+21
   9.20210863e+21   1.23871263e+22   1.66745367e+22   2.24458981e+22
   3.02148330e+22] cm



--
Dr. Stephanie Tonnesen
Alvin E. Nashman Postdoctoral Fellow
Carnegie Observatories, Pasadena, CA
stonnes at gmail.com

On Tue, Nov 4, 2014 at 12:32 PM, Nathan Goldbaum <nathan12343 at gmail.com>
wrote:

>
>
> On Tue, Nov 4, 2014 at 12:26 PM, Stephanie Tonnesen <stonnes at gmail.com>
> wrote:
>
>> Okay, I've got that, but does that mean that I can't set something in the
>> parenthesis to force the bins to be in linear space?  and I need to do the
>> take_log setting earlier in the code?
>>
>
> You can, you would need to have something like:
>
> logs = {('gas', 'cell_mass'): False}
>
> profile = yt.create_profile(gal,
>                             [('index', 'cylindrical_r')],          # the
> bin field
>                             [('gas', 'cell_mass')],  # profile field
>                             weight_field=None, logs=logs)
>
>
>>
>> Thanks,
>> Stephanie
>>
>> --
>> Dr. Stephanie Tonnesen
>> Alvin E. Nashman Postdoctoral Fellow
>> Carnegie Observatories, Pasadena, CA
>> stonnes at gmail.com
>>
>> On Tue, Nov 4, 2014 at 11:10 AM, Nathan Goldbaum <nathan12343 at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Tue, Nov 4, 2014 at 10:59 AM, Stephanie Tonnesen <stonnes at gmail.com>
>>> wrote:
>>>
>>>> Thank you both!  I ended up generally following Suoqing's method, but
>>>> tried to use create_profile.  I want my radial spacing to be linear, and
>>>> when I look at the help page:
>>>>
>>>> http://yt-project.org/docs/dev/reference/api/generated/yt.data_objects.profiles.create_profile.html#yt.data_objects.profiles.create_profile
>>>>
>>>> I read that I should set logs=False
>>>>
>>>> So I type in:
>>>>
>>>> profile = yt.create_profile(gal,
>>>>                             [('index', 'cylindrical_r')],          #
>>>> the bin field
>>>>                             [('gas', 'cell_mass')],  # profile field
>>>>                             weight_field=None, logs=False)
>>>>
>>>> and yt does not like that.  Nor does it like take_log or log_space.
>>>> Can someone tell me what I should be setting there?
>>>>
>>>>
>>> In this case, logs is a dictionary that maps field names to logging
>>> selection.  From the docstrings for create_profile:
>>>
>>> logs : dict of boolean values
>>>
>>>         Whether or not to log the bin_fields for the profiles.
>>>
>>>         The keys correspond to the field names. Defaults to the take_log
>>>
>>>         attribute of the field.
>>>
>>>
>>>> Thanks again!
>>>>
>>>> Stephanie
>>>>
>>>> --
>>>> Dr. Stephanie Tonnesen
>>>> Alvin E. Nashman Postdoctoral Fellow
>>>> Carnegie Observatories, Pasadena, CA
>>>> stonnes at gmail.com
>>>>
>>>> On Mon, Nov 3, 2014 at 9:45 PM, Suoqing JI <suoqing at physics.ucsb.edu>
>>>> wrote:
>>>>
>>>>> Hi Stephanie,
>>>>>
>>>>> profile.add_fields(‘cell_mass’, weight=None)
>>>>>>
>>>>>
>>>>> Sorry I’ve missed the later part of my old script — after getting the
>>>>> profile[‘cell_mass’] it should be divided by the unit surface area. The
>>>>> following is the full code and it has been tested with AMR data:
>>>>>
>>>>> profile = BinnedProfile1D(mydisk, Nbin, 'cylindrical_r', rmin, rmax,
>>>>> log_space=True, lazy_reader=True, end_collect=False)
>>>>> profile.add_fields('cell_mass', weight=None)
>>>>>
>>>>> R = profile['cylindrical_r’]
>>>>> Sigma = profile[‘cell_mass']
>>>>>
>>>>> R_edge = np.logspace(np.log10(rmin), np.log10(rmax), num=Nbin+1)
>>>>> for i in range(0, Nbin): Sigma[i] = Sigma[i] / (np.pi*(R_edge[i+1]**2
>>>>> - R_edge[i]**2.))
>>>>>
>>>>> And Nathan’s approach which takes the advantage of image buffer should
>>>>> also work.
>>>>>
>>>>> Best wishes,
>>>>> --
>>>>> Suoqing JI
>>>>> Ph.D Student
>>>>> Department of Physics
>>>>> University of California, Santa Barbara
>>>>> CA 93106, USA
>>>>>
>>>>> On Nov 3, 2014, at 8:40 PM, Nathan Goldbaum <nathan12343 at gmail.com>
>>>>> wrote:
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Nov 3, 2014 at 5:29 PM, Suoqing JI <suoqing at physics.ucsb.edu>
>>>>> wrote:
>>>>>
>>>>>> Hi Stephanie,
>>>>>>
>>>>>> Maybe you could specify a disk, use BinnedProfile1D to create bins
>>>>>> along cylindrical radial ('cylindrical_r'), and do
>>>>>>
>>>>>> profile.add_fields(‘cell_mass’, weight=None)
>>>>>>
>>>>>> then you could plot profile[‘cell_mass’] vs. profile['cylindrical_r’]
>>>>>> and get the 1-D plot the surface density.
>>>>>>
>>>>>
>>>>> This will be a profile of the gas mass as a function of radius, but
>>>>> it's not quite a surface density profile.  That said, for an unweighted
>>>>> projection, I think it's the same up to a constant scaling factor.
>>>>>
>>>>>
>>>>>>
>>>>>> Best wishes,
>>>>>> --
>>>>>> Suoqing JI
>>>>>> Ph.D Student
>>>>>> Department of Physics
>>>>>> University of California, Santa Barbara
>>>>>> CA 93106, USA
>>>>>>
>>>>>> On Nov 3, 2014, at 5:17 PM, Stephanie Tonnesen <stonnes at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> Hi yt-users,
>>>>>>
>>>>>> I would like to make a 1D plot of column density vs radius for a disk
>>>>>> (to compare with observations).  I can make a projectionplot, but want
>>>>>> something a bit more simple to look at.  I am using yt3.0.1--is there a
>>>>>> nice way to to this?
>>>>>>
>>>>>>
>>>>> The key is to use the numpy.digitize and numpy.bincount functions to
>>>>> find the histogram of the surface density as a function of radius.  Here's
>>>>> an example:
>>>>>
>>>>> http://nbviewer.ipython.org/gist/ngoldbaum/af8e7f317efe8f115e8b
>>>>>
>>>>> This is a simplified version of what I've done for a project I'm
>>>>> working on right now, which involves making a ton of radial plots of
>>>>> projected quantities:
>>>>>
>>>>>
>>>>> https://bitbucket.org/ngoldbaum/galaxy_analysis/src/910f5a7e278247a36f25d62bdc478a7b5a7fe8ce/galanyl/galaxy_analyzer.py?at=default#cl-338
>>>>>
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>> Stephanie
>>>>>>
>>>>>> --
>>>>>> Dr. Stephanie Tonnesen
>>>>>> Alvin E. Nashman Postdoctoral Fellow
>>>>>> Carnegie Observatories, Pasadena, CA
>>>>>> stonnes at gmail.com
>>>>>>  _______________________________________________
>>>>>> yt-users mailing list
>>>>>> yt-users at lists.spacepope.org
>>>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> yt-users mailing list
>>>>>> yt-users at lists.spacepope.org
>>>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> yt-users mailing list
>>>>> yt-users at lists.spacepope.org
>>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> yt-users mailing list
>>>>> yt-users at lists.spacepope.org
>>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> yt-users mailing list
>>>> yt-users at lists.spacepope.org
>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>
>>>>
>>>
>>> _______________________________________________
>>> yt-users mailing list
>>> yt-users at lists.spacepope.org
>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>
>>>
>>
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>
>>
>
> _______________________________________________
> 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/20141104/4b3352fc/attachment.htm>


More information about the yt-users mailing list