Loading ObservationSim/Instrument/Filter.py +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading ObservationSim/MockObject/CatalogBase.py +2 −2 Original line number Diff line number Diff line Loading @@ -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 ObservationSim/MockObject/MockObject.py +9 −4 Original line number Diff line number Diff line Loading @@ -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"] Loading ObservationSim/ObservationSim.py +8 −4 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 Loading config/config_C3.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
ObservationSim/Instrument/Filter.py +4 −4 Original line number Diff line number Diff line Loading @@ -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 Loading
ObservationSim/MockObject/CatalogBase.py +2 −2 Original line number Diff line number Diff line Loading @@ -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
ObservationSim/MockObject/MockObject.py +9 −4 Original line number Diff line number Diff line Loading @@ -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"] Loading
ObservationSim/ObservationSim.py +8 −4 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 Loading
config/config_C3.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -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