From 471e6c0b964af3942a43d2db6ebcdb48fe755a50 Mon Sep 17 00:00:00 2001 From: yan <zhaojunyan@shao.ac.cn> Date: Mon, 23 Dec 2024 17:09:48 +0800 Subject: [PATCH] update --- .../__pycache__/csst_ifs_sim.cpython-311.pyc | Bin 0 -> 219332 bytes csst_ifs_sim/csst_ifs_sim.py | 320 +++++------------- .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 187 bytes 3 files changed, 84 insertions(+), 236 deletions(-) create mode 100644 csst_ifs_sim/__pycache__/csst_ifs_sim.cpython-311.pyc create mode 100644 csst_ifs_sim/ifs_so/__pycache__/__init__.cpython-311.pyc diff --git a/csst_ifs_sim/__pycache__/csst_ifs_sim.cpython-311.pyc b/csst_ifs_sim/__pycache__/csst_ifs_sim.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91b212bc336160a41aafd2ec8a3ae7b80241f375 GIT binary patch literal 219332 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 F{SUZYI{N?s literal 0 HcmV?d00001 diff --git a/csst_ifs_sim/csst_ifs_sim.py b/csst_ifs_sim/csst_ifs_sim.py index a6842cb..3115c36 100644 --- a/csst_ifs_sim/csst_ifs_sim.py +++ b/csst_ifs_sim/csst_ifs_sim.py @@ -138,7 +138,7 @@ class CDM03bidir(): # read in trap information trapdata = np.loadtxt( - self.values['dir_path']+self.values['paralleltrapfile']) + os.path.join(self.values['dir_path'],self.values['paralleltrapfile'])) if trapdata.ndim > 1: self.nt_p = trapdata[:, 0] self.sigma_p = trapdata[:, 1] @@ -150,7 +150,7 @@ class CDM03bidir(): self.taur_p = [trapdata[2],] trapdata = np.loadtxt( - self.values['dir_path']+self.values['serialtrapfile']) + os.path.join(self.values['dir_path'],self.values['serialtrapfile'])) if trapdata.ndim > 1: self.nt_s = trapdata[:, 0] self.sigma_s = trapdata[:, 1] @@ -261,10 +261,7 @@ class CDM03bidir(): return np.asanyarray(CTIed) ################################################################################################################# - ################################################################################################################# - - """ These functions can be used for logging information. @@ -272,8 +269,6 @@ These functions can be used for logging information. :version: 0.3 """ - - def lg(log_filename, loggername='logger'): """ Sets up a logger. @@ -302,8 +297,6 @@ def lg(log_filename, loggername='logger'): logger.addHandler(handler) return logger - - ############################################################################## def IFSinformation(): @@ -658,7 +651,7 @@ def ill2flux(path, E): """ # use template from sky_bkg (background_spec_hst.dat) - filename = path+'IFS_inputdata/refs/background_spec_hst.dat' + filename = os.path.join(path,'IFS_inputdata/refs/background_spec_hst.dat') cat_spec = pd.read_csv(filename, sep='\\s+', header=None, comment='#') wave0 = cat_spec[0].values # A spec0 = cat_spec[2].values # erg/s/cm^2/A/arcsec^2 @@ -752,7 +745,7 @@ class StrayLight(object): self.ecliptic = self.equator.transform_to('barycentrictrueecliptic') self.pointing = transRaDec2D(radec[0], radec[1]) self.slcdll = ctypes.CDLL( - self.path+'IFS_inputdata/refs/libstraylight.so') # dylib + os.path.join(self.path,'IFS_inputdata/refs/libstraylight.so')) # dylib self.slcdll.Calculate.argtypes = [ctypes.c_double, ctypes.POINTER(ctypes.c_double), ctypes.POINTER(ctypes.c_double), ctypes.POINTER( @@ -775,11 +768,11 @@ class StrayLight(object): ctypes.POINTER(ctypes.c_double)] self.slcdll.Init.argtypes = [ ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p] - self.deFn = self.path+"IFS_inputdata/refs/DE405" - self.PSTFn = self.path+"IFS_inputdata/refs/PST" - self.RFn = self.path + "IFS_inputdata/refs/R" - self.ZolFn = self.path+"IFS_inputdata/refs/Zodiacal" - self.brightStarTabFn = self.path+"IFS_inputdata/refs/BrightGaia_with_csst_mag" + self.deFn = os.path.join(self.path,"IFS_inputdata/refs/DE405") + self.PSTFn = os.path.join(self.path,"IFS_inputdata/refs/PST") + self.RFn = os.path.join(self.path,"IFS_inputdata/refs/R") + self.ZolFn = os.path.join(self.path,"IFS_inputdata/refs/Zodiacal") + self.brightStarTabFn = os.path.join(self.path,"IFS_inputdata/refs/BrightGaia_with_csst_mag") self.slcdll.Init(str.encode(self.deFn), str.encode( self.PSTFn), str.encode(self.RFn), str.encode(self.ZolFn)) @@ -1865,9 +1858,6 @@ class IFSsimulator(): # get solar position dt = datetime.fromisoformat(time) jd = time2jd(dt) -# -# -# # # jd = julian.to_jd(dt, fmt='jd') t = Time(jd, format='jd', scale='utc') @@ -1888,7 +1878,7 @@ class IFSsimulator(): # interpolated zodical surface brightness at 0.5 um zodi = pd.read_csv( - self.information['dir_path']+'IFS_inputdata/refs/zodi_map.dat', sep='\\s+', header=None, comment='#') + os.path.join(self.information['dir_path'],'IFS_inputdata/refs/zodi_map.dat'), sep='\\s+', header=None, comment='#') beta_angle = np.array([0, 5, 10, 15, 20, 25, 30, 45, 60, 75]) lamda_angle = np.array([0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180]) @@ -1902,7 +1892,7 @@ class IFSsimulator(): # read the zodical spectrum in the ecliptic cat_spec = pd.read_csv( - self.information['dir_path']+'IFS_inputdata/refs/solar_spec.dat', sep='\\s+', header=None, comment='#') + os.path.join(self.information['dir_path'],'IFS_inputdata/refs/solar_spec.dat'), sep='\\s+', header=None, comment='#') wave = cat_spec[0].values # A spec0 = cat_spec[1].values # zodi_norm = 252 # @@ -1922,42 +1912,6 @@ class IFSsimulator(): return wave_A, spec_erg2 ########################################################################## - - # def smoothingWithChargeDiffusion(self, image, sigma=(0.32, 0.32)): - # """ - - # Parameters - # ---------- - # image : TYPE - # DESCRIPTION. - # sigma : TYPE, optional - # DESCRIPTION. The default is (0.32, 0.32). - - # Returns - # ------- - # TYPE - # DESCRIPTION. - - # """ - # """ - # Smooths a given image with a gaussian kernel with widths given as sigmas. - # This smoothing can be used to mimic charge diffusion within the CCD. - - # The default values are from Table 8-2 of CCD_273_Euclid_secification_1.0.130812.pdf converted - # to sigmas (FWHM / (2sqrt(2ln2)) and rounded up to the second decimal. - - # .. Note:: This method should not be called for the full image if the charge spreading - # has already been taken into account in the system PSF to avoid double counting. - - # :param image: image array which is smoothed with the kernel - # :type image: ndarray - # :param sigma: widths of the gaussian kernel that approximates the charge diffusion [0.32, 0.32]. - # :param sigma: tuple - - # :return: smoothed image array - # :rtype: ndarray - # """ - # return ndimage.filters.gaussian_filter(image, sigma) ############################################################################### def readCosmicRayInformation(self): @@ -1979,9 +1933,9 @@ class IFSsimulator(): # print(self.information) crLengths = np.loadtxt( - self.information['dir_path']+self.information['cosmicraylengths']) + os.path.join(self.information['dir_path'],self.information['cosmicraylengths'])) crDists = np.loadtxt( - self.information['dir_path']+self.information['cosmicraydistance']) + os.path.join(self.information['dir_path'],self.information['cosmicraydistance'])) self.cr = dict(cr_u=crLengths[:, 0], cr_cdf=crLengths[:, 1], cr_cdfn=np.shape(crLengths)[0], cr_v=crDists[:, 0], cr_cde=crDists[:, 1], cr_cden=np.shape(crDists)[0]) @@ -2038,31 +1992,21 @@ class IFSsimulator(): else: ss = '_' - # if self.information['dir_path'] == '/nfsdata/share/simulation-unittest/ifs_sim/': - # self.result_path = self.information['dir_path'] + \ - # self.information['result_path']+'/'+self.source+ss+result_day - # else: - - # home_path = os.environ['HOME'] - # if home_path == '/home/yan': - - # self.result_path = '../IFS_simData/'+self.source+ss+result_day - # else: - # self.result_path = '/data/ifspip/CCD_ima/'+self.source+ss+result_day - - self.result_path = self.information['result_path'] + \ - '/'+self.source+ss+result_day - print(self.information['result_path']) + ### create result father path; + if os.path.isdir(self.information['result_path']) is False: + os.mkdir(self.information['result_path']) + self.result_path=os.path.join(self.information['result_path'], self.source+ss+result_day) + print(self.result_path) if os.path.isdir(self.result_path) is False: os.mkdir(self.result_path) - os.mkdir(self.result_path+'/calibration_Data') - os.mkdir(self.result_path+'/log_file') - os.mkdir(self.result_path+'/original_Calibration') - os.mkdir(self.result_path+'/original_sky') - os.mkdir(self.result_path+'/shift_rot_sky') - os.mkdir(self.result_path+'/sky_Data') + os.mkdir(os.path.join(self.result_path,'calibration_Data')) + os.mkdir(os.path.join(self.result_path,'log_file')) + os.mkdir(os.path.join(self.result_path,'original_Calibration')) + os.mkdir(os.path.join(self.result_path,'original_sky')) + os.mkdir(os.path.join(self.result_path,'shift_rot_sky')) + os.mkdir(os.path.join(self.result_path,'sky_Data')) ############################################################################## now = datetime.utcnow() @@ -2070,8 +2014,8 @@ class IFSsimulator(): data_time = now.strftime("%Y-%m-%d-%H-%M-%S") ############################################################ - self.log = lg(self.result_path+'/log_file/IFS_' + - self.source+'_'+data_time+'_Num_'+str(simnumber)+'.log') + self.log = lg(os.path.join(self.result_path,'log_file/IFS_' + + self.source+'_'+data_time+'_Num_'+str(simnumber)+'.log')) self.log.info('STARTING A NEW SIMULATION') @@ -2092,7 +2036,7 @@ class IFSsimulator(): self.HgArsigma = self.light_FWHM/2.35 # sigma value of the light source # load system optical and CCD efficiency data - matfn0 = self.information['dir_path']+'IFS_inputdata/TotalQ200923.mat' + matfn0 = os.path.join(self.information['dir_path'],'IFS_inputdata/TotalQ200923.mat') self.log.info('Optical optical efficiency file path is: %s' % (matfn0)) da0 = sio.loadmat(matfn0) # optical efficiency of blue channel @@ -2103,7 +2047,7 @@ class IFSsimulator(): # load all useful data; # load wavefront data; - matfn2 = self.information['dir_path']+'IFS_inputdata/opd/opd_638nm.mat' + matfn2 = os.path.join(self.information['dir_path'],'IFS_inputdata/opd/opd_638nm.mat') self.log.info('OPD0 file path is: %s' % (matfn2)) da2 = sio.loadmat(matfn2) opd0 = da2['opd'] # opd unit is in meter @@ -2111,17 +2055,17 @@ class IFSsimulator(): self.pupil = abs(opd0) > 0.0 #################### - matfn2 = self.information['dir_path']+'IFS_inputdata/opd/opd1.fits' + matfn2 = os.path.join(self.information['dir_path'],'IFS_inputdata/opd/opd1.fits') da = fits.open(matfn2) self.opd1 = da[0].data self.log.info('OPD1 file path is: %s' % (matfn2)) - matfn2 = self.information['dir_path']+'IFS_inputdata/opd/opd2.fits' + matfn2 = os.path.join(self.information['dir_path'],'IFS_inputdata/opd/opd2.fits') self.log.info('OPD2 file path is: %s' % (matfn2)) da = fits.open(matfn2) self.opd2 = da[0].data - matfn2 = self.information['dir_path']+'IFS_inputdata/opd/opd3.fits' + matfn2 = os.path.join(self.information['dir_path'],'IFS_inputdata/opd/opd3.fits') self.log.info('OPD3 file path is: %s' % (matfn2)) da = fits.open(matfn2) self.opd3 = da[0].data @@ -2424,50 +2368,50 @@ class IFSsimulator(): self.log.info('Added dark current to bule and red channel') - if self.information['dark1_b'] > 0.001 or self.information['dark1_b'] > 0.001: + if self.information['dark1_b'] < 0.0001 or self.information['dark1_b'] > 0.001: self.log.error( 'dark1_b value error, it shoub be in [0.0001, 0.001]!') raise ValueError( 'dark1_b value error, it shoub be in [0.0001, 0.001]!') - if self.information['dark2_b'] > 0.001 or self.information['dark2_b'] > 0.001: + if self.information['dark2_b'] < 0.0001 or self.information['dark2_b'] > 0.001: self.log.error( 'dark2_b value error, it shoub be in [0.0001, 0.001]!') raise ValueError( 'dark2_b value error, it shoub be in [0.0001, 0.001]!') - if self.information['dark3_b'] > 0.001 or self.information['dark3_b'] > 0.001: + if self.information['dark3_b'] < 0.0001 or self.information['dark3_b'] > 0.001: self.log.error( 'dark3_b value error, it shoub be in [0.0001, 0.001]!') raise ValueError( 'dark3_b value error, it shoub be in [0.0001, 0.001]!') - if self.information['dark4_b'] > 0.001 or self.information['dark4_b'] > 0.001: + if self.information['dark4_b'] < 0.0001 or self.information['dark4_b'] > 0.001: self.log.error( 'dark4_b value error, it shoub be in [0.0001, 0.001]!') raise ValueError( 'dark4_b value error, it shoub be in [0.0001, 0.001]!') #################################################################### - if self.information['dark1_r'] > 0.001 or self.information['dark1_r'] > 0.001: + if self.information['dark1_r'] < 0.0001 or self.information['dark1_r'] > 0.001: self.log.error( 'dark1_r value error, it shoub be in [0.0001, 0.001]!') raise ValueError( 'dark1_r value error, it shoub be in [0.0001, 0.001]!') - if self.information['dark2_r'] > 0.001 or self.information['dark2_r'] > 0.001: + if self.information['dark2_r'] < 0.0001 or self.information['dark2_r'] > 0.001: self.log.error( 'dark2_r value error, it shoub be in [0.0001, 0.001]!') raise ValueError( 'dark2_r value error, it shoub be in [0.0001, 0.001]!') - if self.information['dark3_r'] > 0.001 or self.information['dark3_r'] > 0.001: + if self.information['dark3_r'] < 0.0001 or self.information['dark3_r'] > 0.001: self.log.error( 'dark3_r value error, it shoub be in [0.0001, 0.001]!') raise ValueError( 'dark3_r value error, it shoub be in [0.0001, 0.001]!') - if self.information['dark4_r'] > 0.001 or self.information['dark4_r'] > 0.001: + if self.information['dark4_r'] < 0.0001 or self.information['dark4_r'] > 0.001: self.log.error( 'dark4_r value error, it shoub be in [0.0001, 0.001]!') raise ValueError( @@ -2558,7 +2502,7 @@ class IFSsimulator(): Warning:: This method does not work if the input file has exactly one line. """ cosmetics = np.loadtxt( - self.information['dir_path']+self.information['cosmeticsfile_b']) + os.path.join(self.information['dir_path'],self.information['cosmeticsfile_b'])) self.log.info('cosmeticsfile_b path is: %s' % (self.information['cosmeticsfile_b'])) @@ -2582,7 +2526,7 @@ class IFSsimulator(): ############################################################################# cosmetics = np.loadtxt( - self.information['dir_path']+self.information['cosmeticsfile_r']) + os.path.join(self.information['dir_path'],self.information['cosmeticsfile_r'])) self.log.info('cosmeticsfile_r path is: %s' % (self.information['cosmeticsfile_r'])) @@ -3257,48 +3201,7 @@ class IFSsimulator(): self.log.info('Maximum and total values of the image are %i and %i, respectively' % (np.max(self.image_r), np.sum(self.image_r))) # ############################################################################ - # def applyImageShift(self): - # """ - # Returns - # ------- - # None. - # """ - # np.random.seed(9*self.simnumber) - # ud = np.random.random() # Choose a random rotation - # dx = 2 * (ud-0.5) * self.information['shiftmax'] - # np.random.seed(99*self.simnumber) - # ud = np.random.random() # Choose a random rotation - # dy = 2 * (ud-0.5) * self.information['shiftmax'] - # self.image_b = ndimage.shift(self.image_b.copy(), [ - # dy+self.information['shift_b_y'], dx+self.information['shift_b_x']], order=0, mode='nearest') - # self.image_r = ndimage.shift(self.image_r.copy(), [ - # dy+self.information['shift_r_y'], dx+self.information['shift_r_x']], order=0, mode='nearest') - # self.log.info('Applied image shifting to g r i channels.') - # self.information['ra'] = dx*self.information['pixel_size'] - # self.information['dec'] = dy*self.information['pixel_size'] -############################################################################## - # def applyImageRotate(self): - # """ - # Returns - # ------- - # None. - # """ - # np.random.seed(10*self.simnumber) - # ud = np.random.random() # Choose a random rotation - # angle = 2 * (ud-0.5) * self.information['tel_rotmax'] - # inputimg = self.image_b.copy() - # # here we choose reshape=False, the rotated image will - # rotimg = ndimage.rotate( - # inputimg, angle+self.information['rotate_b'], order=1, reshape=False) - # self.image_b = rotimg - # inputimg = self.image_r.copy() - # # here we choose reshape=False, the rotated image will - # rotimg = ndimage.rotate( - # inputimg, angle+self.information['rotate_r'], order=1, reshape=False) - # self.image_r = rotimg - # self.information['Tel_rot'] = angle - # self.log.info( - # 'Applied telescope rotation with angle (in degree)= %f.', angle) + ############################################################################### def CCDreadout(self): @@ -3518,6 +3421,7 @@ class IFSsimulator(): filename_b = 'CSST_IFS_B_'+self.source+'_'+exp_start_str + \ '_'+exp_end_str+'_'+str(obsid)+'_B_L0_V'+sim_ver + self.file_b = self.result_path+'/sky_Data/'+filename_b+'.fits' filename_r = 'CSST_IFS_R_'+self.source+'_'+exp_start_str + \ @@ -3537,11 +3441,11 @@ class IFSsimulator(): filename_b = 'CSST_IFS_B_'+self.source+'_'+exp_start_str + \ '_'+exp_end_str+'_'+str(obsid)+'_B_L0_V'+sim_ver - self.file_b = self.result_path+'/calibration_Data/'+filename_b+'.fits' + self.file_b = os.path.join(self.result_path,'calibration_Data/'+filename_b+'.fits') filename_r = 'CSST_IFS_R_'+self.source+'_'+exp_start_str + \ '_'+exp_end_str+'_'+str(obsid)+'_R_L0_V'+sim_ver - self.file_r = self.result_path+'/calibration_Data/'+filename_r+'.fits' + self.file_r = os.path.join(self.result_path,'calibration_Data/'+filename_r+'.fits') # create a new FITS file, using HDUList instance # #### layer 0 #### @@ -3566,7 +3470,7 @@ class IFSsimulator(): 'ICRS', 'coordinate system of the object') ofd_b.header['EQUINOX'] = (float(2000.0), '') ofd_b.header['FITSSWV'] = ( - 'ifs_sim_0.8.03', 'FITS creating software version') + 'csst_ifs_sim_3.0.0', 'FITS creating software version') # ######## Object information ############# if self.source == 'SCI' or self.source == 'COMP': ofd_b.header['OBJECT'] = ( @@ -3933,7 +3837,7 @@ class IFSsimulator(): ofd_r.header['EQUINOX'] = (float(2000.0), '') ofd_r.header['FITSSWV'] = ( - 'ifs_sim_0.8.03', 'FITS creating software version') + 'csst_ifs_sim_3.0.0', 'FITS creating software version') # ######## Object information ############# if self.source == 'SCI' or self.source == 'COMP': @@ -4377,19 +4281,19 @@ class IFSsimulator(): """ # read solar template - solar_template = pd.read_csv(self.information['dir_path']+'IFS_inputdata/refs/solar_spec.dat', sep='\\s+', + solar_template = pd.read_csv(os.path.join(self.information['dir_path'],'IFS_inputdata/refs/solar_spec.dat'), sep='\\s+', header=None, comment='#') template_wave = solar_template[0].values template_flux = solar_template[1].values # read earth shine surface brightness - earthshine_curve = pd.read_csv(self.information['dir_path']+'IFS_inputdata/refs/earthshine.dat', + earthshine_curve = pd.read_csv(os.path.join(self.information['dir_path'],'IFS_inputdata/refs/earthshine.dat'), header=None, comment='#') angle = earthshine_curve[0].values surface_brightness = earthshine_curve[1].values # read V-band throughtput - cat_filter_V = pd.read_csv(self.information['dir_path']+'IFS_inputdata/refs/filter_Bessell_V.dat', sep='\\s+', + cat_filter_V = pd.read_csv(os.path.join(self.information['dir_path'],'IFS_inputdata/refs/filter_Bessell_V.dat'), sep='\\s+', header=None, comment='#') filter_wave = cat_filter_V[0].values filter_response = cat_filter_V[1].values @@ -4507,23 +4411,21 @@ class IFSsimulator(): ################################################################ # ######## # #### load slicer_Qe1K.fits #### - slicerfile = self.information['dir_path'] + \ - 'IFS_inputdata/Flatfield/slicer_QE_1K_230625.fits' + slicerfile = os.path.join(self.information['dir_path'],'IFS_inputdata/Flatfield/slicer_QE_1K_230625.fits') da = fits.open(slicerfile) self.log.info('hole Sim and slicer 1K QE file:%s' % (slicerfile)) slicer_Qe = da[0].data # #### load hole mask ###### # load hole mask matrix - file = self.information['dir_path'] + \ - 'IFS_inputdata/Hole/holemask_230612.fits' + file = os.path.join(self.information['dir_path'], 'IFS_inputdata/Hole/holemask_230612.fits') self.log.info('hole mask file is %s' % (file)) da = fits.open(file) HoleMask = da[self.simnumber].data # load HgAr data; - matfn3 = self.information['dir_path']+'IFS_inputdata/HgAr.mat' + matfn3 = os.path.join(self.information['dir_path'],'IFS_inputdata/HgAr.mat') self.log.info('lamp flux file is : %s' % (matfn3)) da3 = sio.loadmat(matfn3) HgArst = da3['HgArst'] # opd unit is in meter @@ -4772,10 +4674,10 @@ class IFSsimulator(): data_time = now.strftime("%Y-%m-%d") # write the actual file - bluefile = self.result_path+'/original_Calibration/IFS_'+self.source + \ - '_'+data_time+'_'+str(self.simnumber)+'_B_original.fits' - redfile = self.result_path+'/original_Calibration/IFS_'+self.source + \ - '_'+data_time+'_'+str(self.simnumber)+'_R_original.fits' + bluefile = os.path.join(self.result_path,'original_Calibration/IFS_'+self.source + \ + '_'+data_time+'_'+str(self.simnumber)+'_B_original.fits') + redfile = os.path.join(self.result_path,'original_Calibration/IFS_'+self.source + \ + '_'+data_time+'_'+str(self.simnumber)+'_R_original.fits') fits.writeto(bluefile, blue_img.array, overwrite=True) fits.writeto(redfile, red_img.array, overwrite=True) @@ -4795,7 +4697,7 @@ class IFSsimulator(): newd = fits.HDUList([hdu1, hdu2]) - filename = self.result_path+'/calibration_Data/'+self.source+'_flux.fits' + filename = os.path.join(self.result_path,'calibration_Data/'+self.source+'_flux.fits') if self.simnumber == 1: newd.writeto(filename, overwrite=True) @@ -4836,8 +4738,7 @@ class IFSsimulator(): ############################################################################ # consider the slice optical efficiency in different slicer channel - slicer_QE_file = self.information['dir_path'] + \ - 'IFS_inputdata/Flatfield/slicer_QE230625.fits' + slicer_QE_file = os.path.join(self.information['dir_path'],'IFS_inputdata/Flatfield/slicer_QE230625.fits') da = fits.open(slicer_QE_file) self.log.info('slicer_QE_file path is: %s' % (slicer_QE_file)) slicer_Qe = da[0].data @@ -5041,9 +4942,7 @@ class IFSsimulator(): # orbit parameters are not in currenct txt file if self.orbit_pars[-1, 0] < t2jd: self.orbit_file_num = self.orbit_file_num+1 - fn = self.information['dir_path'] + \ - 'IFS_inputdata/TianCe/orbit20160925/' + \ - str(self.orbit_file_num)+'.txt' + fn = os.path.join(self.information['dir_path'] , 'IFS_inputdata/TianCe/orbit20160925/'+str(self.orbit_file_num)+'.txt') self.orbit_pars = np.loadtxt(fn) self.orbit_exp_num = 0 @@ -5220,10 +5119,8 @@ class IFSsimulator(): # PSFfilename='/media/yan//IFSsim/IFSsim Data/rot_shift_Img.fits' # fits.writeto('/media/yan//IFSsim/IFSsim Data/rot_shift_subImg.fits',image0.array[50-32:50+32,50-32:50+32],overwrite=True ) - hdu1.writeto(self.result_path+'/shift_rot_sky/rot_shift_subImg_' + - str(simnumber)+'.fits', overwrite=True) - fits.writeto(self.result_path+'/shift_rot_sky/original_Img_' + - str(simnumber)+'.fits', Nimg, overwrite=True) + hdu1.writeto(os.path.join(self.result_path,'shift_rot_sky/rot_shift_subImg_'+str(simnumber)+'.fits'), overwrite=True) + fits.writeto(os.path.join(self.result_path,'shift_rot_sky/original_Img_'+str(simnumber)+'.fits'), Nimg, overwrite=True) ##################################################################### # ## do convolve image0 with PSF0 from primay CSST ### @@ -5342,22 +5239,6 @@ class IFSsimulator(): energy = energy+sum(photons.flux[idx0]) p_num = len(idx0[0]) - ############################################################## - # ######### code for test slice is right or not ############## - ############################################################## - # photons_2=galsim.PhotonArray(N=p_num, x=photons.x[idx0], y=photons.y[idx0], flux = photons.flux[idx0], wavelength=lam) - # if k==0: - # sliceimage = galsim.Image(100,100) - # sliceimage.scale = pixelscale - # sliceimage.setOrigin(0,0) - # #image.setCenter(int(np.mean(photons.x)), int(np.mean(photons.y))) - - # rotphotons=galsim.PhotonArray(N=p_num, x=photons_2.x/pixelscale, y=photons_2.y/pixelscale, flux = photons_2.flux) - - # sensor = galsim.Sensor() - # sensor.accumulate(rotphotons, sliceimage) - # ######### finish testing ############################# - # ############################################################# # #################################### # find photons for blue channel, and make the flux multiple the optical and CCD efficiency @@ -5404,17 +5285,6 @@ class IFSsimulator(): ######################################################## - # ##################### test code ################################ - # ################################################################ - # fits.writeto('originalImg.fits',Nimg,overwrite=True) - # fits.writeto('PSFedImg.fits',temp,overwrite=True) - # fits.writeto('rotedphotonsImg.fits',image.array,overwrite=True) - # fits.writeto('newsub_rotedphotonsImg.fits',newimage.array,overwrite=True) - # fits.writeto('slicephotonsImg.fits',sliceimage.array,overwrite=True) - - # pause() - # ############################################################# - # ############## finish test code ########################### ##################################################################### # stray light will cover 2% of input total light; @@ -5430,10 +5300,10 @@ class IFSsimulator(): self.image_r = red_img.array obsid = simnumber - bluefile = self.result_path+'/original_sky/IFS_' + \ - self.source+'_'+str(obsid)+'_B.fits' - redfile = self.result_path+'/original_sky/IFS_' + \ - self.source+'_'+str(obsid)+'_R.fits' + bluefile = os.path.join(self.result_path,'original_sky/IFS_' + \ + self.source+'_'+str(obsid)+'_B.fits') + redfile = os.path.join(self.result_path,'original_sky/IFS_' + \ + self.source+'_'+str(obsid)+'_R.fits') fits.writeto(bluefile, blue_img.array, overwrite=True) fits.writeto(redfile, red_img.array, overwrite=True) @@ -5463,14 +5333,13 @@ class IFSsimulator(): # load HgAr data; if self.source == 'LAMP': - matfn3 = self.information['dir_path']+'IFS_inputdata/HgAr.mat' + matfn3 = os.path.join(self.information['dir_path'],'IFS_inputdata/HgAr.mat') self.log.info('lamp flux file is : %s' % (matfn3)) da3 = sio.loadmat(matfn3) HgArst = da3['HgArst'] # opd unit is in meter # load flat data if self.source == 'FLAT': - matfn3 = self.information['dir_path'] + \ - 'IFS_inputdata/flat_light.mat' + matfn3 = os.path.join(self.information['dir_path'],'IFS_inputdata/flat_light.mat') self.log.info('flat flux file is : %s' % (matfn3)) da3 = sio.loadmat(matfn3) flat_light = da3['flat_light'] # opd unit is in meter @@ -5639,7 +5508,7 @@ class IFSsimulator(): # print('time=',(end-start)) # consider the slice optical efficiency in different slicer channel da = fits.open( - self.information['dir_path']+'IFS_inputdata/Flatfield/slicer_QE230625.fits') + os.path.join(self.information['dir_path'],'IFS_inputdata/Flatfield/slicer_QE230625.fits')) slicer_Qe = da[0].data img0 = img0*slicer_Qe # ######### do the slice effect ################### @@ -5698,22 +5567,6 @@ class IFSsimulator(): p_num = len(idx0[0]) # ############################################################# - # ##### code for test slice is right or not ################## - ######################################################### - # photons_2=galsim.PhotonArray(N=p_num, x=photons.x[idx0], y=photons.y[idx0], flux = photons.flux[idx0], wavelength=lam) - # if k==0: - # sliceimage = galsim.Image(100,100) - # sliceimage.scale = pixelscale - # sliceimage.setOrigin(0,0) - # #image.setCenter(int(np.mean(photons.x)), int(np.mean(photons.y))) - - # rotphotons=galsim.PhotonArray(N=p_num, x=photons_2.x/pixelscale, y=photons_2.y/pixelscale, flux = photons_2.flux) - - # sensor = galsim.Sensor() - # sensor.accumulate(rotphotons, sliceimage) - # ######################## finish testing ####################################################### - # ###################################################################################################### - ##################################### # find photons for blue channel, and make the flux multiple the optical and CCD efficiency @@ -5769,10 +5622,11 @@ class IFSsimulator(): data_time = now.strftime("%Y-%m-%d") # write the actual file - bluefile = self.result_path+'/original_Calibration/IFS_'+self.source + \ - '_'+data_time+'_'+str(self.simnumber)+'_B_original.fits' - redfile = self.result_path+'/original_Calibration/IFS_'+self.source + \ - '_'+data_time+'_'+str(self.simnumber)+'_R_original.fits' + bluefile = os.path.join(self.result_path,'original_Calibration/IFS_'+self.source + \ + '_'+data_time+'_'+str(self.simnumber)+'_B_original.fits') + + redfile = os.path.join(self.result_path,'original_Calibration/IFS_'+self.source + \ + '_'+data_time+'_'+str(self.simnumber)+'_R_original.fits') fits.writeto(bluefile, blue_img.array, overwrite=True) fits.writeto(redfile, red_img.array, overwrite=True) @@ -5792,7 +5646,7 @@ class IFSsimulator(): newd = fits.HDUList([hdu1, hdu2]) - filename = self.result_path+'/calibration_Data/'+self.source+'_flux.fits' + filename = os.path.join(self.result_path,'calibration_Data/'+self.source+'_flux.fits') if self.simnumber == 1: newd.writeto(filename, overwrite=True) @@ -5861,8 +5715,7 @@ class IFSsimulator(): if simnumber <= 200 and simnumber > 150: self.information['exptime'] = 1200 - self.skyfilepath = self.information['dir_path'] + \ - self.information['sky_fitsin'] + self.skyfilepath = os.path.join(self.information['dir_path'],self.information['sky_fitsin']) print('self.skyfilepath = ', self.skyfilepath) @@ -5879,7 +5732,7 @@ class IFSsimulator(): ########################################## df = pd.read_csv( - self.information['dir_path']+'IFS_inputdata/TianCe/'+starcat) + os.path.join(self.information['dir_path'],'IFS_inputdata/TianCe/'+starcat)) ############################################################## sn = self.simnumber-1 @@ -5905,8 +5758,8 @@ class IFSsimulator(): # fn=father_path+'/IFS_inputdata/TianCe/orbit20160925/'+str(k)+'.txt'; - fn = self.information['dir_path'] + \ - 'IFS_inputdata/TianCe/orbit20160925/'+str(k)+'.txt' + fn = os.path.join(self.information['dir_path'], + 'IFS_inputdata/TianCe/orbit20160925/'+str(k)+'.txt') d = np.loadtxt(fn) for kk in range(len(d[:, 0])): @@ -5928,8 +5781,8 @@ class IFSsimulator(): else: - fn = self.information['dir_path'] + \ - 'IFS_inputdata/TianCe/orbit20160925/'+str(k+1)+'.txt' + fn = os.path.join(self.information['dir_path'] , + 'IFS_inputdata/TianCe/orbit20160925/'+str(k+1)+'.txt') d = np.loadtxt(fn) self.orbit_pars = d @@ -6164,20 +6017,15 @@ def runIFSsim(sourcein, configfile, dir_path, result_path, iLoop, debug, applyho simulate[iLoop] = IFSsimulator(configfile) simulate[iLoop].configure(sourcein, dir_path, result_path, - iLoop, debug, applyhole) # load the configfile; + iLoop, debug, applyhole) + # load the configfile; + simulate[iLoop].information['result_path'] = result_path if applyhole == 'yes' and sourcein == 'LAMP': simulate[iLoop].information['holemask'] = 'yes' else: simulate[iLoop].information['holemask'] = 'no' - # ## dir_path = os.path.join(os.environ['UNIT_TEST_DATA_ROOT'], 'ifs_sim/') - # simulate[iLoop].information['dir_path'] = dir_path - - # simulate[iLoop].information['debug'] = debug - - # simulate[iLoop].information['result_path'] = result_path - simulate[iLoop].simulate(sourcein, iLoop) return 1 diff --git a/csst_ifs_sim/ifs_so/__pycache__/__init__.cpython-311.pyc b/csst_ifs_sim/ifs_so/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d1d9996cff50952d5410d246911f3993f3aeba2b GIT binary patch literal 187 zcmZ3^%ge<81b267q=D$iAOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnFF*Z^{M=Oi z%EUZ<Pq$$G;>_IAoWzp+B7Hp&KR!LPL_fK>xFkL^tvDViiOK;B=Ih7DXXa&=#K-Fu mRQ}?y$<0qG%}KQ@Vg(uxazHUZkodsN$jJDC0Y(%t1H}L@nlDQL literal 0 HcmV?d00001 -- GitLab