Observation Ingest

This documentation will describe how observation data is uploaded to the MeerTime database. It will first describe telescope specific steps to create a meertime.json and then how to upload the json.

Telescope specific ingest

MeerKAT ingest

The design of the pulsar backend of MeerKAT (PTUSE) is described here.

For each MeerKAT observation, two directories are created /fred/oz005/kronos/<beam_num>/<utc>/<jname> and /fred/oz005/timing/<jname>/<utc>/<beam_num>/<frequency>. The directories are split by <beam_num> as sometimes MeerKAT observe multiple sources at the same time (UTC) with different beams.

In /fred/oz005/kronos/<beam_num>/<utc>/<jname> there is a obs.header file which contains the configuration that the PTUSE uses to observe a source, most of the information we require is in this file. There is also a obs.info file which has information about how the PTUSE split the dspsr command into subbands, this info does not need to be uploaded. The obs.results has a signal to noise ratio result of the folded result and the length of the observation in seconds, if the backend has not had enough time to finish the process required for this calculation the file may not exist and will need to be regenerated.

In /fred/oz005/timing/<jname>/<utc>/<beam_num>/<frequency> it will also have the obs.header, obs.info and obs.results file. The metadata.json is generated to upload the data to the MeeKAT data portal. This directory also contains all the archive files that output from the PTUSE in 8 second files.

The meertime.json file required for ingest is created with the psrdb/scripts/generate_meerkat_json.py script. The inputs of the script are the obs.header file (this is where it gets most of the metadata) and the beam_num which is worked out from the directory structure. The script also works out the calibration type (“pre” or “post”) from the UTC and finds and calibration files that are on disk. It uses the frequency summed archive in /fred/oz005/kronos/<beam_num>/<utc>/<jname>/freq.sum to work out the observation length and the ephemeris used for folding.

Uploading the observation

To upload an observation we use the metadata.json and the script psrdb/scripts/ingest_obs.py.

An example of the metadata.json file is shown below

{
 "pulsarName": "J1705-1903",
 "telescopeName": "MeerKAT",
 "projectCode": "SCI-20180516-MB-05",
 "delaycal_id": "20201022-0018",
 "cal_type": "pre",
 "cal_location": null,
 "frequency": 1283.58203125,
 "bandwidth": 856.0,
 "nchan": 1024,
 "beam": 3,
 "nant": 61,
 "nantEff": 61,
 "npol": 2,
 "obsType": "fold",
 "utcStart": "2020-10-22-16:24:55",
 "raj": "17:05:43.8502743",
 "decj": "-19:03:41.32025",
 "duration": 1999.5421942429905,
 "nbit": 8,
 "tsamp": 1.196261682242991,
 "foldNbin": 1024,
 "foldNchan": 1024,
 "foldTsubint": 8,
 "filterbankNbit": null,
 "filterbankNpol": null,
 "filterbankNchan": null,
 "filterbankTsamp": null,
 "filterbankDm": null,
 "ephemerisText": "PSRJ \t J1705-1903\nRAJ  \t  17:05:43.8502743  \t  2.846e-4\nDECJ  \t  -19:03:41.32025  \t  3.999e-2\nF0  \t  403.17844370811329346  \t  1.289e-9\nDM  \t  57.50571096535851744  \t  5.052e-5\nF1  \t  -3.4428715379610950e-15  \t  6.438e-18\nPEPOCH  \t  56618  \t  \nPOSEPOCH  \t  56618  \t  \nDMEPOCH  \t  56618  \t  \nPMRA  \t  -4.3811121114291140e+0  \t  1.3305\nPMDEC  \t  -1.7888684789156335e+1  \t  13.2010\nPX  \t  0  \t  \nBINARY  \t  ELL1  \t  \nPB  \t  0.18395403344503906874  \t  3.598e-8\nA1  \t  0.10436244224177347356  \t  1.698e-6\nPBDOT  \t  -3.7178429899716451e-12  \t  1.539e-11\nTASC  \t  56582.21217308180756000000  \t  2.285e-4\nEPS1  \t  7.9300304759274633e-5  \t  1.779e-5\nEPS2  \t  -3.3596418853323134e-5  \t  7.178e-6\nTZRMJD  \t  58855.25408581254015800000  \t  \nTZRFRQ  \t  944.52099999999995816000  \t  \nTZRSITE  \t  meerkat  \t  \nEPHVER  \t  5  \t  \nCLK  \t  TT(TAI)  \t  \nUNITS  \t  TCB  \t  \nTIMEEPH  \t  IF99  \t  \nT2CMETHOD  \t  IAU2000B  \t  \nCORRECT_TROPOSPHERE  \t  N  \t  \nEPHEM  \t  DE421  \t  \n"
}