Image Document

Purpose

Raster imagery to be rendered as a map layer or thumbnail (e.g., amplitude σ0, coherence, classifications).

GeoJSON (DB metadata)

{
  "type": "Feature",
  "geometry": {"type": "Polygon", "coordinates": [[[30.1, 59.9], [30.2, 59.9], [30.2, 60.0], [30.1, 60.0], [30.1, 59.9]]]},
  "properties": {
    "type": "Image",
    "title": "Amplitude σ0",
    "created_at": "2025-09-02T12:00:00Z",
    "updated_at": "2025-09-02T12:05:00Z",
    "source": {
      "url": "/tiler/tiles/{z}/{x}/{y}@2x",
      "type": "Raster",
      "url_params": {
        "url": "s3://<bucket>/<ResultKey>/<filename>" 
      }
    },
    "style": {"colormap": "gray"},
    "legend": {"title": "Amplitude"},
    "metadata": {"sensor": "S1A", "gsd": 10}
  }
}

Required properties

  • properties.type = Image

  • Footprint geometry (Polygon or MultiPolygon)

  • Valid raster source URL (direct COG or tiler endpoint)

Time Series Extension

When dealing with temporal multi-band data, use the TimeSeries kind:

  • properties.kind = TimeSeries

  • properties.source.type = Zarr (or supported multi-dimensional format)

Example additions to properties:

  "properties": {
    "type": "Image",
    "kind": "TimeSeries",
    "source": {
      "url": "s3://<bucket>/<ResultKey>/<filename>.zarr",
      "type": "Zarr"
    },
    "time_series": {
      "timestamps": ["2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z"],
      "variables": ["differential_cut", "differential_fill"]
    }
  }

Publishing workflow

  1. Produce georeferenced raster (prefer COG with overviews).

  2. Upload to object storage or tile service.

  3. Publish GeoJSON Feature with type Image referencing raster in properties.source.url.

Validation checklist

  • Raster is georeferenced and in a supported projection.

  • COG has internal overviews and correct tiling.

  • Footprint matches raster extent.

See Common properties for shared fields like legend, metadata, and classification.