[yt-users] Accumulation in 3.0

Nathan Goldbaum nathan12343 at gmail.com
Tue Nov 4 11:54:11 PST 2014


Can you guys take a look at this?

https://bitbucket.org/yt_analysis/yt/pull-request/1292/ensure-profiled-data-are-in-the-correct/diff

On Tue, Nov 4, 2014 at 11:44 AM, Matthew Turk <matthewturk at gmail.com> wrote:

> Hi Nathan,
>
> Ah, usually what we do is, on the way in to Cython, call
> convert_to_units(field.units).  I think this will fix it here.
>
> -Matt
>
> On Tue Nov 04 2014 at 1:42:49 PM Nathan Goldbaum <nathan12343 at gmail.com>
> wrote:
>
>> Dug into this a little bit.
>>
>> The issue is that querying the particle_mass field returns CGS values,
>> but the field_info for particle_mass says it should be in code_mass. This
>> is illustrated by the following script:
>> https://bpaste.net/show/6ee56ae61fa6
>>
>> Does anyone remember why this is the case?
>>
>> The reason this is coming up here is because the profiling code passes
>> raw numpy arrays to the cython parallel profiling machinery, so the units
>> that are attached to the data when we query the data source are stripped
>> off.  We're relying on the field_info units entry for all fields being
>> identical to the units that get appended to the results of a field access
>> on a data object.
>>
>> Unfortunately I don't have time right now to figure out where this
>> inconsistency is coming from...
>>
>> -Nathan
>>
>> On Tue, Nov 4, 2014 at 10:42 AM, John Regan <johnanthonyregan at gmail.com>
>> wrote:
>>
>>> Hi Nathan,
>>>
>>> Sure. Using the enzo_tiny_cosmology I see the same problem. Script
>>> attached.
>>>
>>> On Tue, Nov 4, 2014 at 6:29 PM, Nathan Goldbaum <nathan12343 at gmail.com>
>>> wrote:
>>>
>>>> Hi John,
>>>>
>>>> Do you have a short script using one of the test datasets on
>>>> yt-project.org/data that reproduces this behavior?
>>>>
>>>> -Nathan
>>>>
>>>> On Tue, Nov 4, 2014 at 10:26 AM, John Regan <johnanthonyregan at gmail.com
>>>> > wrote:
>>>>
>>>>> Hi Matt,
>>>>>
>>>>> It looks like the particle mass is in grams but the unit assignment
>>>>> sets it to code_mass. Then when the units is set to Msun the numbers get
>>>>> crazy. I can't see easily where the units for the particle mass get set in
>>>>> the create_profile routine (in field/particle_fields the mass is set to g
>>>>> in particle_mass()). Any idea where this might be getting all mixed up or
>>>>> how to force the mass units to be grams in create_profile()?
>>>>>
>>>>> Cheers,
>>>>> John
>>>>>
>>>>> On Mon, Nov 3, 2014 at 5:18 PM, John Regan <johnanthonyregan at gmail.com
>>>>> > wrote:
>>>>>
>>>>>> Yeah that's what I thought first but 1 Msun = 10^33 g. So that would
>>>>>> put the inner DM mass at ~ 10^14 right?
>>>>>>
>>>>>> The total mass inside the sphere of 1kpc is only about 10^7 though.
>>>>>> Something is not quite correct somewhere in the profiling calculation.
>>>>>>
>>>>>> On Mon, Nov 3, 2014 at 5:16 PM, Matthew Turk <matthewturk at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Yup, those sure are weird!  Looks to me like a units issue -- any
>>>>>>> chance those could be in grams but reported in Msun?
>>>>>>>
>>>>>>>
>>>>>>> On Mon Nov 03 2014 at 11:15:23 AM John Regan <
>>>>>>> johnanthonyregan at gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi Matt,
>>>>>>>>
>>>>>>>> Ah I see what you mean now. Changing 'radius' to 'particle_radius'
>>>>>>>> worked nicely. However, the results are bit weird.
>>>>>>>>
>>>>>>>> rpm = yt.create_profile(sp, ['particle_radius'],  ['particle_mass'],
>>>>>>>>                         units = {'particle_radius': 'pc',
>>>>>>>> 'particle_mass' : 'Msun'},
>>>>>>>>                         n_bins=20, weight_field=None,
>>>>>>>> accumulation=True, fractional=False)
>>>>>>>> print "Particle Mass = ", rpm["particle_mass"]
>>>>>>>>
>>>>>>>> Particle Mass =  [  0.00000000e+00   0.00000000e+00
>>>>>>>> 0.00000000e+00   2.17730865e+47
>>>>>>>>    2.39503952e+48   5.00780990e+48   9.36242721e+48   2.87404742e+49
>>>>>>>>    8.03426893e+49   1.91385431e+50   4.44824158e+50   1.02681876e+51
>>>>>>>>    2.28900459e+51   4.74174278e+51   1.05066029e+52   2.07602025e+52
>>>>>>>>    3.49614805e+52   4.89060538e+52   6.82621100e+52
>>>>>>>> 1.08907237e+53] Msun
>>>>>>>>
>>>>>>>> Any idea what is causing the crazy values?
>>>>>>>>
>>>>>>>> On Mon, Nov 3, 2014 at 4:23 PM, Matthew Turk <matthewturk at gmail.com
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> Hi John,
>>>>>>>>>
>>>>>>>>> It was exactly the same error, when you used particle_radius in
>>>>>>>>> both places that "radius" was used before?
>>>>>>>>>
>>>>>>>>> -Matt
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon Nov 03 2014 at 7:06:44 AM John Regan <
>>>>>>>>> johnanthonyregan at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Kacper,
>>>>>>>>>>
>>>>>>>>>> Of course - I should have noticed that. Thanks for finding that.
>>>>>>>>>> However, I notice that when I try to create a profile for the
>>>>>>>>>> Dark (particle) matter I run into some trouble as well.
>>>>>>>>>>
>>>>>>>>>> rpm = yt.create_profile(sp, 'radius',  ['particle_mass'],
>>>>>>>>>>                         units = {'radius': 'pc', 'particle_mass'
>>>>>>>>>> : 'Msun'},
>>>>>>>>>>                         n_bins=20, weight_field=None,
>>>>>>>>>> accumulation=True, fractional=False)
>>>>>>>>>>
>>>>>>>>>> This gives the following error:
>>>>>>>>>>
>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>   File "EnclosedMass.py", line 35, in <module>
>>>>>>>>>>     n_bins=20, weight_field=None, accumulation=True,
>>>>>>>>>> fractional=False)
>>>>>>>>>>   File
>>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>>> line 1361, in create_profile
>>>>>>>>>>     obj.add_fields([field for field in fields])
>>>>>>>>>>   File
>>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>>> line 782, in add_fields
>>>>>>>>>>     self._bin_chunk(chunk, fields, temp_storage)
>>>>>>>>>>   File
>>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>>> line 979, in _bin_chunk
>>>>>>>>>>     rv = self._get_data(chunk, fields)
>>>>>>>>>>   File
>>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/data_objects/profiles.py",
>>>>>>>>>> line 910, in _get_data
>>>>>>>>>>     arr[:,i] = chunk[field][filter]
>>>>>>>>>>   File
>>>>>>>>>> "/homeappl/home/regan/appl_taito/YT/Dev-3.0/yt/yt/units/yt_array.py", line
>>>>>>>>>> 963, in __getitem__
>>>>>>>>>>     ret = super(YTArray, self).__getitem__(item)
>>>>>>>>>> ValueError: too many boolean indices
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Has anyone seen this before? For the 'cell_mass' everything works
>>>>>>>>>> fine.
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> John
>>>>>>>>>>
>>>>>>>>>> On Sat, Nov 1, 2014 at 6:49 PM, Kacper Kowalik <
>>>>>>>>>> xarthisius.kk at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi John,
>>>>>>>>>>> I think that if you want to compute "total" instead of mean you
>>>>>>>>>>> need to set weight_field to None in create_profile.
>>>>>>>>>>> Cheers,
>>>>>>>>>>> Kacper
>>>>>>>>>>>
>>>>>>>>>>> On Sat Nov 01 2014 at 6:10:50 AM John Regan <
>>>>>>>>>>> johnanthonyregan at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>
>>>>>>>>>>>> Is the accumulation flag working in 3.0?
>>>>>>>>>>>> I tried to plot the enclosed mass in a sphere and I got some
>>>>>>>>>>>> funny results.
>>>>>>>>>>>>
>>>>>>>>>>>> rpm = yt.create_profile(sp, 'radius',  'cell_mass',
>>>>>>>>>>>>                         units = {'radius': 'pc', 'cell_mass' :
>>>>>>>>>>>> 'Msun'},
>>>>>>>>>>>>                         weight_field='density',
>>>>>>>>>>>> accumulation=True, fractional=False)
>>>>>>>>>>>>
>>>>>>>>>>>> print "Mass = ", rpm["gas", "cell_mass"]
>>>>>>>>>>>>
>>>>>>>>>>>> In this case bin[n-1] gives a mass of something like 0.5 Msun
>>>>>>>>>>>> but when I print the totals quantity I get a value of several orders of
>>>>>>>>>>>> magnitude higher and closer to what I would expect.
>>>>>>>>>>>>
>>>>>>>>>>>> sp.quantities.total_quantity(["cell_mass", "particle_mass"])
>>>>>>>>>>>>
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>> John
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> 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
>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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/fbc7c840/attachment.htm>


More information about the yt-users mailing list