Usage

The simplest way to get started is to run the executable voiager from a terminal within the Voiager/ package directory. This launches Voiager following launch.py with python (version 3). For further help on its usage, type:

voiager --help

Voiager is set up to perform an example run from the Beyond-2pt blind data challenge, which consists of a simulated mock-galaxy lightcone in a wCDM cosmology (C_mock_lightcone.h5). It is based on a public halo catalog within the AbacusSummit set of simulations and a halo occupation distribution (HOD) formalism (credits: Andres Salcedo, Yosuke Kobayashi, and Elisabeth Krause). The input data is retrieved from the catalogs/ folder including void catalogs produced with VIDE, while the output of the code is stored in the results/ directory.

Note

The example data in catalogs/ and the example results in results/ are not automatically downloaded upon installation, but they can be accessed via the repository. Once the data is publicly released, the catalogs/ folder can be downloaded as a compressed archive catalogs.tar.gz and unpacked within the main code directory via

tar -xvzf catalogs.tar.gz

The executable voiager will produce the following output:

Launching Voiager...
Loading data (angles, redshifts, catalog sizes, void properties)...
Loading info...
Loading voids...
Read 16897 voids
Loading macrocenters...
Loading derived void information...
Generating void randoms...
Transforming coordinates...
Building stacks...
=> Loading previous stack
Finding best fit...
=> Parameters:  ['f/b', 'qper', 'qpar', 'M', 'Q'] 
 [[0.45943433 1.01968878 1.02069274 1.17909194 0.91292996]
 [0.44439309 1.00533279 1.00509703 1.21756796 1.196998  ]] 
 qper/qpar: 
 [0.99901639 1.00023456] 
 Reduced chi-square: 
 [1.46139827 1.44428081]
MCMC sampling...
=> Deleting previous chain
Constraining cosmology...
=> Deleting previous chain
Plotting...
Done.

Note

All the parameters of Voiager are configured in the file params.yaml, which is used as default configuration. You can also point to your customized parameter file in yaml format like this:

voiager 'path/to/parameter_file.yaml'

Previously calculated data vectors are saved in the file stacks.dat, this step in the pipeline will be skipped in case the file already exists (i.e., it needs to be removed to start a new calculation, but note that it requires about 32GB of available memory). Similarly, the files named chains.dat contain previously run MCMCs, which the code will continue sampling when found. Human readable ASCII versions of the chains are also produced.

The file params.yaml contains the main adjustable parameters of the code, each of which appears with a brief comment about its meaning:

Info: # Survey information
  survey:    'Beyond2pt' # Name of survey
  sample:    'C_mock_lightcone' # Name of tracer sample
  random:    'C_mock_lightcone_R10' # Name of random sample
  version:   '_0300' # Version (suffix) of void catalog
  redshift:  [0.8,1.3] # Redshift range
  sky:       3759.6159 # Sky area in square degrees (full sky ~ 41253)
  cosmology: "wCDM" # Cosmological model to constrain (current options: "LCDM", "wCDM", "w0waCDM")


IO: # Input / output
  runExec:        True # If True, run executable when called
  basePath:       '' # Location of the top level code directory relative to current working directory
  tracerPath:     'catalogs/tracers/' # Location of tracer catalogs relative to basePath
  voidPath:       'catalogs/voids/' # Location of void catalogs relative to basePath
  outPath:        'results/' # Location to store output files relative to basePath
  plotPath:       'plots/' # Location to store plots relative to outPath
  inputFormat:    'hdf5' # Filetype for input tracer and random catalogs (supported types: https://docs.astropy.org/en/stable/io/unified.html)
  inputExtension: 'h5' # Filename extension for input tracer and random catalogs
  figFormat:      'pdf' # Format to save figures (e.g., pdf, png, jpg)
  columnNames:    ['RA','DEC','Z_red'] # Tracer and random catalog column headers for right ascension, declination, redshift (angles in degrees)
  stackFile:      'stacks' # Filename for data of stacks
  chainFile:      'chains' # Filename for data of chains
  continueStack:  True # If True, continue using previous stacks. If False, delete old stacks.
  continueChain:  False # If True, continue sampling of previous chains. If False, delete old chains.


