Download - ForestCoverClassificationProcedure

Transcript
Page 1: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

Resource Analysis Section,Forest Management Branch,

Alberta Sustainable Resource Development

Tammy KobliukJuly 29, 2002

Page 2: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

2

ALBERTA FOREST COVER CLASSIFICATION PROCEDURE........................................................ 1

1. BACKGROUND ................................................................................................................................... 22. INPUT DATA REQUIREMENTS ............................................................................................................ 23. OUTPUT DATA................................................................................................................................... 34. FOREST COVER CLASSES................................................................................................................... 45. GENERAL CLASSIFICATION METHODOLOGY ..................................................................................... 5

5.1. Species Roll-up ............................................................................................................................ 55.2. Forest Cover – No Structure........................................................................................................ 55.3. Forest Cover – Horizontal Stands ............................................................................................... 65.4. Forest Cover – Multistory Stands ................................................................................................ 65.5. Forest Cover – Understory Grasslands ....................................................................................... 65.6. Final Classification...................................................................................................................... 6

6. WETLANDS PREDICTION.................................................................................................................... 67. REFERENCES ..................................................................................................................................... 8APPENDIX A: FOREST COVER CLASSIFICATION FIELD DEFINITIONS.......................................................... 9APPENDIX B: .AML SOURCE CODE......................................................................................................... 10

1. BackgroundThe forest cover classification methodology was originally developed for the LandscapePlanning Pilot project (Olson and Diehl, 2000). There was a need to roll up the AVIstand calls into a more general description in order to predict ecosite phase. That originalforest cover classification covered only the species and landscape classes found in theSouthern Rockies (FMU’s C5, CO1, and CO2). These classes were added to andexpanded 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 fromwithin ArcInfo workstation, from the Arc prompt. The .AML program anticipates thatthe AVI attribute information is stored in INFO.

2. Input Data RequirementsThe provincial AVI 2.1 data model is the required format for the input data set for theforest cover classification. The required fields are as follows:

Table 1. Required AVI 2.1 fieldsField Name DescriptionSP1, SP2, SP3, SP4, SP5 Overstory species fieldsSP1_PER, SP2_PER, SP3_PER, SP4_PER,SP5_PER

Overstory species percentages

USP1, USP2, USP3, USP4, USP5 Understory species fieldsUSP1_PER, USP2_PER, USP3_PER,USP4_PER, USP5_PER

Understory species percentages

MOIST_REG, UMOIST_REG Moisture regime (overstory, understory)STRUC Stand structureUSTRUC_VAL Understory stand structure ‘extent’

(ie. For Horizontal stands)DENSITY, UDENSITY Crown Closure (overstory, understory)NFL, UNFL Naturally non-forested landNAT_NON, UNAT_NON Naturally non-vegetatedANTH_VEG, UANTH_VEG Anthropogenic vegetation

Page 3: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

3

ANTH_NON, UANTH_NON Antrhopogenic non-vegetatedMOD1, MOD2 Stand modifiersMOD1_EXT, MOD2_EXT Stand modifier extents

3. Output DataThe forest cover classification procedure requires the creation and population of variousadditional fields:

Table 2. Species Roll-up: OverstoryField Name DescriptionASPEN_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 speciesTOT_DECID Total percentage of deciduous species

Table 3. Species Roll-up: UnderstoryField Name DescriptionUASPEN_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 speciesUTOT_DECID Total percentage of deciduous species

Table 4. Forest Cover Classification fieldsField Name DescriptionCOVERCAT Concatenated species callFC_NOSTR Forest cover class of overstory call (disregarding any understory

attributes)FC_H_STR Forest cover classification of horizontal callFC_M_STR Forest cover classification of ‘A’-density overstory multistory callUGRASS Understory grass type callFC_DOM Dominant forest cover classification

Page 4: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

4

FC_SUBDOM Sub-dominant forest cover classificationFC_COMPLEX Concatenated dominant and sub-dominant forest cover class

4. Forest Cover ClassesThe following is a complete list of the forest cover classes in this classificationprocedure:

“Pure” Stands1. Pine (Lodgepole/Jack)2. White/Engelmann Spruce3. Black Spruce4. True Fir5. Douglas Fir6. Subalpine/Western Larch7. Larch Tamarack8. Whitebark/Limber Pine9. Aspen10. Balsam Poplar11. BirchMixedwood Stands12. Aspen Mixedwood13. Balsam Poplar Mixedwood14. Birch Mixedwood15. Pine (Lodgepole/Jack) Mixedwood16. White/Engelmann Spruce Mixedwood17. Black Spruce Mixedwood18. Larch Tamarack Mixedwood19. True Fir Mixedwood20. Douglas Fir MixedwoodMixed Conifer Stands21. 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)Wetlands29. Black Spruce Wetland30. White Spruce Wetland31. Black Spruce/Larch Tamarack Wetland32. Larch Tamarack Wetland33. Shrub WetlandNon-Forested Lands34. Shrub Meadow Open Mesic35. Shrub Meadow Open Dry

Page 5: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

5

36. Shrub Meadow Closed Mesic37. Shrub Meadow Closed Dry38. Wet Graminoid39. Forb Meadow40. Bryophytic41. Grassland Mesic42. Grassland Dry43. Rock Barren44. Cutbank/Sand45. River46. Lakes/Ponds47. Permanent Ice/Snow48. Flooded49. Recent BurnAnthropogenic Lands50. Rough Pasture Open Mesic51. Rough Pasture Open Dry52. Rough Pasture Closed Mesic53. Rough Pasture Closed Dry54. Annual Crops55. Perennial Crops56. Perennial Forage Crops57. Gravel Pits/Surface Mines58. Rural Residential59. Hamlets, Villages and Towns60. Non-Veg ROWs61. Farmsteads62. Plant Sites/Sewage Lagoons63. Industrial Reclamation-Vegetated64. Partial Cut/Regenerating Clearcut65. Herbaceous Clearcut66. Herbaceous Clearing

5. General Classification MethodologyThe forest cover classification procedure is broken up into several different sections.

5.1. Species Roll-upThe Species Roll-up section is a preparatory section that tabulates the amount of eachspecies in both the understory and overstory of a stand call. These species percentagefields facilitate the forest cover classification queries in the next four sections.

5.2. Forest Cover – No StructureA first-cut classification is done on the overstory call of all stands, irregardless of standstructure type and understory call. These queries are used to populate the fieldFC_NOSTR.

Page 6: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

6

5.3. Forest Cover – Horizontal StandsAll horizontal stands (STRUC = H) are examined. Those stands having an understorycall containing > 50% of the polygon and containing tree species will be classified. Theclassification field is FC_H_STR.

5.4. Forest Cover – Multistory StandsAll multistory stands having an ‘A’ density overstory and a forested understory with adensity greater than ‘A’ will be examined and classified. The classification field isFC_M_STR.

5.5. Forest Cover – Understory GrasslandsThis classification is intended to target complex grassland structures of horizontal andmultistory stands. The classification field is UGRASS. The following types of stands areexamined:

� Non-forested closed shrub lands where shrub coverage is < 60%, no structureis noted, and no understory non-forested call is noted.

� Horizontal and multistory stands where the overstory is forested, nounderstory non-forested call is present, and understory anthropogenicvegetation is either rough pasture or not populated.

� Non-forested closed shrub lands where shrub coverage is < 60%, no structureis 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 ClassificationThe final classification step assigns the calls from FC_NOSTR, FC_H_STR, FC_M_STR, andUGRASS 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 PredictionThe original Landscape Planning Pilot forest cover classification procedure (Olson andDiehl, 2000) classified only shrub wetlands and a generic spruce wetland type. Uponexpanding the forest cover classification procedure to the rest of the province, the

Page 7: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

7

opportunity presented itself to be able to predict additional types of wetlands, whichmight represent distinct ecological land types. Personal communication with GrantKlappstein and Leonard Barnhardt of the Forest Management Branch of AlbertaSustainable Resource Development facilitated definition of four types of forestedwetlands that could be predicted from AVI stand calls: black spruce wetland, whitespruce wetland, larch tamarack wetland, black spruce/larch tamarack wetland. Althoughall wetland classes have a “wet” or “aquatic” moisture regime, it should be noted that notall “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

Page 8: ForestCoverClassificationProcedure

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. ReferencesAlberta 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 theForest Management Branch of Alberta Sustainable Resource Development.

Klappstein, Grant. Personal communication March 2002. Growth and Yield Specialistwith the Forest Management Branch of Alberta Sustainable ResourceDevelopment.

Olson, J.D. and S. Diehl. 2000. Forest Cover Classification Procedure. AlbertaEnvironment, unpublished report. 68pp.

Page 9: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

9

Appendix A: Forest Cover Classification Field Definitions

Table 5. Classification Field DefinitionsField Name Input Width Output Width Field TypeASPEN_PCT 2 2 ITRUEFIR_PCT 2 2 ISPRUCE_PCT 2 2 ISPRUCEB_PCT 2 2 IPINE_PCT 2 2 IWHITELIMB_PCT 2 2 IDOUGFIR_PCT 2 2 ILARCHA_PCT 2 2 ILARCHT_PCT 2 2 IBIRCH_PCT 2 2 IPOPLAR_PCT 2 2 ITOT_CONIFER 2 2 ITOT_DECID 2 2 IUASPEN_PCT 2 2 IUTRUEFIR_PCT 2 2 IUSPRUCE_PCT 2 2 IUSPRUCEB_PCT 2 2 IUPINE_PCT 2 2 IUWHITELMB_PCT 2 2 IUDOUGFIR_PCT 2 2 IULARCHA_PCT 2 2 IULARCHT_PCT 2 2 IUBIRCH_PCT 2 2 IUPOPLAR_PCT 2 2 IUTOT_CONIFER 2 2 IUTOT_DECID 2 2 ICOVERCAT 15 15 CFC_NOSTR 40 40 CFC_H_STR 40 40 CFC_M_STR 40 40 CUGRASS 30 30 CFC_DOM 40 40 CFC_SUBDOM 40 40 CFC_COMPLEX 85 85 C

