OGC API — Processes · process

index-geotiff

Index a GeoTIFF raster into the DGGS — a web view of GET /api/processes/index-geotiff.

Index every data-bearing pixel of a GeoTIFF as a 4D point observation (pixel centre in the raster's CRS -> ECEF, plus the dataset's temporal validity), producing one content-addressed zoneSet per requested zone-level. The raster is indexed IN PLACE — never resampled, reprojected or rasterised into the grid — so raster and vector datasets become co-queryable through the same zone identity. Georeference, CRS, NODATA and acquisition time are read from the header where present; each has an input to supply or override it. Optionally emits a pixel-aligned zone-mask GeoTIFF (original bands plus an int64 local-index mask per level with a zoneIndex lookup, since 144-bit zone ids do not fit an int64 sample).

Inputs

NameType DefaultDescription
dataset_uri http(s) URL of the GeoTIFF (streamed under the server's size ceiling), or a staged local path under the server's raster root where one is configured.
dggrs Identifier of the discrete global grid reference system to index into or query against.
collectionId Stable, meaningful id for the resulting dataset collection (e.g. 'nl-sentinel2-b04-2026'), addressable at /collections/{collectionId} and its /dggs sub-resource. Re-indexing under the same id updates that collection. Must match [A-Za-z0-9._~-]{1,128} and must not be a DGGRS-instance id. Defaults to the job id when omitted.
zone-level DGGS hierarchy level(s) to index at; one zoneSet is produced per level.
crs CRS of the raster's model space when the header carries none, or to override it: an EPSG code ('32631', 'EPSG:32631', EPSG URN, or opengis.net EPSG URI). Built-in support covers geographic CRSs, UTM/MGA, EPSG:3857 and EPSG:5070; others require pyproj in the worker image.
datetime RFC 3339 instant or start/end interval the observations are valid for. Defaults to the header's acquisition instant (GDALMetadata ACQUISITIONDATETIME or the TIFF DateTime tag); REQUIRED when the header carries neither. An interval is linearly interpolated across the pixel sequence in row-major scan order (scan-time model), so every pixel is indexed at exactly one 4D coordinate; the stored zoneSet carries the exact interval.
height Height of the raster surface in metres, in 'height_datum'. The default 0 AMSL is the clamped-to-terrain-datum convention for surface imagery; e.g. 100 with datum AMSL indexes a 100 m hub-height wind layer.
height_band 0-based band index whose values are per-pixel heights in 'height_datum' (a DEM or height layer). Overrides 'height'.
height_datum Datum of 'height'/'height_band' values. Default AMSL (surface-clamped convention); converted to ellipsoidal via the PER-PIXEL geoid undulation before indexing.
geoid_model Geoid model name (file stem in HYPLICA_GEOID_DIR or the bundled fallback). Default: best available, preferring egm2008 > egm96. Regional models (e.g. GEOID18 for CONUS) are selected the same way.
nodata Pixels equal to this value in EVERY band are skipped. Defaults to the header's GDAL_NODATA tag; no tag and no input means every pixel is indexed.
skip_nodata Set false to index NODATA pixels too (footprint-style indexing of the full scene rectangle).
emit_zone_mask Also encode the original bands plus a pixel-aligned int64 zone-mask image per level (data-geotiff layout) and store it as a blob artifact referenced from the result. Capped by the server's mask pixel ceiling.
prune If true, re-indexing an existing collectionId REPLACES the collection: raster-index zoneSets present before but absent from this run are removed (membership-based, honouring content addressing). Default false keeps additive behaviour.

Outputs

NameType
collection
pixels
indexedPixels
zoneSets
temporal
crs
maskArtifact
pruned