Unidata TDS Web Map Service (WMS)


The TDS WMS implementation uses the ncWMS software developed by Jon Blower (Reading E-Science Center at the University of Reading).

It supports OGC Web Map Service (WMS) versions 1.3.0 and 1.1.1.

Which files can be served through the WMS 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.

Enabling and Using WMS

By default the WMS service is disabled in the TDS. It can be enabled for locally served datasets by including the following in the threddsConfig.xml file:

<WMS>
  <allow>true</allow>
</WMS>

Once WMS is enabled, datasets can be configured to have a WMS 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="wms" serviceType="WMS" base="/thredds/wms/" />

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>wms</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. WMS clients may not be able to directly use the THREDDS catalogs to find the WMS services but the catalogs are useful for users to browse and for separate search services (e.g., OGC catalog services).

WMS Configuration

Additional WMS configuration options can be set in the threddsConfig.xml file. More details on these options are available here.

Further WMS configuration properties are set in the wmsConfig.xml file. These properties are mainly related with styling of WMS images. Similar to the threddsConfig.xml file, the WMS configuration file (wmsConfig.xml) is found in the ${TOMCAT_HOME}/content/thredds directory. A detailed description of the wmsConfig.xml file can be found at the MyOcean "Detailed WMS Configuration" page.

If you are installing a new TDS, you should find a default wmsConfig.xml file (along with other configuration files) in your content/thredds directory after you first deploy the TDS. If you are upgrading from a TDS version before version 4.2.20100615.*, you will have to copy the default file from TOMCAT_HOME/webapps/thredds/WEB-INF/altContent/startup/wmsConfig.xml.

Change to CRS List in WMS GetCapabilities Documents

The number of CRS listed in the WMS GetCapabilities documents has been reduced between TDS 4.1 and 4.2. More information is available at this FAQ entry.

Add a JVM Option to Avoid an X Server Bug

WMS uses a number of graphics packages. In some situations, WMS can run into an X Server bug that can cause Tomcat to crash. This can be avoided by telling the code there is no display device. Details on how to do this can be found in the "Summary of JAVA_OPTS" page.

Add a JVM Option to Avoid java.util.prefs Problem Storing System Preferences

Some libraries used by WMS use the java.util.prefs package and there are some known issues that can crop up with storing system preferences. This problem can be avoided by setting another JVM option. Details on adding the needed JVM option can be found on the "Summary of JAVA_OPTS" page. More information on the issue can be found on the TDS FAQ page.

Serving Remote Datasets

The TDS can also serve remote datasets with the WMS 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 WMS element as follows:

<WMS>
  <allow>true</allow>
  <allowRemote>true</allowRemote>
  ...
</WMS>

A slight extension of the WMS 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/wms?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 (see above). 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 WMS dataset with this URL:

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

Capabilities/Limitations


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