GLIMSView Extensibility Project
Sponsor Information:

Deborah Lee Soltesz, dsoltesz@usgs.gov
US Geological Survey, 2255 N. Gemini Drive, Flagstaff, AZ 86001


Project Overview:

GLIMS (Global Land Ice Measurements from Space) is an international project designed to monitor the world's glaciers primarily using data from the ASTER (Advanced Spaceborne Thermal Emission and reflection Radiometer) instrument aboard the EOS Terra spacecraft. The project uses a software package, called GLIMSView, developed in-house. GLIMSView is a cross-platform (Linux, Windows) application intended to aid the process of glacier digitization for the GLIMS project. Specifically, it allows the users to view various forms of satellite imagery, digitize glacier outlines within it, attach GLIMS specific attributes to segments of these outlines, and export them to the ingest format (i.e. shapefile) described in the GLIMS documentation. An ingest files created with this tool is able to be directly inserted into a database of similar digitizations that can then be anylized for scientific purposes. GLIMSView has been designed specifically for this functionality. GLIMSView is currently a "work in progress" started by NAU CET alumnus Dan Mingus. The software is currently maintained by Deborah Soltesz, who has been working on the bug list, wish list, and completing the software's functionality. Software documentation can be found at www.glims.org/glimsview.

Recently, a new project is examining the processes used by GLIMS to monitor glaciers in hopes they can be adapted to monitoring eolian features (sand dunes, ripples, and other features caused by or deposited by wind) on Mars. Specifically, the project hopes to adapt GLIMSView to this purpose. The goal would be to have a single software package that could handle the needs not only of both these projects, but similar inventorying and monitoring projects on other planets or satellites and/or involving different types of features and classifications. The refactor needed by GLIMSView would give the software the following added flexibility:

  1. Allow user to choose between project-specific modes (GLIMS glacier or Mars eolian)
    • This is the heart of the project. This task involves modifying the glacier-specific segments of the software to operate only in one of several modes, and create a system by which additional modes can be added easily. Possible solutions could involve (1) building GUI components on-the-fly using an XML file which describes the data elements to be collected for a particular mode (thus, adding a new mode would simply involve creating a new set of XML files to describe the data to be collected), or (2) new modes could be added by creating child classes that define the custom GUIs and other program elements specific to each mode.
  2. Use non-terrestrial (Mars) geographic projections
    • This might be straightforward - the (terrestrial) geographic projections are in a third-party library, but how straightforward adding another projection library is has not been analyzed.
  3. Open (Mars) mission image data
    • This is straightforward - the image data formats are child classes of a generic "Image" interface. Adding new image data formats is a matter of writing a new child class to handle a particular format.

The project entails both working within the current design to modify existing components, and potentially designing new components to add new features to the package. At the successful completion of this project, the "official" and "Capstone" versions will be merged, thus tracking and documenting changes will be of utmost importance -- the official version of GLIMSView will continue to be modified during the period of the project.


Prerequisites:

Required: Experience with Object Oriented design and programming.

Helpful: Experience with C++ development on Windows and Linux. Familiarity with Qt (Trolltech) and XML.


Equipment Requirements:

Required: In order to test cross-platform compatibility, the team should have access to Windows 2000 or Windows XP, and an IBM-compatible Linux workstation (preferably SuSE 9+). All systems will need a C++ compiler, and students will need to install the (free) third-party libraries needed by GLIMSView. Students will be expected to develop on their own or University equipment. Occasional supervised access can be granted to any of the listed platforms for testing purposes they do not have access to through the University, and an equipment and/or software loan is possible if needed.

 


Deliverables:

The student team will be expected to propose and deliver:

  • an acceptable solution to the problem in the form of a final software package that works correctly on both Windows and Linux platforms;
  • final design documentation illustrating the class structures created/modified by the software redesign;
  • incremental demonstrations;
  • well designed and documented code that follows the in-house coding and documentation standards;
  • and additional programmer documentation as needed to supplement in-code documentation, particularly how-to's outlining how to add new modes, projections, etc.

Electronic delivery of all documentation in PDF, HTML, or Microsoft Word is preferred. Much of the documentation may be integrated into the GLIMSView web page (www.glims.org/glimsview). Where appropriate, expanding on existing documentation and using existing styles are encouraged.