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

Carlos Grohmann carlos.grohmann at gmail.com
Wed Feb 8 05:29:24 PST 2017


Hi there, sorry for the late reply.

 I went looking in the paper by Hobson (1972), and the original formula for
 Fischer K is: (N-1)/(N-R), but in the module (and in my paper) I used the
 *inverse* of it (so smooth areas would end up with a low value). Inverting
 the formula gives (N-R)/(N-1).

As for merging the modules, I'm ok with it. makes more senso to have a
generic roughness module with several options on methods.

best

Carlos



On Wed, Jan 25, 2017 at 8:54 PM, Steven Pawley <dr.stevenpawley at gmail.com>
wrote:

> Hi Stefan,
>
> +1 for that suggestion. There might be a few variants / other
> directional measures that could be included with a 'method' argument like
> real surface area.
>
> Cheers,
>
> Steve
>
> On Wed, Jan 25, 2017 at 3:32 PM, Blumentrath, Stefan <
> Stefan.Blumentrath at nina.no> wrote:
>
>> 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,
>>
>> Stefan
>>
>>
>>
>>
>>
>> *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
>>
>>
>>
>> Hi,
>>
>>
>>
>> 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?
>>
>>
>>
>> Steve
>>
>>
>>
>> On Tue, Jan 24, 2017 at 3:43 PM, Luca Delucchi <lucadeluge at gmail.com>
>> wrote:
>>
>> On 24 January 2017 at 09:55, Blumentrath, Stefan
>> <Stefan.Blumentrath at nina.no> wrote:
>> > Hi,
>> >
>>
>> 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
>> >
>>
>> --
>> ciao
>> Luca
>>
>> www.lucadelu.org
>> _______________________________________________
>> grass-dev mailing list
>> grass-dev at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/grass-dev
>>
>>
>>
>
>


-- 
Prof. Carlos Henrique Grohmann
Institute of Energy and Environment - Univ. of São Paulo, Brazil
- Digital Terrain Analysis | GIS | Remote Sensing -

http://carlosgrohmann.com
http://orcid.org/0000-0001-5073-5572
________________
Can’t stop the signal.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20170208/248f55d4/attachment.html>


More information about the grass-dev mailing list