def gauss_fltr(dem, sigma=1):
print("Applying gaussian smoothing filter with sigma %s" % sigma)
#Note, ndimage doesn't properly handle ma - convert to nan
from scipy.ndimage.filters import gaussian_filter
dem_filt_gauss = gaussian_filter(dem.filled(np.nan), sigma)
#Now mask all nans
#dem = np.ma.array(dem_filt_gauss, mask=dem.mask)
out = np.ma.fix_invalid(dem_filt_gauss, copy=False, fill_value=dem.fill_value)
out.set_fill_value(dem.fill_value)
return out
评论列表
文章目录