Build: #2 failed
Job: ManyLinux 2.28 failed
Code commits
Casa6
-
Josh Marvil ccc8e22d56c064d76daaca8e6126a842b5c40d48
CAS-14874: Derive briggsbwtaper fracBW from the full selection, not the sub-cube image
The briggsbwtaper uv-taper amplitude is set from the fractional bandwidth
of the entire cube (CAS-13021), but SynthesisImagerVi2::weight() derived it
from the spectral extent of the image defined in this process whenever
fracbw was left at its default (-1.0 -> 0.0, i.e. "auto").
For cube imaging parallelized across frequency (MPI sub-cubes, or
chanchunks) that image is only a sub-range of the cube, so each process
derived fracBW ~= fracBW_cube/nprocs, with the exact value also changing
when nchan was not divisible by the number of processes. The taper, and
with it the gridded weights, PSF and flux scale, therefore differed from
sub-cube to sub-cube, which showed up as frequency discontinuities at the
sub-cube boundaries of the concatenated cube that varied with the number of
MPI processes.
Use the frequency range of the data selection as the reference band
instead. It is identical on every process that grids a sub-cube, because
the sub-cube selections are restored to the full selection so that all
sub-cubes share one weight density (imager_parallel_cube), so all processes
now derive the same fracBW as a serial run of the same cube, independent of
how the cube was partitioned. The selection range is also expressed on the
first/last selected channel centers in the selection frame, i.e. the same
convention and the same frame that the image based calculation used, so
serial results are unchanged.
The image based calculation is kept as a fallback for cases where no usable
frequency selection was recorded, and an explicitly provided fracbw is
still used as-is. No interface change; this is internal to
SynthesisImagerVi2.