Работа с файлами .h5 (HDF5), в которых хранятся данные о звуковой волне - C#

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте! уже неделю пытаюсь найти информацию о работе с файлами *.h5 (HDF5) в c#. Задача: имеется *.h5 - файл, в котором хранятся данные о звуковой волне. Необходимо написать приложение, которое открывает файл, считывает оттуда данные и сохраняет их для последующей обработки.
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);
        }
    }
}
А как добраться до самих данных? Если я правильно поняла, для этого нужно для начала знать datasetName. Можно ли его как-то получить? Может быть, существует какая-нибудь документация типа MSDN? Буду очень признательна за помощь

Решение задачи: «Работа с файлами .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);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы