Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Inventory Export process typically begins in the Map by searching for and selecting a set of Stands to be exported. Typical scenarios include searching for all stands that have a status of ‘Cruised’ or ‘Checked’, with the possible addition of spatial parameters like a specific property or region. See InventoryManager: Search https://masonbruce.atlassian.net/wiki/spaces/MD/pages/307953750 for more information on searching for Stands to export.

...

To support specific data manipulation tasks during export, InventoryManager Export includes a small number of functions that can be run during the export to transform data into the desired format. The table below lists the available functions. In each case, the function would be entered in the ‘esriName’ column of the export config to indicated that the source is a function rather than simply copying the value from an existing field in the ArcGIS data model.

PLOTS

Function

Description

Example

ADD

Adds the values of 2 fields together. If one or both fields are text then fields are concatenated.

ADD(Inventory_Year+Measurement_Frequency) - This example will add the values of Inventory_Year and Measurement_Frequency to calculate the year for the next inventory.

AUTOINCREMENT

Auto-numbers output rows

AUTOINCREMENT - No parameters or parenthesis needed

EXCLUDE

Exclude records based on some attribute value. Note, this has only been implemented for Trees so far.

EXCLUDE(Cut_Leave:Cut) - this example will exclude any trees for which the ‘Cut_Leave’ field contains a value of ‘Cut’

FVSGROUPS

Calculate the ‘Groups’ field in the ‘FVS_StandInit' table of the FVS SQLite database export. The groups value will always contain the phrase 'All_Stands’. Adding this function can include additional groups based on hard-coded values or the values of any field(s)

FVSGROUPS(variant=SN;Cover_Type={Cover_Type};) - this example would include the following groups:

  • All_Stands

  • variant

  • Cover_Type

LOOKUP

Lookup values from list - if the export value should come from a list of allowed values, but that list does not match the Coded Value Domain list for that field, a custom lookup table can be provided in the config file.

LOOKUP(Cruise_Type:S=0;C=1) - This example will transform the values of the field ‘Cruise_Type’ in the Trees table (with domain values of S for standard cruise and C for check cruise) needs to match the values needed in the RECTYP field used by TCruise. It will replace all instances of ‘S' with the value 0, and all instances of 'C' with the value 1.

LOOKUP(Length:0.5:8;1:16;1.5:24;) - This example could be used to translate between log lengths recorded in 1/2 logs (e.g., 0.5, 1, 1.5,…) to feet (e.g., 8, 16, 24,…).

BASALAREA

Calculates the Basal Area of a tree (in square feet) using the equation (DBH)^2 * 0.005454154;

BASALAREA(DBH) - could calculate the Basal Area of a tree. Assumes that DBH is in inches and BA is desired in square feet.

DIVIDE

Divide the value of one field by the value of another field

DIVIDE(Total_Height,DBH) - this example could calculate the height to diameter ratio for each tree to be used to detect outliers.

EXCLUDE

Exclude records based on some attribute value. Note, this has only been implemented for Trees so far.

EXCLUDE(Cut_Leave:Cut) - this example will exclude any trees for which the ‘Cut_Leave’ field contains a value of ‘Cut’

FVSGROUPS

Calculate the ‘Groups’ field in the ‘FVS_StandInit' table of the FVS SQLite database export. The groups value will always contain the phrase 'All_Stands’. Adding this function can include additional groups based on hard-coded values or the values of any field(s)

FVSGROUPS(variant=SN;Cover_Type={Cover_Type};) - this example would include the following groups:

  • All_Stands

  • variant

  • Cover_Type

LOOKUP

Lookup values from list - if the export value should come from a list of allowed values, but that list does not match the Coded Value Domain list for that field, a custom lookup table can be provided in the config file.

LOOKUP(Cruise_Type:S=0;C=1) - This example will transform the values of the field ‘Cruise_Type’ in the Trees table (with domain values of S for standard cruise and C for check cruise) needs to match the values needed in the RECTYP field used by TCruise. It will replace all instances of ‘S' with the value 0, and all instances of 'C' with the value 1.

