fix(psf): deterministic star train/validation split; align tile STAR_THRESH with the 80% convention - #873
Open
cailmdaley wants to merge 1 commit into
Open
fix(psf): deterministic star train/validation split; align tile STAR_THRESH with the 80% convention#873cailmdaley wants to merge 1 commit into
cailmdaley wants to merge 1 commit into
Conversation
…THRESH with the 80% convention The 80/20 star split drew from unseeded np.random, so the PSF star sample differed between identical runs; it is now a permutation seeded from the unit's file number (SEED_FROM_POSITION philosophy). The tile PSF-interp configs kept the pre-split STAR_THRESH=20 that fdc8655 raised to 22 in the validation config; align the science path on 22. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jrs8TeTCccRMC45QVGKPeY
cailmdaley
added a commit
that referenced
this pull request
Aug 29, 2026
#873 aligned the tile PSF-interp threshold with the 80/20 split convention in example/cfis, the only place those configs exist on develop. This branch carries a committed fork of that chain under workflow/config/cfis (#848 D2), so the science path the Snakemake run actually reads kept the stale 20 after the cherry-pick. Mirror it. The general hazard: every science-config change landing against example/cfis must be mirrored here until the two chains are unified. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VUNNyG8tw6Mdbvo4SVNrhp
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.
Two small fixes to how the PSF star sample is built, found while auditing the scientific decisions embedded in the pipeline configs.
1. Seed the train/validation split.
SETools._make_rand_splitdrew the 80/20 star split from unseedednp.random, so the star sample entering the PSF model — and everything downstream of it — differed between identical runs. The split is now a permutation seeded from the unit's file number: deterministic per CCD, independent of processing order, same philosophy as ngmix'sSEED_FROM_POSITION. (This changes the realized split once — equivalent to one more random draw, now frozen.)2. STAR_THRESH 20 → 22 in the tile PSF-interp configs. fdc8655 (2020) deliberately raised the per-CCD acceptance threshold to 22 to account for the 80% training split, but only in
config_exp_psfex.ini(the validation pass). The tile configs that feed galaxies kept the stale 20, so the science path admits CCDs under the pre-split standard while validation gates at 22. We think the right fix is to align on 22.Both change outputs slightly (a new frozen split; CCDs with 20–21 accepted stars now excluded, matching validation).
🤖 Generated with Claude Code
https://claude.ai/code/session_01Jrs8TeTCccRMC45QVGKPeY