Поиск набора данных HDF5

метод asList в java.util.Arrays позволяет хорошую комбинацию varargs, общих методов и автоупаковки:

List ints = Arrays.asList(1,2,3);

14
задан Community 23 May 2017 в 11:45
поделиться

2 ответа

Я думаю, что ответ "не напрямую".

Вот некоторые из способов, как я думаю, вы могли бы достичь функциональности.

Использовать группы:

Для хранения данных можно использовать иерархию групп в виде Radix Tree. Однако это, вероятно, не слишком хорошо масштабируется.

Использовать наборы индексных данных:

HDF имеет тип ссылки, который может быть использован для связи с основной таблицей из отдельных индексных таблиц. После записи основных данных можно использовать другие наборы данных, отсортированные по другим ключам со ссылками. Например:

MainDataset (sorted on identifier)
0: { A, "C", 2 }
1: { B, "B", 1 }
2: { C, "A", 3 }

StringIndex
0: { "A", Reference ("MainDataset", 2) }
1: { "B", Reference ("MainDataset", 1) }
2: { "C", Reference ("MainDataset", 0) }

IntIndex
0: { 1, Reference ("MainDataset", 1) }
1: { 2, Reference ("MainDataset", 0) }
2: { 3, Reference ("MainDataset", 2) }

Для того, чтобы использовать вышеперечисленное, необходимо записать двоичный поиск при поиске по полю в индексных таблицах.

В памяти Index:

В зависимости от размера набора данных может быть так же просто использовать индекс в памяти, который читается/записывается в собственный набор данных, используя что-то вроде "boost::serialize".

HDF5-FastQuery:

Эта бумага (а также эта страница ) описывает использование растровых индексов для выполнения сложных запросов по набору данных HDF. Я не пробовал этого.

8
ответ дан 1 December 2019 в 14:11
поделиться

Что вы подразумеваете под идентификатором ? Если вы имеете в виду атрибут , проверьте в этом руководстве . В C:

status = H5Aread(attr_id, mem_type_id, buf);
status = H5Awrite(attr_id, mem_type_id, buf);
0
ответ дан 1 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: