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

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed May 11 11:27:20 PDT 2016


4 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/bfd78c5096f3/
Changeset:   bfd78c5096f3
Branch:      yt
User:        atmyers
Date:        2016-05-07 00:05:14+00:00
Summary:     Enforce periodicity in annotate_particles.
Affected #:  1 file

diff -r 80ec1ac414a7652791eed06469dc4104ff0c556b -r bfd78c5096f34f6a0804a8f282051819a45d1256 yt/visualization/plot_modifications.py
--- a/yt/visualization/plot_modifications.py
+++ b/yt/visualization/plot_modifications.py
@@ -1519,21 +1519,61 @@
         field_x = "particle_position_%s" % axis_names[xax]
         field_y = "particle_position_%s" % axis_names[yax]
         pt = self.ptype
-        gg = ( ( reg[pt, field_x] >= x0 ) & ( reg[pt, field_x] <= x1 )
-           &   ( reg[pt, field_y] >= y0 ) & ( reg[pt, field_y] <= y1 ) )
+        self.periodic_x = plot.data.ds.periodicity[xax]
+        self.periodic_y = plot.data.ds.periodicity[yax]
+        self.LE = plot.data.ds.domain_left_edge[xax], \
+                  plot.data.ds.domain_left_edge[yax]
+        self.RE = plot.data.ds.domain_right_edge[xax], \
+                  plot.data.ds.domain_right_edge[yax]
+        period_x = plot.data.ds.domain_width[xax]
+        period_y = plot.data.ds.domain_width[yax]
+        particle_x, particle_y = self._enforce_periodic(reg[pt, field_x],
+                                                        reg[pt, field_y],
+                                                        x0, x1, period_x,
+                                                        y0, y1, period_y)
+        gg = ( ( particle_x >= x0 ) & ( particle_x <= x1 )
+           &   ( particle_y >= y0 ) & ( particle_y <= y1 ) )
         if self.minimum_mass is not None:
             gg &= (reg[pt, "particle_mass"] >= self.minimum_mass)
             if gg.sum() == 0: return
         plot._axes.hold(True)
         px, py = self.convert_to_plot(plot,
-                    [np.array(reg[pt, field_x][gg][::self.stride]),
-                     np.array(reg[pt, field_y][gg][::self.stride])])
+                    [np.array(particle_x[gg][::self.stride]),
+                     np.array(particle_y[gg][::self.stride])])
         plot._axes.scatter(px, py, edgecolors='None', marker=self.marker,
                            s=self.p_size, c=self.color,alpha=self.alpha)
         plot._axes.set_xlim(xx0,xx1)
         plot._axes.set_ylim(yy0,yy1)
         plot._axes.hold(False)
 
+    def _enforce_periodic(self,
+                          particle_x,
+                          particle_y,
+                          x0, x1, period_x,
+                          y0, y1, period_y):
+        #  duplicate particles if periodic in that direction AND if the plot
+        #  extends outside the domain boundaries.
+        if self.periodic_x and x0 > self.LE[0]:
+            particle_x = YTArray(np.hstack((particle_x, particle_x + period_x)),
+                            input_units = period_x.units)
+            particle_y = YTArray(np.hstack((particle_y, particle_y)),
+                            input_units = period_y.units)
+        if self.periodic_x and x1 < self.RE[0]:
+            particle_x = YTArray(np.hstack((particle_x, particle_x - period_x)), 
+                                 input_units = period_x.units)
+            particle_y = YTArray(np.hstack((particle_y, particle_y)),
+                            input_units = period_y.units)
+        if self.periodic_y and y0 > self.LE[1]:
+            particle_y = YTArray(np.hstack((particle_y, particle_y + period_y)),
+                                 input_units = period_y.units)
+            particle_x = YTArray(np.hstack((particle_x, particle_x)),
+                            input_units = period_x.units)
+        if self.periodic_y and y1 < self.RE[1]:
+            particle_y = YTArray(np.hstack((particle_y, particle_y - period_y)), 
+                                 input_units = period_y.units)
+            particle_x = YTArray(np.hstack((particle_x, particle_x)),
+                            input_units = period_x.units)
+        return particle_x, particle_y
 
     def _get_region(self, xlim, ylim, axis, data):
         LE, RE = [None]*3, [None]*3