Page 10: ForestCoverClassificationProcedure

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 onmultistorey,/* 'A' density overstory calls. Called from CLASSFIELDS./* UGRASS - calculates forest cover classification for understory/* grassland components. Called from CLASSFIELDS.

Page 11: ForestCoverClassificationProcedure

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 classificationfields./* Zero if it does not exist./*/* SYSTEM: :program - current arcinfo module (ie. TABLES)/*/*===========================================================================&severity &error &routine BAILOUT&echo &on&terminal 9999display 9999

&setvar tabletype = [getchoice .att .pat .avi -prompt 'Where are your AVIattributes?']&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]

Page 12: ForestCoverClassificationProcedure

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

Page 13: ForestCoverClassificationProcedure

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.

tablesadditem %tablename% aspen_pct 2 2 iadditem %tablename% truefir_pct 2 2 iadditem %tablename% spruce_pct 2 2 iadditem %tablename% spruceb_pct 2 2 iadditem %tablename% pine_pct 2 2 iadditem %tablename% whitelimb_pct 2 2 iadditem %tablename% dougfir_pct 2 2 iadditem %tablename% larcha_pct 2 2 iadditem %tablename% larcht_pct 2 2 iadditem %tablename% birch_pct 2 2 iadditem %tablename% poplar_pct 2 2 iadditem %tablename% tot_conifer 2 2 iadditem %tablename% tot_decid 2 2 i

additem %tablename% uaspen_pct 2 2 iadditem %tablename% utruefir_pct 2 2 iadditem %tablename% uspruce_pct 2 2 iadditem %tablename% uspruceb_pct 2 2 iadditem %tablename% upine_pct 2 2 iadditem %tablename% uwhitelmb_pct 2 2 iadditem %tablename% udougfir_pct 2 2 iadditem %tablename% ularcha_pct 2 2 iadditem %tablename% ularcht_pct 2 2 iadditem %tablename% ubirch_pct 2 2 iadditem %tablename% upoplar_pct 2 2 iadditem %tablename% utot_conifer 2 2 iadditem %tablename% utot_decid 2 2 i

additem %tablename% covercat 15 15 cadditem %tablename% fc_nostr 40 40 cadditem %tablename% fc_h_str 40 40 cadditem %tablename% fc_m_str 40 40 cadditem %tablename% ugrass 30 30 cadditem %tablename% fc_dom 40 40 cadditem %tablename% fc_subdom 40 40 cadditem %tablename% fc_complex 85 85 c

quit

&return

/*===========================================================================&routine OCALCFIELDS/*===========================================================================/* Populating overstory fields added in routine ADDFIELDS.

tablesselect %tablename%

/******************************/* Calculating ASPEN percentage

Page 14: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

14

/******************************calc aspen_pct = 0reselect sp1 = 'A' or sp1 = 'Aw'

calc aspen_pct = sp1_pernselectreselect sp2 = 'A' or sp2 = 'Aw'

calc aspen_pct = aspen_pct + sp2_pernselectreselect sp3 = 'A' or sp3 = 'Aw'

calc aspen_pct = aspen_pct + sp3_pernselectreselect sp4 = 'A' or sp4 = 'Aw'

calc aspen_pct = aspen_pct + sp4_pernselectreselect sp5 = 'A' or sp5 = 'Aw'

calc aspen_pct = aspen_pct + sp5_perreselectnselect

/**********************************/* Calculating TRUE FIR percentage./**********************************

calc truefir_pct = 0reselect sp1 = 'Fb' or sp1 = 'Fa'

calc truefir_pct = sp1_pernselectreselect sp2 = 'Fb' or sp2 = 'Fa'

calc truefir_pct = truefir_pct + sp2_pernselectreselect sp3 = 'Fb' or sp3 = 'Fa'

calc truefir_pct = truefir_pct + sp3_pernselectreselect sp4 = 'Fb' or sp4 = 'Fa'

calc truefir_pct = truefir_pct + sp4_pernselectreselect sp5 = 'Fb' or sp5 = 'Fa'

calc truefir_pct = truefir_pct + sp5_perreselectnselect

/********************************/* Calculating SPRUCE percentage./********************************

calc spruce_pct = 0reselect sp1 = 'Sw' or sp1 = 'Se'

calc spruce_pct = sp1_pernselectreselect sp2 = 'Sw' or sp2 = 'Se'

calc spruce_pct = spruce_pct + sp2_pernselectreselect sp3 = 'Sw' or sp3 = 'Se'

calc spruce_pct = spruce_pct + sp3_pernselectreselect sp4 = 'Sw' or sp4 = 'Se'

calc spruce_pct = spruce_pct + sp4_pernselectreselect sp5 = 'Sw' or sp5 = 'Se'

calc spruce_pct = spruce_pct + sp5_perreselectnselect

/**************************************/* Calculating BLACK SPRUCE percentage.

Page 15: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

15

/**************************************calc spruceb_pct = 0reselect sp1 = 'Sb'

calc spruceb_pct = sp1_pernselectreselect sp2 = 'Sb'

calc spruceb_pct = spruceb_pct + sp2_pernselectreselect sp3 = 'Sb'

calc spruceb_pct = spruceb_pct + sp3_pernselectreselect sp4 = 'Sb'

calc spruceb_pct = spruceb_pct + sp4_pernselectreselect sp5 = 'Sb'

calc spruceb_pct = spruceb_pct + sp5_perreselectnselect

/*********************************************/* Calculating LODGEPOLE/JACK PINE percentage./*********************************************

calc pine_pct = 0reselect sp1 = 'P' or sp1 = 'Pl' or sp1 = 'Pj'

calc pine_pct = sp1_pernselectreselect sp2 = 'P' or sp2 = 'Pl' or sp2 = 'Pj'

calc pine_pct = pine_pct + sp2_pernselectreselect sp3 = 'P' or sp3 = 'Pl' or sp3 = 'Pj'

calc pine_pct = pine_pct + sp3_pernselectreselect sp4 = 'P' or sp4 = 'Pl' or sp4 = 'Pj'

calc pine_pct = pine_pct + sp4_pernselectreselect sp5 = 'P' or sp5 = 'Pl' or sp5 = 'Pj'

calc pine_pct = pine_pct + sp5_perreselectnselect

/*************************************************/* Calculating WHITEBARK / LIMBER PINE percentage./*************************************************

calc whitelimb_pct = 0reselect sp1 = 'Pa' or sp1 = 'Pf'

calc whitelimb_pct = sp1_pernselectreselect sp2 = 'Pa' or sp2 = 'Pf'

calc whitelimb_pct = whitelimb_pct + sp2_pernselectreselect sp3 = 'Pa' or sp3 = 'Pf'

calc whitelimb_pct = whitelimb_pct + sp3_pernselectreselect sp4 = 'Pa' or sp4 = 'Pf'

calc whitelimb_pct = whitelimb_pct + sp4_pernselectreselect sp5 = 'Pa' or sp5 = 'Pf'

calc whitelimb_pct = whitelimb_pct + sp5_perreselectnselect

/************************************/* Calculating DOUGLAS FIR percentage

Page 16: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

16

/************************************calc dougfir_pct = 0reselect sp1 = 'Fd'

calc dougfir_pct = sp1_pernselectreselect sp2 = 'Fd'

calc dougfir_pct = dougfir_pct + sp2_pernselectreselect sp3 = 'Fd'

calc dougfir_pct = dougfir_pct + sp3_pernselectreselect sp4 = 'Fd'

calc dougfir_pct = dougfir_pct + sp4_pernselectreselect sp5 = 'Fd'

calc dougfir_pct = dougfir_pct + sp5_perreselectnselect

/*************************************************/* Calculating SUBALPINE/WESTERN LARCH percentage./*************************************************

calc larcha_pct = 0reselect sp1 = 'La' or sp1 = 'Lw'

calc larcha_PCT = sp1_pernselectreselect sp2 = 'La' or sp2 = 'Lw'

calc larcha_PCT = larcha_PCT + sp2_pernselectreselect sp3 = 'La' or sp3 = 'Lw'

calc larcha_PCT = larcha_PCT + sp3_pernselectreselect sp4 = 'La' or sp4 = 'Lw'

calc larcha_PCT = larcha_PCT + sp4_pernselectreselect sp5 = 'La' or sp5 = 'Lw'

calc larcha_PCT = larcha_PCT + sp5_perreselectnselect

/****************************************/* Calculating LARCH TAMARACK percentage./****************************************

calc larcht_pct = 0reselect sp1 = 'Lt'

calc larcht_PCT = sp1_pernselectreselect sp2 = 'Lt'

calc larcht_PCT = larcht_PCT + sp2_pernselectreselect sp3 = 'Lt'

calc larcht_PCT = larcht_PCT + sp3_pernselectreselect sp4 = 'Lt'

calc larcht_PCT = larcht_PCT + sp4_pernselectreselect sp5 = 'Lt'

calc larcht_PCT = larcht_PCT + sp5_perreselectnselect

/******************************/* Calculating BIRCH percentage

