<html><body>
<p>1 new commit in yt:</p>
<p><a href="https://bitbucket.org/yt_analysis/yt/commits/8b661ffb2b26/">https://bitbucket.org/yt_analysis/yt/commits/8b661ffb2b26/</a> Changeset: 8b661ffb2b26 Branch: yt User: chummels Date: 2016-05-11 18:27:03+00:00 Summary: Merged in atmyers/yt (pull request #2161)</p>
<p>[BUGFIX] Enforce periodicity in annotate_particles. Closes Issue #543. Affected #: 1 file</p>
<p>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 @@</p>
<pre>from yt.funcs import \
mylog, iterable
from yt.extern.six import add_metaclass</pre>
<p>-from yt.units.yt_array import YTQuantity, YTArray +from yt.units.yt_array import YTQuantity, YTArray, uhstack</p>
<pre>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 \</pre>
<p>@@ -1519,21 +1519,53 @@</p>
<pre>field_x = "particle_position_%s" % axis_names[xax]
field_y = "particle_position_%s" % axis_names[yax]
pt = self.ptype</pre>
<ul><li><p>gg = ( ( reg[pt, field_x] >= x0 ) & ( reg[pt, field_x] <= x1 )</p></li>
<li><p>& ( reg[pt, field_y] >= y0 ) & ( reg[pt, field_y] <= y1 ) )</p></li></ul>
<p>+ 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 ) )</p>
<pre> 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,</pre>
<ul><li><p>[np.array(reg[pt, field_x][gg][::self.stride]),</p></li>
<li><p>np.array(reg[pt, field_y][gg][::self.stride])])</p></li></ul>
<p>+ [np.array(particle_x[gg][::self.stride]), + np.array(particle_y[gg][::self.stride])])</p>
<pre> 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)
</pre>
<p>+ 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</p>
<pre>def _get_region(self, xlim, ylim, axis, data):
LE, RE = [None]*3, [None]*3</pre>
<p>Repository URL: <a href="https://bitbucket.org/yt_analysis/yt/">https://bitbucket.org/yt_analysis/yt/</a></p>
<p>—</p>
<p>This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.</p>
<img src="http://link.bitbucket.org/wf/open?upn=ll4ctv0L-2ByeRZFC1LslHcg6aJmnQ70VruLbmeLQr27B4K-2B-2BFbOGTEPpTzWV9a2zm9GVdl3QG-2FeyAHxNlZIvEsXpFo1oJw6hZo3Aj6ahil8hVn3Wq1vHUiLlG02at6zsd4OpgvgRkTVQmAW4aXCmfwlHzecf5QLrumk-2FqrPT7edY2EMwj7z2c-2FKl8aagiVaJmpevC3WY8NTDqI8VNwYcozJRutQBXNpHnAzoFi3ybGWA-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"/>
</body></html>