transmissive_elements#

class arte.photometry.transmissive_elements.Bandpass#

Bases: object

Methods

peak(peak_wl, delta_wl, high_ampl, low_ampl)

T = high_ampl for lambda = peak_wl T = low_ampl for lambda < (peak_wl - delta_wl) and lambda > (peak_wl + delta_wl) T = linear_interpolation(low_ampl, high_ampl) for (peak_wl - delta_wl) < lambda < peak_wl and peak_wl < lambda < (peak_wl + delta_wl)

ramp(low_wl, low_ampl, high_wl, high_ampl)

T=low_ampl for lambda < low_wl T=high_ampl for lambda > high_wl T=linear_interpolation(low_ampl, high_ampl) for low_wl < lambda < high_wl

step(wl, low_ampl, high_ampl)

T=low_ampl for lambda < wl T=high_ampl for lambda > wl

top_hat(peak_wl, delta_wl, high_ampl, low_ampl)

T = high_ampl for lambda = peak_wl +/- delta_wl T = low_ampl elsewhere

flat

from_array

one

standard_waveset

top_hat_ramped

zero

classmethod flat(amplitude)#
classmethod from_array(waveset, values)#
classmethod one()#
classmethod peak(peak_wl, delta_wl, high_ampl, low_ampl)#

T = high_ampl for lambda = peak_wl T = low_ampl for lambda < (peak_wl - delta_wl) and

lambda > (peak_wl + delta_wl)

T = linear_interpolation(low_ampl, high_ampl) for

(peak_wl - delta_wl) < lambda < peak_wl and peak_wl < lambda < (peak_wl + delta_wl)

classmethod ramp(low_wl, low_ampl, high_wl, high_ampl)#

T=low_ampl for lambda < low_wl T=high_ampl for lambda > high_wl T=linear_interpolation(low_ampl, high_ampl) for low_wl < lambda < high_wl

classmethod standard_waveset()#
classmethod step(wl, low_ampl, high_ampl)#

T=low_ampl for lambda < wl T=high_ampl for lambda > wl

classmethod top_hat(peak_wl, delta_wl, high_ampl, low_ampl)#

T = high_ampl for lambda = peak_wl +/- delta_wl T = low_ampl elsewhere

classmethod top_hat_ramped(low_wl_start, high_wl_start, high_wl_end, low_wl_end, low_ampl, high_ampl)#
classmethod zero()#
class arte.photometry.transmissive_elements.Direction#

Bases: object

REFLECTION = 'reflection'#
TRANSMISSION = 'transmission'#
class arte.photometry.transmissive_elements.TransmissiveElement(transmittance=None, reflectance=None, absorptance=None, id='')#

Bases: object

An optical element with transmittance, reflectance and absorptance

Only 2 of the 3 parameters must be specified, as the sum of the 3 quantities must be equal to 1 by energy conservation at every wavelength.

Absorptance and absorptivity are synonimous. The emissivity is equal to the absorptance under the assumptions of Kirchhoff’s law of thermal radiation. (Absorpance is instead a quantity related to the optical depth).

When a scalar value is specified, a constant spectrum of the specified amplitude is assumed

Parameters:
  • transmittance (synphot.SpectralElement or scalar in [0,1]) – spectral transmittance of the element (in wavelength)

  • reflectance (synphot.SpectralElement or scalar in [0,1]) – spectral reflectance of the element (in wavelength)

  • absorptance (synphot.SpectralElement or scalar in [0,1]) – spectral absorptance of the element (in wavelength)

Attributes:
absorptance
emissivity
id
reflectance
transmittance
waverange
waveset

Methods

emissivity_in_band(wv_band[, atol])

flat([transmittance, reflectance])

Creates a transmissive element with constant values across all wavelengths.

ideal()

Creates an ideal transmissive element with unit transmittance across all wavelengths.

reflectance_in_band(wv_band[, atol, ext_waveset])

transmittance_in_band(wv_band[, atol, ...])

add_spectral_points

from_fits

plot

set_id

to_dat

to_fits

property absorptance#
add_spectral_points(wavelengths, transmittance=None, reflectance=None, absorptance=None)#
property emissivity#
emissivity_in_band(wv_band, atol=(1, 1))#
Parameters:

wv_band (astropy.units.quantity.Quantity) – Bounds of the wavelength range where to compute the average emissivity of the TransmissiveElement.

static flat(transmittance=1.0, reflectance=0.0)#

Creates a transmissive element with constant values across all wavelengths.

Parameters:
  • transmittance (float, optional) – Constant transmittance value in [0,1]. Default is 1.0.

  • reflectance (float, optional) – Constant reflectance value in [0,1]. Default is 0.0.

Returns:

A transmissive element with constant transmittance and reflectance, and absorptance computed from t + r + a = 1.

Return type:

TransmissiveElement

Raises:

ValueError – If transmittance + reflectance > 1.

static from_fits(filename)#
property id#
static ideal()#

Creates an ideal transmissive element with unit transmittance across all wavelengths.

Returns:

A transmissive element with transmittance = 1.0 everywhere, reflectance = 0.0 everywhere, and absorptance = 0.0 everywhere.

Return type:

TransmissiveElement

plot(transmittance=True, reflectance=True, absorptance=True, wv_unit=None, **kwargs)#
property reflectance#
reflectance_in_band(wv_band, atol=(1, 1), ext_waveset=None)#
Parameters:

wv_band (astropy.units.quantity.Quantity) – Bounds of the wavelength range where to compute the average reflectance of the TransmissiveElement.

set_id(id)#
to_dat(filepath, data_type)#
to_fits(filename, **kwargs)#
property transmittance#
transmittance_in_band(wv_band, atol=(1, 1), ext_waveset=None)#
Parameters:

wv_band (astropy.units.quantity.Quantity) – Bounds of the wavelength range where to compute the average transmittance of the TransmissiveElement.

property waverange#
property waveset#
class arte.photometry.transmissive_elements.TransmissiveSystem(name='Transmissive System')#

Bases: object

Attributes:
elements
emissivity
name
transmittance
waveset

Methods

combine(*transmissive_systems[, name])

Combine multiple TransmissiveSystems into a single system.

list_elements_transmittance(band)

Print the transmittance (or reflectance) in band for each element of the system.

print_elements_list()

Prints the list of elements with name and direction.

total_transmittance(band)

Print the total transmittance (or reflectance) in band for the system.

add

as_transmissive_element

element_from_name

element_idx_from_name

plot

remove

subsystem_from_to

transmittance_from_to

add(transmissive_element_or_system, direction=None, name='')#
as_transmissive_element()#
static combine(*transmissive_systems, name='Combined Transmissive System')#

Combine multiple TransmissiveSystems into a single system.

Parameters:
  • *transmissive_systems (TransmissiveSystem or list of TransmissiveSystem) – Variable number of TransmissiveSystem objects to combine, or a single list of systems.

  • name (str, optional) – Name for the combined transmissive system. Default is “Combined Transmissive System”.

Returns:

A new TransmissiveSystem containing all elements from the input systems.

Return type:

TransmissiveSystem

Examples

>>> elt_ts = TransmissiveSystem("ELT")
>>> mpo_ts = TransmissiveSystem("MPO")
>>> # Both syntaxes work:
>>> combined = TransmissiveSystem.combine(elt_ts, mpo_ts, name="ELT+MPO")
>>> combined = TransmissiveSystem.combine([elt_ts, mpo_ts], name="ELT+MPO")
element_from_name(name)#
element_idx_from_name(name)#
property elements#
property emissivity#
list_elements_transmittance(band)#

Print the transmittance (or reflectance) in band for each element of the system. band: tuple (min, max) with band limits (units compatible with waveset)

property name#
plot(**kwargs)#
print_elements_list()#

Prints the list of elements with name and direction.

remove(element_index)#
subsystem_from_to(from_element=0, to_element=None)#
total_transmittance(band)#

Print the total transmittance (or reflectance) in band for the system. band: tuple (min, max) with band limits (units compatible with waveset)

property transmittance#
transmittance_from_to(from_element=0, to_element=None)#
property waveset#
arte.photometry.transmissive_elements.set_element_id_from_method(func)#

Decorator that sets the ‘id’ attribute of a returned TransmissiveElement to the name of the method.