
Hi, I want to test if a data set at particles. I thought: pf.has_key("particle_type") would work, but oddly it doesn't since: In [17]: pf.has_key("particle_type") Out[17]: False yet: In [4]: dd = pf.h.all_data() In [5]: dd["particle_type"] yt : [INFO ] 2013-02-23 17:00:43,826 Getting particle_type using ParticleIO Out[5]: array([11, 11, 11, ..., 11, 11, 11]) Shouldn't pf.has_key("particle_type") be true in this case? Elizabeth

Hi Elizabeth, 'particle type' is a particle field and I don't think it's ever a well-defined key for the pf object. For Enzo datasets, you can query for 'NumberOfParticles':
Of course that won't tell you if particles of a given type are in the dataset, to do that I think you need to load the particle type dataset into memory as you did in your example. -Nathan On Sat, Feb 23, 2013 at 12:07 AM, Elizabeth Tasker < tasker@astro1.sci.hokudai.ac.jp> wrote:

Hi Elizabeth, On Sat, Feb 23, 2013 at 3:07 AM, Elizabeth Tasker <tasker@astro1.sci.hokudai.ac.jp> wrote:
pf has an ill-defined access pattern, so I think the most likely case is that that will test if it has a conversion factor. But! In all codes, all detected fields get added to pf.h.field_list , and all derived fields (and non-derived fields) that yt can conceivably create are in pf.h.derived_field_list . So you can do: "particle_type" in pf.h.field_list for testing this. -Matt

Hi Elizabeth, 'particle type' is a particle field and I don't think it's ever a well-defined key for the pf object. For Enzo datasets, you can query for 'NumberOfParticles':
Of course that won't tell you if particles of a given type are in the dataset, to do that I think you need to load the particle type dataset into memory as you did in your example. -Nathan On Sat, Feb 23, 2013 at 12:07 AM, Elizabeth Tasker < tasker@astro1.sci.hokudai.ac.jp> wrote:

Hi Elizabeth, On Sat, Feb 23, 2013 at 3:07 AM, Elizabeth Tasker <tasker@astro1.sci.hokudai.ac.jp> wrote:
pf has an ill-defined access pattern, so I think the most likely case is that that will test if it has a conversion factor. But! In all codes, all detected fields get added to pf.h.field_list , and all derived fields (and non-derived fields) that yt can conceivably create are in pf.h.derived_field_list . So you can do: "particle_type" in pf.h.field_list for testing this. -Matt
participants (3)
-
Elizabeth Tasker
-
Matthew Turk
-
Nathan Goldbaum