Page 17: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

17

/******************************calc birch_pct = 0reselect sp1 = 'Bw'

calc birch_pct = sp1_pernselectreselect sp2 = 'Bw'

calc birch_pct = birch_pct + sp2_pernselectreselect sp3 = 'Bw'

calc birch_pct = birch_pct + sp3_pernselectreselect sp4 = 'Bw'

calc birch_pct = birch_pct + sp4_pernselectreselect sp5 = 'Bw'

calc birch_pct = birch_pct + sp5_perreselectnselect

/******************************/* Calculating POPLAR percentage/******************************

calc poplar_pct = 0reselect sp1 = 'Pb'

calc poplar_pct = sp1_pernselectreselect sp2 = 'Pb'

calc poplar_pct = poplar_pct + sp2_pernselectreselect sp3 = 'Pb'

calc poplar_pct = poplar_pct + sp3_pernselectreselect sp4 = 'Pb'

calc poplar_pct = poplar_pct + sp4_pernselectreselect sp5 = 'Pb'

calc poplar_pct = poplar_pct + sp5_perreselectnselect

/************************************************/* Calculating TOTAL OVERSTORY CONIFER percentage/************************************************

calc tot_conifer = 0calc 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 = 0calc tot_decid = poplar_pct + aspen_pct + birch_pct

quit

&return

/*========================================================================&routine UCALCFIELDS/*========================================================================/* Populating understory fields added in routine ADDFIELDS.

tables

Page 18: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

18

select %tablename%

/******************************/* Calculating ASPEN percentage/******************************

calc uaspen_pct = 0reselect usp1 = 'A' or usp1 = 'Aw'

calc uaspen_pct = usp1_pernselectreselect usp2 = 'A' or usp2 = 'Aw'

calc uaspen_pct = uaspen_pct + usp2_pernselectreselect usp3 = 'A' or usp3 = 'Aw'

calc uaspen_pct = uaspen_pct + usp3_pernselectreselect usp4 = 'A' or usp4 = 'Aw'

calc uaspen_pct = uaspen_pct + usp4_pernselectreselect usp5 = 'A' or usp5 = 'Aw'

calc uaspen_pct = uaspen_pct + usp5_perreselectnselect

/**********************************/* Calculating TRUE FIR percentage./**********************************

calc utruefir_pct = 0reselect usp1 = 'Fb' or usp1 = 'Fa'

calc utruefir_pct = usp1_pernselectreselect usp2 = 'Fb' or usp2 = 'Fa'

calc utruefir_pct = utruefir_pct + usp2_pernselectreselect usp3 = 'Fb' or usp3 = 'Fa'

calc utruefir_pct = utruefir_pct + usp3_pernselectreselect usp4 = 'Fb' or usp4 = 'Fa'

calc utruefir_pct = utruefir_pct + usp4_pernselectreselect usp5 = 'Fb' or usp5 = 'Fa'

calc utruefir_pct = utruefir_pct + usp5_perreselectnselect

/************************************************/* Calculating WHITE/ENGELMANN SPRUCE percentage./************************************************

calc uspruce_pct = 0reselect usp1 = 'Sw' or usp1 = 'Se'

calc uspruce_pct = usp1_pernselectreselect usp2 = 'Sw' or usp2 = 'Se'

calc uspruce_pct = uspruce_pct + usp2_pernselectreselect usp3 = 'Sw' or usp3 = 'Se'

calc uspruce_pct = uspruce_pct + usp3_pernselectreselect usp4 = 'Sw' or usp4 = 'Se'

calc uspruce_pct = uspruce_pct + usp4_pernselectreselect usp5 = 'Sw' or usp5 = 'Se'

calc uspruce_pct = uspruce_pct + usp5_perreselect

Page 19: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

19

nselect

/**************************************/* Calculating BLACK SPRUCE percentage./**************************************

calc uspruceb_pct = 0reselect usp1 = 'Sb'

calc uspruceb_pct = usp1_pernselectreselect usp2 = 'Sb'

calc uspruceb_pct = uspruceb_pct + usp2_pernselectreselect usp3 = 'Sb'

calc uspruceb_pct = uspruceb_pct + usp3_pernselectreselect usp4 = 'Sb'

calc uspruceb_pct = uspruceb_pct + usp4_pernselectreselect usp5 = 'Sb'

calc uspruceb_pct = uspruceb_pct + usp5_perreselectnselect

/*********************************************/* Calculating LODGEPOLE/JACK PINE percentage./*********************************************

calc upine_pct = 0reselect usp1 = 'P' or usp1 = 'Pl' or usp1 = 'Pj'

calc upine_pct = usp1_pernselectreselect usp2 = 'P' or usp2 = 'Pl' or usp2 = 'Pj'

calc upine_pct = upine_pct + usp2_pernselectreselect usp3 = 'P' or usp3 = 'Pl' or usp3 = 'Pj'calc upine_pct = upine_pct + usp3_pernselectreselect usp4 = 'P' or usp4 = 'Pl' or usp4 = 'Pj'

calc upine_pct = upine_pct + usp4_pernselectreselect usp5 = 'P' or usp5 = 'Pl' or usp5 = 'Pj'

calc upine_pct = upine_pct + usp5_perreselectnselect

/*************************************************/* Calculating WHITEBARK / LIMBER PINE percentage./*************************************************

calc uwhitelmb_pct = 0reselect usp1 = 'Pa' or usp1 = 'Pf'

calc uwhitelmb_pct = usp1_pernselectreselect usp2 = 'Pa' or usp2 = 'Pf'

calc uwhitelmb_pct = uwhitelmb_pct + usp2_pernselectreselect usp3 = 'Pa' or usp3 = 'Pf'

calc uwhitelmb_pct = uwhitelmb_pct + usp3_pernselectreselect usp4 = 'Pa' or usp4 = 'Pf'

calc uwhitelmb_pct = uwhitelmb_pct + usp4_pernselectreselect usp5 = 'Pa' or usp5 = 'Pf'

calc uwhitelmb_pct = uwhitelmb_pct + usp5_perreselect

Page 20: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

20

nselect

/************************************/* Calculating DOUGLAS FIR percentage/************************************

calc udougfir_pct = 0reselect usp1 = 'Fd'

calc udougfir_pct = usp1_pernselectreselect usp2 = 'Fd'

calc udougfir_pct = udougfir_pct + usp2_pernselectreselect usp3 = 'Fd'

calc udougfir_pct = udougfir_pct + usp3_pernselectreselect usp4 = 'Fd'

calc udougfir_pct = udougfir_pct + usp4_pernselectreselect usp5 = 'Fd'

calc udougfir_pct = udougfir_pct + usp5_perreselectnselect

/*****************************************/* Calculating SUBALPINE LARCH percentage./*****************************************

calc ularcha_PCT = 0reselect usp1 = 'La' or usp1 = 'Lw'

calc ularcha_PCT = usp1_pernselectreselect usp2 = 'La' or usp2 = 'Lw'

calc ularcha_PCT = ularcha_PCT + usp2_pernselectreselect usp3 = 'La' or usp3 = 'Lw'

calc ularcha_PCT = ularcha_PCT + usp3_pernselectreselect usp4 = 'La' or usp4 = 'Lw'

calc ularcha_PCT = ularcha_PCT + usp4_pernselectreselect usp5 = 'La' or usp5 = 'Lw'

calc ularcha_PCT = ularcha_PCT + usp5_perreselectnselect

/*****************************************/* Calculating LARCH TAMARACK percentage./*****************************************

calc ularcht_PCT = 0reselect usp1 = 'Lt'

calc ularcht_PCT = usp1_pernselectreselect usp2 = 'Lt'

calc ularcht_PCT = ularcht_PCT + usp2_pernselectreselect usp3 = 'Lt'

calc ularcht_PCT = ularcht_PCT + usp3_pernselectreselect usp4 = 'Lt'

calc ularcht_PCT = ularcht_PCT + usp4_pernselectreselect usp5 = 'Lt'

calc ularcht_PCT = ularcht_PCT + usp5_perreselect

Page 21: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

21

nselect

/******************************/* Calculating BIRCH percentage/******************************

calc ubirch_pct = 0reselect usp1 = 'Bw'

calc ubirch_pct = usp1_pernselectreselect usp2 = 'Bw'

calc ubirch_pct = ubirch_pct + usp2_pernselectreselect usp3 = 'Bw'

calc ubirch_pct = ubirch_pct + usp3_pernselectreselect usp4 = 'Bw'

calc ubirch_pct = ubirch_pct + usp4_pernselectreselect usp5 = 'Bw'

calc ubirch_pct = ubirch_pct + usp5_perreselectnselect

/******************************/* Calculating POPLAR percentage/******************************

calc upoplar_pct = 0reselect usp1 = 'Pb'

calc upoplar_pct = usp1_pernselectreselect usp2 = 'Pb'

calc upoplar_pct = upoplar_pct + usp2_pernselectreselect usp3 = 'Pb'

calc upoplar_pct = upoplar_pct + usp3_pernselectreselect usp4 = 'Pb'

calc upoplar_pct = upoplar_pct + usp4_pernselectreselect usp5 = 'Pb'

calc upoplar_pct = upoplar_pct + usp5_perreselectnselect

/************************************************/* Calculating TOTAL UNDERSTORY CONIFER percentage/************************************************

calc utot_conifer = 0calc 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 = 0calc utot_decid = upoplar_pct + uaspen_pct + ubirch_pct

quit

&return

/*=====================================================================

Page 22: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

22

&routine CLASSFIELDS/*=====================================================================/* Calculates forest cover classification fields.

/* Calculating COVERCAT field&setvar uptablename [upcase %tablename%]

&data arc INFOARCSELECT %uptablename%CONCATENATE COVERCAT FROMSP1,SP1_PER,SP2,SP2_PER,SP3,SP3_PER,SP4,SP4_PER,SP5,SP5_PERQ 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_nostrreselect fc_h_str ne ''calc fc_dom = fc_h_strnselreselect fc_m_str ne ''calc fc_dom = fc_m_str

/* Calculating SUB-DOMINANT FORESTCOVER (FC_SUBDOM) field.reselnselreselect fc_h_str ne '' and fc_nostr ne fc_domcalc fc_subdom = fc_nostr

nselreselect fc_m_str ne '' and fc_nostr ne fc_domcalc fc_subdom = fc_nostr

reselnselreselect ugrass ne ''reselect ugrass ne fc_domcalc fc_subdom = ugrass

quit

/*****************************************************/* Calculating COMPLEX FORESTCOVER (FC_COMPLEX) field./*****************************************************&data arc INFOARCSELECT %uptablename%RESELECT FC_SUBDOM NE ''CONCATENATE FC_COMPLEX FROM FC_DOM +,'/ ',FC_SUBDOMNSELCONCATENATE FC_COMPLEX FROM FC_DOMQ STOP&end

Page 23: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

23

&return

/*=====================================================================&routine NO_STRUCTURE/*=====================================================================/* Calculates Forest Cover Conditionals with NO Structure

tablesselect %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'

reselnselreselect pine_pct >= 5reselect tot_decid < 2reselect pine_pct > spruce_pctreselect pine_pct > spruceb_pctreselect pine_pct > truefir_pctreselect pine_pct > dougfir_pctreselect larcha_PCT = 0 and larcht_pct = 0

calc fc_nostr = 'Pine (Lodgepole/Jack)'

commit

/***************************/* 2. WHITE/ENGELMANN SPRUCE/***************************

reselect spruce_pct ge 9calc fc_nostr = 'White/Engelmann Spruce'

reselnselreselect spruce_pct >= 5reselect tot_decid < 2reselect spruce_pct >= pine_pctreselect spruce_pct > truefir_pctreselect spruce_pct > dougfir_pctreselect spruce_pct >= spruceb_pctreselect larcha_PCT = 0 and larcht_pct = 0reselect not ( spruce_pct = 5 and truefir_pct = 5 )

calc fc_nostr = 'White/Engelmann Spruce'

commit

/******************/* 2a. BLACK SPRUCE/******************

reselect spruceb_pct >= 9calc fc_nostr = 'Black Spruce'

reselnselreselect spruceb_pct >= 5reselect tot_decid < 2

Page 24: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

24

reselect spruceb_pct >= pine_pctreselect spruceb_pct > truefir_pctreselect spruceb_pct > dougfir_pctreselect spruceb_pct >= spruce_pctreselect larcha_pct = 0 and larcht_pct = 0reselect 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 = 0calc fc_nostr = 'True Fir'

reselnselreselect truefir_pct >= 5reselect tot_decid < 2reselect truefir_pct >= pine_pctreselect truefir_pct >= spruce_pctreselect truefir_pct >= spruceb_pctreselect truefir_pct > dougfir_pctreselect larcha_PCT = 0 and larcht_pct = 0calc fc_nostr = 'True Fir'

reselnselreselect ( 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 = 0calc fc_nostr = 'Douglas Fir'

reselnselreselect dougfir_pct >= 5reselect tot_decid < 2reselect dougfir_pct >= pine_pctreselect dougfir_pct >= spruce_pctreselect dougfir_pct >= spruceb_pctreselect dougfir_pct > truefir_pctreselect larcha_PCT = 0 and larcht_pct = 0calc fc_nostr = 'Douglas Fir'

reselnselreselect ( dougfir_pct = 5 and pine_pct = 5 ) or ( dougfir_pct = 5 and

spruce_pct = 5 )calc fc_nostr = 'Douglas Fir'

reselnselreselect ( dougfir_pct = 5 and truefir_pct = 5 ) or ( dougfir_pct = 5 and

spruceb_pct = 5 )

Page 25: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

25

calc fc_nostr = 'Douglas Fir'/* This case added November 13, 2001.

commit

/*********************/* 5. SUBALPINE LARCH/*********************

reselect larcha_PCT >= 9calc fc_nostr = 'Subalpine/Western Larch'

reselnselreselect larcha_PCT >= 5reselect tot_decid < 2reselect larcha_PCT >= pine_pctreselect larcha_PCT >= spruce_pctreselect larcha_pct >= spruceb_pctreselect larcha_PCT >= truefir_pctreselect larcha_PCT >= dougfir_pctcalc fc_nostr = 'Subalpine/Western Larch'

commit

/********************/* 5a. LARCH TAMARACK/********************

reselect larcht_pct >= 9calc fc_nostr = 'Larch Tamarack'

reselnselreselect larcht_pct >= 5reselect tot_decid < 2reselect larcht_pct >= pine_pctreselect larcht_pct >= spruce_pctreselect larcht_pct >= spruceb_pctreselect larcht_pct >= truefir_pctreselect larcht_pct >= dougfir_pctcalc 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'

reselnselreselect ( sp2 = 'Pa' or sp2 = 'Pf' )reselect sp2_per >= 5reselect tot_decid < 2reselect larcha_PCT = 0 and larcht_pct = 0calc fc_nostr = 'Whitebark/Limber Pine'

commit

/**********/* 7. ASPEN/**********

Page 26: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

26

reselect aspen_pct >= 4reselect tot_conifer <= 4reselect aspen_pct > poplar_pctreselect aspen_pct > birch_pctcalc fc_nostr = 'Aspen'

commit

/******************/* 8. BALSAM POPLAR/******************

reselect poplar_pct >= 5reselect tot_conifer < 2calc fc_nostr = 'Balsam Poplar'

commit

/*******/* BIRCH/*******

reselect birch_pct >= 5reselect tot_conifer < 2calc fc_nostr = 'Birch'

/********************/* 9. ASPEN MIXEDWOOD/********************

reselect aspen_pct >= 4reselect tot_conifer >= 2 and tot_conifer <= 4reselect aspen_pct > poplar_pctreselect aspen_pct > birch_pctreselect larcha_PCT = 0 and larcht_pct = 0calc fc_nostr = 'Aspen Mixedwood'

reselnselreselect aspen_pct <= 8reselect tot_decid > tot_coniferreselect aspen_pct >= poplar_pctreselect aspen_pct >= birch_pctreselect tot_conifer > 1calc fc_nostr = 'Aspen Mixedwood'/* Condition added March 12, 2002

commit

/*****************************/* 10. BALSAM POPLAR MIXEDWOOD/*****************************

reselect poplar_pct > 5reselect tot_conifer >= 2 and tot_conifer <= 4reselect aspen_pct <= poplar_pctreselect birch_pct < poplar_pctcalc fc_nostr = 'Balsam Poplar Mixedwood'

reselnselreselect poplar_pct <= 8 and poplar_pct >= 1reselect tot_decid > tot_coniferreselect aspen_pct <= poplar_pctreselect birch_pct < poplar_pctreselect tot_conifer > 1calc fc_nostr = 'Balsam Poplar Mixedwood'

Page 27: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

27

commit

/**********************/* 10a. BIRCH MIXEDWOOD/**********************

reselect birch_pct >= 4reselect tot_conifer >= 2 and tot_conifer <= 4reselect aspen_pct <= birch_pctreselect poplar_pct <= birch_pctcalc fc_nostr = 'Birch Mixedwood'

reselnselreselect birch_pct <= 8 and birch_pct >= 1reselect tot_decid > tot_coniferreselect aspen_pct <= birch_pctreselect poplar_pct <= birch_pctreselect tot_conifer > 1calc fc_nostr = 'Birch Mixedwood'

commit/* Class added March 12, 2002

/*************************************/* 11. PINE (LODGEPOLE/JACK) MIXEDWOOD/*************************************

reselect tot_decid <= tot_coniferreselect tot_decid >= 2reselect pine_pct > spruce_pctreselect pine_pct > spruceb_pctreselect pine_pct > truefir_pctreselect pine_pct > dougfir_pctreselect tot_conifer >= 3calc fc_nostr = 'Pine (Lodgepole/Jack) Mixedwood'

commit

/**************************************/* 12. WHITE/ENGELMANN SPRUCE MIXEDWOOD/**************************************

reselect tot_decid <= tot_coniferreselect spruce_pct >= pine_pctreselect spruce_pct > truefir_pctreselect spruce_pct > dougfir_pctreselect spruce_pct >= spruceb_pctreselect tot_conifer >= 3reselect tot_decid >= 2calc fc_nostr = 'White/Engelmann Spruce Mixedwood'

commit

/*****************************/* 12a. BLACK SPRUCE MIXEDWOOD/*****************************

reselect tot_decid <= tot_coniferreselect spruceb_pct >= pine_pctreselect spruceb_pct > truefir_pctreselect spruceb_pct > dougfir_pctreselect spruceb_pct > spruce_pctreselect spruceb_pct > larcha_pctreselect spruceb_pct > larcht_pctreselect tot_conifer >= 3

Page 28: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

28

reselect tot_decid >= 2calc fc_nostr = 'Black Spruce Mixedwood'

commit/* This class added March 12, 2002

/*******************************/* 12b. LARCH TAMARACK MIXEDWOOD/*******************************

reselect tot_decid <= tot_coniferreselect larcht_pct >= pine_pctreselect larcht_pct > truefir_pctreselect larcht_pct > dougfir_pctreselect larcht_pct > spruce_pctreselect larcht_pct >= spruceb_pctreselect tot_conifer >= 3reselect tot_decid >= 2calc fc_nostr = 'Larch Tamarack Mixedwood'

commit/* This class added March 12, 2002

/************************/* 13. TRUE FIR MIXEDWOOD/************************

reselect tot_decid <= tot_coniferreselect truefir_pct > dougfir_pctreselect truefir_pct >= spruce_pctreselect truefir_pct >= spruceb_pctreselect truefir_pct > larcha_PCTreselect truefir_pct > larcht_pctreselect truefir_pct >= 1reselect tot_conifer >= 3reselect tot_decid >= 2calc fc_nostr = 'True Fir Mixedwood'

commit

/***************************/* 14. DOUGLAS FIR MIXEDWOOD/***************************

reselect tot_decid <= tot_coniferreselect dougfir_pct >= pine_pctreselect dougfir_pct > truefir_pctreselect dougfir_pct >= spruce_pctreselect dougfir_pct >= spruceb_pctreselect tot_conifer >= 3reselect tot_decid >= 2calc fc_nostr = 'Douglas Fir Mixedwood'

commit

/*****************************************/* 15. MIXED CONIFER (LODGEPOLE/JACK PINE)/*****************************************

reselect tot_decid <= 1reselect pine_pct > dougfir_pctreselect pine_pct > truefir_pctreselect pine_pct > spruce_pctreselect pine_pct > spruceb_pctreselect larcha_PCT = 0 and larcht_pct = 0reselect pine_pct <= 4 and pine_pct >= 1calc fc_nostr = 'Mixed Conifer (Pine - Lodgepole/Jack)'

Page 29: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

29

commit

/********************************************/* 16. MIXED CONIFER (WHITE/ENGELMANN SPRUCE)/********************************************

reselect tot_decid <= 1reselect spruce_pct > dougfir_pctreselect spruce_pct > truefir_pctreselect spruce_pct >= pine_pctreselect spruce_pct >= spruceb_pctreselect larcha_PCT = 0 and larcht_pct = 0reselect spruce_pct <= 4 and spruce_pct >= 1calc fc_nostr = 'Mixed Conifer (White/Engelmann Spruce)'

commit

/***********************************/* 16a. MIXED CONIFER (BLACK SPRUCE)/***********************************

reselect tot_decid <= 1reselect spruceb_pct > dougfir_pctreselect spruceb_pct > truefir_pctreselect spruceb_pct >= pine_pctreselect spruceb_pct > spruce_pctreselect larcha_pct = 0 and larcht_pct = 0reselect spruceb_pct <= 4 and spruceb_pct >= 1calc fc_nostr = 'Mixed Conifer (Black Spruce)'

commit/* Class added March 12, 2002

/******************************/* 17. MIXED CONIFER (TRUE FIR)/******************************

reselect tot_decid <= 1reselect truefir_pct > dougfir_pctreselect truefir_pct >= spruce_pctreselect truefir_pct >= spruceb_pctreselect truefir_pct >= pine_pctreselect larcha_PCT = 0 and larcht_pct = 0reselect truefir_pct <= 4 and truefir_pct >= 1calc fc_nostr = 'Mixed Conifer (True Fir)'

commit

/*********************************/* 18. MIXED CONIFER (DOUGLAS FIR)/*********************************

reselect tot_decid <= 1reselect dougfir_pct >= truefir_pctreselect dougfir_pct >= spruce_pctreselect dougfir_pct >= spruceb_pctreselect dougfir_pct >= pine_pctreselect larcha_PCT = 0 and larcht_pct = 0reselect dougfir_pct <= 4 and dougfir_pct >= 1calc fc_nostr = 'Mixed Conifer (Douglas Fir)'

/* November 13, 2001: modified tot_decid = 0 to tot_decid <= 1

commit

/*******************************************

Page 30: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

30

/* 19. MIXED CONIFER (WHITEBARK/LIMBER PINE)/*******************************************

reselect tot_decid <= 1reselect ( covercat cn 'Pa' or covercat cn 'Pf' )reselect fc_nostr <> 'Whitebark/Limber Pine'reselect whitelimb_pct <= 4 and whitelimb_pct >= 1reselect whitelimb_pct >= larcha_PCTreselect whitelimb_pct >= larcht_pctreselect whitelimb_pct >= dougfir_pctreselect whitelimb_pct >= truefir_pctreselect whitelimb_pct >= pine_pctreselect whitelimb_pct >= spruce_pctreselect whitelimb_pct >= spruceb_pctreselect larcha_PCT = 0 and larcht_pct = 0calc fc_nostr = 'Mixed Conifer (Whitebark/Limber Pine)'

commit

/*********************************************/* 20. MIXED CONIFER (SUBALPINE/WESTERN LARCH)/*********************************************

reselect tot_decid <= 1reselect larcha_PCT < 5reselect larcha_PCT > 0calc fc_nostr = 'Mixed Conifer (Subalpine/Western Larch)'

commit

/*************************************/* 20a. MIXED CONIFER (LARCH TAMARACK)/*************************************

reselect tot_decid <= 1reselect larcht_pct < 5reselect larcht_pct > 0calc 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 = 0reselect ularcha_pct = 0 and ularcht_pct = 0reselect tot_decid <= 2reselect aspen_pct = 0reselect poplar_pct <= 1reselect birch_pct <= 2reselect truefir_pct = 0reselect pine_pct <= 2reselect spruce_pct = 0

Page 31: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

31

reselect spruceb_pct > 0calc 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 < 5reselect tot_decid <= 2reselect aspen_pct = 0reselect poplar_pct <= 1reselect birch_pct <= 2reselect truefir_pct = 0reselect pine_pct <= 2reselect spruce_pct >= 2reselect 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 >= 1reselect larcht_pct < 8reselect spruceb_pct >= 1reselect tot_decid <= 2reselect aspen_pct = 0reselect poplar_pct <= 1reselect birch_pct <= 2reselect truefir_pct = 0reselect pine_pct <= 2calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland'

reselnselreselect ( moist_reg = 'a' or moist_reg = 'w' )reselect larcha_pct > 0 or larcht_pct > 0 or ularcha_pct > 0 or ularcht_pct

> 0reselect tot_decid <= 2reselect aspen_pct = 0reselect poplar_pct <= 1reselect birch_pct <= 2reselect truefir_pct = 0reselect pine_pct <= 2reselect spruceb_pct > 0calc fc_nostr = 'Black Spruce/Larch Tamarack Wetland'

Page 32: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

32

reselnselreselect fc_nostr cn 'Larch'reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect spruceb_pct >= 3 or uspruceb_pct >= 5reselect tot_decid <= 2reselect aspen_pct = 0reselect poplar_pct <= 1reselect birch_pct <= 2reselect pine_pct <= 2reselect truefir_pct = 0calc 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 >= 8reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect tot_decid <= 2reselect aspen_pct = 0reselect poplar_pct <= 1reselect birch_pct <= 2reselect truefir_pct = 0reselect pine_pct <= 2reselect uspruceb_pct < 5reselect spruce_pct < 5calc 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'

Page 33: ForestCoverClassificationProcedure

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

Page 34: ForestCoverClassificationProcedure

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

Page 35: ForestCoverClassificationProcedure

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

Page 36: ForestCoverClassificationProcedure

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 <= 4reselect sp1 <> ''calc fc_nostr = 'Partial Cut/Regenerating Clearcut'

commit

/*************************/* 52. HERBACEOUS CLEARCUT/*************************

reselect mod1 = 'CC'reselect mod1_ext <= 5reselect nfl <> ''calc fc_nostr = 'Herbaceous Clearcut'

commit

/*********************/* HERBACEOUS CLEARING/*********************

Page 37: ForestCoverClassificationProcedure

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.

tablesselect %tablename%calc fc_h_str = ''

/***************************/* 53. PINE (LODGEPOLE/JACK)/***************************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect upine_pct >= 9reselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'Pine (Lodgepole/Jack)'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect upine_pct >= 5reselect utot_decid < 2reselect upine_pct > uspruce_pctreselect upine_pct > uspruceb_pctreselect upine_pct > utruefir_pctreselect upine_pct > udougfir_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'Pine (Lodgepole/Jack)'

commit

/****************************/* 54. WHITE/ENGELMANN SPRUCE/****************************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect uspruce_pct >= 9calc fc_h_str = 'White/Engelmann Spruce'

reselnsel

Page 38: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

38

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect uspruce_pct >= 5reselect utot_decid < 2reselect uspruce_pct >= upine_pctreselect uspruce_pct >= uspruceb_pctreselect uspruce_pct > utruefir_pctreselect uspruce_pct > udougfir_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect 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 >= 9calc fc_h_str = 'Black Spruce'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect uspruceb_pct >= 5reselect utot_decid < 2reselect uspruceb_pct >= upine_pctreselect uspruceb_pct >= utruefir_pctreselect uspruceb_pct >= udougfir_pctreselect uspruceb_pct >= spruce_pctreselect ularcha_pct = 0 and ularcht_pct = 0calc 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 >= 9reselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'True Fir'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect utruefir_pct >= 5reselect utot_decid < 2reselect utruefir_pct >= upine_pctreselect utruefir_pct >= uspruce_pctreselect utruefir_pct >= uspruceb_pctreselect utruefir_pct > udougfir_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'True Fir'

reselnselreselect 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

Page 39: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

39

/*****************/* 56. DOUGLAS FIR/*****************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect udougfir_pct >= 9reselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'Douglas Fir'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect udougfir_pct >= 5reselect utot_decid < 2reselect udougfir_pct >= upine_pctreselect udougfir_pct >= uspruce_pctreselect udougfir_pct >= uspruceb_pctreselect udougfir_pct > utruefir_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'Douglas Fir'

reselnselreselect 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 >= 9calc fc_h_str = 'Subalpine/Western Larch'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect ularcha_PCT >= 5reselect utot_decid < 2reselect ularcha_PCT >= upine_pctreselect ularcha_PCT >= uspruce_pctreselect ularcha_pct >= uspruceb_pctreselect ularcha_PCT >= utruefir_pctreselect ularcha_PCT >= udougfir_pctcalc fc_h_str = 'Subalpine/Western Larch'

commit

/*********************/* 57a. LARCH TAMARACK/*********************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect ularcht_PCT >= 9calc fc_h_str = 'Larch Tamarack'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect ularcht_pct >= 5reselect utot_decid < 2

Page 40: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

40

reselect ularcht_pct >= upine_pctreselect ularcht_pct >= uspruce_pctreselect ularcht_pct >= uspruceb_pctreselect ularcht_pct >= utruefir_pctreselect ularcht_pct >= udougfir_pctcalc 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 >= 5calc fc_h_str = 'Whitebark/Limber Pine'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect usp2 = 'Pa' or usp2 = 'Pf'reselect usp2_per >= 5reselect utot_decid < 2reselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'Whitebark/Limber Pine'

commit

/***********/* 59. ASPEN/***********

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect uaspen_pct >= 4reselect utot_conifer <= 4reselect uaspen_pct > upoplar_pctreselect uaspen_pct > ubirch_pctcalc fc_h_str = 'Aspen'

commit

/*******************/* 60. BALSAM POPLAR/*******************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect upoplar_pct >= 5reselect utot_conifer < 2calc fc_h_str = 'Balsam Poplar'

commit

/************/* 60a. BIRCH/************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect ubirch_pct >= 5reselect utot_conifer < 2calc fc_h_str = 'Birch'

commit

/*********************/* 61. ASPEN MIXEDWOOD

