embedding-change-two-date
Per-patch embedding change between two quarters at one AOI, from one foundation model release. Embed the AOI at t0 and at t1 with the same model, then take the per-patch cosine distance between the two vector sets and render it as a change surface. High distance means the model sees the place differently than it did before; it does not say why, and the recipe makes no claim about the cause.
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
| parameter | type | domain | default | what it does |
|---|---|---|---|---|
aoi_bbox |
array | of number, exactly 4 items | [-6.44,36.96,-6.4,37] |
The AOI bounding box [w, s, e, n] in WGS84 lon/lat. Default is the Donana sub-tile the first conformance slice measured, kept small on purpose (see header). Hard cap at both loci is 50 x 50 km. |
model_release |
string | terramind@hf-ibm-esa-geospatial-terramind-v1-base |
Release identity of the foundation model, spelled <fm>@<fm_version> and pinned in registry/models/<id>.yaml `serving:`. The bare <fm> form resolves to the record's current fm_version. This param is what carries checkpoint identity into the layer key (spec §3.3). | |
t0 |
string | 2023-Q2 |
The earlier temporal pin. YYYY-Q[1-4] is the only spelling in v0. | |
t1 |
string | 2025-Q2 |
The later temporal pin. Same season as t0 unless you want phenology in your signal. | |
metric |
string | cosine |
Per-patch distance metric. cosine | euclidean. | |
locus |
string | local |
Where the forward pass runs. A placement decision (ADR-0084), not a change of contract. `local` is the default for development, tests and gates because it costs $0 and needs no GPU vendor account. |
Outputs
| output | kind | layer | what it is |
|---|---|---|---|
change_surface |
raster | compute/change |
|
embeddings_t0 |
table | compute/e0 |
|
embeddings_t1 |
table | compute/e1 |
Capabilities it requires
Declares no requires: block, so it asks nothing of a host beyond the engine itself.
Where it runs
- Browser preview does not run here compute/change: op "embedding_distance" has no browser kernel; compute/e0: op "embedding_generate" has no browser kernel; compute/e1: op "embedding_generate" has no browser kernel
- Local CLI (folia run) runs here runs locally through the governed folia/0.1 parser
- Operated fleet (POST /plan, /run) runs here binds to a canonical digest, so a lock is checked by digest equality
registry/recipes/embedding-change-two-date/folia.yaml