CDF to handle String Timeseries

Related products: Charts

Hello,

We’re currently having some issues with pulling our PI data from Cognite since we have several PI tags that are string timseries vs numeric (as in rather than having 0 or 1, the timeseries shows open or closed). It appears that Cognite cannot handle string timeseries because they cannot be aggregated, however some of the logic that’s built in to our devices can only be pulled in this manner. We’d at least need a way for Cognite to convert the data pulled as strings as numeric and maybe auto assigning numeric values to each string event? A bonus would be to have an associated conversion of those numeric values to the associated string from the pull

Example:

Cognite pulls timseries EXAMPLE.TIME.VALVE.A.STATUS that contains “Open” and “Closed” and auto assigns 0 to “Open” and 1 to “Closed”

There’s then an associated ‘conversion’ that states for timeseries EXAMPLE.TIME.VALVE.A.STATUS:

0 = “Open”

1 = “Closed”

 

then Cognite pulls another timeseries EXAMPLE.TIME.VALVE.B.STATUS and happens to assign 0 to “Closed” and 1 to “Open” for whatever reason

There’s then an associated ‘conversion’ that states for timeseries EXAMPLE.TIME.VALVE.B.STATUS:

0 = “Closed”

1 = “Open”

 

I totally agree. I have been mentioning this to Cognite for a while.


Hi @rmaidla and @ibrahim.alsyed thank you for your request, we appreciate it. Our expert in this particular field, @Glen Sykes, is currently on vacation and will not be available until the end of July. However, rest assured that once he returns, he will promptly respond to your query. If you have any urgent concerns please let us know, and we will do our best to provide alternative support in the meantime. Thank you, 


Hi Richard and Ibrahim,

I’m the product manager for Time Series and other high volume type services in CDF.

I’m keen to understand the data pattern and use case here, as in addition to enhancing Time Series, we are also in the planning and design phase for a new service that will handle high volume, system generated events/logs/alarms, which might be a potential better fit for your use case.

Can you provide more details here, or shall we have a call to discuss?
Kind Regards, Glen

 


Glen - we need the ability for the time series to not just be numerical. We would like to see a time series that shows trends with something like High, Medium Low and we can trend it instead of coding it to ,1,2,3 respectively. 

 

 


Are these values used in isolation, or in conjunction with ‘adjacent’ time series, or in other words would this requirement be better stored in a ‘tabular’ format than a single time series?

Are the values used to trigger alerts in real or close to real time, or is the pattern more about retrospective analysis of trends?

Is the data likely to need (frequent) updates, or can we take an immutable approach to storing the values?

 


people would like to trend so a time series is required. 

For example, an operator records the status in HI or LO as there is no numerical value. The would like to trend it on a chart over daily. The readings are taken 2 times a day etc

 

Ibrahim 


OK I think I understand.  And the chart would only feature a single time series, or multiple?  And what’s the time resolution / sample rate (assuming your batching when you take a reading, or is it two data points per day?)

 


single time series and data should update on the frequency it receives the update. 


Thanks, now I think I have everything!


Hello again @rmaidla and @ibrahim.alsyed 

Other than “Open” and “Closed”, what other string statuses are in use that need to be represented in a Chart please?


It could be anything. For our platforms offshore, a lot of times we use this type of data to show which wells are flowing through which separator, or conversely which flowline is being used for a given well based off of the valve position. 

The requirement is to be able to handle a source text timeseries as is the capability in OSI PI. 


OK, so from the Charts UI perspective, you would like the ability for a given Time Series (or group of Time Series that share the same String values) to define positions on the Y axis that correspond to strings that occur in those Time Series, and then plot the occurrence of those strings as they appear in the chart.

So for example, you’d select the time series you’d want to plot, the strings in the Time Series would appear on the Y axis, you would have the ability to adjust the position of the strings to suit your needs, and then the occurrence of those strings would be plotted over time.  

Do I have it right?


Following up on this request.  Representation of Machine States in Time Series is now in our program backlog for 2024.  By our current estimation we will have capacity to deliver this in Q3/Q4 timeframe.  Timescales are subject to adjustment of course.