Can anyone help me understand the following behavior when attempting to use the range aggregation mode in the reporting module with a tag historian query? The attached image is a comparison of the same data & time range, one with the aggregation mode set as Closest Value, and the other set as Range. The markups in red is what I would have expected the data to be.
In case this helps anyone else, the solution i totally didn't use chatGPT to help with is as follows:
import java
import jarray
# Get the original dataset
oldSet = data['tag_history'].getCoreResults()
ds = system.dataset.toPyDataSet(oldSet)
column_names = jarray.array(ds.getColumnNames(), java.lang.String)
# Create a list to hold the new data rows
new_rows = []
# Iterate over the rows of the original dataset
for i, row in enumerate(ds):
# Check if the current row is the first row
if i == 0:
new_rows.append(row)
else:
# Create a new list to hold the modified row values
new_row = [row[0]]
# Iterate over the columns of the current row
for j in range(1, len(row)):
# Calculate the difference between the current and previous row value
diff = row[j] - ds[i-1][j]
# Append the modified value to the new row list
new_row.append(diff)
# Append the modified row to the new data list
new_rows.append(new_row)
# Create the new dataset with the modified data
new_ds = system.dataset.toDataSet(column_names, new_rows)
data['Differential'] = new_ds
This then gives the result I was expecting the Range Aggregation Mode to result in
1 Like