Импорт файлов HDF4 Используя низкоуровневые функции

Этот пример показывает, как считать данные из Набора научных данных в файле HDF4, с помощью функций в пакете matlat.io.hdf4.sd. В терминологии HDF4 числовые массивы, сохраненные в файлах HDF4, называются наборами данных.

Добавление пакета к списку импорта

Добавьте путь matlab.io.hdf4.* к списку импорта.

import matlab.io.hdf4.*

Последующие вызовы функций в пакете matlat.io.hdf4.sd должны только быть снабженными префиксом sd, а не целый путь к пакету.

Открытие файла HDF4

Откройте пример файл HDF4, sd.hdf, и задайте доступ для чтения, с помощью функции matlab.io.hdf4.sd.start. Эта функция соответствует стандартной программе SD API, SDstart.

sdID = sd.start('sd.hdf','read');

sd.start возвращает идентификатор HDF4 SD файла, sdID.

Получение информации о файле HDF4

Получите количество наборов данных и глобальных атрибутов в файле, с помощью функции matlab.io.hdf4.sd.fileInfo. Эта функция соответствует стандартной программе SD API, SDfileinfo.

[ndatasets,ngatts] = sd.fileInfo(sdID)
ndatasets = 4
ngatts = 1

Файл, sd.hdf, содержит четыре набора данных и один глобальный атрибут,

Получение атрибутов от файла HDF4

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

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

attr = sd.readAttr(sdID,0)
attr = 
'02-Sep-2010 11:13:16'

Выбор Data Sets to Import

Определите индекс набора данных под названием temperature. Затем получите идентификатор того набора данных.

idx = sd.nameToIndex(sdID,'temperature');
sdsID = sd.select(sdID,idx);

sd.select возвращает идентификатор HDF4 SD набора данных, sdsID.

Получение информации о наборе данных

Получите информацию о наборе данных, идентифицированном sdsID с помощью функции matlab.io.hdf4.sd.getInfo. Эта функция соответствует стандартной программе SD API, SDgetinfo.

[name,dims,datatype,nattrs] = sd.getInfo(sdsID)
name = 
'temperature'
dims = 1×2

    20    10

datatype = 
'double'
nattrs = 11

sd.getInfo возвращает информацию об имени, размере, типе данных и количестве атрибутов набора данных.

Чтение целого набора данных

Считайте целое содержимое набора данных, заданного по условию идентификатор набора, sdsID.

data = sd.readData(sdsID);

Чтение фрагмента набора данных

Читайте 2 4 фрагмент набора данных, начинающего с первого столбца во второй строке. Используйте функцию matlab.io.hdf4.sd.readData, которая соответствует стандартной программе SD API, SDreaddata. Вход start является вектором индексных значений, задающих местоположение в наборе данных, где вы хотите начать считывать данные. Вход count является вектором, задающим число элементов, чтобы читать по каждому измерению набора данных.

start = [0 1];
count = [2 4];
data2 = sd.readData(sdsID,start,count)
data2 = 2×4

    21    41    61    81
    22    42    62    82

Закрытие набора данных HDF4

Закройте доступ к набору данных, с помощью функции matlab.io.hdf4.sd.endAccess. Эта функция соответствует стандартной программе SD API, SDendaccess. Необходимо закрыть доступ ко всем наборам данных в и файлу HDF4 прежде, чем закрыть файл.

sd.endAccess(sdsID)

Закрытие файла HDF4

Закройте файл HDF4 с помощью функции matlab.io.hdf4.sd.close. Эта функция соответствует стандартной программе SD API, SDend.

sd.close(sdID)

Смотрите также

| | | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте