-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Advantage over Matlab HDF5 support? #7
Comments
@ftadel, I was about to start a conversation with your team on file formats, glad you you mentioned this.
the main appeal of easyh5 is its simplicity and usability. it is super compact and extremely easy to use. the corresponding functions to For starters, they can't directly save a struct, a struct array, or a cell array. It only accepts numerical or string arrays as input. They are also unable to directly handle other advanced data structures, such as tables, graph, containers.Map etc, unless you use the low-level interfaces and serialize those manually. In comparison, easyh5 accepts literally all matlab data structures, serializing those and storing in a single hdf5 file. It also reads any hdf5 file and obtain a convenient struct/containers.Map object to store the complex hierarchical data. Secondly, even one calls low-level interface, without special settings, matlab's functions do not save data fields in their creation order. This can be quite annoying as some data records requires an appearance order. This was fixed in easyh5 https://github.com/fangq/easyh5/issues/1 Last but not the least, hdf5 is a general data storage format, like JSON and MessagePack, and it does not have internal data-structure vocabularies to serialize complex data structures. People will have to serialize those by themselves, and use non-standardized fields. For example, hdf5 does not have built-in complex numbers, people have been storing those in composite fields as My solution to the above issue is to adopt the JData specification I defined for JSON-based data storage, aiming for standardizing the vocabularies of serializing complex data structures. you can see my other related thoughts related to hdf5 in this BIDS thread: |
This is all very clear, thanks! Which types of data does the SNIRF data format need to store in HDF5 that the Matlab functions can't store easily? |
The SNIRF data is basically a struct if mapped to a matlab data structure. Unfortunately, matlab's
take a look at the loadh5/saveh5 code and you can see they are super compact (yet very general). |
Hello
Since this is working only with Matlab and not Octave, what is the advantage of this library over using the readily available HDF5 functions in Matlab?
https://www.mathworks.com/help/matlab/hdf5-files.html
I'm sorry if this is a silly question, I haven't looked at your code or examples at all...
I was just wondering about the use of this code in jsnirf, and questioning the necessity of many additional dependencies to Brainstorm if we want to reuse some of you code. Related with this PR: brainstorm-tools/brainstorm3#283
Thanks!
The text was updated successfully, but these errors were encountered: