mc_cost_functions() returns a data frame describing every cost function
implemented in the package. The registry is the single internal source from
which all analysis functions draw their cost models: each function is defined
once, here, and reused everywhere (in movecost <= 2.x the same definitions were
repeated across functions; the registry eliminates that duplication).
mc_cost_functions()A data frame with one row per cost function and columns:
code: the identifier to pass as the funct parameter;
name: extended name of the cost function;
type: "walking time", "energy", "abstract",
or "wheeled vehicle";
cost_unit: unit of the accumulated cost
(before any user-selected time conversion);
uses_N, uses_WLV, uses_slcrit: whether the
function responds to the terrain factor, to the W/L/V parameters, and to
the critical-slope parameter respectively.
Each cost function maps the terrain slope between two adjacent cells
(expressed as rise over run, signed: positive uphill, negative downhill, and
computed in the direction of movement) to either a walking speed or the
reciprocal of a per-metre cost. In what follows, x stands for slope as
rise/run calculated between adjacent cells in the direction of travel.
Functions expressing cost as walking time (speed in km/h):
Tobler's hiking function (on-path) ("t"):
\((6 * exp(-3.5 * abs(x + 0.05))) * (1/N)\)
Tobler W. (1993), Three Presentations on Geographical Analysis and Modeling,
NCGIA Technical Report 93-1.
Tobler's hiking function (off-path) ("tofp"):
\((6 * exp(-3.5 * abs(x + 0.05))) * 0.6\)
as per Tobler's indication, the off-path walking speed is reduced by 0.6.
Marquez-Perez et al.'s modified Tobler hiking function ("mp"):
\((4.8 * exp(-5.3 * abs((x * 0.7) + 0.03))) * (1/N)\)
Marquez-Perez J., Vallejo-Villalta I., Alvarez-Francoso J.I. (2017),
"Estimated travel time for walking trails in natural areas",
Geografisk Tidsskrift-Danish Journal of Geography, 117:1, 53-62,
tools:::Rd_expr_doi("10.1080/00167223.2017.1316212").
Irmischer-Clarke's hiking function (male, on-path) ("icmonp"):
\(((0.11 + exp(-(abs(x)*100 + 5)^2 / (2 * 30^2))) * 3.6) * (1/N)\)
Irmischer I.J., Clarke K.C. (2018), Measuring and modeling the speed of human
navigation, Cartography and Geographic Information Science, 45(2), 177-186,
tools:::Rd_expr_doi("10.1080/15230406.2017.1292150"). The original functions express speed in
m/s; they are multiplied by 3.6 to obtain km/h for consistency with the other
Tobler-related cost functions; slope is in percent.
Irmischer-Clarke's hiking function (male, off-path) ("icmoffp"):
\((0.11 + 0.67 * exp(-(abs(x)*100 + 2)^2 / (2 * 30^2))) * 3.6\)
the Gaussian denominator is \(2*30^2\) (=1800), the 2*sigma^2 form of
equation 4 of Irmischer & Clarke (2018), shared by the on-path (equation 2)
and female (equation 5) variants; unchanged from movecost <= 2.x.
Irmischer-Clarke's hiking function (female, on-path) ("icfonp"):
\(((0.95 * (0.11 + exp(-(abs(x) * 100 + 5)^2/(2 * 30^2)))) * 3.6) * (1/N)\)
Irmischer-Clarke's hiking function (female, off-path) ("icfoffp"):
\((0.95 * (0.11 + 0.67 * exp(-(abs(x) * 100 + 2)^2/(2 * 30^2)))) * 3.6\)
Uriarte Gonzalez's walking-time cost function ("ug"):
\(1 / ((0.0277 * (abs(x)*100) + 0.6115) * N)\)
Chapa Brunet T., Garcia J., Mayoral Herrera V., Uriarte Gonzalez A. (2008),
GIS landscape models for the study of preindustrial settlement patterns in
Mediterranean areas, in Geoinformation Technologies for Geo-Cultural
Landscapes (pp. 255-273), CRC Press, tools:::Rd_expr_doi("10.1201/9780203881613.ch12").
The function originally expresses walking time in seconds; its reciprocal is
used internally so that the accumulated value corresponds to time. Unlike in
the original formulation, the pixel resolution is not embedded in the formula
because the graph machinery accounts for the actual distance between cell
centres.
Marin Arroyo's walking-time cost function ("ma"):
\(ifelse(x < 0, 1 / ((0.6 * ((abs(x)*100)/23+1))*N), 1 / ((0.6 * ((abs(x)*100)/11+1))*N))\)
Marin Arroyo A.B. (2009), The use of optimal foraging theory to estimate Late
Glacial site catchment areas from a central place: the case of eastern
Cantabria, Spain, Journal of Anthropological Archaeology 28, 27-36.
Note: in movecost <= 2.x the downhill branch could never be selected
because the test was applied to the absolute slope; version 3.0 evaluates the
signed slope, so downhill movement now correctly uses the gentler divisor
(23), as in the original publication. Results for downhill movement therefore
differ (correctly) from movecost <= 2.x.
Alberti's Tobler hiking function modified for pastoral foraging
excursions ("alb"):
\((6 * exp(-3.5 * abs(x + 0.05))) * 0.25\)
Alberti G. (2019), Locating potential pastoral foraging routes in Malta
through the use of a Geographic Information System. The Tobler function is
rescaled by 0.25, i.e. the ratio between the average flock speed (1.5 km/h)
and the maximum human walking speed (about 6.0 km/h) on favourable slopes.
Garmy, Kaddouri, Rozenblat, and Schneider's hiking function
("gkrs"):
\((4 * exp(-0.008 * ((atan(abs(x))*180/pi)^2))) * (1/N)\)
slope in degrees; see Herzog I. (2020), Spatial Analysis Based on Cost
Functions, in Gillings M., Haciguzeller P., Lock G. (eds), "Archaeological
Spatial Analysis. A Methodological Guide", Routledge: New York, 333-358.
Rees' hiking function ("r"):
\(((1 / (0.75 + 0.09 * abs(x) + 14.6 * (abs(x))^2)) * 3.6) * (1/N)\)
Rees W.G. (2004), Least-cost paths in mountainous terrain,
Computers & Geosciences, 30(3), 203-209. Speed transposed from m/s to km/h.
Kondo-Seino's modified Tobler hiking function ("ks"):
\(ifelse(x >= -0.07, (5.1 * exp(-2.25 * abs(x + 0.07))) * (1/N), (5.1 * exp(-1.5 * abs(x + 0.07))) * (1/N))\)
Kondo Y., Seino Y. (2010), GPS-aided Walking Experiments and Data-driven
Travel Cost Modeling on the Historical Road of Nakasendo-Kisoji (Central
Highland Japan), in Frischer B., Webb Crawford J., Koller D. (eds), Making
History Interactive, CAA Proceedings of the 37th International Conference
(BAR International Series S2079), Archaeopress, Oxford, 158-165.
Note: in movecost <= 2.x the steep-downhill branch could never be
selected because the test was applied to the absolute slope; version 3.0
evaluates the signed slope as intended by Kondo and Seino, so walking speed on
downhill gradients steeper than -7% now correctly uses the gentler decay
coefficient (1.5). Results on such gradients therefore differ (correctly)
from movecost <= 2.x.
Tripcevich's hiking function ("trp"):
\(((4.028*46^2)/(((atan(abs(x))*180/pi)+4.127)^2+46^2))*(1/N)\)
Tripcevich N. (2008), Estimating Llama caravan travel speeds:
ethno-archaeological fieldwork with a Peruvian salt caravan.
Function for wheeled vehicles:
Wheeled-vehicle critical slope cost function ("wcs"):
\(1 / ((1 + ((abs(x)*100) / sl.crit)^2) * N)\)
where sl.crit (critical slope, in percent) is "the transition where
switchbacks become more effective than direct uphill or downhill paths",
typically in the range 8-16; Herzog I. (2016), Potential and Limits of
Optimal Path Analysis, in Bevan A., Lake M. (eds), Computational Approaches
to Archaeological Spaces (pp. 179-211), Routledge.
Functions expressing abstract cost:
Relative energetic expenditure ("ree"):
\(1 / ((tan((atan(abs(x))*180/pi)*pi/180) / tan(1*pi/180)) * N)\)
Conolly J., Lake M. (2006), Geographic Information Systems in Archaeology,
Cambridge University Press, p. 220.
Bellavia's cost function ("b"):
\(1 / (((atan(abs(x))*180/pi)+1) * N)\)
see Herzog I. (2020), cited above.
Eastman's cost function ("e"):
\(1 / ((0.031*(atan(abs(x))*180/pi)^2 - 0.025*(atan(abs(x))*180/pi) + 1) * N)\)
Vaissie E. (2021), Mobility of Paleolithic Populations: Biomechanical
Considerations and Spatiotemporal Modelling, PaleoAnthropology 2021(1),
120-144 (with reference to Eastman 1999).
Functions expressing cost as metabolic energy expenditure:
Pandolf et al.'s cost function (in Watts) ("p"):
\(1 / (1.5 * W + 2.0 * (W + L) * (L / W)^2 + N * (W + L) * (1.5 * (V^2) + 0.35 * V * (abs(x)*100)))\)
where W is the walker's body weight (kg), L the carried load (kg), V the
velocity in m/s, N the terrain coefficient (the \(\eta\) of the original
publication, multiplying the velocity-dependent term once). If V is set to
0, it is worked out internally from the Tobler on-path function and varies
with the slope. Note: movecost <= 2.x additionally multiplied the
whole expression by N, applying the terrain factor twice; fixed in version
3.0 (see NEWS.md). With the default N = 1 the results coincide.
Pandolf K.B., Givoni B., Goldman R.F. (1977), Predicting energy expenditure
with loads while standing or walking very slowly, Journal of Applied
Physiology, 43(4), 577-581, tools:::Rd_expr_doi("10.1152/jappl.1977.43.4.577").
Pandolf et al.'s cost function with downhill correction (in Watts)
("pcf"):
\(ifelse(x >= 0, 1 / (M), 1 / (M - CF))\) where M is the Pandolf
et al. metabolic rate above and \(CF = N * (G*(W+L)*V/3.5) - ((W+L)*(G+6)^2/W) + (25-V^2)\)
with G the slope magnitude in percent; Yokota M., Berglund L.G., Santee
W.R., Buller M.J., Hoyt R.W. (2004), U.S. Army Research Institute of
Environmental Medicine Technical Report T04-09.
Note: in movecost <= 2.x the test selecting the downhill branch was
applied to the absolute slope, so the downhill correction could never be
selected; version 3.0 evaluates the signed slope, applying the Yokota et
al. correction to downhill movement as intended. Results for downhill
movement therefore differ (correctly) from movecost <= 2.x.
Minetti et al.'s metabolic cost function (J/(kg*m)) ("m"):
\(1 / (((280.5 * abs(x)^5) - (58.7 * abs(x)^4) - (76.8 * abs(x)^3) + (51.9 * abs(x)^2) + (19.6 * abs(x)) + 2.5) * N)\)
Minetti A.E., Moia C., Roi G.S., Susta D., Ferretti G. (2002), Energy cost of
walking and running at extreme uphill and downhill slopes, Journal of Applied
Physiology 93, 1039-1046. Valid for slopes in the range -0.5/0.5; outside
this range its output becomes counterintuitive (see Herzog 2013), in which
case the Herzog polynomial approximation ("hrz") is preferable.
Herzog's metabolic cost function (J/(kg*m)) ("hrz"):
\(1 / (((1337.8 * abs(x)^6) + (278.19 * abs(x)^5) - (517.39 * abs(x)^4) - (78.199 * abs(x)^3) + (93.419 * abs(x)^2) + (19.825 * abs(x)) + 1.64) * N)\)
Herzog I. (2016), cited above; 6th-degree polynomial approximation of
Minetti et al.'s function.
Van Leusen's metabolic cost function (in Watts) ("vl"):
\(1 / (1.5 * W + 2.0 * (W + L) * (L / W)^2 + N * (W + L) * (1.5 * (V^2) + 0.35 * V * ((abs(x)*100) + 10)))\)
(terrain factor applied once, as in the Pandolf et al. equation it
modifies; movecost <= 2.x applied it twice, see the note under the Pandolf
entry above.)
Van Leusen P.M. (2002), Pattern to process; with the amendments reported by
Herzog I. (2013), Least-cost Paths - Some Methodological Issues,
Internet Archaeology 36.
Llobera-Sluckin's metabolic cost function (kJ/m) ("ls"):
\(1 / ((2.635 + (17.37 * abs(x)) + (42.37 * abs(x)^2) - (21.43 * abs(x)^3) + (14.93 * abs(x)^4)) * N)\)
Llobera M., Sluckin T.J. (2007), Zigzagging: Theoretical insights on climbing
strategies, Journal of Theoretical Biology 249, 206-217.
Ardigo et al.'s metabolic cost function (J/(kg*m)) ("a"):
\(1 / ((1.866 * exp(4.911*abs(x)) * V^2 - 3.773 * exp(3.416*abs(x)) * V + (45.71*abs(x)^2 + 18.90*abs(x)) + 4.456) * N)\)
Ardigo L.P., Saibene F., Minetti A.E. (2003), The optimal locomotion on
gradients: walking, running or cycling?, Eur J Appl Physiol 90, 365-371.
If V is set to 0, it is worked out internally from the Tobler on-path
function.
Hare's metabolic cost function (cal/km) ("h"):
\(1 / ((48 + 30 / (6 * exp(-3.5 * abs(x + 0.05)))) * N)\)
Hare T.S. (2004), Using Measures of Cost Distance in the Estimation of Polity
Boundaries in the Post Classic Yautepec valley, Mexico, Journal of
Archaeological Science 31.
Terrain factor (N):
virtually all the implemented cost functions (with few exceptions, namely the
off-path functions and Alberti's, which natively embed one) can take into
account a terrain factor (parameter N; 1 by default) representing the
easiness/difficulty of moving on different terrain types.
The following reference list of terrain factors is based on the data
collected in Herzog, I. (2020), Spatial Analysis Based on Cost Functions, in
Gillings M., Haciguzeller P., Lock G. (eds), "Archaeological Spatial
Analysis. A Methodological Guide", Routledge: New York, 340 (with previous
references). It is divided into two sections: section (a) reports the terrain
factors to be used for cost functions measuring time; section (b) for
functions measuring cost other than time.
(a) for time-based cost functions:
Blacktop roads, improved dirt paths, cement = 1.00
Lawn grass = 1.03
Loose beach sand = 1.19
Disturbed ground (former stone quarry) = 1.24
Horse riding path, flat trails and meadows = 1.25
Tall grassland (with thistle and nettles) = 1.35
Open space above the treeline (i.e., 2000 m asl) = 1.50
Bad trails, stony outcrops and river beds = 1.67
Off-paths = 1.67
Bog = 1.79
Off-path areas below the treeline (pastures, forests, heathland) = 2.00
Rock = 2.50
Swamp, water course = 5.00
(b) for cost functions measuring cost other than time:
Asphalt/blacktop = 1.00
Dirt road or grass = 1.10
Hard-surface road = 1.20
Light brush = 1.20
Ploughed field = 1.30 or 1.50
Heavy brush = 1.50
Hard-packed snow = 1.60
Swampy bog = 1.80
Sand dunes = 1.80
Loose sand = 2.10
Why speed-type and reciprocal-type functions are treated
differently:
internally the package works with conductance (the reciprocal of cost), so
walking-speed functions are used as they are (the accumulated value being the
reciprocal of speed, i.e. pace, integrated over distance, which yields time),
while the other functions are reciprocated so that the accumulated value
corresponds to the original cost (see Nakoinz-Knitter (2016), "Modelling
Human Behaviour in Landscapes", Springer, p. 183).
mc_surface
# list all the implemented cost functions
mc_cost_functions()
Run the code above in your browser using DataLab