Page 41: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

41

/*********************reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect uaspen_pct >= 4reselect utot_conifer >= 2reselect utot_conifer <= 4reselect uaspen_pct > upoplar_pctreselect uaspen_pct > ubirch_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_h_str = 'Aspen Mixedwood'

commit

/*****************************/* 62. BALSAM POPLAR MIXEDWOOD/*****************************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect upoplar_pct > 5reselect utot_conifer >= 2reselect utot_conifer <= 4reselect uaspen_pct <= upoplar_pctreselect upoplar_pct >= ubirch_pctcalc fc_h_str = 'Balsam Poplar Mixedwood'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect upoplar_pct <= 8reselect utot_decid > utot_coniferreselect uaspen_pct <= upoplar_pctreselect upoplar_pct >= ubirch_pctreselect utot_conifer > 1calc fc_h_str = 'Balsam Poplar Mixedwood'

commit

/**********************/* 62a. BIRCH MIXEDWOOD/**********************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect ubirch_pct > 5reselect utot_conifer >= 2reselect utot_conifer <= 4reselect ubirch_pct >= uaspen_pctreselect ubirch_pct > upoplar_pctcalc fc_h_str = 'Birch Mixedwood'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect ubirch_pct <= 8 and ubirch_pct >= 1reselect utot_decid > utot_coniferreselect uaspen_pct <= ubirch_pctreselect ubirch_pct > upoplar_pctreselect utot_conifer > 1calc fc_nostr = 'Birch Mixedwood'

commit/* Class added March 12, 2002

/*************************************/* 63. PINE (LODGEPOLE/JACK) MIXEDWOOD/*************************************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''

Page 42: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

42

reselect utot_decid <= utot_coniferreselect utot_decid >= 2reselect upine_pct > uspruce_pctreselect upine_pct > uspruceb_pctreselect upine_pct > utruefir_pctreselect upine_pct > udougfir_pctreselect ( upine_pct > ularcha_pct ) and ( upine_pct > ularcht_pct )reselect utot_conifer >= 3calc 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_coniferreselect uspruce_pct >= upine_pctreselect uspruce_pct > utruefir_pctreselect uspruce_pct > udougfir_pctreselect uspruce_pct > uspruceb_pctreselect uspruce_pct > ularcha_pctreselect uspruce_pct > ularcht_pctreselect utot_conifer >= 3reselect utot_decid >= 2calc 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_coniferreselect uspruceb_pct >= upine_pctreselect uspruceb_pct > utruefir_pctreselect uspruceb_pct > udougfir_pctreselect uspruceb_pct > uspruce_pctreselect ularcha_pct = 0 and ularcht_pct = 0reselect utot_conifer >= 3reselect utot_decid >= 2calc 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_coniferreselect ularcht_pct >= pine_pctreselect ularcht_pct > truefir_pctreselect ularcht_pct > dougfir_pctreselect ularcht_pct > spruce_pctreselect ularcht_pct >= spruceb_pctreselect utot_conifer >= 3reselect utot_decid >= 2calc fc_h_str = 'Larch Tamarack Mixedwood'

commit/* This class added March 12, 2002

Page 43: ForestCoverClassificationProcedure

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_pctreselect utruefir_pct >= 1reselect utruefir_pct > udougfir_pctreselect utruefir_pct >= uspruce_pctreselect utruefir_pct >= uspruceb_pctreselect utruefir_pct > ularcha_PCTreselect utruefir_pct > ularcht_pctreselect utot_conifer >= 3reselect utot_decid >= 2calc fc_h_str = 'True Fir Mixedwood'

commit

/***************************/* 66. DOUGLAS FIR MIXEDWOOD/***************************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect utot_decid <= utot_coniferreselect udougfir_pct >= 1reselect udougfir_pct >= upine_pctreselect udougfir_pct > utruefir_pctreselect udougfir_pct >= uspruce_pctreselect udougfir_pct >= uspruceb_pctreselect udougfir_pct >= ularcha_pctreselect udougfir_pct >= ularcht_pctreselect utot_conifer >= 3reselect utot_decid >= 2calc 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 <= 1reselect upine_pct > udougfir_pctreselect upine_pct > utruefir_pctreselect upine_pct > uspruce_pctreselect upine_pct > uspruceb_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect upine_pct <= 4 and upine_pct >= 1calc 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 <= 1reselect uspruce_pct > udougfir_pctreselect uspruce_pct > utruefir_pctreselect uspruce_pct >= upine_pctreselect uspruce_pct >= uspruceb_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect uspruce_pct <= 4 and uspruce_pct >= 1calc fc_h_str = 'Mixed Conifer (White/Engelmann Spruce)'

Page 44: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

44

commit

/**********************************/* 68. MIXED CONIFER (BLACK SPRUCE)/**********************************

reselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect utot_decid <= 1reselect uspruceb_pct > udougfir_pctreselect uspruceb_pct > utruefir_pctreselect uspruceb_pct >= upine_pctreselect uspruceb_pct >= uspruceb_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect uspruceb_pct <= 4 and uspruceb_pct >= 1calc 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 <= 1reselect utruefir_pct > udougfir_pctreselect utruefir_pct >= uspruce_pctreselect utruefir_pct >= uspruceb_pctreselect utruefir_pct >= upine_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect utruefir_pct <= 4 and utruefir_pct >= 1calc 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 <= 1reselect udougfir_pct >= utruefir_pctreselect udougfir_pct >= uspruce_pctreselect udougfir_pct >= uspruceb_pctreselect udougfir_pct >= upine_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect udougfir_pct <= 4 and udougfir_pct >= 1calc 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 <= 1reselect uwhitelmb_pct > 0reselect fc_h_str <> 'Whitebark/Limber Pine'reselect uwhitelmb_pct <= 4reselect uwhitelmb_pct >= ularcha_PCTreselect uwhitelmb_pct >= udougfir_pctreselect uwhitelmb_pct >= utruefir_pctreselect uwhitelmb_pct >= upine_pctreselect uwhitelmb_pct >= uspruce_pctreselect uwhitelmb_pct >= uspruceb_pctreselect ularcha_PCT = 0 and ularcht_pct = 0

Page 45: ForestCoverClassificationProcedure

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 <= 1reselect ularcha_PCT < 5reselect ularcha_PCT > 0calc 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 <= 1reselect ularcht_pct < 5reselect ularcht_pct > 0calc 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 = 0reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2reselect uspruce_pct = 0reselect uspruceb_pct >= 1calc 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

Page 46: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

46

reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2reselect uspruce_pct >= 1reselect 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 <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2reselect uspruceb_pct >= 1reselect ularcht_pct >= 1 and ularcht_pct < 8calc fc_h_str = 'Black Spruce/Larch Tamarack Wetland'

reselnselreselect struc = 'H' and ustruc_val > 5 and usp1 <> ''reselect ( umoist_reg = 'a' or umoist_reg = 'w' )reselect fc_nostr cn 'Larch'reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2reselect spruceb_pct >= 3 or uspruceb_pct >= 5calc 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 = 0reselect ularcht_pct >= 8reselect uspruce_pct < 5reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2calc fc_h_str = 'Larch Tamarack Wetland'

/*commit/* Class added March 13, 2002

Page 47: ForestCoverClassificationProcedure

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'.

tablesselect %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 >= 9reselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_m_str = 'Pine (Lodgepole/Jack)'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect upine_pct >= 5reselect utot_decid < 2reselect upine_pct > uspruce_pctreselect upine_pct > uspruceb_pctreselect upine_pct > utruefir_pctreselect upine_pct > udougfir_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc 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 >= 9calc fc_m_str = 'White/Engelmann Spruce'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect uspruce_pct >= 5reselect utot_decid < 2reselect uspruce_pct >= upine_pctreselect uspruce_pct > utruefir_pctreselect uspruce_pct > udougfir_pctreselect uspruce_pct >= uspruceb_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect 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'

Page 48: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

48

reselect uspruceb_pct >= 9calc fc_m_str = 'Black Spruce'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect uspruceb_pct >= 5reselect utot_decid < 2reselect uspruceb_pct >= upine_pctreselect uspruceb_pct > utruefir_pctreselect uspruceb_pct > udougfir_pctreselect uspruceb_pct > uspruce_pctreselect uspruceb_pct > ularcht_pctreselect 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 >= 9reselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_m_str = 'True Fir'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect utruefir_pct >= 5reselect utot_decid < 2reselect utruefir_pct >= upine_pctreselect utruefir_pct >= uspruce_pctreselect utruefir_pct >= uspruceb_pctreselect utruefir_pct > udougfir_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_m_str = 'True Fir'

reselnselreselect 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 >= 9reselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_m_str = 'Douglas Fir'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect udougfir_pct >= 5reselect utot_decid < 2reselect udougfir_pct >= upine_pct

Page 49: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

49

reselect udougfir_pct >= uspruce_pctreselect udougfir_pct >= uspruceb_pctreselect udougfir_pct > utruefir_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_m_str = 'Douglas Fir'

reselnselreselect 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 >= 9calc fc_m_str = 'Subalpine/Western Larch'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ularcha_PCT >= 5reselect utot_decid < 2reselect ularcha_PCT >= upine_pctreselect ularcha_PCT >= uspruce_pctreselect ularcha_pct >= uspruceb_pctreselect ularcha_PCT >= utruefir_pctreselect ularcha_PCT >= udougfir_pctcalc 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 >= 9calc fc_m_str = 'Larch Tamarack'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ularcht_PCT >= 5reselect utot_decid < 2reselect ularcht_PCT >= upine_pctreselect ularcht_PCT >= uspruce_pctreselect ularcht_pct >= uspruceb_pctreselect ularcht_PCT >= utruefir_pctreselect ularcht_PCT >= udougfir_pctcalc 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' )

Page 50: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

50

reselect usp1_per >= 5calc fc_m_str = 'Whitebark/Limber Pine'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect usp2 = 'Pa' or usp2 = 'Pf'reselect usp2_per >= 5reselect utot_decid < 2reselect ularcha_PCT = 0 and ularcht_pct = 0calc 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 >= 4reselect utot_conifer <= 4reselect uaspen_pct > upoplar_pctreselect uaspen_pct > birch_pctcalc fc_m_str = 'Aspen'

commit

/*******************/* 60. BALSAM POPLAR/*******************

reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect upoplar_pct >= 5reselect utot_conifer < 2calc fc_m_str = 'Balsam Poplar'

commit

/************/* 60a. BIRCH/************

reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ubirch_pct >= 5reselect utot_conifer < 2calc 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 >= 4reselect utot_conifer >= 2reselect utot_conifer <= 4reselect uaspen_pct > upoplar_pctreselect uaspen_pct > ubirch_pctreselect ularcha_PCT = 0 and ularcht_pct = 0calc fc_m_str = 'Aspen Mixedwood'

commit

/*****************************/* 62. BALSAM POPLAR MIXEDWOOD

