synthesizer.instruments.instrument

A module defining a class for observational instruments.

This module contains the Instrument class, which is used to define observational instruments for use in the synthesizer package. The Instrument class contains everything needed to define a telescope or spectrograph, including the filters, resolution, wavelength array, depth, depth aperture radius, signal-to-noise ratios, PSFs and noise_maps.

Instrument objects can define instruments to be used for synthetic:
  • Photometry (with or without noise)

  • Imaging (with or without PSFs and noise)

  • Spectroscopy (with or without noise)

  • Resolved Spectroscopy (with or without PSFs and noise)

Example usage:

# Create an Instrument object instrument = Instrument(

label=”HST”, filters=FilterCollection(…), resolution=0.1 * kpc, noise_maps={…}, psfs={…}, )

print(instrument)

Classes

class synthesizer.instruments.instrument.Instrument(label, filters=None, resolution=None, lam=None, depth=None, depth_app_radius=None, snrs=None, psfs=None, noise_maps=None)[source]

A class containing the properties defining an observational instrument.

This class contains everything needed to define a telescope or spectrograph, including the filters, resolution, wavelength array, depth, depth aperture radius, signal-to-noise ratios, PSFs and noise_maps.

Instrument objects can define instruments to be used for synthetic:
  • Photometry (with or without noise)

  • Imaging (with or without PSFs and noise)

  • Spectroscopy (with or without noise)

  • Resolved Spectroscopy (with or without PSFs and noise)

label

The label of the Instrument.

Type:

str

filters

The filters of the Instrument.

Type:

FilterCollection

resolution

The resolution of the Instrument.

Type:

unyt_array

lam

The wavelength array of the Instrument.

Type:

unyt_array

depth

The depth of the Instrument.

Type:

unyt_array

depth_app_radius

The depth aperture radius of the Instrument.

Type:

unyt_array

snrs

The signal-to-noise ratios of the Instrument.

Type:

unyt_array

psfs

The PSFs of the Instrument.

Type:

unyt_array

noise_maps

The noise maps of the Instrument.

Type:

unyt_array

add_filters(filters, psfs=None, noise_maps=None)[source]

Add filters to the Instrument.

If PSFs or noise maps are provided, an entry for each new filter must be provided in a dict passed to the psfs or noise_maps arguments.

Parameters:
  • filters (FilterCollection) – The filters to add to the Instrument.

  • psfs (dict, optional) – The PSFs for the new filters. Default is None.

  • noise_maps (dict, optional) – The noise maps for the new filters. Default is None.

property can_do_imaging

Return whether the Instrument can be used for simple imaging.

This flags whether the Instrument can be used for imaging basic imaging without PSFs and noise.

Returns:

Whether the Instrument can be used for simple imaging.

Return type:

bool

property can_do_noisy_imaging

Return whether the Instrument can be used for imaging with noise.

This is a bit more complex than the other flags as it can be true for various different noise definitions.

We ignore the depth aperature radius here since a depth and SNR without it is assumed to be a point source depth.

Returns:

Whether the Instrument can be used for imaging with noise.

Return type:

bool

property can_do_noisy_resolved_spectroscopy

Return whether the Instrument can do noisy resolved spectroscopy.

This is a bit more complex than the other flags as it can be true for various different noise definitions.

We ignore the depth aperature radius here since a depth and SNR without it is assumed to be a point source depth.

Returns:

Whether the Instrument can be used for noisy resolved spectroscopy.

Return type:

bool

property can_do_noisy_spectroscopy

Return whether the Instrument can be used for spectroscopy with noise.

This is a bit more complex than the other flags as it can be true for various different noise definitions.

We ignore the depth aperature radius here since a depth and SNR without it is assumed to be a point source depth.

Returns:

Whether the Instrument can be used for spectroscopy with noise.

Return type:

bool

property can_do_photometry

Return whether the Instrument can be used for photometry.

Returns:

Whether the Instrument can be used for photometry.

Return type:

bool

property can_do_psf_imaging

Return whether the Instrument can be used for imaging with PSFs.

Returns:

Whether the Instrument can be used for imaging with PSFs.

Return type:

bool

property can_do_psf_spectroscopy

Return whether the Instrument can do smoothed resolved spectroscopy.

Returns:

Whether the Instrument can be used for smoothed resolved spectroscopy.

Return type:

bool

property can_do_resolved_spectroscopy

Return whether the Instrument can be used for resolved spectroscopy.

Returns:

Whether the Instrument can be used for simple resolved spectroscopy.

Return type:

bool

property can_do_spectroscopy

Return whether the Instrument can be used for spectroscopy.

Returns:

Whether the Instrument can be used for spectroscopy.

Return type:

bool

to_hdf5(group)[source]

Save the Instrument to an HDF5 group.

Parameters:

group (h5py.Group) – The group in which to save the Instrument.