This is the primary method for producing a quadrature schemes
for use by `ppm`

.

The function `ppm`

fits a point process model to an
observed point pattern using
the Berman-Turner quadrature approximation (Berman and Turner, 1992;
Baddeley and Turner, 2000) to the pseudolikelihood of the model.
It requires a quadrature scheme consisting of
the original data point pattern, an additional pattern of dummy points,
and a vector of quadrature weights for all these points.
Such quadrature schemes are represented by objects of class
`"quad"`

. See `quad.object`

for a description of this class.

Quadrature schemes are created by the function
`quadscheme`

.
The arguments `data`

and `dummy`

specify the data and dummy
points, respectively. There is a sensible default for the dummy
points (provided by `default.dummy`

).
Alternatively the dummy points
may be specified arbitrarily and given in any format recognised by
`as.ppp`

.
There are also functions for creating dummy patterns
including `corners`

,
`gridcentres`

,
`stratrand`

and
`spokes`

.

The quadrature region is the region over which we are
integrating, and approximating integrals by finite sums.
If `dummy`

is a point pattern object (class `"ppp"`

)
then the quadrature region is taken to be `Window(dummy)`

.
If `dummy`

is just a list of \(x, y\) coordinates
then the quadrature region defaults to the observation window
of the data pattern, `Window(data)`

.

If `dummy`

is missing, then a pattern of dummy points
will be generated using `default.dummy`

, taking account
of the optional arguments `...`

.
By default, the dummy points are arranged in a
rectangular grid; recognised arguments
include `nd`

(the number of grid points
in the horizontal and vertical directions)
and `eps`

(the spacing between dummy points).
If `random=TRUE`

, a systematic random pattern
of dummy points is generated instead.
See `default.dummy`

for details.

If `method = "grid"`

then the optional arguments (for `…`

) are
`(nd, ntile, eps)`

.
The quadrature region (defined above) is divided into
an `ntile[1]`

by `ntile[2]`

grid of rectangular tiles.
The weight for each
quadrature point is the area of a tile divided by the number of
quadrature points in that tile.

If `method="dirichlet"`

then the optional arguments are
`(exact=TRUE, nd, eps)`

.
The quadrature points (both data and dummy) are used to construct the
Dirichlet tessellation. The quadrature weight of each point is the
area of its Dirichlet tile inside the quadrature region.
If `exact == TRUE`

then this area is computed exactly
using the package `deldir`

; otherwise it is computed
approximately by discretisation.