{ "cells": [ { "cell_type": "markdown", "id": "880831e6", "metadata": {}, "source": [ "# Self-Consistent Dust Reddening" ] }, { "cell_type": "markdown", "id": "d289d484", "metadata": {}, "source": [ "In [Mirocha, Mason, & Stark (2020)](https://ui.adsabs.harvard.edu/abs/2020arXiv200507208M/abstract), we describe a simple extension to the now-standard galaxy model in ARES that generates ultraviolet colours self-consistently, rather than invoking IRX-$\\beta$ relations to perform a dust correction. Here, we describe how to work with these new models." ] }, { "cell_type": "markdown", "id": "af78688e", "metadata": {}, "source": [ "### Preliminaries\n", "\n", "Before getting started, two lookup tables are required that don't ship by default with ARES (via the ``remote.py`` script; [see ARES installation](../install.html)):\n", "\n", "- A new halo mass function lookup table that employs the Tinker et al. 2010 results, rather than Sheth-Tormen (used in most earlier work with ARES).\n", "- A lookup table of halo mass assembly histories.\n", "\n", "To create these yourself, you'll need the [hmf](https://github.com/steven-murray/hmf>) code, which is installable via pip.\n", "\n", "This should only take a few minutes even in serial. First, navigate to ``$ARES/input/hmf``, where you should see a few ``.hdf5`` files and Python scripts. Open the file ``generate_hmf_tables.py`` and make the following adjustments to the parameter dictionary:" ] }, { "cell_type": "code", "execution_count": 1, "id": "e21310b8", "metadata": {}, "outputs": [], "source": [ "def_kwargs = \\\n", "{\n", " \"hmf_model\": 'Tinker10',\n", "\n", " \"hmf_tmin\": 30,\n", " \"hmf_tmax\": 2e3,\n", " \"hmf_dt\": 1,\n", "\n", " \"cosmology_id\": 'paul',\n", " \"cosmology_name\": 'user',\n", " \"sigma_8\": 0.8159,\n", " 'primordial_index': 0.9652,\n", " 'omega_m_0': 0.315579,\n", " 'omega_b_0': 0.0491,\n", " 'hubble_0': 0.6726,\n", " 'omega_l_0': 1. - 0.315579,\n", "}" ] }, { "cell_type": "markdown", "id": "bd29946e", "metadata": {}, "source": [ "The new HMF table will use constant 1 Myr time-steps, rather than the default redshift steps, and employ a cosmology designed to remain consistent with another project (led by a collaborator whose name you can probably guess)!\n", "\n", "Once you've run the ``generate_hmf_tables.py`` script, you should have a new file, ``hmf_Tinker10_user_paul_logM_1400_4-18_t_1971_30-2000.hdf5``, sitting inside ``$ARES/input/hmf``. Now, we're almost done. Simply execute:\n", "\n", "`python generate_halo_histories.py hmf_Tinker10_user_paul_logM_1400_4-18_t_1971_30-2000.hdf5`\n", "\n", "The additional resulting file, ``hgh_Tinker10_user_paul_logM_1400_4-18_t_1971_30-2000_xM_10_0.10.hdf5``, will be found automatically in subsequent calculations." ] }, { "cell_type": "markdown", "id": "a9f2c318", "metadata": {}, "source": [ "### Example\n", "\n", "\n", "With the required lookup tables now in hand, we can start in the usual way:" ] }, { "cell_type": "code", "execution_count": 2, "id": "2e28d77b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "import ares\n", "import numpy as np\n", "import matplotlib.pyplot as pl" ] }, { "cell_type": "markdown", "id": "d48a6674", "metadata": {}, "source": [ "and read-in the best-fit parameters via" ] }, { "cell_type": "code", "execution_count": 3, "id": "78010b4c", "metadata": {}, "outputs": [], "source": [ "pars = ares.util.ParameterBundle('mirocha2020:univ')" ] }, { "cell_type": "markdown", "id": "032524d1", "metadata": {}, "source": [ "Now, we create a ``GalaxyPopulation`` object," ] }, { "cell_type": "code", "execution_count": 4, "id": "8491fa1c", "metadata": {}, "outputs": [], "source": [ "pop = ares.populations.GalaxyPopulation(**pars)" ] }, { "cell_type": "markdown", "id": "31483316", "metadata": {}, "source": [ "which is an instance of the ``GalaxyEnsemble`` class, rather than the ``GalaxyCohort`` class, the latter of which is described in [this example](example_pop_galaxy). This offers a more general approach, including more complex star formation histories and proper treatment of spectral synthesis.\n", "\n", "We can plot the UVLF in the usual way," ] }, { "cell_type": "code", "execution_count": 5, "id": "9cd56bc2", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jordanmirocha/Dropbox/work/soft/miniconda3/lib/python3.7/site-packages/numpy/ma/core.py:2826: UserWarning: Warning: converting a masked element to nan.\n", " order=order, subok=True, ndmin=ndmin)\n", "/Users/jordanmirocha/Dropbox/work/soft/miniconda3/lib/python3.7/site-packages/numpy/core/_asarray.py:171: UserWarning: Warning: converting a masked element to nan.\n", " return array(a, dtype, copy=False, order=order, subok=True)\n", "/Users/jordanmirocha/Dropbox/work/soft/miniconda3/lib/python3.7/site-packages/numpy/core/_asarray.py:102: UserWarning: Warning: converting a masked element to nan.\n", " return array(a, dtype, copy=False, order=order)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "# WARNING: finkelstein2015 wavelength=1500.0A, not 1600A!\n", "# Loaded $ARES/input/hmf/hgh_Tinker10_user_paul_logM_1400_4-18_t_1971_30-2000_xM_10_0.10.hdf5.\n", "# Loaded $ARES/input/hmf/hmf_Tinker10_user_paul_logM_1400_4-18_t_1971_30-2000.hdf5.\n", "# Loaded $ARES/input/bpass_v1/SEDS/sed.bpass.instant.nocont.sin.z004.deg10\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# First, some data\n", "obslf = ares.analysis.GalaxyPopulation()\n", "ax = obslf.PlotLF(z=6, round_z=0.2)\n", "\n", "# Now, the predicted/calibrated UVLF\n", "mags = np.arange(-30, 10, 0.5)\n", "_mags, phi = pop.LuminosityFunction(6, mags)\n", "\n", "ax.semilogy(mags, phi)" ] }, { "cell_type": "markdown", "id": "113f0bb2", "metadata": {}, "source": [ "The main difference between these models and the simpler models (from, e.g., the ``mirocha2017`` parameter bundle) is access to UV colours. To access them, you can do, e.g., " ] }, { "cell_type": "code", "execution_count": 6, "id": "fdf5f4b1", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "l(nu): 100% |###############################################| Time: 0:00:01 \n", "l(nu): 100% |###############################################| Time: 0:00:00 \n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "filt, mags = pop.get_mags(6., presets='hst', wave=1600., )\n", "beta = pop.get_beta(6., presets='hst')\n", "pl.scatter(mags, beta, alpha=0.1, color='b', edgecolors='none')" ] }, { "cell_type": "markdown", "id": "d3994a68", "metadata": {}, "source": [ "This will take order $\\simeq 10$ seconds, as modeling UV colours requires synthesizing a reasonbly high resolution ($\\Delta \\lambda = 20 \\unicode{x212B}$ by default) spectrum for each galaxy in the model, so that there are multiple points within photometric windows.\n", "\n", "This example computes the UV slope $\\beta$ using the *Hubble* filters appropriate for the input redshift (see Table A1 in the paper).\n", "\n", "**NOTE:** Other ``presets`` include ``'jwst'``, ``'jwst-w'``, ``'jwst-m'``, and ``'calzetti1994'``." ] }, { "cell_type": "markdown", "id": "ac22159d", "metadata": {}, "source": [ "You can bin points in the $M_{\\text{UV}}-\\beta$ plane, if you prefer it, via the ``return_binned`` keyword argument," ] }, { "cell_type": "code", "execution_count": 7, "id": "50d956c7", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "l(nu): 100% |###############################################| Time: 0:00:00 \n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot scatter in each MUV bin as errorbars\n", "mags = np.arange(-25, -10, 0.5) # bin centers\n", "beta, beta_s = pop.get_beta(6., presets='hst', Mbins=mags, return_binned=True,\n", " return_scatter=True)\n", "\n", "pl.errorbar(mags, beta, yerr=beta_s.T, color='b', marker='s', fmt='o')" ] }, { "cell_type": "markdown", "id": "836ad1ff", "metadata": {}, "source": [ "**NOTE:** Computing colors from fits in the [Calzetti et al. 1994](https://ui.adsabs.harvard.edu/abs/1994ApJ...429..582C/abstract>) windows requires higher spectral resolution, given that these windows are each only $\\Delta \\lambda \\sim 10 \\unicode{x212B}$ wide. Adjust the ``dlam`` keyword argument to increase the wavelength-sampling used prior to photometric UV slope estimation." ] }, { "cell_type": "markdown", "id": "bf550379", "metadata": {}, "source": [ "Lastly, to extract the \"raw\" galaxy population properties, like SFR, stellar mass, etc., you can use the ``get_field`` method, e.g.," ] }, { "cell_type": "code", "execution_count": 8, "id": "79035a8f", "metadata": {}, "outputs": [], "source": [ "Ms = pop.get_field(6., 'Ms') # stellar mass\n", "Md = pop.get_field(6., 'Md') # dust mass\n", "Sd = pop.get_field(6., 'Sd') # dust surface density\n", "# etc." ] }, { "cell_type": "markdown", "id": "6f835f27", "metadata": {}, "source": [ "To see what's available, check out" ] }, { "cell_type": "code", "execution_count": 9, "id": "9e9a6612", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['nh', 'Mh', 'MAR', 't', 'z', 'children', 'zthin', 'SFR', 'Ms', 'MZ', 'Md', 'Sd', 'fcov', 'Mg', 'Z', 'bursty', 'pos', 'Nsn', 'rand'])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pop.histories.keys()" ] }, { "cell_type": "markdown", "id": "410f94d2", "metadata": {}, "source": [ "From these simple commands, most plots and analyses from the paper can be reproduced in relatively short order." ] }, { "cell_type": "markdown", "id": "f3bd5ac7", "metadata": {}, "source": [ "### Notes on performance\n", "\n", "The compute time for these models is determined largely by three factors:\n", "\n", "* The number of halos (really halo bins) we evolve forward in time. The default ``mirocha2020:univ`` models use $\\Delta \\log_{10} M_h = 0.01$ mass-bins, each with 10 halos (``pop_thin_hist=10``). For a larger sample, e.g., when lots of scatter is being employed, larger values of ``pop_thin_hist`` may be warranted.\n", "* The number of observed redshifts at which $\\beta$ is synthesize, since new spectra must be generated.\n", "* The number of wavelengths used to sample the intrinsic UV spectrum of galaxies. When computing $\\beta$ via photometry (Hubble or JWST), $\\Delta \\lambda = 20 \\unicode{x212B}$ will generally suffice. \n", "\n", "For the models in [Mirocha, Mason, & Stark (2020)](https://ui.adsabs.harvard.edu/abs/2020arXiv200507208M/abstract>), with $\\Delta \\log_{10} M_h = 0.01$ (``hmf_logM=0.01``), ``pop_thin_hist=10``, calibrating at two redshifts for $\\beta$ (4 and 6), with $\\Delta \\lambda = 20 \\unicode{x212B}$, each model takes $\\sim 10-20$ seconds, depending on your machine.\n", "\n", "**NOTE:** Generating the UVLF is essentially free compared to computing $\\beta$.\n", "\n", "For more information on what's happening under the hood, e.g., with regards to spectral synthesis and noisy star-formation histories, see [Example: spectral synthesis](../example_pop_sps.html).\n" ] }, { "cell_type": "code", "execution_count": null, "id": "fb1ba5be", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "b3daebef", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }