Fabric Engine

Reproducible geospatial
pipelines, containerized.

A declarative, container-isolated processing engine that ingests multi-source Earth observation (EO) data, harmonizes it to a common baseline, and produces analysis-ready outputs with a complete, auditable provenance record. Define a Pattern. Run it anywhere. Reproducible every time.

How it works →
AOIDataPreAnalysisPostOutput

Engine is the processing core. It executes the full six-layer pipeline — from area selection through analysis-ready output. See the full pipeline →

7+ sources Sentinel-2, Landsat, SRTM, SAR, and more
28+ tasks From cloud masking to NDVI to flood extent mapping
Six Fabric layers AOI, Data, Preprocessing, Analysis, Post-processing, Output
W3C PROV Provenance manifest on every run

Every sensor speaks
a different language.

Sentinel-2 delivers 10-meter multispectral imagery across 13 bands. Landsat 9 uses a different band layout, different radiometric calibration, a 30-meter resolution, and a different temporal cadence. SRTM elevation data is 30-meter global coverage but requires reprojection to match. SAR backscatter from Sentinel-1 has no direct optical equivalent. OpenStreetMap vector features need spatial alignment before they can be used alongside any of these.

Every analysis project starts with the same labor: download, reproject, resample, align, correct, clip. Done manually this takes days.[1]USGS: The Value of Data ManagementMichener (2015): "80% of a scientist's effort is spent discovering, acquiring, documenting, transforming, and integrating data... 20% is devoted to analysis, visualization, and new discoveries."usgs.gov ↗ Done with one-off scripts it works once, then breaks silently when the upstream data format changes.

Fabric Engine encodes the harmonization knowledge as a declarative pipeline. Define your study area and data sources in a Pattern. Engine resolves all cross-sensor inconsistencies, runs each step in an isolated Docker container, and writes analysis-ready outputs with a full manifest of exactly what was processed, when, and how.

Six Fabric layers. One analysis-ready output.

AOI

Area of Interest

Define your study area by geocoding a natural language location name, uploading a GeoJSON boundary, or downloading a municipality polygon automatically. The AOI becomes the spatial scope applied to every downstream step. Clip, reproject, and grid-align all happen relative to it.

Data

Multi-source acquisition

Engine queries upstream providers in parallel: Sentinel-2 L2A (10m/20m multispectral, via Microsoft Planetary Computer STAC), Sentinel-1 SAR, Landsat 8/9, SRTM 30m DEM, Copernicus DEM GLO-30, OpenStreetMap vectors (roads, buildings, waterways, land use, and administrative boundaries), and HydroSHEDS hydrological data. Cloud-Optimized GeoTIFF (COG) downloads across all sources.

Pre

Harmonization

Clip to AOI, reproject to the appropriate UTM zone, resample to target resolution (10m default, configurable), align to a shared reference grid, mosaic multi-scene acquisitions, normalize NoData values. Every source exits preprocessing with identical Coordinate Reference System (CRS), pixel dimensions, and spatial extent, guaranteed.

Analysis

Computation

Spectral index computation (NDVI, NDSI, NDWI, NBR, dNBR, NDBI, MNDWI), band math with templated or custom expressions, harmonized vegetation analysis across multi-sensor inputs, SAR flood extent mapping, and focal statistics. Independent analysis tasks in a Pattern can execute concurrently.

Post

Summary statistics

Per-band and per-index summary statistics (min, max, mean, stddev, percentile distributions) computed across the output stack. Statistics are written to a structured JSON report alongside the raster outputs, suitable for downstream dashboards, alert thresholds, or time-series aggregation.

Output

Analysis-ready delivery

Cloud-Optimized GeoTIFF (COG) with embedded metadata, 8-bit PNG/JPEG visualizations with contrast stretching, GeoJSON and GeoPackage (GPKG) vector features, JSON statistical reports, and a manifest.json recording every parameter: bounding box, CRS, scene IDs, acquisition dates, cloud cover, and processing software versions. A complete W3C PROV-compliant provenance record for every run.

Same input.
Same output.
Every time.

Analysis-Ready Data means every output from Fabric Engine meets a set of guarantees before it leaves the pipeline: identical coordinate reference system (automatically selects the appropriate UTM zone for your AOI), identical pixel dimensions and spatial extent across all sources, consistent 10m target resolution, proper NoData masking, and geospatially embedded metadata.

The Pattern definition is version-controllable, shareable, and executable on any system with Docker: amd64 and arm64, Linux, macOS, Windows. Run the same Pattern six months later on new data and the output structure is structurally consistent with the original: identical CRS, pixel dimensions, layer ordering, and metadata schema. This is enforced by the containerized execution model.

Every run produces a manifest.json recording all parameters, scene identifiers, acquisition timestamps, cloud cover percentages, and software versions used. The manifest is the provenance record: it is what makes the output legally defensible and scientifically reproducible.

Composable workflows for common EO analysis.

Snow & Ice

Cryosphere monitoring

Snow extent mapping via NDSI, multi-year snow comparison, ice extent time series. Multi-season composites with automatic cloud-free scene selection.

Vegetation

Vegetation & agriculture

NDVI time series, deforestation detection, crop health assessment, fire scar mapping via dNBR. Composable from spectral index and band math tasks.

Water

Water & flood

SAR flood extent mapping, water body detection via NDWI/MNDWI, pre/post flood comparison. SAR provides coverage when cloud cover limits optical data.

Urban

Urban & infrastructure

Urban growth detection via NDBI, construction site monitoring, impervious surface mapping, road network change detection. Combine optical imagery with OSM vector data.

Hazards

Risk & disaster

Wildfire risk mapping, flood risk modelling using elevation and land cover data. Pre/post disaster change detection with dNBR and multi-source fusion.

Custom

Extensible via Docker

The engine is extensible — new processing tasks can be added as Docker containers following the task interface. Bring your own Python, R, GDAL, or SNAP processing step and chain it into any Pattern.