Coverage for python/lsst/cp/pipe/script/plot_ptc_dataset.py: 27%

22 statements  

« prev     ^ index     » next       coverage.py v6.4.1, created at 2022-06-15 12:09 +0000

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", ) 

22 

23 

24import argparse 

25import sys 

26from lsst.cp.pipe.ptc.plotPtc import PlotPhotonTransferCurveTask 

27 

28 

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) 

56 

57 return parser 

58 

59 

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) 

69 

70 plotPtc.runDataRef() 

71 except Exception as e: 

72 print(f"{e}", file=sys.stderr) 

73 return 1 

74 return 0