Commit 7ae8c85f authored by Yan Zhaojun's avatar Yan Zhaojun
Browse files

update

parent 0c74ea42
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
__version__ = "3.0.1"
+98 −97
Original line number Diff line number Diff line
@@ -356,7 +356,7 @@ class cosmicrays():
                        exposure time.
    """

    def __init__(self, log, image, crInfo=None, information=None):
    def __init__(self, log, image, exposuretime,crInfo=None, information=None):
        """
        Cosmic ray generation class. Can either draw events from distributions or
        set the energy of the events to a constant.
@@ -376,8 +376,7 @@ class cosmicrays():

        # set up the information dictionary, first with defaults and then overwrite with inputs if given
        self.information = (dict(cosmicraylengths='/home/yan/csst-master/data/cdf_cr_length.dat',
                                 cosmicraydistance='/home/yan/csst-master/data/cdf_cr_total.dat',
                                 exptime=565))
                                 cosmicraydistance='/home/yan/csst-master/data/cdf_cr_total.dat',exptime=exposuretime))
        if information is not None:
            self.information.update(information)

@@ -520,12 +519,6 @@ class cosmicrays():
        :return: None
        """

        if coveringFraction > 1 or coveringFraction < 0.1:
            self.log.error(
                'coveringFraction error, it shoub be in [0.1, 1]!')
            raise ValueError(
                'coveringFraction error, it shoub be in [0.1, 1]!')

        self.cosmicrayMap = np.zeros((self.ysize, self.xsize))

        # how many events to draw at once, too large number leads to exceeding the covering fraction
@@ -2176,31 +2169,34 @@ class IFSsimulator():
         """
         get frame transfer image from original image of self.image_b and self.image_r
         """
        self.frame_b_4 = np.zeros((1024+320, 2048), dtype=float)
        self.frame_b_3 = np.zeros((1024+320, 2048), dtype=float)
        self.frame_b_2 = np.zeros((1024+320, 2048), dtype=float)
        self.frame_b_1 = np.zeros((1024+320, 2048), dtype=float)
         overscan=320
         self.frame_b_4 = np.zeros((1024+overscan, 2048), dtype=float)
         self.frame_b_3 = np.zeros((1024+overscan, 2048), dtype=float)
         self.frame_b_2 = np.zeros((1024+overscan, 2048), dtype=float)
         self.frame_b_1 = np.zeros((1024+overscan, 2048), dtype=float)

        self.frame_r_4 = np.zeros((1536+320, 3072), dtype=float)
        self.frame_r_3 = np.zeros((1536+320, 3072), dtype=float)
        self.frame_r_2 = np.zeros((1536+320, 3072), dtype=float)
        self.frame_r_1 = np.zeros((1536+320, 3072), dtype=float)
         self.frame_r_4 = np.zeros((1536+overscan, 3072), dtype=float)
         self.frame_r_3 = np.zeros((1536+overscan, 3072), dtype=float)
         self.frame_r_2 = np.zeros((1536+overscan, 3072), dtype=float)
         self.frame_r_1 = np.zeros((1536+overscan, 3072), dtype=float)

        # blue channle
        b_4 = np.sum(self.image_b[0:1024, 0:2048], axis=0)
         # OSH, part2 ,no change
         b_2 = np.sum(self.image_b[0:1024, 0:2048], axis=0)

        # flip right to  left of part3 and part2
        temp_b_3 = np.fliplr(self.image_b[0:1024, 2048:4096])  # left to right
        b_3 = np.sum(temp_b_3, axis=0)
         # flip right to  left of part1
         temp_b_1 = np.fliplr(self.image_b[0:1024, 2048:4096])  # left to right
         b_1 = np.sum(temp_b_1, axis=0)

        temp_b_2 = np.fliplr(
         # part 4, left to right  and up to down
         temp_b_4 = np.fliplr(
             self.image_b[1024:1024+1024, 2048:2048+2048])      # left to right
        b_2 = np.sum(temp_b_2, axis=0)
         b_4 = np.sum(temp_b_4, axis=0)

        b_1 = np.sum(self.image_b[1024:1024+1024, 0:2048], axis=0)
         # part 3,OSE, up to dwon
         b_3 = np.sum(self.image_b[1024:1024+1024, 0:2048], axis=0)
         ####

        for k in range(1024+320):
         for k in range(1024+overscan):
             # part
             self.frame_b_4[k, :] += b_4*0.09216/self.information['exptime']
             self.frame_b_3[k, :] += b_3*0.09216/self.information['exptime']
@@ -2209,23 +2205,22 @@ class IFSsimulator():

         ###################
         # red channle
        r_4 = np.sum(self.image_r[0:1536, 0:3072], axis=0)
         # OSH, part2 ,no change
         r_2 = np.sum(self.image_r[0:1536, 0:3072], axis=0)

        # flip right to  left of part3 and part2
        temp_r_3 = np.fliplr(self.image_r[0:1536, 3072:6144])  # left to right
        r_3 = np.sum(temp_r_3, axis=0)
         # # flip right to  left of part1
         temp_r_1 = np.fliplr(self.image_r[0:1536, 3072:6144])  # left to right
         r_1 = np.sum(temp_r_1, axis=0)

        temp_r_2 = np.fliplr(
         # part 4, left to right  and up to down
         temp_r_4 = np.fliplr(
             self.image_r[1536:1536+1536, 3072:6144])  # left to right
        r_2 = np.sum(temp_r_2, axis=0)

        # r_3 = np.sum(self.image_r[0:1536, 3072:6144], axis=0)
         r_4 = np.sum(temp_r_4, axis=0)

        # r_2 = np.sum(self.image_r[1536:1536+1536, 3072:6144], axis=0)
         # part 3,OSE, up to dwon
         r_3 = np.sum(self.image_r[1536:1536+1536, 0:3072], axis=0)

        r_1 = np.sum(self.image_r[1536:1536+1536, 0:3072], axis=0)

        for k in range(1536+320):
         for k in range(1536+overscan):
             # part 4, OSH zone;
             self.frame_r_4[k, :] += r_4*0.13824/self.information['exptime']
             self.frame_r_3[k, :] += r_3*0.13824/self.information['exptime']
@@ -2294,6 +2289,12 @@ class IFSsimulator():
        support package.
        """
        self.readCosmicRayInformation()
        #
        if self.information['coveringfraction'] > 1 or self.information['coveringfraction'] < 0.1:
            self.log.error(
                'coveringFraction error, it shoub be in [0.1, 1]!')
            raise ValueError(
                'coveringFraction error, it shoub be in [0.1, 1]!')
        # to scale the number of cosmics with exposure time
        self.cr['exptime'] = self.information['exptime']