LOOKUP(Length:0.5=8;1=16;1.5=24;) - This example could be used to translate between log lengths recorded in 1/2 logs (e.g., 0.5, 1, 1.5,…) to feet (e.g., 8, 16, 24,…).

MAX

Return the maximum value of the selected attribute values

MAX(Defect_1;Defect_2;Defect_3) - this example could calculate the maximum amount of defect when tree defect is recorded per third of each tree.

MIN

Return the minimum value of the selected attribute values

MIN(Reference_Tree_Distance_1;Reference_Tree_Distance_2) - this example could calculate the distance to the closest reference tree for a plot.

MULTIPLY

Multiply the values of two fields together

MULTIPLY(Plot_Length,Plot_Width) - this example could calculate the area of a rectangular plot in square feet when the Plot_Length field and the Plot_Width fields are entered by a cruiser in feet.

PLOTS.

Lookup value from an existing or new field in the Plots layer

PLOT.Plot_Size - this example could populate a Strata field in an output Plots table with the Strata value of that Plot’s parent Stand.

POWER

Calculate the power (exponent) of an attribute value

POWER(Plot_Width;2) - this example could calculate the area of a square plot when the plot width is stored in an attribute field. Note that this would not convert units, so this would only be appropriate if the width was in Feet and you want the area in Square Feet.

SQRT

Calculate the square root of of an attribute value

SQRT(Area) - this example could calculate the width of a square plot when the plot area is stored in an attribute field. Note that this would not convert units, so this would only be appropriate if the area was in Square Feet and you want the width in Feet.

STANDS.

Lookup value from an existing or new field in the

Plots

Stands layer

PLOT

STANDS.

Plot_Size

Strata - this example could populate a Strata field in an output Plots table with the Strata value of that Plot’s parent Stand

.STANDS

.

SUBTRACT

Subtract the values of 1 field from the value of another field.

SUBTRACT(Inventory_Year-Origin_Year) - this example could calculate a stand ‘Age’ field as the origin subtracted from the cruise year.

TREES.

Lookup value from an existing or new field in the

Stands

Trees layer

STANDS

TREES.

Strata

Species- this example could populate a

Strata

Species field in an output

Plots

Trees table with the

Strata

Species value of that

Plot’s

Log’s parent

Stand

Tree.

SUBTRACT

YEAR

Subtract the values of 1 field from the value of another field.

SUBTRACT(Inventory_Year-Origin_Year) - this example could calculate a stand ‘Age’ field as the origin subtracted from the cruise

Return the 4 character year value for a date that is stored using an Esri Date field (unix timestamp)

YEAR(Cruise_Date) - this example would return the inventory year when Cruise_Date field stores an Esri Date value for the date of the cruise (typically at Stand or Plot level)

Note this is just the calendar year, not a tree growth year.

Stands To Export

...

In addition to the original selection of stands described above, the stands to be exported can be further constrained using the Stands to Export setting on the Inventory Export tab.

...

Check cruise score calculation can be performed during the Inventory Export process. Check cruise score calculation requires that a Check_Rules table is present in the data model and is populated with one or more check cruise score rules. These rules define the quality control tests that should be applied and the point deductions that should be calculated. For more information on creating Check Cruise Rules, see InventoryManager: Check Cruise Rules. For an overview

Below are some example check cruise score rules, written in a human readable format:

...

Inventory Export supports export of data for FVS by writing out an FVS compatible SQLite database file. In order for to produce a valid FVS export, however, it is critical to use an export configuration file that maps between the Esri data model fields and the FVS expected fields. Successful creation of an export configuration file for FVS requires knowledge of FVS inputs and your Esri data model. To help support the creation of export configuration files, MB&G can provide example files that have been used by others for FVS data export.

table

index

esriName

exportName

defaultValue

Stands

1

Stand_ID

Stand_ID

0

Stands

2

Stand_ID

Stand_CN

0

Stands

3

Variant

SN

Stands

4

Inv_Year

2019

Stands

5

FVSGROUPS(variant=SN;Cover_Type={Cover_Type};)

Groups

Stands

6

AddFiles

Stands

7

FVSKeywords

Stands

8

Region

