hdfread

Считайте данные из файла HDF-EOS или HDF4

Синтаксис

data = hdfread(filename, datasetname)
data = hdfread(hinfo)
data = hdfread(...,param,value,...)
data = hdfread(filename,EOSname,param,value,...)
[data,map] = hdfread(...)

Описание

data = hdfread(filename, datasetname) возвращает все данные в наборе данных, заданном datasetname от HDF4 или файла HDF-EOS, заданного filename. Чтобы определить имя набора данных в файле HDF4, используйте hdfinfo функция.

Примечание

hdfread может использоваться на файлах Версии 4.x HDF или файлах HDF-EOS Версии 2.x. Чтобы считать данные из файла HDF5, использовать h5read.

data = hdfread(hinfo) возвращает все данные в наборе данных, заданном structurehinfo, возвращенный hdfinfo функция. Задайте поле в hinfo структура, которая относится к конкретному типу набора данных и использует индексацию, чтобы задать который набор данных, когда существует больше чем один. Смотрите Задают набор данных, чтобы читать для получения дополнительной информации.

data = hdfread(...,param,value,...) возвращает подмножества данных согласно заданному параметру и парам значения. См. приведенные ниже таблицы, чтобы найти допустимые параметры и значения для различных типов наборов данных.

data = hdfread(filename,EOSname,param,value,...) подмножества поле данных от точки HDF-EOS, сетки или swath заданы EOSname.

[data,map] = hdfread(...) возвращает изображение data и палитра map для 8-битного растрового изображения.

Параметры подмножества

Следующие таблицы показывают параметры подмножества, которые могут использоваться с hdfread функция для определенных типов данных HDF4. Эти типы данных

Отметьте следующее:

  • Если параметр требует нескольких значений, используйте массив ячеек, чтобы сохранить значения. Например, 'Index' параметр требует трех значений: start, stride, и edge. Заключите эти значения в фигурные скобки как массив ячеек.

    hdfread(..., 'Index', {start,stride,edge})
  • Все значения, которые являются индексами, на основе 1.


Параметры подмножества для наборов данных научных данных (SD) HDF

Когда вы работаете с файлами SD HDF, hdfread поддерживает параметры, перечисленные в этой таблице.

Параметр

Описание

'Index'

Трехэлементный массив ячеек, {start,stride,edge}, определение местоположения, области значений и значений, которые будут считаны из набора данных

  • start — Массив на основе 1, задающий положение в файле, чтобы начать читать

    Значение по умолчанию: 1, запустите в первом элементе каждой размерности. Заданные значения не должны превышать размер никакой размерности набора данных.

  • stride — Массив на основе 1, задающий интервал между значениями, чтобы читать

    Значение по умолчанию: 1, считайте каждый элемент набора данных.

  • edge — Массив на основе 1, задающий длину каждой размерности, чтобы читать

    Значение по умолчанию: массив, содержащий длины соответствующих размерностей

Например, этот код читает набор данных Example SDS из файла HDF example.hdf. 'Index' параметр задает тот hdfread начните считывать данные в начале каждой размерности, читайте до конца каждой размерности, но только считайте любое значение данных в первой размерности.

data = hdfread('example.hdf','Example SDS','Index',{[],[2 1],[]})

Параметры подмножества для наборов HDF Vdata

Когда вы работаете с HDF Vdata файлы, hdfread поддержки эти параметры.

Параметр

Описание

'Fields'

Вектор символов или строковый скаляр, задающий имя поля, которое будет считано. При определении нескольких имен полей используйте массив ячеек из символьных векторов или массив строк.

'FirstRecord'

Номер на основе 1, задающий запись, из которой можно начать читать

'NumRecords'

Номер, задающий общее количество записей в чтение

Например, этот код читает, Vdata устанавливают Example Vdata из файла HDF example.hdf.

data = hdfread('example.hdf','Example Vdata','FirstRecord', 2,'NumRecords', 5)

Параметры подмножества для данных сетки HDF-EOS

