Filter

class gunagala.optical_filter.Filter(transmission=None, chebyshev_params=None, butterworth_params=None, apply_aoi=False, n_eff=1.75, theta_range=None, *kwargs)[source]

Bases: object

Class representing an optical bandpass filter.

The filter bandpass can be defined either by a table of transmission versus wavelength data or by one of the included analytic functions: Butterworth function or Chebyshev Type I.

Parameters:
transmission : astropy.table.Table or str, optional

Filter transmission as a function of wavelength data, either as an astropy.table.Table object or the name of a file that can be read by astropy.table.Table.read(). The filename can be either the path to a user file or the name of one of gunagala’s included files. The table must use column names Wavelength and Transmission. If the table does not specify units then nm and dimensionless unscaled are assumed.

chebyshev_params : dict, optional

Dictionary containing the parameters wave1, wave2, order, ripple and peak for the Chebyshev Type I parameterised filter model.

butterworth_params : dict, optional

Dictionary containing the parameters wave1, wave2, order and peak for the Butterworth parameterised filter model.

apply_aoi : bool, optional

Whether to model angle of incidence effects due to installation of the filter in a converging beam. If the filter is to be installed in a pupil or the transmission profile already includes these effects this should be set to False. If set to True then calls to the transmission() method will have to specify the range of angles of incidence. Default False

n_eff : float, optional

Effective refractive index value for the filter coatings. This is used only by the angle of incidence effect model. Typical values for real interference filters range from ~1.5 to ~2, and are in general polarisation dependent (not modelled here). Default 1.75.

theta_range : astropy.units.Quantity, optional

2 element Quantity specifying the range of angles of incidence (min, max). If specified this will be used to model the effect of a converging beam on the calculated filter parameters (FWHM, lambda_c, etc).

Attributes Summary

FWHM Full-Width at Half Maximum of the filter
lambda_c Central wavelength of the filter, defined here as the mid point between the two wavelengths where transmission is half peak transmission.
lambda_peak Wavelength at peak transmission of the filter
peak Peak transmission of the filter
theta_range 2 element Quantity specifying the range of angles of incidence (min, max).

Methods Summary

transmission(waves[, theta_range]) Return filter transmission at the given wavelength(s).

Attributes Documentation

FWHM

Full-Width at Half Maximum of the filter

Returns:
FWHM : astropy.units.Quantity

FWHM of the filter transmission profile

lambda_c

Central wavelength of the filter, defined here as the mid point between the two wavelengths where transmission is half peak transmission.

Returns:
lambda_c : astropy.units.Quantity

Central wavelength

lambda_peak

Wavelength at peak transmission of the filter

Returns:
lambda_peak : astropy.units.Quantity

Wavelength at peak transmission

peak

Peak transmission of the filter

Returns:
peak : astropy.units.Quantity

Peak transmission of the filter in dimensionless unscaled units

theta_range

2 element Quantity specifying the range of angles of incidence (min, max).

Returns:
theta_range: astropy.units.Quantity

2 element Quantity specifying the range of angles of incidence (min, max).

Methods Documentation

transmission(waves, theta_range=None)[source]

Return filter transmission at the given wavelength(s).

For filter bandpasses defined by data tables this will interpolate/extrapolate as required while for filter bandpasses defined by analytic expressions it will be calculated directly.

Parameters:
waves : astropy.units.Quantity

Wavelength(s) for which the filter transmission is required

theta_range : astropy.units.Quantity, optional

2 element quantity specifying the range of angles of incidence (min, max). If specified this will be used to model the effect of a converging beam on the filter bandpass. If not specified the default values set when creating the Filter instance will be used.

Returns:
waves : astropy.units.Quantity

Filter transmission at the given wavelength(s)