Personal tools
You are here: Home For Developers LANDIS-II Iteration 12

Iteration 12

This iteration will focus on the first candidate for the official release. The goal of the release candidate 1 (RC1) is to complete the implementation of all the features of the official release, so the next (and final) iteration can focus on preparing the official release for distribution.

  • Phase: Transition
  • Dates: May 25 - June 15, 2005

Tasks to be Completed

Core Framework

  • Main module
    • Add RandomNumSeed parameter to scenario file. This parameter will allow the user to reproduce specific program behavior which is necessary for testing and debugging purposes.
  • Plug-ins module
    • Add a new cleanup method to the interfaces for all types of plug-ins. This method will allow the core to shutdown a plug-in properly so it can release critical system resources (for example, close a log file).
  • Cohorts module
    • Extract the age-only interfaces and classes from the core framework into a separate libary.
  • Ecoregions
    • Change the ecoregion maps to use 16-bit unsigned pixel data.
  • Species
    • Allow -1 for the effective-seeding-distance parameter. This special value will designate for the Ward seed-dispersal algorithm that the species is universally present on the landscape.

Plug-in Components

  • Succession library
    • Allow the use of 16-bit maps for initial communities.
    • Re-evaluate the performance vs parameter-checking issue between the 2 implementations of Brendan Ward's dispersal algorithm currently in the library. This will determine which implementation should be removed from the library.
    • Modify the Ward dispersal algorithm so that -1 for a species' effective-seeding distance results in the species being considered universally present on the landscape. Therefore, no searching for sites is done.
  • Age-only Succession
    • Add new parameter to initialization file that allows user to select the seeding algorithm: no dispersal, universal dispersal, Ward seed dispersal.
  • Fire
    • Design and write the code for this disturbance component. (Rob)
    • Create a user guide. (Rob)
  • Reclass
    • Design and write the code for this output component. (Rob)
    • Create a user guide. (Rob)
  • Administration
    • Design and implement the process for installing a plug-in. This process must update the local "database" file of installed plug-ins on a user's machine, and must update the local web page of user documentation to include the new plug-in's user guide.
    • Design and implement the means by which a user can view a list of plug-ins installed on her machine. This list must include the names for the plug-ins that are used in scenario files.

Raster Drivers

  • Erdas 7.4
    • Modify the driver to allow both unsigned & signed pixel data. The Erdas documentation is ambiguous about the signed issue, so for greater flexibility, the client code that's calling the driver will inform the driver to treat the pixel data as either unsigned or signed, based on the client's needs.

Documentation

  • Add version #'s to existing user guides. (Rob)
  • Develop a common organizational structure for user guides to improve readability. Update existing user guides accordingly.

Deployment

  • Release Candidate 1
    • Research the security issues with not signing our assemblies. Signing is needed for certain internal tests to work, and yet we want to avoid having to rebuild plug-ins if only internal changes are made to the core modules.

Assessment

Summary

Iteration 12 was larger than we anticipated - there were many minor details that needed to be finished - although we did complete Release Candidate 1 on time. One of the largest obstacles was the creation of the fire and reclass output extensions. Completing Release Candidate 1 was an incredibly useful exercise - it forced us to identify and address many many details and reexamine our priorities. Completing the fire extension proved valuable for catching some earlier errors in the wind extension. Finally, the complete package has enough value that it is already attracting users.

Lessons Learned

Having better Developer's documentation would certainly ease the transition for internal and external developers.

Hits and Misses

Hit Added RandomNumSeed parameter to scenario file.

Hit Added a new cleanup method to the interfaces for all types of plug-ins.

Hit Extracted the age-only interfaces and classes from the core framework into a separate libary.

Hit Changed the ecoregion maps to use 16-bit unsigned pixel data.

Miss Allow -1 for the effective-seeding-distance parameter.

Hit Allow the use of 16-bit maps for initial communities.

Hit Evaluated the performance vs parameter-checking issue between the 2 implementations of Brendan Ward's seed dispersal algorithm in the succession library. The faster implementation does not validate site locations. When validation was added to this implementation, the run time for the BCWA scenario used for performance testing increased by 1.1% from 49:19 (mins:secs) to 49:52. This slight performance hit is acceptable, so this modified implementation with location validation was retained as the sole implementation in the library.

Miss Modify the Ward dispersal algorithm so that -1 for a species' effective-seeding distance results in the species being considered universally present on the landscape.

Hit Add new parameter to initialization file that allows user to select the seeding algorithm: no dispersal, universal dispersal, Ward seed dispersal.

Hit Designed and wrote the code for the Base Fire extension.

Hit Created a User Guide for the Base Fire extension.

Hit Designed and wrote the code for the reclass output extension.

Hit Created a User Guide for the reclass output extension.

Miss Design and implement the process for installing a plug-in.

Miss Design and implement the means by which a user can view a list of plug-ins installed on her machine.

Hit Modified the ERDAS 7.4 driver to allow both unsigned & signed pixel data.

Hit Added version #'s to existing user guides.

Hit/Miss Did some research about the security issues with not signing our assemblies, but not enough to make a decision regarding the matter.

Document Actions