LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+f5613e8b4f,g1470d8bcf6+190ad2ba91,g14a832a312+311607e4ab,g2079a07aa2+86d27d4dc4,g2305ad1205+a8e3196225,g295015adf3+b67ee847e5,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+a761f810f3,g487adcacf7+17c8fdbcbd,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+65b5bd823e,g5a732f18d5+53520f316c,g64a986408d+f5613e8b4f,g6c1bc301e9+51106c2951,g858d7b2824+f5613e8b4f,g8a8a8dda67+585e252eca,g99cad8db69+6729933424,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e9bba80f27,gc120e1dc64+eee469a5e5,gc28159a63d+0e5473021a,gcf0d15dbbd+a761f810f3,gdaeeff99f8+f9a426f77a,ge6526c86ff+d4c1d4bfef,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf1cff7945b+f5613e8b4f,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Protected Attributes | List of all members
lsst.ip.isr.calibType.IsrProvenance Class Reference
Inheritance diagram for lsst.ip.isr.calibType.IsrProvenance:
lsst.ip.isr.calibType.IsrCalib

Public Member Functions

 __init__ (self, calibType="unknown", **kwargs)
 
 __str__ (self)
 
 __eq__ (self, other)
 
 updateMetadata (self, setDate=False, **kwargs)
 
 fromDataIds (self, dataIdList)
 
 fromTable (cls, tableList)
 
 fromDict (cls, dictionary)
 
 toDict (self)
 
 toTable (self)
 

Public Attributes

 calibType
 
 dimensions
 
 dataIdList
 

Static Protected Attributes

str _OBSTYPE = "IsrProvenance"
 

Detailed Description

Class for the provenance of data used to construct calibration.

Provenance is not really a calibration, but we would like to
record this when constructing the calibration, and it provides an
example of the base calibration class.

Parameters
----------
instrument : `str`, optional
    Name of the instrument the data was taken with.
calibType : `str`, optional
    Type of calibration this provenance was generated for.
detectorName : `str`, optional
    Name of the detector this calibration is for.
detectorSerial : `str`, optional
    Identifier for the detector.

Definition at line 686 of file calibType.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.ip.isr.calibType.IsrProvenance.__init__ ( self,
calibType = "unknown",
** kwargs )

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 707 of file calibType.py.

708 **kwargs):
709 self.calibType = calibType
710 self.dimensions = set()
711 self.dataIdList = list()
712
713 super().__init__(**kwargs)
714
715 self.requiredAttributes.update(["calibType", "dimensions", "dataIdList"])
716
daf::base::PropertySet * set
Definition fits.cc:931

Member Function Documentation

◆ __eq__()

lsst.ip.isr.calibType.IsrProvenance.__eq__ ( self,
other )
Calibration equivalence.

Running ``calib.log.setLevel(0)`` enables debug statements to
identify problematic fields.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 720 of file calibType.py.

720 def __eq__(self, other):
721 return super().__eq__(other)
722

◆ __str__()

lsst.ip.isr.calibType.IsrProvenance.__str__ ( self)

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 717 of file calibType.py.

717 def __str__(self):
718 return f"{self.__class__.__name__}(obstype={self._OBSTYPE}, calibType={self.calibType}, )"
719

◆ fromDataIds()

lsst.ip.isr.calibType.IsrProvenance.fromDataIds ( self,
dataIdList )
Update provenance from dataId List.

Parameters
----------
dataIdList : `list` [`lsst.daf.butler.DataId`]
    List of dataIds used in generating this calibration.

Definition at line 737 of file calibType.py.

737 def fromDataIds(self, dataIdList):
738 """Update provenance from dataId List.
739
740 Parameters
741 ----------
742 dataIdList : `list` [`lsst.daf.butler.DataId`]
743 List of dataIds used in generating this calibration.
744 """
745 for dataId in dataIdList:
746 for key in dataId:
747 if key not in self.dimensions:
748 self.dimensions.add(key)
749 self.dataIdList.append(dataId)
750

◆ fromDict()

lsst.ip.isr.calibType.IsrProvenance.fromDict ( cls,
dictionary )
Construct provenance from a dictionary.

Parameters
----------
dictionary : `dict`
    Dictionary of provenance parameters.

Returns
-------
provenance : `lsst.ip.isr.IsrProvenance`
    The provenance defined in the tables.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 788 of file calibType.py.

788 def fromDict(cls, dictionary):
789 """Construct provenance from a dictionary.
790
791 Parameters
792 ----------
793 dictionary : `dict`
794 Dictionary of provenance parameters.
795
796 Returns
797 -------
798 provenance : `lsst.ip.isr.IsrProvenance`
799 The provenance defined in the tables.
800 """
801 calib = cls()
802 if calib._OBSTYPE != dictionary["metadata"]["OBSTYPE"]:
803 raise RuntimeError(f"Incorrect calibration supplied. Expected {calib._OBSTYPE}, "
804 f"found {dictionary['metadata']['OBSTYPE']}")
805 calib.updateMetadata(setDate=False, setCalibInfo=True, **dictionary["metadata"])
806
807 # These properties should be in the metadata, but occasionally
808 # are found in the dictionary itself. Check both places,
809 # ending with `None` if neither contains the information.
810 calib.calibType = dictionary["calibType"]
811 calib.dimensions = set(dictionary["dimensions"])
812 calib.dataIdList = dictionary["dataIdList"]
813
814 calib.updateMetadata()
815 return calib
816

