<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="NO-BOK" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Steven,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">And many thanks for clarification and contrasting results in detail…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">And sorry for throwing the question at the list without having checked that (I just scanned the module code).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">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”…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Just a thought…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Kind regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Stefan<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Steven Pawley [mailto:dr.stevenpawley@gmail.com]
<br>
<b>Sent:</b> onsdag 25. januar 2017 21.18<br>
<b>To:</b> Luca Delucchi <lucadeluge@gmail.com><br>
<b>Cc:</b> Blumentrath, Stefan <Stefan.Blumentrath@nina.no>; carlos.grohmann@gmail.com; grass-dev@lists.osgeo.org<br>
<b>Subject:</b> Re: [GRASS-dev] [GRASS GIS] #3269: r.roughness.vector: bug in rescale formula<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">So if the add-ons are to be merged then perhaps this needs to be resolved?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Steve<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Tue, Jan 24, 2017 at 3:43 PM, Luca Delucchi <<a href="mailto:lucadeluge@gmail.com" target="_blank">lucadeluge@gmail.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">On 24 January 2017 at 09:55, Blumentrath, Stefan<br>
<<a href="mailto:Stefan.Blumentrath@nina.no">Stefan.Blumentrath@nina.no</a>> wrote:<br>
> Hi,<br>
><br>
<br>
Hi,<br>
<br>
> Another related question: There are now two AddOns for this purpose:<br>
><br>
> r.roughness.vector (last changed 2 years ago)<br>
><br>
> and from 2016: r.vector.ruggedness<br>
><br>
> Both basically calculate the same metric(s), though they have their differences and both have their pros:<br>
> r.roughness.vector offers more advanced options (esp. useful for multi scale application)<br>
> r.vector.ruggedness uses parallelization<br>
><br>
> Having two modules for one task / metric, which are not conceptually different is a bit confusing...<br>
> IMHO both should be merged into one, keeping the strength of each of them...<br>
><br>
<br>
+1 for merging... this could be a work for the next code sprint<br>
<br>
> Other thoughts?<br>
><br>
> Cheers<br>
> Stefan<br>
><br>
<span style="color:#888888"><br>
<span class="hoenzb">--</span><br>
<span class="hoenzb">ciao</span><br>
<span class="hoenzb">Luca</span><br>
<br>
<span class="hoenzb"><a href="http://www.lucadelu.org" target="_blank">www.lucadelu.org</a></span><br>
<span class="hoenzb">_______________________________________________</span><br>
<span class="hoenzb">grass-dev mailing list</span><br>
<span class="hoenzb"><a href="mailto:grass-dev@lists.osgeo.org">grass-dev@lists.osgeo.org</a></span><br>
<span class="hoenzb"><a href="https://lists.osgeo.org/mailman/listinfo/grass-dev" target="_blank">https://lists.osgeo.org/mailman/listinfo/grass-dev</a></span></span><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>