Jump to content

Joe Reckamp

Seeq Team
  • Posts

  • Joined

  • Last visited

  • Days Won


Joe Reckamp last won the day on June 8

Joe Reckamp had the most liked content!

Personal Information

  • Company
    Seeq Corporation
  • Title
    Analytics Engineer
  • Level of Seeq User
    Seeq Advanced

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Joe Reckamp's Achievements


Rookie (2/14)

  • First Post
  • Collaborator Rare
  • Dedicated Rare
  • Week One Done
  • One Month Later

Recent Badges



  1. Hi Filip, You can turn the discrete signals into step signals by doing $signal.tostep(1d) such that it will interpolate all data points within a day of each other and then the custom grid will work effectively.
  2. Hi Liam, It looks like you likely have some invalid values in the middle of Bath 8420. You should be able to fix this with something like this to fix the issue in the signal before doing .toCondition(): $signal.validvalues().toCondition('Batch Number')
  3. Hi Rohan, You'll just want to edit the Number Formatting (https://seeq.atlassian.net/wiki/spaces/KB/pages/570490943/Number+Formatting) on the resulting formula. The precision is kept, but the formatting is just in scientific notation.
  4. Hi Conor, Two things that are needed: 1. The license needs to have the appropriate feature on it. 2. An admin needs to enable the feature in the admin panel. I'll get the first one started for you.
  5. Hi Conor, See the What's New pages (linked below) for R52 and R53 for the "Asset Groups" sections that relate to being able to create asset groups (similar to asset trees) in those versions. R52 adds this capability with the appropriate license and R53 extends upon that functionality adding the ability to create calculations: https://seeq.atlassian.net/wiki/spaces/KB/pages/1616642176/What+s+New+in+R52 https://seeq.atlassian.net/wiki/spaces/KB/pages/1857093849/What+s+New+in+R53
  6. Hi Corey, Currently, condition lanes are tied to the order that the conditions are added to the trend. Therefore, to modify that order, remove all conditions from the display and add them back onto the display in the order you would like them to appear (from top to bottom).
  7. I'll also add that as of R22.0.49, there's new forecast functions like forecastLinear that allows you to create a linear regression out into the future based on the last X number of minutes. You can see a little bit about that at the What's New Knowledge Base here if you are not on that version yet or can check out the formula documentation for more information on those functions.
  8. Hi Prachi, A couple different options for you: Option 1 You're probably familiar that you can use Formula (or Value Search) with the following to create a capsule for when one signal is equal to 1: $signal==1 Therefore, one option is to combine this search together for each signal using the combinewith function: combinewith($signal1==1, $signal2==1, ... , $signal50==1) This will create a capsule for each signal equal to 1, which would result in multiple overlapped capsules if more than one signal was equal to 1. If you'd like to reduce that to create a capsule if "any" signal was 1, you could merge those together: combinewith($signal1==1, $signal2==1, ... , $signal50==1).merge() Alternately, if you want to know how many signals are equal to 1 at any point in time, you can use countoverlaps: combinewith($signal1==1, $signal2==1, ... , $signal50==1).countoverlaps() Option 2 Typically when counting 1 values, the signals are a 0/1 signal where it is 0 when inactive and 1 when active. If this is the case in your use case, an alternate approach could be to sum the signals and find when it is greater than or equal to 1: sum($signal1, $signal2, ... , $signal50) >= 1
  9. Hi Tim, I believe you will need to set pypi.org to a trusted host following the instructions details at this Stack Overflow post: https://stackoverflow.com/questions/16370583/pip-issue-installing-almost-any-library
  10. Hi Pat, You will need to make sure that the maximum interpolation is less than the data being removed or else the data will be interpolated through the gaps. You can set the maximum interpolation in the formula as well by adding a .setmaxinterpolation(<time>) at the end.
  11. Many batch customers want to track cycle times of batches. Histograms are a great way to aggregate and visualize the cycle times for continuous improvement. The data set involved includes a Batch ID (typically a string signal, but could also be a capsule with a Batch ID property) and optionally a signal for splitting up the batch such as a unit procedure, operation, phase, or step. In order to prepare the data for the histogram, we need to convert these signals into capsules with the appropriate Batch ID and operation as properties on each capsule. This can be done in the following ways depending on whether the optional operation is included: Only Batch ID: $signal.toCondition('Batch ID') Batch ID + Operation: $OperationSignal.toCondition('Operation').removelongerthan(30d) .transform($capsule -> $capsule.setProperty('Batch ID', $BatchIDSignal.toScalars($capsule).first())) Note that you may need to filter out certain capsules (such as "Operation 0" in the picture above) using the keep formula. Also, depending on the frequency of the Batch ID sample recording, the $BatchIDSignal may need to have a ".resample(1min)" or equivalent added in prior to the "toScalars()" operator to ensure that a sample is present during each operation. You can then build a histogram on the capsule with the "Total Duration" statistic aggregating by first the Batch ID property and then the Operation property as shown below: Note: The option to stack the histogram is available under "customize" in the Details Pane.
  12. Hi Stephanie, Currently, you cannot use Scorecard Metrics as a threshold, but you could create the same calculated metric using Signal from Condition and use that result as the threshold for the other metric. Once you have the signal created, you can use the following button to toggle from a value input to a signal input for the threshold:
  13. Hi Julian, The first formula ($signal.toCondition()) will create a capsule the length of each time frame between step changes. From there, you can use Signal from Condition to calculate the "Total Duration" statistic for each of the capsules created (use the result of the formula for both the condition of interest and bounding condition).
  14. Hi Julian, This Formula should do the trick: $signal.toCondition() Note, if you want just the time point where the change occurs, you could add another argument to shorten the time duration of each capsule: $signal.toCondition().afterstart(1s)
  15. This can now be done a lot simpler by just doing the following command: spy.search('<URL>') or as an example: spy.search('https://explore.seeq.com/workbook/741F06AE-62D6-4729-A4C3-8C9CC701A2A1/worksheet/DFAC6933-A68F-4EEB-8C57-C34956F3F238')
  • Create New...