Lab 13: Exploration of two loblolly pine growth and yield models

FOR 374: Forest Measurement, Modeling, and Inventory

Overview and learning objectives

In this lab, you will explore two loblolly pine growth and yield models commonly used in the southeast: LobDSS (through the GYST interface) from NC State and Virginia Tech and Grow-Dawgs from the UGA. More specifically, the learning objectives are:

  • Learn how to simulate thinnings and fertilizations in LobDSS.
  • Familiarize yourself with the Grow-Dawgs interface and how to simulate a thin.
  • Analyze data from G&Y simulations to understand impacts of thinnings, fertilization, and site preparation on the growth of loblolly pine stands.
  • Compare two growth and yield models and quantify their differences in projecting growth over time.

Deliverables and submission instructions

Create and submit an R script titled lab_13_Firstname_Lastname.R (but actually include your name) with code and answers to all the questions below. Just like you did with the previous labs, organize your script such that each question is separated into it’s own “Section”. Remember that you can add a section into an R script by clicking the “Code” button at the top of RStudio, then “Insert Section”.

Grading

Lab 13 consists of 49 possible points. The final grade will be scaled to a grade out of 10 so that every lab throughout the semester is given the same weight.

  • A total of 49 points for the 29 individual questions. The point totals for each question are listed next to each individual question (or each part of the question). Partial credit will be awarded for answers that are incorrect but display some level of understanding of the solution.

Running LobDSS and using Grow-Dawgs

Windows users should run LobDSS directly on their computers. Mac users should run LobDSS through the Virtual Computing Lab (VCL). You will use Grow-Dawgs through a simple web-interface, which means it can be easily accessed on both Macs and Windows!!!

Part 1: Exploring impacts of planting density and silvicultural treatments on loblolly pine plantations using LobDSS

In this section, you will do multiple LobDSS simulations to understand impacts of planting density, thinning, and fertilization on loblolly pine growth. You will use LobDSS to run the simulations, then save the output into a csv file. You will use R to make figures and summarize the results.

You need to run a total of four simulations in LobDSS. For all simulations, make sure you input the following information into LobDSS:

  • Soil Type: Bypass expert system
  • Age: 0
  • Site Index: 80
  • Physio: Piedmont (Pied)
  • Latitude: 35.73
  • Longitude: -78.62
  • Pulpwood diameter limit: 5in
  • Pulpwood top diameter limit: 3in
  • Chip-n-saw diameter limit: 8in
  • Chip-n-saw top diameter limit: 6in
  • Sawtimber diameter limit: 12in
  • Sawtimber top diameter limit: 8in

Assessing impact of planting density on stand growth

First, let’s compare the growth of the stand under two different initial planting densities: 300 and 500 trees per acre

Question 1: Using LobDSS, first simulate the stand with an initial planting density of 300 TPA. In addition to the information on the stand provided above, input the following information into your LobDSS run:

  • Stand Number: 1
  • Initial Density: 300

Grow the stand for 25 years. To check that you did everything correctly, here are a couple values I got (if you didn’t get the same values, something is wrong):

  • At Age 14, my trees per acre is 274.
  • At Age 24, my green weight for pulpwood is 45.5 tons.
  • At Age 21, my green weight for sawtimber is 27.4 tons.

Copy all columns between the Stand Number and Green Weight sawtimber (tons) into a csv file. Use the following for the column names:

  • Stand_number, Site_index, Age, Trees_per_acre, Dom_height_ft, BA_sq_ft_ac, Vol_cu_ft_ac, Standard_cords, Green_weight_tons_ac, Pulp_green_weight_tons_ac, Chip_green_weight_tons_ac, Saw_green_weight_tons_ac.

Save your spreadsheet as a csv file named stand_1_lab_13.csv. For your answer to Question 1 in your R script, read the csv into R and display its structure using str(). When you run str(), you should get what I get below (2 points).

