Skip to main content

A comprehensive, user-centric Python API for working with enDAQ data and devices

Project description

endaq-ide

endaq.ide contains high-level utility functions to aid in importing and inspecting enDAQ IDE recording files. Key functions/features include:

  • get_channel_table(): Get summary information about the contents of a file.
  • get_doc(): Open an IDE, either locally or from a URL.
  • to_pandas(): Convert IDE data to a pandas DataFrame, for use with other packages.

Note: This is a component of the endaq package; it is separate to allow users to install it independently, avoiding the core endaq-python dependencies. It is included in a full endaq install.

endaq.ide usage examples

Here are a few examples of endaq.ide in use. For more information, see the full documentation.

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, endaq.ide.get_channel_table() will retrieve basic summary information about its contents. Some environments, such as Jupyter Notebook or Colab, will automatically display the channel table data. From inside the Python Console, use get_channel_table(doc).data to display the 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endaq-ide-1.1.0.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

endaq_ide-1.1.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file endaq-ide-1.1.0.tar.gz.

File metadata

  • Download URL: endaq-ide-1.1.0.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for endaq-ide-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e7b724f570625788a8ec0dcd357460ae828b9a51b9ee0a8d84034c13deb623df
MD5 78f89532e96dc993d862eb3c18af1736
BLAKE2b-256 419ec94dd232e30f9086638de4cb266d6235338b626de54479acc7ea149b9a1e

See more details on using hashes here.

File details

Details for the file endaq_ide-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: endaq_ide-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for endaq_ide-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 adab63306578c60b9e76d964230ad99c53011efe1fd6182c97db64dd1314ed06
MD5 72784d7f042b0a4a0b153e46afa1935d
BLAKE2b-256 6ab33020757813304e4c655791e41259fc96c24ce876359dc3cdbba90f094dfb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page