Работа с файлами .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);
}