The files are listed here alphabetically, by file name. Only the files which will be changed when we convert to the new format are listed. For a description of these unchanged files, see this page
CHANGED: We will be writing all integers and floats in the x86, Little Endian byte order. bl_read This file contains the baseline information. There is one fixed-length record written per receiver per sideband per baseline per scan. The order of the loops writing out these records is: receiver sideband polarization baseline so baseline ID is the most rapidly varying index. For most tracks receiver and polarization only have a single value, and the loops collapse to: sideband baseline Each record contains: typedef struct __attribute__((packed)) blhDef { int blhid ; /* proj. baseline id # */ /* This is a unique identifier*/ /* for the baseline */ int inhid ; /* integration id # */ short isb ; /* sideband int code */ short ipol ; /* polarization int code */ /* 0 = Unknown */ /* 1 = RR */ /* 2 = RL */ /* 3 = LR */ /* 4 = LL */ CHANGED: Dropped element pa - was not used short ant1rx /* This flag is meaningful */ CHANGED: Used to be called iaq /* only in Dual Rx Polar */ /* mode, when it is used to */ /* specify the receiver on */ /* used on the lower number- */ /* receiver on the baseline. */ /* 0 = 345 Rx */ /* 1 = 400 Rx */ /* anything else is bad data.*/ short ant2rx /* In full polarization mode */ CHANGED: Used to be called ibq /* ibq encodes the high ant */ /* number Rx */ /* 0 = 345 Rx */ /* 1 = 400 Rx */ CHANGED: Dropped element icq - was not used short pointing ; /* pointing data int code */ CHANGED: Used to be called ioq /* = 1 for no offsets */ /* = 0 otherwise */ /* Used to indicate off */ /* source ipoint scans. */ short irec ; /* receiver int code */ /* 0 = 230 */ /* 1 = 345 */ /* 2 = 400 */ /* 3 = 600 */ /* -1 = Rx unknown */ CHANGED: Dropped element iifc - was not used float u ; /* u coord for bsl (klambda) */ float v ; /* v coord. for bsl */ float w ; /* w coord. for bsl */ float prbl ; /* projected baseline */ CHANGED: Dropped element angres - was not used CHANGED: Dropped element vis - was not used float coh ; /* coherence estimate */ CHANGED: Dropped element sigcoh - was not used CHANGED: Dropped element csnr - was not used CHANGED: Dropped element vflux - was not used CHANGED: Dropped element cnoise - was not used double avedhrs ; /* hrs offset from ref-time */ float ampave ; /* ave continuum amp */ float phaave ; /* ave continuum phase */ CHANGED: Dropped element tpvar - was not used int blsid ; /* physical baseline id # */ short iant1 ; /* antenna 1 int code */ RENAMED: was itel1 short iant2 ; /* antenna 2 int code */ RENAMED: was itel2 int ant1TsysOff ; /* Byte offset to start of */ CHANGED: Added for new format /* Tsys information for ant 1 */ /* of this baseline and this */ /* scan. */ int ant2TsysOff ; /* Byte offset for ant 2 Tsys */ CHANGED: Added for new format short iblcd ; /* baseline int code */ float ble ; /* bsl east vector */ float bln ; /* bsl north vector */ float blu ; /* bsl up vector */ CHANGED: Dropped element soid - was not used int spareint1 ; /* Spare Int. for future use */ CHANGED: Added for new format int spareint2 ; /* */ CHANGED: Added for new format int spareint3 ; /* */ CHANGED: Added for new format int spareint4 ; /* */ CHANGED: Added for new format int spareint5 ; /* */ CHANGED: Added for new format int spareint6 ; /* */ CHANGED: Added for new format double sparedbl1; /* Spare Dbl. for future use */ CHANGED: Added for new format double spatedbl2; /* */ CHANGED: Added for new format double sparedbl3; /* */ CHANGED: Added for new format double sparedbl4; /* */ CHANGED: Added for new format double sparedbl5; /* */ CHANGED: Added for new format double sparedbl6; /* */ CHANGED: Added for new format } blhDef; /* the size of blhDef is 158 bytes */ CHANGED: Used to be 118 bytes in_read This file contains scan header information. It consists of fixed-length records. There is one record written for each scan. The format is typedef struct __attribute__((packed)) inhDef { CHANGED: Dropped element conid - was not used CHANGED: Dropped element icocd - was not used int traid ; /* track id # */ /* Set to the Project ID */ int inhid ; /* integration id # */ int ints ; /* integration # */ /* In reality, same as inhid */ CHANGED: Dropped element itq - was not used float az ; /* azimuth (degrees) */ float el ; /* elevation (degrees) */ float ha ; /* hour angle (hours) */ short iut ; /* ut int code */ short iref_time ; /* ref_time int code */ double dhrs ; /* hrs from ref_time */ float vc ; /* vcorr for vctype */ CHANGED: Dropped element ivctype - was not used double sx ; /* x vec. for bsl. */ double sy ; /* y vec. for bsl. */ double sz ; /* z vec. for bsl. */ float rinteg ; /* actual int time */ int proid ; /* project id # */ int souid ; /* source id # */ short isource ; /* source int code */ short ivrad ; /* Id number for the radial */ CHANGED: Used to be called ipos /* velocity */ float offx ; /* offset in x */ CHANGED: Will now hold mosaic offset /* used for RA offset */ float offy ; /* offset in y */ CHANGED: Will now hold mosaic offset /* used for Dec offset */ CHANGED: Dropped element iofftype - was not used short ira ; /* ra int code */ short idec ; /* dec int code */ double rar ; /* ra (radians) */ double decr ; /* declination (radians) */ float epoch ; /* epoch for coord. */ /* always set to 2000.0 */ CHANGED: Dropped element sflux - was not used float size ; /* source size (arcsec) */ int spareint1 ; /* Spare Int. for future use */ CHANGED: Added for new format int spareint2 ; /* */ CHANGED: Added for new format int spareint3 ; /* */ CHANGED: Added for new format int spareint4 ; /* */ CHANGED: Added for new format int spareint5 ; /* */ CHANGED: Added for new format int spareint6 ; /* */ CHANGED: Added for new format double sparedbl1; /* Spare Dbl. for future use */ CHANGED: Added for new format double spatedbl2; /* */ CHANGED: Added for new format double sparedbl3; /* */ CHANGED: Added for new format double sparedbl4; /* */ CHANGED: Added for new format double sparedbl5; /* */ CHANGED: Added for new format double sparedbl6; /* */ CHANGED: Added for new format } inhDef; /* The size of inhDef is 188 bytes */ CHANGED: Was 132 bytes sch_read This is the file that actually contains the visibility data. Unlike most of the files containing binary data, the records in this file are of wildly varying length, depending upon the resolution of the spectrometer band. There is one record written for each scan, and it contains the packed visibility data for all chunks and the pseudocontinuum channels. Here's the format: Each scan has one header containing: One 32 bit integer containing the integration number One 32 bit integer containing the number of bytes for this record after that short header, one record of the following type is written for every spectral band, including the pseudocontinuum channel: typedef struct __attribute__((packed)) schDef { int inhid ; /* integration id # */ CHANGED: Dropped element form[4] - was always "I2-C" int nbyt ; /* the number of bytes in one integration of data */ CHANGED: Dropped element nbyt_pack - was same as nbyt short *packdata; /* integer array containing the data in the format above */ } schDef; The spectral bands are stored in packdata as follows: In double bandwidth mode, the nested loops are sideband polarization baseline spectral band in all other observing modes the nested loops are receiver sideband polarization baseline spectral band so spectral band is always the most rapidly varying index The pseudocontinuum band is the first band stored, followed by the spectral bands (usually 24 or 48 of them). Note that the above definition, although correct (it is from the C source code file for the program writing the data) is somewhat misleading. "packdata" is not a pointer at all. Instead, packdata is the beginning of a varliable-length array of short integers containing the visibilities. Note that there is only one header record containing inhid and nbyt for an entire scan. After that scan there there are packed arrays of short integers containing the visibilities for all the spectral bands (and the pseudo-continuum) for all baselines, polarizations, receivers and sidebands. CHANGED for new format: In the old format, each spectral band had the following format for its entries in the packdata array: byte offset Description 0 The integration time in 10ths of a second 2 Always 0 4 Always 100 6 Always 0 8 The exponent used to scale the visibilities 10 Real value for channel 0 12 Imaginary value for channel 0 14 Real value for channel 1 16 Imaginary value for channel 1 ... In the new format, the values above that are not needed have been dropped, so for each band the packdata array now contains just the following: byte offset Description 0 The exponent used to scale the visibilities (scaleExp) 2 Real value for channel 0 4 Imaginary value for channel 0 6 Real value for channel 1 8 Imaginary value for channel 1 ... Note that the visibility values should be multiplied by 2^scaleExp. sp_read This file contains the header information for each individual spectral band of data. A spectral band can be either a correlator chunk or the pseudo-continuum channel. So, for example, if your file contains 2814 scans, and you had two receivers active and all 24 correlator chunks and all 28 baselines, the total number of records in this file would be 2814 * 28 * (24+1) * 2 * 2 = 7879200. The loop order for writing this file is scan receiver sideband polarization baseline band Here's what each record contains: typedef struct __attribute__((packed)) sphDef { int sphid ; /* spectrum id # */ int blhid ; /* proj. baseline id # */ int inhid ; /* integration id # */ short igq ; /* gain qual int code */ short ipq ; /* passband qual int code */ short iband ; /* spectral band int code */ short ipstate ; /* pol state int code */ float tau0 ; /* Tau at 225 GHz from the */ /* CSO tau-o-meter */ double vel ; /* velocity (vctype) (km/s) */ float vres ; /* velocity res. */ CHANGED: Dropped element ivtype - was not used double fsky ; /* center sky freq. */ float fres ; /* frequency res. (MHz) */ double gunnLO ; /* gunn freq x multiplier */ CHANGED: Added for new format double cabinLO ; /* Frequency of BDA LO */ CHANGED: Added for new format double corrLO1 ; /* Correlator Block LO */ CHANGED: Added for new format double corrLO2 ; /* Correlator Chunk LO */ CHANGED: Added for new format CHANGED: Dropped element tssb - will use tsys_read file instead float integ ; /* integration time */ float wt ; /* weight (sec/tssb**2) */ /* Set to -(sec/tssb**2) if */ /* the data is flagged bad. */ int flags ; /* Holds per-baseline flags */ New item CHANGED: Dropped element itaper - was not used float vradcat ; /* The catalog rad. velocity */ CHANGED: Renamed - was snoise short nch ; /* # channels in spectrum */ short nrec ; /* # of records w/i inh# */ /* Always set to 1 */ int dataoff ; /* byte offset for data */ CHANGED: Dropped element linid - was not used CHANGED: Dropped element itrans - was not used double rfreq ; /* rest frequency (GHz) */ CHANGED: Dropped element pasid - was not used short corrblock ; /* Correlator block number */ CHANGED: Renamed - was gaiidamp /* 0 for c1 chunk */ short corrchunk ; /* Correlator chunk number */ CHANGED: Renamed - was gaiidpha /* NOT the sxx chunk name - */ /* this value is always 1->4, */ /* except for the c1 chunk */ CHANGED: Dropped element flcid - was not used CHANGED: Dropped element atmid - was not used int spareint1 ; /* Spare Int. for future use */ CHANGED: Added for new format int spareint2 ; /* */ CHANGED: Added for new format int spareint3 ; /* */ CHANGED: Added for new format int spareint4 ; /* */ CHANGED: Added for new format int spareint5 ; /* */ CHANGED: Added for new format int spareint6 ; /* */ CHANGED: Added for new format double sparedbl1; /* Spare Dbl. for future use */ CHANGED: Added for new format double spatedbl2; /* */ CHANGED: Added for new format double sparedbl3; /* */ CHANGED: Added for new format double sparedbl4; /* */ CHANGED: Added for new format double sparedbl5; /* */ CHANGED: Added for new format double sparedbl6; /* */ CHANGED: Added for new format } sphDef; /* the size of sphDef is 188 bytes */ CHANGED: Was 100 bytes tsys_read CHANGED: This structure has been completely redefined typedef struct __attribute__((packed)) tsysRecordDef { int nMeasurements; /* Number of Tsys measurements for this antenna */ float *data; /* The Tsys measurements. This will be a variable */ /* length array, consisting of nMeasurement sets of */ /* four single precision floating point values. */ /* Each set of four values will contain the */ /* following values, in this order: */ /* Lower IF frequency for the Tsys value (GHz) */ /* Upper IF frequency for the Tsys value (GHz) */ /* LSB Tsys (K) */ /* USB Tsys (K) */ } tsysRecordDef; /* Size of one record: 4+nMeasurements*16 bytes */ The tsys_read file will hole all the Tsys measurements we have for each antenna, along with the IF frequency ranges overwhich those Tsys measurements were acquired. Eventually we hope to have a separate Tsys measurement for each 1 GHz interval throughout the IF. Note that although the definition for *data above is technically correct, there is no pointer stored in that location. Instead, there is an array of floats, in groups of 4.