'data.frame':   25 obs. of  12 variables:
 $ Stand_number             : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Site_index               : int  80 80 80 80 80 80 80 80 80 80 ...
 $ Age                      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Trees_per_acre           : int  284 284 284 284 284 284 283 283 282 281 ...
 $ Dom_height_ft            : num  1.4 6 11.5 17 22.3 27.2 31.7 36 39.9 43.6 ...
 $ BA_sq_ft_ac              : num  0 0 0 0 0 48.2 62.3 74.7 85.4 94.7 ...
 $ Vol_cu_ft_ac             : num  0 0 0 0 0 ...
 $ Standard_cords           : num  0 0 0 0 0 5.8 9.1 11.8 15.4 18.9 ...
 $ Green_weight_tons_ac     : num  0 0 0 0 0 15 23.5 32.5 41.7 50.9 ...
 $ Pulp_green_weight_tons_ac: num  0 0 0 0 0 12.2 19.6 24.5 28.7 31.5 ...
 $ Chip_green_weight_tons_ac: num  0 0 0 0 0 0.1 1.5 4.2 9.9 17.1 ...
 $ Saw_green_weight_tons_ac : num  0 0 0 0 0 0 0 0 0 0 ...

Question 2: Now use LobDSS to simulate Stand 2 (500 TPA) with the following characteristics:

  • All characteristics of the stand described at the beginning of Section 1.
  • Stand Number: 2
  • Initial Density: 500

Grow the stand for 25 years. Here are a couple values I got in my simulation that you can use to check your results:

  • At Age 14, my trees per acre is 445.
  • At Age 23, my green weight for pulpwood is 70.8 tons.
  • At Age 21, my green weight for sawtimber is 5.3 tons.

Copy the same columns as in Question 1 into a new spreadsheet, use the same column names, and save it as a csv called stand_2_lab_13.csv. Read the csv into R, and display the structure using str(). You should get what I get below (2 points).

'data.frame':   25 obs. of  12 variables:
 $ Stand_number             : int  2 2 2 2 2 2 2 2 2 2 ...
 $ Site_index               : int  80 80 80 80 80 80 80 80 80 80 ...
 $ Age                      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Trees_per_acre           : int  474 474 474 473 472 471 470 468 465 462 ...
 $ Dom_height_ft            : num  1.4 6 11.5 17 22.3 27.2 31.7 36 39.9 43.6 ...
 $ BA_sq_ft_ac              : num  0 0 0 0 0 ...
 $ Vol_cu_ft_ac             : num  0 0 0 0 0 ...
 $ Standard_cords           : num  0 0 0 0 0 6.4 10.3 13.7 17.9 21.8 ...
 $ Green_weight_tons_ac     : num  0 0 0 0 0 20.4 30.3 40.6 50.9 61 ...
 $ Pulp_green_weight_tons_ac: num  0 0 0 0 0 14.5 24.7 33.3 42.1 49 ...
 $ Chip_green_weight_tons_ac: num  0 0 0 0 0 0 0.3 1.1 3.7 7.5 ...
 $ Saw_green_weight_tons_ac : num  0 0 0 0 0 0 0 0 0 0 ...

Question 3: what is the dominant height of the two stands at age 25? How could you know this without looking at the csv or data frames? (1 point)

Question 4: for each of the two stands, calculate the following variable and add them into the two data frames as new columns (2 points):

  • QMD
  • Diameter current annual increment
  • Height current annual increment
  • Volume current annual increment
  • A column called Initial_TPA that indicates the initial TPA for that stand. Put the value in quotation marks to make it a character (i.e., "500" instead of 500). This column will simplify things when we go to make plots later.

Question 5: bind the two data frames together using rbind() to create a single data frame. It should have 50 rows and 17 columns (1 point).

Question 6: Create a plot that shows Age on the x-axis and sawlog green weight (tons per acre) on the y-axis. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe the differences between the two stands and why you think this is the case. (2 points)

Question 7: Create a plot that shows Age on the x-axis and diameter increment on the y-axis. Do not include ages 1-6 in your plot. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how diameter increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Question 8: Create a plot that shows Age on the x-axis and height increment on the y-axis. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how height increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Question 9: Create a plot that shows Age on the x-axis and volume increment on the y-axis. Do not include ages 1-6 in your plot. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how volume increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Question 10: Using the results from the LobDSS simulations, answer the following questions (1 point):

  • What management objective or market conditions would favor an initial planting density of 300 TPA over 500 TPA?
  • What management objective or market conditions would favor an initial planting density of 500 TPA over 300 TPA?

