Calculations Transform (Beta)¶
The Calculation Transform is a new beta feature in Falkonry’s Time Series Intelligence (TSI) platform that enables users to define custom formulas and perform signal transformations using Python. It leverages existing signals stored in Falkonry to generate new, derived signals through user-defined code. Using the Calculation Transformations API, you can deploy a live model that continuously evaluates data as it arrives. Whenever new data is ingested into the input signals, it is immediately processed through the Python function, and the results are written to the configured output signals in real time. This allows Calculation Transforms to produce derived signals in sync with the live updates of their parent signals.
Visit the Calculation Transformation APIs section to see how to implement the Calculation Transformations in Falkonry TSI.
Why It Matters¶
The Calculation Transform adds powerful flexibility to time series processing by enabling:
- Derived Signal Creation: Perform feature engineering and aggregate calculations (e.g., standard deviation, rolling max) directly in-platform for analysis or reporting.
- Windowed Downsampling & Normalization: Apply calculations over a window of data to downsample high-frequency signals and align them to a common scale, with flexible control over output frequency and resolution.
- Seamless Integration: Acts as a modular step in the TSI pipeline, accepting raw or processed signals and feeding into downstream tasks like detection, pattern recognition, or rules evaluation.
How it Works¶
To use the Calculation Transform, you begin by specifying input signals and output signals (See signal sets). These signals serve as the inputs and outputs of your custom Python function, enabling you to define exactly how data is processed and transformed. For example, you may use a signal like voltage as the input to a function that calculates the frequency of a signal, and have the output be the voltage_frequency. These input signals will enter the python function as a dictionary with an array of values from the selected evaluation window and likewise return a dictionary with your output signal names as keys with a corresponding array of values.
Next, you define an evaluation window, which sets the length of the sliding window used to collect data from the input signals. This windowed data is passed into your Python function, and the function’s output is written back to the corresponding output signals in the system.
You also configure an assessment rate, which controls how frequently the evaluation window moves forward. This lets you choose between a sliding window (overlapping windows for higher resolution) or a tumbling window (non-overlapping windows for batch-like processing), depending on your use case.
Once all configurations are complete, you can run a CALCSETUP flow to create a live Calculation Transform model along with the specified output signals.
Example: Sliding Window in Action¶
The animation below illustrates how the Calculation Transform processes incoming signal data using a sliding evaluation window. As the window moves forward, a subset of the input signal (e.g., six_machines/machine/temperature1) is passed into a Python function. In this example, the function computes the maximum value of the data within the window, and the result is written to a new output signal. This showcases how windowed computations enable continuous, real-time signal transformation.