GeoTools : Summer of Code 2009

We are teaming up with the Open Source Geospatial Foundation, and our contact person is Wolf Bergenheim.

For more information:

Proposed Ideas

The following is a list of proposed Java GIS projects for GeoTools. Students can add their own ideas.


Welcome to Students

What should you be doing?

  • Have a look at the ideas listed on this page and consider what you want to do with Geospatial Java
  • Download GeoTools and try making a simple Application or Test case

Welcome to Mentors

What should you be doing?

GeoTools Planning

The rest of this page is dedicated to all the organizational stuff we need on our end, timelines, sample ideas, and so on...




(info) Students add your ideas below here below!(info)

Background Information for Students

  • GeoTools is one of the oldest Java Open Source projects around, we have weekly meetings and a sane developers guide
  • Contributions made to GeoTools will have a large impact on the field, it is a great spot to get some science done and a very receptive community for "mad plans to conquer the world (even if just a digital world)
  • Preference will be given to a contributions with a visible result (Command line tool or Swing demo for GeoTools, GeoServer community module for J2EE, uDig community plugin for desktop etc...)

Background for GeoTools Community

  • Scope: Please make sure your idea can be accomplished in a summer without wrecking a student's happiness
  • Difficulty: Please make sure ideas are enough of a challenge to engage students (and keep them involved for later)

Sample Idea to cut and Paste

h3. Lite Swing Example

GeoTools used to have a StyledMapPane viewer that a lot of people used as an
example when creating their own Applications (and Applets - remember GeoTools
is old). This example was dropped after years of neglect (it was not updated
to an OGC compliant CoordinateReferenceSystem implementation if you must know).

Can you *please* over the course of the summer make us a new "lite" example.
We are excited by the idea of the Spring RCP framework (so you could test your
component there), but the example should be "lite" enough to work as an applet.

JMagick integration.

JMagickis an open source Java interface ofImageMagick. It is implemented in the form of Java Native Interface (JNI) into the ImageMagick API. Jmagick has proven to be very fast and quite stable with jpeg and png files especially when compared to imageio plugins.

It would be great to try and hide JMagick behind imageio-ext (some work has already been done in this direction in order to later expose imageio-ext plugins as geotools plugins. 

MrSID and ECW plugins based on gvSIG JNI wrapper.

gvSIG has direct JNI wrapper for ECW and MrSID. Even if the license is not fully compatible with the geotools one it would be nice to provide a few imageio-ext plugins to expose this capabilities in geotools afterwards.

GCP Support in GeoTiff plugin.

It would be nice to add support for Ground Control Points in the GeoTools geotiff plugin. This would mean doing some refactor of the current plugin. We could also port the work performed last year by Jan during the SoC 2007 on warping into geotools trunk.

BigTiff support.

Actually SUN's ImageI/O doesn't provides support for BigTIFF format. Tiff files size is limited to 4GB (Having file offset encoded as a 32 bit values).
BigTIFF format allows to handle larger files. It would be great to extend ImageIO capabilities by adding suppor to BigTIFF.
Further details on BigTIFF are available at BigTIFF file format proposal page.

WCS Client library

It would very useful for the users to have a GeoTools client library for WCS similar to the ones for WMS and WFS. They could retrieve raster sub-datasets for processing or visualization on GeoTools based clients.

Emergency Response or MIL2525B Symbols

There are additional "well known" symbols besides those mentioned in the Style Layer Descriptor specification, it would be very valuable to make the Emergency Response and MIL2525B symbol sets available to the community.

Here is an RnD page: Custom Symbols for MIL2525B and EmergencyResponse

H2 spatial indexing

Currently we have a data store implementation based on H2. To be a true format for handling large amounts of data a spatial index is needed. H2 itself does not have a built-in R-tree index. Therefore a alternative method of spatial indexing is required. A proposed solution is to use the approach taken by arcsde in which indexes are built with auxiliary tables. This project involves exploring and implementing that type of index in H2.

Geo-spatial analysis with R

R is an open-source, multiplatform language and environment for statistics. It consists of a core application together with a huge number of available packages, each of which provides additional analytical capabilities. R has become widely used for geo-statistics (see here for a summary).

A very interesting and useful SoC project would be to explore ways in which GeoTools could work with R: exchanging data, running analyses and visualizing results. This work would be at proof-of-concept level.

Analytical coverage

An analytical coverage can be thought of as ...a spatially bounded set of direct positions, and a mathematical function that relates direct position to feature attribute value (quoted from here).

This SoC project would explore how analytical coverages could be implemented in GeoTools. One possible starting point is Jiffle, a scripting language for raster data (images, grid coverages) which might provide the basis for a spatially-aware, expression evaluator working in continuous space.


Acceptance Letter

The following is a Sample Letter for Mentors to send out - we need to cover the following points:

  • How to Participate
  • How to get SVN Accesss
  • Jira
  • Confluence
  • Weekly Meetings
  • Contact information (for mentor)

All of these should be links to the developers guide ...

  • Subject: Welcome to GeoTools Summer of Code
  • To:
  • Message:

    Congratulations and Welcome to GeoTools Summer of Code.
    Your proposal INSERT GREAT IDEA HERE was selected.
    My name is Jody Garnett and I have the pleasure of being your mentor over the course of the summer. I am located in the Victoria, Canada (Pacific Time Zone) so a lot of our communication will be via email, IRC and the usual open source tools of the trade.
    There are a few details, including contact info, about myself here:

    I am of course available to answer your questions, but most of the time we will be on the public email lists - since our goal is to get you involved in the community.
    I understand that your project will not start until May 28th, however there are a few things you can do to get ready.
    Read the Developers Guide:

    The developers guide has detail on how to check out and compile, and covers a lot of the steps we will take during your first week: requesting an unsupported module, obtaining svn access, and so on.
    When your project starts there will be a couple of ways to make progress visible to the community. We ask you to make a blog entry (on the GeoTools site) and attend the weekly IRC meeting. There will also be a wiki page and issue tracker for your module.
    For right now it would be great if you subscribed to the developers email list:

    Once subscribed you can send an email introducing yourself to the community, and then I recommend lurking until your finals are done.
    Simone Giannecchini