I have some doubts with the generation of a cost surface with r.walk of GRASS. It's assumed that the resulting layer is measured in seconds, but when I try to convert seconds in days march (6h per day), the resulting layer has no sense.

This is the workflow I'm following:

1st.- I have several vector layers as roads, rivers, bridges, and a raster layer of elevation.

2nd.- Rasterize the vector layers with a field named "weight" (PESO in spanish) where I have weighted this variables according to if they facilitate the walking or not. Reclassify is made if it's needed.

3rd.- Find Slope (in percent) layer and reclasify as follow:

  • 0-10=1;

  • 11-maxValue=100

4th.- r.cross with all the rasterized layer. (roads, bridge, river and reclassified slope).

5th.- I create a new friction layer using this formula proposed by Pandolf (1977) with r.mapcalc :


6th.- With this layer measured in Watts I use r.walk with default parameters.

7th.- Once obtained this layer measured in seconds I try to convert it in hours dividing 3600 and then convert these hours in days march dividing 6 (6 hours per day).

Well, the results are not what I expected, the max data of this layer is about 8.000... No sense, it should be something like 3 or 4 days, maybe.

Here are the files I'm using to do this workflow.

I don't know what I'm missing, maybe is the 4th step wrong? Maybe the 5th?

Another point of view would be nice to me. If you need more info, please ask for it and I will add to the question.

Thanks a lot!


I would like to reply myself after a while. This is caused because the weigth of the layers it's too high, and the Pandolf's formula used it's very sensitive to this. Lowering the weight was the solution to my problems.

This is a formula used commonly in archaeology.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.