This vignette contains a quick introduction.
Data
The main data format is wmppp for weighted, marked point
pattern. It inherits from the ppp class of the
spatstat package.
A wmppp object can be created from the coordinates of
points, their type and their weight.
library("dbmss")
# Draw the coordinates of 10 points
X <- runif(10)
Y <- runif(10)
# Draw the point types.
PointType <- sample(c("A", "B"), size = 10, replace = TRUE)
# Plot the point pattern. Weights are set to 1 ant the window is adjusted
autoplot(wmppp(data.frame(X, Y, PointType)))

An example dataset is provided: it is a point pattern from the
Paracou forest in French Guiana. Two species of trees are identified,
other trees are of type “Other”. Point weights are their basal area, in
square centimeters.
# Plot (second column of marks is Point Types) 
autoplot(
  paracou16, 
  labelSize = expression("Basal area (" ~cm^2~ ")"), 
  labelColor = "Species"
)

 
Main functions
The main functions of the package are designed to calculate
distance-based measures of spatial structure. Those are non-parametric
statistics able to summarize and test the spatial distribution
(concentration, dispersion) of points.
The classical, topographic functions such as Ripley’s K are
provided by the spatstat package and supported by
dbmss for convenience.
Relative functions are available in dbmss only. These are
the \(M\) and \(m\) and \(K_d\) functions.
The bivariate \(M\) function can be
calculated for Q. Rosea trees around V. Americana
trees:
autoplot(
  Mhat(
    paracou16, 
    ReferenceType = "V. Americana", 
    NeighborType = "Q. Rosea"
  ), 
  main = ""
)

 
Confidence envelopes
Confidence envelopes of various null hypotheses can be calculated.
The univariate distribution of Q. Rosea is tested against the
null hypothesis of random location.
p16_envelope <- KdEnvelope(paracou16, ReferenceType = "Q. Rosea", Global = TRUE)
autoplot(
  p16_envelope, 
  main = ""
)

Significant concentration is detected between about 10 and 20
meters.
Goodness of Fit tests are available to produce a p-value, i.e. the
probability to erroneously reject the null hypothesis.
# Test H0 up to 30m
GoFtest(p16_envelope, Range = c(0, 30))
## [1] 0.00990099
An analytical test, that does not rely on simulations, is available
for the K function against complete spatial randomness in a rectangular
window.
# Simulate a Poisson point pattern
X <- rpoispp(1000)
autoplot(as.wmppp(X))

# Test it
Ktest(X, r = seq(0.1, .5, .1))
## [1] 0.8457173
 
Maps
Individual values of some distance-based measures can be computed and
mapped.
# Calculate individual intertype M(distance) value
ReferenceType <- "V. Americana"
NeighborType <- "Q. Rosea"
fvind <- Mhat(
  paracou16, 
  r = c(0, 30), 
  ReferenceType = ReferenceType, 
  NeighborType = NeighborType, 
  Individual = TRUE
)
# Plot the point pattern with values of M(30 meters)
p16_map <- Smooth(
  paracou16, 
  fvind = fvind, 
  distance = 30,
  # Resolution
  Nbx = 512, 
  Nby = 512
)
par(mar = rep(0, 4))
plot(p16_map, main = "")
# Add the reference points to the plot
is.ReferenceType <- marks(paracou16)$PointType == ReferenceType
points(
  x = paracou16$x[is.ReferenceType], 
  y = paracou16$y[is.ReferenceType], 
  pch = 20
)
# Add contour lines
contour(p16_map, nlevels = 5, add = TRUE)
