PFS Datamodel
There are implementations of Python classes that represent many of the files in the PFS pipeline, supporting
reading and writing FITS files that conform to this model. To use them in the Python environment, you can import, e.g. pfs.datamodel.pfsConfig
.
In this section, we only summarize the essential information of the datamodel that can be helpful for users to understand how the pipeline works. Please note that the datamodel is not fixed, and a complete description with possible updates of the datamodel can be found in the dedicated GitHub document: datamodel.txt.
Files and Their Formats
Note
Filenames are implementation-dependent and should never be relied upon. In particular, the filename templates specified below are no longer accurate, since the LSST Data Butler chooses its own filenames.
Category | File Type | File Name Format | Variables | Note |
---|---|---|---|---|
Configuration | pfsDesign | pfsDesign-%016x.fits |
pfsDesignId |
PFS design configuration (SHA-1 truncated to 64 bits, rendered in 16 hexadecimal digits). |
pfsConfig | pfsConfig-0x%016x-%06d.fits |
pfsDesignId , visit |
Instrument configuration for a visit; includes the design ID (prefixed with 0x ) and visit number. |
|
Raw & Auxiliaries | Auto-Guider image data | agcc_{pfs_visit:06d}_{agc_exposure_id:08d}.fits |
pfs_visit , agc_exposure_id |
Unique auto-guider exposure; contains PDU, CAM1–CAM6, and optional TABLE HDUs with moment/centroid data. |
Raw Data (spectrograph cameras) | PF%1sA%06d%1d%1d.fits |
site , visit , spectrograph , armNum |
"A" frames produced by the spectrograph cameras; note the order: spectrograph then armNum (integer code). | |
Raw Data (MCS) | PF%1sC%06d%02d.fits |
site , visit , sequenceId |
Frames from the MCS using a 2-digit sequenceId. | |
Calibration Files | Flats | pfsFlat-%s-%06d-%1s%1d.fits |
calibDate , visit0 , arm , spectrograph |
Processed flat-field files; visit0 is the first valid visit for these calibrations. |
Biases | pfsBias-%s-%06d-%1s%1d.fits |
calibDate , visit0 , arm , spectrograph |
Processed bias frames. | |
Darks | pfsDark-%s-%06d-%1s%1d.fits |
calibDate , visit0 , arm , spectrograph |
Processed dark frames. | |
Detector Map | pfsDetectorMap-%06d-%s%1d.fits |
visit0 , arm , spectrograph |
Maps fiber/wavelength to detector (x,y); internal format varies (e.g. Splined, MultipleDistortions). | |
Fiber Profiles | pfsFiberProfiles-%s-%06d-%1s%1d.fits |
calibDate , visit0 , arm , spectrograph |
Empirical, oversampled fiber profiles from 2-D flat-field images. | |
pfsFiberNorms | pfsFiberNorms-%s-%06d-%s.fits |
calibDate , visit0 , arm |
Normalization coefficients for individual fibers. | |
Intermediate Products | Calibrated Images (postISRCCD) | postISRCCD-%1s%1s%06d-%1s%1d.fits |
site , category , visit , arm , spectrograph |
persisted version of LSST's lsst.afw.image.Exposure class (postISRCCD) |
Calibrated Images (calexp) | calexp-%1s%1s%06d-%1s%1d.fits |
site , category , visit , arm , spectrograph |
persisted version of LSST's lsst.afw.image.Exposure class (calexp). |
|
Wavelength Calibration | (Gen 2) arcLines | arcLines-%06d-%s%d.fits |
visit , arm , spectrograph |
Contains arc lamp line identifications for wavelength calibration. |
(Gen 3) lineCentroids | lineCentroids-%06d-%1s%1d.fits |
visit , arm , spectrograph |
Measurements of spectral line centroids. | |
(Gen 3) linePhotometry | linePhotometry-%06d-%1s%1d.fits |
visit , arm , spectrograph |
Photometric measurements of spectral lines (e.g. flux, width). | |
apCorr | apCorr-%06d-%s%d.fits |
visit , arm , spectrograph |
||
sky2d | sky2d-%06d-%s%d.fits |
visit , arm , spectrograph |
Two-dimensional sky background model for sky subtraction. | |
sky1d | sky1d-%06d-%s.fits |
visit , arm |
One-dimensional extracted sky spectrum. | |
Supportive Products | fluxCal | fluxCal-%06d.fits |
visit |
Flux calibration vector |
pfsPSF | pfsPSF-%06d-%1s%1d.fits |
visit , arm , spectrograph |
Point Spread Function model | |
pfsFluxReference | pfsFluxReference-%06d.fits |
visit |
The best-fit model templates for flux calibration. | |
Products | pfsArm | pfsArm-%06d-%1s%1d.fits |
visit , arm , spectrograph |
Arm-specific metadata/processing results. |
pfsMerged | pfsMerged-%06d.fits |
visit |
Arm-merged spectra for each visit. | |
(Gen 2) pfsSingle | pfsSingle-%05d-%05d-%s-%016x-%06d.fits |
catId , tract , patch , objId , visit |
Fully calibrated spectra for each visit. | |
(Gen 2) pfsObject | pfsObject-%05d-%05d-%s-%016x-%03d-0x%016x.fits |
catId , tract , patch , objId , nVisit % 1000, pfsVisitHash |
Coadded spectra produced by combining multiple visits. | |
(Gen 3) pfsCalibrated | pfsCalibrated-PF%1s-%06d-%1s-%1s.fits |
site , visit , outdir , rerun |
Fully calibrated spectra for each visit. | |
(Gen 3) pfsCoadd | pfsCoadd-PF%1s-%1s-%06d-%1s-%1s.fits |
site , collection , catId , outdir , rerun |
Coadded spectra produced by combining multiple visits. | |
(LAM 1D DRP) pfsZcandidates | pfsZcandidates-%05d-%05d-%s-%016x*fits |
catId , tract , patch , objId |
Contains redshift candidate measurements. |
Variables in the Filename Formats
There are many variables shown in the filename as shown above, and you can check their meaning as listed below.
Site
site |
meaning |
---|---|
J | JHU |
L | LAM |
X | Subaru Offline |
I | IPMU |
A | ASIAA |
S | Summit |
P | Princeton |
F | Simulation (Fake) |
Camera Categories
category |
meaning |
---|---|
A | Science |
B | UTR (Up The Ramp) |
C | Metrology Camera |
D | Auto-guider |
Visit
visit
is an incrementing exposure number, unique to any site.
Spectrograph
spectrograph
is an integer ranging from 1-4.
Arm
armNum |
arm |
meaning |
---|---|---|
1 | b | Blue |
2 | r | Red |
3 | n | IR |
4 | m | Medium resolution red |
Note
armNum
is used only in raw filenames.
Tract
tract
is an integer in the range (0, 99999) specifying an area of the sky.
Patch
patch
is a string of the form m,n
specifying a region within a tract.
Object ID
objId
is a unique 64-bit object ID for an object (e.g., HSC object ID from the database).
Written out using %016x
format for compactness.
Catalog ID
catId
is a small integer specifying the source of the objId
. Defined values:
catId | Description |
---|---|
0 | Simulated catalog |
1 | Gaia DR1 |
2 | Gaia DR2 |
3 | Gaia EDR3 |
4 | Gaia DR3 |
5 | HSC-SSP PDR1 (Wide) |
6 | HSC-SSP PDR1 (Deep+UltraDeep) |
7 | HSC-SSP PDR2 (Wide) |
8 | HSC-SSP PDR2 (Deep+UltraDeep) |
9 | HSC-SSP PDR3 (Wide) |
10 | HSC-SSP PDR3 (Deep+UltraDeep) |
11 | HSC-SSP PDR4 (Wide) |
12 | HSC-SSP PDR4 (Deep+UltraDeep) |
1001 | Sky positions from S21A HSC-SSP (Wide) |
1002 | Sky positions from PS1 |
1003 | Sky positions from Gaia |
1004 | Sky positions for regions without PS1 data |
90001 | Messier 15 stars (Engineering Obs.) |
90002 | NGC1904 (Nov 2022 Eng. Run) |
90003 | NGC2419 (Nov 2022 Eng. Run) |
90004 | NGC5272 (Feb 2023 Eng. Run) |
90005 | NGC5904 (Feb 2023 Eng. Run) |
90006 | NGC7078 (July 2023 Eng. Run) |
90007 | NGC7089 (July 2023 Eng. Run) |
90008 | NGC7099 (July 2023 Eng. Run) |
Design ID
pfsDesignId
is an integer uniquely specifying the configuration of the PFI; specifically a SHA-1 of the
(fiberId, ra, dec) tuples (with position rounded to the nearest arcsecond) truncated to 64 bits.
Visit Hash
pfsVisitHash
is an integer uniquely defining the set of visits contributing to a reduced spectrum; this will be calculated as a SHA-1 truncated to 64 bits