Repository navigation
cosmo_val: render diagnostics from cached computation products - #430
Open
cailmdaley wants to merge 18 commits into
Open
cailmdaley wants to merge 18 commits into
cailmdaley wants to merge 18 commits into
Conversation
This was referenced Oct 26, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cailmdaley
force-pushed
the
feat/cosmo-val-plot-split
branch
from
October 28, 2026 18:59
b7d5405 to
e480521
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every cosmo_val figure can now be redrawn from cached products without rerunning a transform, PSF fit or catalogue measurement.
cosmo_val_allstill requests the complete analysis; the newcosmo_val_plotsaggregate requests all figures and their required caches.Plotting modules are explicit inputs, so editing their style invalidates figures rather than computations.
Closes #429.
Cached products and plot rules
cv_plot_pure_eb: four figurescv_plot_cosebis: three figurescv_plot_rho_tau_fits;cv_ratio_xi_sys_xialso reads sealed reporting ξcv_plot_footprints(NGC, SGC, fullsky),cv_plot_weights,cv_plot_objectwise_leakagecv_plot_rho_stats,cv_plot_tau_stats,cv_plot_2pcf,cv_plot_pseudo_cl.dat, with its own plotting disabledcovariance_plot: correlation PDFFigures are declared outputs, replacing plot sentinels, and renderers overwrite existing figures.
The objectwise computation now calls the spin-2 regression directly instead of the exploratory driver that also emitted undeclared plots.
Presentation fixes retain signed PSF/pseudo-Cℓ signals, include uncertainties in pure-E/B limits, align COSEBIs heatmaps with the actual integration bins, and improve labels/layout.
Blinding contract
Pure-E/B and COSEBIs caches derive only from the already-sealed integration SACC; no unsealed ξ vector is added for plotting.
Their NPZs carry the inherited
blindstamp, includingnonefor public products, using the samesacc_io.derived_stampcheck as derived SACC writers.NPZ loaders fail closed on missing stamps and use
sacc_io.expectto reject mismatches before reading signal arrays.Plot rules and the B-mode summary pass the expected catalogue blind.
Old unstamped caches require a compute pass from the sealed products; manually stamping them is not a supported migration.
Plot-only command
Use the full run's config and output roots, on an allocation with the host's container/bind settings:
plot_rules=(cosmo_val_plots cv_plot_rho_stats cv_plot_tau_stats \ cv_plot_rho_tau_fits cv_plot_footprints cv_plot_objectwise_leakage \ cv_plot_weights cv_plot_2pcf cv_ratio_xi_sys_xi cv_plot_pure_eb \ cv_plot_cosebis cv_plot_pseudo_cl covariance_plot) snakemake --profile workflow/profiles/default -s workflow/Snakefile \ --configfile /path/to/run.yaml --cores 4 --forceall \ --allowed-rules "${plot_rules[@]}" -- cosmo_val_plotsThe restricted rule list prevents computations, and the aggregate requires every cache even when all figures already exist.
A missing cache therefore stops the command.
Ordinary incremental restyling can use
cosmo_val_plotswithout forcing; don't use unrestricted--forceall.The pseudo-Cℓ include flag is respected.
Validation
def-sfabbro, 4 CPUs, 16 GiB, 1 hour requested; completed with exit code 0.test_plotfix_cell.py,test_plotfix_layout.py,test_plotfix_psf.pyand Decode FITS logical columns to booleans before writing HDF5 catalogues #423'stest_catalog_logical_roundtrip.py./project/6001537/cdaley/containers/sp_validation-ddd58fe0.sifwith this checkout'ssrc/first onPYTHONPATH; host Snakemake 9.23.1 supplied the workflow dry-runs.Log:
/scratch/cdaley/cosmo-val-v2/plotsplit-review-25027245.log.uvx ruff checkanduvx ruff format --check: all 29 changed/new, non-deleted Python files pass.git diff --checkpasses.The workflow regressions exercise pseudo-Cℓ enabled/disabled, exclude compute jobs from the forced plot-only DAG, and remove every required cache with all figures already present to verify refusal.
Synthetic renderer tests forbid catalogue reads; provenance tests cover public and named-blind consumers.
The branch is rebased onto
developat158c6d30, retaining #423's logical-column decoding and #424's default mask unchanged.Not verified in this landing pass: no real-catalogue cosmo_val run, production write, production-scale timing measurement, or full-survey numerical comparison.
The public figures below illustrate the outputs; they aren't a new production validation run.
Example figures from the public blinded v2 dashboard
Source: production dashboard.
All four image URLs were checked with
curl -Iand returned HTTP 200.Pure E/B and ambiguous ξ components
COSEBIs mode amplitudes
Galaxy–PSF/residual τ correlations
NGC footprint counts
🤖 Generated with Claude Code