示例#1
0
    def gal_model_calcs(self):
        '''
        Read in galaxy SEDs, regrid them, calculate the model flux in each
        filter for each redshift.
        '''
        print('Using %ld gal templates over %ld redshifts'
              % (self._n_gal_template, self.nz))

        self.zstep = (self.zmax - self.zmin) / (self.nz - 1)

        model_flux_gals = np.zeros(
            (self.n_filter, self._n_gal_template * self.nz))

        for i in xrange(self._n_gal_template):

            sed_length = get_file_length(i, self.gals_sed_input)

            p_lam, p_val = read_file(i, self.gals_sed_input)

            for j in xrange(self.nz):
                z = self.zmin + j * self.zstep
                for k in xrange(self.n_filter):
                    p_val_fine = regrid_sed(
                        z, p_lam, p_val, self.filter_lgth_fine[k],
                        sed_length, self.filter_lamb_fine[k])
                    mod_val = integrate_sed(
                        self.filter_lgth_fine[k], p_val_fine,
                        self.filter_lamb_fine[k], self.filter_thru_fine[k])

                    model_flux_gals[k][j + i * self.nz] = mod_val

        self.model_flux_gals = model_flux_gals
示例#2
0
    def star_model_calcs(self):
        '''
        Read in star SEDs, regrid them, calculate the model flux in each filter
        for each redshift.
        '''
        print('Using %ld star templates' % self._n_star_template)

        model_flux_stars = np.zeros((self.n_filter, self._n_star_template))

        for i in xrange(self._n_star_template):
            sed_length = get_file_length(i, self.stars_sed_input)

            p_lam, p_val = read_file(i, self.stars_sed_input)

            for k in xrange(self.n_filter):
                p_val_fine = regrid_sed(
                    0.0, p_lam, p_val, self.filter_lgth_fine[k],
                    sed_length, self.filter_lamb_fine[k])

                mod_val = integrate_sed(
                    self.filter_lgth_fine[k], p_val_fine,
                    self.filter_lamb_fine[k], self.filter_thru_fine[k])

                model_flux_stars[k][i] = mod_val

        self.model_flux_stars = model_flux_stars