Demonstration of CK_CONVOL

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