The PHerc1203 physical-truth labels are [2016, 3456, 3456] on the lo volume's L1 grid, which is [9489, 3422, 3422] (from 20250820131727-9.362um-1.2m-113keV-masked.zarr, L0 [18977, 6844, 6844] at 9.362 µm).
3456 is ceil(3422 / 128) * 128 = 27 × 128, so the label array is chunk-padded 34 voxels past the volume it describes, in both x and y. In z it spans L1 3936..5952, well inside.
The store is sparse, so the padding reads as fill_value and can't be mistaken for material — no correctness problem. But read naively it looks like "no material" across the last 1% of every row and column, which is at the sheet edges, where an unexplained deficit is fairly believable and easy to chase for a while.
The transform I ended up with, in case it's worth putting in the README:
label(z, y, x) = (L0_z/2 - 3936, L0_y/2, L0_x/2)
valid only where y and x are below 3422.
The PHerc1203 physical-truth labels are
[2016, 3456, 3456]on the lo volume's L1 grid, which is[9489, 3422, 3422](from20250820131727-9.362um-1.2m-113keV-masked.zarr, L0[18977, 6844, 6844]at 9.362 µm).3456 is
ceil(3422 / 128) * 128= 27 × 128, so the label array is chunk-padded 34 voxels past the volume it describes, in both x and y. In z it spans L1 3936..5952, well inside.The store is sparse, so the padding reads as
fill_valueand can't be mistaken for material — no correctness problem. But read naively it looks like "no material" across the last 1% of every row and column, which is at the sheet edges, where an unexplained deficit is fairly believable and easy to chase for a while.The transform I ended up with, in case it's worth putting in the README:
valid only where y and x are below 3422.