class DeblendCoaddSourcesMultiConfig(DeblendCoaddSourcesBaseConfig): multibandDeblend = ConfigurableField( target=MultibandDeblendTask, doc="Task to deblend an images in multiple bands" ) coadds = InputDatasetField( doc="Exposure on which to run deblending", nameTemplate="{inputCoaddName}Coadd_calexp", storageClass="ExposureF", dimensions=("tract", "patch", "abstract_filter", "skymap") ) outputSchema = InitOutputDatasetField( doc="Output of the schema used in deblending task", nameTemplate="{outputCoaddName}Coadd_deblendedModel_schema", storageClass="SourceCatalog" ) fluxCatalogs = OutputDatasetField( doc="Flux catalogs produced by multiband deblending, not written " "if conserve flux is turned off", nameTemplate="{outputCoaddName}Coadd_deblendedFlux", storageClass="SourceCatalog", dimensions=("tract", "patch", "abstract_filter", "skymap") ) templateCatalogs = OutputDatasetField( doc="Template catalogs produced by multiband deblending", nameTemplate="{outputCoaddName}Coadd_deblendedModel", storageClass="SourceCatalog", dimensions=("tract", "patch", "abstract_filter", "skymap") ) def setDefaults(self): super().setDefaults() self.quantum.dimensions = ("tract", "patch", "skymap")
class PatchSkyMapTaskConfig(PipelineTaskConfig): coadd = InputDatasetField( name="deepCoadd_calexp", dimensions=["SkyMap", "Tract", "Patch", "AbstractFilter"], storageClass="ExposureF", scalar=True, doc="DatasetType for the input image") inputCatalog = InputDatasetField( name="deepCoadd_mergeDet", dimensions=["SkyMap", "Tract", "Patch"], storageClass="SourceCatalog", scalar=True, doc="DatasetType for the input catalog (merged detections).") outputCatalog = OutputDatasetField( name="deepCoadd_meas", dimensions=["SkyMap", "Tract", "Patch", "AbstractFilter"], storageClass="SourceCatalog", scalar=True, doc=("DatasetType for the output catalog " "(deblended per-band measurements)")) def setDefaults(self): # set dimensions of a quantum, this task uses per-tract-patch-filter quanta self.quantum.dimensions = [ "SkyMap", "Tract", "Patch", "AbstractFilter" ]
class ExamplePipelineTaskConfig(PipelineTaskConfig): input1 = InputDatasetField(name="", dimensions=[], storageClass="example", doc="Input for this task") input2 = InputDatasetField(name="", dimensions=[], storageClass="example", doc="Input for this task") output1 = OutputDatasetField(name="", dimensions=[], storageClass="example", doc="Output for this task") output2 = OutputDatasetField(name="", dimensions=[], storageClass="example", doc="Output for this task")
class DummyPipelineTaskConfig(PipelineTaskConfig): input = InputDatasetField(name="raw", units=["Camera", "Exposure", "Sensor"], storageClass="DecoratedImageU", scalar=True, doc="Input dataset type") output = OutputDatasetField(name="modified_raw", units=["Camera", "Exposure", "Sensor"], storageClass="DecoratedImageU", scalar=True, doc="Output dataset type") def setDefaults(self): self.quantum.units = ["Camera", "Exposure", "Sensor"]
class RawToCalexpTaskConfig(PipelineTaskConfig): input = InputDatasetField(name="raw", dimensions=["Instrument", "Exposure", "Detector"], storageClass="ExposureU", doc="Input dataset type for this task") output = OutputDatasetField(name="calexp", dimensions=["Instrument", "Visit", "Detector"], storageClass="ExposureF", scalar=True, doc="Output dataset type for this task") def setDefaults(self): # set dimensions of a quantum, this task uses per-visit-detector quanta self.quantum.dimensions = ["Instrument", "Visit", "Detector"]
class Test2Config(PipelineTaskConfig): input = InputDatasetField(name="input", dimensions=["Instrument", "Visit"], storageClass="example", doc="Input dataset type for this task") output = OutputDatasetField(name="output", dimensions=["Tract", "Patch"], storageClass="example", scalar=True, doc="Output dataset type for this task") def setDefaults(self): # this task combines all selected visits into a tract/patch, on # input it expects per-visit data, on output it produces per-patch. # Combining visits "destroys" Visit dimension in a quantum. self.quantum.dimensions = ["Instrument", "Tract", "Patch"]
class Test1Config(PipelineTaskConfig): input = InputDatasetField(name="input", dimensions=["Instrument", "Visit"], storageClass="example", scalar=True, doc="Input dataset type for this task") output = OutputDatasetField(name="output", dimensions=["Instrument", "Visit"], storageClass="example", scalar=True, doc="Output dataset type for this task") def setDefaults(self): # set dimensions of a quantum, this task uses per-visit quanta and it # expects datset dimensions to be the same self.quantum.dimensions = ["Instrument", "Visit"]
class CalexpToCoaddTaskConfig(PipelineTaskConfig): calexp = InputDatasetField(name="calexp", dimensions=["Instrument", "Visit", "Detector"], storageClass="ExposureF", doc="DatasetType for the input image") coadd = OutputDatasetField( name="deepCoadd_calexp", dimensions=["SkyMap", "Tract", "Patch", "AbstractFilter"], storageClass="ExposureF", scalar=True, doc="DatasetType for the output image") def setDefaults(self): # set dimensions of a quantum, this task uses per-tract-patch-filter quanta self.quantum.dimensions = [ "SkyMap", "Tract", "Patch", "AbstractFilter" ]
class DeblendCoaddSourcesSingleConfig(DeblendCoaddSourcesBaseConfig): singleBandDeblend = ConfigurableField( target=SourceDeblendTask, doc="Task to deblend an image in one band" ) coadd = InputDatasetField( doc="Exposure on which to run deblending", nameTemplate="{inputCoaddName}Coadd_calexp", storageClass="ExposureF", scalar=True, dimensions=("tract", "patch", "abstract_filter", "skymap") ) measureCatalog = OutputDatasetField( doc="The output measurement catalog of deblended sources", nameTemplate="{outputCoaddName}Coadd_deblendedFlux", scalar=True, storageClass="SourceCatalog", dimensions=("tract", "patch", "abstract_filter", "skymap") ) outputSchema = InitOutputDatasetField( doc="Output of the schema used in deblending task", nameTemplate="{outputCoaddName}Coadd_deblendedFlux_schema", storageClass="SourceCatalog" )
class CalibrateConfig(PipelineTaskConfig): """Config for CalibrateTask""" doWrite = pexConfig.Field( dtype=bool, default=True, doc="Save calibration results?", ) doWriteHeavyFootprintsInSources = pexConfig.Field( dtype=bool, default=True, doc="Include HeavyFootprint data in source table? If false then heavy " "footprints are saved as normal footprints, which saves some space" ) doWriteMatches = pexConfig.Field( dtype=bool, default=True, doc="Write reference matches (ignored if doWrite false)?", ) doWriteMatchesDenormalized = pexConfig.Field( dtype=bool, default=False, doc=("Write reference matches in denormalized format? " "This format uses more disk space, but is more convenient to " "read. Ignored if doWriteMatches=False or doWrite=False."), ) doAstrometry = pexConfig.Field( dtype=bool, default=True, doc="Perform astrometric calibration?", ) astromRefObjLoader = pexConfig.ConfigurableField( target=LoadIndexedReferenceObjectsTask, doc="reference object loader for astrometric calibration", ) photoRefObjLoader = pexConfig.ConfigurableField( target=LoadIndexedReferenceObjectsTask, doc="reference object loader for photometric calibration", ) astrometry = pexConfig.ConfigurableField( target=AstrometryTask, doc="Perform astrometric calibration to refine the WCS", ) requireAstrometry = pexConfig.Field( dtype=bool, default=True, doc=("Raise an exception if astrometry fails? Ignored if doAstrometry " "false."), ) doPhotoCal = pexConfig.Field( dtype=bool, default=True, doc="Perform phometric calibration?", ) requirePhotoCal = pexConfig.Field( dtype=bool, default=True, doc=("Raise an exception if photoCal fails? Ignored if doPhotoCal " "false."), ) photoCal = pexConfig.ConfigurableField( target=PhotoCalTask, doc="Perform photometric calibration", ) icSourceFieldsToCopy = pexConfig.ListField( dtype=str, default=("calib_psf_candidate", "calib_psf_used", "calib_psf_reserved"), doc=("Fields to copy from the icSource catalog to the output catalog " "for matching sources Any missing fields will trigger a " "RuntimeError exception. Ignored if icSourceCat is not provided.") ) matchRadiusPix = pexConfig.Field( dtype=float, default=3, doc=("Match radius for matching icSourceCat objects to sourceCat " "objects (pixels)"), ) checkUnitsParseStrict = pexConfig.Field( doc=("Strictness of Astropy unit compatibility check, can be 'raise', " "'warn' or 'silent'"), dtype=str, default="raise", ) detection = pexConfig.ConfigurableField( target=SourceDetectionTask, doc="Detect sources" ) doDeblend = pexConfig.Field( dtype=bool, default=True, doc="Run deblender input exposure" ) deblend = pexConfig.ConfigurableField( target=SourceDeblendTask, doc="Split blended sources into their components" ) measurement = pexConfig.ConfigurableField( target=SingleFrameMeasurementTask, doc="Measure sources" ) doApCorr = pexConfig.Field( dtype=bool, default=True, doc="Run subtask to apply aperture correction" ) applyApCorr = pexConfig.ConfigurableField( target=ApplyApCorrTask, doc="Subtask to apply aperture corrections" ) # If doApCorr is False, and the exposure does not have apcorrections # already applied, the active plugins in catalogCalculation almost # certainly should not contain the characterization plugin catalogCalculation = pexConfig.ConfigurableField( target=CatalogCalculationTask, doc="Subtask to run catalogCalculation plugins on catalog" ) doInsertFakes = pexConfig.Field( dtype=bool, default=False, doc="Run fake sources injection task" ) insertFakes = pexConfig.ConfigurableField( target=BaseFakeSourcesTask, doc="Injection of fake sources for testing purposes (must be " "retargeted)" ) icSourceSchema = InitInputDatasetField( doc="Schema produced by characterize image task, used to initialize this task", name="icSrc_schema", storageClass="SourceCatalog", ) outputSchema = InitOutputDatasetField( doc="Schema after CalibrateTask has been initialized", name="src_schema", storageClass="SourceCatalog", ) exposure = InputDatasetField( doc="Input image to calibrate", name="icExp", storageClass="ExposureF", dimensions=("instrument", "visit", "detector"), scalar=True ) background = InputDatasetField( doc="Backgrounds determined by characterize task", name="icExpBackground", storageClass="Background", dimensions=("instrument", "visit", "detector"), scalar=True ) icSourceCat = InputDatasetField( doc="Source catalog created by characterize task", name="icSrc", storageClass="SourceCatalog", dimensions=("instrument", "visit", "detector"), scalar=True ) astromRefCat = InputDatasetField( doc="Reference catalog to use for astrometry", name="ref_cat", storageClass="SimpleCatalog", dimensions=("skypix",), manualLoad=True ) photoRefCat = InputDatasetField( doc="Reference catalog to use for photometric calibration", name="ref_cat", storageClass="SimpleCatalog", dimensions=("skypix",), manualLoad=True ) outputExposure = OutputDatasetField( doc="Exposure after running calibration task", name="calexp", storageClass="ExposureF", dimensions=("instrument", "visit", "detector"), scalar=True ) outputCat = OutputDatasetField( doc="Source catalog produced in calibrate task", name="src", storageClass="SourceCatalog", dimensions=("instrument", "visit", "detector"), scalar=True ) outputBackground = OutputDatasetField( doc="Background models estimated in calibration task", name="calexpBackground", storageClass="Background", dimensions=("instrument", "visit", "detector"), scalar=True ) matches = OutputDatasetField( doc="Source/refObj matches from the astrometry solver", name="srcMatch", storageClass="Catalog", dimensions=("instrument", "visit", "detector"), scalar=True ) matchesDenormalized = OutputDatasetField( doc="Denormalized matches from astrometry solver", name="srcMatchFull", storageClass="Catalog", dimensions=("instrument", "visit", "detector"), scalar=True ) doWriteExposure = pexConfig.Field( dtype=bool, default=True, doc="Write the calexp? If fakes have been added then we do not want to write out the calexp as a " "normal calexp but as a fakes_calexp." ) def setDefaults(self): super().setDefaults() self.quantum.dimensions = ("instrument", "visit", "detector")