Assessing impact of thinning on stand growth

Next, let’s compare the impact of thinning on the stand’s growth patterns and on overall harvested volumes. The timing of a thin is crucial for achieving desired silvicultural objectives. We previously saw how we could use density management diagrams to try and optimize the timing of thins to ensure the stand is at a stage where it will properly respond to the thin while still avoiding substantial understocking after the thin. In general, a uniformly stocked southern yellow pine stand 10-15 years of age with basal area of at least 100 square feet per acre is likely to respond to thinning because at this density, inter-tree competition is limiting diameter growth. It is also common to wait till QMD of the stand is at least 6.5 in to ensure the first thinning is feasible for a contractor. A first thinning that removes about a third of the basal area is common in the southeast.

Question 11: First let’s determine the optimal timing of our proposed thin. We will do this by looking at our non-managed situations in Stand 2. At what age did Stand 2 (planting density of 500 TPA) result in a BA of at least 100 square feet per acre and QMD of at least 6.5 in? (1 point)

Question 12: Use LobDSS to simulate Stand 3 (500 TPA and a thin from below) with the following characteristics:

  • All characteristics of the stand described at the beginning of Section 1.
  • Stand Number: 3
  • Initial Density: 500
  • In the Stand Management -> Thinning options, specify a first thin at the age you found in Question 11, with a residual basal area of 60 square feet per acre.

Grow the stand for 25 years. Here are a couple values I got in my simulation that you can use to check your results:

  • At Age 14, my trees per acre is 210.
  • At Age 23, my green weight for pulpwood is 38.9 tons.
  • At Age 21, my green weight for sawtimber is 19.8 tons.

Copy the same columns as in Question 1 into a new spreadsheet, use the same column names, and save it as a csv called stand_3_lab_13.csv. Read the csv into R, and display the structure using str(). You should get what I get below (2 points).

'data.frame':   25 obs. of  12 variables:
 $ Stand_number             : int  3 3 3 3 3 3 3 3 3 3 ...
 $ Site_index               : int  80 80 80 80 80 80 80 80 80 80 ...
 $ Age                      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Trees_per_acre           : int  474 474 474 473 472 471 470 468 465 462 ...
 $ Dom_height_ft            : num  1.4 6 11.5 17 22.3 27.2 31.7 36 39.9 43.6 ...
 $ BA_sq_ft_ac              : num  0 0 0 0 0 ...
 $ Vol_cu_ft_ac             : num  0 0 0 0 0 ...
 $ Standard_cords           : num  0 0 0 0 0 6.4 10.3 13.7 17.9 21.8 ...
 $ Green_weight_tons_ac     : num  0 0 0 0 0 20.4 30.3 40.6 50.9 60.9 ...
 $ Pulp_green_weight_tons_ac: num  0 0 0 0 0 14.5 24.7 33.3 42.1 49 ...
 $ Chip_green_weight_tons_ac: num  0 0 0 0 0 0 0.3 1.1 3.7 7.5 ...
 $ Saw_green_weight_tons_ac : num  0 0 0 0 0 0 0 0 0 0 ...

Question 13: calculate the following variables for Stand 3 and add them into your stand 3 data frame as new columns (2 points):

  • QMD
  • Diameter current annual increment
  • Height current annual increment
  • Volume current annual increment
  • A column called Initial_TPA that indicates the initial TPA for that stand. Put the value in quotation marks to make it a character (i.e., "500" instead of 500). This column will simplify things when we go to make plots later.

Question 14: Perform the following tasks to prepare data for making plots with ggplot2 (1 point).

  • Add a column to your Stand 3 data frame called Manage and set every value in the column to "Thin".
  • Add a column to your Stand 2 data frame called Manage and set every value in the column to "No thin".
  • Bind the Stand 2 and Stand 3 data frames together into a new data frame.

