WCS-THREDDS Gateway

Ben Domenico
Draft last modified: January 16, 2005

THREDDS-Enabled Data Services Supported at Present Time

In the Unidata community framework of client/server data and metadata access systems, there are a number of client/server protocols available at different data provider sites. At the other end, some client applications can access data via some of the protocols while others can only access data via other protocols. THREDDS catalogs provide information about which datasets are avaiable via with services/protocols. The three main client/server (as opposed to full-file transfer with FTP or GridFTP) protocols for remote data access in use in the community are OPeNDAP, ADDE, and netCDF access via HTTP protocol. In many cases the data access systems are augmented and integrated with THREDDS catalog services which proved inventory list and metadata access. Thus client applications can learn what's available on the site via the THREDDS interface, then access the datasets themselves via OPeNDAP, ADDE, or netCDF/HTTP protocols.

OGC Data Services

Open Geospatial Consortium Web Mapping Servers (WMS) provide access to datasets that have been converted into visual map form. However Web Feature Servers (WFS) and Web Coverage Servers (WCS) enable access to datasets themselves. An oversimplified characterization of theses services is that WFS is used for traditional GIS vector (point, line, polygon) data whereas WCS is for coverage (image, grid) data.

The formats currently supported by WCS are:

OGC Augmented with NetCDF Dataset Interface

The goal is to add OWS (OGC Web Services) data access to THREDDS as a way to bridge between the GIS community and Unidata's geoscience community . We propose to add the NetCDF file format to the suite of WCS supported data formats.

WCS Gateway to THREDDS-Integrated Services

A very rough draft document outlining the salient issues related to this objective is NcML/NetCDF Dataset
as Form of OGC Web Coverage Service.
The diagram below is an attempt to capture the key components of the WCS protocol interface layer we propose to implement on top of components that already are in operation at scores of THREDDS-integrated data provider sites.

As the figure shows, the gateway converses with the client via WCS protocols (getCapabilities, describeCoverage, and getCoverage). These requests are translated into the equivalent requests in using the interfaces and protocols of the THREDDS-integrated server:

For a detailed description of NcML-GML, please see NetCDF Markup Language (NcML) and its GML-based extension (NcML-GML).

WCS-THREDDS server specification and implementation summary

Broad Experiment Objectives

The objectives for specific technical components of the experiment are given in sections below, but the overall high level objectives are to:

How Do We Get There?

Initial Steps

THREDDS Dataset Inventory Catalogue extension

Experiment objective for getDatasetInventoryCatalogue operation:

WCS specification extension

Experiment objectives for getCapabilities operation:

Experiment objectives for describeCoverage operation:

Experiment objectives for getCoverage operation:

THREDDS and WCS getCapability Actions

Client request: WCS client accesses a WCS-THREDDS server issuing a getCapabilityrequest

Server actions:

THREDDS and WCS describeCoverage Actions

Client request: WCS client accesses the WCS-THREDDS server issuing describeCoverage request

Server Action: The WCS-THREDDS server returns a CoverageDescription document -extended to support the NcML-G data model. (Note again that one prototype may only support NcML with Coordinate System extensions.)

THREDDS and WCS geoTIFF Coverage Use Case

Objective: To access a netCDF dataset through WCS-THREDDS server; to serve the dataset as GeoTIFF file

Client request: WCS client accesses the WCS-THREDDS server issuing a getCoverage request, asking for the following output format: GeoTIFF

Server action: WCS-THREDDS server returns the requested Coverage as a GeoTIFF file.

THREDDS and WCS NcML-GML Coverage Use Case

Objective: To access a netCDF dataset through WCS-THREDDS server; to serve the dataset as NcML-GML document

Client request: WCS client accesses the WCS-THREDDS server issuing a getCoverage request, asking for the following output format: GML

Server action: WCS-THREDDS server returns the requested Coverage as a GML document

THREDDS and WCS netCDF Coverage Use Case

Objective: To access a netCDF dataset through WCS-THREDDS server; to serve the dataset as netCDF file

Client request: WCS client accesses the WCS-THREDDS server issuing a getCoverage request, asking for the following output format: netCDF

Server action: WCS-THREDDS server returns the requested Coverage as a binary netCDF file.

Datasets and Catalogs for Prototype System

For purposes of the initial demonstration of the prototype system, we will use netCDF datasets generated from the output of numberical weather forecast model runs. These datasete are typical of those used in the atmospheric sciences in that they have multiple dependent variables that vary in three spatial dimensions and time. In fact they have multiple temporal dimensions in that there is the time of the model run and the relative forecast time.

A catalog of forecast model output covering a summer rain event in Colorado have been selected for the initial prototype demonstration. The THREDDS catalog is at:

http://my.unidata.ucar.edu/content/projects/THREDDS/DataPublications/Case2004Jul16.xml

Note that this catalog points not only to the datasets in the case study but also to the "latest" model run as well.

These datasets are describe in

http://my.unidata.ucar.edu/content/projects/THREDDS/DataPublications/SampleDataPublicationFor2005AMS.htm

On a system with 500MB of memory and Java WebStart installed, one can actually bring up the IDV (Integrated Data Viewer) which in turn will access the datasets from the server and allow the reader to interact directly with them.( The IDV is an exising client that can access many datasets on the current set of THREDDS-integrated data servers, but it doesn't implement the WCS interface as yet. It would be interesting to find WCS client experts who might want to work on creating a WCS-enabled version of the IDV.