csiborgtools/notebooks/flow/flow_bulk.ipynb

345 lines
480 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Calibrating the velocity field against observations "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# Copyright (C) 2024 Richard Stiskalek\n",
"# This program is free software; you can redistribute it and/or modify it\n",
"# under the terms of the GNU General Public License as published by the\n",
"# Free Software Foundation; either version 3 of the License, or (at your\n",
"# option) any later version.\n",
"#\n",
"# This program is distributed in the hope that it will be useful, but\n",
"# WITHOUT ANY WARRANTY; without even the implied warranty of\n",
"# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\n",
"# Public License for more details.\n",
"#\n",
"# You should have received a copy of the GNU General Public License along\n",
"# with this program; if not, write to the Free Software Foundation, Inc.,\n",
"# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from flow_bulk import *\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Enclosed overdensity"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"cols = plt.rcParamsDefault['axes.prop_cycle'].by_key()['color']\n",
"\n",
"r, overdensity = read_enclosed_density(\"csiborg1\")\n",
"c = cols[0]\n",
"ymin = np.percentile(overdensity, 16, axis=0)\n",
"ymed = np.median(overdensity, axis=0)\n",
"ymax = np.percentile(overdensity, 84, axis=0)\n",
"plt.fill_between(r, ymin, ymax, color=c, alpha=0.5, label=\"CB1\")\n",
"\n",
"\n",
"r, overdensity = read_enclosed_density(\"csiborg2_main\")\n",
"c = cols[1]\n",
"ymin = np.percentile(overdensity, 16, axis=0)\n",
"ymed = np.median(overdensity, axis=0)\n",
"ymax = np.percentile(overdensity, 84, axis=0)\n",
"plt.fill_between(r, ymin, ymax, color=c, alpha=0.5, label=\"CB2\")\n",
"\n",
"\n",
"r, overdensity = read_enclosed_density(\"csiborg2_random\")\n",
"c = cols[2]\n",
"ymin = np.percentile(overdensity, 16, axis=0)\n",
"ymed = np.median(overdensity, axis=0)\n",
"ymax = np.percentile(overdensity, 84, axis=0)\n",
"plt.fill_between(r, ymin, ymax, color=c, alpha=0.25, label=\"Random\", zorder=-1)\n",
"\n",
"r, overdensity = read_enclosed_density(\"csiborg2X\")\n",
"c = cols[3]\n",
"ymin = np.percentile(overdensity, 16, axis=0)\n",
"ymed = np.median(overdensity, axis=0)\n",
"ymax = np.percentile(overdensity, 84, axis=0)\n",
"plt.fill_between(r / 0.7, ymin, ymax, color=c, alpha=0.5, label=\"Manticore\")\n",
"\n",
"\n",
"\n",
"plt.xlabel(r\"$R ~ [\\mathrm{Mpc} / h]$\")\n",
"plt.ylabel(r\"$\\delta_{\\rm enc} (r \\leq R)$\")\n",
"plt.legend()\n",
"\n",
"plt.xlim(0, r.max())\n",
"plt.ylim(-0.15, 0.075)\n",
"plt.axhline(0, c='k', ls='--', lw=1)\n",
"plt.tight_layout()\n",
"plt.savefig(\"../../plots/enclosed_density.png\", dpi=450)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Enclosed bulk flow"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(101, 500, 3)\n"
]
}
],
"source": [
"r, Vmag, l, b = read_enclosed_flow(\"csiborg1\")"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2, 100, 3)\n"
]
}
],
"source": [
"r, Vmag, l, b = read_enclosed_flow(\"csiborg2X\")"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1400x500 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axs = plt.subplots(1, 3, figsize=(14, 5))\n",
"cols = plt.rcParamsDefault['axes.prop_cycle'].by_key()['color']\n",
"thin_line_kwargs = {\"lw\": 0.3, \"zorder\": 0, \"ls\": \"dotted\"}\n",
"\n",
"# CSiBORG1\n",
"r, Vmag, l, b = read_enclosed_flow(\"csiborg1\")\n",
"c = cols[0]\n",
"for i, y in enumerate([Vmag, l, b]):\n",
" ymin, ymed, ymax = np.percentile(y, [16, 50, 84], axis=0)\n",
" axs[i].fill_between(r, ymin, ymax, color=c, alpha=0.5, label=\"CB1\")\n",
"\n",
"# CSiBORG2\n",
"r, Vmag, l, b = read_enclosed_flow(\"csiborg2_main\")\n",
"c = cols[1]\n",
"for i, y in enumerate([Vmag, l, b]):\n",
" ymin, ymed, ymax = np.percentile(y, [16, 50, 84], axis=0)\n",
" axs[i].fill_between(r, ymin, ymax, color=c, alpha=0.5, label=\"CB2\")\n",
"\n",
"# Manticore\n",
"r, Vmag, l, b = read_enclosed_flow(\"csiborg2X\")\n",
"c = cols[3]\n",
"for i, y in enumerate([Vmag, l, b]):\n",
" ymin, ymed, ymax = np.percentile(y, [16, 50, 84], axis=0)\n",
" axs[i].fill_between(r, ymin, ymax, color=c, alpha=0.5, label=\"Manticore\")\n",
"\n",
"\n",
"# Random\n",
"r, Vmag, l, b = read_enclosed_flow(\"csiborg2_random\")\n",
"c = cols[2]\n",
"ymin = np.percentile(Vmag, 16, axis=0)\n",
"ymax = np.percentile(Vmag, 84, axis=0)\n",
"ymed = np.median(Vmag, axis=0)\n",
"axs[0].fill_between(r, ymin, ymax, color=c, alpha=0.35, zorder=-1,\n",
" label=\"Random\")\n",
"\n",
"\n",
"axs[0].legend()\n",
"for i in range(3):\n",
" axs[i].set_xlabel(r\"$R ~ [\\mathrm{Mpc} / h]$\")\n",
" axs[i].set_xlim(0, r.max())\n",
"\n",
"axs[0].set_ylim(0)\n",
"axs[0].set_ylabel(r\"$V_{\\rm enc} (r \\leq R) ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"axs[1].set_ylabel(r\"$l_{\\rm enc} (r \\leq R) ~ [\\mathrm{deg}]$\")\n",
"axs[2].set_ylabel(r\"$b_{\\rm enc} (r \\leq R) ~ [\\mathrm{deg}]$\")\n",
"axs[1].set_ylim(0, 360)\n",
"\n",
"fig.tight_layout()\n",
"fig.savefig(\"../../plots/enclosed_flow.png\", dpi=450)\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Enclosed overdensity $\\texttt{BORG2}$ all"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring)\n",
"nsims = paths.get_ics(\"borg2_all\")\n",
"\n",
"r, overdensity = read_enclosed_density(\"borg2_all\")\n",
"overdensity_A = overdensity[:80]\n",
"overdensity_B = overdensity[80:][::30]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 7500, 7600, 7700, 7800, 7900, 8000, 8100, 8200, 8300,\n",
" 8400, 8500, 8600, 8700, 8800, 8900, 9000, 9100, 9200,\n",
" 9300, 9400, 9500, 9600, 9700, 9800, 9900, 10000, 10100,\n",
" 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11000,\n",
" 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900,\n",
" 12000, 12100, 12200, 12300, 12400, 12500, 12600, 12700, 12800,\n",
" 12900, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700,\n",
" 13800, 13900, 14000, 14100, 14200, 14300, 14400, 14500, 14600,\n",
" 14700, 14800, 14900, 15000, 15100, 15200, 15300, 15400])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nsims[:80]"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"cols = plt.rcParamsDefault['axes.prop_cycle'].by_key()['color']\n",
"\n",
"# r, overdensity = read_enclosed_density(\"csiborg1\")\n",
"c = cols[0]\n",
"for i in range(len(overdensity_A)):\n",
" plt.plot(r, overdensity_A[i], c=c, lw=0.2, zorder=0, ls=\"dotted\")\n",
"plt.plot(r, np.median(overdensity_A, axis=0), c=c, lw=2, label=r\"Chain index: $7500$ to $15000$\")\n",
"\n",
"c = cols[1]\n",
"for i in range(len(overdensity_B)):\n",
" plt.plot(r, overdensity_B[i], c=c, lw=0.2, zorder=0, ls=\"dotted\")\n",
"plt.plot(r, np.median(overdensity_B, axis=0), c=c, lw=2, label=r\"Chain index: $15000$ to $17000$\")\n",
"\n",
"\n",
"\n",
"plt.xlabel(r\"$R ~ [\\mathrm{Mpc} / h]$\")\n",
"plt.ylabel(r\"$\\delta_{\\rm enc} (r \\leq R)$\")\n",
"plt.legend()\n",
"\n",
"plt.xlim(0, r.max())\n",
"plt.ylim(-0.14, -0.005)\n",
"plt.axhline(0, c='k', ls='--', lw=1)\n",
"plt.tight_layout()\n",
"plt.savefig(\"../../plots/enclosed_density_BORG2.png\", dpi=450)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "venv_csiborg",
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}