ESA GSTP programme · Geomatrix UAB

A decade of Europe, analysis-ready

Every Sentinel-1 acquisition over Europe since 2014, radiometrically terrain-corrected to γ⁰ backscatter and indexed as an Open Data Cube — then served three ways: through STAC and Python for the people who want the pixels, through eight browser applications for the people who want the answer, and through an OGC map service for everyone in between.

Index status live
sagris_s1_rtc_vv_img_europe—
sagris_s1_rtc_vh_img_europe—
sagris_s1_rtc_vv_img_africa—
sagris_s1_rtc_vh_img_africa—
γ⁰ uint16 · DN = γ⁰ × 1000 · EPSG:4326 indexed —
1.04MIndexed datasets, one per scene and polarisation
520,952Sentinel-1 scenes in the cube
2014–2026Continuous record, no cloud gaps
6.5M km²Europe and neighbouring states
4ODC collections, Europe and Africa
~10 mNative pixel, 6–12 day revisit

What the cube holds

Level-1 GRD, radiometrically terrain-corrected to gamma-nought and stored as one GeoTIFF per acquisition and polarisation, with EO3 metadata alongside every file. Nothing is pre-aggregated: indices, composites and soil moisture are derived on demand from the dual-polarisation pair, so you can experiment without waiting for a product to be generated.

Mission
Sentinel-1A/B/C/D · ESA Copernicus
Sensor · mode
C-SAR 5.405 GHz · IW
Product level
L1 GRD, RTC
Measurement
γ⁰ backscatter
Polarisations
VV · VH (HH · HV where flown)
Storage
GeoTIFF uint16, DN = γ⁰ × 1000
NODATA
0
CRS · resolution
EPSG:4326 · ~10 m
Revisit
6–12 days per orbit direction
Metadata · index
EO3 / STAC · PostGIS

Why SAR and not optical: C-band sees through cloud and works at night, so the observation cadence is set by the orbit rather than the weather. That is the whole reason an unbroken decade of European growing seasons exists at all.

sagris_s1_rtc_vv_img_europe
VV co-polarisation · — datasets · —
sagris_s1_rtc_vh_img_europe
VH cross-polarisation · — datasets · —
sagris_s1_rtc_vv_img_africa
VV co-polarisation · — datasets · —
sagris_s1_rtc_vh_img_africa
VH cross-polarisation · — datasets · —

Counts and date ranges above are read live from /api/stats when this page loads. The full collection metadata, footprints and per-dataset detail are in the ODC Explorer and the STAC Browser.

Eight ways in

Each application is a different question asked of the same archive. They share one design system, one API key and one sign-in, so moving between them carries your context with you. Every one of them has a manual at /help/.

Explorer

odcube.landimage.info/products

The ODC Explorer — collections browsed by space and time, dataset footprints on a map, acquisition timelines, preview thumbnails and the STAC metadata behind each record.

Browse the collections

STAC Browser

odcube.landimage.info/browser

The Radiant Earth STAC Browser over the full archive — map-based search, collection filtering and GeoJSON export of a result set. The standards-compliant route in, for anyone integrating the catalogue.

Open the catalogue

Mapper

odcube.landimage.info/mapper

A Leaflet time-series viewer over the whole archive, tiled by the OGC map service. Coverage per acquisition is measured, not guessed from the footprint — the Mapper renders each candidate scene over your area and counts pixels, so a scene that would come back blank is never offered. Frames export georeferenced.

Open the map

Expert

odcube.landimage.info/expert

The polarimetric analysis workstation. Draw or import a polygon and every derived index is computed in real time — VV, VH, RVI, CRB, DPSVI, NDPI, θc, Hc and soil moisture — with a dual-axis chart, monthly statistics, orbit filtering and the composite-image window.

Open the workstation

Calculator

odcube.landimage.info/calc

Raster algebra in the browser. Compose an expression over named scenes and bands, have it evaluated server-side and rendered straight back onto the map. The display stretch is calibrated, not guessed — histogram equalisation is the default because it was measured against the alternatives on real output.

Open the toolbox

Farmer

odcube.landimage.info/farmer

Parcel-level monitoring built on CAP declarations. Phenology markers from the backscatter curve, false-colour field composites under a country-wide stretch, peer benchmarking against every same-crop field within 5 km, and crop-damage detection for standing water and storm lodging.

