Скачать презентацию How Not to Generate Prescriptions for Landscape Analysis Скачать презентацию How Not to Generate Prescriptions for Landscape Analysis

725950a12e2c888ff39d4f763d289a8c.ppt

  • Количество слайдов: 28

How *Not* to Generate Prescriptions for Landscape Analysis Projects Jeff D. Hamann Western Forest How *Not* to Generate Prescriptions for Landscape Analysis Projects Jeff D. Hamann Western Forest Mensurationist Conference June 26, 2001

Topics • Historical prescription processing • Current tools • Problems & solutions Topics • Historical prescription processing • Current tools • Problems & solutions

. . . So you Want to Produce Some “Modeli” Runs, Do Ya… Punk? . . . So you Want to Produce Some “Modeli” Runs, Do Ya… Punk? • • What do you need? Are the tools appropriate for the objective? What’s the time frame? What’s the cost?

Step 1. How to Play Nice with Others. • Learn each application’s interface • Step 1. How to Play Nice with Others. • Learn each application’s interface • Put them all together – Run static batch mode

Aka - Batch File Hell (into the belly of ORGANON) Aka - Batch File Hell (into the belly of ORGANON)

Step 1. How to Play Nice with Others. • Learn each application’s interface • Step 1. How to Play Nice with Others. • Learn each application’s interface • Put them all together – Run static batch mode – Reformat outputs

Aka Scripting Hell Aka Scripting Hell

Step 1. How to Play Nice with Others. • Learn each application’s interface • Step 1. How to Play Nice with Others. • Learn each application’s interface • Put them all together – Run static batch mode – Reformat outputs – Check Results

Check Results • Yeah, right…. Check Results • Yeah, right….

Step 1. How to Play Nice with Others. • Learn each application’s interface • Step 1. How to Play Nice with Others. • Learn each application’s interface • Put them all together – Run static batch mode – Reformat outputs – Check Results – Check Sanity (your own)

The Eighth Amendment to US Constitution • Excessive bail shall not be required, nor The Eighth Amendment to US Constitution • Excessive bail shall not be required, nor excessive fines imposed, nor cruel and unusual punishments inflicted. • It shouldn't take an incredible amount of time, cost a horrific amount of money, and be unbelievably painful to produce yield files.

Step 2. How to Forget Step One. • • Use a database system… of Step 2. How to Forget Step One. • • Use a database system… of *any* kind Use libraries instead of stand alone software Use scripting tools like VB, PHP, and Perl Use web interfaces to support collaboration

On with the Show… • Contestant number one • Contestant number two • Contestant On with the Show… • Contestant number one • Contestant number two • Contestant number n. . .

Generating the First Database • Microsoft Access 97 • About 50 fields (before, after, Generating the First Database • Microsoft Access 97 • About 50 fields (before, after, removed) – 50 floats (@ 4 bytes) * 30 periods * 50 Rxs * 500 strata * 3 states 500 MB

Prescription Dregs, again. • Be able to swap tables (or use a subset) and Prescription Dregs, again. • Be able to swap tables (or use a subset) and still have the code function. • Use combinatorial algorithms to generate thinning events • N-ary tree algorithm will generate (n_thins^n_levels) prescriptions (3 thins and 4 thinning levels = 81 prescriptions )

Problems So Far • • Application limitations Database limitations Portability issues Operating system limitations Problems So Far • • Application limitations Database limitations Portability issues Operating system limitations

Application Limitations • ORGANON DLL – Has a unique API, multiple site indices • Application Limitations • ORGANON DLL – Has a unique API, multiple site indices • SYSTUM-1 DLL – Has a unique API, single site index • Supporting library API – Taper functions, crown functions, silvicultural functions

Database Limitations • “Upgrading” Access 97 to Access 2000 – 400 Strata fit fine Database Limitations • “Upgrading” Access 97 to Access 2000 – 400 Strata fit fine in Access 97 – <100 Strata fit in Access 2000 – What about stand tables, log tables? • Going back to Access 97 from Access 2000 • Access threading model? • Conclusions? – Access is a resource hog!

Portability Issues • VB code wouldn’t convert from one version to another. – Moving Portability Issues • VB code wouldn’t convert from one version to another. – Moving Access 95 ->97 ->2000 ->XP = : -( • Will it (VB) run in another database like Oracle?

Operating System Limitations • Remote access to retrieve data and observe progress • Windows. Operating System Limitations • Remote access to retrieve data and observe progress • Windows. NT/2000/Linux kernel 2. 2. x has 2 GB file limitations • Linux 2. 4. x kernel has >2 GB limitations

Is This Trip Really Necessary? • All 150 files took almost 8 -10 hours Is This Trip Really Necessary? • All 150 files took almost 8 -10 hours to export • 3 CDs for each database • New runs were produced twice a week • For a total of 200 CDs for each project • For three projects = 600 CDs (minus a few for Napster downloads)

The Second Database • Uses Access 97/VBA • Uses My. SQL ODBC as backend The Second Database • Uses Access 97/VBA • Uses My. SQL ODBC as backend for data • 50/50 VB and C for data generation and exporting

Performance Results* *These results are NO WAY statistically valid, defensible, or repeatable as the Performance Results* *These results are NO WAY statistically valid, defensible, or repeatable as the sample size is very, very small! **multiple threading version - estimated processing time

Visualizing Results • Export results into MS Excel • 400 strata * 50 data Visualizing Results • Export results into MS Excel • 400 strata * 50 data items = 20000 spreadsheets! • generated PHP scripts with charts to allow the user to query the runs…

Web Interface Chart Web Interface Chart

Hints/Tricks/Traps • Use a scalable database backend • Use portable methodologies and tools Hints/Tricks/Traps • Use a scalable database backend • Use portable methodologies and tools

Questions/Answers? Questions/Answers?