I'm trying to analyse the sourrounding of an archaeological site in QGIS. Therefore I've created a cost map with r.walk in GRASS (cumulative costs range from 10939500 to 14211500). Is there anly possibility to show only areas which can be reached in 1 h? My Point of Destination is a archaeology site and I want to know which setllements in the neighborhood can be reached in a 1 h walking distance. I'm not interrested in an exact least-cost-path solution but there must be a possibility to create a simple map, or am I wrong?

The solution must be easy but I'm totally lost.

Can you help me?


If I follow your question correctly(and what was posted to the GRASS maillist), then I guess you have:

  1. A point vector of settlements (multiple settlements)
  2. A second point vector of the archeology site (single point)
  3. A raster map where each pixel represents the time of walking thru that cell

In this case I think that r.cost (manual) and a simple r.mapcalc expression will do what you want.

First run r.cost with the walking time raster as input, use the settlements vector as start_points and the archeology site as stop_point, and call the output "accum_cost". Then, assuming the walking time raster was in seconds, run:

r.mapcalc "within_1hr = if(accum_cost<=3600, 1, null())"

This should create a new raster such that all those areas within 1 hr walking will have value 1, and all other areas are null.

The added value of r.walk, vs the simpler r.cost, is the option to combine both an elevation layer and a friction layer. So if in your model, walking from the settlements to the site involves both climbing hills and i.e. cutting thru a jungle, then you could combine the costs of both with r.walk. You can even set the speed parameters (you've probably already seen the r.walk manual for this.)

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.