SlideShare a Scribd company logo
1 of 61
Download to read offline
Alberta Forest Cover Classification Procedure
Resource Analysis Section,
Forest Management Branch,
Alberta Sustainable Resource Development
Tammy Kobliuk
July 29, 2002
Alberta Forest Cover Classification Procedure
2
ALBERTA FOREST COVER CLASSIFICATION PROCEDURE........................................................1
1. BACKGROUND...................................................................................................................................2
2. INPUT DATA REQUIREMENTS ............................................................................................................2
3. OUTPUT DATA...................................................................................................................................3
4. FOREST COVER CLASSES...................................................................................................................4
5. GENERAL CLASSIFICATION METHODOLOGY .....................................................................................5
5.1. Species Roll-up ............................................................................................................................5
5.2. Forest Cover – No Structure........................................................................................................5
5.3. Forest Cover – Horizontal Stands ...............................................................................................6
5.4. Forest Cover – Multistory Stands................................................................................................6
5.5. Forest Cover – Understory Grasslands.......................................................................................6
5.6. Final Classification......................................................................................................................6
6. WETLANDS PREDICTION....................................................................................................................6
7. REFERENCES .....................................................................................................................................8
APPENDIX A: FOREST COVER CLASSIFICATION FIELD DEFINITIONS..........................................................9
APPENDIX B: .AML SOURCE CODE.........................................................................................................10
1. Background
The forest cover classification methodology was originally developed for the Landscape
Planning Pilot project (Olson and Diehl, 2000). There was a need to roll up the AVI
stand calls into a more general description in order to predict ecosite phase. That original
forest cover classification covered only the species and landscape classes found in the
Southern Rockies (FMU’s C5, CO1, and CO2). These classes were added to and
expanded to include species and classes found in other parts of Alberta.
The forest cover classification program is written in .AML and is intended to be run from
within ArcInfo workstation, from the Arc prompt. The .AML program anticipates that
the AVI attribute information is stored in INFO.
2. Input Data Requirements
The provincial AVI 2.1 data model is the required format for the input data set for the
forest cover classification. The required fields are as follows:
Table 1. Required AVI 2.1 fields
Field Name Description
SP1, SP2, SP3, SP4, SP5 Overstory species fields
SP1_PER, SP2_PER, SP3_PER, SP4_PER,
SP5_PER
Overstory species percentages
USP1, USP2, USP3, USP4, USP5 Understory species fields
USP1_PER, USP2_PER, USP3_PER,
USP4_PER, USP5_PER
Understory species percentages
MOIST_REG, UMOIST_REG Moisture regime (overstory, understory)
STRUC Stand structure
USTRUC_VAL Understory stand structure ‘extent’
(ie. For Horizontal stands)
DENSITY, UDENSITY Crown Closure (overstory, understory)
NFL, UNFL Naturally non-forested land
NAT_NON, UNAT_NON Naturally non-vegetated
ANTH_VEG, UANTH_VEG Anthropogenic vegetation
Alberta Forest Cover Classification Procedure
3
ANTH_NON, UANTH_NON Antrhopogenic non-vegetated
MOD1, MOD2 Stand modifiers
MOD1_EXT, MOD2_EXT Stand modifier extents
3. Output Data
The forest cover classification procedure requires the creation and population of various
additional fields:
Table 2. Species Roll-up: Overstory
Field Name Description
ASPEN_PCT Percentage of Trembling Aspen (Aw) and undifferentiated
deciduous (A)
TRUEFIR_PCT Percentage of Balsam Fir (Fb) and Sub-alpine Fir (Fa)
SPRUCE_PCT Percentage of White Spruce (Sw) and Engelmann Spruce (Se)
SPRUCEB_PCT Percentage of Black Spruce (Sb)
PINE_PCT Percentage of Lodgepole Pine (Pl), Jackpine (Pj), and
undifferentiated Pine (P)
WHITELIMB_PCT Percentage of White-bark Pine (Pa) and Limber Pine (Pf)
DOUGFIR_PCT Percentage of Douglas Fir (Fd)
LARCHA_PCT Percentage of Alpine Larch (La)
LARCHT_PCT Percentage of Larch Tamarack (Lt)
BIRCH_PCT Percentage of Paper Birch (Bw)
POPLAR_PCT Percentage of Balsam Poplar (Pb)
TOT_CONIFER Total percentage of conifer species
TOT_DECID Total percentage of deciduous species
Table 3. Species Roll-up: Understory
Field Name Description
UASPEN_PCT Percentage of Trembling Aspen (Aw) and undifferentiated
deciduous (A)
UTRUEFIR_PCT Percentage of Balsam Fir (Fb) and Sub-alpine Fir (Fa)
USPRUCE_PCT Percentage of White Spruce (Sw) and Engelmann Spruce (Se)
USPRUCEB_PCT Percentage of Black Spruce (Sb)
UPINE_PCT Percentage of Lodgepole Pine (Pl), Jackpine (Pj), and
undifferentiated Pine (P)
UWHITELMB_PCT Percentage of White-bark Pine (Pa) and Limber Pine (Pf)
UDOUGFIR_PCT Percentage of Douglas Fir (Fd)
ULARCHA_PCT Percentage of Alpine Larch (La)
ULARCHT_PCT Percentage of Larch Tamarack (Lt)
UBIRCH_PCT Percentage of Paper Birch (Bw)
UPOPLAR_PCT Percentage of Balsam Poplar (Pb)
UTOT_CONIFER Total percentage of conifer species
UTOT_DECID Total percentage of deciduous species
Table 4. Forest Cover Classification fields
Field Name Description
COVERCAT Concatenated species call
FC_NOSTR Forest cover class of overstory call (disregarding any understory
attributes)
FC_H_STR Forest cover classification of horizontal call
FC_M_STR Forest cover classification of ‘A’-density overstory multistory call
UGRASS Understory grass type call
FC_DOM Dominant forest cover classification
Alberta Forest Cover Classification Procedure
4
FC_SUBDOM Sub-dominant forest cover classification
FC_COMPLEX Concatenated dominant and sub-dominant forest cover class
4. Forest Cover Classes
The following is a complete list of the forest cover classes in this classification
procedure:
“Pure” Stands
1. Pine (Lodgepole/Jack)
2. White/Engelmann Spruce
3. Black Spruce
4. True Fir
5. Douglas Fir
6. Subalpine/Western Larch
7. Larch Tamarack
8. Whitebark/Limber Pine
9. Aspen
10. Balsam Poplar
11. Birch
Mixedwood Stands
12. Aspen Mixedwood
13. Balsam Poplar Mixedwood
14. Birch Mixedwood
15. Pine (Lodgepole/Jack) Mixedwood
16. White/Engelmann Spruce Mixedwood
17. Black Spruce Mixedwood
18. Larch Tamarack Mixedwood
19. True Fir Mixedwood
20. Douglas Fir Mixedwood
Mixed Conifer Stands
21. Mixed Conifer (Pine – Lodgepole/Jack)
22. Mixed Conifer (White/Engelmann Spruce)
23. Mixed Conifer (Black Spruce)
24. Mixed Conifer (True Fir)
25. Mixed Conifer (Douglas Fir)
26. Mixed Conifer (Whitebark/Limber Pine)
27. Mixed Conifer (Subalpine/Western Larch)
28. Mixed Conifer (Larch Tamarack)
Wetlands
29. Black Spruce Wetland
30. White Spruce Wetland
31. Black Spruce/Larch Tamarack Wetland
32. Larch Tamarack Wetland
33. Shrub Wetland
Non-Forested Lands
34. Shrub Meadow Open Mesic
35. Shrub Meadow Open Dry
Alberta Forest Cover Classification Procedure
5
36. Shrub Meadow Closed Mesic
37. Shrub Meadow Closed Dry
38. Wet Graminoid
39. Forb Meadow
40. Bryophytic
41. Grassland Mesic
42. Grassland Dry
43. Rock Barren
44. Cutbank/Sand
45. River
46. Lakes/Ponds
47. Permanent Ice/Snow
48. Flooded
49. Recent Burn
Anthropogenic Lands
50. Rough Pasture Open Mesic
51. Rough Pasture Open Dry
52. Rough Pasture Closed Mesic
53. Rough Pasture Closed Dry
54. Annual Crops
55. Perennial Crops
56. Perennial Forage Crops
57. Gravel Pits/Surface Mines
58. Rural Residential
59. Hamlets, Villages and Towns
60. Non-Veg ROWs
61. Farmsteads
62. Plant Sites/Sewage Lagoons
63. Industrial Reclamation-Vegetated
64. Partial Cut/Regenerating Clearcut
65. Herbaceous Clearcut
66. Herbaceous Clearing
5. General Classification Methodology
The forest cover classification procedure is broken up into several different sections.
5.1. Species Roll-up
The Species Roll-up section is a preparatory section that tabulates the amount of each
species in both the understory and overstory of a stand call. These species percentage
fields facilitate the forest cover classification queries in the next four sections.
5.2. Forest Cover – No Structure
A first-cut classification is done on the overstory call of all stands, irregardless of stand
structure type and understory call. These queries are used to populate the field
FC_NOSTR.
Alberta Forest Cover Classification Procedure
6
5.3. Forest Cover – Horizontal Stands
All horizontal stands (STRUC = H) are examined. Those stands having an understory
call containing > 50% of the polygon and containing tree species will be classified. The
classification field is FC_H_STR.
5.4. Forest Cover – Multistory Stands
All multistory stands having an ‘A’ density overstory and a forested understory with a
density greater than ‘A’ will be examined and classified. The classification field is
FC_M_STR.
5.5. Forest Cover – Understory Grasslands
This classification is intended to target complex grassland structures of horizontal and
multistory stands. The classification field is UGRASS. The following types of stands are
examined:
  Non-forested closed shrub lands where shrub coverage is < 60%, no structure
is noted, and no understory non-forested call is noted.
  Horizontal and multistory stands where the overstory is forested, no
understory non-forested call is present, and understory anthropogenic
vegetation is either rough pasture or not populated.
  Non-forested closed shrub lands where shrub coverage is < 60%, no structure
is noted, and an understory non-forested call is noted.
  Understory shrub calls with an understory anthropogenic vegetation call.
  Understory herbaceous grass calls with wet or aquatic moisture regimes.
  Any understory call of anthropogenic vegetation.
  Any understory call of herbaceous grass.
  Any understory call of anthropogenic non-vegetated land.
  Any understory call on naturally non-vegetated land.
5.6. Final Classification
The final classification step assigns the calls from FC_NOSTR, FC_H_STR, FC_M_STR, and
UGRASS to the dominant and sub-dominant forest cover classes. The dominant and sub-
dominant and then concatenated into a complex forest cover class.
Dominant forest cover was considered as:
  FC_NOSTR where no horizontal or multistory call was made.
  FC_H_STR where a horizontal class was calculated..
  FC_M_STR where a multistory class was calculated.
Sub-dominant forest cover was considered as:
  FC_NOSTR where a horizontal or multistory class was calculated.
  UGRASS where an understory grass class was calculated.
6. Wetlands Prediction
The original Landscape Planning Pilot forest cover classification procedure (Olson and
Diehl, 2000) classified only shrub wetlands and a generic spruce wetland type. Upon
expanding the forest cover classification procedure to the rest of the province, the
Alberta Forest Cover Classification Procedure
7
opportunity presented itself to be able to predict additional types of wetlands, which
might represent distinct ecological land types. Personal communication with Grant
Klappstein and Leonard Barnhardt of the Forest Management Branch of Alberta
Sustainable Resource Development facilitated definition of four types of forested
wetlands that could be predicted from AVI stand calls: black spruce wetland, white
spruce wetland, larch tamarack wetland, black spruce/larch tamarack wetland. Although
all wetland classes have a “wet” or “aquatic” moisture regime, it should be noted that not
all “wet” forested stands receive a wetland-type classification.
The following criteria were used to define the forested wetland types:
Black Spruce Wetland
  Dominant presence of Black Spruce
  No presence of Larch
  No presence of White Spruce
  No presence of Fir species
  ≤ 20% Lodgepole/Jack Pine
  No presence of Aspen
  ≤ 10% Poplar
  ≤ 20% Birch
  Cumulative presence of deciduous species ≤ 20%
White Spruce Wetland
  Presence of White Spruce (≥ 20%) in a spruce wetland
  < 50% Larch present
  No presence of Fir species
  ≤ 20% Lodgepole/Jack Pine
  No presence of Aspen
  ≤ 10% Poplar
  ≤ 20% Birch
  Cumulative presence of deciduous species ≤ 20%
  FC_NOSTR must not be already classified as “Black Spruce Wetland”
Larch Tamarack Wetland
  Dominant Larch presence (≥ 80%)
  < 50% Black Spruce in both the overstory and understory
  < 50% White Spruce
  No presence of Fir species
  ≤ 20% Lodgepole/Jack Pine
  No presence of Aspen
  ≤ 10% Poplar
  ≤ 20% Birch
  Cumulative presence of deciduous species ≤ 20%
Black Spruce/Larch Tamarack Wetland
  No presence of Fir species
Alberta Forest Cover Classification Procedure
8
  ≤ 20% Lodgepole/Jack Pine
  No presence of Aspen
  ≤ 10% Poplar
  ≤ 20% Birch
  Cumulative presence of deciduous species ≤ 20%
AND
  ≥ 10% and < 80% Larch
  ≥ 10% Black Spruce
OR
  Overstory or understory presence of Larch
  Overstory presence of Black Spruce
OR
  Overstory ≥ 30% Black Spruce or understory ≥ 50% Black Spruce
  FC_NOSTR contains some type of Larch class
