I've generated a Python script that determines the service areas for either schools (points) or informal settlements (polygons) based Toblers Hiking Function from the article published by Kaitlin Yanchar using Path Distance Analysis. The input cost raster to the Path Distance tool is the slope grid that is used in combination with the elevation grid and the vertical factor table based on Toblers Hiking Function. I would like to include the road network as part of the cost raster, but not sure how to proceed. The input cost raster has to be the slope grid and cant be a weighted cost raster as one would if you combined multiple criteria such as slope, road networks, landuse etc as the vertical factor is used to determine the time is would take to traverse the terrain based on the slope and elevation grid. Any suggestion in how to incorporate the road network as more preferable than walking over the hillslope will be appreciated.
Solved! Go to Solution.
I have found a solution to incorporating the road network into my Path Distance analysis that determines the time is takes to traverse a terrain using Toblers Hiking Function. In my previous model I provided no Cost Raster as input to the Path Distance analysis tool. By not providing an input Cost Raster, the cost of 1 per-unit distance will be used, which is the same as applying a cost raster with values of all 1's. The effort to move through the terrain is being determined by the vertical raster (elevation) and the vertical factor table (Toblers Hiking Function).
I created an Euclidean Distance raster from my road network, matching my cell size to the elevation DEM as well as ensuring that they aligned. I then reclassified my road network cost raster into the following classes and new cost values:
I used the following cost raster of my road network in conjunction with my Toblers Hiking Function and the initial results are looking good already. I will simulate different cost values for the road network cost raster to obtain more realistic results of the effort required to move through the terrain along the road network versus the terrain itself.
I hope the following assists anyone else trying to solve a similar problem.
Hi Peter
A crude solution may be to limit the cost surface to the road network
only. You could buffer the road network by a suitable distance, convert to
raster, and convert the non-suitable areas in your slope cost raster to
NoData. I am not sure if it work but worth a try.
Do you want to include "driving times" when on the road network?
The roads could also be rasterized with some functions to output a "time in each cell" depending on road type. With all other cells as no data.
Then develop the hicking function on the same scale (time across each cell).
Then combine these together as suggested here :
I have found a solution to incorporating the road network into my Path Distance analysis that determines the time is takes to traverse a terrain using Toblers Hiking Function. In my previous model I provided no Cost Raster as input to the Path Distance analysis tool. By not providing an input Cost Raster, the cost of 1 per-unit distance will be used, which is the same as applying a cost raster with values of all 1's. The effort to move through the terrain is being determined by the vertical raster (elevation) and the vertical factor table (Toblers Hiking Function).
I created an Euclidean Distance raster from my road network, matching my cell size to the elevation DEM as well as ensuring that they aligned. I then reclassified my road network cost raster into the following classes and new cost values:
I used the following cost raster of my road network in conjunction with my Toblers Hiking Function and the initial results are looking good already. I will simulate different cost values for the road network cost raster to obtain more realistic results of the effort required to move through the terrain along the road network versus the terrain itself.
I hope the following assists anyone else trying to solve a similar problem.
Hi Peter,
I am wondering how you set the new cost value. I have a very similar project as you. Suppose the driving speed is 10 times higher than walking speed, how can I use this information to set the new cost value?
Dear Meng Xu
I recommend that you have a look at the following Toblers Hiking Function posted by Nico. The python module that I developed incorporates Toblers Hiking Function as a Vertical Factor Table. This with the DEM determines the speed that one can walk as the slope changes including upslope vs downslope as well as direction. I merely created an euclidean distance raster based on my road network feature class as an additional cost factor to add as an impedance of movement off the road network, thereby ensuring the best path was along the road network. I unfortunately don't think that you can merely adjust the vertical factor table to increase the speed at which one can travel as the variables for vehicles vs walking are not the same. you might need to do some more research through google on models that have been developed for cars using the Path Distance Tool and how they developed cost rasters and vertical factor table.
Hope the following helps.