# How do I do signal enveloping of a timeseries?

**URL:** <https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982>\
**Category:** Ignition\
**Created:** [July 27, 2023, 12:51am UTC](https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982 "2023-07-27T00:51:03Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![TimeLordship](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/timelordship/32/50264_2.png) [@TimeLordship](https://forum.inductiveautomation.com/u/TimeLordship)\
**Post date:** [July 27, 2023, 12:51am UTC](https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982/1 "2023-07-27T00:51:03Z")

</div>

Hi!  
Imagine a Force-time curve for a reciprocating piston. This curve will differ based on the loading on the piston, and over time a lot of other mechanical variations.

I would like to make an envelope for the force-time curve of lets say N(Lets say 1000) timeseries, and then anything that's outside this range, should be marked as an outlier by Ignition. Envelope is defined here: [Signal envelope - MATLAB envelope](https://www.mathworks.com/help/signal/ref/envelope.html)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 27, 2023, 1:03am UTC](https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982/2 "2023-07-27T01:03:23Z")

</div>

No equivalent out of the box. You might want to investigate the JScience jars as a possibility.

---

<div class="post-metadata">

**Author:** ![TimeLordship](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/timelordship/32/50264_2.png) [@TimeLordship](https://forum.inductiveautomation.com/u/TimeLordship)\
**Post date:** [July 27, 2023, 1:25am UTC](https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982/3 "2023-07-27T01:25:18Z")

</div>

Oh, unfortunate.  
Seems like a very prolific application. Would have been nice to have this as an in-built capability.

Maybe I'm coming in as somewhat of a newbie, but I have never integrated JScience or any Jars into Ignition. Do you think that there would be a pathway there?

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [July 27, 2023, 6:24am UTC](https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982/4 "2023-07-27T06:24:19Z")

</div>

Ignition isn't a high-speed data acquisition system. Is the data coming from elsewhere?

---

<div class="post-metadata">

**Author:** ![TimeLordship](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/timelordship/32/50264_2.png) [@TimeLordship](https://forum.inductiveautomation.com/u/TimeLordship)\
**Post date:** [July 27, 2023, 6:59am UTC](https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982/5 "2023-07-27T06:59:40Z")

</div>

Data is coming from SQL.

Also worth saying - low sampling frequency data can also have requirements like this one where an envelope qualifies the cycle.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 27, 2023, 1:06pm UTC](https://forum.inductiveautomation.com/t/how-do-i-do-signal-enveloping-of-a-timeseries/76982/6 "2023-07-27T13:06:57Z")

</div>

To use arbitrary java jars, the simplest approach is to drop them into the appropriate folder under `lib/core` and restart your gateway. Then you can import classes from those jars into your jython scripts.

If you need a simple install procedure, you would wrap the jars in a third-party module. Then expose selected classes or wrapper functions in a `system.something` scripting function namespace.
