=====================
Integration with LSST
=====================
|project| uses the `LSST science pipelines `_ to do the bulk of its data processing. It is
highly recommended to read through the `official tutorial `_
before proceeding.
The LSST science pipelines are designed to use ``Butler`` repositories, which are essentially
directories containing configuration files, a variety of datasets and associated metadata. |project|
currently uses the "Generation 3" ``Butler`` version.
In order to allow the LSST code stack to work with Huntsman data, a Huntsman-specific "obs package"
is required. This package contains configuration information about the instrument, as well as
custom overrides for LSST tasks. The Huntsman obs package, ``obs_huntsman``, is developed `here `_.
The current approach is to develop pure LSST code in ``obs_huntsman``, such as task overrides and custom pipelines.
File ingestion
==============
Standardised file ingestion is performed using the `astro_metadata_translator `_ package.
This is the standard approach for ingestion files into a Butler Repository. All metadata is derived
from the FITS header rather than the filename. A description of the standard metadata items can
be found `here `_.
Butler Repositories
===================
The |project| package provides a ``ButlerRepository`` class, a wrapper encapsulating the functionality
of a Butler Repository, which otherwise requires command-line interface (CLI) to setup and use. The
``ButlerRepository`` class makes it easy to do this without using the command-line interface,
and provides additional convenience features used throughout the package. Please see the tutorial for
how to use this class.
Task overrides
==============
One of the main advantages of using the LSST stack is that we can use pipeline tasks. These are highly configurable pieces
of code that are designed to perform specific objectives, such as detecting sources, measuring background
or matching a photometric reference catalogue to a detected source catalogue. Most tasks are usable with their default settings
and do not need to be overridden. However, tasks that require modifications are overridden in the
`obs_huntsman `_ package.
Pipelines
=========
LSST pipelines are a series of tasks that linked together by their respective inputs and outputs, often
written in ``yaml`` files. They are used for combining individual tasks into larger pipelines, for example
to create master calibration files or to calibrate and / or coadd science exposures starting from the raw
exposures as inputs. Custom overrides to LSST pipelines are located in the ``obs_huntsman`` `pipelines directory `_.