Skip to main content

Tabulated Correlation Functions

Project description

TabCorr: Tabulated Correlation Functions

PyPI Version License: MIT Language: Python

This Python module provides extremely efficient and precise calculations of galaxy correlation functions in halotools using tabulated values. It is specifically intended for Markov chain monte carlo (MCMC) exploration of the galaxy-halo connection. It implements the method described in Zheng & Guo (2016) of tabulating correlation functions that only need to be convolved with the mean halo occupation to obtain the full correlation function of galaxies.

Installation

The package can be installed via pip.

pip install tabcorr

Usage

The following code demonstrates the basic usage of TabCorr.

import numpy as np
from matplotlib import cm
from matplotlib import colors
import matplotlib.pyplot as plt
from halotools.sim_manager import CachedHaloCatalog
from halotools.mock_observables import wp
from halotools.empirical_models import PrebuiltHodModelFactory
from tabcorr import TabCorr

# First, we tabulate the correlation functions in the halo catalog. Note that
# by default, TabCorr applies redshift-space distortions (RSDs) in the
# tabulation of correlation functions.
rp_bins = np.logspace(-1, 1, 20)

halocat = CachedHaloCatalog(simname='bolplanck')
halotab = TabCorr.tabulate(halocat, wp, rp_bins, pi_max=40, verbose=True,
                           num_threads=4)

# We can save the result for later use.
halotab.write('bolplanck.hdf5')

# We could read it in like this. Thus, we can skip the previous steps in the
# future.
halotab = TabCorr.read('bolplanck.hdf5')

# Now, we're ready to calculate correlation functions for a specific model.
model = PrebuiltHodModelFactory('zheng07', threshold=-18)

rp_ave = 0.5 * (rp_bins[1:] + rp_bins[:-1])

ngal, wp = halotab.predict(model)
plt.plot(rp_ave, wp, label='total')

ngal, wp = halotab.predict(model, separate_gal_type=True)
for key in wp.keys():
    plt.plot(rp_ave, wp[key], label=key, ls='--')

plt.xscale('log')
plt.yscale('log')
plt.xlabel(r'$r_p \ [h^{-1} \ \mathrm{Mpc}]$')
plt.ylabel(r'$w_p \ [h^{-1} \ \mathrm{Mpc}]$')
plt.legend(loc='lower left', frameon=False)
plt.tight_layout(pad=0.3)
plt.savefig('wp_decomposition.png', dpi=300)
plt.close()

# Studying how the clustering predictions change as a function of galaxy-halo
# parameters is straightforward.

norm = colors.Normalize(vmin=12.0, vmax=12.8)
sm = cm.ScalarMappable(cmap=cm.viridis, norm=norm)
sm.set_array([])

for logm1 in np.linspace(12.0, 12.8, 1000):
    model.param_dict['logM1'] = logm1
    ngal, wp = halotab.predict(model)
    plt.plot(rp_ave, wp, color=sm.to_rgba(logm1), lw=0.1)

cb = plt.colorbar(sm)
cb.set_label(r'$\log M_1$')
plt.xscale('log')
plt.yscale('log')
plt.xlabel(r'$r_p \ [h^{-1} \ \mathrm{Mpc}]$')
plt.ylabel(r'$w_p \ [h^{-1} \ \mathrm{Mpc}]$')
plt.tight_layout(pad=0.3)
plt.savefig('wp_vs_logm1.png', dpi=300)
plt.close()

Author

Johannes Ulf Lange

Citations

The method implemented in TabCorr has first been described in earlier work, particularly Neistein et al. (2011) and Zheng & Guo (2016). In Lange et al. (2019a), we developed a generalized framework for this method that also takes into account assembly bias. Finally, a good reference for the TabCorr code itself is Lange et al. (2019b).

License

TabCorr is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tabcorr-1.1.0.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

tabcorr-1.1.0-py2.py3-none-any.whl (26.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file tabcorr-1.1.0.tar.gz.

File metadata

  • Download URL: tabcorr-1.1.0.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for tabcorr-1.1.0.tar.gz
Algorithm Hash digest
SHA256 37aeb02ae4efbb76958c3b9de77464ff889a1d94198f5a5fda620bf7d4b1f4f0
MD5 5e1e1936a93d0be408a596a8d0796f99
BLAKE2b-256 053bbfd48d0b884bbf9eb094084df21db7218af02e5294c4a4348f5b828c4b59

See more details on using hashes here.

File details

Details for the file tabcorr-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: tabcorr-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 26.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for tabcorr-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e55871d635cb2126841fb043a802404f92f0a56508f05cd5a09d1c705112acd7
MD5 20f937784c1efa46d8978dca7cd842a5
BLAKE2b-256 dfdb44d5fdd739defd6fe2298f7e0fb27d0555806a518a7f2c1f702d0d585758

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page