[yt-svn] commit/yt: 8 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Thu Jul 23 09:37:01 PDT 2015


8 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/1be1e19b76b0/
Changeset:   1be1e19b76b0
Branch:      yt
User:        brittonsmith
Date:        2015-07-21 12:17:00+00:00
Summary:     Adding a list of union fields to be created from alias fields.  We have to do this because the same field for different ptypes have different names on disk.
Affected #:  1 file

diff -r 2fee18b574b436c4f19922aea6cd3f4e26eac221 -r 1be1e19b76b001f03c4c0339f207c0451482f611 yt/frontends/gadget_fof/fields.py
--- a/yt/frontends/gadget_fof/fields.py
+++ b/yt/frontends/gadget_fof/fields.py
@@ -45,4 +45,16 @@
         ("SubhaloVel_2", (v_units, ["Subhalo", "particle_velocity_z"], None)),
         ("SubhaloMass",  (m_units, ["Subhalo", "particle_mass"], None)),
         ("SubhaloLen",   ("",      ["Subhalo", "particle_number"], None)),
-)
+    )
+
+    # these are extra fields to be created for the "all" particle type
+    extra_union_fields = (
+        (p_units, "particle_position_x"),
+        (p_units, "particle_position_y"),
+        (p_units, "particle_position_z"),
+        (v_units, "particle_velocity_x"),
+        (v_units, "particle_velocity_y"),
+        (v_units, "particle_velocity_z"),
+        (m_units, "particle_mass"),
+        ("",      "particle_number"),
+    )


https://bitbucket.org/yt_analysis/yt/commits/1edc5b64d1a4/
Changeset:   1edc5b64d1a4
Branch:      yt
User:        brittonsmith
Date:        2015-07-21 12:17:37+00:00
Summary:     Adding functionality create additional union fields from aliased fields.
Affected #:  3 files

diff -r 1be1e19b76b001f03c4c0339f207c0451482f611 -r 1edc5b64d1a4e7bff79e5f81d6a34d832667f32a yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -375,6 +375,7 @@
             mylog.debug("Creating Particle Union 'all'")
             pu = ParticleUnion("all", list(self.particle_types_raw))
             self.add_particle_union(pu)
+        self.field_info.setup_extra_union_fields()
         mylog.info("Loading field plugins.")
         self.field_info.load_all_plugins()
         deps, unloaded = self.field_info.check_derived_fields()

diff -r 1be1e19b76b001f03c4c0339f207c0451482f611 -r 1edc5b64d1a4e7bff79e5f81d6a34d832667f32a yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -29,6 +29,7 @@
 from .field_plugin_registry import \
     field_plugins
 from .particle_fields import \
+    add_union_field, \
     particle_deposition_functions, \
     particle_vector_functions, \
     particle_scalar_functions, \
@@ -47,6 +48,7 @@
     fallback = None
     known_other_fields = ()
     known_particle_fields = ()
+    extra_union_fields = ()
 
     def __init__(self, ds, field_list, slice_info = None):
         self._show_field_errors = []
@@ -117,6 +119,10 @@
                                    num_neighbors=num_neighbors,
                                    ftype=ftype)
 
+    def setup_extra_union_fields(self, ptype="all"):
+        for units, field in self.extra_union_fields:
+            add_union_field(self, ptype, field, units)
+
     def setup_smoothed_fields(self, ptype, num_neighbors = 64, ftype = "gas"):
         # We can in principle compute this, but it is not yet implemented.
         if (ptype, "density") not in self:

diff -r 1be1e19b76b001f03c4c0339f207c0451482f611 -r 1edc5b64d1a4e7bff79e5f81d6a34d832667f32a yt/fields/particle_fields.py
--- a/yt/fields/particle_fields.py
+++ b/yt/fields/particle_fields.py
@@ -839,4 +839,17 @@
                        units = "g/cm**3")
     return [field_name]
 
+def add_union_field(registry, ptype, field_name, units):
+    """
+    Create a field that is the concatenation of multiple particle types.
+    This allows us to create fields for particle unions using alias names.
+    """
 
