Divides window into quadrats and counts the numbers of points in each quadrat.
quadratcount(X, ...) # S3 method for ppp
quadratcount(X, nx=5, ny=nx, ...,
xbreaks=NULL, ybreaks=NULL, left.open=TRUE,
tess=NULL)
# S3 method for splitppp
quadratcount(X, ...)
The value of quadratcount.ppp
is a
contingency table containing the number of points in each
quadrat. The table is also an object of the
special class "quadratcount"
and there is a plot method for this class.
The value of quadratcount.splitppp
is a list of such
contingency tables, each containing the quadrat counts for one of the
component point patterns in X
.
This list also has the class "solist"
which has
print and plot methods.
A point pattern (object of class "ppp"
)
or a split point pattern (object of class "splitppp"
).
Numbers of rectangular quadrats in the \(x\) and \(y\) directions.
Incompatible with xbreaks
and ybreaks
.
Additional arguments passed to quadratcount.ppp
.
Numeric vector giving the \(x\) coordinates of the
boundaries of the rectangular quadrats. Incompatible with nx
.
Numeric vector giving the \(y\) coordinates of the
boundaries of the rectangular quadrats. Incompatible with ny
.
Tessellation (object of class "tess"
or something acceptable
to as.tess
) determining the quadrats. Incompatible
with nx,ny,xbreaks,ybreaks
.
Logical value specifying whether rectangular quadrats are left-open and
right-closed (left.open=TRUE
, the default) or
left-closed and right-open (left.open=FALSE
).
If the quadrats are rectangular, they are assumed to be
left-open and right-closed, by default (left.open=TRUE
).
Alternatively if left.open=FALSE
then rectangular quadrats are
left-closed and right-open.
If the quadrats are not rectangular, the treatment of points which lie on the boundary of two quadrats is undefined, and may depend on the hardware.
To perform a chi-squared test based on the quadrat counts,
use quadrat.test
.
If Q
is a quadratcount
object,
the ordering of entries in the table Q
may be different from the ordering of quadrats (tiles
in the tessellation as.tess(Q)
).
To obtain the entries of the table in the same order
as the quadrats, use
counts <- as.numeric(t(Q))
or counts <- marks(as.tess(Q))
.
Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner rolfturner@posteo.net
Quadrat counting is an elementary technique for analysing spatial point patterns. See Diggle (2003).
If X
is a point pattern, then
by default, the window containing the point pattern X
is divided into
an nx * ny
grid of rectangular tiles or `quadrats'.
(If the window is not a rectangle, then these tiles are intersected
with the window.)
The number of points of X
falling in each quadrat is
counted. These numbers are returned as a contingency table.
If xbreaks
is given, it should be a numeric vector
giving the \(x\) coordinates of the quadrat boundaries.
If it is not given, it defaults to a
sequence of nx+1
values equally spaced
over the range of \(x\) coordinates in the window Window(X)
.
Similarly if ybreaks
is given, it should be a numeric
vector giving the \(y\) coordinates of the quadrat boundaries.
It defaults to a vector of ny+1
values
equally spaced over the range of \(y\) coordinates in the window.
The lengths of xbreaks
and ybreaks
may be different.
Alternatively, quadrats of any shape may be used.
The argument tess
can be a tessellation (object of class
"tess"
) whose tiles will serve as the quadrats.
The algorithm counts the number of points of X
falling in each quadrat, and returns these counts as a
contingency table.
The return value is a table
which can be printed neatly.
The return value is also a member of the special class
"quadratcount"
. Plotting the object will display the
quadrats, annotated by their counts. See the examples.
To perform a chi-squared test based on the quadrat counts,
use quadrat.test
.
To calculate an estimate of intensity based on the quadrat counts,
use intensity.quadratcount
.
To extract the quadrats used in a quadratcount
object,
use as.tess
.
If X
is a split point pattern (object of class
"splitppp"
then quadrat counting will be performed on
each of the components point patterns, and the resulting
contingency tables will be returned in a list. This list can be
printed or plotted.
Marks attached to the points are ignored by quadratcount.ppp
.
To obtain a separate contingency table for each type of point
in a multitype point pattern,
first separate the different points using split.ppp
,
then apply quadratcount.splitppp
. See the Examples.
Diggle, P.J. Statistical analysis of spatial point patterns. Academic Press, 2003.
Stoyan, D. and Stoyan, H. (1994) Fractals, random shapes and point fields: methods of geometrical statistics. John Wiley and Sons.
plot.quadratcount
,
intensity.quadratcount
,
quadrats
,
quadrat.test
,
tess
,
hextess
,
quadratresample
,
miplot
X <- runifrect(50)
quadratcount(X)
quadratcount(X, 4, 5)
quadratcount(X, xbreaks=c(0, 0.3, 1), ybreaks=c(0, 0.4, 0.8, 1))
qX <- quadratcount(X, 4, 5)
# plotting:
plot(X, pch="+")
plot(qX, add=TRUE, col="red", cex=1.5, lty=2)
# irregular window
plot(humberside)
qH <- quadratcount(humberside, 2, 3)
plot(qH, add=TRUE, col="blue", cex=1.5, lwd=2)
# multitype - split
plot(quadratcount(split(humberside), 2, 3))
# quadrats determined by tessellation:
B <- dirichlet(runifrect(6))
qX <- quadratcount(X, tess=B)
plot(X, pch="+")
plot(qX, add=TRUE, col="red", cex=1.5, lty=2)
Run the code above in your browser using DataLab