---
type: Architecture Decision
title: Raster pixel inspection
description: Derive Fields and runtime inspection from one Channel-owned pixel contract.
tags: [rendering, raster, channel, inspection, fields]
visibility: public
---

# Rule

A raster [Channel](/catalog/channel.md) owns the truthful meaning and sampling
path of its pixels through the validated, versioned `pixel_delivery` contract.
The client derives one inspection schema from that contract. The Layer `Fields`
panel and sampling scheduler consume that schema. Runtime samplers emit the
same normalized field keys, after which generic hover/details presentation and
field selection operate on the sampled section. None of these stages may infer
capabilities from a renderer name or provider identity.

The normalized fields are stable across raster providers:

- scalar pixels expose their declared inspection field and, when supplied by
  the frame, `valid_time`;
- categorical pixels expose `category` and, when supplied by the frame,
  `valid_time`;
- provider-coloured imagery with an exact `color_interpretation` exposes the
  same categorical fields without becoming recolourable scalar data;
- ordinary imagery with frame-metadata sampling exposes `observed_at`, or
  `valid_time` for a forecast frame;
- imagery with `sampling.mode=none` exposes no invented value.

Category IDs such as `flood` are values of the single `category` field, not
separate fields. Human-readable category names are localized by the semantic
quantity plus category ID. Unknown, transparent, antialiased, or mixed colours
remain unknown instead of being assigned to the nearest class.

# Ownership boundary

An exact RGBA-to-category mapping in `color_interpretation` is decoding
metadata for immutable provider imagery. It records what an existing provider
colour means; it is not a Layer palette and does not authorize recolouring.
Numeric and class-preserving palette presentation remains Layer-owned as
described by [numeric raster encoding and palettes](numeric-raster.md).

Adding a new inspectable raster contract must extend the shared inspection
schema and its tests. A provider-specific conditional in the Fields panel or
map inspector is not a valid integration path.
