Docs Use cases

neoserver 0.2.0

Serve GeoTIFF and COG rasters

Publish GeoTIFF, Cloud Optimized GeoTIFF, NetCDF, and GRIB2 rasters as WCS coverages, styled WMS layers, and cached map tiles.

Elevation models, imagery, and climate grids usually come as GeoTIFF, Cloud Optimized GeoTIFF (COG), NetCDF, or GRIB2. neoserver publishes them as coverages and serves each coverage in several ways:

  • Raw values through WCS 2.1 / 2.0.1, with subsetting, scaling, and reprojection
  • Styled maps through WMS 1.3.0, which can mix raster and vector layers
  • Cached map tiles through OGC API Tiles and WMTS

In the console

  1. Allow the data location. Add the directory, HTTPS prefix, or S3 bucket to Datasource.AllowedPaths in the server configuration. See path policy.
  2. Add a store with the source type Raster file for a single GeoTIFF, COG, NetCDF, or GRIB2 file, or Raster mosaic for a series of granules. Test the connection and save.
  3. Discover and publish coverages from the store. NetCDF and GRIB2 files yield one coverage per numeric array, and their time and elevation axes become dimensions automatically.
  4. Style the coverage in the style editor with a RasterSymbolizer: color ramps, channel selection, contrast enhancement, and NoData transparency. Set the style as the coverage default. See Styles and map preview.
  5. Enable WCS, WMS, and tiles in workspace settings, then check the result in Preview. Coverages are displayed through WMS.
  6. Seed map tiles under Operate › Caching if the coverage will receive heavy tile traffic.

With the API

curl -X POST http://localhost:9000/api/v1/workspaces/demo/services \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "terrain", "type": "rasterfile", "connection_info": {"path": "/srv/geodata/terrain.tif"}}'

curl -X POST \
  http://localhost:9000/api/v1/workspaces/demo/services/terrain/discover-coverages \
  -H "Authorization: Bearer $TOKEN"

curl -X POST \
  http://localhost:9000/api/v1/workspaces/demo/services/terrain/coverages \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"source_coverage": "<id from discovery>", "public_id": "terrain", "enabled": true}'

HTTPS files are downloaded through a bounded cache. S3 objects are read through GDAL’s /vsis3/ adapter once the bucket is on the allowlist.

Request raw data with WCS

/workspaces/demo/wcs?SERVICE=WCS&VERSION=2.1.0&REQUEST=GetCoverage&COVERAGEID=terrain&FORMAT=image/tiff&SUBSET=lon(7,9)&SUBSET=lat(50,51)

Scaling, output CRS, interpolation, range subsetting, and multidimensional slicing are optional extensions that you enable per workspace. WCS responses are always raw, unstyled values. Styling applies to WMS and map tiles.

Time series and mosaics

A Raster mosaic store combines compatible GeoTIFF/COG granules into one coverage. The granules can carry time and elevation values, which WCS, WMS, WMTS, and map tiles all accept as dimensions. An optional harvest catalog adds new granules without changing the service configuration. See raster mosaics.

Search documentation

Type to search guides and reference pages.