Modules

The classes and files for each module are listed below.

wep

This module is a high-level module to use other modules.

@startuml
class DonutImageCheck
class DonutDetector
class ParamReader
class WfEstimator
@enduml

Figure 1 Class diagram of wep

  • WfEstimator: Calculate the wavefront error in annular Zernike polynomials up to 22 terms based on the defocal donut images.

  • Utility: Utility functions used in WEP.

  • PlotUtil: Plot utility functions used in WEP.

  • ParamReader: Parameter reader class to read the yaml configuration files used in the calculation.

  • DonutImageCheck: Donut image check class to judge the donut image is effective or not.

  • DonutDetector: Detect donuts directly from an out of focus image by convolution with a template image.

wep.cwfs

This module calculates the wavefront error by solving the TIE.

@startuml
Algorithm *-- Instrument
CompensableImage *-- Image
Algorithm -- CompensableImage
CompensableImage ..> Instrument
CentroidDefault <|-- CentroidRandomWalk
CentroidDefault <|-- CentroidOtsu
CentroidDefault <|-- CentroidConvolveTemplate
CentroidFindFactory ..> CentroidRandomWalk
CentroidFindFactory ..> CentroidOtsu
CentroidFindFactory ..> CentroidConvolveTemplate
CentroidConvolveTemplate *-- CentroidRandomWalk
DonutTemplateDefault <|-- DonutTemplateModel
DonutTemplateDefault <|-- DonutTemplatePhosim
DonutTemplateFactory ..> DonutTemplateModel
DonutTemplateFactory ..> DonutTemplatePhosim
DonutTemplateModel ..> CompensableImage
DonutTemplateModel ..> Instrument
Image ..> CentroidFindFactory
Image *-- CentroidDefault
BaseCwfsTestCase ..> CompensableImage
BaseCwfsTestCase ..> Instrument
BaseCwfsTestCase ..> Algorithm
@enduml

Figure 2 Class diagram of wep.cwfs

  • Algorithm: Algorithm class to solve the TIE to get the wavefront error.

  • CompensableImage: Compensable image class to project the donut image from the image plane to the pupil plane.

  • Image: Image class to have the function to get the donut center.

  • Instrument: Instrument class to have the instrument information used in the Algorithm class to solve the TIE.

  • Tool: Annular Zernike polynomials related functions.

  • CentroidFindFactory: Factory for creating the centroid find object to calculate the centroid of donut.

  • CentroidDefault: Default centroid class.

  • CentroidRandomWalk: CentroidDefault child class to get the centroid of donut by the random walk model.

  • CentroidOtsu: CentroidDefault child class to get the centroid of donut by the Otsu’s method.

  • CentroidConvolveTemplate: CentroidDefault child class to get the centroids of one or more donuts in an image by convolution with a template donut.

  • BaseCwfsTestCase: Base class for CWFS tests.

  • DonutTemplateFactory: Factory for creating donut template objects used by CentroidConvolveTemplate.

  • DonutTemplateDefault: Default donut template class.

  • DonutTemplateModel: DonutTemplateDefault child class to make donut templates using an Instrument model.

  • DonutTemplatePhosim: DonutTemplateDefault child class to make donut templates from templates created with Phosim. See here for more information on creating and using Phosim donut templates.

wep.deblend

This module does the image deblending.

@startuml
class nelderMeadModify << (F,orchid) >>
DeblendDefault <|-- DeblendAdapt
DeblendDonutFactory ..> DeblendAdapt
DeblendAdapt ..> nelderMeadModify
@enduml

Figure 3 Class diagram of wep.deblend

  • DeblendDonutFactory: Factory for creating the deblend donut object to deblend the bright star donut from neighboring stars.

  • DeblendDefault: Default deblend class.

  • DeblendAdapt: DeblendDefault child class to do the deblending by the adaptive threshold method.

  • nelderMeadModify: Do the numerical optimation according to the Nelder-Mead algorithm.

wep.task

This module has the tasks to run WEP as a pipeline with Gen 3 LSST DM middleware.