Question 15: Create a plot that shows Age on the x-axis and sawlog green weight (tons per acre) on the y-axis. Specify a separate line type or color for the two different stands (use the Manage column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe the differences between the two stands and why you think this is the case. (2 points)

Question 16: Create a plot that shows Age on the x-axis and diameter increment on the y-axis. Do not include ages 1-6 in your plot. Specify a separate line type or color for the two different stands (use the Manage column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how diameter increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Question 17: Create a plot that shows Age on the x-axis and height increment on the y-axis. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how height increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Question 18: Create a plot that shows Age on the x-axis and volume increment on the y-axis. Do not include ages 1-6 in your plot. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how volume increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)


Assessing impact of fertilization on stand growth

For the last part of this section, we will now assess the impact that fertilization in addition to thinning has on growth of the stand over time. A typical fertilizer treatment for mid-rotation stands of loblolly pine is to apply 200 lbs./acre of nitrogen and 50 lbs./acre of phosphorus in early spring after a first thinning. Urea and diammonium phosphate are common fertilizer compounds in forestry use today. Because fertilization will stimulate increases in abundance and vigor of competing vegetation, resulting in some of the applied nutrients becoming unavailable for pine uptake, it is best to delay fertilization until a reasonable level of weed control has been achieved.

Question 19: Use LobDSS to simulate Stand 4 (500 TPA, thin from below, and fertilization post-thin) with the following characteristics:

  • All characteristics of the stand described at the beginning of Section 1.
  • Stand Number: 4
  • Initial Density: 500
  • In the Stand Management -> Thinning options, specify a first thin at the age you found in Question 11, with a residual basal area of 60 square feet per acre.
  • In the Stand Management -> Fertilizations options, specify a fertilization the year after the first thin with 200 pounds of N per acre and elemental P.

Grow the stand for 25 years. Here are a couple values I got in my simulation that you can use to check your results:

  • At Age 14, my trees per acre is 210.
  • At Age 23, my green weight for pulpwood is 39.1 tons.
  • At Age 21, my green weight for sawtimber is 30.8 tons.

Copy the same columns as in Question 1 into a new spreadsheet, use the same column names, and save it as a csv called stand_4_lab_13.csv. Read the csv into R, and display the structure using str(). You should get what I get below. (2 points)

'data.frame':   25 obs. of  12 variables:
 $ Stand_number             : int  4 4 4 4 4 4 4 4 4 4 ...
 $ Site_index               : int  80 80 80 80 80 80 80 80 80 80 ...
 $ Age                      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Trees_per_acre           : int  474 474 474 473 472 471 470 468 465 462 ...
 $ Dom_height_ft            : num  1.4 6 11.5 17 22.3 27.2 31.7 36 39.9 43.6 ...
 $ BA_sq_ft_ac              : num  0 0 0 0 0 ...
 $ Vol_cu_ft_ac             : num  0 0 0 0 0 ...
 $ Standard_cords           : num  0 0 0 0 0 6.4 10.3 13.7 17.9 21.8 ...
 $ Green_weight_tons_ac     : num  0 0 0 0 0 20.4 30.3 40.6 50.9 60.9 ...
 $ Pulp_green_weight_tons_ac: num  0 0 0 0 0 14.5 24.7 33.3 42.1 49 ...
 $ Chip_green_weight_tons_ac: num  0 0 0 0 0 0 0.3 1.1 3.7 7.5 ...
 $ Saw_green_weight_tons_ac : num  0 0 0 0 0 0 0 0 0 0 ...

Question 20: calculate the following variables for Stand 4 and add them into your stand 4 data frame as new columns (2 points):

  • QMD
  • Diameter current annual increment
  • Height current annual increment
  • Volume current annual increment
  • A column called Initial_TPA that indicates the initial TPA for that stand. Put the value in quotation marks to make it a character (i.e., "500" instead of 500). This column will simplify things when we go to make plots later.
  • A column called Manage with the value "Thin + Fertilize".

Question 21: Bind the Stand 3 (thin but no fertilizer) and Stand 4 data frames together into a new data frame. (1 point)

Question 22: Create a plot that shows Age on the x-axis and sawlog green weight (tons per acre) on the y-axis. Specify a separate line type or color for the two different stands (use the Manage column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe the differences between the two stands and why you think this is the case. (2 points)

Question 23: Create a plot that shows Age on the x-axis and diameter increment on the y-axis. Do not include ages 1-6 in your plot. Specify a separate line type or color for the two different stands (use the Manage column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how diameter increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Question 24: Create a plot that shows Age on the x-axis and height increment on the y-axis. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how height increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Question 25: Create a plot that shows Age on the x-axis and volume increment on the y-axis. Do not include ages 1-6 in your plot. Specify a separate line type or color for the two different stands (use the Initial_TPA column for this). Your plot should look like mine below (make sure to add appropriate labels). In 2-3 sentences, describe how volume increment is changing over time, the differences between the two stands, and why that might be the case. (2 points)

Part 2: Comparing output from LobDSS and Grow-Dawgs

In Part 2 (which is quite short), you will see how to use a second loblolly pine growth and yield model (Grow-Dawgs) and will do some basic comparisons of the output between the two models. You will compare the two models under a single thinning scenario. First, I give you instructions for doing the same simulation in LobDSS and GrowDawgs. Once you do the simulations, there are a few basic questions for you to compare the output between the two models.

Instructions for LobDSS

Set the following characteristics for the run in LobDSS

  • Initial stand density/number of trees: 500
  • Site index: 70
  • Physiography : Piedmont
  • Initial Age: 0
  • First thin age = 12
  • Residual Number (trees/ac): 300
  • Pulpwood Diameter Limit: 6in
  • Pulpwood top diameter limit: 2in
  • Chip-n-saw diameter limit: 8in
  • Chip-n-saw top diameter limit: 6in
  • Sawtimber diameter limit: 12
  • Sawtimber top diameter limit: 8in
  • Log rule: Doyle

Once you’ve input the above information, hit OK then grow the stand to Age 30.

Instructions for Grow-Dawgs

Open up Grow-Dawgs by clicking here. Grow-Dawgs has a simple web-based interface with four panels on the left where you can input information and the output information showing up on the right. To perform the same simulation using the Grow-Dawgs model, do the following tasks:

  • In the Stand Variables tab, you should have the following:
    • Species: Loblolly Pine
    • Location: Piedmont
    • Simulation Horizon (years): 1-30
    • Stand Productivity Measurement: “Site Index”
    • Stand Site Index (ft): 70
    • Stand Density (trees/ac): 500
    • Initial Basal Area (sq ft/acre): 0
  • In the Thinnings tab, you should have the following:
    • Make sure the Thinning? checkbox is checked.
    • Set “Thinning Age” to 13 (note this differs from LobDSS, as LobDSS only shows the effect in the next year).
    • Set “Density after Thinning” to 300
  • In the “Products” tab, you should have the following:
    • Pulp diameters (tops - min DBH): 2-6
    • Pulp Price: $6
    • Chip-n-Saw diameters: 6-8
    • Chip-n-Saw price: $18
    • Sawtimber diameters: 8-12
    • Sawtimber price: $35

You can explore some basic outputs using the visualizations that show up in the different tabs on the right. Take a second to explore the different outputs that are given to you.

Some basic comparisons

The following questions ask you to make some simple comparisons between the basic output of the two models. You don’t need to export any information from LobDSS

Question 26: Compare the growth in basal area over time. Which model predicts higher basal area at the end of the rotation (30 years)? (1 point)

Question 27: Compare the change in trees per acre over time. Which model predicts higher TPA at the end of the rotation? (1 point)

Question 28: Which model predicted the highest amount of total volume at the end of the rotation? (1 point)

Question 29: In a discussion with a group of landowners, you discuss how different growth and yield models can give different results. Many of the landowners are surprised (and potentially concerned) when learning this and don’t understand why different models give different estimates. In a few sentences, provide some reasons on why any two growth and yield models may result in different predictions. (2 points)

Congratulations! You’ve reached the end of Lab 13!

This is the last lab of the semester!! Well done!!!

Questions?

If you have any lingering questions about the material in this lab or in the material we covered this week, please add them at the end of your submitted word document and I will respond later.

Feedback

Please let me know what you thought about this lab and any suggestions for improving it in the future.