sp_validation.cosmo_val¶
Cosmology validation package.
CosmologyValidation is the public entry point. cs_plots is re-exported
so the cosmo_val.cs_plots attribute path (the cs_util plotting alias used at
each call site) keeps resolving for callers that import the package as a module
handle.
- class CosmologyValidation(versions, catalog_config='./cat_config.yaml', output_dir=None, rho_tau_method='lsq', cov_estimate_method='th', compute_cov_rho=True, n_cov=100, n_sim_cov=300, theta_min=0.1, theta_max=250, nbins=20, var_method='jackknife', npatch=20, quantile=0.1587, theta_min_plot=0.08, theta_max_plot=250, ylim_alpha=[-0.005, 0.05], ylim_xi_sys_ratio=[-0.02, 0.5], nside=1024, nside_mask=8192, binning='powspace', power=0.5, n_ell_bins=32, ell_step=10, pol_factor=-1, cell_method='map', noise_bias_method='analytic', fiducial_input_inka='coupled', nrandom_cell=10, cell_seed=8192, path_onecovariance=None, cosmo_params=None, compute_tomography=False, force_run=False)[source]¶
Bases:
CosebisMixin,PureEBMixin,RealSpaceMixin,PSFSystematicsMixin,CatalogCharacterizationMixin,PseudoClMixinFramework for cosmic shear validation and systematics analysis.
Handles two-point correlation function measurements, PSF systematics (rho/tau), pseudo-C_ell analysis, and covariance estimation for weak lensing surveys. Supports multiple catalog versions with automatic leakage-corrected variants.
- Parameters:
versions (list of str) – Catalog version identifiers to analyze. Appending ‘_leak_corr’ to a base version creates a virtual catalog using leakage-corrected ellipticity columns (e1_col_corrected/e2_col_corrected) from the base version configuration.
catalog_config (str, default './cat_config.yaml') – Path to catalog configuration YAML defining survey metadata, file paths, and analysis settings for each version.
output_dir (str, optional) – Output directory. If None, the catalog config’s paths.output.
rho_tau_method ({'lsq', 'mcmc'}, default 'lsq') – Fitting method for PSF leakage systematics parameters.
cov_estimate_method ({'th', 'jk', 'sim'}, default 'th') – Covariance estimation: ‘th’ for semi-analytic theory, ‘jk’ for jackknife, ‘sim’ for a covariance measured on simulations.
n_sim_cov (int, default 300) – Number of simulations the ‘sim’ rho/tau covariance was measured on. The covariance file does not record it; it sets the Hartlap debiasing of the inverse covariance in the PSF-leakage fits.
compute_cov_rho (bool, default True) – Whether to compute covariance for rho statistics during PSF analysis.
n_cov (int, default 100) – Number of realizations for covariance estimation when using theory method.
theta_min (float, default 0.1) – Minimum angular separation in arcminutes for correlation function binning.
theta_max (float, default 250) – Maximum angular separation in arcminutes for correlation function binning.
nbins (int, default 20) – Number of angular bins for TreeCorr real-space correlation functions.
var_method ({'jackknife', 'sample', 'bootstrap', 'marked_bootstrap'}, default 'jackknife') – TreeCorr variance estimation method.
npatch (int, default 20) – Number of spatial patches for jackknife variance estimation.
quantile (float, default 0.1587) – Quantile for uncertainty bands in plots (default: 1-sigma ≈ 0.159).
theta_min_plot (float, default 0.08) – Minimum angular scale for plotting (may differ from analysis cut).
theta_max_plot (float, default 250) – Maximum angular scale for plotting.
ylim_alpha (list of float, default [-0.005, 0.05]) – Y-axis limits for alpha systematic parameter plots.
ylim_xi_sys_ratio (list of float, default [-0.02, 0.5]) – Y-axis limits for xi systematics ratio plots.
nside (int, default 1024) – HEALPix resolution for pseudo-C_ell analysis and area computation.
binning ({'powspace', 'linspace', 'logspace'}, default 'powspace') – Ell binning scheme for pseudo-C_ell (powspace = ell^power spacing).
power (float, default 0.5) – Exponent for power-law binning when binning=’powspace’.
n_ell_bins (int, default 32) – Number of ell bins for pseudo-C_ell analysis (used with binning=’powspace’).
ell_step (int, default 10) – Bin width in ell for linear binning (used with binning=’linear’).
pol_factor (int, default -1) – Apply polarization correction factor in pseudo-C_ell calculations.
nrandom_cell (int, default 10) – Number of random realizations for C_ell error estimation.
cell_seed (int, default 8192) – Seed for the random-rotation noise realizations in the pseudo-C_ell noise debiasing, making those realizations reproducible run-to-run.
cosmo_params (dict, optional) – Cosmological parameters to pass to get_cosmo(). If None, uses Planck 2018.
compute_tomography (bool, default False) – Whether to compute tomographic correlation functions and pseudo-C_ell.
force_run (bool, default False) – If True, forces re-computation of results even if cached outputs exist.
- catalog_config_path¶
Resolved path to the catalog configuration file.
- Type:
Path
- cosmo¶
Cosmology object for theory predictions.
- Type:
pyccl.Cosmology
Notes
Path resolution: Relative paths in catalog config are resolved using each version’s ‘subdir’ field as the base directory.
Virtual _leak_corr versions: These create deep copies of the base version config, swapping e1_col/e2_col with e1_col_corrected/e2_col_corrected.
TreeCorr cross_patch_weight: Automatically set to ‘match’ for jackknife, ‘simple’ otherwise, following TreeCorr best practices.
- static _split_seed_variant(version)[source]¶
Return the base version and seed label if version encodes a seed.
- static _materialize_seed_path(base_cfg, seed_label, version, base_version, catalog_config)[source]¶
Render the seed-specific shear path using Python string formatting.
- _output_path(*parts)[source]¶
Absolute path under the catalog config’s output directory.
Joins
*partsontoself.cc["paths"]["output"]and absolutises the result, mirroring theos.path.abspath(f"{output}/...")pattern used throughout the mixins. A singlepartsstring may contain/separators.
- sacc_nz(version)[source]¶
Single-bin
nzmapping{0: (z, nz)}for the SACC writers.The SACC parts carry the (“all”, “all”) pair only, so the whole-survey n(z) of
get_redshift()is bin 0.
- get_redshift(version)[source]¶
Load the whole-survey redshift distribution of a catalog version.
The
redshift_pathfile holds z in column 0 and one n(z) column per tomographic bin (a single column for a non-tomographic version); the whole-survey n(z) is their sum, asread_redshift_distribution(version, is_tomography=False)returns it.- Parameters:
version (str) – Catalog version identifier
- Returns:
z (ndarray) – Redshift values
nz (ndarray) – n(z) probability density
- property results¶
- property results_objectwise¶
- blind(version)[source]¶
The blind every SACC this object writes for
versionis saved under, as the catalogue config declares it.
- _refuse_blinded_tomography(version)[source]¶
Refuse to measure tomographic shear signal on a blinded catalogue.
Only the
("all", "all")pair is born as a SACC part, whose tracer carries the n(z) the blind’s theory shifts it by. The tomographic ξ±, ⟨M_ap²⟩ and pseudo-Cℓ are TreeCorr objects and FITS tables with no per-bin tracer, so on a blinded catalogue they would hold true values.
- _binning(min_sep=None, max_sep=None, nbins=None, **extra)[source]¶
treecorr_config with min_sep/max_sep/nbins overridden.
None falls back to the instance’s treecorr_config value for that key; any further keys in extra override on top.
- _read_shear_cols(ver, *keys)[source]¶
Read shear-catalog columns by their config-key names.
Each key in
*keys(e.g."e1_col","w_col") is resolved to a column name viaself.cc[ver]["shear"][key]and indexed out ofself.results[ver].dat_shear. Must be called inside aself.results[ver].temporarily_read_data()context, since it touchesdat_sheardirectly.Returns one array per key (a bare array, not a 1-tuple, when a single key is requested).
- _calibrated_g(ver)[source]¶
Calibrated shear components
(g1, g2)for a catalog version.Applies additive-bias subtraction and the multiplicative response:
g = (e − c) / R. For DES the response is the catalog-averaged per-componentR11/R22(column names in the config); for every other version it is the scalarRfrom the config.Must be called inside a
self.results[ver].temporarily_read_data()context, since it readsdat_shearcolumns.
- property colors¶
- summarize_bmodes(fiducial_scale_cut=(12, 83), versions=None)[source]¶
Print and return B-mode PTE summary across all statistics.
Collects the PTEs of the non-tomographic
("all", "all")pair from pure E/B, COSEBIs, and pseudo-Cl at the specified fiducial scale cut. Statistics that haven’t been computed show ‘–‘.
- _get_tomo_bins(version)[source]¶
Return the tomo_bin_ids for a given version. If the version does not have tomography, return None.
- Returns:
tomo_bin_ids (list or None) – List of unique tomographic bin IDs for the version, or None if no tomography is available
tomo_bin_pairs (list of tuples or None) – List of unique pairs of tomographic bin IDs (including self-pairs) for the version, or None if no tomography is available
- _get_tomo_bins_for_versions(versions, tomography)[source]¶
Return a dictionary of tomo_bin_ids and tomo_bin_pairs for each version in versions.
- Parameters:
- Returns:
Dictionary with version as key and a dictionary containing ‘ids’ and ‘pairs’ as values. Example: {version1: {‘ids’: tomo_bin_ids1, ‘pairs’: tomo_bin_pairs1}, …}
- Return type:
Submodules¶
- sp_validation.cosmo_val.catalog_characterization
CatalogCharacterizationMixinCatalogCharacterizationMixin.compute_survey_stats()CatalogCharacterizationMixin._area_from_catalog()CatalogCharacterizationMixin._area_from_mask()CatalogCharacterizationMixin.areaCatalogCharacterizationMixin.n_eff_galCatalogCharacterizationMixin.ellipticity_dispersionCatalogCharacterizationMixin._get_binned_catalog_mask()CatalogCharacterizationMixin.calculate_area()CatalogCharacterizationMixin.calculate_area_from_binned_catalog()CatalogCharacterizationMixin.calculate_n_eff_gal()CatalogCharacterizationMixin.calculate_ellipticity_dispersion()CatalogCharacterizationMixin.plot_footprints()CatalogCharacterizationMixin.plot_ellipticity()CatalogCharacterizationMixin.plot_weights()CatalogCharacterizationMixin.plot_separation()CatalogCharacterizationMixin.calculate_additive_bias()CatalogCharacterizationMixin.c1CatalogCharacterizationMixin.c2
- sp_validation.cosmo_val.core
_LeakageScale_LeakageObjectprint_bmode_summary()CosmologyValidationCosmologyValidation.versionsCosmologyValidation.ccCosmologyValidation.catalog_config_pathCosmologyValidation.treecorr_configCosmologyValidation.cosmoCosmologyValidation._split_seed_variant()CosmologyValidation._materialize_seed_path()CosmologyValidation._output_path()CosmologyValidation.sacc_nz()CosmologyValidation.sacc_metadata()CosmologyValidation.get_redshift()CosmologyValidation._write_catalog_config()CosmologyValidation.color_reset()CosmologyValidation._cprint()CosmologyValidation.print_blue()CosmologyValidation.print_start()CosmologyValidation.print_done()CosmologyValidation.print_magenta()CosmologyValidation.print_green()CosmologyValidation.print_cyan()CosmologyValidation.init_results()CosmologyValidation.resultsCosmologyValidation.results_objectwiseCosmologyValidation.blind()CosmologyValidation._refuse_blinded_tomography()CosmologyValidation.basename()CosmologyValidation._binning()CosmologyValidation._read_shear_cols()CosmologyValidation._calibrated_g()CosmologyValidation.colorsCosmologyValidation.summarize_bmodes()CosmologyValidation._get_tomo_bins()CosmologyValidation._get_tomo_bins_for_versions()
- sp_validation.cosmo_val.cosebis
- sp_validation.cosmo_val.pseudo_cl
_apply_pixel_window_to_fiducial_cl()plot_pseudo_cl_spectrum()_spectra()PseudoClMixinPseudoClMixin.pseudo_clsPseudoClMixin.pseudo_cls_onecovPseudoClMixin.calculate_pseudo_cl()PseudoClMixin.calculate_pseudo_cl_map()PseudoClMixin.calculate_pseudo_cl_catalog()PseudoClMixin.calculate_pseudo_cl_inka_cov()PseudoClMixin.calculate_pseudo_cl_onecovariance()PseudoClMixin.calculate_pseudo_cl_g_ng_cov()PseudoClMixin.get_namaster_bin()PseudoClMixin.get_pixels()PseudoClMixin.get_n_gal_map()PseudoClMixin.get_shear_map()PseudoClMixin.get_noise_realisation()PseudoClMixin.get_noise_bias_from_gaussian_real()PseudoClMixin.get_noise_bias_analytical()PseudoClMixin.get_noise_bias()PseudoClMixin.get_pseudo_cls_map()PseudoClMixin.get_pseudo_cls_catalog()PseudoClMixin.read_redshift_distribution()PseudoClMixin.get_fiducial_cl()PseudoClMixin._modify_onecov_config()PseudoClMixin._update_onecov_cosmo_params()PseudoClMixin._load_onecovariance_cov()PseudoClMixin._get_tomographic_bin()PseudoClMixin._output_path_pseudo_cl()PseudoClMixin._output_path_pseudo_cl_cov()PseudoClMixin._output_path_iNKA_block_cov()PseudoClMixin._save_pseudo_cl()PseudoClMixin._load_pseudo_cl()PseudoClMixin.pseudo_cl_to_sacc_part()PseudoClMixin.save_pseudo_cl()PseudoClMixin._save_iNKA_covariance()PseudoClMixin._merge_iNKA_covariance()PseudoClMixin.plot_pseudo_cl()PseudoClMixin._add_grouped_legend()PseudoClMixin.get_pol_color()
- sp_validation.cosmo_val.psf_systematics
PSFSystematicsMixinPSFSystematicsMixin.rho_stat_handlerPSFSystematicsMixin.tau_stat_handlerPSFSystematicsMixin.psf_fitterPSFSystematicsMixin.rho_tau_fitsPSFSystematicsMixin.xi_psf_sysPSFSystematicsMixin.calculate_rho_tau_stats()PSFSystematicsMixin.rho_tau_to_sacc_part()PSFSystematicsMixin.calculate_rho_tau_fits()PSFSystematicsMixin.calculate_scale_dependent_leakage()PSFSystematicsMixin.calculate_objectwise_leakage()PSFSystematicsMixin._objectwise_leakage_bin()PSFSystematicsMixin.calculate_alpha_leakage_summaries()PSFSystematicsMixin._get_galaxy_mask()PSFSystematicsMixin._get_star_mask()PSFSystematicsMixin.set_params_rho_tau()PSFSystematicsMixin.set_params_leakage_scale()PSFSystematicsMixin.set_params_leakage_object()PSFSystematicsMixin.set_psf_parameter_sampling_method()PSFSystematicsMixin.set_psf_parameter_nsamples()PSFSystematicsMixin.set_psf_parameter_nwalkers()PSFSystematicsMixin.get_samples()PSFSystematicsMixin.get_xi_psf_sys_samples()PSFSystematicsMixin._load_alpha_leakage()PSFSystematicsMixin._get_alpha_leakage()PSFSystematicsMixin._alpha_summaries()PSFSystematicsMixin._compute_scale_dependent_xi_psf_sys()PSFSystematicsMixin.plot_rho_stats()PSFSystematicsMixin.plot_tau_stats()PSFSystematicsMixin.plot_rho_tau_fits()PSFSystematicsMixin.plot_scale_dependent_leakage()PSFSystematicsMixin.plot_scale_dependent_alpha()PSFSystematicsMixin.plot_objectwise_leakage()PSFSystematicsMixin._xi_psf_sys_sample_x_y_plot_function()PSFSystematicsMixin._xi_psf_sys_mean_and_std_x_y_plot_function()PSFSystematicsMixin._scale_dependent_xi_psf_sys_x_y_plot_function()PSFSystematicsMixin._get_jittered_theta()PSFSystematicsMixin._get_ax_plus()PSFSystematicsMixin._get_ax_minus()PSFSystematicsMixin._set_ax_visibility_to_false()
- sp_validation.cosmo_val.pure_eb
- sp_validation.cosmo_val.real_space
RealSpaceMixinRealSpaceMixin.calculate_2pcf_version()RealSpaceMixin._shear_columns()RealSpaceMixin._patch_centers()RealSpaceMixin._bin_catalog()RealSpaceMixin.calculate_2pcf()RealSpaceMixin.calculate_aperture_mass_dispersion()RealSpaceMixin.map2RealSpaceMixin.plot_2pcf()RealSpaceMixin.plot_ratio_xi_sys_xi()RealSpaceMixin.plot_2pcf_tomography()RealSpaceMixin._xiplus_ximinus_sample_x_y_plot_function()RealSpaceMixin._mapsq_mxsq_sample_x_y_plot_function()RealSpaceMixin._ratio_xi_sys_xi_x_y_plot_function()
_map2_transform()
- sp_validation.cosmo_val.sacc_writers