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 a run script that can run either serially or in parallel:
run_null.py requires a configuration file as argument, for example:
which includes all the parameter for the run and also the path to the configuration for reading the maps from disk, in this case:
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, halfrings 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, or to
use the reader.DXReader with a file patters configuration files, for example
differences.py 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.
In order to run all null tests serially, just set
paral=False and run
python run_null.py run_dx9_10deg.conf, this might take few hours, as about 380 maps are produced, the outputs will be stored in the
The code is trivially parallel, parallelization is achieved using
ipython cluster computing features.
ipython documentation for installing it, it requires to build
libzmq and install
ipython is installed, you can just:
ipcontrolleron the login node
- submit a pbs job which spawns a number of
- open an
ipythonsession on the login node (possibly inside
screen) and then launch
run run_null.py run_dx9_10deg.confafter setting
paral=Truein the configuration file.