Gravitational Wave Data Analysis — IPTA Student Workshop 2017


We will be using docker to handle all of the analysis software you'll be using.  You can download and install docker from  After docker is installed run the executable.

Docker is a manager that runs individual containers.  A container is a self contained set of software sandboxed from your machine.  It’s kind of like a virtual machine.  Each container is an instance of an image.  You can run multiple containers simultaneously, if you want (but we won’t).

We will use an image from Michele Vallisneri’s nanodocker.  In a terminal you can download this image by running the command:
docker pull micvallis/nanograv-stochastic-user:v1.6

It’s a few GB in size, so it might take a while…

This image contains all of the necessary software used in NANOGrav data analysis on top of a bare-bones install of Linux and Python.  It includes:
  • tempo2ADD LINK

We will use PAL2.

Getting the Data

You will also need to get a set of PTA data to analyze.  You can download a tarball containing the NANOGrav 9yr data release, some PPTA data, and the first IPTA Mock Data Challenge set 3, and some example Jupyter notebooks to get you started.

Extract the tarball:
tar -xzf ipta_analysis.tgz

You may want to move the new directory somewhere convenient and remember the absolute path to it (I’ll call it /path/to/my/dir/).  You’re going to link this directory into your docker container, when you start it.  That way you can access everything in that local directory, when you are inside the container.

Starting a Docker container

Once it’s done you can run a Jupyter notebook inside an instance of that container by using the command:
docker run -it -p 8888:8888 -u nanograv -v /path/to/my/dir/:/home/nanograv/local_dir/ micvallis/nanograv-stochastic-user:v1.6
You need to change the path to your local analysis directory.  If you use bash  as your terminal you can do this is with pwd.  In the example below you  cd into the directory you want link into the container, save that path to a variable, and use that variable when you launch docker.
cd /path/to/my/dir/
myDir=`pwd` # this saves the output of pwd into a variable
docker run -it -p 8888:8888 -u nanograv -v ${myDir}:/home/nanograv/local_dir/ micvallis/nanograv-stochastic-user:v1.6

Your terminal will spit out a local URL.  You can copy and paste it into your web browser to access the Jupyter notebook.

In the list of directories should be local_dir/.  We’ll be working in there for the most part.

You can run a separate terminal instance in the same container as the Jupyter notebook.  In a new terminal window enter the command:
docker ps

This will list all runner containers.  Then run:
docker exec -it -u nanograv YOUR_CONTAINER_ID bash
where YOUR_CONTAINER_ID is either the hexadecimal hash or the two_word name

Installing ENTERPRISE 

(for the experienced or ambitious participant)

Enterprise is the latest NANOGrav data analysis suite.  It’s designed specifically to handle the best practices data analysis as discussed at the December IPTA DR2 workshop.  It’s still under development and is in need of testers.