From ba2e1442ce4cd4f41157a28cf143518ff8e17d69 Mon Sep 17 00:00:00 2001 From: Adam Snyder Date: Wed, 17 Jan 2024 14:02:52 -0800 Subject: [PATCH] Updates to header and butler tests for LSST-UCDCam. --- ...ST-UCDCam_LSST-UCDCam_calib_unbounded.fits | 304 ++++++++++++++++++ data/input/ucd/gen3.sqlite3 | Bin 782336 -> 905216 bytes .../3023073000237-R22-S01-det001.fits | Bin 0 -> 94851 bytes .../2023103100227-R21-S01-det010.fits | Bin 0 -> 94726 bytes ...V-CCD250-TS_C_20231031_000227_R21_S01.yaml | 190 ++++++----- ...TL-3800C-TS_C_20230730_000237_R22_S01.yaml | 190 ++++++----- tests/test_gen3.py | 6 +- tests/test_translator.py | 14 +- tests/test_ucdcam.py.old | 42 ++- 9 files changed, 578 insertions(+), 168 deletions(-) create mode 100644 data/input/ucd/LSST-UCDCam/calib/unbounded/camera/camera_LSST-UCDCam_LSST-UCDCam_calib_unbounded.fits create mode 100644 data/input/ucd/raw/2023-07-30/3023073000237-R22-S01-det001.fits create mode 100644 data/input/ucd/raw/2023-10-31/2023103100227-R21-S01-det010.fits diff --git a/data/input/ucd/LSST-UCDCam/calib/unbounded/camera/camera_LSST-UCDCam_LSST-UCDCam_calib_unbounded.fits b/data/input/ucd/LSST-UCDCam/calib/unbounded/camera/camera_LSST-UCDCam_LSST-UCDCam_calib_unbounded.fits new file mode 100644 index 000000000..f4a51eb34 --- /dev/null +++ b/data/input/ucd/LSST-UCDCam/calib/unbounded/camera/camera_LSST-UCDCam_LSST-UCDCam_calib_unbounded.fits @@ -0,0 +1,304 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 148 / width of table in bytes NAXIS2 = 12 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 7 / number of fields in each row TTYPE1 = 'id &' / Archive ID of the persistable object that owns CONTINUE '' / the records pointed at by this entry TFORM1 = '1J ' / format of field TDOC1 = 'Archive ID of the persistable object that owns the records pointed &'CONTINUE 'at by this entry' TCCLS1 = 'Scalar ' / Field template used by lsst.afw.table TTYPE2 = 'cat.archive&' / index of the catalog this entry points to, fromCONTINUE '' / the perspective of the archive TFORM2 = '1J ' / format of field TDOC2 = 'index of the catalog this entry points to, from the perspective of &'CONTINUE 'the archive' TCCLS2 = 'Scalar ' / Field template used by lsst.afw.table TTYPE3 = 'cat.persistable&' / index of the catalog this entry points to, fromCONTINUE '' / the perspective of the Persistable TFORM3 = '1J ' / format of field TDOC3 = 'index of the catalog this entry points to, from the perspective of &'CONTINUE 'the Persistable' TCCLS3 = 'Scalar ' / Field template used by lsst.afw.table TTYPE4 = 'row0 ' / first row used by the persistable object in thiTFORM4 = '1J ' / format of field TDOC4 = 'first row used by the persistable object in this catalog' TCCLS4 = 'Scalar ' / Field template used by lsst.afw.table TTYPE5 = 'nrows &' / number of rows used by the persistable object iCONTINUE '' / n this catalog TFORM5 = '1J ' / format of field TDOC5 = 'number of rows used by the persistable object in this catalog' TCCLS5 = 'Scalar ' / Field template used by lsst.afw.table TTYPE6 = 'name ' / unique name for the persistable object's class TFORM6 = '64A ' / format of field TDOC6 = 'unique name for the persistable object''s class' TCCLS6 = 'String ' / Field template used by lsst.afw.table TTYPE7 = 'module &' / Python module that should be imported to registCONTINUE '' / er the object's factory TFORM7 = '64A ' / format of field TDOC7 = 'Python module that should be imported to register the object''s fac&'CONTINUE 'tory' TCCLS7 = 'String ' / Field template used by lsst.afw.table EXTTYPE = 'ARCHIVE_INDEX' EXTNAME = 'ARCHIVE_INDEX' AR_CATN = 0 / # of this catalog relative to the start of thisAR_NCAT = 7 / # of catalogs in this archive, including the inHIERARCH AFW_TABLE_VERSION = 3 END TransformPoint2ToPoint2 lsst.afw.geom TransformPoint2ToPoint2 lsst.afw.geom TransformPoint2ToPoint2 lsst.afw.geom TransformPoint2ToPoint2 lsst.afw.geom TransformPoint2ToPoint2 lsst.afw.geom TransformMap lsst.afw.cameraGeom Detector lsst.afw.cameraGeom Detector lsst.afw.cameraGeom Detector lsst.afw.cameraGeom Detector lsst.afw.cameraGeom Camera lsst.afw.cameraGeom Camera lsst.afw.cameraGeom XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 4 / width of table in bytes NAXIS2 = 2 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 1 / number of fields in each row TTYPE1 = 'detector' / archive ID of Detector in a DetectorCollection TFORM1 = '1J ' / format of field TDOC1 = 'archive ID of Detector in a DetectorCollection' TCCLS1 = 'Scalar ' / Field template used by lsst.afw.table EXTTYPE = 'ARCHIVE_DATA' AR_CATN = 1 / # of this catalog relative to the start of thisAR_NAME = 'Camera ' / Class name for objects stored here EXTNAME = 'Camera ' HIERARCH AFW_TABLE_VERSION = 3 END  XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 176 / width of table in bytes NAXIS2 = 2 / number of rows in table PCOUNT = 50 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 22 / number of fields in each row TTYPE1 = 'name ' / Name of the detector TFORM1 = '1QA(7) ' / format of field TDOC1 = 'Name of the detector' TCCLS1 = 'String ' / Field template used by lsst.afw.table TTYPE2 = 'id ' / Integer ID for the detector TFORM2 = '1J ' / format of field TDOC2 = 'Integer ID for the detector' TCCLS2 = 'Scalar ' / Field template used by lsst.afw.table TTYPE3 = 'type ' / Raw DetectorType enum value TFORM3 = '1J ' / format of field TDOC3 = 'Raw DetectorType enum value' TCCLS3 = 'Scalar ' / Field template used by lsst.afw.table TTYPE4 = 'serial ' / Serial name of the detector TFORM4 = '1QA(17) ' / format of field TDOC4 = 'Serial name of the detector' TCCLS4 = 'String ' / Field template used by lsst.afw.table TTYPE5 = 'bbox_min_x' / Detector bounding box (minimum) TFORM5 = '1J ' / format of field TDOC5 = 'Detector bounding box (minimum)' TUNIT5 = 'pixel ' TCCLS5 = 'Scalar ' / Field template used by lsst.afw.table TTYPE6 = 'bbox_min_y' / Detector bounding box (minimum) TFORM6 = '1J ' / format of field TDOC6 = 'Detector bounding box (minimum)' TUNIT6 = 'pixel ' TCCLS6 = 'Scalar ' / Field template used by lsst.afw.table TTYPE7 = 'bbox_max_x' / Detector bounding box (maximum) TFORM7 = '1J ' / format of field TDOC7 = 'Detector bounding box (maximum)' TUNIT7 = 'pixel ' TCCLS7 = 'Scalar ' / Field template used by lsst.afw.table TTYPE8 = 'bbox_max_y' / Detector bounding box (maximum) TFORM8 = '1J ' / format of field TDOC8 = 'Detector bounding box (maximum)' TUNIT8 = 'pixel ' TCCLS8 = 'Scalar ' / Field template used by lsst.afw.table TTYPE9 = 'pixelSize_x' / Physical pixel size TFORM9 = '1D ' / format of field TDOC9 = 'Physical pixel size' TUNIT9 = 'mm ' TCCLS9 = 'Scalar ' / Field template used by lsst.afw.table TTYPE10 = 'pixelSize_y' / Physical pixel size TFORM10 = '1D ' / format of field TDOC10 = 'Physical pixel size' TUNIT10 = 'mm ' TCCLS10 = 'Scalar ' / Field template used by lsst.afw.table TTYPE11 = 'fpPosition_x' / Focal plane position of reference point TFORM11 = '1D ' / format of field TDOC11 = 'Focal plane position of reference point' TUNIT11 = 'mm ' TCCLS11 = 'Scalar ' / Field template used by lsst.afw.table TTYPE12 = 'fpPosition_y' / Focal plane position of reference point TFORM12 = '1D ' / format of field TDOC12 = 'Focal plane position of reference point' TUNIT12 = 'mm ' TCCLS12 = 'Scalar ' / Field template used by lsst.afw.table TTYPE13 = 'fpPosition_z' / Focal plane position of reference point TFORM13 = '1D ' / format of field TDOC13 = 'Focal plane position of reference point' TUNIT13 = 'mm ' TCCLS13 = 'Scalar ' / Field template used by lsst.afw.table TTYPE14 = 'refPoint_x' / Pixel position of reference point TFORM14 = '1D ' / format of field TDOC14 = 'Pixel position of reference point' TUNIT14 = 'pixel ' TCCLS14 = 'Scalar ' / Field template used by lsst.afw.table TTYPE15 = 'refPoint_y' / Pixel position of reference point TFORM15 = '1D ' / format of field TDOC15 = 'Pixel position of reference point' TUNIT15 = 'pixel ' TCCLS15 = 'Scalar ' / Field template used by lsst.afw.table TTYPE16 = 'yaw ' / Rotation about Z (X to Y), 1st rotation TFORM16 = '1D ' / format of field TDOC16 = 'Rotation about Z (X to Y), 1st rotation' TUNIT16 = 'rad ' TCCLS16 = 'Angle ' / Field template used by lsst.afw.table TTYPE17 = 'pitch ' / Rotation about Y' (Z'=Z to X'), 2nd rotation TFORM17 = '1D ' / format of field TDOC17 = 'Rotation about Y'' (Z''=Z to X''), 2nd rotation' TUNIT17 = 'rad ' TCCLS17 = 'Angle ' / Field template used by lsst.afw.table TTYPE18 = 'roll ' / Rotation about X'' (Y''=Y' to Z''), 3rd rotatioTFORM18 = '1D ' / format of field TDOC18 = 'Rotation about X'''' (Y''''=Y'' to Z''''), 3rd rotation' TUNIT18 = 'rad ' TCCLS18 = 'Angle ' / Field template used by lsst.afw.table TTYPE19 = 'transformMap' / Archive ID of TransformMap TFORM19 = '1J ' / format of field TDOC19 = 'Archive ID of TransformMap' TCCLS19 = 'Scalar ' / Field template used by lsst.afw.table TTYPE20 = 'crosstalk' / Crosstalk matrix, flattened TFORM20 = '1QE(0) ' / format of field TDOC20 = 'Crosstalk matrix, flattened' TCCLS20 = 'Array ' / Field template used by lsst.afw.table TTYPE21 = 'physicalType' / Physical type of the detector TFORM21 = '1QA(3) ' / format of field TDOC21 = 'Physical type of the detector' TCCLS21 = 'String ' / Field template used by lsst.afw.table TTYPE22 = 'version ' / version of this Detector TFORM22 = '1J ' / format of field TDOC22 = 'version of this Detector' TCCLS22 = 'Scalar ' / Field template used by lsst.afw.table EXTTYPE = 'ARCHIVE_DATA' AR_CATN = 2 / # of this catalog relative to the start of thisAR_NAME = 'Detector' / Class name for objects stored here EXTNAME = 'Detector' HIERARCH AFW_TABLE_VERSION = 3 END  çŸ?„záG®{?„záG®{ÀE @ŸÒ@ŸB +ÿ£?„záG®{?„záG®{ÀE @Ÿþ@ŸF/R22_S01ITL-3800C-002ITLR21_S01E2V-CCD250-112-09E2VXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 68 / width of table in bytes NAXIS2 = 5 / number of rows in table PCOUNT = 128 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 5 / number of fields in each row TTYPE1 = 'fromSysName' / Camera coordinate system name. TFORM1 = '1QA(10) ' / format of field TDOC1 = 'Camera coordinate system name.' TCCLS1 = 'String ' / Field template used by lsst.afw.table TTYPE2 = 'fromSysDetectorName' / Camera coordinate system detector name. TFORM2 = '1QA(7) ' / format of field TDOC2 = 'Camera coordinate system detector name.' TCCLS2 = 'String ' / Field template used by lsst.afw.table TTYPE3 = 'toSysName' / Camera coordinate system name. TFORM3 = '1QA(10) ' / format of field TDOC3 = 'Camera coordinate system name.' TCCLS3 = 'String ' / Field template used by lsst.afw.table TTYPE4 = 'toSysDetectorName' / Camera coordinate system detector name. TFORM4 = '1QA(7) ' / format of field TDOC4 = 'Camera coordinate system detector name.' TCCLS4 = 'String ' / Field template used by lsst.afw.table TTYPE5 = 'transform' / Archive ID of the transform. TFORM5 = '1J ' / format of field TDOC5 = 'Archive ID of the transform.' TCCLS5 = 'Scalar ' / Field template used by lsst.afw.table EXTTYPE = 'ARCHIVE_DATA' AR_CATN = 3 / # of this catalog relative to the start of thisAR_NAME = 'TransformMap' / Class name for objects stored here EXTNAME = 'TransformMap' HIERARCH AFW_TABLE_VERSION = 3 END + + +  + !' +.89?FL S\ci pyFocalPlaneFieldAngleFocalPlanePixelsR22_S01FocalPlanePixelsR21_S01PixelsR22_S01TanPixelsR22_S01PixelsR21_S01TanPixelsR21_S01XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 5 / number of rows in table PCOUNT = 6679 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 1 / number of fields in each row TTYPE1 = 'bytes ' / a bytestring containing the output of TransformCONTINUE '' / .writeString TFORM1 = '1QB(2523)' / format of field TDOC1 = 'a bytestring containing the output of Transform.writeString' TCCLS1 = 'Array ' / Field template used by lsst.afw.table EXTTYPE = 'ARCHIVE_DATA' AR_CATN = 4 / # of this catalog relative to the start of thisAR_NAME = 'TransformPoint2ToPoint2' / Class name for objects stored here EXTNAME = 'TransformPoint2ToPoint2' HIERARCH AFW_TABLE_VERSION = 3 END ÝÈÝÈ¥ Ûm ÏH1 TransformPoint2ToPoint2 Begin CmpMap + Nin = 2 + IsSimp = 1 + IsA Mapping + InvB = 1 + MapA = + Begin CmpMap + Nin = 2 + Nout = 3 + IsA Mapping + MapA = + Begin UnitNormMap + Nin = 2 + Nout = 3 + IsA Mapping + End UnitNormMap + MapB = + Begin CmpMap + Nin = 3 + IsA Mapping + Series = 0 + MapA = + Begin UnitMap + Nin = 2 + IsA Mapping + End UnitMap + MapB = + Begin PolyMap + Nin = 1 + IsA Mapping + MPF1 = 2 + NCF1 = 2 + CF1 = 9.6962736221907193e-05 + CF2 = 0 + PF1 = 1 + PF2 = 2 + IterInv = 1 + NiterInv = 30 + TolInv = 1e-08 + End PolyMap + End CmpMap + End CmpMap + MapB = + Begin UnitNormMap + Nin = 2 + Nout = 3 + Invert = 1 + IsA Mapping + End UnitNormMap + End CmpMap +1 TransformPoint2ToPoint2 Begin WinMap + Nin = 2 + IsSimp = 1 + Invert = 1 + IsA Mapping + Sft1 = -20.365000000000002 + Scl1 = 0.01 + Sft2 = -62.254999999999995 + Scl2 = 0.01 + End WinMap +1 TransformPoint2ToPoint2 Begin WinMap + Nin = 2 + IsSimp = 1 + Invert = 1 + IsA Mapping + Sft1 = -20.475000000000001 + Scl1 = 0.01 + Sft2 = -62.265000000000001 + Scl2 = 0.01 + End WinMap +1 TransformPoint2ToPoint2 Begin CmpMap + Nin = 2 + IsSimp = 1 + IsA Mapping + MapA = + Begin CmpMap + Nin = 2 + IsSimp = 1 + IsA Mapping + MapA = + Begin WinMap + Nin = 2 + IsA Mapping + Sft1 = -20.365000000000002 + Scl1 = 0.01 + Sft2 = -62.254999999999995 + Scl2 = 0.01 + End WinMap + MapB = + Begin CmpMap + Nin = 2 + IsSimp = 1 + IsA Mapping + InvB = 1 + MapA = + Begin CmpMap + Nin = 2 + Nout = 3 + IsA Mapping + MapA = + Begin UnitNormMap + Nin = 2 + Nout = 3 + IsA Mapping + End UnitNormMap + MapB = + Begin CmpMap + Nin = 3 + IsA Mapping + Series = 0 + MapA = + Begin UnitMap + Nin = 2 + IsA Mapping + End UnitMap + MapB = + Begin PolyMap + Nin = 1 + IsA Mapping + MPF1 = 2 + NCF1 = 2 + CF1 = 9.6962736221907193e-05 + CF2 = 0 + PF1 = 1 + PF2 = 2 + IterInv = 1 + NiterInv = 30 + TolInv = 1e-08 + End PolyMap + End CmpMap + End CmpMap + MapB = + Begin UnitNormMap + Nin = 2 + Nout = 3 + Invert = 1 + IsA Mapping + End UnitNormMap + End CmpMap + End CmpMap + MapB = + Begin WinMap + Nin = 2 + IsA Mapping + Sft1 = 2036.5000000000002 + Scl1 = 1031324.0312095531 + Sft2 = 6225.4999999999991 + Scl2 = 1031324.0312095531 + End WinMap + End CmpMap +1 TransformPoint2ToPoint2 Begin CmpMap + Nin = 2 + IsSimp = 1 + IsA Mapping + MapA = + Begin CmpMap + Nin = 2 + IsSimp = 1 + IsA Mapping + MapA = + Begin WinMap + Nin = 2 + IsA Mapping + Sft1 = -20.475000000000001 + Scl1 = 0.01 + Sft2 = -62.265000000000001 + Scl2 = 0.01 + End WinMap + MapB = + Begin CmpMap + Nin = 2 + IsSimp = 1 + IsA Mapping + InvB = 1 + MapA = + Begin CmpMap + Nin = 2 + Nout = 3 + IsA Mapping + MapA = + Begin UnitNormMap + Nin = 2 + Nout = 3 + IsA Mapping + End UnitNormMap + MapB = + Begin CmpMap + Nin = 3 + IsA Mapping + Series = 0 + MapA = + Begin UnitMap + Nin = 2 + IsA Mapping + End UnitMap + MapB = + Begin PolyMap + Nin = 1 + IsA Mapping + MPF1 = 2 + NCF1 = 2 + CF1 = 9.6962736221907193e-05 + CF2 = 0 + PF1 = 1 + PF2 = 2 + IterInv = 1 + NiterInv = 30 + TolInv = 1e-08 + End PolyMap + End CmpMap + End CmpMap + MapB = + Begin UnitNormMap + Nin = 2 + Nout = 3 + Invert = 1 + IsA Mapping + End UnitNormMap + End CmpMap + End CmpMap + MapB = + Begin WinMap + Nin = 2 + IsA Mapping + Sft1 = 2047.5000000000002 + Scl1 = 1031324.0312354818 + Sft2 = 6226.5 + Scl2 = 1031324.0312354818 + End WinMap + End CmpMap +XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 221 / width of table in bytes NAXIS2 = 32 / number of rows in table PCOUNT = 1056 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 38 / number of fields in each row TTYPE1 = 'flags ' / bits for all Flag fields; see also TFLAGn TFORM1 = '3X ' / format of field FLAGCOL = 1 / Column number for the bitflags. TTYPE2 = 'name ' / name of amplifier location in camera TFORM2 = '1QA(3) ' / format of field TDOC2 = 'name of amplifier location in camera' TCCLS2 = 'String ' / Field template used by lsst.afw.table TTYPE3 = 'bbox_min_x' / bbox of amplifier image data on assembled imageCONTINUE '' / , min point TFORM3 = '1J ' / format of field TDOC3 = 'bbox of amplifier image data on assembled image, min point' TUNIT3 = 'pixel ' TCCLS3 = 'Scalar ' / Field template used by lsst.afw.table TTYPE4 = 'bbox_min_y' / bbox of amplifier image data on assembled imageCONTINUE '' / , min point TFORM4 = '1J ' / format of field TDOC4 = 'bbox of amplifier image data on assembled image, min point' TUNIT4 = 'pixel ' TCCLS4 = 'Scalar ' / Field template used by lsst.afw.table TTYPE5 = 'bbox_extent_x' / bbox of amplifier image data on assembled imageCONTINUE '' / , extent TFORM5 = '1J ' / format of field TDOC5 = 'bbox of amplifier image data on assembled image, extent' TUNIT5 = 'pixel ' TCCLS5 = 'Scalar ' / Field template used by lsst.afw.table TTYPE6 = 'bbox_extent_y' / bbox of amplifier image data on assembled imageCONTINUE '' / , extent TFORM6 = '1J ' / format of field TDOC6 = 'bbox of amplifier image data on assembled image, extent' TUNIT6 = 'pixel ' TCCLS6 = 'Scalar ' / Field template used by lsst.afw.table TTYPE7 = 'gain ' / amplifier gain TFORM7 = '1D ' / format of field TDOC7 = 'amplifier gain' TUNIT7 = 'electron adu^-1' TCCLS7 = 'Scalar ' / Field template used by lsst.afw.table TTYPE8 = 'saturation&' / level above which pixels are considered saturatCONTINUE '' / ed; use `nan` if no such level applies TFORM8 = '1D ' / format of field TDOC8 = 'level above which pixels are considered saturated; use `nan` if no &'CONTINUE 'such level applies' TUNIT8 = 'adu ' TCCLS8 = 'Scalar ' / Field template used by lsst.afw.table TTYPE9 = 'suspectlevel&' / level above which pixels are considered suspiciCONTINUE '&' / ous, meaning they may be affected by unknown syCONTINUE '&' / stematics; for example if non-linearity correctCONTINUE '&' / ions above a certain level are unstable then thCONTINUE '&' / at would be a useful value for suspectLevel; usCONTINUE '' / e `nan` if no such level applies TFORM9 = '1D ' / format of field TDOC9 = 'level above which pixels are considered suspicious, meaning they ma&'CONTINUE 'y be affected by unknown systematics; for example if non-linearity &'CONTINUE 'corrections above a certain level are unstable then that would be a&'CONTINUE ' useful value for suspectLevel; use `nan` if no such level applies' TUNIT9 = 'adu ' TCCLS9 = 'Scalar ' / Field template used by lsst.afw.table TTYPE10 = 'readnoise' / amplifier read noise TFORM10 = '1D ' / format of field TDOC10 = 'amplifier read noise' TUNIT10 = 'electron' TCCLS10 = 'Scalar ' / Field template used by lsst.afw.table TTYPE11 = 'readoutcorner' / readout corner, in the frame of the assembled iTFORM11 = '1J ' / format of field TDOC11 = 'readout corner, in the frame of the assembled image' TCCLS11 = 'Scalar ' / Field template used by lsst.afw.table TTYPE12 = 'linearity_coeffs' / coefficients for linearity fit up to cubic TFORM12 = '1QD(2) ' / format of field TDOC12 = 'coefficients for linearity fit up to cubic' TCCLS12 = 'Array ' / Field template used by lsst.afw.table TTYPE13 = 'linearity_type' / type of linearity model TFORM13 = '1QA(12) ' / format of field TDOC13 = 'type of linearity model' TCCLS13 = 'String ' / Field template used by lsst.afw.table TFLAG1 = 'hasrawinfo' TFDOC1 = 'is raw amplifier information available (e.g. untrimmed bounding box&'CONTINUE 'es)?' TTYPE14 = 'raw_bbox_min_x' / entire amplifier bbox on raw image, min point TFORM14 = '1J ' / format of field TDOC14 = 'entire amplifier bbox on raw image, min point' TUNIT14 = 'pixel ' TCCLS14 = 'Scalar ' / Field template used by lsst.afw.table TTYPE15 = 'raw_bbox_min_y' / entire amplifier bbox on raw image, min point TFORM15 = '1J ' / format of field TDOC15 = 'entire amplifier bbox on raw image, min point' TUNIT15 = 'pixel ' TCCLS15 = 'Scalar ' / Field template used by lsst.afw.table TTYPE16 = 'raw_bbox_extent_x' / entire amplifier bbox on raw image, extent TFORM16 = '1J ' / format of field TDOC16 = 'entire amplifier bbox on raw image, extent' TUNIT16 = 'pixel ' TCCLS16 = 'Scalar ' / Field template used by lsst.afw.table TTYPE17 = 'raw_bbox_extent_y' / entire amplifier bbox on raw image, extent TFORM17 = '1J ' / format of field TDOC17 = 'entire amplifier bbox on raw image, extent' TUNIT17 = 'pixel ' TCCLS17 = 'Scalar ' / Field template used by lsst.afw.table TTYPE18 = 'raw_databbox_min_x' / image data bbox on raw image, min point TFORM18 = '1J ' / format of field TDOC18 = 'image data bbox on raw image, min point' TUNIT18 = 'pixel ' TCCLS18 = 'Scalar ' / Field template used by lsst.afw.table TTYPE19 = 'raw_databbox_min_y' / image data bbox on raw image, min point TFORM19 = '1J ' / format of field TDOC19 = 'image data bbox on raw image, min point' TUNIT19 = 'pixel ' TCCLS19 = 'Scalar ' / Field template used by lsst.afw.table TTYPE20 = 'raw_databbox_extent_x' / image data bbox on raw image, extent TFORM20 = '1J ' / format of field TDOC20 = 'image data bbox on raw image, extent' TUNIT20 = 'pixel ' TCCLS20 = 'Scalar ' / Field template used by lsst.afw.table TTYPE21 = 'raw_databbox_extent_y' / image data bbox on raw image, extent TFORM21 = '1J ' / format of field TDOC21 = 'image data bbox on raw image, extent' TUNIT21 = 'pixel ' TCCLS21 = 'Scalar ' / Field template used by lsst.afw.table TFLAG2 = 'raw_flip_x' TFDOC2 = 'flip row order to make assembled image?' TFLAG3 = 'raw_flip_y' TFDOC3 = 'flip column order to make an assembled image?' TTYPE22 = 'raw_xyoffset_x&' / offset for assembling a raw CCD image: desired CONTINUE '' / xy0 - raw xy0; 0,0 if raw data comes assembled TFORM22 = '1J ' / format of field TDOC22 = 'offset for assembling a raw CCD image: desired xy0 - raw xy0; 0,0 i&'CONTINUE 'f raw data comes assembled' TUNIT22 = 'pixel ' TCCLS22 = 'Scalar ' / Field template used by lsst.afw.table TTYPE23 = 'raw_xyoffset_y&' / offset for assembling a raw CCD image: desired CONTINUE '' / xy0 - raw xy0; 0,0 if raw data comes assembled TFORM23 = '1J ' / format of field TDOC23 = 'offset for assembling a raw CCD image: desired xy0 - raw xy0; 0,0 i&'CONTINUE 'f raw data comes assembled' TUNIT23 = 'pixel ' TCCLS23 = 'Scalar ' / Field template used by lsst.afw.table TTYPE24 = 'raw_horizontaloverscanbbox_min_x&' CONTINUE '&' / usable horizontal overscan bbox on raw image, mCONTINUE '' / in point TFORM24 = '1J ' / format of field TDOC24 = 'usable horizontal overscan bbox on raw image, min point' TUNIT24 = 'pixel ' TCCLS24 = 'Scalar ' / Field template used by lsst.afw.table TTYPE25 = 'raw_horizontaloverscanbbox_min_y&' CONTINUE '&' / usable horizontal overscan bbox on raw image, mCONTINUE '' / in point TFORM25 = '1J ' / format of field TDOC25 = 'usable horizontal overscan bbox on raw image, min point' TUNIT25 = 'pixel ' TCCLS25 = 'Scalar ' / Field template used by lsst.afw.table TTYPE26 = 'raw_horizontaloverscanbbox_extent_x&' CONTINUE '&' / usable horizontal overscan bbox on raw image, eCONTINUE '' / xtent TFORM26 = '1J ' / format of field TDOC26 = 'usable horizontal overscan bbox on raw image, extent' TUNIT26 = 'pixel ' TCCLS26 = 'Scalar ' / Field template used by lsst.afw.table TTYPE27 = 'raw_horizontaloverscanbbox_extent_y&' CONTINUE '&' / usable horizontal overscan bbox on raw image, eCONTINUE '' / xtent TFORM27 = '1J ' / format of field TDOC27 = 'usable horizontal overscan bbox on raw image, extent' TUNIT27 = 'pixel ' TCCLS27 = 'Scalar ' / Field template used by lsst.afw.table TTYPE28 = 'raw_verticaloverscanbbox_min_x&' CONTINUE '&' / usable vertical overscan region raw image, min CONTINUE '' / point TFORM28 = '1J ' / format of field TDOC28 = 'usable vertical overscan region raw image, min point' TUNIT28 = 'pixel ' TCCLS28 = 'Scalar ' / Field template used by lsst.afw.table TTYPE29 = 'raw_verticaloverscanbbox_min_y&' CONTINUE '&' / usable vertical overscan region raw image, min CONTINUE '' / point TFORM29 = '1J ' / format of field TDOC29 = 'usable vertical overscan region raw image, min point' TUNIT29 = 'pixel ' TCCLS29 = 'Scalar ' / Field template used by lsst.afw.table TTYPE30 = 'raw_verticaloverscanbbox_extent_x&' CONTINUE '&' / usable vertical overscan region raw image, exteCONTINUE '' / nt TFORM30 = '1J ' / format of field TDOC30 = 'usable vertical overscan region raw image, extent' TUNIT30 = 'pixel ' TCCLS30 = 'Scalar ' / Field template used by lsst.afw.table TTYPE31 = 'raw_verticaloverscanbbox_extent_y&' CONTINUE '&' / usable vertical overscan region raw image, exteCONTINUE '' / nt TFORM31 = '1J ' / format of field TDOC31 = 'usable vertical overscan region raw image, extent' TUNIT31 = 'pixel ' TCCLS31 = 'Scalar ' / Field template used by lsst.afw.table TTYPE32 = 'raw_prescanbbox_min_x&' CONTINUE '&' / usable (horizontal) prescan bbox on raw image, CONTINUE '' / min point TFORM32 = '1J ' / format of field TDOC32 = 'usable (horizontal) prescan bbox on raw image, min point' TUNIT32 = 'pixel ' TCCLS32 = 'Scalar ' / Field template used by lsst.afw.table TTYPE33 = 'raw_prescanbbox_min_y&' CONTINUE '&' / usable (horizontal) prescan bbox on raw image, CONTINUE '' / min point TFORM33 = '1J ' / format of field TDOC33 = 'usable (horizontal) prescan bbox on raw image, min point' TUNIT33 = 'pixel ' TCCLS33 = 'Scalar ' / Field template used by lsst.afw.table TTYPE34 = 'raw_prescanbbox_extent_x&' CONTINUE '&' / usable (horizontal) prescan bbox on raw image, CONTINUE '' / extent TFORM34 = '1J ' / format of field TDOC34 = 'usable (horizontal) prescan bbox on raw image, extent' TUNIT34 = 'pixel ' TCCLS34 = 'Scalar ' / Field template used by lsst.afw.table TTYPE35 = 'raw_prescanbbox_extent_y&' CONTINUE '&' / usable (horizontal) prescan bbox on raw image, CONTINUE '' / extent TFORM35 = '1J ' / format of field TDOC35 = 'usable (horizontal) prescan bbox on raw image, extent' TUNIT35 = 'pixel ' TCCLS35 = 'Scalar ' / Field template used by lsst.afw.table TTYPE36 = 'linearityThreshold' / Minimum ADU level to apply linearity. TFORM36 = '1D ' / format of field TDOC36 = 'Minimum ADU level to apply linearity.' TCCLS36 = 'Scalar ' / Field template used by lsst.afw.table TTYPE37 = 'linearityMaximum' / Maximum ADU level to apply linearity. TFORM37 = '1D ' / format of field TDOC37 = 'Maximum ADU level to apply linearity.' TCCLS37 = 'Scalar ' / Field template used by lsst.afw.table TTYPE38 = 'linearityUnits' / Input units for linearity relation. TFORM38 = '1QA(2) ' / format of field TDOC38 = 'Input units for linearity relation.' TCCLS38 = 'String ' / Field template used by lsst.afw.table EXTTYPE = 'ARCHIVE_DATA' AR_CATN = 5 / # of this catalog relative to the start of thisAR_NAME = 'Detector' / Class name for objects stored here EXTNAME = 'Detector' HIERARCH AFW_TABLE_VERSION = 3 END `ÐýÐ?öÄ›¥ãSøAjø@!ffffff @ýÐ@ÐÐý0ÐApH`!ýÐýÐ?öÀƒn—Ajø@!ÌÌÌÌÌÍ$ 4@ýÐ@@ÐÐý0ÐApH@`BúÐýÐ?ö¼j~ùÛ#Ajø@!™™™™™šE U@ýЀ@ÐÐý0ÐApHa`c÷ÐýÐ?öáG®záAjø@!ÌÌÌÌÌÍf v@ýÐÀ@ÐÐý0ÐApH‚`„ôÐýÐ?öÈ´9XbAjø@#™™™™™š‡ —@ýÐ @ÐÐý0ÐApH£`¥ ñÐýÐ?öÈ´9XbAjø@%333333¨ ¸@ýÐ @@ÐÐý0ÐApHÄ`Æ îÐýÐ?ö´9XbNAjø@!™™™™™šÉ Ù@ýÐ €@ÐÐý0ÐApHå`ç ëÐýÐ?ðAjø@$333333ê ú@ýÐÀ@ÐÐý0ÐApH@ ëýÐ?õ®záG®Ajø@333333 @ýÐÀ@ÐÐý0ÐApH'@) îýÐ?÷l‹C•Ajø@ÌÌÌÌÌÍ, <@ýÐ €@ÐÐý0ÐApHH@J ñýÐ@Þ5?|í‘Ajø@clÌÌÌÌÍM ]@ýÐ @@ÐÐý0ÐApHi@kôýÐ?÷G®záHAjø@333333n ~@ýÐ @ÐÐý0ÐApHŠ@Œ÷ýÐ?÷`A‰7KÇAjø@333333 Ÿ@ýÐÀ@ÐÐý0ÐApH«@­úýÐ?÷C•$ÝAjø@ÌÌÌÌÌÍ° À@ýЀ@ÐÐý0ÐApHÌ@ÎýýÐ?÷"Ðå`A‰Ajø@ ffffffÑ á@ýÐ@@ÐÐý0ÐApHí@ïýÐ?÷n—OßAjø@$ò @ýÐ@ÐÐý0ÐApH`ÒÒ?û+ Iº^Ajø@!ffffff #@ +Ò +6Ò +Ò. +ÒApH/`1ÒÒ?úÔýó¶E¢Ajø@!ÌÌÌÌÌÍ4 D@ +Ò@ +6Ò +Ò. +ÒApHP`RÒÒ?úvÈ´9XAjø@!™™™™™šU e@ +Ò€ +6Ò +Ò. +ÒApHq`sÒÒ?úvÈ´9XAjø@!ÌÌÌÌÌÍv †@ +ÒÀ +6Ò +Ò. +ÒApH’`”ÒÒ?úÝ/Ÿ¾wAjø@#™™™™™š— §@ +Ò  +6Ò +Ò. +ÒApH³`µ +ÒÒ?ú¬1&éyAjø@%333333¸ È@ +Ò @ +6Ò +Ò. +ÒApHÔ`Ö ÒÒ?ú›¥ãS÷ÏAjø@!™™™™™šÙ é@ +Ò € +6Ò +Ò. +ÒApHõ`÷ÒÒ?úå`A‰7LAjø@$333333ú  +@ +ÒÀ +6Ò +Ò. +ÒApHÒ?ün—Oß;Ajø@333333 +@ +ÒÀ +6Ò +Ò. +ÒApH79 Ò?üvÈ´9XAjø@ÌÌÌÌÌÍ< L@ +Ò € +6Ò +Ò. +ÒApHXZ +Ò?üMÒñ©ûçAjø@clÌÌÌÌÍ] m@ +Ò @ +6Ò +Ò. +ÒApHy{Ò?üA‰7KƨAjø@333333~ Ž@ +Ò  +6Ò +Ò. +ÒApHšœÒ?üj~ùÛ"ÑAjø@333333Ÿ ¯@ +ÒÀ +6Ò +Ò. +ÒApH»½Ò?ü Ä›¥ãTAjø@ÌÌÌÌÌÍÀ Ð@ +Ò€ +6Ò +Ò. +ÒApHÜÞÒ?ü\(õÂAjø@ ffffffá ñ@ +Ò@ +6Ò +Ò. +ÒApHýÿÒ?ü‡+ IºAjø@$ @ +Ò +6Ò +Ò. +ÒApHC10ApHPROPORTIONALDNC11ApHPROPORTIONALDNC12ApHPROPORTIONALDNC13ApHPROPORTIONALDNC14ApHPROPORTIONALDNC15ApHPROPORTIONALDNC16ApHPROPORTIONALDNC17ApHPROPORTIONALDNC07ApHPROPORTIONALDNC06ApHPROPORTIONALDNC05ApHPROPORTIONALDNC04ApHPROPORTIONALDNC03ApHPROPORTIONALDNC02ApHPROPORTIONALDNC01ApHPROPORTIONALDNC00ApHPROPORTIONALDNC10ApHPROPORTIONALDNC11ApHPROPORTIONALDNC12ApHPROPORTIONALDNC13ApHPROPORTIONALDNC14ApHPROPORTIONALDNC15ApHPROPORTIONALDNC16ApHPROPORTIONALDNC17ApHPROPORTIONALDNC07ApHPROPORTIONALDNC06ApHPROPORTIONALDNC05ApHPROPORTIONALDNC04ApHPROPORTIONALDNC03ApHPROPORTIONALDNC02ApHPROPORTIONALDNC01ApHPROPORTIONALDNC00ApHPROPORTIONALDNXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 36 / width of table in bytes NAXIS2 = 1 / number of rows in table PCOUNT = 49 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 3 / number of fields in each row TTYPE1 = 'name ' / Camera name TFORM1 = '1QA(11) ' / format of field TDOC1 = 'Camera name' TCCLS1 = 'String ' / Field template used by lsst.afw.table TTYPE2 = 'pupilFactoryName' / Fully-qualified name of a Python PupilFactory cCONTINUE '' / lass TFORM2 = '1QA(38) ' / format of field TDOC2 = 'Fully-qualified name of a Python PupilFactory class' TCCLS2 = 'String ' / Field template used by lsst.afw.table TTYPE3 = 'transformMap' / archive ID for Camera's TransformMap TFORM3 = '1J ' / format of field TDOC3 = 'archive ID for Camera''s TransformMap' TCCLS3 = 'Scalar ' / Field template used by lsst.afw.table EXTTYPE = 'ARCHIVE_DATA' AR_CATN = 6 / # of this catalog relative to the start of thisAR_NAME = 'Camera ' / Class name for objects stored here EXTNAME = 'Camera ' HIERARCH AFW_TABLE_VERSION = 3 END & LSST-UCDCamlsst.afw.cameraGeom.pupil.PupilFactory \ No newline at end of file diff --git a/data/input/ucd/gen3.sqlite3 b/data/input/ucd/gen3.sqlite3 index e4c6f98ef17150b722a40ff4551f114e36e012d1..4775d92d3c7290ce0d4c3497fadad134ad173be1 100644 GIT binary patch delta 13768 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 KpVPAu=KLRuppEYU diff --git a/data/input/ucd/raw/2023-07-30/3023073000237-R22-S01-det001.fits b/data/input/ucd/raw/2023-07-30/3023073000237-R22-S01-det001.fits new file mode 100644 index 0000000000000000000000000000000000000000..b6fe5bda247737d7f769ebc07ee26478bfbcaaab GIT binary patch literal 94851 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 aZ#}=Bt%{DH&vW2^#lHbudnc7Zbb|zt^E@;%@4 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 K((9i