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

\[\epsilon(\lambda)= \frac{I_{std}(\lambda) \cdot 10^{[ -0.4(A_p- A_m)E_x^{(r)}(\lambda)] } \cdot G \cdot E_{ph}(\lambda)}{[ T_{ex} A_{tel} I_{std-ref}^{(r)}(\lambda) ]}\]

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 (0 for 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)