Commit 99b0497b authored by Fang Yuedong's avatar Fang Yuedong
Browse files

modified logic for defining exptime: use exptime defined in pointing as default

remove pointing_dir, data_dir in overall_config
parent 3da3cb66
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -70,8 +70,7 @@ def get_star_cat(ra_pointing, dec_pointing):
class Catalog(CatalogBase):
    def __init__(self, config, chip, pointing, chip_output, filt, **kwargs):
        super().__init__()
        self.cat_dir = os.path.join(config["data_dir"], config["catalog_options"]["input_path"]["cat_dir"])
        # self.seed_Av = config["catalog_options"]["seed_Av"]
        self.cat_dir = config["catalog_options"]["input_path"]["cat_dir"]

        self.cosmo = FlatLambdaCDM(H0=67.66, Om0=0.3111)

@@ -92,20 +91,19 @@ class Catalog(CatalogBase):
            # Get the cloest star catalog file
            star_file_name = get_star_cat(ra_pointing=self.pointing.ra, dec_pointing=self.pointing.dec)
            star_path = os.path.join(config["catalog_options"]["input_path"]["star_cat"], star_file_name)
            star_SED_file = config["catalog_options"]["SED_templates_path"]["star_SED"]
            self.star_path = os.path.join(self.cat_dir, star_path)
            self.star_SED_path = os.path.join(config["data_dir"], star_SED_file)
            self.star_SED_path = config["catalog_options"]["SED_templates_path"]["star_SED"]
            self._load_SED_lib_star()
        
        if "galaxy_cat" in config["catalog_options"]["input_path"] and config["catalog_options"]["input_path"]["galaxy_cat"] and not config["catalog_options"]["star_only"]:
            galaxy_dir = config["catalog_options"]["input_path"]["galaxy_cat"]
            self.galaxy_path = os.path.join(self.cat_dir, galaxy_dir)
            self.galaxy_SED_path = os.path.join(config["data_dir"], config["catalog_options"]["SED_templates_path"]["galaxy_SED"])
            self.galaxy_SED_path = config["catalog_options"]["SED_templates_path"]["galaxy_SED"]
            self._load_SED_lib_gals()
            self.agn_seds = {}

        if "AGN_SED" in config["catalog_options"]["SED_templates_path"] and not config["catalog_options"]["star_only"]:
            self.AGN_SED_path = os.path.join(config["data_dir"], config["catalog_options"]["SED_templates_path"]["AGN_SED"])
            self.AGN_SED_path = config["catalog_options"]["SED_templates_path"]["AGN_SED"]

        if "rotateEll" in config["catalog_options"]:
            self.rotation = np.radians(float(config["catalog_options"]["rotateEll"]))
+11 −7
Original line number Diff line number Diff line
@@ -12,15 +12,19 @@ def config_dir(config, work_dir=None, data_dir=None):
        path_dict["work_dir"] = work_dir
    
    # Data directory
    if data_dir == None:
        # Assume all input datasets are in the work directory
        path_dict["data_dir"] =os.path.join(path_dict["work_dir"], "data/")
    else:
        path_dict["data_dir"] = data_dir
    # if data_dir == None:
    #     # Assume all input datasets are in the work directory
    #     path_dict["data_dir"] =os.path.join(path_dict["work_dir"], "data/")
    # else:
    #     path_dict["data_dir"] = data_dir
    
    # PSF data directory
    # if config["psf_setting"]["psf_model"] == "Interp":
    #     path_dict["psf_pho_dir"] = os.path.join(path_dict["data_dir"], config["psf_setting"]["psf_pho_dir"])
    #     path_dict["psf_sls_dir"] = os.path.join(path_dict["data_dir"], config["psf_setting"]["psf_sls_dir"])
    if config["psf_setting"]["psf_model"] == "Interp":
        path_dict["psf_pho_dir"] = os.path.join(path_dict["data_dir"], config["psf_setting"]["psf_pho_dir"])
        path_dict["psf_sls_dir"] = os.path.join(path_dict["data_dir"], config["psf_setting"]["psf_sls_dir"])
        path_dict["psf_pho_dir"] = config["psf_setting"]["psf_pho_dir"]
        path_dict["psf_sls_dir"] = config["psf_setting"]["psf_sls_dir"]

    return path_dict

