Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Kinds and roles: three kinds of function, three kinds of data

Design · working page · how code in the stack is packaged, what data it sees, the role each name plays in its library, and the rules that place any name in the stack

Abstract

A working page split from the layer map, which keeps the layers, the imports and the boundaries of each library. This page holds the two axes every name in the stack sits on: how its code is packaged and what data it sees. It starts from the silent failures of geo code, defines the objects in symbols with one running example (a methane plume in an EMIT hyperspectral scene over an oil and gas field: a matched filter, a plume mask, and an emission rate from the integrated mass enhancement and the wind), climbs the role ladder inside a library, and ends with the rules that decide where a name may live and what it may call.

Keywords:kindscarriersrole laddervocabularygeoarraypipekit

Open the full page

Status. A draft, still being worked on; the open questions are tracked in #122 (the role ladder per library).

TL;DR: two axes, one ladder, four rules

On the page

  1. The problem: why geo code is hard to write well

  2. The objects, in symbols: the data axis (plain array, named array, carrier) and the kind axis (function, Module, Operator), each with a worked example in code, and a note on the parallels with operator learning (encoder, approximator, reconstructor), Lift & Learn and Koopman

  3. The running example, end to end, as four lifted functions, and the data axis in three lines

  4. Inside a library: the role ladder, with steps, recipes and orchestration; then the running example up the ladder: the data, primitives, strategies and models, algorithms, one step per stage, and the recipe (retrieval, segmentation, quantification) with its orchestration

  5. Who works where: bands of the ladder

  6. One vocabulary per axis, and whether we need a name change

  7. The four rules, the three invariants, and what enforces them today

  8. geoarray, gridax and functax: geometry has no CRS below GeoStack