Расширение имени файла | .hdf , .h4 , .hdf4 , .he2 , .h5 , .hdf5 ,.he5 |
---|---|
тип интернет-СМИ | приложение/x-hdf, приложение/x-hdf5 |
Магическое число | \211ХДФ\r\n\032\n |
Разработано | Группа HDF |
Последний релиз | 5-1.10.7 [1] 16 сентября 2020 |
Тип формата | Формат научных данных |
Открытый формат ? | да |
Веб-сайт | www |
Иерархический формат данных ( HDF ) — это набор форматов файлов ( HDF4 , HDF5 ), предназначенных для хранения и организации больших объемов данных. Первоначально разработанный в Национальном центре суперкомпьютерных приложений , он поддерживается The HDF Group, некоммерческой корпорацией, миссия которой заключается в обеспечении непрерывного развития технологий HDF5 и постоянной доступности данных, хранящихся в HDF.
В соответствии с этой целью библиотеки HDF и связанные с ними инструменты доступны для общего использования под либеральной лицензией, подобной BSD . HDF поддерживается многими коммерческими и некоммерческими программными платформами и языками программирования. Бесплатный дистрибутив HDF состоит из библиотеки, утилит командной строки, исходного кода набора тестов, интерфейса Java и средства просмотра HDF на основе Java (HDFView). [2]
Текущая версия HDF5 значительно отличается по дизайну и API от основной устаревшей версии HDF4.
Поиск переносимого формата научных данных, первоначально названного AEHOO (Всеобъемлющий иерархический объектно-ориентированный формат), начался в 1987 году Целевой группой по основам графики (GFTF) в Национальном центре суперкомпьютерных приложений (NCSA). Гранты NSF, полученные в 1990 и 1992 годах, были важны для проекта. Примерно в это же время НАСА исследовало 15 различных форматов файлов для использования в проекте Earth Observing System (EOS). После двухлетнего рассмотрения HDF была выбрана в качестве стандартной системы данных и информации. [3]
HDF4 — более старая версия формата, хотя она по-прежнему активно поддерживается The HDF Group. Он поддерживает множество различных моделей данных, включая многомерные массивы, растровые изображения и таблицы. Каждый из них определяет определенный тип совокупных данных и предоставляет API для чтения, записи и организации данных и метаданных. Разработчики или пользователи HDF могут добавлять новые модели данных.
HDF является самоописываемым, позволяя приложению интерпретировать структуру и содержимое файла без внешней информации. Один файл HDF может содержать набор связанных объектов, к которым можно получить доступ как к группе или как к отдельным объектам. Пользователи могут создавать свои собственные структуры группировки, называемые «vgroups».
Формат HDF4 имеет множество ограничений. [4] [5] В нем отсутствует четкая объектная модель, что затрудняет постоянную поддержку и улучшение. Поддержка множества различных стилей интерфейса (изображения, таблицы, массивы) приводит к сложному API. Поддержка метаданных зависит от используемого интерфейса; Объекты SD (Научный набор данных) поддерживают атрибуты с произвольными именами, в то время как другие типы поддерживают только предопределенные метаданные. Возможно, наиболее важно то, что использование 32-битных целых чисел со знаком для адресации ограничивает файлы HDF4 максимальным размером 2 ГБ, что неприемлемо для многих современных научных приложений.
Формат HDF5 предназначен для устранения некоторых ограничений библиотеки HDF4, а также для удовлетворения текущих и ожидаемых требований современных систем и приложений. В 2002 году он получил награду R&D 100 Award . [6]
HDF5 упрощает файловую структуру и включает только два основных типа объектов:
Это приводит к действительно иерархическому формату данных, подобному файловой системе. [ требуется разъяснение ] [ нужна цитата ] Фактически, ресурсы в файле HDF5 могут быть доступны с использованием POSIX - подобного синтаксиса /path/to/resource . Метаданные хранятся в виде определяемых пользователем именованных атрибутов, прикрепленных к группам и наборам данных. Затем можно создавать более сложные API-интерфейсы хранилища, представляющие изображения и таблицы, с использованием наборов данных, групп и атрибутов.
В дополнение к этим улучшениям в формате файлов, HDF5 включает в себя улучшенную систему типов и объекты пространства данных, которые представляют выборки по областям набора данных. API также является объектно-ориентированным в отношении наборов данных, групп, атрибутов, типов, пространств данных и списков свойств.
Последняя версия NetCDF , версия 4, основана на HDF5.
Поскольку он использует B-деревья для индексации табличных объектов, HDF5 хорошо работает с данными временных рядов , такими как ряды курсов акций, данные сетевого мониторинга и трехмерные метеорологические данные. Основная часть данных помещается в простые массивы (табличные объекты), к которым можно получить доступ гораздо быстрее, чем к строкам базы данных SQL , но доступ к B-дереву доступен для данных, не являющихся массивами. Механизм хранения данных HDF5 может быть проще и быстрее, чем звездообразная схема SQL . [ нужен пример ]
Критика HDF5 следует из его монолитной конструкции и длинной спецификации.