Paths, axes, weights, and masks#

Paths#

External source paths use ref::path: the part before :: selects a registered source and the remainder selects data inside that source. Attribute lookup may append @attribute, for example sample::/entry/data@units.

Processing paths select an in-memory bundle, BaseData entry, and optionally a field below it, for example /sample/signal/signal. Exact accepted paths depend on the consuming sink or API operation.

Axes#

BaseData.axes can associate coordinate BaseData objects with signal dimensions. Arithmetic performs inexpensive structural checks, not deep array equality. Modules that require identical coordinates must enforce that rule. Reductions retain only axes that were not reduced when complete axis metadata is available.

Weights#

Weights are scalar or signal-broadcastable arrays used by reduction modules. They are not uncertainties. A weight of zero can exclude a point from a weighted calculation; negative weights are rejected where an estimator requires non-negative effective weights.

Masks#

Masks are uint32 bitfields. A nonzero value identifies an invalid or excluded point, while individual bits can preserve multiple reasons. Mask creation and combination should keep those reasons until a consuming operation explicitly selects bits.

ApplyMask changes selected signals to NaN or another configured scalar. Reduction and integration modules can instead consume a mask without mutating the input. See the masking guide for workflow choices.