7. References
Alberta Department of Environmental Protection. 1991. Alberta Vegetation Inventory
Standards Manual, Version 2.1. Edmonton, Alberta. 53pp.
Barnhardt, Leonard. Personal communication March 2002. Forest Geneticist with the
Forest Management Branch of Alberta Sustainable Resource Development.
Klappstein, Grant. Personal communication March 2002. Growth and Yield Specialist
with the Forest Management Branch of Alberta Sustainable Resource
Development.
Olson, J.D. and S. Diehl. 2000. Forest Cover Classification Procedure. Alberta
Environment, unpublished report. 68pp.
Alberta Forest Cover Classification Procedure
9
Appendix A: Forest Cover Classification Field Definitions
Table 5. Classification Field Definitions
Field Name Input Width Output Width Field Type
ASPEN_PCT 2 2 I
TRUEFIR_PCT 2 2 I
SPRUCE_PCT 2 2 I
SPRUCEB_PCT 2 2 I
PINE_PCT 2 2 I
WHITELIMB_PCT 2 2 I
DOUGFIR_PCT 2 2 I
LARCHA_PCT 2 2 I
LARCHT_PCT 2 2 I
BIRCH_PCT 2 2 I
POPLAR_PCT 2 2 I
TOT_CONIFER 2 2 I
TOT_DECID 2 2 I
UASPEN_PCT 2 2 I
UTRUEFIR_PCT 2 2 I
USPRUCE_PCT 2 2 I
USPRUCEB_PCT 2 2 I
UPINE_PCT 2 2 I
UWHITELMB_PCT 2 2 I
UDOUGFIR_PCT 2 2 I
ULARCHA_PCT 2 2 I
ULARCHT_PCT 2 2 I
UBIRCH_PCT 2 2 I
UPOPLAR_PCT 2 2 I
UTOT_CONIFER 2 2 I
UTOT_DECID 2 2 I
COVERCAT 15 15 C
FC_NOSTR 40 40 C
FC_H_STR 40 40 C
FC_M_STR 40 40 C
UGRASS 30 30 C
FC_DOM 40 40 C
FC_SUBDOM 40 40 C
FC_COMPLEX 85 85 C
Alberta Forest Cover Classification Procedure
10
Appendix B: .AML Source Code
/*==========================
/* PROGRAM: fc_class.aml
/*==========================
/* DESCRIPTION: LANDSCAPE PLANNING PILOT FOREST COVER CLASSIFICATION PROCEDURE
/* This .aml calculates species percentages for both overstory and
/* understory. Calculates forest cover classification dominant,
/* sub-dominant, and complex calls. This .AML requires input inventory
/* data to be in the provincial(RDB) AVI 2.1 data model. At the time of
/* writing, the AVI attributes are expected to be in an INFO .ATT table.
/****************************************************************************
/* NOTE: THIS PROGRAM SHOULD ONLY BE RUN BY THOSE PERSONS WITH SUFFICIENT
/* BACKGROUND KNOWLEDGE TO CHECK THE VALIDITY OF THE FINAL RESULTS.
/* THE INTENDED DISTRIBUTION METHOD OF THIS PROGRAM IS AS AN ENCRIPTED
/* .aml FILE. THIS IS INTENDED TO ENFORCE VERSION CONTROL. SOURCE
/* CODING MAY BE DISTRIBUTED IN PASSWORD-PROTECTED .pdf FORMAT.
/* FOREST MANAGEMENT BRANCH WILL MAINTAIN AND MODIFY THE SOURCE CODE AS
/* NEEDED.
/****************************************************************************
/* USAGE: &run fc_class.aml
/*
/* ARGUMENTS: none
/*
/* CALLS: none
/*
/*================================
/*
/* PROGRAMMED BY: T.Kobliuk
/* PROGRAMMED FOR: Resource Analysis Section - Forest Management Branch,
/* Sustainable Resource Development
/*
/* DATE: September 28, 2001
/* LAST MODIFIED: October 9, 2001: (TK) main code OCALFIELDS routine
/* October 10, 2001: (TK) main code UCALCFIELDS routine
/* November 5, 2001: (TK) main code CHECKFIELDS routine
/* November 9, 2001: (TK) main code CLASSFIELDS, routine
/* November 10, 2001: (TK) main code NO_STRUCTURE routine
/* November 13, 2001: (TK) main code NO_STRUCTURE, MULTISTOREY
/* and UGRASS routines.
/* November 14, 2001: (TK) main code completion
/* March 11, 2002: (TK) updating for Weldwood AVI
/* March 12/13, 2002: (TK) updating for Lt and Sb partitions
/* March 14/15, 2002: (TK) error correction Wetland classes
/* March 19, 2002: (TK) Wetland class modifications
/* May 22, 2002: (TK) choice .ATT/.PAT
/*
/*================================
/* ROUTINES: BAILOUT - bails out of the aml due to an error condition
/* CHECKFIELDS - checks for existence of fields in ADDFIELDS routine;
/* Deletes fields if they exist.
/* ADDFIELDS - adds required species percent and classification fields
/* OCALCFIELDS - calculates values for overstory species percent fields
/* UCALCFIELDS - calculates values for understory species percent fields
/* CLASSFIELDS - calculates values for classification fields
/* NO_STRUCTURE - calculates forest cover class based on overstory calls.
/* Called from CLASSFIELDS.
/* HORZ_STRUCTURE - calculates forest cover class based on horizontal calls.
/* Called from CLASSFIELDS.
/* MULTISTOREY - calculates understory forest cover class based on
multistorey,
/* 'A' density overstory calls. Called from CLASSFIELDS.
/* UGRASS - calculates forest cover classification for understory
/* grassland components. Called from CLASSFIELDS.
Alberta Forest Cover Classification Procedure
11
/* -----------------------
/* [VARIABLES]
/*
/* GLOBALS: none
/*
/* LOCALS: tablename - selected AVI attribute table
/* uptablename - selected AVI attribute table name in uppercase
/* overcheckn - 'n' variable(s) to store location of searched overstory field.
/* Zero if it does not exist.
/* undercheckn - 'n' variable(s) to store location of searched understory field.
/* Zero if it does not exist.
/* classcheckn - 'n' variable(s) to store location of searched classification
fields.
/* Zero if it does not exist.
/*
/* SYSTEM: :program - current arcinfo module (ie. TABLES)
/*
/*===========================================================================
&severity &error &routine BAILOUT
&echo &on
&terminal 9999
display 9999
&setvar tabletype = [getchoice .att .pat .avi -prompt 'Where are your AVI
attributes?']
&setvar tablename = [after [after [entryname [getfile *%tabletype% -info]] !]
!]
/*&setvar tablename = [after [after [entryname [getfile *.att -info]] !] !]
&type Selected table for processing is [upcase %tablename%]
&call CHECKFIELDS
&call ADDFIELDS
&call OCALCFIELDS
&call UCALCFIELDS
&call CLASSFIELDS
&type
&type ***************************************
&type FC_CLASS.AML HAS SUCCESSFULLY COMPLETED
&type ***************************************
&echo &off
&return
/*===========================================================================
&routine CHECKFIELDS
/*===========================================================================
/* Checking for existence of forestcover calculation fields and removing them
/* if they exist.
/* Checking OVERSTORY fields.
&setvar overcheck1 = [token -[listitem %tablename% -info] -find ASPEN_PCT]
&setvar overcheck2 = [token -[listitem %tablename% -info] -find TRUEFIR_PCT]
&setvar overcheck3 = [token -[listitem %tablename% -info] -find SPRUCE_PCT]
&setvar overcheck4 = [token -[listitem %tablename% -info] -find PINE_PCT]
&setvar overcheck5 = [token -[listitem %tablename% -info] -find WHITELIMB_PCT]
&setvar overcheck6 = [token -[listitem %tablename% -info] -find DOUGFIR_PCT]
&setvar overcheck7 = [token -[listitem %tablename% -info] -find LARCHA_PCT]
&setvar overcheck8 = [token -[listitem %tablename% -info] -find BIRCH_PCT]
&setvar overcheck9 = [token -[listitem %tablename% -info] -find POPLAR_PCT]
&setvar overcheck10 = [token -[listitem %tablename% -info] -find TOT_CONIFER]
&setvar overcheck11 = [token -[listitem %tablename% -info] -find TOT_DECID]
&setvar overcheck12 = [token -[listitem %tablename% -info] -find LARCHT_PCT]
&setvar overcheck13 = [token -[listitem %tablename% -info] -find SPRUCEB_PCT]
Alberta Forest Cover Classification Procedure
12
/* Checking UNDERSTORY fields.
&setvar undercheck1 = [token -[listitem %tablename% -info] -find UASPEN_PCT]
&setvar undercheck2 = [token -[listitem %tablename% -info] -find UTRUEFIR_PCT]
&setvar undercheck3 = [token -[listitem %tablename% -info] -find USPRUCE_PCT]
&setvar undercheck4 = [token -[listitem %tablename% -info] -find UPINE_PCT]
&setvar undercheck5 = [token -[listitem %tablename% -info] -find UWHITELMB_PCT]
&setvar undercheck6 = [token -[listitem %tablename% -info] -find UDOUGFIR_PCT]
&setvar undercheck7 = [token -[listitem %tablename% -info] -find ULARCHA_PCT]
&setvar undercheck8 = [token -[listitem %tablename% -info] -find UBIRCH_PCT]
&setvar undercheck9 = [token -[listitem %tablename% -info] -find UPOPLAR_PCT]
&setvar undercheck10 = [token -[listitem %tablename% -info] -find UTOT_CONIFER]
&setvar undercheck11 = [token -[listitem %tablename% -info] -find UTOT_DECID]
&setvar undercheck12 = [token -[listitem %tablename% -info] -find ULARCHT_PCT]
&setvar undercheck13 = [token -[listitem %tablename% -info] -find USPRUCEB_PCT]
/* Checking CLASSIFICATION fields.
&setvar classcheck1 = [token -[listitem %tablename% -info] -find COVERCAT]
&setvar classcheck2 = [token -[listitem %tablename% -info] -find FC_NOSTR]
&setvar classcheck3 = [token -[listitem %tablename% -info] -find FC_H_STR]
&setvar classcheck4 = [token -[listitem %tablename% -info] -find FC_M_STR]
&setvar classcheck5 = [token -[listitem %tablename% -info] -find UGRASS]
&setvar classcheck6 = [token -[listitem %tablename% -info] -find FC_DOM]
&setvar classcheck7 = [token -[listitem %tablename% -info] -find FC_SUBDOM]
&setvar classcheck8 = [token -[listitem %tablename% -info] -find FC_COMPLEX]
/* Removing OVERSTORY fields
&if %overcheck1% ne 0 &then dropitem %tablename% %tablename% ASPEN_PCT
&if %overcheck2% ne 0 &then dropitem %tablename% %tablename% TRUEFIR_PCT
&if %overcheck3% ne 0 &then dropitem %tablename% %tablename% SPRUCE_PCT
&if %overcheck4% ne 0 &then dropitem %tablename% %tablename% PINE_PCT
&if %overcheck5% ne 0 &then dropitem %tablename% %tablename% WHITELIMB_PCT
&if %overcheck6% ne 0 &then dropitem %tablename% %tablename% DOUGFIR_PCT
&if %overcheck7% ne 0 &then dropitem %tablename% %tablename% larcha_PCT
&if %overcheck8% ne 0 &then dropitem %tablename% %tablename% BIRCH_PCT
&if %overcheck9% ne 0 &then dropitem %tablename% %tablename% POPLAR_PCT
&if %overcheck10% ne 0 &then dropitem %tablename% %tablename% TOT_CONIFER
&if %overcheck11% ne 0 &then dropitem %tablename% %tablename% TOT_DECID
&if %overcheck12% ne 0 &then dropitem %tablename% %tablename% larcht_PCT
&if %overcheck13% ne 0 &then dropitem %tablename% %tablename% SPRUCEB_PCT
/* Removing UNDERSTORY fields
&if %undercheck1% ne 0 &then dropitem %tablename% %tablename% UASPEN_PCT
&if %undercheck2% ne 0 &then dropitem %tablename% %tablename% UTRUEFIR_PCT
&if %undercheck3% ne 0 &then dropitem %tablename% %tablename% USPRUCE_PCT
&if %undercheck4% ne 0 &then dropitem %tablename% %tablename% UPINE_PCT
&if %undercheck5% ne 0 &then dropitem %tablename% %tablename% UWHITELMB_PCT
&if %undercheck6% ne 0 &then dropitem %tablename% %tablename% UDOUGFIR_PCT
&if %undercheck7% ne 0 &then dropitem %tablename% %tablename% ULARCHA_PCT
&if %undercheck8% ne 0 &then dropitem %tablename% %tablename% UBIRCH_PCT
&if %undercheck9% ne 0 &then dropitem %tablename% %tablename% UPOPLAR_PCT
&if %undercheck10% ne 0 &then dropitem %tablename% %tablename% UTOT_CONIFER
&if %undercheck11% ne 0 &then dropitem %tablename% %tablename% UTOT_DECID
&if %undercheck12% ne 0 &then dropitem %tablename% %tablename% Ularcht_PCT
&if %undercheck13% ne 0 &then dropitem %tablename% %tablename% USPRUCEB_PCT
/* Removing CLASSIFICATION fields
&if %classcheck1% ne 0 &then dropitem %tablename% %tablename% COVERCAT
&if %classcheck2% ne 0 &then dropitem %tablename% %tablename% FC_NOSTR
&if %classcheck3% ne 0 &then dropitem %tablename% %tablename% FC_H_STR
&if %classcheck4% ne 0 &then dropitem %tablename% %tablename% FC_M_STR
&if %classcheck5% ne 0 &then dropitem %tablename% %tablename% UGRASS
&if %classcheck6% ne 0 &then dropitem %tablename% %tablename% FC_DOM
&if %classcheck7% ne 0 &then dropitem %tablename% %tablename% FC_SUBDOM
Alberta Forest Cover Classification Procedure
13
&if %classcheck8% ne 0 &then dropitem %tablename% %tablename% FC_COMPLEX
&return
/*===========================================================================
&routine ADDFIELDS
/*===========================================================================
/* Adding general species percentage fields, and a total coniferous percent
/* field. Adding final classification fields.
tables
additem %tablename% aspen_pct 2 2 i
additem %tablename% truefir_pct 2 2 i
additem %tablename% spruce_pct 2 2 i
additem %tablename% spruceb_pct 2 2 i
additem %tablename% pine_pct 2 2 i
additem %tablename% whitelimb_pct 2 2 i
additem %tablename% dougfir_pct 2 2 i
additem %tablename% larcha_pct 2 2 i
additem %tablename% larcht_pct 2 2 i
additem %tablename% birch_pct 2 2 i
additem %tablename% poplar_pct 2 2 i
additem %tablename% tot_conifer 2 2 i
additem %tablename% tot_decid 2 2 i
additem %tablename% uaspen_pct 2 2 i
additem %tablename% utruefir_pct 2 2 i
additem %tablename% uspruce_pct 2 2 i
additem %tablename% uspruceb_pct 2 2 i
additem %tablename% upine_pct 2 2 i
additem %tablename% uwhitelmb_pct 2 2 i
additem %tablename% udougfir_pct 2 2 i
additem %tablename% ularcha_pct 2 2 i
additem %tablename% ularcht_pct 2 2 i
additem %tablename% ubirch_pct 2 2 i
additem %tablename% upoplar_pct 2 2 i
additem %tablename% utot_conifer 2 2 i
additem %tablename% utot_decid 2 2 i
additem %tablename% covercat 15 15 c
additem %tablename% fc_nostr 40 40 c
additem %tablename% fc_h_str 40 40 c
additem %tablename% fc_m_str 40 40 c
additem %tablename% ugrass 30 30 c
additem %tablename% fc_dom 40 40 c
additem %tablename% fc_subdom 40 40 c
additem %tablename% fc_complex 85 85 c
quit
&return
/*===========================================================================
&routine OCALCFIELDS
/*===========================================================================
/* Populating overstory fields added in routine ADDFIELDS.
tables
select %tablename%
/******************************
/* Calculating ASPEN percentage
Alberta Forest Cover Classification Procedure
14
/******************************
calc aspen_pct = 0
reselect sp1 = 'A' or sp1 = 'Aw'
calc aspen_pct = sp1_per
nselect
reselect sp2 = 'A' or sp2 = 'Aw'
calc aspen_pct = aspen_pct + sp2_per
nselect
reselect sp3 = 'A' or sp3 = 'Aw'
calc aspen_pct = aspen_pct + sp3_per
nselect
reselect sp4 = 'A' or sp4 = 'Aw'
calc aspen_pct = aspen_pct + sp4_per
nselect
reselect sp5 = 'A' or sp5 = 'Aw'
calc aspen_pct = aspen_pct + sp5_per
reselect
nselect
/**********************************
/* Calculating TRUE FIR percentage.
/**********************************
calc truefir_pct = 0
reselect sp1 = 'Fb' or sp1 = 'Fa'
calc truefir_pct = sp1_per
nselect
reselect sp2 = 'Fb' or sp2 = 'Fa'
calc truefir_pct = truefir_pct + sp2_per
nselect
reselect sp3 = 'Fb' or sp3 = 'Fa'
calc truefir_pct = truefir_pct + sp3_per
nselect
reselect sp4 = 'Fb' or sp4 = 'Fa'
calc truefir_pct = truefir_pct + sp4_per
nselect
reselect sp5 = 'Fb' or sp5 = 'Fa'
calc truefir_pct = truefir_pct + sp5_per
reselect
nselect
/********************************
/* Calculating SPRUCE percentage.
/********************************
calc spruce_pct = 0
reselect sp1 = 'Sw' or sp1 = 'Se'
calc spruce_pct = sp1_per
nselect
reselect sp2 = 'Sw' or sp2 = 'Se'
calc spruce_pct = spruce_pct + sp2_per
nselect
reselect sp3 = 'Sw' or sp3 = 'Se'
calc spruce_pct = spruce_pct + sp3_per
nselect
reselect sp4 = 'Sw' or sp4 = 'Se'
calc spruce_pct = spruce_pct + sp4_per
nselect
reselect sp5 = 'Sw' or sp5 = 'Se'
calc spruce_pct = spruce_pct + sp5_per
reselect
nselect
/**************************************
/* Calculating BLACK SPRUCE percentage.
Alberta Forest Cover Classification Procedure
15
/**************************************
calc spruceb_pct = 0
reselect sp1 = 'Sb'
calc spruceb_pct = sp1_per
nselect
reselect sp2 = 'Sb'
calc spruceb_pct = spruceb_pct + sp2_per
nselect
reselect sp3 = 'Sb'
calc spruceb_pct = spruceb_pct + sp3_per
nselect
reselect sp4 = 'Sb'
calc spruceb_pct = spruceb_pct + sp4_per
nselect
reselect sp5 = 'Sb'
calc spruceb_pct = spruceb_pct + sp5_per
reselect
nselect
/*********************************************
/* Calculating LODGEPOLE/JACK PINE percentage.
/*********************************************
calc pine_pct = 0
reselect sp1 = 'P' or sp1 = 'Pl' or sp1 = 'Pj'
calc pine_pct = sp1_per
nselect
reselect sp2 = 'P' or sp2 = 'Pl' or sp2 = 'Pj'
calc pine_pct = pine_pct + sp2_per
nselect
reselect sp3 = 'P' or sp3 = 'Pl' or sp3 = 'Pj'
calc pine_pct = pine_pct + sp3_per
nselect
reselect sp4 = 'P' or sp4 = 'Pl' or sp4 = 'Pj'
calc pine_pct = pine_pct + sp4_per
nselect
reselect sp5 = 'P' or sp5 = 'Pl' or sp5 = 'Pj'
calc pine_pct = pine_pct + sp5_per
reselect
nselect
/*************************************************
/* Calculating WHITEBARK / LIMBER PINE percentage.
/*************************************************
calc whitelimb_pct = 0
reselect sp1 = 'Pa' or sp1 = 'Pf'
calc whitelimb_pct = sp1_per
nselect
reselect sp2 = 'Pa' or sp2 = 'Pf'
calc whitelimb_pct = whitelimb_pct + sp2_per
nselect
reselect sp3 = 'Pa' or sp3 = 'Pf'
calc whitelimb_pct = whitelimb_pct + sp3_per
nselect
reselect sp4 = 'Pa' or sp4 = 'Pf'
calc whitelimb_pct = whitelimb_pct + sp4_per
nselect
reselect sp5 = 'Pa' or sp5 = 'Pf'
calc whitelimb_pct = whitelimb_pct + sp5_per
reselect
nselect
/************************************
/* Calculating DOUGLAS FIR percentage
Alberta Forest Cover Classification Procedure
16
/************************************
calc dougfir_pct = 0
reselect sp1 = 'Fd'
calc dougfir_pct = sp1_per
nselect
reselect sp2 = 'Fd'
calc dougfir_pct = dougfir_pct + sp2_per
nselect
reselect sp3 = 'Fd'
calc dougfir_pct = dougfir_pct + sp3_per
nselect
reselect sp4 = 'Fd'
calc dougfir_pct = dougfir_pct + sp4_per
nselect
reselect sp5 = 'Fd'
calc dougfir_pct = dougfir_pct + sp5_per
reselect
nselect
/*************************************************
/* Calculating SUBALPINE/WESTERN LARCH percentage.
/*************************************************
calc larcha_pct = 0
reselect sp1 = 'La' or sp1 = 'Lw'
calc larcha_PCT = sp1_per
nselect
reselect sp2 = 'La' or sp2 = 'Lw'
calc larcha_PCT = larcha_PCT + sp2_per
nselect
reselect sp3 = 'La' or sp3 = 'Lw'
calc larcha_PCT = larcha_PCT + sp3_per
nselect
reselect sp4 = 'La' or sp4 = 'Lw'
calc larcha_PCT = larcha_PCT + sp4_per
nselect
reselect sp5 = 'La' or sp5 = 'Lw'
calc larcha_PCT = larcha_PCT + sp5_per
reselect
nselect
/****************************************
/* Calculating LARCH TAMARACK percentage.
/****************************************
calc larcht_pct = 0
reselect sp1 = 'Lt'
calc larcht_PCT = sp1_per
nselect
reselect sp2 = 'Lt'
calc larcht_PCT = larcht_PCT + sp2_per
nselect
reselect sp3 = 'Lt'
calc larcht_PCT = larcht_PCT + sp3_per
nselect
reselect sp4 = 'Lt'
calc larcht_PCT = larcht_PCT + sp4_per
nselect
reselect sp5 = 'Lt'
calc larcht_PCT = larcht_PCT + sp5_per
reselect
nselect
/******************************
/* Calculating BIRCH percentage
Alberta Forest Cover Classification Procedure
17
/******************************
calc birch_pct = 0
reselect sp1 = 'Bw'
calc birch_pct = sp1_per
nselect
reselect sp2 = 'Bw'
calc birch_pct = birch_pct + sp2_per
nselect
reselect sp3 = 'Bw'
calc birch_pct = birch_pct + sp3_per
nselect
reselect sp4 = 'Bw'
calc birch_pct = birch_pct + sp4_per
nselect
reselect sp5 = 'Bw'
calc birch_pct = birch_pct + sp5_per
reselect
nselect
/******************************
/* Calculating POPLAR percentage
/******************************
calc poplar_pct = 0
reselect sp1 = 'Pb'
calc poplar_pct = sp1_per
nselect
reselect sp2 = 'Pb'
calc poplar_pct = poplar_pct + sp2_per
nselect
reselect sp3 = 'Pb'
calc poplar_pct = poplar_pct + sp3_per
nselect
reselect sp4 = 'Pb'
calc poplar_pct = poplar_pct + sp4_per
nselect
reselect sp5 = 'Pb'
calc poplar_pct = poplar_pct + sp5_per
reselect
nselect
/************************************************
/* Calculating TOTAL OVERSTORY CONIFER percentage
/************************************************
calc tot_conifer = 0
calc tot_conifer = spruce_pct + pine_pct + truefir_pct + dougfir_pct +
larcha_PCT + whitelimb_pct + spruceb_pct + larcht_pct
/**************************************************
/* Calculating TOTAL OVERSTORY DECIDUOUS percentage
/**************************************************
calc tot_decid = 0
calc tot_decid = poplar_pct + aspen_pct + birch_pct
quit
&return
/*========================================================================
&routine UCALCFIELDS
/*========================================================================
/* Populating understory fields added in routine ADDFIELDS.
tables
Alberta Forest Cover Classification Procedure
18
select %tablename%
/******************************
/* Calculating ASPEN percentage
/******************************
calc uaspen_pct = 0
reselect usp1 = 'A' or usp1 = 'Aw'
calc uaspen_pct = usp1_per
nselect
reselect usp2 = 'A' or usp2 = 'Aw'
calc uaspen_pct = uaspen_pct + usp2_per
nselect
reselect usp3 = 'A' or usp3 = 'Aw'
calc uaspen_pct = uaspen_pct + usp3_per
nselect
reselect usp4 = 'A' or usp4 = 'Aw'
calc uaspen_pct = uaspen_pct + usp4_per
nselect
reselect usp5 = 'A' or usp5 = 'Aw'
calc uaspen_pct = uaspen_pct + usp5_per
reselect
nselect
/**********************************
/* Calculating TRUE FIR percentage.
/**********************************
calc utruefir_pct = 0
reselect usp1 = 'Fb' or usp1 = 'Fa'
calc utruefir_pct = usp1_per
nselect
reselect usp2 = 'Fb' or usp2 = 'Fa'
calc utruefir_pct = utruefir_pct + usp2_per
nselect
reselect usp3 = 'Fb' or usp3 = 'Fa'
calc utruefir_pct = utruefir_pct + usp3_per
nselect
reselect usp4 = 'Fb' or usp4 = 'Fa'
calc utruefir_pct = utruefir_pct + usp4_per
nselect
reselect usp5 = 'Fb' or usp5 = 'Fa'
calc utruefir_pct = utruefir_pct + usp5_per
reselect
nselect
/************************************************
/* Calculating WHITE/ENGELMANN SPRUCE percentage.
/************************************************
calc uspruce_pct = 0
reselect usp1 = 'Sw' or usp1 = 'Se'
calc uspruce_pct = usp1_per
nselect
reselect usp2 = 'Sw' or usp2 = 'Se'
calc uspruce_pct = uspruce_pct + usp2_per
nselect
reselect usp3 = 'Sw' or usp3 = 'Se'
calc uspruce_pct = uspruce_pct + usp3_per
nselect
reselect usp4 = 'Sw' or usp4 = 'Se'
calc uspruce_pct = uspruce_pct + usp4_per
nselect
reselect usp5 = 'Sw' or usp5 = 'Se'
calc uspruce_pct = uspruce_pct + usp5_per
reselect
Alberta Forest Cover Classification Procedure
19
nselect
/**************************************
/* Calculating BLACK SPRUCE percentage.
/**************************************
calc uspruceb_pct = 0
reselect usp1 = 'Sb'
calc uspruceb_pct = usp1_per
nselect
reselect usp2 = 'Sb'
calc uspruceb_pct = uspruceb_pct + usp2_per
nselect
reselect usp3 = 'Sb'
calc uspruceb_pct = uspruceb_pct + usp3_per
nselect
reselect usp4 = 'Sb'
calc uspruceb_pct = uspruceb_pct + usp4_per
nselect
reselect usp5 = 'Sb'
calc uspruceb_pct = uspruceb_pct + usp5_per
reselect
nselect
/*********************************************
/* Calculating LODGEPOLE/JACK PINE percentage.
/*********************************************
calc upine_pct = 0
reselect usp1 = 'P' or usp1 = 'Pl' or usp1 = 'Pj'
calc upine_pct = usp1_per
nselect
reselect usp2 = 'P' or usp2 = 'Pl' or usp2 = 'Pj'
calc upine_pct = upine_pct + usp2_per
nselect
reselect usp3 = 'P' or usp3 = 'Pl' or usp3 = 'Pj'
calc upine_pct = upine_pct + usp3_per
nselect
reselect usp4 = 'P' or usp4 = 'Pl' or usp4 = 'Pj'
calc upine_pct = upine_pct + usp4_per
nselect
reselect usp5 = 'P' or usp5 = 'Pl' or usp5 = 'Pj'
calc upine_pct = upine_pct + usp5_per
reselect
nselect
/*************************************************
/* Calculating WHITEBARK / LIMBER PINE percentage.
/*************************************************
calc uwhitelmb_pct = 0
reselect usp1 = 'Pa' or usp1 = 'Pf'
calc uwhitelmb_pct = usp1_per
nselect
reselect usp2 = 'Pa' or usp2 = 'Pf'
calc uwhitelmb_pct = uwhitelmb_pct + usp2_per
nselect
reselect usp3 = 'Pa' or usp3 = 'Pf'
calc uwhitelmb_pct = uwhitelmb_pct + usp3_per
nselect
reselect usp4 = 'Pa' or usp4 = 'Pf'
calc uwhitelmb_pct = uwhitelmb_pct + usp4_per
nselect
reselect usp5 = 'Pa' or usp5 = 'Pf'
calc uwhitelmb_pct = uwhitelmb_pct + usp5_per
reselect
Alberta Forest Cover Classification Procedure
20
nselect
/************************************
/* Calculating DOUGLAS FIR percentage
/************************************
calc udougfir_pct = 0
reselect usp1 = 'Fd'
calc udougfir_pct = usp1_per
nselect
reselect usp2 = 'Fd'
calc udougfir_pct = udougfir_pct + usp2_per
nselect
reselect usp3 = 'Fd'
calc udougfir_pct = udougfir_pct + usp3_per
nselect
reselect usp4 = 'Fd'
calc udougfir_pct = udougfir_pct + usp4_per
nselect
reselect usp5 = 'Fd'
calc udougfir_pct = udougfir_pct + usp5_per
reselect
nselect
/*****************************************
/* Calculating SUBALPINE LARCH percentage.
/*****************************************
calc ularcha_PCT = 0
reselect usp1 = 'La' or usp1 = 'Lw'
calc ularcha_PCT = usp1_per
nselect
reselect usp2 = 'La' or usp2 = 'Lw'
calc ularcha_PCT = ularcha_PCT + usp2_per
nselect
reselect usp3 = 'La' or usp3 = 'Lw'
calc ularcha_PCT = ularcha_PCT + usp3_per
nselect
reselect usp4 = 'La' or usp4 = 'Lw'
calc ularcha_PCT = ularcha_PCT + usp4_per
nselect
reselect usp5 = 'La' or usp5 = 'Lw'
calc ularcha_PCT = ularcha_PCT + usp5_per
reselect
nselect
/*****************************************
/* Calculating LARCH TAMARACK percentage.
/*****************************************
calc ularcht_PCT = 0
reselect usp1 = 'Lt'
calc ularcht_PCT = usp1_per
nselect
reselect usp2 = 'Lt'
calc ularcht_PCT = ularcht_PCT + usp2_per
nselect
reselect usp3 = 'Lt'
calc ularcht_PCT = ularcht_PCT + usp3_per
nselect
reselect usp4 = 'Lt'
calc ularcht_PCT = ularcht_PCT + usp4_per
nselect
reselect usp5 = 'Lt'
calc ularcht_PCT = ularcht_PCT + usp5_per
reselect
Alberta Forest Cover Classification Procedure
21
nselect
/******************************
/* Calculating BIRCH percentage
/******************************
calc ubirch_pct = 0
reselect usp1 = 'Bw'
calc ubirch_pct = usp1_per
nselect
reselect usp2 = 'Bw'
calc ubirch_pct = ubirch_pct + usp2_per
nselect
reselect usp3 = 'Bw'
calc ubirch_pct = ubirch_pct + usp3_per
nselect
reselect usp4 = 'Bw'
calc ubirch_pct = ubirch_pct + usp4_per
nselect
reselect usp5 = 'Bw'
calc ubirch_pct = ubirch_pct + usp5_per
reselect
nselect
/******************************
/* Calculating POPLAR percentage
/******************************
calc upoplar_pct = 0
reselect usp1 = 'Pb'
calc upoplar_pct = usp1_per
nselect
reselect usp2 = 'Pb'
calc upoplar_pct = upoplar_pct + usp2_per
nselect
reselect usp3 = 'Pb'
calc upoplar_pct = upoplar_pct + usp3_per
nselect
reselect usp4 = 'Pb'
calc upoplar_pct = upoplar_pct + usp4_per
nselect
reselect usp5 = 'Pb'
calc upoplar_pct = upoplar_pct + usp5_per
reselect
nselect
/************************************************
/* Calculating TOTAL UNDERSTORY CONIFER percentage
/************************************************
calc utot_conifer = 0
calc utot_conifer = uspruce_pct + uspruceb_pct + upine_pct + utruefir_pct
+ udougfir_pct + ularcha_PCT + ularcht_pct + uwhitelmb_pct
/***************************************************
/* Calculating TOTAL UNDERSTORY DECIDUOUS percentage
/***************************************************
calc utot_decid = 0
calc utot_decid = upoplar_pct + uaspen_pct + ubirch_pct
quit
&return
/*=====================================================================
Alberta Forest Cover Classification Procedure
22
&routine CLASSFIELDS
/*=====================================================================
/* Calculates forest cover classification fields.
/* Calculating COVERCAT field
&setvar uptablename [upcase %tablename%]
&data arc INFO
ARC
SELECT %uptablename%
CONCATENATE COVERCAT FROM
SP1,SP1_PER,SP2,SP2_PER,SP3,SP3_PER,SP4,SP4_PER,SP5,SP5_PER
Q STOP
&end
&call NO_STRUCTURE
&call HORZ_STRUCTURE
&call MULTISTOREY
&call UGRASS
/* Calculating DOMINANT FORESTCOVER (FC_DOM) field.
tables
select %tablename%
calc fc_dom = ''
calc fc_subdom = ''
calc fc_complex = ''
calc fc_dom = fc_nostr
reselect fc_h_str ne ''
calc fc_dom = fc_h_str
nsel
reselect fc_m_str ne ''
calc fc_dom = fc_m_str
/* Calculating SUB-DOMINANT FORESTCOVER (FC_SUBDOM) field.
resel
nsel
reselect fc_h_str ne '' and fc_nostr ne fc_dom
calc fc_subdom = fc_nostr
nsel
reselect fc_m_str ne '' and fc_nostr ne fc_dom
calc fc_subdom = fc_nostr
resel
nsel
reselect ugrass ne ''
reselect ugrass ne fc_dom
calc fc_subdom = ugrass
quit
/*****************************************************
/* Calculating COMPLEX FORESTCOVER (FC_COMPLEX) field.
/*****************************************************
&data arc INFO
ARC
SELECT %uptablename%
RESELECT FC_SUBDOM NE ''
CONCATENATE FC_COMPLEX FROM FC_DOM +,'/ ',FC_SUBDOM
NSEL
CONCATENATE FC_COMPLEX FROM FC_DOM
Q STOP
&end
Alberta Forest Cover Classification Procedure
23
&return
/*=====================================================================
&routine NO_STRUCTURE
/*=====================================================================
/* Calculates Forest Cover Conditionals with NO Structure
tables
select %tablename%
calc fc_nostr = ''
/*************************
/* 1.PINE (lodgepole/jack)
/*************************
reselect ( pine_pct ge 9 and larcha_PCT = 0 and larcht_pct = 0 )
calc fc_nostr = 'Pine'
resel
nsel
reselect pine_pct >= 5
reselect tot_decid < 2
reselect pine_pct > spruce_pct
reselect pine_pct > spruceb_pct
reselect pine_pct > truefir_pct
reselect pine_pct > dougfir_pct
reselect larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'Pine (Lodgepole/Jack)'
commit
/***************************
/* 2. WHITE/ENGELMANN SPRUCE
/***************************
reselect spruce_pct ge 9
calc fc_nostr = 'White/Engelmann Spruce'
resel
nsel
reselect spruce_pct >= 5
reselect tot_decid < 2
reselect spruce_pct >= pine_pct
reselect spruce_pct > truefir_pct
reselect spruce_pct > dougfir_pct
reselect spruce_pct >= spruceb_pct
reselect larcha_PCT = 0 and larcht_pct = 0
reselect not ( spruce_pct = 5 and truefir_pct = 5 )
calc fc_nostr = 'White/Engelmann Spruce'
commit
/******************
/* 2a. BLACK SPRUCE
/******************
reselect spruceb_pct >= 9
calc fc_nostr = 'Black Spruce'
resel
nsel
reselect spruceb_pct >= 5
reselect tot_decid < 2
Alberta Forest Cover Classification Procedure
24
reselect spruceb_pct >= pine_pct
reselect spruceb_pct > truefir_pct
reselect spruceb_pct > dougfir_pct
reselect spruceb_pct >= spruce_pct
reselect larcha_pct = 0 and larcht_pct = 0
reselect not ( spruceb_pct = 5 and truefir_pct = 5 )
reselect not ( spruceb_pct = 5 and spruce_pct = 5 )
calc fc_nostr = 'Black Spruce'
/* This class was added March 12, 2002
/******************
/* 3. SUBALPINE FIR
/******************
reselect truefir_pct >= 9 and larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'True Fir'
resel
nsel
reselect truefir_pct >= 5
reselect tot_decid < 2
reselect truefir_pct >= pine_pct
reselect truefir_pct >= spruce_pct
reselect truefir_pct >= spruceb_pct
reselect truefir_pct > dougfir_pct
reselect larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'True Fir'
resel
nsel
reselect ( truefir_pct = 5 and pine_pct = 5 ) or ( truefir_pct = 5 and
spruce_pct = 5 ) or ( truefir_pct = 5 and spruceb_pct = 5 )
calc fc_nostr = 'True Fir'
commit
/****************
/* 4. DOUGLAS FIR
/****************
reselect dougfir_pct >= 9 and larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'Douglas Fir'
resel
nsel
reselect dougfir_pct >= 5
reselect tot_decid < 2
reselect dougfir_pct >= pine_pct
reselect dougfir_pct >= spruce_pct
reselect dougfir_pct >= spruceb_pct
reselect dougfir_pct > truefir_pct
reselect larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'Douglas Fir'
resel
nsel
reselect ( dougfir_pct = 5 and pine_pct = 5 ) or ( dougfir_pct = 5 and
spruce_pct = 5 )
calc fc_nostr = 'Douglas Fir'
resel
nsel
reselect ( dougfir_pct = 5 and truefir_pct = 5 ) or ( dougfir_pct = 5 and
spruceb_pct = 5 )
Alberta Forest Cover Classification Procedure
25
calc fc_nostr = 'Douglas Fir'
/* This case added November 13, 2001.
commit
/*********************
/* 5. SUBALPINE LARCH
/*********************
reselect larcha_PCT >= 9
calc fc_nostr = 'Subalpine/Western Larch'
resel
nsel
reselect larcha_PCT >= 5
reselect tot_decid < 2
reselect larcha_PCT >= pine_pct
reselect larcha_PCT >= spruce_pct
reselect larcha_pct >= spruceb_pct
reselect larcha_PCT >= truefir_pct
reselect larcha_PCT >= dougfir_pct
calc fc_nostr = 'Subalpine/Western Larch'
commit
/********************
/* 5a. LARCH TAMARACK
/********************
reselect larcht_pct >= 9
calc fc_nostr = 'Larch Tamarack'
resel
nsel
reselect larcht_pct >= 5
reselect tot_decid < 2
reselect larcht_pct >= pine_pct
reselect larcht_pct >= spruce_pct
reselect larcht_pct >= spruceb_pct
reselect larcht_pct >= truefir_pct
reselect larcht_pct >= dougfir_pct
calc fc_nostr = 'Larch Tamarack'
commit
/* Class added March 12, 2002
/*************************
/* 6.WHITEBARK/LIMBER PINE
/*************************
reselect ( sp1 = 'Pa' or sp1 = 'Pf' ) and ( sp1_per >= 5 )
calc fc_nostr = 'Whitebark/Limber Pine'
resel
nsel
reselect ( sp2 = 'Pa' or sp2 = 'Pf' )
reselect sp2_per >= 5
reselect tot_decid < 2
reselect larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'Whitebark/Limber Pine'
commit
/**********
/* 7. ASPEN
/**********
Alberta Forest Cover Classification Procedure
26
reselect aspen_pct >= 4
reselect tot_conifer <= 4
reselect aspen_pct > poplar_pct
reselect aspen_pct > birch_pct
calc fc_nostr = 'Aspen'
commit
/******************
/* 8. BALSAM POPLAR
/******************
reselect poplar_pct >= 5
reselect tot_conifer < 2
calc fc_nostr = 'Balsam Poplar'
commit
/*******
/* BIRCH
/*******
reselect birch_pct >= 5
reselect tot_conifer < 2
calc fc_nostr = 'Birch'
/********************
/* 9. ASPEN MIXEDWOOD
/********************
reselect aspen_pct >= 4
reselect tot_conifer >= 2 and tot_conifer <= 4
reselect aspen_pct > poplar_pct
reselect aspen_pct > birch_pct
reselect larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'Aspen Mixedwood'
resel
nsel
reselect aspen_pct <= 8
reselect tot_decid > tot_conifer
reselect aspen_pct >= poplar_pct
reselect aspen_pct >= birch_pct
reselect tot_conifer > 1
calc fc_nostr = 'Aspen Mixedwood'
/* Condition added March 12, 2002
commit
/*****************************
/* 10. BALSAM POPLAR MIXEDWOOD
/*****************************
reselect poplar_pct > 5
reselect tot_conifer >= 2 and tot_conifer <= 4
reselect aspen_pct <= poplar_pct
reselect birch_pct < poplar_pct
calc fc_nostr = 'Balsam Poplar Mixedwood'
resel
nsel
reselect poplar_pct <= 8 and poplar_pct >= 1
reselect tot_decid > tot_conifer
reselect aspen_pct <= poplar_pct
reselect birch_pct < poplar_pct
reselect tot_conifer > 1
calc fc_nostr = 'Balsam Poplar Mixedwood'
Alberta Forest Cover Classification Procedure
27
commit
/**********************
/* 10a. BIRCH MIXEDWOOD
/**********************
reselect birch_pct >= 4
reselect tot_conifer >= 2 and tot_conifer <= 4
reselect aspen_pct <= birch_pct
reselect poplar_pct <= birch_pct
calc fc_nostr = 'Birch Mixedwood'
resel
nsel
reselect birch_pct <= 8 and birch_pct >= 1
reselect tot_decid > tot_conifer
reselect aspen_pct <= birch_pct
reselect poplar_pct <= birch_pct
reselect tot_conifer > 1
calc fc_nostr = 'Birch Mixedwood'
commit
/* Class added March 12, 2002
/*************************************
/* 11. PINE (LODGEPOLE/JACK) MIXEDWOOD
/*************************************
reselect tot_decid <= tot_conifer
reselect tot_decid >= 2
reselect pine_pct > spruce_pct
reselect pine_pct > spruceb_pct
reselect pine_pct > truefir_pct
reselect pine_pct > dougfir_pct
reselect tot_conifer >= 3
calc fc_nostr = 'Pine (Lodgepole/Jack) Mixedwood'
commit
/**************************************
/* 12. WHITE/ENGELMANN SPRUCE MIXEDWOOD
/**************************************
reselect tot_decid <= tot_conifer
reselect spruce_pct >= pine_pct
reselect spruce_pct > truefir_pct
reselect spruce_pct > dougfir_pct
reselect spruce_pct >= spruceb_pct
reselect tot_conifer >= 3
reselect tot_decid >= 2
calc fc_nostr = 'White/Engelmann Spruce Mixedwood'
commit
/*****************************
/* 12a. BLACK SPRUCE MIXEDWOOD
/*****************************
reselect tot_decid <= tot_conifer
reselect spruceb_pct >= pine_pct
reselect spruceb_pct > truefir_pct
reselect spruceb_pct > dougfir_pct
reselect spruceb_pct > spruce_pct
reselect spruceb_pct > larcha_pct
reselect spruceb_pct > larcht_pct
reselect tot_conifer >= 3
Alberta Forest Cover Classification Procedure
28
reselect tot_decid >= 2
calc fc_nostr = 'Black Spruce Mixedwood'
commit
/* This class added March 12, 2002
/*******************************
/* 12b. LARCH TAMARACK MIXEDWOOD
/*******************************
reselect tot_decid <= tot_conifer
reselect larcht_pct >= pine_pct
reselect larcht_pct > truefir_pct
reselect larcht_pct > dougfir_pct
reselect larcht_pct > spruce_pct
reselect larcht_pct >= spruceb_pct
reselect tot_conifer >= 3
reselect tot_decid >= 2
calc fc_nostr = 'Larch Tamarack Mixedwood'
commit
/* This class added March 12, 2002
/************************
/* 13. TRUE FIR MIXEDWOOD
/************************
reselect tot_decid <= tot_conifer
reselect truefir_pct > dougfir_pct
reselect truefir_pct >= spruce_pct
reselect truefir_pct >= spruceb_pct
reselect truefir_pct > larcha_PCT
reselect truefir_pct > larcht_pct
reselect truefir_pct >= 1
reselect tot_conifer >= 3
reselect tot_decid >= 2
calc fc_nostr = 'True Fir Mixedwood'
commit
/***************************
/* 14. DOUGLAS FIR MIXEDWOOD
/***************************
reselect tot_decid <= tot_conifer
reselect dougfir_pct >= pine_pct
reselect dougfir_pct > truefir_pct
reselect dougfir_pct >= spruce_pct
reselect dougfir_pct >= spruceb_pct
reselect tot_conifer >= 3
reselect tot_decid >= 2
calc fc_nostr = 'Douglas Fir Mixedwood'
commit
/*****************************************
/* 15. MIXED CONIFER (LODGEPOLE/JACK PINE)
/*****************************************
reselect tot_decid <= 1
reselect pine_pct > dougfir_pct
reselect pine_pct > truefir_pct
reselect pine_pct > spruce_pct
reselect pine_pct > spruceb_pct
reselect larcha_PCT = 0 and larcht_pct = 0
reselect pine_pct <= 4 and pine_pct >= 1
calc fc_nostr = 'Mixed Conifer (Pine - Lodgepole/Jack)'
Alberta Forest Cover Classification Procedure
29
commit
/********************************************
/* 16. MIXED CONIFER (WHITE/ENGELMANN SPRUCE)
/********************************************
reselect tot_decid <= 1
reselect spruce_pct > dougfir_pct
reselect spruce_pct > truefir_pct
reselect spruce_pct >= pine_pct
reselect spruce_pct >= spruceb_pct
reselect larcha_PCT = 0 and larcht_pct = 0
reselect spruce_pct <= 4 and spruce_pct >= 1
calc fc_nostr = 'Mixed Conifer (White/Engelmann Spruce)'
commit
/***********************************
/* 16a. MIXED CONIFER (BLACK SPRUCE)
/***********************************
reselect tot_decid <= 1
reselect spruceb_pct > dougfir_pct
reselect spruceb_pct > truefir_pct
reselect spruceb_pct >= pine_pct
reselect spruceb_pct > spruce_pct
reselect larcha_pct = 0 and larcht_pct = 0
reselect spruceb_pct <= 4 and spruceb_pct >= 1
calc fc_nostr = 'Mixed Conifer (Black Spruce)'
commit
/* Class added March 12, 2002
/******************************
/* 17. MIXED CONIFER (TRUE FIR)
/******************************
reselect tot_decid <= 1
reselect truefir_pct > dougfir_pct
reselect truefir_pct >= spruce_pct
reselect truefir_pct >= spruceb_pct
reselect truefir_pct >= pine_pct
reselect larcha_PCT = 0 and larcht_pct = 0
reselect truefir_pct <= 4 and truefir_pct >= 1
calc fc_nostr = 'Mixed Conifer (True Fir)'
commit
/*********************************
/* 18. MIXED CONIFER (DOUGLAS FIR)
/*********************************
reselect tot_decid <= 1
reselect dougfir_pct >= truefir_pct
reselect dougfir_pct >= spruce_pct
reselect dougfir_pct >= spruceb_pct
reselect dougfir_pct >= pine_pct
reselect larcha_PCT = 0 and larcht_pct = 0
reselect dougfir_pct <= 4 and dougfir_pct >= 1
calc fc_nostr = 'Mixed Conifer (Douglas Fir)'
/* November 13, 2001: modified tot_decid = 0 to tot_decid <= 1
commit
/*******************************************
Alberta Forest Cover Classification Procedure
30
/* 19. MIXED CONIFER (WHITEBARK/LIMBER PINE)
/*******************************************
reselect tot_decid <= 1
reselect ( covercat cn 'Pa' or covercat cn 'Pf' )
reselect fc_nostr <> 'Whitebark/Limber Pine'
reselect whitelimb_pct <= 4 and whitelimb_pct >= 1
reselect whitelimb_pct >= larcha_PCT
reselect whitelimb_pct >= larcht_pct
reselect whitelimb_pct >= dougfir_pct
reselect whitelimb_pct >= truefir_pct
reselect whitelimb_pct >= pine_pct
reselect whitelimb_pct >= spruce_pct
reselect whitelimb_pct >= spruceb_pct
reselect larcha_PCT = 0 and larcht_pct = 0
calc fc_nostr = 'Mixed Conifer (Whitebark/Limber Pine)'
commit
/*********************************************
/* 20. MIXED CONIFER (SUBALPINE/WESTERN LARCH)
/*********************************************
reselect tot_decid <= 1
reselect larcha_PCT < 5
reselect larcha_PCT > 0
calc fc_nostr = 'Mixed Conifer (Subalpine/Western Larch)'
commit
/*************************************
/* 20a. MIXED CONIFER (LARCH TAMARACK)
/*************************************
reselect tot_decid <= 1
reselect larcht_pct < 5
reselect larcht_pct > 0
calc fc_nostr = 'Mixed Conifer (Larch Tamarack)'
commit
/* class added March 12, 2002
/********************
/* 21. SPRUCE WETLAND
/********************
/* reselect fc_nostr cn 'Spruce'
/* reselect ( moist_reg = 'a' or moist_reg = 'w' )
/* calc fc_nostr = 'Spruce Wetland'
/*commit
/* Class removed March 12, 2002
/***************************
/* 21a. BLACK SPRUCE WETLAND
/***************************
/*reselect fc_nostr cn 'Spruce'
reselect ( moist_reg = 'a' or moist_reg = 'w' )
reselect larcha_pct = 0 and larcht_pct = 0
reselect ularcha_pct = 0 and ularcht_pct = 0
reselect tot_decid <= 2
reselect aspen_pct = 0
reselect poplar_pct <= 1
reselect birch_pct <= 2
reselect truefir_pct = 0
reselect pine_pct <= 2
reselect spruce_pct = 0
Alberta Forest Cover Classification Procedure
31
reselect spruceb_pct > 0
calc fc_nostr = 'Black Spruce Wetland'
commit
/* Class added March 12, 2002
/* No larch presence allowed
/* No White spruce presence allowed
/* No aspen presence allowed
/* Minimal deciduous presence tolerated
/* No fir presence allowed
/***************************
/* 21b. WHITE SPRUCE WETLAND
/***************************
/*reselect fc_nostr cn 'Spruce'
reselect ( moist_reg = 'a' or moist_reg = 'w' )
reselect larcha_pct < 5 and larcht_pct < 5
reselect tot_decid <= 2
reselect aspen_pct = 0
reselect poplar_pct <= 1
reselect birch_pct <= 2
reselect truefir_pct = 0
reselect pine_pct <= 2
reselect spruce_pct >= 2
reselect fc_nostr <> 'Black Spruce Wetland'
calc fc_nostr = 'White Spruce Wetland'
commit
/* Class added March 12, 2002
/* Presence of Sw in a spruce wetland will make it a white spruce wetland.
/* No aspen allowed
/* Minimal deciduous presence tolerated
/******************************************
/* 21c. BLACK SPRUCE/LARCH TAMARACK WETLAND
/******************************************
/*reselect fc_nostr cn 'Spruce'
reselect ( moist_reg = 'a' or moist_reg = 'w' )
reselect larcha_pct >= 1 or larcht_pct >= 1
reselect larcht_pct < 8
reselect spruceb_pct >= 1
reselect tot_decid <= 2
reselect aspen_pct = 0
reselect poplar_pct <= 1
reselect birch_pct <= 2
reselect truefir_pct = 0
reselect pine_pct <= 2
calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland'
resel
nsel
reselect ( moist_reg = 'a' or moist_reg = 'w' )
reselect larcha_pct > 0 or larcht_pct > 0 or ularcha_pct > 0 or ularcht_pct
> 0
reselect tot_decid <= 2
reselect aspen_pct = 0
reselect poplar_pct <= 1
reselect birch_pct <= 2
reselect truefir_pct = 0
reselect pine_pct <= 2
reselect spruceb_pct > 0
calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland'
Alberta Forest Cover Classification Procedure
32
resel
nsel
reselect fc_nostr cn 'Larch'
reselect ( moist_reg = 'a' or moist_reg = 'w' )
reselect spruceb_pct >= 3 or uspruceb_pct >= 5
reselect tot_decid <= 2
reselect aspen_pct = 0
reselect poplar_pct <= 1
reselect birch_pct <= 2
reselect pine_pct <= 2
reselect truefir_pct = 0
calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland'
commit
/* Class added March 12, 2002
/* Presence of Lt in a spruce wetland will make it a spruce/Lt wetland
/* No aspen allowed
/* Minimal deciduous component tolerated
/*****************************
/* 21d. LARCH TAMARACK WETLAND
/*****************************
reselect larcha_pct >= 8 or larcht_pct >= 8
reselect ( moist_reg = 'a' or moist_reg = 'w' )
reselect tot_decid <= 2
reselect aspen_pct = 0
reselect poplar_pct <= 1
reselect birch_pct <= 2
reselect truefir_pct = 0
reselect pine_pct <= 2
reselect uspruceb_pct < 5
reselect spruce_pct < 5
calc fc_nostr = 'Larch Tamarack Wetland'
commit
/* Class added March 12, 2002
/* Only low percentage of black spruce tolerated. Cannot have an Sb dominant
understory.
/* No aspen allowed
/* Minimal deciduous component tolerated
/*******************
/* 22. SHRUB WETLAND
/*******************
reselect ( nfl = 'SC' or nfl = 'SO' )
reselect ( moist_reg = 'a' or moist_reg = 'w' )
calc fc_nostr = 'Shrub Wetland'
commit
/*****************************
/* 23. SHRUB MEADOW OPEN MESIC
/*****************************
reselect nfl = 'SO'
reselect moist_reg = 'm'
calc fc_nostr = 'Shrub Meadow Open Mesic'
commit
/***************************
/* 24. SHRUB MEADOW OPEN DRY
/***************************
reselect nfl = 'SO'
Alberta Forest Cover Classification Procedure
33
reselect moist_reg = 'd'
calc fc_nostr = 'Shrub Meadow Open Dry'
commit
/*******************************
/* 25. SHRUB MEADOW CLOSED MESIC
/*******************************
reselect nfl = 'SC'
reselect moist_reg = 'm'
calc fc_nostr = 'Shrub Meadow Closed Mesic'
commit
/*****************************
/* 26. SHRUB MEADOW CLOSED DRY
/*****************************
reselect nfl = 'SC'
reselect moist_reg = 'd'
calc fc_nostr = 'Shrub Meadow Closed Dry'
commit
/******************************
/* 27. ROUGH PASTURE OPEN MESIC
/******************************
reselect nfl = 'SO'
reselect moist_reg = 'm'
reselect anth_veg = 'CPR'
calc fc_nostr = 'Rough Pasture Open Mesic'
commit
/****************************
/* 28. ROUGH PASTURE OPEN DRY
/****************************
reselect nfl = 'SO'
reselect moist_reg = 'd'
reselect anth_veg = 'CPR'
calc fc_nostr = 'Rough Pasture Open Dry'
commit
/********************************
/* 29. ROUGH PASTURE CLOSED MESIC
/********************************
reselect nfl = 'SC'
reselect moist_reg = 'm'
reselect anth_veg = 'CPR'
calc fc_nostr = 'Rough Pasture Closed Mesic'
commit
/******************************
/* 30. ROUGH PASTURE CLOSED DRY
/******************************
reselect nfl = 'SC'
reselect moist_reg = 'd'
reselect anth_veg = 'CPR'
calc fc_nostr = 'Rough Pasture Closed Dry'
commit
Alberta Forest Cover Classification Procedure
34
/*******************
/* 31. WET GRAMINOID
/*******************
reselect nfl = 'HG'
reselect ( moist_reg = 'a' or moist_reg = 'w' )
calc fc_nostr = 'Wet Graminoid'
commit
/******************
/* 32. ANNUAL CROPS
/******************
reselect anth_veg = 'CA'
calc fc_nostr = 'Annual Crops'
commit
/****************************
/* 33. PERENNIAL FORAGE CROPS
/****************************
reselect anth_veg = 'CP'
calc fc_nostr = 'Perennial Forage Crops'
commit
/*********************
/* 34. GRASSLAND MESIC
/*********************
reselect nfl = 'HG'
reselect moist_reg = 'm'
reselect mod1 <> 'CL'
calc fc_nostr = 'Grassland Mesic'
commit
/*******************
/* 35. GRASSLAND DRY
/*******************
reselect nfl = 'HG'
reselect moist_reg = 'd'
reselect mod1 <> 'CL'
calc fc_nostr = 'Grassland Dry'
commit
/*******************************
/* 36. GRAVEL PITS/SURFACE MINES
/*******************************
reselect ( anth_non = 'AIG' or anth_non = 'AIM' )
calc fc_nostr = 'Gravel Pits/Surface Mines'
commit
/***********************
/* 37. RURAL RESIDENTIAL
/***********************
reselect anth_non = 'ASR'
calc fc_nostr = 'Rural Residential'
commit
/*********************************
/* 38. HAMLETS, VILLAGES AND TOWNS
Alberta Forest Cover Classification Procedure
35
/*********************************
reselect anth_non = 'ASC'
calc fc_nostr = 'Hamlets, Villages and Towns'
commit
/******************
/* 39. NON-VEG ROWS
/******************
reselect anth_non = 'AIH'
calc fc_nostr = 'Non-Veg ROWs'
commit
/****************
/* 40. FARMSTEADS
/****************
reselect anth_non = 'AIF'
calc fc_nostr = 'Farmsteads'
commit
/********************************
/* 41. PLANT SITES/SEWAGE LAGOONS
/********************************
reselect anth_non = 'AII'
calc fc_nostr = 'Plant Sites/Sewage Lagoons'
commit
/*****************
/* 42. ROCK BARREN
/*****************
reselect nat_non = 'NMR'
calc fc_nostr = 'Rock Barren'
commit
/******************
/* 43. CUTBANK/SAND
/******************
reselect ( nat_non = 'NMC' or nat_non = 'NMS' )
calc fc_nostr = 'Cutbank/Sand'
commit
/***********
/* 44. RIVER
/***********
reselect nat_non = 'NWR'
calc fc_nostr = 'River'
commit
/*****************
/* 45. LAKES/PONDS
/*****************
reselect nat_non = 'NWL'
calc fc_nostr = 'Lakes/Ponds'
commit
Alberta Forest Cover Classification Procedure
36
/************************
/* 46. PERMANENT ICE/SNOW
/************************
reselect nat_non = 'NWI'
calc fc_nostr = 'Permanent Ice/Snow'
commit
/**************************************
/* 47. INDUSTRIAL RECLAMATION-VEGETATED
/**************************************
reselect anth_veg = 'CIP' or anth_veg = 'CIW'
calc fc_nostr = 'Industrial Reclamation-Vegetated'
commit
/*****************
/* 48. FORB MEADOW
/*****************
reselect nfl = 'HF'
calc fc_nostr = 'Forb Meadow'
commit
/*************
/* 49. FLOODED
/*************
reselect nat_non = 'NWF'
calc fc_nostr = 'Flooded'
commit
/****************
/* 50. BRYOPHYTIC
/****************
reselect nfl = 'BR'
calc fc_nostr = 'Bryophytic'
commit
/***********************
/* 51. FORESTED CLEARCUT
/***********************
reselect mod1 = 'CC'
reselect mod1_ext <= 4
reselect sp1 <> ''
calc fc_nostr = 'Partial Cut/Regenerating Clearcut'
commit
/*************************
/* 52. HERBACEOUS CLEARCUT
/*************************
reselect mod1 = 'CC'
reselect mod1_ext <= 5
reselect nfl <> ''
calc fc_nostr = 'Herbaceous Clearcut'
commit
/*********************
/* HERBACEOUS CLEARING
/*********************
Alberta Forest Cover Classification Procedure
37
reselect nfl = 'HG'
reselect moist_reg = 'm' or moist_reg = 'd'
reselect mod1 = 'CL'
calc fc_nostr = 'Herbaceous Clearing'
/* This class added November 13, 2001
commit
/*************
/* RECENT BURN
/*************
reselect nat_non = 'NMB'
calc fc_nostr = 'Recent Burn'
/*commit
/* This class added March 14, 2002
quit
&return
/*=====================================================================
&routine HORZ_STRUCTURE
/*=====================================================================
/* Calculates forest cover classification for stands with horizontal structure
/* where the understory call covers > 50% of the polygon and contains tree
/* species.
tables
select %tablename%
calc fc_h_str = ''
/***************************
/* 53. PINE (LODGEPOLE/JACK)
/***************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect upine_pct >= 9
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'Pine (Lodgepole/Jack)'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect upine_pct >= 5
reselect utot_decid < 2
reselect upine_pct > uspruce_pct
reselect upine_pct > uspruceb_pct
reselect upine_pct > utruefir_pct
reselect upine_pct > udougfir_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'Pine (Lodgepole/Jack)'
commit
/****************************
/* 54. WHITE/ENGELMANN SPRUCE
/****************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect uspruce_pct >= 9
calc fc_h_str = 'White/Engelmann Spruce'
resel
nsel
Alberta Forest Cover Classification Procedure
38
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect uspruce_pct >= 5
reselect utot_decid < 2
reselect uspruce_pct >= upine_pct
reselect uspruce_pct >= uspruceb_pct
reselect uspruce_pct > utruefir_pct
reselect uspruce_pct > udougfir_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect not ( uspruce_pct = 5 and utruefir_pct = 5 )
calc fc_h_str = 'White/Engelmann Spruce'
commit
/*******************
/* 54a. BLACK SPRUCE
/*******************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect uspruceb_pct >= 9
calc fc_h_str = 'Black Spruce'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect uspruceb_pct >= 5
reselect utot_decid < 2
reselect uspruceb_pct >= upine_pct
reselect uspruceb_pct >= utruefir_pct
reselect uspruceb_pct >= udougfir_pct
reselect uspruceb_pct >= spruce_pct
reselect ularcha_pct = 0 and ularcht_pct = 0
calc fc_h_str = 'Black Spruce'
commit
/* Class added March 12, 2002
/*************
/* 55.TRUE FIR
/*************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utruefir_pct >= 9
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'True Fir'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utruefir_pct >= 5
reselect utot_decid < 2
reselect utruefir_pct >= upine_pct
reselect utruefir_pct >= uspruce_pct
reselect utruefir_pct >= uspruceb_pct
reselect utruefir_pct > udougfir_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'True Fir'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( utruefir_pct = 5 and upine_pct = 5 ) or ( utruefir_pct = 5 and
uspruce_pct = 5 ) or ( utruefir_pct = 5 and uspruceb_pct = 5 )
calc fc_h_str = 'True Fir'
commit
Alberta Forest Cover Classification Procedure
39
/*****************
/* 56. DOUGLAS FIR
/*****************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect udougfir_pct >= 9
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'Douglas Fir'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect udougfir_pct >= 5
reselect utot_decid < 2
reselect udougfir_pct >= upine_pct
reselect udougfir_pct >= uspruce_pct
reselect udougfir_pct >= uspruceb_pct
reselect udougfir_pct > utruefir_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'Douglas Fir'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( udougfir_pct = 5 and upine_pct = 5 ) or ( udougfir_pct = 5 and
uspruce_pct = 5 ) or ( udougfir_pct = 5 and uspruceb_pct = 5 )
calc fc_h_str = 'Douglas Fir'
commit
/*****************************
/* 57. SUBALPINE/WESTERN LARCH
/*****************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ularcha_PCT >= 9
calc fc_h_str = 'Subalpine/Western Larch'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ularcha_PCT >= 5
reselect utot_decid < 2
reselect ularcha_PCT >= upine_pct
reselect ularcha_PCT >= uspruce_pct
reselect ularcha_pct >= uspruceb_pct
reselect ularcha_PCT >= utruefir_pct
reselect ularcha_PCT >= udougfir_pct
calc fc_h_str = 'Subalpine/Western Larch'
commit
/*********************
/* 57a. LARCH TAMARACK
/*********************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ularcht_PCT >= 9
calc fc_h_str = 'Larch Tamarack'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ularcht_pct >= 5
reselect utot_decid < 2
Alberta Forest Cover Classification Procedure
40
reselect ularcht_pct >= upine_pct
reselect ularcht_pct >= uspruce_pct
reselect ularcht_pct >= uspruceb_pct
reselect ularcht_pct >= utruefir_pct
reselect ularcht_pct >= udougfir_pct
calc fc_h_str = 'Larch Tamarack'
commit
/* Class added March 12, 2002
/***************************
/* 58. WHITEBARK/LIMBER PINE
/***************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( usp1 = 'Pa' or usp1 = 'Pf' )
reselect usp1_per >= 5
calc fc_h_str = 'Whitebark/Limber Pine'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect usp2 = 'Pa' or usp2 = 'Pf'
reselect usp2_per >= 5
reselect utot_decid < 2
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'Whitebark/Limber Pine'
commit
/***********
/* 59. ASPEN
/***********
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect uaspen_pct >= 4
reselect utot_conifer <= 4
reselect uaspen_pct > upoplar_pct
reselect uaspen_pct > ubirch_pct
calc fc_h_str = 'Aspen'
commit
/*******************
/* 60. BALSAM POPLAR
/*******************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect upoplar_pct >= 5
reselect utot_conifer < 2
calc fc_h_str = 'Balsam Poplar'
commit
/************
/* 60a. BIRCH
/************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ubirch_pct >= 5
reselect utot_conifer < 2
calc fc_h_str = 'Birch'
commit
/*********************
/* 61. ASPEN MIXEDWOOD
Alberta Forest Cover Classification Procedure
41
/*********************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect uaspen_pct >= 4
reselect utot_conifer >= 2
reselect utot_conifer <= 4
reselect uaspen_pct > upoplar_pct
reselect uaspen_pct > ubirch_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_h_str = 'Aspen Mixedwood'
commit
/*****************************
/* 62. BALSAM POPLAR MIXEDWOOD
/*****************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect upoplar_pct > 5
reselect utot_conifer >= 2
reselect utot_conifer <= 4
reselect uaspen_pct <= upoplar_pct
reselect upoplar_pct >= ubirch_pct
calc fc_h_str = 'Balsam Poplar Mixedwood'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect upoplar_pct <= 8
reselect utot_decid > utot_conifer
reselect uaspen_pct <= upoplar_pct
reselect upoplar_pct >= ubirch_pct
reselect utot_conifer > 1
calc fc_h_str = 'Balsam Poplar Mixedwood'
commit
/**********************
/* 62a. BIRCH MIXEDWOOD
/**********************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ubirch_pct > 5
reselect utot_conifer >= 2
reselect utot_conifer <= 4
reselect ubirch_pct >= uaspen_pct
reselect ubirch_pct > upoplar_pct
calc fc_h_str = 'Birch Mixedwood'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ubirch_pct <= 8 and ubirch_pct >= 1
reselect utot_decid > utot_conifer
reselect uaspen_pct <= ubirch_pct
reselect ubirch_pct > upoplar_pct
reselect utot_conifer > 1
calc fc_nostr = 'Birch Mixedwood'
commit
/* Class added March 12, 2002
/*************************************
/* 63. PINE (LODGEPOLE/JACK) MIXEDWOOD
/*************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
Alberta Forest Cover Classification Procedure
42
reselect utot_decid <= utot_conifer
reselect utot_decid >= 2
reselect upine_pct > uspruce_pct
reselect upine_pct > uspruceb_pct
reselect upine_pct > utruefir_pct
reselect upine_pct > udougfir_pct
reselect ( upine_pct > ularcha_pct ) and ( upine_pct > ularcht_pct )
reselect utot_conifer >= 3
calc fc_h_str = 'Pine (Lodgepole/Jack) Mixedwood'
commit
/**************************************
/* 64. WHITE/ENGELMANN SPRUCE MIXEDWOOD
/**************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= utot_conifer
reselect uspruce_pct >= upine_pct
reselect uspruce_pct > utruefir_pct
reselect uspruce_pct > udougfir_pct
reselect uspruce_pct > uspruceb_pct
reselect uspruce_pct > ularcha_pct
reselect uspruce_pct > ularcht_pct
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_h_str = 'White/Engelmann Spruce Mixedwood'
commit
/*****************************
/* 64a. BLACK SPRUCE MIXEDWOOD
/*****************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= utot_conifer
reselect uspruceb_pct >= upine_pct
reselect uspruceb_pct > utruefir_pct
reselect uspruceb_pct > udougfir_pct
reselect uspruceb_pct > uspruce_pct
reselect ularcha_pct = 0 and ularcht_pct = 0
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_h_str = 'Black Spruce Mixedwood'
commit
/* Class added March 12, 2002
/*******************************
/* 64b. LARCH TAMARACK MIXEDWOOD
/*******************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= utot_conifer
reselect ularcht_pct >= pine_pct
reselect ularcht_pct > truefir_pct
reselect ularcht_pct > dougfir_pct
reselect ularcht_pct > spruce_pct
reselect ularcht_pct >= spruceb_pct
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_h_str = 'Larch Tamarack Mixedwood'
commit
/* This class added March 12, 2002
Alberta Forest Cover Classification Procedure
43
/************************
/* 65. TRUE FIR MIXEDWOOD
/************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= utot_conifer
/*reselect utruefir_pct >= upine_pct
reselect utruefir_pct >= 1
reselect utruefir_pct > udougfir_pct
reselect utruefir_pct >= uspruce_pct
reselect utruefir_pct >= uspruceb_pct
reselect utruefir_pct > ularcha_PCT
reselect utruefir_pct > ularcht_pct
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_h_str = 'True Fir Mixedwood'
commit
/***************************
/* 66. DOUGLAS FIR MIXEDWOOD
/***************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= utot_conifer
reselect udougfir_pct >= 1
reselect udougfir_pct >= upine_pct
reselect udougfir_pct > utruefir_pct
reselect udougfir_pct >= uspruce_pct
reselect udougfir_pct >= uspruceb_pct
reselect udougfir_pct >= ularcha_pct
reselect udougfir_pct >= ularcht_pct
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_h_str = 'Douglas Fir Mixedwood'
commit
/*******************************************
/* 67. MIXED CONIFER (PINE - LODGEPOLE/JACK)
/*******************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect upine_pct > udougfir_pct
reselect upine_pct > utruefir_pct
reselect upine_pct > uspruce_pct
reselect upine_pct > uspruceb_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect upine_pct <= 4 and upine_pct >= 1
calc fc_h_str = 'Mixed Conifer (Pine - Lodgepole/Jack)'
commit
/********************************************
/* 68. MIXED CONIFER (WHITE/ENGELMANN SPRUCE)
/********************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect uspruce_pct > udougfir_pct
reselect uspruce_pct > utruefir_pct
reselect uspruce_pct >= upine_pct
reselect uspruce_pct >= uspruceb_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect uspruce_pct <= 4 and uspruce_pct >= 1
calc fc_h_str = 'Mixed Conifer (White/Engelmann Spruce)'
Alberta Forest Cover Classification Procedure
44
commit
/**********************************
/* 68. MIXED CONIFER (BLACK SPRUCE)
/**********************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect uspruceb_pct > udougfir_pct
reselect uspruceb_pct > utruefir_pct
reselect uspruceb_pct >= upine_pct
reselect uspruceb_pct >= uspruceb_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect uspruceb_pct <= 4 and uspruceb_pct >= 1
calc fc_h_str = 'Mixed Conifer (Black Spruce)'
commit
/******************************
/* 69. MIXED CONIFER (TRUE FIR)
/******************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect utruefir_pct > udougfir_pct
reselect utruefir_pct >= uspruce_pct
reselect utruefir_pct >= uspruceb_pct
reselect utruefir_pct >= upine_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect utruefir_pct <= 4 and utruefir_pct >= 1
calc fc_h_str = 'Mixed Conifer (True Fir)'
commit
/*********************************
/* 70. MIXED CONIFER (DOUGLAS FIR)
/*********************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect udougfir_pct >= utruefir_pct
reselect udougfir_pct >= uspruce_pct
reselect udougfir_pct >= uspruceb_pct
reselect udougfir_pct >= upine_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect udougfir_pct <= 4 and udougfir_pct >= 1
calc fc_h_str = 'Mixed Conifer (Douglas Fir)'
commit
/*******************************************
/* 71. MIXED CONIFER (WHITEBARK/LIMBER PINE)
/*******************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect uwhitelmb_pct > 0
reselect fc_h_str <> 'Whitebark/Limber Pine'
reselect uwhitelmb_pct <= 4
reselect uwhitelmb_pct >= ularcha_PCT
reselect uwhitelmb_pct >= udougfir_pct
reselect uwhitelmb_pct >= utruefir_pct
reselect uwhitelmb_pct >= upine_pct
reselect uwhitelmb_pct >= uspruce_pct
reselect uwhitelmb_pct >= uspruceb_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
Alberta Forest Cover Classification Procedure
45
calc fc_h_str = 'Mixed Conifer (Whitebark/Limber Pine)'
commit
/*********************************************
/* 72. MIXED CONIFER (SUBALPINE/WESTERN LARCH)
/*********************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect ularcha_PCT < 5
reselect ularcha_PCT > 0
calc fc_h_str = 'Mixed Conifer (Subalpine/Western Larch)'
commit
/*************************************
/* 72a. MIXED CONIFER (LARCH TAMARACK)
/*************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect utot_decid <= 1
reselect ularcht_pct < 5
reselect ularcht_pct > 0
calc fc_h_str = 'Mixed Conifer (Larch Tamarack)'
commit
/* Class added March 12, 2002
/********************
/* 73. SPRUCE WETLAND
/********************
/* reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
/* reselect fc_nostr cn 'Spruce'
/* reselect ( umoist_reg = 'a' or umoist_reg = 'w' )
/* calc fc_h_str = 'Spruce Wetland'
/* commit
/* Class removed March 12, 2002
/***************************
/* 73a. BLACK SPRUCE WETLAND
/***************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( umoist_reg = 'a' or umoist_reg = 'w' )
reselect ularcha_pct = 0 and ularcht_pct = 0
reselect utot_decid <= 2
reselect uaspen_pct = 0
reselect upoplar_pct <= 1
reselect ubirch_pct <= 2
reselect utruefir_pct = 0
reselect upine_pct <= 2
reselect uspruce_pct = 0
reselect uspruceb_pct >= 1
calc fc_h_str = 'Black Spruce Wetland'
commit
/* Class added March 13, 2002
/***************************
/* 73b. WHITE SPRUCE WETLAND
/***************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( umoist_reg = 'a' or umoist_reg = 'w' )
reselect ularcha_pct < 5 and ularcht_pct < 5
Alberta Forest Cover Classification Procedure
46
reselect utot_decid <= 2
reselect uaspen_pct = 0
reselect upoplar_pct <= 1
reselect ubirch_pct <= 2
reselect utruefir_pct = 0
reselect upine_pct <= 2
reselect uspruce_pct >= 1
reselect fc_nostr ne 'Black Spruce Wetland'
calc fc_h_str = 'White Spruce Wetland'
commit
/* Class added March 13, 2002
/******************************************
/* 73c. BLACK SPRUCE/LARCH TAMARACK WETLAND
/******************************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( umoist_reg = 'a' or umoist_reg = 'w' )
reselect utot_decid <= 2
reselect uaspen_pct = 0
reselect upoplar_pct <= 1
reselect ubirch_pct <= 2
reselect utruefir_pct = 0
reselect upine_pct <= 2
reselect uspruceb_pct >= 1
reselect ularcht_pct >= 1 and ularcht_pct < 8
calc fc_h_str = 'Black Spruce/Larch Tamarack Wetland'
resel
nsel
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( umoist_reg = 'a' or umoist_reg = 'w' )
reselect fc_nostr cn 'Larch'
reselect utot_decid <= 2
reselect uaspen_pct = 0
reselect upoplar_pct <= 1
reselect ubirch_pct <= 2
reselect utruefir_pct = 0
reselect upine_pct <= 2
reselect spruceb_pct >= 3 or uspruceb_pct >= 5
calc fc_h_str = 'Black Spruce/Larch Tamarack Wetland'
commit
/* Class added March 13, 2002
/*****************************
/* 73d. LARCH TAMARACK WETLAND
/*****************************
reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
reselect ( umoist_reg = 'a' or umoist_reg = 'w' )
reselect uspruceb_pct = 0
reselect ularcht_pct >= 8
reselect uspruce_pct < 5
reselect utot_decid <= 2
reselect uaspen_pct = 0
reselect upoplar_pct <= 1
reselect ubirch_pct <= 2
reselect utruefir_pct = 0
reselect upine_pct <= 2
calc fc_h_str = 'Larch Tamarack Wetland'
/*commit
/* Class added March 13, 2002
Alberta Forest Cover Classification Procedure
47
quit
&return
/*=====================================================================
&routine MULTISTOREY
/*=====================================================================
/* Calculates understory forest cover classification for Multistory structure
/* stands with 'A' density overstorey and understorey density > 'A'.
tables
select %tablename%
calc fc_m_str = ''
/***************************
/* 53. PINE (LODGEPOLE/JACK)
/***************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect upine_pct >= 9
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'Pine (Lodgepole/Jack)'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect upine_pct >= 5
reselect utot_decid < 2
reselect upine_pct > uspruce_pct
reselect upine_pct > uspruceb_pct
reselect upine_pct > utruefir_pct
reselect upine_pct > udougfir_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'Pine (Lodgepole/Jack)'
commit
/****************************
/* 54. WHITE/ENGELMANN SPRUCE
/****************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect uspruce_pct >= 9
calc fc_m_str = 'White/Engelmann Spruce'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect uspruce_pct >= 5
reselect utot_decid < 2
reselect uspruce_pct >= upine_pct
reselect uspruce_pct > utruefir_pct
reselect uspruce_pct > udougfir_pct
reselect uspruce_pct >= uspruceb_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect not ( uspruce_pct = 5 and utruefir_pct = 5 )
calc fc_m_str = 'White/Engelmann Spruce'
commit
/*******************
/* 54a. BLACK SPRUCE
/*******************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
Alberta Forest Cover Classification Procedure
48
reselect uspruceb_pct >= 9
calc fc_m_str = 'Black Spruce'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect uspruceb_pct >= 5
reselect utot_decid < 2
reselect uspruceb_pct >= upine_pct
reselect uspruceb_pct > utruefir_pct
reselect uspruceb_pct > udougfir_pct
reselect uspruceb_pct > uspruce_pct
reselect uspruceb_pct > ularcht_pct
reselect not ( uspruceb_pct = 5 and utruefir_pct = 5 )
calc fc_m_str = 'Black Spruce'
commit
/* Class added March 13, 2002
/**************
/* 55. TRUE FIR
/**************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utruefir_pct >= 9
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'True Fir'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utruefir_pct >= 5
reselect utot_decid < 2
reselect utruefir_pct >= upine_pct
reselect utruefir_pct >= uspruce_pct
reselect utruefir_pct >= uspruceb_pct
reselect utruefir_pct > udougfir_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'True Fir'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ( utruefir_pct = 5 and upine_pct = 5 ) or ( utruefir_pct = 5 and
uspruce_pct = 5 ) or ( utruefir_pct = 5 and uspruceb_pct = 5 )
calc fc_m_str = 'True Fir'
commit
/*****************
/* 56. DOUGLAS FIR
/*****************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect udougfir_pct >= 9
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'Douglas Fir'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect udougfir_pct >= 5
reselect utot_decid < 2
reselect udougfir_pct >= upine_pct
Alberta Forest Cover Classification Procedure
49
reselect udougfir_pct >= uspruce_pct
reselect udougfir_pct >= uspruceb_pct
reselect udougfir_pct > utruefir_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'Douglas Fir'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ( udougfir_pct = 5 and upine_pct = 5 ) or ( udougfir_pct = 5 and
uspruce_pct = 5 ) or ( udougfir_pct = 5 and uspruceb_pct = 5 )
calc fc_m_str = 'Douglas Fir'
commit
/*****************************
/* 57. SUBALPINE/WESTERN LARCH
/*****************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ularcha_PCT >= 9
calc fc_m_str = 'Subalpine/Western Larch'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ularcha_PCT >= 5
reselect utot_decid < 2
reselect ularcha_PCT >= upine_pct
reselect ularcha_PCT >= uspruce_pct
reselect ularcha_pct >= uspruceb_pct
reselect ularcha_PCT >= utruefir_pct
reselect ularcha_PCT >= udougfir_pct
calc fc_m_str = 'Subalpine/Western Larch'
commit
/*********************
/* 57a. LARCH TAMARACK
/*********************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ularcht_pct >= 9
calc fc_m_str = 'Larch Tamarack'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ularcht_PCT >= 5
reselect utot_decid < 2
reselect ularcht_PCT >= upine_pct
reselect ularcht_PCT >= uspruce_pct
reselect ularcht_pct >= uspruceb_pct
reselect ularcht_PCT >= utruefir_pct
reselect ularcht_PCT >= udougfir_pct
calc fc_m_str = 'Larch Tamarack'
commit
/* Class added March 13, 2002
/***************************
/* 58. WHITEBARK/LIMBER PINE
/***************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ( usp1 = 'Pa' or usp1 = 'Pf' )
Alberta Forest Cover Classification Procedure
50
reselect usp1_per >= 5
calc fc_m_str = 'Whitebark/Limber Pine'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect usp2 = 'Pa' or usp2 = 'Pf'
reselect usp2_per >= 5
reselect utot_decid < 2
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'Whitebark/Limber Pine'
commit
/***********
/* 59. ASPEN
/***********
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect uaspen_pct >= 4
reselect utot_conifer <= 4
reselect uaspen_pct > upoplar_pct
reselect uaspen_pct > birch_pct
calc fc_m_str = 'Aspen'
commit
/*******************
/* 60. BALSAM POPLAR
/*******************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect upoplar_pct >= 5
reselect utot_conifer < 2
calc fc_m_str = 'Balsam Poplar'
commit
/************
/* 60a. BIRCH
/************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ubirch_pct >= 5
reselect utot_conifer < 2
calc fc_m_str = 'Birch'
commit
/* Class added March 13, 2002
/*********************
/* 61. ASPEN MIXEDWOOD
/*********************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect uaspen_pct >= 4
reselect utot_conifer >= 2
reselect utot_conifer <= 4
reselect uaspen_pct > upoplar_pct
reselect uaspen_pct > ubirch_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
calc fc_m_str = 'Aspen Mixedwood'
commit
/*****************************
/* 62. BALSAM POPLAR MIXEDWOOD
Alberta Forest Cover Classification Procedure
51
/*****************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect upoplar_pct > 5
reselect utot_conifer >= 2
reselect utot_conifer <= 4
reselect uaspen_pct <= upoplar_pct
reselect upoplar_pct > ubirch_pct
calc fc_m_str = 'Balsam Poplar Mixedwood'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect upoplar_pct <= 8 and upoplar_pct >= 1
reselect utot_decid > utot_conifer
reselect uaspen_pct <= upoplar_pct
reselect uaspen_pct > ubirch_pct
reselect utot_conifer > 1
calc fc_m_str = 'Balsam Poplar Mixedwood'
commit
/**********************
/* 62a. BIRCH MIXEDWOOD
/**********************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ubirch_pct >= 4
reselect utot_conifer >= 2
reselect utot_conifer <= 4
reselect ubirch_pct < uaspen_pct
reselect ubirch_pct < upoplar_pct
calc fc_m_str = 'Birch Mixedwood'
resel
nsel
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect ubirch_pct <= 8 and ubirch_pct >= 1
reselect utot_decid > utot_conifer
reselect ubirch_pct > uaspen_pct
reselect ubirch_pct > upoplar_pct
reselect utot_conifer > 1
calc fc_m_str = 'Birch Mixedwood'
commit
/* Class added March 13, 2002
/*************************************
/* 63. PINE (LODGEPOLE/JACK) MIXEDWOOD
/*************************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= utot_conifer
reselect utot_decid >= 2
reselect upine_pct >= 1
reselect upine_pct > uspruce_pct
reselect upine_pct > uspruceb_pct
reselect upine_pct > utruefir_pct
reselect upine_pct > udougfir_pct
reselect upine_pct > uspruceb_pct
reselect upine_pct > ularcha_pct
reselect upine_pct > ularcht_pct
reselect utot_conifer >= 3
calc fc_m_str = 'Pine (Lodgepole/Jack) Mixedwood'
commit
Alberta Forest Cover Classification Procedure
52
/**************************************
/* 64. WHITE/ENGELMANN SPRUCE MIXEDWOOD
/**************************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= utot_conifer
reselect uspruce_pct >= 1
reselect uspruce_pct >= upine_pct
reselect uspruce_pct > utruefir_pct
reselect uspruce_pct > udougfir_pct
reselect uspruce_pct >= uspruceb_pct
reselect uspruce_pct > ularcha_pct
reselect uspruce_pct > ularcht_pct
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_m_str = 'White/Engelmann Spruce Mixedwood'
commit
/*****************************
/* 64a. BLACK SPRUCE MIXEDWOOD
/*****************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= utot_conifer
reselect uspruceb_pct >= 1
reselect uspruceb_pct >= upine_pct
reselect uspruceb_pct > utruefir_pct
reselect uspruceb_pct > udougfir_pct
reselect uspruceb_pct >= uspruceb_pct
reselect uspruceb_pct > ularcha_pct
reselect uspruceb_pct > ularcht_pct
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_m_str = 'Black Spruce Mixedwood'
commit
/************************
/* 65. TRUE FIR MIXEDWOOD
/************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= utot_conifer
reselect utruefir_pct >= 1
reselect utruefir_pct >= upine_pct
reselect utruefir_pct > udougfir_pct
reselect utruefir_pct >= uspruce_pct
reselect utruefir_pct >= uspruceb_pct
reselect ( utruefir_pct > ularcha_PCT ) and ( utruefir_pct > ularcht_pct )
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_m_str = 'True Fir Mixedwood'
commit
/***************************
/* 66. DOUGLAS FIR MIXEDWOOD
/***************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= utot_conifer
reselect udougfir_pct >= 1
reselect udougfir_pct >= upine_pct
reselect udougfir_pct > utruefir_pct
reselect udougfir_pct >= uspruce_pct
Alberta Forest Cover Classification Procedure
53
reselect udougfir_pct >= uspruceb_pct
reselect utot_conifer >= 3
reselect utot_decid >= 2
calc fc_m_str = 'Douglas Fir Mixedwood'
commit
/*******************************************
/* 67. MIXED CONIFER (PINE - LODGEPOLE/JACK)
/*******************************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect upine_pct > udougfir_pct
reselect upine_pct > utruefir_pct
reselect upine_pct > uspruce_pct
reselect upine_pct > uspruceb_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect upine_pct <= 4 and upine_pct >= 1
calc fc_m_str = 'Mixed Conifer (Pine - Lodgepole/Jack)'
commit
/********************************************
/* 68. MIXED CONIFER (WHITE/ENGELMANN SPRUCE)
/********************************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect uspruce_pct > udougfir_pct
reselect uspruce_pct > utruefir_pct
reselect uspruce_pct >= upine_pct
reselect uspruce_pct >= uspruceb_pct
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect uspruce_pct <= 4 and uspruce_pct >= 1
calc fc_m_str = 'Mixed Conifer (White/Engelmann Spruce)'
commit
/***********************************
/* 68a. MIXED CONIFER (BLACK SPRUCE)
/***********************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect uspruceb_pct > udougfir_pct
reselect uspruceb_pct > utruefir_pct
reselect uspruceb_pct >= upine_pct
reselect uspruceb_pct > uspruce_pct
reselect uspruceb_pct > ularcha_pct
reselect uspruceb_pct > ularcht_pct
reselect uspruceb_pct <= 4 and uspruceb_pct >= 1
calc fc_m_str = 'Mixed Conifer (Black Spruce)'
commit
/* Class added March 13, 2002
/******************************
/* 69. MIXED CONIFER (TRUE FIR)
/******************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect utruefir_pct > udougfir_pct
reselect utruefir_pct >= uspruce_pct
reselect utruefir_pct >= uspruceb_pct
reselect utruefir_pct >= upine_pct
Alberta Forest Cover Classification Procedure
54
reselect ularcha_PCT = 0 and ularcht_pct = 0
reselect utruefir_pct <= 4 and utruefir_pct >= 1
calc fc_m_str = 'Mixed Conifer (True Fir)'
commit
/*********************************
/* 70. MIXED CONIFER (DOUGLAS FIR)
/*********************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect udougfir_pct >= utruefir_pct
reselect udougfir_pct >= uspruce_pct
reselect udougfir_pct >= uspruceb_pct
reselect udougfir_pct >= upine_pct
reselect ularcha_pct = 0 and ularcht_pct = 0
reselect udougfir_pct <= 4 and udougfir_pct >= 1
calc fc_m_str = 'Mixed Conifer (Douglas Fir)'
commit
/*******************************************
/* 71. MIXED CONIFER (WHITEBARK/LIMBER PINE)
/*******************************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect uwhitelmb_pct > 0
reselect fc_h_str <> 'Whitebark/Limber Pine'
reselect uwhitelmb_pct <= 4
reselect uwhitelmb_pct >= ularcha_pct
reselect uwhitelmb_pct >= ularcht_pct
reselect uwhitelmb_pct >= udougfir_pct
reselect uwhitelmb_pct >= utruefir_pct
reselect uwhitelmb_pct >= upine_pct
reselect uwhitelmb_pct >= uspruce_pct
reselect uwhitelmb_pct >= uspruceb_pct
reselect ularcha_PCT = 0
calc fc_m_str = 'Mixed Conifer (Whitebark/Limber Pine)'
commit
/*********************************************
/* 72. MIXED CONIFER (SUBALPINE/WESTERN LARCH)
/*********************************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect ularcha_PCT < 5
reselect ularcha_PCT > 0
calc fc_m_str = 'Mixed Conifer (Subalpine/Western Larch)'
commit
/*************************************
/* 72a. MIXED CONIFER (LARCH TAMARACK)
/*************************************
reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
reselect utot_decid <= 1
reselect ularcht_pct < 5
reselect ularcht_pct > 0
calc fc_m_str = 'Mixed Conifer (Larch Tamarack)'
commit
/* Class added March 13, 2002
ForestCoverClassificationProcedure
ForestCoverClassificationProcedure
ForestCoverClassificationProcedure
ForestCoverClassificationProcedure
ForestCoverClassificationProcedure
ForestCoverClassificationProcedure
ForestCoverClassificationProcedure

More Related Content

Viewers also liked

Internet y derechos fundamentales
Internet y derechos fundamentalesInternet y derechos fundamentales
Internet y derechos fundamentalesalexandradance
 
interior_forest_analysis
interior_forest_analysisinterior_forest_analysis
interior_forest_analysisTammy Kobliuk
 
MAGG 2012 - Municipal Census Best Practices
MAGG 2012 - Municipal Census Best PracticesMAGG 2012 - Municipal Census Best Practices
MAGG 2012 - Municipal Census Best PracticesTammy Kobliuk
 
FME 2014 - Automating Creation of 911 Compliant Data
FME 2014 - Automating Creation of 911 Compliant DataFME 2014 - Automating Creation of 911 Compliant Data
FME 2014 - Automating Creation of 911 Compliant DataTammy Kobliuk
 
PICTOMETRY 2014 - Integrating Pictometry Into Your Municipal Operations
PICTOMETRY 2014 - Integrating Pictometry Into Your Municipal OperationsPICTOMETRY 2014 - Integrating Pictometry Into Your Municipal Operations
PICTOMETRY 2014 - Integrating Pictometry Into Your Municipal OperationsTammy Kobliuk
 
GEOALBERTA 2015 - StAlbert - Do You Measure Up
GEOALBERTA 2015 - StAlbert - Do You Measure UpGEOALBERTA 2015 - StAlbert - Do You Measure Up
GEOALBERTA 2015 - StAlbert - Do You Measure UpTammy Kobliuk
 
Introducing - Fourth Force - Next level for Verification's
Introducing - Fourth Force - Next level for Verification'sIntroducing - Fourth Force - Next level for Verification's
Introducing - Fourth Force - Next level for Verification'sDipesh Arora
 

Viewers also liked (16)

Internet y derechos fundamentales
Internet y derechos fundamentalesInternet y derechos fundamentales
Internet y derechos fundamentales
 
Casos de éxito Eco Lógica
Casos de éxito Eco LógicaCasos de éxito Eco Lógica
Casos de éxito Eco Lógica
 
interior_forest_analysis
interior_forest_analysisinterior_forest_analysis
interior_forest_analysis
 
douglas gallant
douglas gallantdouglas gallant
douglas gallant
 
3 interpolasi1
3 interpolasi13 interpolasi1
3 interpolasi1
 
Training 1
Training 1Training 1
Training 1
 
MAGG 2012 - Municipal Census Best Practices
MAGG 2012 - Municipal Census Best PracticesMAGG 2012 - Municipal Census Best Practices
MAGG 2012 - Municipal Census Best Practices
 
Douglas-Gallant-M.B.A
Douglas-Gallant-M.B.ADouglas-Gallant-M.B.A
Douglas-Gallant-M.B.A
 
FME 2014 - Automating Creation of 911 Compliant Data
FME 2014 - Automating Creation of 911 Compliant DataFME 2014 - Automating Creation of 911 Compliant Data
FME 2014 - Automating Creation of 911 Compliant Data
 
PICTOMETRY 2014 - Integrating Pictometry Into Your Municipal Operations
PICTOMETRY 2014 - Integrating Pictometry Into Your Municipal OperationsPICTOMETRY 2014 - Integrating Pictometry Into Your Municipal Operations
PICTOMETRY 2014 - Integrating Pictometry Into Your Municipal Operations
 
Presentación sfie
Presentación sfiePresentación sfie
Presentación sfie
 
GEOALBERTA 2015 - StAlbert - Do You Measure Up
GEOALBERTA 2015 - StAlbert - Do You Measure UpGEOALBERTA 2015 - StAlbert - Do You Measure Up
GEOALBERTA 2015 - StAlbert - Do You Measure Up
 
Food for the Future
Food for the FutureFood for the Future
Food for the Future
 
PrésentationKnime-Final
PrésentationKnime-FinalPrésentationKnime-Final
PrésentationKnime-Final
 
douglas gallant
douglas gallantdouglas gallant
douglas gallant
 
Introducing - Fourth Force - Next level for Verification's
Introducing - Fourth Force - Next level for Verification'sIntroducing - Fourth Force - Next level for Verification's
Introducing - Fourth Force - Next level for Verification's
 

Similar to ForestCoverClassificationProcedure

Fils 16
Fils 16Fils 16
Fils 16teman
 
Fils 14
Fils 14Fils 14
Fils 14teman
 
How to estimate future forest cover in a watershed
How to estimate future forest cover in a watershedHow to estimate future forest cover in a watershed
How to estimate future forest cover in a watershedwatershedprotection
 
2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...
2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...
2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...RavindraSaksena
 
2 Forest Types working plans_limitation of satellite imageries
2 Forest Types working plans_limitation of satellite imageries2 Forest Types working plans_limitation of satellite imageries
2 Forest Types working plans_limitation of satellite imageriesRavindraSaksena
 
Jammu and Kashmir Forest Department Ramban Forest Division
Jammu and Kashmir Forest Department Ramban Forest DivisionJammu and Kashmir Forest Department Ramban Forest Division
Jammu and Kashmir Forest Department Ramban Forest DivisionManzoor Wani
 
Tree species composition and above ground tree biomass estimation
Tree species composition and above ground tree biomass estimationTree species composition and above ground tree biomass estimation
Tree species composition and above ground tree biomass estimationMrumba E. John
 
BC Protected Area Research Forum Presentation
BC Protected Area Research Forum PresentationBC Protected Area Research Forum Presentation
BC Protected Area Research Forum Presentationnancyanne
 
Hazard Tree 2014 Annual Report
Hazard Tree 2014  Annual ReportHazard Tree 2014  Annual Report
Hazard Tree 2014 Annual ReportSteve Harvey
 
Final Phase II Presentation 10-26-14
Final Phase II Presentation 10-26-14Final Phase II Presentation 10-26-14
Final Phase II Presentation 10-26-14Christopher Peltz
 
Monografia jean rodrigo jacob distribuições probabilísticas para estimar a ...
Monografia jean rodrigo jacob   distribuições probabilísticas para estimar a ...Monografia jean rodrigo jacob   distribuições probabilísticas para estimar a ...
Monografia jean rodrigo jacob distribuições probabilísticas para estimar a ...JeanRodrigoJacobdaSi
 
Management of timber under a habitat conservation plan (HCP) in the Pacific N...
Management of timber under a habitat conservation plan (HCP) in the Pacific N...Management of timber under a habitat conservation plan (HCP) in the Pacific N...
Management of timber under a habitat conservation plan (HCP) in the Pacific N...KR Walters Consulting Services
 
GOG community descriptions May 2013
GOG community descriptions May 2013GOG community descriptions May 2013
GOG community descriptions May 2013Denise Wilson
 
TERN Ecosystem Surveillance Plots Kakadu National Park
TERN Ecosystem Surveillance Plots Kakadu National ParkTERN Ecosystem Surveillance Plots Kakadu National Park
TERN Ecosystem Surveillance Plots Kakadu National ParkTERN Australia
 
KNF_RemoteSensingVegetationMonitoringFinal
KNF_RemoteSensingVegetationMonitoringFinalKNF_RemoteSensingVegetationMonitoringFinal
KNF_RemoteSensingVegetationMonitoringFinalConverse Griffith
 
msf_uw_2013poster (1)
msf_uw_2013poster (1)msf_uw_2013poster (1)
msf_uw_2013poster (1)Mario Farias
 
Forest Diagnosis: Stand, forest, stand typing
Forest Diagnosis: Stand, forest, stand typingForest Diagnosis: Stand, forest, stand typing
Forest Diagnosis: Stand, forest, stand typingNombre Apellidos
 
OWLT Final Presentation
OWLT Final PresentationOWLT Final Presentation
OWLT Final PresentationApril Opatik
 

Similar to ForestCoverClassificationProcedure (20)

Fils 16
Fils 16Fils 16
Fils 16
 
Fils 14
Fils 14Fils 14
Fils 14
 
How to estimate future forest cover in a watershed
How to estimate future forest cover in a watershedHow to estimate future forest cover in a watershed
How to estimate future forest cover in a watershed
 
2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...
2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...
2 FOREST (CONSERVATION) ACT, 1980 - FOREST TYPES, CROWN DENSITY, BIODIVERSITY...
 
2 Forest Types working plans_limitation of satellite imageries
2 Forest Types working plans_limitation of satellite imageries2 Forest Types working plans_limitation of satellite imageries
2 Forest Types working plans_limitation of satellite imageries
 
Jammu and Kashmir Forest Department Ramban Forest Division
Jammu and Kashmir Forest Department Ramban Forest DivisionJammu and Kashmir Forest Department Ramban Forest Division
Jammu and Kashmir Forest Department Ramban Forest Division
 
Tree species composition and above ground tree biomass estimation
Tree species composition and above ground tree biomass estimationTree species composition and above ground tree biomass estimation
Tree species composition and above ground tree biomass estimation
 
BC Protected Area Research Forum Presentation
BC Protected Area Research Forum PresentationBC Protected Area Research Forum Presentation
BC Protected Area Research Forum Presentation
 
Hazard Tree 2014 Annual Report
Hazard Tree 2014  Annual ReportHazard Tree 2014  Annual Report
Hazard Tree 2014 Annual Report
 
Final Phase II Presentation 10-26-14
Final Phase II Presentation 10-26-14Final Phase II Presentation 10-26-14
Final Phase II Presentation 10-26-14
 
Monografia jean rodrigo jacob distribuições probabilísticas para estimar a ...
Monografia jean rodrigo jacob   distribuições probabilísticas para estimar a ...Monografia jean rodrigo jacob   distribuições probabilísticas para estimar a ...
Monografia jean rodrigo jacob distribuições probabilísticas para estimar a ...
 
Management of timber under a habitat conservation plan (HCP) in the Pacific N...
Management of timber under a habitat conservation plan (HCP) in the Pacific N...Management of timber under a habitat conservation plan (HCP) in the Pacific N...
Management of timber under a habitat conservation plan (HCP) in the Pacific N...
 
GOG community descriptions May 2013
GOG community descriptions May 2013GOG community descriptions May 2013
GOG community descriptions May 2013
 
TERN Ecosystem Surveillance Plots Kakadu National Park
TERN Ecosystem Surveillance Plots Kakadu National ParkTERN Ecosystem Surveillance Plots Kakadu National Park
TERN Ecosystem Surveillance Plots Kakadu National Park
 
Metadata
MetadataMetadata
Metadata
 
KNF_RemoteSensingVegetationMonitoringFinal
KNF_RemoteSensingVegetationMonitoringFinalKNF_RemoteSensingVegetationMonitoringFinal
KNF_RemoteSensingVegetationMonitoringFinal
 
msf_uw_2013poster (1)
msf_uw_2013poster (1)msf_uw_2013poster (1)
msf_uw_2013poster (1)
 
Forest Diagnosis: Stand, forest, stand typing
Forest Diagnosis: Stand, forest, stand typingForest Diagnosis: Stand, forest, stand typing
Forest Diagnosis: Stand, forest, stand typing
 
Climate Change Atlas: New England and northern New York
Climate Change Atlas: New England and northern New YorkClimate Change Atlas: New England and northern New York
Climate Change Atlas: New England and northern New York
 
OWLT Final Presentation
OWLT Final PresentationOWLT Final Presentation
OWLT Final Presentation
 

More from Tammy Kobliuk

GIS Strategic Plan Final
GIS Strategic Plan FinalGIS Strategic Plan Final
GIS Strategic Plan FinalTammy Kobliuk
 
CompositeVisibilityAnalysisProcedure
CompositeVisibilityAnalysisProcedureCompositeVisibilityAnalysisProcedure
CompositeVisibilityAnalysisProcedureTammy Kobliuk
 
geog537_2002_metrics
geog537_2002_metricsgeog537_2002_metrics
geog537_2002_metricsTammy Kobliuk
 
Tree Species Identification
Tree Species IdentificationTree Species Identification
Tree Species IdentificationTammy Kobliuk
 
GEOALBERTA 2011 - GIS Portal Implementation
GEOALBERTA 2011 - GIS Portal ImplementationGEOALBERTA 2011 - GIS Portal Implementation
GEOALBERTA 2011 - GIS Portal ImplementationTammy Kobliuk
 
ESRI ERUC 2014 - Easy Automation for Process Efficiencies
ESRI ERUC 2014 - Easy Automation for Process EfficienciesESRI ERUC 2014 - Easy Automation for Process Efficiencies
ESRI ERUC 2014 - Easy Automation for Process EfficienciesTammy Kobliuk
 
MISA PRAIRIES 2013 - Flexibility in Delivering GIS Services
MISA PRAIRIES 2013 - Flexibility in Delivering GIS ServicesMISA PRAIRIES 2013 - Flexibility in Delivering GIS Services
MISA PRAIRIES 2013 - Flexibility in Delivering GIS ServicesTammy Kobliuk
 
GEOALBERTA 2013 - I Spy With My Little Eye - St Albert
GEOALBERTA 2013 - I Spy With My Little Eye - St AlbertGEOALBERTA 2013 - I Spy With My Little Eye - St Albert
GEOALBERTA 2013 - I Spy With My Little Eye - St AlbertTammy Kobliuk
 
A Successful Pictometry Implementation Story - 2016Oct
A Successful Pictometry Implementation Story - 2016OctA Successful Pictometry Implementation Story - 2016Oct
A Successful Pictometry Implementation Story - 2016OctTammy Kobliuk
 

More from Tammy Kobliuk (10)

GIS Strategic Plan Final
GIS Strategic Plan FinalGIS Strategic Plan Final
GIS Strategic Plan Final
 
CompositeVisibilityAnalysisProcedure
CompositeVisibilityAnalysisProcedureCompositeVisibilityAnalysisProcedure
CompositeVisibilityAnalysisProcedure
 
geog537_2002_metrics
geog537_2002_metricsgeog537_2002_metrics
geog537_2002_metrics
 
Tree Species Identification
Tree Species IdentificationTree Species Identification
Tree Species Identification
 
geog537_AVIInDetail
geog537_AVIInDetailgeog537_AVIInDetail
geog537_AVIInDetail
 
GEOALBERTA 2011 - GIS Portal Implementation
GEOALBERTA 2011 - GIS Portal ImplementationGEOALBERTA 2011 - GIS Portal Implementation
GEOALBERTA 2011 - GIS Portal Implementation
 
ESRI ERUC 2014 - Easy Automation for Process Efficiencies
ESRI ERUC 2014 - Easy Automation for Process EfficienciesESRI ERUC 2014 - Easy Automation for Process Efficiencies
ESRI ERUC 2014 - Easy Automation for Process Efficiencies
 
MISA PRAIRIES 2013 - Flexibility in Delivering GIS Services
MISA PRAIRIES 2013 - Flexibility in Delivering GIS ServicesMISA PRAIRIES 2013 - Flexibility in Delivering GIS Services
MISA PRAIRIES 2013 - Flexibility in Delivering GIS Services
 
GEOALBERTA 2013 - I Spy With My Little Eye - St Albert
GEOALBERTA 2013 - I Spy With My Little Eye - St AlbertGEOALBERTA 2013 - I Spy With My Little Eye - St Albert
GEOALBERTA 2013 - I Spy With My Little Eye - St Albert
 
A Successful Pictometry Implementation Story - 2016Oct
A Successful Pictometry Implementation Story - 2016OctA Successful Pictometry Implementation Story - 2016Oct
A Successful Pictometry Implementation Story - 2016Oct
 

ForestCoverClassificationProcedure

  • 1. Alberta Forest Cover Classification Procedure Resource Analysis Section, Forest Management Branch, Alberta Sustainable Resource Development Tammy Kobliuk July 29, 2002
  • 2. Alberta Forest Cover Classification Procedure 2 ALBERTA FOREST COVER CLASSIFICATION PROCEDURE........................................................1 1. BACKGROUND...................................................................................................................................2 2. INPUT DATA REQUIREMENTS ............................................................................................................2 3. OUTPUT DATA...................................................................................................................................3 4. FOREST COVER CLASSES...................................................................................................................4 5. GENERAL CLASSIFICATION METHODOLOGY .....................................................................................5 5.1. Species Roll-up ............................................................................................................................5 5.2. Forest Cover – No Structure........................................................................................................5 5.3. Forest Cover – Horizontal Stands ...............................................................................................6 5.4. Forest Cover – Multistory Stands................................................................................................6 5.5. Forest Cover – Understory Grasslands.......................................................................................6 5.6. Final Classification......................................................................................................................6 6. WETLANDS PREDICTION....................................................................................................................6 7. REFERENCES .....................................................................................................................................8 APPENDIX A: FOREST COVER CLASSIFICATION FIELD DEFINITIONS..........................................................9 APPENDIX B: .AML SOURCE CODE.........................................................................................................10 1. Background The forest cover classification methodology was originally developed for the Landscape Planning Pilot project (Olson and Diehl, 2000). There was a need to roll up the AVI stand calls into a more general description in order to predict ecosite phase. That original forest cover classification covered only the species and landscape classes found in the Southern Rockies (FMU’s C5, CO1, and CO2). These classes were added to and expanded to include species and classes found in other parts of Alberta. The forest cover classification program is written in .AML and is intended to be run from within ArcInfo workstation, from the Arc prompt. The .AML program anticipates that the AVI attribute information is stored in INFO. 2. Input Data Requirements The provincial AVI 2.1 data model is the required format for the input data set for the forest cover classification. The required fields are as follows: Table 1. Required AVI 2.1 fields Field Name Description SP1, SP2, SP3, SP4, SP5 Overstory species fields SP1_PER, SP2_PER, SP3_PER, SP4_PER, SP5_PER Overstory species percentages USP1, USP2, USP3, USP4, USP5 Understory species fields USP1_PER, USP2_PER, USP3_PER, USP4_PER, USP5_PER Understory species percentages MOIST_REG, UMOIST_REG Moisture regime (overstory, understory) STRUC Stand structure USTRUC_VAL Understory stand structure ‘extent’ (ie. For Horizontal stands) DENSITY, UDENSITY Crown Closure (overstory, understory) NFL, UNFL Naturally non-forested land NAT_NON, UNAT_NON Naturally non-vegetated ANTH_VEG, UANTH_VEG Anthropogenic vegetation
  • 3. Alberta Forest Cover Classification Procedure 3 ANTH_NON, UANTH_NON Antrhopogenic non-vegetated MOD1, MOD2 Stand modifiers MOD1_EXT, MOD2_EXT Stand modifier extents 3. Output Data The forest cover classification procedure requires the creation and population of various additional fields: Table 2. Species Roll-up: Overstory Field Name Description ASPEN_PCT Percentage of Trembling Aspen (Aw) and undifferentiated deciduous (A) TRUEFIR_PCT Percentage of Balsam Fir (Fb) and Sub-alpine Fir (Fa) SPRUCE_PCT Percentage of White Spruce (Sw) and Engelmann Spruce (Se) SPRUCEB_PCT Percentage of Black Spruce (Sb) PINE_PCT Percentage of Lodgepole Pine (Pl), Jackpine (Pj), and undifferentiated Pine (P) WHITELIMB_PCT Percentage of White-bark Pine (Pa) and Limber Pine (Pf) DOUGFIR_PCT Percentage of Douglas Fir (Fd) LARCHA_PCT Percentage of Alpine Larch (La) LARCHT_PCT Percentage of Larch Tamarack (Lt) BIRCH_PCT Percentage of Paper Birch (Bw) POPLAR_PCT Percentage of Balsam Poplar (Pb) TOT_CONIFER Total percentage of conifer species TOT_DECID Total percentage of deciduous species Table 3. Species Roll-up: Understory Field Name Description UASPEN_PCT Percentage of Trembling Aspen (Aw) and undifferentiated deciduous (A) UTRUEFIR_PCT Percentage of Balsam Fir (Fb) and Sub-alpine Fir (Fa) USPRUCE_PCT Percentage of White Spruce (Sw) and Engelmann Spruce (Se) USPRUCEB_PCT Percentage of Black Spruce (Sb) UPINE_PCT Percentage of Lodgepole Pine (Pl), Jackpine (Pj), and undifferentiated Pine (P) UWHITELMB_PCT Percentage of White-bark Pine (Pa) and Limber Pine (Pf) UDOUGFIR_PCT Percentage of Douglas Fir (Fd) ULARCHA_PCT Percentage of Alpine Larch (La) ULARCHT_PCT Percentage of Larch Tamarack (Lt) UBIRCH_PCT Percentage of Paper Birch (Bw) UPOPLAR_PCT Percentage of Balsam Poplar (Pb) UTOT_CONIFER Total percentage of conifer species UTOT_DECID Total percentage of deciduous species Table 4. Forest Cover Classification fields Field Name Description COVERCAT Concatenated species call FC_NOSTR Forest cover class of overstory call (disregarding any understory attributes) FC_H_STR Forest cover classification of horizontal call FC_M_STR Forest cover classification of ‘A’-density overstory multistory call UGRASS Understory grass type call FC_DOM Dominant forest cover classification
  • 4. Alberta Forest Cover Classification Procedure 4 FC_SUBDOM Sub-dominant forest cover classification FC_COMPLEX Concatenated dominant and sub-dominant forest cover class 4. Forest Cover Classes The following is a complete list of the forest cover classes in this classification procedure: “Pure” Stands 1. Pine (Lodgepole/Jack) 2. White/Engelmann Spruce 3. Black Spruce 4. True Fir 5. Douglas Fir 6. Subalpine/Western Larch 7. Larch Tamarack 8. Whitebark/Limber Pine 9. Aspen 10. Balsam Poplar 11. Birch Mixedwood Stands 12. Aspen Mixedwood 13. Balsam Poplar Mixedwood 14. Birch Mixedwood 15. Pine (Lodgepole/Jack) Mixedwood 16. White/Engelmann Spruce Mixedwood 17. Black Spruce Mixedwood 18. Larch Tamarack Mixedwood 19. True Fir Mixedwood 20. Douglas Fir Mixedwood Mixed Conifer Stands 21. Mixed Conifer (Pine – Lodgepole/Jack) 22. Mixed Conifer (White/Engelmann Spruce) 23. Mixed Conifer (Black Spruce) 24. Mixed Conifer (True Fir) 25. Mixed Conifer (Douglas Fir) 26. Mixed Conifer (Whitebark/Limber Pine) 27. Mixed Conifer (Subalpine/Western Larch) 28. Mixed Conifer (Larch Tamarack) Wetlands 29. Black Spruce Wetland 30. White Spruce Wetland 31. Black Spruce/Larch Tamarack Wetland 32. Larch Tamarack Wetland 33. Shrub Wetland Non-Forested Lands 34. Shrub Meadow Open Mesic 35. Shrub Meadow Open Dry
  • 5. Alberta Forest Cover Classification Procedure 5 36. Shrub Meadow Closed Mesic 37. Shrub Meadow Closed Dry 38. Wet Graminoid 39. Forb Meadow 40. Bryophytic 41. Grassland Mesic 42. Grassland Dry 43. Rock Barren 44. Cutbank/Sand 45. River 46. Lakes/Ponds 47. Permanent Ice/Snow 48. Flooded 49. Recent Burn Anthropogenic Lands 50. Rough Pasture Open Mesic 51. Rough Pasture Open Dry 52. Rough Pasture Closed Mesic 53. Rough Pasture Closed Dry 54. Annual Crops 55. Perennial Crops 56. Perennial Forage Crops 57. Gravel Pits/Surface Mines 58. Rural Residential 59. Hamlets, Villages and Towns 60. Non-Veg ROWs 61. Farmsteads 62. Plant Sites/Sewage Lagoons 63. Industrial Reclamation-Vegetated 64. Partial Cut/Regenerating Clearcut 65. Herbaceous Clearcut 66. Herbaceous Clearing 5. General Classification Methodology The forest cover classification procedure is broken up into several different sections. 5.1. Species Roll-up The Species Roll-up section is a preparatory section that tabulates the amount of each species in both the understory and overstory of a stand call. These species percentage fields facilitate the forest cover classification queries in the next four sections. 5.2. Forest Cover – No Structure A first-cut classification is done on the overstory call of all stands, irregardless of stand structure type and understory call. These queries are used to populate the field FC_NOSTR.
  • 6. Alberta Forest Cover Classification Procedure 6 5.3. Forest Cover – Horizontal Stands All horizontal stands (STRUC = H) are examined. Those stands having an understory call containing > 50% of the polygon and containing tree species will be classified. The classification field is FC_H_STR. 5.4. Forest Cover – Multistory Stands All multistory stands having an ‘A’ density overstory and a forested understory with a density greater than ‘A’ will be examined and classified. The classification field is FC_M_STR. 5.5. Forest Cover – Understory Grasslands This classification is intended to target complex grassland structures of horizontal and multistory stands. The classification field is UGRASS. The following types of stands are examined:   Non-forested closed shrub lands where shrub coverage is < 60%, no structure is noted, and no understory non-forested call is noted.   Horizontal and multistory stands where the overstory is forested, no understory non-forested call is present, and understory anthropogenic vegetation is either rough pasture or not populated.   Non-forested closed shrub lands where shrub coverage is < 60%, no structure is noted, and an understory non-forested call is noted.   Understory shrub calls with an understory anthropogenic vegetation call.   Understory herbaceous grass calls with wet or aquatic moisture regimes.   Any understory call of anthropogenic vegetation.   Any understory call of herbaceous grass.   Any understory call of anthropogenic non-vegetated land.   Any understory call on naturally non-vegetated land. 5.6. Final Classification The final classification step assigns the calls from FC_NOSTR, FC_H_STR, FC_M_STR, and UGRASS to the dominant and sub-dominant forest cover classes. The dominant and sub- dominant and then concatenated into a complex forest cover class. Dominant forest cover was considered as:   FC_NOSTR where no horizontal or multistory call was made.   FC_H_STR where a horizontal class was calculated..   FC_M_STR where a multistory class was calculated. Sub-dominant forest cover was considered as:   FC_NOSTR where a horizontal or multistory class was calculated.   UGRASS where an understory grass class was calculated. 6. Wetlands Prediction The original Landscape Planning Pilot forest cover classification procedure (Olson and Diehl, 2000) classified only shrub wetlands and a generic spruce wetland type. Upon expanding the forest cover classification procedure to the rest of the province, the
  • 7. Alberta Forest Cover Classification Procedure 7 opportunity presented itself to be able to predict additional types of wetlands, which might represent distinct ecological land types. Personal communication with Grant Klappstein and Leonard Barnhardt of the Forest Management Branch of Alberta Sustainable Resource Development facilitated definition of four types of forested wetlands that could be predicted from AVI stand calls: black spruce wetland, white spruce wetland, larch tamarack wetland, black spruce/larch tamarack wetland. Although all wetland classes have a “wet” or “aquatic” moisture regime, it should be noted that not all “wet” forested stands receive a wetland-type classification. The following criteria were used to define the forested wetland types: Black Spruce Wetland   Dominant presence of Black Spruce   No presence of Larch   No presence of White Spruce   No presence of Fir species   ≤ 20% Lodgepole/Jack Pine   No presence of Aspen   ≤ 10% Poplar   ≤ 20% Birch   Cumulative presence of deciduous species ≤ 20% White Spruce Wetland   Presence of White Spruce (≥ 20%) in a spruce wetland   < 50% Larch present   No presence of Fir species   ≤ 20% Lodgepole/Jack Pine   No presence of Aspen   ≤ 10% Poplar   ≤ 20% Birch   Cumulative presence of deciduous species ≤ 20%   FC_NOSTR must not be already classified as “Black Spruce Wetland” Larch Tamarack Wetland   Dominant Larch presence (≥ 80%)   < 50% Black Spruce in both the overstory and understory   < 50% White Spruce   No presence of Fir species   ≤ 20% Lodgepole/Jack Pine   No presence of Aspen   ≤ 10% Poplar   ≤ 20% Birch   Cumulative presence of deciduous species ≤ 20% Black Spruce/Larch Tamarack Wetland   No presence of Fir species
  • 8. Alberta Forest Cover Classification Procedure 8   ≤ 20% Lodgepole/Jack Pine   No presence of Aspen   ≤ 10% Poplar   ≤ 20% Birch   Cumulative presence of deciduous species ≤ 20% AND   ≥ 10% and < 80% Larch   ≥ 10% Black Spruce OR   Overstory or understory presence of Larch   Overstory presence of Black Spruce OR   Overstory ≥ 30% Black Spruce or understory ≥ 50% Black Spruce   FC_NOSTR contains some type of Larch class 7. References Alberta Department of Environmental Protection. 1991. Alberta Vegetation Inventory Standards Manual, Version 2.1. Edmonton, Alberta. 53pp. Barnhardt, Leonard. Personal communication March 2002. Forest Geneticist with the Forest Management Branch of Alberta Sustainable Resource Development. Klappstein, Grant. Personal communication March 2002. Growth and Yield Specialist with the Forest Management Branch of Alberta Sustainable Resource Development. Olson, J.D. and S. Diehl. 2000. Forest Cover Classification Procedure. Alberta Environment, unpublished report. 68pp.
  • 9. Alberta Forest Cover Classification Procedure 9 Appendix A: Forest Cover Classification Field Definitions Table 5. Classification Field Definitions Field Name Input Width Output Width Field Type ASPEN_PCT 2 2 I TRUEFIR_PCT 2 2 I SPRUCE_PCT 2 2 I SPRUCEB_PCT 2 2 I PINE_PCT 2 2 I WHITELIMB_PCT 2 2 I DOUGFIR_PCT 2 2 I LARCHA_PCT 2 2 I LARCHT_PCT 2 2 I BIRCH_PCT 2 2 I POPLAR_PCT 2 2 I TOT_CONIFER 2 2 I TOT_DECID 2 2 I UASPEN_PCT 2 2 I UTRUEFIR_PCT 2 2 I USPRUCE_PCT 2 2 I USPRUCEB_PCT 2 2 I UPINE_PCT 2 2 I UWHITELMB_PCT 2 2 I UDOUGFIR_PCT 2 2 I ULARCHA_PCT 2 2 I ULARCHT_PCT 2 2 I UBIRCH_PCT 2 2 I UPOPLAR_PCT 2 2 I UTOT_CONIFER 2 2 I UTOT_DECID 2 2 I COVERCAT 15 15 C FC_NOSTR 40 40 C FC_H_STR 40 40 C FC_M_STR 40 40 C UGRASS 30 30 C FC_DOM 40 40 C FC_SUBDOM 40 40 C FC_COMPLEX 85 85 C
  • 10. Alberta Forest Cover Classification Procedure 10 Appendix B: .AML Source Code /*========================== /* PROGRAM: fc_class.aml /*========================== /* DESCRIPTION: LANDSCAPE PLANNING PILOT FOREST COVER CLASSIFICATION PROCEDURE /* This .aml calculates species percentages for both overstory and /* understory. Calculates forest cover classification dominant, /* sub-dominant, and complex calls. This .AML requires input inventory /* data to be in the provincial(RDB) AVI 2.1 data model. At the time of /* writing, the AVI attributes are expected to be in an INFO .ATT table. /**************************************************************************** /* NOTE: THIS PROGRAM SHOULD ONLY BE RUN BY THOSE PERSONS WITH SUFFICIENT /* BACKGROUND KNOWLEDGE TO CHECK THE VALIDITY OF THE FINAL RESULTS. /* THE INTENDED DISTRIBUTION METHOD OF THIS PROGRAM IS AS AN ENCRIPTED /* .aml FILE. THIS IS INTENDED TO ENFORCE VERSION CONTROL. SOURCE /* CODING MAY BE DISTRIBUTED IN PASSWORD-PROTECTED .pdf FORMAT. /* FOREST MANAGEMENT BRANCH WILL MAINTAIN AND MODIFY THE SOURCE CODE AS /* NEEDED. /**************************************************************************** /* USAGE: &run fc_class.aml /* /* ARGUMENTS: none /* /* CALLS: none /* /*================================ /* /* PROGRAMMED BY: T.Kobliuk /* PROGRAMMED FOR: Resource Analysis Section - Forest Management Branch, /* Sustainable Resource Development /* /* DATE: September 28, 2001 /* LAST MODIFIED: October 9, 2001: (TK) main code OCALFIELDS routine /* October 10, 2001: (TK) main code UCALCFIELDS routine /* November 5, 2001: (TK) main code CHECKFIELDS routine /* November 9, 2001: (TK) main code CLASSFIELDS, routine /* November 10, 2001: (TK) main code NO_STRUCTURE routine /* November 13, 2001: (TK) main code NO_STRUCTURE, MULTISTOREY /* and UGRASS routines. /* November 14, 2001: (TK) main code completion /* March 11, 2002: (TK) updating for Weldwood AVI /* March 12/13, 2002: (TK) updating for Lt and Sb partitions /* March 14/15, 2002: (TK) error correction Wetland classes /* March 19, 2002: (TK) Wetland class modifications /* May 22, 2002: (TK) choice .ATT/.PAT /* /*================================ /* ROUTINES: BAILOUT - bails out of the aml due to an error condition /* CHECKFIELDS - checks for existence of fields in ADDFIELDS routine; /* Deletes fields if they exist. /* ADDFIELDS - adds required species percent and classification fields /* OCALCFIELDS - calculates values for overstory species percent fields /* UCALCFIELDS - calculates values for understory species percent fields /* CLASSFIELDS - calculates values for classification fields /* NO_STRUCTURE - calculates forest cover class based on overstory calls. /* Called from CLASSFIELDS. /* HORZ_STRUCTURE - calculates forest cover class based on horizontal calls. /* Called from CLASSFIELDS. /* MULTISTOREY - calculates understory forest cover class based on multistorey, /* 'A' density overstory calls. Called from CLASSFIELDS. /* UGRASS - calculates forest cover classification for understory /* grassland components. Called from CLASSFIELDS.
  • 11. Alberta Forest Cover Classification Procedure 11 /* ----------------------- /* [VARIABLES] /* /* GLOBALS: none /* /* LOCALS: tablename - selected AVI attribute table /* uptablename - selected AVI attribute table name in uppercase /* overcheckn - 'n' variable(s) to store location of searched overstory field. /* Zero if it does not exist. /* undercheckn - 'n' variable(s) to store location of searched understory field. /* Zero if it does not exist. /* classcheckn - 'n' variable(s) to store location of searched classification fields. /* Zero if it does not exist. /* /* SYSTEM: :program - current arcinfo module (ie. TABLES) /* /*=========================================================================== &severity &error &routine BAILOUT &echo &on &terminal 9999 display 9999 &setvar tabletype = [getchoice .att .pat .avi -prompt 'Where are your AVI attributes?'] &setvar tablename = [after [after [entryname [getfile *%tabletype% -info]] !] !] /*&setvar tablename = [after [after [entryname [getfile *.att -info]] !] !] &type Selected table for processing is [upcase %tablename%] &call CHECKFIELDS &call ADDFIELDS &call OCALCFIELDS &call UCALCFIELDS &call CLASSFIELDS &type &type *************************************** &type FC_CLASS.AML HAS SUCCESSFULLY COMPLETED &type *************************************** &echo &off &return /*=========================================================================== &routine CHECKFIELDS /*=========================================================================== /* Checking for existence of forestcover calculation fields and removing them /* if they exist. /* Checking OVERSTORY fields. &setvar overcheck1 = [token -[listitem %tablename% -info] -find ASPEN_PCT] &setvar overcheck2 = [token -[listitem %tablename% -info] -find TRUEFIR_PCT] &setvar overcheck3 = [token -[listitem %tablename% -info] -find SPRUCE_PCT] &setvar overcheck4 = [token -[listitem %tablename% -info] -find PINE_PCT] &setvar overcheck5 = [token -[listitem %tablename% -info] -find WHITELIMB_PCT] &setvar overcheck6 = [token -[listitem %tablename% -info] -find DOUGFIR_PCT] &setvar overcheck7 = [token -[listitem %tablename% -info] -find LARCHA_PCT] &setvar overcheck8 = [token -[listitem %tablename% -info] -find BIRCH_PCT] &setvar overcheck9 = [token -[listitem %tablename% -info] -find POPLAR_PCT] &setvar overcheck10 = [token -[listitem %tablename% -info] -find TOT_CONIFER] &setvar overcheck11 = [token -[listitem %tablename% -info] -find TOT_DECID] &setvar overcheck12 = [token -[listitem %tablename% -info] -find LARCHT_PCT] &setvar overcheck13 = [token -[listitem %tablename% -info] -find SPRUCEB_PCT]
  • 12. Alberta Forest Cover Classification Procedure 12 /* Checking UNDERSTORY fields. &setvar undercheck1 = [token -[listitem %tablename% -info] -find UASPEN_PCT] &setvar undercheck2 = [token -[listitem %tablename% -info] -find UTRUEFIR_PCT] &setvar undercheck3 = [token -[listitem %tablename% -info] -find USPRUCE_PCT] &setvar undercheck4 = [token -[listitem %tablename% -info] -find UPINE_PCT] &setvar undercheck5 = [token -[listitem %tablename% -info] -find UWHITELMB_PCT] &setvar undercheck6 = [token -[listitem %tablename% -info] -find UDOUGFIR_PCT] &setvar undercheck7 = [token -[listitem %tablename% -info] -find ULARCHA_PCT] &setvar undercheck8 = [token -[listitem %tablename% -info] -find UBIRCH_PCT] &setvar undercheck9 = [token -[listitem %tablename% -info] -find UPOPLAR_PCT] &setvar undercheck10 = [token -[listitem %tablename% -info] -find UTOT_CONIFER] &setvar undercheck11 = [token -[listitem %tablename% -info] -find UTOT_DECID] &setvar undercheck12 = [token -[listitem %tablename% -info] -find ULARCHT_PCT] &setvar undercheck13 = [token -[listitem %tablename% -info] -find USPRUCEB_PCT] /* Checking CLASSIFICATION fields. &setvar classcheck1 = [token -[listitem %tablename% -info] -find COVERCAT] &setvar classcheck2 = [token -[listitem %tablename% -info] -find FC_NOSTR] &setvar classcheck3 = [token -[listitem %tablename% -info] -find FC_H_STR] &setvar classcheck4 = [token -[listitem %tablename% -info] -find FC_M_STR] &setvar classcheck5 = [token -[listitem %tablename% -info] -find UGRASS] &setvar classcheck6 = [token -[listitem %tablename% -info] -find FC_DOM] &setvar classcheck7 = [token -[listitem %tablename% -info] -find FC_SUBDOM] &setvar classcheck8 = [token -[listitem %tablename% -info] -find FC_COMPLEX] /* Removing OVERSTORY fields &if %overcheck1% ne 0 &then dropitem %tablename% %tablename% ASPEN_PCT &if %overcheck2% ne 0 &then dropitem %tablename% %tablename% TRUEFIR_PCT &if %overcheck3% ne 0 &then dropitem %tablename% %tablename% SPRUCE_PCT &if %overcheck4% ne 0 &then dropitem %tablename% %tablename% PINE_PCT &if %overcheck5% ne 0 &then dropitem %tablename% %tablename% WHITELIMB_PCT &if %overcheck6% ne 0 &then dropitem %tablename% %tablename% DOUGFIR_PCT &if %overcheck7% ne 0 &then dropitem %tablename% %tablename% larcha_PCT &if %overcheck8% ne 0 &then dropitem %tablename% %tablename% BIRCH_PCT &if %overcheck9% ne 0 &then dropitem %tablename% %tablename% POPLAR_PCT &if %overcheck10% ne 0 &then dropitem %tablename% %tablename% TOT_CONIFER &if %overcheck11% ne 0 &then dropitem %tablename% %tablename% TOT_DECID &if %overcheck12% ne 0 &then dropitem %tablename% %tablename% larcht_PCT &if %overcheck13% ne 0 &then dropitem %tablename% %tablename% SPRUCEB_PCT /* Removing UNDERSTORY fields &if %undercheck1% ne 0 &then dropitem %tablename% %tablename% UASPEN_PCT &if %undercheck2% ne 0 &then dropitem %tablename% %tablename% UTRUEFIR_PCT &if %undercheck3% ne 0 &then dropitem %tablename% %tablename% USPRUCE_PCT &if %undercheck4% ne 0 &then dropitem %tablename% %tablename% UPINE_PCT &if %undercheck5% ne 0 &then dropitem %tablename% %tablename% UWHITELMB_PCT &if %undercheck6% ne 0 &then dropitem %tablename% %tablename% UDOUGFIR_PCT &if %undercheck7% ne 0 &then dropitem %tablename% %tablename% ULARCHA_PCT &if %undercheck8% ne 0 &then dropitem %tablename% %tablename% UBIRCH_PCT &if %undercheck9% ne 0 &then dropitem %tablename% %tablename% UPOPLAR_PCT &if %undercheck10% ne 0 &then dropitem %tablename% %tablename% UTOT_CONIFER &if %undercheck11% ne 0 &then dropitem %tablename% %tablename% UTOT_DECID &if %undercheck12% ne 0 &then dropitem %tablename% %tablename% Ularcht_PCT &if %undercheck13% ne 0 &then dropitem %tablename% %tablename% USPRUCEB_PCT /* Removing CLASSIFICATION fields &if %classcheck1% ne 0 &then dropitem %tablename% %tablename% COVERCAT &if %classcheck2% ne 0 &then dropitem %tablename% %tablename% FC_NOSTR &if %classcheck3% ne 0 &then dropitem %tablename% %tablename% FC_H_STR &if %classcheck4% ne 0 &then dropitem %tablename% %tablename% FC_M_STR &if %classcheck5% ne 0 &then dropitem %tablename% %tablename% UGRASS &if %classcheck6% ne 0 &then dropitem %tablename% %tablename% FC_DOM &if %classcheck7% ne 0 &then dropitem %tablename% %tablename% FC_SUBDOM
  • 13. Alberta Forest Cover Classification Procedure 13 &if %classcheck8% ne 0 &then dropitem %tablename% %tablename% FC_COMPLEX &return /*=========================================================================== &routine ADDFIELDS /*=========================================================================== /* Adding general species percentage fields, and a total coniferous percent /* field. Adding final classification fields. tables additem %tablename% aspen_pct 2 2 i additem %tablename% truefir_pct 2 2 i additem %tablename% spruce_pct 2 2 i additem %tablename% spruceb_pct 2 2 i additem %tablename% pine_pct 2 2 i additem %tablename% whitelimb_pct 2 2 i additem %tablename% dougfir_pct 2 2 i additem %tablename% larcha_pct 2 2 i additem %tablename% larcht_pct 2 2 i additem %tablename% birch_pct 2 2 i additem %tablename% poplar_pct 2 2 i additem %tablename% tot_conifer 2 2 i additem %tablename% tot_decid 2 2 i additem %tablename% uaspen_pct 2 2 i additem %tablename% utruefir_pct 2 2 i additem %tablename% uspruce_pct 2 2 i additem %tablename% uspruceb_pct 2 2 i additem %tablename% upine_pct 2 2 i additem %tablename% uwhitelmb_pct 2 2 i additem %tablename% udougfir_pct 2 2 i additem %tablename% ularcha_pct 2 2 i additem %tablename% ularcht_pct 2 2 i additem %tablename% ubirch_pct 2 2 i additem %tablename% upoplar_pct 2 2 i additem %tablename% utot_conifer 2 2 i additem %tablename% utot_decid 2 2 i additem %tablename% covercat 15 15 c additem %tablename% fc_nostr 40 40 c additem %tablename% fc_h_str 40 40 c additem %tablename% fc_m_str 40 40 c additem %tablename% ugrass 30 30 c additem %tablename% fc_dom 40 40 c additem %tablename% fc_subdom 40 40 c additem %tablename% fc_complex 85 85 c quit &return /*=========================================================================== &routine OCALCFIELDS /*=========================================================================== /* Populating overstory fields added in routine ADDFIELDS. tables select %tablename% /****************************** /* Calculating ASPEN percentage
  • 14. Alberta Forest Cover Classification Procedure 14 /****************************** calc aspen_pct = 0 reselect sp1 = 'A' or sp1 = 'Aw' calc aspen_pct = sp1_per nselect reselect sp2 = 'A' or sp2 = 'Aw' calc aspen_pct = aspen_pct + sp2_per nselect reselect sp3 = 'A' or sp3 = 'Aw' calc aspen_pct = aspen_pct + sp3_per nselect reselect sp4 = 'A' or sp4 = 'Aw' calc aspen_pct = aspen_pct + sp4_per nselect reselect sp5 = 'A' or sp5 = 'Aw' calc aspen_pct = aspen_pct + sp5_per reselect nselect /********************************** /* Calculating TRUE FIR percentage. /********************************** calc truefir_pct = 0 reselect sp1 = 'Fb' or sp1 = 'Fa' calc truefir_pct = sp1_per nselect reselect sp2 = 'Fb' or sp2 = 'Fa' calc truefir_pct = truefir_pct + sp2_per nselect reselect sp3 = 'Fb' or sp3 = 'Fa' calc truefir_pct = truefir_pct + sp3_per nselect reselect sp4 = 'Fb' or sp4 = 'Fa' calc truefir_pct = truefir_pct + sp4_per nselect reselect sp5 = 'Fb' or sp5 = 'Fa' calc truefir_pct = truefir_pct + sp5_per reselect nselect /******************************** /* Calculating SPRUCE percentage. /******************************** calc spruce_pct = 0 reselect sp1 = 'Sw' or sp1 = 'Se' calc spruce_pct = sp1_per nselect reselect sp2 = 'Sw' or sp2 = 'Se' calc spruce_pct = spruce_pct + sp2_per nselect reselect sp3 = 'Sw' or sp3 = 'Se' calc spruce_pct = spruce_pct + sp3_per nselect reselect sp4 = 'Sw' or sp4 = 'Se' calc spruce_pct = spruce_pct + sp4_per nselect reselect sp5 = 'Sw' or sp5 = 'Se' calc spruce_pct = spruce_pct + sp5_per reselect nselect /************************************** /* Calculating BLACK SPRUCE percentage.
  • 15. Alberta Forest Cover Classification Procedure 15 /************************************** calc spruceb_pct = 0 reselect sp1 = 'Sb' calc spruceb_pct = sp1_per nselect reselect sp2 = 'Sb' calc spruceb_pct = spruceb_pct + sp2_per nselect reselect sp3 = 'Sb' calc spruceb_pct = spruceb_pct + sp3_per nselect reselect sp4 = 'Sb' calc spruceb_pct = spruceb_pct + sp4_per nselect reselect sp5 = 'Sb' calc spruceb_pct = spruceb_pct + sp5_per reselect nselect /********************************************* /* Calculating LODGEPOLE/JACK PINE percentage. /********************************************* calc pine_pct = 0 reselect sp1 = 'P' or sp1 = 'Pl' or sp1 = 'Pj' calc pine_pct = sp1_per nselect reselect sp2 = 'P' or sp2 = 'Pl' or sp2 = 'Pj' calc pine_pct = pine_pct + sp2_per nselect reselect sp3 = 'P' or sp3 = 'Pl' or sp3 = 'Pj' calc pine_pct = pine_pct + sp3_per nselect reselect sp4 = 'P' or sp4 = 'Pl' or sp4 = 'Pj' calc pine_pct = pine_pct + sp4_per nselect reselect sp5 = 'P' or sp5 = 'Pl' or sp5 = 'Pj' calc pine_pct = pine_pct + sp5_per reselect nselect /************************************************* /* Calculating WHITEBARK / LIMBER PINE percentage. /************************************************* calc whitelimb_pct = 0 reselect sp1 = 'Pa' or sp1 = 'Pf' calc whitelimb_pct = sp1_per nselect reselect sp2 = 'Pa' or sp2 = 'Pf' calc whitelimb_pct = whitelimb_pct + sp2_per nselect reselect sp3 = 'Pa' or sp3 = 'Pf' calc whitelimb_pct = whitelimb_pct + sp3_per nselect reselect sp4 = 'Pa' or sp4 = 'Pf' calc whitelimb_pct = whitelimb_pct + sp4_per nselect reselect sp5 = 'Pa' or sp5 = 'Pf' calc whitelimb_pct = whitelimb_pct + sp5_per reselect nselect /************************************ /* Calculating DOUGLAS FIR percentage
  • 16. Alberta Forest Cover Classification Procedure 16 /************************************ calc dougfir_pct = 0 reselect sp1 = 'Fd' calc dougfir_pct = sp1_per nselect reselect sp2 = 'Fd' calc dougfir_pct = dougfir_pct + sp2_per nselect reselect sp3 = 'Fd' calc dougfir_pct = dougfir_pct + sp3_per nselect reselect sp4 = 'Fd' calc dougfir_pct = dougfir_pct + sp4_per nselect reselect sp5 = 'Fd' calc dougfir_pct = dougfir_pct + sp5_per reselect nselect /************************************************* /* Calculating SUBALPINE/WESTERN LARCH percentage. /************************************************* calc larcha_pct = 0 reselect sp1 = 'La' or sp1 = 'Lw' calc larcha_PCT = sp1_per nselect reselect sp2 = 'La' or sp2 = 'Lw' calc larcha_PCT = larcha_PCT + sp2_per nselect reselect sp3 = 'La' or sp3 = 'Lw' calc larcha_PCT = larcha_PCT + sp3_per nselect reselect sp4 = 'La' or sp4 = 'Lw' calc larcha_PCT = larcha_PCT + sp4_per nselect reselect sp5 = 'La' or sp5 = 'Lw' calc larcha_PCT = larcha_PCT + sp5_per reselect nselect /**************************************** /* Calculating LARCH TAMARACK percentage. /**************************************** calc larcht_pct = 0 reselect sp1 = 'Lt' calc larcht_PCT = sp1_per nselect reselect sp2 = 'Lt' calc larcht_PCT = larcht_PCT + sp2_per nselect reselect sp3 = 'Lt' calc larcht_PCT = larcht_PCT + sp3_per nselect reselect sp4 = 'Lt' calc larcht_PCT = larcht_PCT + sp4_per nselect reselect sp5 = 'Lt' calc larcht_PCT = larcht_PCT + sp5_per reselect nselect /****************************** /* Calculating BIRCH percentage
  • 17. Alberta Forest Cover Classification Procedure 17 /****************************** calc birch_pct = 0 reselect sp1 = 'Bw' calc birch_pct = sp1_per nselect reselect sp2 = 'Bw' calc birch_pct = birch_pct + sp2_per nselect reselect sp3 = 'Bw' calc birch_pct = birch_pct + sp3_per nselect reselect sp4 = 'Bw' calc birch_pct = birch_pct + sp4_per nselect reselect sp5 = 'Bw' calc birch_pct = birch_pct + sp5_per reselect nselect /****************************** /* Calculating POPLAR percentage /****************************** calc poplar_pct = 0 reselect sp1 = 'Pb' calc poplar_pct = sp1_per nselect reselect sp2 = 'Pb' calc poplar_pct = poplar_pct + sp2_per nselect reselect sp3 = 'Pb' calc poplar_pct = poplar_pct + sp3_per nselect reselect sp4 = 'Pb' calc poplar_pct = poplar_pct + sp4_per nselect reselect sp5 = 'Pb' calc poplar_pct = poplar_pct + sp5_per reselect nselect /************************************************ /* Calculating TOTAL OVERSTORY CONIFER percentage /************************************************ calc tot_conifer = 0 calc tot_conifer = spruce_pct + pine_pct + truefir_pct + dougfir_pct + larcha_PCT + whitelimb_pct + spruceb_pct + larcht_pct /************************************************** /* Calculating TOTAL OVERSTORY DECIDUOUS percentage /************************************************** calc tot_decid = 0 calc tot_decid = poplar_pct + aspen_pct + birch_pct quit &return /*======================================================================== &routine UCALCFIELDS /*======================================================================== /* Populating understory fields added in routine ADDFIELDS. tables
  • 18. Alberta Forest Cover Classification Procedure 18 select %tablename% /****************************** /* Calculating ASPEN percentage /****************************** calc uaspen_pct = 0 reselect usp1 = 'A' or usp1 = 'Aw' calc uaspen_pct = usp1_per nselect reselect usp2 = 'A' or usp2 = 'Aw' calc uaspen_pct = uaspen_pct + usp2_per nselect reselect usp3 = 'A' or usp3 = 'Aw' calc uaspen_pct = uaspen_pct + usp3_per nselect reselect usp4 = 'A' or usp4 = 'Aw' calc uaspen_pct = uaspen_pct + usp4_per nselect reselect usp5 = 'A' or usp5 = 'Aw' calc uaspen_pct = uaspen_pct + usp5_per reselect nselect /********************************** /* Calculating TRUE FIR percentage. /********************************** calc utruefir_pct = 0 reselect usp1 = 'Fb' or usp1 = 'Fa' calc utruefir_pct = usp1_per nselect reselect usp2 = 'Fb' or usp2 = 'Fa' calc utruefir_pct = utruefir_pct + usp2_per nselect reselect usp3 = 'Fb' or usp3 = 'Fa' calc utruefir_pct = utruefir_pct + usp3_per nselect reselect usp4 = 'Fb' or usp4 = 'Fa' calc utruefir_pct = utruefir_pct + usp4_per nselect reselect usp5 = 'Fb' or usp5 = 'Fa' calc utruefir_pct = utruefir_pct + usp5_per reselect nselect /************************************************ /* Calculating WHITE/ENGELMANN SPRUCE percentage. /************************************************ calc uspruce_pct = 0 reselect usp1 = 'Sw' or usp1 = 'Se' calc uspruce_pct = usp1_per nselect reselect usp2 = 'Sw' or usp2 = 'Se' calc uspruce_pct = uspruce_pct + usp2_per nselect reselect usp3 = 'Sw' or usp3 = 'Se' calc uspruce_pct = uspruce_pct + usp3_per nselect reselect usp4 = 'Sw' or usp4 = 'Se' calc uspruce_pct = uspruce_pct + usp4_per nselect reselect usp5 = 'Sw' or usp5 = 'Se' calc uspruce_pct = uspruce_pct + usp5_per reselect
  • 19. Alberta Forest Cover Classification Procedure 19 nselect /************************************** /* Calculating BLACK SPRUCE percentage. /************************************** calc uspruceb_pct = 0 reselect usp1 = 'Sb' calc uspruceb_pct = usp1_per nselect reselect usp2 = 'Sb' calc uspruceb_pct = uspruceb_pct + usp2_per nselect reselect usp3 = 'Sb' calc uspruceb_pct = uspruceb_pct + usp3_per nselect reselect usp4 = 'Sb' calc uspruceb_pct = uspruceb_pct + usp4_per nselect reselect usp5 = 'Sb' calc uspruceb_pct = uspruceb_pct + usp5_per reselect nselect /********************************************* /* Calculating LODGEPOLE/JACK PINE percentage. /********************************************* calc upine_pct = 0 reselect usp1 = 'P' or usp1 = 'Pl' or usp1 = 'Pj' calc upine_pct = usp1_per nselect reselect usp2 = 'P' or usp2 = 'Pl' or usp2 = 'Pj' calc upine_pct = upine_pct + usp2_per nselect reselect usp3 = 'P' or usp3 = 'Pl' or usp3 = 'Pj' calc upine_pct = upine_pct + usp3_per nselect reselect usp4 = 'P' or usp4 = 'Pl' or usp4 = 'Pj' calc upine_pct = upine_pct + usp4_per nselect reselect usp5 = 'P' or usp5 = 'Pl' or usp5 = 'Pj' calc upine_pct = upine_pct + usp5_per reselect nselect /************************************************* /* Calculating WHITEBARK / LIMBER PINE percentage. /************************************************* calc uwhitelmb_pct = 0 reselect usp1 = 'Pa' or usp1 = 'Pf' calc uwhitelmb_pct = usp1_per nselect reselect usp2 = 'Pa' or usp2 = 'Pf' calc uwhitelmb_pct = uwhitelmb_pct + usp2_per nselect reselect usp3 = 'Pa' or usp3 = 'Pf' calc uwhitelmb_pct = uwhitelmb_pct + usp3_per nselect reselect usp4 = 'Pa' or usp4 = 'Pf' calc uwhitelmb_pct = uwhitelmb_pct + usp4_per nselect reselect usp5 = 'Pa' or usp5 = 'Pf' calc uwhitelmb_pct = uwhitelmb_pct + usp5_per reselect
  • 20. Alberta Forest Cover Classification Procedure 20 nselect /************************************ /* Calculating DOUGLAS FIR percentage /************************************ calc udougfir_pct = 0 reselect usp1 = 'Fd' calc udougfir_pct = usp1_per nselect reselect usp2 = 'Fd' calc udougfir_pct = udougfir_pct + usp2_per nselect reselect usp3 = 'Fd' calc udougfir_pct = udougfir_pct + usp3_per nselect reselect usp4 = 'Fd' calc udougfir_pct = udougfir_pct + usp4_per nselect reselect usp5 = 'Fd' calc udougfir_pct = udougfir_pct + usp5_per reselect nselect /***************************************** /* Calculating SUBALPINE LARCH percentage. /***************************************** calc ularcha_PCT = 0 reselect usp1 = 'La' or usp1 = 'Lw' calc ularcha_PCT = usp1_per nselect reselect usp2 = 'La' or usp2 = 'Lw' calc ularcha_PCT = ularcha_PCT + usp2_per nselect reselect usp3 = 'La' or usp3 = 'Lw' calc ularcha_PCT = ularcha_PCT + usp3_per nselect reselect usp4 = 'La' or usp4 = 'Lw' calc ularcha_PCT = ularcha_PCT + usp4_per nselect reselect usp5 = 'La' or usp5 = 'Lw' calc ularcha_PCT = ularcha_PCT + usp5_per reselect nselect /***************************************** /* Calculating LARCH TAMARACK percentage. /***************************************** calc ularcht_PCT = 0 reselect usp1 = 'Lt' calc ularcht_PCT = usp1_per nselect reselect usp2 = 'Lt' calc ularcht_PCT = ularcht_PCT + usp2_per nselect reselect usp3 = 'Lt' calc ularcht_PCT = ularcht_PCT + usp3_per nselect reselect usp4 = 'Lt' calc ularcht_PCT = ularcht_PCT + usp4_per nselect reselect usp5 = 'Lt' calc ularcht_PCT = ularcht_PCT + usp5_per reselect
  • 21. Alberta Forest Cover Classification Procedure 21 nselect /****************************** /* Calculating BIRCH percentage /****************************** calc ubirch_pct = 0 reselect usp1 = 'Bw' calc ubirch_pct = usp1_per nselect reselect usp2 = 'Bw' calc ubirch_pct = ubirch_pct + usp2_per nselect reselect usp3 = 'Bw' calc ubirch_pct = ubirch_pct + usp3_per nselect reselect usp4 = 'Bw' calc ubirch_pct = ubirch_pct + usp4_per nselect reselect usp5 = 'Bw' calc ubirch_pct = ubirch_pct + usp5_per reselect nselect /****************************** /* Calculating POPLAR percentage /****************************** calc upoplar_pct = 0 reselect usp1 = 'Pb' calc upoplar_pct = usp1_per nselect reselect usp2 = 'Pb' calc upoplar_pct = upoplar_pct + usp2_per nselect reselect usp3 = 'Pb' calc upoplar_pct = upoplar_pct + usp3_per nselect reselect usp4 = 'Pb' calc upoplar_pct = upoplar_pct + usp4_per nselect reselect usp5 = 'Pb' calc upoplar_pct = upoplar_pct + usp5_per reselect nselect /************************************************ /* Calculating TOTAL UNDERSTORY CONIFER percentage /************************************************ calc utot_conifer = 0 calc utot_conifer = uspruce_pct + uspruceb_pct + upine_pct + utruefir_pct + udougfir_pct + ularcha_PCT + ularcht_pct + uwhitelmb_pct /*************************************************** /* Calculating TOTAL UNDERSTORY DECIDUOUS percentage /*************************************************** calc utot_decid = 0 calc utot_decid = upoplar_pct + uaspen_pct + ubirch_pct quit &return /*=====================================================================
  • 22. Alberta Forest Cover Classification Procedure 22 &routine CLASSFIELDS /*===================================================================== /* Calculates forest cover classification fields. /* Calculating COVERCAT field &setvar uptablename [upcase %tablename%] &data arc INFO ARC SELECT %uptablename% CONCATENATE COVERCAT FROM SP1,SP1_PER,SP2,SP2_PER,SP3,SP3_PER,SP4,SP4_PER,SP5,SP5_PER Q STOP &end &call NO_STRUCTURE &call HORZ_STRUCTURE &call MULTISTOREY &call UGRASS /* Calculating DOMINANT FORESTCOVER (FC_DOM) field. tables select %tablename% calc fc_dom = '' calc fc_subdom = '' calc fc_complex = '' calc fc_dom = fc_nostr reselect fc_h_str ne '' calc fc_dom = fc_h_str nsel reselect fc_m_str ne '' calc fc_dom = fc_m_str /* Calculating SUB-DOMINANT FORESTCOVER (FC_SUBDOM) field. resel nsel reselect fc_h_str ne '' and fc_nostr ne fc_dom calc fc_subdom = fc_nostr nsel reselect fc_m_str ne '' and fc_nostr ne fc_dom calc fc_subdom = fc_nostr resel nsel reselect ugrass ne '' reselect ugrass ne fc_dom calc fc_subdom = ugrass quit /***************************************************** /* Calculating COMPLEX FORESTCOVER (FC_COMPLEX) field. /***************************************************** &data arc INFO ARC SELECT %uptablename% RESELECT FC_SUBDOM NE '' CONCATENATE FC_COMPLEX FROM FC_DOM +,'/ ',FC_SUBDOM NSEL CONCATENATE FC_COMPLEX FROM FC_DOM Q STOP &end
  • 23. Alberta Forest Cover Classification Procedure 23 &return /*===================================================================== &routine NO_STRUCTURE /*===================================================================== /* Calculates Forest Cover Conditionals with NO Structure tables select %tablename% calc fc_nostr = '' /************************* /* 1.PINE (lodgepole/jack) /************************* reselect ( pine_pct ge 9 and larcha_PCT = 0 and larcht_pct = 0 ) calc fc_nostr = 'Pine' resel nsel reselect pine_pct >= 5 reselect tot_decid < 2 reselect pine_pct > spruce_pct reselect pine_pct > spruceb_pct reselect pine_pct > truefir_pct reselect pine_pct > dougfir_pct reselect larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'Pine (Lodgepole/Jack)' commit /*************************** /* 2. WHITE/ENGELMANN SPRUCE /*************************** reselect spruce_pct ge 9 calc fc_nostr = 'White/Engelmann Spruce' resel nsel reselect spruce_pct >= 5 reselect tot_decid < 2 reselect spruce_pct >= pine_pct reselect spruce_pct > truefir_pct reselect spruce_pct > dougfir_pct reselect spruce_pct >= spruceb_pct reselect larcha_PCT = 0 and larcht_pct = 0 reselect not ( spruce_pct = 5 and truefir_pct = 5 ) calc fc_nostr = 'White/Engelmann Spruce' commit /****************** /* 2a. BLACK SPRUCE /****************** reselect spruceb_pct >= 9 calc fc_nostr = 'Black Spruce' resel nsel reselect spruceb_pct >= 5 reselect tot_decid < 2
  • 24. Alberta Forest Cover Classification Procedure 24 reselect spruceb_pct >= pine_pct reselect spruceb_pct > truefir_pct reselect spruceb_pct > dougfir_pct reselect spruceb_pct >= spruce_pct reselect larcha_pct = 0 and larcht_pct = 0 reselect not ( spruceb_pct = 5 and truefir_pct = 5 ) reselect not ( spruceb_pct = 5 and spruce_pct = 5 ) calc fc_nostr = 'Black Spruce' /* This class was added March 12, 2002 /****************** /* 3. SUBALPINE FIR /****************** reselect truefir_pct >= 9 and larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'True Fir' resel nsel reselect truefir_pct >= 5 reselect tot_decid < 2 reselect truefir_pct >= pine_pct reselect truefir_pct >= spruce_pct reselect truefir_pct >= spruceb_pct reselect truefir_pct > dougfir_pct reselect larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'True Fir' resel nsel reselect ( truefir_pct = 5 and pine_pct = 5 ) or ( truefir_pct = 5 and spruce_pct = 5 ) or ( truefir_pct = 5 and spruceb_pct = 5 ) calc fc_nostr = 'True Fir' commit /**************** /* 4. DOUGLAS FIR /**************** reselect dougfir_pct >= 9 and larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'Douglas Fir' resel nsel reselect dougfir_pct >= 5 reselect tot_decid < 2 reselect dougfir_pct >= pine_pct reselect dougfir_pct >= spruce_pct reselect dougfir_pct >= spruceb_pct reselect dougfir_pct > truefir_pct reselect larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'Douglas Fir' resel nsel reselect ( dougfir_pct = 5 and pine_pct = 5 ) or ( dougfir_pct = 5 and spruce_pct = 5 ) calc fc_nostr = 'Douglas Fir' resel nsel reselect ( dougfir_pct = 5 and truefir_pct = 5 ) or ( dougfir_pct = 5 and spruceb_pct = 5 )
  • 25. Alberta Forest Cover Classification Procedure 25 calc fc_nostr = 'Douglas Fir' /* This case added November 13, 2001. commit /********************* /* 5. SUBALPINE LARCH /********************* reselect larcha_PCT >= 9 calc fc_nostr = 'Subalpine/Western Larch' resel nsel reselect larcha_PCT >= 5 reselect tot_decid < 2 reselect larcha_PCT >= pine_pct reselect larcha_PCT >= spruce_pct reselect larcha_pct >= spruceb_pct reselect larcha_PCT >= truefir_pct reselect larcha_PCT >= dougfir_pct calc fc_nostr = 'Subalpine/Western Larch' commit /******************** /* 5a. LARCH TAMARACK /******************** reselect larcht_pct >= 9 calc fc_nostr = 'Larch Tamarack' resel nsel reselect larcht_pct >= 5 reselect tot_decid < 2 reselect larcht_pct >= pine_pct reselect larcht_pct >= spruce_pct reselect larcht_pct >= spruceb_pct reselect larcht_pct >= truefir_pct reselect larcht_pct >= dougfir_pct calc fc_nostr = 'Larch Tamarack' commit /* Class added March 12, 2002 /************************* /* 6.WHITEBARK/LIMBER PINE /************************* reselect ( sp1 = 'Pa' or sp1 = 'Pf' ) and ( sp1_per >= 5 ) calc fc_nostr = 'Whitebark/Limber Pine' resel nsel reselect ( sp2 = 'Pa' or sp2 = 'Pf' ) reselect sp2_per >= 5 reselect tot_decid < 2 reselect larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'Whitebark/Limber Pine' commit /********** /* 7. ASPEN /**********
  • 26. Alberta Forest Cover Classification Procedure 26 reselect aspen_pct >= 4 reselect tot_conifer <= 4 reselect aspen_pct > poplar_pct reselect aspen_pct > birch_pct calc fc_nostr = 'Aspen' commit /****************** /* 8. BALSAM POPLAR /****************** reselect poplar_pct >= 5 reselect tot_conifer < 2 calc fc_nostr = 'Balsam Poplar' commit /******* /* BIRCH /******* reselect birch_pct >= 5 reselect tot_conifer < 2 calc fc_nostr = 'Birch' /******************** /* 9. ASPEN MIXEDWOOD /******************** reselect aspen_pct >= 4 reselect tot_conifer >= 2 and tot_conifer <= 4 reselect aspen_pct > poplar_pct reselect aspen_pct > birch_pct reselect larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'Aspen Mixedwood' resel nsel reselect aspen_pct <= 8 reselect tot_decid > tot_conifer reselect aspen_pct >= poplar_pct reselect aspen_pct >= birch_pct reselect tot_conifer > 1 calc fc_nostr = 'Aspen Mixedwood' /* Condition added March 12, 2002 commit /***************************** /* 10. BALSAM POPLAR MIXEDWOOD /***************************** reselect poplar_pct > 5 reselect tot_conifer >= 2 and tot_conifer <= 4 reselect aspen_pct <= poplar_pct reselect birch_pct < poplar_pct calc fc_nostr = 'Balsam Poplar Mixedwood' resel nsel reselect poplar_pct <= 8 and poplar_pct >= 1 reselect tot_decid > tot_conifer reselect aspen_pct <= poplar_pct reselect birch_pct < poplar_pct reselect tot_conifer > 1 calc fc_nostr = 'Balsam Poplar Mixedwood'
  • 27. Alberta Forest Cover Classification Procedure 27 commit /********************** /* 10a. BIRCH MIXEDWOOD /********************** reselect birch_pct >= 4 reselect tot_conifer >= 2 and tot_conifer <= 4 reselect aspen_pct <= birch_pct reselect poplar_pct <= birch_pct calc fc_nostr = 'Birch Mixedwood' resel nsel reselect birch_pct <= 8 and birch_pct >= 1 reselect tot_decid > tot_conifer reselect aspen_pct <= birch_pct reselect poplar_pct <= birch_pct reselect tot_conifer > 1 calc fc_nostr = 'Birch Mixedwood' commit /* Class added March 12, 2002 /************************************* /* 11. PINE (LODGEPOLE/JACK) MIXEDWOOD /************************************* reselect tot_decid <= tot_conifer reselect tot_decid >= 2 reselect pine_pct > spruce_pct reselect pine_pct > spruceb_pct reselect pine_pct > truefir_pct reselect pine_pct > dougfir_pct reselect tot_conifer >= 3 calc fc_nostr = 'Pine (Lodgepole/Jack) Mixedwood' commit /************************************** /* 12. WHITE/ENGELMANN SPRUCE MIXEDWOOD /************************************** reselect tot_decid <= tot_conifer reselect spruce_pct >= pine_pct reselect spruce_pct > truefir_pct reselect spruce_pct > dougfir_pct reselect spruce_pct >= spruceb_pct reselect tot_conifer >= 3 reselect tot_decid >= 2 calc fc_nostr = 'White/Engelmann Spruce Mixedwood' commit /***************************** /* 12a. BLACK SPRUCE MIXEDWOOD /***************************** reselect tot_decid <= tot_conifer reselect spruceb_pct >= pine_pct reselect spruceb_pct > truefir_pct reselect spruceb_pct > dougfir_pct reselect spruceb_pct > spruce_pct reselect spruceb_pct > larcha_pct reselect spruceb_pct > larcht_pct reselect tot_conifer >= 3
  • 28. Alberta Forest Cover Classification Procedure 28 reselect tot_decid >= 2 calc fc_nostr = 'Black Spruce Mixedwood' commit /* This class added March 12, 2002 /******************************* /* 12b. LARCH TAMARACK MIXEDWOOD /******************************* reselect tot_decid <= tot_conifer reselect larcht_pct >= pine_pct reselect larcht_pct > truefir_pct reselect larcht_pct > dougfir_pct reselect larcht_pct > spruce_pct reselect larcht_pct >= spruceb_pct reselect tot_conifer >= 3 reselect tot_decid >= 2 calc fc_nostr = 'Larch Tamarack Mixedwood' commit /* This class added March 12, 2002 /************************ /* 13. TRUE FIR MIXEDWOOD /************************ reselect tot_decid <= tot_conifer reselect truefir_pct > dougfir_pct reselect truefir_pct >= spruce_pct reselect truefir_pct >= spruceb_pct reselect truefir_pct > larcha_PCT reselect truefir_pct > larcht_pct reselect truefir_pct >= 1 reselect tot_conifer >= 3 reselect tot_decid >= 2 calc fc_nostr = 'True Fir Mixedwood' commit /*************************** /* 14. DOUGLAS FIR MIXEDWOOD /*************************** reselect tot_decid <= tot_conifer reselect dougfir_pct >= pine_pct reselect dougfir_pct > truefir_pct reselect dougfir_pct >= spruce_pct reselect dougfir_pct >= spruceb_pct reselect tot_conifer >= 3 reselect tot_decid >= 2 calc fc_nostr = 'Douglas Fir Mixedwood' commit /***************************************** /* 15. MIXED CONIFER (LODGEPOLE/JACK PINE) /***************************************** reselect tot_decid <= 1 reselect pine_pct > dougfir_pct reselect pine_pct > truefir_pct reselect pine_pct > spruce_pct reselect pine_pct > spruceb_pct reselect larcha_PCT = 0 and larcht_pct = 0 reselect pine_pct <= 4 and pine_pct >= 1 calc fc_nostr = 'Mixed Conifer (Pine - Lodgepole/Jack)'
  • 29. Alberta Forest Cover Classification Procedure 29 commit /******************************************** /* 16. MIXED CONIFER (WHITE/ENGELMANN SPRUCE) /******************************************** reselect tot_decid <= 1 reselect spruce_pct > dougfir_pct reselect spruce_pct > truefir_pct reselect spruce_pct >= pine_pct reselect spruce_pct >= spruceb_pct reselect larcha_PCT = 0 and larcht_pct = 0 reselect spruce_pct <= 4 and spruce_pct >= 1 calc fc_nostr = 'Mixed Conifer (White/Engelmann Spruce)' commit /*********************************** /* 16a. MIXED CONIFER (BLACK SPRUCE) /*********************************** reselect tot_decid <= 1 reselect spruceb_pct > dougfir_pct reselect spruceb_pct > truefir_pct reselect spruceb_pct >= pine_pct reselect spruceb_pct > spruce_pct reselect larcha_pct = 0 and larcht_pct = 0 reselect spruceb_pct <= 4 and spruceb_pct >= 1 calc fc_nostr = 'Mixed Conifer (Black Spruce)' commit /* Class added March 12, 2002 /****************************** /* 17. MIXED CONIFER (TRUE FIR) /****************************** reselect tot_decid <= 1 reselect truefir_pct > dougfir_pct reselect truefir_pct >= spruce_pct reselect truefir_pct >= spruceb_pct reselect truefir_pct >= pine_pct reselect larcha_PCT = 0 and larcht_pct = 0 reselect truefir_pct <= 4 and truefir_pct >= 1 calc fc_nostr = 'Mixed Conifer (True Fir)' commit /********************************* /* 18. MIXED CONIFER (DOUGLAS FIR) /********************************* reselect tot_decid <= 1 reselect dougfir_pct >= truefir_pct reselect dougfir_pct >= spruce_pct reselect dougfir_pct >= spruceb_pct reselect dougfir_pct >= pine_pct reselect larcha_PCT = 0 and larcht_pct = 0 reselect dougfir_pct <= 4 and dougfir_pct >= 1 calc fc_nostr = 'Mixed Conifer (Douglas Fir)' /* November 13, 2001: modified tot_decid = 0 to tot_decid <= 1 commit /*******************************************
  • 30. Alberta Forest Cover Classification Procedure 30 /* 19. MIXED CONIFER (WHITEBARK/LIMBER PINE) /******************************************* reselect tot_decid <= 1 reselect ( covercat cn 'Pa' or covercat cn 'Pf' ) reselect fc_nostr <> 'Whitebark/Limber Pine' reselect whitelimb_pct <= 4 and whitelimb_pct >= 1 reselect whitelimb_pct >= larcha_PCT reselect whitelimb_pct >= larcht_pct reselect whitelimb_pct >= dougfir_pct reselect whitelimb_pct >= truefir_pct reselect whitelimb_pct >= pine_pct reselect whitelimb_pct >= spruce_pct reselect whitelimb_pct >= spruceb_pct reselect larcha_PCT = 0 and larcht_pct = 0 calc fc_nostr = 'Mixed Conifer (Whitebark/Limber Pine)' commit /********************************************* /* 20. MIXED CONIFER (SUBALPINE/WESTERN LARCH) /********************************************* reselect tot_decid <= 1 reselect larcha_PCT < 5 reselect larcha_PCT > 0 calc fc_nostr = 'Mixed Conifer (Subalpine/Western Larch)' commit /************************************* /* 20a. MIXED CONIFER (LARCH TAMARACK) /************************************* reselect tot_decid <= 1 reselect larcht_pct < 5 reselect larcht_pct > 0 calc fc_nostr = 'Mixed Conifer (Larch Tamarack)' commit /* class added March 12, 2002 /******************** /* 21. SPRUCE WETLAND /******************** /* reselect fc_nostr cn 'Spruce' /* reselect ( moist_reg = 'a' or moist_reg = 'w' ) /* calc fc_nostr = 'Spruce Wetland' /*commit /* Class removed March 12, 2002 /*************************** /* 21a. BLACK SPRUCE WETLAND /*************************** /*reselect fc_nostr cn 'Spruce' reselect ( moist_reg = 'a' or moist_reg = 'w' ) reselect larcha_pct = 0 and larcht_pct = 0 reselect ularcha_pct = 0 and ularcht_pct = 0 reselect tot_decid <= 2 reselect aspen_pct = 0 reselect poplar_pct <= 1 reselect birch_pct <= 2 reselect truefir_pct = 0 reselect pine_pct <= 2 reselect spruce_pct = 0
  • 31. Alberta Forest Cover Classification Procedure 31 reselect spruceb_pct > 0 calc fc_nostr = 'Black Spruce Wetland' commit /* Class added March 12, 2002 /* No larch presence allowed /* No White spruce presence allowed /* No aspen presence allowed /* Minimal deciduous presence tolerated /* No fir presence allowed /*************************** /* 21b. WHITE SPRUCE WETLAND /*************************** /*reselect fc_nostr cn 'Spruce' reselect ( moist_reg = 'a' or moist_reg = 'w' ) reselect larcha_pct < 5 and larcht_pct < 5 reselect tot_decid <= 2 reselect aspen_pct = 0 reselect poplar_pct <= 1 reselect birch_pct <= 2 reselect truefir_pct = 0 reselect pine_pct <= 2 reselect spruce_pct >= 2 reselect fc_nostr <> 'Black Spruce Wetland' calc fc_nostr = 'White Spruce Wetland' commit /* Class added March 12, 2002 /* Presence of Sw in a spruce wetland will make it a white spruce wetland. /* No aspen allowed /* Minimal deciduous presence tolerated /****************************************** /* 21c. BLACK SPRUCE/LARCH TAMARACK WETLAND /****************************************** /*reselect fc_nostr cn 'Spruce' reselect ( moist_reg = 'a' or moist_reg = 'w' ) reselect larcha_pct >= 1 or larcht_pct >= 1 reselect larcht_pct < 8 reselect spruceb_pct >= 1 reselect tot_decid <= 2 reselect aspen_pct = 0 reselect poplar_pct <= 1 reselect birch_pct <= 2 reselect truefir_pct = 0 reselect pine_pct <= 2 calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland' resel nsel reselect ( moist_reg = 'a' or moist_reg = 'w' ) reselect larcha_pct > 0 or larcht_pct > 0 or ularcha_pct > 0 or ularcht_pct > 0 reselect tot_decid <= 2 reselect aspen_pct = 0 reselect poplar_pct <= 1 reselect birch_pct <= 2 reselect truefir_pct = 0 reselect pine_pct <= 2 reselect spruceb_pct > 0 calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland'
  • 32. Alberta Forest Cover Classification Procedure 32 resel nsel reselect fc_nostr cn 'Larch' reselect ( moist_reg = 'a' or moist_reg = 'w' ) reselect spruceb_pct >= 3 or uspruceb_pct >= 5 reselect tot_decid <= 2 reselect aspen_pct = 0 reselect poplar_pct <= 1 reselect birch_pct <= 2 reselect pine_pct <= 2 reselect truefir_pct = 0 calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland' commit /* Class added March 12, 2002 /* Presence of Lt in a spruce wetland will make it a spruce/Lt wetland /* No aspen allowed /* Minimal deciduous component tolerated /***************************** /* 21d. LARCH TAMARACK WETLAND /***************************** reselect larcha_pct >= 8 or larcht_pct >= 8 reselect ( moist_reg = 'a' or moist_reg = 'w' ) reselect tot_decid <= 2 reselect aspen_pct = 0 reselect poplar_pct <= 1 reselect birch_pct <= 2 reselect truefir_pct = 0 reselect pine_pct <= 2 reselect uspruceb_pct < 5 reselect spruce_pct < 5 calc fc_nostr = 'Larch Tamarack Wetland' commit /* Class added March 12, 2002 /* Only low percentage of black spruce tolerated. Cannot have an Sb dominant understory. /* No aspen allowed /* Minimal deciduous component tolerated /******************* /* 22. SHRUB WETLAND /******************* reselect ( nfl = 'SC' or nfl = 'SO' ) reselect ( moist_reg = 'a' or moist_reg = 'w' ) calc fc_nostr = 'Shrub Wetland' commit /***************************** /* 23. SHRUB MEADOW OPEN MESIC /***************************** reselect nfl = 'SO' reselect moist_reg = 'm' calc fc_nostr = 'Shrub Meadow Open Mesic' commit /*************************** /* 24. SHRUB MEADOW OPEN DRY /*************************** reselect nfl = 'SO'
  • 33. Alberta Forest Cover Classification Procedure 33 reselect moist_reg = 'd' calc fc_nostr = 'Shrub Meadow Open Dry' commit /******************************* /* 25. SHRUB MEADOW CLOSED MESIC /******************************* reselect nfl = 'SC' reselect moist_reg = 'm' calc fc_nostr = 'Shrub Meadow Closed Mesic' commit /***************************** /* 26. SHRUB MEADOW CLOSED DRY /***************************** reselect nfl = 'SC' reselect moist_reg = 'd' calc fc_nostr = 'Shrub Meadow Closed Dry' commit /****************************** /* 27. ROUGH PASTURE OPEN MESIC /****************************** reselect nfl = 'SO' reselect moist_reg = 'm' reselect anth_veg = 'CPR' calc fc_nostr = 'Rough Pasture Open Mesic' commit /**************************** /* 28. ROUGH PASTURE OPEN DRY /**************************** reselect nfl = 'SO' reselect moist_reg = 'd' reselect anth_veg = 'CPR' calc fc_nostr = 'Rough Pasture Open Dry' commit /******************************** /* 29. ROUGH PASTURE CLOSED MESIC /******************************** reselect nfl = 'SC' reselect moist_reg = 'm' reselect anth_veg = 'CPR' calc fc_nostr = 'Rough Pasture Closed Mesic' commit /****************************** /* 30. ROUGH PASTURE CLOSED DRY /****************************** reselect nfl = 'SC' reselect moist_reg = 'd' reselect anth_veg = 'CPR' calc fc_nostr = 'Rough Pasture Closed Dry' commit
  • 34. Alberta Forest Cover Classification Procedure 34 /******************* /* 31. WET GRAMINOID /******************* reselect nfl = 'HG' reselect ( moist_reg = 'a' or moist_reg = 'w' ) calc fc_nostr = 'Wet Graminoid' commit /****************** /* 32. ANNUAL CROPS /****************** reselect anth_veg = 'CA' calc fc_nostr = 'Annual Crops' commit /**************************** /* 33. PERENNIAL FORAGE CROPS /**************************** reselect anth_veg = 'CP' calc fc_nostr = 'Perennial Forage Crops' commit /********************* /* 34. GRASSLAND MESIC /********************* reselect nfl = 'HG' reselect moist_reg = 'm' reselect mod1 <> 'CL' calc fc_nostr = 'Grassland Mesic' commit /******************* /* 35. GRASSLAND DRY /******************* reselect nfl = 'HG' reselect moist_reg = 'd' reselect mod1 <> 'CL' calc fc_nostr = 'Grassland Dry' commit /******************************* /* 36. GRAVEL PITS/SURFACE MINES /******************************* reselect ( anth_non = 'AIG' or anth_non = 'AIM' ) calc fc_nostr = 'Gravel Pits/Surface Mines' commit /*********************** /* 37. RURAL RESIDENTIAL /*********************** reselect anth_non = 'ASR' calc fc_nostr = 'Rural Residential' commit /********************************* /* 38. HAMLETS, VILLAGES AND TOWNS
  • 35. Alberta Forest Cover Classification Procedure 35 /********************************* reselect anth_non = 'ASC' calc fc_nostr = 'Hamlets, Villages and Towns' commit /****************** /* 39. NON-VEG ROWS /****************** reselect anth_non = 'AIH' calc fc_nostr = 'Non-Veg ROWs' commit /**************** /* 40. FARMSTEADS /**************** reselect anth_non = 'AIF' calc fc_nostr = 'Farmsteads' commit /******************************** /* 41. PLANT SITES/SEWAGE LAGOONS /******************************** reselect anth_non = 'AII' calc fc_nostr = 'Plant Sites/Sewage Lagoons' commit /***************** /* 42. ROCK BARREN /***************** reselect nat_non = 'NMR' calc fc_nostr = 'Rock Barren' commit /****************** /* 43. CUTBANK/SAND /****************** reselect ( nat_non = 'NMC' or nat_non = 'NMS' ) calc fc_nostr = 'Cutbank/Sand' commit /*********** /* 44. RIVER /*********** reselect nat_non = 'NWR' calc fc_nostr = 'River' commit /***************** /* 45. LAKES/PONDS /***************** reselect nat_non = 'NWL' calc fc_nostr = 'Lakes/Ponds' commit
  • 36. Alberta Forest Cover Classification Procedure 36 /************************ /* 46. PERMANENT ICE/SNOW /************************ reselect nat_non = 'NWI' calc fc_nostr = 'Permanent Ice/Snow' commit /************************************** /* 47. INDUSTRIAL RECLAMATION-VEGETATED /************************************** reselect anth_veg = 'CIP' or anth_veg = 'CIW' calc fc_nostr = 'Industrial Reclamation-Vegetated' commit /***************** /* 48. FORB MEADOW /***************** reselect nfl = 'HF' calc fc_nostr = 'Forb Meadow' commit /************* /* 49. FLOODED /************* reselect nat_non = 'NWF' calc fc_nostr = 'Flooded' commit /**************** /* 50. BRYOPHYTIC /**************** reselect nfl = 'BR' calc fc_nostr = 'Bryophytic' commit /*********************** /* 51. FORESTED CLEARCUT /*********************** reselect mod1 = 'CC' reselect mod1_ext <= 4 reselect sp1 <> '' calc fc_nostr = 'Partial Cut/Regenerating Clearcut' commit /************************* /* 52. HERBACEOUS CLEARCUT /************************* reselect mod1 = 'CC' reselect mod1_ext <= 5 reselect nfl <> '' calc fc_nostr = 'Herbaceous Clearcut' commit /********************* /* HERBACEOUS CLEARING /*********************
  • 37. Alberta Forest Cover Classification Procedure 37 reselect nfl = 'HG' reselect moist_reg = 'm' or moist_reg = 'd' reselect mod1 = 'CL' calc fc_nostr = 'Herbaceous Clearing' /* This class added November 13, 2001 commit /************* /* RECENT BURN /************* reselect nat_non = 'NMB' calc fc_nostr = 'Recent Burn' /*commit /* This class added March 14, 2002 quit &return /*===================================================================== &routine HORZ_STRUCTURE /*===================================================================== /* Calculates forest cover classification for stands with horizontal structure /* where the understory call covers > 50% of the polygon and contains tree /* species. tables select %tablename% calc fc_h_str = '' /*************************** /* 53. PINE (LODGEPOLE/JACK) /*************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect upine_pct >= 9 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'Pine (Lodgepole/Jack)' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect upine_pct >= 5 reselect utot_decid < 2 reselect upine_pct > uspruce_pct reselect upine_pct > uspruceb_pct reselect upine_pct > utruefir_pct reselect upine_pct > udougfir_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'Pine (Lodgepole/Jack)' commit /**************************** /* 54. WHITE/ENGELMANN SPRUCE /**************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect uspruce_pct >= 9 calc fc_h_str = 'White/Engelmann Spruce' resel nsel
  • 38. Alberta Forest Cover Classification Procedure 38 reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect uspruce_pct >= 5 reselect utot_decid < 2 reselect uspruce_pct >= upine_pct reselect uspruce_pct >= uspruceb_pct reselect uspruce_pct > utruefir_pct reselect uspruce_pct > udougfir_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect not ( uspruce_pct = 5 and utruefir_pct = 5 ) calc fc_h_str = 'White/Engelmann Spruce' commit /******************* /* 54a. BLACK SPRUCE /******************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect uspruceb_pct >= 9 calc fc_h_str = 'Black Spruce' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect uspruceb_pct >= 5 reselect utot_decid < 2 reselect uspruceb_pct >= upine_pct reselect uspruceb_pct >= utruefir_pct reselect uspruceb_pct >= udougfir_pct reselect uspruceb_pct >= spruce_pct reselect ularcha_pct = 0 and ularcht_pct = 0 calc fc_h_str = 'Black Spruce' commit /* Class added March 12, 2002 /************* /* 55.TRUE FIR /************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utruefir_pct >= 9 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'True Fir' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utruefir_pct >= 5 reselect utot_decid < 2 reselect utruefir_pct >= upine_pct reselect utruefir_pct >= uspruce_pct reselect utruefir_pct >= uspruceb_pct reselect utruefir_pct > udougfir_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'True Fir' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( utruefir_pct = 5 and upine_pct = 5 ) or ( utruefir_pct = 5 and uspruce_pct = 5 ) or ( utruefir_pct = 5 and uspruceb_pct = 5 ) calc fc_h_str = 'True Fir' commit
  • 39. Alberta Forest Cover Classification Procedure 39 /***************** /* 56. DOUGLAS FIR /***************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect udougfir_pct >= 9 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'Douglas Fir' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect udougfir_pct >= 5 reselect utot_decid < 2 reselect udougfir_pct >= upine_pct reselect udougfir_pct >= uspruce_pct reselect udougfir_pct >= uspruceb_pct reselect udougfir_pct > utruefir_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'Douglas Fir' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( udougfir_pct = 5 and upine_pct = 5 ) or ( udougfir_pct = 5 and uspruce_pct = 5 ) or ( udougfir_pct = 5 and uspruceb_pct = 5 ) calc fc_h_str = 'Douglas Fir' commit /***************************** /* 57. SUBALPINE/WESTERN LARCH /***************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ularcha_PCT >= 9 calc fc_h_str = 'Subalpine/Western Larch' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ularcha_PCT >= 5 reselect utot_decid < 2 reselect ularcha_PCT >= upine_pct reselect ularcha_PCT >= uspruce_pct reselect ularcha_pct >= uspruceb_pct reselect ularcha_PCT >= utruefir_pct reselect ularcha_PCT >= udougfir_pct calc fc_h_str = 'Subalpine/Western Larch' commit /********************* /* 57a. LARCH TAMARACK /********************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ularcht_PCT >= 9 calc fc_h_str = 'Larch Tamarack' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ularcht_pct >= 5 reselect utot_decid < 2
  • 40. Alberta Forest Cover Classification Procedure 40 reselect ularcht_pct >= upine_pct reselect ularcht_pct >= uspruce_pct reselect ularcht_pct >= uspruceb_pct reselect ularcht_pct >= utruefir_pct reselect ularcht_pct >= udougfir_pct calc fc_h_str = 'Larch Tamarack' commit /* Class added March 12, 2002 /*************************** /* 58. WHITEBARK/LIMBER PINE /*************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( usp1 = 'Pa' or usp1 = 'Pf' ) reselect usp1_per >= 5 calc fc_h_str = 'Whitebark/Limber Pine' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect usp2 = 'Pa' or usp2 = 'Pf' reselect usp2_per >= 5 reselect utot_decid < 2 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'Whitebark/Limber Pine' commit /*********** /* 59. ASPEN /*********** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect uaspen_pct >= 4 reselect utot_conifer <= 4 reselect uaspen_pct > upoplar_pct reselect uaspen_pct > ubirch_pct calc fc_h_str = 'Aspen' commit /******************* /* 60. BALSAM POPLAR /******************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect upoplar_pct >= 5 reselect utot_conifer < 2 calc fc_h_str = 'Balsam Poplar' commit /************ /* 60a. BIRCH /************ reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ubirch_pct >= 5 reselect utot_conifer < 2 calc fc_h_str = 'Birch' commit /********************* /* 61. ASPEN MIXEDWOOD
  • 41. Alberta Forest Cover Classification Procedure 41 /********************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect uaspen_pct >= 4 reselect utot_conifer >= 2 reselect utot_conifer <= 4 reselect uaspen_pct > upoplar_pct reselect uaspen_pct > ubirch_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_h_str = 'Aspen Mixedwood' commit /***************************** /* 62. BALSAM POPLAR MIXEDWOOD /***************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect upoplar_pct > 5 reselect utot_conifer >= 2 reselect utot_conifer <= 4 reselect uaspen_pct <= upoplar_pct reselect upoplar_pct >= ubirch_pct calc fc_h_str = 'Balsam Poplar Mixedwood' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect upoplar_pct <= 8 reselect utot_decid > utot_conifer reselect uaspen_pct <= upoplar_pct reselect upoplar_pct >= ubirch_pct reselect utot_conifer > 1 calc fc_h_str = 'Balsam Poplar Mixedwood' commit /********************** /* 62a. BIRCH MIXEDWOOD /********************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ubirch_pct > 5 reselect utot_conifer >= 2 reselect utot_conifer <= 4 reselect ubirch_pct >= uaspen_pct reselect ubirch_pct > upoplar_pct calc fc_h_str = 'Birch Mixedwood' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ubirch_pct <= 8 and ubirch_pct >= 1 reselect utot_decid > utot_conifer reselect uaspen_pct <= ubirch_pct reselect ubirch_pct > upoplar_pct reselect utot_conifer > 1 calc fc_nostr = 'Birch Mixedwood' commit /* Class added March 12, 2002 /************************************* /* 63. PINE (LODGEPOLE/JACK) MIXEDWOOD /************************************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''
  • 42. Alberta Forest Cover Classification Procedure 42 reselect utot_decid <= utot_conifer reselect utot_decid >= 2 reselect upine_pct > uspruce_pct reselect upine_pct > uspruceb_pct reselect upine_pct > utruefir_pct reselect upine_pct > udougfir_pct reselect ( upine_pct > ularcha_pct ) and ( upine_pct > ularcht_pct ) reselect utot_conifer >= 3 calc fc_h_str = 'Pine (Lodgepole/Jack) Mixedwood' commit /************************************** /* 64. WHITE/ENGELMANN SPRUCE MIXEDWOOD /************************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= utot_conifer reselect uspruce_pct >= upine_pct reselect uspruce_pct > utruefir_pct reselect uspruce_pct > udougfir_pct reselect uspruce_pct > uspruceb_pct reselect uspruce_pct > ularcha_pct reselect uspruce_pct > ularcht_pct reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_h_str = 'White/Engelmann Spruce Mixedwood' commit /***************************** /* 64a. BLACK SPRUCE MIXEDWOOD /***************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= utot_conifer reselect uspruceb_pct >= upine_pct reselect uspruceb_pct > utruefir_pct reselect uspruceb_pct > udougfir_pct reselect uspruceb_pct > uspruce_pct reselect ularcha_pct = 0 and ularcht_pct = 0 reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_h_str = 'Black Spruce Mixedwood' commit /* Class added March 12, 2002 /******************************* /* 64b. LARCH TAMARACK MIXEDWOOD /******************************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= utot_conifer reselect ularcht_pct >= pine_pct reselect ularcht_pct > truefir_pct reselect ularcht_pct > dougfir_pct reselect ularcht_pct > spruce_pct reselect ularcht_pct >= spruceb_pct reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_h_str = 'Larch Tamarack Mixedwood' commit /* This class added March 12, 2002
  • 43. Alberta Forest Cover Classification Procedure 43 /************************ /* 65. TRUE FIR MIXEDWOOD /************************ reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= utot_conifer /*reselect utruefir_pct >= upine_pct reselect utruefir_pct >= 1 reselect utruefir_pct > udougfir_pct reselect utruefir_pct >= uspruce_pct reselect utruefir_pct >= uspruceb_pct reselect utruefir_pct > ularcha_PCT reselect utruefir_pct > ularcht_pct reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_h_str = 'True Fir Mixedwood' commit /*************************** /* 66. DOUGLAS FIR MIXEDWOOD /*************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= utot_conifer reselect udougfir_pct >= 1 reselect udougfir_pct >= upine_pct reselect udougfir_pct > utruefir_pct reselect udougfir_pct >= uspruce_pct reselect udougfir_pct >= uspruceb_pct reselect udougfir_pct >= ularcha_pct reselect udougfir_pct >= ularcht_pct reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_h_str = 'Douglas Fir Mixedwood' commit /******************************************* /* 67. MIXED CONIFER (PINE - LODGEPOLE/JACK) /******************************************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect upine_pct > udougfir_pct reselect upine_pct > utruefir_pct reselect upine_pct > uspruce_pct reselect upine_pct > uspruceb_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect upine_pct <= 4 and upine_pct >= 1 calc fc_h_str = 'Mixed Conifer (Pine - Lodgepole/Jack)' commit /******************************************** /* 68. MIXED CONIFER (WHITE/ENGELMANN SPRUCE) /******************************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect uspruce_pct > udougfir_pct reselect uspruce_pct > utruefir_pct reselect uspruce_pct >= upine_pct reselect uspruce_pct >= uspruceb_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect uspruce_pct <= 4 and uspruce_pct >= 1 calc fc_h_str = 'Mixed Conifer (White/Engelmann Spruce)'
  • 44. Alberta Forest Cover Classification Procedure 44 commit /********************************** /* 68. MIXED CONIFER (BLACK SPRUCE) /********************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect uspruceb_pct > udougfir_pct reselect uspruceb_pct > utruefir_pct reselect uspruceb_pct >= upine_pct reselect uspruceb_pct >= uspruceb_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect uspruceb_pct <= 4 and uspruceb_pct >= 1 calc fc_h_str = 'Mixed Conifer (Black Spruce)' commit /****************************** /* 69. MIXED CONIFER (TRUE FIR) /****************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect utruefir_pct > udougfir_pct reselect utruefir_pct >= uspruce_pct reselect utruefir_pct >= uspruceb_pct reselect utruefir_pct >= upine_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect utruefir_pct <= 4 and utruefir_pct >= 1 calc fc_h_str = 'Mixed Conifer (True Fir)' commit /********************************* /* 70. MIXED CONIFER (DOUGLAS FIR) /********************************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect udougfir_pct >= utruefir_pct reselect udougfir_pct >= uspruce_pct reselect udougfir_pct >= uspruceb_pct reselect udougfir_pct >= upine_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect udougfir_pct <= 4 and udougfir_pct >= 1 calc fc_h_str = 'Mixed Conifer (Douglas Fir)' commit /******************************************* /* 71. MIXED CONIFER (WHITEBARK/LIMBER PINE) /******************************************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect uwhitelmb_pct > 0 reselect fc_h_str <> 'Whitebark/Limber Pine' reselect uwhitelmb_pct <= 4 reselect uwhitelmb_pct >= ularcha_PCT reselect uwhitelmb_pct >= udougfir_pct reselect uwhitelmb_pct >= utruefir_pct reselect uwhitelmb_pct >= upine_pct reselect uwhitelmb_pct >= uspruce_pct reselect uwhitelmb_pct >= uspruceb_pct reselect ularcha_PCT = 0 and ularcht_pct = 0
  • 45. Alberta Forest Cover Classification Procedure 45 calc fc_h_str = 'Mixed Conifer (Whitebark/Limber Pine)' commit /********************************************* /* 72. MIXED CONIFER (SUBALPINE/WESTERN LARCH) /********************************************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect ularcha_PCT < 5 reselect ularcha_PCT > 0 calc fc_h_str = 'Mixed Conifer (Subalpine/Western Larch)' commit /************************************* /* 72a. MIXED CONIFER (LARCH TAMARACK) /************************************* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect utot_decid <= 1 reselect ularcht_pct < 5 reselect ularcht_pct > 0 calc fc_h_str = 'Mixed Conifer (Larch Tamarack)' commit /* Class added March 12, 2002 /******************** /* 73. SPRUCE WETLAND /******************** /* reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' /* reselect fc_nostr cn 'Spruce' /* reselect ( umoist_reg = 'a' or umoist_reg = 'w' ) /* calc fc_h_str = 'Spruce Wetland' /* commit /* Class removed March 12, 2002 /*************************** /* 73a. BLACK SPRUCE WETLAND /*************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( umoist_reg = 'a' or umoist_reg = 'w' ) reselect ularcha_pct = 0 and ularcht_pct = 0 reselect utot_decid <= 2 reselect uaspen_pct = 0 reselect upoplar_pct <= 1 reselect ubirch_pct <= 2 reselect utruefir_pct = 0 reselect upine_pct <= 2 reselect uspruce_pct = 0 reselect uspruceb_pct >= 1 calc fc_h_str = 'Black Spruce Wetland' commit /* Class added March 13, 2002 /*************************** /* 73b. WHITE SPRUCE WETLAND /*************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( umoist_reg = 'a' or umoist_reg = 'w' ) reselect ularcha_pct < 5 and ularcht_pct < 5
  • 46. Alberta Forest Cover Classification Procedure 46 reselect utot_decid <= 2 reselect uaspen_pct = 0 reselect upoplar_pct <= 1 reselect ubirch_pct <= 2 reselect utruefir_pct = 0 reselect upine_pct <= 2 reselect uspruce_pct >= 1 reselect fc_nostr ne 'Black Spruce Wetland' calc fc_h_str = 'White Spruce Wetland' commit /* Class added March 13, 2002 /****************************************** /* 73c. BLACK SPRUCE/LARCH TAMARACK WETLAND /****************************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( umoist_reg = 'a' or umoist_reg = 'w' ) reselect utot_decid <= 2 reselect uaspen_pct = 0 reselect upoplar_pct <= 1 reselect ubirch_pct <= 2 reselect utruefir_pct = 0 reselect upine_pct <= 2 reselect uspruceb_pct >= 1 reselect ularcht_pct >= 1 and ularcht_pct < 8 calc fc_h_str = 'Black Spruce/Larch Tamarack Wetland' resel nsel reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( umoist_reg = 'a' or umoist_reg = 'w' ) reselect fc_nostr cn 'Larch' reselect utot_decid <= 2 reselect uaspen_pct = 0 reselect upoplar_pct <= 1 reselect ubirch_pct <= 2 reselect utruefir_pct = 0 reselect upine_pct <= 2 reselect spruceb_pct >= 3 or uspruceb_pct >= 5 calc fc_h_str = 'Black Spruce/Larch Tamarack Wetland' commit /* Class added March 13, 2002 /***************************** /* 73d. LARCH TAMARACK WETLAND /***************************** reselect struc = 'H' and ustruc_val > 5 and usp1 <> '' reselect ( umoist_reg = 'a' or umoist_reg = 'w' ) reselect uspruceb_pct = 0 reselect ularcht_pct >= 8 reselect uspruce_pct < 5 reselect utot_decid <= 2 reselect uaspen_pct = 0 reselect upoplar_pct <= 1 reselect ubirch_pct <= 2 reselect utruefir_pct = 0 reselect upine_pct <= 2 calc fc_h_str = 'Larch Tamarack Wetland' /*commit /* Class added March 13, 2002
  • 47. Alberta Forest Cover Classification Procedure 47 quit &return /*===================================================================== &routine MULTISTOREY /*===================================================================== /* Calculates understory forest cover classification for Multistory structure /* stands with 'A' density overstorey and understorey density > 'A'. tables select %tablename% calc fc_m_str = '' /*************************** /* 53. PINE (LODGEPOLE/JACK) /*************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect upine_pct >= 9 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'Pine (Lodgepole/Jack)' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect upine_pct >= 5 reselect utot_decid < 2 reselect upine_pct > uspruce_pct reselect upine_pct > uspruceb_pct reselect upine_pct > utruefir_pct reselect upine_pct > udougfir_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'Pine (Lodgepole/Jack)' commit /**************************** /* 54. WHITE/ENGELMANN SPRUCE /**************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect uspruce_pct >= 9 calc fc_m_str = 'White/Engelmann Spruce' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect uspruce_pct >= 5 reselect utot_decid < 2 reselect uspruce_pct >= upine_pct reselect uspruce_pct > utruefir_pct reselect uspruce_pct > udougfir_pct reselect uspruce_pct >= uspruceb_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect not ( uspruce_pct = 5 and utruefir_pct = 5 ) calc fc_m_str = 'White/Engelmann Spruce' commit /******************* /* 54a. BLACK SPRUCE /******************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'
  • 48. Alberta Forest Cover Classification Procedure 48 reselect uspruceb_pct >= 9 calc fc_m_str = 'Black Spruce' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect uspruceb_pct >= 5 reselect utot_decid < 2 reselect uspruceb_pct >= upine_pct reselect uspruceb_pct > utruefir_pct reselect uspruceb_pct > udougfir_pct reselect uspruceb_pct > uspruce_pct reselect uspruceb_pct > ularcht_pct reselect not ( uspruceb_pct = 5 and utruefir_pct = 5 ) calc fc_m_str = 'Black Spruce' commit /* Class added March 13, 2002 /************** /* 55. TRUE FIR /************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utruefir_pct >= 9 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'True Fir' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utruefir_pct >= 5 reselect utot_decid < 2 reselect utruefir_pct >= upine_pct reselect utruefir_pct >= uspruce_pct reselect utruefir_pct >= uspruceb_pct reselect utruefir_pct > udougfir_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'True Fir' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ( utruefir_pct = 5 and upine_pct = 5 ) or ( utruefir_pct = 5 and uspruce_pct = 5 ) or ( utruefir_pct = 5 and uspruceb_pct = 5 ) calc fc_m_str = 'True Fir' commit /***************** /* 56. DOUGLAS FIR /***************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect udougfir_pct >= 9 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'Douglas Fir' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect udougfir_pct >= 5 reselect utot_decid < 2 reselect udougfir_pct >= upine_pct
  • 49. Alberta Forest Cover Classification Procedure 49 reselect udougfir_pct >= uspruce_pct reselect udougfir_pct >= uspruceb_pct reselect udougfir_pct > utruefir_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'Douglas Fir' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ( udougfir_pct = 5 and upine_pct = 5 ) or ( udougfir_pct = 5 and uspruce_pct = 5 ) or ( udougfir_pct = 5 and uspruceb_pct = 5 ) calc fc_m_str = 'Douglas Fir' commit /***************************** /* 57. SUBALPINE/WESTERN LARCH /***************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ularcha_PCT >= 9 calc fc_m_str = 'Subalpine/Western Larch' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ularcha_PCT >= 5 reselect utot_decid < 2 reselect ularcha_PCT >= upine_pct reselect ularcha_PCT >= uspruce_pct reselect ularcha_pct >= uspruceb_pct reselect ularcha_PCT >= utruefir_pct reselect ularcha_PCT >= udougfir_pct calc fc_m_str = 'Subalpine/Western Larch' commit /********************* /* 57a. LARCH TAMARACK /********************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ularcht_pct >= 9 calc fc_m_str = 'Larch Tamarack' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ularcht_PCT >= 5 reselect utot_decid < 2 reselect ularcht_PCT >= upine_pct reselect ularcht_PCT >= uspruce_pct reselect ularcht_pct >= uspruceb_pct reselect ularcht_PCT >= utruefir_pct reselect ularcht_PCT >= udougfir_pct calc fc_m_str = 'Larch Tamarack' commit /* Class added March 13, 2002 /*************************** /* 58. WHITEBARK/LIMBER PINE /*************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ( usp1 = 'Pa' or usp1 = 'Pf' )
  • 50. Alberta Forest Cover Classification Procedure 50 reselect usp1_per >= 5 calc fc_m_str = 'Whitebark/Limber Pine' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect usp2 = 'Pa' or usp2 = 'Pf' reselect usp2_per >= 5 reselect utot_decid < 2 reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'Whitebark/Limber Pine' commit /*********** /* 59. ASPEN /*********** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect uaspen_pct >= 4 reselect utot_conifer <= 4 reselect uaspen_pct > upoplar_pct reselect uaspen_pct > birch_pct calc fc_m_str = 'Aspen' commit /******************* /* 60. BALSAM POPLAR /******************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect upoplar_pct >= 5 reselect utot_conifer < 2 calc fc_m_str = 'Balsam Poplar' commit /************ /* 60a. BIRCH /************ reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ubirch_pct >= 5 reselect utot_conifer < 2 calc fc_m_str = 'Birch' commit /* Class added March 13, 2002 /********************* /* 61. ASPEN MIXEDWOOD /********************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect uaspen_pct >= 4 reselect utot_conifer >= 2 reselect utot_conifer <= 4 reselect uaspen_pct > upoplar_pct reselect uaspen_pct > ubirch_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 calc fc_m_str = 'Aspen Mixedwood' commit /***************************** /* 62. BALSAM POPLAR MIXEDWOOD
  • 51. Alberta Forest Cover Classification Procedure 51 /***************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect upoplar_pct > 5 reselect utot_conifer >= 2 reselect utot_conifer <= 4 reselect uaspen_pct <= upoplar_pct reselect upoplar_pct > ubirch_pct calc fc_m_str = 'Balsam Poplar Mixedwood' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect upoplar_pct <= 8 and upoplar_pct >= 1 reselect utot_decid > utot_conifer reselect uaspen_pct <= upoplar_pct reselect uaspen_pct > ubirch_pct reselect utot_conifer > 1 calc fc_m_str = 'Balsam Poplar Mixedwood' commit /********************** /* 62a. BIRCH MIXEDWOOD /********************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ubirch_pct >= 4 reselect utot_conifer >= 2 reselect utot_conifer <= 4 reselect ubirch_pct < uaspen_pct reselect ubirch_pct < upoplar_pct calc fc_m_str = 'Birch Mixedwood' resel nsel reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect ubirch_pct <= 8 and ubirch_pct >= 1 reselect utot_decid > utot_conifer reselect ubirch_pct > uaspen_pct reselect ubirch_pct > upoplar_pct reselect utot_conifer > 1 calc fc_m_str = 'Birch Mixedwood' commit /* Class added March 13, 2002 /************************************* /* 63. PINE (LODGEPOLE/JACK) MIXEDWOOD /************************************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= utot_conifer reselect utot_decid >= 2 reselect upine_pct >= 1 reselect upine_pct > uspruce_pct reselect upine_pct > uspruceb_pct reselect upine_pct > utruefir_pct reselect upine_pct > udougfir_pct reselect upine_pct > uspruceb_pct reselect upine_pct > ularcha_pct reselect upine_pct > ularcht_pct reselect utot_conifer >= 3 calc fc_m_str = 'Pine (Lodgepole/Jack) Mixedwood' commit
  • 52. Alberta Forest Cover Classification Procedure 52 /************************************** /* 64. WHITE/ENGELMANN SPRUCE MIXEDWOOD /************************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= utot_conifer reselect uspruce_pct >= 1 reselect uspruce_pct >= upine_pct reselect uspruce_pct > utruefir_pct reselect uspruce_pct > udougfir_pct reselect uspruce_pct >= uspruceb_pct reselect uspruce_pct > ularcha_pct reselect uspruce_pct > ularcht_pct reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_m_str = 'White/Engelmann Spruce Mixedwood' commit /***************************** /* 64a. BLACK SPRUCE MIXEDWOOD /***************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= utot_conifer reselect uspruceb_pct >= 1 reselect uspruceb_pct >= upine_pct reselect uspruceb_pct > utruefir_pct reselect uspruceb_pct > udougfir_pct reselect uspruceb_pct >= uspruceb_pct reselect uspruceb_pct > ularcha_pct reselect uspruceb_pct > ularcht_pct reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_m_str = 'Black Spruce Mixedwood' commit /************************ /* 65. TRUE FIR MIXEDWOOD /************************ reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= utot_conifer reselect utruefir_pct >= 1 reselect utruefir_pct >= upine_pct reselect utruefir_pct > udougfir_pct reselect utruefir_pct >= uspruce_pct reselect utruefir_pct >= uspruceb_pct reselect ( utruefir_pct > ularcha_PCT ) and ( utruefir_pct > ularcht_pct ) reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_m_str = 'True Fir Mixedwood' commit /*************************** /* 66. DOUGLAS FIR MIXEDWOOD /*************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= utot_conifer reselect udougfir_pct >= 1 reselect udougfir_pct >= upine_pct reselect udougfir_pct > utruefir_pct reselect udougfir_pct >= uspruce_pct
  • 53. Alberta Forest Cover Classification Procedure 53 reselect udougfir_pct >= uspruceb_pct reselect utot_conifer >= 3 reselect utot_decid >= 2 calc fc_m_str = 'Douglas Fir Mixedwood' commit /******************************************* /* 67. MIXED CONIFER (PINE - LODGEPOLE/JACK) /******************************************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect upine_pct > udougfir_pct reselect upine_pct > utruefir_pct reselect upine_pct > uspruce_pct reselect upine_pct > uspruceb_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect upine_pct <= 4 and upine_pct >= 1 calc fc_m_str = 'Mixed Conifer (Pine - Lodgepole/Jack)' commit /******************************************** /* 68. MIXED CONIFER (WHITE/ENGELMANN SPRUCE) /******************************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect uspruce_pct > udougfir_pct reselect uspruce_pct > utruefir_pct reselect uspruce_pct >= upine_pct reselect uspruce_pct >= uspruceb_pct reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect uspruce_pct <= 4 and uspruce_pct >= 1 calc fc_m_str = 'Mixed Conifer (White/Engelmann Spruce)' commit /*********************************** /* 68a. MIXED CONIFER (BLACK SPRUCE) /*********************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect uspruceb_pct > udougfir_pct reselect uspruceb_pct > utruefir_pct reselect uspruceb_pct >= upine_pct reselect uspruceb_pct > uspruce_pct reselect uspruceb_pct > ularcha_pct reselect uspruceb_pct > ularcht_pct reselect uspruceb_pct <= 4 and uspruceb_pct >= 1 calc fc_m_str = 'Mixed Conifer (Black Spruce)' commit /* Class added March 13, 2002 /****************************** /* 69. MIXED CONIFER (TRUE FIR) /****************************** reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect utruefir_pct > udougfir_pct reselect utruefir_pct >= uspruce_pct reselect utruefir_pct >= uspruceb_pct reselect utruefir_pct >= upine_pct
  • 54. Alberta Forest Cover Classification Procedure 54 reselect ularcha_PCT = 0 and ularcht_pct = 0 reselect utruefir_pct <= 4 and utruefir_pct >= 1 calc fc_m_str = 'Mixed Conifer (True Fir)' commit /********************************* /* 70. MIXED CONIFER (DOUGLAS FIR) /********************************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect udougfir_pct >= utruefir_pct reselect udougfir_pct >= uspruce_pct reselect udougfir_pct >= uspruceb_pct reselect udougfir_pct >= upine_pct reselect ularcha_pct = 0 and ularcht_pct = 0 reselect udougfir_pct <= 4 and udougfir_pct >= 1 calc fc_m_str = 'Mixed Conifer (Douglas Fir)' commit /******************************************* /* 71. MIXED CONIFER (WHITEBARK/LIMBER PINE) /******************************************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect uwhitelmb_pct > 0 reselect fc_h_str <> 'Whitebark/Limber Pine' reselect uwhitelmb_pct <= 4 reselect uwhitelmb_pct >= ularcha_pct reselect uwhitelmb_pct >= ularcht_pct reselect uwhitelmb_pct >= udougfir_pct reselect uwhitelmb_pct >= utruefir_pct reselect uwhitelmb_pct >= upine_pct reselect uwhitelmb_pct >= uspruce_pct reselect uwhitelmb_pct >= uspruceb_pct reselect ularcha_PCT = 0 calc fc_m_str = 'Mixed Conifer (Whitebark/Limber Pine)' commit /********************************************* /* 72. MIXED CONIFER (SUBALPINE/WESTERN LARCH) /********************************************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect ularcha_PCT < 5 reselect ularcha_PCT > 0 calc fc_m_str = 'Mixed Conifer (Subalpine/Western Larch)' commit /************************************* /* 72a. MIXED CONIFER (LARCH TAMARACK) /************************************* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A' reselect utot_decid <= 1 reselect ularcht_pct < 5 reselect ularcht_pct > 0 calc fc_m_str = 'Mixed Conifer (Larch Tamarack)' commit /* Class added March 13, 2002