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

Этот пример показывает, как использовать низкоуровневые функции, чтобы считать данные из CDF-файла. Низкий уровень MATLAB® функции CDF соответствует стандартным программам в библиотеке CDF C API. Чтобы использовать низкоуровневые функции CDF MATLAB эффективно, необходимо быть знакомы с интерфейсом CDF C.

Открытый CDF-файл

Откройте демонстрационный CDF-файл, example.cdf.

cdfid = cdflib.open('example.cdf');

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

Используйте cdflib.inquire, чтобы получить информацию о количестве переменных в файле, количестве глобальных атрибутов и количестве атрибутов с переменным осциллографом.

info = cdflib.inquire(cdfid)
info = struct with fields:
     encoding: 'IBMPC_ENCODING'
     majority: 'ROW_MAJOR'
       maxRec: 23
      numVars: 6
    numvAttrs: 1
    numgAttrs: 3

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

Используйте cdflib.inqurieVar, чтобы получить информацию об отдельных переменных в файле. Числа Идентификатора переменной запускаются в нуле.

info  = cdflib.inquireVar(cdfid,0)
info = struct with fields:
           name: 'Time'
       datatype: 'cdf_epoch'
    numElements: 1
           dims: []
    recVariance: 1
    dimVariance: []

info  = cdflib.inquireVar(cdfid,1)
info = struct with fields:
           name: 'Longitude'
       datatype: 'cdf_int1'
    numElements: 1
           dims: [2 2]
    recVariance: 0
    dimVariance: [1 0]

Чтение переменных данных в рабочую область

Считайте данные в переменной в MATLAB workspace. Первая переменная содержит временные стоимости Эпохи CDF. Низкоуровневый интерфейс возвращает их как значения double.

data_time = cdflib.getVarRecordData(cdfid,0,0)
data_time = 6.3146e+13

Преобразуйте временную стоимость в вектор даты.

timeVec = cdflib.epochBreakdown(data_time)
timeVec = 7×1

        2001
           1
           1
           0
           0
           0
           0

Чтение глобального атрибута из файла

Определите, какие атрибуты в CDF-файле являются глобальной переменной.

info = cdflib.inquireAttr(cdfid,0)
info = struct with fields:
         name: 'SampleAttribute'
        scope: 'GLOBAL_SCOPE'
    maxgEntry: 4
     maxEntry: -1

Считайте значение атрибута. Необходимо использовать функцию cdflib.getAttrgEntry для глобальных атрибутов.

value = cdflib.getAttrgEntry(cdfid,0,0)
value = 
'This is a sample entry.'

Закрытие CDF-файла

Используйте cdflib.close, чтобы закрыть CDF-файл.

cdflib.close(cdfid);

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

|

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

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