Page 51: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

51

/*****************************reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect upoplar_pct > 5reselect utot_conifer >= 2reselect utot_conifer <= 4reselect uaspen_pct <= upoplar_pctreselect upoplar_pct > ubirch_pctcalc fc_m_str = 'Balsam Poplar Mixedwood'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect upoplar_pct <= 8 and upoplar_pct >= 1reselect utot_decid > utot_coniferreselect uaspen_pct <= upoplar_pctreselect uaspen_pct > ubirch_pctreselect utot_conifer > 1calc 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 >= 4reselect utot_conifer >= 2reselect utot_conifer <= 4reselect ubirch_pct < uaspen_pctreselect ubirch_pct < upoplar_pctcalc fc_m_str = 'Birch Mixedwood'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ubirch_pct <= 8 and ubirch_pct >= 1reselect utot_decid > utot_coniferreselect ubirch_pct > uaspen_pctreselect ubirch_pct > upoplar_pctreselect utot_conifer > 1calc 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_coniferreselect utot_decid >= 2reselect upine_pct >= 1reselect upine_pct > uspruce_pctreselect upine_pct > uspruceb_pctreselect upine_pct > utruefir_pctreselect upine_pct > udougfir_pctreselect upine_pct > uspruceb_pctreselect upine_pct > ularcha_pctreselect upine_pct > ularcht_pctreselect utot_conifer >= 3calc fc_m_str = 'Pine (Lodgepole/Jack) Mixedwood'

commit

Page 52: ForestCoverClassificationProcedure

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_coniferreselect uspruce_pct >= 1reselect uspruce_pct >= upine_pctreselect uspruce_pct > utruefir_pctreselect uspruce_pct > udougfir_pctreselect uspruce_pct >= uspruceb_pctreselect uspruce_pct > ularcha_pctreselect uspruce_pct > ularcht_pctreselect utot_conifer >= 3reselect utot_decid >= 2calc 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_coniferreselect uspruceb_pct >= 1reselect uspruceb_pct >= upine_pctreselect uspruceb_pct > utruefir_pctreselect uspruceb_pct > udougfir_pctreselect uspruceb_pct >= uspruceb_pctreselect uspruceb_pct > ularcha_pctreselect uspruceb_pct > ularcht_pctreselect utot_conifer >= 3reselect utot_decid >= 2calc 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_coniferreselect utruefir_pct >= 1reselect utruefir_pct >= upine_pctreselect utruefir_pct > udougfir_pctreselect utruefir_pct >= uspruce_pctreselect utruefir_pct >= uspruceb_pctreselect ( utruefir_pct > ularcha_PCT ) and ( utruefir_pct > ularcht_pct )reselect utot_conifer >= 3reselect utot_decid >= 2calc 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_coniferreselect udougfir_pct >= 1reselect udougfir_pct >= upine_pctreselect udougfir_pct > utruefir_pctreselect udougfir_pct >= uspruce_pct

Page 53: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

53

reselect udougfir_pct >= uspruceb_pctreselect utot_conifer >= 3reselect utot_decid >= 2calc 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 <= 1reselect upine_pct > udougfir_pctreselect upine_pct > utruefir_pctreselect upine_pct > uspruce_pctreselect upine_pct > uspruceb_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect upine_pct <= 4 and upine_pct >= 1calc 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 <= 1reselect uspruce_pct > udougfir_pctreselect uspruce_pct > utruefir_pctreselect uspruce_pct >= upine_pctreselect uspruce_pct >= uspruceb_pctreselect ularcha_PCT = 0 and ularcht_pct = 0reselect uspruce_pct <= 4 and uspruce_pct >= 1calc 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 <= 1reselect uspruceb_pct > udougfir_pctreselect uspruceb_pct > utruefir_pctreselect uspruceb_pct >= upine_pctreselect uspruceb_pct > uspruce_pctreselect uspruceb_pct > ularcha_pctreselect uspruceb_pct > ularcht_pctreselect uspruceb_pct <= 4 and uspruceb_pct >= 1calc 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 <= 1reselect utruefir_pct > udougfir_pctreselect utruefir_pct >= uspruce_pctreselect utruefir_pct >= uspruceb_pctreselect utruefir_pct >= upine_pct

Page 54: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

54

reselect ularcha_PCT = 0 and ularcht_pct = 0reselect utruefir_pct <= 4 and utruefir_pct >= 1calc 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 <= 1reselect udougfir_pct >= utruefir_pctreselect udougfir_pct >= uspruce_pctreselect udougfir_pct >= uspruceb_pctreselect udougfir_pct >= upine_pctreselect ularcha_pct = 0 and ularcht_pct = 0reselect udougfir_pct <= 4 and udougfir_pct >= 1calc 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 <= 1reselect uwhitelmb_pct > 0reselect fc_h_str <> 'Whitebark/Limber Pine'reselect uwhitelmb_pct <= 4reselect uwhitelmb_pct >= ularcha_pctreselect uwhitelmb_pct >= ularcht_pctreselect uwhitelmb_pct >= udougfir_pctreselect uwhitelmb_pct >= utruefir_pctreselect uwhitelmb_pct >= upine_pctreselect uwhitelmb_pct >= uspruce_pctreselect uwhitelmb_pct >= uspruceb_pctreselect ularcha_PCT = 0calc 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 <= 1reselect ularcha_PCT < 5reselect ularcha_PCT > 0calc 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 <= 1reselect ularcht_pct < 5reselect ularcht_pct > 0calc fc_m_str = 'Mixed Conifer (Larch Tamarack)'

commit/* Class added March 13, 2002

Page 55: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

55

/********************/* 73. SPRUCE WETLAND/********************/* reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'/* reselect fc_nostr cn 'Spruce'/* reselect ( umoist_reg = 'a' or umoist_reg = 'w' )/* calc fc_m_str = 'Spruce Wetland'

