ratal / mdfreader

Read Measurement Data Format (MDF) versions 3.x and 4.x file formats in python
Other
169 stars 74 forks source link

renaming of channels in mdf3 files #105

Closed ginseil closed 6 years ago

ginseil commented 6 years ago

hi,

behavior for naming/renaming channels in mdf3 files has changed with commit a45f6304dee5035998da40295daf1478370e0b2b (remove changeChannelName ...).

i have a sorted mdf3 file (each data group has excatly one channel group) and all channel names are matching the pattern you have defined in mdf3info for unsorted data in lines 222/223 -mdfinfo3.readCGBlock(): __

the method mdfinfo3.readCGBlock() is called twice:

  1. mdfinfo3.readinfo3() in line 148 - names of the channels generated in this run seem to be correct

  2. mdfreader3.read3() in line 856 - names are reloaded once again and here previously correct names a re renamed / overwritten because self['ChannelNamesByDG'][dg] is filled from the previous run

cristi-neagu commented 6 years ago

The line in mdfinfo3.readinfo3() was added in b32edad. The line in mdfreader3.read3() was originally added in 0ff2055. Hope this helps.

ratal commented 6 years ago

Hi Indeed, readCGBlock was called twice and then creating issues with renamed channels for mdf3. There was also related issues using channelList argument for both mdf3&4. Last commit should have fixed this, please try. This readCGBlock was introduced in order to improve memory use in case of reading file with many channels. All channel and conversion blocks are read datagroup per datagroup as default but in some case liek noDataLoading of channelList, behaviour should be different and this was not crrectly implemented.

ginseil commented 6 years ago

Hi, this issue is fixed for me. Thanks!

But your pattern for unsorted data should contain the data_group_id as well, because if a channel name appears in multiple data groups, then '__' is not unique

ratal commented 6 years ago

Yes indeed, I modified it. Thanks.