Supported file types

Overview

Plugins are under active development. Stable plugins are documented below with their available options. Plugins under beta testing are available upon request.

File format
File extensions
Status

.csv, .txt, .zip, ...

Stable

.mdf, .mf4

Stable

.mat

Stable

.h5

Stable

.tdms

Stable

Parquet

.parquet, .pqt

Beta testing

Rosbag

.bag

Beta testing

Ulog (PX4)

.ulg

Beta testing

Apache Avro

.avro

Beta testing

MAVLink

.bin

Beta testing

Custom plugins

Do you have files in a different format? Our technical team can create a custom plugin for your data format.

Get in touch with [email protected] to discuss your use case.

CSV

Plugin name: CSV

The CSV plugin has a lot of options for configuration (see below). Key points:

  • The time column can be configured (but defaults to time)

  • Time can be a number or date string format. (preferably YYYY/MM/DD hh:mm:ss)

  • CSV zips are supported through --unzip

  • Two main shapes are supported: tab (example 1) and tsv (example 2)

Example 1: Tabular (tab)

time,altitude,speed,engine_temp,fuel_level,battery_voltage
s,m,km/h,°C,%,V
0.0,0.0,0.0,90.0,100.0,12.6
1.0,10.0,20.0,91.0,99.5,12.6
2.0,25.0,40.0,92.0,99.0,12.5
3.0,50.0,60.0,93.0,98.4,12.5
4.0,80.0,75.0,94.0,97.8,12.4
5.0,120.0,85.0,95.0,97.2,12.4
6.0,160.0,90.0,96.0,96.5,12.3
7.0,200.0,88.0,96.5,95.7,12.3
8.0,240.0,70.0,97.0,94.9,12.2
9.0,260.0,40.0,96.0,94.3,12.2

Download the example file:

Example 2: Time Signal Value (tsv)

time,signal,value
0.0,altitude,0.0
0.0,speed,0.0
0.0,battery_voltage,12.6
1.0,altitude,10.0
1.0,speed,20.0
1.0,battery_voltage,12.6
2.0,altitude,25.0
2.0,speed,40.0
2.0,battery_voltage,12.5
3.0,altitude,50.0
3.0,speed,60.0

Available options

Option
Default value
Details

--time-col

time

Name of the time column

-T

--combined-time-col

[]

Combine multiple column names using space to form 1 date column (e.g. -T 'date' -T 'time' -T 'UTC Offset')

--shape

tab

If the data is organised tabular (tab), or tsv with for example columns (time, signal, value)

--delimiter

,

Character that splits the columns

--decimal

.

Character that show decimal point

--thousands

None

Character that splits 1000s

--quotechar

"

Character indicating strings

--encoding

latin-1

See list of available encodings here

--chunksize

1 million (1e6)

Number of rows consumed at once

--skiprows

0

Rows to be ignored at the top of the file

--dayfirst

--no-dayfirst

--no-dayfirst

Parse dates with the day first (e.g. 23/08/2025)

--time-factor

1 billion (1e9)

Factor to convert time to nanoseconds

--time-offset

0

Offset [ns] to add to time. Time [ns] = [time-col] * time-factor + time-offset

-h

--header

[]

Names for the columns, instead of using the first row (e.g. -h 'time' -h 'col0' -h 'col1')

--units

--no-units

--no-units

Read units from the second line (tab only)

--unzip

--no-unzip

--no-unzip

The input file is a .zip file which contains .csv files

--group-by-filename

--no-group-by-filename

--no-group-by-filename

Add the file name as a signal group

--signal-col

signal

Column to use for signal names, in case of multiple, they will be combined using . (tsv only)

--value-col

value

Column to use for values (tsv only)

--unit-col

None

Column to use for units (tsv only)

-M

--metadata-col

[]

Columns to use for metadata (tsv only)

A general example of how these options can be correctly used in Marple DB:

MDF

Plugin name: MDF/ MF4

Can import files generated according to the ASAM Measurement Data Format version 4 (MF4) standard. Binary MDF files cannot be parsed but needs to converted using a .dbc file first.

Available options

Option
Default value
Details

--chunksize

10 million (1e7)

Number of datapoints in each processed chunk. Large values may result in too much use of RAM and crashing

--time-factor

1 billion (1e9)

Factor to convert time to nanoseconds

--time-offset

0

Offset [ns] to add to time. Time [ns] = [time-col] * time-factor + time-offset

--use-header-start-time

--no-use-header-start-time

--use-header-start-time

Use the start time from the header of the file.

-s / --select

Channel names to include. If not provided, all channels are included.

MATLAB

Plugin name: MATLAB

MAT files are used a lot when using MATLAB or certain loggers such as dSpace, Speedgoat, .. MAT files are treated similarly to HDF5 files (as described above), so the same rules apply.

If you have a MAT file of version 7.3 or higher, this will be treated as a HDF5 file. MAT files of a lower version are significantly less efficient and will require more effort to be parsed by Marple.

Download the example.mat file below:

Available options

Option
Default value
Details

--time-col

time

Name of the time column.

--time-factor

1 billion (1e9)

Factor to convert time to nanoseconds

--time-offset

0

Offset [ns] to add to time. Time [ns] = [time-col] * time-factor + time-offset

--include-groups --no-include-groups

--include-groups

Include group names in signal names.

--structure

flat

How to interpret the data structure in the file. [flat/matrix]

--names-key

names

Key name for signal names when using 'matrix' structure.

--units-key

units

Key name for signal units when using 'matrix' structure.

--descriptions-key

descriptions

Key name for signal descriptions when using 'matrix' structure.

HDF5

Plugin name: HDF5

HDF5 files are widely known for their excellent handling of large data sets.. and we agree! We love HDF5 data sets!

Unfortunately, HDF5 files come in different shapes and formats, so we need to agree to some structure.

Marple supports 2 structures for HDF5. We call it SIGNAL based and MATRIX based structures.

SIGNAL based (flat)

In a signal-based structure, the data consists of Groups (dictionary-like objects) where the signal names are used as keys. For every signal a Dataset (array) defines the data.

We also allow for signal grouping, as can be seen in the example below

Flat signal group structure

Units are also supported, by adding them as an attribute to the Dataset for the signal.

Download the example_signalbased.hdf5 file below:

MATRIX based

A matrix structure is a bit more complex to construct but allows for easier row-by-row processing. It also allows for extra information such as units.

Matrix signal group structure

Download the example_hdf5_matrix.h5 file below:

Available options

Option
Default value
Details

--time-col

time

Name of the time column.

--time-factor

1 billion (1e9)

Factor to convert time to nanoseconds

--time-offset

0

Offset [ns] to add to time. Time [ns] = [time-col] * time-factor + time-offset

--include-groups --no-include-groups

--include-groups

Include group names in signal names.

--structure

flat

How to interpret the data structure in the file. [flat/matrix]

--names-key

names

Key name for signal names when using 'matrix' structure.

--units-key

units

Key name for signal units when using 'matrix' structure.

--descriptions-key

descriptions

Key name for signal descriptions when using 'matrix' structure.

TDMS

Plugin name: TDMS

Available options

Option
Default value
Details

--chunksize

10 million (1e7)

Number of datapoints in each processed chunk. Large values may result in too much use of RAM and crashing

--time-factor

1 billion (1e9)

Factor to convert time to nanoseconds

--time-offset

0

Offset [ns] to add to time. Time [ns] = [time-col] * time-factor + time-offset

--time-col

time

Name of the time column.

--unit

unit_string

Name of the channel property which contains the unit.

Last updated