def add_filtered_planck(self, wavelength, trans):
vals = np.zeros(self.x.shape, 'float64')
nu = clight/(wavelength*1e-8)
nu = nu[::-1]
for i,logT in enumerate(self.x):
T = 10**logT
# Black body at this nu, T
Bnu = ((2.0 * hcgs * nu**3) / clight**2.0) / \
(np.exp(hcgs * nu / (kboltz * T)) - 1.0)
# transmission
f = Bnu * trans[::-1]
# integrate transmission over nu
vals[i] = np.trapz(f,nu)
# normalize by total transmission over filter
self.y = vals/trans.sum() #/np.trapz(trans[::-1],nu)
#self.y = np.clip(np.maximum(vals, self.y), 0.0, 1.0)
评论列表
文章目录