Raster Processing Pipelines
A raster processing pipeline is the machinery that turns raw imagery into analysis-ready products in a way that can be repeated, audited, and run at scale. The single scene a notebook processes by hand is the easy case; the engineering problem appears when the same transformation must run over thousands of scenes, survive partial failures, and produce outputs a downstream analysis can trust without re-checking each one. This note describes the shape such a pipeline takes — its stages, the data model it operates on, the metadata and provenance it must carry, and the operational choices around storage, recomputation, orchestration, and monitoring. It stays at the level of system structure rather than any one workflow engine, because the durable reasoning is about what the stages are and why they exist, not which tool draws the diagram.
The stages
Most raster pipelines are a variation on the same sequence, and naming the stages is most of understanding them. Ingestion brings scenes in — usually by resolving a STAC query into a concrete list of items and reading their COG assets in place rather than copying whole archives. Validation immediately follows: check that each scene has the expected bands, geometry, and metadata, and reject or quarantine what does not, because a bad input caught here is far cheaper than a corrupt product discovered downstream. Masking removes pixels that should not contribute — clouds, shadows, saturated or nodata values — and it is foundational enough to have its own cloud masking treatment; masking early keeps every later stage from computing on garbage. Reprojection and alignment put scenes onto a common grid and coordinate system so that pixels from different dates and sensors actually correspond, which is the precondition for combining them at all. Compositing collapses many observations into one representative surface — a least-cloudy or median composite over a window of time — turning a noisy time series of partial scenes into a clean layer. Finally export writes the result back out as cloud-optimized rasters with complete metadata, ready to be cataloged and consumed. The order matters: validate before you compute, mask before you combine, align before you composite.
The data model
A pipeline is only as clear as the objects it names, and raster work has a natural hierarchy worth being explicit about. A scene is one observation of one area at one time — the atomic input, carrying its own footprint, timestamp, and quality metadata. A tile is a spatial subdivision used so that large areas can be processed in independent, parallelizable pieces rather than as one unwieldy raster; tiling is what lets the same pipeline run on a laptop-sized region or a continent. A temporal stack is the set of scenes over one area across time, the input to compositing and to change detection; modeling it explicitly — which dates, in which order, aligned to which grid — is what makes multi-date analysis reproducible. And a derived product is any output the pipeline creates: a composite, an index layer, a classification. The reason to name these deliberately is that they are the units you store, version, and reason about failures in. A pipeline that treats “a scene,” “a tile of a scene,” and “a composite over a stack of tiles” as distinct, clearly identified objects can be reasoned about; one that blurs them becomes impossible to debug or resume.
Metadata, provenance, and parameters
The output of a pipeline is not just pixels — it is pixels plus the record of how they came to be, and treating that record as a first-class deliverable is what separates a product from a file. Every derived raster should carry its metadata: the coordinate system and grid, the bands and their meaning, the nodata value, and the time window it represents. It should carry quality flags that tell a consumer what was masked and how much valid data actually contributed to each pixel, so a downstream user can distinguish a confident value from one interpolated over clouds. And it should carry provenance: which input items produced it, from sources like Sentinel-2 or Landsat, and the exact processing parameters — the mask thresholds, the compositing rule, the date range — that generated it. Provenance is what makes a result reproducible and auditable: given the recorded item list and parameters, the same product can be regenerated and any anomaly traced to a specific input or setting. It is also what lets outputs re-enter the system cleanly, since a product with full metadata can be cataloged and consumed exactly as an original scene would be.
Storage, recomputation, and orchestration
Between ingestion and export sit intermediate results, and how you treat them is a central cost-versus-speed decision. Materializing intermediates — writing masked or reprojected scenes to storage — makes later stages fast and reruns cheap, but consumes space and can go stale when inputs change. Recomputing them on demand saves storage and guarantees freshness at the cost of repeated work. Most pipelines land in between: persist the expensive, frequently reused intermediates and recompute the cheap ones, and make each stage idempotent so that rerunning it produces the same output and a resumed job neither duplicates nor corrupts work. Orchestration is the layer that sequences all this — running independent tiles in parallel, respecting the dependencies between stages, and tracking which units are done so an interrupted run can resume rather than restart. The guidance that keeps this manageable is to structure the work as many small, independent, restartable units keyed to the data model above, so the orchestrator’s job is bookkeeping over well-defined tasks rather than babysitting one monolithic process.
Failure handling, testing, and monitoring
At scale, individual failures are not exceptional events but a steady background rate, and a serious pipeline is designed around that fact. Failure handling means a single bad scene degrades gracefully — it is skipped or quarantined with its reason recorded, not allowed to abort a run over thousands of others — and transient errors such as a timed-out read are retried rather than treated as fatal. Testing covers both the code and the data: unit tests on the transformations, and data-quality checks that a product’s valid-pixel coverage, value ranges, and geometry fall within expected bounds before it is published. Monitoring tracks the run as a whole — how many scenes succeeded, failed, or were quarantined, how coverage and processing time trend over time — so that a slow degradation in input quality is visible before it silently corrupts a product. Together these are what let a pipeline feed a trusted downstream result such as NDVI monitoring: not the absence of failure, but failures that are contained, recorded, and observable. The engines and file layouts will vary; the invariant is that a raster pipeline earns trust by being reproducible from recorded inputs, resumable after interruption, and honest about the quality of every product it emits.