def get_stellar_mass(self, z=0, rnorm=1., cosmo=Planck15):
"""
Get M/L, L, stellar mass, as measured in R-band
Returns:
M/Lr, log10(Lr), log10(stellar_mass)
"""
from sedpy.observate import Filter
import astropy.units as u
import astropy.constants as const
MLr, MLi, MLk = self.get_M2L()
#plt.plot(self.wave, self.spec); print(MLr)
rfilt = Filter('sdss_r0')
norm_spec = self.get_model(in_place=False)*rnorm
#rband_Jy = rfilt.obj_counts(self.wave, norm_spec)/rfilt.ab_zero_counts*3631
#rband_flam = rband_Jy/(3.34e4*rfilt.wave_pivot**2)#*u.erg/u.second/u.cm**2/u.AA
#dL = Planck15.luminosity_distance(z)
Mr = rfilt.ab_mag(self.wave, norm_spec) - cosmo.distmod(z).value
Lr = 10**(-0.4*(Mr-rfilt.solar_ab_mag))
#Lr = (rband_flam*4*np.pi*dL.to(u.cm).value**2)/3.828e+33*rfilt.wave_pivot*(1+z)
stellar_mass = Lr*MLr
return MLr, np.log10(Lr), np.log10(stellar_mass)
评论列表
文章目录