Calqulus pipeline
Qualisys Calqulus pipeline
| Type | Parameter%20Node | Space%20Node | Event%20Node | Marker%20Node | Segment%20Node | Template%20Node[] |
|---|---|
| File match |
*.calqulus.yaml
*.calqulus.yml
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/calqulus-pipeline/latest.json |
| Source | https://raw.githubusercontent.com/qualisys/qualisys-schemas/master/calqulus-pipeline.schema.json |
Validate with Lintel
npx @lintel/lintel check
A document describing calculations to be done on biomechanical data for presentation in a report.
Items
Definitions
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A template node imports a separate Calqulus pipeline file into the current pipeline. This enables, for example, splitting a pipeline up into parts that can be reused in multiple pipelines, or to make the pipelines more readable.
Toggle export on/off for this node. Defaults to true.
A step node takes an input and some options and outputs a value.
When importing a signal or defining an output node, you can specify a measurement from which the signal should be imported – or for which measurement an output node should run.
You can filter measurements by name and by field values and you can use wildcard characters * to formulate patterns to match partial values. The matching of values is case-insensitive.
When using a measurement filter, a list of matching measurements is created. By specifying the index option, you can define which of the matching measurements should apply.
Target a measurement by name
Out of a number of matching measurements, pick the nth match. Either a 1-based index, or the values first or last to select the first or last match, respectively.
Target a measurement by a field value.
Target a measurement by a the existence of forces.
Used to specify which set the exported parameter will use. In most cases, this will be either left or right.
If not set, the JSON output will use set: null.
Sets the origin of a custom coordinate system.
Sets the primary axis of a custom coordinate system. The primary axis of the custom coordinate system will always be a unit vector with the same direction as this vector.
If more than one vectors is given, for example [myMarker1, myMarker2], the vector difference between the first two vectors is used as the primary axis.
Sets the secondary axis of a custom coordinate system. The actual secondary axis of the custom coordinate system might differ from the vector specified, since the secondary axis must be a unit vector perpendicular to the primary axis.
If more than one vectors is given, for example [myMarker1, myMarker2], the vector difference between the first two vectors is used as the secondary axis.
Defines what axis the primary and secondary axis corresponds to. The first letter defines the name of the primary axis, and the second letter defines the name of the secondary axis.
Possible values: xy - Primary axis: x, secondary axis: y yx - Primary axis: y, secondary axis: x xz - Primary axis: x, secondary axis: z yz - Primary axis: y, secondary axis: z zy - Primary axis: z, secondary axis: y
Used to create a space that aligns with the specified segment. The resulting space will be rotated in 90 degree increments relative to the world space.
The rotation is based on the average orientation of the segment during a measurement.
Used to create a space that aligns with the specified segment. The resulting space will be rotated in 90 degree increments relative to the world space.
The rotation is based on the average orientation of the segment during a measurement.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A step node takes an input and some options and outputs a value.
Toggle export on/off for this node. Defaults to true.
When importing a signal or defining an output node, you can specify a measurement from which the signal should be imported – or for which measurement an output node should run.
You can filter measurements by name and by field values and you can use wildcard characters * to formulate patterns to match partial values. The matching of values is case-insensitive.
When using a measurement filter, a list of matching measurements is created. By specifying the index option, you can define which of the matching measurements should apply.
4 nested properties
Target a measurement by name
Out of a number of matching measurements, pick the nth match. Either a 1-based index, or the values first or last to select the first or last match, respectively.
Target a measurement by a field value.
Target a measurement by a the existence of forces.
Used to specify which set the exported parameter will use. In most cases, this will be either left or right.
If not set, the JSON output will use set: null.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
Sets the origin of a custom coordinate system.
Sets the primary axis of a custom coordinate system. The primary axis of the custom coordinate system will always be a unit vector with the same direction as this vector.
If more than one vectors is given, for example [myMarker1, myMarker2], the vector difference between the first two vectors is used as the primary axis.
Sets the secondary axis of a custom coordinate system. The actual secondary axis of the custom coordinate system might differ from the vector specified, since the secondary axis must be a unit vector perpendicular to the primary axis.
If more than one vectors is given, for example [myMarker1, myMarker2], the vector difference between the first two vectors is used as the secondary axis.
Defines what axis the primary and secondary axis corresponds to. The first letter defines the name of the primary axis, and the second letter defines the name of the secondary axis.
Possible values: xy - Primary axis: x, secondary axis: y yx - Primary axis: y, secondary axis: x xz - Primary axis: x, secondary axis: z yz - Primary axis: y, secondary axis: z zy - Primary axis: z, secondary axis: y
Used to create a space that aligns with the specified segment. The resulting space will be rotated in 90 degree increments relative to the world space.
The rotation is based on the average orientation of the segment during a measurement.
1 nested properties
Used to create a space that aligns with the specified segment. The resulting space will be rotated in 90 degree increments relative to the world space.
The rotation is based on the average orientation of the segment during a measurement.
A step node takes an input and some options and outputs a value.
When importing a signal or defining an output node, you can specify a measurement from which the signal should be imported – or for which measurement an output node should run.
You can filter measurements by name and by field values and you can use wildcard characters * to formulate patterns to match partial values. The matching of values is case-insensitive.
When using a measurement filter, a list of matching measurements is created. By specifying the index option, you can define which of the matching measurements should apply.
4 nested properties
Target a measurement by name
Out of a number of matching measurements, pick the nth match. Either a 1-based index, or the values first or last to select the first or last match, respectively.
Target a measurement by a field value.
Target a measurement by a the existence of forces.
Used to specify which set the exported parameter will use. In most cases, this will be either left or right.
If not set, the JSON output will use set: null.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A step node takes an input and some options and outputs a value.
Toggle export on/off for this node. Defaults to true.
When importing a signal or defining an output node, you can specify a measurement from which the signal should be imported – or for which measurement an output node should run.
You can filter measurements by name and by field values and you can use wildcard characters * to formulate patterns to match partial values. The matching of values is case-insensitive.
When using a measurement filter, a list of matching measurements is created. By specifying the index option, you can define which of the matching measurements should apply.
4 nested properties
Target a measurement by name
Out of a number of matching measurements, pick the nth match. Either a 1-based index, or the values first or last to select the first or last match, respectively.
Target a measurement by a field value.
Target a measurement by a the existence of forces.
Used to specify which set the exported parameter will use. In most cases, this will be either left or right.
If not set, the JSON output will use set: null.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A step node takes an input and some options and outputs a value.
Toggle export on/off for this node. Defaults to true.
When importing a signal or defining an output node, you can specify a measurement from which the signal should be imported – or for which measurement an output node should run.
You can filter measurements by name and by field values and you can use wildcard characters * to formulate patterns to match partial values. The matching of values is case-insensitive.
When using a measurement filter, a list of matching measurements is created. By specifying the index option, you can define which of the matching measurements should apply.
4 nested properties
Target a measurement by name
Out of a number of matching measurements, pick the nth match. Either a 1-based index, or the values first or last to select the first or last match, respectively.
Target a measurement by a field value.
Target a measurement by a the existence of forces.
Used to specify which set the exported parameter will use. In most cases, this will be either left or right.
If not set, the JSON output will use set: null.
A parameter node defines steps used to calculate a value or a sequence of values. The result is exported to the global scope and exported in the resulting JSON file.
A step node takes an input and some options and outputs a value.
Toggle export on/off for this node. Defaults to true.
When importing a signal or defining an output node, you can specify a measurement from which the signal should be imported – or for which measurement an output node should run.
You can filter measurements by name and by field values and you can use wildcard characters * to formulate patterns to match partial values. The matching of values is case-insensitive.
When using a measurement filter, a list of matching measurements is created. By specifying the index option, you can define which of the matching measurements should apply.
4 nested properties
Target a measurement by name
Out of a number of matching measurements, pick the nth match. Either a 1-based index, or the values first or last to select the first or last match, respectively.
Target a measurement by a field value.
Target a measurement by a the existence of forces.
Used to specify which set the exported parameter will use. In most cases, this will be either left or right.
If not set, the JSON output will use set: null.
A template node imports a separate Calqulus pipeline file into the current pipeline. This enables, for example, splitting a pipeline up into parts that can be reused in multiple pipelines, or to make the pipelines more readable.
A template node imports a separate Calqulus pipeline file into the current pipeline. This enables, for example, splitting a pipeline up into parts that can be reused in multiple pipelines, or to make the pipelines more readable.
When importing a signal or defining an output node, you can specify a measurement from which the signal should be imported – or for which measurement an output node should run.
You can filter measurements by name and by field values and you can use wildcard characters * to formulate patterns to match partial values. The matching of values is case-insensitive.
When using a measurement filter, a list of matching measurements is created. By specifying the index option, you can define which of the matching measurements should apply.
4 nested properties
Target a measurement by name
Out of a number of matching measurements, pick the nth match. Either a 1-based index, or the values first or last to select the first or last match, respectively.
Target a measurement by a field value.
Target a measurement by a the existence of forces.
If this option is set, the result of this step will be exposed on the global scope, as well as being exported to the resulting JSON file.
The value of this option will be the name of the exported data and can be used to load the resulting data in other steps.
If this option is set, the result of this step will be exposed on the local scope.
The value of this option will be the name of the output data and can be used to load the resulting data in other steps within the same output node.
You can also use the short-form "arrow syntax" to define an output.
Used to specify which set the exported parameter will use. In most cases, this will be either left or right.
This option is only used in two cases; where there is also an export option set, or on the last step in a list. In the latter case, the step's set is used only if there's no set defined on the parent output node.
If this option is not set, the JSON output will use set: null.
This option lets you reference a space where you want the input data for the step to be translated into.
All named inputs will automatically be converted.
NOTE: This is not yet implemented for segments.
If set to a string, the angle will be calculated in two dimensions on the specified coordinate plane by ignoring the component of the input signals which is not part of the plane.
Using a PlaneSequence, projects the input vectors on the provided plane.
Note: The projection is only applied for vector-based angles and is ignored when calculating joint angles.
The rotation order to use for calculating the Euler angle. Possible rotation orders are:
Cardan sequence: XYZ YZX ZXY XZY YXZ ZYX
Euler sequence: XYX XZX YXY YZY ZXZ ZYZ
When set to true, an event, or a numeric value, the unwrap option shifts the angle phases in order to achieve a continuous curve, i.e., it tries to detect when an angle crosses over its available range (-PI to PI for radians, -180 to 180 degrees).
This allows for tracking angles on movements that goes outside of the typical angle range.
To do this, it looks for jumps between consecutive angles. If the jump is greater than a threshold of half the range (PI for radians, 180 for degrees), the angle is shifted by adding multiples of of the range until the jump no longer crosses the threshold.
The unwrap algorithm is run over all available components.
If set to true or 0, the algorithm aligns the unwrap to the start of the sequence. I.e., it assumes the first frame is correct in being within the original range and the following angles are moved to follow suit.
If set to an Event or a Number, the algorithm will assume that the corresponding frame is correct in being within the original range. All other angles will be shifted to follow suit. This enables tracking a rotational movement where the angle for a specific event is intended to be within the standard range (-PI to PI for radians, -180 to 180 degrees).
IF a supplied event has more than one instance, the first instance is used.
Note: The unwrap algorithm is sensitive to noise, which may introduce unexpected artifacts. Please consider filtering the signal(s) before calculating its angle using unwrap.
If the signal has cycles defined, the aggregation will be run separately over each signal, and a list of values are returned, one for each cycle.
To avoid this behavior, set useCycles to false.
For information on how to set event cycles on a signal, see the eventMask step.
If set to any value but none, the input signals will pass through a function which returns a list of signals where each value is from a frame greater than or equal to the frame of the corresponding value from the preceding Signal.
If set to forward, it will start from the first value of the first (leftmost) input signal (operand) and the algorithm will look at subsequent operands (to the right) one "row" at a time.
Conversely, if set to reverse, the event sequencing uses the reverse order of operands and goes from right to left.
If a full "row" of values could not be matched, it is not included in the result, i.e., all operands will be of the same length.
This is useful, for example, when calculating the distance between two signals at a certain event.
The function will only apply if all input signals have applied a Frames filter, otherwise the signals are left untouched.
Example
subtract: [LeftFoot.y@LFS, RightFoot.y@RFS] frameSequenceOrder: reverse
Creates an event sequence from the inputs, starting from the second operand (RFS event) and creates event pairs RFS -> LFS out of the values. It then subtracts each frame from the RightFoot from the corresponding LeftFoot frame.
If frameSequenceOrder had been set to forward, it would have created pairs going from LFS -> RFS instead.
Using the frameSequenceOrder option ensures that the operands starts with the intended event and that both operands have the same length.