Data and presentation
A component grid describes several nonnegative numerical values inside each aligned geographical cell. Categories are identified by stable IDs, with labels kept separately. A Data Product declares their meaning, units and aggregation. A Channel bundles every component for one measure through a versioned grid_delivery capability. A Layer explicitly binds compatible measure Channels; selecting a component does not change authorization.
This capability contains numerical blocks, independently of the image pixel delivery contract. New datasets can use the same renderer when they supply its aligned WGS84 grid, stable categories, declared LODs, finite nonnegative values and explicit NaN missingness. Regridding unrelated datasets is a separate operation.
Composition
The Layer owns three display choices: mosaic, stripes and dominant category. Mosaic and stripes allocate exact rectangles in proportion to positive known values inside the cell. Dominant fills the cell with its largest component. Mosaic always uses a stable seeded shuffle of component positions without changing their shares, including existing maps that saved shuffle disabled. There is no shuffle control. Stripes always follow descending component values, with ties resolved by contract order. A zero has no area but remains available to inspection; missing data remains distinct from zero.
One selected component uses its category color with opacity scaled by its numeric value. Category colors are keyed by identity, not array position. A catalog palette is copied into the Layer so later catalog edits do not recolor existing maps. Viewer measure/component/mode choices are local preferences; author defaults and colors belong to the saved Layer.
Inspection uses the accepted numerical blocks and actual measure units. By default, hover shows the five largest positive components in descending measure order, as a list in the shared hover summary. Color strips use saved Layer category colors and can be disabled independently for each field. Details retain all components in descending measure order, with known zeroes before missing observations; equal values keep the contract's stable order. Component dropdowns sort localized names alphabetically, with the all-components choice first, without changing numerical block or palette indices. The map's shared search also finds components by partial names, stable IDs and declared translations from visible Layers' active contracts. Choosing a result applies the same local component preference as its dropdown and clears the previous cell inspection without moving the camera. Selecting one component also keeps a known zero available in hover. Explicit Layer field selections still take precedence. Incomplete compositions report how many components are known. A total is available only for a declared additive measure and a complete set of component observations. Weighted means such as crop yield are not summed. Coarse cells follow the producer's declared aggregation of known source observations; a complete component list does not imply complete spatial coverage of all source observations.
Clicking selects the complete sampled cell, using the bounds of the accepted LOD rather than the individual component rectangle. The shared inspection UI outlines this geographical footprint with native draped Mapbox layers instead of a coordinate marker. The footprint stays with the sampled details when the camera moves; a new click replaces it and closing selection removes it. Other samplers can reuse the same optional inspection geometry.
Delivery and lifecycle
Immutable Float32 blocks are built offline and served from private Storage after exact Layer/Channel and map-access authorization. Scalar Channels do not authorize broader component bundles. Object paths come from the catalog, not caller-provided bucket or release overrides.
CanvasSource surfaces stay draped by Mapbox across the globe/Mercator transition. Scene bytes, texture pixels, surface count, cache size and concurrency are bounded. A coarser declared LOD can satisfy a large viewport. Failed replacements retain an authorized accepted frame with an error state; confirmed access denial clears the frame. Style reloads reattach resources through the normal map lifecycle.
Crop statistics are the first producer.