Formats

File Formats

Interferometric data from reduction software like CASA or MIRIAD is generally stored in measurement sets (*.ms) or FITS files (*.fits), and usually contains a lot of ancillary data unnecessary for a dynamical mass measurement (or fitting in the UV plane in general). To reduce dependency on these outside programs and overall memory footprint, we have made it so that all of the Julia code only interfaces with the minimal necessary visibility data stored in an HDF5 file.

The key Julia code used to read this file is provided in /src/visibilities.jl which reads the HDF5 file and stores each channel in an array of DataVis instances. For example, this data.hdf5 file contains the following datasets in arrays of (nrows, ncols) form. nchan is the number of channels in the dataset, nvis is the number of complex visibilities in the measurement set.

The format of this datafile is as follows:

data.hdf5
  lams # [μm] (nchan) Wavelength (in microns) corresponding to channel
  uu # [kλ] (nchan, nvis) Vectors of the u locations in kilolambda
  vv # [kλ] (nchan, nvis) Vectors of the v locations in kilolambda
  real # [Jy] (nchan, nvis) real component of the complex visibilities
  imag # [Jy] (nchan, nvis) imaginary component of the complex visibilities
  invsig # [1/Jy] (nchan, nvis) the inverse of sigma for each visibility (1/sigma)

and an example datafile is provided for AK Sco, available for download here. The invsig field may seem like an non-traditional way to store visibility weights (typically measured in [1/Jy^2]), but enables quick computation of the chi^2 statistic via Julia's sum(abs2,...) routine.

Example scripts for reading in data from the SMA FITS format are available in the scripts/ directory. We are working on a more centralized way to easily extract ALMA visibilities from a measurement set. Right now it tends to be a bit object-specific.