# Lindsey.Wilcox

Seeq Team

88

22

1. ## Histogram to Summarize Multiple Signals

Since posting this solution, the Formula provided in Step 4B has been simplified to: \$errorCond2.removeLongerThan(1week).setProperty('container', \$container2, startValue())
2. ## Compare a signal before an event to after an event

Objective: calculate the difference between the average temperature 10 min before an event and the average temperature 10 min after an event Create a condition for 10 min before an event. This is done in Formula using the .beforeStart() operator. 2. Create a condition for 10 min after the event. This is done in Formula using the .afterEnd() operator. 3. Calculate the average during the capsules in the conditions created in Steps 1 & 2. This is done in the Signal from Condition tool. 4. Combine the 2 signals created in Step 3 into a single, combined signal. This is done in Formula using the .combineWith() operator. 5. Create a condition that contains a capsule for each event, including the 10 min before and the 10 min after. This can be done in Formula using the .move() operator 6. Calculate the range of the combined signal using the Signal from Condition tool.
3. ## Time between events

Objective: calculate the time between events Method: Create a condition with the capsules when you are not in an event. This is done using the .inverse() condition in Formula. 2. Calculate the time between events using the Signal from Condition tool to calculate the duration of each capsule in the Not in Event condition.
4. ## NOAA Weather Service Connector

Hi Adam- The NOAA weather connector brings in all historical and forecast data that is available. This typically includes about a 7-day forecast: Are you not observing the forecasted portion (dotted line) of the signal? Could you please provide a screenshot of what the temperature signal looks like? Thanks, Lindsey
5. ## NOAA Weather Service Connector

Hi Adam- Which specific signals are you looking to get a forecast for? Lindsey
6. ## Creating table visual in SEEQ (R50.4.5)

Hi Connor- Yes, you can do this using Capsule Properties. Capsule properties can be displayed as the header of Scorecard columns (in place of the start / end time). More information on this can be found here: Please let me know if you have any additional questions. Thanks, Lindsey
7. ## Creating table visual in SEEQ (R50.4.5)

