These days most of everything comes down to software one way or another. Some important infrastructure codes:

pyuvdata – Precision definition of interferometry file formats including measurement set, uvfits, miriad. Also defines a format using hdf5. Also calibration files, beam files, and now catalogs. Also a demonstration place for software engineering and community development practice. Includes tested tutorials, detailed changelogs, windows support, and more.

pyuvsim – A minimal-approximation interferometer simulation engine. Designed to serve as high dynamic range reference simulator for faster simulators with lower precision

CASA – The NRAO’s data analysis package for VLA and ALMA, also used for many other arrays. casacore is the base library which can be used via python or other languages.

21cmsense – Calculates power spectrum sensitivities for 21cm arrays. Original by J. Pober, updated in 2020 by S. Murray. et al.

21cmmc/21cmfast – Widely used to simulate cosmic dawn and EoR. With 21cmmc it can also used to make sensitivity predictions or fit models to data.


The lingua franca for much of the HERA community is python, with C where speed is necessary. Much of EDGES analysis is done in MATLAB, though moving to python. The FHD/Eppsilon package is written in IDL.

Python Stack Instructions

Note: These instructions were posted ca 2014. At that time python on use on shared clusters was still maturing. This advice is now pretty standard, but maybe worth leaving here.

Here’s how to get quickly up and running with my recommended python stack. Cross-posted from the PAPER and HERA wikis with slight modification.

From the wiki page:

These instructions were created partly to remove a previous regrettable tendency for folks to think that on a multi-user computer system like a cluster A) python environments can or should be shared and the B) its up to the system owners/administrators to install each python module for users.  These are both counter to the core python concept of frequently installing new libraries to solve new problems. There is no maintained, globally installed, python stack. After several troubling incidents, global installs have been banned from the PAPER Penn cluster, and instead users are encouraged to set up their own. Its easy! Here are the instructions for getting your own up and running on Mac or Linux research environment.


Step 0, Download anaconda. Go to and download the command line installer.

Step 1, install anaconda:

folio $ bash

Choose something simple like ~/src/anaconda
for your directory. This will help debugging later if everyone uses the same directory

Step 2: add ~/src/anaconda/bin/ to your PATH.

Step 2.1: double check that the install file is up to date
folio $conda update anaconda

Step 3: create an environment with:
conda create -n HERA anaconda #the "anaconda" option adds a pretty comprehensive package list

Step 4: activate it with,
source activate HERA

Step 5: install anything else you might need with “conda install ” if that doesn’t have what you need, use “pip install “. you can always do the regular “python install” of any package that you download as a zip.


ASU Eduroam

Here is the ASU eduroam configuration for os x. Download and run. certificate. Works as of 23 April 2016

Deprecated Stuff

AIPY (Astronomical Interferometry in Python)
Key features:

  • Simulation and imaging for radio telescopes
  • Miriad python wrappers
  • Healpix python wrappers


Adds some “essential” modules to CASA and the ability to install more via the casapython script.

Currently adds the following modules:





tar -xvf PAPERcasa-1.3.tar.bz2

cd PAPERcasa

./ <path to casa>



Install additional python libraries with:

PAPERcasa/ #required for packages that link against python C bindings (included in PAPERcasa)

casapython install