<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"></div><div dir="ltr"><br></div><blockquote type="cite"><div dir="ltr"><span>It's better to use a sensible smoothing method in the first place. I </span><br><span>suppose noone has given this over much thought as in the past you were </span><br><span>ever so happy about every bit of resolution you could get. But in a time </span><br><span>where we get very high resolution LIDAR data, the need to downsample </span><br><span>properly is arising. Look at the interpolation methods: gdalwarp lists </span><br><span>twelve different ones. The first few are for upsampling, and the </span><br><span>remainder mostly for dealing with noisy data. Upsampling is well </span><br><span>covered: cubicspline and lanczos are reasonably sophisticated upsampling </span><br><span>filters, but there is no good downsampling filter. I think this is an </span><br><span>omission, hence my post. The problem is real; downsampling with </span><br><span>'average' produces artifacts, even from previously upsampled data.</span><br></div></blockquote><br><div>There’s a wide array of smoothing options available If you’re willing to work in python. Based on <a href="https://gis.stackexchange.com/a/10467">https://gis.stackexchange.com/a/10467</a>, the basic idea is to load the raster into a numpy array and then convolve it with either a kernel of arbitrary size. </div><div><br></div><div>I’ve written a program implementing that idea with both a Gaussian and a mean kernel here:</div><div><a href="https://github.com/jacobdadams/general_scripts/blob/master/raster_chunk_processing.py">https://github.com/jacobdadams/general_scripts/blob/master/raster_chunk_processing.py</a>. It only smooths the data without downsampling, but there may be some python functions that downsample as well. </div><div><br></div><div>There’s a lot of code in there for dealing with massive rasters by processing them in chunks in parallel, but the blur_mean and blur_gauss functions are where the smoothing is done. I’ve written an installation and usage guide at <a href="https://gisjake.blogspot.com/2018/10/rasterchunkprocessingpy-installation.html?m=1">https://gisjake.blogspot.com/2018/10/rasterchunkprocessingpy-installation.html?m=1</a>. </div><div><br></div><div>I’ve successfully used both the Gaussian blur and the Mesh Denoise methods to get rid of the surface “noise” (grass, alfalfa fields, etc) on half-meter lidar. I’ve combined the resulting hillshade with a 10 meter hillshade using gdalbuildvrt, but I haven’t found a good way to combine the 10m and half-meter DEMs yet.  </div><div><br></div><div>The valley floor slope layers on the Cache County parcel and zoning viewer were produced from the smoothed lidar DEM (<a href="http://cachecounty.org/gis">cachecounty.org/gis</a>, click on Parcel and Zoning Viewer, or direct link: <a href="http://66.232.67.238/Websites/Parcel%20and%20Zoning%20Viewer/">http://66.232.67.238/Websites/Parcel%20and%20Zoning%20Viewer/</a>; in the map, open the layer list, expand Sensitive/Planning Layers, turn on the two slope layers, then zoom in close so the parcel numbers don’t cover everything). </div><div><br></div><div>Jake</div></body></html>