Skip to content

Readout ​

Readout operations consume container state and produce structured data results.

Readout families:

FamilyPurpose
img(...)Image/optical readout.
ecp(...)Electrochemical/chemical-property readout.
phy(...)Physical measurement readout.

Physical Readout ​

Example from the public environment/readout file:

text
let obs = phy(sample = reactor, quantity = ReadoutQuantity.TEMPERATURE);

Readout operations are data-producing steps. They should not be understood as material mutations.

Shared Shape ​

The three readout families share this pattern:

text
let obs = family(sample = container_or_group, quantity = quantity_name);

For complex or custom result shapes, use schema_ref with a declared data_schema(...).

text
let schema = data_schema(label = "GelImage", fields = [band_count, signal]);
let obs = img(sample = lane, quantity = ReadoutQuantity.CUSTOMIZED, schema_ref = schema);

quantity uses the closed ReadoutQuantity enum. Each operation accepts the subset listed below: for example, ReadoutQuantity.PH is valid for ecp. ReadoutQuantity.CUSTOMIZED requires schema_ref for all three operations. Equivalent bare tokens and strings remain accepted.

img(...) ​

text
let obs = img(sample = diluted_mix, quantity = ReadoutQuantity.FLUORESCENCE);

img quantities:

QuantityMeaning
ReadoutQuantity.UV_ABSORBANCEUV/absorbance readout.
ReadoutQuantity.FLUORESCENCEFluorescence readout.
ReadoutQuantity.COLORIMETRICColorimetric readout.
ReadoutQuantity.CUSTOMIZEDCustom image/readout shape; requires schema_ref.

ecp(...) ​

text
let obs = ecp(sample = tube, quantity = ReadoutQuantity.PH);

ecp quantities:

QuantityMeaning
ReadoutQuantity.PHpH.
ReadoutQuantity.CONDUCTIVITYConductivity.
ReadoutQuantity.DISSOLVED_OXYGENDissolved oxygen.
ReadoutQuantity.ORPOxidation-reduction potential.
ReadoutQuantity.CUSTOMIZEDCustom electrochemical result; requires schema_ref.

phy(...) ​

text
let obs = phy(sample = reactor, quantity = ReadoutQuantity.TEMPERATURE);

phy quantities:

QuantityMeaning
ReadoutQuantity.TEMPERATURETemperature.
ReadoutQuantity.PRESSUREPressure.
ReadoutQuantity.FLOW_RATEFlow rate.
ReadoutQuantity.MASSMass.
ReadoutQuantity.VOLUMEVolume.
ReadoutQuantity.HUMIDITYHumidity.
ReadoutQuantity.CURRENTElectrical current response; may use schema_ref.
ReadoutQuantity.CUSTOMIZEDCustom physical result; requires schema_ref.

Return Shape ​

Single-container input returns a data_ref.

Group input returns a data_group_ref aligned with the input group order.

Readout results are structured information references. They are not containers, and indexing a single data_ref as if it were a group is a semantic error.

Raw Artifacts ​

Readout calls may use save_raw = true.

text
let obs = img(sample = lane, quantity = ReadoutQuantity.CUSTOMIZED, schema_ref = schema, save_raw = true);

Raw artifacts are associated with the result. They do not replace the structured result fields.

Released under the Apache-2.0 license.