Skip to content
This repository has been archived by the owner on Jul 2, 2021. It is now read-only.

Latest commit

 

History

History
77 lines (62 loc) · 2.22 KB

mapmaking.md

File metadata and controls

77 lines (62 loc) · 2.22 KB

Map-making

Harlequin includes a routine that applies the destriping algorithm to time-ordered data, producing a maximum-likelihood map of the intensity and polarization signal.

The destriping algorithm used in the code is described in the paper Destiping CMB temperature and polarization maps, Kurki-Suonio et al., A/A 506, 1511-1539 (2009), and the source code closely follows the terminology introduced in that paper.

The destriping algorithm is effective in removing 1/f noise originated within the detectors of an instrument, provided that the noise is uncorrelated among detectors. It requires the user to specify a baseline, i.e., the maximum time span in which the noise can be assumed to be uncorrelated (i.e., white).

Since the destriper is effective only when much data is available, it is often the case that the input data to be fed to the algorithm is larger than the available memory on a machine. In this case, the destriper can take advantage of a distributed-memory environment and of the MPI libraries, if they have been loaded before Harlequin, like in the following example:

import MPI
import Harlequin  # Ok, use MPI whenever possible

# ...

You can check if MPI is being used with the function use_mpi.

Destriping is based on a datatype, DestripingData, and on the function destripe!. To use the destriper, you create an object of type DestripingData and then call destripe! on it. The TOD must be split in a set of observations, using the datatype Observation; we will see how to use them in the section Splitting a TOD into observations.

Splitting a TOD into observations

Observation

High-level functions

DestripingData
destripe!
use_mpi

Low-level functions

The following functions are listed here for reference. You are not expected to use them, unless you want to debug the destriper or dig into its internals.

update_nobs!
update_nobs_matrix!
compute_nobs_matrix!
update_binned_map!
reset_maps!
compute_z_and_subgroup!
compute_z_and_group!
compute_residuals!
array_dot
calc_stopping_factor
apply_offset_to_baselines!
calculate_cleaned_map!