[yt-users] problem accessing EOSCriticalDensity parameter (enzo)

Matthew Turk matthewturk at gmail.com
Thu Aug 18 05:09:51 PDT 2011


Hi all,

On Wed, Aug 17, 2011 at 5:59 PM, Britton Smith <brittonsmith at gmail.com> wrote:
> Hey Jeff,
>
> Are you getting this variable like this:
> pf.parameters['EOSCriticalDensity']
> or like this:
> pf.get_parameter('EOSCriticalDensity', float)
>
> If it's the first, then Dave is right that many of the pf parameters are not
> loaded by default, in which case you need to do the second way the first
> time.  After you've done that, you can refer to it with pf.parameters every
> time after that.

I had occasion last week to write a script to parse the Enzo parameter
file and interpret the values, guessing at their type.  (This was for
uploading Enzo simulation records to an IVOA database, which required
type-information about parameters.)  I think it might be a nice
addition, but I would like to propose that if it gets included, it not
be accessible via pf[every_parameter_in_enzo], simply because that
namespace is getting too crowded -- unit conversions, parameters, and
length conversions.

What if we included the parsing, and then for 3.0 (still a ways off)
we split into units, parameters, and attributes.  Attributes are
common between different output types -- domain_left_edge,
domain_right_edge, etc.  Then one could do:

pf.domain_right_edge
pf.units["mpc"]
pf.parameters["EOSCriticalDensity"]

Would that be alright?  For now we can just pollute the dict
namespace, but I don't particularly want this to be the permanent
solution.

-Matt

>
> Britton
>
> On Wed, Aug 17, 2011 at 5:55 PM, David Collins <dcollins at physics.ucsd.edu>
> wrote:
>>
>> I think yt only knows about certain parameters initially, and for
>> others you need to tell it how to parse.  I have things like this in
>> my plugins file:
>>
>> from yt.frontends.enzo.definitions import parameterDict
>> parameterDict['WhatDoesABoatDo'] = float
>>
>> which then tells yt what type of variable 'WhatDoesABoatDo' should be
>> parsed as.
>>
>> d.
>>
>>
>> On Wed, Aug 17, 2011 at 3:18 PM, j s oishi <jsoishi at gmail.com> wrote:
>> > Hi all,
>> >
>> > I am trying to reach Enzo's EOSCriticalDensity parameter in my pf
>> > within yt (hg hash 486d7131f1c2) . For some reason, it throws a
>> > KeyError, even though grepping EOSCriticalDensity in the
>> > DD0001/data0001 file turns it right up:
>> >
>> > $ grep EOSCriticalDensity DD0001/data0001
>> > EOSCriticalDensity         = 1e-13
>> >
>> > I have deleted the .yt file, but to no avail. The error message is:
>> >
>> >
>> > In [1]: pf['EOSCriticalDensity']
>> >
>> > ---------------------------------------------------------------------------
>> > KeyError                                  Traceback (most recent call
>> > last)
>> >
>> > /home/jsoishi/build/yt-unknown/src/yt-hg/yt/utilities/command_line.pyc
>> > in <module>()
>> > ----> 1
>> >      2
>> >      3
>> >      4
>> >      5
>> >
>> >
>> > /home/jsoishi/build/yt-unknown/src/yt-hg/yt/data_objects/static_output.pyc
>> > in __getitem__(self, key)
>> >    118                   self.conversion_factors]:
>> >    119             if key in d: return d[key]
>> > --> 120         raise KeyError(key)
>> >    121
>> >    122     def keys(self):
>> >
>> > KeyError: 'EOSCriticalDensity'
>> >
>> > Can anyone provide insight? I feel fairly certain I'm doing something
>> > dumb, but I don't see what.
>> >
>> > thanks,
>> >
>> > jeff
>> > _______________________________________________
>> > yt-users mailing list
>> > yt-users at lists.spacepope.org
>> > http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>> >
>>
>>
>>
>> --
>> Sent from my computer.
>> _______________________________________________
>> 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
>
>



More information about the yt-users mailing list