GeoTools : Summer of Code 2008

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

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


  • (tick) March 3: Mentoring organizations can begin submitting applications to Google (~12 noon PST/19:00 UTC).
  • (tick) March 12: Mentoring organization application deadline (12 noon PDT/19:00 UTC).
  • (tick)  March 13-17: Google program administrators review organization applications.
  • (thumbs up) March 17: List of accepted mentoring organizations published on (~12 noon PDT/19:00 UTC). (OSGEO was accepted)
  • (lightbulb)  March 17-24: Would-be student participants discuss application ideas with mentoring organizations.
  • (grey lightbulb)  March 24: Student application period opens (~12 noon PDT/19:00 UTC).
  • (grey lightbulb)  March 31: Student application deadline 5:00 PM PDT/00:00 UTC April 1, 2008.
  • (grey lightbulb)  Interim Period: Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant.
  • (grey lightbulb) April 11: 00:00 PDT / 07:00 UTC** All mentors must signed up and all student proposals matched with a mentor;
    • IRC meeting to resolve any outstanding duplicate accepted students (timing TBD).
  • (grey lightbulb) April 14: ~12 noon PDT / 19:00 UTC** Accepted student proposals announced on the Google Summer of Codehome page.
  • (grey lightbulb) May 26:
    • Students begin coding for their GSoC projects;
    • Google begins issuing initial student payments provided tax forms are on file and students are in good standing with their communities.
  • (red star)  July 7: ~12 noon PDT / 19:00 UTC** Mentors and students can begin submitting mid-term evaluations.
  • (red star)  July 14: 12 noon PDT / 19:00 UTC** Mid-term evaluations deadline;
    • Google begins issuing mid-term student payments provided passing student survey is on file.
  • (red star)  August 18: ~12 noon PDT / 19:00 UTC** Firm 'pencils down' date. Mentors, students and organization administrators can being submitting final evaluations to Google.
  • (red star)  September 1: 12 noon PDT / 19:00 UTC** Final evaluation deadline;
    • Google begins issuing student and mentoring organization payments provided forms and evaluations are on file.



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

KML Reader / Writer support

 see email here

Raster polygonalization

 It would be great to have some raster-to-feature algorithm in geotools. GeoSolutions has some old code to contribute  but probably it would be worth investigating a new approach. There is plenty of documentation out there on this task.

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.

Image mosaicking/pyramid plugins handling tiles within JDBC database

A Christian Mueller proposal

Inspired form Oracle Spatial Raster, ArcSDE and the geotools file based image plugins I decided to develop a geotools plugin for image mosaicking and pyramid handling/storing georeferenced tiles in a jdbc database.

As prerequiste work I wrote a python utility for tiling images and retiling already tiled images (it produces tiled images and a shape file for georeferencing). This utility was contributed to the gdal project

The basic idea is to have a spatial table storing the georeferenced tile info and a data table storing the image data in encoded form (formats supported by JAI).
It should also be possible to use only one table storing both kinds of information. There is one master table holding the info for all coverages/pyramids. Each entry in this table can reference his own spatial/image table.
Since there are many naming conventions in different enterprises, all table and attributenames are configurable using a xml file. DB Connect configuration (JNDI or standard) is also configurable.

  • Based on the fact that JAI native support is not available on all platforms and most modern CPUs are dual/quad core architectures, building a multithreaded architecture is one of the targets. Each Tile decoding and possible cropping should be one Thread. (Thread implementation relies on SDK 5.0.)
  • CRS conversion (Resampling) should be possible.
  • Another target is to use this plugin for WMS in GeoServer.
  • Supported Databases include Oracle, DB2, mysql, postgis.

Not included is an import utility. Import jobs for different databases are individual, perhaps we should document some samples.

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


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