Currently, as far as I know, if you want to degrid a multi-coherency image or grid to one, the only way is to run wgridder once per coherency.
However, that's wasteful. It's the same convolutional operation applied to each coherency, so all those extra kernel evaluations are redundant. I imagine there are other overheads that would also be saved by adding a coherency dimension. The best place for this dimension would be the most memory-contiguous, so in C ordering dirty would be [num_l, num_m, num_coh], and visibilities would be [num_row, num_chan, num_coh].
Currently, as far as I know, if you want to degrid a multi-coherency image or grid to one, the only way is to run wgridder once per coherency.
However, that's wasteful. It's the same convolutional operation applied to each coherency, so all those extra kernel evaluations are redundant. I imagine there are other overheads that would also be saved by adding a coherency dimension. The best place for this dimension would be the most memory-contiguous, so in C ordering
dirtywould be[num_l, num_m, num_coh], andvisibilitieswould be[num_row, num_chan, num_coh].