Loading tools/get_PSF_SLS.py +27 −24 Original line number Diff line number Diff line Loading @@ -7,11 +7,13 @@ import astropy.io.fits as fitsio from observation_sim.instruments import Chip, FilterParam, Filter import galsim ## 计算 0级或1级光谱在某个波长位置的PSF, 返回值是过采样的PSF,像元大小有CSST图像像元大小的1/2 ## chipId 必须为[1,2,3,4,5,10,21,26,27,28,29,30] ## order 只有 0 或 1 ## pos_img 为直接成像在图像上的位置,[x, y] ## wave: 波长,单位A # 计算 0级或1级光谱在某个波长位置的PSF, 返回值是过采样的PSF,像元大小有CSST图像像元大小的1/2 # chipId 必须为[1,2,3,4,5,10,21,26,27,28,29,30] # order 只有 0 或 1 # pos_img 为直接成像在图像上的位置,[x, y] # wave: 波长,单位A def get_SLS_PSF(chipID=1, pos_img=[6000, 4000], order=1, wave=8000, sls_psf_dir='/nfsdata/share/CSSOSDataProductsSims/data/SLS_PSF_PCA_fp_cd/'): orders = {0: 'B', 1: 'A'} chip = Chip(chipID) Loading @@ -28,7 +30,6 @@ def get_SLS_PSF(chipID = 1,pos_img = [6000,4000], order = 1, wave = 8000, sls_ps bandNo = i + 1 break psf1, _ = psf_model.get_PSF( chip, pos_img_local=pos_img, bandNo=bandNo, galsimGSObject=False, g_order=orders[order]) fn = "psf.chip{:}.order{:}.wave{:}.fits".format(chipID, order, wave) Loading @@ -37,9 +38,11 @@ def get_SLS_PSF(chipID = 1,pos_img = [6000,4000], order = 1, wave = 8000, sls_ps hdu.header.set('pixScale', 5) hdu.writeto(fn, overwrite=True) ## 获得成像的PSF,PSF在波长区间分四段采样,返回4段的PSF,每个PSF代表不同band波长范围不同的四段psf,波长从小到大 ## chipId 必须为[6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25] ## pos_img 为直接成像在图像上的位置,[x, y] # 获得成像的PSF,PSF在波长区间分四段采样,返回4段的PSF,每个PSF代表不同band波长范围不同的四段psf,波长从小到大 # chipId 必须为[6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25] # pos_img 为直接成像在图像上的位置,[x, y] def getPSFImage(chipID=6, pos_img=[6000, 4500], psf_pho_dir="/nfsdata/share/CSSOSDataProductsSims/data/psfcube/set1_dynamic/"): chip = Chip(chipID=chipID) print('chip.bound::', chip.bound.xmin, chip.bound.xmax, Loading Loading @@ -79,6 +82,8 @@ def getPSFImage(chipID = 6, pos_img = [6000, 4500], psf_pho_dir = "/nfsdata/shar hdu.data = psf hdu.header.set('pixScale', 5) hdu.writeto(fn, overwrite=True) if __name__ == "__main__": chipid = 2 pos_img = [6000, 4500] Loading @@ -86,8 +91,6 @@ if __name__ == "__main__": w = 5000 get_SLS_PSF(chipID=chipid, pos_img=pos_img, order=order, wave=w) chipid = 7 pos_img = [6000, 4500] getPSFImage(chipID=chipid, pos_img=pos_img) Loading
tools/get_PSF_SLS.py +27 −24 Original line number Diff line number Diff line Loading @@ -7,11 +7,13 @@ import astropy.io.fits as fitsio from observation_sim.instruments import Chip, FilterParam, Filter import galsim ## 计算 0级或1级光谱在某个波长位置的PSF, 返回值是过采样的PSF,像元大小有CSST图像像元大小的1/2 ## chipId 必须为[1,2,3,4,5,10,21,26,27,28,29,30] ## order 只有 0 或 1 ## pos_img 为直接成像在图像上的位置,[x, y] ## wave: 波长,单位A # 计算 0级或1级光谱在某个波长位置的PSF, 返回值是过采样的PSF,像元大小有CSST图像像元大小的1/2 # chipId 必须为[1,2,3,4,5,10,21,26,27,28,29,30] # order 只有 0 或 1 # pos_img 为直接成像在图像上的位置,[x, y] # wave: 波长,单位A def get_SLS_PSF(chipID=1, pos_img=[6000, 4000], order=1, wave=8000, sls_psf_dir='/nfsdata/share/CSSOSDataProductsSims/data/SLS_PSF_PCA_fp_cd/'): orders = {0: 'B', 1: 'A'} chip = Chip(chipID) Loading @@ -28,7 +30,6 @@ def get_SLS_PSF(chipID = 1,pos_img = [6000,4000], order = 1, wave = 8000, sls_ps bandNo = i + 1 break psf1, _ = psf_model.get_PSF( chip, pos_img_local=pos_img, bandNo=bandNo, galsimGSObject=False, g_order=orders[order]) fn = "psf.chip{:}.order{:}.wave{:}.fits".format(chipID, order, wave) Loading @@ -37,9 +38,11 @@ def get_SLS_PSF(chipID = 1,pos_img = [6000,4000], order = 1, wave = 8000, sls_ps hdu.header.set('pixScale', 5) hdu.writeto(fn, overwrite=True) ## 获得成像的PSF,PSF在波长区间分四段采样,返回4段的PSF,每个PSF代表不同band波长范围不同的四段psf,波长从小到大 ## chipId 必须为[6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25] ## pos_img 为直接成像在图像上的位置,[x, y] # 获得成像的PSF,PSF在波长区间分四段采样,返回4段的PSF,每个PSF代表不同band波长范围不同的四段psf,波长从小到大 # chipId 必须为[6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25] # pos_img 为直接成像在图像上的位置,[x, y] def getPSFImage(chipID=6, pos_img=[6000, 4500], psf_pho_dir="/nfsdata/share/CSSOSDataProductsSims/data/psfcube/set1_dynamic/"): chip = Chip(chipID=chipID) print('chip.bound::', chip.bound.xmin, chip.bound.xmax, Loading Loading @@ -79,6 +82,8 @@ def getPSFImage(chipID = 6, pos_img = [6000, 4500], psf_pho_dir = "/nfsdata/shar hdu.data = psf hdu.header.set('pixScale', 5) hdu.writeto(fn, overwrite=True) if __name__ == "__main__": chipid = 2 pos_img = [6000, 4500] Loading @@ -86,8 +91,6 @@ if __name__ == "__main__": w = 5000 get_SLS_PSF(chipID=chipid, pos_img=pos_img, order=order, wave=w) chipid = 7 pos_img = [6000, 4500] getPSFImage(chipID=chipid, pos_img=pos_img)