title: Memory efficient Gaussian blur using scipy.ndimage
body: <p>I am trying to Gaussian smooth large GIS datasets (10000 x 10000 arrays).  My current approach is to load the entire array into memory, smooth it, then write it back.  It looks like this:</p>
  
  <pre><code>big_array = band_on_disk.ReadAsArray()
  scipy.ndimage.gaussian_filter(big_array, sigma, output=smoothed_array)
  output_band.WriteArray(smoothed_array)
  </code></pre>
  
  <p>For large rasters I get a <code>MemoryError</code> so I would like to load subblocks of that array, but I am not sure how to handle the Gaussian smooth for areas that affect neighboring subblocks.</p>
  
  <p>Any advice on how to fix the above algorithm so it works on a smaller memory footprint while still correctly smoothing the entire array?</p>