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.