GeoTools : Summer of Code 2007

Last year (2006) we were pleased to take part in the Google Summer of Code program, and would like to thank Refractions Research for being our sponsoring organization. This year we are teaming up with the Open Source Geospatial Foundation, and our contact person is Frank Warmerdam.

For more information:

Accepted Projects

The following is a list of Java GIS projects - not all of these students will be in the GeoTools code base; but they will be making use of our library and asking questions.



Mentor 1

Mentor 2

Plugins for multidimensional raster data sources

Daniele Romagnoli



Caching data in uDig

Christophe Rousson




Christopher Whitney



New Transformation Algorithms for GeoTools and uDig

Jan Jezek



GeoServer Style Editor

Anthony Manfredi



Implementation of An Interactive GeoRSS tool in uDig

Rui Li



3D Rendering Pipeline for GeoTools

Hans Haggstrom



3 Dimensional Rendering Pipeline Component for GIS Servers

Michael Craig




Welcome to Students

What should you be doing?

  • sign up to the GeoTools-Devel Mailing List (Say hi to everyone)
  • sign up to the OSGeo mailing list (Say hi to Landon and Frank!)
  • Read over the acceptance letter that was sent to you
  • Plan to attend Mondays IRC meeting in order to ask questions
  • Getting svn access and reading the developers guide (your mentor will ask questions)
  • Think about what you expect from your mentors

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

  • March 12 Deadline: Mentoring organization application deadline (we should have project ideas lists)
  • March 24: Student application deadline.
    • (tick) GeoTools has recived several good student proposals
  • April 9: Project PSC ordering decisions submitted in SoC Application Rankings by Project
  • April 11: Accepted student applications announced
  • May 28: Students begin work.
  • Ongoing
    • Email the Developer List Constantly
    • IRC Meetings every Monday
    • Talk to your mentor
  • August 31: final evaluation deadline.
    • Evaluation of project results


Prospective Mentors

Can you sponsor a student? Sign up on the dotted line:

Last year we had 5 prospective mentors and only three were matched with students; please don't worry about being matched up outside of your area of your field or language comfort zone - volunteer!


Last year we found that the more information provided here the better; students will look at the kind of ideas proposed here in order to evaulate what kind of things GeoTools is interested in, and what kind of experts are available to advise them.

Background Information on Ideas

As a background 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...)

As a background for community members:

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

3D Rendering Pipeline Component (ie JOGL Data Viewer)

So here is the thing, we have all the data. Imagine it is a big funnel. Now tip this funnel into your graphics card There are lots of options, Java 3D, Java Open GL bindings, and so on.

We have even isolated some of the drawing code behind an interface already, but make no mistake this is not for the faint of heart GIS data volumes will break many of the assumptions you may be used to if you are coming at this from a gaming background.

Sanity checks:

  • This work would love to end up in uDig, there are examples of how to use JOGL with Eclipse RCP already

Parse KML into Features

One interesting new format is KML, produced by our friends over on google earth. It is a happy little vector format and is increasing in popularity. We have all sorts of amazing XML parsing mojo left over from dealing with "Geographic Markup Language", putting the two together would be a fun challenge for those that think they know what they are doing.

Go ahead impress me, tame the beast (note focus on display is easier, but getting the data would be more powerful).

Coverage Plugins for HDF, netCDF, Grib1

It would be great to have a student working on developing ImageIO plugins for these powerful formats which have libraries to handle them directly in Java. We could exploit last year's experience and then build a couple of GeoTools plugins for one or two profiles of HDF and netCDF.

General Geometric Distortion algorithms.

In GeoTools we do already have some code to perform geometric distortion correction, based on the polynomial warping capabilities of JAI. It would be great to improve this code as well as adding some new fancy stuff like:

  • new interpolation schemes for JAI (there is a nice Interpolation abstract class to inherit from...)
  • perspective warping, for the georectification of oblique images
  • piecewise polynomial warping for the precise georectification of data coming in large swaths (modis, meris, etc...)
  • splines for almost anything from simple interpolation to geometric distortion correction
  • routines for correction of some well-known geometric distortion like barrel distortion, pincushion distortion
  • ┬ásimple interactive GUI for polynomial warping with interactive calculation of Root Mean Square Error.

UDig compatibility to GRASS through JGrass

There is already java code in UDig that reads and writes GRASS 2D rasters. To have a good compatibility between UDig and GRASS there would be the need of porting (in the sense of from one design to the other) the existing raster code into the geotools coverage model and the need of porting (in the sense of from C to geotools java) the vector IO into the feature model of geotools in order to be exploited by both UDig and geoserver. Wanna be the hero that joins two worlds?

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.
    Jody Garnett