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

Этот пример показывает, как использовать высокоуровневые функции MATLAB®, чтобы импортировать демонстрационный CDF-файл, example.cdf. Высокоуровневые функции предоставляют более простой интерфейс доступу к CDF-файлам.

Получение информации о содержимом CDF-файла

Получите информацию о содержимом CDF-файла с помощью функции cdfinfo. Поскольку cdfinfo создает временные файлы, гарантируйте, что ваша текущая папка перезаписываема перед использованием функции.

info = cdfinfo('example.cdf')
info = struct with fields:
              Filename: 'example.cdf'
           FileModDate: '10-May-2010 21:35:01'
              FileSize: 1310
                Format: 'CDF'
         FormatVersion: '2.7.0'
          FileSettings: [1x1 struct]
              Subfiles: {}
             Variables: {6x6 cell}
      GlobalAttributes: [1x1 struct]
    VariableAttributes: [1x1 struct]

cdfinfo возвращает структуру, содержащую общую информацию о файле и подробную информацию о переменных и атрибутах в файле. В этом примере поле Variables указывает на количество переменных в файле.

Просмотрите содержимое поля Variables.

vars = info.Variables
vars = 6x6 cell array
  Columns 1 through 5

    {'Time'            }    {1x2 double}    {[24]}    {'epoch' }    {'T/'    }
    {'Longitude'       }    {1x2 double}    {[ 1]}    {'int8'  }    {'F/FT'  }
    {'Latitude'        }    {1x2 double}    {[ 1]}    {'int8'  }    {'F/TF'  }
    {'Data'            }    {1x3 double}    {[ 1]}    {'double'}    {'T/TTT' }
    {'multidimensional'}    {1x4 double}    {[ 1]}    {'uint8' }    {'T/TTTT'}
    {'Temperature'     }    {1x2 double}    {[10]}    {'int16' }    {'T/TT'  }

  Column 6

    {'Full'}
    {'Full'}
    {'Full'}
    {'Full'}
    {'Full'}
    {'Full'}

Первая переменная, Time, состоит из 24 записей, содержащих данные эпохи CDF. Следующие две переменные, Longitude и Latitude, у каждого есть только одна связанная запись, содержащая данные int8.

Считывайте все данные от CDF-файла

Используйте функцию cdfread, чтобы считать все данные в CDF-файле.

data = cdfread('example.cdf');
whos data
  Name       Size            Bytes  Class    Attributes

  data      24x6             25248  cell               

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

Чтение данных из определенных переменных

Только для чтения Longitude и переменные Latitude от CDF-файла. Чтобы считать данные, сопоставленные с конкретными переменными, используйте параметр 'Variable'. Задайте имена переменных в массиве ячеек из символьных векторов. Имена переменных являются чувствительными к регистру.

var_long_lat = cdfread('example.cdf','Variable',{'Longitude','Latitude'});
whos var_long_lat
  Name              Size            Bytes  Class    Attributes

  var_long_lat      1x2               232  cell               

Объединение записей, чтобы ускорить операции чтения

По умолчанию cdfread создает массив ячеек с отдельным элементом для каждой переменной и каждой записи в каждой переменной, дополняя размерность записей, чтобы создать прямоугольный массив ячеек. При работе с большими наборами данных можно ускорить операции чтения путем определения параметра 'CombineRecords', чтобы уменьшить число элементов в массиве ячеек, который возвращает cdfread. Когда вы устанавливаете параметр 'CombineRecords' на true, функция cdfread создает отдельный элемент для каждой переменной, но экономит время путем помещения всех записей, сопоставленных с переменной в элементе массива отдельной ячейки.

data_combined = cdfread('example.cdf','CombineRecords',true);

Сравните размеры массивов ячеек, возвращенных cdfread.

whos data*
  Name                Size            Bytes  Class    Attributes

  data               24x6             25248  cell               
  data_combined       1x6              8320  cell               

Чтение всех данных из файла в качестве примера без параметра CombineRecords возвращает 24 6 массив ячеек, где столбцы представляют переменные, и строки представляют записи для каждой переменной. Чтение данных из того же файла с набором 'CombineRecords' к true возвращает 1 6 массив ячеек.

При объединении записей, размерностей данных в изменении ячеек. В этом примере переменная Time имеет 24 записи, каждая из которых является скалярным значением. В массиве ячеек data_combined объединенный элемент содержит 24 1 вектор значений.

Чтение значений эпохи CDF как последовательных чисел даты

По умолчанию cdfread создает объект MATLAB cdfepoch для каждого значения эпохи CDF в файле. Ускорьте операции чтения путем установки аргумента в виде пар "имя-значение" 'ConvertEpochToDatenum' true, чтобы возвратить значения эпохи CDF как MATLAB последовательные числа даты.

data_datenums = cdfread('example.cdf','ConvertEpochToDatenum',true);
whos data*
  Name                Size            Bytes  Class    Attributes

  data               24x6             25248  cell               
  data_combined       1x6              8320  cell               
  data_datenums      24x6             21024  cell               

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

|

Внешние веб-сайты

Была ли эта тема полезной?