Reading Historical Data

ARDI uses its own query language named AQL to ask for information.

The GETHISTORY function in AQL gets the history for one or more points of data. But these individual data points will often have different time-stamps, update rates and be a bit scattered. Trying to figure out exactly what the state of the system was at any given time can be challenging.

Using Pandas and the Execute_DF function, Python will process your data to provide it as a single, Complete Dataframe.

Creating a Query

Once you're connected to the ARDI server, you'll need to create an AQLQuery

query = ardi.AQLQuery(server)

Executing the Query

You execute the query using the Execute_DF function, passing the actual AQL query you'd like to run.

The response comes back as a Pandas dataframe, with each column being named after each asset/property combination found.

frame = query.Execute_DF("'Closest Support' PROPERTY ALLPOINTS {\"range\": \"6 hours\"} GETHISTORY")

Process the Response

The index of your dataframe is time. You'll have one column for each point in the query, each named for the asset and property found. For example an asset called Main Pump with a Temperature measurement on it would be called “Main Pump.Temperature” in the resulting dataframe.

Complete Code

import ardi
import sys

#Setup ARDI Connection
svr = ardi.Server("demo.optrix.com.au","long")

#Connect to ARDI Server
connected = False
try:
    connected = svr.Connect()
except:
    pass

if connected == False:
    print("Unable to Connect to ARDI Server")
    sys.exit(-1)

query = ardi.AQLQuery(svr)
data = query.Execute_DF("'Closest Support' PROPERTY ALLPOINTS {\"range\": \"6 hours\"} GETHISTORY")

print(str(data))