/* commit

/***************************/* 73a. BLACK SPRUCE WETLAND/***************************

reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect fc_m_str cn 'Spruce'reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect ularcha_pct = 0 and ularcht_pct = 0reselect larcha_pct = 0 and larcht_pct = 0reselect uspruce_pct = 0 and spruce_pct = 0reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2reselect uspruceb_pct > 0calc fc_m_str = 'Black Spruce Wetland'

commit/* Class added March 13, 2002

/***************************/* 73b. WHITE SPRUCE WETLAND/***************************

reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect fc_m_str cn 'Spruce'reselect ularcha_pct = 0 and ularcht_pct = 0reselect larcha_pct = 0 and larcht_pct = 0reselect uspruce_pct >= 2reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2reselect fc_m_str ne 'Black Spruce Wetland'calc fc_m_str = 'White Spruce Wetland'

commit/* Class added March 13, 2002

/******************************************/* 73c. BLACK SPRUCE/LARCH TAMARACK WETLAND/******************************************

reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect ularcha_pct >= 1 or ularcht_pct >= 1reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2

Page 56: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

56

reselect utruefir_pct = 0reselect upine_pct <= 2reselect uspruceb_pct >= 1calc fc_m_str = 'Black Spruce/Larch Tamarack Wetland'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect ularcha_pct > 0 or ularcht_pct > 0reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect upine_pct <= 2reselect uspruceb_pct > 0calc fc_m_str = 'Black Spruce/Larch Tamarack Wetland'

reselnselreselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect fc_m_str cn 'Larch'reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect uspruceb_pct >= 3calc fc_m_str = 'Black Spruce/Larch Tamarack Wetland'

commit/* Class added March 13, 2002

/*****************************/* 73d. LARCH TAMARACK WETLAND/*****************************

reselect density = 'A' and struc = 'M' and usp1 ne '' and udensity ne 'A'reselect ( moist_reg = 'a' or moist_reg = 'w' )reselect ularcha_pct >= 8 or ularcht_pct >= 8reselect utot_decid <= 2reselect uaspen_pct = 0reselect upoplar_pct <= 1reselect ubirch_pct <= 2reselect utruefir_pct = 0reselect uspruceb_pct < 5calc fc_m_str = 'Larch Tamarack Wetland'

/*commit/* Class added March 13, 2002

quit&return

/*=====================================================================&routine UGRASS/*=====================================================================/* Calculates forest cover classification for understory grassland components.

tablesselect %tablename%

Page 57: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

57

calc ugrass = ''

reselect nfl = 'SC' and nfl_per < 6 and struc = '' and unfl = ''calc uinitials = 'SAD'calc unfl = 'HG'calc struc = 'M'

commit

reselect struc = 'H' or struc = 'M'reselect sp1 ne '' and unfl ne ''reselect ( uanth_veg = 'CPR' or uanth_veg = '' )calc ugrass = 'unclassified'

reselnselreselect ( nfl = 'SC' and nfl_per < 6 and struc <> '' and unfl <> '' )calc ugrass = 'unclassified'

commit

/*******************/* 22. SHRUB WETLAND/*******************

reselect ugrass = 'unclassified'reselect unfl = 'SC' or unfl = 'SO'reselect umoist_reg = 'a' or umoist_reg = 'w'calc ugrass = 'Shrub Wetland'

commit

/*****************************/* 23. SHRUB MEADOW OPEN MESIC/*****************************

reselect ugrass = 'unclassified'reselect unfl = 'SO'reselect umoist_reg = 'm'calc ugrass = 'Shrub Meadow Open Mesic'

commit

/***************************/* 24. SHRUB MEADOW OPEN DRY/***************************

reselect ugrass = 'unclassified'reselect unfl = 'SO'reselect umoist_reg = 'd'calc ugrass = 'Shrub Meadow Open Dry'

commit

/*******************************/* 25. SHRUB MEADOW CLOSED MESIC/*******************************

reselect ugrass = 'unclassified'reselect unfl = 'SC'reselect umoist_reg = 'm'calc ugrass = 'Shrub Meadow Closed Mesic'

commit

/*****************************/* 26. SHRUB MEADOW CLOSED DRY

