Hey Jared,

Yeah, ("C", ("Gas", "Stars")) is the right syntax.  Good luck!

Cameron

On Tue, Aug 18, 2015 at 3: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? Also, here's the documentation page I was following:

Thanks!
-Jared


On Tue, Aug 18, 2015 at 5:51 PM, Nathan Goldbaum <nathan12343@gmail.com> 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




--
Cameron Hummels
NSF Postdoctoral Fellow
Department of Astronomy
California Institute of Technology
http://chummels.org