
basic outline for remove-streaks-remove:

inputs:
  inImage,                 // Input image
  inMask,                  // Input mask (optional)
  inWeight,                // Input weight map (optional)
  inAstrom,                // Input astrometry (optional)
  maskValue,               // Mask value to set (determined from header)
  recoveryRoot,            // Root name for recovery files
  streaks,                 // Streaks table
  warps                    // Warps table (list of overlapping warps)

neb_lock images (inImage, inMask, inWeight)

load astrometry (if supplied)

select streaks touching inImage

create 'recovery images' with 0.0 valued pixels

loop over image components (64 cells for raw images; 1 cell for detrended, warp, and diff images)

  load image, mask, weight

  loop over selected streak

    skip streak if not on component

    determine streak pixels
      (this function will require calls to the (ra,dec) <-> (x,y) transformations)

    copy streak pixel values to corresponding pixels in recovery image

    set streak pixel in input image and weight to 0.0, set mask bit
 
  save image, mask, weight (to temporary file)

  save recovery image, mask weight

replace input image, mask, weight with temporary files

neb_unlock images

---

We propose to supply the APIs for everything except the code to
determine the streak pixels, though we will supply APIs to convert ra,
dec to/from x,y

