jec12321-sup-0001-AppendixS1-S3

advertisement
Supporting Information
Fire, percolation thresholds and the savanna forest transition: A neutral model
approach
Sebastián R. Abades1, 2, 3, Aurora Gaxiola2,3 and Pablo A. Marquet1, 2, 3, 4,5,6,7*
1
Departamento de Ecología, Facultad de Ciencias Biológicas, Pontificia Universidad
Católica de Chile, Alameda 340, C.P. 8331150, Santiago, Chile.
2
Instituto de Ecología y Biodiversidad (IEB), Casilla 653, Santiago, Chile.
3
Laboratorio Internacional en Cambio Global (LINCGlobal) Pontificia Universidad
Católica de Chile, Alameda 340, Santiago, Chile.
4
5
The Santa Fe Institute, 1399 Hyde Park Road, Santa Fe, New Mexico 87501, USA
Instituto de Sistemas Complejos de Valparaíso (ISCV), Subida Artilleria 470, Valparaíso,
Chile
6
Centro de Cambio Global Pontificia Universidad Católica de Chile, Avenida Vicuña
Mackenna 4860, Santiago, Chile.
7
South American Institute for Resilience and Sustainability Studies (SARAS),10302 Bella
Vista, Maldonado, Uruguay
*Corresponding author
E-mail: pmarquet@bio.puc.cl
1
APPENDIX S1: Basic percolation theory
In this section we make a short review of the basic notions of percolation, critical
exponents and scaling laws for spatial clustering phenomena (see Oborny et al.1 for a
review akin to metapopulation theory, and Solé and Bascompte 200622 for a general
review and applications in ecology).
1. Critical exponents
Random site percolation models provide simple examples of spatial critical phenomena2-5.
In these models, sites in a lattice (ideally of infinite size) are randomly occupied with a
fixed probability, and nearby occupied sites are connected according to some predefined
rule, creating clusters of varying sizes4. Usually, one is interested in how different cluster
attributes, such as cluster size and other statistics, change as we vary occupation
probability6,7. Despite its simplicity, these types of models exhibit a second-order phase
transition around a non-trivial occupation probability pc 8,9. This phase transition is
characterized by the sudden appearance of a giant cluster that encompasses a large
fraction of occupied sites, creating long-range connectivity across space4,9. In other words,
if one takes one site at random, the probability that the chosen site belongs to the largest
cluster vanishes for p < pc and monotonically increase for p > pc. Close to pc , the size of
the spanning cluster LC(p) relates to the distance from the critical point pc by a powerlaw
LC(p) ~ (p - pc)
2


where LC(p) is the fraction of sites in the largest cluster, and  is a critical exponent. This
exponent is regarded as universal, in the sense that its value is not affected by the
connectivity rule employed to form clusters (i.e., is independent of the underlying
microscopic properties of the system), although do depend on lattice dimensionality. On
the contrary, percolation threshold values pc are not universal10,11.
Other quantities also behave as power-laws in the vicinity of pc. Let us define the
correlation function G(r) as the probability that two sites separated by a distance r apart
belong to the same cluster (excluding the spanning cluster from calculations). For large
values of r at a fixed p, G(r) decays exponentially as a function of r
G(r) ~ -r / e(p)
(2)
where (p) quantifies the spatial extent of correlations (i.e., the typical diameter of a
cluster other than the spanning cluster, or the average distance between two sites
belonging to the same cluster). However, in the vicinity of pc long-range correlations
appear in the form of a power-law like
G(r) ~ r-
(3)
and consequently  (p  pc) diverges. This means that scale-invariant pattern develops in
space, and there is no longer a typical cluster size. The divergence of the characteristic
scale is incorporated into the critical behavior as
3
 (p) ~ |p - pc|-
(4)
where  is another universal critical exponent.
Another quantity that displays critical behavior is the mean cluster size (p),
which corresponds to the average number of sites (or ``mass'') that belong to an s-size
cluster (again, excluding the spanning cluster). This quantity behaves like
(p) ~ |p - pc|-


