library(spatstat)
## Loading required package: spatstat.data
## Loading required package: spatstat.geom
## spatstat.geom 3.2-9
## Loading required package: spatstat.random
## spatstat.random 3.2-3
## Loading required package: spatstat.explore
## Loading required package: nlme
## spatstat.explore 3.2-7
## Loading required package: spatstat.model
## Loading required package: rpart
## spatstat.model 3.2-11
## Loading required package: spatstat.linnet
## spatstat.linnet 3.1-5
## 
## spatstat 3.0-8 
## For an introduction to spatstat, type 'beginner'
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:nlme':
## 
##     collapse
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
# Simulated data
n <- 100
patternA <- data.frame(x=rnorm(n),y=rnorm(n),id="A")
patternB <- data.frame(x=runif(n),y=runif(n),id="B")
patternC <- data.frame(expand.grid(x = seq(0, 1, length.out = sqrt(n)),
                                   y = seq(0, 1, length.out = sqrt(n))),
                       id="C")

patternD <- data.frame(expand.grid(x = rep(seq(0, 1, length.out = n/20),2),
                                   y = rep(seq(0, 1, length.out = n/20),2)),
                       id="D")
patternD$x <- jitter(patternD$x)
patternD$y <- jitter(patternD$y)

simDat <- bind_rows(patternA,patternB,patternC,patternD)

simDat <- simDat %>% group_by(id) %>% 
  mutate(x = scales::rescale(x), 
         y=scales::rescale(y))
patternD <- simDat |> filter(id=="D")


ggplot(patternD, aes(x = x, y = y)) +
  geom_point() + coord_fixed() +
  ggtitle("Pattern D")

patternD <- ppp(x = patternD$x, y=patternD$y,
                xrange=c(0,1), yrange=c(0,1),
                unitname="km")
summary(patternD)
## Planar point pattern:  100 points
## Average intensity 100 points per square km
## 
## Coordinates are given to 8 decimal places
## 
## Window: rectangle = [0, 1] x [0, 1] km
## Window area = 1 square km
## Unit of length: 1 km
plot(patternD)

plot(density(patternD))
points(patternD, pch = 20)

envK <- envelope(patternD, Kest, nsim = 100, verbose = FALSE)
plot(envK)

envL <- envelope(patternD, Lest, nsim = 100, verbose = FALSE)
plot(envL)

ggplot(envK, mapping = aes(x=r, ymin = lo-pi*r^2, ymax=hi-pi*r^2)) +
  geom_ribbon(fill="grey",alpha=0.5) + 
  geom_line(mapping = aes(y=theo-pi*r^2),col="red", linetype="dashed") +
  geom_line(mapping = aes(y=obs-pi*r^2)) +
  labs(y=expression(K(r) - pi~r^2), x = "r") +
  scale_x_continuous(expand = c(0,0))

Sporophores

data(sporophores)
summary(sporophores)
## Marked planar point pattern:  330 points
## Average intensity 0.004998072 points per square cm
## 
## Coordinates are given to 6 decimal places
## 
## Multitype:
##             frequency proportion    intensity
## L laccata         190 0.57575760 0.0028776780
## L pubescens        11 0.03333333 0.0001666024
## Hebloma spp       129 0.39090910 0.0019537920
## 
## Window: polygonal boundary
## single connected closed polygon with 128 vertices
## enclosing rectangle: [-145, 145] x [-145, 145] cm
##                      (290 x 290 cm)
## Window area = 66025.5 square cm
## Unit of length: 1 cm
## Fraction of frame area: 0.785
plot(sporophores, chars=c(16,1,2), cex=0.6, leg.args=list(cex=1.1))
points(0,0,pch=16, cex=2)
text(15,8,"Tree", cex=0.75)

sporo.df <- as.data.frame(sporophores)
plot(density(sporophores))
points(sporo.df, pch = 16:18)

