transmissive_elements#
- class arte.photometry.transmissive_elements.Bandpass#
Bases:
objectMethods
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:
objectAn 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.SpectralElementor scalar in [0,1]) – spectral transmittance of the element (in wavelength)reflectance (
synphot.SpectralElementor scalar in [0,1]) – spectral reflectance of the element (in wavelength)absorptance (
synphot.SpectralElementor 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:
- 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:
- 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.
Print the transmittance (or reflectance) in band for each element of the system.
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:
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.