Когда вы работаете с данными о сетке HDF-EOS, hdfread поддержки три типа параметров:

  • Обязательные параметры

  • Дополнительные параметры

  • Взаимоисключающие параметры — можно только задать один из этих параметров в вызове hdfread, и вы не можете использовать эти параметры в сочетании ни с каким дополнительным параметром.

    Параметр

    Описание

    Обязательный параметр

    'Fields'

    Вектор символов или строковый скаляр, задающий поле, которое будет считано. Можно задать только одно имя поля для набора данных Сетки.

    Взаимоисключающие дополнительные параметры

    'Index'

    Трехэлементный массив ячеек, {start,stride,edge}, определение местоположения, области значений и значений, которые будут считаны из набора данных

    start — Массив, задающий положение в файле, чтобы начать читать

    Значение по умолчанию: 1, запустите в первом элементе каждой размерности. Значения не должны превышать размер никакой размерности набора данных.

    stride — Массив, задающий интервал между значениями, чтобы читать

    Значение по умолчанию: 1, считайте каждый элемент набора данных.

    edge — Массив, задающий длину каждой размерности, чтобы читать

    Значение по умолчанию: массив, содержащий длины соответствующих размерностей

    'Interpolate'

    Двухэлементный массив ячеек, {longitude,latitude}, определение точек долготы и широты, которые задают область для билинейной интерполяции. Каждым элементом является вектор N-длины определение координаты широты и долгота.

    'Pixels'

    Двухэлементный массив ячеек, {longitude,latitude}, определение координат долготы и широты, которые задают область. Каждым элементом является вектор N-длины определение координаты широты и долгота. Эта область преобразована в пиксельные строки и столбцы с источником в левом верхнем углу сетки.

    Примечание: Это - пиксель, эквивалентный из чтения 'Box' область.

    'Tile'

    Вектор, задающий координаты мозаики, чтобы читать, для файлов Сетки HDF-EOS та поддержка мозаики

    Дополнительные параметры

    'Box'

    Двухэлементный массив ячеек, {longitude,latitude}, определение координат долготы и широты, которые задают область. longitude и latitude каждый двухэлементные векторы, задающие координаты широты и долгота.

    'Time'

    Двухэлементный массив ячеек, [start stop], где start и stop числа, которые задают запуск и конечную точку сроком на время

    'Vertical'

    Двухэлементный массив ячеек, {dimension, range}

    dimension — Вектор символов или строковый скаляр, задающий имя поля набора данных, которое будет считано из. Можно задать только одно имя поля для набора данных Сетки.

    range — Двухэлементный массив, указывающий минимальный и максимальный диапазон для подмножества. Если dimension имя размерности, затем range указывает диапазон элементов, чтобы извлечь. Если dimension имя поля, затем range указывает диапазон значений, чтобы извлечь.

    'Vertical' подмножество может использоваться одно или в сочетании с 'Box' или 'Time'. К подмножеству область по нескольким измерениям вертикальное подмножество может использоваться до восьми раз в одном вызове hdfread.

Например,

data = hdfread('grid.hdf','PolarGrid','Fields','ice_temp','Index', {[5 10],[],[15 20]})

Параметры подмножества для данных точки HDF-EOS

Когда вы работаете с данными о Точке HDF-EOS, hdfread имеет два обязательных параметра и три дополнительных параметра.

Параметр

Описание

Обязательные параметры

'Fields'

Вектор символов или строковый скаляр, содержащий имя поля набора данных, которое будет считано. Для нескольких имен полей используйте массив ячеек из символьных векторов или массив строк.

'Level'

Номер на основе 1, задающий, который уровень читать из в наборе данных Точки HDF-EOS

Взаимоисключающие дополнительные параметры

'Box'

Двухэлементный массив ячеек, {longitude,latitude}, определение координат долготы и широты, которые задают область. longitude и latitude каждый двухэлементные векторы, задающие координаты широты и долгота.

'RecordNumbers'

Вектор, задающий номера записи, чтобы читать

'Time'

Двухэлементный массив ячеек, [start stop], где start и stop числа, которые задают запуск и конечную точку сроком на время

Например,

hdfread(...,'Fields',{field1, field2},...
            'Level',level,'RecordNumbers',[1:50, 200:250])

Параметры подмножества для данных Swath HDF-EOS

Когда вы работаете с данными о Swath HDF-EOS, hdfread поддержки три типа параметров:

  • Обязательные параметры

  • Дополнительные параметры

  • Взаимоисключающий

Можно только использовать один из взаимоисключающих параметров в вызове hdfread, и вы не можете использовать эти параметры в сочетании ни с каким дополнительным параметром.

Параметр

Описание

Обязательный параметр

'Fields'

Вектор символов или строковый скаляр, содержащий имя поля набора данных, которое будет считано. Можно задать только одно имя поля для набора данных Swath.

Взаимоисключающие дополнительные параметры

'Index'

Трехэлементный массив ячеек, {start,stride,edge}, определение местоположения, области значений и значений, которые будут считаны из набора данных

  • start — Массив, задающий положение в файле, чтобы начать читать

    Значение по умолчанию: 1, запустите в первом элементе каждой размерности. Значения не должны превышать размер никакой размерности набора данных.

  • stride — Массив, задающий интервал между значениями, чтобы читать

    Значение по умолчанию: 1, считайте каждый элемент набора данных.

  • edge — Массив, задающий длину каждой размерности, чтобы читать

    Значение по умолчанию: массив, содержащий длины соответствующих размерностей

'Time'