https://bitbucket.org/yt_analysis/yt/commits/63606380105d/
Changeset:   63606380105d
Branch:      yt
User:        atmyers
Date:        2016-05-07 16:14:27+00:00
Summary:     merging with tip
Affected #:  1 file

diff -r bfd78c5096f34f6a0804a8f282051819a45d1256 -r 63606380105d838f50574da3ab7df029efdc31f6 yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -1438,7 +1438,7 @@
 
     This is a wrapper around np.hstack that preserves units.
     """
-    v = np.vstack(arrs)
+    v = np.hstack(arrs)
     v = validate_numpy_wrapper_units(v, arrs)
     return v
 


https://bitbucket.org/yt_analysis/yt/commits/931c01b73a09/
Changeset:   931c01b73a09
Branch:      yt
User:        atmyers
Date:        2016-05-07 16:19:27+00:00
Summary:     use the uhstack function instead of handling units manually.
Affected #:  1 file

diff -r 63606380105d838f50574da3ab7df029efdc31f6 -r 931c01b73a099784df44deabad700036a74d1e1b yt/visualization/plot_modifications.py
--- a/yt/visualization/plot_modifications.py
+++ b/yt/visualization/plot_modifications.py
@@ -27,7 +27,7 @@
 from yt.funcs import \
     mylog, iterable
 from yt.extern.six import add_metaclass
-from yt.units.yt_array import YTQuantity, YTArray
+from yt.units.yt_array import YTQuantity, YTArray, uhstack
 from yt.visualization.image_writer import apply_colormap
 from yt.utilities.lib.geometry_utils import triangle_plane_intersect
 from yt.utilities.lib.pixelization_routines import \
@@ -1554,25 +1554,17 @@
         #  duplicate particles if periodic in that direction AND if the plot
         #  extends outside the domain boundaries.
         if self.periodic_x and x0 > self.LE[0]:
-            particle_x = YTArray(np.hstack((particle_x, particle_x + period_x)),
-                            input_units = period_x.units)
-            particle_y = YTArray(np.hstack((particle_y, particle_y)),
-                            input_units = period_y.units)
+            particle_x = uhstack((particle_x, particle_x + period_x))
+            particle_y = uhstack((particle_y, particle_y))
         if self.periodic_x and x1 < self.RE[0]:
-            particle_x = YTArray(np.hstack((particle_x, particle_x - period_x)), 
-                                 input_units = period_x.units)
-            particle_y = YTArray(np.hstack((particle_y, particle_y)),
-                            input_units = period_y.units)
+            particle_x = uhstack((particle_x, particle_x - period_x))
+            particle_y = uhstack((particle_y, particle_y))
         if self.periodic_y and y0 > self.LE[1]:
-            particle_y = YTArray(np.hstack((particle_y, particle_y + period_y)),
-                                 input_units = period_y.units)
-            particle_x = YTArray(np.hstack((particle_x, particle_x)),
-                            input_units = period_x.units)
+            particle_y = uhstack((particle_y, particle_y + period_y))
+            particle_x = uhstack((particle_x, particle_x))
         if self.periodic_y and y1 < self.RE[1]:
-            particle_y = YTArray(np.hstack((particle_y, particle_y - period_y)), 
-                                 input_units = period_y.units)
-            particle_x = YTArray(np.hstack((particle_x, particle_x)),
-                            input_units = period_x.units)
+            particle_y = uhstack((particle_y, particle_y - period_y))
+            particle_x = uhstack((particle_x, particle_x))
         return particle_x, particle_y
 
     def _get_region(self, xlim, ylim, axis, data):


https://bitbucket.org/yt_analysis/yt/commits/8b661ffb2b26/
Changeset:   8b661ffb2b26
Branch:      yt
User:        chummels
Date:        2016-05-11 18:27:03+00:00
Summary:     Merged in atmyers/yt (pull request #2161)

[BUGFIX] Enforce periodicity in annotate_particles. Closes Issue #543.
Affected #:  1 file

diff -r db993aae188791672893608249078d43a42b50cb -r 8b661ffb2b26c38a26c90e1c2854b9cb32bb9a34 yt/visualization/plot_modifications.py
--- a/yt/visualization/plot_modifications.py
+++ b/yt/visualization/plot_modifications.py
@@ -27,7 +27,7 @@
 from yt.funcs import \
     mylog, iterable
 from yt.extern.six import add_metaclass
-from yt.units.yt_array import YTQuantity, YTArray
+from yt.units.yt_array import YTQuantity, YTArray, uhstack
 from yt.visualization.image_writer import apply_colormap
 from yt.utilities.lib.geometry_utils import triangle_plane_intersect
 from yt.utilities.lib.pixelization_routines import \
@@ -1519,21 +1519,53 @@
         field_x = "particle_position_%s" % axis_names[xax]
         field_y = "particle_position_%s" % axis_names[yax]
         pt = self.ptype
-        gg = ( ( reg[pt, field_x] >= x0 ) & ( reg[pt, field_x] <= x1 )
-           &   ( reg[pt, field_y] >= y0 ) & ( reg[pt, field_y] <= y1 ) )
+        self.periodic_x = plot.data.ds.periodicity[xax]
+        self.periodic_y = plot.data.ds.periodicity[yax]
+        self.LE = plot.data.ds.domain_left_edge[xax], \
+                  plot.data.ds.domain_left_edge[yax]
+        self.RE = plot.data.ds.domain_right_edge[xax], \
+                  plot.data.ds.domain_right_edge[yax]
+        period_x = plot.data.ds.domain_width[xax]
+        period_y = plot.data.ds.domain_width[yax]
+        particle_x, particle_y = self._enforce_periodic(reg[pt, field_x],
+                                                        reg[pt, field_y],
+                                                        x0, x1, period_x,
+                                                        y0, y1, period_y)
+        gg = ( ( particle_x >= x0 ) & ( particle_x <= x1 )
+           &   ( particle_y >= y0 ) & ( particle_y <= y1 ) )
         if self.minimum_mass is not None:
             gg &= (reg[pt, "particle_mass"] >= self.minimum_mass)
             if gg.sum() == 0: return
         plot._axes.hold(True)
         px, py = self.convert_to_plot(plot,
-                    [np.array(reg[pt, field_x][gg][::self.stride]),
-                     np.array(reg[pt, field_y][gg][::self.stride])])
+                    [np.array(particle_x[gg][::self.stride]),
+                     np.array(particle_y[gg][::self.stride])])
         plot._axes.scatter(px, py, edgecolors='None', marker=self.marker,
                            s=self.p_size, c=self.color,alpha=self.alpha)
         plot._axes.set_xlim(xx0,xx1)
         plot._axes.set_ylim(yy0,yy1)
         plot._axes.hold(False)
 
+    def _enforce_periodic(self,
+                          particle_x,
+                          particle_y,
+                          x0, x1, period_x,
+                          y0, y1, period_y):
+        #  duplicate particles if periodic in that direction AND if the plot
+        #  extends outside the domain boundaries.
+        if self.periodic_x and x0 > self.LE[0]:
+            particle_x = uhstack((particle_x, particle_x + period_x))
+            particle_y = uhstack((particle_y, particle_y))
+        if self.periodic_x and x1 < self.RE[0]:
+            particle_x = uhstack((particle_x, particle_x - period_x))
+            particle_y = uhstack((particle_y, particle_y))
+        if self.periodic_y and y0 > self.LE[1]:
+            particle_y = uhstack((particle_y, particle_y + period_y))
+            particle_x = uhstack((particle_x, particle_x))
+        if self.periodic_y and y1 < self.RE[1]:
+            particle_y = uhstack((particle_y, particle_y - period_y))
+            particle_x = uhstack((particle_x, particle_x))
+        return particle_x, particle_y
 
     def _get_region(self, xlim, ylim, axis, data):
         LE, RE = [None]*3, [None]*3

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-svn-spacepope.org/attachments/20160511/60203575/attachment.html>


More information about the yt-svn mailing list