Skip to end of metadata
Go to start of metadata

Google Summer of Code 2013 Ideas

Opticks Background


Opticks is a relatively new open-source project (since December 2007). It is an extensible remote sensing and imagery analysis desktop application. It provides a framework to process remote sensing data such as Hyperspectral (HSI), Multispectral (MSI), and Synthetic aperture radar (SAR) imagery and video. The application is written in C++ and licensed under LGPL v2.1. Extensions are written using C++ as well. You can review the available extensions and feature tour to get a better idea of what Opticks can do.

Ok, so why do you care? We think it's a pretty cool application. If you are interested in physics, this remote sensing stuff is pretty darn cool. And if you are a programmer, making all of this work on a desktop while processing large imagery (> 4GB) exposes you to some pretty cool stuff as well.

For more background, see the history of Opticks.

Expectations for Students


Refer to the osgeo summer of code page for information on expectations and application.

Mentored Projects


Many projects indicate knowledge of the Opticks API is suggested. If you are not already familiar with the API, your mentor can help you re-assess the scope of the project to allow time to learn the API. Some projects indicate knowledge of the Simple API is suggested. This is a much smaller, data-centric API used mostly by the Opticks scripting languages. It is much easier to learn than the full Opticks API but does not allow for all the advanced visualization and integration capabilities. It is quite sufficient for data processing algorithms.

Need to learn more about Opticks and extension development? Check out learning resources.

Spectral Signature Evaluation Tools

Potential Mentor: Nathan Jennings, Dustan Adkins, Trevor Clarke

Knowledge: C++, IDL, or Python, Simple API, digital image processing programs

Description: Build one or more tools to evaluate spectral signatures based on spectral signatures created from an Area of Interest (AOI)/Region of Interest (ROI). Tools may include graphical based (e.g. dendrogram), histogram comparisons (one to many histograms at a time), and tabular (e.g. Transformed Divergence, Jeffries-Matusita measures).

What you'll learn: You'll learn about the Opticks data model and data processing framework. You'll learn about spectral statistics, image histograms, and creating spectral signatures. This is a great project for remote sensing scientists, computer scientists, and programmers with some digital image processing background.

Accuracy Assessment Tools

Potential Mentor: Nathan Jennings, Dustan Adkins, Trevor Clarke

Knowledge: C++, IDL, or Python, Simple API, digital image processing programs

Description: Build a tool to create a standard error matrix table that include all categorical and overall error measures for assessing the accuracy of thematic image classifications. Typical "truth" data are represented by Areas of interest (AOI)/Regions (ROI) of interest that include groups of pixels representing a single cover type and are compared against a resulting image classification for these same pixels. Error measures include User's and Producer's categorical accuracies, Overall accuracy, Variance, and KHAT, and associated 95% confidence intervals.

What you'll learn: You'll learn about the Opticks data model and data processing framework. You'll learn about error matrix statistics, Areas of Interest/Regions of Interest, and image classification. This is a great project for remote sensing scientists, computer scientists, and programmers with some digital image processing background.

Complex Band Ratios and Transformation Tools

Potential Mentor: Nathan Jennings, Dustan Adkins, Trevor Clarke

Knowledge: C++, IDL, or Python, Simple API, digital image processing programs

Description: Build one or more tools to perform a variety of band ratios and image transformation for biophysical parameters, such as SAVI, Tasseled Cap, Soil Moisture Index, etc. Expand upon the Band Math calculator to utilize multiple image bands/wavelengths in the computations. Refer to Remote Sensing and Image Interpretation, Lillesand, Kiefer, and Chipman or Introductory Digital Image Procesing, Jensen. See the NDVI algorithm in the Spectral Processing extension for an example.

What you'll learn: You'll learn about the Opticks data model and data processing framework. You will learn about band ratios and image transformations related to biophysical measure such as plant stress/health, water content, soil moisture, wetland health, etc. This is a great project for remote sensing scientists, computer scientists, and programmers with some digital image processing background.

Video Tracking Framework

Potential Mentor: Trevor Clarke

Knowledge: C++ and Python

Description: Add a framework and sample algorithm(s) for video tracking. This would include data structures to store and display track information and export track data to external files. Ideally, this would be available in the standard Opticks API and the SimpleAPI (for Python use).

What you'll learn: You'll learn about the Opticks data processing framework, object detection and tracking.

JavaScript Wizards

Potential Mentor: Trevor Clarke

Knowledge: C++ and JavaScript

Description: There is an existing prototype which provides JavaScript based wizards and a JavaScript Opticks scripting interface. The existing code is very basic and is missing a number of features and bug fixes. Expand and validate the existing code so that it can be integrated into the Opticks trunk.

What you'll learn: You'll learn about the Opticks data processing framework, wizards, and the v8 JavaScript engine.

A Python Callable Opticks Module

Potential Mentor: Trevor Clarke

Knowledge: C++ and Python

Description: Current Python support in Opticks embeds a Python interpreter in the Opticks framework. It would be nice if there was a Python module which can be used outside of Opticks to perform batch processing and possibly some interactive processing.

What you'll learn: You'll learn about the Opticks data processing framework, the Python interface, Python module programming, and the internals of the Opticks framework.

Integrate with the Virtual Observatory (VO) project

Potential Mentor: Trevor Clarke

Knowledge: C++, IDL, or Python, Simple API, astronomical processing techniques

Description: Astronomical data processing is similar to remote sensing processing but has its own set of processing algorithms and tools. This project would implement importers, exporters, and other plugins for use with the Virtual Observatory (VO) project.

What you'll learn: You'll learn about the Opticks data model and data processing framework. You'll learn about astronomical data and exploitation of astonomical images and point source data. This is a great project for astonomy students, backyard astronomers, computer scientists, programmers with some astonomy background, or other physics students with some programming background.

Previous Work: Previous astronomy processing work can be found here.

Pick Your Own Project

Description: If the previous ideas don't interest you, here are some topics to help you choose your own idea. If you decide to do something different than the ideas mentioned in the previous section, we suggest you speak with some of the Opticks developers to help you find a mentor who can help with your project.

  • Add video processing, object tracking, and other time series data processing algorithms
  • Add new capability to perform multi-source data fusion, specifically algorithms for combining and visualizing the data.
  • Implement voxel-based 3-d world generation for change detection/object tracking. See http://www2.computer.org/portal/web/csdl/doi/10.1109/CVPR.2007.383073 for details on relevant paper detailing the technique.
  • Add a "coverage viewer" which shows coverage of data sets in a certain directory on a map/globe.
  • Investigate/implement capability that better integrates Opticks with various OSGEO applications (e.g.: QGIS or Zoo).

Learning Opticks


Learning the application

Learning about extension development

Learn about the SimpleAPI

  • The Simple API is a bundled with the Opticks SDK, it is a C only API and is located in "Application\SimpleApiLib" once you extract the SDK download.
Labels
  • None