Monday, July 27, 2015

FOSS4G 2015 Europe talk from Ian Turton

I would like to pass on an excellent talk by Ian Turton.

This presentation is a great introduction to using an enjoying open source software for everyone, entertaining illustrated with examples from the GeoTools project.

A big thanks to Ian for this presentation and his long standing outreach efforts. Champions like this make GeoTools a friendly place to work for everyone involved.

We hope everyone enjoyed FOSS4G 2015 Europe and look forward to seeing you in Seoul!

Earning Your Support Instead of Buying It

Wednesday, June 17, 2015

GeoTools 12.4 Released

The GeoTools community is pleased to announce the availability of GeoTools 12.4:

This release, which is also available from our Maven repository, is made in conjunction with GeoWebCache 1.6.2 and GeoServer 2.6.4. This is a maintenance release of the GeoTools 12 series recommended for production systems.

A few highlights from the GeoTools 12.4 release notes:
  • Improved handling of the van der Grinten projection
  • Layer-by-layer control of raster interpolation
  • Dynamic raster styling with CQL expression support for color map entries
  • Stability improvements for Oracle curves, geometry decimation, JSON support, GeoTIFF, and World image formats
  • Other fixes: see the release notes for details
Thanks to Ben Caradoc-Davies (Transient Software Limited) for this release. Thanks also to Jody Garnett (Boundless) for help with Jira release automation.

About GeoTools 12

Tuesday, May 26, 2015

GeoTools 14-M0 Tech Preview

GeoTools is pleased to announce GeoTools 14-M0 as a technology preview:
This release is also available from our maven repository. This release is made in conjunction with GeoServer 2.8-M0 and the next release of GeoMesa.
This release is a "technology preview" giving projects, specifically GeoMesa and GeoGig, a chance to try out a new version of GeoTools that uses EJML for matrix calculations.
While we do not often release milestone releases please reach out to us if your project needs a new copy of GeoTools.
Our release-notes are now available from their new home at
  • Change from vecmath to EJML
  • JAI-EXT integration in geotools, adding native support for NODATA in rasters
  • Allow extshape://arrow to receive parameters to specify its proportions [GEOT-5126]
  • Add AUTO:97001 and AUTO:97002 projections
  • Add read and write support for curves in Postgis data store [GEOT-5100GEOT-5112]
  • Add write support for curves in PropertyDataStore
  • Add support for by layer interpolation methods to StreamingRenderer [GEOT-5064]
  • Significantly speed up GML 3.x encoding speed for simple features [GEOT-5082]
  • New projections supported: sinuoidal, gnomonic
We encourage everyone to take this opportunity test their application against the new version of GeoTools. We are very interested in any accuracy or performance differences.

CodeHaus Migration

We previously a migration schedule for moving our issue tracker from CodeHaus to Atlassian cloud hosting.
This migration is still ongoing. Issue title, description and comments have been ported over. Please wish Harrison Grundy well as he ports the remaining status and issue metadata.
CodeHaus shuts down completely on May 29th.


Efficient Java Matrix Library (EJML) is a linear algebra library for dense matrices. EJML has been integrated as a replacement for the Java 3D vecmath library which has been used previously. 
GeoTools uses linear algebra extensively during CoordinateReferenceSystem math transformations. In testing EJML we have noticed some difference with the accuracy of matrix inverse operations, but performance seems to remain steady.
This milestone release completes the work of the FOSS4G code Sprint to replace vecmath.

Tuesday, May 19, 2015

GeoTools 13.1 Released

The GeoTools community is happy to announce the latest  GeoTools 13.1 download:
This release is also available from our maven repository. This release is made in conjunction with GeoServer 2.7.1.
This is a release of the GeoTools 13 Stable series recommended for production systems. The release schedule now offers 6 months of stable releases followed by six months of maintenance releases.
For the full list of bug fixes and improvements, see the GeoTools 13.1-Release Notes.

Update: There were some changes missing from the 13.1 release, so it has been updated. If you downloaded GeoTools 13.1 before 2015-05-20 22:30:00 UTC, please re-download it.

Monday, April 20, 2015

GeoTools 12.3 released

The GeoTools community is happy to announce the latest  GeoTools 12.3 download:

This release is also available from our maven repository. This release is made in conjunction with GeoServer 2.6.3.
This is a maintenance release of the GeoTools 12 series recommended for production systems. 
A few highlights from the GeoTools 12.3-Release Notes:
  • A number of small bug fixes and improvements in raster data sources (image mosaic, NetCDF, GeoTiff)
  • Robustness improvement in advanced projection handling (an optional rendering feature that will cut geometries inside the projection valid area, handle difficult spots list poles/dateline, and wrap data Google maps style)
  • Improvement in raster reprojection quality and robustness
  • Improved ability to read topologically invalid geometries out of Oracle stores (non closed rings in polygons)
  • Added a way to dispose of Commons HTTPClient connection pools in WMS client, quite important to avoid leaking native threads (the pool uses a thread for cleanup purposes)
  • A number of other fixes, check the release notes for full details