Open the panel

Tracker

odcube.landimage.info/tracker

Persistent change detection over thousands of objects. A pixel-level state machine with configurable confirmation logic — so a change has to hold before it is reported — plus a bi-temporal inspector, per-object history and a detected/confirmed/dismissed workflow.

Open the tracker

FrontierPreview

odcube.landimage.info/frontier

Decade-scale detection of activity points — vessels, vehicle clusters, staging grounds — by trading spatial resolution for temporal depth. Ten years of revisits expose recurrence and seasonality that no single image can show. Built on the Tracker pipeline.

Open the preview

Operator surfaces. The publishing control plane (/manager/), user and plan administration (/admin/) and the platform appearance panel (/config/) are restricted to the administrators group and are not part of the public entry points above.

What it measures

Everything below is derived on request from the dual-polarisation pair. The methods are documented rather than hidden — each one names the assumption it makes and the conditions under which it degrades.

Time series and indices

Polygon or point γ⁰ over any date range, with the full polarimetric index set computed alongside it — RVI, CRB, DPSVI, NDPI and the Bhogapurapu θc/Hc pair.

POST /api/timeseries

Composites and image chips

Per-acquisition PNG chips under a global stretch, plus simple, agriculture and temporal false-colour composites. Field composites use a country-wide, agriculture-masked stretch, so a colour means the same thing on every parcel.

POST /api/imagechips

Raster algebra

Expressions composed in the browser over named scenes and bands, parsed to a safe AST and evaluated server-side. Results are capped at 1500 px across the area, and the interface tells you the pixel size before you run.

POST /api/algebra-eval

Persistent change detection

A pixel-level state machine rather than a bi-temporal difference: a candidate must survive a configurable number of confirming acquisitions before it is reported, which is what separates a real change from speckle.

Tracker · confirmation logic

Phenology and benchmarking

Emergence, canopy closure, growth onset and harvest, fitted from the VH/CRB curve. A parcel is then ranked against every same-crop field within 5 km on every acquisition, bounded by its own growing period — nothing after harvest is graded.

POST /api/neighbors-band

Soil moisture and crop damage

Relative surface soil moisture with a vegetation-corrected variant, and per-parcel detection of standing water and storm lodging — with wild-animal damage separated from lodging by its rate of onset and reported as a candidate, not a verdict.

POST /api/agrisk-scan

Straight into Python

The browser applications are one surface over the cube; they are not the only one. Connect the ODC client directly for full xarray access, or go through the STAC API from anything that speaks it.

ODC client — direct xarray access

The same engine the web applications run on. Spatial and temporal subsetting, lazy loading through Dask, and the whole scientific Python stack downstream of the Dataset you get back.

import datacube
import matplotlib.pyplot as plt

dc = datacube.Datacube(app="sagris-notebook")

ds = dc.load(
    product="sagris_s1_rtc_vh_img_europe",
    x=(24.05, 24.15), y=(54.65, 54.75),
    time=("2025-03-01", "2025-08-31"),
    output_crs="EPSG:4326", resolution=(-0.0001, 0.0001),
    dask_chunks={"time": 1, "x": -1, "y": -1},
)

# DN is uint16; gamma-nought is DN / 1000, with 0 as NODATA
g0 = ds.vh.where(ds.vh > 0) / 1000.0
g0.mean(dim=["x", "y"]).plot()
plt.show()
Python 3.10+xarraydaskdatacube
Setup in the manual

STAC API — no installation

Search the catalogue and pull per-acquisition statistics with nothing but an API key and pystac-client. Runs unchanged in a notebook, in Colab, or in a script on a server.

# pip install pystac-client requests pandas matplotlib
from pystac_client import Client
import requests, pandas as pd

BASE = "https://odcube.landimage.info"
HDRS = {"X-API-Key": "YOUR_API_KEY"}

catalog = Client.open(f"{BASE}/stac/", headers=HDRS)
items = catalog.search(
    collections=["sagris_s1_rtc_vh_img_europe"],
    bbox=[24.10, 54.68, 24.12, 54.70],
    datetime="2025-03-01/2025-08-31",
).items()

