Loading ObservationSim/Config/Header/ImageHeader.py +4 −3 Original line number Original line Diff line number Diff line Loading @@ -342,7 +342,7 @@ def WCS_def(xlen = 9216, ylen = 9232, gapy = 898.0, gapx1 = 534, gapx2 = 1309, r #TODO project_cycle is temporary, is not in header defined, delete in future #TODO project_cycle is temporary, is not in header defined, delete in future def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec = -40, pixel_scale = 0.074, date='200930', time_obs='120000', im_type = 'MS', exptime=150., sat_pos = [0.,0.,0.], sat_vel = [0., 0., 0.], project_cycle=6, run_counter=0, chip_name="01"): def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec = -40, pixel_scale = 0.074, date='200930', time_obs='120000', im_type = 'SCIE', exptime=150., sat_pos = [0.,0.,0.], sat_vel = [0., 0., 0.], project_cycle=6, run_counter=0, chip_name="01"): # array_size1, array_size2, flux, sigma = int(argv[1]), int(argv[2]), 1000.0, 5.0 # array_size1, array_size2, flux, sigma = int(argv[1]), int(argv[2]), 1000.0, 5.0 Loading Loading @@ -391,7 +391,8 @@ def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec # # Define file types # # Define file types # file_type = {'SCI':'SCIE', 'BIAS':'BIAS', 'DARK':'DARK', 'FLAT':'FLAT', 'CRS':'CRS', 'CRD':'CRD','CALS':'CALS','CALF':'CALF'} # file_type = {'SCI':'SCIE', 'BIAS':'BIAS', 'DARK':'DARK', 'FLAT':'FLAT', 'CRS':'CRS', 'CRD':'CRD','CALS':'CALS','CALF':'CALF'} # h_prim['FILETYPE'] = file_type[im_type] # h_prim['FILETYPE'] = file_type[im_type] h_prim['FILETYPE'] = get_file_type(img_type=im_type) # h_prim['FILETYPE'] = get_file_type(img_type=im_type) h_prim['FILETYPE'] = im_type co = coord.SkyCoord(ra, dec, unit='deg') co = coord.SkyCoord(ra, dec, unit='deg') Loading Loading @@ -450,7 +451,7 @@ def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec return h_prim return h_prim def generateExtensionHeader(chip, xlen = 9216, ylen = 9232,ra = 60, dec = -40, pa = -23.433, gain = 1.0, readout = 5.0, dark = 0.02, saturation=90000, pixel_scale = 0.074, pixel_size=1e-2, def generateExtensionHeader(chip, xlen = 9216, ylen = 9232,ra = 60, dec = -40, pa = -23.433, gain = 1.0, readout = 5.0, dark = 0.02, saturation=90000, pixel_scale = 0.074, pixel_size=1e-2, extName='SCI', row_num = None, col_num = None, xcen=None, ycen=None, timestamp = 1621915200,exptime = 150., readoutTime = 40.): extName='SCIE', row_num = None, col_num = None, xcen=None, ycen=None, timestamp = 1621915200,exptime = 150., readoutTime = 40.): e_header_fn = os.path.split(os.path.realpath(__file__))[0] + '/extension_header.header' e_header_fn = os.path.split(os.path.realpath(__file__))[0] + '/extension_header.header' f = open(os.path.split(os.path.realpath(__file__))[0] + '/filter.lst') f = open(os.path.split(os.path.realpath(__file__))[0] + '/filter.lst') Loading ObservationSim/Config/Pointing.py +12 −2 Original line number Original line Diff line number Diff line import numpy as np import numpy as np import galsim import galsim import yaml from astropy.time import Time from astropy.time import Time import ObservationSim.Instrument._util as _util import ObservationSim.Instrument._util as _util Loading Loading @@ -42,13 +43,13 @@ class Pointing(object): return max(150., self.exp_time) # [TODO] for FGS return max(150., self.exp_time) # [TODO] for FGS def read_pointing_columns(self, columns, id=0, t=1621915200, pointing_type='SCI'): def read_pointing_columns(self, columns, id=0, t=1621915200, pointing_type='SCIE'): self.id = id self.id = id col_len = len(columns) col_len = len(columns) self.ra = float(columns[0]) self.ra = float(columns[0]) self.dec = float(columns[1]) self.dec = float(columns[1]) self.img_pa = float(columns[4]) * galsim.degrees self.img_pa = float(columns[4]) * galsim.degrees self.pointing_type = pointing_type # self.pointing_type = pointing_type if col_len > 5: if col_len > 5: jdt = np.double(columns[5]) jdt = np.double(columns[5]) t_temp = Time(jdt, format='jd') t_temp = Time(jdt, format='jd') Loading @@ -68,5 +69,14 @@ class Pointing(object): # [TODO] Can also define other survey types # [TODO] Can also define other survey types if is_deep != -1.0: if is_deep != -1.0: self.survey_field_type = "DEEP" self.survey_field_type = "DEEP" # Load the configuration file for this particular pointing self.obs_config_file = "/share/home/fangyuedong/20231211/csst-simulation/config/obs_config_SCI_WIDE_phot.yaml" with open(self.obs_config_file, "r") as stream: try: self.obs_param = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc) self.pointing_type = self.obs_config_file["obs_type"] else: else: self.timestamp = t self.timestamp = t ObservationSim/Config/_util.py +2 −3 Original line number Original line Diff line number Diff line def get_obs_id(img_type='SCI', project_cycle=6, run_counter=0, pointing_num=0): def get_obs_id(img_type='SCIE', project_cycle=6, run_counter=0, pointing_num=0): # obs_type = {'SCI': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99'} # obs_type = {'SCI': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99'} obs_type = {'SCI': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99', 'CAL': '01'} obs_type = {'SCIE': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99', 'CAL': '01'} # obs_id = '1'+ obs_type[img_type] + str(int(project_cycle)) + str(int(run_counter)).rjust(2, '0') + str(pointing_num).rjust(5,'0') obs_id = '1'+ obs_type[img_type] + str(int(project_cycle)).rjust(2, '0') + str(int(run_counter)) + str(pointing_num).rjust(8,'0') obs_id = '1'+ obs_type[img_type] + str(int(project_cycle)).rjust(2, '0') + str(int(run_counter)) + str(pointing_num).rjust(8,'0') return obs_id return obs_id Loading ObservationSim/Instrument/Chip/ChipUtils.py +1 −1 Original line number Original line Diff line number Diff line Loading @@ -87,7 +87,7 @@ def generateHeader(chip, ra_cen, dec_cen, img_rot, im_type, pointing_ID, exptime pixel_size=chip.pix_size, pixel_size=chip.pix_size, xcen=chip.x_cen, xcen=chip.x_cen, ycen=chip.y_cen, ycen=chip.y_cen, extName='SCI', extName='SCIE', timestamp = timestamp, timestamp = timestamp, exptime = exptime, exptime = exptime, readoutTime = chip.readout_time) readoutTime = chip.readout_time) Loading ObservationSim/Instrument/FocalPlane.py +10 −3 Original line number Original line Diff line number Diff line Loading @@ -2,17 +2,24 @@ import galsim import numpy as np import numpy as np class FocalPlane(object): class FocalPlane(object): def __init__(self, config=None, survey_type='Photometric', bad_chips=None): def __init__(self, config=None, chip_list=None, survey_type='Photometric', bad_chips=None): """Get the focal plane layout """Get the focal plane layout """ """ self.nchips = 42 self.nchips = 42 self.ignore_chips = [] if bad_chips == None: if bad_chips == None: self.bad_chips = [] self.bad_chips = [] else: else: self.bad_chips = bad_chips self.bad_chips = bad_chips for chip_id in bad_chips: self.ignore_chips.append(chip_id) self.ignore_chips = [] if chip_list is not None: if survey_type == 'Photometric': for i in range(42): if not (i+1 in chip_list): self.ignore_chips.append(i+1) elif survey_type == 'Photometric': for i in range(5): for i in range(5): self.ignore_chips.append(i+1) self.ignore_chips.append(i+1) self.ignore_chips.append(i+26) self.ignore_chips.append(i+26) Loading Loading
ObservationSim/Config/Header/ImageHeader.py +4 −3 Original line number Original line Diff line number Diff line Loading @@ -342,7 +342,7 @@ def WCS_def(xlen = 9216, ylen = 9232, gapy = 898.0, gapx1 = 534, gapx2 = 1309, r #TODO project_cycle is temporary, is not in header defined, delete in future #TODO project_cycle is temporary, is not in header defined, delete in future def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec = -40, pixel_scale = 0.074, date='200930', time_obs='120000', im_type = 'MS', exptime=150., sat_pos = [0.,0.,0.], sat_vel = [0., 0., 0.], project_cycle=6, run_counter=0, chip_name="01"): def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec = -40, pixel_scale = 0.074, date='200930', time_obs='120000', im_type = 'SCIE', exptime=150., sat_pos = [0.,0.,0.], sat_vel = [0., 0., 0.], project_cycle=6, run_counter=0, chip_name="01"): # array_size1, array_size2, flux, sigma = int(argv[1]), int(argv[2]), 1000.0, 5.0 # array_size1, array_size2, flux, sigma = int(argv[1]), int(argv[2]), 1000.0, 5.0 Loading Loading @@ -391,7 +391,8 @@ def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec # # Define file types # # Define file types # file_type = {'SCI':'SCIE', 'BIAS':'BIAS', 'DARK':'DARK', 'FLAT':'FLAT', 'CRS':'CRS', 'CRD':'CRD','CALS':'CALS','CALF':'CALF'} # file_type = {'SCI':'SCIE', 'BIAS':'BIAS', 'DARK':'DARK', 'FLAT':'FLAT', 'CRS':'CRS', 'CRD':'CRD','CALS':'CALS','CALF':'CALF'} # h_prim['FILETYPE'] = file_type[im_type] # h_prim['FILETYPE'] = file_type[im_type] h_prim['FILETYPE'] = get_file_type(img_type=im_type) # h_prim['FILETYPE'] = get_file_type(img_type=im_type) h_prim['FILETYPE'] = im_type co = coord.SkyCoord(ra, dec, unit='deg') co = coord.SkyCoord(ra, dec, unit='deg') Loading Loading @@ -450,7 +451,7 @@ def generatePrimaryHeader(xlen = 9216, ylen = 9232, pointNum = '1', ra = 60, dec return h_prim return h_prim def generateExtensionHeader(chip, xlen = 9216, ylen = 9232,ra = 60, dec = -40, pa = -23.433, gain = 1.0, readout = 5.0, dark = 0.02, saturation=90000, pixel_scale = 0.074, pixel_size=1e-2, def generateExtensionHeader(chip, xlen = 9216, ylen = 9232,ra = 60, dec = -40, pa = -23.433, gain = 1.0, readout = 5.0, dark = 0.02, saturation=90000, pixel_scale = 0.074, pixel_size=1e-2, extName='SCI', row_num = None, col_num = None, xcen=None, ycen=None, timestamp = 1621915200,exptime = 150., readoutTime = 40.): extName='SCIE', row_num = None, col_num = None, xcen=None, ycen=None, timestamp = 1621915200,exptime = 150., readoutTime = 40.): e_header_fn = os.path.split(os.path.realpath(__file__))[0] + '/extension_header.header' e_header_fn = os.path.split(os.path.realpath(__file__))[0] + '/extension_header.header' f = open(os.path.split(os.path.realpath(__file__))[0] + '/filter.lst') f = open(os.path.split(os.path.realpath(__file__))[0] + '/filter.lst') Loading
ObservationSim/Config/Pointing.py +12 −2 Original line number Original line Diff line number Diff line import numpy as np import numpy as np import galsim import galsim import yaml from astropy.time import Time from astropy.time import Time import ObservationSim.Instrument._util as _util import ObservationSim.Instrument._util as _util Loading Loading @@ -42,13 +43,13 @@ class Pointing(object): return max(150., self.exp_time) # [TODO] for FGS return max(150., self.exp_time) # [TODO] for FGS def read_pointing_columns(self, columns, id=0, t=1621915200, pointing_type='SCI'): def read_pointing_columns(self, columns, id=0, t=1621915200, pointing_type='SCIE'): self.id = id self.id = id col_len = len(columns) col_len = len(columns) self.ra = float(columns[0]) self.ra = float(columns[0]) self.dec = float(columns[1]) self.dec = float(columns[1]) self.img_pa = float(columns[4]) * galsim.degrees self.img_pa = float(columns[4]) * galsim.degrees self.pointing_type = pointing_type # self.pointing_type = pointing_type if col_len > 5: if col_len > 5: jdt = np.double(columns[5]) jdt = np.double(columns[5]) t_temp = Time(jdt, format='jd') t_temp = Time(jdt, format='jd') Loading @@ -68,5 +69,14 @@ class Pointing(object): # [TODO] Can also define other survey types # [TODO] Can also define other survey types if is_deep != -1.0: if is_deep != -1.0: self.survey_field_type = "DEEP" self.survey_field_type = "DEEP" # Load the configuration file for this particular pointing self.obs_config_file = "/share/home/fangyuedong/20231211/csst-simulation/config/obs_config_SCI_WIDE_phot.yaml" with open(self.obs_config_file, "r") as stream: try: self.obs_param = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc) self.pointing_type = self.obs_config_file["obs_type"] else: else: self.timestamp = t self.timestamp = t
ObservationSim/Config/_util.py +2 −3 Original line number Original line Diff line number Diff line def get_obs_id(img_type='SCI', project_cycle=6, run_counter=0, pointing_num=0): def get_obs_id(img_type='SCIE', project_cycle=6, run_counter=0, pointing_num=0): # obs_type = {'SCI': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99'} # obs_type = {'SCI': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99'} obs_type = {'SCI': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99', 'CAL': '01'} obs_type = {'SCIE': '01', 'BIAS': '03', 'DARK': '07', 'FLAT': '11', 'CRS': '98', 'CRD': '99', 'CAL': '01'} # obs_id = '1'+ obs_type[img_type] + str(int(project_cycle)) + str(int(run_counter)).rjust(2, '0') + str(pointing_num).rjust(5,'0') obs_id = '1'+ obs_type[img_type] + str(int(project_cycle)).rjust(2, '0') + str(int(run_counter)) + str(pointing_num).rjust(8,'0') obs_id = '1'+ obs_type[img_type] + str(int(project_cycle)).rjust(2, '0') + str(int(run_counter)) + str(pointing_num).rjust(8,'0') return obs_id return obs_id Loading
ObservationSim/Instrument/Chip/ChipUtils.py +1 −1 Original line number Original line Diff line number Diff line Loading @@ -87,7 +87,7 @@ def generateHeader(chip, ra_cen, dec_cen, img_rot, im_type, pointing_ID, exptime pixel_size=chip.pix_size, pixel_size=chip.pix_size, xcen=chip.x_cen, xcen=chip.x_cen, ycen=chip.y_cen, ycen=chip.y_cen, extName='SCI', extName='SCIE', timestamp = timestamp, timestamp = timestamp, exptime = exptime, exptime = exptime, readoutTime = chip.readout_time) readoutTime = chip.readout_time) Loading
ObservationSim/Instrument/FocalPlane.py +10 −3 Original line number Original line Diff line number Diff line Loading @@ -2,17 +2,24 @@ import galsim import numpy as np import numpy as np class FocalPlane(object): class FocalPlane(object): def __init__(self, config=None, survey_type='Photometric', bad_chips=None): def __init__(self, config=None, chip_list=None, survey_type='Photometric', bad_chips=None): """Get the focal plane layout """Get the focal plane layout """ """ self.nchips = 42 self.nchips = 42 self.ignore_chips = [] if bad_chips == None: if bad_chips == None: self.bad_chips = [] self.bad_chips = [] else: else: self.bad_chips = bad_chips self.bad_chips = bad_chips for chip_id in bad_chips: self.ignore_chips.append(chip_id) self.ignore_chips = [] if chip_list is not None: if survey_type == 'Photometric': for i in range(42): if not (i+1 in chip_list): self.ignore_chips.append(i+1) elif survey_type == 'Photometric': for i in range(5): for i in range(5): self.ignore_chips.append(i+1) self.ignore_chips.append(i+1) self.ignore_chips.append(i+26) self.ignore_chips.append(i+26) Loading