Exemple #1
0
    def register(self, registry):
        camera = self.getCamera()
        obsMax = 2**31
        with registry.transaction():
            registry.syncDimensionData(
                "instrument", {
                    "name": self.getName(),
                    "detector_max": 64,
                    "visit_max": obsMax,
                    "exposure_max": obsMax,
                    "class_name": getFullTypeName(self),
                })

            for detector in camera:
                registry.syncDimensionData(
                    "detector", {
                        "instrument": self.getName(),
                        "id": detector.getId(),
                        "full_name": detector.getName(),
                        "name_in_raft": detector.getName()[1:],
                        "raft": detector.getName()[0],
                        "purpose": str(detector.getType()).split(".")[-1],
                    })

            self._registerFilters(registry)
Exemple #2
0
    def register(self, registry):
        '''
        This populates the database with instrument and detector-specific information, and is implemented with:
        butler register-instrument DATA_REPO lsst.obs.necam.NeCam
        '''

        #Register the instrument:
        obsMax = 2**5  #NeCam only ever took 32 images!
        registry.insertDimensionData(
            "instrument", {
                "name": self.getName(),
                "detector_max": 1,
                "visit_max": obsMax,
                "exposure_max": obsMax,
                "class_name": getFullTypeName(self)
            })

        #Register the detector(s):
        registry.insertDimensionData(
            "detector", {
                "instrument": self.getName(),
                "id": 1,
                "full_name": '01',
                "name_in_raft": None,
                "raft": None,
                "purpose": None
            })

        #Registers the filter(s):
        self._registerFilters(registry)
Exemple #3
0
 def register(self, registry):
     # Docstring inherited from Instrument.register
     camera = self.getCamera()
     # The maximum values below make Gen3's ObservationDataIdPacker produce
     # outputs that match Gen2's ccdExposureId.
     obsMax = 21474800
     with registry.transaction():
         registry.syncDimensionData(
             "instrument", {
                 "name": self.getName(),
                 "detector_max": 200,
                 "visit_max": obsMax,
                 "exposure_max": obsMax,
                 "class_name": getFullTypeName(self),
             })
         for detector in camera:
             registry.syncDimensionData(
                 "detector",
                 {
                     "instrument": self.getName(),
                     "id": detector.getId(),
                     "full_name": detector.getName(),
                     # TODO: make sure these definitions are consistent with
                     # those extracted by astro_metadata_translator, and
                     # test that they remain consistent somehow.
                     "name_in_raft": detector.getName().split("_")[1],
                     "raft": detector.getName().split("_")[0],
                     "purpose": str(detector.getType()).split(".")[-1],
                 })
         self._registerFilters(registry)
Exemple #4
0
    def testTypeNames(self):
        # Check types and also an object
        tests = [(Formatter, "lsst.daf.butler.core.formatter.Formatter"),
                 (doImport, "lsst.daf.butler.core.utils.doImport"),
                 (int, "builtins.int"),
                 (StorageClass, "lsst.daf.butler.core.storageClass.StorageClass"),
                 (StorageClass(None), "lsst.daf.butler.core.storageClass.StorageClass")]

        for item, typeName in tests:
            self.assertEqual(getFullTypeName(item), typeName)
Exemple #5
0
    def testTypeNames(self):
        # Check types and also an object
        tests = [(Formatter, "lsst.daf.butler.core.formatter.Formatter"),
                 (int, "int"),
                 (StorageClass,
                  "lsst.daf.butler.core.storageClass.StorageClass"),
                 (StorageClass(None),
                  "lsst.daf.butler.core.storageClass.StorageClass"),
                 (Registry, "lsst.daf.butler.registry.Registry")]

        for item, typeName in tests:
            self.assertEqual(getFullTypeName(item), typeName)
Exemple #6
0
 def register(self, registry):
     """Insert Instrument, physical_filter, and detector entries into a
     `Registry`.
     """
     dataId = {
         "instrument": self.getName(),
         "class_name": getFullTypeName(DummyCam)
     }
     with registry.transaction():
         registry.syncDimensionData("instrument", dataId)
         for f in ("dummy_g", "dummy_u"):
             registry.syncDimensionData(
                 "physical_filter",
                 dict(dataId, physical_filter=f, band=f[-1]))
         for d in (1, 2):
             registry.syncDimensionData(
                 "detector", dict(dataId, id=d, full_name=str(d)))
Exemple #7
0
    def register(self, registry):
        # Docstring inherited from Instrument.register
        # The maximum values below make Gen3's ObservationDataIdPacker produce
        # outputs that match Gen2's ccdExposureId.
        obsMax = self.translatorClass.max_exposure_id()
        with registry.transaction():
            registry.syncDimensionData(
                "instrument", {
                    "name": self.getName(),
                    "detector_max": self.translatorClass.DETECTOR_MAX,
                    "visit_max": obsMax,
                    "exposure_max": obsMax,
                    "class_name": getFullTypeName(self),
                })
            for detector in self.getCamera():
                registry.syncDimensionData(
                    "detector", self.extractDetectorRecord(detector))

            self._registerFilters(registry)