There are several ways to handle NoData nodes in a neighborhood in filtering. (If all nodes in a neighborhood contain the NoData value, the output node is also assigned NoData.) NoData nodes must be exactly equal to the NoData value.
Expand the NoData regions. If the neighborhood of an output grid node contains a NoData node in the input grid, then the output node is assigned the NoData value. Like assigning NoData on the edge, this approach leads to NoData areas that grow with every application of the filter.
Leave the NoData regions. This is the default setting. Every output grid node is assigned the NoData value for which the corresponding input grid node is NoData. When the corresponding input grid node contains a value, but a neighboring grid node contains NoData, modify the filter to ignore the NoData node; essentially, remove the NoData node from the neighborhood. For example, if the filter called for computing the median value in the neighborhood, the NoData values would not be considered when determining the median. This keeps the NoData areas constant, but can cause internal artifacts for some filter types.
Ignore the NoData nodes by filtering across them. The NoData nodes are removed from the neighborhood. For example, if the filter called for computing the median value in the neighborhood, the NoData values would not be considered when determining the median. This option is similar to Leave, however, this option does not assign NoData to the output grid nodes corresponding to NoData input grid nodes. This is essentially a simultaneous filtering and interpolation. Every application of the filter would see a shrinking of the NoData regions, since the only NoData output grid nodes are those with neighborhoods of only NoData values.
Fill NoData grid nodes with a user-specified constant prior to filtering. When using this option, enter the Fill value into the Value field.