Package 'forestHES'

Title: Forest Health Evaluation System at the Forest Stand Level
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.
Authors: Zongzheng Chai [aut, cre]
Maintainer: Zongzheng Chai <[email protected]>
License: GPL-2
Version: 2.0.1
Built: 2024-11-18 02:51:47 UTC
Source: https://github.com/cran/forestHES

Help Index


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,[email protected]

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