24 __all__ = [
"BasePsfDeterminerConfig", 
"BasePsfDeterminerTask", 
"psfDeterminerRegistry"]
 
   29 import lsst.pex.config 
as pexConfig
 
   33     """Configuration that is likely to be shared by all PSF determiners 
   35     This is fairly sparse; more fields can be moved here once it is clear they are universal. 
   37     kernelSize = pexConfig.Field(
 
   38         doc=
"radius of the kernel to create, relative to the square root of the stellar quadrupole moments",
 
   42     kernelSizeMin = pexConfig.Field(
 
   43         doc=
"Minimum radius of the kernel",
 
   47     kernelSizeMax = pexConfig.Field(
 
   48         doc=
"Maximum radius of the kernel",
 
   55     """!Base class for PSF determiners 
   57     Register all PSF determiners with the psfDeterminerRegistry using: 
   58         psfDeterminerRegistry.register(name, class) 
   62     ConfigClass = BasePsfDeterminerConfig
 
   63     _DefaultName = 
"psfDeterminer" 
   65     def __init__(self, config, schema=None, **kwds):
 
   66         """Construct a PSF Determiner 
   68         @param[in]       config   an instance of pexConfig.Config that configures this algorithm 
   69         @param[in,out]   schema   an instance of afw.table.Schema used for sources; passing a 
   70                                   schema allows the determiner to reserve a flag field to mark stars 
   71                                   used in PSF measurement, but some PSF determiners ignore this argument 
   73         pipeBase.Task.__init__(self, config=config, **kwds)
 
   77         """Determine a PSF model 
   79         @param[in] exposure            exposure containing the psf candidates (lsst.afw.image.Exposure) 
   80         @param[in] psfCandidateList:   a sequence of PSF candidates (each an 
   81                                        lsst.meas.algorithms.PsfCandidate); typically obtained by 
   82                                        detecting sources and then running them through a star selector 
   83         @param[in,out] metadata        a place to save interesting items 
   86             - psf: the fit PSF; a subclass of lsst.afw.detection.Psf 
   87             - cellSet: the spatial cell set used to determine the PSF (lsst.afw.math.SpatialCellSet) 
   89         raise NotImplementedError(
"BasePsfDeterminerTask is abstract, subclasses must override this method")
 
   92 psfDeterminerRegistry = pexConfig.makeRegistry(
 
   93     doc=
"A registry of PSF determiners (subclasses of BasePsfDeterminerTask)",