Following is demo output from CK_CONVOL.
IDL> .run ck_convol % Compiled module: CK_CONVOL. % Compiled module: $MAIN$. ------------------------------- CK_CONVOL Demonstration Program ------------------------------- This demo includes tiny (8x8) sample images, which will be printed to the terminal and displayed zoomed in a new window. You may wish to expand the terminal window to make room. Press any key to continue. Original image, with 'missing' data marked as NaN: 1.66364 1.28154 1.43535 1.65864 1.29837 1.76529 1.50847 1.19429 1.60358 1.63547 1.38901 1.52299 1.04527 1.73370 1.18833 1.35202 1.41884 1.24696 1.59630 1.70842 1.75307 1.59024 1.44358 1.28038 1.67598 1.12734 1.57417 NaN NaN NaN 1.53444 1.71569 1.33285 1.27206 1.17880 NaN NaN NaN 1.08182 1.05131 1.85714 1.32051 1.89292 NaN NaN NaN 1.71339 1.37232 1.34177 1.60459 1.52255 1.37083 1.40015 1.34234 1.46041 1.21966 1.56036 1.13338 1.73826 1.67039 1.84035 1.36557 1.89714 1.37919 % LOADCT: Loading table Gray, 0=RED=[missing data] Original image is displayed, 'missing' data in red. A linear color bar is provided for reference. Press any key to continue. Next we will see what happens when we convolve the image with the following smoothing kernel: 0.0625000 0.125000 0.0625000 0.125000 0.250000 0.125000 0.0625000 0.125000 0.0625000 Press any key to continue. What CONVOL does -- implemented here using CK_CONVOL(...METHOD = 'IDL'): 1.57897 1.45311 1.46057 1.47708 1.46308 1.54458 1.46200 1.28240 1.54177 1.48114 1.48949 1.48611 1.46999 1.50728 1.41619 1.30405 1.47553 1.42416 1.40676 1.28668 1.18480 1.24936 1.36016 1.40596 1.44279 1.34841 1.14556 0.693335 0.425300 0.657989 1.15887 1.43022 1.47428 1.37547 1.04009 0.364043 NaN 0.338217 1.00085 1.31146 1.54277 1.49447 1.24143 0.664312 0.344591 0.628365 1.14350 1.31349 1.49789 1.50647 1.46423 1.25881 1.10897 1.20453 1.39399 1.38149 1.44208 1.42310 1.55384 1.65141 1.60397 1.55945 1.56875 1.45147 In effect, CONVOL treats the missing data as if they were just zeroes. Signal diffuses into the region of missing data The missing data is thus permitted to bias the surrounding pixels. This behavior is potentially harmful. Following are three alternative strategies offered by CK_CONVOL. Press any key to continue. METHOD = 'redeem_taint' (interpolate bad pixels from good pixels): 1.57897 1.45311 1.46057 1.47708 1.46308 1.54458 1.46200 1.28240 1.54177 1.48114 1.48949 1.48611 1.46999 1.50728 1.41619 1.30405 1.47553 1.42416 1.50054 1.58360 1.57974 1.53767 1.45083 1.40596 1.44279 1.34841 1.40992 1.58476 1.70120 1.50397 1.42630 1.43022 1.47428 1.37547 1.38678 1.45617 NaN 1.35287 1.33446 1.31146 1.54277 1.49447 1.52791 1.51843 1.37836 1.43626 1.40738 1.31349 1.49789 1.50647 1.56185 1.54931 1.47863 1.48250 1.48692 1.38149 1.44208 1.42310 1.55384 1.65141 1.60397 1.55945 1.56875 1.45147 Press any key to continue. METHOD = 'conserve_taint' (once a bad pixel, always a bad pixel): 1.57897 1.45311 1.46057 1.47708 1.46308 1.54458 1.46200 1.28240 1.54177 1.48114 1.48949 1.48611 1.46999 1.50728 1.41619 1.30405 1.47553 1.42416 1.50054 1.58360 1.57974 1.53767 1.45083 1.40596 1.44279 1.34841 1.40992 NaN NaN NaN 1.42630 1.43022 1.47428 1.37547 1.38678 NaN NaN NaN 1.33446 1.31146 1.54277 1.49447 1.52791 NaN NaN NaN 1.40738 1.31349 1.49789 1.50647 1.56185 1.54931 1.47863 1.48250 1.48692 1.38149 1.44208 1.42310 1.55384 1.65141 1.60397 1.55945 1.56875 1.45147 Press any key to continue. METHOD = 'spread_taint' (guilt by association): 1.57897 1.45311 1.46057 1.47708 1.46308 1.54458 1.46200 1.28240 1.54177 1.48114 1.48949 1.48611 1.46999 1.50728 1.41619 1.30405 1.47553 1.42416 NaN NaN NaN NaN NaN 1.40596 1.44279 1.34841 NaN NaN NaN NaN NaN 1.43022 1.47428 1.37547 NaN NaN NaN NaN NaN 1.31146 1.54277 1.49447 NaN NaN NaN NaN NaN 1.31349 1.49789 1.50647 NaN NaN NaN NaN NaN 1.38149 1.44208 1.42310 1.55384 1.65141 1.60397 1.55945 1.56875 1.45147