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

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Tue Apr 11 06:50:32 PDT 2017


3 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/632e31e077bc/
Changeset:   632e31e077bc
Branch:      yt
User:        ngoldbaum
Date:        2017-03-30 20:50:04+00:00
Summary:     Fix covering grid access for particle filters. Closes #1342
Affected #:  3 files

diff -r 3fee41c2ea35fbe17c97ba1dc286d6e71f088716 -r 632e31e077bc2b7868bdb20e1856c10e6fffe5d8 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -632,7 +632,18 @@
         for a, f in sorted(alias.items()):
             self[a] = f(self)
             self.field_data[a].convert_to_units(f.output_units)
-        if len(gen) > 0: self._generate_fields(gen)
+        if len(gen) > 0:
+            part_gen = []
+            cell_gen = []
+            for field in gen:
+                finfo = self.ds.field_info[field]
+                if finfo.particle_type:
+                    part_gen.append(field)
+                else:
+                    cell_gen.append(field)
+            self._generate_fields(cell_gen)
+            for p in part_gen:
+                self[p] = self._data_source[p]
 
     def _split_fields(self, fields_to_get):
         fill, gen = self.index._split_fields(fields_to_get)

diff -r 3fee41c2ea35fbe17c97ba1dc286d6e71f088716 -r 632e31e077bc2b7868bdb20e1856c10e6fffe5d8 yt/data_objects/particle_filters.py
--- a/yt/data_objects/particle_filters.py
+++ b/yt/data_objects/particle_filters.py
@@ -71,7 +71,7 @@
 
     def wrap_func(self, field_name, old_fi):
         new_fi = copy.copy(old_fi)
-        new_fi.name = (self.filtered_type, field_name[1])
+        new_fi.name = (self.name, field_name[1])
         if old_fi._function == NullFunc:
             new_fi._function = TranslationFunc(old_fi.name)
         return new_fi

diff -r 3fee41c2ea35fbe17c97ba1dc286d6e71f088716 -r 632e31e077bc2b7868bdb20e1856c10e6fffe5d8 yt/data_objects/tests/test_particle_filter.py
--- a/yt/data_objects/tests/test_particle_filter.py
+++ b/yt/data_objects/tests/test_particle_filter.py
@@ -1,6 +1,8 @@
 from __future__ import print_function
 import yt
-from yt.testing import requires_file
+from yt.testing import \
+    assert_equal, \
+    requires_file
 from yt.data_objects.particle_filters import \
     add_particle_filter, particle_filter
 
@@ -45,3 +47,20 @@
     ad = ds.all_data()
     ad['deposit', 'stars_cic']
     assert True
+
+ at requires_file(iso_galaxy)
+def test_covering_grid_particle_filter():
+    @particle_filter(requires=["particle_type"], filtered_type='all')
+    def stars(pfilter, data):
+        filter = data[(pfilter.filtered_type, "particle_type")] == 2
+        return filter
+
+    ds = yt.load('IsolatedGalaxy/galaxy0030/galaxy0030')
+
+    ds.add_particle_filter('stars')
+
+    for grid in ds.index.grids[20:31]:
+        cg = ds.covering_grid(grid.Level, grid.LeftEdge, grid.ActiveDimensions)
+        
+        assert_equal(cg['stars', 'particle_ones'].shape[0],
+                     grid['stars', 'particle_ones'].shape[0])


https://bitbucket.org/yt_analysis/yt/commits/61bc54a88820/
Changeset:   61bc54a88820
Branch:      yt
User:        ngoldbaum
Date:        2017-03-31 18:54:57+00:00
Summary:     Handle on-disk particle fields as well
Affected #:  2 files

diff -r 632e31e077bc2b7868bdb20e1856c10e6fffe5d8 -r 61bc54a8882043e429c177e0f50f3a31fe591078 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -630,7 +630,10 @@
         if len(part) > 0: self._fill_particles(part)
         if len(fill) > 0: self._fill_fields(fill)
         for a, f in sorted(alias.items()):
-            self[a] = f(self)
+            if f.particle_type:
+                self[a] = self._data_source[f]
+            else:
+                self[a] = f(self)
             self.field_data[a].convert_to_units(f.output_units)
         if len(gen) > 0:
             part_gen = []

