Grid Coverage Update - STEMLab/geotools GitHub Wiki

This work is now complete and is present in GeoTools 2.1

Content

A refactoring of org.geotools.gc. When the refactoring will be finished, org.geotools.gc will be removed.

There is the problem: The OpenGIS "Spatial Referencing by Coordinates" specification changed in a significant way. Since 2003, OpenGIS dropped their own legacy specification and adopted ISO 19111 instead. The following packages:

org.geotools.pt
org.geotools.cs
org.geotools.ct

were built on top of the legacy OGC specification. We are going to remove them in a future version. The new package is now:

org.geotools.referencing

While the packages name and classes name are different, most of the concepts are very similar. We are in the process of performing a refactoring of the code from the old specification to the new one. Unfortunatly, the refactoring is not yet finished. As long as it is not finished, the two code as to co-habit because the new code is not yet fully functional.

GridCoverage has a strong dependency toward "Spatial Referencing by Coordinates". While the GridCoverage specification itself didn't changed significantly, all its reference to a CRS object need to be updated. This bring incompatible change in method signature. The following packages:

org.geotools.coverage
org.geotools.coverage.grid
org.geotools.coverage.processing

are basicaly cut-and-past of the following legacy packages

org.geotools.cv
org.geotools.gc
org.geotools.gp

with references to the legacy CRS updated to the new CRS objects from ISO 19111. But since the refactoring of CRS is not yet finished, the refactoring of GridCoverage is not yet finished neither and the old and new implementation will have to coexist for a few months.

In summary, the old specification can be browsed here:

(replace 'opengis' by 'geotools' and you get the current geotools implementation).

The new specification (were we are going) can be browsed here:

(see "Spatial Referencing by Coordinates" and "Grid Coverage" sub-sections. Note on the right side of each sub-section header the ISO number of the specification were the interfaces come from).

I'm in charge of doing this refactoring. Unfortunatly, I'm stuck with a end of thesis right now. As soon as my thesis is finished, my very first priority on the top of my Geotools list of work will be to finish CRS and GridCoverage refactoring. It should be done this fall.

But I want to write a Grid Coverage Exchange

Contribution welcome 😄 .

If this work is started before GridCoverage refactoring completion, then it will have to be done against legacy GridCoverage implementation (i.e. org.geotools.gc package).

Porting it to the new GridCoverage implementation later (org.geotools.coverage.grid) would hopefully not be to difficult, since the API is basically the same except for CRS.

From Martin Desruisseaux

⚠️ **GitHub.com Fallback** ⚠️