Selection: # Void selection
  zv:  [0.8,1.3]   # Void redshift range
  rv:  [35.,1.e+9] # Void radius range
  mv:  [0.0,1.e+9] # Void mass range (number of tracers per void)
  dv:  [0.0,1.e+9] # Void core (minimum) density range
  Cv:  [0.0,1.e+9] # Void compensation range
  ev:  [0.0,1.e+9] # Void ellipticity range
  mgs: [2.0,1.e+9] # Void radius range in units of mean galaxy separation (mgs)


Bins: # Binning parameters
  vbin:      'zv' # 'zv': void-redshift bins, 'rv': void-radius bins
  binning:   'lin' # 'eqn': equal number of voids, 'lin': linearly spaced, 'log': logarithmicly spaced. Alternatively, provide a list for custom bin edges
  Nvbin:     2 # Number of void bins
  Nrbin:     20 # Number of radial bins in correlation function
  Nrskip:    1 # Number of radial bins to skip in fit (starting from the first bin)
  rmax:      3. # Maximum radial distance in units of void radius
  ell:       [0,2,4] # Multipole orders to consider
  Nside:     128 # Mask resolution for generating random voids
  symLOS:    True # If True, assume void-centric symmetry along LOS (no odd multipoles).
  project2d: True # If True, the projected correlation function is calculated from the POS vs. LOS 2d correlation function
  rescov:    False # If True, calculate covariance matrix for residuals between data and model (experimental!)
  datavec:   '2d' # Define data vector, '1d': multipoles, '2d': POS vs. LOS 2d correlation function


Computing: # Computing parameters
  Ncpu:    16 # Number of CPUs to use
  Nmock:   1 # Number of mock realizations (for observation = 1)
  Nbin_nz: 20 # Number of bins for redshift distributions
  Nbin_nv: 8 # Number of bins for void abundance function
  Nspline: 200 # Number of nodes for splines (only for visualization in plots, does not affect fit)
  Nsmooth: 0.5 # Smoothing factor for splines (for no smoothing = 0)
  Nwalk:   16 # Number of MCMC walkers (ideally equal to Ncpu)
  Nchain:  1000 # Length of each MCMC chain
  Nburn:   3.0 # Initial burn-in steps of chain to discard, in units of auto-correlation time
  Nthin:   0.5 # Thinning factor of chain, in units of auto-correlation time
  Nmarg:   4.0 # Margin size for parameter limits in plots, in units of standard deviation


Model: # Model parameters with fiducial values and priors
  par:
    f/b:  0.5 # Redshift-space distortion parameter
    qper: 1.0 # Perpendicular Alcock-Paczynski parameter
    qpar: 1.0 # Parallel Alcock-Paczynski parameter
    M:    1.0 # Monopole nuisance parameter
    Q:    1.0 # Quadrupole nuisance parameter

  prior:
    f/b:  [-10.,10.]
    qper: [-10.,10.]
    qpar: [-10.,10.]
    M:    [-10.,10.]
    Q:    [-10.,10.]


Cosmo: # Cosmological parameters with fiducial values and priors
  par_cosmo:
    Om: 0.30 # Omega_matter
    Ok: 0.00 # Curvature
    w0: -1.0 # DE eq. of state (constant)
    wa: 0.00 # DE eq. of state (slope)
    s8: 0.80 # RMS of density fluctuations of scale 8 Mpc/h
    h:  0.70 # Reduced Hubble constant
    b0: 1.20 # Linear tracer bias at z=0

  prior_cosmo: # Only provide for sampled parameters
    Om: [0.0,1.0]
    w0: [-2,-0.333]
    #wa: [-10,10]

  blind: True # If True, subtract mean of cosmology posterior