280 likes | 294 Vues
Explore the historical and current tools, problems, and solutions for generating prescriptions in landscape analysis projects. Learn how to collaborate effectively, utilize database systems, and address software limitations for optimal results.
E N D
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
...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 • Put them all together • Run static batch mode
Step 1. How to Play Nice with Others. • Learn each application’s interface • Put them all together • Run static batch mode • Reformat outputs
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….
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)
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. The Eighth Amendment to US Constitution
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 number n...
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 500MB
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
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 Access2000 • 400 Strata fit fine in Access97 • <100 Strata fit in Access2000 • What about stand tables, log tables? • Going back to Access97 from Access2000 • Access threading model? • Conclusions? • Access is a resource hog!
Portability Issues • VB code wouldn’t convert from one version to another. • Moving Access95->97->2000->XP = :-( • Will it (VB) run in another database like Oracle?
Operating System Limitations • Remote access to retrieve data and observe progress • WindowsNT/2000/Linux kernel 2.2.x has 2GB file limitations • Linux 2.4.x kernel has >2GB limitations
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 Access97/VBA • Uses MySQL 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 sample size is very, very small! **multiple threading version - estimated processing time
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…
Hints/Tricks/Traps • Use a scalable database backend • Use portable methodologies and tools