Работа с файлами .h5 (HDF5), в которых хранятся данные о звуковой волне - C#
Формулировка задачи:
Всем здравствуйте!
уже неделю пытаюсь найти информацию о работе с файлами *.h5 (HDF5) в c#.
Задача: имеется *.h5 - файл, в котором хранятся данные о звуковой волне. Необходимо написать приложение, которое открывает файл, считывает оттуда данные и сохраняет их для последующей обработки.
А как добраться до самих данных? Если я правильно поняла, для этого нужно для начала знать datasetName. Можно ли его как-то получить? Может быть, существует какая-нибудь документация типа MSDN?
Буду очень признательна за помощь
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using HDF5DotNet; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { H5.Open(); H5FileId file = H5F.open("TEST_SINUS.h5", H5F.OpenMode.ACC_RDONLY); H5F.close(file); } } }
Решение задачи: «Работа с файлами .h5 (HDF5), в которых хранятся данные о звуковой волне»
textual
Листинг программы
public void myMethod() { H5FileId file = H5F.open("Tabelle.h5", H5F.OpenMode.ACC_RDONLY); H5GroupId root = H5G.open(file, "/"); long cntRoot = H5G.getNumObjects(root); string[] elemRoot = new string[cntRoot]; for (int i = 0; i < cntRoot; i++) { string obj_name = H5L.getNameByIndex(root, ".", H5IndexType.NAME, H5IterationOrder.NATIVE, i); H5ObjectInfo info = H5O.getInfoByIndex(file, ".", H5IndexType.NAME, H5IterationOrder.NATIVE, i); string type = info.objectType.ToString(); string s = obj_name + " - " + type; elemRoot[i] = s; Console.WriteLine(s); if (info.objectType.Equals(H5ObjectType.GROUP)) { H5GroupId gr = H5G.open(root, obj_name); long cntGroup = H5G.getNumObjects(gr); string[] elemGroup = new string[cntGroup]; for (int j = 0; j < cntGroup; j++) { string obj_name1 = H5L.getNameByIndex(gr, ".", H5IndexType.NAME, H5IterationOrder.NATIVE, j); H5ObjectInfo inf = H5O.getInfoByIndex(gr, ".", H5IndexType.NAME, H5IterationOrder.NATIVE, j); string t = inf.objectType.ToString(); string s1 = obj_name1 + " - " + t; elemGroup[j] = s1; } foreach (string k in elemGroup) { Console.WriteLine("->" + k); } } } H5G.close(root); H5F.close(file); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д