[yt-dev] Issue #1027: yt.load_particles cannot find newly derived fields (yt_analysis/yt)

Benjamin Thompson issues-reply at bitbucket.org
Wed May 20 14:15:19 PDT 2015


New issue 1027: yt.load_particles cannot find newly derived fields
https://bitbucket.org/yt_analysis/yt/issue/1027/ytload_particles-cannot-find-newly-derived

Benjamin Thompson:

This script.


```
#!python

import numpy as np
import yt
from yt.units.yt_array import YTArray
from yt.units import kiloparsec, Msun, kilometer, second, Gyr

def _do_magick(field, data):
	rv = data[("all","particle_birth_epoch")] * 10.0
	return rv 

n_data = 3000

sim_data_verb = {"particle_mass": YTArray(np.random.rand(n_data) * 1000,"Msun"),
			"particle_position_x": YTArray(np.random.rand(n_data),"kpc"),
			"particle_position_y": YTArray(np.random.rand(n_data),"kpc"),
			"particle_position_z": YTArray(np.random.rand(n_data),"kpc"),
			"particle_velocity_x": YTArray(np.random.rand(n_data), "kpc/s"),
			"particle_velocity_y": YTArray(np.random.rand(n_data), "kpc/s"),
			"particle_velocity_z": YTArray(np.random.rand(n_data), "kpc/s"),
			"particle_mass_birth_epoch": YTArray(np.random.rand(n_data), "Msun"),
			"particle_birth_epoch": YTArray(np.random.rand(n_data), "Gyr"),
			"particle_metallicity": YTArray(np.random.rand(n_data),"dimensionless")
		}

bbox = yt.YTArray(np.array([[0,1],[0,1],[0,1]]),"kpc")

ds = yt.load_particles(sim_data_verb, length_unit=kiloparsec, mass_unit=Msun, time_unit=second, bbox=bbox, n_ref=256)
ds.add_field(name = ('all','particle_birth_epoch_two'),function=_do_magick, units="Gyr")

ad = ds.all_data()

print ds.derived_field_list


print ad[('all','particle_birth_epoch_two')]


```

returns this error 

  File "yt_example2.py", line 35, in <module>
    print ad[('all','particle_birth_epoch_two')]
  File "/home/ben/.local/lib/python2.7/site-packages/yt-3.2dev-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.py", line 246, in __getitem__
    f = self._determine_fields([key])[0]
  File "/home/ben/.local/lib/python2.7/site-packages/yt-3.2dev-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.py", line 541, in _determine_fields
    raise YTFieldTypeNotFound(ftype)
yt.utilities.exceptions.YTFieldTypeNotFound: Could not find field 'all'.


It seems as though it cannot find the newly derived field



_______________________________________________
yt-dev mailing list
yt-dev at lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org




More information about the yt-dev mailing list