Skip to main content

Datasets API

These routes cover raster registration, CSW-assisted ingestion, metadata repair, thumbnails, and point-query helpers.

Listing and Catalog Inspection

MethodPathPurposeAuth
GET/datasetslist datasets with pagination and search filtersyes
POST/datasets/csw-searchquery a CSW catalogue with a structured JSON payload and paginated responseno
GET/datasets/duplicatesfind duplicate datasets by hash, identifier, or source linkageyes
GET/datasets/hyspex-missing-variantsreport HySpex identifiers missing RGB or Z variantsyes

Registry Maintenance

MethodPathPurposeAuth
POST/datasets/rehashrecompute SHA-256 hashes for all registered datasetsyes
POST/datasets/prune-missingremove manifest entries whose source files are goneyes
POST/datasets/resyncrebuild the manifest from files on disk and optionally refresh CSW metadatayes
DELETE/thumbnailsclear cached thumbnail files and memory entriesyes

Dataset Registration

MethodPathPurposeAuth
POST/datasetsupload a GeoTIFF with multipart form datayes
POST/datasets/from-stringregister a GeoTIFF that already exists in a mounted runtime pathyes
POST/datasets/nbs-sentinel-quicklook-cswquery the NBS Sentinel CSW by identifier, detect platform, register quicklook GeoTIFFs, and return combined WMS/WFS service metadatano
POST/datasets/nbs-sentinel-nc-cswcompatibility route for Sentinel CSW records: for S1 it prefers direct quicklook GeoTIFF registration and automatically falls back to SAFE processing when quicklooks are missing; non-S1 records keep the NC flowno
POST/datasets/nbs-sentinel-safe-cswquery the NBS Sentinel CSW by identifier and prepare or submit SAFE-based Sentinel pipelines using mounted local archives: S1 amplitude quicklooks or S2 RGB product combinationsno
POST/datasets/sentinel-cswresolve one Sentinel record from CSW and register discovered GeoTIFFsno
POST/datasets/hyspex-cswbuild or optionally submit an nc-to-geotiff job from a HySpex CSW child recordyes
POST/datasets/hyspex-csw-parentsynchronously resolve and queue child jobs from one HySpex parent recordyes
POST/datasets/from-point-cloud-configcreate a GeoTIFF from point-cloud config and register itdelegated async route also exists
POST/datasets/from-nc-configalias for point-cloud config conversion workflowdelegated async route also exists

Dataset Inspection and Derived Assets

MethodPathPurposeAuth
GET/datasets/{dataset_id}/samplesample raster values at one lon/latno
GET/datasets/{dataset_id}/extent.geojsonreturn the dataset footprint as GeoJSONno
GET/datasets/{dataset_id}/thumbnail.pngreturn a generated thumbnail PNGno
DELETE/datasets/{dataset_id}remove the dataset and optionally its terrain assetsyes
POST/datasets/{dataset_id}/seed-mapcachequeue cache seeding for one datasetno
POST/thumbnails/generatepre-generate and cache thumbnail images for one or more datasetsno

NetCDF and OPeNDAP Point Queries

MethodPathPurposeAuth
POST/datasets/{dataset_id}/query-pointquery one point against the dataset-linked NetCDF sourceno
POST/datasets/{dataset_id}/query-pointsbatch query points against the dataset-linked NetCDF sourceno
POST/datasets/query-pointquery one point against an arbitrary NetCDF URLno
POST/datasets/query-pointsbatch query points against an arbitrary NetCDF URLno

NBS Sentinel route responses include a profile object derived from the detected platform. Profiles can provide per-platform metadata defaults and point-query variable defaults. The built-in S1 family profile currently defaults SAFE fallback preparation and dataset-linked point queries to Amplitude_VH and Amplitude_VV when the caller does not supply variables explicitly.

POST /datasets/csw-search accepts a typed JSON body and builds an AND-combined FES filter from whichever fields are present.

Supported request fields:

  • endpoint: optional CSW endpoint override
  • keywords: list of keyword strings, matched against dc:subject
  • start_datetime: lower bound applied to apiso:TempExtent_begin
  • end_datetime: upper bound applied to apiso:TempExtent_end
  • bbox: { minx, miny, maxx, maxy }, encoded as a CRS84 bounding box filter
  • anytext: wildcard match against csw:AnyText
  • limit: response page size, default 25, max 100
  • offset: zero-based response offset, default 0

Example request:

{
"endpoint": "https://nbs.csw.met.no",
"keywords": ["sentinel", "s2"],
"start_datetime": "2026-01-01T00:00:00Z",
"end_datetime": "2026-01-31T23:59:59Z",
"bbox": {
"minx": 10.0,
"miny": 60.0,
"maxx": 11.0,
"maxy": 61.0
},
"anytext": "ice",
"limit": 20,
"offset": 0
}

The response is paginated and includes:

  • total: total records reported by the CSW service
  • returned: number of records in the current page
  • limit and offset: echoed request pagination values
  • next_offset and prev_offset: cursors for the next and previous pages
  • constraints_applied: number of top-level FES constraints sent to CSW
  • items: normalized CSW records including identifier, title, abstract, subjects, bbox, and references

Style Output

MethodPathPurposeAuth
GET/styles/{dataset_id}/{style_id}.sldreturn an SLD document for a dataset/style pairingno

Notes

  • Upload and registration routes attempt duplicate detection to avoid re-registering identical GeoTIFFs.
  • HySpex child ingestion can be preview-only or submit jobs immediately, depending on parameters.
  • POST /datasets/hyspex-csw-parent is useful for synchronous inspection or small batches, but large campaigns are better driven through the async jobs endpoint family.