Thanks to Andrea (GeoSolutions) for this release.

About GeoTools 12

Friday, March 27, 2015

FOSS4GNA Code Sprint Replacing Vecmath

As Torben indicated on the geoserver blog we got together for a one day sprint after the foss4gna conference. Torben stole my picture for that post so I will have to stick to content ...

Our topic of choice ... replacing vecmath. The use of vecmath library has been a long standing "technical debt" for GeoTools. How long standing? The issue tracker number is GEOT-22.

So what is the problem with vecmath

The vecmath.jar is used by gt-referencing for coordinate system transformations. We only uses a couple classes form the library: primarily to implement GeneralMatrix for use in MathTransforms.
GeneralMatrix extending GMatrix
There is one small problem with this idea - vecmath is not open source! Technically vecmath is distributed as part of Java 3D (an extensions to the Java Virtual Machine). As an extension to Java it was distributed under the same licenses (Sun Binary License and a Research License) as Java.

With the GeoGig project going through LocationTech incubation we have a couple ways to use jars:
  • prerequisite: open source jars required to run
  • works with: optional jars that extend the functionality if present. These may be proprietary like an oracle database driver.
Although the vecmath license is fine for distribution it does not meet the strictly open source policies required for the GeoGig project. In this case we want GeoTools to include matrix math and needed to shop around for a replacement.

The use of vecmath (as a non open source dependency) also causes trouble for Rich Fecher's proposal to publish GeoTools on Maven Central. 

Enter EJML

With a technical dept page capturing research, some email discussion and a great lunchtime conversation at foss4gna with Eric Engle (the overlap with EclipseCon was good for something) we settled on the recommended Efficient Java Matrix Library (EJML).

GeneralMatrix delegating to DenceMatrix64F
The strategy here is delegate to the DenseMatrix64F implementation provided by EJML, and implement the methods we expect from XMatrix in terms of this new implementation.

The EJML library has the similar arrangement with SimpleMatrix wrapping a DenseMatrix64F an API friendly to casual developers. We were able to use SimpleMatrix as a guide, saving a lot of time.

How to help

While the code sprint was a success in proving the approach, there is a bit of work to go:
  • Tyler (from GeoGig) is working on removing the dependency on vecmath (there are a few other Exceptions and data structures in our API that need to be removed).
  • Jim (from GeoMesa) wants to write up more test cases to check for regressions between vecmath and EJML
  • Although Rich Fecher (from GeoWave) was unavailable to take part in the code sprint - his inspiration to work on this now means we will be hitting him up for a review when the work is complete. Thanks Rich!
  • And there is always the question of performance ... will it be faster!
To help take part, or review our work see this branch in github:
Thanks to Boundless victoria staff, Jim and Andrea for really getting behind this work. This kind of up keep keeps the community ticking along and helps the library be used in more places.

I would also like to thank the new crop of projects using GeoTools for taking part and contributing upstream. It is important to keep our community diverse and your participation is both welcomed and appreciated.

Thursday, March 26, 2015

CodeHaus Migration Schedule

As per earlier blog post CodeHaus is shutting down and the GeoTools project is taking steps to migrate our issue tracker and wiki to a new home.

First up I need to thank the Open Source Geospatial Foundation for responding quickly in a productive fashion. The board and Alex Mandel were in position to respond quickly and hire a contractor to work with the system admin committee to capture this content while it is still available.

I should also thank Boundless for providing me time coordinate CodeHaus migration and Andrea for arranging cloud hosting.


  • Update April 7th: GeoAPI project attachments migrated (using this to estimate time remaining)
  • Update April 3rd: Issue tracker signup open to all (no need to email project leads).
  • Update April 2nd: Mauro Bartolomeo created GEOT-5074 in the new issue tracker
  • Update March 28th: Placeholder tickets created, contents and attachments to follow

Confluence Migration

Is scheduled for ... March 26th! I have taken a copy of the CodeHaus wiki and will be migrating proposals and project history. A html dump of the wiki is published at so we have a record.

The new wiki is available here:
GitHub Wiki

Jira Migration

Jira migration will start on 00:00 UTC Saturday March 28th.

On Saturday all issues will start migrating to their new home (and CodeHaus issue creation will be disabled). If you wish to lend a hand testing please drop by the #osgeo IRC channel on Saturday. Harrison Grundy will be coordinating the proceedings.

We have set up a new JIRA available at for the migration. You can sign up directly (although we ask you to consider keeping the same user name).

OSGeo Jira
As shown above a few friendly CodeHaus refugees have also been sheltered for the storm (uDig and GeoAPI).