Creating a Provincial Wide Consolidated Cutblocks Layer using FME

36
Re-creating the Provincial Consolidated Cutblocks Dataset Iaian McDougall

Transcript of Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Page 1: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Re-creating the Provincial Consolidated Cutblocks Dataset

Iaian McDougall

Page 2: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

About Me Spatial Data Specialist at the Forest Analysis and

Inventory Branch (FAIB) – FLNRO

We manage the Vegetation Resources Inventory (VRI) dataset

VRI Provides answers to 2 questions: Where vegetation resource are located How much vegetation resources are in each inventory unit

Page 3: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

The VRI is too hot to handle…

Page 4: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Project Objective Re-create a provincial wide dataset of Cutblocks that:

Can be easily be replicated every year

Consolidates data from multiple sources

Is an accurate estimate (We are your best guess)

Contains Harvest Date and Timber Supply Area (i.e.forest admin boundary)

All in one FME workbench

Page 5: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Potential Challenges Provincial wide datasets

Large datasets (over 4 million VRI polygons with over 100 attributes alone)

Potential to run out of Memory (overlays will be difficult)

Several datasets stored in a Relational Database

With no write access With complex data structures

Page 6: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Definition

Cutblock - “A specific area, with defined

boundaries, authorized for harvest.” 1

1. Timber Supply Review Program. 2007. Standard glossary of terms. Revised. Forest Analysis and Inventory Branch, B.C. Ministry of Forests and Range, Victoria, B.C.

Page 7: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Aren’t Cutblocks already in the VRI?

Page 8: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Cutblock Data Sources Forest Tenures Database – stored in Oracle Relational Database

FTEN_CUT_BLOCK_POLY

RESULTS – stored in Oracle Relational Database Forest Cover Poly RSTLS OPENING POLY RSLT_ACTIVITY_TREATMENT

VRI VEG_COMP_LYR_R1_POLY

4.5 million polygons , flat file

Change Detection Landsat analysis - GDB

Page 9: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Cutblock Data Sources: VRI Dataset Aren’t Cutblocks already in the VRI?

YES….mostly HARVEST YEAR and OPENING_ID

Attributes indicates cutblock PROBLEM: They are not all there

Some OLDER openingIDs were lost during VRI re-inventories

Some cutblocks have yet to be cut into the VRI

Page 10: Creating a Provincial Wide Consolidated Cutblocks Layer using FME
Page 11: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Cutblock Data Sources : RESULTS RESULTS -Reporting Silviculture Updates and Land

status Tracking System. Designed to track

Openings (e.g. cutblocks, disturbances) Disturbances Silviculture activities

Licensees must submit all harvest activities To RESULTS

Started in 2005 , less accurate for older cutblocks Some RESULTS Submissions have been rejected

(incomplete info)

Page 12: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Cutblock Data Sources– Forest Tenures Database Licensees must submit request for Permits

Cutblocks assigned a unique Opening_ID

Status of Opening ID is updated throughout process

Generalized cutblock line work only

Page 13: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Cutblock Data Sources– Change detection

Uses change detection/Land classification procedures

Measures major differences in Landsat 7 band values year after year

Needed for missed or un updated cutblocks in Results, FTEN and VRI

Page 14: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

RESULTS

VRIMS

Annual Attribute Projectio

n

Annual BCGW Release

Phase 1

LVI

LiDAR

Wildfire

Other

FTEN

Chg. Det

Forest Tenures RESULTS VRI

Other VRI Inputs

Page 15: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Setup: Assigning Layer Priority Give each data source a priority

1. Veg_Comp_R1_Layer 2. RESULTS Forest_Cover_POLY 3. RESULTS OPENING_POLY 4. FTEN FOREST_TENURES_POLY 5. Change Detection

Remove any cutblock that exists in higher priority layer

Layers 1- 4 all have cutblocks with openings ids Some of Layer 1 has a Harvest_Date but no opening_ID

Page 16: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Dataset

Oracle Table Where Clause

VRI VEG_COMP_LYR_R1_POLY Harvest_Date > 1955

RESULTS

1. FOREST_COVER_POLY (spatial)2. RSLT_ACTIVITY_TREATMENT_UNIT

