Docs Use cases

neoserver 0.2.0

Serve raster coverages with WCS

Publish PostGIS raster, GeoTIFF/COG, NetCDF, and GRIB2 data as WCS 2.1 and 2.0.1 coverages with subsetting, scaling, reprojection, and multidimensional slicing.

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

  1. 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.AllowedPaths first.
    • Raster mosaic for a time series or tile set of compatible GeoTIFF/COG granules.
  2. 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.
  3. 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, or NEOSRV_WCS_ENABLED=true). See Workspace settings.
  4. Check the coverage in Preview, which displays it through WMS. Add a RasterSymbolizer style 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.

Search documentation

Type to search guides and reference pages.