2D 3x3 Speckle Filter

This is a 3x3 azimuth/range filter to remove single point targets and interpolate single point gaps surrounded by valid data.

The 2D 3x3 speckle filter performs data filling of "missing speckles" as well as eliminating isolated speckle bins.

The filter examines 3 adjacent range bins from 3 successive rays to assign a value to the center point. For each output point, its 8 neighboring bins in range and time are available to the filter. Only the dBZ, dBT, Velocity, and Width data are candidates for this filtering step. All other parameters are processed using the default 1D speckle filter.

2D 3x3 Speckle Filter Rules
Center Point Action
Assign Threshold Else
Valid Center Point If there are none or only one other valid point in the 3x3. Do Nothing. Pass the center point value as-is.
Thresholded Center Point If there are five or fewer valid neighbors in the 3x3. If there are six or more valid neighbors in the 3x3, average to fill the center point.

The 2D 3x3 filter fills by interpolation and thresholdw isolated noise bins. The following figure shows some examples.

Figure 1. 2D 3x3 Filtering Concept Examples

For all the parameters except velocity, the interpolated value for filling is computed as the arithmetic mean of all available neighbors. The procedure for velocity is similar, except that the 8-bit angles are first converted to Cartesian vectors, then averaged and converted back to polar.

The 2D 3x3 speckle filter can be used with or without the 1D speckle filtering. However, the data is cleaner if both filters are applied.

The 2D 3x3 speckle filter has some interesting properties when combined with other algorithms.