Type: | Package |
Title: | Forest Health Evaluation System at the Forest Stand Level |
Version: | 2.0.1 |
Depends: | R (≥ 3.5.0) |
Description: | Assessing forest ecosystem health is an effective way for forest resource management.The national forest health evaluation system at the forest stand level using analytic hierarchy process, has a high application value and practical significance. The package can effectively and easily realize the total assessment process, and help foresters to further assess and management forest resources. |
License: | GPL-2 |
LazyData: | TRUE |
Encoding: | UTF-8 |
NeedsCompilation: | no |
Packaged: | 2024-10-18 13:18:53 UTC; 78438 |
Author: | Zongzheng Chai |
Maintainer: | Zongzheng Chai <chaizz@126.com> |
Repository: | CRAN |
Date/Publication: | 2024-10-18 13:30:01 UTC |
Forest health evaluation system at the forest stand level
Description
Assessing forest ecosystem health is an effective way for forest resource management.Zhang & Lei (2014) proposed and developed a national forest health evaluation system at the forest stand level using analytic hierarchy process (AHP), has a high application value and practical significance.The R packge concentrates on to relize the calculation of the national forest health evaluation system.
Author(s)
Zongzheng Chai,chaizz@126.com
References
Zhang HR, and Lei XD. 2014. Health management techniques for typical forest types. Beijing: Publishing house of forestry, China.
Examples
##forest health evaluation for singel sample plot
tree.singlefhes<-fhes(c1=0.67,c2=1.89,c3=2.04,c4=4,c5=2.04,c6=1,c7=0.3,
c8=3.4839,c9=0.75,c10=0.15,c11=0,c12=0.75,c13=0.35,
c14=2500,c15=53,c16=1.56,c17=5.49,c18=34.03,c19=2.05,
c20=21.38,c21=91.67)
tree.singlefhes
##Assigned the threshold of some variables, according to specific
##realistic condition or research contents
tree.spefhes<-fhes(c1=0.67,c2=1.89,c3=2.04,c4=4,c5=2.04,c6=1,c7=0.3,
c8=3.4839,c9=0.75,c10=0.15,c11=0,c12=0.75,c13=0.35,
c14=2500,c15=53,c16=1.56,c17=5.49,c18=34.03,c19=2.05,
c20=21.38,c21=91.67,
L_18=15,U_18=90,L_19=2,U_19=14,
L_20=8,U_20=40,L_21=60,U_21=120)
tree.spefhes
##forest health evaluation for multiple sample plot
tree.multiplefhes<-fhes(c1=c(0.67,0,0.68),c2=c(1.89,1.33,1.79),c3=c(2.04,1.91,2.19),
c4=c(4,3,4),c5=c(2.04,1.47,2.19),c6=c(1,0,1),c7=c(0.3,0.95,0.9),
c8=c(3.4839,3.1579,5.9231),c9=c(0.75,0,0.3),c10=c(0.15,0,0.09),
c11=c(0,0,0),c12=c(0.75,0.07,0.84),c13=c(0.35,0.11,0.84),
c14=c(833.33,833.33,2500),c15=c(53,59,43),c16=c(1.28,1.56,1.33),
c17=c(5.49,5.91,5.27),c18=c(38.32,34.03,25.37),c19=c(2.05,1.04,1.27),
c20=c(21.38,34.66,14.19),c21=c(86.67,80,91.67))
tree.multiplefhes
##More regulare method of forest health evaluation for multiple sample plot
data(testIndex)
tree.fhes<-fhes(c1=testIndex$C1,c2=testIndex$C2,c3=testIndex$C3,c4=testIndex$C4,
c5=testIndex$C5,c6=testIndex$C6,c7=testIndex$C7,c8=testIndex$C8,
c9=testIndex$C9,c10=testIndex$C10,c11=testIndex$C11,c12=testIndex$C12,
c13=testIndex$C13,c14=testIndex$C14,c15=testIndex$C15,c16=testIndex$C16,
c17=testIndex$C17,c18=testIndex$C18,c19=testIndex$C19,c20=testIndex$C20,
c21=testIndex$C21)
tree.fhes
pie(table(tree.fhes$evaluation$grade))
Survey data of Environmental factors for pine-oak mixed forests
Description
Environmental factors of pine-oak codominant mixed forests in the Qinling Mountains
Usage
data("envdata")
Format
A data frame with 20 observations on the following 16 variables.
plot.id
Identification number of sample plots
Ele
Elevation
SLP
Slope position
Asp
Slope aspect
SLG
Slope gradient
TN
Total nitrogen
TP
Total phosphorus
TK
Total potassium
OM
Organic matter
pH
pH value
AN
Available nitrogen
AP
Available phosphorus
AK
Available potassium
BA
Base area
AD
Average tree DBH
AH
Average tree height
Details
Twenty 20*20 m plots were established for the pine-oak codominant mixed forests within the Qinling National Forest Ecosystem Research Station (Huoditang forest)
References
Chai ZZ, Wang DX. 2016. Environmental influences on the successful regeneration of pine-oak mixed forests in the Qinling Mountains, China. Scandinavian Journal of Forest Research,31(4):368-381.DOI:10.1080/02827581.2015.1062912
Examples
data(envdata)
envdata
Forest health evaluation system
Description
Zhang & Lei (2014) proposed and developed a national forest health evaluation system at the forest stand level using analytic hierarchy process (AHP), has a high application value and practical significance.
Usage
fhes(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14,
c15, c16, c17, c18, c19, c20, c21, L_8 = 3.2, U_8 = 6.4,
L_15 = 30, U_15 = 60, L_16 = 0.8, U_16 = 1.3, O1_16 = 1.15,
O2_16 = 1.25, L_17 = 5, U_17 = 8.5, O1_17 = 6.5, O2_17 = 7,
L_18 = 10, U_18 = 80, L_19 = 1.49, U_19 = 13.19, L_20 = 5,
U_20 = 30, L_21 = 80, U_21 = 200)
Arguments
c1 |
Tree diversity index |
c2 |
Shrub diversity index |
c3 |
Herb diversity index |
c4 |
Storey quantity |
c5 |
Tree size diversity index |
c6 |
Age structure |
c7 |
Canopy closure |
c8 |
Average volume increment per hectare |
c9 |
Bio-disaster ratio |
c10 |
Non bio-disaster ratio |
c11 |
Crown length ratio |
c12 |
Crown fade ratio |
c13 |
Foliage falling ratio |
c14 |
Regeneration density |
c15 |
Soil depth |
c16 |
Soil density |
c17 |
Soil pH |
c18 |
Soil organic matter |
c19 |
Soil total nitrogen |
c20 |
Soil available phosphorus |
c21 |
Soil available potassium |
L_8 |
Lower limit of Average volume increment per hectare |
U_8 |
Upper limit of average volume increment per hectare |
L_15 |
Lower limit of average volume increment per hectare |
U_15 |
Upper limit of average volume increment per hectare |
L_16 |
Lower limit of soil density |
U_16 |
Upper limit of soil density |
O1_16 |
Effective range of soil density |
O2_16 |
Effective range of soil density |
L_17 |
Lower limit of soil pH |
U_17 |
Upper limit of soil pH |
O1_17 |
Effective range of soil pH |
O2_17 |
Effective range of soil pH |
L_18 |
Lower limit of soil organic matter |
U_18 |
Upper limit of soil organic matter |
L_19 |
Lower limit of soil total nitrogen |
U_19 |
Upper limit of soil total nitrogen |
L_20 |
Lower limit of soil available phosphorus |
U_20 |
Upper limit of soil available phosphorus |
L_21 |
Lower limit of soil available potassium |
U_21 |
Upper limit of soil available potassium |
Details
None
Value
indexSystem |
index system |
legend |
legend |
index |
index |
coverted.Index |
coverted.Index |
weighted.Index |
weighted.Index |
unweighted.Criterion |
unweighted.Criterion |
weighted.Criterion |
weighted.Criterion |
evaluation |
evaluation results |
Note
None
Author(s)
Zongzheng Chai
References
Zhang HR, and Lei XD. 2014. Health management techniques for typical forest types. Beijing: Publishing house of forestry, China
See Also
None
Examples
##forest health evaluation for singel sample plot
tree.singlefhes<-fhes(c1=0.67,c2=1.89,c3=2.04,c4=4,c5=2.04,c6=1,c7=0.3,
c8=3.4839,c9=0.75,c10=0.15,c11=0,c12=0.75,c13=0.35,
c14=2500,c15=53,c16=1.56,c17=5.49,c18=34.03,c19=2.05,
c20=21.38,c21=91.67)
tree.singlefhes
##Assigned the threshold of some variables, according to specific
##realistic condition or research contents
tree.spefhes<-fhes(c1=0.67,c2=1.89,c3=2.04,c4=4,c5=2.04,c6=1,c7=0.3,
c8=3.4839,c9=0.75,c10=0.15,c11=0,c12=0.75,c13=0.35,
c14=2500,c15=53,c16=1.56,c17=5.49,c18=34.03,c19=2.05,
c20=21.38,c21=91.67,
L_18=15,U_18=90,L_19=2,U_19=14,
L_20=8,U_20=40,L_21=60,U_21=120)
tree.spefhes
##forest health evaluation for multiple sample plot
tree.multiplefhes<-fhes(c1=c(0.67,0,0.68),c2=c(1.89,1.33,1.79),c3=c(2.04,1.91,2.19),
c4=c(4,3,4),c5=c(2.04,1.47,2.19),c6=c(1,0,1),c7=c(0.3,0.95,0.9),
c8=c(3.4839,3.1579,5.9231),c9=c(0.75,0,0.3),c10=c(0.15,0,0.09),
c11=c(0,0,0),c12=c(0.75,0.07,0.84),c13=c(0.35,0.11,0.84),
c14=c(833.33,833.33,2500),c15=c(53,59,43),c16=c(1.28,1.56,1.33),
c17=c(5.49,5.91,5.27),c18=c(38.32,34.03,25.37),c19=c(2.05,1.04,1.27),
c20=c(21.38,34.66,14.19),c21=c(86.67,80,91.67))
tree.multiplefhes
##More regulare method of forest health evaluation for multiple sample plot
data(testIndex)
tree.fhes<-fhes(c1=testIndex$C1,c2=testIndex$C2,c3=testIndex$C3,c4=testIndex$C4,
c5=testIndex$C5,c6=testIndex$C6,c7=testIndex$C7,c8=testIndex$C8,
c9=testIndex$C9,c10=testIndex$C10,c11=testIndex$C11,c12=testIndex$C12,
c13=testIndex$C13,c14=testIndex$C14,c15=testIndex$C15,c16=testIndex$C16,
c17=testIndex$C17,c18=testIndex$C18,c19=testIndex$C19,c20=testIndex$C20,
c21=testIndex$C21)
tree.fhes
pie(table(tree.fhes$evaluation$grade))
Survey data of undergrowth herb cluster for pine-oak mixed forests
Description
Undergrowth herb data of pine-oak codominant mixed forests in the Qinling Mountains
Usage
data("herbdata")
Format
A data frame with 229 observations on the following 4 variables.
plot.id
Identification number of sample plots
spe.id
Identification number of tree species
coverage
Coverage of herb species
abundance
Abundance of herb species
Details
Twenty 20*20 m plots were established for the pine-oak codominant mixed forests within the Qinling National Forest Ecosystem Research Station (Huoditang forest)
References
Chai ZZ, Wang DX. 2016. Environmental influences on the successful regeneration of pine-oak mixed forests in the Qinling Mountains, China. Scandinavian Journal of Forest Research,31(4):368-381.DOI:10.1080/02827581.2015.1062912
Examples
data(herbdata)
herbdata
The national forest health evaluation system
Description
The national forest health evaluation system
Usage
data("indexSystem")
Format
A data frame with 21 observations on the following 9 variables.
Criterion
a factor with levels
b1
b2
b3
b4
b5
b6
b7
WeightB
a numeric vector
Index
a factor with levels
c1
c10
c11
c12
c13
c14
c15*
c16*
c17*
c18*
c19*
c2
c20*
c21*
c3
c4
c5
c6
c7
c8*
c9
WeightC
a numeric vector
Mode
a factor with levels
down
mid
up
L
a numeric vector
U
a numeric vector
O1
a numeric vector
O2
a numeric vector
Details
ID see legend
Source
Zhang HR, and Lei XD. 2014. Health management techniques for typical forest types. Beijing: Publishing house of forestry, China.
References
Zhang HR, and Lei XD. 2014. Health management techniques for typical forest types. Beijing: Publishing house of forestry, China
Examples
data(indexSystem)
A R function for converting to long data to wide data
Description
Converting regular survey data (long data, similar to the treedata and herbdata in the package) to species matrix, and attributes matrix (wide data).
Usage
longtowide(longdata, left, up, inner = NULL,
fun = rep("sum", length(inner)), freq = FALSE)
Arguments
longdata |
Regular survey data (long data, similar to the treedata and herbdata in the package) |
left |
Row names of matrix data after converted |
up |
Column names of matrix data after converted |
inner |
Attributes data need to converted |
fun |
Functions need to applied in the converting process |
freq |
Frequency of attributes |
Value
Wide data,such species matrix, and attributes matrix, etc.
Author(s)
Zongzheng Chai
Examples
#####Example######
##Following two example data with different subject, pineoakTree
##is for the base data of individual trees, and the herb data is for
##the base data of cluster.
data(treedata)
data(herbdata)
####Merge a species matrix from base data
##Note: following calculation only for the base data of individual not cluster
pineoak.spematrix<-longtowide(longdata=treedata,left="plot.id",up="spe.id")
pineoak.spematrix
##Equivalent method to merge species matrix from base data
treedata$abundance<-1
head(treedata)
tree.spematrix<-longtowide(longdata=treedata,left="plot.id",up="spe.id",inner="abundance")
tree.spematrix
herb.spematrix<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",inner="abundance")
herb.spematrix
####Compute the frequency of species in the multiple plots
##Merge a frequency matrix from base data
tree.freq<-longtowide(longdata=treedata,left="plot.id",up="spe.id",freq=TRUE)
tree.freq
herb.freq<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",freq=TRUE)
herb.freq
####Compute the attribute matrix from base data
##Single attribute matrix
tree.dbh<-longtowide(longdata=treedata,left="plot.id",up="spe.id",inner="dbh.cm")
tree.dbh
herb.cover<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",inner="coverage")
herb.cover
##Multiple attribute matrix
tree.multattr<-longtowide(longdata=treedata,left="plot.id",up="spe.id",
inner=c("dbh.cm","ht.m"))
tree.multattr
herb.multattr<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",
inner=c("coverage","abundance"))
herb.multattr
#######Calculation of Importance value (IV) for species######
####Calculation of Importance value (IV) for individual tree data
##Covert long data to wide data
tree.freq<-longtowide(longdata=treedata,left="plot.id",up="spe.id",freq=TRUE)$frequency
tree.density<-longtowide(longdata=treedata,left="plot.id",up="spe.id")/(20*400)
treedata$base<-pi*(treedata$dbh.cm)^2/10000
tree.dominance<-longtowide(longdata=treedata,left="plot.id",up="spe.id",inner="base")/(20*400)
##Compute the relative value
tree.refreq<-tree.freq/rowSums(tree.freq)*100
tree.redensity<-tree.density/rowSums(tree.density)*100
tree.redominance<-tree.dominance/rowSums(tree.dominance)*100
##Compute the importance value matrix
treeIVmatirx<-(tree.refreq+tree.redensity+tree.redominance)/3
##Compute the total importance value for species
treeTIV<-colSums(treeIVmatirx)/20
##Order the total importance value for species
sortedtreeTIV<-sort(treeTIV,decreasing=TRUE)
sortedtreeTIV
####Calculation of Importance value (IV) for clust herb data
##Covert long data to wide data
herb.freq<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",freq=TRUE)$frequency
herb.dencover<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",
inner=c("abundance","coverage"))
herb.density<-herb.dencover$abundance/100
herb.coverage<-herb.dencover$coverage/100
##Compute the relative value
herb.refreq<-herb.freq/rowSums(herb.freq)*100
herb.redensity<-herb.density/rowSums(herb.density)*100
herb.recoverage<-herb.coverage/rowSums(herb.coverage)*100
##Compute the importance value matrix
herbIVmatirx<-(herb.refreq+herb.redensity+herb.recoverage)/3
##Compute the total importance value for species
herbTIV<-colSums(herbIVmatirx)/20
##Order the total importance value for species
sortedherbTIV<-sort(herbTIV,decreasing=TRUE)
sortedtreeTIV
Calculation of mcIntosh diversity index
Description
Calculation of mcIntosh diversity index
Usage
mcIntosh(x, MARGIN = 1)
Arguments
x |
The species matrix |
MARGIN |
Compute the mcIntosh diversity index by row, MARGIN can be set 1; compute the mcIntosh diversity index by column, MARGIN can be set 2; |
Value
The mcIntosh diversity index
Author(s)
Zongzheng Chai
References
McIntosh RP.1967. An index of diversity and the relation of certain concepts to diversity. Ecol.Soc.Am. 48:329-404.
Examples
######Calculation based on multiple plots
####convert raw data to species matrix
##raw data of multiple plots
data(herbdata)
herb.spematrix<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",inner="abundance")
##compute species mcIntosh diversity index for each plot
herb.mcIntosh<-mcIntosh(herb.spematrix)
herb.mcIntosh
Standardize the indices by membership functional models
Description
Obtained indices always can not be used to evaluate the forest health because the indices with different dimension. And three membership functional models were thus used to standardize these indices,
Usage
membership(mode = c("up", "down", "mid"), X, L, U, O1, O2)
Arguments
mode |
Three membership functional models were thus used to standardize these indices, which are up mode, down mode, and middle mode, respectively. For the up mode, a higher value is better; for the down mode, lower is better; for the middle mode, which have an effective range. |
X |
The actual observed value of indices |
L |
Lower limit of the indices |
U |
Upper limit of the indices |
O1 |
O1 and O2 are the effective range of the indices |
O2 |
O1 and O2 are the effective range of the indices. |
Value
Standardized the indices by membership functional models
Author(s)
Zongzheng Chai
References
Zhang HR, and Lei XD. 2014. Health management techniques for typical forest types. Beijing: Publishing house of forestry, China.
Examples
up.index<-membership(mode="up",X=0.67,L=0,U=2.173)
up.index
down.index<-membership(mode="down",X=0.8,L=0,U=2.73)
down.index
mid.index<-membership(mode="mid",X=c(0.1,0.3,0.4,0.6,0.9),L=0.2,U=1.0,O1=0.5,O2=0.7)
mid.index
A R function for converting species matrix (wide data) to present-absent matrix
Description
Converting species matrix (wide data) to present-absent matrix
Usage
preabs(widedata)
Arguments
widedata |
A species matrix |
Value
A present-absent matrix
Examples
herb.spematrix<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",
inner="abundance")
herb.preabs<-preabs(herb.spematrix)
herb.preabs
Test Indices for forest health evaluation system
Description
Example data of test Indices for forest health evaluation system
Usage
data("testIndex")
Format
A data frame with 30 observations on the following 21 variables.
- C1
Tree diversity index
- C2
Shrub diversity index
- C3
Herb diversity index
- C4
Storey quantity
- C5
Tree size diversity index
- C6
Age structure
- C7
Canopy closure
- C8
Average volume increment per hectare
- C9
Bio-disaster ratio
- C10
Non bio-disaster ratio
- C11
Crown length ratio
- C12
Crown fade ratio
- C13
Foliage falling ratio
- C14
Regeneration density
- C15
Soil depth
- C16
Soil density
- C17
Soil pH
- C18
Soil organic matter
- C19
Soil total nitrogen
- C20
Soil available phosphorus
- C21
Soil available potassium
Examples
data(testIndex)
testIndex
Survey data of individual trees for pine-oak mixed forests
Description
Tree data of pine-oak codominant mixed forests in the Qinling Mountains
Usage
data("treedata")
Format
A data frame with 1054 observations on the following 5 variables.
plot.id
Identification number of sample plots
tree.id
Identification number of trees
spe.id
Identification number of tree species
dbh.cm
Diameter at breast height of trees
ht.m
Tree height of trees
Details
Twenty 20*20 m plots were established for the pine-oak codominant mixed forests.
References
Chai ZZ, Wang DX. 2016. Environmental influences on the successful regeneration of pine-oak mixed forests in the Qinling Mountains, China. Scandinavian Journal of Forest Research,31(4):368-381.DOI:10.1080/02827581.2015.1062912
Examples
data(treedata)
treedata
Distribution of species attributes in the sample plots
Description
To show the distribution od species attributes (such as DBH,tree height) in the sample plots
Usage
vardis(data, varcat = "numeric", plot.id, var, breaks,
include.lowest = FALSE, right = TRUE)
Arguments
data |
Data class should be a dataframe, the colnames with plot.id, species name, and some attributes (sucha as DBH,tree height), see data (treedata) |
varcat |
Catory of species attributes, numeric and character, respectively. |
plot.id |
Identification number of sample plots |
var |
Attributes of species in the sample plot |
breaks |
Either a numeric vector of two or more unique cut points or a single number (greater than or equal to 2) giving the number of intervals into which x is to be cut.See the explanation of breaks of cut function |
include.lowest |
Labels for the levels of the resulting category. By default, labels are constructed using "(a,b]" interval notation. If labels = FALSE, simple integer codes are returned instead of a factor.See the explanation of include.lowest of cut function |
right |
Logical, indicating if the intervals should be closed on the right (and open on the left) or vice versa.See the explanation of right of cut function |
Value
Distribution od species attributes (such as DBH,tree height) in the sample plots
Author(s)
Zongzheng Chai
Examples
######when variabel catogory is numeric######
####Variable distribution according to the actual range of variable and sizeclass=1
data(treedata)
numericVar.actualsize1<-vardis(treedata,plot.id="plot.id",var="ht.m",
breaks=seq(min(treedata$ht.m),max(treedata$ht.m),1))
numericVar.actualsize1
####Variable distribution according to the actual range of variable and sizeclass=2
numericVar.actualsize2<-vardis(treedata,plot.id="plot.id",var="ht.m",
breaks=seq(min(treedata$ht.m),max(treedata$ht.m),2))
numericVar.actualsize2
##when the lower value of actual range of variable included,include.lowest can set TRUE
numericVar.actualInlower<-vardis(treedata,plot.id="plot.id",var="ht.m",
breaks=seq(min(treedata$ht.m),max(treedata$ht.m),1),
include.lowest=TRUE)
numericVar.actualInlower
##when the upper value of actual range of variable excluded,include.lowest can be set FALSE
numericVar.actualExupper<-vardis(treedata,plot.id="plot.id",var="ht.m",
breaks=seq(min(treedata$ht.m),max(treedata$ht.m),1),
right=FALSE)
numericVar.actualExupper
####Variable distribution according to the specific range of variable
range(treedata$ht.m)
##[1] 2.6 32.2
##specific range can be set between 2 and 34, sizeclass is 2
numericVar.specific<-vardis(treedata,plot.id="plot.id",var="ht.m",
breaks=2*1:17)
numericVar.specific
######when variabel catogory is character######
characterVar<-vardis(treedata,varcat="character",plot.id="plot.id",var="spe.id")
characterVar
A R function for converting to wide data to long data
Description
Converting wide data, such as species matrix, and attributes matrix to long data,such as the treedata and herbdata.
Usage
widetolong(widedata, leftlab = "left", uplab = "up", innerlab = "inner")
Arguments
widedata |
Data similar to the species matrix, and attributes matrix, etc. |
leftlab |
Row labels of wide data |
uplab |
Column labels of wide data |
innerlab |
Attributes labels of inner data of wide data |
Value
Long data,such as treedata,herbdata, etc.
Author(s)
Zongzheng Chai
Examples
herb.spematrix<-longtowide(longdata=herbdata,left="plot.id",up="spe.id",inner="abundance")
herb.spedata<-widetolong(herb.spematrix,
leftlab="plot.id",uplab="spe.id",innerlab="abundance")
herb.spedata
##After removed zero in innerdata
rd0herb.spedata<-herb.spedata[-which(herb.spedata$abundance==0),]
rd0herb.spedata