Nathan is right. If you want to permanently add your field spec to the
codebase in the same way that I added the group0000 field spec, then you
(and your group) wouldn't need to define it in each script you're using.
To add it, you can put it in:
yt/frontends/gadget/definitions.py, and just name it group0001.
Let us know if you have any problems!
Cameron
On Tue, Aug 18, 2015 at 3:35 PM, Nathan Goldbaum
On Tue, Aug 18, 2015 at 5:28 PM, Jared Coughlin < Jared.W.Coughlin.29@nd.edu> wrote:
Thanks! I'll give that a try. Also, in my field_spec definition, for those fields that applied to more than one particle type, I edited it to have () around them, so it reads ("C", ("Gas", "Stars")). Is that the right way to do that?
Yes, I think that's correct. It seems to be used that way in the group0000 field spec we have already. I've never actually tried to do what you're doing, though.
By the way, if you *do* get this working, we'd love to include your field spec in yt itself so future users who have data that looks like yours won't have to deal with this. Unfortunately due to the proliferation of Gadget output types, someone at some point needs to add support for each custom type to yt so we can ascribe semantic meaning to all of the fields.
Also, here's the documentation page I was following:
http://yt-project.org/doc/examining/loading_data.html?highlight=gadget_field...
I've issued a pull request to fix this here:
https://bitbucket.org/yt_analysis/yt/pull-requests/1706/correcting-two-incor...
Thanks! -Jared
On Tue, Aug 18, 2015 at 5:51 PM, Nathan Goldbaum
wrote: On Tue, Aug 18, 2015 at 4:46 PM, Jared Coughlin < Jared.W.Coughlin.29@nd.edu> wrote:
Hello! I have two questions: the first is related to saving new field specs, and the second is related to reading in the file itself.
I was following along with the documentation that describes saving new field specs, and I defined a new field spec as (it should be noted that my extra columns are for both gas and star particles, and I was unsure as to how to tell yt that it applied for both types, so I made a best guess):
my_field_def = ("Coordinates", "Velocities", "ParticleIDs", "Mass", ("InternalEnergy", "Gas"), ("Density", "Gas"), ("SmoothingLength", "Gas"), ("RII", "Stars"), ("RIa", "Stars"), ("StellarAge", "Stars"), ("C", "Gas", "Stars"), ("O", "Gas", "Stars"), ("Ca", "Gas", "Stars"), ("Cr", "Gas", "Stars"), ("Mn", "Gas", "Stars"), ("Fe", "Gas", "Stars"), ) And a unit base:
unit_base = {'UnitLength_in_cm' : 3.085678e+21, 'UnitMass_in_g' : 1.989e+43, 'UnitVelocity_in_cm_per_s' : 1.0e+5}
Firstly, when I tried to add my custom field definition to the gadget_field_specs by doing:
from yt.frontends.sph.definitions import gadget_field_specs
I get the error: Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named definitions
Just wondering what I was doing wrong? Also, when I try to load in the snapshot, I am doing:
It looks like you're reading some out of date documentation. The correct import is now "from yt.frontends.gadget.definitions import gadget_field_specs"
Can you paste the link to the page with the incorrect import? If it's still that way in the latest version of the docs, we can correct it.
fname = 'snapshot_000.0' ds = yt.GadgetDataset(fname, unit_base=unit_base, field_spec=my_field_def)
ds.index
ad = ds.all_data()
pz = yt.ProjectionPlot(ds, 'z', ('gas', 'density')) pz.show()
The output is: yt : [INFO ] 2015-08-18 17:24:45,103 Calculating time from 2.500e-01 to be 6.950e+16 seconds yt : [INFO ] 2015-08-18 17:24:45,144 Parameters: current_time = 6.95032608578e+16 s yt : [INFO ] 2015-08-18 17:24:45,144 Parameters: domain_dimensions = [2 2 2] yt : [INFO ] 2015-08-18 17:24:45,144 Parameters: domain_left_edge = [ 0. 0. 0.] yt : [INFO ] 2015-08-18 17:24:45,145 Parameters: domain_right_edge = [ 50000. 50000. 50000.] yt : [INFO ] 2015-08-18 17:24:45,145 Parameters: cosmological_simulation = 1 yt : [INFO ] 2015-08-18 17:24:45,145 Parameters: current_redshift = 3.00000005201 yt : [INFO ] 2015-08-18 17:24:45,145 Parameters: omega_lambda = 0.726 yt : [INFO ] 2015-08-18 17:24:45,145 Parameters: omega_matter = 0.274 yt : [INFO ] 2015-08-18 17:24:45,145 Parameters: hubble_constant = 0.702 yt : [INFO ] 2015-08-18 17:24:45,146 Allocating for 4.194e+06 particles yt : [INFO ] 2015-08-18 17:24:45,664 Identified 3.077e+05 octs Traceback (most recent call last): File "yt_test_script.py", line 72, in <module> ds.index File "/home/user/Research/Tools/yt/yt-x86_64/src/yt-hg/yt/data_objects/static_output.py", line 321, in index self, dataset_type=self.dataset_type) File "/home/user/Research/Tools/yt/yt-x86_64/src/yt-hg/yt/geometry/particle_geometry_handler.py", line 53, in __init__ super(ParticleIndex, self).__init__(ds, dataset_type) File "/home/user/Research/Tools/yt/yt-x86_64/src/yt-hg/yt/geometry/geometry_handler.py", line 65, in __init__ self._detect_output_fields() File "/home/user/Research/Tools/yt/yt-x86_64/src/yt-hg/yt/geometry/particle_geometry_handler.py", line 125, in _detect_output_fields fl, _units = self.io._identify_fields(dom) File "/home/user/Research/Tools/yt/yt-x86_64/src/yt-hg/yt/frontends/gadget/io.py", line 208, in _identify_fields field, req = field ValueError: too many values to unpack
This is probably related to not having the correct field spec when loading the data.
The snapshot I'm trying to load is a 128^3 50Mpc snapshot distributed onto 4 files and the error occurs on a call to ds.index, if that helps. Thank you! -Jared
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
-- Cameron Hummels NSF Postdoctoral Fellow Department of Astronomy California Institute of Technology http://chummels.org