diff -r 632e31e077bc2b7868bdb20e1856c10e6fffe5d8 -r 61bc54a8882043e429c177e0f50f3a31fe591078 yt/data_objects/tests/test_particle_filter.py
--- a/yt/data_objects/tests/test_particle_filter.py
+++ b/yt/data_objects/tests/test_particle_filter.py
@@ -64,3 +64,5 @@
         
         assert_equal(cg['stars', 'particle_ones'].shape[0],
                      grid['stars', 'particle_ones'].shape[0])
+        assert_equal(cg['stars', 'particle_mass'].shape[0],
+                     grid['stars', 'particle_mass'].shape[0])


https://bitbucket.org/yt_analysis/yt/commits/2441e1324406/
Changeset:   2441e1324406
Branch:      yt
User:        xarthisius
Date:        2017-04-11 13:50:26+00:00
Summary:     Merged in ngoldbaum/yt (pull request #2569)

Fix covering grid access for particle filters. Closes #1342

Approved-by: Yi-Hao Chen <yihaochentw at gmail.com>
Approved-by: Britton Smith <brittonsmith at gmail.com>
Approved-by: Kacper Kowalik <xarthisius.kk at gmail.com>
Affected #:  3 files

diff -r bd29e64137efc0b63a190d587ff1766bab19db37 -r 2441e1324406c79c6fe366223f8b5ee69b2f1b54 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -630,9 +630,23 @@
         if len(part) > 0: self._fill_particles(part)
         if len(fill) > 0: self._fill_fields(fill)
         for a, f in sorted(alias.items()):
-            self[a] = f(self)
+            if f.particle_type:
+                self[a] = self._data_source[f]
+            else:
+                self[a] = f(self)
             self.field_data[a].convert_to_units(f.output_units)
-        if len(gen) > 0: self._generate_fields(gen)
+        if len(gen) > 0:
+            part_gen = []
+            cell_gen = []
+            for field in gen:
+                finfo = self.ds.field_info[field]
+                if finfo.particle_type:
+                    part_gen.append(field)
+                else:
+                    cell_gen.append(field)
+            self._generate_fields(cell_gen)
+            for p in part_gen:
+                self[p] = self._data_source[p]
 
     def _split_fields(self, fields_to_get):
         fill, gen = self.index._split_fields(fields_to_get)

diff -r bd29e64137efc0b63a190d587ff1766bab19db37 -r 2441e1324406c79c6fe366223f8b5ee69b2f1b54 yt/data_objects/particle_filters.py
--- a/yt/data_objects/particle_filters.py
+++ b/yt/data_objects/particle_filters.py
@@ -71,7 +71,7 @@
 
     def wrap_func(self, field_name, old_fi):
         new_fi = copy.copy(old_fi)
-        new_fi.name = (self.filtered_type, field_name[1])
+        new_fi.name = (self.name, field_name[1])
         if old_fi._function == NullFunc:
             new_fi._function = TranslationFunc(old_fi.name)
         return new_fi

diff -r bd29e64137efc0b63a190d587ff1766bab19db37 -r 2441e1324406c79c6fe366223f8b5ee69b2f1b54 yt/data_objects/tests/test_particle_filter.py
--- a/yt/data_objects/tests/test_particle_filter.py
+++ b/yt/data_objects/tests/test_particle_filter.py
@@ -1,6 +1,8 @@
 from __future__ import print_function
 import yt
-from yt.testing import requires_file
+from yt.testing import \
+    assert_equal, \
+    requires_file
 from yt.data_objects.particle_filters import \
     add_particle_filter, particle_filter
 
@@ -45,3 +47,22 @@
     ad = ds.all_data()
     ad['deposit', 'stars_cic']
     assert True
+
+ at requires_file(iso_galaxy)
+def test_covering_grid_particle_filter():
+    @particle_filter(requires=["particle_type"], filtered_type='all')
+    def stars(pfilter, data):
+        filter = data[(pfilter.filtered_type, "particle_type")] == 2
+        return filter
+
+    ds = yt.load('IsolatedGalaxy/galaxy0030/galaxy0030')
+
+    ds.add_particle_filter('stars')
+
+    for grid in ds.index.grids[20:31]:
+        cg = ds.covering_grid(grid.Level, grid.LeftEdge, grid.ActiveDimensions)
+        
+        assert_equal(cg['stars', 'particle_ones'].shape[0],
+                     grid['stars', 'particle_ones'].shape[0])
+        assert_equal(cg['stars', 'particle_mass'].shape[0],
+                     grid['stars', 'particle_mass'].shape[0])

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