Использую ли я HDF5DotNet правильный способ найти набор данных в группе в файле HDF5 в Windows 10?
(Я новичок в HDF5)
Моя проблема в том, что он не находит набор данных объекта "xyz" в группе "XY", хотя он находит группу объектов "XY".
C#.NET в Windows 10 64-разрядная.
Код...………
static ObjectInfo info;
static H5FileId fileId;
static long[] dims ;
static H5GroupId groupId;
public static void test_read( string HDF5_path)
{
const int RANK = 2;
try
{
dims = new long[RANK];
// Open everything:
var HDF5_filename = "heatmapB.h5";
var test_pathname = HDF5_path + HDF5_filename;
fileId = H5F.open( test_pathname, H5F.OpenMode.ACC_RDONLY); // OPEN HDF5 FILE. WORKS OK.
// Open the group...
groupId = H5G.open( fileId, "/XY"); // SELECT GROUP "XY". WORKS OK.
// Show datasets:
dump_HDF5_file( "xyz" );
. . .
public static void dump_HDF5_file( string object_name )
{
try
{
info = H5G.getObjectInfo( fileId, object_name, true); // Generates ERROR : "Failed to get info for name "xyz" in object 1000001" <<<<<<<<<<<<<<
Console.WriteLine("cSharpGroup header size is {0}", info.headerSize);
Console.WriteLine("cSharpGroup nlinks is {0}", info.nHardLinks);
Console.WriteLine("cSharpGroup fileno is {0} {1}", info.fileNumber[0], info.fileNumber[1]);
Console.WriteLine("cSharpGroup objno is {0} {1}", info.objectNumber[0], info.objectNumber[1]);
Console.WriteLine("cSharpGroup type is {0}", info.objectType);
Console.WriteLine("cSharpGroup modificationTime is {0}", info.modificationTime );
}
catch (HDFException e)
{
Console.WriteLine(e.Message); ////////////// ERROR IS: "Failed to get info for name "xyz" in object 1000001" <<<<<<<<<<<<<<
}
}
1 ответ
Проблема заключалась в том, что файл HDF5 был написан неправильно. Решение было для парня, пишущего файл с Джулией (язык программирования), чтобы проверить его, используя Python, читая его обратно, чтобы убедиться, что это ожидаемая структура HDF5.
Теперь я могу читать его с HDF5. Не все в порядке.