[GRASS-dev] [GRASS GIS] #3269: r.roughness.vector: bug in rescale formula

Blumentrath, Stefan Stefan.Blumentrath at nina.no
Wed Jan 25 14:32:17 PST 2017

Hi Steven,

And many thanks for clarification and contrasting results in detail…
And sorry for throwing the question at the list without having checked that (I just scanned the module code).

I noticed the difference in the references referred to in both modules. From scanning the code they seemed to do  the same thing, but now I see that the main difference is probably that r.vector.ruggedness uses slope directly for weighting vector strength, while r.roughness.vector uses the “inverted” slope / colatitude angle (90 – slope). Apart from that both modules look quite similar (as are the names) in terms of what they do to the DEM.

So, there might still be a point of consolidating them into one module which offers both the “Sappington et al. 2007 metric” and the “Hobson 1972 metric”…

Just a thought…

Kind regards,

From: Steven Pawley [mailto:dr.stevenpawley at gmail.com]
Sent: onsdag 25. januar 2017 21.18
To: Luca Delucchi <lucadeluge at gmail.com>
Cc: Blumentrath, Stefan <Stefan.Blumentrath at nina.no>; carlos.grohmann at gmail.com; grass-dev at lists.osgeo.org
Subject: Re: [GRASS-dev] [GRASS GIS] #3269: r.roughness.vector: bug in rescale formula


There seems to be some difference in the calculation between these two add-ons. Apologies for any duplication, but in the way of explanation I wrote the parallelized r.vector.ruggedness because I needed to calculate the VRM measure in a hurry and was confused about the results from r.roughness.vector.

The result from r.vector.ruggedness is identical (apart from how slope and aspect are calculated) to the result from the Sappington et al. 2007 paper and the Sappington-authored script in ArcGIS (see attached derived from the nc_spm_08 grass dataset). The form of the calculation is slightly different (but the end result is the same) because I average rather than sum the x,y, and z rasters to avoid a strong edge effect because AFAIK r.mapcalc doesn't have an automated method of dealing with bordering nulls (hence the averaging workaround). The r.vector.ruggedness results are also the same as how SAGA GIS calculates this metric, and it is this version of the 'VRM' metric that has been used extensively in the literature over the past few years.

r.roughness.vector appears to produce a very different result (see attached). Perhaps this represents an alternative implementation, but the main difference lies in how the DEM is decomposed into its x,y, and z components.

So if the add-ons are to be merged then perhaps this needs to be resolved?


On Tue, Jan 24, 2017 at 3:43 PM, Luca Delucchi <lucadeluge at gmail.com<mailto:lucadeluge at gmail.com>> wrote:
On 24 January 2017 at 09:55, Blumentrath, Stefan
<Stefan.Blumentrath at nina.no<mailto:Stefan.Blumentrath at nina.no>> wrote:
> Hi,


> Another related question: There are now two AddOns for this purpose:
> r.roughness.vector (last changed 2 years ago)
> and from 2016: r.vector.ruggedness
> Both basically calculate the same metric(s), though they have their differences and both have their pros:
> r.roughness.vector offers more advanced options (esp. useful for multi scale application)
> r.vector.ruggedness uses parallelization
> Having two modules for one task / metric, which are not conceptually different is a bit confusing...
> IMHO both should be merged into one, keeping the strength of each of them...

+1 for merging... this could be a work for the next code sprint

> Other thoughts?
> Cheers
> Stefan


grass-dev mailing list
grass-dev at lists.osgeo.org<mailto:grass-dev at lists.osgeo.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20170125/258ae01a/attachment-0001.html>

More information about the grass-dev mailing list