Page 58: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

58

/*****************************reselect ugrass = 'unclassified'reselect unfl = 'SC'reselect umoist_reg = 'd'calc ugrass = 'Shrub Meadow Closed Dry'

commit

/******************************/* 27. ROUGH PASTURE OPEN MESIC/******************************

reselect unfl = 'SO'reselect umoist_reg = 'm'reselect uanth_veg = 'CPR'calc ugrass = 'Rough Pasture Open Mesic'

commit

/****************************/* 28. ROUGH PASTURE OPEN DRY/****************************

reselect unfl = 'SO'reselect umoist_reg = 'd'reselect uanth_veg = 'CPR'calc ugrass = 'Rough Pasture Open Dry'

commit

/********************************/* 29. ROUGH PASTURE CLOSED MESIC/********************************

reselect unfl = 'SC'reselect umoist_reg = 'm'reselect uanth_veg = 'CPR'calc ugrass = 'Rough Pasture Closed Mesic'

commit

/******************************/* 30. ROUGH PASTURE CLOSED DRY/******************************

reselect unfl = 'SC'reselect umoist_reg = 'd'reselect uanth_veg = 'CPR'calc ugrass = 'Rough Pasture Closed Dry'

commit

/*******************/* 31. WET GRAMINOID/*******************

reselect unfl = 'HG'reselect umoist_reg = 'a' or umoist_reg = 'w'calc ugrass = 'Wet Graminoid'

reselnselreselect unfl = 'HG'reselect moist_reg = 'a' or moist_reg = 'w' and umoist_reg = ''calc ugrass = 'Wet Graminoid'

commit

Page 59: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

59

/*****************/* 31a. BRYOPHYTES/*****************

reselect ugrass = 'unclassified'reselect unfl = 'BR'calc ugrass = 'Bryophytic'

/******************/* 32. ANNUAL CROPS/******************

reselect uanth_veg = 'CA'calc ugrass = 'Annual Crops'

commit

/****************************/* 33. PERENNIAL FORAGE CROPS/****************************

reselect uanth_veg = 'CP'calc ugrass = 'Perenial Crops'

commit

/*********************/* 34. GRASSLAND MESIC/*********************

reselect unfl = 'HG'reselect umoist_reg = 'm'calc ugrass = 'Grassland Mesic'

reselnselreselect unfl = 'HG'reselect moist_reg = 'm' and umoist_reg = ''calc ugrass = 'Grassland Mesic'

commit

/*******************/* 35. GRASSLAND DRY/*******************

reselect unfl = 'HG'reselect umoist_reg = 'd'calc ugrass = 'Grassland Dry'

reselnselreselect unfl = 'HG'reselect moist_reg = 'd' and umoist_reg = ''calc ugrass = 'Grassland Dry'

commit

/*******************************/* 36. GRAVEL PITS/SURFACE MINES/*******************************

reselect uanth_non = 'AIG' or uanth_non = 'AIM'calc ugrass = 'Gravel Pits/Surface Mines'

commit

/***********************/* 37. RURAL RESIDENTIAL

