MDF Reader

This node reads the measurement data of one or more channels of an ASAM MDF file and makes them available at its output port. It allows to consolidate the data into a common time base using resampling, in case the different channels exhibit different sampling rates or offsets. Moreover, it allows to constrain the reading of channel data to a given time interval, therefore enabling partial reading of channels.
This node requires the KNIME Python Integration to be set up. For more information, see the KNIME Python Integration Installation Guide. The functionality of this node is based upon the asammdf Python library.

Options

MDF file
The path to the input MDF file. Reading from KNIME URLs like "knime://knime.workflow/[...]/<filename>" is supported.
This option can be controlled via flow variable mdf_file .
Channel selection
Channels (or entire channel groups) are selected for reading by checking their corresponding checkbox. The data of each of the selected channels will be provided in a dedicated column of the node's output table.
This option can be controlled via flow variable channels . Each entry of the flow variable must be of the form: channel name ( group index : channel index ).

Channels can be searched by specifying their name or a regular expression that matches their name using the search bar at the top of the channel selection group. Additionally, the metadata of a channel or channel group can be displayed on the right side of the dialog by marking it in the tree structure on the left side.

Advanced Settings

No resampling
If this option is selected, no resampling is performed on the data of the channels selected for reading. If multiple channels are to be read, they should share a common time base, that is, have identical sampling rates and offsets. Otherwise the output table contains the union of all timestamps of the selected channels with missing values or NaNs inserted at the timestamps at which a channel does not have any samples.
This option can be selected via flow variables by setting flow variable resampling_method to none .
Resample using fixed time raster
If this option is selected, channel data are resampled according to a given time raster (see option below). That is, given raster t , the node outputs samples at points in time t , 2t , 3t , etc. per selected channel. If a specific channel has no measured sample at such a point in time, the sample is interpolated according to the selected interpolation method (only applies to integer samples, see further below).
This option can be selected via flow variables by setting flow variable resampling_method to raster .
Raster
The raster according to which the data of all selected channels are resampled.
This option can be controlled via flow variable raster .
Resample using timestamps of channel
If this option is selected, channel data are resampled according to the timestamps of a given channel (see option below). That is, given timestamps t 1 , t 2 , t 3 , etc. of the channel, the node outputs samples at these points in time for all selected channels. If a specific channel has no measured sample at such a point in time, the sample is interpolated according to the selected interpolation method (only applies to integer samples, see further below).
This option can be selected via flow variables by setting flow variable resampling_method to channel .
Channel
The channel according to which the data of all other channels selected for reading are resampled. All master channels as well as all channels that have been selected for reading can be chosen.
This option can be controlled via flow variable channel .
Integer interpolation method
The interpolation method to use when resampling integer channel data (see above). If previous value is selected, each missing sample is derived by using the value of its nearest preceding existing sample. If linear interpolation is selected, each missing sample is derived by calculating the weighted average of its nearest preceding and succeeding existing sample.
Note that decimal channel data are always resampled using linear interpolation. Other, non-numeric data are always resampled using previous value interpolation.
This option can be controlled via flow variable interpolation_method .
Only read data in specified time interval
If this option is selected, only samples that lie within the given time interval (see below) are read per selected channel.
This option can be controlled via flow variable only_read_interval .
Interval
The time interval to which to constrain the reading of channel data. Samples whose timestamps equal the start and end points of the interval are also read (closed interval).
This option can be controlled via flow variables interval > MIN (start) and interval > MAX (end).
Interval is relative to first timestamp
If this option is selected, the above interval is relative to the earliest recorded timestamp in all of the selected channels. Otherwise, the interval is relative to the overall start time of the measurement as specified in the header block of the MDF file.
This option can be controlled via flow variable interval_is_relative .
Number of samples per chunk
This option breaks the reading of the MDF file into chunks. Only as many samples as specified are read from file and written into the node's output table at once. This is useful when reading files that do not fully fit into main memory.
This option can be controlled via flow variable number_samples_chunk .

Input Ports

This node has no input ports

Output Ports

Icon
The read-in channel data.

Views

This node has no views

Workflows

Links

Developers

You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.