sporo.df
##                x           y       marks
## 1   -103.6158442   -3.025300   L laccata
## 2   -103.3589996   -1.508009   L laccata
## 3   -102.1022493   -2.776740   L laccata
## 4    -99.5791157  -10.583918   L laccata
## 5    -97.0578768  -11.347754   L laccata
## 6    -96.8066928  -12.605935   L laccata
## 7    -97.5627888  -15.123499   L laccata
## 8    -88.9916107   -3.783440   L laccata
## 9    -88.7390657   -4.537537   L laccata
## 10   -86.4698785  -15.885812   L laccata
## 11   -86.2180363  -10.841532   L laccata
## 12   -84.4534195   -8.822556   L laccata
## 13   -94.5369357  -25.969469   L laccata
## 14   -92.2679487  -29.748255   L laccata
## 15   -91.0074904  -26.474235   L laccata
## 16   -85.7126050  -25.213086   L laccata
## 17   -86.2178709  -26.471019   L laccata
## 18   -84.4534302  -27.480711   L laccata
## 19   -82.6893423  -25.206816   L laccata
## 20   -82.6896576  -30.502049   L laccata
## 21   -82.1849415  -29.747602   L laccata
## 22   -79.6638034  -29.748442   L laccata
## 23   -77.6483741  -30.500718   L laccata
## 24   -76.6371047  -29.750191   L laccata
## 25   -75.1250709  -28.740441   L laccata
## 26   -72.3519189  -27.480645   L laccata
## 27   -50.4190398  -67.816041   L laccata
## 28   -51.1793870  -69.577047   L laccata
## 29   -65.0393306  -82.685703   L laccata
## 30   -64.2814292  -80.671063   L laccata
## 31   -63.5275960  -81.937702   L laccata
## 32   -59.7464070  -78.656643   L laccata
## 33   -58.2355099  -76.890782   L laccata
## 34   -57.7300368  -80.420463   L laccata
## 35   -57.2279298  -77.393776   L laccata
## 36   -55.4658510  -79.408982   L laccata
## 37   -63.5304850  -93.280529   L laccata
## 38   -61.7661265  -92.768788   L laccata
## 39   -51.9366849  -93.023397   L laccata
## 40   -49.9163747  -91.761905   L laccata
## 41   -45.6354132  -95.296614   L laccata
## 42   -63.5241851  -96.809101   L laccata
## 43   -61.7616563  -97.812884   L laccata
## 44   -60.5040230  -98.572302   L laccata
## 45   -63.5256091 -101.593944   L laccata
## 46   -62.2667903 -101.854952   L laccata
## 47   -52.4408157 -102.852629   L laccata
## 48   -51.4250026 -100.586729   L laccata
## 49   -50.1671714 -103.113839   L laccata
## 50   -50.4216204 -103.112117   L laccata
## 51   -48.3981545 -101.091765   L laccata
## 52   -46.1316619 -100.585811   L laccata
## 53   -39.5758965  -79.917588   L laccata
## 54     3.0229834  -50.924353   L laccata
## 55     9.5778330 -101.599545   L laccata
## 56    10.5841464 -102.102881   L laccata
## 57    12.0967310 -100.837011   L laccata
## 58    10.8414760  -99.075594   L laccata
## 59    12.1061258 -112.188713   L laccata
## 60    18.4017403 -107.141215   L laccata
## 61    17.9043744 -102.102052   L laccata
## 62    20.1645332 -102.097779   L laccata
## 63    22.6894737 -103.113162   L laccata
## 64    18.9083929  -96.806679   L laccata
## 65    42.6084591  -81.426734   L laccata
## 66    43.3609312  -80.924175   L laccata
## 67    40.3322367  -75.127312   L laccata
## 68    41.6000743  -75.627643   L laccata
## 69    43.1084443  -74.118311   L laccata
## 70    44.1188122  -75.629086   L laccata
## 71    81.1740159  -47.398219   L laccata
## 72    83.6979961  -47.645240   L laccata
## 73    86.9770058  -55.971112   L laccata
## 74    89.7511916  -54.706816   L laccata
## 75    87.4760845  -53.692683   L laccata
## 76    88.7359342  -52.434329   L laccata
## 77   100.8440669  -46.383986   L laccata
## 78   107.3964715  -45.635009   L laccata
## 79   108.1487185  -44.114563   L laccata
## 80   104.1155368  -55.213925   L laccata
## 81   110.4200381  -56.465703   L laccata
## 82   110.6744589  -57.478242   L laccata
## 83   111.4273059  -59.248591   L laccata
## 84   110.9208801  -60.755405   L laccata
## 85   115.2062175  -55.964398   L laccata
## 86   115.2130621  -53.692666   L laccata
## 87   115.4614958  -66.554759   L laccata
## 88   117.7344156  -67.817876   L laccata
## 89   118.9877311  -66.807570   L laccata
## 90   117.9880508  -70.838438   L laccata
## 91   118.4869513  -70.334390   L laccata
## 92   119.7500242  -71.847437   L laccata
## 93   120.7570312  -73.871327   L laccata
## 94   118.2346350  -75.119754   L laccata
## 95   -37.3102919  -80.924115   L laccata
## 96    80.1692424  -42.350665   L laccata
## 97    81.4300635  -40.081446   L laccata
## 98    83.6967296  -40.337644   L laccata
## 99    84.7053876  -38.571580   L laccata
## 100   82.9406002  -38.572019   L laccata
## 101   91.0093793  -44.120205   L laccata
## 102   90.0029521  -46.138576   L laccata
## 103   92.2711359  -46.130501   L laccata
## 104   90.7604822  -48.656092   L laccata
## 105   89.7513820  -48.903717   L laccata
## 106   92.2723102  -49.158145   L laccata
## 107  -18.6552239   -6.302230   L laccata
## 108  -16.8905162   -5.041983   L laccata
## 109  -14.6219582   -1.512725   L laccata
## 110  -21.4287570   -4.538016   L laccata
## 111  -21.1767489   -3.530335   L laccata
## 112  -26.4707718    1.513419   L laccata
## 113  -28.9913891    3.781736   L laccata
## 114  -26.2188170    3.780706   L laccata
## 115  -26.4705689    5.797464   L laccata
## 116  -17.8988042    6.051119   L laccata
## 117  -17.8985658    7.563405   L laccata
## 118  -15.6299783    6.049907   L laccata
## 119  -15.6307457    7.562294   L laccata
## 120  -23.9497471    8.067441   L laccata
## 121  -23.1932633    9.328587   L laccata
## 122  -24.2023016   11.344075   L laccata
## 123  -39.0757443    5.296008   L laccata
## 124  -35.5466458    9.327297   L laccata
## 125  -35.2942328   11.594811   L laccata
## 126  -32.2697214   10.586903   L laccata
## 127  -32.5207666   13.110448   L laccata
## 128  -30.5038780   13.864793   L laccata
## 129   58.4869618   26.469955   L laccata
## 130   59.9994096   27.982860   L laccata
## 131   66.0512920   25.459139   L laccata
## 132   71.5971933   24.956314   L laccata
## 133   71.0930556   26.216884   L laccata
## 134   72.8566507   26.974887   L laccata
## 135   73.3598876   28.994772   L laccata
## 136   76.3849312   21.683604   L laccata
## 137   77.6459822   19.412953   L laccata
## 138   77.8985468   18.658693   L laccata
## 139   78.4034929   25.712301   L laccata
## 140   77.8980623   26.725230   L laccata
## 141   65.5477313   39.576593   L laccata
## 142   68.3178162   36.808988   L laccata
## 143   70.3368058   35.040897   L laccata
## 144   74.3685588   35.548455   L laccata
## 145   80.1691927   30.248820   L laccata
## 146   78.1517915   32.517873   L laccata
## 147   79.9137832   33.532613   L laccata
## 148   80.1671265   34.035606   L laccata
## 149   68.5709669   42.856569   L laccata
## 150   70.8388133   42.607097   L laccata
## 151   71.8473438   44.118846   L laccata
## 152   73.8666469   43.358777   L laccata
## 153   75.8838584   42.097920   L laccata
## 154   64.7900206   75.882159   L laccata
## 155   65.5456683   72.857102   L laccata
## 156   67.5628888   71.848081   L laccata
## 157   68.3193220   72.856607   L laccata
## 158   70.0847022   74.370227   L laccata
## 159   68.5680500   75.878689   L laccata
## 160   66.8047568   77.897297   L laccata
## 161   65.7957041   79.661457   L laccata
## 162   68.5718088   78.404162   L laccata
## 163   67.5622318   80.167141   L laccata
## 164   71.0902140   79.661875   L laccata
## 165   72.1039441   78.406196   L laccata
## 166   73.3584514   80.416790   L laccata
## 167   77.6437913   79.408849   L laccata
## 168   78.4043065   74.623470   L laccata
## 169   79.9166260   74.622842   L laccata
## 170   87.2256009   80.418556   L laccata
## 171   87.9847218   78.404791   L laccata
## 172   78.4011670   62.267740   L laccata
## 173   81.9355121   67.313100   L laccata
## 174   87.2263823   60.000126   L laccata
## 175   88.7410558   59.244536   L laccata
## 176   87.7343184   62.775662   L laccata
## 177   90.0015379   62.017846   L laccata
## 178   91.5139330   60.001041   L laccata
## 179   93.0223671   60.250545   L laccata
## 180   91.2569332   64.030950   L laccata
## 181   91.7671972   64.539737   L laccata
## 182   91.0095721   65.295466   L laccata
## 183   92.0155209   66.806497   L laccata
## 184   91.5160446   78.405827   L laccata
## 185   90.5006406   75.627228   L laccata
## 186   90.7594540   77.397932   L laccata
## 187   94.2831798   77.897189   L laccata
## 188   90.7588975   79.918004   L laccata
## 189   78.6575129   95.548591   L laccata
## 190   68.0666873   13.111491   L laccata
## 191  -18.1517389   29.747226 L pubescens
## 192  -12.8580422   26.470322 L pubescens
## 193   -7.8142327   26.722925 L pubescens
## 194  -15.1261162   22.436356 L pubescens
## 195  -39.8323647   23.947740 L pubescens
## 196  -35.5463635   26.721470 L pubescens
## 197  -34.0335681   18.655025 L pubescens
## 198  -22.6893428   -9.075279 L pubescens
## 199   23.9488973  -12.857350 L pubescens
## 200   -5.2928733  -31.512594 L pubescens
## 201   -9.8326979  -40.335832 L pubescens
## 202  -10.3380422   76.637870 Hebloma spp
## 203  -10.0828790   64.790126 Hebloma spp
## 204  -17.9013994   57.730194 Hebloma spp
## 205  -10.3384919   56.722528 Hebloma spp
## 206   -5.7988071   57.226954 Hebloma spp
## 207   -4.2865340   55.209845 Hebloma spp
## 208  -19.6656171   45.125001 Hebloma spp
## 209  -32.5224524   50.418747 Hebloma spp
## 210  -51.1757652   28.740680 Hebloma spp
## 211  -71.0923538    3.280466 Hebloma spp
## 212  -69.5783394  -40.086715 Hebloma spp
## 213  -63.5281609  -31.513648 Hebloma spp
## 214  -49.4134357  -36.300399 Hebloma spp
## 215  -45.8835829  -30.502069 Hebloma spp
## 216  -51.4285715  -50.167779 Hebloma spp
## 217  -47.8975381  -46.891862 Hebloma spp
## 218  -45.6310606  -51.931700 Hebloma spp
## 219  -45.6292031  -48.655929 Hebloma spp
## 220  -35.5467313  -48.906457 Hebloma spp
## 221  -32.5201437  -44.874334 Hebloma spp
## 222  -38.5706988  -69.327797 Hebloma spp
## 223  -34.5344112  -70.337405 Hebloma spp
## 224  -34.5343743  -68.068646 Hebloma spp
## 225  -35.7983820  -78.907235 Hebloma spp
## 226  -31.2599023  -65.546454 Hebloma spp
## 227  -34.2845022  -62.017237 Hebloma spp
## 228  -31.7649754  -56.974290 Hebloma spp
## 229  -27.2241114  -55.210824 Hebloma spp
## 230  -25.4623691  -57.478707 Hebloma spp
## 231  -25.4640048  -54.200350 Hebloma spp
## 232  -23.6964011  -51.681443 Hebloma spp
## 233   -1.7647454  -26.218676 Hebloma spp
## 234  -21.1791538  -81.679842 Hebloma spp
## 235  -14.1143192  -66.807316 Hebloma spp
## 236  -10.8404563  -72.856934 Hebloma spp
## 237   -5.2967882  -71.343645 Hebloma spp
## 238   -2.0204255  -81.427938 Hebloma spp
## 239    0.7578678  -68.318797 Hebloma spp
## 240    2.5197731  -55.966305 Hebloma spp
## 241    2.7716369  -71.596372 Hebloma spp
## 242    9.0746083  -64.538139 Hebloma spp
## 243    5.2969006  -83.445051 Hebloma spp
## 244    6.2986466  -86.975228 Hebloma spp
## 245   13.6136889  -84.201571 Hebloma spp
## 246   10.0806361  -71.849277 Hebloma spp
## 247   12.3520717  -69.580116 Hebloma spp
## 248   14.6187086  -73.361651 Hebloma spp
## 249   19.1619580  -70.083619 Hebloma spp
## 250   11.3431890  -59.496342 Hebloma spp
## 251   20.9235422  -65.546422 Hebloma spp
## 252   25.9638446  -75.630418 Hebloma spp
## 253   28.2389235  -78.654358 Hebloma spp
## 254   30.7557176  -82.184693 Hebloma spp
## 255   28.9921997  -73.612457 Hebloma spp
## 256   37.0572753  -69.076723 Hebloma spp
## 257   25.7166353  -65.796880 Hebloma spp
## 258   26.7203792  -61.513167 Hebloma spp
## 259   35.0392239  -63.026925 Hebloma spp
## 260   36.5545544  -61.512108 Hebloma spp
## 261   35.2934549  -52.689798 Hebloma spp
## 262   35.2918904  -44.119230 Hebloma spp
## 263   37.8141050  -45.631093 Hebloma spp
## 264   44.3700384  -54.200939 Hebloma spp
## 265   47.8978459  -61.513168 Hebloma spp
## 266   49.4120124  -46.134025 Hebloma spp
## 267   51.1771641  -43.864134 Hebloma spp
## 268   44.8734736  -18.655824 Hebloma spp
## 269   50.6738267  -33.527040 Hebloma spp
## 270   52.9424634  -27.981235 Hebloma spp
## 271   54.9591496  -21.678060 Hebloma spp
## 272   54.7053629  -17.144606 Hebloma spp
## 273   71.0901585  -51.431497 Hebloma spp
## 274   70.3350078  -48.908004 Hebloma spp
## 275   72.6063456  -42.854343 Hebloma spp
## 276   69.3271178  -35.041877 Hebloma spp
## 277   73.3606699  -28.741542 Hebloma spp
## 278   70.5876220  -24.707954 Hebloma spp
## 279   63.2779265  -23.443323 Hebloma spp
## 280   65.5459331  -20.419722 Hebloma spp
## 281   66.8062711  -17.144124 Hebloma spp
## 282   42.1004206  -11.091662 Hebloma spp
## 283   45.3783781  -10.586936 Hebloma spp
## 284   40.3356689   -4.536730 Hebloma spp
## 285   61.7642162  -14.117048 Hebloma spp
## 286   63.0256075   -8.316970 Hebloma spp
## 287   66.0504398   -7.562785 Hebloma spp
## 288   79.4107912   -9.583653 Hebloma spp
## 289   63.2770558   -3.782368 Hebloma spp
## 290   65.0421897    1.007996 Hebloma spp
## 291   68.0671700    1.763084 Hebloma spp
## 292   70.0835706    2.523841 Hebloma spp
## 293   65.0417065    5.044065 Hebloma spp
## 294   66.8059321    7.060533 Hebloma spp
## 295   51.4281328    9.076832 Hebloma spp
## 296   51.1761181   11.347092 Hebloma spp
## 297   40.5880753   13.612650 Hebloma spp
## 298   65.7983887    9.325877 Hebloma spp
## 299   73.3613927    9.829667 Hebloma spp
## 300   70.0833383   11.094126 Hebloma spp
## 301   66.0506747   12.100863 Hebloma spp
## 302   69.3268934   19.665038 Hebloma spp
## 303   61.2605249   22.688434 Hebloma spp
## 304   65.7976265   23.697607 Hebloma spp
## 305   68.3189697   23.194753 Hebloma spp
## 306   68.5722327   27.475831 Hebloma spp
## 307   55.7158015   29.997579 Hebloma spp
## 308   55.9648920   32.775473 Hebloma spp
## 309   34.7900153   35.041982 Hebloma spp
## 310   37.5632642   34.789924 Hebloma spp
## 311   36.8062785   38.067128 Hebloma spp
## 312   35.0414616   44.369375 Hebloma spp
## 313   34.7901091   47.142724 Hebloma spp
## 314   39.0752302   46.386099 Hebloma spp
## 315   39.3275535   56.974875 Hebloma spp
## 316   39.5798265   63.276930 Hebloma spp
## 317   43.1088120   61.764742 Hebloma spp
## 318   42.6047224   64.285617 Hebloma spp
## 319   64.2857125   54.454028 Hebloma spp
## 320   46.8904169   51.176527 Hebloma spp
## 321   50.4198498   49.664018 Hebloma spp
## 322   44.8733502   47.142758 Hebloma spp
## 323   47.1428326   47.899209 Hebloma spp
## 324   47.3943260   45.882013 Hebloma spp
## 325   50.1679451   46.890790 Hebloma spp
## 326   46.3862668   44.117599 Hebloma spp
## 327   48.6554392   43.865799 Hebloma spp
## 328   51.6808578   43.361393 Hebloma spp
## 329   50.9245809   39.579667 Hebloma spp
## 330   59.4954169   43.865318 Hebloma spp
sporoK <- envelope(sporophores, Kest, nsim = 100, verbose = FALSE)
plot(sporoK)

ggplot(sporoK, mapping = aes(x=r, ymin = lo-pi*r^2, ymax=hi-pi*r^2)) +
  geom_ribbon(fill="grey",alpha=0.5) + 
  geom_line(mapping = aes(y=theo-pi*r^2),col="red", linetype="dashed") +
  geom_line(mapping = aes(y=obs-pi*r^2)) +
  labs(y=expression(K(r) - pi~r^2), x = "r") +
  scale_x_continuous(expand = c(0,0))

# using subset
heb_pub <- subset(sporophores, 
                  marks %in% c("L pubescens","Hebloma spp"), drop=TRUE)
cross_heb_pub <- envelope(heb_pub, "Lcross", verbose=FALSE)
# or directly in envelope (note i and j arguments)
cross_heb_pub <- envelope(sporophores, "Lcross", i="L pubescens", j = "Hebloma spp", verbose=FALSE)
plot(cross_heb_pub)

cross_lac_pub <- envelope(sporophores, "Lcross", i="L laccata", j = "L pubescens", verbose=FALSE)
plot(cross_lac_pub)

cross_heb_lac <- envelope(sporophores, "Lcross", i="L laccata", j = "Hebloma spp", verbose=FALSE)
plot(cross_heb_lac)