[yt-svn] commit/yt: sskory: Adding convenience arrays to the star formation class.
Bitbucket
commits-noreply at bitbucket.org
Wed Dec 14 07:08:55 PST 2011
1 new commit in yt:
https://bitbucket.org/yt_analysis/yt/changeset/d22caafb2e9c/
changeset: d22caafb2e9c
branch: yt
user: sskory
date: 2011-12-12 18:16:38
summary: Adding convenience arrays to the star formation class.
affected #: 1 file
diff -r bdd0b1bfc80dd2963f010fcba4cf41384bb392eb -r d22caafb2e9cae6bc7d4cd1aa3bfdd75beb6b745 yt/analysis_modules/star_analysis/sfr_spectrum.py
--- a/yt/analysis_modules/star_analysis/sfr_spectrum.py
+++ b/yt/analysis_modules/star_analysis/sfr_spectrum.py
@@ -96,6 +96,8 @@
self._pf.current_redshift) # seconds
# Build the distribution.
self.build_dist()
+ # Attach some convenience arrays.
+ self.attach_arrays()
def build_dist(self):
"""
@@ -127,6 +129,47 @@
# We will want the time taken between bins.
self.time_bins_dt = self.time_bins[1:] - self.time_bins[:-1]
+ def attach_arrays(self):
+ """
+ Attach convenience arrays to the class for easy access.
+ """
+ if self.mode == 'data_source':
+ try:
+ vol = self._data_source.volume('mpc')
+ except AttributeError:
+ # If we're here, this is probably a HOPHalo object, and we
+ # can get the volume this way.
+ ds = self._data_source.get_sphere()
+ vol = ds.volume('mpc')
+ elif self.mode == 'provided':
+ vol = self.volume
+ tc = self._pf["Time"]
+ self.time = []
+ self.lookback_time = []
+ self.redshift = []
+ self.Msol_yr = []
+ self.Msol_yr_vol = []
+ self.Msol = []
+ self.Msol_cumulative = []
+ # Use the center of the time_bin, not the left edge.
+ for i, time in enumerate((self.time_bins[1:] + self.time_bins[:-1])/2.):
+ self.time.append(time * tc / YEAR)
+ self.lookback_time.append((self.time_now - time * tc)/YEAR)
+ self.redshift.append(self.cosm.ComputeRedshiftFromTime(time * tc))
+ self.Msol_yr.append(self.mass_bins[i] / \
+ (self.time_bins_dt[i] * tc / YEAR))
+ self.Msol_yr_vol.append(self.mass_bins[i] / \
+ (self.time_bins_dt[i] * tc / YEAR) / vol)
+ self.Msol.append(self.mass_bins[i])
+ self.Msol_cumulative.append(self.cum_mass_bins[i])
+ self.time = na.array(self.time)
+ self.lookback_time = na.array(self.lookback_time)
+ self.redshift = na.array(self.redshift)
+ self.Msol_yr = na.array(self.Msol_yr)
+ self.Msol_yr_vol = na.array(self.Msol_yr_vol)
+ self.Msol = na.array(self.Msol)
+ self.Msol_cumulative = na.array(self.Msol_cumulative)
+
def write_out(self, name="StarFormationRate.out"):
r"""Write out the star analysis to a text file *name*. The columns are in
order.
@@ -150,31 +193,21 @@
>>> sfr.write_out("stars-SFR.out")
"""
fp = open(name, "w")
- if self.mode == 'data_source':
- try:
- vol = self._data_source.volume('mpc')
- except AttributeError:
- # If we're here, this is probably a HOPHalo object, and we
- # can get the volume this way.
- ds = self._data_source.get_sphere()
- vol = ds.volume('mpc')
- elif self.mode == 'provided':
- vol = self.volume
- tc = self._pf["Time"]
- # Use the center of the time_bin, not the left edge.
fp.write("#time\tlookback\tredshift\tMsol/yr\tMsol/yr/Mpc3\tMsol\tcumMsol\t\n")
- for i, time in enumerate((self.time_bins[1:] + self.time_bins[:-1])/2.):
+ for i, time in enumerate(self.time):
line = "%1.5e %1.5e %1.5e %1.5e %1.5e %1.5e %1.5e\n" % \
- (time * tc / YEAR, # Time
- (self.time_now - time * tc)/YEAR, # Lookback time
- self.cosm.ComputeRedshiftFromTime(time * tc), # Redshift
- self.mass_bins[i] / (self.time_bins_dt[i] * tc / YEAR), # Msol/yr
- self.mass_bins[i] / (self.time_bins_dt[i] * tc / YEAR) / vol, # Msol/yr/vol
- self.mass_bins[i], # Msol in bin
- self.cum_mass_bins[i]) # cumulative
+ (time, # Time
+ self.lookback_time[i], # Lookback time
+ self.redshift[i], # Redshift
+ self.Msol_yr[i], # Msol/yr
+ self.Msol_yr_vol[i], # Msol/yr/vol
+ self.Msol[i], # Msol in bin
+ self.Msol_cumulative[i]) # cumulative
fp.write(line)
fp.close()
+### Begin Synthetic Spectrum Stuff. ####
+
CHABRIER = {
"Z0001" : "bc2003_hr_m22_chab_ssp.ised.h5", #/* 0.5% */
"Z0004" : "bc2003_hr_m32_chab_ssp.ised.h5", #/* 2% */
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