2 of 2 people found this helpful
To get the values significant for a trend, OSIsoft visualization products, like ProcessBook, ActiveView and PI Vision, are using PlotValues. Let's choose the PIPoint.PlotValues method from the AF SDK Programming reference as documentation resource.
How much events (value, timestamp, status .. ) is recorded for a PI Point over a certain period of time mainly depends on how frequent updates are send by the data source and what the amount of events is left after applying Exception and Compression.
To start off somewhere, let's assume a pi point which records 1 value per minute (1440 values a day). Now let's assume the horizontal width of your trend area is 800 pixel. Retrieving all the 1440 events for a day would mean to transfer ~ 640 values over the network which you would later have to discard somehow - intentionally or unintentionally. When performing a PlotValues call, you use the 800 pixels horizontal width as Intervals parameter. We don't share the exact algorithm but PlotValues will be served server side by retrieving all values for the specified period (TimeRange) and evaluating a set of values required to render a significant trend.
You may also be interested in this recent discussion on the subject: Understand o/p of AFData.PlotValues.
My Russian is pretty limited and I don't like to offer a Google Translator translation.
Thanks, the PlotValues method really helped, it quickly returns all points for a given period.
But there is a problem. It is also necessary to quickly display these points on the graph.
How does PI Trend so quickly display a graph consisting of 5000 thousand or more points?
The Trend element displays data for a period of up to 1 month with almost no delays.
We are faced with the task of creating an analog of Trend.
Are you asking about how to effectively render a Trend?
The PlotValues call should help to get way less than 5,000 events (value, timestamp, status ..) returned as I explained earlier. With todays hardware, there shouldn't be a performance issue, even not when you set each pixel individually.
Can you share information what you are working on? It could e.g. help if you share what technology you are using for development as there may be Trend controls you can use instead of breaking your head about how to reinvent a Trend control.