Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Teddy last won the day on August 10

Teddy had the most liked content!


Personal Information

  • Company
  • Title
    Analytics Engineer

Recent Profile Visitors

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

Teddy's Achievements


Apprentice (3/14)

  • Dedicated Rare
  • First Post Rare
  • Collaborator Rare
  • Conversation Starter Rare
  • Week One Done

Recent Badges



  1. The rows in your table are ordered by your details pane by default. You should be able to order the details pane however you want by assigning lane numbers. Changing the lane numbers of your metrics and ordering your details pane by the lane numbers should allow you to achieve your desired row order. Hope this helps, Teddy
  2. Sam, What version of Seeq are you running? The past() function is not avaible until version R51.0.0+. Regards, Teddy
  3. Adam, We had some developers look at the API calls and it looks like you get a different unit depending on the endpoint you use. We are logging a bug for this. In the mean time you can overwrite the units in Seeq using the setUnits() function in formula. Thanks for reporting this. Teddy
  4. Recently we have gotten several requests to clear an item's cache in Seeq with Seeq Data Lab (SDL). The following python script creates a function that will clear an items cache when an item's ID is given as an input. Note: this script assumes you are using SDL. # imports from seeq import sdk # Setup Items API items_api = sdk.ItemsApi(spy._login.client) # Cache clearing function def ItemCacheClearingTool(itemID): try: clearCache = items_api.clear_cache(id=itemID) except: print('Error clearing cache for item ' + itemID) Screenshot of the Jupyter Notebook used to create the function: This function can be used in for loops or applied to columns in a dataframe to clear multiple items' caches at a time.
  5. Isaac, In your case you might be able to set the max interpolation to 1 second on your input signal. If that does not work, you can use a certain signal, such as Area A Temperature to create, a similar result to the past() operator. To create a similar condition to the past() condition you can use the following formula. $AreaATemp.isvalid() Once you have that you can use it the same way the past() function was used above. Teddy
  6. There are a couple options you can take for this. The first is to completely exclude the incomplete day and the second is to exclude the data in the signal until the day is complete. Exclude the Incomplete Day This is relatively easy with the past() function in formula. This function is relatively new so older versions of Seeq may not have it. On your condition that you are aggregating over you can remove all capsules past now and any incomplete ones with the following formula. (Example using daily condition) $Daily.inside(past()) Metric created with a normal daily condition: Metric created with the clipped daily condition: Exclude the Data in the Signal Until the Day is Complete This requires you to make the same clipped condition above and then apply it directly to the signal to limit the data in the signal until the last complete day. $signal.within($ClippedCondition) Results with the Clipped Signal and the Normal Signal:
  7. Sivaji, I am not 100% sure if this is what you are looking for, but you can create a time signal from a condition. This allows you to build a condition with the manual condition tool and apply the following formula to create the time counter. timesince($condition,1h) You can then just limit the training window to that condition. If you need to extend the time counter into the future you may want to apply growend() to the condition in the time since formula above. Teddy
  8. Ben, You can probably use a moving standard deviation to find that condition. Below is an example formula. Note: you can use signal from condition too, but you may want to create a condition with the periods function so you can have better control over the moving range: $signal.aggregate(stdDev(), periods(20min,5min), middleKey()) Hope this helps. Teddy
  9. Alex, You will need to create a new one and get a new link for changes like that. Regards, Teddy
  10. Alex, I am not able to share the password of the excel file. The first two columns should be unlocked so you can add your curve data there. If you want to change the fit, you can copy the formula to another workbook or write your own. You don’t need to use the excel workbook provided if you don’t want to. It is just setup to allow you to copy and paste the cells into the formula tool and not have to worry about anything. You can follow the same formatting I did and get the same results. Note: If you do change the order of the fit you will need to change the formula syntax in Seeq to match the new order. Regards, Teddy
  11. Sivaji, Only a Seeq admin can change this setting. If you are an admin it can be changed in the configuration tab in the admin panel. Regards, Teddy
  12. Hello Tom, We do have script/plugin that will do this. However, it requires Seeq Data Lab right now and a fairly new version of Seeq. There is a feature request for this that I can link you to if you want. Regards, Teddy
  13. Felipe, That would be my recommendation but it is always good to double check with your AE. Regards, Teddy
  14. Felipe, What version of Seeq are you on? I believe this error was address in the 00.49.00 release. Regards, Teddy
  15. Brent, I would avoid using tables and transforms for this calculation. I would look towards the peakFrequency() and the rmspower() functions. They are used with the aggregate function, so they are applied to a condition. To find the peak frequency the following syntax can be used in the formula tool. $condition = periods(1h, 30min) $sampleRate = (1min) //This is the spacing for used in the sampling for the FFT $waveSignal.aggregate( fft($sampleRate).peakFrequency('min'),$condition,startKey()) Here is a screen shot of the formula tool window. For the magnitude I suggest looking at the rmsPower() function in formula. If you know the band range where you expect the peak to occur, you can use that band range and be done. However, if there is multiple places that the peak could occur you can use multiple rmsPower() functions and add them together or take the maximum of them. If you are planning on taking the maximum you will want to make sure that you are using the same size band for each rmsPower() calculation so that the comparisons are equivalent. The example syntax below can be used to fine the maximum rms power of a set of peaks. $condition = periods(1h, 30min) $sampleRate = (1min) $peak1=$waveSignal.aggregate( fft($sampleRate).rmsPower(4.5min,5.5min),$condition,startKey()).toStep() $peak2=$waveSignal.aggregate( fft($sampleRate).rmsPower(9.5min,10.5min),$condition,startKey()).toStep() $peak3=$waveSignal.aggregate( fft($sampleRate).rmsPower(24.5min,25.5min),$condition,startKey()).toStep() // you will need to pick ranges and a sample rate that makes sense for your process $peak1.max($peak2).max($peak3).toStep() Below is a screen shot of the formula setup. Note: if you want to add the peaks instead of finding the max. You would just add the peaks instead of using the max function. Final screenshot. Hope this helps. Teddy
  • Create New...