This section (created with significant help from Pratik Dabhade) describes how to run the pipeline on continuum observations at 150, 235, 325 or 610 MHz, with 16 or 32 MHz of bandwidth, obtained with the GMRT software correlator backend (GSB).
Let's assume you have requested and downloaded a single night observation from the GMRT archive in LTA format. You will end up with 3 files:
We will assume that the observation contains at least one of the primary calibrators 3C48, 3C147 or 3C286.
First we convert LTA to UVFITS format:
lta_file_name = "./<project name>_<observe date>.lta" convert_lta_to_uvfits( lta_file_name )
This creates a UVFITS file in the fits subdirectory, having the same name as the LTA file name but with the extension “.UVFITS” added to it.
Then we derive calibration and flagging information from the primary calibrator(s), pick the best one, transfer those informations to all other source visibilities present in the observation, and export each of these pre-calibrated visibility data sets to UVFITS:
uvfits_file_name = "./fits/<project name>_<observe date>.lta.UVFITS" pre_calibrate_targets( uvfits_file_name, flags_file_name = lta_file_name + "##*.FLAGS*" )
The fits subdirectory in our project directory now contains pre-calibrated visibility data sets per source. The file name convention is as follows: <source name>_<observation reference date>_<polarization(s)>_<sideband>.UVFITS
The main pipeline will take the pre-calibrated visibilities of any source you specify, and produce a series of images with increasingly more flagging and calibrations.
target_uvfits_file_name = "./fits/<source name>_<observation reference date>_<polarization(s)>_<sideband>.UVFITS" process_target( target_uvfits_file_name )
This may typically take 6-8 times the duration of the actual observation to complete. The good news is that you can walk away and check the results later. All processing output is captured in a log file: ./datfil/spam_<source name>_<start date>_start_time>.log The final image is: ./fits/<source name>.SP2B.PBCOR.FITS
The pipeline run can be summarized by typing:
summarize_spam_log( "./datfil/spam_<source name>_<observation reference date>_<polarization(s)>_<sideband>*.log" )
There's a million options available to make this process work for different / more complicated data sets. Some of the most common situations are discussed below.
Sometimes a single observation has been broken up into multiple LTA files because the data recording was interrupted (e.g., because of a power failure or system reset). Note that this is different from having a single project spread out over multiple observations. The multiple LTA files can be individually converted to UVFITS before combining:
lta_file_name_1 = "./<project name>_<observe date>.lta" convert_lta_to_uvfits( lta_file_name_1 ) lta_file_name_2 = "./<project name>_<observe date>.lta.1" convert_lta_to_uvfits( lta_file_name_2 )
Then the resulting UVFITS files can be combined as follows:
uvfits_file_name_1 = "./fits/<project name>_<observe date>.lta.UVFITS" uvfits_file_name_2 = "./fits/<project name>_<observe date>.lta.1.UVFITS" uvfits_file_name = "./fits/<project name>_<observe date>.lta.combined.UVFITS" combine_uv( uvfits_file_name_1, uvfits_file_name_2, uvfits_file_name )
The output UVFITS can then be passed to pre_calibrate_targets() etc.
Combining observations on the same target from multiple observations is only possible when the frequency setup was exactly the same during the multiple observations. This is (almost?) always the case when a target was observed during a single project spread over multiple nights.
First, convert and pre-calibrate the observat