Coverage for python/lsst/cp/pipe/script/plot_ptc_dataset.py: 27%
22 statements
« prev ^ index » next coverage.py v6.4.2, created at 2022-07-15 03:52 -0700
« prev ^ index » next coverage.py v6.4.2, created at 2022-07-15 03:52 -0700
1# This file is part of cp_pipe.
2#
3# Developed for the LSST Data Management System.
4# This product includes software developed by the LSST Project
5# (https://www.lsst.org).
6# See the COPYRIGHT file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <https://www.gnu.org/licenses/>.
21__all__ = ("main", )
24import argparse
25import sys
26from lsst.cp.pipe.ptc.plotPtc import PlotPhotonTransferCurveTask
29def build_argparser():
30 """Construct an argument parser for the ``plot_ptc_dataset.py`` script.
31 Returns
32 -------
33 argparser : `argparse.ArgumentParser`
34 The argument parser that defines the ``plot_ptc_dataset.py``
35 command-line interface.
36 """
37 parser = argparse.ArgumentParser(description='Rewrite native FITS files from the test '
38 'stand to a standard format')
39 parser.add_argument('datasetFilename', help="datasetPtc (lsst.ip.isr.PhotonTransferCurveDataset) file"
40 "name (fits)", type=str)
41 parser.add_argument('--linearizerFileName', help="linearizer (isr.linearize.Linearizer) file"
42 "name (fits)", type=str, default=None)
43 parser.add_argument('--outDir', type=str,
44 help="Root directory to which to write outputs", default='.')
45 parser.add_argument('--detNum', type=int,
46 help="Detector number",
47 default=999)
48 parser.add_argument('--signalElectronsRelativeA', type=float,
49 help="Signal value for relative systematic bias between different"
50 "methods of estimating a_ij(Fig. 15 of Astier+19)",
51 default=75000)
52 parser.add_argument('--plotNormalizedCovariancesNumberOfBins', type=int,
53 help="Number of bins in `plotNormalizedCovariancesNumber` function "
54 "(Fig. 8, 10., of Astier+19)",
55 default=10)
57 return parser
60def main():
61 args = build_argparser().parse_args()
62 try:
63 plotPtc = PlotPhotonTransferCurveTask(
64 args.datasetFilename,
65 linearizerFileName=args.linearizerFileName,
66 outDir=args.outDir, detNum=args.detNum,
67 signalElectronsRelativeA=args.signalElectronsRelativeA,
68 plotNormalizedCovariancesNumberOfBins=args.plotNormalizedCovariancesNumberOfBins)
70 plotPtc.runDataRef()
71 except Exception as e:
72 print(f"{e}", file=sys.stderr)
73 return 1
74 return 0