Reading Catalogs for Corrfunc¶
All of the Corrfunc
routines require some sort of
position arrays, X/Y/Z, as input. These arrays are
expected to be 1-D arrays of type np.array
. If
you already have have the required numpy
arrays,
then you can just pass them straight to Corrfunc
.
If you need to read the arrays in from disk, then read
on. For the command-line interface, the input files can only
be in ASCII or fast-food format (for description of fast-food
binaries, see Fast-food binary format).
Reading from ASCII files¶
This is the most straight forward way – you need an ASCII file with columns X/Y/Z (white-space separated).
Using numpy.genfromtxt
¶
import numpy as np
fname = "myfile_containing_xyz_columns.dat"
# For double precision calculations
dtype = np.float64 ## change to np.float32 for single precision
X, Y, Z = np.genfromtxt(fname, dtype=dtype, unpack=True)
Note
Corrfunc.read_catalog
uses this exact code-snippet to read in ASCII files in python.
Reading from fast-food files¶
If you are using the command-line interface, then the code will have to
read the arrays from files. While Corrfunc
natively supports both
ASCII and fast-food formats (for description of fast-food binaries, see
Fast-food binary format), the following python utility is intended to
read both these types of files.
Using utility: Corrfunc.io.read_catalog
¶
Corrfunc.io.read_catalog
can directly read ASCII files or fast-food binary
files.
from Corrfunc.io import read_catalog
# Read the standard theory catalog (on a box)
# supplied with Corrfunc
X, Y, Z = read_catalog()
# Read some other format -> have to specify
# filename
fname = "myfile_containing_xyz_columns.dat"
X, Y, Z = read_catalog(fname)