SimpleDS is currently in a working BETA state. All code will execute and tests pass, however there are still a number of bugs to fix and enhancements to make.
simpleDS is a python package used to calculate the Delay Power Spectrum
of interferometric radio data. It performs the Fourier Transform of
visibility data along the Frequency dimension
and cross-multiplies redundant baseline information (if available).
simpleDS attempts to calculate the Delay Spectrum in the simplest manner
using only Fast Fourier Transforms (FFTs) and calculating the beam_squared_area
directly from a UVBeam compatible beam map.
This calculator requires pyuvdata for data handling and beam area calculation.
The main goals are:
- Provide a simple, user-friendly interface for computing a delay Fourier transform on interferometric radio data.
- Perform the delay power spectrum estimation on radio interferometric data using only Fast Fourier Transforms (FFTs) to provide a mathematically simple framework for analysis.
- Perform explicit unit conversions on data with as few approximations as possible.
simpleDS has one major user class:
- DelaySpectrum: supports Fourier transformation of UVData compatible radio visibility data. Also can perform power spectrum estimation and redundant baseline cross multiplication. Creates noise realization of the input data product to track analysis steps and verify normalization. Attempts to produce a theoretical thermal noise limit for the input data power spectrum.
and one minor cosmological conversion module:
- cosmo: Uses astropy.cosmology to compute relevant cosmological factors for 21cm radio data to convert between interferometric (f, u,v,w) to (k∥, k⊥) units.
First install dependencies.
- numpy >= 1.18
- scipy
- astropy >= 4.0
- h5py (for uvh5 compatibility with pyuvdata, optional)
- astropy-healpix used for UVBeam interpolations through pyuvdata (optional, only used with
use_exactkeyword foradd_uvbeam) - pyuvdata >=1.4.2 (conda install -c conda-forge pyuvdata,
pip install pyuvdata, or use the development version)
For anaconda users, we suggest using conda to install astropy, numpy and scipy.
Clone the repo using
git clone https://github.com/rasg-affiliates/simpleDS.git
Navigate into the directory and run pip install .
To also install the optional astropy-healpix use pip install .[healpix].
For all packages necessary for the testing suite use pip install .[all]
We use pytest to execute the tests for this pacakge.
From the source simpleDS directory run: python -m pytest or pytest.
We use a generation.major.minor version number format.
- The
generationnumber for very significant improvements, major rewrites, and API breaking changes. - The
majornumber to indicate substantial package changes. - The
minornumber to release smaller incremental updates which usually do not include breaking API changes.
We do our best to provide a significant period of deprecation warnings for all breaking changes to the API. We track all changes in our changelog.
A tutorial with example usage is hosted on ReadTheDocs.