Since CosmoStat/shapepipe#847, ShapePipe generates no masks. Tile detection runs with no flag image, so IMAFLAGS_ISO — which was the rasterized star/galaxy/external mask OR'd over each object's isophote — no longer exists in the shear catalogue. Its replacement is one boolean column per UNIONS mask bit, MASK_{bit}_{Label} (MASK_1_Faint_star_halos … MASK_2048_z2), queried from the sky-fixed healsparse maps at each object's position (True = masked; bit table in #847). The bit/label pairs are the ones sp_validation's ApplyHspMasks already writes into v1 data_ext (4_Stars, …). The wiring lands in CosmoStat/shapepipe#886, and the columns reach final_cat_<campaign>.hdf5 via CosmoStat/shapepipe#879.
sp_validation still cuts on IMAFLAGS_ISO == 0 (galaxy.py classification_galaxy_base, scripts/calibration/extract_info.py, scripts/masking.py, params.py column lists). Against a v2 catalogue that raises a missing-column error.
Proposed: define the galaxy-sample mask as an explicit set of bits and cut on their OR, with the bit list in config rather than code. The set {1, 2, 4, 8, 64, 1024} reproduces the v1 r-band mask on the covered P3 area: faint- and bright-star halos (1, 2), star bodies (4), manual masks (8), the r-band reason bit (64) and MaxiMask (1024). Do not OR every mask column: 16/32/128/256 are per-band (u g i HSC-z) coverage flags, and 2048 is set wherever Pan-STARRS z2 is absent, so a blanket OR masks the whole footprint.
Related: #879 also moves the star catalogue to full_starcat_<campaign>.hdf5 (exposures/<exp> datasets), so the fits.getdata readers in extract_info.py and compute_leakage_harmony.py need an hdf5 path. Both fit naturally with #340.
— Claude (Fable) on behalf of Cail
Since CosmoStat/shapepipe#847, ShapePipe generates no masks. Tile detection runs with no flag image, so
IMAFLAGS_ISO— which was the rasterized star/galaxy/external mask OR'd over each object's isophote — no longer exists in the shear catalogue. Its replacement is one boolean column per UNIONS mask bit,MASK_{bit}_{Label}(MASK_1_Faint_star_halos…MASK_2048_z2), queried from the sky-fixed healsparse maps at each object's position (True = masked; bit table in #847). The bit/label pairs are the ones sp_validation'sApplyHspMasksalready writes into v1data_ext(4_Stars, …). The wiring lands in CosmoStat/shapepipe#886, and the columns reachfinal_cat_<campaign>.hdf5via CosmoStat/shapepipe#879.sp_validation still cuts on
IMAFLAGS_ISO == 0(galaxy.pyclassification_galaxy_base,scripts/calibration/extract_info.py,scripts/masking.py,params.pycolumn lists). Against a v2 catalogue that raises a missing-column error.Proposed: define the galaxy-sample mask as an explicit set of bits and cut on their OR, with the bit list in config rather than code. The set {1, 2, 4, 8, 64, 1024} reproduces the v1 r-band mask on the covered P3 area: faint- and bright-star halos (1, 2), star bodies (4), manual masks (8), the r-band reason bit (64) and MaxiMask (1024). Do not OR every mask column: 16/32/128/256 are per-band (u g i HSC-z) coverage flags, and 2048 is set wherever Pan-STARRS z2 is absent, so a blanket OR masks the whole footprint.
Related: #879 also moves the star catalogue to
full_starcat_<campaign>.hdf5(exposures/<exp>datasets), so thefits.getdatareaders inextract_info.pyandcompute_leakage_harmony.pyneed an hdf5 path. Both fit naturally with #340.— Claude (Fable) on behalf of Cail