Jump to content

Sean T

Seeq Team
  • Posts

    36
  • Joined

  • Last visited

  • Days Won

    9

Sean T last won the day on October 31 2022

Sean T had the most liked content!

Personal Information

  • Company
    Seeq
  • Title
    Analytics Engineer

Recent Profile Visitors

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

Sean T's Achievements

Apprentice

Apprentice (3/14)

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

Recent Badges

21

Reputation

5

Community Answers

  1. Hi Paul, This error report is generated whenever a duplication happens that results in some things not properly being duplicated. In your instance you might be fine and can just delete the error report page. In this case it looks like there is an item named "Column 2" that was deleted (archived) and thus was not properly copied? Either that or the item named column 2 is a string signal and a unitless value is trying to be replaced for any invalid periods using the replaceNotValid() function. To fix this, replace your invalid sections in the formula with another string (you can convert something to a string using the .toString() function) I would check: where the "column 2" item is used, if at all. Search in the data tab for Column 2. If it isnt used anywhere, then youre good to go! If it is used somewhere, update the formula for Column 2 with a string value that you are replacing not valid for, likely using the string funtion i mentioned above. Hope that Helps! -Sean
  2. To do this, there are a variety of tools i can use in Seeq. First off, you can use the manual condition tool to make a condition out of any time periods of interest. Here is more information on the manual condition tool: https://support.seeq.com/kb/latest/cloud/manual-condition#:~:text=The Manual Condition tool allows,by picking a time range. In this example, i also want to add custom context to each of these time periods (April 2019, quarter 1, Year to Date...) I will use the Formula tool to create a condition containing each of these periods with the associated custom context (capsule properties) Note that I assigned a property to each capsule; this text will be used as the column header in the Table: 2. Create a with the stats i am interested in, or use Scorecard metric if i cant add these statistics using the Columns button: 3. Finally, use the capsule property as the column headers: Content Verified DEC2023
  3. To create a condition for a period that is not in the periodic condition tool, we can use the periods() function in seeq formula. This allows us to not only create periods like 15 minutes, 30 minutes, 2 hours, etc, but to also have overlapping periods, like look at the last 2 hours every 15 minutes. Here is an example of creating a condition using the periods function in formula: You can see in my capsules pane that each capsule is 2 hours long, but a capsule is created every 15 minutes. To create an average for this new period, i can use this as i would any other condition. Here i am showing an example of a 2 hour average calculated every 15 minutes for a temperature: Content Verified DEC2023
  4. To calculate the mean kinetic temperature in Seeq, we need to break the formula up into several steps: 1. Start by calculating the time intervals for each of the data points (tn) i.e. the time between each data point. In many cases these are evenly spaced and the formula simplifies, but in case they are not, this can be calculated in Seeq Formula by creating capsules for each data point and then aggregating the duration of each of those capsules: $temp.tocapsules().aggregate(totalduration(),$temp.tocapsules(),startkey()).tostep() //Calculate the time between each datapoint as a new signal In the below image i an visualizing the signal created that measures the time between each datapoint with the data points shown. Here my signal is regularly sampled so the resulting signal has a constant value 2. Next, calculate the exponential relationship for each sample point (t*exp(-deltaH/RTn)) using Seeq Formula. For this example, delta H was set to 83.14 kJ/mol: $H = 83.14kJ/mol $TimeInterval*CONSTANT.E^(-$H/CONSTANT.R/$temp) Here i have calculated the exponential relationship: 3. At this point, the desired time period to perform the MKT calculation over must be selected. This can be done by creating a capsule with the Manual Condition tool for a manual entry period, or can be calculated from any other condition that has been created. The desired time period can be as long or short as desired. In this screenshot i am creating a Manual Condition for my time range: 4. The next step is to sum the numerator and denominator of the natural log portion of the MKT calculation. These summations across the time period signified in step 3 can be performed with the Signal from Condition tool by selecting the sum statistic, the time period from step 3, and the aggregation at the middle timestamp of the condition. This step should be performed for both calculated signals from steps 1 (time intervals for denominator) and 2 (exponential rates for numerator). Here i am showing the Signal from Condition calculation for the sum of the exponential relationship: 5. Finally, the MKT calculation can be calculated with Seeq Formula, Here the Numerator is the exponential relationship and the denominator is the sum of time intervals. Of note: the resulting calculation will have units that match your original degree Unit of Measure even though the resultant units will show as otherwise, it is best to use .setUnits() to adjust your units of measure so they are accurate. Here my original units were in Farenheight but i want my output in K so i have set, then converted my units. $H = 83.14kJ/mol (($H/CONSTANT.R)/(-ln($TotalizedNumerator/$TotalizedDenominator))).setUnits('F').convertUnits('K') As an example, below is a graph showing this calculation being done over multiple time periods of interest (green capsules at top) in my Manual Condition: Content Verified DEC2023
  5. To add any properties in the capsules pane into an organizer, We simply need to replicate the capsules pane table in our Tables view. Here you can see my Capsules Pane with several properties i am interested in getting into organizer: We start by navigating to the Tables and Charts view, and selecting a condition table. From here we can build our table! To do this, Click on the columns button in the top toolbar, and either select the default properties you want or use the properties dropdown to select custom properties. Now i have my capsules table replicated in the table view! From here you can insert your content into organizer as you would with any other content! Here is a KB article that walks through inserting content into organizer if more help is needed on that topic: https://support.seeq.com/kb/latest/cloud/inserting-seeq-content#:~:text=Any Seeq content can be added to an Organizer Topic.&text=Use the Seeq icon in,pasting a URL from Seeq. Content Verified DEC2023
  6. The Question "Can i supply a list of items to search for in Seeq" occasionally pops up. Usually this is in the context of a CSV list or similar. While seeq does not support searching for a CSV list, you can use Regex to find a list of items in Seeq! To do this, all of your distinct items need to be separated by the Regex "or" operator: | for example, if i am looking for the following list of assets in the example dataset: Areas A, C G, H and I, rather than manually clicking on each of these items i can supply a search that looks like this: /Area A|Area C|Area G|Area H|Area I/ In this search, the "/ .... /" forward slashes indicate a regex search, and i can supply my list with each item separated by the vertical slash "|" An example: I want to build an asset group with 30+ assets. I have a list of all of these assets and dont want to click on each individual asset to add it to the asset group, there is no great way of identifying these assets other than the list i have. When building my asset group, i can add all the signals i am interested in for my first asset, in this case i want the signals "Optimizer, Temperature" then, using the search bar, i can pass in my regex list search that i have shown above to add all assets i am interested in at the same time! I will use the "select all" option in the search to add them all at one. NOTE: You need to scroll all the way down to the bottom of the list. The search in Seeq will not immediately load every result that matches the search, so scroll down until you hit the end of the list before selecting all items! my search: /Area A|Area C|Area G|Area H|Area I/ The easiest way to generate a list separted by the | operator is to do a find and replace in your favorite text editor: find the character separating your list currently and replace it with the | operator. This post was executed in Seeq version R63. Functionality should be accurate for seeq versions R56-63+
  7. This post is run on spy version 189.1 and should be accurate for any spy module versions prior to 189.1 This question came up recently: "I am building asset trees using Seeq Data Lab (using the Spy.trees functionality or spy.assets functionality). When i create my tree i realize that i want to update some of the metadata- maybe the Unit of Measure is wrong for signals in my tree, maybe i need to change the interpolation method or duration. Usually, when we want to mass update metadata using Data Lab, i search for my signals to update, update the cells in the dataframe that need to be updated, then push that information back using Spy.Push(). In this case the push executes without error but my metadata never updates, why? What am i doing wrong?" When a formula is created in Seeq, the only way to change certain metadata fields is through use of formulas. This specifically applies to Units of Measure (using .setUnits(), .reduceUnits(), or .convertUnits() ) Interpolation Method (.toLinear(), .toStep(), .toDiscrete(), .toPiLinear() ) Max Interpolation Period (using .setMaxInterpolation() ) for conditions, the max condition duration (using .removeLongerThan() ) Lets take a look at an example. Here i have an asset tree built based on the example data tree: Here is my Tree in Workbench: Lets say that i need to update all of the "Compressor Power" signals in my tree because the following are incorrect: Unit of Measure: the current UoM is kW, i need W Interp Method: Currently Linear, i need Step Description: i want to add a description, "test" in this case Name: i dont like the name and want to change it to Comp Power Here you can see my search to find these signals i want to update, i have underlined some of the values i want to change: Here i update my metadata in the dataframe and push: Things seem to be updated as i would like and the push worked fine. If i find one of these signals in workbench though, i see the following: Only some of my Metadata actually updated as i would like. Because Data Lab built trees use a formula to reference the original signal when building trees, we need to use the formula operators to change any metadata that can be adjusted by a formula operator. Here, in order to make my desired changes, i should update my "Formula" column instead of the "interpolation Method" and "Value Unit Of Measure" columns as follows: Change Formula from '$signal' (or whatever it was) to '$signal.toStep().setUnits("W")' or whatever the original formula was, with my metadata changing operators appended on the end. Here you can see it in Data Lab: Now when i check my signal in workbench i see that my metadata was updated as expected: In Summary: when updating Metadata for items that are calculated in Seeq (Items in from a tree made using Seeq Data Lab, for example), if the parameter can be updated by a formula operator (from the list: Value Unit Of Measure, Interpolation Method, Maximum Interpolation, Maximum Duration) then that parameter MUST be updated by using the formula operator. The easiest way to do this is to just append the formula changes to the existing formula in the "Formula" column. Updates for other Metadata parameters can be made directly in the dataframe and pushed back.
  8. As of Seeq version R49 and later, the delay function has been removed and merged with the .move() function. The functionality remains the same though. The final step in this process has changed from $CompressorPower.delay($delayFactor,24h).within($CompressorRunsN) to $CompressorPower.move($delayFactor,24h).within($CompressorRunsN)
  9. Hi david, To add to joe's comment: Besides excel export and looking at this in tables and charts, an easier way to do this would be to simply add the count as a statistic in your details pane. to do this, click on the table icon in your details, it should be right underneath the "customize" button. In the pop up, simply select "count" and the count of data points for each signal will be displayed in the details pane. Hope that helps! Thanks, Sean
  10. Hi thomas, This error can have a variety of causes- some of which are fixed by upgrading your server. Can you submit a support request with the logs to support@seeq.com so we can determine how to best resolve your issue? Thanks, Sean Tropsa
  11. HI Alba, To answer your questions: 1: Currently you can only show one property at a time in the histogram. If you would like to see the product associated with that batch you can use capsule properties to create a new property that has both the batch and the product information. Here is a forum post that shows the use of the setproperties function: 2: if you want to aggregate by average batch duration- you will first need to create a new "Signal from Condition" that calculates the total duration for each batch: From here, you can use this new calculated signal in a histogram to calculate the average batch duration by product
  12. When creating signal forecasts, especially for cyclic signals that degrade, we often use forecastLinear() in formula to easily forecast a signal out into the future to determine when a threshold is met. The methodology is often the same regardless of if we are looking at a filter, a heat exchanger, or any other equipment that fouls overtime or any equipment that needs to go through some periodic maintenance when a KPI threshold is met. A question that comes up occasionally from users is how to create a signal forecast that only uses data from the current operation cycle for signal forecasting. The forecastlinear() operator only takes into account a historical training period and does not determine if that data is coming from the current cycle or not (which results in unexpected results). Before entering the formula, you will need to define: a condition that identifies the current cycle, here i have called it "$runningCycle" a Signal to do a linear forecast on, i have called it "$signal" To forecast out into the future based on only the most recent cycle, the following code snippet can be used in formula: $training = $runningCycle.setmaximumduration(10d).toGroup(capsule(now()-2h, now())) $forecast=$Signal.predict($training, timesince(toTime('2000-01-01T00:00Z'))) $signal.forecastSplice($forecast, 1d) In this code snippet, there are a few parameters that you might want to change: .setMaximumDuration(10d): results in a longest cycle duration of 10 days, this should be changed to be longer than the longest cycle you would expect to see capsule(now-2h, now()): this creates a period during which seeq will look for the most recent cycle. In this case it is any time in the last 2 hours. If you have very frequent data (data comes in every few seconds to minutes) then 2 hours or less will work. If you have infrequent data (data that comes in once a day or less) then extend this so that it covers the last 3-4 data points. $signal.forecastSplice($forecast, 1d): When using forecastLinear(), there is an option to force the prediction through the last sample point. This date parameter (1 day in this case) does something similar- it blends the last historical data point with the forecast over the given time range. In other words, if the last data point was a value of 5, but my first forecasted datapoint had a value of 10, this parameter is the time frame over which to smooth from the historical data point to the forecast. Here is a screenshot of my formula : and the formula in action:
  13. Hi John, If i am understanding correctly- you have data with one signal having multiple values at the same timestamp. Seeq does not support multiple values existing at the same time stamp for signal based data- it will only take one of the values and display that. To get this kind of data to be workable we have 3 options: You can adjust the timestamps of the other datapoints by some small amount so you can see all samples in the same signal, just slightly offset in time You can bring each measured value in as its own signal i.e. product qulaity x measurement 1, quality x measurement 2, etc You can bring this data in as an event (condition) with properties- You can have one capsule per product sample and that capsule can have properties that contain each measurement value as well as any other information about the measurement you might be interested in. Reach out to seeq support support@seeq.com if you want help exploring some of these options further -Sean
  14. A question that comes up from time to time is how to search for a list of signals or other data items in Seeq. Typically we get a request for an ability to search based on a comma separated list. While we do not currently (as of R55) support a comma separated list, you can get around this using Regex searching simply by replacing the comma with a vertical bar "|" and encapsulate the search in forward slashes as below: Compressor Power,Temperature,Relative Humidity becomes /Compressor Power|Temperature|Relative Humidity/ In this search, the forward slashes tell Seeq that this is a Regex search, and the | is an "or" in regex. I.e. it will search for something exactly containing "Compressor Power" or something exactly containing "Temperature" etc. which in effect gives you the ability to search for a list! For very long lists, do a find and replace in a word editor to build the new search. The ability to search for a list will soon become quite handy with the "add all" feature slated to come with R56 which should be coming soon!
  15. Hi Andrew and Feng, We currently do not support importing CSV files with separate date and time columns as Andrew mentioned. There are quite a few date formats and we do not yet have support for all of them including separated date and time columd, for now please use the DateTime format that Andrew mentioned above. We do have a feature request in for supporting separate columns, if you would like, i can attach you to that item so you will be notified as it is worked on. -Sean
×
×
  • Create New...