11-29-2016 05:06 PM
Hello,
I am dealing with large (> many GB) TDMS files and am using the advanced asynchronous TDMS read functions to extract the data. The TDMS file is formatted with a single group containing 2 different channels (CH0/CH1). The data is stored in buffers of 2048 elements, corresponding to 1024 elements for CH0, and 1024 elements for CH1. My question is on the best approach I should take if I only want to read out a single channel and disregard the other.
For regular (not advanced) TDMS VIs, I understand that I can choose which channel to read using a configuration VI, however, for advanced TDMS this does not seem to be possible. Currently, I am just reading out the entire buffer, and deleting the elements corresponding to the channel I wish to ignore. This seems quite inefficient and significantly increases the computation time needed to analyze the data.
If there isn't a way to do this programmatically on a single TDMS file then I guess I could just write the channels to separate files. To me, this goes against the whole idea of TDMS as a comprehensive organzational tool but could be worthwhile if it proves to reduce computation time.
Solved! Go to Solution.
11-30-2016 12:19 PM
What is wrong with using the standard TDMS Read? You can specify the channel, how many data points to read, and at what data point to start reading at.
11-30-2016 12:52 PM
Well.. now I feel sillly. I was under the impression that files that were written using the asynchronous write functions needed to be read out using the asynchronous read functions. I just wrote a a short VI which was able to read out a single channel from my TDMS file iteratively and it appears to work w/o issue. I'll go ahead and do some double checks but I think all is well now. Thanks!