Трехэлементный массив ячеек, {start, stop, mode}, где start и stop задайте начало и конечную точку сроком на время и mode вектор символов или строковый скаляр, который задает критерий включения перекрестной дорожки в области. Перекрестная дорожка в области, если какое-либо из этих условий соблюдают:

  • Его средняя точка в поле (mode='midpoint').

  • Любая конечная точка в поле (mode='endpoint').

Дополнительные параметры

'Box'

Трехэлементный массив ячеек, {longitude, latitude, mode} определение координат долготы и широты, которые задают область. longitude и latitude двухэлементные векторы, которые задают координаты долготы и широты. mode вектор символов или строковый скаляр, который задает критерий включения перекрестной дорожки в области. Перекрестная дорожка в области, если какое-либо из этих условий соблюдают:

  • Его средняя точка в поле (mode='midpoint').

  • Любая конечная точка в поле (mode='endpoint').

  • Любая точка в поле (mode='anypoint').

'Vertical'

Двухэлементный массив ячеек, {dimension, range}

  • dimension вектор символов или строковый скаляр, задающий или имя размерности или имя поля к подмножеству данные.

  • range двухэлементный вектор, указывающий минимальный и максимальный диапазон для подмножества. Если dimension имя размерности, затем range указывает диапазон элементов, чтобы извлечь. Если dimension имя поля, затем range указывает диапазон значений, чтобы извлечь.

    'Vertical' подмножество может использоваться одно или в сочетании с 'Box' или 'Time'. К подмножеству область по нескольким измерениям вертикальное подмножество может использоваться до восьми раз в одном вызове hdfread.

Например,

hdfread('swath.hdf', 'Example Swath', 'Fields', 'Temperature', ...
         'Time', {5000, 6000, 'midpoint'})

Примеры

свернуть все

Задайте имя файла HDF и имя набора данных. Этот пример читает набор данных под названием temperature из демонстрационного файла HDF.

data = hdfread('sd.hdf','temperature');

Вызовите hdfinfo получать информацию о содержимом файла HDF.

fileinfo = hdfinfo('sd.hdf')
fileinfo = struct with fields:
      Filename: '/mathworks/devel/bat/BR2020bd/build/matlab/toolbox/matlab/imagesci/sd.hdf'
    Attributes: [1x1 struct]
           SDS: [1x2 struct]
         Vdata: [1x1 struct]

Извлеките структуру, содержащую информацию о конкретном наборе данных, который вы хотите импортировать из данных, возвращенных hdfinfo. Этот пример использует структуру в SDS поле, чтобы получить набор научных данных.

sds_info = fileinfo.SDS(2)
sds_info = struct with fields:
       Filename: '/mathworks/devel/bat/BR2020bd/build/matlab/toolbox/matlab/imagesci/sd.hdf'
           Type: 'Scientific Data Set'
           Name: 'temperature'
           Rank: 2
       DataType: 'double'
     Attributes: [1x11 struct]
           Dims: [2x1 struct]
          Label: {}
    Description: {}
          Index: 1

Передайте эту структуру hdfread импортировать данные в наборе данных.

data = hdfread(sds_info);

Считайте данные из глобального поля сетки HDF-EOS, TbOceanRain, в файле в качестве примера, example.hdf.

data1 = hdfread('example.hdf','MonthlyRain','Fields','TbOceanRain');

Считайте данные для северного полушария для того же поля. Используйте Box параметр, чтобы задать долготу и широту координирует для той области.

data2 = hdfread('example.hdf','MonthlyRain', ...
'Fields','TbOceanRain', ...
'Box', {[0 360],[0 90]});

Получите информацию о файле в качестве примера, example.hdf.

fileinfo = hdfinfo('example.hdf');

Получите информацию о Наборе научных данных в example.hdf.

data_set_info = fileinfo.SDS;

Проверяйте размер набора данных.

data_set_info.Dims.Size
ans = 16
ans = 5

Считайте подмножество данных в наборе данных с помощью 'index' параметр с hdfread. Этот пример задает начальное значение индекса [3 3], интервал 1 между значениями ([] значение значения по умолчанию 1) и длины 10 строк и 2 столбцов.

data = hdfread(data_set_info,'Index',{[3 3],[],[10 2]});
data(:,1)
ans = 10x1 int16 column vector

    7
    8
    9
   10
   11
   12
   13
   14
   15
   16

data(:,2)
ans = 10x1 int16 column vector

    8
    9
   10
   11
   12
   13
   14
   15
   16
   17

Используйте Vdata поле от информации, возвращенной hdfinfo считать три поля данных, Idx, Temp, и Dewpt.

s = hdfinfo('example.hdf'); 
data = hdfread(s.Vdata(1),'Fields',{'Idx','Temp','Dewpt'})
data=3×1 cell array
    {1x10 int16}
    {1x10 int16}
    {1x10 int16}

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

Представлено до R2006a