Loading ObservationSim/Config/Header/ImageHeader.py +1 −1 Original line number Original line Diff line number Diff line Loading @@ -7,7 +7,7 @@ from astropy.io import fits import astropy.wcs as pywcs import astropy.wcs as pywcs from collections import OrderedDict from collections import OrderedDict from scipy import math # from scipy import math import random import random import os import os Loading ObservationSim/MockObject/MockObject.py +19 −0 Original line number Original line Diff line number Diff line Loading @@ -256,9 +256,28 @@ class MockObject(object): spec_orders = sdp.compute_spec_orders() spec_orders = sdp.compute_spec_orders() for k, v in spec_orders.items(): for k, v in spec_orders.items(): img_s = v[0] img_s = v[0] ######################################################### # DEBUG ######################################################### # print("before convolveGaussXorders, img_s:", img_s) nan_ids = np.isnan(img_s) if img_s[nan_ids].shape[0] > 0: # img_s[nan_ids] = 0 print("DEBUG: before convolveGaussXorders specImg nan num is", img_s[nan_ids].shape[0]) ######################################################### img_s, orig_off = convolveGaussXorders(img_s, xOrderSigPlus[k]) img_s, orig_off = convolveGaussXorders(img_s, xOrderSigPlus[k]) origin_order_x = v[1] - orig_off origin_order_x = v[1] - orig_off origin_order_y = v[2] - orig_off origin_order_y = v[2] - orig_off ######################################################### # DEBUG ######################################################### # print("DEBUG: orig_off is", orig_off) nan_ids = np.isnan(img_s) if img_s[nan_ids].shape[0] > 0: img_s[nan_ids] = 0 print("DEBUG: specImg nan num is", img_s[nan_ids].shape[0]) ######################################################### specImg = galsim.ImageF(img_s) specImg = galsim.ImageF(img_s) photons = galsim.PhotonArray.makeFromImage(specImg) photons = galsim.PhotonArray.makeFromImage(specImg) photons.x += origin_order_x photons.x += origin_order_x Loading ObservationSim/MockObject/_util.py +2 −3 Original line number Original line Diff line number Diff line Loading @@ -545,10 +545,9 @@ def tag_sed(h5file, model_tag, teff=5000, logg=2, feh=0): flux = np.array(h5file["sed"][path][()]).ravel() flux = np.array(h5file["sed"][path][()]).ravel() return path, wave, flux return path, wave, flux def convolveGaussXorders(img=None, sigma = 1): from astropy.modeling.models import Gaussian2D from astropy.modeling.models import Gaussian2D from scipy import signal from scipy import signal def convolveGaussXorders(img=None, sigma = 1): offset = int(np.ceil(sigma*10)) offset = int(np.ceil(sigma*10)) g_size = 2*offset+1 g_size = 2*offset+1 Loading ObservationSim/ObservationSim.py +7 −3 Original line number Original line Diff line number Diff line Loading @@ -7,6 +7,8 @@ import psutil from astropy.io import fits from astropy.io import fits from datetime import datetime from datetime import datetime import traceback from ObservationSim.Config import config_dir, ChipOutput from ObservationSim.Config import config_dir, ChipOutput from ObservationSim.Config.Header import generatePrimaryHeader, generateExtensionHeader from ObservationSim.Config.Header import generatePrimaryHeader, generateExtensionHeader from ObservationSim.Instrument import Telescope, Filter, FilterParam, FocalPlane, Chip from ObservationSim.Instrument import Telescope, Filter, FilterParam, FocalPlane, Chip Loading Loading @@ -77,7 +79,7 @@ class Observation(object): chip_output.logger.info(':::::::::::::::::::::::::::END:::::::::::::::::::::::::::::::::::') chip_output.logger.info(':::::::::::::::::::::::::::END:::::::::::::::::::::::::::::::::::') if self.config["psf_setting"]["psf_model"] == "Gauss": if self.config["psf_setting"]["psf_model"] == "Gauss": psf_model = PSFGauss(chip=chip) psf_model = PSFGauss(chip=chip, psfRa=self.config["psf_setting"]["psf_rcont"]) elif self.config["psf_setting"]["psf_model"] == "Interp": elif self.config["psf_setting"]["psf_model"] == "Interp": psf_model = PSFInterp(chip=chip, PSF_data_file=self.path_dict["psf_dir"]) psf_model = PSFInterp(chip=chip, PSF_data_file=self.path_dict["psf_dir"]) else: else: Loading Loading @@ -207,7 +209,8 @@ class Observation(object): ) ) except Exception as e: except Exception as e: print(e) # print(e) traceback.print_exc() chip_output.logger.error(e) chip_output.logger.error(e) continue continue Loading Loading @@ -325,7 +328,8 @@ class Observation(object): # print("object omitted", flush=True) # print("object omitted", flush=True) continue continue except Exception as e: except Exception as e: print(e) # print(e) traceback.print_exc() chip_output.logger.error(e) chip_output.logger.error(e) pass pass # Unload SED: # Unload SED: Loading ObservationSim/PSF/PSFGauss.py +7 −3 Original line number Original line Diff line number Diff line Loading @@ -6,12 +6,16 @@ from scipy.interpolate import interp1d from ObservationSim.PSF.PSFModel import PSFModel from ObservationSim.PSF.PSFModel import PSFModel class PSFGauss(PSFModel): class PSFGauss(PSFModel): def __init__(self, chip, fwhm=0.187, sigSpin=0., psfRa=0.15): def __init__(self, chip, fwhm=0.187, sigSpin=0., psfRa=None): self.pix_size = chip.pix_scale self.pix_size = chip.pix_scale self.chip = chip self.chip = chip if psfRa is None: self.fwhm = fwhm self.fwhm = fwhm self.sigSpin = sigSpin self.sigGauss = 0.15 else: self.fwhm = self.fwhmGauss(r=psfRa) self.sigGauss = psfRa # 80% light radius self.sigGauss = psfRa # 80% light radius self.sigSpin = sigSpin self.psf = galsim.Gaussian(flux=1.0,fwhm=fwhm) self.psf = galsim.Gaussian(flux=1.0,fwhm=fwhm) def perfGauss(self, r, sig): def perfGauss(self, r, sig): Loading Loading
ObservationSim/Config/Header/ImageHeader.py +1 −1 Original line number Original line Diff line number Diff line Loading @@ -7,7 +7,7 @@ from astropy.io import fits import astropy.wcs as pywcs import astropy.wcs as pywcs from collections import OrderedDict from collections import OrderedDict from scipy import math # from scipy import math import random import random import os import os Loading
ObservationSim/MockObject/MockObject.py +19 −0 Original line number Original line Diff line number Diff line Loading @@ -256,9 +256,28 @@ class MockObject(object): spec_orders = sdp.compute_spec_orders() spec_orders = sdp.compute_spec_orders() for k, v in spec_orders.items(): for k, v in spec_orders.items(): img_s = v[0] img_s = v[0] ######################################################### # DEBUG ######################################################### # print("before convolveGaussXorders, img_s:", img_s) nan_ids = np.isnan(img_s) if img_s[nan_ids].shape[0] > 0: # img_s[nan_ids] = 0 print("DEBUG: before convolveGaussXorders specImg nan num is", img_s[nan_ids].shape[0]) ######################################################### img_s, orig_off = convolveGaussXorders(img_s, xOrderSigPlus[k]) img_s, orig_off = convolveGaussXorders(img_s, xOrderSigPlus[k]) origin_order_x = v[1] - orig_off origin_order_x = v[1] - orig_off origin_order_y = v[2] - orig_off origin_order_y = v[2] - orig_off ######################################################### # DEBUG ######################################################### # print("DEBUG: orig_off is", orig_off) nan_ids = np.isnan(img_s) if img_s[nan_ids].shape[0] > 0: img_s[nan_ids] = 0 print("DEBUG: specImg nan num is", img_s[nan_ids].shape[0]) ######################################################### specImg = galsim.ImageF(img_s) specImg = galsim.ImageF(img_s) photons = galsim.PhotonArray.makeFromImage(specImg) photons = galsim.PhotonArray.makeFromImage(specImg) photons.x += origin_order_x photons.x += origin_order_x Loading
ObservationSim/MockObject/_util.py +2 −3 Original line number Original line Diff line number Diff line Loading @@ -545,10 +545,9 @@ def tag_sed(h5file, model_tag, teff=5000, logg=2, feh=0): flux = np.array(h5file["sed"][path][()]).ravel() flux = np.array(h5file["sed"][path][()]).ravel() return path, wave, flux return path, wave, flux def convolveGaussXorders(img=None, sigma = 1): from astropy.modeling.models import Gaussian2D from astropy.modeling.models import Gaussian2D from scipy import signal from scipy import signal def convolveGaussXorders(img=None, sigma = 1): offset = int(np.ceil(sigma*10)) offset = int(np.ceil(sigma*10)) g_size = 2*offset+1 g_size = 2*offset+1 Loading
ObservationSim/ObservationSim.py +7 −3 Original line number Original line Diff line number Diff line Loading @@ -7,6 +7,8 @@ import psutil from astropy.io import fits from astropy.io import fits from datetime import datetime from datetime import datetime import traceback from ObservationSim.Config import config_dir, ChipOutput from ObservationSim.Config import config_dir, ChipOutput from ObservationSim.Config.Header import generatePrimaryHeader, generateExtensionHeader from ObservationSim.Config.Header import generatePrimaryHeader, generateExtensionHeader from ObservationSim.Instrument import Telescope, Filter, FilterParam, FocalPlane, Chip from ObservationSim.Instrument import Telescope, Filter, FilterParam, FocalPlane, Chip Loading Loading @@ -77,7 +79,7 @@ class Observation(object): chip_output.logger.info(':::::::::::::::::::::::::::END:::::::::::::::::::::::::::::::::::') chip_output.logger.info(':::::::::::::::::::::::::::END:::::::::::::::::::::::::::::::::::') if self.config["psf_setting"]["psf_model"] == "Gauss": if self.config["psf_setting"]["psf_model"] == "Gauss": psf_model = PSFGauss(chip=chip) psf_model = PSFGauss(chip=chip, psfRa=self.config["psf_setting"]["psf_rcont"]) elif self.config["psf_setting"]["psf_model"] == "Interp": elif self.config["psf_setting"]["psf_model"] == "Interp": psf_model = PSFInterp(chip=chip, PSF_data_file=self.path_dict["psf_dir"]) psf_model = PSFInterp(chip=chip, PSF_data_file=self.path_dict["psf_dir"]) else: else: Loading Loading @@ -207,7 +209,8 @@ class Observation(object): ) ) except Exception as e: except Exception as e: print(e) # print(e) traceback.print_exc() chip_output.logger.error(e) chip_output.logger.error(e) continue continue Loading Loading @@ -325,7 +328,8 @@ class Observation(object): # print("object omitted", flush=True) # print("object omitted", flush=True) continue continue except Exception as e: except Exception as e: print(e) # print(e) traceback.print_exc() chip_output.logger.error(e) chip_output.logger.error(e) pass pass # Unload SED: # Unload SED: Loading
ObservationSim/PSF/PSFGauss.py +7 −3 Original line number Original line Diff line number Diff line Loading @@ -6,12 +6,16 @@ from scipy.interpolate import interp1d from ObservationSim.PSF.PSFModel import PSFModel from ObservationSim.PSF.PSFModel import PSFModel class PSFGauss(PSFModel): class PSFGauss(PSFModel): def __init__(self, chip, fwhm=0.187, sigSpin=0., psfRa=0.15): def __init__(self, chip, fwhm=0.187, sigSpin=0., psfRa=None): self.pix_size = chip.pix_scale self.pix_size = chip.pix_scale self.chip = chip self.chip = chip if psfRa is None: self.fwhm = fwhm self.fwhm = fwhm self.sigSpin = sigSpin self.sigGauss = 0.15 else: self.fwhm = self.fwhmGauss(r=psfRa) self.sigGauss = psfRa # 80% light radius self.sigGauss = psfRa # 80% light radius self.sigSpin = sigSpin self.psf = galsim.Gaussian(flux=1.0,fwhm=fwhm) self.psf = galsim.Gaussian(flux=1.0,fwhm=fwhm) def perfGauss(self, r, sig): def perfGauss(self, r, sig): Loading