Calculation Transformations¶
Calc Setup¶
The Calc Setup flow is used to create a Calculation Transformations model. This model is a vessel for the custom python code that processes signal data to generate output signals.
Request Parameters¶
- Input Signal Set
This is a collection of input signals. It requires a list of signal IDs and their corresponding names, as shown in the sample payload. You must also provide a name for the group, which will be saved in the system to identify this specific combination of input signals. The input to your python function will be a dictionary with key names of the signal names in your input group.
- Output Signal Set
This is where you define a list of signal names and value types of the output signals.
- Statistic
Specifies the aggregation method—Max, Mean, or Min—used when data is downsampled. If the data level is the same as or finer than the original data, the function receives values that reflect the raw data (i.e., unaggregated).
Evaluation Window
Defines the time window used to gather input signal data for the Python function. For example, a value of PT3M indicates that each assessment will use a 3-minute window of input signal data, which is passed to the function as the input dictionary. See Calculation Transformation Overview for more details.
Example payload
{ "flowType": "CALCSETUP", "name": "Calc Setup flow with 2 inputs and 2 outputs", "spec": { "name": "MainInputs", "inputSignalset": { "name": "Input_Signals", "valueType": "Numeric", "signals": [ { "signal": "123456789123456789", "name": "signalA" }, { "signal": "123456789123456789", "name": "signalB" } ] }, "outputSignalset": { "name": "Output_Signals", "signals": [ { "valueType": "Numeric", "name": "outputSignalA" }, { "valueType": "Numeric", "name": "outputSignalB" } ] }, "modelDetails": { "statistic": "mean", "script": "def calculate (signal_data): return {outputSignalA, outputSignalB}", # A string of a python function that takes in a dictionary of input signals, and outputs a dictionary of the output signals "valueType": "Numeric", "evaluationWindow": "PT3S" } } }
Example curl request
curl --location --request POST 'https://app3.falkonry.ai/api/1.2/accounts/xxxxxxxxxxxxxxx/flows' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{Insert Json payload}'
Example with Python
import requests import json URL = 'https://app3.falkonry.ai/api/1.2/accounts/xxxxxxxxxxxxxxx/flows' TOKEN = '<token>' HEADERS = {'Authorization': f'Bearer {TOKEN}', 'Content-Type': 'application/json'} PAYLOAD = {'Insert Json payload'} response = requests.post(URL, headers=HEADERS, data=json.dumps(PAYLOAD)) print(response.json())
Note
When a Calc Setup flow is posted, it creates a model that defines how input signal data is processed through the function to produce output signal values. The model is assigned an ID and an assessment ID, both of which can be used to run a Calc Eval Flow. You can retrieve this information by sending a GET request to the Calc Setup flow using its flow ID, which can be done using an API request or using your browser network tools on the Calc Setup flow in the activities monitor.
Calc Eval¶
The Calc Eval flow is used to evaluate a Calculation transform model over a specified historical time range. It generates output for the defined output signals based on the provided input signals.
Request Parameters¶
- timeRange
It requires startTime and endTime parameters in ISO 8601 format, which define the evaluation time range.
- Assessment
This is the assessment ID of the model created during the Calc Setup Flow. This can be identified in the flow output details.
- Model
This is the model ID of the model created during the Calc Setup Flow. This can be identified in the flow output details.
Example payload
{ "flowType": "CALCEVAL", "name": "eval ", "assessment": "123456789123456789", "spec": { "timeRange": { "startTime": "2024-07-23T00:00:00.000000000Z", "endTime": "2024-10-09T00:00:00.000000000Z" }, "model": "123456789123456789" } }