Jump to content

Nuraisyah Rosli

Seeq Team
  • Posts

    23
  • Joined

  • Last visited

  • Days Won

    5

Nuraisyah Rosli last won the day on February 26

Nuraisyah Rosli had the most liked content!

Personal Information

  • Company
    Seeq Corporation
  • Title
    Analytics Engineer

Recent Profile Visitors

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

Nuraisyah Rosli's Achievements

  1. Hi Onkar, Our certificates doesn't include a credential ID just the certificate with the person's name on it. And for your 2nd question, upon checking with our training team, you have already completed all required courses within the path. The only way to have 100% completion is to take as well the other optional courses within the path, but it is not required.
  2. Hi JC-XOM, You can extract the worksheet ID using Seeq API. Here's an example: workbooks_api = seeq.sdk.WorkbooksApi(spy._login.client) #calling the workbook API workbook_id = '0EEC3FB8-2D63-ECB0-86E9-47A0DC532F31' #replace the ID with your own workbook ID worksheets = workbooks_api.get_worksheets(workbook_id=workbook_id).to_dict()['worksheets'] #calling the worksheets under the workbook ID worksheets The start/end time will follow the existing worksheets.
  3. Question: My problem is that I can’t seem to make asset trees that have branches with different lengths using spy.assets.Tree(). This is frustrating because it means for (effectively) shorter branches I’ll have to click through several folders to get down to the folder with tags in it. Answer: Let say for Cooling Tower 2, you want the signals to be populated directly under Cooling Tower 2. If you leave the column ‘’Level 3’’ blank, you’ll get this error: Instead, you want to insert NAN into the empty ‘’Level 3’’ column like this: Hope this helps.
  4. Ok, now I understand what you're trying to achieve. For this, you have to calculate the total duration separately and use Formula tool to manually calculate the Percent duration. 1. calculate total duration for purple capsule 2. calculate the total duration for daily condition 3. calculate the percent duration using Formula tool. It should generate result like this where you have value for each capsules. Let me know if this answer your question.
  5. You can refer to my screenshot below, as you can see that the brown capsules encloses all the purple capsules but it will calculate the % of time purple capsules within the brown capsules . My guess is maybe you put the purple capsules as bounding condition. In that case, yes it will give a 100% result as screenshot below: Let me know if this helps or maybe you can share screenshots of your workbench for me to understand better. Alternatively, you can also join our Office Hour session where you can discuss directly with our Analytics Engineer.
  6. Hi Phillip, In that case you can select percent duration as summary statistic in you Signal from Condition tool. Choose the purple capsule as the first signal, and Filter time range as your bounding condition.
  7. Hi Kantian, I would suggest maybe you can add custom label on the axis? For example here my signal is in % and I put my Unit of Measure on the axis and add another custom label called "mol" on the axis. Let me know if this helps.
  8. Hi Kim, Seems like the issue is because you used the .inside(past()) in your Years_1 condition. Any particular reason you want to include that?
  9. Hi Karol, Results of calculations (formula, value searches etc) will always be cached by Seeq so that is why you see it was not refreshed automatically when there's a rewrite in historian data. To refresh the output, you need to clear the cache. In Seeq workbench, you can click on the Item properties of the signal, scroll to the bottom under Advanced and click "Clear Cached Values". Do you always rewrite your historian data? If yes, then maybe turning off the cache is a better option. You can read more about Data Caching here.
  10. Yes, you can read more on how to insert here: https://python-docs.seeq.com/user_guide/Asset Trees 1 - Introduction.html#inserting-signals-conditions-and-scalars-from-seeq-server From the screenshot seems like you already have the structure ready, now you can search the metric in the server and insert it into the correct parent.
  11. Hi Nur, As discussed during the call, the yellow icon is not an error, it's just a warning message since you set the maximum capsule duration to be 1000d.
  12. Hi PMHardey, If I understand this correctly, you want to find the maximum value in every 15 minutes capsules over rolling 3 years period. If yes, this is how you can do it. Step 1 : Create the 15 minutes capsule using the formula tool. this will generate a capsule for every 15 minutes. periods(15mins) Step 2: Create a rolling 3 year periods using formula tool. this will create capsules with duration of 3 years every 1 year. periods(3y,1y) Step 3: calculate the max value during the 15 minutes capsule using the signal from condition tool. Step 4: calculate the max value with rolling 3y period using signal from condition tool. you can choose to put the value at the start of the capsule or at the point of max value so you'll know the exact year the maximum value occurred. Let me know if this is what you're looking for or alternatively you can talk directly to our Analytics Engineer during the Office Hour. You can book your session here: https://info.seeq.com/office-hours
  13. You can follow steps below to push the calculation. I would suggest to split the 150 signals into 15 tables so you have 10 columns only in 1 table. You can list down your signals name in a csv file and upload to your seeq datalab project. Click New and create a new Python 3 notebook. You can then start to write the script below: Step 1: Import the pandas library import pandas as pd Step 2: script below will read the signals name listed in the csv) my_items = pd.read_csv('taglist.csv') #edit the csv file here to match the csv file name you uploaded Step3: search the signals listed above my_items = spy.search(my_items) my_items Step 4: Since all calculations are using same periodic condition which is hourly, you can create the condition first in the workbench (1 time only) and call it in Datalab as below: search_condition = spy.search({"Name":"Hourly"}) #make sure the condition name you created in workbench is named Hourly as well Step 5: Apply the formula to all signals by creating a scorecard metric. In this example we're trying to find the last value so the statistic used is Value At End. resultdf=pd.DataFrame() for index, row in my_items.iterrows(): my_metric_input_condition = { 'Type': 'Metric', 'Name': row['Name'] + '_last value', 'Measured Item': row['ID'], 'Statistic': 'Value At End', 'Bounding Condition': {'ID': search_condition[search_condition['Name'] == 'Hourly']['ID'].iloc[0]}, } # Append the result to the empty dataframe resultdf = resultdf.append(my_metric_input_condition, ignore_index=True) resultdf Step 6: Push the scorecard metric to your workbench. spy.push(metadata = resultdf, workbook='0EE61BAE-3EC2-7760-9367-553D489D11D8') #change the workbook ID to your workbook ID Step 6: Open the link to workbench, and you can see the calculations last value generate like this: Change the View to Table and click Condition Table to view it as table. Let me know if you need further help.
  14. Hi Francesco, Yes, we can push using SDL but I'm just curious how many signals you want to view in one table? 150 is a lot and have you considered creating Asset Tree instead? You can read more about Asset Tree here: https://python-docs.seeq.com/user_guide/Asset Trees 1 - Introduction.html If you think your signals are not suitable to arrange in asset tree do let me know and I'll share a script to push the signals.
  15. Now that I read your question again, I think you can also use this method, if you already have condition you want to use for you average calculation. After Step 1 above, you can use within function to create new signal that have positive values only. Next, you can continue with Step 2 above, but this time change the signal to new signal from formula above (in my case here the name is Positive signals), and condition to the specific condition that you already have (in my case is Hourly condition). Hope it helps!
×
×
  • Create New...