Stands

9

Forest

Stands

10

District

Stands

11

Compartment

Stands

12

Location

Stands

13

SUBTRACT(Inventory_Year-Origin_Year)

Age

Stands

14

Aspect

Stands

15

Slope

Stands

16

ElevFt

Stands

17

LOOKUP(Saw_Plot_Size:BAF10=10;BAF20=20)

Basal_Area_Factor

Stands

18

Inv_Plot_Size

100

Stands

19

Brk_DBH

5

Stands

20

Num_Plots

0

Stands

21

NonStk_Plots

Stands

22

Acres

Sam_Wt

Stands

23

Max_BA

Stands

24

Max_SDI

Stands

25

Site_Species

Stands

26

Site_Index

Stands

27

State

37

Stands

28

County

Stands

29

Fuel_Model

Stands

30

Photo_Ref

Stands

31

Photo_code

Plots

1

Stand_ID

Stand_ID

0

Plots

2

Stand_ID

Stand_CN

0

Plots

3

StandPlot_ID

0

Plots

4

StandPlot_CN

0

Plots

5

Plot_ID

Plot_ID

Plots

6

Variant

SN

Plots

7

Inv_Year

2014

Plots

8

Groups

All_Stands Variant=SN

Plots

9

AddFiles

Plots

10

FVSKeywords

Plots

11

Latitude

Latitude

Plots

12

Longitude 

Longitude

Plots

13

STANDS.Age

Age

Plots

14

Aspect

Plots

15

Slope

Plots

16

Elevation

ElevFt

Plots

17

LOOKUP(Saw_Plot_Size:BAF10=10;BAF20=20)

Basal_Area_Factor

Plots

18

Inv_Plot_Size

100

Plots

19

Brk_DBH

5

Plots

20

Num_Plots

Plots

21

NonStk_Plots

Plots

22

Max_BA

Plots

23

Max_SDI

Plots

24

Site_Species

Plots

25

Site_Index

Plots

26

State

37

Plots

27

County

Plots

28

Fuel_Model

Plots

29

Photo_Ref

Plots

30

Photo_code

Trees

1

EXCLUDE(Cut_Leave:1)

NA

Trees

2

Stand_ID

Stand_ID

0

Trees

3

Stand_ID

Stand_CN

0

Trees

4

StandPlot_ID

0

Trees

5

StandPlot_CN

0

Trees

6

Plot_ID

Plot_ID

0

Trees

7

Tree_ID

Tree_ID

0

Trees

8

Tally

Tree_Count

Trees

9

History

Trees

10

Species

Species

Trees

11

DBH

DBH

Trees

12

DG

Trees

13

Total_Height

Ht

Trees

14

Crown_Ratio

CrRatio

Trees

15

Damage1

25

Trees

16

Severity1

10

Trees

17

Damage2

Trees

18

Severity2

Trees

19

TreeValue

Trees

20

Tree_Age

Age

Trees

21

Slope

Trees

22

Aspect

When exporting data for FVS, use the appropriate export configuration file and check the box labeled Export for FVS (*.db).

This will produce a SQLite database suitable for use in the new version of FVS. The basic workflow for using this file within FVS is outlined below:

  1. Open FVS (web-based version, not Suppose. Application will open in browser using 'loopback' URL 127.0.0.1)

  2. Import Data Tab (upper left)

    1. Browse for file

    2. Install uploaded database

  3. Runs Tab (upper left)

    1. Click ‘New’ button

    2. On ‘Groups’ tab, select ‘All_Stands’ item from list, then click ‘Add stands in selected groups’ button below lists

  4. Time Tab (mid right)

    1. Select start, stop and interval

  5. Select Outputs Tab

    1. Check boxes for ‘Tree Lists’ and ‘Inventory Statistics’ (and others for which you have input data, e.g., carbon, fuels, etc.)

  6. *Run* Tab

    1. Click ‘Save and Run’

  7. Review output chart

    1. Review units & values

    2. Modify data, settings, etc. as needed

...

Example results in FVS for 5 Southern Loblolly Pine stands exported from InventoryManager using the Export for FVS option.

...