Geospatial Modelling Environment

movement.simplecrw (Simulate Simple Correlated Random Walk)

A simple correlated random walk movement path simulator, drawing from statistical or empirical distributions, with a home range boundary constraint option


This tool is a simple correlated random walk movement path simulator. It simulates paths by making independent random draws from a step length and turn angle distribution that you specify. Based on a set of start locations (which can be randomly generated using other tools in this tool set), the number of steps per path to simulate (this does not have to be a constant value), and the number of iterations per start location, the tool will generate simulated paths and write the output to a point output file (and optionally also a line output file). You may also optionally specify a polygon that defines a reflective boundary for simulated paths (i.e. paths will not be permitted to cross outside of this polygon). This is a flexible tool and can be run in many different ways for different purposes, but it is called a ‘simple’ CRW simulator because it does not accommodate multiple behavioural states for simulated paths (all steps and turns are drawn from a single pair of distributions).

Step length and turn angle distributions can be specified as either empirical distributions (which are loaded from a text file), or as statistical distributions from which random values are generated using R. Please refer to the section ‘Specifying statistical and empirical distributions’ for detailed instructions on how to specify distributions.

If you specify an empirical distribution that represents turn angles in radians then you must also set the radians=TRUE option. If you fail to do this the values will be interpreted as degrees and your paths will turn very little. If you specify a probability density function for the turn angle distribution then this is always interpreted as radians and you cannot override this setting using the ‘radians’ option (it is ignored).

It is important to exercise care when using the reflective polygon boundary option. If you specify a turn angle distribution that is too restrictive (strong directional persistence), or a step length distribution with a mean value that is large relative to the size of the boundary polygon, then the simulations may take a very long time to run. The risk is that the simulated path reaches the edge of the reflective boundary and then the restrictive movement parameters ensure that the vast majority of potential steps are rejected.


movement.simplecrw(inpoint, uidfield, tad, sld, nsteps, iterations, outpoint, [bnd], [outline], [radians], [where]);

inpointthe input start locations (a point feature source)
uidfieldthe name of the unique ID field in the input data source
tadthe turn angle distribution (see full help documentation for details)
sldthe step length distribution (see full help documentation for details)
nstepsthe number of steps in the path or a field name in the start location data source containing these values
iterationsthe number of paths to generate per input point or input polygon
outpointthe output point data source to create
[bnd]a polygon data source containing a single polygon that defines the reflective boundary for simulated paths
[outline]also generates the output in line format (one line per step) in this data source
[radians](TRUE/FALSE) specifies whether the turn angle distribution is in radians (default=FALSE)
[where]the selection statement that will be applied to the feature data source to identify a subset of features to process (see full Help documentation for further details)


movement.simplecrw(inpoint=”C:datastartlocs.shp”, uidfield=”STARTID”, tad=”C:dataturns.csv”, sld=”C:datasteps.csv”, nsteps=1000, iterations=100, outpoint=”C:datasims.shp”);

movement.simplecrw(inpoint=”C:datastartlocs.shp”, uidfield=”STARTID”, tad=”C:dataturns.csv”, sld=”C:datasteps.csv”, nsteps=”STEPCNT”, iterations=1, outpoint=”C:datasims.shp”, outline=”C:datasimsline.shp”, bnd=”C:dataparkbnd.shp”, radians=TRUE);

movement.simplecrw(inpoint=”C:datastartlocs.shp”, uidfield=”STARTID”, tad=c(“WRAPPEDCAUCHY”,0,0.3), sld=c(“EXPONENTIAL”,0.0015), nsteps=20000, iterations=100, outpoint=”C:datasims.shp”, radians=TRUE);


Please consider making a purchase to support the continued development of these tools  Read more...

Tips on how to use this interface efficiently 


Open Source GIS

Copyright © 2001-2014 Hawthorne L. Beyer, Ph.D., Spatial Ecology LLC    Connect on LinkedIn