diff --git a/csiborgtools/flow/__init__.py b/csiborgtools/flow/__init__.py index 6ee3f87..4d8a2c5 100644 --- a/csiborgtools/flow/__init__.py +++ b/csiborgtools/flow/__init__.py @@ -18,4 +18,5 @@ from .flow_model import (PV_LogLikelihood, PV_validation_model, dist2redshift, Observed2CosmologicalRedshift, predict_zobs, # noqa project_Vext, stack_pzosmo_over_realizations) # noqa from .selection import ToyMagnitudeSelection # noqa -from .void_model import load_void_data, interpolate_void # noqa +from .void_model import (load_void_data, interpolate_void, select_void_h, # noqa + mock_void) # noqa diff --git a/csiborgtools/flow/cosmography.py b/csiborgtools/flow/cosmography.py new file mode 100644 index 0000000..e1e6f7b --- /dev/null +++ b/csiborgtools/flow/cosmography.py @@ -0,0 +1,94 @@ +# Copyright (C) 2024 Richard Stiskalek +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +"""Various cosmography functions for converting between distance indicators.""" +from jax import numpy as jnp + +from ..params import SPEED_OF_LIGHT + +H0 = 100 # km / s / Mpc + + +def dist2redshift(dist, Omega_m, h=1.): + """ + Convert comoving distance to cosmological redshift if the Universe is + flat and z << 1. + """ + eta = 3 * Omega_m / 2 + return 1 / eta * (1 - (1 - 2 * 100 * h * dist / SPEED_OF_LIGHT * eta)**0.5) + + +def redshift2dist(z, Omega_m): + """ + Convert cosmological redshift to comoving distance if the Universe is + flat and z << 1. + """ + q0 = 3 * Omega_m / 2 - 1 + return SPEED_OF_LIGHT * z / (2 * H0) * (2 - z * (1 + q0)) + + +def gradient_redshift2dist(z, Omega_m): + """ + Gradient of the redshift to comoving distance conversion if the Universe is + flat and z << 1. + """ + q0 = 3 * Omega_m / 2 - 1 + return SPEED_OF_LIGHT / H0 * (1 - z * (1 + q0)) + + +def distmod2dist(mu, Om0): + """ + Convert distance modulus to distance in `Mpc / h`. The expression is valid + for a flat universe over the range of 0.00001 < z < 0.1. + """ + term1 = jnp.exp((0.443288 * mu) + (-14.286531)) + term2 = (0.506973 * mu) + 12.954633 + term3 = ((0.028134 * mu) ** ( + ((0.684713 * mu) + + ((0.151020 * mu) + (1.235158 * Om0))) - jnp.exp(0.072229 * mu))) + term4 = (-0.045160) * mu + return (-0.000301) + (term1 * (term2 - (term3 - term4))) + + +def distmod2dist_gradient(mu, Om0): + """ + Calculate the derivative of comoving distance in `Mpc / h` with respect to + the distance modulus. The expression is valid for a flat universe over the + range of 0.00001 < z < 0.1. + """ + term1 = jnp.exp((0.443288 * mu) + (-14.286531)) + dterm1 = 0.443288 * term1 + + term2 = (0.506973 * mu) + 12.954633 + dterm2 = 0.506973 + + term3 = ((0.028134 * mu)**(((0.684713 * mu) + ((0.151020 * mu) + (1.235158 * Om0))) - jnp.exp(0.072229 * mu))) # noqa + ln_base = jnp.log(0.028134) + jnp.log(mu) + exponent = 0.835733 * mu + 1.235158 * Om0 - jnp.exp(0.072229 * mu) + exponent_derivative = 0.835733 - 0.072229 * jnp.exp(0.072229 * mu) + dterm3 = term3 * ((1 / mu) * exponent + exponent_derivative * ln_base) + + term4 = (-0.045160) * mu + dterm4 = -0.045160 + + return (dterm1 * (term2 - (term3 - term4)) + + term1 * (dterm2 - (dterm3 - dterm4))) + + +def distmod2redshift(mu, Om0): + """ + Convert distance modulus to redshift, assuming `h = 1`. The expression is + valid for a flat universe over the range of 0.00001 < z < 0.1. + """ + return jnp.exp(((0.461108 * mu) - ((0.022187 * Om0) + (((0.022347 * mu)** (12.631788 - ((-6.708757) * Om0))) + 19.529852)))) # noqa diff --git a/csiborgtools/flow/flow_model.py b/csiborgtools/flow/flow_model.py index c83fb0a..7bb358d 100644 --- a/csiborgtools/flow/flow_model.py +++ b/csiborgtools/flow/flow_model.py @@ -25,10 +25,11 @@ from abc import ABC, abstractmethod import numpy as np from astropy import units as u -from astropy.coordinates import SkyCoord, angular_separation from astropy.cosmology import FlatLambdaCDM, z_at_value +from interpax import interp1d from jax import jit from jax import numpy as jnp +from jax import vmap from jax.scipy.special import erf, logsumexp from numpyro import factor, plate, sample from numpyro.distributions import MultivariateNormal, Normal, Uniform @@ -37,57 +38,19 @@ from tqdm import trange from ..params import SPEED_OF_LIGHT from ..utils import fprint +from .cosmography import (dist2redshift, distmod2dist, distmod2dist_gradient, + distmod2redshift, gradient_redshift2dist) from .selection import toy_log_magnitude_selection -from .void_model import interpolate_void, load_void_data +from .void_model import (angular_distance_from_void_axis, interpolate_void, + load_void_data) H0 = 100 # km / s / Mpc ############################################################################### -# JAX Flow model # +# Various flow utilities # ############################################################################### -def dist2redshift(dist, Omega_m, h=1.): - """ - Convert comoving distance to cosmological redshift if the Universe is - flat and z << 1. - """ - eta = 3 * Omega_m / 2 - return 1 / eta * (1 - (1 - 2 * 100 * h * dist / SPEED_OF_LIGHT * eta)**0.5) - - -def redshift2dist(z, Omega_m): - """ - Convert cosmological redshift to comoving distance if the Universe is - flat and z << 1. - """ - q0 = 3 * Omega_m / 2 - 1 - return SPEED_OF_LIGHT * z / (2 * H0) * (2 - z * (1 + q0)) - - -def gradient_redshift2dist(z, Omega_m): - """ - Gradient of the redshift to comoving distance conversion if the Universe is - flat and z << 1. - """ - q0 = 3 * Omega_m / 2 - 1 - return SPEED_OF_LIGHT / H0 * (1 - z * (1 + q0)) - - -def distmod2dist(mu, Om0): - """ - Convert distance modulus to distance in `Mpc / h`. The expression is valid - for a flat universe over the range of 0.00001 < z < 0.1. - """ - term1 = jnp.exp((0.443288 * mu) + (-14.286531)) - term2 = (0.506973 * mu) + 12.954633 - term3 = ((0.028134 * mu) ** ( - ((0.684713 * mu) - + ((0.151020 * mu) + (1.235158 * Om0))) - jnp.exp(0.072229 * mu))) - term4 = (-0.045160) * mu - return (-0.000301) + (term1 * (term2 - (term3 - term4))) - - def project_Vext(Vext_x, Vext_y, Vext_z, RA_radians, dec_radians): """Project the external velocity vector onto the line of sight.""" cos_dec = jnp.cos(dec_radians) @@ -150,6 +113,37 @@ def upper_truncated_normal_logpdf(x, loc, scale, xmax): return normal_logpdf(x, loc, scale) - jnp.log(norm) +############################################################################### +# LOS interpolation # +############################################################################### + + +def interpolate_los(r, los, rgrid, method="cubic"): + """ + Interpolate the LOS field at a given radial distance. + + Parameters + ---------- + r : 1-dimensional array of shape `(n_gal, )` + Radial distances at which to interpolate the LOS field. + los : 3-dimensional array of shape `(n_sims, n_gal, n_steps)` + LOS field. + rmin, rmax : float + Minimum and maximum radial distances in the data. + order : int, optional + The order of the interpolation. Default is 1, can be 0. + + Returns + ------- + 2-dimensional array of shape `(n_sims, n_gal)` + """ + # Vectorize over the inner loop (ngal) first, then the outer loop (nsim) + def f(rn, los_row): + return interp1d(rn, rgrid, los_row, method=method) + + return vmap(vmap(f, in_axes=(0, 0)), in_axes=(None, 0))(r, los) + + ############################################################################### # Base flow validation # ############################################################################### @@ -232,17 +226,12 @@ class BaseFlowValidationModel(ABC): rLG_grid *= h rLG_min, rLG_max = rLG_grid.min(), rLG_grid.max() rgrid_min, rgrid_max = 0, 250 - fprint(f"setting radial grid from {rLG_min} to {rLG_max} Mpc.") + fprint(f"setting radial grid from {rLG_min} to {rLG_max} Mpc / h.") rgrid_max *= h - # Get angular separation (in degrees) of each object from the model - # axis. - model_axis = SkyCoord(l=117, b=4, frame='galactic', unit='deg').icrs - coords = SkyCoord(ra=RA, dec=dec, unit='deg').icrs - - phi = angular_separation(coords.ra.rad, coords.dec.rad, - model_axis.ra.rad, model_axis.dec.rad) - phi = jnp.asarray(phi * 180 / np.pi, dtype=jnp.float32) + # Get angular separation of each object from the model axis. + phi = angular_distance_from_void_axis(RA, dec) + phi = jnp.asarray(phi, dtype=jnp.float32) if kind == "density": void_grid = jnp.log(void_grid) @@ -291,6 +280,12 @@ class BaseFlowValidationModel(ABC): return self._los_velocity + def log_los_density_at_r(self, r): + return interpolate_los(r, self.log_los_density(), self.r_xrange, ) + + def los_velocity_at_r(self, r): + return interpolate_los(r, self.los_velocity(), self.r_xrange, ) + @abstractmethod def __call__(self, **kwargs): pass @@ -514,16 +509,16 @@ class PV_LogLikelihood(BaseFlowValidationModel): Name of the catalogue. void_kwargs : dict, optional Void data parameters. If `None` the data is not void data. - with_num_dist_marginalisation : bool, optional - Whether to use numerical distance marginalisation, in which case - the tracers cannot be coupled by a covariance matrix. By default - `True`. + wo_num_dist_marginalisation : bool, optional + Whether to directly sample the distance without numerical + marginalisation. in which case the tracers can be coupled by a + covariance matrix. By default `False`. """ def __init__(self, los_density, los_velocity, RA, dec, z_obs, e_zobs, calibration_params, abs_calibration_params, mag_selection, r_xrange, Omega_m, kind, name, void_kwargs=None, - with_num_dist_marginalisation=True): + wo_num_dist_marginalisation=False): if e_zobs is not None: e2_cz_obs = jnp.asarray((SPEED_OF_LIGHT * e_zobs)**2) else: @@ -549,7 +544,7 @@ class PV_LogLikelihood(BaseFlowValidationModel): values += [jnp.log(los_density), los_velocity] # Density required only if not numerically marginalising. - if not with_num_dist_marginalisation: + if not wo_num_dist_marginalisation: names += ["_los_density"] values += [los_density] @@ -561,12 +556,9 @@ class PV_LogLikelihood(BaseFlowValidationModel): self.kind = kind self.name = name self.Omega_m = Omega_m - self.with_num_dist_marginalisation = with_num_dist_marginalisation + self.wo_num_dist_marginalisation = wo_num_dist_marginalisation self.norm = - self.ndata * jnp.log(self.num_sims) - # TODO: Somewhere here prepare the interpolators in case of no - # numerical marginalisation. - if mag_selection is not None: self.mag_selection_kind = mag_selection["kind"] @@ -767,30 +759,20 @@ class PV_LogLikelihood(BaseFlowValidationModel): else: raise ValueError(f"Unknown kind: `{self.kind}`.") - # h = field_calibration_params["h"] # ---------------------------------------------------------------- # 2. Log-likelihood of the true distance and observed redshifts. # The marginalisation of the true distance can be done numerically. # ---------------------------------------------------------------- - if self.with_num_dist_marginalisation: + if not self.wo_num_dist_marginalisation: if field_calibration_params["sample_h"]: - raise NotImplementedError("Sampling of h not implemented.") - # Rescale the grid to account for the sampled H0. For distance - # modulus going from Mpc / h to Mpc implies larger numerical - # values, so there has to be a minus sign since h < 1. - # mu_xrange = self.mu_xrange - 5 * jnp.log(h) - - # The redshift should also be boosted since now the object are - # further away? - - # Actually, the redshift ought to remain the same? - else: - mu_xrange = self.mu_xrange + raise NotImplementedError( + "Sampling of 'h' is not supported if numerically " + "marginalising the true distance.") # Calculate p(r) (Malmquist bias). Shape is (ndata, nxrange) log_ptilde = log_ptilde_wo_bias( - mu_xrange[None, :], mu[:, None], e2_mu[:, None], + self.mu_xrange[None, :], mu[:, None], e2_mu[:, None], self.log_r2_xrange[None, :]) if self.is_void_data: @@ -832,56 +814,52 @@ class PV_LogLikelihood(BaseFlowValidationModel): return ll0 + jnp.sum(logsumexp(ll, axis=0)) + self.norm else: if field_calibration_params["sample_h"]: - raise NotImplementedError("Sampling of h not implemented.") - - raise NotImplementedError( - "Sampling of distance is not implemented. Work in progress.") + raise NotImplementedError( + "Sampling of h is not yet implemented.") e_mu = jnp.sqrt(e2_mu) # True distance modulus, shape is `(n_data)`` with plate("plate_mu", self.ndata): mu_true = sample("mu", Normal(mu, e_mu)) - # True distance, shape is `(n_data)`` + # True distance and redshift, shape is `(n_data)`. r_true = distmod2dist(mu_true, self.Omega_m) - # TODO: - z_true = None + z_true = distmod2redshift(mu_true, self.Omega_m) if self.is_void_data: raise NotImplementedError( "Void data not implemented yet for distance sampling.") else: - # grid log(density), shape is `(n_sims, n_data, n_rad)` - log_los_density_grid = self.los_density() - - # TODO: Need to add the interpolators for these + # Grid log(density), shape is `(n_sims, n_data, n_rad)` + log_los_density_grid = self.log_los_density() # Densities and velocities at the true distances, shape is # `(n_sims, n_data)` - log_density = None - los_velocity = None + log_density = self.log_los_density_at_r(r_true) + los_velocity = self.los_velocity_at_r(r_true) alpha = distmod_params["alpha"] - # Check dimensions of all this - # Normalisation of p(mu), shape is `(n_sims, n_data, n_rad)` pnorm = ( - self.log_r2_xrange[None, None, :] + + self.log_r2_xrange[None, None, :] + alpha * log_los_density_grid + normal_logpdf( self.mu_xrange[None, :], mu[:, None], e_mu[:, None])[None, ...]) # noqa - pnorm = jnp.exp(pnorm) - - # Normalization of p(mu). Shape is now (nsims, ndata) + # Now integrate over the radial steps. Shape is `(nsims, ndata)`. + # No Jacobian here because I integrate over distance, not the + # distance modulus. pnorm = simpson(pnorm, x=self.r_xrange, axis=-1) - # TODO: There should be a Jacobian? + # Jacobian |dr / dmu|_(mu_true), shape is `(n_data)`. + jac = jnp.abs(distmod2dist_gradient(mu_true, self.Omega_m)) + # Calculate unnormalized log p(mu). Shape is (nsims, ndata) ll = ( - 2 * (jnp.log(r_true) - self.log_r2_xrange_mean)[None, :] + + jnp.log(jac)[None, :] + + (2 * jnp.log(r_true) - self.log_r2_xrange_mean)[None, :] + alpha * log_density - + normal_logpdf(mu_true, mu, e_mu)[None, :]) + ) # Subtract the normalization. Shape remains (nsims, ndata) ll -= jnp.log(pnorm) @@ -933,7 +911,7 @@ def PV_validation_model(models, distmod_hyperparams_per_model, # We sample the components of Vext with a uniform prior, which means # there is a |Vext|^2 prior, we correct for this so that the sampling # is effecitvely uniformly in magnitude of Vext and angles. - if "Vext" in field_calibration_params: + if "Vext" in field_calibration_params and not field_calibration_hyperparams["no_Vext"]: # noqa ll -= jnp.log(jnp.sum(field_calibration_params["Vext"]**2)) for n in range(len(models)): diff --git a/csiborgtools/flow/io.py b/csiborgtools/flow/io.py index d2f22f9..694c657 100644 --- a/csiborgtools/flow/io.py +++ b/csiborgtools/flow/io.py @@ -20,6 +20,7 @@ from h5py import File from ..params import SPEED_OF_LIGHT, simname2Omega_m from ..utils import fprint, radec_to_galactic, radec_to_supergalactic from .flow_model import PV_LogLikelihood +from .void_model import load_void_data, mock_void, select_void_h H0 = 100 # km / s / Mpc @@ -242,6 +243,25 @@ class DataLoader: arr = np.empty(len(f["RA"]), dtype=dtype) for key in f.keys(): arr[key] = f[key][:] + elif "IndranilVoidTFRMock" in catalogue: + # The name can be e.g. "IndranilVoidTFRMock_exp_34_0", where the + # first and second number are the LG observer index and random + # seed. + profile, rLG_index, seed = catalogue.split("_")[1:] + rLG_index = int(rLG_index) + seed = int(seed) + rLG, vrad_data = load_void_data(profile, "vrad") + h = select_void_h(profile) + print(f"Mock observed galaxies for LG observer with index " + f"{rLG_index} at {rLG[rLG_index] * h} Mpc / h and " + f"seed {seed}.") + mock_data = mock_void(vrad_data, rLG_index, profile, seed=seed)[0] + + # Convert the dictionary to a structured array + dtype = [(key, np.float32) for key in mock_data.keys()] + arr = np.empty(len(mock_data["RA"]), dtype=dtype) + for key in mock_data.keys(): + arr[key] = mock_data[key] elif "UPGLADE" in catalogue: with File(catalogue_fpath, 'r') as f: dtype = [(key, np.float32) for key in f.keys()] @@ -354,8 +374,8 @@ def mask_fields(density, velocity, mask, return_none): def get_model(loader, zcmb_min=None, zcmb_max=None, mag_selection=None, - absolute_calibration=None, calibration_fpath=None, - void_kwargs=None): + wo_num_dist_marginalisation=False, absolute_calibration=None, + calibration_fpath=None, void_kwargs=None): """ Get a model and extract the relevant data from the loader. @@ -369,9 +389,14 @@ def get_model(loader, zcmb_min=None, zcmb_max=None, mag_selection=None, Maximum observed redshift in the CMB frame to include. mag_selection : dict, optional Magnitude selection parameters. + wo_num_dist_marginalisation : bool, optional + Whether to directly sample the distance without numerical + marginalisation. in which case the tracers can be coupled by a + covariance matrix. By default `False`. add_absolute_calibration : bool, optional Whether to add an absolute calibration for CF4 TFRs. calibration_fpath : str, optional + Path to the file containing the absolute calibration of CF4 TFR. Returns ------- @@ -418,7 +443,8 @@ def get_model(loader, zcmb_min=None, zcmb_max=None, mag_selection=None, los_overdensity, los_velocity, RA[mask], dec[mask], zCMB[mask], e_zCMB, calibration_params, None, mag_selection, loader.rdist, loader._Omega_m, "SN", - name=kind, void_kwargs=void_kwargs) + name=kind, void_kwargs=void_kwargs, + wo_num_dist_marginalisation=wo_num_dist_marginalisation) elif "Pantheon+" in kind: keys = ["RA", "DEC", "zCMB", "mB", "x1", "c", "biasCor_m_b", "mBERR", "x1ERR", "cERR", "biasCorErr_m_b", "zCMB_SN", "zCMB_Group", @@ -451,8 +477,9 @@ def get_model(loader, zcmb_min=None, zcmb_max=None, mag_selection=None, los_overdensity, los_velocity, RA[mask], dec[mask], zCMB[mask], e_zCMB[mask], calibration_params, None, mag_selection, loader.rdist, loader._Omega_m, "SN", - name=kind, void_kwargs=void_kwargs) - elif kind in ["SFI_gals", "2MTF", "SFI_gals_masked"]: + name=kind, void_kwargs=void_kwargs, + wo_num_dist_marginalisation=wo_num_dist_marginalisation) + elif kind in ["SFI_gals", "2MTF", "SFI_gals_masked"] or "IndranilVoidTFRMock" in kind: # noqa keys = ["RA", "DEC", "z_CMB", "mag", "eta", "e_mag", "e_eta"] RA, dec, zCMB, mag, eta, e_mag, e_eta = (loader.cat[k] for k in keys) @@ -467,7 +494,8 @@ def get_model(loader, zcmb_min=None, zcmb_max=None, mag_selection=None, los_overdensity, los_velocity, RA[mask], dec[mask], zCMB[mask], None, calibration_params, None, mag_selection, loader.rdist, loader._Omega_m, "TFR", name=kind, - void_kwargs=void_kwargs) + void_kwargs=void_kwargs, + wo_num_dist_marginalisation=wo_num_dist_marginalisation) elif "CF4_TFR_" in kind: # The full name can be e.g. "CF4_TFR_not2MTForSFI_i" or "CF4_TFR_i". band = kind.split("_")[-1] @@ -535,7 +563,8 @@ def get_model(loader, zcmb_min=None, zcmb_max=None, mag_selection=None, los_overdensity, los_velocity, RA[mask], dec[mask], z_obs[mask], None, calibration_params, abs_calibration_params, mag_selection, loader.rdist, - loader._Omega_m, "TFR", name=kind, void_kwargs=void_kwargs) + loader._Omega_m, "TFR", name=kind, void_kwargs=void_kwargs, + wo_num_dist_marginalisation=wo_num_dist_marginalisation) elif kind in ["CF4_GroupAll"]: # Note, this for some reason works terribly. keys = ["RA", "DE", "Vcmb", "DMzp", "eDM"] @@ -556,7 +585,8 @@ def get_model(loader, zcmb_min=None, zcmb_max=None, mag_selection=None, los_overdensity, los_velocity, RA[mask], dec[mask], zCMB[mask], None, calibration_params, None, mag_selection, loader.rdist, loader._Omega_m, "simple", - name=kind, void_kwargs=void_kwargs) + name=kind, void_kwargs=void_kwargs, + wo_num_dist_marginalisation=wo_num_dist_marginalisation) else: raise ValueError(f"Catalogue `{kind}` not recognized.") diff --git a/csiborgtools/flow/void_model.py b/csiborgtools/flow/void_model.py index 0ff43a8..794bb95 100644 --- a/csiborgtools/flow/void_model.py +++ b/csiborgtools/flow/void_model.py @@ -19,11 +19,44 @@ from os.path import join from re import search import numpy as np +from astropy.coordinates import SkyCoord, angular_separation from jax import numpy as jnp from jax import vmap from jax.scipy.ndimage import map_coordinates +from scipy.interpolate import RegularGridInterpolator from tqdm import tqdm +from ..utils import galactic_to_radec +from ..params import SPEED_OF_LIGHT +from .cosmography import distmod2dist, distmod2redshift + +############################################################################### +# Basic void computations # +############################################################################### + + +def angular_distance_from_void_axis(RA, dec): + """ + Calculate the angular distance of a galaxy from the void axis, all in + degrees. + """ + # Calculate the separation angle between the galaxy and the model axis. + model_axis = SkyCoord(l=117, b=4, frame='galactic', unit='deg').icrs + coords = SkyCoord(ra=RA, dec=dec, unit='deg').icrs + return angular_separation( + coords.ra.rad, coords.dec.rad, + model_axis.ra.rad, model_axis.dec.rad) * 180 / np.pi + + +def select_void_h(kind): + """Select 'little h' for void profile `kind`.""" + hs = {"mb": 0.7615, "gauss": 0.7724, "exp": 0.7725} + try: + return hs[kind] + except KeyError: + raise ValueError(f"Unknown void kind: `{kind}`.") + + ############################################################################### # I/O of the void data # ############################################################################### @@ -97,9 +130,9 @@ def interpolate_void(rLG, r, phi, data, rgrid_min, rgrid_max, rLG_min, rLG_max, ---------- rLG : float The observer's distance from the center of the void. - r : 1-dimensional array + r : 1-dimensional array of shape `(nsteps,) The radial distances at which to interpolate the velocities. - phi : 1-dimensional array + phi : 1-dimensional array of shape `(ngal,)` The angles at which to interpolate the velocities, in degrees, defining the galaxy position. data : 3-dimensional array of shape (nLG, nrad, nphi) @@ -114,7 +147,7 @@ def interpolate_void(rLG, r, phi, data, rgrid_min, rgrid_max, rLG_min, rLG_max, Returns ------- - vel : 2-dimensional array of shape (len(phi), len(r)) + vel : 2-dimensional array of shape `(ngal, nsteps)` """ nLG, nrad, nphi = data.shape @@ -139,3 +172,106 @@ def interpolate_void(rLG, r, phi, data, rgrid_min, rgrid_max, rLG_min, rLG_max, return map_coordinates(data, X, order=order, mode='nearest') return vmap(interpolate_single_phi)(phi) + + +############################################################################### +# Mock void data # +############################################################################### + + +def mock_void(vrad_data, rLG_index, profile, + a_TF=-22.8, b_TF=-7.2, sigma_TF=0.1, sigma_v=100., + mean_eta=0.069, std_eta=0.078, mean_e_eta=0.012, + mean_mag=10.31, std_mag=0.83, mean_e_mag=0.044, + bmin=None, add_malmquist=False, nsamples=2000, seed=42, + Om0=0.3175, verbose=False, **kwargs): + """Mock 2MTF-like TFR data with void velocities.""" + truths = {"a": a_TF, "b": b_TF, "e_mu": sigma_TF, "sigma_v": sigma_v, + "mean_eta": mean_eta, "std_eta": std_eta, + "mean_mag": mean_mag, "std_mag": std_mag, + } + + gen = np.random.default_rng(seed) + + # Sample the sky-distribution, either full-sky or mask out the Galactic + # plane. + l = gen.uniform(0, 360, size=nsamples) # noqa + if bmin is None: + b = np.arcsin(gen.uniform(-1, 1, size=nsamples)) + else: + b = np.arcsin(gen.uniform(np.sin(np.deg2rad(bmin)), 1, + size=nsamples)) + b[gen.rand(nsamples) < 0.5] *= -1 + + b = np.rad2deg(b) + + RA, DEC = galactic_to_radec(l, b) + # Calculate the angular separation from the void axis, in degrees. + phi = angular_distance_from_void_axis(RA, DEC) + + # Sample the linewidth of each galaxy from a Gaussian distribution to mimic + # the MNR procedure. + eta_true = gen.normal(mean_eta, std_eta, nsamples) + eta_obs = gen.normal(eta_true, mean_e_eta) + + # Subtract the mean of the observed linewidths, so that they are + # centered around zero. For consistency subtract from both observed + # and true values. + eta_mean_sampled = np.mean(eta_obs) + eta_true -= eta_mean_sampled + eta_obs -= eta_mean_sampled + + # Sample the magnitude from some Gaussian distribution to replicate MNR. + mag_true = gen.normal(mean_mag, std_mag, nsamples) + mag_obs = gen.normal(mag_true, mean_e_mag) + + # Calculate the 'true' distance modulus and redshift from the TFR distance. + mu_TFR = mag_true - (a_TF + b_TF * eta_true) + if add_malmquist: + raise NotImplementedError("Malmquist bias not implemented yet.") + else: + mu_true = gen.normal(mu_TFR, sigma_TF) + + # Convert the true distance modulus to true distance and cosmological + # redshift. + r = distmod2dist(mu_true, Om0) + zcosmo = distmod2redshift(mu_true, Om0) + + # Little h of this void profile + h = select_void_h(profile) + + # Extract the velocities for the galaxies from the grid for this LG + # index. + vrad_data_rLG = vrad_data[rLG_index] + + r_grid = np.arange(0, 251) * h + phi_grid = np.arange(0, 181) + Vr = RegularGridInterpolator((r_grid, phi_grid), vrad_data_rLG, + fill_value=np.nan, bounds_error=False, + method="cubic")(np.vstack([r, phi]).T) + + # The true redshift of the source. + zCMB_true = (1 + zcosmo) * (1 + Vr / SPEED_OF_LIGHT) - 1 + zCMB_obs = gen.normal(zCMB_true, sigma_v / SPEED_OF_LIGHT) + + sample = {"RA": RA, + "DEC": DEC, + "z_CMB": zCMB_obs, + "eta": eta_obs, + "mag": mag_obs, + "e_eta": np.ones(nsamples) * mean_e_eta, + "e_mag": np.ones(nsamples) * mean_e_mag, + "r": r, + "distmod_true": mu_true, + "distmod_TFR": mu_TFR} + + # Apply a true distance cut to the mocks. + mask = r < np.max(r_grid) + for key in sample: + sample[key] = sample[key][mask] + + if verbose and np.any(~mask): + print(f"Removed {(~mask).sum()} out of {mask.size} samples " + "due to the true distance cutoff.") + + return sample, truths diff --git a/notebooks/flow/reconstruction_comparison.ipynb b/notebooks/flow/reconstruction_comparison.ipynb index 0402b49..0399206 100644 --- a/notebooks/flow/reconstruction_comparison.ipynb +++ b/notebooks/flow/reconstruction_comparison.ipynb @@ -244,9 +244,184 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, "metadata": {}, - "outputs": [], + "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: 26/09/2024 11:02:52\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:17:56\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:24:10\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:41:00\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:14:53\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:52:52\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_LOSS_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:33:52\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:03:00\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:18:10\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:25:22\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:43:31\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:17:10\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:55:20\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:36:10\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 02/10/2024 17:47:56\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:18:31\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:25:04\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:46:23\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:20:13\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:58:23\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_Foundation_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:38:10\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:04:09\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:18:53\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:25:46\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:56:16\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:23:54\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:01:40\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:40:28\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:04:48\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:18:55\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:33:12\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:58:05\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:37:40\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:12:23\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_2MTF_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:42: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: 26/09/2024 11:05:03\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:20:08\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: 26/09/2024 11:34:48\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:05:34\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:40:34\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:22:45\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:45:29\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:05:44\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:20:10\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: 26/09/2024 11:35:56\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:07:34\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:44:34\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:27:38\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_SFI_gals_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:48:03\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: 26/09/2024 11:06:41\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:21:13\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: 26/09/2024 11:38:16\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:11:53\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:50:18\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:31:36\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:50:51\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: 26/09/2024 11:07:54\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:22:46\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: 26/09/2024 11:50:31\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: 26/09/2024 12:26:06\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:20:55\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:59:34\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_i_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:52:35\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: 26/09/2024 11:09:23\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:23:08\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: 26/09/2024 12:09:25\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:41:38\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:20:52\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:58:36\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:55:16\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: 26/09/2024 11:07:53\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_w1_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:22:52\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_w1_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:54:34\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: 26/09/2024 12:27:36\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_CF4_TFR_w1_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:12:48\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_w1_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:48:05\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_w1_mike_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:53:55\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:08:41\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:23:09\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 11:58:58\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 12:30:30\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:17:33\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:50:41\n", + "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", + "Last modified: 26/09/2024 13:55:53\n" + ] + } + ], "source": [ "zcmb_max = 0.05\n", "\n", @@ -272,12 +447,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 50, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzcAAAHfCAYAAABtWSYcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC//ElEQVR4nOzdeVxUVf8H8M+wb8IwuKS4MbibpgPY4pLK4FqWykCYZouAW9svBWl5nsoUhxazXBqw3SJkNLPFjNFKsyxgNMsljcElcmUYQRYRuL8/eJgktkFmgeHzfr18Pc6dM3O+jzcO93vPud8jEgRBABERERERURvnYOsAiIiIiIiIzIHJDRERERER2QUmN0REREREZBeY3BARERERkV1gckNERERERHaByQ0REREREdkFJjdERERERGQXmNwQEREREZFdYHJDRERERER2gckNERERERHZBSY3RERERERkF5jcEBERERGRXXCydQBE9k4QBOTn5+PKlSvw8vKCn58fRCKRrcOi6/ActS08X20DzxMR2QJnbogsxGAwYM2aNRg4oC86deqEgIAAdOrUCQMH9MWaNWtgMBhsHWK7V3OOBgwYUOscDRgwoNWcI4VCYesQWg3j+erfr/b56t/PpueL56i2mvPUv3/tsa9/f459RGR5IkEQBFsHQWRvdu7ciYiImSgpKcHMMGDmBAG+3kBBIbDlGxG2ZAAeHh7YvHkLJk6caPF4DAYDEhMToVQqLd5XW1F9jiJQUlKCMWPGYMyYMfDy8sKVK1ewZ88e7Nmz53/naLNVzlFDFAoF0tPTbdZ/a7Fz505EKMJRUlKC8QPFGD/AB97ujigsrcTuY5ex+6ih+nylq61+vniO/rFz504oFOEoLilB4FBPSId4wNXDAVdLqqD7rQQ5h4rh6eGBdBucJyJqH5jcEJnZzp07cdddUzFxpICNy6twU6e6bc5dBOY954Cd+0T44osvzfJLXqPRQKVSGS+ykpOTkZOTA4PBgMDAQKSlpSE2NhYxMTE39P0ikQj2MlxUn6O7EBISgiVLlsDPz69Om/z8fLzyyivIzMzEF198YZZzlJycbEwww8PDoVQqjedNIpFALBZDqVRCp9NBoVBALpdDo9EgOzu72X3Z3/maitukHfDc3T3Q0cu5TptLV65h+ednsF9XZJafKbVajcTERBgMBsjlcqhUqlrn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "import matplotlib.patches as mpatches\n", - "cmap = mpl.colormaps.get_cmap(\"coolwarm\")\n", + "import matplotlib.lines as mlines\n", + "\n", + "plot_smoothed = True\n", "\n", "\n", "def make_colours(y, n, k):\n", @@ -294,15 +481,6 @@ " colors[sorted_indices[2]] = \"#CD7F32\" # Third highest gets bronze\n", " return colors\n", "\n", - "def plot_bars_with_varying_width(ax, x, y, colors, bar_width, reduced_width, reduced_alpha):\n", - " sorted_indices = np.argsort(y)[::-1]\n", - " \n", - " for i, height in enumerate(y):\n", - " if i in sorted_indices[:3]: # Top 3 bars\n", - " ax.bar(x[i], height, color=colors[i], width=bar_width)\n", - " else: # Non-top 3 bars\n", - " ax.bar(x[i], height, color=colors[i], width=reduced_width, alpha=reduced_alpha)\n", - "\n", "\n", "with plt.style.context('science'):\n", " plt.rcParams.update({'font.size': 9})\n", @@ -312,31 +490,20 @@ "\n", " x = np.arange(len(sims))\n", " y = y_lnZ\n", - " bar_width = 0.6 # Adjust the width of the bars if necessary\n", "\n", " for n in range(len(catalogues)):\n", " i, j = n // 3, n % 3\n", " ax = axs[i, j]\n", "\n", - " ax.text(0.025, 1.075, catalogue_to_pretty(catalogues[n]), # Moved slightly higher to 1.05\n", + " ax.text(0.025, 1.075, catalogue_to_pretty(catalogues[n]),\n", " transform=ax.transAxes,\n", " verticalalignment='center', horizontalalignment='left',\n", - " bbox=dict(facecolor='white', alpha=0.85, edgecolor='none', pad=3), # Add padding to the box\n", - " zorder=5 # Ensure the text is drawn on top of other elements\n", - " )\n", - "\n", - " colors = make_colours(y, n, 0)\n", - " plot_bars_with_varying_width(ax, x, y[n, 0], colors, bar_width, 0.6 * bar_width, 0.6)\n", - "\n", - " # Right y-axis seaborn scatter plot\n", - " colors = make_colours(y, n, 1)\n", - " ax_right = ax.twinx() # Create a twin y-axis\n", - " ax_right.scatter(x, y[n, 1], c=colors, s=75, zorder=1, edgecolors=\"k\")\n", - "\n", - " if i in [0, 1] and j == 2:\n", - " ax_right.set_ylabel(r\"$\\Delta \\log_{10} \\mathcal{Z} ~ (\\mathrm{smoothed})$\")\n", - " ax_right.tick_params(axis='y', which='minor', length=0)\n", + " bbox=dict(facecolor='white', alpha=0.85, edgecolor='none', pad=3),\n", + " zorder=5)\n", "\n", + " k = 0 if not plot_smoothed else 1\n", + " colors = make_colours(y, n, k)\n", + " ax.scatter(x, y[n, k], c=colors, s=75, zorder=-1, marker=\"o\", edgecolors=\"k\")\n", "\n", " for i in range(3):\n", " axs[1, i].set_xticks(\n", @@ -352,13 +519,127 @@ " 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 \\log_{10} \\mathcal{Z}$\")\n", + " if plot_smoothed:\n", + " axs[i, 0].set_ylabel(r\"$\\Delta \\log_{10} \\mathcal{Z}_{\\rm smoothed}$\")\n", + " else:\n", + " axs[i, 0].set_ylabel(r\"$\\log_{10} \\mathcal{Z}$\")\n", + "\n", + " kwargs = {\"marker\": \"o\", \"linestyle\": \"None\", \"markersize\": 10, \"markeredgecolor\": \"k\"}\n", + " gold_circle = mlines.Line2D([], [], color='#FFD700', **kwargs, label=r'1\\textsuperscript{st} place')\n", + " silver_circle = mlines.Line2D([], [], color='#C0C0C0', **kwargs, label=r'2\\textsuperscript{nd} place')\n", + " bronze_circle = mlines.Line2D([], [], color='#CD7F32', **kwargs, label=r'3\\textsuperscript{rd} place')\n", + " olive_circle = mlines.Line2D([], [], color='olivedrab', **kwargs, label=r'Remaining')\n", + "\n", + " fig.legend(handles=[gold_circle, silver_circle, bronze_circle, olive_circle], \n", + " loc='upper center', bbox_to_anchor=(0.5, 1.05), ncol=4, frameon=False)\n", "\n", " fig.tight_layout()\n", - " fig.savefig(f\"../../plots/lnZ_comparison.pdf\", dpi=500, bbox_inches='tight')\n", + " fname = \"../../plots/lnZ_comparison.pdf\"\n", + " if plot_smoothed:\n", + " fname = fname.replace(\".pdf\", \"_smoothed.pdf\")\n", + " fig.savefig(fname, dpi=500, bbox_inches='tight')\n", " fig.show()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Evidence plot for Harry's talk" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "zcmb_max = 0.05\n", + "\n", + "sims = [\"Carrick2015\", \"Lilow2024\", \"manticore_2MPP_N128_DES_V1\", \"CF4\", \"CLONES\"]\n", + "catalogues = [\"CF4_TFR_w1\"]\n", + "\n", + "y_BIC = np.full((len(catalogues), 2, 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 in [0, 1]:\n", + " for k, 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, smooth=j)\n", + "\n", + " # y_BIC[i, j] = get_gof(\"BIC\", fname)z\n", + " y_lnZ[i, j, k] = - get_gof(\"neg_lnZ_harmonic\", fname) / np.log(10)\n", + "\n", + " y_lnZ[i, j] -= y_lnZ[i, j].min()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with plt.style.context('science'):\n", + " plt.rcParams.update({'font.size': 9})\n", + " fig, ax = plt.subplots(1, 1)\n", + "\n", + " x = np.arange(len(sims))\n", + " y = y_lnZ\n", + "\n", + "\n", + " ax.text(0.025, 1.075, catalogue_to_pretty(catalogues[0]),\n", + " transform=ax.transAxes,\n", + " verticalalignment='center', horizontalalignment='left',\n", + " bbox=dict(facecolor='white', alpha=0.85, edgecolor='none', pad=3),\n", + " zorder=5)\n", + "\n", + " k = 0\n", + " colors = make_colours(y, 0, k)\n", + " ax.scatter(x, y[0, k], c=colors, s=75, zorder=-1, marker=\"o\", edgecolors=\"k\")\n", + "\n", + " labels = [simname_to_pretty(sim) for sim in sims]\n", + " j = sims.index(\"manticore_2MPP_N128_DES_V1\")\n", + " labels[j] = r\"CSiBORG2\"\n", + " ax.set_xticks(\n", + " np.arange(len(sims)),\n", + " labels, rotation=30,)\n", + " # ax.set_xticks([], [])\n", + "\n", + " ax.set_xlim(-0.75, len(sims) - 0.25)\n", + "\n", + " ax.tick_params(axis='x', which='major', top=False)\n", + " ax.tick_params(axis='x', which='minor', top=False, length=0)\n", + " ax.tick_params(axis='y', which='minor', length=0)\n", + "\n", + " ax.set_ylabel(r\"$\\Delta \\log_{10} \\mathcal{Z}$\")\n", + "\n", + " kwargs = {\"marker\": \"o\", \"linestyle\": \"None\", \"markersize\": 10, \"markeredgecolor\": \"k\"}\n", + " gold_circle = mlines.Line2D([], [], color='#FFD700', **kwargs, label=r'1\\textsuperscript{st} place')\n", + " silver_circle = mlines.Line2D([], [], color='#C0C0C0', **kwargs, label=r'2\\textsuperscript{nd} place')\n", + " bronze_circle = mlines.Line2D([], [], color='#CD7F32', **kwargs, label=r'3\\textsuperscript{rd} place')\n", + " olive_circle = mlines.Line2D([], [], color='olivedrab', **kwargs, label=r'Remaining')\n", + "\n", + " fig.legend(handles=[gold_circle, silver_circle, bronze_circle, olive_circle], \n", + " loc='upper center', bbox_to_anchor=(0.7, 1.075), ncol=2, frameon=False)\n", + "\n", + " fig.tight_layout()\n", + " fname = \"../../plots/logZ_harry.pdf\"\n", + " # if plot_smoothed:\n", + " # fname = fname.replace(\".pdf\", \"_smoothed.pdf\")\n", + " fig.savefig(fname, dpi=500, bbox_inches='tight')\n", + " fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -612,100 +893,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:03:00\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:04:09\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: 26/09/2024 11:05:03\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: 26/09/2024 11:06:41\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: 26/09/2024 11:09:23\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Carrick2015_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:08:41\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:18:10\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:18:53\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:20:08\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:21:13\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:23:08\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_Lilow2024_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:23:09\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:25:22\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:25:46\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: 26/09/2024 11:34: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: 26/09/2024 11:38:16\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: 26/09/2024 12:09:25\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2_main_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:58:58\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:43:31\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 11:56:16\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:05:34\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:11:53\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:41:38\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_csiborg2X_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:30:30\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:17:10\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:23:54\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:40:34\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:50:18\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:20:52\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_manticore_2MPP_N128_DES_V1_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:17:33\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 12:55:20\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:01:40\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:22:45\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:31:36\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:58:36\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CF4_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:50:41\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_LOSS_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:36:10\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_Foundation_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:40:28\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_2MTF_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:45:29\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_SFI_gals_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:50:51\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_i_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:55:16\n", - "File: /mnt/extraspace/rstiskalek/csiborg_postprocessing/peculiar_velocity/samples_CLONES_CF4_TFR_w1_mike_smooth_1_zcmb_max_0.05_sample_alpha.hdf5\n", - "Last modified: 26/09/2024 13:55:53\n" - ] - } - ], + "outputs": [], "source": [ "sims = [\"Carrick2015\", \"Lilow2024\", \"csiborg2_main\", \"csiborg2X\", \"manticore_2MPP_N128_DES_V1\", \"CF4\", \"CLONES\"]\n", "cats = [\"LOSS\", \"Foundation\", \"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n", @@ -727,20 +917,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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448TjUYBePzxx+nv70cQBO699965cf39/Tz++ONLzvfNb36T559/HoADBw7Q398/N3fl/XpzC4LAAw88QDweJ5lMct999/Hwww+v2rlWqKjnzaKWrwmDp3il41NkLYWf2x2B9O0obz1Pz97f5MgrZ/jaX54l6FX45790K4ok0hf11hcCYy/DxGtw+z8GxVtzyLV4Hd1333185StfmZvjmWee4Rvf+AYHDx6cG7N3796qnzcSG1IIrIdqnoplAPANvgOqir5pE/ZkitLQIPolY597d4zd2yJ4ywcpyyH8Ph/HEkE2ldOQnwBfz1Vd+ze/+U3efvvtuYs8mUwSDofnPq/cbJeyf/9+7rvvPhKJRNV4gIcffnjuhtu7dy9PPPEEe/bsWTRHvbkXPiDuv/9+9u/fX3WjL+Q73/kO9957L/39/XXPsRaVTUKzqOVrwrnjnArfQf8mD8GAAu/5APzJ77IjYvCztxNIgo9/+as/R1fYA0B32MPAVHbxPLkx+MtPglWE7EX4yH9dNORavY7uu+8+nn/++bn3K3NV1p9MJucETzKZ5Dvf+Q579uypez1ea7TMQatEJpEDwDtwGDbvRPOqAOTHp8Cy5sblSiaHBuPcsT2KVhylrHawOerjaNznDkifv+pr/8Y3vsETTzwx9/OlN2I9HnvssZo35GqTTCYbfv7AAw+sWABcL+RPHCWlttHRNXt9bdoO7d1suvAqlizxES9zAgCgJ+xhYDKzeKKT/8PVUG/4FTj536GYWDTkWr2O9u3bx/79++d+jsfj3HvvvXPvVYQUwFe+8hW++93vrvlaryYtIbBKZBI5NK+KNHgCereha+6vNu+oMDIwN+7doTiW7XBTbwi9OExZaaMz5OHIjOYOSF1dIXDo0CH6+/sb3rD333//3OvQoUOAezN85StfmdshXS615q68f99997Fjxw7uu+++hlrAgw8+eEVr2MjETg0CEArOKv0CsOMWxONvMSrKbCmXWFg0oCfiYXgmh21fUkhg4M+g627Y/stgleDCX1V9fC1fR/39/QwMDJBMJjl06BB33XXXnHYArmawb98+wNUs7rzzzitaa7OxIc1B60E2mcejS5DPQtcmNE0CIC/74fiBuSzNU6MpJFFgc7sPfeAC2cB7afOrzOQFHK0NIT24nqdRk6effrrq50OHDjEwMMC9997LY489tqpz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KozALVBXV8eePXtoaWmhoaEh9cO+mXTj84nX652wBYX0cuWCvHv27KGurg5FUdixYwd79+7NaXkzZSHpzFxYaPo2VxaDvgojMAuam5vZsWNH6vn27dtpbW2lrq4Ot/tG8wm3201dXV3a8fnimWeewe1209zcTHNzMy6Xi+bm5pyV1+FwTPh8x8uQi/JmwkLTmbmw0PRtriwWfRVGYBYoisKuXbtSz1taWti9ezf19fW4XK7UuNPpnHZ8vnjiiSfYs2cPO3fupL6+ntra2tTjXJS3traWhoaG1PPTp0/n9OebCQtNZ+bCQtO3ubJY9FXUDpolzc3NQNKKt7W10djYCCRXBU6nk9ra2klxwVONzycul4vGxkYcDgeNjY3s3LkzZ+Vtbm5OrZa8Xu+Mct1peTNhIerMXFhI+jZXFoO+CiMgEAgESxhxHCQQCARLGGEEBAKBYAkjjIBAIBAsYYQREAgEgiWMMAICgUCwhBFGQCAQCJYwwggsIhwOB3v37p2QkJJNvF7vlOP79+9n7969t+WegtxH6N3CRhiBRcSRI0dobGyktrYWh8PB6tWrs1al0Ov1sn///ilf27NnT87WRRHcfoTeLWyEEVikjJUszhYvvvgiO3fuzNr1BIsToXcLD2EElijpttjpaGtrS9XFFwhuFaF3uYfoMZwjNDQ00NramqoroigKb7/99qSyvLeKzWajvr6eAwcO0NraSkNDA3v37qW2tpYjR46wfft2FEXB6/Vy+PBhmpqaUu91Op1s374dSNaFcTgc1NbW4nQ6s77yE8wvQu8EwgjkALt27Uo15X7mmWcAslpYyuFwcODAgdS2ur6+nvr6erxeb6ra43333Ud7ezuKonDkyBGam5tT8w8fPpwqerZv3z52795NXV0dtbW1s17ZCXIHoXcCEMdBd5wxB9pYO766urqsdiAai9yY6lx1bJttt9ux2+2p1Z+iKBPqno+noaGBRx99lB07duBwOMRqbIEi9E4whjACd5ibG1OMbZGzRW1tLdu2bZsywiKTLX9zc/OEmud2u5329nYaGhpoampKG7khyG2E3gnGEEbgDqMoyoTm006nM7V6GguPG1P48Q0sMqWuro59+/bR2Ng4KY47ky11S0vLhFXX008/jaIo7Ny5k6amJtra2mYtk+DOI/ROMIbwCdxh9uzZk0p4cblcExxjbrc71XwC4L777sv4umPNKxobG9m3b1+qEfaBAwdSr7vdburr63n66adTbQHHYr1dLhf333//pDjs4uJi9u/fn5LrySefnOtHILgDCL0TpNAEOc2ePXs0j8ejaZqmnT59etq5TzzxRFbv3djYmLp3JnMFiwehd0sHsRPIcXbt2oXD4UBRlJQTb74YHh7OWqigYGEh9G7pIHwCOU59fX2qWXcmZKuGi8vlythRuH//fg4fPjznewpyB6F3SwfRY1ggEAiWMGInIBAIBEsYYQQEAoFgCSOMgEAgECxhhBEQCASCJYwwAgKBQLCEEUZAIBAIljDCCAgEAsESRhgBgUAgWMIIIyAQCARLmP8P39g4fwjNNbUAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "with plt.style.context('science'):\n", " plt.rcParams.update({'font.size': 9})\n", @@ -1584,293 +1763,6 @@ "plt.gcf().savefig(f\"../../plots/calibration_{catalogue}.png\", dpi=500, bbox_inches='tight')" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Void testing" - ] - }, - { - "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", - "kfound = []\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", - "\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": "markdown", - "metadata": {}, - "source": [ - "### 1. Goodness-of-fit comparison" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "zcmb_max = 0.05\n", - "no_Vext = True\n", - "\n", - "sims = [\"IndranilVoid_exp\", \"IndranilVoid_gauss\", \"IndranilVoid_mb\"]\n", - "cats = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n", - "\n", - "neglnZ = {}\n", - "kfound = {}\n", - "for sim in sims:\n", - " for cat in cats:\n", - " kfound[f\"{sim}_{cat}\"] = []\n", - " for ksim in range(500):\n", - " sample_alpha = False\n", - " fname = paths.flow_validation(\n", - " fdir, sim, cat, inference_method=\"mike\", nsim=ksim,\n", - " sample_alpha=sample_alpha, zcmb_max=zcmb_max,\n", - " sample_beta=True,\n", - " no_Vext=no_Vext, verbose_print=False)\n", - "\n", - " if not exists(fname):\n", - " continue\n", - "\n", - " kfound[f\"{sim}_{cat}\"].append(ksim)\n", - " neglnZ[f\"{sim}_{cat}_{ksim}\"] = get_gof(\"neg_lnZ_harmonic\", fname)\n", - "\n", - "\n", - "neglnZ_no_field = {}\n", - "neglnZ_dipole = {}\n", - "sim = \"no_field\"\n", - "for cat in cats:\n", - " sample_alpha = False\n", - " fname = paths.flow_validation(\n", - " fdir, sim, cat, inference_method=\"mike\",\n", - " sample_alpha=sample_alpha, zcmb_max=zcmb_max,\n", - " no_Vext=True, verbose_print=False)\n", - "\n", - " if not exists(fname):\n", - " continue\n", - "\n", - " neglnZ_no_field[f\"{cat}\"] = get_gof(\"neg_lnZ_harmonic\", fname)\n", - "\n", - " fname = paths.flow_validation(\n", - " fdir, sim, cat, inference_method=\"mike\",\n", - " sample_alpha=sample_alpha, zcmb_max=zcmb_max,\n", - " no_Vext=None, verbose_print=False)\n", - "\n", - " if not exists(fname):\n", - " continue\n", - "\n", - " neglnZ_dipole[f\"{cat}\"] = get_gof(\"neg_lnZ_harmonic\", fname)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "with plt.style.context('science'):\n", - " plt.rcParams.update({'font.size': 9})\n", - "\n", - " figwidth = 8.3 \n", - " fig, axs = plt.subplots(2, 2, figsize=(figwidth, 0.65 * figwidth))\n", - "\n", - " for n, cat in enumerate(cats):\n", - " i, j = n // 2, n % 2\n", - " ax = axs[i, j]\n", - "\n", - " for sim in sims:\n", - " x = kfound[f\"{sim}_{cat}\"]\n", - " y = [neglnZ[f\"{sim}_{cat}_{ksim}\"] / np.log(10) for ksim in x]\n", - " x = np.array(x) * 0.674\n", - " ax.plot(x, y, label=simname_to_pretty(sim))\n", - " \n", - " # if no_Vext is None:\n", - " # y_no_field = neglnZ_no_field[cat] / np.log(10)\n", - " # if cat != \"CF4_TFR_w1\":\n", - " # ax.axhline(y_no_field, color=\"black\", ls=\"--\", label=\"No peculiar velocity\")\n", - " y_no_field = neglnZ_no_field[cat] / np.log(10)\n", - " ax.axhline(y_no_field, color=\"black\", ls=\"--\", label=\"No peculiar velocity\")\n", - "\n", - " y_dipole = neglnZ_dipole[cat] / np.log(10)\n", - " ax.axhline(y_dipole, color=\"black\", ls=\":\", label=\"Constant dipole\")\n", - "\n", - " ax.text(0.5, 0.9, catalogue_to_pretty(cat),\n", - " transform=ax.transAxes, #fontsize=\"small\",\n", - " verticalalignment='center', horizontalalignment='center',\n", - " bbox=dict(facecolor='white', alpha=0.5),\n", - " )\n", - "\n", - " if n == 0:\n", - " ax.legend(fontsize=\"small\", loc=\"upper left\")\n", - "\n", - " ax.set_ylabel(r\"$-\\Delta \\log \\mathcal{Z}$\")\n", - " ax.set_xlabel(r\"$R_{\\rm offset} ~ [\\mathrm{Mpc} / h]$\")\n", - " ax.set_xlim(0)\n", - "\n", - " fig.tight_layout()\n", - " fname = f\"../../plots/void_goodness_of_fit_observer.png\"\n", - " if no_Vext:\n", - " fname = fname.replace(\".png\", \"_no_Vext.png\")\n", - " print(f\"Saving to `{fname}`.\")\n", - " fig.savefig(fname, dpi=450)\n", - " fig.show()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2. Single parameter radial dependence" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "zcmb_max = 0.05\n", - "key = \"beta\"\n", - "# key_label = r\"$\\sigma_v ~ [\\mathrm{km} / \\mathrm{s}]$\"\n", - "# key_label = r\"$|\\mathbf{V}_{\\rm ext}| ~ [\\mathrm{km} / \\mathrm{s}]$\"\n", - "key_label = r\"$\\beta$\"\n", - "no_Vext = True\n", - "\n", - "sims = [\"IndranilVoid_exp\", \"IndranilVoid_gauss\", \"IndranilVoid_mb\"]\n", - "cats = [\"2MTF\", \"SFI_gals\", \"CF4_TFR_i\", \"CF4_TFR_w1\"]\n", - "\n", - "data_mean = {}\n", - "data_std = {}\n", - "kfound = {}\n", - "for sim in sims:\n", - " for cat in cats:\n", - " kfound[f\"{sim}_{cat}\"] = []\n", - " for ksim in range(500):\n", - " sample_alpha = False\n", - " fname = paths.flow_validation(\n", - " fdir, sim, cat, inference_method=\"mike\", nsim=ksim,\n", - " sample_alpha=sample_alpha, zcmb_max=zcmb_max,\n", - " sample_beta=True,\n", - " no_Vext=no_Vext, verbose_print=False)\n", - "\n", - " if not exists(fname):\n", - " continue\n", - "\n", - " kfound[f\"{sim}_{cat}\"].append(ksim)\n", - " with File(fname, 'r') as f:\n", - " x = f[f\"samples/{key}\"][...]\n", - " if key == \"Vext\":\n", - " x = np.linalg.norm(x, axis=-1)\n", - "\n", - " data_mean[f\"{sim}_{cat}_{ksim}\"] = x.mean()\n", - " data_std[f\"{sim}_{cat}_{ksim}\"] = x.std()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "with plt.style.context('science'):\n", - " plt.rcParams.update({'font.size': 9})\n", - "\n", - " figwidth = 8.3\n", - " fig, axs = plt.subplots(2, 2, figsize=(figwidth, 0.65 * figwidth))\n", - "\n", - " for n, cat in enumerate(cats):\n", - " i, j = n // 2, n % 2\n", - " ax = axs[i, j]\n", - "\n", - " for sim in sims:\n", - " x = kfound[f\"{sim}_{cat}\"]\n", - " y = [data_mean[f\"{sim}_{cat}_{ksim}\"] for ksim in x]\n", - " yerr = [data_std[f\"{sim}_{cat}_{ksim}\"] for ksim in x]\n", - " x = np.array(x) * 0.674\n", - "\n", - " ax.plot(x, y, label=simname_to_pretty(sim))\n", - " ax.fill_between(x, np.array(y) - np.array(yerr), np.array(y) + np.array(yerr), alpha=0.5)\n", - "\n", - " ax.text(0.5, 0.9, catalogue_to_pretty(cat),\n", - " transform=ax.transAxes, #fontsize=\"small\",\n", - " verticalalignment='center', horizontalalignment='center',\n", - " bbox=dict(facecolor='white', alpha=0.5),\n", - " )\n", - "\n", - " if n == 0:\n", - " ax.legend(fontsize=\"small\", loc='upper right')\n", - "\n", - " ax.set_ylabel(key_label)\n", - " ax.set_xlabel(r\"$R_{\\rm offset} ~ [\\mathrm{Mpc} / h]$\")\n", - " ax.set_xlim(0),\n", - "\n", - " fig.tight_layout()\n", - " fname = f\"../../plots/void_{key}_per_observer.png\"\n", - " if no_Vext:\n", - " fname = fname.replace(\".png\", \"_no_Vext.png\")\n", - " print(f\"Saving to `{fname}`.\")\n", - " fig.savefig(fname, dpi=450)\n", - " fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/scripts/flow/flow_validation.py b/scripts/flow/flow_validation.py index b45bf8f..83d8669 100644 --- a/scripts/flow/flow_validation.py +++ b/scripts/flow/flow_validation.py @@ -88,7 +88,7 @@ def print_variables(names, variables): def get_models(ksim, get_model_kwargs, mag_selection, void_kwargs, - verbose=True): + wo_num_dist_marginalisation, verbose=True): """Load the data and create the NumPyro models.""" paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring) folder = "/mnt/extraspace/rstiskalek/catalogs/" @@ -120,6 +120,8 @@ def get_models(ksim, get_model_kwargs, mag_selection, void_kwargs, fpath = join(folder, "PV/CF4/CF4_TF-distances.hdf5") elif cat in ["CF4_GroupAll"]: fpath = join(folder, "PV/CF4/CF4_GroupAll.hdf5") + elif "IndranilVoidTFRMock" in cat: + fpath = None else: raise ValueError(f"Unsupported catalogue: `{ARGS.catalogue}`.") @@ -128,20 +130,13 @@ def get_models(ksim, get_model_kwargs, mag_selection, void_kwargs, ksmooth=ARGS.ksmooth) models[i] = csiborgtools.flow.get_model( loader, mag_selection=mag_selection[i], void_kwargs=void_kwargs, + wo_num_dist_marginalisation=wo_num_dist_marginalisation, **get_model_kwargs) fprint(f"num. radial steps is {len(loader.rdist)}") return models -def select_void_h(kind): - hs = {"mb": 0.7615, "gauss": 0.7724, "exp": 0.7725} - try: - return hs[kind] - except KeyError: - raise ValueError(f"Unknown void kind: `{kind}`.") - - def get_harmonic_evidence(samples, log_posterior, nchains_harmonic, epoch_num): """Compute evidence using the `harmonic` package.""" data, names = csiborgtools.dict_samples_to_array(samples) @@ -243,7 +238,7 @@ def get_distmod_hyperparams(catalogue, sample_alpha, sample_mag_dipole): "alpha_min": alpha_min, "alpha_max": alpha_max, "sample_alpha": sample_alpha } - elif catalogue in ["SFI_gals", "2MTF"] or "CF4_TFR" in catalogue: + elif catalogue in ["SFI_gals", "2MTF"] or "CF4_TFR" in catalogue or "IndranilVoidTFRMock" in catalogue: # noqa return {"e_mu_min": 0.001, "e_mu_max": 1.0, "a_mean": -21., "a_std": 5.0, "b_mean": -5.95, "b_std": 4.0, @@ -299,7 +294,7 @@ if __name__ == "__main__": ########################################################################### # `None` means default behaviour - nsteps = 10_000 + nsteps = 2_000 nburn = 2_000 zcmb_min = None zcmb_max = 0.05 @@ -313,8 +308,9 @@ if __name__ == "__main__": sample_Vmag_vax = False sample_Vmono = False sample_mag_dipole = False + wo_num_dist_marginalisation = False absolute_calibration = None - calculate_harmonic = False if inference_method == "bayes" else True + calculate_harmonic = (False if inference_method == "bayes" else True) and (not wo_num_dist_marginalisation) # noqa sample_h = True if absolute_calibration is not None else False fname_kwargs = {"inference_method": inference_method, @@ -341,6 +337,7 @@ if __name__ == "__main__": "num_epochs": num_epochs, "inference_method": inference_method, "sample_mag_dipole": sample_mag_dipole, + "wo_dist_marg": wo_num_dist_marginalisation, "absolute_calibration": absolute_calibration, "sample_h": sample_h, } @@ -358,7 +355,7 @@ if __name__ == "__main__": "`IndranilVoid` does not have multiple realisations.") profile = ARGS.simname.split("_")[-1] - h = select_void_h(profile) + h = csiborgtools.flow.select_void_h(profile) rdist = np.arange(0, 165, 0.5) void_kwargs = {"profile": profile, "h": h, "order": 1, "rdist": rdist} else: @@ -377,7 +374,7 @@ if __name__ == "__main__": calibration_hyperparams = {"Vext_min": -3000, "Vext_max": 3000, "Vmono_min": -1000, "Vmono_max": 1000, "beta_min": -10.0, "beta_max": 10.0, - "sigma_v_min": 1.0, "sigma_v_max": 5000 if "IndranilVoid_" in ARGS.simname else 750., # noqa + "sigma_v_min": 1.0, "sigma_v_max": 1000 if "IndranilVoid_" in ARGS.simname else 750., # noqa "h_min": 0.01, "h_max": 5.0, "no_Vext": False if no_Vext is None else no_Vext, # noqa "sample_Vmag_vax": sample_Vmag_vax, @@ -420,7 +417,8 @@ if __name__ == "__main__": print(f"{'Current simulation:':<20} {i + 1} ({ksim}) out of {len(ksim_iterator)}.") # noqa fname_kwargs["nsim"] = ksim - models = get_models(ksim, get_model_kwargs, mag_selection, void_kwargs) + models = get_models(ksim, get_model_kwargs, mag_selection, void_kwargs, + wo_num_dist_marginalisation) model_kwargs = { "models": models, "field_calibration_hyperparams": calibration_hyperparams, diff --git a/setup.py b/setup.py index eb7649a..734cc04 100644 --- a/setup.py +++ b/setup.py @@ -11,6 +11,7 @@ INSTALL_REQ += [ "mpi4py", "numba", "numpyro", + "interpax" "quadax", "scikit-learn", "tqdm",