Hi Connor - To display the value of a signal during each capsule (event frame), you will want to create a Condition based scorecard (as you've done). However, the item to measure should be the signal. With the signal selected, you won't need to select a statistic (since you just want the value) and specify the condition (event frames) that you like to display the value for. Please let me know if you have any additional questions. Thanks, Lindsey
8. ## Average of Capsule durations

Hi Sivaji Unfortunately there is not a workaround to plot a vertical line for average capsule duration in Capsule Time. However, I have logged a Feature Request for this item (CRAB-24964). Additionally, I have linked you to the Feature Request via Support Ticket SUP-27734. This ensures that you will be notified of any progress towards implementation. Please let me know if you have any additional questions. Thanks, Lindsey
9. ## Increase the number of displayed signals from 10 when spy.push is used

Hi Sivaji- You have to take a few steps to get more than ten pushed signals to display in the Worksheet, but it’s totally possible. To begin, make sure that you assign the result of spy.push to variable. Here is some example code: push_results = spy.push(data=my_data_df) # Pull the workbook. Use the URL of the Workbook where the signals where pushed 4# You can take it from the output of the above command url = 'https://explore.seeq.com/36202737-B32E-463B-A583-202BD4D8A7AB/workbook/6D2D5190-3A28-4E60-B9AD-F4DCE35ACD06/worksheet/904599EB-93D1-4C32-BD23-643D641EB063' wb = spy.workbooks.pull(url)[0] # get the worksheet from the workbook ws = wb.worksheets[0] # add all the pushed items to the worksheet ws.display_items = push_results # push the workbook with the modified worksheet back to Seeq spy.workbooks.push(wb)
10. ## Increase the number of displayed signals from 10 when spy.push is used

Hi Sivaji- Thanks for reaching out. Yes, the top 10 signals are displayed in the worksheet by design. If more than 10 signals are pushed, they are still searchable in the workbook. If you’d like to trend more than 10 items, I’d recommend that you pull the workbook and then modify the display_items for the worksheet, and then push it back. There is not a maximum number of signals that can be plotted on a single worksheet. However, as the number of trended items increases, the more difficult it will be to actually view the data clearly and identify trends in your signals. Additionally, if a significant number of items are trended, performance may degrade as well. Please let me know if you have any additional questions. Thanks, Lindsey
11. ## Histogram: Adjust Number Formatting Workaround

Background In this use case, we start with a signal that indicates the product code as a 9-digit number. I would like to aggregate the data by product code and display the results in a histogram. The current method do this involves using the .toCondition() operator on the product code signal and then aggregating the results in the Histogram tool using the value property of the product code condition. However, when this is done, the product code bin labels are displayed in the histogram using scientific notation: However, I'd like to see the full product code; the value in scientific notation loses its meaning. This feature request is logged as CRAB-22684. This post documents the current work around. Analysis Steps 1. In Formula, convert the product code signal to a string signal and add an underscore ("_") to the end. 2. Use the .toCondition() operator to create a new condition with a capsule for every value in the string product code signal. 3. Finally, aggregate the condition created in Step 2 by the value property in the Histogram tool.
12. ## Electricity & Water Consumption Use Case (Sustainability Webinar - Jan 2021)

This post summarizes the use case presented during the Advanced Analytics for Sustainability webinar held in January 2021. Background Manufacturers often don’t have insight into how much water and energy their facility is actually consuming. Having a way to quickly aggregate this consumption data is important, because it provides the information necessary to determine if the process is using water and electricity efficiently when running or if the water and electricity usage is minimized when not running. The following use case shows how to perform some of these aggregations in Seeq and scale the calculations to other process units or assets. For this use case, an asset tree is leveraged. The asset tree in the following image has a separate asset for each part of the process. For this analysis, the electricity consumption tag, the water consumption tag and the mode tag are used. Analysis Aggregate consumption by mode of operation The Histogram tool is used to aggregate the consumption data by mode of operation, as described in the following steps. 1. Create a condition that contains a capsule for each mode. This can be done using the .toCondition operator in Formula. Note that each of the capsules in the Mode Condition has a 'Value' property that indicates the value of the Mode signal. These capsule properties can be used to aggregate data in the Histogram tool. 2. Use the Histogram tool to create a histogram of electricity consumption by mode of operation. 3. To create a similar histogram for water consumption, first duplicate the Electricity Consumption by Mode histogram from the Item Properties menu. Next, provide a new name and switch the input signal to create the second histogram 4. These calculations can easily be scaled to other assets using Seeq's Asset Swapping capability. With one click, the same analytics are applied to another plant area. Quantify consumption while not running Manufacturers want to minimize consumption when their processes are not running. To do this, they first need to quantify how much electricity is being consumed while not running and then identify instances of high usage. This can be achieved using the following steps. 1. Use the Value Search tool to identify when the process is not running. 2. Use the Signal from Condition tool to quantify the total amount of electricity consumed while not running. 3. Use the Value Search tool to identify when the amount of electricity consumed while not running is high. Notice that aren't any visible capsules along the top of the trend. However, if this new condition is selected in the Details Pane, one capsule is identified in the Capsules Pane, with a duration of 0. The duration of this capsule is 0 because the searched signal is discrete and there is only a single data point that exceeds the limit. 4. Since there are several areas to monitor for environmental deviations, the Treemap view can be leveraged. The color coding of the treemap indicates which plant areas have exceeded the maximum threshold and is a great way to quickly identify parts of the process that are not performing optimally.
13. ## "Time" Signal?

Hi Yanmin- Question 1: You can find more information about the CSV import tool in our Knowledge Base: https://support.seeq.com/space/KB/537690127/Import%20CSV%20Files. When you use this tool to import data, you can specify how you would like Seeq to handle "invalid" data (like the failure or null values you described). For the example you provided, I think you would want to select "Skip". Once the data is imported Signals A & B will only have data points where there is valid data. Question 2: The .runningDelta() operator calculates the difference between adjacent samples, as you described in your post. More information can be found in the Formula documentation. Please let me know if you have any additional questions. Thanks, Lindsey
14. ## Histogram with Chronological Bins

Background I would like to create a Histogram that displays the average temperature for each hour during the night shift (8 PM - 8 AM). However, when I configure a Histogram to aggregate based on the hour of the day, the bins are displayed in numerical order, not chronological order: The following steps describe how to display the bins in chronological order. Solution 1. Create an Hourly Periodic Condition 2. Use the Formula tool to assign a property to each capsule in the Hours condition that indicates the start date and time of each capsule; this will create a new condition that can be used to aggregate the histogram. \$hours.transform(\$capsule -> \$capsule.setProperty('startDateTime', \$capsule.property('Start'))) (NOTE: By default, each capsule in any condition has a 'Start' property. However, this property can not be used in histogram aggregations, which is why this step is required.) 3. Aggregate the Histogram using the condition and capsule properties defined in Step 2. While the bins are now displayed in chronological order, the date and time displayed are in UTC time. To display the time consistent with your time zone, edit the 'Hours with Property' condition to include the time zone conversion. In the following screenshot, I am converting from UTC to EST and removing the 'Z' displayed at the end of the timestamp. \$hours.transform(\$capsule -> \$capsule.setProperty('startDateTime', ((((\$capsule.property('Start'))-5h).tostring().replace('Z',''))))) The histogram bins now display in chronological order, with the timestamps in the correct (EST) timezone.
15. ## Histogram to Summarize Multiple Signals

Background As a starting point, I have a signal that indicates the process error code (Error) and 2 signals that indicate the current container (Container 1 and Container 2). I would like to create a histogram that summarizes which containers have the most frequent errors. More specifically, I want to know: For the Container 1 signal, what is the distribution of container values when the error code is equal to 44 and 47 For the Container 2 signal, what is the distribution of the container values when the error code is equal to 45 I want the results summarized as a single histogram. The following steps describe how this can be achieved using conditions and capsule properties. Solution 1. Create a condition with a capsule for each value change in the Error signal. This can be accomplished in Formula using the following syntax \$errorSignal.toCondition() Note: the .toCondition() operator assigns a Value property to each capsule that indicates the value of the Error signal during the capsule. This property can be used for aggregation in a Histogram. 2. Filter the condition created in Step 1 to only include capsules with errors of interest for the Container 1 signal. This can be accomplished in Formula, using the following syntax: //Create intermediate conditions for each error \$error1=\$errorCond.keep('value',isEqualTo('44')) \$error2=\$errorCond.keep('value',isEqualTo('47’)) //Combine the 2 intermediate conditions \$error1.combineWith(\$error2) 3. Assign a ‘Container’ capsule property to each of the capsules in the Error Cond 1 condition that indicates the value of the Container 1 signal. This can be accomplished within Formula, using the following syntax: \$errorCond1.removeLongerThan(1week).transform(\$capsule -> \$capsule.setProperty('can', \$container1.average(\$capsule))) 4. Repeat Steps 2&3 for Container 2 a. Filter the condition created in Step 1 to only include capsules with errors of interest for Container 2. This can be accomplished in Formula, using the following syntax: \$errorCond.keep('value',isEqualTo('45')) b. Assign a ‘container’ capsule property to each of the capsules in the Error Cond 2 condition that indicates the value of the Container 2 signal. This can be accomplished within Formula, using the following syntax: \$errorCond2.removeLongerThan(1week).transform(\$capsule -> \$capsule.setProperty('container', \$container2.average(\$capsule))) 5. Combine the error conditions with container property to create a single, composite condition. This can be performed in the Composite Condition tool. 6. Finally, create the histogram based upon this composite condition.
16. ## Scatterplot: Plot multiple y-axis variables

Users frequently ask if it is possible to plot multiple y-axis variables against a single x-axis variable in scatterplot. While this functionality is not currently available, it is logged as CRAB-10474. However, as a work around, Organizer topic can be leveraged to display scatterplots side-by-side to compare the relationships of multiple y-axis variables against a single x-axis variable. An example of this is shown in the following image:
17. ## Export Scorecard

Users frequently ask if it is possible to export a scorecard to Excel. While the functionality to export directly from Scorecard is not currently available, it is a commonly requested feature that is already logged as CRAB-15132. This post documents the current work around. Let's start with the following Scorecard: If we switch to trend view, we can see that the Scorecard metrics are displayed on the trend. The export button above the trend only exports signal and condition data, not metrics. However, we can use the Signal from Condition tool to create signals that display the same results as the Scorecard metrics. Once the results are calculated as signals, the Export button can be used to export the signal and condition data displayed on the trend.
18. ## String-valued samples are prohibited in numeric-valued signals

Hi @MarcS- I suggest submitting a support ticket so that one of our support engineers can investigate the issue. To do this, please submit a copy of your Seeq server logs: https://support.seeq.com/space/KB/114395156/Viewing%20Logs%20and%20Sending%20Log%20Files%20to%20Seeq. Thanks, Lindsey
19. ## Identify Leading Cause of Process Downtime

Hi Jemma- I made a mistake in my previous post; it has been updated to show the correct Formula. Thanks for pointing that out 🙂 Lindsey
20. ## Identify Leading Cause of Process Downtime

Hi Jemma- You can achieve this by adding another property (i.e. 'sub-category) to the conditions in Formula: Please let me know if you have any additional questions. Thanks, Lindsey
21. ## Identify Leading Cause of Process Downtime

Hi Jemma - To do this, you will need to create a separate condition for each subcategory. There are several ways that you can do this. One simple way would be to use the Custom Condition tool to manually select capsules in the Pump condition for each sub-category condition: Once you have the sub-categories identified as separate conditions, you can combine all of the cause conditions just as we did in Step 2. Please let me know if you have any additional questions. Thanks, Lindsey