Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Motivation:

The Grid Coverage Exchange specification is dead; we need a replacement along the lines of DataStore

Contact:

Simone Giannecchini, Jody Garnett

Tracker:

http://jira.codehaus.org/browse/GEOT-XXXX

Tagline:

Excerpt

GCE is dead, lets move on

This page describes the work that is being carried out in order to replace the actual GCE API with a new one. For the moment it just tries to capture what people are doing as well as the various opinions and feedback.

Description

This proposal:

  • introduces new interface in a manner consistent with Data Access Design Goals
  • where possible abstractions and method names are taken from various OGC-ISO specifications, namely:
    • WCS 1.1.1
    • ISO 19123
    • ISO 19111
    • ISO 19108
    • ISO 19103
Children Display

Status

This proposal is under construction; please help put it together. You may find the previous proposal Dry Run at DataAccess Story informative, as well as this email thread. Anyway, the API as well as some helper can be found under the spike directory of GeoTools trunk.

Voting has not started yet:

Tasks

This section is used to make sure your proposal is complete (did you remember documentation?) and has enough paid or volunteer time lined up to be a success

 

no progress

(tick)

done

(error)

impeded

(warning)

lack mandate/funds/time

(question)

volunteer needed

  1. Define interface based from the WCS specification
  2. Produce initial prototype for world + image
  3. Roll out the above prototype for a round of community feedback and review
  4. Port the existing coverage formats one by one, either:
    • as a wrapper around existing GridCoverageReaders / GridCoverageWriter implementations
    • or direct implementation of CoverageStore / CoverageSource and CoverageStore

API

 A UML diagram capturing the actual version of the API can be found here below:


 

Relevant classes are:

  1. Class/Interface

    Description

    Driver

    A driver adding the ability to work with a coverage format or service.
    Classes implementing this interface basically act as factory for creating connections to coverage sources like files, WCS services, WMS services,  databases, etc...
    This class also offers basic create / delete functionality (which can be  useful for file based coverage formats).
    Purpose of this class is to provide basic information about a certain coverage service/format as well as about the parameters needed in order to connect to a source which such a service/format is able to work against.
    Notice that as part as the roll of a "factory" interface this class makes available an isAvailable() method which should check if all the needed dependencies which can be jars as well as native libs or configuration files.

    CoverageAccess

    Represents a Physical storage of coverage data (that we have a connection to).
    Please note that this service may be remote (or otherwise slow). You are doing IO here and should treat this class with respect - please do not access these methods from a display thread.

    CoverageSource

    Allows read-only access to a Coverage

    CoverageStore

    Provides read-write access to a coverage data product

    CoverageCapabilities

    Describes the capabilities of this CoverageSource

    CoverageRequest

    Captures the base elements of a request for a coverage source subclass.
    The request can be a request for reading data, a request for writing data, etc.
    Notice that using additional parameters and Hints a user can customize the request behavior and meaning.

    CoverageReadRequest

    Captures element of a request to read data from an underlying coverage.

    CoverageResponse

    Captures the status of the response to a coverage request.

    RangeType

    Defines the fields (categories, measures, or values) in the range records available for each location in the coverage domain.

     


We still need to cope with some topics:

  • How to/Where to handle Ground Control Points and management of unrectified coverage
  • Support for a tree of coverage with real and fake nodes to better suit WCS 1.1.2
  • Harmonize with range with Record/RecordType from ISO 19103 and also look at the SimpleFeatureType work in geotools
  • Statistics information management
  • Overviews management
  • Metadata management should be improved. Actually it has been copied from old GCE API.

See TBD comments on CoverageSource javadoc.

Javadocs are available at ftp://ftp.geo-solutions.it as anonymous user, under /incoming/javadoc/coverage-api-docs.zip

UML Diagrams 

Here below, more detailed UML class diagrams with available methods:









Out of scope

The following extentions are possible:

  • GridServiceInfo - we will wait for experience to dictate what extra information is useful
  • GridResourceInfo - we will wait for experience to dictate what extra information is useful

Documentation Changes

list the pages effected by this proposal