THREDDS Web Coverage Service


The THREDDS WCS Server implements the OGC Web Coverage Service (WCS) 1.0.0 specification. It serves gridded data in GeoTIFF or NetCDF format allowing WCS clients to specify a subset of a gridded dataset and download the resulting GeoTIFF or netCDF files.

Which files can be served through the WCS server?

  1. Data files must contain gridded data.
  2. The NetCDF-Java Common Data Model must be able to identify the coordinates system used. Check this by opening in the Grid Panel of the ToolsUI application. There should be one or more variables shown as a GeoGrid.
  3. Currently due to WCS and GeoTIFF limitations, the X and Y axes must be regularly spaced.

Configuration

WCS must be enabled in the threddsConfig.xml configuration file before it can be used. This is done by adding an allow element to the WCS element as follows:

<WCS>
<allow>true</allow>
...
</WCS>

Once WCS is enabled, datasets can be configured to have a WCS access method in the TDS catalog configuration files similar to how other services are configured. The service element's serviceType and base attribute values must be as follows:

<service name="wcs" serviceType="WCS" base="/thredds/wcs/" />

The dataset to be served must reference this service (or a containing compound service) by the service name:

<dataset ID="sample" name="Sample Data" urlPath="sample.nc">
<serviceName>wcs</serviceName>
</dataset>

The dataset can be configured by datasetRoot or datasetScan as appropriate (see "Basic Configuration"). They are listed in the resulting THREDDS catalogs as are other datasets. WCS clients may not be able to directly use the THREDDS catalogs to find the WCS services but the catalogs are useful for users to browse and for separate search services (e.g., OGC catalog services).  

Serving Remote Dataset

The TDS can also serve remote datasets with the WCS protocol if configured to do so. It must be explicitly configured in the threddsConfig.xml configuration file. This is done by adding an allowRemote element to the WCS element as follows:

<WCS>
<allow>true</allow>
<allowRemote>true</allowRemote>
...
</WCS>

A slight extension of the WCS Dataset URL format allows the TDS to serve remote datasets. The dataset is identified by adding the parameter dataset whose value is a URL:

http://servername:8080/thredds/wcs?dataset=datasetURL

The URL must be a dataset readable by the NetCDF-Java library, typically an OPeNDAP dataset on another server. It must have gridded data, with identifiable coordinate systems, etc. For example, an OPeNDAP URL might be

http://las.pfeg.noaa.gov/cgi-bin/nph-dods/data/oceanwatch/nrt/gac/AG14day.nc 

This can be served remotely as a WCS dataset with this URL:

http://servername:8080/thredds/wcs?dataset=http://las.pfeg.noaa.gov/cgi-bin/nph-dods/data/oceanwatch/nrt/gac/AG14day.nc

Capabilities/Limitations

Current WCS 1.0.0 Implementation (version=1.0.0)

The current TDS implementation of WCS 1.0 has the following restrictions:

  1. No interpolation is available (i.e., interpolationMethod="none").
  2. CRS/SRS
    1. All CRS/SRS are listed as "WGS84(DD)" even though it may have little relation to the actual CRS of the data.
    2. CRS is horizontal, XY, only (see Range below for vertical, Z)
    3. The response coverage is in the native CRS of the data (as the "No Interpolation" item implies).
    4. The netCDF-Java library understands a number of projections (a subset of  the CF convention grid mapping options, and most assuming a spherical earth) including a simple lat/lon grid [-180/180 and -90/90].
    5. All BBOX requests are assumed to be in the lat/lon of the native projection.
  3. Temporal selection: only one value can be specified (no list or min/max/res).
  4. Range:
    1. Each coverage has only one range field
    2. "Vertical" is the range axis, only if the coordinate has a vertical component.
    3. Range axis selection: only one value can be specified (no list or min/max/res).
  5. Supported GetCoverage response formats:
    1. GeoTIFF: A grayscale 8-bit GeoTIFF file
    2. GeoTIFFfloat: A floating point "Data Sample" GeoTIFF file
    3. NetCDF3: A NetCDF file following the CF-1.0 convention

Upcoming WCS 1.0.0 Implementation (version=1.0.0.1)

Same as above (version=1.0.0) except:

  1. CRS/SRS
    1. Some improvment in CRS encoding (i.e., not all are listed as "WGS84(DD)")
  2. Temporal selection: only min/max is supported. No resolution is allowed on the min/max and no lists are allowed.
  3. "Vertical" range axis selection: only min/max is supported. No resolution is allowed on the min/max and no lists are allowed.
  4. Supported GetCoverage response formats:
    1. NetCDF3: A NetCDF file following the CF-1.0 convention
    2. GeoTIFF (Only supports requests for single time and single height.)
      1. GeoTIFF: A grayscale 8-bit GeoTIFF file
      2. GeoTIFF_Float: A floating point "Data Sample" GeoTIFF file

Upcoming WCS 1.0.0+ Implementation (version=1.0.0.11)

The WCS 1.0.0+ implementation experiment is targeted to further the understanding of how FES datasets fit into the current WCS and what extensions they may require. The conclusions will be fed back to the WCS 1.2 RWG.

As currently expected, same as above (version=1.0.0.1) except:

  1. CRS/SRS
    1. If coverage has vertical, it is part of the CRS
  2. Range:
    1. Each coverage can contain multiple range fields
    2. If range field is array, only min/max range axis selection allowed.
  3. Supported GetCoverage response formats:
    1. NetCDF3: A NetCDF file following the CF-1.0 convention
    2. GeoTIFF (Only supports requests for single time and single height.)
      1. GeoTIFF: A grayscale 8-bit GeoTIFF file
      2. GeoTIFF_Float: A floating point "Data Sample" GeoTIFF file

WCS Dataset URLs

All THREDDS WCS requests start with

http://servername:8080/thredds/wcs/ 

The next part of the path indicates which file to use

http://servername:8080/thredds/wcs/test/sst.nc 

This is typically the URL you will need to pass to a WCS client. The WCS Client then forms various queries to the THREDDS WCS server for that dataset, e.g.:

http://servername:8080/thredds/wcs/test/sst.nc?service=WCS&version=1.0.0&request=GetCapabilities

Examples

The following are WCS URLs for our test datasets:

Here are example WCS queries for the first dataset:

WCS Clients

A few WCS clients we know of (though we haven't tried all of them):

This one is not a general client. It is a server site with a web interface for accessing their served data:



This document is maintained by Unidata and was last updated April 2017. Send comments to THREDDS support.