On-sky LSF ingestion and resolution propagation
Describes version 2.0Calibration source and product contract
Throughout this page, LSF denotes the instrumental line-spread function, whereas FWHM denotes the Gaussian-equivalent width used to parameterise it. Both the arc and solar-twilight products describe an LSF; they differ in their illumination and in how the calibration is derived.
The profile of a monochromatic feature cannot in general be described fully by a single resolving power or full width at half maximum (FWHM) (Robertson, 2013). For WEAVE, ordinary arc lamps and on-sky observations also illuminate the instrument at different focal ratios, approximately f/7 and f/3 respectively. The on-sky LSF is therefore derived from solar-twilight spectra rather than transferred directly from ordinary arcs as described by Ardern-Arentsen et al. (in preparation). The supplementary WEAVE calibration method compares each twilight spectrum with a high-resolution solar reference using ULySS (Koleva, Prugniel, Bouchard & Wu, 2009), fits overlapping wavelength segments, and represents the continuous Gaussian-equivalent FWHM with a spline for each physical detector slit position, identified by NSPEC.
The calibration FITS product contains an LSF_splines binary table. For each NSPEC, columns t, c and k encode the spline knots, coefficients and degree. Primary-header metadata records the applicable configuration and wavelength bounds. Ardern-Arentsen et al. (in preparation) state that these files are supplied to APS on a per-fibre basis; the PyAPS reader independently enforces the same required table columns before constructing SciPy BSpline objects.
PyAPS import, interpolation and fallbacks
The aps_lsf module exposes one wavelength-dependent FWHM callable per available NSPEC, together with a global curve formed as the wavelength-by-wavelength median of all valid fibre curves in that calibration product. Multiple arm products are combined into a common interpolation interface; overlap regions are averaged and gaps are bridged according to the module’s explicit joining rule. Serialized interpolators are cached, with a cache-format version that forces reconstruction when stored closure behaviour changes.
The production path contains deliberate continuity fallbacks. A missing calibration fibre copies the nearest available NSPEC; a missing binned LSF file may be replaced by its unbinned counterpart; and a target without a specific entry uses the global curve. These substitutions prevent a missing calibration entry from necessarily terminating the workflow, but their scientific impact depends on the differences between the substituted and missing curves.
MOS and reconstructed-IFU propagation
For a physical-fibre product, APSOB associates the applicable NSPEC-specific function with each target spectrum and retains the global function as an explicit alternative. Downstream adapters evaluate or transform this function according to the interface of the selected engine. This replaced the earlier release practice in which reconstructed LIFU data used one representative average curve.
For a reconstructed IFU cube, one output spaxel can receive light from several fibres and dithers. Because the final cube does not retain the complete CPS fibre-to-spaxel contribution matrix for every dither, PyAPS estimates the weights from the Level-1 provenance chain to the underlying single exposures, reads the physical fibre positions and NSPEC values, and reconstructs candidate contributors geometrically. A vectorised sky-coordinate search identifies fibre-spaxel pairs. The implementation supports both circle-circle footprint-overlap weights (the current default) and an inverse distance-squared fibre weighting; the selected mode is retained in run provenance. In either case, these are provenance-based approximations to the missing contribution map. Rows are normalised to sum to unity. Each unique physical NSPEC LSF curve is evaluated once on a shared wavelength grid, repeated dither instances of the same fibre are collapsed, and a sparse matrix product forms the spaxel curves. Spaxels with no resolved contributor retain the global fallback.
Let
be the local tangent-plane separation between spaxel
and fibre instance
. The default overlap mode assigns the circle-circle intersection area
, while the alternative distance mode assigns
; thus
in the overlap case. In either case the stored weights are row-normalised,
where
is the set of geometrically accepted contributors and
is the wavelength-dependent fibre FWHM/LSF representation. A zero-row has no accepted contributor and therefore follows the global fallback. The candidate search uses a spatial tree and the numeric combination uses a sparse matrix-dense-grid product, so the implementation scales with local contributors rather than forming a dense all-spaxel/all-fibre distance matrix.
This arithmetic mean propagates an effective Gaussian-equivalent width. For Gaussian profiles with a common centroid, a second-moment-matched width would instead be
; the two expressions agree only when all contributing widths are equal. Neither generally gives the exact FWHM of a non-Gaussian mixture. PyAPS currently uses the arithmetic mean, so its impact on inferred velocity dispersions depends on the spread of contributing widths as well as the geometrical weighting approximation.
Scientific analysis commonly combines spaxels into spatial bins. PyAPS forms one bin curve as a weighted mean of the member-spaxel FWHM curves, using the same positive broadband-flux measure that characterises their spectral contribution. To avoid preparing an expensive template set independently for every bin, the bin curves may be grouped into a bounded number of resolution buckets using their values at representative wavelengths; each bucket receives the mean curve of its members. This spaxel/bin pathway is enabled in production, with the calibration identity, weighting mode and bucket assignment retained in the L2 provenance.
Delivery to scientific engines
PyAPS does not impose one resolution representation on every external engine. Redrock consumes banded resolution matrices constructed from the applicable FWHM curve. pPXF-based IFU paths receive data- and template-resolution functions, with rest-frame transformation where required (Cappellari, 2017). RVSpecFit and FERRE both start from setup-specific template products and apply the additional wavelength- and fibre-dependent broadening required to match the observed LSF. Engine-specific deconvolution, convolution and fallback rules are therefore tested individually; interpolator construction is followed by scientific validation.
Non-Gaussian structure and current scope
Ardern-Arentsen et al. (in preparation) report coherent non-Gaussian structure described by Gauss-Hermite
and
terms (van der Marel & Franx, 1993), particularly in blue configurations. They also caution that these coefficients cannot simply be applied unchanged when a template grid has already been smoothed. PyAPS v2.0 propagates Gaussian-equivalent FWHM. Import and consistent engine-specific propagation of the non-Gaussian terms are designated future work, and the limitation is retained when interpreting blue-arm results.