Page 60: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

60

/***********************reselect uanth_non = 'ASR'calc ugrass = 'Rural Residential'

commit

/******************/* 39. NON-VEG ROWS/******************

reselect uanth_non = 'AIH'calc ugrass = 'Non-Veg ROWs'

commit

/****************/* 40. FARMSTEADS/****************

reselect uanth_non = 'AIF'calc ugrass = 'Farmsteads'

commit

/*****************/* 42. ROCK BARREN/*****************

reselect unat_non = 'NMR'calc ugrass = 'Rock Barren'

commit

/******************/* 43. CUTBANK/SAND/******************

reselect unat_non = 'NMC' or unat_non = 'NMS'calc ugrass = 'Cutbank/Sand'

commit

/***********/* 44. RIVER/***********

reselect unat_non = 'NWR'calc ugrass = 'River'

commit

/*****************/* 48. FORB MEADOW/*****************

reselect unfl = 'HF'calc ugrass = 'Forb Meadow'

commit

/*************/* 49. FLOODED/*************

reselect unat_non = 'NWF'calc ugrass = 'Flooded'

commit

/*************

Page 61: ForestCoverClassificationProcedure

Alberta Forest Cover Classification Procedure

61

/* RECENT BURN/*************

reselect unat_non = 'NMB'calc ugrass = 'Recent Burn'

/*commit/* Class added March 14, 2002

quit&return

/*=====================================================================&routine BAILOUT/*=====================================================================&severity &error &fail&echo &off&if %:program% = TABLES &then quit&return &warning An error has occurred in FC_CLASS.AML