Skip to main content
Derive a new signal from one or more existing Channels to extract insights without modifying the original telemetry.

Before you begin

  • You are familiar with how Sift organizes data into Assets, Channels, and Runs.
  • You have at least one Asset with ingested telemetry data and know which Channels you want to use as inputs.
  • You have at least one Run that includes the input Channels you plan to use, so you can verify the derived signal after creating it.

How derived signals work

A derived signal is created using a Calculated Channel. A Calculated Channel is a new signal computed from one or more existing Channels using a CEL expression. Sift evaluates the expression against each incoming data point and stores the result as a separate Channel, leaving the original telemetry intact. Each input Channel is assigned a shorthand variable ($1, $2, and so on) based on the order you select them. You use these variables to write the expression. Input Channels can be raw Channels or other Calculated Channels (up to 10 levels of nesting are supported). When writing the CEL expression, you can optionally call a User-Defined Function by name to apply reusable logic without rewriting it each time. Unlike a Calculated Channel, a User-Defined Function does not produce a signal on its own. It only works inside a Calculated Channel expression.

Example

For example, say you want to compute the power draw of a system from its voltage and current Channels. Instead of exporting the raw data and computing it manually, you select both Channels and write $1 * $2 as the expression. Sift evaluates the expression against each data point and stores the result as a new signal, leaving VOLTAGE.VOLTS and CURRENT.AMPERES intact.

Create a derived signal

  1. In Sift’s homepage, click the https://mintcdn.com/sift/_hOPosV9TU0PKETb/icons/calculated-channel.svg?fit=max&auto=format&n=_hOPosV9TU0PKETb&q=85&s=8773a5f9cfda66f8024c8468a396146a Calculated Channels tab.
  2. Click New Calculated Channel.
  3. In the Calculated Channel name box, enter a name for the derived signal.
  4. In the Asset name list, select the Asset associated with your input Channels.
  5. In the Input Channels list, select one or more Channels to use in the expression.
    • To use raw telemetry, select one or more existing Channels.
    • To build on a previously derived signal, select an existing Calculated Channel.
    • You can mix raw Channels and Calculated Channels as inputs.
  6. In the Query box, write a CEL expression using the assigned input variables.
    • To call shared logic, reference a User-Defined Function directly in the expression.
  7. Optional: In the Units box, enter the unit of measurement for the derived signal.
  8. Optional: In the Calculated Channel(s) Preview section, click Select Run to select a Run, then review the plot to confirm the derived signal behaves as expected against the input Channels.
  9. Click Save.

Verify the derived signal

You can confirm the derived signal is working correctly in two ways:
  • During creation: In the Calculated Channel(s) Preview section, select a Run to confirm the expression produces the expected values against the input Channels.
  • After saving: In Sift’s homepage, search for and select the Run that contains the input Channels used in the expression, click Explore, then in the https://mintcdn.com/sift/_hOPosV9TU0PKETb/icons/calculated-channel.svg?fit=max&auto=format&n=_hOPosV9TU0PKETb&q=85&s=8773a5f9cfda66f8024c8468a396146a Calculated Channels tab, click your new Calculated Channel to plot it alongside the source Channels.
If the values look unexpected, return to the Calculated Channel, review the expression, and use the preview to validate changes before saving.

Next steps

  • Reuse expression logic
    • Once you have created a derived signal, learn how to define expression logic once as a User-Defined Function and reference it across multiple Calculated Channels and Rules to avoid rewriting the same expression each time.

Reference