exponenta event banner

Импорт файлов 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=6×6 cell array
  Columns 1 through 5

    {'Time'            }    {[    1 1]}    {[24]}    {'epoch' }    {'T/'    }
    {'Longitude'       }    {[    2 2]}    {[ 1]}    {'int8'  }    {'F/FT'  }
    {'Latitude'        }    {[    2 2]}    {[ 1]}    {'int8'  }    {'F/TF'  }
    {'Data'            }    {[  2 2 4]}    {[ 1]}    {'double'}    {'T/TTT' }
    {'multidimensional'}    {[2 2 3 4]}    {[ 1]}    {'uint8' }    {'T/TTTT'}
    {'Temperature'     }    {[    3 2]}    {[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             23904  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               216  cell               

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

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

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

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

whos data*
  Name                Size            Bytes  Class    Attributes

  data               24x6             23904  cell               
  data_combined       1x6              8080  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             23904  cell               
  data_combined       1x6              8080  cell               
  data_datenums      24x6             19872  cell               

См. также

|

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