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)
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)
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)
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)
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)
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)))
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)