Efficiency¶
This section deals with the HDRL module estimating the efficiency of the instrument (including telescope and detector) as a 1D function of wavelength.
The efficiency is used to monitor the system performance and health. It is calculated observing flux standard stars (in photometric conditions). Then, the observed 1D spectrum is compared with the reference spectrum, as it would be observed outside the Earth’s atmosphere. The reference spectrum is provided by the user, usually via a catalog of standard stars. Wavelengths are in nm. The observed and reference fluxes must be expressed in the same units (the reference is typically in erg/s/cm2/Angstrom).
In PyHDRL this is hdrl.func.Efficiency. Input spectra are
hdrl.core.Spectrum1D objects; constructors require strictly
increasing wavelengths.
Algorithm¶
The efficiency is calculated according to
where:
\(I_{std}(\lambda)\) is the observed 1D spectrum [ADU] as function of wavelength [nm]
\(E_x^{(r)}(\lambda)\) is the resampled atmospheric extinction as function of wavelength [mag/airmass]
\(A_m\) is the airmass of the observed standard-star spectrum
\(A_p\) is the airmass at which the efficiency is computed (
0for above the atmosphere, or typically the tabulated airmass of the reference spectrum)\(G\) is the detector gain [e/ADU]
\(E_{ph}(\lambda)\) is the energy of one photon at wavelength \(\lambda\)
\(I_{std-ref}^{(r)}(\lambda)\) is the resampled reference standard-star spectrum
\(T_{ex}\) is the exposure time [s]
\(A_{tel}\) is the collecting area of the telescope [cm²]
\(E_x(\lambda)\) and \(I_{std-ref}(\lambda)\) are resampled with Akima interpolation onto the observed wavelength grid. If they already match, the resampling is skipped. The efficiency is defined only where those inputs overlap.
Compute¶
Parameters are created with hdrl.func.Efficiency.create_parameter
(or hdrl.func.EfficiencyParameter). In PyHDRL these constructor
arguments are floating-point values, not HDRL value tuples.
compute() takes three hdrl.core.Spectrum1D objects (observed
standard, reference standard, atmospheric extinction; wavelengths in
nm) and the parameter object. It returns an hdrl.core.Spectrum1D
containing the calculated efficiency.
create_response_parameter / compute_response_core evaluate the
raw response equation without telluric correction, velocity
compensation, or the final spline interpolation, and return an
hdrl.core.Spectrum1D. Unlike EfficiencyParameter they do not
include the telescope collecting area.
pars = hdrl.func.Efficiency.create_parameter(Ap, Am, G, Tex, Atel)
efficiency = hdrl.func.Efficiency.compute(I_std, I_std_ref, E_x, pars)