code: def stack_smooth(s_orig, size=7, save=False):
      
      from copy import deepcopy
      from pygeotools.lib import filtlib
      print("Copying original DEMStack")
      s = deepcopy(s_orig)
      s.stack_fn = os.path.splitext(s_orig.stack_fn)[0]+'_smooth%ipx.npz' % size
  
      #Loop through each array and smooth
      print("Smoothing all arrays in stack with %i px gaussian filter" % size)
      for i in range(s.ma_stack.shape[0]):
          print('%i of %i' % (i+1, s.ma_stack.shape[0]))
          s.ma_stack[i] = filtlib.gauss_fltr_astropy(s.ma_stack[i], size=size)
  
      if s.stats:
          s.compute_stats()
          if save:
              s.write_stats()
      #Update datestack
      if s.datestack and s.date_list_o.count() > 1:
          s.compute_dt_stats()
          if save:
              s.write_datestack()
      #Update trend 
      if s.trend:
          s.compute_trend()
          if save:
              s.write_trend()
      if save:
          s.savestack()
      return s
docs: Run Gaussian smoothing filter on exising stack object