[yt-svn] commit/yt: ngoldbaum: Fixing a bug in the particle filter recipe.

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Sat Aug 2 22:01:52 PDT 2014


1 new commit in yt:

https://bitbucket.org/yt_analysis/yt/commits/14d5e077b24f/
Changeset:   14d5e077b24f
Branch:      yt-3.0
User:        ngoldbaum
Date:        2014-08-03 07:01:17
Summary:     Fixing a bug in the particle filter recipe.
Affected #:  1 file

diff -r 15f91fe5e0dd01ac4b3de01211e37e423bc0776e -r 14d5e077b24f1da72f3b99f4209488b82bb52f73 doc/source/cookbook/particle_filter.py
--- a/doc/source/cookbook/particle_filter.py
+++ b/doc/source/cookbook/particle_filter.py
@@ -2,24 +2,33 @@
 import numpy as np
 from yt.data_objects.particle_filters import add_particle_filter
 
+
 # Define filter functions for our particle filters based on stellar age.
+# In this dataset particles in the initial conditions are given creation
+# times arbitrarily far into the future, so stars with negative ages belong
+# in the old stars filter.
 def stars_10Myr(pfilter, data):
-    filter = (data.pf.current_time - data["Stars", "creation_time"]).in_units('Myr') <= 10
+    age = data.ds.current_time - data["Stars", "creation_time"]
+    filter = np.logical_and(age >= 0, age.in_units('Myr') < 10)
     return filter
 
 def stars_100Myr(pfilter, data):
-    filter = (((data.pf.current_time - data["Stars", "creation_time"]).in_units('Myr') <= 100) & \
-              ((data.pf.current_time - data["Stars", "creation_time"]).in_units('Myr') >= 10))
+    age = (data.ds.current_time - data["Stars", "creation_time"]).in_units('Myr')
+    filter = np.logical_and(age >= 10, age < 100)
     return filter
 
 def stars_old(pfilter, data):
-    filter = (data.pf.current_time - data["Stars", "creation_time"]).in_units('Myr') > 100
+    age = data.ds.current_time - data["Stars", "creation_time"]
+    filter = np.logical_or(age < 0, age.in_units('Myr') >= 100)
     return filter
 
 # Create the particle filters
-add_particle_filter("stars_young", function=stars_10Myr, filtered_type='Stars', requires=["creation_time"])
-add_particle_filter("stars_medium", function=stars_100Myr, filtered_type='Stars', requires=["creation_time"])
-add_particle_filter("stars_old", function=stars_old, filtered_type='Stars', requires=["creation_time"])
+add_particle_filter("stars_young", function=stars_10Myr, filtered_type='Stars',
+                    requires=["creation_time"])
+add_particle_filter("stars_medium", function=stars_100Myr, filtered_type='Stars',
+                    requires=["creation_time"])
+add_particle_filter("stars_old", function=stars_old, filtered_type='Stars',
+                    requires=["creation_time"])
 
 # Load a dataset and apply the particle filters
 filename = "TipsyGalaxy/galaxy.00300"
@@ -39,5 +48,8 @@
 print "Mass of old stars = %g Msun" % mass_old
 
 # Generate 4 projections: gas density, young stars, medium stars, old stars
-prj = yt.ProjectionPlot(ds, 'z', [('gas', 'density'), ('deposit', 'stars_young_cic'), ('deposit', 'stars_medium_cic'), ('deposit', 'stars_old_cic')], center="max", width=(100, 'kpc'))
+fields = [('gas', 'density'), ('deposit', 'stars_young_cic'),
+          ('deposit', 'stars_medium_cic'), ('deposit', 'stars_old_cic')]
+
+prj = yt.ProjectionPlot(ds, 'z', fields, center="max", width=(100, 'kpc'))
 prj.save()

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