Skip to end of metadata
Go to start of metadata

Google Summer of Code 2014 Ideas

Opticks Background


Opticks 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.

We're always open to your ideas. If you have a project you would like to work on which isn't on this page, just ask us! Our mentors have many interests and they may align with yours. The suggestions on this page represent the current direction that Opticks is pointing and are a great place to start. We've already done some of the background work as well, so you've got a ready-to-go project. You can also look at the modification history for this page to see what suggestions we've made in prior years.

Our focus in 2014 is on point cloud (primarily LIDAR) processing and display.

PDAL Point Cloud Data Importer

Potential Mentor: Dustan Adkins, Trevor Clarke, Michael Considine

Knowledge: C++

Description: Build an importer using the PDAL library. PDAL is meant to be a generic point cloud access library with some basic filtering and processing. This would allow Opticks to load many more point cloud data sources and provide some additional processing. Be aware that PDAL has not yet reached version 1.0 and is not a mature project. The importer should work on Windows 32-bit, Windows 64-bit, and Linux 64-bit (preferably RedHat or Centos  but Ubuntu works too).

What you'll learn: You'll learn about the Opticks data model and importer framework. You'll learn about PDAL and point clouds. This is a great project for programmers without a remote sensing background since you won't need any knowledge about how to process point clouds.

PCL Processing Algorithms

Potential Mentor: Dustan Adkins, Trevor Clarke, Michael Considine

Knowledge: C++ or Python, Basic point cloud processing knowledge

Description: The point cloud library (PCL) is a mature library of routines for processing point clouds including segmentation, classification, and registration. This project would wrap some of the PCL algorithms in Opticks plugins. The specific list is up to you but if you'd like to tackle this project, you can ask us for a sample list. The algorithms should work on Windows 32-bit, Windows 64-bit, and Linux 64-bit (preferably RedHat or Centos  but Ubuntu works too).

What you'll learn: You'll learn about the Opticks data model and algorithm framework. You'll learn about point cloud algorithms and processing with PCL. This is a great project for programmers with a basic point cloud background since you are primarily wrapping an existing library. This is also a great project for scientists interesting in working with LIDAR.

Point Cloud Histogram Support

Potential Mentor: Dustan Adkins, Trevor Clarke, Michael Considine

Knowledge: C++

Description: We've recently added point cloud support to Opticks and we've got a whole list of features we'd still like to implement including histogram and stretch support. Opticks has an advanced histogram view for use with raster data and we'd like something similar for point clouds. The histogram should display the same statistics as raster elements for the active display component (height, classification, intensity, etc.) and should allow the user to adjust stretch settings just like with raster data.

What you'll learn: You'll learn about the Opticks data model and display framework. This is a great project for programmers who enjoy working with GUIs and would like to learn more about the internals of Opticks.

Ancillary Data Support

Potential Mentor: Dustan Adkins, Trevor Clarke, Michael Considine

Knowledge: C++

Description: We've recently added point cloud support to Opticks and we've got a whole list of features we'd still like to implement including ancillary data support. Point clouds can currently contain and display intensity, height, and classification information. We'd like to add support for user defined data which can be added by algorithm plug-ins.

What you'll learn: You'll learn about the Opticks data model and display framework. This is a great project for programmers who enjoy working with GUIs and would like to learn more about the internals of Opticks.

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.

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