+    def _cat_field(field, data):
+        return uconcatenate([data[dep_type, field_name]
+                             for dep_type in data.ds.particle_types_raw])
+
+    registry.add_field((ptype, field_name),
+                       function=_cat_field,
+                       particle_type=True,
+                       units=units)


https://bitbucket.org/yt_analysis/yt/commits/55d449eb9b30/
Changeset:   55d449eb9b30
Branch:      yt
User:        brittonsmith
Date:        2015-07-21 12:25:36+00:00
Summary:     Preserving the order of particle_types_raw so that union fields are ordered correctly.
Affected #:  1 file

diff -r 1edc5b64d1a4e7bff79e5f81d6a34d832667f32a -r 55d449eb9b305c9cc450568348a5ba8a2e8ef9b0 yt/frontends/gadget_fof/data_structures.py
--- a/yt/frontends/gadget_fof/data_structures.py
+++ b/yt/frontends/gadget_fof/data_structures.py
@@ -95,7 +95,7 @@
         # This is an attribute that means these particle types *actually*
         # exist.  As in, they are real, in the dataset.
         ds.field_units.update(units)
-        ds.particle_types_raw = ds.particle_types
+        ds.particle_types_raw = tuple(sorted(ds.particle_types))
             
     def _setup_geometry(self):
         super(GadgetFOFParticleIndex, self)._setup_geometry()


https://bitbucket.org/yt_analysis/yt/commits/0ad59c45c5e5/
Changeset:   0ad59c45c5e5
Branch:      yt
User:        brittonsmith
Date:        2015-07-21 12:29:58+00:00
Summary:     Adding particle_ones as extra_union_field.
Affected #:  1 file

diff -r 55d449eb9b305c9cc450568348a5ba8a2e8ef9b0 -r 0ad59c45c5e5aaf11d638fb4e4d5eb91e996673b yt/frontends/gadget_fof/fields.py
--- a/yt/frontends/gadget_fof/fields.py
+++ b/yt/frontends/gadget_fof/fields.py
@@ -57,4 +57,5 @@
         (v_units, "particle_velocity_z"),
         (m_units, "particle_mass"),
         ("",      "particle_number"),
+        ("",      "particle_ones"),
     )


https://bitbucket.org/yt_analysis/yt/commits/3ca1707ed515/
Changeset:   3ca1707ed515
Branch:      yt
User:        brittonsmith
Date:        2015-07-21 12:30:19+00:00
Summary:     Updating tests.
Affected #:  1 file

diff -r 0ad59c45c5e5aaf11d638fb4e4d5eb91e996673b -r 3ca1707ed515555429a95026dd07ae9ad8797cc5 yt/frontends/gadget_fof/tests/test_outputs.py
--- a/yt/frontends/gadget_fof/tests/test_outputs.py
+++ b/yt/frontends/gadget_fof/tests/test_outputs.py
@@ -23,13 +23,10 @@
     data_dir_load
 from yt.frontends.gadget_fof.api import GadgetFOFDataset
 
