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)