@startuml
class RefCatalogInterface
CombineZernikesBaseTask <|-- CombineZernikesMeanTask
CombineZernikesBaseTask <|-- CombineZernikesSigmaClipTask
CombineZernikesBaseTask *-- CombineZernikesBaseConfig
CombineZernikesBaseConfig <|-- CombineZernikesSigmaClipTaskConfig
CombineZernikesSigmaClipTask *-- CombineZernikesSigmaClipTaskConfig
DonutSourceSelectorTask *-- DonutSourceSelectorTaskConfig
GenerateDonutCatalogOnlineTaskConfig *-- DonutSourceSelectorTask
GenerateDonutCatalogOnlineTask *-- GenerateDonutCatalogOnlineTaskConfig
GenerateDonutDirectDetectTaskConfig *-- GenerateDonutDirectDetectTaskConnections
GenerateDonutDirectDetectTask *-- GenerateDonutDirectDetectTaskConfig
GenerateDonutDirectDetectTask ..> DonutTemplateFactory
GenerateDonutCatalogWcsTaskConfig *-- DonutSourceSelectorTask
GenerateDonutCatalogWcsTaskConfig *-- GenerateDonutCatalogWcsTaskConnections
GenerateDonutCatalogWcsTask *-- GenerateDonutCatalogWcsTaskConfig
DonutStamps *-- DonutStamp
EstimateZernikesBaseTask ..> DonutStamps
EstimateZernikesBaseTask ..> DonutStamp
EstimateZernikesBaseConfig *-- EstimateZernikesBaseConnections
EstimateZernikesBaseTask *-- EstimateZernikesBaseConfig
EstimateZernikesBaseConnections <|-- EstimateZernikesScienceSensorTaskConnections
EstimateZernikesBaseConfig <|-- EstimateZernikesScienceSensorTaskConfig
EstimateZernikesBaseTask <|-- EstimateZernikesScienceSensorTask
EstimateZernikesBaseConfig *-- CombineZernikesSigmaClipTask
EstimateZernikesScienceSensorTaskConfig *-- EstimateZernikesScienceSensorTaskConnections
EstimateZernikesScienceSensorTask *-- EstimateZernikesScienceSensorTaskConfig
EstimateZernikesScienceSensorTask ..> DonutStamps
EstimateZernikesLatissTaskConnections --|> EstimateZernikesBaseConnections
EstimateZernikesLatissTaskConfig *-- EstimateZernikesLatissTaskConnections
EstimateZernikesLatissTaskConfig --|> EstimateZernikesBaseConfig
EstimateZernikesLatissTask *-- EstimateZernikesLatissTaskConfig
EstimateZernikesLatissTask --|> EstimateZernikesBaseTask
EstimateZernikesLatissTask ..> DonutStamps
EstimateZernikesBaseConnections <|-- EstimateZernikesCwfsTaskConnections
EstimateZernikesBaseConfig <|-- EstimateZernikesCwfsTaskConfig
EstimateZernikesBaseTask <|-- EstimateZernikesCwfsTask
EstimateZernikesCwfsTaskConfig *-- EstimateZernikesCwfsTaskConnections
EstimateZernikesCwfsTask *-- EstimateZernikesCwfsTaskConfig
EstimateZernikesCwfsTask ..> DonutStamps
CutOutDonutsBaseTaskConfig <|-- CutOutDonutsCwfsTaskConfig
CutOutDonutsBaseTask <|-- CutOutDonutsCwfsTask
CutOutDonutsCwfsTaskConfig *-- CutOutDonutsBaseTaskConnections
CutOutDonutsCwfsTask *-- CutOutDonutsCwfsTaskConfig
CutOutDonutsCwfsTask ..> DonutStamps
CutOutDonutsBaseTaskConfig <|-- CutOutDonutsScienceSensorTaskConfig
CutOutDonutsBaseTask <|-- CutOutDonutsScienceSensorTask
CutOutDonutsScienceSensorTaskConfig *-- CutOutDonutsBaseTaskConnections
CutOutDonutsScienceSensorTask *-- CutOutDonutsScienceSensorTaskConfig
CutOutDonutsBaseTaskConnections <|-- CutOutDonutsScienceSensorTaskConnections
CutOutDonutsScienceSensorTaskConfig *-- CutOutDonutsScienceSensorTaskConnections
CutOutDonutsScienceSensorTask ..> DonutStamps
CutOutDonutsBaseTaskConfig *-- CutOutDonutsBaseTaskConnections
CutOutDonutsBaseTask *-- CutOutDonutsBaseTaskConfig
CutOutDonutsBaseTask ..> DonutStamps
CutOutDonutsBaseTask ..> DonutStamp
CalcZernikesTaskConfig *-- CombineZernikesSigmaClipTask
CalcZernikesTaskConfig *-- CalcZernikesTaskConnections
CalcZernikesTask *-- CalcZernikesTaskConfig
CalcZernikesTask ..> DonutStamps
@enduml

