index-timeseries
See any single spectral index change over time across an AOI, and filter by its value. For every clear Sentinel-2 pass over the AOI, compute a chosen normalized-difference index (NDSI, NDVI, NDWI, ...) on surface reflectance, and emit a per-scene raster stack plus a thresholded mask (e.g. index > 0.7). The index stack is the scrubable map layer; the threshold is a live control. This is the simplest member of the index-timeseries family: no temporal reduction, no domain-specific gates, no SAR fusion. Pick an index, pick a threshold, pick an AOI and a date window, and watch where and when the index crosses your line. snow-cover-fsc is the specialized, validated descendant that adds the Gascoin shadow gate, a continuous FSC sigmoid, and water-year phenology on top of this same skeleton.
- recipe
- Apache-2.0
- outputs
- CC-BY-4.0
The contract
Read from this recipe's own declarations — parameters:,
outputs:, requires:, and the ops its layers name. Not from its
style blocks and not from any benchmark: a colour ramp is not a contract, and a measured
run is evidence about one AOI rather than a domain.
Parameters
The legacy dialect has no typed parameter schema. Read the folia.yaml for what this recipe takes; nothing here can type-check it.
Outputs
| output | kind | layer | what it is |
|---|---|---|---|
primary |
not declared | ['compute/index', 'compute/mask'] |
|
show_your_work |
not declared | ['compute/index'] |
|
provenance |
not declared | ['source_scene_ids'] |
Capabilities it requires
The legacy dialect has no requires: block.
Where it runs
- Browser preview does not run here compute/index: carries an unsubstituted ${...} template; compute/mask: carries an unsubstituted ${...} template; source/s2: carries an unsubstituted ${...} template
- Local CLI (folia run) runs here runs locally through the legacy (no spec_version) parser
- Operated fleet (POST /plan, /run) runs here legacy dialect: a lock binds by the cut's layer names, not by digest
registry/recipes/index-timeseries/folia.yaml