[yt-users] yt.utilities.amr_utils

Renyue Cen cen at astro.princeton.edu
Tue Jan 22 10:05:53 PST 2013


Hi Michael,

Yes, the cutout region as a whole got plenty of particles in it so it must
be some subregions with it that is causing issues.
I have not figured out a way around it as yet but hope that Sam will take
a look at it when he gets time.

Best,
Renyue

On Jan 22, 2013, at 1:02 PM, Michael Kuhlen wrote:

> Hi Renyue 
> 
> It's possible that this is what's going on, but the region as a whole definitely has plenty of particles in it. Did you figure out a way around this error?
> 
> Mike
> 
> On Tue, Jan 22, 2013 at 5:28 AM, Renyue Cen <cen at astro.princeton.edu> wrote:
> Michael,
> 
> This happens to me occasionally and I was told that it might be due to
> some subregions in your region that got no particles or something like that.
> It seems due to AMRKDTree construction, as I understand it.
> 
> Renyue
> 
> On Jan 22, 2013, at 1:38 AM, Michael Kuhlen wrote:
> 
>> Sorry to revive this old(ish) thread, but I've been experiencing similar troubles to Renyue's. Mine, however, were not completely fixed by switching from yt.utilities.amr_utils to yt.utilities.lib. I was still getting this error:
>> 
>> AttributeError: 'AMRSmoothedCoveringGrid' object has no attribute 'NumberOfParticles'
>> 
>> The solution for me was to switch from validators=[ValidateSpatial(0)] to validators=[ValidateGridType()] in the add_field() call. Since many of the fields defined in yt/frontends/*/fields.py still use ValidateSpatial(0), I'm getting the same NumberOfParticles AttributeError when I try to do volume renderings of "built-in" fields like dm_density.
>> 
>> Cheers,
>> Mike
>> 
>> 
>> 
>> 
>> 
>> 
>> On Sun, Jan 13, 2013 at 1:11 PM, Renyue Cen <cen at astro.princeton.edu> wrote:
>> HI Matt,
>> 
>> That worked (after I remove the following things that I added following the line " from yt.utilities.lib import CICDeposit_3":
>> #from yt.utilities.cosmology import Cosmology
>> #from field_info_container import \
>> #    add_field, \
>> #    ValidateDataField, \
>> #    ValidateGridType, \
>> #    ValidateParameter, \
>> #    ValidateSpatial, \
>> #    NeedsGridType, \
>> #    NeedsOriginalGrid, \
>> #    NeedsDataField, \
>> #    NeedsProperty, \
>> #    NeedsParameter
>> 
>> which was copied elsewhere earlier and apparent messed up with the CICDeposit_3 import a line before.
>> 
>> Thanks very much,
>> Renyue
>> 
>> 
>> On Jan 13, 2013, at 3:35 PM, Matthew Turk wrote:
>> 
>> > Hi Renyue,
>> >
>> > No, that should work.  What I'm actually seeing now is that you do in
>> > fact use amr_utils -- I missed this before -- to get the CICDeposit_3.
>> > The exception from the NameError is probably killing its
>> > availability.
>> >
>> > So here's what to do:
>> >
>> > 1) Replace your previous import, which I suggested you remove, of
>> > yt.utilities.amr_utils with:
>> >
>> > from yt.utilities.lib import CICDeposit_3
>> >
>> > 2) Change your call to CICDeposit_3 from amr_utils.CICDeposit_3 to CICDeposit_3
>> >
>> > And try again?
>> >
>> > -Matt
>> >
>> > On Sun, Jan 13, 2013 at 3:31 PM, Renyue Cen <cen at astro.princeton.edu> wrote:
>> >> Hi Matt,
>> >>
>> >> This field (SFRdensity) was defined before the
>> >> pf = ...
>> >> statement, along with some other simpler definitions of gas variables that did not require CIC
>> >> and seem to work.
>> >>
>> >> Was I using the wrong syntax or something?
>> >>
>> >> Renyue
>> >>
>> >> On Jan 13, 2013, at 3:25 PM, Matthew Turk wrote:
>> >>
>> >>> Hi Renyue,
>> >>>
>> >>> One important thing to note is that the field has to be added before
>> >>> you instantiate the parameter file; i.e., you must do:
>> >>>
>> >>> add_field( ... )
>> >>> pf = ...
>> >>>
>> >>> because the parameter file, upon creation of the hierarchy, performs
>> >>> an auto-detection step.  This auto-detection step determines which
>> >>> fields are available based on their dependencies.
>> >>>
>> >>> -Matt
>> >>>
>> >>> On Sun, Jan 13, 2013 at 3:22 PM, Renyue Cen <cen at astro.princeton.edu> wrote:
>> >>>> Hi Matt,
>> >>>>
>> >>>> It seems that my attempt to reuse "star_density" for a subset of stars does not work:
>> >>>> "star_density" remains the density of all stars when plotted.
>> >>>> But I also failed to redefine a new density that is called "SFRdensity" and feed it to AMRKDTree which is in turn
>> >>>> fed to camera to volume render. Here is what I did:
>> >>>>
>> >>>> def _convertDensity(data):
>> >>>>   return data.convert("Density")
>> >>>> def _SFRdensity(field, data):
>> >>>>   blank = na.zeros(data.ActiveDimensions, dtype='float32')
>> >>>>   if data.NumberOfParticles == 0: return blank
>> >>>> #   filter  = data.pf.time_units['years']*(data.pf.current_time - data['creation_time']) < 1.e8
>> >>>>   filter  = data.pf.time_units['years']*(data.pf.current_time - data['creation_time']) < 1.e6
>> >>>>   if not filter.any(): return blank
>> >>>>   amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(na.float64),
>> >>>>                          data["particle_position_y"][filter].astype(na.float64),
>> >>>>                          data["particle_position_z"][filter].astype(na.float64),
>> >>>>                          data["particle_mass"][filter].astype(na.float32),
>> >>>>                          na.int64(na.where(filter)[0].size),
>> >>>>                          blank, na.array(data.LeftEdge).astype(na.float64),
>> >>>>                          na.array(data.ActiveDimensions).astype(na.int32),
>> >>>>                          na.float64(data['dx']))
>> >>>>   return blank
>> >>>> add_field("SFRdensity", function=_SFRdensity,
>> >>>>         validators=[ValidateSpatial(0)], convert_function=_convertDensity)
>> >>>>
>> >>>>   volume3 = AMRKDTree(pf, fields=["SFRdensity"]
>> >>>>              ,no_ghost=False, tree_type="domain"
>> >>>>              ,le=c-0.5*WW, re=c+0.5*WW)
>> >>>>   cam = pf.h.camera(c, L, W, (Nvec,Nvec), tf3, volume=volume3, no_ghost=False,log_fields=None
>> >>>>                 ,north_vector=dir)
>> >>>>
>> >>>>
>> >>>> with the following error message:
>> >>>>
>> >>>> Traceback (most recent call last):
>> >>>> File "SFR.py", line 393, in <module>
>> >>>>   ,le=c-0.5*WW, re=c+0.5*WW)
>> >>>> File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/utilities/amr_kdtree/amr_kdtree.py", line 316, in __init__
>> >>>>   for field in self.fields]
>> >>>> File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/field_info_container.py", line 71, in __missing__
>> >>>>   return self.fallback[key]
>> >>>> File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/field_info_container.py", line 71, in __missing__
>> >>>>   return self.fallback[key]
>> >>>> File "/u/jhwise/local/lib/python2.7/site-packages/yt-2.4-py2.7-linux-x86_64.egg/yt/data_objects/field_info_container.py", line 70, in __missing__
>> >>>>   raise KeyError("No field named %s" % key)
>> >>>> KeyError: 'No field named SFRdensity'
>> >>>>
>> >>>>
>> >>>> So I must be doing something wrong with defining the SFRdensity field.
>> >>>>
>> >>>> Thanks very much,
>> >>>> Renyue
>> >>>>
>> >>>>
>> >>>> On Jan 13, 2013, at 1:20 PM, Matthew Turk wrote:
>> >>>>
>> >>>>> Hi Renyue,
>> >>>>>
>> >>>>> The module amr_utils became lib a while back.  But my guess is that
>> >>>>> you probably don't need to import it anyway, unless you are explicitly
>> >>>>> using one of the routines it provides.
>> >>>>>
>> >>>>> -Matt
>> >>>>>
>> >>>>> On Sun, Jan 13, 2013 at 12:18 PM, Renyue Cen <cen at astro.princeton.edu> wrote:
>> >>>>>> Hi,
>> >>>>>>
>> >>>>>> I am trying to compute gridded density of some subset of particles.
>> >>>>>> So I tried to import some modules first in the python script as follows:
>> >>>>>>
>> >>>>>> from yt.data_objects.field_info_container import \
>> >>>>>>  FieldInfoContainer, \
>> >>>>>>  NullFunc, \
>> >>>>>>  TranslationFunc, \
>> >>>>>>  FieldInfo, \
>> >>>>>>  ValidateParameter, \
>> >>>>>>  ValidateDataField, \
>> >>>>>>  ValidateProperty, \
>> >>>>>>  ValidateSpatial, \
>> >>>>>>  ValidateGridType
>> >>>>>> import yt.data_objects.universal_fields
>> >>>>>> from yt.utilities.physical_constants import mh
>> >>>>>> from yt.funcs import *
>> >>>>>> import yt.utilities.amr_utils as amr_utils
>> >>>>>>
>> >>>>>>
>> >>>>>> But I got this error message:
>> >>>>>>
>> >>>>>> Traceback (most recent call last):
>> >>>>>> File "SFR.py", line 28, in <module>
>> >>>>>>  import yt.utilities.amr_utils as amr_utils
>> >>>>>> ImportError: No module named amr_utils
>> >>>>>>
>> >>>>>>
>> >>>>>> Am I doing something wrong?
>> >>>>>>
>> >>>>>> Thanks,
>> >>>>>> Renyue
>> >>>>
>> >>
>> 
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>> 
>> 
>> 
>> -- 
>> *********************************************************************
>> *                                                                   *
>> *  Dr. Michael Kuhlen              Theoretical Astrophysics Center  *
>> *  email: mqk at astro.berkeley.edu   UC Berkeley                      *
>> *  cell phone: (831) 588-1468      B-116 Hearst Field Annex # 3411  *
>> *  skype username: mikekuhlen      Berkeley, CA 94720               *
>> *                                                                   *
>> *********************************************************************
> 
> 
> 
> 
> -- 
> *********************************************************************
> *                                                                   *
> *  Dr. Michael Kuhlen              Theoretical Astrophysics Center  *
> *  email: mqk at astro.berkeley.edu   UC Berkeley                      *
> *  cell phone: (831) 588-1468      B-116 Hearst Field Annex # 3411  *
> *  skype username: mikekuhlen      Berkeley, CA 94720               *
> *                                                                   *
> *********************************************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20130122/a8473eab/attachment.htm>


More information about the yt-users mailing list