Commit 4e616043 authored by Fang Yuedong's avatar Fang Yuedong
Browse files
parents f0c3ca84 d5839380
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -39,12 +39,12 @@ class Filter(object):
        self.mag_limiting = filter_param.param[filter_type][7]
        # self.filter_dir = filter_param.filter_dir

    def is_too_bright(self, mag):
        return mag <= self.mag_saturation - 2.5
    def is_too_bright(self, mag, margin=-2.5):
        return mag <= self.mag_saturation + margin
        # return mag <= 14.0

    def is_too_dim(self, mag):
        return mag >= self.mag_limiting + 1.0
    def is_too_dim(self, mag, margin=1.0):
        return mag >= self.mag_limiting + margin

    def _get_bandpasses(self, filter_dir=None, unit='A'):
        if self.filter_id < 7:  # Photometric
+2 −2
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ class CatalogBase(metaclass=ABCMeta):
            bandpass=bandpass
        )
        if target_filt.survey_type == "photometric":
            return sed_photon, mag_csst
            return sed_photon, mag_csst, interFlux
        elif target_filt.survey_type == "spectroscopic":
            del sed_photon
            return sed, mag_csst
 No newline at end of file
            return sed, mag_csst, interFlux
 No newline at end of file
+9 −4
Original line number Diff line number Diff line
@@ -55,15 +55,20 @@ class MockObject(object):
        # (TEST) stamp size
        # return 13.0
        
    def getFluxFilter(self, filt):
        return self.param["flux_%s"%filt.filter_type]

    def getNumPhotons(self, flux, tel, exptime=150.):
        pupil_area = tel.pupil_area * (100.)**2 # m^2 to cm^2
        return flux * pupil_area * exptime

    def getElectronFluxFilt(self, filt, tel, exptime=150.):
        photonEnergy = filt.getPhotonE()
        flux = magToFlux(self.getMagFilter(filt))
        factor = 1.0e4 * flux/photonEnergy * VC_A * (1.0/filt.blue_limit - 1.0/filt.red_limit)
        return factor * filt.efficiency * tel.pupil_area * exptime
        # photonEnergy = filt.getPhotonE()
        # flux = magToFlux(self.getMagFilter(filt))
        # factor = 1.0e4 * flux/photonEnergy * VC_A * (1.0/filt.blue_limit - 1.0/filt.red_limit)
        # return factor * filt.efficiency * tel.pupil_area * exptime
        flux = self.getFluxFilter(filt)
        return flux * tel.pupil_area * exptime

    def getPosWorld(self):
        ra = self.param["ra"]
+8 −4
Original line number Diff line number Diff line
@@ -193,13 +193,13 @@ class Observation(object):
                try:
                    sed_data = self.cat.load_sed(obj)
                    norm_filt = self.cat.load_norm_filt(obj)
                    obj.sed, obj.param["mag_%s"%filt.filter_type] = self.cat.convert_sed(
                    obj.sed, obj.param["mag_%s"%filt.filter_type], obj.param["flux_%s"%filt.filter_type] = self.cat.convert_sed(
                        mag=obj.param["mag_use_normal"],
                        sed=sed_data,
                        target_filt=filt, 
                        norm_filt=norm_filt,
                    )
                    _, obj.param["mag_%s"%cut_filter.filter_type] = self.cat.convert_sed(
                    _, obj.param["mag_%s"%cut_filter.filter_type], obj.param["flux_%s"%cut_filter.filter_type] = self.cat.convert_sed(
                        mag=obj.param["mag_use_normal"],
                        sed=sed_data,
                        target_filt=cut_filter, 
@@ -216,13 +216,17 @@ class Observation(object):
                # Exclude very bright/dim objects (for now)
                # if filt.is_too_bright(mag=obj.getMagFilter(filt)):
                # if filt.is_too_bright(mag=obj.mag_use_normal):
                if cut_filter.is_too_bright(mag=obj.param["mag_%s"%self.config["obs_setting"]["cut_in_band"].lower()]):
                if cut_filter.is_too_bright(
                    mag=obj.param["mag_%s"%self.config["obs_setting"]["cut_in_band"].lower()],
                    margin=self.config["obs_setting"]["mag_sat_margin"]):
                    # print("obj too birght!!", flush=True)
                    if obj.type != 'galaxy':
                        bright_obj += 1
                        obj.unload_SED()
                        continue
                if filt.is_too_dim(mag=obj.getMagFilter(filt)):
                if filt.is_too_dim(
                    mag=obj.getMagFilter(filt),
                    margin=self.config["obs_setting"]["mag_lim_margin"]):
                # if cut_filter.is_too_dim(mag=obj.param["mag_%s"%self.config["obs_setting"]["cut_in_band"].lower()]):
                    # print("obj too dim!!", flush=True)
                    dim_obj += 1
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
###############################################
#
#  Configuration file for CSST simulation
#  CSST-Sim Group, 2021/10/07, version 0.3
#  CSST-Sim Group, 2021/10/07
#
###############################################

Loading