lezargus.simulator.telescope module#
Simulation code to simulate the telescope properties.
We simulate telescope effects, primarily the emission and reflectivity aspects of it. We break this module up so that we can potentially simulate different telescopes other than the IRTF. This is unlikely, but who knows.
- class lezargus.simulator.telescope.IrtfTelescopeSimulator(temperature: float | None = None)[source]#
Bases:
object
The NASA IRTF telescope simulation class.
Here we implement the effects of the primary and secondary mirror of the NASA IRTF telescope. Most focus is to the emissive and reflectivity effects of the mirrors, but other effects may also be simulated here.
As the NASA IRTF telescope is a physical object, its specifications are determined in the configuration file and data files. We don’t allow its mutability. Please raise an issue to request the addition of different telescopes.
- __init__(temperature: float | None = None) None [source]#
Create an instance of the IRTF telescope.
- Parameters:
temperature (float, default = None) – The temperature of the IRTF mirrors, used for the blackbody emission calculations. If None, we use the configured value instead.
- Return type:
None
- _primary_reflectivity_interpolator: hint.Spline1DInterpolate | None = None#
The interpolation class for the primary mirror reflectivity.
- _secondary_reflectivity_interpolator: hint.Spline1DInterpolate | None = None#
The interpolation class for the secondary mirror reflectivity.
- property primary_area: float#
Area of the primary mirror.
- Parameters:
None
- Returns:
area – The area of the primary mirror.
- Return type:
float
- primary_emission(wavelength: hint.NDArray, solid_angle: float) hint.NDArray | None [source]#
Compute the spectral flux emission of the IRTF primary mirror.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the primary mirror spectral flux emission, in meters.
solid_angle (float) – The total solid angle that the primary emission is integrating over. This is needed for the blackbody emission integration.
- Returns:
emission – The spectral flux emission of the primary mirror at the wavelengths provided.
- Return type:
NDArray
- primary_emission_spectrum(wavelength: hint.NDArray, solid_angle: float) hint.LezargusSpectrum [source]#
Compute the emission of the IRTF primary mirror, as a spectrum.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the primary mirror spectral flux emission, in meters.
solid_angle (float) – The total solid angle that the primary emission is integrating over. This is needed for the blackbody emission integration.
- Returns:
emission_spectrum – The spectral flux emission of the primary mirror at the wavelengths provided.
- Return type:
NDArray
- primary_reflectivity(wavelength: hint.NDArray) hint.NDArray | None [source]#
Compute the reflectivity of the IRTF primary mirror.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the primary mirror reflectivity, in meters.
- Returns:
reflectivity – The reflectivity of the primary mirror at the wavelengths provided.
- Return type:
NDArray
- primary_reflectivity_spectrum(wavelength: hint.NDArray) hint.LezargusSpectrum [source]#
Compute the primary reflectivity, as a LezargusSpectrum.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the primary mirror reflectivity, in meters.
- Returns:
reflectivity_spectrum – The reflectivity spectrum of the primary mirror at the wavelengths provided.
- Return type:
- property secondary_area: float#
Area of the secondary mirror.
- Parameters:
None
- Returns:
area – The area of the secondary mirror.
- Return type:
float
- secondary_emission(wavelength: hint.NDArray, solid_angle: float) hint.NDArray | None [source]#
Compute the spectral flux emission of the IRTF secondary mirror.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the secondary mirror spectral flux emission, in meters.
solid_angle (float) – The total solid angle that the secondary emission is integrating over. This is needed for the blackbody emission integration.
- Returns:
emission – The spectral flux emission of the secondary mirror at the wavelengths provided.
- Return type:
NDArray
- secondary_emission_spectrum(wavelength: hint.NDArray, solid_angle: float) hint.LezargusSpectrum [source]#
Compute the emission of the IRTF secondary mirror, as a spectrum.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the secondary mirror spectral flux emission, in meters.
solid_angle (float) – The total solid angle that the secondary emission is integrating over. This is needed for the blackbody emission integration.
- Returns:
emission_spectrum – The spectral flux emission of the secondary mirror at the wavelengths provided.
- Return type:
NDArray
- secondary_reflectivity(wavelength: hint.NDArray) hint.NDArray | None [source]#
Compute the reflectivity of the IRTF secondary mirror.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the secondary mirror reflectivity, in meters.
- Returns:
reflectivity – The reflectivity of the secondary mirror at the wavelengths provided.
- Return type:
NDArray
- secondary_reflectivity_spectrum(wavelength: hint.NDArray) hint.LezargusSpectrum [source]#
Compute the secondary reflectivity, as a LezargusSpectrum.
- Parameters:
wavelength (NDArray) – The wavelengths which we will compute the secondary mirror reflectivity, in meters.
- Returns:
reflectivity_spectrum – The reflectivity spectrum of the secondary mirror at the wavelengths provided.
- Return type:
- property telescope_area: float#
Area of the primary mirror.
- Parameters:
None
- Returns:
area – The area of the primary mirror.
- Return type:
float
- temperature: float#
The temperature of the primary and secondary mirrors. By default, this is the configured value.