csiborgtools/notebooks/flow/reconstruction_comparison.ipynb

1795 lines
659 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"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",
"from corner import corner\n",
"from getdist import plots\n",
"from astropy.coordinates import angular_separation\n",
"import scienceplots\n",
"from os.path import exists\n",
"import seaborn as sns\n",
"\n",
"\n",
"from reconstruction_comparison import *\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"%matplotlib inline\n",
"\n",
"paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring)\n",
"fdir = \"/mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Quick checks"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"catalogue = \"CF4_TFR_i\"\n",
"simname = \"Carrick2015\"\n",
"zcmb_max=0.05\n",
"sample_beta = None\n",
"sample_alpha = True\n",
"\n",
"fname_bayes = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"bayes\",\n",
" sample_alpha=sample_alpha, sample_beta=sample_beta,\n",
" zcmb_max=zcmb_max)\n",
"\n",
"fname_mike = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"mike\",\n",
" sample_alpha=sample_alpha, sample_beta=sample_beta,\n",
" zcmb_max=zcmb_max)\n",
"\n",
"\n",
"X = []\n",
"labels = [\"Full posterior\", \"Delta posterior\"]\n",
"for i, fname in enumerate([fname_bayes, fname_mike]):\n",
" samples = get_samples(fname)\n",
" if i == 1:\n",
" print(samples.keys())\n",
"\n",
" X.append(samples_to_getdist(samples, labels[i]))\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"params = [f\"a_{catalogue}\", f\"b_{catalogue}\", f\"c_{catalogue}\", f\"e_mu_{catalogue}\",\n",
" \"Vmag\", \"l\", \"b\", \"sigma_v\", \"beta\", f\"alpha_{catalogue}\"]\n",
"# params = [\"beta\", f\"a_{catalogue}\", f\"b_{catalogue}\", f\"e_mu_{catalogue}\"]\n",
"# params = [\"Vmag\", \"l\", \"b\", \"sigma_v\", \"beta\", f\"mag_cal_{catalogue}\", f\"alpha_cal_{catalogue}\", f\"beta_cal_{catalogue}\", f\"e_mu_{catalogue}\"]\n",
"\n",
"\n",
"g = plots.get_subplot_plotter()\n",
"g.settings.figure_legend_frame = False\n",
"g.settings.alpha_filled_add = 0.75\n",
"\n",
"g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
"plt.gcf().suptitle(catalogue_to_pretty(catalogue), y=1.025)\n",
"plt.gcf().tight_layout()\n",
"# plt.gcf().savefig(f\"../../plots/method_comparison_{simname}_{catalogue}.png\", dpi=500, bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# catalogue = [\"LOSS\", \"Foundation\"]\n",
"catalogue = \"CF4_TFR_i\"\n",
"simname = \"IndranilVoid_exp\"\n",
"zcmb_max = 0.05\n",
"sample_alpha = False\n",
"\n",
"fname = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"mike\",\n",
" sample_mag_dipole=True,\n",
" sample_beta=False,\n",
" sample_alpha=sample_alpha, zcmb_max=zcmb_max)\n",
"\n",
"\n",
"samples = get_samples(fname, convert_Vext_to_galactic=True)\n",
"\n",
"samples, labels, keys = samples_for_corner(samples)\n",
"fig = corner(samples, labels=labels, show_titles=True,\n",
" title_kwargs={\"fontsize\": 12}, smooth=1)\n",
"# fig.savefig(\"../../plots/test.png\", dpi=250)\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Paper plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 0. LOS velocity example"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"fpath = \"/mnt/extraspace/rstiskalek/catalogs/PV/CF4/CF4_TF-distances.hdf5\"\n",
"\n",
"loader_carrick = csiborgtools.flow.DataLoader(\"Carrick2015\", [0], \"CF4_TFR_i\", fpath, paths, ksmooth=0, )\n",
"loader_lilow = csiborgtools.flow.DataLoader(\"Lilow2024\", [0], \"CF4_TFR_i\", fpath, paths, ksmooth=0, )\n",
"loader_cb2 = csiborgtools.flow.DataLoader(\"csiborg2_main\", [i for i in range(20)], \"CF4_TFR_i\", fpath, paths, ksmooth=0, )\n",
"loader_cb2X = csiborgtools.flow.DataLoader(\"csiborg2X\", [i for i in range(20)], \"CF4_TFR_i\", fpath, paths, ksmooth=0, )\n",
"loader_CF4 = csiborgtools.flow.DataLoader(\"CF4\", [i for i in range(20)], \"CF4_TFR_i\", fpath, paths, ksmooth=0, )\n",
"loader_CLONES = csiborgtools.flow.DataLoader(\"CLONES\", [0], \"CF4_TFR_i\", fpath, paths, ksmooth=0, )\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"angdist = angular_separation(\n",
" np.deg2rad(loader_carrick.cat[\"RA\"]), np.deg2rad(loader_carrick.cat[\"DEC\"]),\n",
" np.deg2rad(csiborgtools.clusters[\"Virgo\"].spherical_pos[1]),\n",
" np.deg2rad(csiborgtools.clusters[\"Virgo\"].spherical_pos[2]))\n",
"k = np.argmin(angdist)\n",
"print([loader_carrick.cat[\"RA\"][k], loader_carrick.cat[\"DEC\"][k]])\n",
"print(csiborgtools.clusters[\"Virgo\"].spherical_pos[1:])\n",
"print(csiborgtools.clusters[\"Virgo\"].spherical_pos[0])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"loaders = [loader_carrick, loader_lilow, loader_CF4, loader_cb2, loader_cb2X, loader_CLONES]\n",
"simnames = [\"Carrick2015\", \"Lilow2024\", \"CF4\", \"csiborg2_main\", \"csiborg2X\", \"CLONES\"]\n",
"\n",
"\n",
"with plt.style.context(\"science\"):\n",
" plt.rcParams.update({'font.size': 9})\n",
" plt.figure()\n",
" cols = plt.rcParams['axes.prop_cycle'].by_key()['color']\n",
"\n",
" for i, (simname, loader) in enumerate(zip(simnames, loaders)):\n",
" r = loader.rdist\n",
" vrad = loader.los_radial_velocity[:, k, :]\n",
"\n",
" if simname == \"Carrick2015\":\n",
" vrad *= 0.43\n",
"\n",
" if len(vrad) > 1:\n",
" ylow, yhigh = np.percentile(vrad, [16, 84], axis=0)\n",
" plt.fill_between(r, ylow, yhigh, alpha=0.66, color=cols[i],\n",
" label=simname_to_pretty(simname))\n",
" else:\n",
" plt.plot(r, vrad[0], label=simname_to_pretty(simname), c=cols[i])\n",
"\n",
" plt.xlabel(r\"$r ~ [\\mathrm{Mpc} / h]$\")\n",
" plt.ylabel(r\"$V_{\\rm rad} ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"\n",
" plt.xlim(0, 90)\n",
" plt.ylim(-1000, 1000)\n",
" plt.legend(ncols=2, fontsize=\"small\")\n",
" plt.axvline(12.045, zorder=0, c=\"k\", ls=\"--\", alpha=0.75)\n",
"\n",
" plt.tight_layout()\n",
" plt.savefig(\"../../plots/LOS_example.pdf\", dpi=450, bbox_inches='tight')\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1. Evidence comparison"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"zcmb_max = 0.05\n",
"\n",
"sims = [\"Carrick2015\", \"Lilow2024\", \"csiborg2_main\", \"csiborg2X\", \"CLONES\", \"CF4\",]\n",
"catalogues = [\"LOSS\", \"Foundation\", \"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"\n",
"y_BIC = np.full((len(catalogues), len(sims)), np.nan)\n",
"y_lnZ = np.full_like(y_BIC, np.nan)\n",
"\n",
"for i, catalogue in enumerate(catalogues):\n",
" for j, simname in enumerate(sims):\n",
" fname = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"mike\",\n",
" sample_alpha=simname != \"IndranilVoid_exp\",\n",
" zcmb_max=zcmb_max)\n",
"\n",
" # y_BIC[i, j] = get_gof(\"BIC\", fname)z\n",
" y_lnZ[i, j] = get_gof(\"neg_lnZ_harmonic\", fname)\n",
"\n",
" y_lnZ[i] -= y_lnZ[i].min()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 9})\n",
" figwidth = 8.3\n",
" fig, axs = plt.subplots(2, 3, figsize=(figwidth, 0.5 * figwidth))\n",
" fig.subplots_adjust(hspace=0)\n",
"\n",
" x = np.arange(len(sims))\n",
" y = y_lnZ\n",
" for n in range(len(catalogues)):\n",
" i, j = n // 3, n % 3\n",
" ax = axs[i, j]\n",
" ax.text(0.1, 0.875, catalogue_to_pretty(catalogues[n]),\n",
" transform=ax.transAxes, #fontsize=\"small\",\n",
" verticalalignment='center', horizontalalignment='left',\n",
" bbox=dict(facecolor='white', alpha=0.5),\n",
" )\n",
" ax.scatter(x, y[n], c=\"k\", s=7.5)\n",
"\n",
" y_min, y_max = ax.get_ylim()\n",
" y_offset = (y_max - y_min) * 0.075 # Adjust the fraction (0.05) as needed\n",
"\n",
" for k, txt in enumerate(y[n]):\n",
" ax.text(x[k], y[n, k] + y_offset, f\"({y[n, k]:.1f})\",\n",
" ha='center', fontsize=\"small\")\n",
"\n",
" ax.set_ylim(y_min, y_max + 2 * y_offset)\n",
"\n",
" for i in range(3):\n",
" axs[1, i].set_xticks(\n",
" np.arange(len(sims)),\n",
" [simname_to_pretty(sim) for sim in sims], rotation=35)\n",
" axs[0, i].set_xticks([], [])\n",
"\n",
" for i in range(2):\n",
" for j in range(3):\n",
" axs[i, j].set_xlim(-0.75, len(sims) - 0.25)\n",
"\n",
" axs[i, j].tick_params(axis='x', which='major', top=False)\n",
" axs[i, j].tick_params(axis='x', which='minor', top=False, length=0)\n",
" axs[i, j].tick_params(axis='y', which='minor', length=0)\n",
"\n",
" axs[i, 0].set_ylabel(r\"$-\\Delta \\ln \\mathcal{Z}$\")\n",
"\n",
" fig.tight_layout()\n",
" fig.savefig(f\"../../plots/lnZ_comparison.pdf\", dpi=500, bbox_inches='tight')\n",
" fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. Dependence of the evidence on smoothing scale"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 15:27:56\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:32:04\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_mike_smooth_2_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:35:10\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_mike_smooth_3_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:35:08\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_mike_smooth_4_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:34:31\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 15:28:34\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:37:11\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_mike_smooth_2_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:39:21\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_mike_smooth_3_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:41:15\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_mike_smooth_4_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:43:31\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 10:48:49\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:44:13\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_mike_smooth_2_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:46:11\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_mike_smooth_3_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:46:57\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_mike_smooth_4_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:48:46\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 12:03:40\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:52:24\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_mike_smooth_2_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:53:39\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_mike_smooth_3_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:58:54\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_mike_smooth_4_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 11:59:21\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 12:05:48\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:07:50\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_mike_smooth_2_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:06:30\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_mike_smooth_3_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:06:41\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_mike_smooth_4_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:14:03\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 11:13:55\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:20:28\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_mike_smooth_2_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:27:13\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_mike_smooth_3_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:32:47\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_mike_smooth_4_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 13/09/2024 12:36:56\n"
]
}
],
"source": [
"zcmb_max = 0.05\n",
"\n",
"ksmooth = [0, 1, 2, 3, 4]\n",
"scales = [0, 2, 4, 6, 8]\n",
"sims = [\"Carrick2015\", \"csiborg2_main\"]\n",
"catalogues = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_i\"]\n",
"\n",
"y = np.full((len(sims), len(catalogues), len(ksmooth)), np.nan)\n",
"for i, simname in enumerate(sims):\n",
" for j, catalogue in enumerate(catalogues):\n",
" for n, k in enumerate(ksmooth):\n",
" fname = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"mike\",\n",
" sample_alpha=True, smooth=k,\n",
" zcmb_max=zcmb_max)\n",
" if not exists(fname):\n",
" raise FileNotFoundError(fname)\n",
"\n",
" y[i, j, n] = get_gof(\"neg_lnZ_harmonic\", fname)\n",
"\n",
" y[i, j, :] -= y[i, j, :].min()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Carrick2015 2MTF 322.1943359375\n",
"Carrick2015 SFI_gals 414.5947265625\n",
"Carrick2015 CF4_TFR_i 835.421875\n",
"csiborg2_main 2MTF 760.97265625\n",
"csiborg2_main SFI_gals 800.328125\n",
"csiborg2_main CF4_TFR_i 1914.80859375\n"
]
}
],
"source": [
"for i, simname in enumerate(sims):\n",
" for j, catalogue in enumerate(catalogues):\n",
" print(simname, catalogue, y[i, j, -1])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 350x262.5 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 9})\n",
" cols = plt.rcParams['axes.prop_cycle'].by_key()['color']\n",
" plt.figure()\n",
"\n",
" ls = [\"-\", \"--\", \"-.\", \":\"]\n",
" for i, simname in enumerate(sims):\n",
" for j, catalogue in enumerate(catalogues):\n",
" plt.plot(scales, y[i, j], marker='o', ms=2.5, ls=ls[i],\n",
" label=catalogue_to_pretty(catalogue) if i == 0 else None, c=cols[j],)\n",
"\n",
" plt.xlabel(r\"$R_{\\rm smooth} ~ [\\mathrm{Mpc} / h]$\")\n",
" plt.ylabel(r\"$-\\Delta \\ln \\mathcal{Z}$\")\n",
" plt.legend()\n",
"\n",
" plt.tight_layout()\n",
" plt.savefig(\"../../plots/smoothing_comparison.pdf\", dpi=450)\n",
" plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. External flow consistency"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:26:54\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:28:43\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:20:11\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:19:39\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:27:13\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:28:48\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:19:59\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:26:53\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:54:29\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 17:10:19\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:27:52\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:58:15\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:59:53\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 17:16:15\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:39:34\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:01:55\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 17:12:11\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 14:07:26\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:23:47\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:19:35\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:49:16\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:50:20\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:52:12\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:51:03\n"
]
}
],
"source": [
"sims = [\"Carrick2015\", \"Lilow2024\", \"csiborg2_main\", \"csiborg2X\", \"CF4\", \"CLONES\"]\n",
"# sims = [\"Carrick2015\", \"Lilow2024\", \"CF4\", \"csiborg2_main\", \"csiborg2X\"]\n",
"# cats = [[\"LOSS\", \"Foundation\"], \"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"cats = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"# cats = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_not2MTForSFI_i\"]\n",
"\n",
"X = {}\n",
"\n",
"for sim in sims:\n",
" for cat in cats:\n",
" fname = paths.flow_validation(\n",
" fdir, sim, cat, inference_method=\"bayes\",\n",
" sample_alpha=True, zcmb_max=0.05)\n",
"\n",
" if not exists(fname):\n",
" raise FileNotFoundError(fname)\n",
"\n",
" with File(fname, 'r') as f:\n",
" X[f\"{sim}_{cat}\"] = np.linalg.norm(f[f\"samples/Vext\"][...], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 350x291.5 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 9})\n",
"\n",
"\n",
" fig, axs = plt.subplots(2, 2, figsize=(3.5, 2.65 * 1.1))\n",
" fig.subplots_adjust(hspace=0, wspace=0)\n",
"\n",
" for k, cat in enumerate(cats):\n",
" i, j = k // 2, k % 2\n",
" ax = axs[i, j]\n",
"\n",
" for sim in sims:\n",
" sns.kdeplot(X[f\"{sim}_{cat}\"], fill=True, bw_adjust=0.75, ax=ax,\n",
" label=simname_to_pretty(sim) if i == 0 else None)\n",
"\n",
" ax.text(0.725, 0.85, catalogue_to_pretty(cat),\n",
" transform=ax.transAxes, fontsize=\"small\",\n",
" verticalalignment='center', horizontalalignment='center',\n",
" bbox=dict(facecolor='white', alpha=0.5, edgecolor='none'))\n",
"\n",
" ax.set_ylabel(None)\n",
" ax.set_yticklabels([])\n",
" ax.set_xlim(0)\n",
"\n",
" handles, labels = axs[0, 0].get_legend_handles_labels()\n",
" fig.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5, 1.1),\n",
" ncol=3)\n",
"\n",
" for i in range(2):\n",
" axs[-1, i].set_xlabel(r\"$|\\mathbf{V}_{\\rm ext}| ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
" axs[i, 0].set_ylabel(\"Normalised PDF\")\n",
"\n",
" fig.tight_layout()\n",
" fig.savefig(f\"../../plots/Vext_comparison.pdf\", dpi=450)\n",
" fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4. What $\\beta$ is preferred by the data? "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_LOSS_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 11:40:54\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_Foundation_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 11:41:00\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_2MTF_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 11:46:00\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_SFI_gals_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 11:43:45\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 11:45:45\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 11:50:00\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_LOSS_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 30/08/2024 23:39:28\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_Foundation_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 30/08/2024 23:50:52\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 31/08/2024 00:00:28\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 31/08/2024 00:11:47\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 07/09/2024 22:28:11\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 07/09/2024 22:21:46\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_LOSS_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 30/08/2024 23:39:58\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_Foundation_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 30/08/2024 23:45:08\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_2MTF_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 31/08/2024 00:07:52\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_SFI_gals_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 31/08/2024 00:13:49\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 07/09/2024 22:30:15\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 07/09/2024 22:10:20\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_LOSS_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 11:58:32\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_Foundation_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 12:18:50\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_2MTF_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 12:31:31\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_SFI_gals_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 12:23:06\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 12:49:59\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 12:37:20\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_LOSS_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 13:08:39\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_Foundation_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 13:31:31\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_2MTF_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 13:10:52\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_SFI_gals_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 13:14:59\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 13:19:05\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha_sample_beta.hdf5\n",
"Last modified: 12/09/2024 13:22:35\n"
]
}
],
"source": [
"sims = [\"Lilow2024\", \"csiborg2_main\", \"csiborg2X\", \"CF4\", \"CLONES\"]\n",
"cats = [\"LOSS\", \"Foundation\", \"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"# cats = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_not2MTForSFI_i\"]\n",
"\n",
"X = {}\n",
"for sim in sims:\n",
" for cat in cats:\n",
" fname = paths.flow_validation(\n",
" fdir, sim, cat, inference_method=\"bayes\",\n",
" sample_alpha=True, zcmb_max=0.05, sample_beta=True)\n",
"\n",
" if not exists(fname):\n",
" raise FileNotFoundError(fname)\n",
"\n",
" with File(fname, 'r') as f:\n",
" X[f\"{sim}_{cat}\"] = f[f\"samples/beta\"][...]"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 350x477 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 9})\n",
"\n",
"\n",
" fig, axs = plt.subplots(3, 2, figsize=(3.5, 2.65 * 1.8))\n",
" fig.subplots_adjust(hspace=0, wspace=0)\n",
"\n",
" for k, cat in enumerate(cats):\n",
" i, j = k // 2, k % 2\n",
" ax = axs[i, j]\n",
"\n",
" for sim in sims:\n",
" sns.kdeplot(X[f\"{sim}_{cat}\"], fill=True, bw_adjust=0.75, ax=ax,\n",
" label=simname_to_pretty(sim) if i == 0 else None)\n",
"\n",
" ax.text(0.1, 0.85, catalogue_to_pretty(cat),\n",
" transform=ax.transAxes, fontsize=\"small\",\n",
" verticalalignment='center', horizontalalignment='left',\n",
" bbox=dict(facecolor='white', alpha=0.5, edgecolor='k')\n",
" )\n",
"\n",
" ax.axvline(1, c=\"k\", ls=\"--\", alpha=0.75)\n",
" ax.set_ylabel(None)\n",
" ax.set_yticklabels([])\n",
"\n",
" handles, labels = axs[0, 0].get_legend_handles_labels()\n",
" fig.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5, 1.075),\n",
" ncol=3)\n",
"\n",
" # for i in range(3):\n",
" for j in range(2):\n",
" axs[-1, j].set_xlabel(r\"$\\beta$\")\n",
"\n",
" for i in range(3):\n",
" axs[i, 0].set_ylabel(\"Normalised PDF\")\n",
"\n",
" fig.tight_layout()\n",
" fig.savefig(f\"../../plots/beta_comparison.pdf\", dpi=450)\n",
" fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 5. Bulk flow in the simulation rest frame "
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAU0AAAD1CAYAAADUHqdoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlU0lEQVR4nO2dd3hcV5n/P9NHozYa9WZLI9txjyPbKQRS5QAhMSGRbQwk1FhL+cHuAnYclmVhFxwZdhe2sFgJLYEYR0ozaUSTHkixJcd24q6Ri3oZjcpo+tzfH0czkqzei8/nee4zM3duOXPnzndOed/vUSmKoiCRSCSSUaGe6QJIJBLJXEKKpkQikYwBKZoSiUQyBqRoSiQSyRjQznQBJsKKFSvIy8sb9L3a2loyMzPHfEy53+TtNxfKKPeb2/uN91yVlZXU1NSMeT8AlDnM7bffPq73xntMud/sPZfc79Lcb7znSk1NHdd+iqIo87Z5vnXr1nm933iZznLKazI79hsvc+HzTfc1AVApytyN09y4cSP79++f6WLMCJfyZx8KeU0GR16XgaSlpdHQ0DCufedtTXO+MxP/sLMdeU0GR16XgYynHzSMFM05ivwhDERek8GR12UgUjQlEolkmpCiKZFIJGNAiqZEIpGMgTktmrW1tWzcuJG9e/fOdFEkEskcYO/evWzcuJHa2tpxH2NOi2ZmZib79++XHd09OJ1OduzYQUlJCWVlZZSUlFBZWUlJScmkHD8vLw+73T7k+zabjby8PCorKyflfE6ns9/ryspK7HY7TqcTm8024P0ppbMdmuundulsH1VR7HY7RUVFqFSqQb+PsrIyVCrVpH3vfRnpHpjtbN26lf37909oIGhOp1FKerHb7WzYsIGKigrMZnNk/aZNm1i/fv2knKO0tBSr1Trk+wUFBeTn50/4PGVlZRw4cACbzUZFRUVk/a5duygrK8NsNrNz504KCgomfK5R0dkOe/4V2lqm9jwJSVD0fYiNH3Yzq9VKUVERDoeDPXv2UFxc3O99h8OB2Wxm27ZtEyqOzWbDYrH0+05HugcuBeZ0TVPSy6ZNmyguLu4nmMCAH9RgDFZjG2zdZAhiGJvNNmSNtLCwkKKiogHrN2zYgKIotLW1sX379kkry4h4uoVgGqPAnDg1izFKnMPTPepiFRUVUVZW1m9dZWUl69atG/UxhqutD3bvTPQemNbWwRQxp2uarnb3TBdhVuB0OqmsrBz0hrZarRQWFgJQUlKC1WqlvLycDRs2UFBQgM1mY9OmTTz44IOUl5ezdu1arFbrgHXr1q1j06ZN7NmzJ1LDCwuf1WrFbrcPELKEhAQKCgp48MEHB4j5eAk3zydTwEeN0QTRsVN3fM/Y7mer1YrVasVms0W+E4fDMahoDvXdFxUVsWPHDiwWS+S9wsJCbDYbDoeDffv2cfDgQbZt20ZlZeWo74GysjIcDgcWiyWyfrB7bdu2bZFtASwWS+R+na3MadF0NDhn5Lzd3gCn6jum5VxL0uMwGYb/msJ9TEM1m8Lri4uLqaqqoqCggISEBNra2igoKKCgoACHw0FxcTF2u538/Pwh1/U9544dOyLN5/APIIzNZuPBBx+c9B+A0+nsJ+qTJcZzlaKion4iNhTDffdOp5Nt27aRn5/Ppk2bKCwspKCgAKvVypYtWyJ/UKO9B+x2O/v27aO0tBQQ98KOHTsoLi4ecF9VVlayZ88eysvLASKCPpu/1zktmh6XD0+3F6PJMK3nPVXfwUf++YVpOdcbP/oYa3Isw24TFkW73T6ocDqdTsxmM1VVVTidzkE78tetW4fZbO5XgxtsXZiysrJ+P6C+fY82m419+/b1W+d0Otm1a1fk9WBCP1JXQl9R3rBhAzt27GDPnj3D7jPfKSws5N577wWI1DgHawIP992HvwOLxTKm5vNQ98C+ffv69aOHWynh77fvfbVjxw7MZjM2my2yffhPerYyp0UTFM6fqGdJfs60nnVJehxv/Ohj03aukQjfgOFm0sXYbDYKCwvZsWMHRUVF5OfnY7EML8QTwWq1sm7dOkpKSiJCZzab+4niYIMMw2Gz2SguLo7USIBIk+5SZ/PmzZHm91AM992PVKtzOp04HI4pGQByOp2sX78+Ir7TNrg3Aea0aGr1Ws4dq5t20TQZtCPW/qab0tLSQZs2YeEqKSmJNG2ht2/w4MGD4zpfQUFBpIYTPl6Y/Px8CgsLycvLizTzJkp4xDhMRUUFW7ZsmfBx5zLhWmFRURGbNm2KNIcvZqTvfrjaZfiPaTBhHeoe2LJlS79WxcGDB9m8efOgxw/3qYb7QkfqapoNzOnRc1OskXPHxx+kOp+wWq1UVFSwa9eufnGa4Zs13Jdks9koKytj+/bt7Nq1i66urki/UviGDXfu911XWVnJwYMHIz/M/Px8du7cye7duykrK4vEUFZWVkZqlOG+x7HGbdpstsi5S0pK+nU7lJSUUFJSQl5e3qwfMJgqKisr2bVrF7t27Yo0ZcOL3W5n165dOJ3OSJzmUN+9VquNdKWEu08cDkdkRH7nzp2UlpZis9mwWq2jugesViv5+fls2bIlch+Wl5ezZ8+eQe+r/Px8ioqKBhxjNjOn/TRvuPYmNuRu5h/+7wuYYo0zXRzJGBhr83xGaa6Hn+8UYUFG09Scw9MtRs//fhckp0/NOSQRJuIxOqeb51E9Qnn+RB1L18/ufydJf+ZC31UEo0kEnre1jDksaEwkJE2dKEsmjTktmk3NjXgsLsqfelWKpmTqiI0XmTpjCDwfF0bTiNlAkomxd+9e9u7dO6Hc8zktmpmZmVx901pqTjfOdFEk853YeClo84CtW7eydetWNm7cOO5jzOmBIICc5Zm01LbR1T7FtQCJRCJhroumEmLBsgwAzh2rm+HCSCSSS4G5LZpBL7EJ0SRmmDl3TIYeSSSSqWfOiyaIJvpZKZoSiWQamNuiGfIBsHB5Bm2NHXS0ds1wgSQSyXxnTo+eExSiuWCp6Ne8cLKeFR9aPJMlmhHCWRaPPfZYxEnm4qyKvLw8ysvLI1Zio3XHmSzC9l9h44jBjDbCZZKMTF9LtvB1HY136nQx1Pdts9mw2+39LOP6EjaXCRPONHM4HDidzun1UR0KZQ5z+0eWRp7/8tuPKi/87o0ZLM3MUl5erlit1iHfr6io6Pd627ZtSnl5+VQXS1EURamqqlKKi4sjrwsLC/u9VhRFKS4uVgoKCqalPHOdtrY2pbCwsN+64b776Wa477vvd1xcXKyUlpYqiqIopaWlyvbt25X8/Px+x+p7nIqKisj2E+X2228f975zu3ke9EAoCEDW4lRqTjfMcIFmL9ORrjiUG7vT6WTfvn2R1+vXr+/nVmS322e1f+JsYzB7t8Gc7i9msl3Tx/p922y2ft9zfn5+ZLuh3PrDefEw+OeeCea2aCpB8AoXlszFaTSeb8Xn8c9woWYflZWV5OXl9fMsvJiwwUdZWVnEPCEhIYGSkpLIhGlhA4iwl+Voyc/P7+etWVVV1U/E+zqPS0YmPz8/4oIe/k77Nlsv/i5BXOPc3FzKysooKiqKfJc2my3yfYe37XuM8HHGWr7Bvu/Kysp+tnQWi2VEM5d169aRm5sbMW6ZDSYtc7tPUwmCuwWikslanIYSUqizN5GzfPwzzY2G7qCHE64LU3qOMEujszFpJmZGcrHj9sVUVlYOcNouLy+P9I2GJ0wL95MWFRWN++YNzyQZ/lHZbDY2b948q70x/V4/LXXOaTlXUoYZnUE34nYVFRXs2LGDTZs2RfoMw1NSjNY1fTjn9clyU+/7ffe1ixstxcXFOByOCd1zk80cF80QdJ0HyzKSMxMwROmpOd0w5aJ5wnWBtW9/fUrPEabi6v8lP278g1tDubn3ZSin7QcffJDS0tKIeIafhxmPG/u9995LeXl55AcY7vifzaLZUufkN99/fFrO9aV/vYv03OQRtwt/HyD+9G6++WYKCgrG5Jq+e/fuIZ3XB3NTt1qtE/q+ExMTx9RFEJ6SurS0FLvdzqZNm9i9e/eMDwbNadGsbfWy8Z5vs7XIwdatW8lclErNqan
"text/plain": [
"<Figure size 350x262.5 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sims = [\"Carrick2015\", \"Lilow2024\", \"csiborg2_main\", \"csiborg2X\", \"CLONES\", \"CF4\"]\n",
"\n",
"\n",
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 9})\n",
" cols = plt.rcParams['axes.prop_cycle'].by_key()['color']\n",
"\n",
" plt.figure()\n",
" for i, sim in enumerate(sims):\n",
" r, B = get_bulkflow_simulation(sim, convert_to_galactic=True)\n",
" B = B[..., 0]\n",
"\n",
" if sim == \"Carrick2015\":\n",
" B *= 0.43\n",
"\n",
" if sim in [\"Carrick2015\", \"Lilow2024\", \"CLONES\"]:\n",
" plt.plot(r, B[0], label=simname_to_pretty(sim), color=cols[i])\n",
" else:\n",
" ylow, yhigh = np.percentile(B, [16, 84], axis=0)\n",
" plt.fill_between(r, ylow, yhigh, alpha=0.5,\n",
" label=simname_to_pretty(sim), color=cols[i])\n",
"\n",
" plt.xlabel(r\"$R ~ [\\mathrm{Mpc} / h]$\")\n",
" plt.ylabel(r\"$|\\mathbf{B}| ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
" plt.xlim(5, 200)\n",
" plt.legend(ncols=2)\n",
"\n",
" plt.tight_layout()\n",
" plt.savefig(\"../../plots/bulkflow_simulations_restframe.pdf\", dpi=450)\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 6. Bulk flow in the CMB frame"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:26:54\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:28:43\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:20:11\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:19:39\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:27:13\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:28:48\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:19:59\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:26:53\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:54:29\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 17:10:19\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:27:52\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 12:58:15\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 16:59:53\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 17:16:15\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:39:34\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:01:55\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:49:16\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:50:20\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:52:12\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:51:03\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_2MTF_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 17:12:11\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_SFI_gals_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 14:07:26\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_i_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:23:47\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_w1_bayes_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 13:19:35\n"
]
}
],
"source": [
"sims = [\"Carrick2015\", \"Lilow2024\", \"csiborg2_main\", \"csiborg2X\", \"CLONES\", \"CF4\"]\n",
"# cats = [[\"LOSS\", \"Foundation\"], \"2MTF\", \"SFI_gals\", \"CF4_TFR_i\"]\n",
"cats = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"\n",
"\n",
"data = {}\n",
"for sim in sims:\n",
" for cat in cats:\n",
" fname = paths.flow_validation(\n",
" fdir, sim, cat, inference_method=\"bayes\",\n",
" sample_alpha=True, zcmb_max=0.05)\n",
" data[f\"{sim}_{cat}\"] = get_bulkflow(fname, sim)\n",
"\n",
"def get_ax_centre(ax):\n",
" # Get the bounding box of the specific axis in relative figure coordinates\n",
" bbox = ax.get_position()\n",
"\n",
" # Extract the position and size of the axis\n",
" x0, y0, width, height = bbox.x0, bbox.y0, bbox.width, bbox.height\n",
"\n",
" # Calculate the center of the axis\n",
" center_x = x0 + width / 2\n",
" center_y = y0 + height / 2\n",
" return center_x, center_y"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 830x1037.5 with 24 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 9})\n",
" nrows = len(sims)\n",
" ncols = 3\n",
"\n",
" figwidth = 8.3\n",
" fig, axs = plt.subplots(nrows, ncols, figsize=(figwidth, 1.25 * figwidth), sharex=True, )\n",
" cols = plt.rcParams['axes.prop_cycle'].by_key()['color']\n",
" # fig.suptitle(f\"Calibrated against {catalogue}\")\n",
"\n",
" for i, sim in enumerate(sims):\n",
" for j, catalogue in enumerate(cats):\n",
" r, B = data[f\"{sim}_{catalogue}\"]\n",
" c = cols[j]\n",
" for n in range(3):\n",
" ylow, ymed, yhigh = np.percentile(B[..., n], [16, 50, 84], axis=-1)\n",
" axs[i, n].fill_between(\n",
" r, ylow, yhigh, alpha=0.5, color=c, edgecolor=c,\n",
" label=catalogue_to_pretty(catalogue) if i == 1 else None)\n",
"\n",
"\n",
" # CMB-LG velocity\n",
" kwargs = {\"color\": \"mediumblue\", \"alpha\": 0.5, \"zorder\": 10, \"hatch\": \"x\"}\n",
" for n in range(len(sims)):\n",
" axs[n, 0].fill_between([r.min(), 15.], [627 - 22, 627 - 22], [627 + 22, 627 + 22], label=\"CMB-LG\" if n == 0 else None, **kwargs)\n",
" axs[n, 1].fill_between([r.min(), 15.], [276 - 3, 276 - 3], [276 + 3, 276 + 3], **kwargs)\n",
" axs[n, 2].fill_between([r.min(), 15.], [30 - 3, 30 - 3], [30 + 3, 30 + 3], **kwargs)\n",
"\n",
" # LCDM expectation\n",
" Rs,mean,std,mode,p05,p16,p84,p95 = np.load(\"/mnt/users/rstiskalek/csiborgtools/data/BulkFlowPlot.npy\")\n",
" m = Rs < 175\n",
" kwargs = {\"color\": \"black\", \"zorder\": 0, \"hatch\": \"//\", \"alpha\": 0.25}\n",
" for n in range(len(sims)):\n",
" axs[n, 0].fill_between(\n",
" Rs[m], p16[m], p84[m],\n",
" label=r\"$\\Lambda\\mathrm{CDM}$\" if n == 0 else None, **kwargs)\n",
"\n",
" for n in range(3):\n",
" axs[-1, n].set_xlabel(r\"$R ~ [\\mathrm{Mpc} / h]$\")\n",
"\n",
" for n in range(len(sims)):\n",
" axs[n, 0].set_ylabel(r\"$|\\mathbf{B}| ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
" axs[n, 1].set_ylabel(r\"$\\ell ~ [\\mathrm{deg}]$\")\n",
" axs[n, 2].set_ylabel(r\"$b ~ [\\mathrm{deg}]$\")\n",
"\n",
" for i, sim in enumerate(sims):\n",
" ax = axs[i, -1].twinx()\n",
" ax.set_ylabel(simname_to_pretty(sim), rotation=270, labelpad=7.5)\n",
" ax.set_yticklabels([])\n",
"\n",
" axs[0, 0].set_xlim(r.min(), r.max())\n",
"\n",
" axs[0, 0].legend()\n",
" handles, labels = axs[1, 0].get_legend_handles_labels() # get the labels from the first axis\n",
" fig.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5, 0.975), ncol=len(cats) + 2)\n",
"\n",
" fig.tight_layout(rect=[0, 0, 0.95, 0.95])\n",
" fig.savefig(f\"../../plots/bulkflow_CMB.pdf\", dpi=450)\n",
" fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 8. Full vs Delta comparison"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"catalogue = \"CF4_TFR_i\"\n",
"simname = \"csiborg2X\"\n",
"zcmb_max=0.05\n",
"sample_beta = True\n",
"sample_alpha = True\n",
"\n",
"fname_bayes = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"bayes\",\n",
" sample_alpha=sample_alpha, sample_beta=sample_beta,\n",
" zcmb_max=zcmb_max)\n",
"\n",
"fname_mike = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"mike\",\n",
" sample_alpha=sample_alpha, sample_beta=sample_beta,\n",
" zcmb_max=zcmb_max)\n",
"\n",
"\n",
"X = []\n",
"labels = [\"Full posterior\", \"Delta posterior\"]\n",
"for i, fname in enumerate([fname_bayes, fname_mike]):\n",
" samples = get_samples(fname)\n",
" if i == 1:\n",
" print(samples.keys())\n",
"\n",
" X.append(samples_to_getdist(samples, labels[i]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"params = [f\"a_{catalogue}\", f\"b_{catalogue}\", f\"c_{catalogue}\", f\"e_mu_{catalogue}\",\n",
" \"Vmag\", \"l\", \"b\", \"sigma_v\", \"beta\", f\"alpha_{catalogue}\"]\n",
"# params = [\"beta\", f\"a_{catalogue}\", f\"b_{catalogue}\", f\"e_mu_{catalogue}\"]\n",
"# params = [\"Vmag\", \"l\", \"b\", \"sigma_v\", \"beta\", f\"mag_cal_{catalogue}\", f\"alpha_cal_{catalogue}\", f\"beta_cal_{catalogue}\", f\"e_mu_{catalogue}\"]\n",
"\n",
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 11})\n",
" g = plots.get_subplot_plotter()\n",
" g.settings.figure_legend_frame = False\n",
" g.settings.alpha_filled_add = 0.75\n",
" g.settings.fontsize = 12\n",
"\n",
" g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
" # plt.gcf().suptitle(catalogue_to_pretty(catalogue), y=1.025)\n",
" plt.gcf().tight_layout()\n",
" plt.gcf().savefig(f\"../../plots/method_comparison_{simname}_{catalogue}.pdf\", dpi=300, bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Guilhem plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Manticore vs linear comparison"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 13:18:58\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 13:20:05\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 13:18:47\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 13:19:50\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 15:27:56\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 30/08/2024 12:04:05\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 10:48:49\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 11:12:57\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_w1_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 10:48:29\n",
"File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_w1_mike_zcmb_max_0.05_sample_alpha.hdf5\n",
"Last modified: 12/09/2024 11:07:55\n"
]
}
],
"source": [
"zcmb_max = 0.05\n",
"\n",
"sims = [\"Carrick2015\", \"csiborg2X\"]\n",
"catalogues = [\"LOSS\", \"Foundation\", \"2MTF\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"\n",
"y_lnZ = np.full((len(catalogues), len(sims)), np.nan)\n",
"\n",
"for i, catalogue in enumerate(catalogues):\n",
" for j, simname in enumerate(sims):\n",
" fname = paths.flow_validation(\n",
" fdir, simname, catalogue, inference_method=\"mike\",\n",
" sample_alpha=simname != \"IndranilVoid_exp\",\n",
" zcmb_max=zcmb_max)\n",
"\n",
" y_lnZ[i, j] = - get_gof(\"neg_lnZ_harmonic\", fname)\n",
"\n",
" # y_lnZ[i] -= y_lnZ[i].min()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAUsAAAD1CAYAAADZANcvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqa0lEQVR4nO3de1yUddo/8M9ogogKDFiWh2K0PLbJBFu7rnlgWFYt1gJEy9x6FNTK8umRU7lPW3lC3ayeVhkxzdxCBKkoa5XB0yYewMEziTGQiAfUmQEUBGS+vz/4zb2SKDPIMMPweb9eveKeuWfmAvXie7ju65YJIQSIiOiOOtk7ACKi9oDJkojIAkyWREQWYLIkIrLAPbb+gLS0NOj1ehQWFsJoNEKtVgMANBoNdDod5HI5dDodYmJibB0KEVGLyWy5G67T6ZCWliYlwvDwcAQEBCAmJgZBQUHIzMwEACxbtgwKhQJhYWFNvs+wYcMwYMAAW4VJRITCwkKcOHHits/bdGRpNBqRkpIiJcuAgABkZmZCqVTC09NTOk+pVEKtVt82WQ4YMAAZGRm2DJWIOriQkJA7Pm/TZKlUKnHo0CHpuLCwEEqlElqtFnK5XHpcLpdDq9Xe9n1KS0sbfSNTp07F1KlTbRM0EXUIycnJSE5Olo5LS0vveL7N1yzNjEYjNBoNDh06hCVLllj12j59+nBkSUSt6teDruZGlm22Gx4ZGYnMzEx4enrC29u7rT6WiKhVtEmyXLZsGRISEqBQKKDT6aBUKqHX66Xn9Xo9lEplW4RCRNQiNk+WaWlpUKlUUCgUABpKhlQqFXQ6nXSOVqtFRESErUMhImoxmyZLnU6H8PBwPP7445DJZJDJZDAajQCAhIQELFu2DGlpaQBw251wIiJHYNMNHoVCgduVcapUKqhUKlt+PBHZ2PDgSHuHYLXj25Ja9Dpe7khEZAEmSyIiC7SLZGkuSr+5gJSIqDUkJycjJCTEcYrS7waL0onIVszF6Q5TlE5E1J4xWRIRWYDJkojIAkyWREQWYLIkIrIAkyURkQWYLImILNAukiWL0onIVliUTkRkARalExG1IiZLIiILMFkSEVmAyZKIyAJMlkREFmCyJCKyAJMlEZEF2kWyZFE6EdlKqxWlb9myBZmZmTAYDAAa7tgYFBSEcePGtU6kFmBROhHZiqVF6bdNlsuXL0dubi4iIiIwa9YsKBQKAA33As/NzYVarcasWbPaNGkSEdlLk8ly+fLlCAsLQ3R09C3P+fn5wc/PD5GRkcjKysLatWsxc+ZMmwdKRGRPTSbLppJkUwIDA1FeXt6qAREROSKrN3jS09MbHXt4eLRaMEREjsrqZKnX66WvDx8+3JqxEBE5LKtbtCUmJkKtVsPX1xdFRUXIycmxRVxERA7F6mSZlJQEPz8/AEBRUVGrB0RE5IisnoabE2VFRQXy8vJaPaCmsCidiGzFZp3Sk5KSoFarIZfL4eXlheeee67FQVqKRelEZCt3XZR+OwMGDEBWVhYAIDc3t2XRERG1M1ZPw7dv3w6ZTIbY2FhoNBpbxERE5HCsHlkuXboUABAbGwudTtfqAREROaIWdx3y9fVFYGCgRecajcZGx1qtFjqdDkajERqN5pbniYgcjdXJMikpCREREQCAtWvX3vHctLQ0xMbG3pJUlyxZggEDBsDX1xdarRaenp7WhkFE1KasnoYrFArExcUBaBhd3klYWBiUSuUta5tBQUFITU219qOJiOzG6mSp1Wohk8kgk8mQl5dn8VT818zTcKVS2aLXExG1Jaun4dHR0RBCICUlBZGRkS3+YKPRCIVCgfDw8GbXLM1F6eb/WJxORHfLXIxu/q/Vi9IBy1u43U5UVJT0dVBQEGJjY6FWq297PovSiai1mYvRzZorSrd6ZJmXl4f4+HjEx8cjODjY6gA1Gg2CgoIaPXZzJyMiIkdk9chSo9FII8OWFKUrFArMmjVLOj506JC0u05E5KhadLmjeRf81yPEX9NoNMjMzIROp8OaNWugUqmgUCig1WqxZs0a6f3CwsJaEDoRUduRCSGENS/w9/eHTCaDr68v8vLycPr0aVvFJgkJCeGaJZEDGh7c8k1eezm+LanJx5vLM+xnSURkgRb3swQAmUzWqsEQETkqi0eWK1aswPz58/HHP/4RXl5eEELwthJE1GFYnCznz58PANL9d4C2m4abi9J/XRdFRHS3kpOTkZyc3PpF6TdfD95W03AWpRORrbR6p/Sbp98ymYzTcCLqUJpMlunp6bfcW+fm6bcZd8OJqKNocjd806ZNt1xV4+vri6SkJKxYsaLRY0REHUGTybKoqAiTJ09GREQEKioqkJ6eDgCIjIyEh4dHs01/iYicTZPJUqfTITQ0FGq1GjExMUhJSZGei4yMZONeIupwmlyz9PLyAgB4enoiMTERAwcORGVlJXr06AEAvFEZEXU4TY4sVSpVo+OwsDAsXrxYOrbycnIionavyWQZGxuLOXPmSMfx8fFYsmQJ4uPjUVFR0eY3GDMXpbNDOhG1NnPH9OaK0m/bdSgvLw8ymQwjRoyQHisvL0dsbCyKioqwbdu2Vg34Tth1iMgxdaSuQ7dtpOHn59coUQKAh4cHYmJi4OHh0bIoiYjaKau7DikUCiQkJNgiFiIih3VLsiwvL8eKFStQXFx82xexGJ2IOppbSoc8PDwQGRmJzZs3Q6fTISAg4JZLH4mIOpom6yzNCRNo2OiJi4uDTCZDRETELeuYREQdQbNdh/z8/KTu6Fu2bMGmTZvg4+ODqKgo9OzZ0+YBEhE5Aqv6WYaGhiI0NBTl5eVQq9XQ6/VtMk1n818ishVLm/9afXfHXysqKrL5hg/rLIkcE+ssrcCdcSLqCKxOlklJSVKvS7ZqI6KOokVF6XFxcQA4qiSijsPqG5ZptVrIZDLIZDLk5eUhMDDQFnERETkUq0eW0dHREEIgJSVFqsUkInJ2Vo8s09PTER0dbYtYiIgcltUjS71eL319+PDh1oyFiMhhWZ0sExMTERAQgMmTJ7fZNJzNf4nIVixt/mv1NDwpKUm6/LGt7hvep08fFqUTkU2YrwwMCQm543lWJ0tz6ZBMJkN8fHyLAyQiak+snoanpqZi1qxZmDx5MtasWWOLmIiIHE6LRpbmYvSbN3uIiJyZ1cny0KFDkMvl0Ov1FhelG43GRneE1Gg00Ol0kMvl0Ol0iImJsTYMIqI21aKi9MzMTGRmZja7G56WlobY2NhbEmpCQgKioqIQFhYmnUdE5MisHlkCsLgoPSwsDEqlEhqNRnpMo9E0GmUqlUqo1WopcRIROSKrR5Zz5syRvk5PT7f6A7VaLeRyuXQsl8uh1Wqtfh8iorZk9cjybkeAV65csfo15qJ0M3ZMJ6K7Ze6QbtbqRemZmZkoLy8HAOTk5Fh9Swlvb28YjUarXsOidCJqbb8edDVXlG71NHzp0qUoLCyETqfDkiVLrA5QqVQ2KjnS6/VQKpVWvw8RUVtq0W0loqOjMX/+fBQXF1v9WpVKBZ1OJx1rtVqp8zoRkaOyeBq+YsUKzJ8/H3/84x/h5eUFIQSKioqQk5Nz29doNBpkZmZCp9NhzZo1UKlUUCgUSEhIwLJly6BQKADc/TooEZGtWX13x5vv5tgWd3YEeHdHIkfFuzvegTk5Hj58GN7e3ta+nIioXbI6WZprK0eMGNGo2JyIyJlZVTo0e/Zs5ObmIiUlBQAQEBBgk6CIiByNVckyISEBOp1Oav7bVsxF6SxGJ6LWZi5Ob9WidA8PjzZPlACL0onIdmzWKT0vL0+ahufl5WHbtm0ti5CIqB2xOllqNBrMmjVL+pqIqCOwOlkOGDBAKh8KCgpq9YCIiByR1aVDixcvlm6Fy2RJRB1Fu7gVLhGRvVk9sjQnyoqKCuTl5bV6QEREjqhFI0u1Wg25XA4vLy+r+1kSEbVHLdrgycrKAgDk5ua2ekBNYVE6EdmKpUXpVk/Dt2/fDplMhtjY2DYrHTIXpTNRElFrmzp1KjIyMtCnT587nmf1yHLp0qUAgNjY2EZNfImInJnFybK4uBgPPfSQdOzr6wuZTGa
"text/plain": [
"<Figure size 350x262.5 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bayes_factor = y_lnZ[:, 1] - y_lnZ[:, 0]\n",
"\n",
"with plt.style.context('science'):\n",
" plt.rcParams.update({'font.size': 9})\n",
"\n",
" plt.figure()\n",
"\n",
" sns.barplot(x=np.arange(len(catalogues)), y=bayes_factor / np.log(10), color=\"#21456D\")\n",
" plt.xticks(\n",
" np.arange(len(catalogues)),\n",
" [catalogue_to_pretty(cat) for cat in catalogues],\n",
" rotation=35, fontsize=\"small\", minor=False)\n",
" plt.ylabel(r\"$\\log \\left(\\mathcal{Z}_{\\rm Manticore} / \\mathcal{Z}_{\\rm linear}\\right)$\")\n",
" plt.tick_params(axis='x', which='both', bottom=False, top=False)\n",
"\n",
" plt.tight_layout()\n",
" plt.savefig(\"../../plots/manticore_vs_carrick.png\", dpi=450)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## All possible things"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dipole magnitude"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"cats = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"sim = \"IndranilVoid_gauss\"\n",
"\n",
"X = []\n",
"for cat in cats:\n",
" fname = paths.flow_validation(\n",
" fdir, sim, cat, inference_method=\"mike\",\n",
" sample_mag_dipole=False,\n",
" sample_alpha=False, zcmb_max=0.05)\n",
" \n",
" if not exists(fname):\n",
" raise FileNotFoundError(fname)\n",
"\n",
" samples = get_samples(fname, convert_Vext_to_galactic=False)\n",
"\n",
" # keys = list(samples.keys())\n",
" # for key in keys:\n",
" # if cat in key:\n",
" # value = samples.pop(key)\n",
" # samples[key.replace(f\"_{cat}\",'')] = value\n",
" \n",
" samples = samples_to_getdist(samples, catalogue_to_pretty(cat))\n",
" X.append(samples)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# params = [\"Vmag\", \"l\", \"b\", \"a_dipole_mag\", \"a_dipole_l\", \"a_dipole_b\"]\n",
"params = [\"Vx\", \"Vy\", \"Vz\"]\n",
"# params = [\"Vmag\", \"l\", \"b\"]\n",
"\n",
"with plt.style.context('science'):\n",
" g = plots.get_subplot_plotter()\n",
" g.settings.figure_legend_frame = False\n",
" g.settings.alpha_filled_add = 0.75\n",
"\n",
" g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
" # plt.gcf().suptitle(catalogue_to_pretty(cat), y=1.025)\n",
" plt.gcf().tight_layout()\n",
" plt.gcf().savefig(f\"../../plots/vext_{sim}.png\", dpi=500, bbox_inches='tight')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Flow | catalogue"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"catalogues = [\"LOSS\", \"Foundation\", \"Pantheon+\", \"2MTF\", \"SFI_gals\"]\n",
"sims = [\"Carrick2015\", \"csiborg2_main\", \"csiborg2X\"]\n",
"params = [\"Vmag\", \"beta\", \"sigma_v\"]\n",
"\n",
"for catalogue in catalogues:\n",
" X = [samples_to_getdist(get_samples(sim, catalogue), sim)\n",
" for sim in sims]\n",
"\n",
" g = plots.get_subplot_plotter()\n",
" g.settings.figure_legend_frame = False\n",
" g.settings.alpha_filled_add = 0.75\n",
"\n",
" g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
" plt.gcf().suptitle(f'{catalogue}', y=1.025)\n",
" plt.gcf().tight_layout()\n",
2024-07-05 12:28:06 +02:00
" plt.gcf().savefig(f\"../../plots/calibration_{catalogue}.png\", dpi=500, bbox_inches='tight')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Flow | simulation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"catalogues = [\"Pantheon+\", \"2MTF\", \"SFI_gals\"]\n",
"sims = [\"Carrick2015\", \"csiborg2_main\", \"csiborg2X\"]\n",
2024-07-05 12:28:06 +02:00
"params = [\"Vmag\", \"l\", \"b\", \"beta\", \"sigma_v\"]\n",
"\n",
"for sim in sims:\n",
" X = [samples_to_getdist(get_samples(sim, catalogue), sim, catalogue)\n",
" for catalogue in catalogues]\n",
"\n",
" g = plots.get_subplot_plotter()\n",
" g.settings.figure_legend_frame = False\n",
" g.settings.alpha_filled_add = 0.75\n",
"\n",
" g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
" plt.gcf().suptitle(f'{sim}', y=1.025)\n",
" plt.gcf().tight_layout()\n",
" plt.gcf().savefig(f\"../../plots/calibration_{sim}.png\", dpi=500, bbox_inches='tight')\n",
" plt.gcf().show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Stacking vs marginalising CB boxes\n",
"\n",
"#### $V_{\\rm ext}$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sim = \"csiborg2X\"\n",
"catalogue = \"2MTF\"\n",
"key = \"Vext\"\n",
"\n",
"X = [get_samples(sim, catalogue, nsim=nsim, convert_Vext_to_galactic=False)[key] for nsim in range(20)]\n",
"Xmarg = get_samples(sim, catalogue, convert_Vext_to_galactic=False)[key]\n",
"\n",
"\n",
"fig, axs = plt.subplots(1, 3, figsize=(15, 5), sharey=True)\n",
"fig.suptitle(f\"{simname_to_pretty(sim)}, {catalogue}\")\n",
"fig.subplots_adjust(wspace=0.0, hspace=0)\n",
"\n",
"for i in range(3):\n",
" for n in range(20):\n",
" axs[i].hist(X[n][:, i], bins=\"auto\", alpha=0.25, histtype='step',\n",
" color='black', linewidth=0.5, density=1, zorder=0,\n",
" label=\"Individual box\" if (n == 0 and i == 0) else None)\n",
"\n",
"axs[i].hist(np.hstack([X[n][:, i] for n in range(20)]), bins=\"auto\",\n",
" histtype='step', color='blue', density=1,\n",
" label=\"Stacked individual boxes\" if i == 0 else None)\n",
"axs[i].hist(Xmarg[:, i], bins=\"auto\", histtype='step', color='red',\n",
" density=1, label=\"Marginalised boxes\" if i == 0 else None)\n",
" \n",
"axs[0].legend(fontsize=\"small\", loc='upper left', frameon=False)\n",
"\n",
"axs[0].set_xlabel(r\"$V_{\\mathrm{ext}, x} ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"axs[1].set_xlabel(r\"$V_{\\mathrm{ext}, y} ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"axs[2].set_xlabel(r\"$V_{\\mathrm{ext}, z} ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"axs[0].set_ylabel(\"Normalized PDF\")\n",
"fig.tight_layout()\n",
"fig.savefig(f\"../../plots/consistency_{sim}_{catalogue}_{key}.png\", dpi=450)\n",
"fig.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### $\\beta$ and others"
]
},
{
"cell_type": "code",
2024-07-03 10:50:21 +02:00
"execution_count": null,
"metadata": {},
2024-07-03 10:50:21 +02:00
"outputs": [],
"source": [
"sim = \"csiborg2_main\"\n",
"catalogue = \"Pantheon+\"\n",
2024-07-05 12:28:06 +02:00
"key = \"alpha\"\n",
"\n",
"X = [get_samples(sim, catalogue, nsim=nsim, convert_Vext_to_galactic=False)[key] for nsim in range(20)]\n",
"Xmarg = get_samples(sim, catalogue, convert_Vext_to_galactic=False)[key]\n",
"\n",
"\n",
"plt.figure()\n",
"plt.title(f\"{simname_to_pretty(sim)}, {catalogue}\")\n",
"for n in range(20):\n",
" plt.hist(X[n], bins=\"auto\", alpha=0.25, histtype='step',\n",
" color='black', linewidth=0.5, density=1, zorder=0,\n",
" label=\"Individual box\" if n == 0 else None)\n",
"\n",
"plt.hist(np.hstack([X[n] for n in range(20)]), bins=\"auto\",\n",
" histtype='step', color='blue', density=1,\n",
" label=\"Stacked individual boxes\")\n",
"plt.hist(Xmarg, bins=\"auto\", histtype='step', color='red',\n",
" density=1, label=\"Marginalised boxes\")\n",
"\n",
"plt.legend(fontsize=\"small\", frameon=False, loc='upper left', ncols=3)\n",
"plt.xlabel(names_to_latex([key], True)[0])\n",
"plt.ylabel(\"Normalized PDF\")\n",
"\n",
"plt.tight_layout()\n",
"plt.savefig(f\"../../plots/consistency_{sim}_{catalogue}_{key}.png\", dpi=450)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### SN/TFR Calibration consistency"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# catalogues = [\"LOSS\", \"Foundation\", \"Pantheon+\", \"2MTF\", \"SFI_gals\"]\n",
"catalogues = [\"Pantheon+\"]\n",
"sims = [\"Carrick2015\", \"csiborg2_main\", \"csiborg2X\"]\n",
"\n",
"for catalogue in catalogues:\n",
" X = [samples_to_getdist(get_samples(sim, catalogue), sim)\n",
" for sim in sims]\n",
"\n",
" if \"Pantheon+\" in catalogue or catalogue in [\"Foundation\", \"LOSS\"]:\n",
" params = [\"alpha_cal\", \"beta_cal\", \"mag_cal\", \"e_mu\"]\n",
" else:\n",
" params = [\"aTF\", \"bTF\", \"e_mu\"]\n",
"\n",
" g = plots.get_subplot_plotter()\n",
" g.settings.figure_legend_frame = False\n",
" g.settings.alpha_filled_add = 0.75\n",
"\n",
" g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
" plt.gcf().suptitle(f'{catalogue}', y=1.025)\n",
" plt.gcf().tight_layout()\n",
" # plt.gcf().savefig(f\"../../plots/calibration_{catalogue}.png\", dpi=500, bbox_inches='tight')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2024-07-03 10:50:21 +02:00
"### $V_{\\rm ext}$ comparison"
]
},
2024-07-03 10:50:21 +02:00
{
"cell_type": "code",
2024-07-05 12:28:06 +02:00
"execution_count": null,
2024-07-03 10:50:21 +02:00
"metadata": {},
2024-07-05 12:28:06 +02:00
"outputs": [],
2024-07-03 10:50:21 +02:00
"source": [
"catalogues = [\"LOSS\"]\n",
"# sims = [\"Carrick2015\", \"csiborg2_main\", \"csiborg2X\"]\n",
"sims = [\"Carrick2015\"]\n",
"params = [\"Vmag\", \"l\", \"b\"]\n",
"\n",
"for sim in sims:\n",
" X = [samples_to_getdist(get_samples(sim, catalogue), sim, catalogue)\n",
" for catalogue in catalogues]\n",
"\n",
" g = plots.get_subplot_plotter()\n",
" g.settings.figure_legend_frame = False\n",
" g.settings.alpha_filled_add = 0.75\n",
"\n",
" g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
" plt.gcf().suptitle(f'{simname_to_pretty(sim)}', y=1.025)\n",
" plt.gcf().tight_layout()\n",
" # plt.gcf().savefig(f\"../../plots/calibration_{sim}.png\", dpi=500, bbox_inches='tight')\n",
" plt.gcf().show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Bulk flow in the simulation rest frame"
]
},
{
"cell_type": "code",
2024-07-05 12:28:06 +02:00
"execution_count": null,
2024-07-03 10:50:21 +02:00
"metadata": {},
2024-07-05 12:28:06 +02:00
"outputs": [],
2024-07-03 10:50:21 +02:00
"source": [
"sims = [\"Carrick2015\", \"csiborg1\", \"csiborg2_main\", \"csiborg2X\"]\n",
"convert_to_galactic = False\n",
"\n",
"fig, axs = plt.subplots(1, 3, figsize=(15, 5))\n",
"cols = plt.rcParams['axes.prop_cycle'].by_key()['color']\n",
"\n",
"for i, sim in enumerate(sims):\n",
" r, B = get_bulkflow_simulation(sim, convert_to_galactic=convert_to_galactic)\n",
" if sim == \"Carrick2015\":\n",
" if convert_to_galactic:\n",
" B[..., 0] *= 0.43\n",
" else:\n",
" B *= 0.43\n",
"\n",
" for n in range(3):\n",
" ylow, ymed, yhigh = np.percentile(B[..., n], [16, 50, 84], axis=0)\n",
" axs[n].fill_between(r, ylow, yhigh, color=cols[i], alpha=0.5, label=simname_to_pretty(sim) if n == 0 else None)\n",
"\n",
2024-07-03 10:50:21 +02:00
"axs[0].legend()\n",
"if convert_to_galactic:\n",
" axs[0].set_ylabel(r\"$B ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
" axs[1].set_ylabel(r\"$\\ell_B ~ [\\degree]$\")\n",
" axs[2].set_ylabel(r\"$b_B ~ [\\degree]$\")\n",
"else:\n",
" axs[0].set_ylabel(r\"$B_{x} ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
" axs[1].set_ylabel(r\"$B_{y} ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
" axs[2].set_ylabel(r\"$B_{z} ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"\n",
"for n in range(3):\n",
" axs[n].set_xlabel(r\"$R ~ [\\mathrm{Mpc}]$\")\n",
"\n",
"\n",
"fig.tight_layout()\n",
2024-07-05 12:28:06 +02:00
"fig.savefig(\"../../plots/bulkflow_simulations_restframe.png\", dpi=450)\n",
2024-07-03 10:50:21 +02:00
"fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Bulk flow in the CMB rest frame"
]
},
{
"cell_type": "code",
2024-07-05 12:28:06 +02:00
"execution_count": null,
"metadata": {},
2024-07-05 12:28:06 +02:00
"outputs": [],
"source": [
2024-07-05 12:28:06 +02:00
"sim = \"csiborg2_main\"\n",
"catalogues = [\"Pantheon+\", \"2MTF\", \"SFI_gals\"]\n",
2024-07-03 10:50:21 +02:00
"\n",
"\n",
"fig, axs = plt.subplots(1, 3, figsize=(15, 5), sharex=True)\n",
"cols = plt.rcParams['axes.prop_cycle'].by_key()['color']\n",
2024-07-03 10:50:21 +02:00
"# fig.suptitle(f\"Calibrated against {catalogue}\")\n",
"\n",
2024-07-03 10:50:21 +02:00
"for i, catalogue in enumerate(catalogues):\n",
2024-07-05 12:28:06 +02:00
" r, B = get_bulkflow(sim, catalogue, sample_beta=True, convert_to_galactic=True,\n",
" weight_simulations=True, downsample=3)\n",
2024-07-03 10:50:21 +02:00
" c = cols[i]\n",
" for n in range(3):\n",
" ylow, ymed, yhigh = np.percentile(B[..., n], [16, 50, 84], axis=-1)\n",
" axs[n].plot(r, ymed, color=c)\n",
" axs[n].fill_between(r, ylow, yhigh, alpha=0.5, color=c, label=catalogue)\n",
"\n",
"\n",
"# CMB-LG velocity\n",
2024-07-03 10:50:21 +02:00
"axs[0].fill_between([r.min(), 10.], [627 - 22, 627 - 22], [627 + 22, 627 + 22], color='black', alpha=0.5, zorder=0.5, label=\"CMB-LG\", hatch=\"x\")\n",
"axs[1].fill_between([r.min(), 10.], [276 - 3, 276 - 3], [276 + 3, 276 + 3], color='black', alpha=0.5, zorder=0.5, hatch=\"x\")\n",
"axs[2].fill_between([r.min(), 10.], [30 - 3, 30 - 3], [30 + 3, 30 + 3], color='black', alpha=0.5, zorder=0.5, hatch=\"x\")\n",
"\n",
"# LCDM expectation\n",
"Rs,mean,std,mode,p05,p16,p84,p95 = np.load(\"/mnt/users/rstiskalek/csiborgtools/data/BulkFlowPlot.npy\")\n",
"m = Rs < 175\n",
"axs[0].plot(Rs[m], mode[m], color=\"violet\", zorder=0)\n",
"axs[0].fill_between(Rs[m], p16[m], p84[m], alpha=0.25, color=\"violet\",\n",
" zorder=0, hatch='//', label=r\"$\\Lambda\\mathrm{CDM}$\")\n",
"\n",
"for n in range(3):\n",
" axs[n].set_xlabel(r\"$r ~ [\\mathrm{Mpc} / h]$\")\n",
"\n",
"axs[0].legend()\n",
"axs[0].set_ylabel(r\"$B ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"axs[1].set_ylabel(r\"$\\ell_B ~ [\\mathrm{deg}]$\")\n",
"axs[2].set_ylabel(r\"$b_B ~ [\\mathrm{deg}]$\")\n",
"\n",
"axs[0].set_xlim(r.min(), r.max())\n",
"\n",
"fig.tight_layout()\n",
"fig.savefig(f\"../../plots/bulkflow_{sim}_{catalogue}.png\", dpi=450)\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Smoothing scale dependence"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"simname = \"Carrick2015\"\n",
"catalogue = \"Pantheon+\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Goodness-of-fit"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"scales = [0, 4, 8, 16, 32]\n",
"\n",
"y = np.asarray([get_gof(\"BIC\", simname, catalogue, ksmooth=i)\n",
" for i in range(len(scales))])\n",
"ymin = y.min()\n",
"\n",
"y -= ymin\n",
"y_CF4 = get_gof(\"BIC\", \"CF4\", catalogue) - ymin\n",
"y_CF4gp = get_gof(\"BIC\", \"CF4gp\", catalogue) - ymin\n",
"\n",
"plt.figure()\n",
"plt.axhline(y[0], color='blue', label=\"Carrick+2015, no smoothing\")\n",
"plt.plot(scales[1:], y[1:], marker=\"o\", label=\"Carrick+2015, smoothed\")\n",
"\n",
"plt.axhline(y_CF4, color='red', label=\"CF4, no smoothing\")\n",
"\n",
"plt.xlabel(r\"$R_{\\rm smooth} ~ [\\mathrm{Mpc}]$\")\n",
"plt.ylabel(r\"$\\Delta \\mathrm{BIC}$\")\n",
"plt.legend(ncols=1)\n",
"\n",
"plt.tight_layout()\n",
"plt.savefig(\"../../plots/test_smooth.png\", dpi=450)\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sim = \"Carrick2015\"\n",
"catalogue = \"Pantheon+\"\n",
"\n",
"\n",
"X = [samples_to_getdist(get_samples(sim, catalogue, ksmooth=ksmooth), ksmooth)\n",
" for ksmooth in [0, 1, 2]]\n",
"\n",
"params = [\"Vmag\", \"l\", \"b\", \"sigma_v\", \"beta\"]\n",
"# if \"Pantheon+\" in catalogue or catalogue in [\"Foundation\", \"LOSS\"]:\n",
"# params += [\"alpha_cal\", \"beta_cal\", \"mag_cal\", \"e_mu\"]\n",
"# else:\n",
"# params += [\"aTF\", \"bTF\", \"e_mu\"]\n",
"\n",
"\n",
"\n",
"g = plots.get_subplot_plotter()\n",
"g.settings.figure_legend_frame = False\n",
"g.settings.alpha_filled_add = 0.75\n",
"\n",
"g.triangle_plot(X, params=params, filled=True, legend_loc='upper right')\n",
"plt.gcf().suptitle(f'{catalogue}', y=1.025)\n",
"plt.gcf().tight_layout()\n",
"plt.gcf().savefig(f\"../../plots/calibration_{catalogue}.png\", dpi=500, bbox_inches='tight')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Indranil's void"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Evidence comparison"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"zcmb_max = 0.05\n",
"\n",
"sims = [\"no_field\", \"IndranilVoid_exp\"]\n",
"cats = [\"LOSS\", \"Foundation\", \"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n",
"\n",
"neglnZ = {}\n",
"for sim in sims:\n",
" for cat in cats:\n",
" sample_alpha = sim not in [\"IndranilVoid_exp\", \"no_field\"]\n",
" fname = paths.flow_validation(\n",
" fdir, sim, cat, inference_method=\"mike\",\n",
" sample_alpha=sample_alpha, zcmb_max=zcmb_max)\n",
"\n",
" neglnZ[f\"{sim}_{cat}\"] = get_gof(\"neg_lnZ_harmonic\", fname)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"simA = sims[0]\n",
"simB = sims[1]\n",
"\n",
"print(f\"lnZ_({simA}) - lnZ_({simB})\\n\")\n",
"for cat in cats:\n",
" lnZ_A = - neglnZ[f\"{simA}_{cat}\"]\n",
" lnZ_B = - neglnZ[f\"{simB}_{cat}\"]\n",
" print(f\"{cat:15s} {lnZ_A - lnZ_B:.1f}\")\n",
"\n",
"\n",
"print(f\"\\n(Positive -> preference for {simA})\")"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"data = np.loadtxt(\"/mnt/extraspace/rstiskalek/catalogs/v_pec_EXP_IndranilVoid.dat\")\n",
"\n",
"r = np.arange(0, 251)\n",
"phi = np.arange(0, 181)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"plt.figure()\n",
"plt.plot(phi, data[:, 100])\n",
"plt.xlabel(r\"$\\phi ~ [\\mathrm{deg}]$\")\n",
"plt.ylabel(r\"$V ~ [\\mathrm{km} / \\mathrm{s}]$\")\n",
"\n",
"plt.xlim(0, 180)\n",
"plt.tight_layout()\n",
"plt.savefig(\"../../plots/profile.png\", dpi=450)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
2024-07-03 10:51:00 +02:00
"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",
2024-07-05 12:28:06 +02:00
"version": "3.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}