Jump to content

Kristopher Wiggins

Seeq Team
  • Posts

    39
  • Joined

  • Last visited

  • Days Won

    17

Kristopher Wiggins last won the day on November 3 2022

Kristopher Wiggins had the most liked content!

Recent Profile Visitors

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

Kristopher Wiggins's Achievements

Apprentice

Apprentice (3/14)

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

Recent Badges

27

Reputation

  1. Correct the statistic will mirror what's seen in the GUI. To find out which ones are available, I ran the code mentioned above with an incorrect statistic and SPy returned an error with the possible options. Note that just like in the GUI only certain stats can be used for signals and condition Measured Items.
  2. I'd recommend filing a ticket by emailing support@seeq.com so we can schedule a meeting to troubleshoot. You could also sign up for an Office Hours session.
  3. Typically you'd see a 0000... ID when you have an error in your duplicated workbook. There are probably items in the original workbook that you don't have access to and can't use in your duplicate. Are you the owner of the original workbook or are you able to contact that person so they can look over what you don't have access to
  4. When generating a prediction in Seeq, some users often come across the error The number of target samples is not sufficient to conduct a regression. As the error suggests, there isn't enough data to perform the prediction but it can be difficult to determine the particular cause, especially when there are numerous inputs into the prediction. The steps below can be used to troubleshoot why a prediction is receiving this error and help suggest steps to resolve it. Step 1: Confirm data in your signals Seeq's prediction tool requires there to be interpolatable data at the timestamps of the target signal during the training window at least N+1 times, where N is the number of inputs into the model. These inputs aren't necessarily the number of signals, but the number of terms in the model (so for a polynomial scale, N = 2 * number of signals). In the case of a linear model that has 3 inputs, there needs to be at least 4 times when all of the inputs have data at the target's timestamps. If one of the signals never has data then the above requirement is not possible and that signal should be removed. If there is data in every signal, the next thing to look at if there is data within the training window. Seeq's Prediction tool by default accepts a time range as the training window but this can be further refined by limiting your training window to a condition. To check if the requirement is still met, the formula below can be used, where each $signal_i is a signal used in the model, $conditon is the training window condition and $target is the target of the model. ($signal_1 * $signal_2 ... * $signal_N).within($condition).resample($target).validValues() You can then match your display range with the time range chosen in the prediction and check the count of the resulting formula. This count either be determined using a Simple Scorecard Metric or in the Details Pane to check if it meets the requirement Step 2: Evaluate the Prediction If Step 1 suggests that all of your signals has data and should meet the necessary number of samples, then there could be an issue with the Prediction that prevents the requirement from being met. Some examples of this are Logarithmic Scale and Inputs with Zero or Negative Data: Its mathematically impossible to take a logarithm of zero or negative number so signals with data like this can't have these samples considered. To eliminate data like this from the inputs, formulas like $signal.within($signal > 0) can be used in conjunction with the previously mentioned formula to get an accurate count. Divide By Zero: There are cases when the prediction model can evaluate and fail to include samples due to divide by zero errors. To check if this is the problem, try using Principle Component Regression (PCR) instead of the standard Ordinary Least Squares (OLS) that's used by default in the Prediction tool.
  5. Hey Pat, just confirming that this fix resolved your original problem?
  6. The Users.AuthenticationFailures.Meter only provides as system wide view of how many users login attempts fail. To determine causes of these failures, you'll need to go into the logs as you mentioned. The particular log to look at varies based on your authentication mechanism though. Feel free to send an email to support@seeq.com and we can dive into the details of how your Seeq server is configured to determine which log file you'll need to look at.
  7. Vibration data is a common ask to be brought into Seeq. It all depends on where the data is stored; if its stored in one of Seeq's supported connections then yes. If its stored as CSV/Excel files, then yes they can be imported via our CSV Import Tool. If neither of the above, we'd need to look into the details of this vibration data to confirm/deny if it possible.
  8. Hi Andrew, Seeq has scripts that would move this condition beneath particular elements of asset trees. If you're still interested in having this done, feel free to email support@seeq.com and we can provide and customize the script to address your particular needs.
  9. Hi Sivaji, in some cases you can cut this workflow down to two steps. In the spy.pull command, there is an option to include a calculation parameter that would apply a Seeq formula on the pulled data, allowing you to bypass Step 2 of pushing a formula calculation. This only works for calculations with a single input (think taking a weekly average or apply a filter) so if you're looking to make more complex formulas, you'll still need to follow the workflow you mentioned above
  10. I agree Hunter. Please send an email to support@seeq.com if you're interested in being notified if this feature is incorporated into the product.
  11. Good ideas Eric. Another ask our users have had was to be able to have a default datasource selected since they only ever work with that one. If you'd like to be notified about this suggestion or either of yours feel free to send an email to support@seeq.com so we can link your request to our ticket system.
  12. Thanks for the feedback Lee. As you've noted Seeq currently doesn't differentiate these different units primarily because standard varies based on process conditions. We're working on ways to improve our unit handling, so if you want to be notified about updates, feel free to send a email to support@seeq.com and we'll log a ticket for you.
  13. Hi Hunter, This is a common ask from our users and we have a ticket in our system tracking it. If you'd like to be notified when the feature is included in a version of Seeq, please email support@seeq.com and we'll link your request so you'll get notified. Regards, Kris
  14. Users of OSIsoft Asset Framework often want to filter elements and attributes based on the AF Templates they were built on. At this time though, the spy.search command in Seeq Data Lab only filters based on the properties Type, Name, Description, Path, Asset, Datasource Class, Datasource ID, Datasource Name, Data ID, Cache Enabled, and Scoped To. This post discusses a way in which we can still filter elements and/or attributes based on AF Template. Step 1: Retrieve all elements in the AF Database The code below will return all assets in an AF Database that are based on a AF Template whose name contains Location. asset_search = spy.search({"Path":"Example-AF", "Type":"Asset"}, all_properties=True) #Make sure to include all properties since this will also return the AF Template asset_search.dropna(subset=['Template'], inplace=True) # Remove assets not based on a template since we can't filter with NaN values asset_search_location = asset_search[asset_search['Template'].str.contains('Location')] # Apply filter to only consider Location AF Template assets Step 2: Find all relevant attributes This code will retrieve the desired attributes. Note wildcards and regular expression can be used to find multiple attributes. signal_search = spy.search({"Path":"Example-AF", "Type":"Signal", "Name":"Compressor Power"}) #Find desired attributes Step 3: Filter attributes based on if they come from an element from the desired AF template Last step cross references the signals returned with the desired elements. This is done by looking at their paths. # Define a function to recreate paths, items directly beneath the database asset don't have a Path def path_merger(row): row = row.dropna() return ' >> '.join(row) asset_search_location['Full Path'] = asset_search_location[['Path', 'Asset', 'Name']].apply(lambda row: path_merger(row),axis=1) # Create path for the asset that includes its name signal_search['Parent Path'] = signal_search[['Path', 'Asset']].apply(lambda row: path_merger(row),axis=1) # Create path for the parents of the signals signal_search_location = signal_search[signal_search['Parent Path'].isin((asset_search_location['Full Path']))] # Cross reference parent path in signals with full paths in assets to see if these signals are children of the desired elements
  15. Hi Dharun, It looks you won't be able to use the folium package in Seeq DataLab due to Content Security Policy issues. Feel free to read more about the issue in https://github.com/nteract/hydrogen/issues/1069 . I'd recommend using another geospatial library since workarounds to this issue would probably introduce security vulnerabilities.
×
×
  • Create New...