diff --git a/ObservationSim/Instrument/Chip/Chip.py b/ObservationSim/Instrument/Chip/Chip.py index aeeda18206be24957f228b6e40a17ee23916153c..1465f27575bb10af13b9c461cf5069970ea77943 100755 --- a/ObservationSim/Instrument/Chip/Chip.py +++ b/ObservationSim/Instrument/Chip/Chip.py @@ -316,9 +316,22 @@ class Chip(FocalPlane): BoolDeadPix = False self.logger = logger + # Get Poisson noise generator + seed = int(config["random_seeds"]["seed_poisson"]) + pointing_ID*30 + self.chipID + rng_poisson = galsim.BaseDeviate(seed) + poisson_noise = galsim.PoissonNoise(rng_poisson, sky_level=0.) + # Add sky background if sky_map is None: sky_map = filt.getSkyNoise(exptime=self.exptime) + sky_map = sky_map * np.ones_like(img.array) + sky_map = galsim.Image(array=sky_map) + # Apply Poisson noise to the sky map + # (NOTE): only for photometric chips + # since it utilize the photon shooting + # to draw stamps + if self.survey_type == "photometric": + sky_map.addNoise(poisson_noise) elif img.array.shape != sky_map.shape: raise ValueError("The shape img and sky_map must be equal.") elif tel is not None: # If sky_map is given in flux @@ -361,11 +374,11 @@ class Chip(FocalPlane): del shutt_gsimg del shuttimg - # Add Poisson noise - seed = int(config["random_seeds"]["seed_poisson"]) + pointing_ID*30 + self.chipID - rng_poisson = galsim.BaseDeviate(seed) - poisson_noise = galsim.PoissonNoise(rng_poisson, sky_level=0.) - img.addNoise(poisson_noise) + # Add Poisson noise to the resulting images + # (NOTE): this can only applied to the slitless image + # since it dose not use photon shooting to draw stamps + if self.survey_type == "spectroscopic": + img.addNoise(poisson_noise) # Add cosmic-rays if config["ins_effects"]["cosmic_ray"] == True and pointing_type=='MS': @@ -580,7 +593,7 @@ class Chip(FocalPlane): if config["ins_effects"]["add_bias"] == True: biaslevel = self.bias_level overscan = biaslevel-2 - elif config["ins_effects"]["add_bias"] == True: + elif config["ins_effects"]["add_bias"] == False: biaslevel = 0 overscan = 0 darklevel = self.dark_noise*(self.flat_exptime+0.5*self.readout_time) diff --git a/setup.py b/setup.py index 31e02b327bf844e07d6ab50bedb8fa443ec67b63..2b9d0d8978ab55cf4283ca53ad41697721b7fd40 100644 --- a/setup.py +++ b/setup.py @@ -26,7 +26,7 @@ extensions = [ setup(name='CSSTSim', - version='0.5.1', + version='0.5.2', packages=find_packages(), # install_requires=[ # 'numpy>=1.18.5',