Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Python JavaScript

This branch is 78 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Null tests library for Planck

This code provides a library and example scripts to run null tests on the products of a Planck Data eXchange (DX).


This repository provides a library for interactive and serial usage:


and an example script for LFI DX9 that can run either in parallel or serial:


Once the tests have been executed, the user can produce a HTML report using plancknull_generate_html, which is a separate program.


Input maps are read by a class that inherits from reader.BaseMapReader that implements a __call__ method that given channel, frequency, survey, healfrings and requested polarization returns a map (typically either "I" or "IQU"). Therefore the first step with a new dataset is to implement a new reader.BaseMapReader child class.

The library provides 3 functions that create specific null tests, they read the maps thanks to the input reader object:

  • halfrings: halfring differences
  • surveydiff: survey differences
  • chdiff: either channels or horn differences

Those functions can be used interactively, see their docstrings and the example script for reference.

Serial usage

In order to run all null tests serially, just set paral=False and run python, this might take few hours, as about 380 maps are produced, the outputs will be stored in the dx9/ folder.


The code is trivially parallel, parallelization is achieved using ipython cluster computing features.

See ipython documentation for installing it, it requires to build libzmq and install pyzmq.

Once ipython is installed, you can just:

  • run ipcontroller on the login node
  • submit a pbs job which spawns a number of ipengines (see ipython documentation)
  • open an ipython session on the login node (possibly inside screen) and then launch run after setting paral=True in the code.

Known issues

Currently logging does not work when the script is launched in parallel.

Something went wrong with that request. Please try again.