[GIS] Hillshade shows grid texture artifacts

demgdalhillshadeqgisslope

I tried to make an hillshade and a slope map from a DTM using QGIS but the result shows some artifacts.

As you can see in the picture there is a grid texture in the hillshade and the slope map.

hillshade and slope

I downloaded the DTM files from:

http://opendata.regione.abruzzo.it/content/modello-digitale-del-terreno-risoluzione-10×10-metri.

The DTMs have the UTM-WGS84 coordinate system and a resolution of 10m. Every DTM is a GeoTIFF floating point 32 bits with a TFW associated.

I used the VRT builder to generate e virtual raster from the DTMs, then I used Warp to reproject the VRT into the same coordinate system of the original DTMs but using bilinear interpolation as "resampling method". I used the reprojected raster to make the hillshade but the grid texture was still there. Then I changed the "output raster type" to Int32 in the Warp tool, and I used the output to generate another hillshade but the texture was still clearly visible.

Do you have any idea why this is happening?

Best Answer

The problem is because the DTM has a high-resolution pixel size when data (in my opinion) doesn't have the same resolution is some areas.

For example, direct hillshade raster:

enter image description here

Check pixel values (using Raster values to points over the hillshade ugly raster):

enter image description here

That's why look so ugly hillshade or slope outputs. You need to aggregate to obtain a better look output. I'm a R user for mostly all raster processing, so you can use a custom R script inside QGIS to work with R and raster package. Also, Aggregate function from SAGA toolbox only applies by sum, min or max, not mean.

In this case, aggregate by mean could be an excellent choice:

##Input=raster
##Factor=number 2
##Output=output raster
library(raster)
Output=aggregate(x=Input,fact = Factor,fun=mean)

Check documentation to know about parameters and function description. After this, use it in QGIS:

enter image description here

With output raster, compute hillshade:

enter image description here

And slope:

enter image description here

Related Question