(non_spatial)3. RSLT_OPENING_VW (non-spatial)

- Internal Joins on Opening_ID- WHERE (( "SILV_BASE_CODE" = 'DN') and

("DISTURBANCE_CODE" in ('L','R', 'S') ) or (("SILV_BASE_CODE" = 'DN') and ("SILV_SYSTEM_CODE" is not null) and (“DISTUBANCE_CODE”) <> “E”))

- OR (("OPEN_CATEGORY_CODE" not in ( 'NREQ', 'NDWL', 'NDAML' , 'NDCF' , 'NDFS', 'NDVML', 'SPEX', 'SMPCF', 'SMPEX', 'SMPFS', 'SMPML', 'SMPWL')) and ((“SILV_BASE_CODE” = ‘DN’) and “Forest_File_ID” is not Null)

RESULTS

1. RSLT_OPENING_VW (spatial)2. RSLT_ACTIVITY_TREATMENT_UNIT

(non_spatial)3. FOREST_COVER_POLY (non -

spatial)

Same as above

FTEN FTEN_CUT_BLOCK_OPEN_ADMIN

BLOCK_STATUS_CODE in ('LC','S','HB') and DISTURBANCE_END_DATE is not Null and DISTURBANCE_START_DATE is not Null and DISTURBANCE_GROSS_AREA > 0.1

Setup: Extracting cutblocks from Data Sources

Page 17: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Initial attempt

• Worked well on initial small sample size• But……

Page 18: Creating a Provincial Wide Consolidated Cutblocks Layer using FME
Page 19: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Group-based transformers Feature Merger, InlineQuerier, Matcher are all group

based transformers

Hold all features in memory at a single time

Multiple group-based transformers = storing multiple copies of the data at any one time

No wonder I was using up to much memory (feature merger 8 times in 4 different streams + AreaOnAreaOverlayer)

Page 20: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

• Worked well on initial small sample size• But……

Page 21: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Reader VS SQL Creator

Reader

• Read each input table individually

• Use InlineQuerier (or Feature Merger), to Join tables

• Matcher or FeatureMerger to remove OPENING_IDS from higher priority layers

SQL Creator/SQLExecutor• Do all the joining and

filtering using SQL Statements

• Use NOT IN statements to remove OPENING_IDS from layer with higher priority

Page 22: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

SQL Creator Have Oracle do the work using

SQLCreator SQL - Joins, Where/Not IN statements

Page 23: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Updated Workbench

• Easier to Follow

• Runs in less than 1.5 hrs

• Final Result yields ~ 688 000 cutblocks polygons

Page 24: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Adding TSA Information

Page 25: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Adding TSA Information Clipper works

BUT takes 2 days to Process…..

Leaves slivers

Page 26: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Solution 1 – Adding TSA Information Use add clipper first setting

Page 27: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Solution 1 – Adding TSA Information How to get the clipper to arrive first?

Make sure it is on top of navigator

Page 28: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Solution 1 – Adding TSA Information What if using SQLCreator in the

workspace, NOT all Readers? SQLCreator SQLExecutor Use a Creator Transformer to Initiate

Page 29: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Solution 1 – Adding TSA Information Still one day to run….

Page 30: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Solution 2 – Adding TSA Information Let other programs do heavy lifting ArcGIS – Identity Tool to Add TSA info

(completes in under 1 hr)

ArcGIS Eliminate tool to eliminate slivers (completes in 1 hr)

Page 31: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Solution 1 – Adding TSA Information Incorporate a workbench into ESRI Model

Builder (requires FME Extension for Arcgis)

Create FME ETL Tool for intergration

Page 32: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

How to incorporate ArcGIS toolsOption 2

Shutdown Python Script

No extensions needed

Calls python script at end of workbench run

Page 33: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Final Results

Page 34: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Conclusion FME has enabled us to produce a script that is

All in one workspace Fast Handles large datasets

Group-Based transformers can have trouble with large data

SQL Creator and SQL Executor allow RDBMS to do heavy lifting

ArcGIS tools/python can be easily incorporated into workbench to further customize

Page 36: Creating a Provincial Wide Consolidated Cutblocks Layer using FME

Thank you!Contact info:

[email protected]@gov.bc.ca