On Wed, Aug 19, 2015 at 3:34 PM, Jared Coughlin <Jared.W.Coughlin.29@nd.edu> wrote:
Hello! I have a custom gadget snapshot distributed onto four files, and I'm trying to make an absorption spectrum from a LOS through the middle of the box parallel to the x-axis. To this end, I have done:

lr = LightRay(fname, load_kwargs={'unit_base' : my_unit_base, 'field_spec' : my_field_def})
lr.make_light_ray(start_position=[0.0, 25000.0, 25000.0], 
                             end_position=[50000.0, 25000.0, 25000.0], 
                             solution_filename='lrsol.txt', 
                             data_filename='lr.h5', 
                             fields=['temperature', 'density'], 
                             get_los_velocity=True)

sp = AbsorptionSpectrum(4862.4, 4949.04, 3000)
my_label = 'HI Lya'
field = 'H_number_density'
wavelength = 1215.67
f_value = 4.164E-01
gamma = 6.265E+08
mass = 1.00794

sp.add_line(my_label, field, wavelength, f_value, gamma, mass, label_threshold=1e10)

wl, flux = sp.make_spectrum('lr.h5', output_file='spectrum.txt', 
                                               line_list_file='lines.txt', use_peculiar_velocity=True)

And I get the error: KeyError: "Unable to open object (Object 'h_number_density' doesn't exist)"
I didn't post the traceback because it's kind of long. 

We usually use a pastebin for this, e.g. paste.yt-project.org.
 

I have two questions. First: When calling make_light_ray and passing it fields, do I need to pass it H_number_density? Second: Does yt read in those fields from the gadget snapshot, or does it calculate them from the data in the snapshot (for example, a standard gadget snapshot does not write the temperature, but rather the internal energy)?  Thanks!

It can do both. If the hydrogen number density is available on disk, you might need to add it as a known alias to h_number_density in the gadget frontend. We already do this for the Enzo frontend, for example.

It's also possible to add a derived field to the gadget frontend that calculates the hydrogen number density based on other fields.  That's how the OWLS/EAGLE frontend does it.

As a stopgap, it should be possible to create a derived field in your script that defines ('gas', 'h_number_density'). I've never actually tried to get this to work, so I don't know if there might be obscure issues.

Cameron can likely comment on the light ray specific issues you're running into.
 

-Jared

_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org