Commit 31c306af authored by Fang Yuedong's avatar Fang Yuedong
Browse files

Merge branch 'master' into 'release_v3.0'

release v3.3.0

See merge request !35
parents b7e4e575 2022bb95
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
# CSST主巡天仿真软件

## 重要更新或问题修复:
* 2025.07.10: 针对1000平方度宽场及50平方度深场仿真,更新至v3.3版本,内容包括:
    * 根据最新实测结果,更新部分探测器参数
    * 加入光谱PSF、LED图像获取工具
    * 更新光谱分光文件
    * 更新系统效率曲线
    * 更新头文件关键字
    * 在config中加入data_set关键字
* 2025.05.21: 更新至v3.2版本,内容包括:
    * 加入亮星PSF外插模块
    * 加入串扰模块
+4 −4
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
#
#  Configuration file for CSST simulation
#           Overall settings
#  CSST-Sim Group, 2024/01/08
#  CSST-Sim Group, 2025/06/18
#
###############################################

@@ -12,10 +12,10 @@
# ok to pass either way or both, as long as they are consistent
work_dir: "/public/home/fangyuedong/project/workplace/"
run_name: "ext_on"
data_set: "csst-msc-c9-25sqdeg-v_test"
data_set: "csst-msc-c11-1000sqdeg-wide-v1"

# Project cycle and run counter are used to name the outputs
project_cycle: 9
project_cycle: 11
run_counter: 1

# Run options
+2 −2
Original line number Diff line number Diff line
@@ -68,8 +68,8 @@ class Observation(object):
            chip.shutter_img = np.ones_like(chip.img.array)
        else:
            chip.shutter_img = effects.ShutterEffectArr(
                chip.img, t_exp=pointing.exp_time, t_shutter=1.3, dist_bearing=735, dt=1E-3)
        chip.prnu_img = effects.PRNU_Img(xsize=chip.npix_x, ysize=chip.npix_y, sigma=0.01,
                chip.img, t_exp=pointing.exp_time, t_shutter=1.5, dist_bearing=735, dt=1E-3)
        chip.prnu_img = effects.PRNU_Img(xsize=chip.npix_x, ysize=chip.npix_y, sigma=0.007,
                                         seed=int(self.config["random_seeds"]["seed_prnu"]+chip.chipID))

        return chip
+3 −1
Original line number Diff line number Diff line
@@ -26,9 +26,11 @@ class ChipOutput(object):
            im_type=pointing.pointing_type,
            sat_pos=[pointing.sat_x, pointing.sat_y, pointing.sat_z],
            sat_vel=[pointing.sat_vx, pointing.sat_vy, pointing.sat_vz],
            pa=(pointing.img_pa.deg + 180) % 360 - 180,
            project_cycle=self.config["project_cycle"],
            run_counter=self.config["run_counter"],
            chip_name=self.chip_label,
            obstype=pointing.pointing_type,
            dataset=pointing.dataset)

        obs_id = _util.get_obs_id(img_type=self.pointing_type, project_cycle=config["project_cycle"], run_counter=config[
@@ -71,7 +73,7 @@ class ChipOutput(object):
        self.hdr += additional_column_names

    def create_output_file(self):
        if self.pointing_type == 'SCI':
        if self.pointing_type == 'WIDE' or self.pointing_type == 'DEEP':
            self.cat = open(os.path.join(self.subdir, self.cat_name), "w")
            self.logger.info("Creating catalog file %s ...\n" %
                             (os.path.join(self.subdir, self.cat_name)))
+6 −3
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ import observation_sim.instruments._util as _util


class Pointing(object):
    def __init__(self, id=0, ra=0., dec=0., img_pa=0., timestamp=1621915200, sat_x=0., sat_y=0., sat_z=0., sun_x=0., sun_y=0., sun_z=0., sat_vx=0., sat_vy=0., sat_vz=0., exp_time=150., pointing_type='SCI', pointing_type_code='101', pointing_id='00000001', obs_config_file=None, t_shutter_open=1.3, t_shutter_close=1.3, dataset='csst-msc-c9-25sqdeg-v3'):
    def __init__(self, id=0, ra=0., dec=0., img_pa=0., timestamp=1621915200, sat_x=0., sat_y=0., sat_z=0., sun_x=0., sun_y=0., sun_z=0., sat_vx=0., sat_vy=0., sat_vz=0., exp_time=150., pointing_type='WIDE', pointing_type_code='101', pointing_id='00000001', obs_config_file=None, t_shutter_open=1.3, t_shutter_close=1.3, dataset='csst-msc-c9-25sqdeg-v3'):
        self.id = id
        self.ra = ra
        self.dec = dec
@@ -91,6 +91,9 @@ class Pointing(object):
            # [TODO] Can also define other survey types
            if is_deep == 2:
                self.survey_field_type = "DEEP"
                self.pointing_type = "DEEP"
            else:
                self.pointing_type = "WIDE"

            if not self.obs_config_file:
                self.obs_config_file = str(columns[20])
@@ -102,7 +105,7 @@ class Pointing(object):

            self.pointing_type_code = columns[21][0:3]
            self.obs_id = columns[21][3:]

            if self.obs_param["obs_type"]:
                self.pointing_type = self.obs_param["obs_type"]
        else:
            self.timestamp = t
Loading