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}, задавая местоположение, область значений и значения, которые будут считаны из набора данных

  • запуск Массив на основе 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}, задавая местоположение, область значений и значения, которые будут считаны из набора данных

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

    Значение по умолчанию: 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 — Вектор символов или скаляр строки определение имени поля набора данных, которое будет считано из. Можно задать только одно имя поля для набора данных Сетки.

    область значений Двухэлементный массив, задающий минимальную и максимальную область значений для подмножества. Если 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}, задавая местоположение, область значений и значения, которые будут считаны из набора данных

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

    Значение по умолчанию: 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/BR2019ad/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/BR2019ad/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 = 3x1 cell array
    {1x10 int16}
    {1x10 int16}
    {1x10 int16}

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

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