[yt-svn] commit/yt: xarthisius: Merged in ngoldbaum/yt (pull request #1700)

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Thu Aug 27 09:27:53 PDT 2015


1 new commit in yt:

https://bitbucket.org/yt_analysis/yt/commits/5e5edba3739c/
Changeset:   5e5edba3739c
Branch:      yt
User:        xarthisius
Date:        2015-08-27 16:27:38+00:00
Summary:     Merged in ngoldbaum/yt (pull request #1700)

Add support for particle fields to the [Min,Max]Location derived quantities
Affected #:  1 file

diff -r 5538c6857f6df478eaeb7074d2896b18f9c550d4 -r 5e5edba3739c1b8c9f8ee2d32e87304bc64557bf yt/data_objects/derived_quantities.py
--- a/yt/data_objects/derived_quantities.py
+++ b/yt/data_objects/derived_quantities.py
@@ -33,6 +33,16 @@
 
 derived_quantity_registry = {}
 
+def get_position_fields(field, data):
+    axis_names = [data.ds.coordinates.axis_name[num] for num in [0, 1, 2]]
+    if field[0] in data.ds.particle_types:
+        position_fields = [(field[0], 'particle_position_%s' % d)
+                           for d in axis_names]
+    else:
+        position_fields = axis_names
+
+    return position_fields
+
 class RegisteredDerivedQuantity(type):
     def __init__(cls, name, b, d):
         type.__init__(cls, name, b, d)
@@ -542,19 +552,17 @@
         return rv
 
     def process_chunk(self, data, field):
-        axis_names = data.ds.coordinates.axis_name
         field = data._determine_fields(field)[0]
         ma = array_like_field(data, -HUGE, field)
-        mx = array_like_field(data, -1, axis_names[0])
-        my = array_like_field(data, -1, axis_names[1])
-        mz = array_like_field(data, -1, axis_names[2])
+        position_fields = get_position_fields(field, data)
+        mx = array_like_field(data, -1, position_fields[0])
+        my = array_like_field(data, -1, position_fields[1])
+        mz = array_like_field(data, -1, position_fields[2])
         maxi = -1
         if data[field].size > 0:
             maxi = np.argmax(data[field])
             ma = data[field][maxi]
-            mx, my, mz = [data[ax][maxi] for ax in (axis_names[0],
-                                                    axis_names[1],
-                                                    axis_names[2])]
+            mx, my, mz = [data[ax][maxi] for ax in position_fields]
         return (ma, maxi, mx, my, mz)
 
     def reduce_intermediate(self, values):
@@ -590,14 +598,15 @@
     def process_chunk(self, data, field):
         field = data._determine_fields(field)[0]
         ma = array_like_field(data, HUGE, field)
-        mx = array_like_field(data, -1, "x")
-        my = array_like_field(data, -1, "y")
-        mz = array_like_field(data, -1, "z")
+        position_fields = get_position_fields(field, data)
+        mx = array_like_field(data, -1, position_fields[0])
+        my = array_like_field(data, -1, position_fields[1])
+        mz = array_like_field(data, -1, position_fields[2])
         mini = -1
         if data[field].size > 0:
             mini = np.argmin(data[field])
             ma = data[field][mini]
-            mx, my, mz = [data[ax][mini] for ax in 'xyz']
+            mx, my, mz = [data[ax][mini] for ax in position_fields]
         return (ma, mini, mx, my, mz)
 
     def reduce_intermediate(self, values):

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