Source code for lenstronomy.SimulationAPI.ObservationConfig.JWST

"""Provisional JWST instrument and observational settings.
ZP can be found here : https://jwst-docs.stsci.edu/files/182256933/182256934/1/1669487685625/NRC_ZPs_0995pmap.txt

Sky Brightness needs to be derived from the ETC
"""

import lenstronomy.Util.util as util

__all__ = ["JWST"]

# - keyword exposure_time: exposure time per image (in seconds)
# - keyword sky_brightness: sky brightness (in magnitude per square arcseconds in units of electrons)
# - keyword magnitude_zero_point: magnitude in which 1 count (e-) per second per arcsecond square is registered
# - keyword num_exposures: number of exposures that are combined (depends on coadd_years)
# - keyword seeing: Full-Width-at-Half-Maximum (FWHM) of PSF
# - keyword psf_type: string, type of PSF ('GAUSSIAN' and 'PIXEL' supported)


NIRCAM_F200W_band_obs = {
    "exposure_time": 3600.0,
    "sky_brightness": 29.52,  # this is derived using the ETC
    "magnitude_zero_point": 28.00,
    #'detector': 'NRCA1',
    "num_exposures": 1,
    "seeing": None,
    "psf_type": "PIXEL",
}

NIRCAM_F356W_band_obs = {
    "exposure_time": 3600.0,
    "sky_brightness": 28.39,  # this is derived using the ETC
    "magnitude_zero_point": 26.47,
    #'detector': 'NRCALONG',
    "num_exposures": 1,
    "seeing": None,
    "psf_type": "PIXEL",  # note kernel_point_source (the PSF map) must be provided separately
}

# for COSMOS-Web observations
NIRCAM_F115W_band_obs = {
    "exposure_time": 257,
    "sky_brightness": 30.96,
    "magnitude_zero_point": 28.02,
    "num_exposures": 8,
    "seeing": 0.04,  # PSF FWHM
    "psf_type": "PIXEL",
}

NIRCAM_F150W_band_obs = {
    "exposure_time": 257,
    "sky_brightness": 29.96,
    "magnitude_zero_point": 28.02,
    "num_exposures": 8,
    "seeing": 0.05,
    "psf_type": "PIXEL",
}

NIRCAM_F277W_band_obs = {
    "exposure_time": 257,
    "sky_brightness": 28.96,
    "magnitude_zero_point": 26.49,
    "num_exposures": 8,
    "seeing": 0.092,
    "psf_type": "PIXEL",
}

NIRCAM_F444W_band_obs = {
    "exposure_time": 257,
    "sky_brightness": 28.15,
    "magnitude_zero_point": 26.49,
    "num_exposures": 8,
    "seeing": 0.145,
    "psf_type": "PIXEL",
}


[docs] class JWST(object): """Class contains JWST instrument and observation configurations."""
[docs] def __init__(self, band="F200W", psf_type="PIXEL", coadd_years=None): """ :param band: string, 'F115W', 'F150W', 'F200W', 'F277W', 'F356W' or 'F444W' supported. Determines obs dictionary. :param psf_type: string, type of PSF ('GAUSSIAN', 'PIXEL' supported). :param coadd_years: int, number of years corresponding to num_exposures in obs dict. Currently supported: None. """ if band == "F200W": self.obs = NIRCAM_F200W_band_obs self.arm = "short" elif band == "F356W": self.obs = NIRCAM_F356W_band_obs self.arm = "long" elif band == "F115W": self.obs = NIRCAM_F115W_band_obs self.arm = "short" elif band == "F150W": self.obs = NIRCAM_F150W_band_obs self.arm = "short" elif band == "F277W": self.obs = NIRCAM_F277W_band_obs self.arm = "long" elif band == "F444W": self.obs = NIRCAM_F444W_band_obs self.arm = "long" else: raise ValueError("band %s not supported!" % band) if psf_type == "GAUSSIAN": self.obs["psf_type"] = "GAUSSIAN" elif psf_type != "PIXEL": raise ValueError("psf_type %s not supported!" % psf_type) if coadd_years is not None: raise ValueError( " %s coadd_years not supported! " "You may manually adjust num_exposures in obs dict if required." % coadd_years ) # NIRCAM camera settings if self.arm == "short": self.camera = { "read_noise": 15.77, "pixel_scale": 0.031, "ccd_gain": 2.05, } elif self.arm == "long": self.camera = { "read_noise": 13.25, "pixel_scale": 0.063, "ccd_gain": 1.82, }
# - keyword read_noise: std of noise generated by read-out (in units of electrons) # - keyword pixel_scale: scale (in arcseconds) of pixels # - keyword ccd_gain: electrons/ADU (analog-to-digital unit).
[docs] def kwargs_single_band(self): """ :return: merged kwargs from camera and obs dicts """ kwargs = util.merge_dicts(self.camera, self.obs) return kwargs