Calculates direction of travel between two points. Only works if river mouth (lowest point) has been specified (see setmouth).

riverdirection(startseg, endseg, startvert, endvert, rivers,
  flowconnected = FALSE, stopiferror = TRUE, algorithm = NULL)

Arguments

startseg

Segment number of the start of the route

endseg

Segment number of the end of the route

startvert

Vertex number of the start of the route

endvert

Vertex number of the end of the route

rivers

The river network object to use

flowconnected

If TRUE, only returns direction if the two input segments are flow-connected. Defaults to FALSE.

stopiferror

Whether or not to exit with an error if a route cannot be found. If this is set to FALSE and a route cannot be found, the function will return NA in the appropriate entry. Defaults to TRUE. See detectroute.

algorithm

Which route detection algorithm to use ("Dijkstra", "sequential", or "segroutes"). If left as NULL (the default), the function will automatically make a selection. See detectroute for more details.

Value

Direction: "up", "down", or "0" (character). Returns NA if flowconnected==TRUE and the two segments are not flow-connected.

Note

Building routes from the river mouth to each river network segment and/or distance lookup tables will greatly reduce computation time (see buildsegroutes).

See also

setmouth

Examples

data(Gulk) # Mouth must be specified Gulk$mouth$mouth.seg <- 1 Gulk$mouth$mouth.vert <- 1 plot(x=Gulk)
riverdirection(startseg=6, endseg=3, startvert=40, endvert=40, rivers=Gulk)
#> [1] "down"