def testSetVisitInfoMetadataMissingValues(self): """If a value is unknown then it should not be written to the metadata""" visitInfo = afwImage.VisitInfo() # only rot type is known metadata = PropertyList() afwImage.setVisitInfoMetadata(metadata, visitInfo) self.assertEqual(metadata.getScalar("ROTTYPE"), RotTypeEnumNameDict[afwImage.RotType.UNKNOWN]) self.assertEqual(metadata.nameCount(), 1)
def testStripVisitInfoKeywords(self): for argList in (self.data1, self.data2): visitInfo = afwImage.VisitInfo(*argList) metadata = PropertyList() afwImage.setVisitInfoMetadata(metadata, visitInfo) # add an extra keyword that will not be stripped metadata.set("EXTRA", 5) self.assertEqual(metadata.nameCount(), 21) afwImage.stripVisitInfoKeywords(metadata) self.assertEqual(metadata.nameCount(), 1)
def testSetVisitInfoMetadata(self): for item in (self.data1, self.data2): visitInfo = afwImage.VisitInfo( item.exposureId, item.exposureTime, item.darkTime, item.date, item.ut1, item.era, item.boresightRaDec, item.boresightAzAlt, item.boresightAirmass, item.boresightRotAngle, item.rotType, item.observatory, item.weather, ) metadata = PropertyList() afwImage.setVisitInfoMetadata(metadata, visitInfo) self.assertEqual(metadata.nameCount(), 20) self.assertEqual(metadata.getScalar("EXPID"), item.exposureId) self.assertEqual(metadata.getScalar("EXPTIME"), item.exposureTime) self.assertEqual(metadata.getScalar("DARKTIME"), item.darkTime) self.assertEqual(metadata.getScalar("DATE-AVG"), item.date.toString(DateTime.TAI)) self.assertEqual(metadata.getScalar("TIMESYS"), "TAI") self.assertEqual(metadata.getScalar("MJD-AVG-UT1"), item.ut1) self.assertEqual(metadata.getScalar("AVG-ERA"), item.era.asDegrees()) self.assertEqual(metadata.getScalar("BORE-RA"), item.boresightRaDec[0].asDegrees()) self.assertEqual(metadata.getScalar("BORE-DEC"), item.boresightRaDec[1].asDegrees()) self.assertEqual(metadata.getScalar("BORE-AZ"), item.boresightAzAlt[0].asDegrees()) self.assertEqual(metadata.getScalar("BORE-ALT"), item.boresightAzAlt[1].asDegrees()) self.assertEqual(metadata.getScalar("BORE-AIRMASS"), item.boresightAirmass) self.assertEqual(metadata.getScalar("BORE-ROTANG"), item.boresightRotAngle.asDegrees()) self.assertEqual(metadata.getScalar("ROTTYPE"), RotTypeEnumNameDict[item.rotType]) self.assertEqual(metadata.getScalar("OBS-LONG"), item.observatory.getLongitude().asDegrees()) self.assertEqual(metadata.getScalar("OBS-LAT"), item.observatory.getLatitude().asDegrees()) self.assertEqual(metadata.getScalar("OBS-ELEV"), item.observatory.getElevation()) self.assertEqual(metadata.getScalar("AIRTEMP"), item.weather.getAirTemperature()) self.assertEqual(metadata.getScalar("AIRPRESS"), item.weather.getAirPressure()) self.assertEqual(metadata.getScalar("HUMIDITY"), item.weather.getHumidity())
def updateMetadata(self, calibImage, exposureTime, darkTime=None, **kwargs): """!Update the metadata from the VisitInfo \param calibImage The image whose metadata is to be set \param exposureTime The exposure time for the image \param darkTime The time since the last read (default: exposureTime) """ if darkTime is None: darkTime = exposureTime # avoid warning messages when using calibration products visitInfo = afwImage.makeVisitInfo(exposureTime=exposureTime, darkTime=darkTime, **kwargs) md = calibImage.getMetadata() afwImage.setVisitInfoMetadata(md, visitInfo)