3.4. Web Coverage Service (WCS)

The 1.0.0 and 1.1.1 WCS standards implemented in QGIS Server provide a HTTP interface to access raster data, referred to as coverage, coming from a QGIS project.

Specifications:

Standard requests provided by QGIS Server:

Request

Description

GetCapabilities

Returns XML metadata with information about the server

DescribeCoverage

Retrieves XML document about additional information about coverages

GetCoverage

Retrieves coverage

3.4.1. GetCapabilities

Standard parameters for the GetCapabilities request according to the OGC WCS 1.1.1 specifications:

Parameter

Required

Description

SERVICE

Yes

Name of the service (WCS)

REQUEST

Yes

Name of the request (GetCapabilities)

VERSION

No

Version of the service

In addition to the standard ones, QGIS Server supports the following extra parameters:

Parameter

Required

Description

MAP

Yes

QGIS project file

URL example:

http://localhost/qgisserver?
SERVICE=WCS
&VERSION=1.1.1
&REQUEST=GetCapabilities

XML document example when a single raster layer (named T20QPD_20171123T144719_TCI) is published in the QGIS project for the WCS service:

<WCS_Capabilities xmlns="http://www.opengis.net/wcs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" updateSequence="0" xsi:schemaLocation="http://www.opengis.net/wcs http://schemas.opengis.net/wcs/1.0.0/wcsCapabilities.xsd">
  <Service>
    ...
  </Service>
  <Capability>
    ...
  </Capability>
  <ContentMetadata>
    <CoverageOfferingBrief>
      <name>T20QPD_20171123T144719_TCI</name>
      <label>T20QPD_20171123T144719_TCI</label>
      <lonLatEnvelope srsName="urn:ogc:def:crs:OGC:1.3:CRS84">
        <gml:pos>-61.585973 16.331189</gml:pos>
        <gml:pos>-61.52537 16.400376</gml:pos>
      </lonLatEnvelope>
    </CoverageOfferingBrief>
  </ContentMetadata>
</WCS_Capabilities>

VERSION

This parameter allows to specify the version of the service to use. Currently, the version values is not internally used and always fallback to 1.1.1.

3.4.2. DescribeCoverage

This request allows to retrieve additional information about coverages like the format of the underlying datasource, the number of bands, … Standard parameters for the DescribeCoverage request according to the OGC WCS 1.1.1 specifications:

Parameter

Required

Description

SERVICE

Yes

Name of the service (WCS)

REQUEST

Yes

Name of the request (DescribeCoverage)

VERSION

No

Version of the service

COVERAGE

No

Specify coverage layers (WCS 1.0.0)

IDENTIFIER

No

Specify coverage layers (WCS 1.1.1)

In addition to the standard ones, QGIS Server supports the following extra parameters:

Parameter

Required

Description

MAP

Yes

QGIS project file

The XML document for a 3 bands GeoTIFF raster layer looks like:

<CoverageDescription xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.opengis.net/wcs" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" updateSequence="0" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wcs http://schemas.opengis.net/wcs/1.0.0/describeCoverage.xsd">
  <CoverageOffering>
    <name>T20QPD_20171123T144719_TCI</name>
    <label>T20QPD_20171123T144719_TCI</label>
    <lonLatEnvelope srsName="urn:ogc:def:crs:OGC:1.3:CRS84">
      ...
    </lonLatEnvelope>
    <domainSet>
      ...
    </domainSet>
    <rangeSet>
      <RangeSet>
        <name>Bands</name>
        <label>Bands</label>
        <axisDescription>
          <AxisDescription>
            <name>bands</name>
            <label>bands</label>
            <values>
              <singleValue>1</singleValue>
              <singleValue>2</singleValue>
              <singleValue>3</singleValue>
            </values>
          </AxisDescription>
        </axisDescription>
      </RangeSet>
    </rangeSet>
    <supportedCRSs>
    ...
    </supportedCRSs>
    <supportedFormats nativeFormat="raw binary">
      <formats>GeoTIFF</formats>
    </supportedFormats>
  </CoverageOffering>
</CoverageDescription>

COVERAGE

This parameter, defined in WCS 1.0.0, allows to specify the layers to query for additional information. Names have to be separated by a comma.

In addition, QGIS Server introduced an option to select layers by its short name. The short name of a layer may be configured through Properties ► Metadata in layer menu. If the short name is defined, then it’s used by default instead of the layer’s name:

http://localhost/qgisserver?
SERVICE=WCS
&REQUEST=DescribeCoverage
&COVERAGE=mylayer1name,mylayer2shortname

Note

COVERAGE is mandatory if IDENTIFIER is not set.

IDENTIFIER

This parameter replaces the COVERAGE parameter in WCS 1.1.1. But QGIS Server does not filter according to the VERSION parameter so IDENTIFIER and COVERAGE have the same effect.

Note

IDENTIFIER is mandatory if COVERAGE is not set. If both IDENTIFIER and COVERAGE parameters are defined, COVERAGE is always used in priority.

3.4.3. GetCoverage

This request allows to retrieve the coverage according to specific constraints like the extent or the CRS. Standard parameters for the DescribeCoverage request according to the OGC WCS 1.1.1 specifications:

Parameter

Required

Description

SERVICE

Yes

Name of the service (WCS)

REQUEST

Yes

Name of the request (GetCoverage)

VERSION

No

Version of the service

COVERAGE

No

Specify coverage layers (WCS 1.0.0)

IDENTIFIER

No

Specify coverage layers (WCS 1.1.1)

WIDTH

Yes

Width of the response in pixels

HEIGHT

Yes

Height of the response in pixels

BBOX

Yes

Map extent in CRS units

CRS

Yes

Coordinate reference system of the extent

RESPONSE_CRS

No

Coordinate reference system of the response

In addition to the standard ones, QGIS Server supports the following extra parameters:

Parameter

Required

Description

MAP

Yes

QGIS project file

BBOX

This parameter allows to specify the map extent in the units of the current CRS. Coordinates have to be separated by a comma. The BBOX parameter is formed like minx,miny,maxx,maxy.

URL example:

http://localhost/qgisserver?
SERVICE=WCS
&REQUEST=GetCoverage
&IDENTIFIER=T20QPD_20171123T144719_TCI
&BBOX=647533,1805950,660987,1813940
&CRS=EPSG:32620

CRS

This parameter allows to indicate the Spatial Reference System of the BBOX parameter and has to be formed like EPSG:XXXX.

RESPONSE_CRS

This parameter allows to indicate the output response Spatial Reference System and has to be formed like EPSG:XXXX. The CRS of the corresponding coverage layer is used by default.

WIDTH

This parameter allows to specify the width in pixels of the output image. The resolution of the response image depends on this value.

HEIGHT

This parameter allows to specify the height in pixels of the output image. The resolution of the response image depends on this value.

../../../_images/server_wcs_getcoverage_width_height.png

Fig. 3.23 From left to right: WIDTH=20&HEIGHT=20, WIDTH=50&HEIGHT=50, WIDTH=100&HEIGHT=100