where  is another universal critical exponent controlling the divergence of  around pc ,
an is also related to the absence of a characteristic scale around pc. This occurs because in
the vicinity of pc clusters organize in space forming self-affine patterns12.
All the above relations (and others not revised here) are asymptotically valid for
infinitely large lattices. For lattices of size L  L , exponent values are affected by finite
size effects created by boundary conditions10,11,13. By exploiting the self-similar nature of
percolation at pc , Finite Size Scaling Theory and Renormalization Group Theory have
demonstrated that the following size relations are valid around the critical point
LC(p) ~ L- 


(p) ~ L


4

(p) ~ L
(8)
These lattice size relations are useful to derive asymptotic values for the critical
exponents, by extrapolating to a very large lattice size the values obtained at small size
maps. Also, as it will be shown below, they allow us to obtain scaling-laws that
interrelate critical exponents14-16.
2. Scaling laws
Critical exponents are not independent of each other, but relate through several scalinglaws3,17-19. Here, we are interested in one form of scaling-laws that links some of the
critical exponents described before, to the fractal dimension in the spatial pattern of
clusters. Given that fractals shapes are not compact objects, they fill a fractional
dimension D smaller than the Euclidean dimension d in which they are embeded. Thus,
near pc a cluster of typical diameter  occupies a mass D smaller than the containing
Euclidean volume d. Then, around pc , the fraction of occupied volume space D/d is
dominated by the spanning probability LC(p). Using Eqs.6-8 we easily found that the
fractal dimension relates to critical exponents through the scaling-law
D = d – 



