Vegetation Modeling 1

advertisement
Vegetation Modeling
1
Exercise Answers
## 1. Create a map of presence of lodgepole within the Uinta Wilderness area, using a Random
Forests model and the predictors from modeldat. Hint: Load the plt and tree table again and use
code from slide #20 to create a binary response variable for lodgepole presence.
Also, set a seed to 66 so you can recreate the model.
plt <- read.csv("PlotData/plt.csv", stringsAsFactors=FALSE)
tree <- read.csv("PlotData/tree.csv", stringsAsFactors=FALSE)
ref <- read.csv("PlotData/ref_SPCD.csv", stringsAsFactors=FALSE)
tree <- merge(tree, ref, by="SPCD")
head(tree)
# First, create a table of counts by species and plot & change to binary 1/0.
spcnt <- table(tree[,c("PLT_CN", "SPNM")])
spcnt[spcnt > 1] <- 1
head(spcnt)
# Join the lodgepole column to the modeldat table.
load("Outfolder/modeldat.Rda")
modeldat2 <- merge(modeldat, spcnt[,"lodgepole pine"], by.x="CN",
by.y="row.names", all.x=TRUE)
head(modeldat2)
# Change name from y to LODGEPOLE and change NA values to 0 values (Absence).
names(modeldat2)[names(modeldat2) == "y"] <- "LODGEPOLE"
modeldat2[is.na(modeldat2[,"LODGEPOLE"]), "LODGEPOLE"] <- 0
modeldat2$LODGEPOLE <- factor(modeldat2$LODGEPOLE, levels=c(0,1))
str(modeldat2)
Exercise Answers cont.
# Check data
modeldat2[modeldat2$CN == 2377876010690,]
tree[tree$PLT_CN == 2377876010690,]
# Generate Random Forest model
set.seed(66)
lp.mod <- randomForest(LODGEPOLE ~ TMB5 + TMndvi + fnfrcl + elevm + slp + aspval,
data=modeldat2, importance = TRUE)
lp.predict <- predict(clipstack, lp.mod)
lp.predict
plot(lp.predict)
# Plot with color breaks
cols <- c("dark grey", "green")
par(omi=c(0,0,0,0.5))
colclasses(lp.predict, cols, labs=c("Absence", "Presence"))
Exercise Answers cont.
## 2. How many plots in model data set have presence of lodgepole pine?
table(modeldat2$LODGEPOLE)
## 3. Display 1 scatterplot of the relationship of elevation and NDVI values with lodgepole pine
presence and absence as different colors. Hint: see slide #49. Make sure to label plots and add
a legend.
attach(modeldat2)
par(mfrow=c(1,1))
plot(elevm, TMndvi, col=c("black", "red"), pch=20, xlab="Elevation", ylab="TM
NDVI", main="Lodgepole pine presence/absence")
legend(x=2000, y=120, legend=levels(ASPEN), col=c("black", "red"), pch=20)
## 4. What is the variable with the highest importance value based on the Gini index?
imp <- lp.mod$importance
imp[order(imp[,"MeanDecreaseGini"], decreasing=TRUE),]
elevm
## 5. What percentage of the total area is lodgepole pine? How does this compare with the
percentage of aspen?
lp.freq <- freq(lp.predict)
lp.freq <- na.omit(lp.freq)
round((lp.freq[lp.freq[,"value"] == 1, "count"]
/ sum(lp.freq[,"count"])) * 100, 2)
asp.freq <- freq(asp.predict)
asp.freq <- na.omit(asp.freq)
round((asp.freq[asp.freq[,"value"] == 1, "count"]
/ sum(asp.freq[,"count"])) * 100, 2)
Download