Telescope simulation¶
- class qmostetc.Telescope(effective_area, fiber_area, wavelength, seeing, flat_throughput, point_ffrac_array, sersic)¶
Telescope properties
This class describes the light path through the spectrograph independent parts of the telescope, i.e. from the mirror to the fiber. This is done by target shape specific methods, for point like, flat, or Sersic shaped targets.
- Parameters:
- effective_area
astropy.units.Quantity
Effective area of the telescope [m²]
- fiber_area
astropy.units.Quantity
Fiber area, projected to the sky [arcsec²]
- wavelength
astropy.units.Quantity
Wavelength array corresponding to the flat and point throughput arrays [nm]
- seeing
astropy.units.Quantity
Seeing array corresponding to the point throughput array [arcsec]
- flat_throughput
numpy.ndarray
Wavelength dependent fiber injection fraction for homogenuous (flat) illumation, corresponding to the
wavelength
parameter.- point_ffrac_array
numpy.ndarray
Wavelength and seeing dependent throughput and fiber injection fraction for point like illumination. First axis corresponds to the
wavelength
parameter, second axis corresponds to theseeing
parameter. This shall not include the wavelength dependent variation of the seeing in the atmosphere.- sersicfunction
Function that returns the geometrical fraction of light gathered on the fiber area for a sersic distributed source. The function shall have the following calling parameters:
- r_eff
astropy.units.Quantity
Sersic effective radius [arcsec]
- index
float
Sersic index.
- seeing
astropy.units.Quantity
Seeing [arcsec]. This may be either a single value, or an array.
It should return a
float
resp. anumpy.ndarray
with the fiber flux fraction, corresponding to the seeing parameterThe
sersic
function shall cover the geometrical effects of the dome, telescope and atmospheric seeing. The wavelength dependent throughput effects (telescope throughput, fiber injection fraction) is covered with thepoint_ffrac_array
parameter.Usually, the method
FiberFraction.sersic()
is used here.- r_eff
- effective_area
Examples
Calculate the fiber flux for a dark sky spectrum at a zenith angle of 51.3°, and check the average value around 580 nm. The dark sky is characterized with a moon-sun separation angle of 35°:
>>> from qmostetc import SEDTemplate, Atmosphere >>> atm = Atmosphere.paranal() >>> s = atm.emission(51.3*u.deg, 35*u.deg) >>> tel = Telescope.vista() >>> throughput = tel.throughput_flat()(s.wavelength) >>> flux = (s * throughput).to('ph / (nm s)') >>> print(f'{flux.subspectrum(575*u.nm, 585*u.nm).flux.mean():.1f}') 3.1 ph / (nm s)
- Attributes:
- effective_area
astropy.units.Quantity
Effective area of the telescope [m²]
- fiber_area
astropy.units.Quantity
Fiber area, projected to the sky [arcsec²]
- wavelength
astropy.units.Quantity
Wavelength array corresponding to the flat and point throughput arrays [nm]
- effective_area
- throughput_flat()¶
Telescope throughput for flat sources
Factor to convert the flux at the telescope level to a fiber flux. This is basically the effective area of the telescope multiplied by the effective angular area.
This plot shows the flat throughput curve for 4MOST, which is a constant:
- Returns:
Spectrum
Throughput array according to the wavelengths [m² arcsec²]
Examples
Check the flat throughput at 700 nm:
>>> from qmostetc import Telescope >>> import astropy.units as u >>> tel = Telescope.vista() >>> throughput = tel.throughput_flat() >>> print(f'{throughput(700*u.nm):.1f}') 12.0 arcsec2 m2
- throughput_point(seeing)¶
Telescope throughput for point sources
Factor to convert the flux at the telescope level to a fiber flux. This is basically the effective area of the telescope, including the seeing-dependent fiber injection fraction.
This plot shows the mean point throughput for 4MOST for different seeings:
This plot shows the wavelength dependency of the point throughput curve for selected seeings:
- Parameters:
- seeing
astropy.units.Quantity
Optical seeing as a wavelength dependent Quantity at target declination [arcsec].
- seeing
- Returns:
astropy.units.Quantity
Throughput array according to the wavelengths [m²]
Examples
Check the point like throughput at 700 nm for standard seeing:
>>> from qmostetc import Telescope >>> import astropy.units as u >>> tel = Telescope.vista() >>> throughput = tel.throughput_point(0.8*u.arcsec) >>> print(f'{throughput(700*u.nm):.1f}') 4.7 m2
- throughput_sersic(sersic_radius, sersic_index, seeing)¶
Telescope throughput for Sersic distributed sources
Factor to convert the flux at the telescope level to a fiber flux. This is basically the effective area of the telescope, including the seeing-dependent fiber injection fraction.
This plot shows the average throughput as a function of the Sersic radius for selected Sersic indices and a fixed seeing of 0.8”:
The wavelength dependency is implemented by using the point-like wavelength dependency that gives the same throughput at the reference wavelength.
This plot shows the wavelength dependency of the Sersic throughput curve for 4MOST for selected Sersic parameters and a fixed seeing of 0.8”:
- Parameters:
- sersic_radius
astropy.units.Quantity
Sersic effective radius [arcsec].
- sersic_index
float
Sersic index.
- seeing
astropy.units.Quantity
Optical seeing as a wavelength dependent Quantity at target declination [arcsec].
- sersic_radius
- Returns:
astropy.units.Quantity
Throughput array according to the wavelengths [m²]
Examples
Check a throughput at 700 nm for standard seeing for a Sersic profile with 1” effective radius and a Sersic index of 1.
>>> from qmostetc import Telescope >>> import astropy.units as u >>> tel = Telescope.vista() >>> throughput = tel.throughput_sersic(1*u.arcsec, 1, 0.8*u.arcsec) >>> print(f'{throughput(700*u.nm):.1f}') 1.7 m2
- fiber_frac_point(seeing)¶
Calculate the fiber fraction for a point like target
- Parameters:
- seeing
astropy.units.Quantity
Optical seeing as a wavelength dependent Quantity at target declination [arcsec].
- seeing
- Returns:
numpy.ndarray
Fiber fraction array corresponding to
wavelength
- fiber_frac_sersic(sersic_radius, sersic_index, seeing)¶
Calculate the fiber fraction for a Sersic shaped target
- Parameters:
- sersic_radius
astropy.units.Quantity
Sersic effective radius [arcsec].
- sersic_index
float
Sersic index.
- seeing
astropy.units.Quantity
Optical seeing as a wavelength dependent Quantity at target declination [arcsec].
- sersic_radius
- Returns:
numpy.ndarray
Fiber fraction array corresponding to
wavelength
- static vista(fname=None)¶
Standard 4MOST-VISTA telescope
This includes both the effective area of the telescope itself and the fiber area.
The telescope area (8.452 m²) and the projected fiber area (1.605 arcsec²) are hardcoded.
- Parameters:
- fname
str
orpathlib.Path
File name for the flat and point transmission vectors. It shall have two extensions:
- Geometry
with one a one-line tablefor the flat transmission, containing the following columns:
tar_shape: one line with a
'flat'
entry.wavelength_vector: Wavelengths array [nm].
transmission_vector: Telescope transmissions at these wavelengths.
- Fibre_fraction
a table for the seeing dependent point like transmission vectors. The seeing shall be taken wavelength independent. The file shall have the following columns:
tar_seeing: Target seeing [arcsec].
wavelength_vector: Wavelengths array [nm].
transmission_vector: Telescope transmissions at these wavelengths for the seeing.
The parameter is optional. If not given, the standard file provided by TOAD is used.
- fname