◆ fromTable()

lsst.ip.isr.calibType.IsrProvenance.fromTable ( cls,
tableList )
Construct provenance from table list.

Parameters
----------
tableList : `list` [`lsst.afw.table.Table`]
    List of tables to construct the provenance from.

Returns
-------
provenance : `lsst.ip.isr.IsrProvenance`
    The provenance defined in the tables.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 752 of file calibType.py.

752 def fromTable(cls, tableList):
753 """Construct provenance from table list.
754
755 Parameters
756 ----------
757 tableList : `list` [`lsst.afw.table.Table`]
758 List of tables to construct the provenance from.
759
760 Returns
761 -------
762 provenance : `lsst.ip.isr.IsrProvenance`
763 The provenance defined in the tables.
764 """
765 table = tableList[0]
766 metadata = table.meta
767 inDict = dict()
768 inDict["metadata"] = metadata
769 inDict["calibType"] = metadata["calibType"]
770 inDict["dimensions"] = set()
771 inDict["dataIdList"] = list()
772
773 schema = dict()
774 for colName in table.columns:
775 schema[colName.lower()] = colName
776 inDict["dimensions"].add(colName.lower())
777 inDict["dimensions"] = sorted(inDict["dimensions"])
778
779 for row in table:
780 entry = dict()
781 for dim in sorted(inDict["dimensions"]):
782 entry[dim] = row[schema[dim]]
783 inDict["dataIdList"].append(entry)
784
785 return cls.fromDict(inDict)
786

◆ toDict()

lsst.ip.isr.calibType.IsrProvenance.toDict ( self)
Return a dictionary containing the provenance information.

Returns
-------
dictionary : `dict`
    Dictionary of provenance.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 817 of file calibType.py.

817 def toDict(self):
818 """Return a dictionary containing the provenance information.
819
820 Returns
821 -------
822 dictionary : `dict`
823 Dictionary of provenance.
824 """
825 self.updateMetadata()
826
827 outDict = {}
828
829 metadata = self.getMetadata()
830 outDict["metadata"] = metadata
831 outDict["detectorName"] = self._detectorName
832 outDict["detectorSerial"] = self._detectorSerial
833 outDict["detectorId"] = self._detectorId
834 outDict["instrument"] = self._instrument
835 outDict["calibType"] = self.calibType
836 outDict["dimensions"] = list(self.dimensions)
837 outDict["dataIdList"] = self.dataIdList
838
839 return outDict
840

◆ toTable()

lsst.ip.isr.calibType.IsrProvenance.toTable ( self)
Return a list of tables containing the provenance.

This seems inefficient and slow, so this may not be the best
way to store the data.

Returns
-------
tableList : `list` [`lsst.afw.table.Table`]
    List of tables containing the provenance information

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 841 of file calibType.py.

841 def toTable(self):
842 """Return a list of tables containing the provenance.
843
844 This seems inefficient and slow, so this may not be the best
845 way to store the data.
846
847 Returns
848 -------
849 tableList : `list` [`lsst.afw.table.Table`]
850 List of tables containing the provenance information
851 """
852 tableList = []
853 self.updateMetadata(setDate=True, setCalibInfo=True)
854
855 catalog = Table(rows=self.dataIdList,
856 names=self.dimensions)
857 filteredMetadata = {k: v for k, v in self.getMetadata().toDict().items() if v is not None}
858 catalog.meta = filteredMetadata
859 tableList.append(catalog)
860 return tableList
std::vector< SchemaItem< Flag > > * items

◆ updateMetadata()

lsst.ip.isr.calibType.IsrProvenance.updateMetadata ( self,
setDate = False,
** kwargs )
Update calibration metadata.

Parameters
----------
setDate : `bool`, optional
    Update the ``CALIBDATE`` fields in the metadata to the current
    time. Defaults to False.
kwargs : `dict` or `collections.abc.Mapping`, optional
    Other keyword parameters to set in the metadata.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 723 of file calibType.py.

723 def updateMetadata(self, setDate=False, **kwargs):
724 """Update calibration metadata.
725
726 Parameters
727 ----------
728 setDate : `bool`, optional
729 Update the ``CALIBDATE`` fields in the metadata to the current
730 time. Defaults to False.
731 kwargs : `dict` or `collections.abc.Mapping`, optional
732 Other keyword parameters to set in the metadata.
733 """
734 kwargs["calibType"] = self.calibType
735 super().updateMetadata(setDate=setDate, **kwargs)
736

Member Data Documentation

◆ _OBSTYPE

str lsst.ip.isr.calibType.IsrProvenance._OBSTYPE = "IsrProvenance"
staticprotected

Definition at line 705 of file calibType.py.

◆ calibType

lsst.ip.isr.calibType.IsrProvenance.calibType

Definition at line 709 of file calibType.py.

◆ dataIdList

lsst.ip.isr.calibType.IsrProvenance.dataIdList

Definition at line 711 of file calibType.py.

◆ dimensions

lsst.ip.isr.calibType.IsrProvenance.dimensions

Definition at line 710 of file calibType.py.


The documentation for this class was generated from the following file: