pyuvsim: A comprehensive simulation package for radio interferometers in python.
Abstract
Data simulations are essential to the progress of low-frequency radio telescope arrays such as HERA, the MWA, and LOFAR, and for future instruments like the SKA. Simulated datasets are used to verify analysis pipelines, to provide models for sky-based calibration, and to test the effects of design choices and environmental factors. Existing simulators (CASA, OSKAR, FHD, PRISim, etc.) make simplifying assumptions to reduce the computational demand of evaluating the measurement equation, compromising accuracy for speed. This can lead to unexpected numerical effects, which can be hard to distinguish from real effects seen in data.
pyuvsim is a simulator designed to be accurate and verifiable up front, with strict control over any approximations being made and including all effects found to be important to 21cm cosmological experiments. The default behavior is to add contributions from each point source above the horizon to each baseline in a full Jones-matrix formalism (Hamaker, 1996), with floating precision source positions and interpolated E-field primary beam values. Results are tested against analytic calculations whenever possible, and compared with other simulators and data for consistency, including PRISim (Thyagarajan et al., 2019) and FHD (Sullivan et al., 2012). Data handling and primary beam modeling are done using the pyuvdata package (Hazelton et al., 2017), which supports a variety of output data types and ensures accurate phasing methods. Source motions and coherency rotations are calculated using astropy transformations (Price-Whelan, et al., 2018), which takes into account higher order corrections to sky motion. Currently, pyuvsim supports simulating point sources from the GLEAM catalog (Hurley-Walker et al., 2017) and several mock source catalogs. It includes utilities for making parameter files based on the structure of any data file readable by pyuvdata, allowing users to quickly set up simulations to compare with an observation. It is parallelized using the Message Passing Interface (MPI) (Dalcin et al., 2005). Performance improvements are made by identifying and correcting bottlenecks using built-in line profiling tools. Features to be added include support for spectral models for sources, diffuse source models, and ionospheric effects. These are not expected to change the API. Users can rely on pyuvsim for precise results with steady, long-term improvements in resource usage and runtime.- Publication:
-
The Journal of Open Source Software
- Pub Date:
- May 2019
- DOI:
- 10.21105/joss.01234
- Bibcode:
- 2019JOSS....4.1234L