W-gridding¶
W-gridding is a wide-field gridding algorithm similar to W-stacking, but instead of assigning every visibility to its nearest w-plane, it extends the concept of uv-gridding to the w-direction and therefore grids each visibility to a small range of w-planes, weighted with a kernel function. The theoretical foundations of the algorithm are described in Ye, Gull, Tan & Nikolic (2021); a technical description of the implementation is given in Arras, Reinecke, Westermann & Enßlin (2020).
W-gridding is enabled by the command-line flag -use-wgridder
,
and its accuracy can be controlled via the parameter -wgridder-accuracy
,
which is set to 1e-4
by default and can be varied in the range from 1e-2
(very coarse, but fast gridding) down to 1e-6
(most accurate gridding
achievable with single-precision floating point). This value specifies
the maximum acceptable rms error of the result when compared to a direct Fourier
transform. The algorithm will select
appropriate parameters (like amount of padding, kernel shape and kernel support)
automatically to reach the requested accuracy in the least amount of time.
Therefore, many parameters accepted by wsclean
’s w-stacking gridder (e.g.
-padding
, -nwlayers*
, -grid-mode
, -kernel-size
and -oversampling
and -parallel-gridding
) will be ignored in that mode.
The algorithm has a very small memory footprint: it only requires storage for a single complex w-plane, a copy of the dirty image and some indexing data structures, which are typically much smaller than the visibility data.
Both gridding and degridding directions are available and support shared-memory
parallelization that can be controlled using the -j
parameter.
The w-gridder is available since WSClean version 2.9, and was further improved in speed in versions 2.10 and 3.0.