Input File Format
Overview
To maintain uniformity, PypeIt uses a standard format for all of the input files used by the Command-line Scripts. This document describes that format and its main components. The specifics of the various input file types (e.g. PypeIt Reduction File) are described throughout the documents. We also provide a listing of the primary files at the end of this page.
Comments in the Input File Format are indicated by
a leading #
and are always ignored.
The main three components of a PypeIt input file are:
The individual file types make use of one or more of these components as needed. Their ordering is not strict, although the code writes to disk in the order above.
We now described each in turn.
Parameter Block
Most of the input files require input from the user and/or allow for the user to make modifications to the default parameters of the pipeline. This information is ingested in a series of lines that we refer to as the Parameter Block.
PypeIt uses the configobj class to parse the user-supplied arguments, provided in a series of lines. Here is an example of the Parameter Block for a PypeIt Reduction File:
# User-defined execution parameters
[rdx]
spectrograph = shane_kast_blue
[calibrations]
[[slitedges]]
edge_thresh = 100
The formatting is dict-like, with each level of the dict set by the key in
[]
and the eventual key/item pair marked by assignment. Note that the
indentation is not strictly required, but the number of square brackets
indicating the dictionary hierarchy is required. That is, in the example
above, slitedges
is a sub-dictionary within calibrations
as indicated by
the double brackets.
Setup Block
This block describes the instrument configuration. As it is only required and used with the PypeIt Reduction File, we refer to its documentation of the Setup Block for full details.
Data Block
The third component is a data block which itself consists
of two components: a line-by-line set of data paths and
a |
delimited table of data. The latter usually contains
at a minimum the filenames to be processed by a
PypeIt script.
A data block is marked by a pair of starting xxx read
and ending xxx end
lines where xxx
is specific
to the type of input file. Here is an example for a
PypeIt Reduction File:
# Data block
data read
path /Users/westfall/Work/packages/PYPIT/pypit/tests/files/
filename | date | frametype | target | exptime | disp name | decker
b1.fits.gz | 2015-05-20T01:35:58.10 | arc | Arcs | 30 | 600/ 4310 | 0.5 arcsec
b27.fits.gz | 2015-05-20T04:57:33.56 | science | J1217p3905 | 1200 | 600/ 4310 | 2.0 arcsec
data end
We now describe the two parts of the data block
paths
The lines following the xxx read
describe the path(s)
to the files. Each line should start with path
and
then be followed by a relative or absolute path. We
strongly recommend using the absolute path.
The paths
portion of the Data Block is not used by
many of the Input File Format but is required
for the PypeIt Reduction File.
data
After the paths
portion is a |
delimited table that
provides data. It usually contains, at minimum, a single column
specifying the files to be processed by the script.
That would look like:
# Data block
spec2d read
path /path/to/your/Science/folder
filename
spec2d_b170320_2083-c17_60L._LRISb_2017Mar20T055336.211.fits
spec2d_b170320_2090-c17_60L._LRISb_2017Mar20T082144.525.fits
spec2d_b170320_2084-c17_60L._LRISb_2017Mar20T062414.630.fits
spec2d_b170320_2091-c17_60L._LRISb_2017Mar20T085223.894.fits
spec2d end
Here, the column name (filename
) is trivial and a bit awkward,
but it is also required.
Many files use a multi-column table with | delimiters, e.g.:
# Data block
coadd1d read
path /path/to/your/reduced/data/Science
filename | obj_id
spec1d_b27-J1217p3905_KASTb_2015May20T045733.560.fits | SPAT0176-SLIT0000-DET01
spec1d_b28-J1217p3905_KASTb_2015May20T051801.470.fits | SPAT0175-SLIT0000-DET01
coadd1d end
Docs on Pypeit Input Files
Here are links to the detailed docs on the main set of PypeIt input files: