Nothing
torusonesp.all_original=function(species="GIROPA", hab.index20=hab.index20, allabund20=allabund20, plotdim=c(1000,500), gridsize=20)
{
plotdimqx = plotdim[1]/gridsize # Calculates no. of x-axis quadrats of plot. (x is the long axis of plot in the case of Pasoh)
plotdimqy = plotdim[2]/gridsize # Calculates no. of y-axis quadrats of plot.
num.habs = length(unique(hab.index20$habitats)) # Determines tot. no. of habitat types.
GrLsEq = matrix(0,1,num.habs*6) # Creates empty matrix for output.
rownames(GrLsEq) = species # Names single row of output matrix.
for(i in 1:num.habs) # Creates names for columns of output matrix.
{
if(i==1)
cols=c(paste("N.Hab.",i,sep=""), paste("Gr.Hab.",i,sep=""), paste("Ls.Hab.",i,sep=""), paste("Eq.Hab.",i,sep=""), paste("Rep.Agg.Neut.",i,sep=""), paste("Obs.Quantile.",i,sep=""))
if(i>1)
cols=c(cols, paste("N.Hab.",i,sep=""), paste("Gr.Hab.",i,sep=""), paste("Ls.Hab.",i,sep=""), paste("Eq.Hab.",i,sep=""), paste("Rep.Agg.Neut.",i,sep=""), paste("Obs.Quantile.",i,sep=""))
}
colnames(GrLsEq)=cols # Names columns of output matrix.
# CALCULATIONS FOR OBSERVED RELATIVE DENSITIES ON THE TRUE HABITAT MAP
allabund20.sp = allabund20[which(rownames(allabund20)==species),] # pulls out the abundance by quad data for the focal species
spmat = matrix(as.numeric(allabund20.sp), nrow=plotdimqy, plotdimqx, byrow=F) # Fills a matrix, with no. rows = plotdimqy (dim 2) and no. columns = plotdimqx (dim 1), with the indiv. counts per quadrat of one species.
totmat = matrix(apply(allabund20, MARGIN=2, FUN="sum"), plotdimqy, plotdimqx, byrow=F) # calculates total number of stems in each quad for all species and puts in matrix
habmat = matrix(hab.index20$habitats, nrow=plotdimqy, ncol=plotdimqx, byrow=F) # fills matrix with habitat types, oriented in the same way as the species and total matrices above
spstcnthab = numeric() # Creates empty vector for stem counts per sp. per habitat.
totstcnthab = numeric() # Creates empty vector for tot. stem counts per habitat.
for(i in 1:num.habs)
{
totstcnthab[i] = sum(totmat[habmat==i]) # Determines tot. no. stems per habitat of the true map.
spstcnthab[i] = sum(spmat[habmat==i]) # Determines tot. no. stems for focal sp. per habitat of the true map.
}
spprophab=spstcnthab/totstcnthab # Calculates observed relative stem density of focal sp. per habitat of the true map.
# CALCULATIONS FOR RELATIVE DENSITIES ON THE TORUS-BASED HABITAT MAPS
habmat.template=habmat
for (j in 1:4) {
# apply rotations and mirrors
# if j==1 do nothing
if (j==2) habmat = apply(habmat.template, 2, rev)
if (j==3) habmat = t(apply(habmat.template, 1, rev))
if (j==4) habmat = t(apply(apply(habmat.template, 2, rev),1,rev))
# CALCULATIONS FOR RELATIVE DENSITIES ON THE TORUS-BASED HABITAT MAPS
for(x in 0:(plotdimqx-1)) # Opens "for loop" through all 20-m translations along x-axis.
{
for(y in 0:(plotdimqy-1)) # Opens "for loop" through all 20-m translations along y-axis.
{
newhab=matrix(0,plotdimqy,plotdimqx) # Creates empty matrix of quadrats' habitat designations.
# The following "if" statements create the x,y torus-translation of the habitat map.
if(y==0 & x==0)
newhab=habmat
if(y==0 & x>0)
newhab=habmat[c(1:plotdimqy), c((plotdimqx-x+1):plotdimqx, 1:(plotdimqx-x))]
if(x==0 & y>0)
newhab=habmat[c((plotdimqy-y+1):plotdimqy, 1:(plotdimqy-y)), c(1:plotdimqx)]
if(x>0 & y>0)
newhab=habmat[c((plotdimqy-y+1):plotdimqy, 1:(plotdimqy-y)), c((plotdimqx-x+1):plotdimqx, 1:(plotdimqx-x))]
Torspstcnthab = numeric() # Creates empty vector for stem counts per sp. per habitat in torus-based maps.
Tortotstcnthab = numeric() # Creates empty vector for tot. stem counts per habitat in torus-based maps.
for(i in 1:num.habs)
{
Tortotstcnthab[i] = sum(totmat[newhab==i]) # Determines tot. no. stems per habitat of the focal torus-based map.
Torspstcnthab[i] = sum(spmat[newhab==i]) # Determines tot. no. stems for focal sp. per habitat of the focal torus-based map.
}
Torspprophab = Torspstcnthab/Tortotstcnthab # Calculates relative stem density of focal sp. per habitat of the focal torus-based map.
for(i in 1:num.habs)
{
if(spprophab[i] > Torspprophab[i]) # If rel. dens. of focal sp. in focal habitat of true map is greater than rel. dens. of focal sp. in focal habitat of torus-based map, then add one to "greater than" count.
GrLsEq[1,(6*i)-4] = GrLsEq[1,(6*i)-4]+1
if(spprophab[i] < Torspprophab[i]) # If rel. dens. of focal sp. in focal habitat of true map is less than rel. dens. of focal sp. in focal habitat of torus-based map, then add one to "less than" count.
GrLsEq[1,(6*i)-3] = GrLsEq[1,(6*i)-3]+1
if(spprophab[i] == Torspprophab[i]) # If rel. dens. of focal sp. in focal habitat of true map is equal to rel. dens. of focal sp. in focal habitat of torus-based map, then add one to "equal to" count.
GrLsEq[1,(6*i)-2] = GrLsEq[1,(6*i)-2]+1
}
} # Closes "for loop" through all 20-m translations along x-axis.
} # Closes "for loop" through all 20-m translations along y-axis.
} # Closes for loop through mirrors and rotations (j)
for(i in 1:num.habs)
{
GrLsEq[1,(6*i)-5] = spstcnthab[i] # add counts of No. stems in each habitat
if (GrLsEq[1,(6*i)-4]/(4*(plotdimqx*plotdimqy)) <= 0.025) GrLsEq[1,(6*i)-1] = -1 # if rel.dens. of sp in true map is greater than rel. dens. in torus map less than 2.5% of the time, then repelled
if (GrLsEq[1,(6*i)-4]/(4*(plotdimqx*plotdimqy)) >= 0.975) GrLsEq[1,(6*i)-1] = 1 # if rel.dens. of sp in true map is greater than rel. dens. in torus map more than 97.5% of the time, then aggregated
if ( (GrLsEq[1,(6*i)-4]/(4*(plotdimqx*plotdimqy)) < 0.975) & (GrLsEq[1,(6*i)- 4]/(4*(plotdimqx*plotdimqy)) > 0.025) ) GrLsEq[1,(6*i)-1] = 0 # otherwise it's neutral (not different from random dist)
GrLsEq[1,(6*i)] = GrLsEq[1,(6*i)-4]/(4*(plotdimqx*plotdimqy)) # quantile in the TT distribtution of relative densities of the true relative density
}
return(GrLsEq)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.