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
wavelengthparameter.- point_ffrac_array
numpy.ndarray Wavelength and seeing dependent throughput and fiber injection fraction for point like illumination. First axis corresponds to the
wavelengthparameter, second axis corresponds to theseeingparameter. 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
floatresp. anumpy.ndarraywith the fiber flux fraction, corresponding to the seeing parameterThe
sersicfunction 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_arrayparameter.Usually, the method
FiberFraction.sersic()is used here.- r_eff
- effective_area
- 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
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)
- 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:
SpectrumThroughput 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.QuantityThroughput 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.QuantityThroughput 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.ndarrayFiber 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.ndarrayFiber 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
strorpathlib.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