PlotPhotonTransferCurveTask¶
-
class
lsst.cp.pipe.PlotPhotonTransferCurveTask(datasetFilename, linearizerFileName=None, outDir='.', detNum=999, signalElectronsRelativeA=75000, plotNormalizedCovariancesNumberOfBins=10)¶ Bases:
objectA class to plot the dataset from MeasurePhotonTransferCurveTask.
Parameters: - datasetFileName :
str datasetPtc (lsst.ip.isr.PhotonTransferCurveDataset) file name (fits).
- linearizerFileName :
str, optional linearizer (isr.linearize.Linearizer) file name (fits).
- outDir :
str, optional Path to the output directory where the final PDF will be placed.
- detNum :
int, optional Detector number.
- signalElectronsRelativeA :
float, optional Signal value for relative systematic bias between different methods of estimating a_ij (Fig. 15 of Astier+19).
- plotNormalizedCovariancesNumberOfBins :
float, optional Number of bins in
plotNormalizedCovariancesNumberfunction (Fig. 8, 10., of Astier+19).
Methods Summary
ab_vs_dist(aDict, bDict, pdfPages[, bRange])Fig. binData(x, y, binIndex[, wy])Bin data (usually for display purposes). covAstierMakeAllPlots(dataset, pdfPages[, log])Make plots for MeasurePhotonTransferCurve task when doCovariancesAstier=True. findGroups(x, maxDiff)Group data into bins, with at most maxDiff distance between bins. indexForBins(x, nBins)Builds an index with regular binning. plotAcoeffsSum(aDict, bDict, pdfPages)Fig. plotCovariances(mu, covs, covsModel, …)Plot covariances and models: Cov00, Cov10, Cov01. plotNormalizedCovariances(i, j, inputMu, …)Plot C_ij/mu vs mu. plotRelativeBiasACoeffs(aDict, aDictNoB, …)Fig. plot_a_b(aDict, bDict, pdfPages[, bRange])Fig. run(filenameFull, datasetPtc[, linearizer, log])Make the plots for the PTC task Methods Documentation
-
static
ab_vs_dist(aDict, bDict, pdfPages, bRange=4)¶ Fig. 13 of Astier+19.
Values of a and b arrays fits, averaged over amplifiers, as a function of distance.
Parameters: - aDict :
dict[numpy.array] Dictionary keyed by amp names containing the fitted ‘a’ coefficients from the model in Eq. 20 of Astier+19 (if
ptcFitTypeisFULLCOVARIANCE).- bDict :
dict[numpy.array] Dictionary keyed by amp names containing the fitted ‘b’ coefficients from the model in Eq. 20 of Astier+19 (if
ptcFitTypeisFULLCOVARIANCE).- pdfPages :
matplotlib.backends.backend_pdf.PdfPages PDF file where the plots will be saved.
- bRange :
int Maximum lag for b arrays.
- aDict :
-
static
binData(x, y, binIndex, wy=None)¶ Bin data (usually for display purposes).
Parameters: - x :
numpy.array Data to bin.
- y :
numpy.array Data to bin.
- binIdex :
list Bin number of each datum.
- wy :
numpy.array Inverse rms of each datum to use when averaging (the actual weight is wy**2).
Returns: - xbin :
numpy.array Binned data in x.
- ybin :
numpy.array Binned data in y.
- wybin :
numpy.array Binned weights in y, computed from wy’s in each bin.
- sybin :
numpy.array Uncertainty on the bin average, considering actual scatter, and ignoring weights.
- x :
-
covAstierMakeAllPlots(dataset, pdfPages, log=None)¶ Make plots for MeasurePhotonTransferCurve task when doCovariancesAstier=True.
This function call other functions that mostly reproduce the plots in Astier+19. Most of the code is ported from Pierre Astier’s repository https://github.com/PierreAstier/bfptc
Parameters: - dataset :
lsst.ip.isr.PhotonTransferCurveDataset The dataset containing the necessary information to produce the plots.
- pdfPages :
matplotlib.backends.backend_pdf.PdfPages PDF file where the plots will be saved.
- log :
logging.Logger, optional Logger to handle messages
- dataset :
-
static
findGroups(x, maxDiff)¶ Group data into bins, with at most maxDiff distance between bins.
Parameters: Returns: - index :
list Bin indices.
- index :
-
static
indexForBins(x, nBins)¶ Builds an index with regular binning. The result can be fed into binData.
Parameters: - x :
numpy.array Data to bin.
- nBins :
int Number of bin.
Returns: - np.digitize(x, bins):
numpy.array Bin indices.
- x :
-
static
plotAcoeffsSum(aDict, bDict, pdfPages)¶ Fig. 14. of Astier+19
Cumulative sum of a_ij as a function of maximum separation. This plot displays the average over channels.
Parameters: - aDict :
dict[numpy.array] Dictionary keyed by amp names containing the fitted ‘a’ coefficients from the model in Eq. 20 of Astier+19 (if
ptcFitTypeisFULLCOVARIANCE).- bDict :
dict[numpy.array] Dictionary keyed by amp names containing the fitted ‘b’ coefficients from the model in Eq. 20 of Astier+19 (if
ptcFitTypeisFULLCOVARIANCE).- pdfPages :
matplotlib.backends.backend_pdf.PdfPages PDF file where the plots will be saved.
- aDict :
-
static
plotCovariances(mu, covs, covsModel, covsWeights, covsNoB, covsModelNoB, covsWeightsNoB, gainDict, noiseDict, aDict, bDict, pdfPages)¶ Plot covariances and models: Cov00, Cov10, Cov01.
Figs. 6 and 7 of Astier+19
Parameters: - mu :
dict[str,list] Dictionary keyed by amp name with mean signal values.
- covs :
dict[str,list] Dictionary keyed by amp names containing a list of measued covariances per mean flux.
- covsModel :
dict[str,list] Dictionary keyed by amp names containinging covariances model (Eq. 20 of Astier+19) per mean flux.
- covsWeights :
dict[str,list] Dictionary keyed by amp names containinging sqrt. of covariances weights.
- covsNoB :
dict[str,list] Dictionary keyed by amp names containing a list of measued covariances per mean flux (‘b’=0 in Astier+19).
- covsModelNoB :
dict[str,list] Dictionary keyed by amp names containing covariances model (with ‘b’=0 in Eq. 20 of Astier+19) per mean flux.
- covsWeightsNoB :
dict[str,list] Dictionary keyed by amp names containing sqrt. of covariances weights (‘b’ = 0 in Eq. 20 of Astier+19).
- gainDict :
dict[str,float] Dictionary keyed by amp names containing the gains in e-/ADU.
- noiseDict :
dict[str,float] Dictionary keyed by amp names containing the rms redout noise in e-.
- aDict :
dict[str,numpy.array] Dictionary keyed by amp names containing ‘a’ coefficients (Eq. 20 of Astier+19).
- bDict :
dict[str,numpy.array] Dictionary keyed by amp names containing ‘b’ coefficients (Eq. 20 of Astier+19).
- pdfPages :
matplotlib.backends.backend_pdf.PdfPages PDF file where the plots will be saved.
- mu :
-
plotNormalizedCovariances(i, j, inputMu, covs, covsModel, covsWeights, covsNoB, covsModelNoB, covsWeightsNoB, pdfPages, offset=0.004, numberOfBins=10, plotData=True, topPlot=False, log=None)¶ Plot C_ij/mu vs mu.
Figs. 8, 10, and 11 of Astier+19
Parameters: - i :
int Covariane lag
- j :
int Covariance lag
- inputMu :
dict[str,list] Dictionary keyed by amp name with mean signal values.
- covs :
dict[str,list] Dictionary keyed by amp names containing a list of measued covariances per mean flux.
- covsModel :
dict[str,list] Dictionary keyed by amp names containinging covariances model (Eq. 20 of Astier+19) per mean flux.
- covsWeights :
dict[str,list] Dictionary keyed by amp names containinging sqrt. of covariances weights.
- covsNoB :
dict[str,list] Dictionary keyed by amp names containing a list of measued covariances per mean flux (‘b’=0 in Astier+19).
- covsModelNoB :
dict[str,list] Dictionary keyed by amp names containing covariances model (with ‘b’=0 in Eq. 20 of Astier+19) per mean flux.
- covsWeightsNoB :
dict[str,list] Dictionary keyed by amp names containing sqrt. of covariances weights (‘b’ = 0 in Eq. 20 of Astier+19).
- expIdMask :
dict[str,list] Dictionary keyed by amp names containing the masked exposure pairs.
- pdfPages :
matplotlib.backends.backend_pdf.PdfPages PDF file where the plots will be saved.
- offset :
float, optional Constant offset factor to plot covariances in same panel (so they don’t overlap).
- numberOfBins :
int, optional Number of bins for top and bottom plot.
- plotData :
bool, optional Plot the data points?
- topPlot :
bool, optional Plot the top plot with the covariances, and the bottom plot with the model residuals?
- log :
logging.Logger, optional Logger to handle messages.
- i :
-
static
plotRelativeBiasACoeffs(aDict, aDictNoB, fullCovsModel, fullCovsModelNoB, signalElectrons, gainDict, pdfPages, maxr=None)¶ Fig. 15 in Astier+19.
Illustrates systematic bias from estimating ‘a’ coefficients from the slope of correlations as opposed to the full model in Astier+19.
Parameters: - aDict :
dict Dictionary of ‘a’ matrices (Eq. 20, Astier+19), with amp names as keys.
- aDictNoB :
dict Dictionary of ‘a’ matrices (‘b’= 0 in Eq. 20, Astier+19), with amp names as keys.
- fullCovsModel :
dict[str,list] Dictionary keyed by amp names containing covariances model per mean flux.
- fullCovsModelNoB :
dict[str,list] Dictionary keyed by amp names containing covariances model (with ‘b’=0 in Eq. 20 of Astier+19) per mean flux.
- signalElectrons :
float Signal at which to evaluate the a_ij coefficients.
- pdfPages :
matplotlib.backends.backend_pdf.PdfPages PDF file where the plots will be saved.
- gainDict :
dict[str,float] Dicgionary keyed by amp names with the gains in e-/ADU.
- maxr :
int, optional Maximum lag.
- aDict :
-
static
plot_a_b(aDict, bDict, pdfPages, bRange=3)¶ Fig. 12 of Astier+19
Color display of a and b arrays fits, averaged over channels.
Parameters: - aDict :
dict[numpy.array] Dictionary keyed by amp names containing the fitted ‘a’ coefficients from the model in Eq. 20 of Astier+19 (if
ptcFitTypeisFULLCOVARIANCE).- bDict :
dict[numpy.array] Dictionary keyed by amp names containing the fitted ‘b’ coefficients from the model in Eq. 20 of Astier+19 (if
ptcFitTypeisFULLCOVARIANCE).- pdfPages :
matplotlib.backends.backend_pdf.PdfPages PDF file where the plots will be saved.
- bRange :
int Maximum lag for b arrays.
- aDict :
-
run(filenameFull, datasetPtc, linearizer=None, log=None)¶ Make the plots for the PTC task
- datasetFileName :