Jump to content

Joe Reckamp

Seeq Team
  • Posts

  • Joined

  • Last visited

  • Days Won


Joe Reckamp last won the day on April 5

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


Enthusiast (6/14)

  • Conversation Starter
  • Reacting Well
  • First Post
  • Collaborator Rare
  • Dedicated Rare

Recent Badges



  1. Hi Ruby, You'll need to add a .removelongerthan() before the .transform. I don't know how long your $r could possibly be (+30 days for the move), but I'd guess something like .removelongerthan(90d) would be more than sufficient and could probably be even shorter.
  2. Hi Ruby, Here's an example of the transform method: $step.move(-30d,0) .transform($capsule -> { $capEnd = $capsule.endKey() capsule($capEnd-$durationsignal.valueAt($capEnd), $capEnd) }) Some notes about this: You can only make a capsule that's within the capsule that goes into the transform. That's why I started with the .move(-30d,0). Basically what I'm doing there is saying I'd like to keep the end of the capsule (because that's what your new capsule will be based off of) and in worst case scenario, the capsule would be 30 days long so I move it 30 days to start. Adjust this as necessary to match your use case. Then inside the transform I'm saying make a new capsule that ends where my previous capsule ended and starts the amount of time of the $durationsignal at the point where my original capsule ended before the end of the capsule. Hopefully this makes sense, but let me know if you have any questions or difficulties with implementing this.
  3. Hi nurhazx, There is not currently a method of displaying the value above the bars. We often see users combine the bar chart with a table that shows the values in Organizer so that you have the two together.
  4. Hi Jacob, You can do this without Data Lab and Python, but it would be manual to either (1) build a condition for each signal or (2) string together all the signals in a single formula. For example, the formula may look like this: ($temperature1.derivative()>10).removeshorterthan(1h) or ($temperature2.derivative()>10).removeshorterthan(1h) ... or ($temperatureN.derivative()>10).removeshorterthan(1h) I used derivative in the above, but you could also use runningdelta or equivalent depending on exactly how you want to define your rate of change. In Data Lab, you could automate the process by spy.search-ing for your list of temperature tags, and then either combining them into a single formula as above or creating the same formula for each tag, then using spy.push to create it in Seeq Workbench. If you're less fluent with computers, I'd probably recommend the non-Data Lab manual approach, unless you have a colleague that might be more fluent that could help you.
  5. Hi David, The count should be accurate in the Tables and Charts view. Are you using the "ungridded original timestamps" option in the export to Excel? If not, it could be exporting gridded samples, which could result in interpolated values coming out in your Excel export that aren't actually raw data points in your signal.
  6. There's a periods() function in formula where you can do however long of time frames you want. For example periods(12h) or periods(6h). Or you can get even more complex if you (for example) want to do 12 hour time blocks, but every hour. Then from there, you can just average the signal during those time periods using Signal from Condition.
  7. It sounds like you want data when the condition is present, but no data when it isn't present. In that case, I would use $signal.within($condition)
  8. Hi Kate, The easiest way is to rename the tag by making a Formula that is just a formula of: $signal That way it will just reference your original tag, but you can give it whatever name you would like.
  9. Hi Kemi, Using the derivative can be very helpful to find peaks in your data. It appears your data seems to increase without too much noise (in terms of small peaks on the way towards the main peak) so I doubt you would need too much data cleansing first. So you may be able to simply do a derivative by using the Formula tool: $signal.derivative() That will then show a positive value when you are increasing, a negative value when you are decreasing, which means that the point at which it goes from positive through zero to negative would be the high point of your peak. Therefore, I would then find when the derivative is positive (> 0) using a Value Search. You'll also want to make a Periodic Condition for "Daily" that represents when you want your days to start and end. From there, you should be able to use Signal from Condition to count the ends (remembering that the end of the positive section is when the peak occurs) each day.
  10. You should be able to do a Formula using toCondition to turn that into capsules: $signal.toCondition('Batch ID')
  11. What does your Batch Data look like? Do you have a Batch ID that tells you what batch is currently running?
  12. Hi Matia, If you have already made a capsule for the batch, you can simply use the timesince function in Formula to make a counter for the current batch duration: timeSince($condition, 1h)
  13. Hi Matia, Can you clarify a bit as to exactly what you are looking for? For example, when Batch 2 is running, are you wanting to see the remaining time for Batch 2 assuming it would operate at the same duration as Batch 1 (e.g. (batch 1 duration) - (running time of batch 2))? Or are you just wanting to see the previous batch's duration? Or something else?
  14. Hi Pat, Can you try making the spy.search line include all properties so that hopefully it brings in the maximum duration for you: RampCond_Tags = spy.search({'Name': '*_RampCond'}, all_properties=True)
  15. Hi Pat, Did you spy.push the dataframe back to Seeq after the Data Lab screenshots you show here? You set the Archived value in Data Lab, but it doesn't actually occur in Seeq until you push that metadata back to Seeq. So you'll want to add a line of spy.push(metadata=RampCond_Tags)
  • Create New...