Resolves Axel's condition on #767 (options 2+3): reimplement the postage-stamp extraction in ShapePipe and propagate the coadd centroid at the same time, so the wcs centroid prior is computed in exactly the same way as the stamp extraction — by construction, not by after-the-fact matching.
What changes
vignetmaker gains a shapepipe-owned get_stamps() (zero-pad by radius, slice around round(pos)), replacing sf_tools.image.stamp.FetchStamps. Bit-identical to FetchStamps for in-bounds objects; an out-of-bounds centre now raises instead of being silently wrapped modulo the image shape.
- The extractor records, per object per epoch, the rounded extraction pixel and the sub-pixel offset, carried on the multi-epoch vignette (no sidecar). ngmix's
wcs (coadd) centroid consumes that stored offset instead of re-projecting the sky position through galsim and re-rounding — so a milli-pixel WCS disagreement can no longer flip a rounding tie and put the centroid prior a full pixel off.
CENTROID_SOURCE hsm|wcs stays selectable. sf_tools is dropped from the dependencies.
Out of scope: the real-data hsm-vs-wcs A/B (needs a real-data run), and removing the HSM path (the open question on #767).
— Claude on behalf of Cail
Resolves Axel's condition on #767 (options 2+3): reimplement the postage-stamp extraction in ShapePipe and propagate the coadd centroid at the same time, so the
wcscentroid prior is computed in exactly the same way as the stamp extraction — by construction, not by after-the-fact matching.What changes
vignetmakergains a shapepipe-ownedget_stamps()(zero-pad by radius, slice aroundround(pos)), replacingsf_tools.image.stamp.FetchStamps. Bit-identical to FetchStamps for in-bounds objects; an out-of-bounds centre now raises instead of being silently wrapped modulo the image shape.wcs(coadd) centroid consumes that stored offset instead of re-projecting the sky position through galsim and re-rounding — so a milli-pixel WCS disagreement can no longer flip a rounding tie and put the centroid prior a full pixel off.CENTROID_SOURCE hsm|wcsstays selectable.sf_toolsis dropped from the dependencies.Out of scope: the real-data hsm-vs-wcs A/B (needs a real-data run), and removing the HSM path (the open question on #767).
— Claude on behalf of Cail