@@ -2303,8 +2304,8 @@ class IFSsimulator():
        crImage_r = np.zeros((3072, 6144), dtype=float)

        # cosmic ray instance
        cosmics_b = cosmicrays(self.log, crImage_b, crInfo=self.cr)
        cosmics_r = cosmicrays(self.log, crImage_r, crInfo=self.cr)
        cosmics_b = cosmicrays(self.log, crImage_b,self.information['exptime'], crInfo=self.cr)
        cosmics_r = cosmicrays(self.log, crImage_r,self.information['exptime'], crInfo=self.cr)

        CCD_cr_b = cosmics_b.addUpToFraction(
            self.information['coveringfraction']*self.information['exptime']/300.0, limit=None)
@@ -2729,49 +2730,49 @@ class IFSsimulator():
        apply frame transfer effect to the four part images
        """
        prescan = 50
        overscan = 8
        overscan = 0

        # zone 4 ,  OSH ####  1024,  2048
        # zone 1 ,  OSG ####  1024,  2048
        self.image_b[0:1024+overscan, prescan:2048 +
                     prescan] += self.frame_b_4[0:1024+overscan, 0:2048]
                     prescan] += self.frame_b_1[0:1024+overscan, 0:2048]

        # ######### zone 3, OSG    #################
        ########## zone 2, OSH    #################

        self.image_b[0:1024+overscan, prescan+2418:2418+2048 +
                     prescan] += self.frame_b_3[0:1024+overscan, 0:2048]
                     prescan] += self.frame_b_2[0:1024+overscan, 0:2048]

        # ######### zone 1, OSE  ###################
        ########## zone 3, OSE  ###################

        self.image_b[0:1024+overscan, prescan+2418*2:2418*2 +
                     2048+prescan] += self.frame_b_1[0:1024+overscan, 0:2048]
                     2048+prescan] += self.frame_b_3[0:1024+overscan, 0:2048]

        # ######### zone 2, OSF ###############
        ########## zone 4, OSF ###############

        self.image_b[0:1024+overscan, prescan+2418*3:2418*3 +
                     2048+prescan] += self.frame_b_2[0:1024+overscan, 0:2048]
                     2048+prescan] += self.frame_b_4[0:1024+overscan, 0:2048]

        # 3

        self.log.info('readnoise added in blue channel')

        # red zone 4 , OSH### 1536* 3072
        # red zone 1 , OSG### 1536* 3072

        self.image_r[0:1536+overscan, prescan+3442*0:3442*0 +
                     3072+prescan] += self.frame_r_4[0:1536+overscan, 0:3072]
                     3072+prescan] += self.frame_r_1[0:1536+overscan, 0:3072]

        # ######### zone 3 ,OSG #################
        ########## zone 2 ,OSh #################

        self.image_r[0:1536+overscan, prescan+3442*1:3442*1 +
                     3072+prescan] += self.frame_r_3[0:1536+overscan, 0:3072]
                     3072+prescan] += self.frame_r_2[0:1536+overscan, 0:3072]

        ########## zone 1 ,OSE ###################
        self.image_r[0:1536+overscan, prescan+3442*2:3442*2 +
                     3072+prescan] += self.frame_r_1[0:1536+overscan, 0:3072]
                     3072+prescan] += self.frame_r_3[0:1536+overscan, 0:3072]

        # ######### zone 2,OSF ###########
        ########## zone 4,OSF ###########

        self.image_r[0:1536+overscan, prescan+3442*3:3442*3 +
                     3072+prescan] += self.frame_r_2[0:1536+overscan, 0:3072]
                     3072+prescan] += self.frame_r_4[0:1536+overscan, 0:3072]

    ##########################################################################

+6240 −0

File added.

Preview size limit exceeded, changes collapsed.

+8 −8
Original line number Diff line number Diff line
numpy==1.23.5
scipy==1.9.2
setuptools==65.6.3
pandas==1.5.3
julian==0.14
astropy==6.0.0
tqdm==4.64.1
galsim==2.4.9
#numpy==1.23.5
#scipy==1.9.2
#setuptools==65.6.3
#pandas==1.5.3
#julian==0.14
#astropy==6.0.0
#tqdm==4.64.1
#galsim==2.4.9
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ with open("requirements.txt", "r") as f:
setuptools.setup(
    
    name='csst_ifs_sim',  # 包名
    version="3.0.0",  # 版本号
    version="3.0.1",  # 版本号
    author="Zhaojun Yan",  # 作者
    author_email="zhaojunyan@shao.ac.cn",  # 邮箱
    description="The CSST IFS simulation - prototype",  # 短描述