From daef7d64ead376817e7048d4359f088bb24b3a05 Mon Sep 17 00:00:00 2001 From: Christopher Waters Date: Wed, 23 Mar 2022 17:04:42 -0500 Subject: [PATCH 1/7] Initial draft. --- DMTN-222.tex | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++- acronyms.tex | 14 ++++++++ 2 files changed, 104 insertions(+), 1 deletion(-) diff --git a/DMTN-222.tex b/DMTN-222.tex index 7f7e1fd..52f965d 100644 --- a/DMTN-222.tex +++ b/DMTN-222.tex @@ -28,7 +28,7 @@ % \setDocCurator{The Curator of this Document} \setDocAbstract{% -This technote defines the best practices to be used for calibration generation, the verification that that calibration meets requirements, and when deciding if the calibration should be accepted for use. +This technote defines the best practices to be used for calibration generation, the verification that that calibration meets requirements, and when deciding if the calibration should be accepted for use. } % Change history defined here. @@ -50,6 +50,95 @@ % ADD CONTENT HERE % You can also use the \input command to include several content files. +\section{Introduction} + +The purpose of this technote is to provide guidance on the procedures that should be used for the management of calibrations that will be added to the main public butler collection. Nearly all calibration products can now be generated via \verb|cp_pipe|, making this the primary way new calibrations are generated. For the purposes of this document, we will consider four cases of calibrations. First, calibrations generated for widespread use, using the main butler collection. Second, daily calibrations produced to monitor the stability and health of the camera. Third, curated calibrations that are defined by an \verb|obs_| package and must be ingested to the butler repository. Finally, calibrations that have been exported from one butler repository for use in another. Additional private calibrations produced for tests may also exist, but as those should be contained in a user-space collection, will not be discussed further. + +All of the discussion below assumes the work is being done as part of a ticketed project, and so a Jira ticket number is available. This number is used below to provide a unique key for the collection names. This will allow the collections to be organized consistently, and the comments and documents attached to that ticket can be used for future reference in assessing those calibrations. Calibration acceptance can then be thought of as simply the ``review'' process for that ticket. + +Table \ref{tab:collections} lists suggested collection names to be used. This provides a consistent naming structure that ensures that the construction process is independent of whoever is actually running the code. + +\section{Generating New Calibrations} + +\subsection{Construction} + +Most calibrations will be generated directly from raw exposures using the appropriate tasks and pipelines from \verb|cp_pipe|. Table \ref{tab:inputs} lists the kind of data queries to be used for each calibration type. CZW: How much do we want to handhold here? N_suggested as well? + +To ensure all butler repositories have a consistent set of calibrations, we have decided that only one processing location should perform the construction. This is currently the LSST development cluster at NCSA, and will move to the US Data Facility (USDF) when it becomes available. + +Example command? + +\subsubsection{Bootstrapping} + +As we commission the main camera, we will need to bootstrap the list of calibrations from scratch. This section discusses the likely path that bootstrapping will take. First, a bias needs to be generated. After this is done, bias-calibrated bias frames can be used to identify bright pixels that comprise defects. With a list of defects, an initial dark model can be generated, followed by a preliminary set of flats. A second set of defects should then be constructed, as bias, dark, flat-calibrated flat images should make dark pixels easy to identify. With this updated defect set, construction can begin again with defect masked bias, dark, and flat images. + +Crosstalk, PTC, and linearity corrections can be constructed at this point. If the linearity response needs large corrections, then linearized calibrations should be constructed, starting again from the bias. The updated linearized PTC can then be used to construct the brighter-fatter kernels. + +\subsection{Verification} + +Once calibrations have been generated, the calibration should be compared againt a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail in some regime. The exposures used for the construction should generally be included, as this can identify problematic inputs that degrade the calibraion quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. + +Adding exposures from outside the set used for construction can provide insight into the expected validity range for the calibration. As long as the metrics on those exposures remain within the limits defined in DMTN-101, then the calibration should be valid for the dates those exposures were taken. This is similar to the second type of monitoring with the daily calibrations, discussed below. + +There are a set of ipython notebooks contained in the \verb|cp_verify| examples directory. These provide a way to quickly review the measured metric values, see how they compare to expectations, and to flip through the residual images to look for oddities and artifacts. Although these notebooks are easy to use for LATISS, they become increasingly unwieldy as the number of detectors increases. We will likely need to expand the set of visualization tools, pregenerating image mosaics and notebook results as part of the processing pipeline. + +\subsection{Rebuilding} + +If any input exposure was rejected by the verification step, the calibration should be rebuilt to remove these problem exposures. CZW: This maybe doesn't need to be a subsection. + +\subsection{Acceptance} + +Processing calibrations through the \verb|cp_verify| pipelines is a requirement for calibrations that will be widely used, but it does not complete the process. A Calibration Control Board (CCB) should be created that takes command of the final approval. Ideally, all verification metrics will succeed, and a quick check of residual exposures will show no unexpected features. In the more likely case that some of the metrics fail, this CCB will be tasked with deciding if the failures are fatal and the calibration should be fully rejected, or if the failures are small enough in number or impact that the calibration should be accepted for use despite them. This should work on a consensus basis, with any commentary and discussion taking place on the Jira ticket page for the calibration construction work. There is no formal CCB at this time, so one should be convened as soon as possible. + +\subsection{Certification} + +Once the generated calibration has been verified and accepted, it can be certified for use for a given date range. Calibrations generated during commissioning will likely have impossibly long valid ranges (``2020-01-01T00:00:00 - 2050-01-01T00:00:00`` being the current default), as that ensures any data taken can be processed. As the survey approaches, the daily calibration processing should allow the verification metrics to be monitored, providing break points where new calibrations will be generated. This may also need to be done retroactively, producing an updated calibration set for each reprocessing. + +\section{Daily Calibrations} + +Daily calibrations will be used to monitor the camera and telescope for changes. There are two expected processing paths for these exposures. First, they can be used to construct a new calibration that the individual exposures are validated against. This processing checks that the exposures are self consistent. The second processing path simply verifies these new exposures against the existing calibration set. This monitors the long-term stability of the calibrations, and may be used to indicate when new calibrations are required and should be generated. Table \ref{tab:daily} lists suggested collection names, and Table \ref{tab:cadence} lists suggested cadences and exposure count for each calibration type. + +\section{Curated Calibrations} + +Curated calibrations can be ingested via the \verb|butler write-curated-calibrations| command. This command by default will attempt to write to the main `CAMERA/calib` collection. This is generally not desired, as it is useful for that collection name to point to a CHAINED butler collection, to allow for easier calibration management. Instead, a ticketed collection name should be used, as the following example illustrates for the LATISS camera. + +\begin{verbatim} +butler write-curated-calibrations $REPO lsst.obs.lsst.Latiss \ + --collection LATISS/calib/DM-XYZ --label DM-XYZ +\end{verbatim} + +This will ensure that the calibrations can be chained into the main collection as detailed above. + +\section{Calibration Export} + +When calibrations have been generated, validated, approved, and certified at the main data facility, they should then be exported for use in other locations. The summit repositories need to be kept in sync with the data facility, and alternate processing locations also need this information. A calibration collection can be exported as follows: + +\begin{verbatim} +butler export-calibs $REPO ./export_directory LATISS/calib/DM-XYZ LATISS/calib/DM-ABC [...] +\end{verbatim} + +This command exports the files into the `export_directory` location, and constructs a YAML description of the calibrations and their collections. This `export_directory` must then be transferred to the host of the new repository, where it can be imported with the command + +\begin{verbatim} +butler import --export-file ./export_directory/export.yaml --transfer copy $NEW_REPO ./export_directory \ + -s instrument -s detector -s physical_filter +\end{verbatim} + +The `--transfer copy` is strongly suggested, as this will copy the files into the repository datastore, removing any dependency on the `export_directory`. The three `-s` arguments indicate that the instrument, detector, and physical_filter definitions contained the the YAML description should be skipped, as they will already exist in a repository that has been set up for the appropriate camera. + +The newly imported collections will not by default be part of the main public calibration collection. To do so, the new collections must be added to the collection chain. Using the following command with the `prepend` mode will add the new collections to the start of the collection chain, making them available. + +\begin{verbatim} +butler collection-chain $NEW_REPO --mode=prepend LATISS/calib \ + LATISS/calib/DM-XYZ \ + LATISS/calib/DM-ABC +\end{verbatim} + +This process could be automated in part, particularly by ensuring a default export location at the main data facility. If new calibrations are always exported to this location as they are certified, then any remote site need only rsync this location and import them. + + +\section{Conclusions} + \appendix % Include all the relevant bib files. % https://lsst-texmf.lsst.io/lsstdoc.html#bibliographies diff --git a/acronyms.tex b/acronyms.tex index e69de29..94d569f 100644 --- a/acronyms.tex +++ b/acronyms.tex @@ -0,0 +1,14 @@ +\addtocounter{table}{-1} +\begin{longtable}{p{0.145\textwidth}p{0.8\textwidth}}\hline +\textbf{Acronym} & \textbf{Description} \\\hline + +CCB & Change Control Board \\\hline +DM & Data Management \\\hline +DMTN & DM Technical Note \\\hline +LATISS & LSST Atmospheric Transmission Imager and Slitless Spectrograph \\\hline +LSST & Legacy Survey of Space and Time (formerly Large Synoptic Survey Telescope) \\\hline +NCSA & National Center for Supercomputing Applications \\\hline +US & United States \\\hline +USDF & United States Data Facility \\\hline +YAML & Yet Another Markup Language \\\hline +\end{longtable} From 279d6c985d5b811ec9e294249a22998ea63210a1 Mon Sep 17 00:00:00 2001 From: Christopher Waters Date: Wed, 23 Mar 2022 18:09:20 -0400 Subject: [PATCH 2/7] Fix build errors. --- DMTN-222.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DMTN-222.tex b/DMTN-222.tex index 52f965d..d8e1d6b 100644 --- a/DMTN-222.tex +++ b/DMTN-222.tex @@ -62,7 +62,7 @@ \section{Generating New Calibrations} \subsection{Construction} -Most calibrations will be generated directly from raw exposures using the appropriate tasks and pipelines from \verb|cp_pipe|. Table \ref{tab:inputs} lists the kind of data queries to be used for each calibration type. CZW: How much do we want to handhold here? N_suggested as well? +Most calibrations will be generated directly from raw exposures using the appropriate tasks and pipelines from \verb|cp_pipe|. Table \ref{tab:inputs} lists the kind of data queries to be used for each calibration type. CZW: How much do we want to handhold here? N suggested as well? To ensure all butler repositories have a consistent set of calibrations, we have decided that only one processing location should perform the construction. This is currently the LSST development cluster at NCSA, and will move to the US Data Facility (USDF) when it becomes available. @@ -76,7 +76,7 @@ \subsubsection{Bootstrapping} \subsection{Verification} -Once calibrations have been generated, the calibration should be compared againt a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail in some regime. The exposures used for the construction should generally be included, as this can identify problematic inputs that degrade the calibraion quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. +Once calibrations have been generated, the calibration should be compared against a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail in some regime. The exposures used for the construction should generally be included, as this can identify problematic inputs that degrade the calibration quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. Adding exposures from outside the set used for construction can provide insight into the expected validity range for the calibration. As long as the metrics on those exposures remain within the limits defined in DMTN-101, then the calibration should be valid for the dates those exposures were taken. This is similar to the second type of monitoring with the daily calibrations, discussed below. @@ -117,14 +117,14 @@ \section{Calibration Export} butler export-calibs $REPO ./export_directory LATISS/calib/DM-XYZ LATISS/calib/DM-ABC [...] \end{verbatim} -This command exports the files into the `export_directory` location, and constructs a YAML description of the calibrations and their collections. This `export_directory` must then be transferred to the host of the new repository, where it can be imported with the command +This command exports the files into the \verb|export_directory| location, and constructs a YAML description of the calibrations and their collections. This \verb|export_directory| must then be transferred to the host of the new repository, where it can be imported with the command \begin{verbatim} butler import --export-file ./export_directory/export.yaml --transfer copy $NEW_REPO ./export_directory \ -s instrument -s detector -s physical_filter \end{verbatim} -The `--transfer copy` is strongly suggested, as this will copy the files into the repository datastore, removing any dependency on the `export_directory`. The three `-s` arguments indicate that the instrument, detector, and physical_filter definitions contained the the YAML description should be skipped, as they will already exist in a repository that has been set up for the appropriate camera. +The `--transfer copy` is strongly suggested, as this will copy the files into the repository datastore, removing any dependency on the \verb|export_directory|. The three `-s` arguments indicate that the instrument, detector, and physical\_filter definitions contained the the YAML description should be skipped, as they will already exist in a repository that has been set up for the appropriate camera. The newly imported collections will not by default be part of the main public calibration collection. To do so, the new collections must be added to the collection chain. Using the following command with the `prepend` mode will add the new collections to the start of the collection chain, making them available. From 8c84d38ccd5479c85aa734d98f443161d977c086 Mon Sep 17 00:00:00 2001 From: Christopher Waters Date: Tue, 5 Apr 2022 18:31:57 -0400 Subject: [PATCH 3/7] Updated/clarified text. --- DMTN-222.tex | 87 ++++++++++++++++++++++++++--------- acronyms.tex | 3 +- figures/daily_processing.png | Bin 0 -> 62927 bytes figures/flowchart.png | Bin 0 -> 83583 bytes myacronyms.txt | 1 + skipacronyms.txt | 1 + 6 files changed, 68 insertions(+), 24 deletions(-) create mode 100644 figures/daily_processing.png create mode 100644 figures/flowchart.png diff --git a/DMTN-222.tex b/DMTN-222.tex index d8e1d6b..1abea0e 100644 --- a/DMTN-222.tex +++ b/DMTN-222.tex @@ -52,51 +52,92 @@ \section{Introduction} -The purpose of this technote is to provide guidance on the procedures that should be used for the management of calibrations that will be added to the main public butler collection. Nearly all calibration products can now be generated via \verb|cp_pipe|, making this the primary way new calibrations are generated. For the purposes of this document, we will consider four cases of calibrations. First, calibrations generated for widespread use, using the main butler collection. Second, daily calibrations produced to monitor the stability and health of the camera. Third, curated calibrations that are defined by an \verb|obs_| package and must be ingested to the butler repository. Finally, calibrations that have been exported from one butler repository for use in another. Additional private calibrations produced for tests may also exist, but as those should be contained in a user-space collection, will not be discussed further. +The purpose of this technote is to provide guidance on the procedures that should be used for the construction and management of calibrations. -All of the discussion below assumes the work is being done as part of a ticketed project, and so a Jira ticket number is available. This number is used below to provide a unique key for the collection names. This will allow the collections to be organized consistently, and the comments and documents attached to that ticket can be used for future reference in assessing those calibrations. Calibration acceptance can then be thought of as simply the ``review'' process for that ticket. +These guidelines should be followed for any calibration that will be added to the main public butler collection. For the purposes of this document, we will consider four cases of calibrations. First, calibrations generated for widespread use, using the main butler collection. Second, daily calibrations produced to monitor the stability and health of the camera. Third, curated calibrations that are defined by an \verb|obs_| package and must be ingested to the butler repository. Finally, calibrations that have been exported from one butler repository for use in another. Additional private calibrations produced for tests may also exist, but as those should be contained in a user-space collection, will not be discussed further. -Table \ref{tab:collections} lists suggested collection names to be used. This provides a consistent naming structure that ensures that the construction process is independent of whoever is actually running the code. +All of the discussion below assumes the work is being done as part of a ticketed project, and so a JIRA ticket number is available. This number is used below to provide a unique key for the collection names. This will allow the collections to be organized consistently, and the comments and documents attached to that ticket can be used for future reference in assessing those calibrations. Calibration acceptance can then be thought of as simply the ``review'' process for that ticket. -\section{Generating New Calibrations} +Figure \ref{fig:flowchart} displays the relationship between the various stages of construction, validation, and use. -\subsection{Construction} +\begin{figure} + \includegraphics[width=\linewidth]{figures/flowchart.png} + \caption{Flowchart of the calibration construction process.} + \label{fig:flowchart} +\end{figure} -Most calibrations will be generated directly from raw exposures using the appropriate tasks and pipelines from \verb|cp_pipe|. Table \ref{tab:inputs} lists the kind of data queries to be used for each calibration type. CZW: How much do we want to handhold here? N suggested as well? -To ensure all butler repositories have a consistent set of calibrations, we have decided that only one processing location should perform the construction. This is currently the LSST development cluster at NCSA, and will move to the US Data Facility (USDF) when it becomes available. +\section{Generating New Calibrations} -Example command? +\subsection{Construction} -\subsubsection{Bootstrapping} +Calibrations will be generated directly from raw exposures as much as possible. The tasks and pipelines in the \verb|cp_pipe| package can produce all of the calibrations that are used for image processing, and can be supplemented as new corrections are developed. The main documentation for calibration construction is included in \verb|cp_pipe|, but the main points will be summarized here. -As we commission the main camera, we will need to bootstrap the list of calibrations from scratch. This section discusses the likely path that bootstrapping will take. First, a bias needs to be generated. After this is done, bias-calibrated bias frames can be used to identify bright pixels that comprise defects. With a list of defects, an initial dark model can be generated, followed by a preliminary set of flats. A second set of defects should then be constructed, as bias, dark, flat-calibrated flat images should make dark pixels easy to identify. With this updated defect set, construction can begin again with defect masked bias, dark, and flat images. +After identifying appropriate input exposures for the calibration to be constructed, the camera-specific pipeline definition is used to produce a proposed calibration. Following the recommendations in \citedsp{DMTN-167}, the butler collection should use the format +\begin{verbatim} + /calib//Gen. +\end{verbatim} +\noindent where the ticket comes from the JIRA ticket describing this construction, the ``date string'' containing the date the calibration is constructed in \verb|YYYMMDD| format, and the iteration is an optional string to indicate multiple attempts at construction. -Crosstalk, PTC, and linearity corrections can be constructed at this point. If the linearity response needs large corrections, then linearized calibrations should be constructed, starting again from the bias. The updated linearized PTC can then be used to construct the brighter-fatter kernels. +To ensure all butler repositories have a consistent set of calibrations, we have decided that only one processing location should perform the construction. This is currently the LSST development cluster at NCSA, and will move to the US Data Facility (USDF) when it becomes available. The process for transferring the calibrations to other butler sites is discussed below \ref{sec:calib_export}. \subsection{Verification} -Once calibrations have been generated, the calibration should be compared against a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail in some regime. The exposures used for the construction should generally be included, as this can identify problematic inputs that degrade the calibration quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. +Once calibrations have been generated, the calibration should be compared against a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail the tests. At the minimum, the exposures used for the construction should be included, as this can identify problematic inputs that degrade the calibration quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. The input butler collections specified should prepend the construction collection to the list, to ensure that the verification process will use the correct calibration. The output butler collection should use the format +\begin{verbatim} + /calib//verify +\end{verbatim} +\noindent using the same fields as used for calibration construction. -Adding exposures from outside the set used for construction can provide insight into the expected validity range for the calibration. As long as the metrics on those exposures remain within the limits defined in DMTN-101, then the calibration should be valid for the dates those exposures were taken. This is similar to the second type of monitoring with the daily calibrations, discussed below. +Adding exposures from outside the set used for construction can provide insight into the expected validity range for the calibration. As long as the metrics on those exposures remain within the limits defined in \citedsp{DMTN-101}, the calibration should be valid for the dates those exposures were taken. This can be used to establish the valid date ranges to be used when certifying the calibration. There are a set of ipython notebooks contained in the \verb|cp_verify| examples directory. These provide a way to quickly review the measured metric values, see how they compare to expectations, and to flip through the residual images to look for oddities and artifacts. Although these notebooks are easy to use for LATISS, they become increasingly unwieldy as the number of detectors increases. We will likely need to expand the set of visualization tools, pregenerating image mosaics and notebook results as part of the processing pipeline. -\subsection{Rebuilding} - -If any input exposure was rejected by the verification step, the calibration should be rebuilt to remove these problem exposures. CZW: This maybe doesn't need to be a subsection. - \subsection{Acceptance} -Processing calibrations through the \verb|cp_verify| pipelines is a requirement for calibrations that will be widely used, but it does not complete the process. A Calibration Control Board (CCB) should be created that takes command of the final approval. Ideally, all verification metrics will succeed, and a quick check of residual exposures will show no unexpected features. In the more likely case that some of the metrics fail, this CCB will be tasked with deciding if the failures are fatal and the calibration should be fully rejected, or if the failures are small enough in number or impact that the calibration should be accepted for use despite them. This should work on a consensus basis, with any commentary and discussion taking place on the Jira ticket page for the calibration construction work. There is no formal CCB at this time, so one should be convened as soon as possible. +Processing calibrations through the \verb|cp_verify| pipelines is a requirement for calibrations that will be widely used, but it does not complete the process. A Calibration Acceptance Board (CAB) should be created that takes command of the final approval. Ideally, all verification metrics will succeed, and a quick check of residual exposures will show no unexpected features. In the more likely case that some metrics fail, this CAB will be tasked with deciding if the failures are fatal and the calibration should be fully rejected, or if the failures are small enough in number or impact that the calibration can be accepted for use despite them. This should work on a consensus basis, with any commentary and discussion taking place on the JIRA ticket page for the calibration construction work. There is no formal CAB at this time, but it should be a priority to establish one. \subsection{Certification} -Once the generated calibration has been verified and accepted, it can be certified for use for a given date range. Calibrations generated during commissioning will likely have impossibly long valid ranges (``2020-01-01T00:00:00 - 2050-01-01T00:00:00`` being the current default), as that ensures any data taken can be processed. As the survey approaches, the daily calibration processing should allow the verification metrics to be monitored, providing break points where new calibrations will be generated. This may also need to be done retroactively, producing an updated calibration set for each reprocessing. +Once the generated calibration has been verified and accepted, it can be certified for use for a given date range. Calibrations generated during commissioning will likely have impossibly long valid ranges (\verb|2020-01-01T00:00:00 - 2050-01-01T00:00:00| being the current default). This ensures that any data taken can be processed without needing to worry about changing configurations or pipeline errors.. As the survey approaches, the daily calibration processing should allow the verification metrics to be monitored, providing break points where new calibrations will be generated. With this monitoring, any changes that occur over long time scales can be anticipated and new calibrations constructed before a failure occurs in the daily calibration processing. \section{Daily Calibrations} -Daily calibrations will be used to monitor the camera and telescope for changes. There are two expected processing paths for these exposures. First, they can be used to construct a new calibration that the individual exposures are validated against. This processing checks that the exposures are self consistent. The second processing path simply verifies these new exposures against the existing calibration set. This monitors the long-term stability of the calibrations, and may be used to indicate when new calibrations are required and should be generated. Table \ref{tab:daily} lists suggested collection names, and Table \ref{tab:cadence} lists suggested cadences and exposure count for each calibration type. +Daily calibrations will be used to monitor the camera and telescope for changes. There are two expected processing paths for these exposures. First, they can be used to construct a new calibration that the individual exposures are validated against. This processing checks that the exposures are self consistent, and is likely most useful as we develop the verification process. + +The second processing path simply verifies these new exposures against the existing calibration set as shown in Figure \ref{fig:daily}. This monitors the long-term stability of the calibrations, and should be the default method used for the daily calibration processing. Table \ref{tab:cadence} lists suggested cadences and exposure count for each calibration type. As the instruments may be unavailable during construction and comissioning, exceptions are to be expected. For instance, as the lamp used for LATISS flat exposures must be manually switched on from the summit, the flat verification should be skipped when no one is available to do so. + +As with the ticketed calibration processing, the use of standard collection names will make the results easy to find. Following the collections above, daily calibrations should construct and verify calibrations to output collections +\begin{verbatim} + /calib/daily/ + /calib/daily/verify +\end{verbatim} + +Any comments on the construction and verification should be added to the observing log for that date, with any anomalies or concerns raised to the Calibration Acceptance Board for further evaluation. + +\begin{longtable}{l l l} + Calibration Type & Cadence & $N_{\textrm{exposure}}$ \\ + \hline + \endhead + Bias & Daily & 15 \\ + Dark & Daily & 15 \\ + Flat & Daily\footnote{When possible, see text} & 15 \\ + Defects & Weekly & Uses the bias, dark, flat exposures. \\ + Gain & Daily & Uses the flat exposures. \\ + PTC & As needed & N/A \\ + Linearity & As PTC & N/A \\ + Brighter-Fatter Kernel & As PTC & N/A \\ + Fringes & N/A & N/A \\ + \hline + \caption{Recommended cadence and exposure count for daily calibration verification.} + \label{tab:cadence} +\end{longtable} + +\begin{figure} + \includegraphics[width=\linewidth]{figures/daily_processing.png} + \caption{Flowchart of the daily calibration process.} + \label{fig:daily} +\end{figure} \section{Curated Calibrations} @@ -110,6 +151,7 @@ \section{Curated Calibrations} This will ensure that the calibrations can be chained into the main collection as detailed above. \section{Calibration Export} +\label{sec:calib_export} When calibrations have been generated, validated, approved, and certified at the main data facility, they should then be exported for use in other locations. The summit repositories need to be kept in sync with the data facility, and alternate processing locations also need this information. A calibration collection can be exported as follows: @@ -120,11 +162,12 @@ \section{Calibration Export} This command exports the files into the \verb|export_directory| location, and constructs a YAML description of the calibrations and their collections. This \verb|export_directory| must then be transferred to the host of the new repository, where it can be imported with the command \begin{verbatim} -butler import --export-file ./export_directory/export.yaml --transfer copy $NEW_REPO ./export_directory \ +butler import $NEW_REPO --transfer copy \ + --export-file ./export_directory/export.yaml ./export_directory \ -s instrument -s detector -s physical_filter \end{verbatim} -The `--transfer copy` is strongly suggested, as this will copy the files into the repository datastore, removing any dependency on the \verb|export_directory|. The three `-s` arguments indicate that the instrument, detector, and physical\_filter definitions contained the the YAML description should be skipped, as they will already exist in a repository that has been set up for the appropriate camera. +The \verb|--transfer copy| is strongly suggested, as this will copy the files into the repository datastore, removing any dependency on the \verb|export_directory|. The three \verb|-s| arguments indicate that the \verb|instrument|, \verb|detector|, and \verb|physical_filter| definitions contained the the YAML description should be skipped, as they will already exist in a repository that has been set up for the appropriate camera. The newly imported collections will not by default be part of the main public calibration collection. To do so, the new collections must be added to the collection chain. Using the following command with the `prepend` mode will add the new collections to the start of the collection chain, making them available. diff --git a/acronyms.tex b/acronyms.tex index 94d569f..bdebd36 100644 --- a/acronyms.tex +++ b/acronyms.tex @@ -2,7 +2,7 @@ \begin{longtable}{p{0.145\textwidth}p{0.8\textwidth}}\hline \textbf{Acronym} & \textbf{Description} \\\hline -CCB & Change Control Board \\\hline +CAB & Calibration Acceptance Board \\\hline DM & Data Management \\\hline DMTN & DM Technical Note \\\hline LATISS & LSST Atmospheric Transmission Imager and Slitless Spectrograph \\\hline @@ -10,5 +10,4 @@ NCSA & National Center for Supercomputing Applications \\\hline US & United States \\\hline USDF & United States Data Facility \\\hline -YAML & Yet Another Markup Language \\\hline \end{longtable} diff --git a/figures/daily_processing.png b/figures/daily_processing.png new file mode 100644 index 0000000000000000000000000000000000000000..c46f4b82c26e0a7db0fead5416878c4724ac6f10 GIT binary patch literal 62927 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 literal 0 HcmV?d00001 diff --git a/figures/flowchart.png b/figures/flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..b753bc23e9efb103ab1a194086ee04e15510ae6c GIT binary patch literal 83583 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 A*#H0l literal 0 HcmV?d00001 diff --git a/myacronyms.txt b/myacronyms.txt index cc4fe07..b2c68ff 100644 --- a/myacronyms.txt +++ b/myacronyms.txt @@ -5,3 +5,4 @@ # # Example: # MIA:Missing In Action +CAB:Calibration Acceptance Board diff --git a/skipacronyms.txt b/skipacronyms.txt index 59ff14c..b538481 100644 --- a/skipacronyms.txt +++ b/skipacronyms.txt @@ -10,3 +10,4 @@ http p s A +YAML From 452d92cc46414372b6f937da55cd76b6e5606088 Mon Sep 17 00:00:00 2001 From: Christopher Waters Date: Thu, 15 Sep 2022 15:59:16 -0700 Subject: [PATCH 4/7] Update to fold in comments and suggestions. --- DMTN-222.tex | 54 +++++++++++++++++++++++++++++++++------------------- acronyms.tex | 2 -- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/DMTN-222.tex b/DMTN-222.tex index 1abea0e..27391d9 100644 --- a/DMTN-222.tex +++ b/DMTN-222.tex @@ -28,7 +28,7 @@ % \setDocCurator{The Curator of this Document} \setDocAbstract{% -This technote defines the best practices to be used for calibration generation, the verification that that calibration meets requirements, and when deciding if the calibration should be accepted for use. +This technote defines the best practices to be used for calibration generation, the verification that that calibration meets requirements, and when deciding if the calibration should be accepted for use in processing at both the summit and USDF. } % Change history defined here. @@ -36,7 +36,8 @@ % Fields: VERSION, DATE, DESCRIPTION, OWNER NAME. % See LPM-51 for version number policy. \setDocChangeRecord{% - \addtohist{1}{YYYY-MM-DD}{Unreleased.}{Chris Waters} + \addtohist{1}{2022-03-21}{Initial draft.}{Chris Waters} + \addtohist{2}{2022-09-14}{Corrected and clarified draft.}{Chris Waters} } @@ -52,11 +53,20 @@ \section{Introduction} -The purpose of this technote is to provide guidance on the procedures that should be used for the construction and management of calibrations. +The purpose of this technote is to provide guidance on the procedures that will be used for the construction and management of calibrations. -These guidelines should be followed for any calibration that will be added to the main public butler collection. For the purposes of this document, we will consider four cases of calibrations. First, calibrations generated for widespread use, using the main butler collection. Second, daily calibrations produced to monitor the stability and health of the camera. Third, curated calibrations that are defined by an \verb|obs_| package and must be ingested to the butler repository. Finally, calibrations that have been exported from one butler repository for use in another. Additional private calibrations produced for tests may also exist, but as those should be contained in a user-space collection, will not be discussed further. +These guidelines shall be followed for any calibration that will be added to the main public butler collection. For the purposes of this document, we will consider four cases of calibrations. -All of the discussion below assumes the work is being done as part of a ticketed project, and so a JIRA ticket number is available. This number is used below to provide a unique key for the collection names. This will allow the collections to be organized consistently, and the comments and documents attached to that ticket can be used for future reference in assessing those calibrations. Calibration acceptance can then be thought of as simply the ``review'' process for that ticket. +\begin{itemize} +\item Calibrations generated for widespread use, using the main butler collection. +\item Daily calibrations produced to monitor the stability and health of the camera. +\item Curated calibrations that are defined by an \verb|obs_| package and must be ingested to the butler repository, as they cannot be generated from raw data. The camera geometry calibration is an example of this type of calibration. +\item Calibrations that have been exported from one butler repository for use in another. +\end{itemize} + +Additional private calibrations produced for tests may also exist, but as those will only exist in a user-space collections, and will not be discussed further. + +The discussion below for updating the final combined calibrations assumes the work is being done as part of a ticketed project, and so a JIRA ticket number is available. This number is used below to provide a unique key for the collection names. This will allow the collections to be organized consistently, and the comments and documents attached to that ticket can be used for future reference in assessing those calibrations. Calibration acceptance can then be thought of as simply the ``review'' process for that ticket. Daily calibrations will use a different collection naming scheme as described below. Figure \ref{fig:flowchart} displays the relationship between the various stages of construction, validation, and use. @@ -71,35 +81,37 @@ \section{Generating New Calibrations} \subsection{Construction} -Calibrations will be generated directly from raw exposures as much as possible. The tasks and pipelines in the \verb|cp_pipe| package can produce all of the calibrations that are used for image processing, and can be supplemented as new corrections are developed. The main documentation for calibration construction is included in \verb|cp_pipe|, but the main points will be summarized here. +Calibrations will be generated directly from raw exposures as much as possible. The tasks and pipelines in the \verb|cp_pipe| package can produce all of the calibrations that are used for image processing, and can be supplemented as new corrections are developed. The main documentation for calibration construction is included in \verb|cp_pipe| at \hyperlink{https://pipelines.lsst.io/v/daily/modules/lsst.cp.pipe/constructing-calibrations.html}, but the main points will be summarized here. After identifying appropriate input exposures for the calibration to be constructed, the camera-specific pipeline definition is used to produce a proposed calibration. Following the recommendations in \citedsp{DMTN-167}, the butler collection should use the format \begin{verbatim} /calib//Gen. \end{verbatim} -\noindent where the ticket comes from the JIRA ticket describing this construction, the ``date string'' containing the date the calibration is constructed in \verb|YYYMMDD| format, and the iteration is an optional string to indicate multiple attempts at construction. +\noindent where the ticket comes from the JIRA ticket describing this construction, the ``date string'' containing the date the calibration is constructed in \verb|YYYMMDD| format, and the iteration is an optional string to indicate multiple attempts at construction. As an example, a hypothetical new bias would have a collection name like \verb|LATISS/calib/DM-12345/biasGen.20220915a|. -To ensure all butler repositories have a consistent set of calibrations, we have decided that only one processing location should perform the construction. This is currently the LSST development cluster at NCSA, and will move to the US Data Facility (USDF) when it becomes available. The process for transferring the calibrations to other butler sites is discussed below \ref{sec:calib_export}. +To ensure all butler repositories have a consistent set of calibrations, we have decided that only one processing location should perform the calibraion construction steps. The US Data Facility (USDF) is now operational, all calibrations used for the survey will be generated there. The process for transferring the calibrations to other butler sites is discussed below in Section \ref{sec:calib_export}. \subsection{Verification} -Once calibrations have been generated, the calibration should be compared against a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail the tests. At the minimum, the exposures used for the construction should be included, as this can identify problematic inputs that degrade the calibration quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. The input butler collections specified should prepend the construction collection to the list, to ensure that the verification process will use the correct calibration. The output butler collection should use the format +Once calibrations have been generated, the calibration should be compared against a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail the tests. At a minimum, the exposures used to construct the calibration should be included, as this can identify problematic inputs that degrade the calibration quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. The input butler collections specified should have the construction collection at the beginning of the list, to ensure that the verification process will find and use the calibration we wish to verify. The output butler collection should use the format \begin{verbatim} - /calib//verify + /calib//verify. \end{verbatim} -\noindent using the same fields as used for calibration construction. +\noindent using the same fields as used for calibration construction, making the verification collection for the example above \verb|LATISS/calib/DM-12345/verifyBias.20220915a|. -Adding exposures from outside the set used for construction can provide insight into the expected validity range for the calibration. As long as the metrics on those exposures remain within the limits defined in \citedsp{DMTN-101}, the calibration should be valid for the dates those exposures were taken. This can be used to establish the valid date ranges to be used when certifying the calibration. +Exposures from outside the set used for construction will be added to provide insight into the expected validity range for the calibration. As long as the metrics on those exposures remain within the limits defined in \citedsp{DMTN-101}, the calibration should continue to be valid for the dates those exposures were taken. This can be used to establish the valid date ranges to be used when certifying the calibration. -There are a set of ipython notebooks contained in the \verb|cp_verify| examples directory. These provide a way to quickly review the measured metric values, see how they compare to expectations, and to flip through the residual images to look for oddities and artifacts. Although these notebooks are easy to use for LATISS, they become increasingly unwieldy as the number of detectors increases. We will likely need to expand the set of visualization tools, pregenerating image mosaics and notebook results as part of the processing pipeline. +There are a set of ipython notebooks contained in the \verb|cp_verify| examples directory. These provide a way to quickly review the measured metric values, see how they compare to expectations, and to flip through the residual images to look for oddities and artifacts. Although these notebooks are easy to use for LATISS, they become increasingly unwieldy as the number of detectors increases. We will likely need to expand the set of visualization tools, pregenerating image mosaics and notebook results as part of the processing pipeline. It is expected that these tools will be defined and produced during commissioning, as we learn how much manual inspection is needed as part of verification. \subsection{Acceptance} -Processing calibrations through the \verb|cp_verify| pipelines is a requirement for calibrations that will be widely used, but it does not complete the process. A Calibration Acceptance Board (CAB) should be created that takes command of the final approval. Ideally, all verification metrics will succeed, and a quick check of residual exposures will show no unexpected features. In the more likely case that some metrics fail, this CAB will be tasked with deciding if the failures are fatal and the calibration should be fully rejected, or if the failures are small enough in number or impact that the calibration can be accepted for use despite them. This should work on a consensus basis, with any commentary and discussion taking place on the JIRA ticket page for the calibration construction work. There is no formal CAB at this time, but it should be a priority to establish one. +Processing calibrations through the \verb|cp_verify| pipelines is a requirement for calibrations that will be widely used, but it does not complete the process. A Calibration Acceptance Board (CAB) will be created that takes command of the final approval. Ideally, all verification metrics will succeed, and a quick check of residual exposures will show no unexpected features. In the more likely case that some metrics fail, this CAB will be tasked with deciding if the failures are fatal and the calibration should be fully rejected, or if the failures are small enough in number or impact that the calibration can be accepted for use despite them. This should work on a consensus basis, with any commentary and discussion taking place on the JIRA ticket page for the calibration construction work. + +There is no formal CAB at this time, but it should be a priority to establish one. The membership of this board \subsection{Certification} -Once the generated calibration has been verified and accepted, it can be certified for use for a given date range. Calibrations generated during commissioning will likely have impossibly long valid ranges (\verb|2020-01-01T00:00:00 - 2050-01-01T00:00:00| being the current default). This ensures that any data taken can be processed without needing to worry about changing configurations or pipeline errors.. As the survey approaches, the daily calibration processing should allow the verification metrics to be monitored, providing break points where new calibrations will be generated. With this monitoring, any changes that occur over long time scales can be anticipated and new calibrations constructed before a failure occurs in the daily calibration processing. +Once the generated calibration has been verified and accepted, it can be certified for use for a given date range. Calibrations generated during commissioning will likely have impossibly long valid ranges (\verb|2020-01-01T00:00:00 - 2050-01-01T00:00:00| being the current default). This ensures that any data taken can be processed without needing to worry about changing configurations or pipeline errors. As the survey approaches, the daily calibration processing should allow the verification metrics to be monitored, providing break points where new calibrations will be generated. With this monitoring, any changes that occur over long time scales can be anticipated and new calibrations constructed before a failure occurs in the daily calibration processing. \section{Daily Calibrations} @@ -119,9 +131,10 @@ \section{Daily Calibrations} Calibration Type & Cadence & $N_{\textrm{exposure}}$ \\ \hline \endhead - Bias & Daily & 15 \\ - Dark & Daily & 15 \\ - Flat & Daily\footnote{When possible, see text} & 15 \\ + Bias & Daily & 20 \\ + Dark & Daily & 20 \\ + Broadband Flat & Daily\footnote{When possible, see text} & 20 \\ + Narrowband Flat & When available\footnote{A four month cadence is expected} & \\ Defects & Weekly & Uses the bias, dark, flat exposures. \\ Gain & Daily & Uses the flat exposures. \\ PTC & As needed & N/A \\ @@ -141,7 +154,7 @@ \section{Daily Calibrations} \section{Curated Calibrations} -Curated calibrations can be ingested via the \verb|butler write-curated-calibrations| command. This command by default will attempt to write to the main `CAMERA/calib` collection. This is generally not desired, as it is useful for that collection name to point to a CHAINED butler collection, to allow for easier calibration management. Instead, a ticketed collection name should be used, as the following example illustrates for the LATISS camera. +Curated calibrations are those calibrations that cannot easily be generated from a series of exposures, or that require special hardware that will not be available at the summit. Currently, the camera geometry calibration is the only curated calibration. These calibrations will be ingested via the \verb|butler write-curated-calibrations| command. This command by default will attempt to write to the main \verb|CAMERA/calib| collection. This is generally not desired, as it is useful for that collection name to point to a CHAINED butler collection, to allow for easier calibration management. Instead, a ticketed collection name should be used, as the following example illustrates for the LATISS camera. \begin{verbatim} butler write-curated-calibrations $REPO lsst.obs.lsst.Latiss \ @@ -153,7 +166,7 @@ \section{Curated Calibrations} \section{Calibration Export} \label{sec:calib_export} -When calibrations have been generated, validated, approved, and certified at the main data facility, they should then be exported for use in other locations. The summit repositories need to be kept in sync with the data facility, and alternate processing locations also need this information. A calibration collection can be exported as follows: +When calibrations have been generated, validated, approved, and certified at the main data facility, they can be exported for use in other locations, including the summit and international processing sites. The summit repositories need to be kept in sync with the data facility, and alternate processing locations also need this information. A calibration collection can be exported as follows: \begin{verbatim} butler export-calibs $REPO ./export_directory LATISS/calib/DM-XYZ LATISS/calib/DM-ABC [...] @@ -179,6 +192,7 @@ \section{Calibration Export} This process could be automated in part, particularly by ensuring a default export location at the main data facility. If new calibrations are always exported to this location as they are certified, then any remote site need only rsync this location and import them. +Any change to the main public calibration collection will be documented in JIRA and in the summit night log, and announced widely within the project. \section{Conclusions} diff --git a/acronyms.tex b/acronyms.tex index bdebd36..ea93eb7 100644 --- a/acronyms.tex +++ b/acronyms.tex @@ -6,8 +6,6 @@ DM & Data Management \\\hline DMTN & DM Technical Note \\\hline LATISS & LSST Atmospheric Transmission Imager and Slitless Spectrograph \\\hline -LSST & Legacy Survey of Space and Time (formerly Large Synoptic Survey Telescope) \\\hline -NCSA & National Center for Supercomputing Applications \\\hline US & United States \\\hline USDF & United States Data Facility \\\hline \end{longtable} From 971fe3260db3623924524ed937a1940efb17b38a Mon Sep 17 00:00:00 2001 From: Christopher Waters Date: Thu, 15 Sep 2022 19:04:12 -0400 Subject: [PATCH 5/7] Fix hyperlink. --- DMTN-222.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DMTN-222.tex b/DMTN-222.tex index 27391d9..9607c4b 100644 --- a/DMTN-222.tex +++ b/DMTN-222.tex @@ -81,7 +81,7 @@ \section{Generating New Calibrations} \subsection{Construction} -Calibrations will be generated directly from raw exposures as much as possible. The tasks and pipelines in the \verb|cp_pipe| package can produce all of the calibrations that are used for image processing, and can be supplemented as new corrections are developed. The main documentation for calibration construction is included in \verb|cp_pipe| at \hyperlink{https://pipelines.lsst.io/v/daily/modules/lsst.cp.pipe/constructing-calibrations.html}, but the main points will be summarized here. +Calibrations will be generated directly from raw exposures as much as possible. The tasks and pipelines in the \verb|cp_pipe| package can produce all of the calibrations that are used for image processing, and can be supplemented as new corrections are developed. The main documentation for calibration construction is included in \verb|cp_pipe| at \url{https://pipelines.lsst.io/v/daily/modules/lsst.cp.pipe/constructing-calibrations.html}, but the main points will be summarized here. After identifying appropriate input exposures for the calibration to be constructed, the camera-specific pipeline definition is used to produce a proposed calibration. Following the recommendations in \citedsp{DMTN-167}, the butler collection should use the format \begin{verbatim} From 16ba2f3ca268d0a22ee117ff9454e20be35d5d8a Mon Sep 17 00:00:00 2001 From: Christopher Waters Date: Fri, 16 Sep 2022 16:35:47 -0700 Subject: [PATCH 6/7] Further updates. --- DMTN-222.tex | 32 +++++++++++++++----------------- acronyms.tex | 2 ++ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/DMTN-222.tex b/DMTN-222.tex index 9607c4b..de4f9ab 100644 --- a/DMTN-222.tex +++ b/DMTN-222.tex @@ -37,7 +37,7 @@ % See LPM-51 for version number policy. \setDocChangeRecord{% \addtohist{1}{2022-03-21}{Initial draft.}{Chris Waters} - \addtohist{2}{2022-09-14}{Corrected and clarified draft.}{Chris Waters} + \addtohist{2}{2022-09-16}{Corrected and clarified draft.}{Chris Waters} } @@ -53,12 +53,10 @@ \section{Introduction} -The purpose of this technote is to provide guidance on the procedures that will be used for the construction and management of calibrations. - -These guidelines shall be followed for any calibration that will be added to the main public butler collection. For the purposes of this document, we will consider four cases of calibrations. +The purpose of this technote is to provide guidance on the procedures that will be used for the construction and management of calibrations. These guidelines shall be followed for any calibration that will be added to the main public butler collection. For the purposes of this document, we will consider four cases of calibrations. \begin{itemize} -\item Calibrations generated for widespread use, using the main butler collection. +\item Calibrations generated for widespread use, using the main butler collection. These will be called ``combined calibrations'' below, and indicate those calibrations that are used for science processing. \item Daily calibrations produced to monitor the stability and health of the camera. \item Curated calibrations that are defined by an \verb|obs_| package and must be ingested to the butler repository, as they cannot be generated from raw data. The camera geometry calibration is an example of this type of calibration. \item Calibrations that have been exported from one butler repository for use in another. @@ -68,7 +66,7 @@ \section{Introduction} The discussion below for updating the final combined calibrations assumes the work is being done as part of a ticketed project, and so a JIRA ticket number is available. This number is used below to provide a unique key for the collection names. This will allow the collections to be organized consistently, and the comments and documents attached to that ticket can be used for future reference in assessing those calibrations. Calibration acceptance can then be thought of as simply the ``review'' process for that ticket. Daily calibrations will use a different collection naming scheme as described below. -Figure \ref{fig:flowchart} displays the relationship between the various stages of construction, validation, and use. +Figure \ref{fig:flowchart} displays the relationship between the various stages of construction, validation, and use of combined calibrations. Briefly, after constructing a proposed calibration, it is checked via the \verb|cp_verify| tasks to ensure that the new calibration meets all of the criteria specified in DMTN-101. If all of those tests pass, the calibration can be certified for use, assigned a validity range, and added to the main butler calibration collection. \begin{figure} \includegraphics[width=\linewidth]{figures/flowchart.png} @@ -77,11 +75,11 @@ \section{Introduction} \end{figure} -\section{Generating New Calibrations} +\section{Generating New Combined Calibrations} \subsection{Construction} -Calibrations will be generated directly from raw exposures as much as possible. The tasks and pipelines in the \verb|cp_pipe| package can produce all of the calibrations that are used for image processing, and can be supplemented as new corrections are developed. The main documentation for calibration construction is included in \verb|cp_pipe| at \url{https://pipelines.lsst.io/v/daily/modules/lsst.cp.pipe/constructing-calibrations.html}, but the main points will be summarized here. +Combined calibrations will be generated directly from raw exposures as much as possible. The tasks and pipelines in the \verb|cp_pipe| package can produce all of the calibrations that are used for image processing, and can be supplemented as new corrections are developed. The main documentation for calibration construction is included in \verb|cp_pipe| at \url{https://pipelines.lsst.io/v/daily/modules/lsst.cp.pipe/constructing-calibrations.html}, but the main points will be summarized here. After identifying appropriate input exposures for the calibration to be constructed, the camera-specific pipeline definition is used to produce a proposed calibration. Following the recommendations in \citedsp{DMTN-167}, the butler collection should use the format \begin{verbatim} @@ -93,7 +91,7 @@ \subsection{Construction} \subsection{Verification} -Once calibrations have been generated, the calibration should be compared against a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail the tests. At a minimum, the exposures used to construct the calibration should be included, as this can identify problematic inputs that degrade the calibration quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. The input butler collections specified should have the construction collection at the beginning of the list, to ensure that the verification process will find and use the calibration we wish to verify. The output butler collection should use the format +Once the propsed calibrations have been generated, the calibration should be compared against a set of input exposures using the \verb|cp_verify| tasks and pipelines. These tasks attempt to measure quality metrics from the individual calibrated exposures, and identify calibrations that fail the tests. At a minimum, the exposures used to construct the calibration should be included, as this can identify problematic inputs that degrade the calibration quality. An example of this is saturated flat exposures, which do not flat-field well, and should not be included in the final flat calibration. In running the \verb|cp_verify| tasks, the input butler collections specified should have the construction collection placed at the beginning of the list, to ensure that the verification process will find and use the calibration we wish to verify. The output butler collection should use the format \begin{verbatim} /calib//verify. \end{verbatim} @@ -105,13 +103,13 @@ \subsection{Verification} \subsection{Acceptance} -Processing calibrations through the \verb|cp_verify| pipelines is a requirement for calibrations that will be widely used, but it does not complete the process. A Calibration Acceptance Board (CAB) will be created that takes command of the final approval. Ideally, all verification metrics will succeed, and a quick check of residual exposures will show no unexpected features. In the more likely case that some metrics fail, this CAB will be tasked with deciding if the failures are fatal and the calibration should be fully rejected, or if the failures are small enough in number or impact that the calibration can be accepted for use despite them. This should work on a consensus basis, with any commentary and discussion taking place on the JIRA ticket page for the calibration construction work. +Processing calibrations through the \verb|cp_verify| pipelines is a requirement for calibrations that will be widely used, but it does not complete the process. A Calibration Acceptance Board (CAB) will be created that takes command of the final approval. Ideally, all verification metrics will succeed, and a quick check of residual exposures will show no unexpected features. In the more likely case that some metrics fail, this CAB will be tasked with deciding if the failures are fatal and the calibration should be fully rejected, or if the failures are small enough in number or impact that the calibration can be accepted for use despite them. This should work on a consensus basis, with any commentary and discussion taking place on the JIRA ticket page used for the calibration construction work. -There is no formal CAB at this time, but it should be a priority to establish one. The membership of this board +There is no formal CAB at this time, but it should be a priority to establish one. The membership of this board will be defined via a future RFC. \subsection{Certification} -Once the generated calibration has been verified and accepted, it can be certified for use for a given date range. Calibrations generated during commissioning will likely have impossibly long valid ranges (\verb|2020-01-01T00:00:00 - 2050-01-01T00:00:00| being the current default). This ensures that any data taken can be processed without needing to worry about changing configurations or pipeline errors. As the survey approaches, the daily calibration processing should allow the verification metrics to be monitored, providing break points where new calibrations will be generated. With this monitoring, any changes that occur over long time scales can be anticipated and new calibrations constructed before a failure occurs in the daily calibration processing. +Once the new combined calibration has been verified and accepted, it can be certified for use for a given date range. Calibrations generated during commissioning will likely have impossibly long valid ranges (\verb|2020-01-01T00:00:00 - 2050-01-01T00:00:00| being the current default). This ensures that any data taken can be processed without needing to worry about changing configurations or pipeline errors. As the survey approaches, the daily calibration processing should allow the verification metrics to be monitored, providing break points where new calibrations will be generated. With this monitoring, any changes that occur over long time scales can be anticipated and new calibrations constructed before a failure occurs in the daily calibration processing. \section{Daily Calibrations} @@ -119,10 +117,10 @@ \section{Daily Calibrations} The second processing path simply verifies these new exposures against the existing calibration set as shown in Figure \ref{fig:daily}. This monitors the long-term stability of the calibrations, and should be the default method used for the daily calibration processing. Table \ref{tab:cadence} lists suggested cadences and exposure count for each calibration type. As the instruments may be unavailable during construction and comissioning, exceptions are to be expected. For instance, as the lamp used for LATISS flat exposures must be manually switched on from the summit, the flat verification should be skipped when no one is available to do so. -As with the ticketed calibration processing, the use of standard collection names will make the results easy to find. Following the collections above, daily calibrations should construct and verify calibrations to output collections +As with the ticketed calibration processing, the use of standard collection names will make the results easy to find. Following the collections above, daily calibrations should construct and verify calibrations to organized output collections. These collections will replace the JIRA ticket number used for combined calibrations with either ``dailyInternal,'' for checks that generate a calibration from the exposures and use that for validation, or ``dailyExternal,'' for checks that validate the exposures against the existing set of combined calibrations. The date string will then be used to ensure unique collection names. \begin{verbatim} - /calib/daily/ - /calib/daily/verify + /calib/dailyInternal/ + /calib/dailyInternal/verify \end{verbatim} Any comments on the construction and verification should be added to the observing log for that date, with any anomalies or concerns raised to the Calibration Acceptance Board for further evaluation. @@ -154,7 +152,7 @@ \section{Daily Calibrations} \section{Curated Calibrations} -Curated calibrations are those calibrations that cannot easily be generated from a series of exposures, or that require special hardware that will not be available at the summit. Currently, the camera geometry calibration is the only curated calibration. These calibrations will be ingested via the \verb|butler write-curated-calibrations| command. This command by default will attempt to write to the main \verb|CAMERA/calib| collection. This is generally not desired, as it is useful for that collection name to point to a CHAINED butler collection, to allow for easier calibration management. Instead, a ticketed collection name should be used, as the following example illustrates for the LATISS camera. +Curated calibrations are those calibrations that cannot easily be generated from a series of exposures, or that require special hardware that will not be available at the summit. Currently, the camera geometry calibration is the only curated calibration in wide use. These calibrations will be ingested via the \verb|butler write-curated-calibrations| command. This command by default will attempt to write to the main \verb|CAMERA/calib| collection. This is generally not desired, as it is useful for that collection name to point to a CHAINED butler collection, to allow for easier calibration management. Instead, a ticketed collection name should be used, as the following example illustrates for the LATISS camera. \begin{verbatim} butler write-curated-calibrations $REPO lsst.obs.lsst.Latiss \ @@ -192,7 +190,7 @@ \section{Calibration Export} This process could be automated in part, particularly by ensuring a default export location at the main data facility. If new calibrations are always exported to this location as they are certified, then any remote site need only rsync this location and import them. -Any change to the main public calibration collection will be documented in JIRA and in the summit night log, and announced widely within the project. +Any change to the main public calibration collection will be documented in JIRA and in the summit night log, and announced via the community forum to ensure that all users are aware of the changes in the combined calibrations. \section{Conclusions} diff --git a/acronyms.tex b/acronyms.tex index ea93eb7..d4522c8 100644 --- a/acronyms.tex +++ b/acronyms.tex @@ -6,6 +6,8 @@ DM & Data Management \\\hline DMTN & DM Technical Note \\\hline LATISS & LSST Atmospheric Transmission Imager and Slitless Spectrograph \\\hline +PTC & Photon Transfer Curve \\\hline +RFC & Request For Comment \\\hline US & United States \\\hline USDF & United States Data Facility \\\hline \end{longtable} From 0ac1dab8ad34a0431080816917f0eeb73bec6938 Mon Sep 17 00:00:00 2001 From: Christopher Waters Date: Fri, 16 Sep 2022 19:37:56 -0400 Subject: [PATCH 7/7] Fix acronyms --- myacronyms.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/myacronyms.txt b/myacronyms.txt index b2c68ff..8ca334b 100644 --- a/myacronyms.txt +++ b/myacronyms.txt @@ -6,3 +6,4 @@ # Example: # MIA:Missing In Action CAB:Calibration Acceptance Board +PTC:Photon Transfer Curve