Подтвердить что ты не робот

HDF5 в Java: В чем разница между API-интерфейсом availabe?

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

Самое главное, я хотел бы знать:

  • Какова часть встроенного API, любые ограничения, которые не существуют в собственном API?

  • Если есть поддержка "Parallel HDF5"?

  • Как только мои 3D-данные загружаются, я получаю "служебные служебные вызовы", каждый раз, когда я получаю доступ к одному элементу в трехмерном массиве? То есть, данные фактически превращается в объекты Java или остается в "native/JNI" память "?

  • Есть ли какие-либо проблемы с устойчивостью реализации, поскольку сбой в собственном коде обычно занимает весь JVM вниз?

4b9b3361

Ответ 1

HDF Java следует многоуровневому подходу:

  • JHI5 - низкоуровневые обертки JNI: очень гибкие, но также довольно утомительные для использования.

  • Java HDF object package - высокоуровневый интерфейс на основе JHI5.

  • HDFView - приложение для просмотра на основе Java на основе пакета объектов Java HDF.

JHDF5 обеспечивает высокоуровневое построение интерфейса на уровне JHI5, который обеспечивает большую часть функциональности HDF5 для Java. API имеет неглубокую кривую обучения и скрывает большую часть работы по ведению домашнего хозяйства от разработчика. Вы можете запустить пакет объектов Java HDF (и HDFView) на интерфейсе JHI5, который является частью JHDF5, поэтому оба API могут сосуществовать в одной программе Java.

Вечная мерзлота и Нуян кажутся далекими от завершения в этот момент, и Вечная мерзлота не видела много активности в последнее время, поэтому они, похоже, не являются первым выбором в этот момент времени.

Я думаю, что хороший путь для вас - это посмотреть как пакет объектов Java HDF5, так и JHDF5, решить, какой из двух API лучше всего подходит вашим потребностям и идти с ним.

Отказ от ответственности: я работал над интерфейсом JHDF5, поэтому я могу быть предвзятым.

Ответ 2

Просто хотел указать на другой вариант, jhdf.io - это чистая библиотека Java для HDF5. В настоящее время он доступен только для чтения и не охватывает полную спецификацию HDF5. Однако он может открывать и читать много файлов HDF5, и я надеюсь улучшить его с течением времени. Будучи чистой Java, гораздо проще интегрироваться в другие проекты Java, чем другие варианты, и избегать проблем, связанных с JNI.

Отказ от ответственности: я являюсь автором библиотеки jhdf.