Here's an example of sof
(set of frames) files generated by the XSHooter pipeline when creating a master bias frame.
There are 4 files creates:
data.sof
input_sof.json
output_files.sof
products_sof.json
Here is what the ESO esorex docs say about the sof files.
A
sof
file contains a list of the input data. This data is specified in ansof
file (which is just a text file), where each input file is specified with its associated classification and category. The format of each line in thesof
file is as follows:
full-path-to-file classification
The first of the files above data.sof
seem to meet these criteria and contains the path to the input bias frames and what appears to be their HIERARCH ESO DPR TYPE
keyword together with HIERARCH ESO SEQ ARM
(classification tag):
/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:34:46.596.fits BIAS_UVB_1x1
/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:36:19.284.fits BIAS_UVB_1x1
/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:37:52.583.fits BIAS_UVB_1x1
/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:39:24.501.fits BIAS_UVB_1x1
/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:40:58.590.fits BIAS_UVB_1x1
There is also a JSON version of the SOF with much more detailed information. Here is a file called 'input_sof.json' with the same set of files as above:
[
{
"purposes": [
"ACTION_MBIAS_UVB/ACTION_FLUX_SLIT_NOD_UVB/ACTION_SCI_SLIT_STARE_UVB"
],
"name": "/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:20:39.700.fits",
"checksum": "500031168314E955F0A3533660CA7E5A",
"category": "BIAS_UVB",
"class": "org.eso.domain.FitsFile"
},
{
"purposes": [
"ACTION_MBIAS_UVB/ACTION_FLUX_SLIT_NOD_UVB/ACTION_SCI_SLIT_STARE_UVB"
],
"name": "/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:23:27.505.fits",
"checksum": "557B300BF8E403413101C543B454C1EC",
"category": "BIAS_UVB",
"class": "org.eso.domain.FitsFile"
},
{
"purposes": [
"ACTION_MBIAS_UVB/ACTION_FLUX_SLIT_NOD_UVB/ACTION_SCI_SLIT_STARE_UVB"
],
"name": "/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:26:17.621.fits",
"checksum": "5D5C8D9032EDF7D385F952D92F8CD370",
"category": "BIAS_UVB",
"class": "org.eso.domain.FitsFile"
},
{
"purposes": [
"ACTION_MBIAS_UVB/ACTION_FLUX_SLIT_NOD_UVB/ACTION_SCI_SLIT_STARE_UVB"
],
"name": "/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:29:05.346.fits",
"checksum": "4A96894259FD95CAB09416B1711BADAC",
"category": "BIAS_UVB",
"class": "org.eso.domain.FitsFile"
},
{
"purposes": [
"ACTION_MBIAS_UVB/ACTION_FLUX_SLIT_NOD_UVB/ACTION_SCI_SLIT_STARE_UVB"
],
"name": "/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/raw_data/XSHOO.2017-08-18T21:31:55.631.fits",
"checksum": "86CF0957ABEAE8AB5074DB6EF4AF863A",
"category": "BIAS_UVB",
"class": "org.eso.domain.FitsFile"
}
]
Alongside input_sof.json
there are also output_files.sof
and products_sof.json
[
{
"purposes": [
"ACTION_MFLAT_SLIT_UVB/ACTION_SCI_SLIT_STARE_UVB"
],
"name": "/Users/Dave/Dropbox/Desktop/xshooter_qub_demo/other_data/reflex_tmp_products/xshooter/xsh_mbias_1/2019-09-30T10:36:13.810/MASTER_BIAS_UVB.fits",
"checksum": "9149D64DB44F7EBEFF5B22D82E0A8F08",
"category": "MASTER_BIAS_UVB",
"class": "org.eso.domain.FitsFile"
}
]
[
{
"name": "\/Users\/Dave\/Dropbox\/Desktop\/xshooter_qub_demo\/other_data\/reflex_tmp_products\/xshooter\/xsh_mbias_1\/2019-09-30T10:37:11.042\/MASTER_BIAS_UVB.fits",
"category": "MASTER_BIAS_UVB"
}
]
To generate an sof
file for a directory containing FITS files run the command:
python create_sof_from_directory_contents.py /path/to/folder > my_sof_file.sof
You can also filter on arm, binning and frame type:
create_sof_from_directory_contents <directoryPath>
create_sof_from_directory_contents <directoryPath> <type>
create_sof_from_directory_contents <directoryPath> <type> <arm>
create_sof_from_directory_contents <directoryPath> <type> <arm> <xbin> <ybin>
```