Loading Catalog/C3Catalog.py +47 −10 Original line number Diff line number Diff line Loading @@ -8,14 +8,16 @@ import astropy.constants as cons from astropy.coordinates import spherical_to_cartesian from astropy.table import Table from scipy import interpolate from datetime import datetime from ObservationSim.MockObject import CatalogBase, Star, Galaxy, Quasar from ObservationSim.MockObject._util import seds, sed_assign, extAv, tag_sed, getObservedSED from ObservationSim.Astrometry.Astrometry_util import on_orbit_obs_position NSIDE = 128 class C3Catalog(CatalogBase): def __init__(self, config, chip, **kwargs): def __init__(self, config, chip, pointing, **kwargs): super().__init__() self.cat_dir = os.path.join(config["data_dir"], config["input_path"]["cat_dir"]) self.seed_Av = config["random_seeds"]["seed_Av"] Loading @@ -24,7 +26,9 @@ class C3Catalog(CatalogBase): self.normF_star = Table.read(os.path.join(self.normalize_dir, 'SLOAN_SDSS.g.fits')) self.normF_galaxy = Table.read(os.path.join(self.normalize_dir, 'lsst_throuput_g.fits')) self.config = config self.chip = chip self.pointing = pointing if "star_cat" in config["input_path"] and config["input_path"]["star_cat"]: star_file = config["input_path"]["star_cat"] Loading Loading @@ -77,6 +81,11 @@ class C3Catalog(CatalogBase): param = self.initialize_param() param['ra'] = gals['ra_true'][igals] param['dec'] = gals['dec_true'][igals] if not self.chip.isContainObj(ra_obj=param['ra'], dec_obj=param['dec'], margin=200): continue param['mag_use_normal'] = gals['mag_true_g_lsst'][igals] if param['mag_use_normal'] >= 26.5: continue param['z'] = gals['redshift_true'][igals] param['model_tag'] = 'None' param['gamma1'] = 0 Loading @@ -84,10 +93,10 @@ class C3Catalog(CatalogBase): param['kappa'] = 0 param['delta_ra'] = 0 param['delta_dec'] = 0 sersicB = gals['sersic_bulge'][igals] # sersicB = gals['sersic_bulge'][igals] hlrMajB = gals['size_bulge_true'][igals] hlrMinB = gals['size_minor_bulge_true'][igals] sersicD = gals['sersic_disk'][igals] # sersicD = gals['sersic_disk'][igals] hlrMajD = gals['size_disk_true'][igals] hlrMinD = gals['size_minor_disk_true'][igals] aGal = gals['size_true'][igals] Loading @@ -112,11 +121,6 @@ class C3Catalog(CatalogBase): param['av'] = 0.6 * param['av'] / 3.0 # for quasar, av=[0, 0.2], 3.0=av.max-av.im param['star'] = 2 # Quasar if not self.chip.isContainObj(ra_obj=param['ra'], dec_obj=param['dec'], margin=200): continue param['mag_use_normal'] = gals['mag_true_g_lsst'][igals] if param['mag_use_normal'] >= 26.5: continue self.ids += 1 param['id'] = self.ids Loading @@ -129,10 +133,43 @@ class C3Catalog(CatalogBase): def _load_stars(self, stars, pix_id=None): nstars = len(stars['sourceID']) # Apply astrometric modeling ra_arr = stars["RA"][:] dec_arr = stars["Dec"][:] if "astrometric_lib" in self.config["obs_setting"] and self.config["obs_setting"]["enable_astrometric_model"]: ra_list = ra_arr.tolist() dec_list = dec_arr.tolist() pmra_list = np.zeros(nstars).tolist() pmdec_list = np.zeros(nstars).tolist() rv_list = np.zeros(nstars).tolist() parallax_list = [1e-9] * nstars lib_path = os.path.join(self.config["data_dir"], self.config["obs_setting"]["astrometric_lib"]) dt = datetime.fromtimestamp(self.pointing.timestamp) date_str = dt.date().isoformat() time_str = dt.time().isoformat() ra_arr, dec_arr = on_orbit_obs_position( input_ra_list=ra_list, input_dec_list=dec_list, input_pmra_list=pmra_list, input_pmdec_list=pmdec_list, input_rv_list=rv_list, input_parallax_list=parallax_list, input_nstars=nstars, input_x=self.pointing.sat_x, input_y=self.pointing.sat_y, input_z=self.pointing.sat_z, input_vx=self.pointing.sat_vx, input_vy=self.pointing.sat_vy, input_vz=self.pointing.sat_vz, input_epoch="J2015.5", input_date_str=date_str, input_time_str=time_str, lib_path=lib_path ) for istars in range(nstars): param = self.initialize_param() param['ra'] = stars['RA'][istars] param['dec'] = stars['Dec'][istars] param['ra'] = ra_arr[istars] param['dec'] = dec_arr[istars] if not self.chip.isContainObj(ra_obj=param['ra'], dec_obj=param['dec'], margin=200): continue param['mag_use_normal'] = stars['app_sdss_g'][istars] Loading Catalog/Catalog_example.py +2 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ class Catalog_example(CatalogBase): load the filter throughput for the input catalog's photometric system. """ def __init__(self, config, chip, **kwargs): def __init__(self, config, chip, pointing, **kwargs): """Constructor method. Parameters Loading @@ -54,6 +54,7 @@ class Catalog_example(CatalogBase): super().__init__() self.cat_dir = os.path.join(config["data_dir"], config["input_path"]["cat_dir"]) self.chip = chip self.pointing = pointing if "star_cat" in config["input_path"] and config["input_path"]["star_cat"]: star_file = config["input_path"]["star_cat"] star_SED_file = config["SED_templates_path"]["star_SED"] Loading ObservationSim/Astrometry/Astrometry_util.py 0 → 100644 +124 −0 Original line number Diff line number Diff line from ctypes import * import numpy as np def checkInputList(input_list, n): if not isinstance(input_list, list): raise TypeError("Input type is not list!", input_list) for i in input_list: if type(i) != type(1.1): if type(i) != type(1): raise TypeError("Input list's element is not float or int!", input_list) if len(input_list) != n: raise RuntimeError("Length of input list is not equal to stars' number!", input_list) def on_orbit_obs_position(input_ra_list, input_dec_list, input_pmra_list, input_pmdec_list, input_rv_list, input_parallax_list, input_nstars, input_x, input_y, input_z, input_vx, input_vy, input_vz, input_epoch, input_date_str, input_time_str, lib_path): #Check input parameters if not isinstance(input_nstars, int): raise TypeError("Parameter 7 is not int!", input_nstars) checkInputList(input_ra_list, input_nstars) checkInputList(input_dec_list, input_nstars) checkInputList(input_pmra_list, input_nstars) checkInputList(input_pmdec_list, input_nstars) checkInputList(input_rv_list, input_nstars) checkInputList(input_parallax_list, input_nstars) if not isinstance(input_x, float): raise TypeError("Parameter 8 is not double!", input_x) if not isinstance(input_y, float): raise TypeError("Parameter 9 is not double!", input_y) if not isinstance(input_z, float): raise TypeError("Parameter 10 is not double!", input_z) if not isinstance(input_vx, float): raise TypeError("Parameter 11 is not double!", input_vx) if not isinstance(input_vy, float): raise TypeError("Parameter 12 is not double!", input_vy) if not isinstance(input_vz, float): raise TypeError("Parameter 13 is not double!", input_vz) #Convert km -> m input_x = input_x*1000.0 input_y = input_y*1000.0 input_z = input_z*1000.0 input_vx = input_vx*1000.0 input_vy = input_vy*1000.0 input_vz = input_vz*1000.0 if not isinstance(input_date_str, str): raise TypeError("Parameter 15 is not string!", input_date_str) else: input_date_str = input_date_str.strip() if not (input_date_str[4]=="-" and input_date_str[7]=="-"): raise TypeError("Parameter 15 format error (1)!", input_date_str) else: tmp = input_date_str.split("-") if len(tmp) != 3: raise TypeError("Parameter 15 format error (2)!", input_date_str) input_year = int(tmp[0]) input_month = int(tmp[1]) input_day = int(tmp[2]) if not (input_year>=1900 and input_year<=2100): raise TypeError("Parameter 15 year range error [1900 ~ 2100]!", input_year) if not (input_month>=1 and input_month<=12): raise TypeError("Parameter 15 month range error [1 ~ 12]!", input_month) if not (input_day>=1 and input_day<=31): raise TypeError("Parameter 15 day range error [1 ~ 31]!", input_day) if not isinstance(input_time_str, str): raise TypeError("Parameter 16 is not string!", input_time_str) else: input_time_str = input_time_str.strip() if not (input_time_str[2]==":" and input_time_str[5]==":"): raise TypeError("Parameter 16 format error (1)!", input_time_str) else: tmp = input_time_str.split(":") if len(tmp) != 3: raise TypeError("Parameter 16 format error (2)!", input_time_str) input_hour = int(tmp[0]) input_minute = int(tmp[1]) input_second = float(tmp[2]) if not (input_hour>=0 and input_hour<=23): raise TypeError("Parameter 16 hour range error [0 ~ 23]!", input_hour) if not (input_minute>=0 and input_minute<=59): raise TypeError("Parameter 16 minute range error [0 ~ 59]!", input_minute) if not (input_second>=0 and input_second<60.0): raise TypeError("Parameter 16 second range error [0 ~ 60)!", input_second) #Inital dynamic lib shao = cdll.LoadLibrary(lib_path) shao.onOrbitObs.restype = c_int d3 = c_double * 3 shao.onOrbitObs.argtypes = [c_double, c_double, c_double, c_double, c_double, c_double, \ c_int, c_int, c_int, c_int, c_int, c_double, \ c_double, POINTER(d3), POINTER(d3), \ c_int, c_int, c_int, c_int, c_int, c_double, \ POINTER(c_double), POINTER(c_double) ] output_ra_list = list() output_dec_list = list() for i in range(input_nstars): input_ra = c_double(input_ra_list[i]) input_dec = c_double(input_dec_list[i]) input_pmra = c_double(input_pmra_list[i]) input_pmdec = c_double(input_pmdec_list[i]) input_rv = c_double(input_rv_list[i]) input_parallax = c_double(input_parallax_list[i]) p3 = d3(input_x, input_y, input_z) v3 = d3(input_vx, input_vy, input_vz) input_year_c = c_int(input_year) input_month_c = c_int(input_month) input_day_c = c_int(input_day) input_hour_c = c_int(input_hour) input_minute_c = c_int(input_minute) input_second_c = c_double(input_second) DAT = c_double(37.0) output_ra = c_double(0.0) output_dec = c_double(0.0) rs = shao.onOrbitObs(input_ra, input_dec, input_pmra, input_pmdec, input_rv, input_parallax, \ input_year_c, input_month_c, input_day_c, input_hour_c, input_minute_c, input_second_c, \ DAT, byref(p3), byref(v3), \ input_year_c, input_month_c, input_day_c, input_hour_c, input_minute_c, input_second_c, \ byref(output_ra), byref(output_dec)) if rs != 0: raise RuntimeError("Calculate error!") output_ra_list.append(output_ra.value) output_dec_list.append(output_dec.value) return np.array(output_ra_list), np.array(output_dec_list) ObservationSim/Astrometry/__init__.py 0 → 100644 +0 −0 Empty file added. ObservationSim/Config/Config.py +4 −7 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import galsim import os from astropy.time import Time as asTime def ConfigDir(config, work_dir=None, data_dir=None): def config_dir(config, work_dir=None, data_dir=None): path_dict = {} # Working directory if work_dir == None: Loading @@ -19,7 +19,6 @@ def ConfigDir(config, work_dir=None, data_dir=None): path_dict["data_dir"] = data_dir # Data sub-catalogs # Object catalog direcotry # path_dict["cat_dir"] = os.path.join(path_dict["data_dir"], "catalog_points_7degree2/", cat_dir) path_dict["cat_dir"] = os.path.join(path_dict["data_dir"], config["input_path"]["cat_dir"]) # PSF data directory path_dict["psf_dir"] = os.path.join(path_dict["data_dir"], config["psf_setting"]["psf_dir"]) Loading @@ -27,8 +26,6 @@ def ConfigDir(config, work_dir=None, data_dir=None): # SED catalog directory # TODO: SED_dir is deprecated path_dict["SED_dir"] = os.path.join(path_dict["data_dir"], "imageSims/Catalog/SEDObject") # path_dict["template_dir"] = path_dict["data_dir"] + "Templates/" # path_dict["template_dir"] = os.path.join(path_dict["data_dir"], config["SED_templates_path"]["galaxy_SED"]) # Directories/files for instrument parameters, e.g. efficiency curves. path_dict["filter_dir"] = os.path.join(path_dict["data_dir"], config["Efficiency_curve_path"]["filter_eff"]) path_dict["ccd_dir"] = os.path.join(path_dict["data_dir"], config["Efficiency_curve_path"]["ccd_eff"]) Loading @@ -44,7 +41,7 @@ def ConfigDir(config, work_dir=None, data_dir=None): return path_dict def ReadConfig(config_filename): def read_config(config_filename): """Read in a configuration file and return the corresponding dict(s). Parameters: Loading Loading @@ -73,10 +70,10 @@ def ReadConfig(config_filename): else: print("!! Something is wrong with parameter '%s'."%row[0]) return config = ParseConfig(config) config = parse_config(config) return config def ParseConfig(config): def parse_config(config): """Parse the config values to the right type Parameters: Loading Loading
Catalog/C3Catalog.py +47 −10 Original line number Diff line number Diff line Loading @@ -8,14 +8,16 @@ import astropy.constants as cons from astropy.coordinates import spherical_to_cartesian from astropy.table import Table from scipy import interpolate from datetime import datetime from ObservationSim.MockObject import CatalogBase, Star, Galaxy, Quasar from ObservationSim.MockObject._util import seds, sed_assign, extAv, tag_sed, getObservedSED from ObservationSim.Astrometry.Astrometry_util import on_orbit_obs_position NSIDE = 128 class C3Catalog(CatalogBase): def __init__(self, config, chip, **kwargs): def __init__(self, config, chip, pointing, **kwargs): super().__init__() self.cat_dir = os.path.join(config["data_dir"], config["input_path"]["cat_dir"]) self.seed_Av = config["random_seeds"]["seed_Av"] Loading @@ -24,7 +26,9 @@ class C3Catalog(CatalogBase): self.normF_star = Table.read(os.path.join(self.normalize_dir, 'SLOAN_SDSS.g.fits')) self.normF_galaxy = Table.read(os.path.join(self.normalize_dir, 'lsst_throuput_g.fits')) self.config = config self.chip = chip self.pointing = pointing if "star_cat" in config["input_path"] and config["input_path"]["star_cat"]: star_file = config["input_path"]["star_cat"] Loading Loading @@ -77,6 +81,11 @@ class C3Catalog(CatalogBase): param = self.initialize_param() param['ra'] = gals['ra_true'][igals] param['dec'] = gals['dec_true'][igals] if not self.chip.isContainObj(ra_obj=param['ra'], dec_obj=param['dec'], margin=200): continue param['mag_use_normal'] = gals['mag_true_g_lsst'][igals] if param['mag_use_normal'] >= 26.5: continue param['z'] = gals['redshift_true'][igals] param['model_tag'] = 'None' param['gamma1'] = 0 Loading @@ -84,10 +93,10 @@ class C3Catalog(CatalogBase): param['kappa'] = 0 param['delta_ra'] = 0 param['delta_dec'] = 0 sersicB = gals['sersic_bulge'][igals] # sersicB = gals['sersic_bulge'][igals] hlrMajB = gals['size_bulge_true'][igals] hlrMinB = gals['size_minor_bulge_true'][igals] sersicD = gals['sersic_disk'][igals] # sersicD = gals['sersic_disk'][igals] hlrMajD = gals['size_disk_true'][igals] hlrMinD = gals['size_minor_disk_true'][igals] aGal = gals['size_true'][igals] Loading @@ -112,11 +121,6 @@ class C3Catalog(CatalogBase): param['av'] = 0.6 * param['av'] / 3.0 # for quasar, av=[0, 0.2], 3.0=av.max-av.im param['star'] = 2 # Quasar if not self.chip.isContainObj(ra_obj=param['ra'], dec_obj=param['dec'], margin=200): continue param['mag_use_normal'] = gals['mag_true_g_lsst'][igals] if param['mag_use_normal'] >= 26.5: continue self.ids += 1 param['id'] = self.ids Loading @@ -129,10 +133,43 @@ class C3Catalog(CatalogBase): def _load_stars(self, stars, pix_id=None): nstars = len(stars['sourceID']) # Apply astrometric modeling ra_arr = stars["RA"][:] dec_arr = stars["Dec"][:] if "astrometric_lib" in self.config["obs_setting"] and self.config["obs_setting"]["enable_astrometric_model"]: ra_list = ra_arr.tolist() dec_list = dec_arr.tolist() pmra_list = np.zeros(nstars).tolist() pmdec_list = np.zeros(nstars).tolist() rv_list = np.zeros(nstars).tolist() parallax_list = [1e-9] * nstars lib_path = os.path.join(self.config["data_dir"], self.config["obs_setting"]["astrometric_lib"]) dt = datetime.fromtimestamp(self.pointing.timestamp) date_str = dt.date().isoformat() time_str = dt.time().isoformat() ra_arr, dec_arr = on_orbit_obs_position( input_ra_list=ra_list, input_dec_list=dec_list, input_pmra_list=pmra_list, input_pmdec_list=pmdec_list, input_rv_list=rv_list, input_parallax_list=parallax_list, input_nstars=nstars, input_x=self.pointing.sat_x, input_y=self.pointing.sat_y, input_z=self.pointing.sat_z, input_vx=self.pointing.sat_vx, input_vy=self.pointing.sat_vy, input_vz=self.pointing.sat_vz, input_epoch="J2015.5", input_date_str=date_str, input_time_str=time_str, lib_path=lib_path ) for istars in range(nstars): param = self.initialize_param() param['ra'] = stars['RA'][istars] param['dec'] = stars['Dec'][istars] param['ra'] = ra_arr[istars] param['dec'] = dec_arr[istars] if not self.chip.isContainObj(ra_obj=param['ra'], dec_obj=param['dec'], margin=200): continue param['mag_use_normal'] = stars['app_sdss_g'][istars] Loading
Catalog/Catalog_example.py +2 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ class Catalog_example(CatalogBase): load the filter throughput for the input catalog's photometric system. """ def __init__(self, config, chip, **kwargs): def __init__(self, config, chip, pointing, **kwargs): """Constructor method. Parameters Loading @@ -54,6 +54,7 @@ class Catalog_example(CatalogBase): super().__init__() self.cat_dir = os.path.join(config["data_dir"], config["input_path"]["cat_dir"]) self.chip = chip self.pointing = pointing if "star_cat" in config["input_path"] and config["input_path"]["star_cat"]: star_file = config["input_path"]["star_cat"] star_SED_file = config["SED_templates_path"]["star_SED"] Loading
ObservationSim/Astrometry/Astrometry_util.py 0 → 100644 +124 −0 Original line number Diff line number Diff line from ctypes import * import numpy as np def checkInputList(input_list, n): if not isinstance(input_list, list): raise TypeError("Input type is not list!", input_list) for i in input_list: if type(i) != type(1.1): if type(i) != type(1): raise TypeError("Input list's element is not float or int!", input_list) if len(input_list) != n: raise RuntimeError("Length of input list is not equal to stars' number!", input_list) def on_orbit_obs_position(input_ra_list, input_dec_list, input_pmra_list, input_pmdec_list, input_rv_list, input_parallax_list, input_nstars, input_x, input_y, input_z, input_vx, input_vy, input_vz, input_epoch, input_date_str, input_time_str, lib_path): #Check input parameters if not isinstance(input_nstars, int): raise TypeError("Parameter 7 is not int!", input_nstars) checkInputList(input_ra_list, input_nstars) checkInputList(input_dec_list, input_nstars) checkInputList(input_pmra_list, input_nstars) checkInputList(input_pmdec_list, input_nstars) checkInputList(input_rv_list, input_nstars) checkInputList(input_parallax_list, input_nstars) if not isinstance(input_x, float): raise TypeError("Parameter 8 is not double!", input_x) if not isinstance(input_y, float): raise TypeError("Parameter 9 is not double!", input_y) if not isinstance(input_z, float): raise TypeError("Parameter 10 is not double!", input_z) if not isinstance(input_vx, float): raise TypeError("Parameter 11 is not double!", input_vx) if not isinstance(input_vy, float): raise TypeError("Parameter 12 is not double!", input_vy) if not isinstance(input_vz, float): raise TypeError("Parameter 13 is not double!", input_vz) #Convert km -> m input_x = input_x*1000.0 input_y = input_y*1000.0 input_z = input_z*1000.0 input_vx = input_vx*1000.0 input_vy = input_vy*1000.0 input_vz = input_vz*1000.0 if not isinstance(input_date_str, str): raise TypeError("Parameter 15 is not string!", input_date_str) else: input_date_str = input_date_str.strip() if not (input_date_str[4]=="-" and input_date_str[7]=="-"): raise TypeError("Parameter 15 format error (1)!", input_date_str) else: tmp = input_date_str.split("-") if len(tmp) != 3: raise TypeError("Parameter 15 format error (2)!", input_date_str) input_year = int(tmp[0]) input_month = int(tmp[1]) input_day = int(tmp[2]) if not (input_year>=1900 and input_year<=2100): raise TypeError("Parameter 15 year range error [1900 ~ 2100]!", input_year) if not (input_month>=1 and input_month<=12): raise TypeError("Parameter 15 month range error [1 ~ 12]!", input_month) if not (input_day>=1 and input_day<=31): raise TypeError("Parameter 15 day range error [1 ~ 31]!", input_day) if not isinstance(input_time_str, str): raise TypeError("Parameter 16 is not string!", input_time_str) else: input_time_str = input_time_str.strip() if not (input_time_str[2]==":" and input_time_str[5]==":"): raise TypeError("Parameter 16 format error (1)!", input_time_str) else: tmp = input_time_str.split(":") if len(tmp) != 3: raise TypeError("Parameter 16 format error (2)!", input_time_str) input_hour = int(tmp[0]) input_minute = int(tmp[1]) input_second = float(tmp[2]) if not (input_hour>=0 and input_hour<=23): raise TypeError("Parameter 16 hour range error [0 ~ 23]!", input_hour) if not (input_minute>=0 and input_minute<=59): raise TypeError("Parameter 16 minute range error [0 ~ 59]!", input_minute) if not (input_second>=0 and input_second<60.0): raise TypeError("Parameter 16 second range error [0 ~ 60)!", input_second) #Inital dynamic lib shao = cdll.LoadLibrary(lib_path) shao.onOrbitObs.restype = c_int d3 = c_double * 3 shao.onOrbitObs.argtypes = [c_double, c_double, c_double, c_double, c_double, c_double, \ c_int, c_int, c_int, c_int, c_int, c_double, \ c_double, POINTER(d3), POINTER(d3), \ c_int, c_int, c_int, c_int, c_int, c_double, \ POINTER(c_double), POINTER(c_double) ] output_ra_list = list() output_dec_list = list() for i in range(input_nstars): input_ra = c_double(input_ra_list[i]) input_dec = c_double(input_dec_list[i]) input_pmra = c_double(input_pmra_list[i]) input_pmdec = c_double(input_pmdec_list[i]) input_rv = c_double(input_rv_list[i]) input_parallax = c_double(input_parallax_list[i]) p3 = d3(input_x, input_y, input_z) v3 = d3(input_vx, input_vy, input_vz) input_year_c = c_int(input_year) input_month_c = c_int(input_month) input_day_c = c_int(input_day) input_hour_c = c_int(input_hour) input_minute_c = c_int(input_minute) input_second_c = c_double(input_second) DAT = c_double(37.0) output_ra = c_double(0.0) output_dec = c_double(0.0) rs = shao.onOrbitObs(input_ra, input_dec, input_pmra, input_pmdec, input_rv, input_parallax, \ input_year_c, input_month_c, input_day_c, input_hour_c, input_minute_c, input_second_c, \ DAT, byref(p3), byref(v3), \ input_year_c, input_month_c, input_day_c, input_hour_c, input_minute_c, input_second_c, \ byref(output_ra), byref(output_dec)) if rs != 0: raise RuntimeError("Calculate error!") output_ra_list.append(output_ra.value) output_dec_list.append(output_dec.value) return np.array(output_ra_list), np.array(output_dec_list)
ObservationSim/Config/Config.py +4 −7 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import galsim import os from astropy.time import Time as asTime def ConfigDir(config, work_dir=None, data_dir=None): def config_dir(config, work_dir=None, data_dir=None): path_dict = {} # Working directory if work_dir == None: Loading @@ -19,7 +19,6 @@ def ConfigDir(config, work_dir=None, data_dir=None): path_dict["data_dir"] = data_dir # Data sub-catalogs # Object catalog direcotry # path_dict["cat_dir"] = os.path.join(path_dict["data_dir"], "catalog_points_7degree2/", cat_dir) path_dict["cat_dir"] = os.path.join(path_dict["data_dir"], config["input_path"]["cat_dir"]) # PSF data directory path_dict["psf_dir"] = os.path.join(path_dict["data_dir"], config["psf_setting"]["psf_dir"]) Loading @@ -27,8 +26,6 @@ def ConfigDir(config, work_dir=None, data_dir=None): # SED catalog directory # TODO: SED_dir is deprecated path_dict["SED_dir"] = os.path.join(path_dict["data_dir"], "imageSims/Catalog/SEDObject") # path_dict["template_dir"] = path_dict["data_dir"] + "Templates/" # path_dict["template_dir"] = os.path.join(path_dict["data_dir"], config["SED_templates_path"]["galaxy_SED"]) # Directories/files for instrument parameters, e.g. efficiency curves. path_dict["filter_dir"] = os.path.join(path_dict["data_dir"], config["Efficiency_curve_path"]["filter_eff"]) path_dict["ccd_dir"] = os.path.join(path_dict["data_dir"], config["Efficiency_curve_path"]["ccd_eff"]) Loading @@ -44,7 +41,7 @@ def ConfigDir(config, work_dir=None, data_dir=None): return path_dict def ReadConfig(config_filename): def read_config(config_filename): """Read in a configuration file and return the corresponding dict(s). Parameters: Loading Loading @@ -73,10 +70,10 @@ def ReadConfig(config_filename): else: print("!! Something is wrong with parameter '%s'."%row[0]) return config = ParseConfig(config) config = parse_config(config) return config def ParseConfig(config): def parse_config(config): """Parse the config values to the right type Parameters: Loading