My project proposal for GSOC 2014

posted Jun 20, 2014, 9:56 AM by Lesley Bross
I probably should have started with this :-) Here is an excerpt from my proposal for the Google Summer of Code including the deliverables and project schedule. For more information about Google Summer of Code see

Organization: Portland State University

Short description: LANDIS-II is a forest landscape model simulating forest succession, disturbance, climate change, and seed dispersal across large landscapes. LANDIS-II is used by scientists worldwide to evaluate and predict forest landscape dynamics in our changing world. LANDIS-II can only be used for one scenario at a time through a command prompt. Adding Scenario Launcher, Scenario Replicator, and Scenario Builder UI widgets to the tool will increase the approachability and usability of the application..

Benefits to the community

     LANdscape DIsturbance and Succession (LANDIS-II) is a forest landscape model simulating forest succession, disturbance (including fire, wind, harvesting, and insects), climate change, and seed dispersal across large landscapes. LANDIS-II has been used by researchers in at least eight countries spread across four continents to evaluate and predict forest landscape dynamics in a changing world. The flexible architecture of the tool allows scientists to specify which extensions (processes) best replicate the forest dynamics of interest in their study area(s). If there is not an existing extension for a process that needs to be modeled, researchers can write and share new extensions using the LANDIS-II architecture specification.
     Unfortunately, despite the sophisticated structure of the application and its advanced capabilities, it lacks a user interface (UI). Developing a UI will make LANDIS-II more approachable by a larger community of scientists who are not comfortable with launching software from an MS-DOS command prompt. In addition, the new UI will include the capability to configure multiple scenarios to run in succession. Some landscape scenarios take hours to run. The capability of configuring several scenarios to run unattended will increase the usability of the application.



     Using Visual C#, I will create two lightweight UI widgets that allow the user to run either a single scenario or multiple scenarios in batch format. LANDIS-II Core currently uses a text file with a defined schema to specify model parameters so the Scenario Launcher widget would allow users to specify the local location of this file. The Scenario Launcher will trigger the simulation after validating the contents of the configuration file, ensuring that all required elements are present and confirming that any specified supplemental text files exist. Additional validations may be included as long as this does not make the system too inflexible. The Scenario Replicator would work in a similar fashion but would be used for for multiple scenarios in succession.
     I will write a developer guide with best practices on setting up a development environment to write code for the LANDIS-II project. Developer documentation will encourage potential LANDIS-II programmers to contribute to the project.
     Finally, I will create a Scenario Builder widget that walks users through assembling the required elements for a scenario in preparation for launching. This task could be challenging as the widget needs to be user-friendly but flexible enough to easily incorporate future LANDIS-II capabilities. However, this widget offers the benefit of encouraging new, inexperienced scientists to run the forest modeling tool.
     Executables and the source code for all of the aforementioned deliverables will be freely distributed through the existing LANDIS-II code repository under an Apache License 2.0 agreement. The LANDIS-II source code repository is located at


Proposed project schedule


Week ending June 13:
•Final exams conclude at PSU
•Install Landis and configure development environment
•Receive test data from mentor to verify environment is correctly configured
•Define basic requirements for Scenario Launcher


Week ending June 27:
•Research: how to launch LANDIS from a UI; how to package UI
•Deliver Scenario Launcher with minimal validation to mentor for testing on required platforms
•Write developer documentation for configuring a LANDIS development environment 
•Flesh out validation requirements for Scenario Launcher


Week ending July 11:
•Define requirements for Scenario Replicator
•Fix bugs from initial Scenario Launcher testing
•Deliver Scenario Launcher with validation to mentor for testing


Week ending July 25:
•Define requirements for Scenario Builder
•Fix bugs from Scenario Launcher testing
•Deliver Scenario Replicator to mentor for testing


Week ending August 8:
•Deliver Scenario Builder to mentor for testing
•Fix bugs for Scenario Replicator
•Write documentation for Scenario Builder, Launcher, and Replicator


August 18 (Monday):
•Fix remaining bugs for Scenario Builder, Launcher, and Replicator
•Deliver final source code for LANDIS Scenario Builder, Launcher, and Replicator with documentation to mentor and to Google