synthesizer.instruments.premade¶
A submodule defining some premade instruments.
This module contains some commonly used instruments which can be imported, instantiated, and used directly. Each premade instrument is a child of the Instrument class with the appropriate properties fixed.
- The premade instruments are:
JWST/NIRCam.Wide
JWST/NIRCam.Medium
JWST/NIRCam.Narrow
JWST/NIRCam
JWST/MIRI
HST/WFC3.UVIS.Wide
HST/WFC3.UVIS.Medium
HST/WFC3.UVIS.Narrow
HST/WFC3.UVI
HST/WFC3.IR.Wide
HST/WFC3.IR.Medium
HST/WFC3.IR.Narrow
HST/WFC3.IR
HST/ACS_WFC.Wide
HST/ACS_WFC.Medium
HST/ACS_WFC.Narrow
HST/ACS_WFC
Euclid/NISP
Euclid/VIS
Example usage:
# Get NIRCam Wide instrument jwst_nircam = JWSTNIRCam()
# Get MIRI with a custom wavelength array miri = JWSTMIRI(filter_lams=lams)
# Get HST WFC3 UVIS with a custom depth wfc3_uvis = HSTWFC3UVISWide(depth=30.0, snrs=10.0)
# Get HST WFC3 IR with a subset of filters wfc3_ir = HSTWFC3IRWide(filter_subset=
- [
“HST/WFC3.IR.F110W”, “HST/WFC3.IR.F160W”,
]
)
# Load a premade instrument from a file jwst_nircam = JWSTNIRCam.load()
# Load a premade instrument from a file with a custom wavelength array jwst_nircam = JWSTNIRCam.load(filter_lams=lams)
# Load a premade instrument from a file with a custom noise array jwst_nircam = JWSTNIRCam.load(noise_maps=noise_arrays)
Classes
- class synthesizer.instruments.premade.EuclidNISP(label='Euclid.NISP', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of Euclid’s NISP instrument.
Default label: “Euclid.NISP”
Resolution: 0.30”
- Available filters:
Y
J
H
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.EuclidVIS(label='Euclid.VIS', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of Euclid’s VIS instrument.
Default label: “Euclid.VIS”
Resolution: 0.10”
- Available filters:
VIS
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTACSWFC(label='HST.ACS.WFC', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s ACS/WFC instrument.
Default label: “HST.ACS.WFC”
Resolution: 0.05”
- Available filters:
F435W
F475W
F502N
F550M
F555W
F606W
F625W
F658N
F660N
F775W
F814W
F850LP
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTACSWFCMedium(label='HST.ACS.WFC.Medium', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s ACS/WFC instrument (Medium).
Default label: “HST.ACS.WFC.Medium”
Resolution: 0.05”
- Available filters:
F550M
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTACSWFCNarrow(label='HST.ACS.WFC.Narrow', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s ACS/WFC instrument (Narrow).
Default label: “HST.ACS.WFC.Narrow”
Resolution: 0.05”
- Available filters:
F502N
F658N
F660N
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTACSWFCWide(label='HST.ACS.WFC.Wide', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s ACS/WFC instrument (Wide).
Default label: “HST.ACS.WFC.Wide”
Resolution: 0.05”
- Available filters:
F435W
F475W
F555W
F606W
F625W
F775W
F814W
F850LP
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3IR(label='HST.WFC3.IR', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s WFC3/IR instrument.
Default label: “HST.WFC3.IR”
Resolution: 0.13”
- Available filters:
F098M
F105W
F110W
F125W
F126N
F127M
F128N
F130N
F132N
F139M
F140W
F153M
F160W
F164N
F167N
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3IRMedium(label='HST.WFC3.IR.Medium', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s WFC3/IR instrument (Medium).
Default label: “HST.WFC3.IR.Medium”
Resolution: 0.13”
- Available filters:
F098M
F127M
F139M
F153M
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3IRNarrow(label='HST.WFC3.IR.Narrow', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s WFC3/IR instrument (Narrow).
Default label: “HST.WFC3.IR.Narrow”
Resolution: 0.13”
- Available filters:
F126N
F128N
F130N
F132N
F164N
F167N
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3IRWide(label='HST.WFC3.IR.Wide', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing the properties of HST’s WFC3/IR instrument (Wide).
Default label: “HST.WFC3.IR.Wide”
Resolution: 0.13”
- Available filters:
F105W
F110W
F125W
F140W
F160W
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3UVIS(label='HST.WFC3.UVIS', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing HST’s WFC3/UVIS instrument.
Default label: “HST.WFC3.UVIS”
Resolution: 0.04”
- Available filters:
F218W
F225W
F275W
F336W
F350LP
F390W
F438W
F475W
F555W
F606W
F625W
F775W
F814W
F850LP
F410M
F467M
F547M
F621M
F689M
F763M
F845M
F280N
F343N
F373N
F395N
F469N
F487N
F502N
F631N
F645N
F656N
F657N
F658N
F665N
F673N
F680N
F953N
FQ232N
FQ243N
FQ378N
FQ387N
FQ422M
FQ436N
FQ437N
FQ492N
FQ508N
FQ575N
FQ619N
FQ634N
FQ672N
FQ674N
FQ727N
FQ750N
FQ889N
FQ906N
FQ924N
FQ937N
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3UVISMedium(label='HST.WFC3.UVIS.Medium', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing HST’s WFC3/UVIS instrument (Medium).
Default label: “HST.WFC3.UVIS.Medium”
Resolution: 0.04”
- Available filters:
F410M
F467M
F547M
F621M
F689M
F763M
F845M
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3UVISNarrow(label='HST.WFC3.UVIS.Narrow', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing HST’s WFC3/UVIS instrument (Narrow).
Default label: “HST.WFC3.UVIS.Narrow”
Resolution: 0.04”
- Available filters:
F280N
F343N
F373N
F395N
F469N
F487N
F502N
F631N
F645N
F656N
F657N
F658N
F665N
F673N
F680N
F953N
FQ232N
FQ243N
FQ378N
FQ387N
FQ422M
FQ436N
FQ437N
FQ492N
FQ508N
FQ575N
FQ619N
FQ634N
FQ672N
FQ674N
FQ727N
FQ750N
FQ889N
FQ906N
FQ924N
FQ937N
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.HSTWFC3UVISWide(label='HST.WFC3.UVIS.Wide', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing HST’s WFC3/UVIS instrument (Wide).
Default label: “HST.WFC3.UVIS.Wide”
Resolution: 0.04”
- Available filters:
F218W
F225W
F275W
F336W
F350LP
F390W
F438W
F475W
F555W
F606W
F625W
F775W
F814W
F850LP
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.JWSTMIRI(label='JWST.MIRI', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing JWST’s MIRI instrument.
Default label: “JWST.MIRI”
Resolution: 0.11”
- Available filters:
F560W
F770W
F1000W
F1065C
F1130W
F1140C
F1280W
F1500W
F1550C
F1800W
F2100W
F2300C
F2550W
If this class is loaded from a file then it will also include PSFs for each filter, derived using WebbPSF (using the defaults arguments).
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.JWSTNIRCam(label='JWST.NIRCam', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing JWST’s NIRCam instrument.
Default label: “JWST.NIRCam”
Resolution: 0.031”
- Available filters:
F070W
F090W
F115W
F140M
F150W
F162M
F164N
F182M
F187N
F200W
F210M
F212N
F250M
F277W
F300M
F323N
F335M
F356W
F360M
F405N
F410M
F430M
F444W
F460M
F466N
F470N
F480M
Note that we give every filter the short wavelength channel resolution as if the long wavelength channel has been resampled to match the higher resolution of the short wavelength channel.
If this class is loaded from a file then it will also include PSFs for each filter, derived using WebbPSF (using the defaults arguments).
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.JWSTNIRCamMedium(label='JWST.NIRCam.Medium', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing JWST’s NIRCam instrument (Medium).
Default label: “JWST.NIRCam.Medium”
Resolution: 0.031”
- Available filters:
F140M
F162M
F182M
F210M
F250M
F300M
F335M
F360M
F410M
F430M
F460M
F480M
Note that we give every filter the short wavelength channel resolution as if the long wavelength channel has been resampled to match the higher resolution of the short wavelength channel.
If this class is loaded from a file then it will also include PSFs for each filter, derived using WebbPSF (using the defaults arguments).
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.JWSTNIRCamNarrow(label='JWST.NIRCam.Narrow', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing JWST’s NIRCam instrument (Narrow).
Default label: “JWST.NIRCam.Narrow”
Resolution: 0.031”
- Available filters:
F164N
F187N
F212N
F323N
F405N
F466N
F470N
Note that we give every filter the short wavelength channel resolution as if the long wavelength channel has been resampled to match the higher resolution of the short wavelength channel.
If this class is loaded from a file then it will also include PSFs for each filter, derived using WebbPSF (using the defaults arguments).
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.JWSTNIRCamWide(label='JWST.NIRCam.Wide', filter_lams=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, filter_subset=(), **kwargs)[source]¶
A class containing JWST’s NIRCam instrument (Wide).
Default label: “JWST.NIRCam.Wide”
Resolution: 0.031”
- Available filters:
F070W
F090W
F115W
F150W
F200W
F277W
F356W
F444W
Note that we give every filter the short wavelength channel resolution as if the long wavelength channel has been resampled to match the higher resolution of the short wavelength channel.
If this class is loaded from a file then it will also include PSFs for each filter, derived using WebbPSF (using the defaults arguments).
For further details see the PremadeInstrument class.
- class synthesizer.instruments.premade.JWSTNIRSpec(label='', filters=None, resolution=None, lam=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, **kwargs)[source]¶
A placeholder for JWST’s NIRSpec instrument.
This class will be implemented in a future update.
- class synthesizer.instruments.premade.PremadeInstrument(label='', filters=None, resolution=None, lam=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None, **kwargs)[source]¶
A base class for premade instruments.
This class is a child of the Instrument class and is used to define premade instruments. It is not intended to be used directly, but rather as a base class for other premade instruments. Essentially, we include this class to reduce common methods and boilerplate code.
By default this will just include the predefinable properties of the Instrument class. The user can optionally specify their own depth, depth aperture radius, and SNRs, or explicit noise maps to be used. Similarly the user can pass their own PSFs to be used.
Alternatively, calling the load method will attempt to load the instrument from a file.
`python instrument = <premade instrument>.load(**kwargs) `
The upside of this is any “heavy attributes” (e.g. PSFs or full noise maps) will automatically be included from the file. This file needs to be downloaded using the download tool:
`bash synthesizer-download --instrument <instrument_name> `
Where the instrument name is the name of the class (e.g. JWSTNIRCamWide).
This will store the downloaded instrument HDF5 file in the instruments_cache directory from which this class can load the instrument. The user is then still free to pass their own depth, depth aperture radius, SNRs, or explicit noise maps to be used.
This class introduces no extra attributes or methods to the base Instrument class. It is simply a wrapper around the base class to provide a premade instrument with the properties of JWST’s NIRCam instrument. For a list of attributes and methods see the Instrument class.
- classmethod load(filter_subset=(), filter_lams=None, **kwargs)[source]¶
Load the instrument from a file.
This method will attempt to load the instrument from a file. If the file does not exist, it will raise an error. The user can pass their own depth, depth aperture radius, SNRs, or explicit noise maps to be used.
- Parameters:
filter_subset (list/tuple) – A list of filters to include in the instrument. This should be a list of strings with the filter names. If this is not provided, all filters will be included.
filter_lams (unyt_array, optional) – The wavelength array of the filters (with units). This should be a unyt array with the same length as the number of filters. If this is not provided, the default wavelength array will be used.
**kwargs –
Keyword arguments to pass to the Instrument class. These include any argument to the Instrument class:
- filters (FilterCollection, optional):
The filters of the Instrument. Default is None.
- resolution (unyt_quantity, optional):
The resolution of the Instrument (with units). Default is None.
- lam (unyt_array, optional):
The wavelength array of the Instrument (with units). Default is None.
- depth (dict/float, optional):
The depth of the Instrument in apparent mags. If filters are passed depth must be a dictionaries of depths with and entry per filter. Default is None.
- depth_app_radius (unyt_quantity, optional):
The depth aperture radius of the Instrument (with units). If this is omitted but SNRs and depths are provided, it is assumed that the depth is a point source depth. Default is None.
- snrs (unyt_array, optional):
The signal-to-noise ratios of the Instrument. Default is None.
- psfs (unyt_array, optional):
The PSFs of the Instrument. If doing imaging this should be a dictionary of PSFs with an entry for each filter. If doing resolved spectroscopy this should be an array. Default is None.
- noise_maps (unyt_array, optional):
The noise maps of the Instrument. If doing imaging this should be a dictionary of noise maps with an entry for each filter. If doing resolved spectroscopy this should be an array with noise as a function of wavelength. Default is None.