21 import lsst.pex.config
as pexConfig
24 from sqlalchemy.exc
import IntegrityError
28 """Config for MakeGen3DcrSubfiltersTask. 30 numSubfilters = pexConfig.Field(
31 doc=
"The number of subfilters to be used for chromatic modeling.",
36 filterNames = pexConfig.ListField(
37 doc=
"The filters to add chromatic subfilters to in the registry.",
45 ConfigClass = MakeGen3DcrSubfiltersConfig
46 _DefaultName =
"makeGen3DcrSubfilters" 48 """This is a task to construct the set of subfilters for chromatic modeling. 52 config : `MakeGen3DcrSubfiltersConfig` or None 53 Instance of a configuration class specifying task options, a default 54 config is created if value is None 58 super().
__init__(config=config, **kwargs)
60 def run(self, butler):
61 """Construct a set of subfilters for chromatic modeling. 65 butler : `lsst.daf.butler.Butler` 66 Butler repository to add the subfilter definitions to. 68 with butler.registry.transaction():
71 except IntegrityError
as err:
72 raise RuntimeError(f
"Subfilters for at least one filter of {self.config.filterNames} " 73 "are already defined.")
from err
76 """Add Subfilters to the given registry. 80 registry : `lsst.daf.butler.Registry` 81 The registry to add to. 84 for filterName
in self.config.filterNames:
85 self.log.info(f
"Initializing filter {filterName} with " 86 f
"{self.config.numSubfilters} subfilters")
87 for sub
in range(self.config.numSubfilters):
88 subfilterName = f
"{filterName}-{sub + 1}" 90 "abstract_filter": filterName,
91 "subfilter": subfilterName
93 registry.insertDimensionData(
"subfilter", *record)
def __init__(self, config=None, kwargs)
def register(self, registry)