Specifying the separation bins in Corrfunc

All of the python extensions for Corrfunc accept either a filename or an array for specifying the \(r_p\) or \(\theta\).

Manually creating a file with arbitrary bins

This manual method lets you specify generic bins as long as the upper-edge of one bin is the same as the lower-edge of the next (i.e., continuous bins). The bins themselves can have arbitrary widths, and the smallest bin can start from 0.0.

  • Open a text editor with a new file

  • Add two columns per bin you want, the first column should be low-edge of the bin while the second column should be the high-edge of the bin. Like so:

0.10     0.15
  • Now add as many such lines as the number of bins you want. Here is a valid example:

0.10     0.15
0.15     0.50
0.50     5.00

This example specifies 3 bins, with the individual bin limits specified on each line. Notice that the width of each bin can be independently specified (but the bins do have to be continuous)


Make sure that the bins are in increasing order – smallest bin first, then the next smallest bin and so on up to the largest bin.

Specifying bins as an array

You can specify the bins using numpy.linspace or numpy.logspace.

import numpy as np
rmin = 0.1
rmax = 10.0
nbins = 20
rbins = np.linspace(rmin, rmax, nbins + 1)
log_rbins = np.logspace(np.log10(rmin), np.log10(rmax), nbins + 1)