code: def gauss_fltr_opencv(dem, size=3, sigma=1):
      
      import cv2
      dem = malib.checkma(dem)
      dem_cv = cv2.GaussianBlur(dem.filled(np.nan), (size, size), sigma)
      out = np.ma.fix_invalid(dem_cv)
      out.set_fill_value(dem.fill_value)
      return out
docs: OpenCV Gaussian filter
      Still propagates NaN values