r = requests.post(f"{BASE}/api/timeseries", headers=HDRS,
    json={"polarisation": "VH",
          "date_from": "2025-03-01",
          "date_to": "2025-08-31",
          "geometry": MY_FIELD_GEOJSON})

df = pd.DataFrame(r.json()["results"])
pystac-clientpandasFree tier
API documentation

Desktop GIS and OGC clients. The catalogue answers at /stac/ for QGIS 3.x and ArcGIS Pro, and the map service at /ows/ speaks WMS and WMTS for anything that can add a layer by URL. Pass your key as the X-API-Key header; /stac/ and /ows/ are open, so a map layer needs no key at all. The interactive test console is at /demo/api_test.html.

The API surface

One key, one header, three families of endpoint: the STAC catalogue for discovery, the OGC map service for rendering, and the data API for measurement. Authentication fails closed — if the auth service cannot be reached, the request is refused rather than allowed.

Catalogue
/stac/ — STAC 1.0
Map service
/ows/ — WMS · WMTS
Data API
/api/ — JSON · PNG · NetCDF
Authentication
X-API-Key header
Identity
Auth0 · OIDC + PKCE
Gating
Per-plan, server-side
Export formats
GeoJSON · PNG · CF NetCDF-4

Feature access is enforced in the API rather than the interface: a plan without the export flag receives HTTP 403 with upgrade guidance, whichever client asked. Demo access needs no registration at all and is rate limited per address.

Get a free API key

MethodEndpointReturns
GET/api/statsIndex statistics, per collection
GET/api/footprint/<product>Aggregate GeoJSON footprint
GET/api/dataset-timeline/<product>Acquisition dates for a collection
POST/api/timeseriesγ⁰ and indices over a point or polygon
POST/api/imagechipsPNG chips for a bbox and date list
POST/api/datacubeCF NetCDF-4 subset — plan gated
POST/api/algebra-evalRaster-algebra expression result
POST/api/algebra-scenesFull-coverage scene pairs for an area
POST/api/neighbors-bandPeer percentile band across parcels
POST/api/agrisk-scanCrop-damage rasters, events and series

Extraction endpoints carry hard limits by design — /api/datacube at 1° per side and 256 MB uncompressed, algebra at 1500 px across the area. The full inventory, including the Tracker and Farmer service endpoints, is in the API documentation.

The finished maps

The data cube is the raw material. The SAGRIS map catalogue is what comes out of it: land cover status and land use change maps for 45 countries, one pair per growing season since 2015 — 980 layers, produced from 1.2 million processed Sentinel-1 images.

Two products, and they answer different questions. Status maps farming intensity — how hard the ground is worked across the season. Change maps crop type through the calendar itself: blue where the signal peaks earliest in the period, green in the middle, red at the end, so the colour of a field is the timing of its growth.

Each country page carries an interactive map at tile resolution, downloadable products and processing statistics. The catalogue answers on its own domain at sagris.eu and inside landimage.info — the same page, so a deep link works from either.

Access

Five tiers, all enforced server-side from one plans table. Registration is self-service through Auth0 up to Pro; Enterprise is arranged directly. Quotas below are the limits the API actually applies.

Demo

No account

Free
Anonymous · nothing to sign
  • 10 requests per address per 24 h
  • Time series and image chips
  • Map service and catalogue open
  • No NetCDF export
Try it in the Mapper
Free

Researcher

€0
Self-service registration
  • Standard daily rate
  • Time series, limited image chips
  • Full STAC catalogue access
  • All browser applications
  • No NetCDF export · no SLA
Register free
Basic

Basic

€ — / month
Self-service · price to be confirmed
  • 5,000 requests per day
  • Time series and image chips
  • NetCDF datacube export
  • All browser applications
Ask about Basic
Pro

Professional

€ — / month
Self-service · price to be confirmed
  • 50,000 requests per day
  • Everything in Basic
  • Priority query queue
  • Email support
Ask about Pro
Enterprise

Enterprise

By agreement
Arranged directly · multi-user
  • Unlimited daily rate
  • Custom quotas per contract
  • Multi-user organisations, RBAC
  • Named support contact
  • ESA / EU compliant invoicing
Talk to us

Tell us what you need measured

Data access, evaluation licences, commercial products and project partnerships all start the same way.

info@geomatrix.lt

+370 699 99940  ·  Mokslininkų 2A, 08412 Vilnius, Lithuania