lsst.fgcmcal gf2aa623d12+d6f602f7ae
Loading...
Searching...
No Matches
lsst.fgcmcal.fgcmOutputIlluminationCorrection Namespace Reference

Classes

class  FgcmOutputIlluminationCorrectionConnections

Variables

 camera : `lsst.afw.cameraGeom.camera`
 detector_id : `int`
 fgcm_fit_parameters_catalog : `lsst.afw.SimpleCatalog`
 filter_label_dict : `dict` [`str`: `lsst.afw.image.FilterLabel`]
 flat_metadata_dict : `dict` [`str`: (`uuid.UUID`, `lsst.pipe.base.PropertyList`]
 struct : `lsst.pipe.base.Struct`

Detailed Description

Make an illumination correction from the fgcmcal outputs.

Variable Documentation

◆ camera

lsst.fgcmcal.fgcmOutputIlluminationCorrection.camera : `lsst.afw.cameraGeom.camera`
    use_flat_metadata = lsst.pex.config.Field(
        doc="Use flat-field metadata for illumination correction metadata?",
        dtype=bool,
        default=True,
    )
    epoch_time = lsst.pex.config.Field(
        doc="Time string (UTC) that corresponds to a date in the desired epoch.",
        dtype=str,
        default=None,
        optional=False,
    )
    epoch_format = lsst.pex.config.Field(
        doc="Format for time string (e.g. iso, mjd, etc.), used by astropy.time.Time()",
        dtype=str,
        default="iso",
    )
    physical_filters = lsst.pex.config.ListField(
        doc="List of physical filters to produce illumination corrections.",
        dtype=str,
        default=[],
    )
    include_wcs_jacobian = lsst.pex.config.Field(
        doc="Include WCS jacobian in illumination correction?",
        dtype=bool,
        default=True,
    )
    approximate_wcs_jacobian = lsst.pex.config.Field(
        doc="Use a Chebyshev approximation of the WCS jacobian in illumination correction?",
        dtype=bool,
        default=True,
    )

    def validate(self):
        try:
            _ = Time(self.epoch_time, format=self.epoch_format)
        except Exception as e:
            raise ValueError(
                "Could not parse epoch_time/epoch_format ", e)


class FgcmOutputIlluminationCorrectionTask(PipelineTask):
ConfigClass = FgcmOutputIlluminationCorrectionConfig
_DefaultName = "fgcmOutputIlluminationCorrection"

def runQuantum(self, butlerQC, inputRefs, outputRefs):

    inputs = butlerQC.get(inputRefs)

    detector_id = butlerQC.quantum.dataId["detector"]

    filter_label_dict = {ref.dataId["physical_filter"]:
                         FilterLabel(physical=ref.dataId["physical_filter"], band=ref.dataId["band"])
                         for ref in outputRefs.illumination_corrections}

    flat_metadata_dict = {}
    if self.config.use_flat_metadata:
        for i, flat_metadata in enumerate(inputs["flat_metadata"]):
            ref = inputRefs.flat_metadata[i]
            flat_metadata_dict[ref.dataId["physical_filter"]] = (ref.id, flat_metadata)

    retval = self.run(
        camera=inputs["camera"],
        detector_id=detector_id,
        fgcm_fit_parameters_catalog=inputs["fgcm_fit_parameters_catalog"],
        filter_label_dict=filter_label_dict,
        flat_metadata_dict=flat_metadata_dict,
    )

    # And put the outputs.
    illum_corr_ref_dict = {ref.dataId["physical_filter"]:
                           ref for ref in outputRefs.illumination_corrections}
    for physical_filter in retval.illum_corr_dict:
        if physical_filter in illum_corr_ref_dict:
            self.log.debug(
                "Serializing illumination correction for detector %d, physical_filter %s",
                detector_id,
                physical_filter,
            )
            butlerQC.put(retval.illum_corr_dict[physical_filter], illum_corr_ref_dict[physical_filter])

def run(
    self,
    *,
    camera,
    detector_id,
    fgcm_fit_parameters_catalog,
    filter_label_dict,
    flat_metadata_dict={},
):

Definition at line 212 of file fgcmOutputIlluminationCorrection.py.

◆ detector_id

lsst.fgcmcal.fgcmOutputIlluminationCorrection.detector_id : `int`

Definition at line 214 of file fgcmOutputIlluminationCorrection.py.

◆ fgcm_fit_parameters_catalog

lsst.fgcmcal.fgcmOutputIlluminationCorrection.fgcm_fit_parameters_catalog : `lsst.afw.SimpleCatalog`

Definition at line 216 of file fgcmOutputIlluminationCorrection.py.

◆ filter_label_dict

lsst.fgcmcal.fgcmOutputIlluminationCorrection.filter_label_dict : `dict` [`str`: `lsst.afw.image.FilterLabel`]

Definition at line 218 of file fgcmOutputIlluminationCorrection.py.

◆ flat_metadata_dict

lsst.fgcmcal.fgcmOutputIlluminationCorrection.flat_metadata_dict : `dict` [`str`: (`uuid.UUID`, `lsst.pipe.base.PropertyList`]

Definition at line 220 of file fgcmOutputIlluminationCorrection.py.

◆ struct

lsst.fgcmcal.fgcmOutputIlluminationCorrection.struct : `lsst.pipe.base.Struct`

Definition at line 225 of file fgcmOutputIlluminationCorrection.py.