Computes the distribution of the orientation of vectors joining pairs of points at a particular range of distances.

```
pairorient(X, r1, r2, ..., cumulative=FALSE,
correction, ratio = FALSE,
unit=c("degree", "radian"), domain=NULL)
```

A function value table (object of class `"fv"`

)
containing the estimates of the probability density or the
cumulative distribution function of angles,
in degrees (if `unit="degree"`

)
or radians (if `unit="radian"`

).

- X
Point pattern (object of class

`"ppp"`

).- r1,r2
Minimum and maximum values of distance to be considered.

- ...
Arguments passed to

`circdensity`

to control the kernel smoothing, if`cumulative=FALSE`

.- cumulative
Logical value specifying whether to estimate the probability density (

`cumulative=FALSE`

, the default) or the cumulative distribution function (`cumulative=TRUE`

).- correction
Character vector specifying edge correction or corrections. Options are

`"none"`

,`"isotropic"`

,`"translate"`

,`"border"`

,`"bord.modif"`

,`"good"`

and`"best"`

. Alternatively`correction="all"`

selects all options. The default is to compute all edge corrections except`"none"`

.- ratio
Logical. If

`TRUE`

, the numerator and denominator of each edge-corrected estimate will also be saved, for use in analysing replicated point patterns.- unit
Unit in which the angles should be expressed. Either

`"degree"`

or`"radian"`

.- domain
Optional window. The first point \(x_i\) of each pair of points will be constrained to lie in

`domain`

.

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

This algorithm considers all pairs of points in the pattern
`X`

that lie more than `r1`

and less than `r2`

units apart. The *direction* of the arrow joining the points
is measured, as an angle in degrees or radians,
anticlockwise from the \(x\) axis.

If `cumulative=FALSE`

(the default),
a kernel estimate of the probability density of the orientations
is calculated using `circdensity`

.

If `cumulative=TRUE`

, then the cumulative distribution
function of these directions is calculated.
This is the function \(O_{r1,r2}(\phi)\) defined
in Stoyan and Stoyan (1994), equation (14.53), page 271.

In either case the result can be plotted as a rose diagram by
`rose`

, or as a function plot by `plot.fv`

.

The algorithm gives each observed direction a weight,
determined by an edge correction, to adjust for the fact that some
interpoint distances are more likely to be observed than others.
The choice of edge correction or corrections is determined by the argument
`correction`

. See the help for `Kest`

for details
of edge corrections, and explanation of the options available.
The choice `correction="none"`

is not recommended;
it is included for demonstration purposes only. The default is to
compute all corrections except `"none"`

.

It is also possible to calculate an estimate of the probability
density from the cumulative distribution function,
by numerical differentiation.
Use `deriv.fv`

with the argument `Dperiodic=TRUE`

.

Stoyan, D. and Stoyan, H. (1994) Fractals, Random Shapes and Point Fields: Methods of Geometrical Statistics. John Wiley and Sons.

`Kest`

, `Ksector`

, `nnorient`

```
rose(pairorient(redwood, 0.05, 0.15, sigma=8), col="grey")
plot(CDF <- pairorient(redwood, 0.05, 0.15, cumulative=TRUE))
plot(f <- deriv(CDF, spar=0.6, Dperiodic=TRUE))
```

Run the code above in your browser using DataLab