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 Original line Diff line number Diff line
@@ -70,8 +70,7 @@ def get_star_cat(ra_pointing, dec_pointing):
class Catalog(CatalogBase):
class Catalog(CatalogBase):
    def __init__(self, config, chip, pointing, chip_output, filt, **kwargs):
    def __init__(self, config, chip, pointing, chip_output, filt, **kwargs):
        super().__init__()
        super().__init__()
        self.cat_dir = os.path.join(config["data_dir"], config["catalog_options"]["input_path"]["cat_dir"])
        self.cat_dir = config["catalog_options"]["input_path"]["cat_dir"]
        # self.seed_Av = config["catalog_options"]["seed_Av"]


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


@@ -92,20 +91,19 @@ class Catalog(CatalogBase):
            # Get the cloest star catalog file
            # Get the cloest star catalog file
            star_file_name = get_star_cat(ra_pointing=self.pointing.ra, dec_pointing=self.pointing.dec)
            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_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_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()
            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"]:
        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"]
            galaxy_dir = config["catalog_options"]["input_path"]["galaxy_cat"]
            self.galaxy_path = os.path.join(self.cat_dir, galaxy_dir)
            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._load_SED_lib_gals()
            self.agn_seds = {}
            self.agn_seds = {}


        if "AGN_SED" in config["catalog_options"]["SED_templates_path"] and not config["catalog_options"]["star_only"]:
        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"]:
        if "rotateEll" in config["catalog_options"]:
            self.rotation = np.radians(float(config["catalog_options"]["rotateEll"]))
            self.rotation = np.radians(float(config["catalog_options"]["rotateEll"]))
+11 −7
Original line number Original line 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
        path_dict["work_dir"] = work_dir
    
    
    # Data directory
    # Data directory
    if data_dir == None:
    # if data_dir == None:
        # Assume all input datasets are in the work directory
    #     # Assume all input datasets are in the work directory
        path_dict["data_dir"] =os.path.join(path_dict["work_dir"], "data/")
    #     path_dict["data_dir"] =os.path.join(path_dict["work_dir"], "data/")
    else:
    # else:
        path_dict["data_dir"] = data_dir
    #     path_dict["data_dir"] = data_dir
    
    # PSF data directory
    # 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":
    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_pho_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_sls_dir"] = config["psf_setting"]["psf_sls_dir"]


    return path_dict
    return path_dict


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


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


class Pointing(object):
class Pointing(object):
@@ -103,3 +106,32 @@ class Pointing(object):
            self.pointing_type = self.obs_param["obs_type"]
            self.pointing_type = self.obs_param["obs_type"]
        else:
        else:
            self.timestamp = t
            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 Original line 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 import Telescope, Filter, FilterParam, FocalPlane, Chip
from ObservationSim.Instrument.Chip import Effects
from ObservationSim.Instrument.Chip import Effects
from ObservationSim.Instrument.Chip import ChipUtils as chip_utils
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.Astrometry.Astrometry_util import on_orbit_obs_position
from ObservationSim.sim_steps import SimSteps, SIM_STEP_TYPES
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)
        sim_steps = SimSteps(overall_config=self.config, chip_output=chip_output, all_filters=self.all_filters)


        for step in pointing.obs_param["call_sequence"]:
        for step in pointing.obs_param["call_sequence"]:
            print(step)
            if self.config["run_option"]["out_cat_only"]:
            if self.config["run_option"]["out_cat_only"]:
                if step != "scie_obs":
                if step != "scie_obs":
                    continue
                    continue
@@ -268,6 +267,9 @@ class Observation(object):
            # Construct chips & filters:
            # Construct chips & filters:
            pointing = pointing_list[ipoint]
            pointing = pointing_list[ipoint]
            pointing_ID = pointing.id
            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"])
            self.focal_plane = FocalPlane(chip_list=pointing.obs_param["run_chips"])
            # Make Chip & Filter lists
            # Make Chip & Filter lists
            self.chip_list = []
            self.chip_list = []
@@ -310,8 +312,6 @@ class Observation(object):
                        continue
                        continue
                pid = os.getpid()
                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]
                chip = run_chips[ichip]
                filt = run_filts[ichip]
                filt = run_filts[ichip]
                # chip_output.Log_info("running pointing#%d, chip#%d, at PID#%d..."%(pointing_ID, chip.chipID, pid))
                # chip_output.Log_info("running pointing#%d, chip#%d, at PID#%d..."%(pointing_ID, chip.chipID, pid))
+7 −3
Original line number Original line Diff line number Diff line
@@ -37,8 +37,12 @@ def generate_pointing_list(config, pointing_filename=None, data_dir=None):
    else:
    else:
        obs_config_file = None
        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)
            pointing_file = os.path.join(data_dir, pointing_filename)
        else:
            pointing_file = pointing_filename
        f = open(pointing_file, 'r')
        f = open(pointing_file, 'r')
        # for _ in range(1):
        # for _ in range(1):
        #     header = f.readline()
        #     header = f.readline()
@@ -93,7 +97,7 @@ def make_run_dirs(work_dir, run_name, pointing_list):
            pass
            pass
    return imgDir
    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"])
    imgDir = os.path.join(path_dict["work_dir"], config["run_name"])
    if not os.path.exists(imgDir):
    if not os.path.exists(imgDir):
        try:
        try:
Loading