Scaling-laws for other exponents also exist, and have been extensively reviewed
elsewhere12,20. The existence of this type of scaling-laws reveals the non-trivial result that,
5
when microscopically disordered systems develop macroscopic order through criticality,
they do so in a deep form by creating mechanical dependencies between macroscopic
attributes8,16,21. The scaling-law in Eq. 9 is one special case of scaling known as
hyperscaling4,12,19, due to the fact that it explicitly includes dimensionality d. We took
advantage from the scaling theory reviewed above to test whether geographical
populations exhibit hallmarks of criticality. In particular, we assessed the existence of the
scaling relations predicted in Eqs. 1, 4 and 5. Furthermore, we tested the hyperscaling
hypothesis by contrasting the fractal dimension estimated by Eq. 9 , against the fractal
dimensions directly estimated from the geographical species occupancy patterns.
REFERENCES
1. Oborny, B., Meszena, G. & Szabo, G. Dynamics of Populations on the verge of
extinction. Oikos, 109, 291-296 (2005).
2. Lee, J. C. Lacunarity and percolation phase transitions. J. Stat. Phys. A: Math. Gen., 24,
L377-L381 (1991).
3. Stauffer, D. Scaling theory of percolation clusters. Phys. Rep., 1, 1-74 (1979).
4. Stauffer, D. Introduction to Percolation Theory (Taylor & Francis, London, 1985).
5. Aharony, A. Percolation, fractals, and anomalous diffusion. J. Stat. Phys., 34, 931-939
(1984).
6. Leath, P. L. Cluster size and boundary distribution near percolation threshold. Phys.
Rev. B, 14, 5046-5055 (1976).
6
7. Manna, S. S. & Naeem, J. Growth probability distribution in percolation. J. Phys. A:
Math. Gen., 24, 1593-1601 (1991).
8. Stauffer, D. & Aharony, A. Introduction to Percolation Theory (Taylor & Francis,
London, 1992).
9. Stauffer, D. Scaling assumption for animal lattice in percolation theory. J. Stat. Phys.,
18, 125-136 (1978).
10. Sornette, D. Critical Phenomena in the Natural Sciences – Chaos, Fractals,
Selforganization and disorder: concepts and tools (Springer, Berlin, 2000).
11. Wilson, K. G. The renormalization group and the critical phenomena. Rev. Mod.
Phys., 55, 583-600 (1983).
12. Family, F. Fractal dimension and grand universality of critical phenomena. J. Stat.
Phys., 36, 881-896 (1984).
13. Fisher, M. E. & Barber, M. N. Scaling theory for finite-size effects in the critical
region. Phys. Rev. Lett., 28, 1516-1519 (1972).
14. Chave, J., Levin, S. Scale and scaling in ecological and economic systems. Environ.
Res. Econ., 26, 527-557 (2003).
15. Maritan, A., Rinaldo, A., Rodríguez-Iturbe, R., Rigon, R. & Giacometti, A. Scaling in
river networks. Phys. Rev. E, 53, 1510-1515 (1996).
16. Carcciolo, S. & Sokal, A. Monte Carlo test of a hyperscaling relation for the twodimensional self-avoiding walk. J. Phys. A: Math. Gen., 20, 2569-2576 (1987).
17. Tang, C. & Bak, P. Critical exponents and scaling relations for self-organized critical
phenomena. Phys. Rev. Lett., 60, 2347-2350 (1988).
18. Bunde, A. & Gouyet, J. F. On scaling relations in growth models for percolating
7
clusters and diffusion fronts. J. Phys. A: Math. Gen., 18, L285-L287 (1985).
19. Willemsen, J. F. Investigations on scaling and hyperscaling for invasion percolation.
Phys. Rev. Lett., 52, 2197-2200 (1984).
20. Kun, F., Wittel, F. K., Herrmann, H. J., Kroplin, B. H. & Malloy, K. J. Scaling
behavior of fragment shapes. Phys. Rev. Lett. 96, 025504-025507 (2006).
21. Shur, M. S. Critical exponents describing divergence of the correlation radius in
percolation problems. J. Phys. C: Solid State Phys., 9, L229-L230 (1976).
22. Solé, R. V. and J. Bascompte. Self-organization in complex ecosystems. Princeton
University Press, Princeton, NJ. (2006).
8
APPENDIX S2 R code for neutral model simulations
This code is provided as is. Comments have been included to guide the user along the
workflow. Many chunks of code can be improved by replacing loops by functions of the
apply family. Parallelization can also be implemented.
require(SDMTools)
########################################################################
########################
### Authors: Sebastián Abades, Aurora Gaxiola & Pablo Marquet
### Year: 2014
### Community neutra simulation
########################################################################
########################
### Explanation
########################################################################
########################
### All calculations are performed upon a 3d array Mat[i,j,s], wherein each cell
### i,j are spatial coordinated, and k is a layer of abundances for the s-th species.
### Therefore, Mat is an stack of species that is fully updated over the course of
### each iteration.
### Update is performed in two steps:
### i) First, a random proportion of individuals are killed in each site
### ii) New individuals taken from the neighborhood + individuals remaining in the
perturbed site
### are sampled, and the site is refilled up to J individuals.
### Functions available are:
### kill.rand : randomly kill individuals across species at a given site
### fill.rand: re-fill empty slots left by death individuals. Sample J-killed individuals
###
from neighborhood (9 nn + focal site)
### simula: run the above rules for a given number of iterations (it), number of
species(S),
###
number of individuals (J), and lattice dimension (N). Output is a list with
updated species
###
stack (i.e., maps for the last iteration), and snapshots of percolation cluster
vs site occupancy sampled
###
from different species configurations from t/2 onwards.
### span : calculate one species occupancy (site proportion) and check whether or its
spatial pattern percolate
### span2: apply span to the entire stack
########################################################################
########################
9
########################################################################
########################
### randomly kill a given proportion of individuals
########################################################################
########################
kill.rand<-function(vec,prop){
new.J<-ceiling(sum(vec)*prop)
while(sum(vec)>=new.J){
to.sample<-which(vec!=0)
if(length(to.sample)!=0){
i<-sample(which(vec!=0),1)
vec[i]<-vec[i]-1
}
}
### in case nagative values arise, set them to zero
check<-any(vec<0)
if(check==TRUE){
vec[which(vec<1)]<-0
}
return(vec)
}
########################################################################
########################
# Immigration from NN + local birth
########################################################################
########################
fill.rand<-function(Mat,i,j,J){
v1<-Mat[i-1,j-1,];v2<-Mat[i-1,j,];v3<-Mat[i-1,j+1,];v4<-Mat[i,j-1,];v5<Mat[i,j+1,];v6<-Mat[i+1,j-1,];v7<-Mat[i+1,j,];v8<-Mat[i+1,j+1,];
vecinos<-v1+v2+v3+v4+v5+v6+v7+v8
local<-Mat[i,j,]
K<-sum(local)
delta<-as.integer(round(J-K))
fill<-0
10
if(delta >0){
if(sum(vecinos)==0) vecinos<-1
fill<-rmultinom(1,delta,local+vecinos)
}
########################################################################
########################
### Neutral community simulation
########################################################################
########################
simula<-function(N,S,J,it){
#prop<-runif(1,0,1)
# if low prop are allowed, same results are obtained, but take much longer to recover the
percolation behaviour
prop<-runif(1,0.5,.99)
# initial condition is even abundance and distribution for all species.
JJ<-ceiling(J/S)
Mat<-array(JJ,dim=c(N,N,S))
# For ver large matrices, unhide next row. It save Mat in a file outside R. Will not run
faster, but
# won't crash when reaching default storage limit
#Mat<- ff(inds, dim=c(N,N,S),filename="arr.ffd", vmode="double")
Mat[1,,]<-0
Mat[(N),,]<-0
Mat[,1,]<-0
Mat[,N,]<-0
# this will store side records of percolation behaviour observed during the simulation
out.clust<-NULL
pb <- txtProgressBar(min = 2, max = it, style = 3)
# Open iterations
for(t in 1:it){
#cat("remaining iterations",it-t,"\n")
setTxtProgressBar(pb, t)
### Killing rule
Mat<-apply(Mat,3,kill.rand, prop=prop)
Mat<-array(Mat,dim=c(N,N,S))
11
### Here it would be wise to include a rule for taking a random subset of sites to
update from vector "barre"
### specially for very large lattices.
#barre<-2:(N-1)
barre1<-sample(2:(N-1),round(N/4),replace=FALSE)
barre2<-sample(2:(N-1),round(N/4),replace=FALSE)
for(i in barre1){
for(j in barre2){
upd<-fill.rand(Mat,i,j,J)
Mat[i,j,]<-upd
}
} # close loop for sites update
### Start recording percolation statistics if t>t/2
if(t > t/2){
tmp.clust<-t(sapply(1:dim(Mat)[3],span2,Mat))
out.clust<-rbind(out.clust,tmp.clust)
}
### cut simularion if community abundance gets too low
if(sum(Mat)<10) return(list(Mat=Mat, out.clus=round(out.clust,2)))
### here can be inserted a cutoff criteria to avoid unnecesary iterations when steady state
has been achieved
} # close temporal loop
close(pb)
return(list(Mat=Mat, out.clus=round(out.clust,2)))
} # close main function
########################################################################
########################
### Check if spanning cluster exists and calculate proportion of sites occupied by species
########################################################################
########################
span<-function(Mat){
Mat<-ifelse(Mat!=0,1,0)
if(sum(Mat)==0) return(0)
if(sum(Mat)==prod(Mat)) return(1)
### here we are generous about spanning clusters, and consider one if it touches the
12
### borders or an adyacent bordering site.
Mat<-Mat[-c(1,2,nrow(Mat)-1,nrow(Mat)),]
Mat<-Mat[,-c(1,2,nrow(Mat)-1,nrow(Mat))]
labs<-ConnCompLabel(Mat)
patch<-PatchStat(labs)
patch<-patch[patch$patchID!=0,]
id<-patch$patchID[which.max(patch$n.cell)[1]]
coords<-which(labs==id,arr.ind=TRUE)
bordes<-apply(coords,2,range)
horiz<-sum(bordes[,1]==c(1,nrow(Mat)))
vert<-sum(bordes[,2]==c(1,ncol(Mat)))
if(horiz==2 | vert==2){
return(patch$n.cell[which.max(patch$n.cell)[1]])
} else{
return(0)
}
}
########################################################################
########################
### Evaluate span across all species in the stack
########################################################################
########################
span2<-function(X,M){
Mat<-M[,,X]
s<-span(Mat)
MM<-ifelse(Mat!=0,1,0)
#MM[-c(1,nrow(MM)),-c(1,ncol(MM))]<-0
p<-sum(MM)/prod(dim(MM))
o<-c(p,s)
return(o)
}
13
APPENDIX S3 Impact of neighborhood geometry upon percolation threshold
Relationship between pc and the coordination number (z) to illustrate the effect of
different neighbourhoods on percolation probability. A given z value can be achieved by
several complex neighborhood arrangements, however, the general pattern indicate that
the larger the number of neighbors, the smaller the threshold value.
Data taken from:
Malarz, K & Galam, S. 2005. Square lattice site percolation at increasing ranges of
neighbor interactions. Phys. Rev. E71: 016125.
14
Download