Filter

class gunagala.optical_filter.Filter(transmission_filename=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_filename : str, optional

Name of file containing transmission as a function of wavelength data. Must be in a format readable by astropy.table.Table.read() and use column names Wavelength and Transmission. If the data file does not provide units nm and dimensionless unscaled will be 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)