Figure 4 Class diagram of wep.task

  • GenerateDonutDirectDetectTaskConnections: Connections setup for GenerateDonutDirectDetectTask to run in a pipeline with Gen 3 middleware.

  • GenerateDonutDirectDetectTaskConfig: Configuration setup for GenerateDonutDirectDetectTask.

  • GenerateDonutDirectDetectTask: Gen 3 middleware task to convolve the defocal postISRCCD exposure with a donut template and and create a catalog of donut sources for that exposure.

  • GenerateDonutCatalogOnlineTaskConfig: Configuration setup for GenerateDonutCatalogOnlineTask.

  • GenerateDonutCatalogOnlineTask: Task to take pointing information and create a catalog of donut sources in that pointing. Not a pipeline task.

  • GenerateDonutCatalogWcsTaskConnections: Connections setup for GenerateDonutCatalogWcsTask to run in a pipeline with Gen 3 middleware.

  • GenerateDonutCatalogWcsTaskConfig: Configuration setup for GenerateDonutCatalogWcsTask.

  • GenerateDonutCatalogWcsTask: Gen 3 middleware task to take the WCS from each detector in a postISRCCD exposure and create a catalog of donut sources for that exposure.

  • DonutSourceSelectorTaskConfig: Configuration setup for DonutSourceSelectorTask.

  • DonutSourceSelectorTask: Filter a reference catalog according to parameters specified in DonutSourceSelectorTaskConfig to create a catalog of donut sources acceptable for EstimateZernikes…Task.

  • DonutStamp: Storage class for a single donut postage stamp and associated metadata.

  • DonutStamps: Gen 3 Butler readable storage class for a list of DonutStamp objects with helper functions to get metadata and to save DonutStamps object as FITS file.

  • EstimateZernikesBaseTaskConnections: Base connections class for EstimateZernikes tasks.

  • EstimateZernikesBaseTaskConfig: Base configuration class for EstimateZernikes tasks.

  • EstimateZernikesBaseTask: Base class for EstimateZernikes tasks.

  • EstimateZernikesScienceSensorTaskConnections: Connections setup for EstimateZernikesScienceSensorTask to run in a pipeline with Gen 3 middleware.

  • EstimateZernikesScienceSensorTaskConfig: Configuration setup for EstimateZernikesScienceSensorTask.

  • EstimateZernikesScienceSensorTask: Gen 3 middleware task to take exposures and donut source catalogs and calculate Zenikes coefficients for each CCD when running LSSTCam in full-array mode (FAM) or LSSTComCam. Saves Zernike coefficients and associated DonutStamps to Gen 3 repository.

  • EstimateZernikesLatissTaskConnections: Connections setup for EstimateZernikesLatissTask to run in a pipeline with Gen 3 middleware.

  • EstimateZernikesLatissTaskConfig: Configuration setup for EstimateZernikesLatissTask.

  • EstimateZernikesLatissTask: Gen 3 middleware task to take exposures and donut source catalogs and calculate Zenikes coefficients for each CCD when running LATISS (auxiliary telescope). Saves Zernike coefficients and associated DonutStamps to Gen 3 repository.

  • EstimateZernikesCwfsTaskConnections: Connections setup for EstimateZernikesCwfsTask to run in a pipeline with Gen 3 middleware.

  • EstimateZernikesCwfsTaskConfig: Configuration setup for EstimateZernikesCwfsTask.

  • EstimateZernikesCwfsTask: Gen 3 middleware task to take exposures and donut source catalogs and calculate Zenikes coefficients for each CCD when running on corner wave front sensors (CWFS). Saves Zernike coefficients and associated DonutStamps to Gen 3 repository.

  • RefCatalogInterface: Tools to pick out the pieces of a reference catalog in the Gen3 Butler that cover the sky area of a pointing.

  • CombineZernikesBaseTask: Base class for CombineZernikes tasks that combine the Zernike coefficients from multiple donuts on a detector into a single set of coefficients for the detector.

  • CombineZernikesBaseConfig: Configuration setup for CombineZernikesBaseTask.

  • CombineZernikesMeanTask: Gen 3 middleware task to combine the Zernike coefficients using an unweighted mean of coefficients from all donut pairs.

  • CombineZernikesSigmaClipTask: Gen 3 middleware task to combine the Zernike coefficients with a sigma clipping method that will remove donuts with outlier Zernike values from the final averaging of donut pairs.

  • CombineZernikesSigmaClipTaskConfig: Configuration setup for CombineZernikesSigmaClipTask.

  • CalcZernikesTask: Gen 3 middleware task to calculate the zernikes from donut stamps that already exist in the butler. This is different from EstimateZernikesTasks that create the donut stamps and calculate the Zernikes as part of the same task.

  • CalcZernikesTaskConnections: Connections setup for CalcZernikesTask.

  • CalcZernikesTaskConfig: Configuration setup for CalcZernikesTask.

  • CutOutDonutsBaseTask: Base class for CutOutDonuts tasks.

  • CutOutDonutsBaseTaskConnections: Base connections class for CutOutDonuts tasks.

  • CutOutDonutsBaseTaskConfig: Base configuration class for CutOutDonuts tasks.

  • CutOutDonutsCwfsTask: Gen 3 middleware task to cut out donut stamps on LSST Corner Wavefront Sensors from donut catalogs produced by GenerateDonutCatalogs tasks.

  • CutOutDonutsCwfsTaskConfig: Configuration setup for CutOutDonutsCwfsTask.

  • CutOutDonutsScienceSensorTask: Gen 3 middleware task to cut out donut stamps on science sensors from donut catalogs produced by GenerateDonutCatalogs tasks.

  • CutOutDonutsScienceSensorTaskConnections: Connections setup for CutOutDonutsScienceSensorTask.

  • CutOutDonutsScienceSensorTaskConfig: Configuration setup for CutOutDonutsScienceSensorTask.