
Hi Sam, On Wed, Jan 4, 2012 at 6:52 AM, Matthew Turk <matthewturk@gmail.com> wrote:
Hi Sam,
On Tue, Jan 3, 2012 at 9:01 PM, Sam Skillman <samskillman@gmail.com> wrote:
Hi all,
I'm running into an issue with translation dictionaries for the GDF frontend.
On the tip, if I load up a gdf dataset, and do:
pf.h.find_max('Density')
I get:
http://paste.yt-project.org/show/2008/
If I instead do pf.h.find_max('density'), I get what looks like the same error.
If I replace line 56 in yt/frontends/gdf/fields.py
55 KnownGDFFields = FieldInfoContainer() 56 add_gdf_field = KnownGDFFields.add_field
with
57 add_gdf_field = GDFFieldInfo.add_field
It works fine.
Hm, this is the opposite of what I'd expect. "Known" is to indicate that a field may exist in a file, whereas the standard is to indicate it can be derived. By that logic, "Known" is where "density" should go and standard is where "Density" should go, which in my version of the code is how it is done.
One quick thought. Can you try with the validators for 'density' removed, using the standard code as it is in the tip of the main repo? i.e., change add_gdf_field("density", function=NullFunc, take_log=True, validators = [ValidateDataField("density")], units=r"\rm{g}/\rm{cm}^3", projected_units =r"\rm{g}/\rm{cm}^2") to add_gdf_field("density", function=NullFunc, take_log=True, units=r"\rm{g}/\rm{cm}^3", projected_units =r"\rm{g}/\rm{cm}^2") -Matt
Can you supply a small sample GDF dataset so I can dig in?
-Matt
Alternatively, if I replace
96 for f,v in log_translation_dict.items(): 97 add_field(f, function=TranslationFunc(v), take_log=True) 98 99 for f,v in translation_dict.items(): 100 add_field(f, function=TranslationFunc(v), take_log=False)
with
102 def _generate_translation(mine, theirs, take_log=False): 103 add_field(theirs, function=lambda a, b: b[mine], take_log=take_log) 104 105 106 for f,v in log_translation_dict.items(): 107 if v not in GDFFieldInfo: 108 add_field(v, function=lambda a,b: None, take_log=True, 109 validators = [ValidateDataField(v)]) 110 #print "Setting up translator from %s to %s" % (v, f) 111 _generate_translation(v, f, take_log=True) 112 113 114 for f,v in translation_dict.items(): 115 if v not in GDFFieldInfo: 116 add_field(v, function=lambda a,b: None, take_log=False, 117 validators = [ValidateDataField(v)]) 118 #print "Setting up translator from %s to %s" % (v, f) 119 _generate_translation(v, f, take_log=False)
as is done in the orion reader, it works fine.
Anyways, if someone sees what is going on here, let me know. I'll also be on IRC for a bit longer tonight and all tomorrow.
Thanks, Sam
_______________________________________________ yt-dev mailing list yt-dev@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org