WCS delivers the actual raster values, such as elevation, temperature, or reflectance, instead of a rendered picture. Clients can cut out an area, resample, reproject, and slice through time or height. neoserver implements WCS 2.1 and keeps WCS 2.0.1 compatibility.
What you get
- GetCapabilities, DescribeCoverage, and GetCoverage over GET/KVP, with optional XML POST
- Coverage sources: PostGIS raster, GeoTIFF and COG, CF-NetCDF, GRIB2, and GeoTIFF/COG mosaics
- Output as GeoTIFF, GML, or multipart. NetCDF and JPEG 2000 are available when configured.
- Optional extensions, enabled per workspace: range subsetting, scaling, CRS transformation, interpolation, and multidimensional trims and slices
- Nodata handling that never hides valid values, and limits on cells, bytes, and processing time per request
- The same coverage also available as a styled WMS layer and as cached map tiles
In the console
- Connect the source. Choose Add store, then:
- PostGIS for raster tables registered in
raster_columns. Sources need a non-zero SRID, consistent alignment and bands, and no skew. - Raster file for a GeoTIFF, COG, NetCDF, or GRIB2 file, local or remote. Add the location to
Datasource.AllowedPathsfirst. - Raster mosaic for a time series or tile set of compatible GeoTIFF/COG granules.
- PostGIS for raster tables registered in
- Discover coverages on the store and publish the ones you need with a public ID. NetCDF and GRIB2 files produce one coverage per numeric array, and their time and elevation axes become dimensions automatically.
- Enable WCS in the workspace’s service settings. Choose the output formats, extensions, and CRSs that clients may request. WCS must also be enabled on the server (
WCS.Enabled, orNEOSRV_WCS_ENABLED=true). See Workspace settings. - Check the coverage in Preview, which displays it through WMS. Add a
RasterSymbolizerstyle for color ramps and contrast when you also serve it as a map.
With the API
curl -X PUT http://localhost:9000/api/v1/workspaces/demo/settings/wcs \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"title": "Demo WCS",
"extensions": ["scaling", "crs", "interpolation", "multidimensional"],
"output_formats": ["image/tiff", "application/gml+xml", "multipart/related"],
"interpolation_methods": ["nearest-neighbor", "linear"],
"allowed_output_crs": ["http://www.opengis.net/def/crs/EPSG/0/4326", "http://www.opengis.net/def/crs/EPSG/0/3857"]
}'
Request a spatial subset of a coverage, sliced at one point in time:
/workspaces/demo/wcs?SERVICE=WCS&VERSION=2.1.0&REQUEST=GetCoverage&COVERAGEID=temperature&FORMAT=image/tiff&SUBSET=lon(7,9)&SUBSET=lat(50,51)&SUBSET=time("2026-01-01T06:00:00Z")
Add SCALESIZE=lon(1024),lat(512) to resample, or OUTPUTCRS=http://www.opengis.net/def/crs/EPSG/0/3857 to reproject, once those extensions are enabled.
Conformance
WCS 2.0.1 is tested with the official OGC test suite for Core, XML POST, range subsetting, scaling, and CRS. No official WCS 2.1 test suite is published, so WCS 2.1 is covered by native protocol tests. See Conformance and testing.
Related
- Core concepts: workspaces, stores, and publications
- WCS 2.1 / 2.0.1 reference
- Serve GeoTIFF and COG rasters for WMS and tiles from the same files
- Raster mosaics