endaq.ide Usage Examples

Note: For brevity, the following examples assume everything has been imported from endaq.ide:

from endaq.ide import *

Opening IDE files: endaq.ide.get_doc()

endaq.ide includes a convenient shortcut for importing IDE data: get_doc(). It can load data from local files, or read data directly from a URL.

doc = get_doc("tests/test.ide")
doc1 = get_doc("https://info.endaq.com/hubfs/data/surgical-instrument.ide")

IDE files can be retrieved directly from Google Drive using a Drive ‘sharable link’ URL. The file must be set to allow access to “Anyone with the link.”

doc2 = get_doc("https://drive.google.com/file/d/1t3JqbZGhuZbIK9agH24YZIdVE26-NOF5/view?usp=sharing")

Whether opening a local file or a URL, get_doc() can be used to import only a specific interval by way of its start and end parameters:

doc3 = get_doc("tests/test.ide", start="5s", end="10s")

Summarizing IDE files: endaq.ide.get_channel_table()

Once an IDE file has been loaded, get_channel_table() will retrieve basic summary information about its contents.

Some environments, such as Jupyter Notebook or Colab, will automatically render and display the channel table data. From inside the standard Python interactive interpreter, use get_channel_table(doc).data to display the raw information, or to access the table’s contents directly as a Pandas DataFrame.

get_channel_table(doc)
  channel name type units start end duration samples rate
0 32.0 X (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
1 32.1 Y (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
2 32.2 Z (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
3 80.0 X (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
4 80.1 Y (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
5 80.2 Z (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
6 36.0 Pressure/Temperature:00 Pressure Pa 00:00.0945 00:19.0175 00:18.0230 20 1.10 Hz
7 36.1 Pressure/Temperature:01 Temperature °C 00:00.0945 00:19.0175 00:18.0230 20 1.10 Hz
8 70.0 X Quaternion q 00:01.0132 00:18.0954 00:17.0821 1755 98.47 Hz
9 70.1 Y Quaternion q 00:01.0132 00:18.0954 00:17.0821 1755 98.47 Hz
10 70.2 Z Quaternion q 00:01.0132 00:18.0954 00:17.0821 1755 98.47 Hz
11 70.3 W Quaternion q 00:01.0132 00:18.0954 00:17.0821 1755 98.47 Hz
12 59.0 Control Pad Pressure Pressure Pa 00:00.0979 00:18.0910 00:17.0931 180 10.04 Hz
13 59.1 Control Pad Temperature Temperature °C 00:00.0979 00:18.0910 00:17.0931 180 10.04 Hz
14 76.0 Lux Light Ill 00:00.0000 00:18.0737 00:18.0737 71 3.79 Hz
15 76.1 UV Light Index 00:00.0000 00:18.0737 00:18.0737 71 3.79 Hz

The results can be filtered by measurement type:

get_channel_table(doc, ACCELERATION)
  channel name type units start end duration samples rate
0 32.0 X (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
1 32.1 Y (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
2 32.2 Z (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
3 80.0 X (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
4 80.1 Y (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
5 80.2 Z (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz

Measurement types can be combined to retrieve more than one:

get_channel_table(doc, ACCELERATION+TEMPERATURE)
  channel name type units start end duration samples rate
0 32.0 X (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
1 32.1 Y (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
2 32.2 Z (16g) Acceleration g 00:00.0952 00:19.0012 00:18.0059 7113 393.86 Hz
3 80.0 X (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
4 80.1 Y (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
5 80.2 Z (8g) Acceleration g 00:00.0948 00:19.0013 00:18.0064 9070 502.09 Hz
6 36.1 Pressure/Temperature:01 Temperature °C 00:00.0945 00:19.0175 00:18.0230 20 1.10 Hz
7 59.1 Control Pad Temperature Temperature °C 00:00.0979 00:18.0910 00:17.0931 180 10.04 Hz

Information about a specific interval can be retrieved by using the start and/or end arguments. Note that due to different sampling rates, the start and end times for slower channels may not precisely match the specified start or end.

get_channel_table(doc, ACCELERATION+TEMPERATURE, start="0:05", end="0:10")
  channel name type units start end duration samples rate
0 32.0 X (16g) Acceleration g 00:05.0000 00:10.0001 00:05.0000 1969 393.75 Hz
1 32.1 Y (16g) Acceleration g 00:05.0000 00:10.0001 00:05.0000 1969 393.75 Hz
2 32.2 Z (16g) Acceleration g 00:05.0000 00:10.0001 00:05.0000 1969 393.75 Hz
3 80.0 X (8g) Acceleration g 00:05.0000 00:10.0001 00:05.0000 2510 501.98 Hz
4 80.1 Y (8g) Acceleration g 00:05.0000 00:10.0001 00:05.0000 2510 501.98 Hz
5 80.2 Z (8g) Acceleration g 00:05.0000 00:10.0001 00:05.0000 2510 501.98 Hz
6 36.1 Pressure/Temperature:01 Temperature °C 00:04.0954 00:10.0966 00:06.0011 6 1.00 Hz
7 59.1 Control Pad Temperature Temperature °C 00:05.0086 00:10.0095 00:05.0008 50 9.98 Hz

Extracting intervals: endaq.ide.extract_time()

A portion of an IDE file can be saved to another, new IDE. The source can be a local filename or an opened IDE (from a file or URL).

extract_time("tests/test.ide", "doc_extracted.ide", start="0:05", end="0:10")
extract_time(doc1, "doc1_extracted.ide", start="0:05", end="0:10")

Additional sample IDE recording files

Here are a number of example IDE files, which may be used with endaq.ide:

file_urls = ['https://info.endaq.com/hubfs/data/surgical-instrument.ide',
             'https://info.endaq.com/hubfs/data/97c3990f-Drive-Home_70-1616632444.ide',
             'https://info.endaq.com/hubfs/data/High-Drop.ide',
             'https://info.endaq.com/hubfs/data/HiTest-Shock.ide',
             'https://info.endaq.com/hubfs/data/Drive-Home_01.ide',
             'https://info.endaq.com/hubfs/data/Tower-of-Terror.ide',
             'https://info.endaq.com/hubfs/data/Punching-Bag.ide',
             'https://info.endaq.com/hubfs/data/Gun-Stock.ide',
             'https://info.endaq.com/hubfs/data/Seat-Base_21.ide',
             'https://info.endaq.com/hubfs/data/Seat-Top_09.ide',
             'https://info.endaq.com/hubfs/data/Bolted.ide',
             'https://info.endaq.com/hubfs/data/Motorcycle-Car-Crash.ide',
             'https://info.endaq.com/hubfs/data/train-passing.ide',
             'https://info.endaq.com/hubfs/data/baseball.ide',
             'https://info.endaq.com/hubfs/data/Clean-Room-VC.ide',
             'https://info.endaq.com/hubfs/data/enDAQ_Cropped.ide',
             'https://info.endaq.com/hubfs/data/Drive-Home_07.ide',
             'https://info.endaq.com/hubfs/data/ford_f150.ide',
             'https://info.endaq.com/hubfs/data/Drive-Home.ide',
             'https://info.endaq.com/hubfs/data/Mining-Data.ide',
             'https://info.endaq.com/hubfs/data/Mide-Airport-Drive-Lexus-Hybrid-Dash-W8.ide']

These can be directly read from endaq.com using endaq.ide.get_doc(), as previously described.