R: Label Vertices of a Tree by Branch Membership

treebranchlabels {spatstat.linnet} | R Documentation

## Label Vertices of a Tree by Branch Membership

### Description

Given a linear network which is a tree (acyclic graph), this function assigns a label to each vertex, indicating its position in the tree.

### Usage

      treebranchlabels(L, root = 1)

### Arguments

`L` | Linear network (object of class `"linnet"`). The network must have no loops.
`root` | Root of the tree. An integer index identifying which point in `vertices(L)` is the root of the tree.

### Details

The network `L` should be a tree, that is, it must have no loops.

This function computes a character string label for each vertex of the network `L`. The vertex identified by `root` (that is, `vertices(L)[root]`) is taken as the root of the tree and is given the empty label `""`.

- If there are several line segments which meet at the root vertex, each of these segments is the start of a new branch of the tree; the other endpoints of these segments are assigned the labels `"a"`, `"b"`, `"c"` and so on.

- If only one segment issues from the root vertex, the other endpoint of this segment is assigned the empty label `""`.

A similar rule is then applied to each of the newly-labelled vertices. If the vertex labelled `"a"` is joined to two other unlabelled vertices, these will be labelled `"aa"` and `"ab"`. The rule is applied recursively until all vertices have been labelled.

If `L` is not a tree, the algorithm will terminate, but the results will be nonsense.

### Value

A vector of character strings, with one entry for each point in `vertices(L)`.

### Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner r.turner@auckland.ac.nz and Ege Rubak rubak@math.aau.dk

### See Also

`deletebranch`, `extractbranch`, `treeprune` for manipulating a network using the branch labels.

`linnet` for creating a network.

### Examples

      # make a simple tree
      m <- simplenet$m
      m[8,10] <- m[10,8] <- FALSE
      L <- linnet(vertices(simplenet), m)
      plot(L, main="")
      # compute branch labels
      tb <- treebranchlabels(L, 1)
      tbc <- paste0("[", tb, "]")
      text(vertices(L), labels=tbc, cex=2)

[Package spatstat.linnet version 2.0-0 Index]