+34 −2
Original line number Diff line number Diff line
import numpy as np
import galsim
import os
import shutil
import yaml
import galsim
import numpy as np
from astropy.time import Time

from ObservationSim.Config._util import get_obs_id
import ObservationSim.Instrument._util as _util

class Pointing(object):
@@ -103,3 +106,32 @@ class Pointing(object):
            self.pointing_type = self.obs_param["obs_type"]
        else:
            self.timestamp = t

    def make_output_pointing_dir(self, overall_config, pointing_ID=0, copy_obs_config=False):
        run_dir = os.path.join(overall_config["work_dir"], overall_config["run_name"])
        if not os.path.exists(run_dir):
            try:
                os.makedirs(run_dir, exist_ok=True)
            except OSError:
                pass
        # self.prefix = "MSC_" + str(pointing_ID).rjust(8, '0')
        self.output_prefix = get_obs_id(
            img_type=self.pointing_type, 
            project_cycle=overall_config["project_cycle"], 
            run_counter=overall_config["run_counter"], 
            pointing_id=self.obs_id, 
            pointing_type_code = self.pointing_type_code)
        self.output_dir = os.path.join(run_dir, self.output_prefix)
        if not os.path.exists(self.output_dir):
            try:
                os.makedirs(self.output_dir, exist_ok=True)
            except OSError:
                pass
        if copy_obs_config and self.obs_config_file:
            obs_config_output_path = os.path.join(self.output_dir, os.path.basename(self.obs_config_file))
            if not os.path.exists(obs_config_output_path):
                try:
                    shutil.copy(args.obs_config_file, self.output_dir)
                except OSError:
                    pass
+4 −4
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ from ObservationSim.Config import config_dir, ChipOutput
from ObservationSim.Instrument import Telescope, Filter, FilterParam, FocalPlane, Chip
from ObservationSim.Instrument.Chip import Effects
from ObservationSim.Instrument.Chip import ChipUtils as chip_utils
from ObservationSim._util import makeSubDir_PointingList
from ObservationSim._util import make_output_pointing_dir
from ObservationSim.Astrometry.Astrometry_util import on_orbit_obs_position
from ObservationSim.sim_steps import SimSteps, SIM_STEP_TYPES

@@ -99,7 +99,6 @@ class Observation(object):
        sim_steps = SimSteps(overall_config=self.config, chip_output=chip_output, all_filters=self.all_filters)

        for step in pointing.obs_param["call_sequence"]:
            print(step)
            if self.config["run_option"]["out_cat_only"]:
                if step != "scie_obs":
                    continue
@@ -268,6 +267,9 @@ class Observation(object):
            # Construct chips & filters:
            pointing = pointing_list[ipoint]
            pointing_ID = pointing.id

            sub_img_dir, prefix = make_output_pointing_dir(path_dict=self.path_dict, config=self.config, pointing_ID=pointing_ID)

            self.focal_plane = FocalPlane(chip_list=pointing.obs_param["run_chips"])
            # Make Chip & Filter lists
            self.chip_list = []
@@ -310,8 +312,6 @@ class Observation(object):
                        continue
                pid = os.getpid()

                sub_img_dir, prefix = makeSubDir_PointingList(path_dict=self.path_dict, config=self.config, pointing_ID=pointing_ID)

                chip = run_chips[ichip]
                filt = run_filts[ichip]
                # chip_output.Log_info("running pointing#%d, chip#%d, at PID#%d..."%(pointing_ID, chip.chipID, pid))
+7 −3
Original line number Diff line number Diff line
@@ -37,8 +37,12 @@ def generate_pointing_list(config, pointing_filename=None, data_dir=None):
    else:
        obs_config_file = None
    
    if pointing_filename and data_dir:
    # if pointing_filename and data_dir:
    if pointing_filename:
        if data_dir:
            pointing_file = os.path.join(data_dir, pointing_filename)
        else:
            pointing_file = pointing_filename
        f = open(pointing_file, 'r')
        # for _ in range(1):
        #     header = f.readline()
@@ -93,7 +97,7 @@ def make_run_dirs(work_dir, run_name, pointing_list):
            pass
    return imgDir

def makeSubDir_PointingList(path_dict, config, pointing_ID=0):
def make_output_pointing_dir(path_dict, config, pointing_ID=0):
    imgDir = os.path.join(path_dict["work_dir"], config["run_name"])
    if not os.path.exists(imgDir):
        try:
Loading