exponenta event banner

Импорт файлов 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 функция. Эта функция соответствует подпрограмме API SD, SDstart.

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

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

Получить сведения об HDF4 файле

Получение количества наборов данных и глобальных атрибутов в файле с помощью matlab.io.hdf4.sd.fileInfo функция. Эта функция соответствует подпрограмме API SD, 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'

Выбор наборов данных для импорта

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

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

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

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

Получение информации о наборе данных, идентифицированном sdsID с использованием matlab.io.hdf4.sd.getInfo функция. Эта функция соответствует подпрограмме API SD, 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 функция, которая соответствует подпрограмме API SD, SDreaddata. start input - вектор значений индекса, указывающий местоположение в наборе данных, с которого необходимо начать считывание данных. 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 функция. Эта функция соответствует подпрограмме API SD, SDendaccess. Перед закрытием файла необходимо закрыть доступ ко всем наборам данных в и HDF4 файле.

sd.endAccess(sdsID)

Закрыть файл HDF4

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

sd.close(sdID)

См. также

| | | | |

Связанные темы