MDF Reader Error

Hello KNIMErs,

I want to read MDF files with the MDF Reader Node. Anaconda an the Python Setting in KNIME are ok. I get the following error message.

ERROR MDF Reader 3:73 Execute failed: 2
Traceback (most recent call last):
File “”, line 8, in
File “C:\Program Files\KNIME\configuration\org.eclipse.osgi\495\0.cp\py\mdf.py”, line 218, in read_channel_data
mdf = _configure_and_add_to_list(mdf.filter(channels), interpolation_method, mdfs)
File “C:\Users\xxxxx\Anaconda3\envs\py3_knime\lib\site-packages\asammdf\mdf.py”, line 1356, in filter
gps = self.included_channels(channels=channels)
File “C:\Users\xxxxx\Anaconda3\envs\py3_knime\lib\site-packages\asammdf\blocks\mdf_v4.py”, line 7889, in included_channels
result[master][master] = [self.masters_db[master]]
KeyError: 2

Any idea about this error? Is it the Node or the file?

Greetings, Brotfahrer

Hi @Brotfahrer,

The MDF Reader node is currently designed around an older version of the underlying asammdf library (version 5.19). There is a chance that manually upgrading that version could resolve the error (due to bug fixes and other improvements that have happened on the library’s side in the meantime).
If you would like to try doing that, I would recommend to do it in a new/cloned conda environment, though, as it is not guaranteed that the node will work with newer versions of asammdf at all. This way, you do not break your original environment.

The library can be updated to version 5.21.3 (the latest version of the 5.x release line) via the Anaconda Prompt like this:

conda install -n your_conda_environment -c conda-forge asammdf==5.23.1

where “your_conda_environment” should be replaced by the name of the (cloned) conda environment.

Note that the overall latest version of asammdf is 6.2.0. You could also try to upgrade to that version if the above did not fix the problem. But it is very likely that version 6 of the library introduced changes that are incompatible with the MDF Reader node.

Alternatively, if your MDF file does not contain any confidential information, you could also share it with me and I will take a look at the error in more detail and try to come up with a workaround.

Marcel

2 Likes

Hi @MarcelW ,

the update of the library to version 5.21.3 got some improvements but unfortunatelly not the solution. The MDF’s I’m interessed to read with KNIME have round about 6GB. I think this is a “little bit” to big to share :wink:
I have a small one I can share. I’m not shure if I cut off a sequence out of the big MDF I have to use another tool. If I do this I wil save the result to a new small MDF. If this small MDF has the same problem I don’t know.

Brotfahrer

Hi @Brotfahrer,

Sorry to hear that the update did not fix your problem.

Does the small MDF you have also produce that error? Otherwise reducing the big MDF to a more manageable size sounds like a good idea, let me know if you need any assistance with that :slight_smile:.

Marcel

Hi @MarcelW ,

I’m looking for a solution for sharing a MDF file.

Brotfahrer

1 Like

Hi @MarcelW ,

I found one problem in my MDF files. In my MDF files are columns with strings. The analysis I’m running reads in up to hundreds of file. In each file the analysis creates multiple “hits” and for each hit the server link to the specific file is documented. Now the MDF Reader Node throws an error:

ERROR MDF Reader 3:40 Execute failed: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Well that’s correct because of the hundreds of hits in one file. I can live without the file information but sometimes is more than “nice to have” to know the filename of the measurment file with e.g. an outlier.

To share the file MDF file with you I found a solution with the KNIME Key Accounter for my company. So I hope in the next few days the “big one” will come to you :hugs:

Cheers, Brotfahrer