-p_types  = ("Group", "Subhalo")
-p_fields = ("particle_position_x", "particle_position_y",
+_fields = ("particle_position_x", "particle_position_y",
             "particle_position_z", "particle_velocity_x",
             "particle_velocity_y", "particle_velocity_z",
             "particle_mass", "particle_identifier")
-_fields = tuple([(p_type, p_field) for p_type in p_types
-                                   for p_field in p_fields])
 
 # a dataset with empty files
 g5 = "gadget_fof_halos/groups_005/fof_subhalo_tab_005.0.hdf5"


https://bitbucket.org/yt_analysis/yt/commits/b345635688f0/
Changeset:   b345635688f0
Branch:      yt
User:        brittonsmith
Date:        2015-07-21 12:41:45+00:00
Summary:     Fix tabbing.
Affected #:  1 file

diff -r 3ca1707ed515555429a95026dd07ae9ad8797cc5 -r b345635688f03be11545d8f7a48c0f2a6fb200d2 yt/frontends/gadget_fof/tests/test_outputs.py
--- a/yt/frontends/gadget_fof/tests/test_outputs.py
+++ b/yt/frontends/gadget_fof/tests/test_outputs.py
@@ -24,9 +24,9 @@
 from yt.frontends.gadget_fof.api import GadgetFOFDataset
 
 _fields = ("particle_position_x", "particle_position_y",
-            "particle_position_z", "particle_velocity_x",
-            "particle_velocity_y", "particle_velocity_z",
-            "particle_mass", "particle_identifier")
+           "particle_position_z", "particle_velocity_x",
+           "particle_velocity_y", "particle_velocity_z",
+           "particle_mass", "particle_identifier")
 
 # a dataset with empty files
 g5 = "gadget_fof_halos/groups_005/fof_subhalo_tab_005.0.hdf5"


https://bitbucket.org/yt_analysis/yt/commits/0114e2ffd0c7/
Changeset:   0114e2ffd0c7
Branch:      yt
User:        brittonsmith
Date:        2015-07-23 16:19:22+00:00
Summary:     Adding check that we're only adding extra union fields for all.
Affected #:  1 file

diff -r b345635688f03be11545d8f7a48c0f2a6fb200d2 -r 0114e2ffd0c7c8e68bd31e75261258ee0b821aaf yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -120,6 +120,9 @@
                                    ftype=ftype)
 
     def setup_extra_union_fields(self, ptype="all"):
+        if ptype != "all":
+            raise RuntimeError("setup_extra_union_fields is currently" + 
+                               "only enabled for particle type \"all\".")
         for units, field in self.extra_union_fields:
             add_union_field(self, ptype, field, units)
 


https://bitbucket.org/yt_analysis/yt/commits/7a90988f403f/
Changeset:   7a90988f403f
Branch:      yt
User:        MatthewTurk
Date:        2015-07-23 16:36:51+00:00
Summary:     Merged in brittonsmith/yt (pull request #1650)

Adding ability to create union fields from alias fields
Affected #:  6 files

diff -r f5d20191a6e277fa4b3028052806d82023bd6c65 -r 7a90988f403f1033700be711f34c4d461d0dd8d4 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -375,6 +375,7 @@
             mylog.debug("Creating Particle Union 'all'")
             pu = ParticleUnion("all", list(self.particle_types_raw))
             self.add_particle_union(pu)
+        self.field_info.setup_extra_union_fields()
         mylog.info("Loading field plugins.")
         self.field_info.load_all_plugins()
         deps, unloaded = self.field_info.check_derived_fields()

diff -r f5d20191a6e277fa4b3028052806d82023bd6c65 -r 7a90988f403f1033700be711f34c4d461d0dd8d4 yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -29,6 +29,7 @@
 from .field_plugin_registry import \
     field_plugins
 from .particle_fields import \
+    add_union_field, \
     particle_deposition_functions, \
     particle_vector_functions, \
     particle_scalar_functions, \
@@ -47,6 +48,7 @@
     fallback = None
     known_other_fields = ()
     known_particle_fields = ()
+    extra_union_fields = ()
 
     def __init__(self, ds, field_list, slice_info = None):
         self._show_field_errors = []
@@ -117,6 +119,13 @@
                                    num_neighbors=num_neighbors,
                                    ftype=ftype)
 
+    def setup_extra_union_fields(self, ptype="all"):
+        if ptype != "all":
+            raise RuntimeError("setup_extra_union_fields is currently" + 
+                               "only enabled for particle type \"all\".")
+        for units, field in self.extra_union_fields:
+            add_union_field(self, ptype, field, units)
+
     def setup_smoothed_fields(self, ptype, num_neighbors = 64, ftype = "gas"):
         # We can in principle compute this, but it is not yet implemented.
         if (ptype, "density") not in self:

diff -r f5d20191a6e277fa4b3028052806d82023bd6c65 -r 7a90988f403f1033700be711f34c4d461d0dd8d4 yt/fields/particle_fields.py
--- a/yt/fields/particle_fields.py
+++ b/yt/fields/particle_fields.py
@@ -839,4 +839,17 @@
                        units = "g/cm**3")
     return [field_name]
 
+def add_union_field(registry, ptype, field_name, units):
+    """
+    Create a field that is the concatenation of multiple particle types.
+    This allows us to create fields for particle unions using alias names.
+    """
 
+    def _cat_field(field, data):
+        return uconcatenate([data[dep_type, field_name]
+                             for dep_type in data.ds.particle_types_raw])
+
+    registry.add_field((ptype, field_name),
+                       function=_cat_field,
+                       particle_type=True,
+                       units=units)

diff -r f5d20191a6e277fa4b3028052806d82023bd6c65 -r 7a90988f403f1033700be711f34c4d461d0dd8d4 yt/frontends/gadget_fof/data_structures.py
--- a/yt/frontends/gadget_fof/data_structures.py
+++ b/yt/frontends/gadget_fof/data_structures.py
@@ -95,7 +95,7 @@
         # This is an attribute that means these particle types *actually*
         # exist.  As in, they are real, in the dataset.
         ds.field_units.update(units)
-        ds.particle_types_raw = ds.particle_types
+        ds.particle_types_raw = tuple(sorted(ds.particle_types))
             
     def _setup_geometry(self):
         super(GadgetFOFParticleIndex, self)._setup_geometry()

diff -r f5d20191a6e277fa4b3028052806d82023bd6c65 -r 7a90988f403f1033700be711f34c4d461d0dd8d4 yt/frontends/gadget_fof/fields.py
--- a/yt/frontends/gadget_fof/fields.py
+++ b/yt/frontends/gadget_fof/fields.py
@@ -45,4 +45,17 @@
         ("SubhaloVel_2", (v_units, ["Subhalo", "particle_velocity_z"], None)),
         ("SubhaloMass",  (m_units, ["Subhalo", "particle_mass"], None)),
         ("SubhaloLen",   ("",      ["Subhalo", "particle_number"], None)),
-)
+    )
+
+    # these are extra fields to be created for the "all" particle type
+    extra_union_fields = (
+        (p_units, "particle_position_x"),
+        (p_units, "particle_position_y"),
+        (p_units, "particle_position_z"),
+        (v_units, "particle_velocity_x"),
+        (v_units, "particle_velocity_y"),
+        (v_units, "particle_velocity_z"),
+        (m_units, "particle_mass"),
+        ("",      "particle_number"),
+        ("",      "particle_ones"),
+    )

diff -r f5d20191a6e277fa4b3028052806d82023bd6c65 -r 7a90988f403f1033700be711f34c4d461d0dd8d4 yt/frontends/gadget_fof/tests/test_outputs.py
--- a/yt/frontends/gadget_fof/tests/test_outputs.py
+++ b/yt/frontends/gadget_fof/tests/test_outputs.py
@@ -23,13 +23,10 @@
     data_dir_load
 from yt.frontends.gadget_fof.api import GadgetFOFDataset
 
-p_types  = ("Group", "Subhalo")
-p_fields = ("particle_position_x", "particle_position_y",
-            "particle_position_z", "particle_velocity_x",
-            "particle_velocity_y", "particle_velocity_z",
-            "particle_mass", "particle_identifier")
-_fields = tuple([(p_type, p_field) for p_type in p_types
-                                   for p_field in p_fields])
+_fields = ("particle_position_x", "particle_position_y",
+           "particle_position_z", "particle_velocity_x",
+           "particle_velocity_y", "particle_velocity_z",
+           "particle_mass", "particle_identifier")
 
 # a dataset with empty files
 g5 = "gadget_fof_halos/groups_005/fof_subhalo_tab_005.0.hdf5"

Repository URL: https://bitbucket.org/yt_analysis/yt/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the yt-svn mailing list