Iteration 8
This iteration will focus on completing the first internal release of Landis-II. This alpha-1 release will just have age-only succession.
- Phase: Construction
- Dates: February 21 - March 7, 2005
Tasks to be Completed
Core Framework
- Landscape module (0.75 day)
- Add method to Site class to fetch a site's neighbor based on its relative position.
- Define a record structure to represent relative site locations.
- Define interface for input data grids with sequential data access.
- Modify the constructor for Landscape to use new interface to sequential input data grids.
- Ecoregions module (0.25 day)
- Define class to represent pixels in ecoregions map.
- Main model module (1 - 1.5 days)
- Write code to initialize landscape from ecoregions map.
- Write code to create and initialize Ecoregion site variable.
- Write code to load dataset of species parameters.
- Define a public variable (i.e., property) by which other modules and extensions access the species dataset.
- Write parser for scenario file.
- Plug-in module (0.25 day)
- Add Lookup method to Manager class: it will be used by scenario file's parser to check plug-in names. Although eventually some sort of database file of installed plug-ins will need to be implemented, initially, the names of known plug-ins will be hard-wired for expediency.
- Raster-IO module
- Landis.Raster -- Add interfaces & classes for raster metadata. (0.5 - 1 day)
- Landis.Raster.Erdas74 -- Basic implementation of raster interfaces for Erdas v7.4 file formats (GIS, LAN) by Barry.
- Cohorts module (0.5 - 1 day)
- Design an approach that ensures the current site being processed by succession and disturbance plug-ins is available to this module.
- Succession module
- Initial site communities (2 days)
- Write classes to read community definitions from text file: SiteCommunity, EditableCommunity, EditableDataset, Dataset, DatasetParser.
- Write function to initialize site cohorts using initial-site-community map.
- Reproduction
- Seeding (0.75 - 1.25 days)
- Write Neighborhood class to represent the set of surrounding sites that may seed a site.
- Write the default seed dispersal method (based on BC Ward's work)
- Seeding (0.75 - 1.25 days)
- Initial site communities (2 days)
- Utility module (0.5 - 1 day)
- Add random number generation (uniform and exponential distributions).
- Locate C# code for Mersenne Twister, a widely-used RNG that is fast and robust.
User Interface
- Console Interface (0.5 - 1 day)
- Setup new project for landis-ii-console.exe using new build software.
- Write code that takes path of scenario file from command-line arguments, and passes it to model's main module.
Extension Components
- Age-only Succession (0.5 - 1 day)
- Update the project to use the new build software.
- Revise the extension's main source file to use the core succession module in the framework.
- Write classes to read parameter file: Parameters, EditableParameters, InitFileParser.
- Output - Basic species data (0.5 - 1 day)
- Create a very simple output plug-in component that outputs maps at specific timesteps. One map per species: the maximum age for the species at each site.
Assessment
Completed March 9.
+ Summary
Thanks to Jimm's tremendous efforts, all of the scheduled tasks (above) were completed (every task was a Hit). This was by far our most successful iteration to date. Therefore, the Alpha 1 (A1) release is completed - the first fully operational version of the model. There are some clean-up operations necessary before the beta release (adding some additional inputs, creating a beta User's guide, repackaging some of the code). However, the A1 release demonstrates all of the model capabilities and potential. I cannot begin to describe how exciting it was to see it all come together. The input files are incredibly easy to use with amazing levels of validation. Best of all, the method for telling the model which modules to use is seamlessly integrated into the input - it will be incredibly easy for Users to download and use many different modules and there are no restrictions on the number of disturbance and output modules that can be used simultaneously.
Because so many pieces came together this iteration, we anticipate a beta release (to be shared externally) at iteration 10 and a public release at iteration 11 or 12 (depending on how iteration 10 goes). Please congratulate Jimm on a job well done!

