Commit 22b1b8e8 authored by Fang Yuedong's avatar Fang Yuedong
Browse files

change the logical of adding Poisson noise in Chip.py

parent da9c9fbe
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -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,10 +374,10 @@ 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.)
        # 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