hdfpt

Интерфейс с объектом HDF-EOS Point

Синтаксис

[out1,...,outN] = hdfpt(funcstr,input1,...,inputN)

Описание

hdfpt является MATLAB® шлюз к функциям Point в библиотеке HDF-EOS C, которая разрабатывается и поддерживается EOSDIS (Earth Observing System Data and Information System). Набор Точки данных содержит серию записей данных, взятых в (возможно) нерегулярных временных интервалах и в разбросанных географических местоположениях. Каждая запись данных состоит из набора из одного или нескольких значений данных, представляющих состояние точки времени и/или пространства.

[out1,...,outN] = hdfpt(funcstr,input1,...,inputN) возвращает один или несколько выходы, соответствующих функции Point в библиотеке HDF-EOS, заданной functstr.

Существует взаимное соответствие между функциями PT в библиотеке HDF-EOS C и допустимыми значениями для funcstr. Для примера, hdfpt('detach',point_id) соответствует вызову библиотеки C PTdetach(point_id).

Модель программирования

Модель программирования для доступа к набору данных точки через hdfpt является следующим:

  1. Откройте файл и инициализируйте интерфейс PT, получив идентификатор файла из имени файла.

  2. Откройте или создайте набор данных точки путем получения идентификатора точки из имени точки.

  3. Выполните требуемые операции на наборе данных.

  4. Закройте набор данных точки путем размещения идентификатора точки.

  5. Завершает доступ точки к файлу путем удаления идентификатора файла.

Для доступа к одному набору данных о точках, который уже существует в файле HDF-EOS, используйте следующие команды MATLAB:

fileid = hdfpt('open',filename,access);
pointid = hdfpt('attach',fileid,pointname);
    
% Optional operations on the data set...
    
status = hdfpt('detach',pointid);
status = hdfpt('close',fileid);

Чтобы получить доступ к нескольким файлам одновременно, получите отдельный идентификатор файла для каждого файла, который будет открыт. Чтобы получить доступ к нескольким наборам данных точек, получите отдельный идентификатор точки для каждого набора данных.

Важно правильно утилизировать идентификаторы точек и файлов так, чтобы буферизованные операции полностью записывались на диск. Если вы закроете MATLAB или очистите все файлы MEX с все еще открытыми идентификаторами PT, MATLAB выдает предупреждение и автоматически утилизирует их.

Обратите внимание, что идентификаторы файлов, возвращенные hdfpt не взаимозаменяемы с идентификаторами файлов, возвращаемыми любой другой функцией HDF-EOS или HDF.

Стандартные программы доступа

Стандартные программы доступа инициализируют и прекращают доступ к интерфейсам PT и наборам данных точек (включая открытие и закрытие файлов).

Значение funcstrСинтаксис функцииОписание
'open'file_id = hdfpt('open',filename,access)Учитывая имя файла и требуемый режим доступа, открывает или создает HDF-файл в порядок для создания, чтения или записи точки. access можно 'read', 'readwrite', или 'create'. file_id равен -1, если операция завершилась неуспешно.
'create'point_id = hdfpt('create',file_id,pointname)Создает набор данных точек с заданным именем. pointname - вектор символов или строковый скаляр, содержащий имя набора данных точек. point_id равен -1, если операция завершилась неуспешно.
'attach'point_id = hdfpt('attach',file_id,pointname)Присоединение к существующему набору данных точек в файле. point_id равен -1, если операция завершилась неуспешно.
'detach'status = hdfpt('detach',point_id)Отсоединяется от набора данных точек.
'close'status = hdfpt('close',file_id)Закрывает файл.

Стандартные программы определения

Стандартные программы определения позволяют пользователю задать ключевые возможности набора данных точек.

Значение funcstrСинтаксис функцииОписание
'deflevel'status = hdfpt ('deflevel', точка _ id, levelname,...
fieldList, fieldTypes, fieldOrders)
Определяет новый уровень в наборе данных точек. levelname - имя уровня, который будет определен. fieldList - массив ячеек из векторов символов или строковых массивов, содержащий имена полей на новом уровне. fieldTypes является также массивом ячеек из векторов символов или строковых массивов, содержащим тип числа для каждого поля в fieldList. Допустимые типы номеров включают 'uchar8', 'uchar', 'char8', 'char', 'double', 'uint8', 'uint16', 'uint32', 'float', 'int8', 'int16', и 'int32'. fieldOrders - вектор, содержащий порядок для каждого поля.
'deflinkage'status = hdfpt('deflinkage',point_id,parent,child,linkfield)Задает поле звена между двумя смежными уровнями. parent - имя родительского уровня. child - имя дочернего уровня. linkfield - имя поля, заданное на обоих уровнях.

Основные стандартные программы ввода-вывода

Основные стандартные программы ввода-вывода считывают и записывают данные и метаданные в набор точечных данных.

Значение funcstrСинтаксис функцииОписание
'writelevel'status = hdfpt('writelevel',point_id,level,data)Добавляет новые записи к указанному уровню в наборе данных точек. level - желаемый индекс уровня (нулевой). data должен быть P-by-1 массив ячеек, где P - количество полей, заданное для заданного уровня. Каждая камера data должен содержать M(k)-by- N матрица данных, где M(k) - порядок k-е поле (количество скалярных значений в поле) и N количество записей. Класс MATLAB камер должен совпадать с типом данных HDF, заданным для соответствующих полей. Текстовые данные в MATLAB автоматически преобразуются, чтобы соответствовать любому из типов HDF char. Другие типы данных должны точно совпадать.
'readlevel'[данные, status] = hdfpt ('readlevel', точка _ id,...
уровень, fieldList, записи)
Считывает данные с заданного уровня в наборе данных точек. level - индекс (нулевой базис) требуемого уровня. fieldList - массив ячеек из векторов символов или строковых массивов, задающий список считываемых полей. records - вектор, содержащий индексы (на нуле) считываемых записей. data является P-by-1 массив ячеек, где P количество запрошенных полей. Каждая камера data содержит M(k)-by- N матрица данных, где M(k) - порядок k-е поле и N количество записей, или length(records).
'updatelevel'status = hdfpt ('updatelevel', точка _ id,...
уровень, fieldList, записи, данные)
Обновляет (исправляет) данные на конкретном уровне набора данных точки. level - индекс (нулевой базис) требуемого уровня. fieldList - массив ячеек из векторов символов или строковых массивов, задающий список имен полей для обновления. records - вектор, содержащий индексы (нулевые) обновляемых записей. data является P-by-1 массив ячеек, где P - количество заданных полей. Каждая камера data должен содержать M(k)-by- N матрица данных, где M(k) - порядок k-е поле (количество скалярных значений в поле) и N количество записей, или length(records). Класс MATLAB камер должен совпадать с типом данных HDF, заданным для соответствующих полей. Текстовые данные в MATLAB автоматически преобразуются, чтобы соответствовать любому из типов HDF char. Другие типы данных должны точно совпадать.
'writeattr'status = hdfpt('writeattr',point_id,attrname,data)Запись или обновление атрибута набора данных точек с заданным именем. Если атрибут еще не существует, он создается.
'readattr'[data,status] = hdfpt('readattr',point_id,attrname)Считывает данные атрибута из заданного атрибута.

Стандартные программы запросов

Стандартные программы запроса возвращают информацию о данных, содержащихся в наборе данных точек.

Значение funcstrСинтаксис функцииОписание
'nlevels'nlevels = hdfpt('nlevels',point_id)Возвращает количество уровней в наборе данных точек. nlevels равен -1, если операция завершилась неуспешно.
'nrecs'nrecs = hdfpt('nrecs',point_id,level)Возвращает количество записей на заданном уровне. nrecs равен -1, если операция завершилась неуспешно.
'nfields'[numfields,strbufsize] = hdfpt('nfields',point_id,level)Возвращает количество полей на заданном уровне. strbufsize - длина массива, содержащего имена полей. numfields -1 и strbufsize является [] если операция завершается неуспешно.
'levelinfo'[numfields, fieldList, field Type, fieldOrder] =...
hdfpt ('levelinfo', точка _ id, level)
Возвращает информацию о полях для заданного уровня. fieldList - массив ячеек из векторов символов или строковых массивов, содержащий имена полей. fieldType - массив ячеек из векторов символов, который задает тип данных для каждого поля. fieldOrder - вектор, содержащий порядок (количество скалярных значений), сопоставленный с каждым полем. Если операция прекращается, numfields равен -1, а другие выходы пусты.
'levelindx'level = hdfpt('levelindx',point_id,levelname)Возвращает индекс уровня (нулевой) уровня с заданным именем. level равен -1, если операция завершилась неуспешно.
'bcklinkinfo'[linkfield,status] = hdfpt('bcklinkinfo',point_id,level)Возвращает linkfield на предыдущий уровень. status -1 и linkfield является [] если операция завершается неуспешно.
'fwdlinkinfo'[linkfield,status] = hdfpt('fwdlinkinfo',point_id,level)Возвращает linkfield на следующий уровень. status -1 и linkfield является [] если операция завершается неуспешно.
'getlevelname'[levelname,status] = hdfpt('getlevelname',point_id,level)Возвращает имя уровня, заданное как индекс уровня. status -1 и levelname является [] если операция завершается неуспешно.
'sizeof'[byteSize,fieldLevels] = hdfpt('sizeof',point_id,fieldList)Возвращает размер в байтах и уровнях полей заданных полей. fieldList - массив ячеек из векторов символов или строковых массивов, содержащий имена полей. byteSize - общий размер байтов указанных полей и fieldLevels - вектор, содержащий индекс уровня, соответствующий каждому полю. byteSize -1 и fieldLevels является [] если операция завершается неуспешно.
'attrinfo'[numberType, count, status] =...
hdfpt ('attrinfo', точка _ id, attrname)
Возвращает тип и размер номера в байтах указанного атрибута. attrname - имя атрибута. numberType - вектор символов, содержащий имя соответствующего типа данных атрибута. count - количество байтов, используемых данными атрибута. status -1 и numberType и count являются [] если операция завершается неуспешно.
'inqattrs'[nattrs,attrnames] = hdfpt('inqattrs',point_id)Получение информации об атрибутах, определенных в наборе данных точек. nattrs и attrnames - количество и имена всех заданных атрибутов, соответственно. Если операция прекращается, nattrs -1 и attrnames является [].
'inqpoint'[numpoints,pointnames] = hdfpt('inqpoint',filename)Получите номер и имена наборов данных точек, определенных в файле HDF-EOS. pointnames - массив ячеек из векторов символов, содержащий имена точек. numpoints -1 и pointnames является [] если операция завершается неуспешно.

Утилита Стандартных программ

Заполнитель.

Значение funcstrСинтаксис функцииОписание
'getrecnums'[outRecords, status] = hdfpt ('getrecnums',...
point_id,inLevel,outLevel,inRecords)
Возвращает номера записи в outLevel соответствует группе записей, заданных inRecords в inLevel уровня. The inLevel и outLevel аргументы являются индексами нулевого уровня. inRecords является вектором нулевых индексов записей. status -1 и outRecords является [] если операция завершается неуспешно.

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

Subset стандартных программ разрешить чтение данных из заданной географической области.

Значение funcstrСинтаксис функцииОписание
'defboxregion'region_id = hdfpt('defboxregion',point_id,cornerLon,cornerLat)Задает прямоугольную область долготы-широты для точки. cornerLon - двухэлементный вектор, содержащий долготы противоположных прямоугольных углов. cornerLat - двухэлементный вектор, содержащий широты противоположных прямоугольных углов. region_idравен -1, если операция завершилась неуспешно.
'defvrtregion'period_id = hdfpt ('defvrtregion', точка _ id, область _ id,...
область значений)
Задает вертикальную область для точки. vert_field - имя подмножества поля. range - двухэлементный вектор, содержащий минимальное и максимальное вертикальные значения. period_id равен -1, если операция завершилась неуспешно.
'regioninfo'[byteSize, status] = hdfpt ('regioninfo', точка _ id,...
region_id,level,fieldList)
Возвращает размер данных в байтах периода подмножества заданного уровня. fieldlist - массив ячеек из векторов символов или строковых массивов, задающий список полей для извлечения. status и byteSize равны -1, если операция завершилась неуспешно.
'regionrecs'[numRec, recNumbers, status] = hdfpt ('regionrecs',...
point_id,region_id,level)
Возвращает номера записей в подсетевой области заданного уровня. status и numrec -1 и recNumbers является [] если операция завершается неуспешно.
'extractregion'[данные, status] = hdfpt ('extractregion', точка _ id,...
region_id,level,fieldList)
Считывает данные из указанной подмножественной области. fieldList - массив ячеек из векторов символов или строковых массивов, задающий список запрашиваемых полей. data является P-by-1 массив ячеек, где P количество запрошенных полей. Каждая камера data содержит M(k)-by- N матрица данных, где M(k) - порядок k-е поле и N количество записей. status -1 и data является [] если операция завершается неуспешно.
'deftimeperiod'period_id = hdfpt('deftimeperiod',point_id,startTime,stopTime)Определяет временной период для набора данных точек. period_id равен -1, если операция завершилась неуспешно.
'periodinfo'[byteSize, status] = hdfpt ('periodinfo', точка _ id,...
period_id,level,fieldList)
Извлекает размер в байтах подмножества периода. fieldList - массив ячеек из векторов символов или строковых массивов, задающий список имен полей. byteSize и status равны -1, если операция завершилась неуспешно.
'periodrecs'[numRec, recNumbers, status] = hdfpt ('periodrecs',...
point_id,period_id,level)
Возвращает номера записей в течение подмножества времени заданного уровня. numRec и status равны -1, если операция завершилась неуспешно.
'extractperiod'[данные, status] = hdfpt ('extractperiod',...
point_id,period_id,level,fieldList)
Считывает данные из заданного подмножества времени. fieldList - массив ячеек из векторов символов или строковых массивов, задающий список запрашиваемых полей. data является P-by-1 массив ячеек, где P количество запрошенных полей. Каждая камера data содержит M(k)-by- N матрица данных, где M(k) - порядок k-е поле и N количество записей. status -1 и data является [] если операция завершается неуспешно.

Входные/выходные аргументы

Большинство стандартных программ возвращают флаг, status, что равняется 0, когда стандартная программа успешно завершается, и -1, когда стандартная программа прекращает работать. Стандартные программы с синтаксисами, которые не содержат status возвращает информацию об отказе в один из ее выходов, как отмечено в синтаксисах функции.

levelName - вектор символов или строковый скаляр.

Некоторые функции библиотеки C принимают входные значения, заданные в терминах макросов C. Для примера в PTopen() C функция требует входа в режиме доступа, который может быть DFACC_READ, DFACC_RDWR или DFACC_CREATE, где эти символы заданы в соответствующем файле заголовка C. Где определения макросов используются в библиотеке C, в эквивалентных синтаксисах MATLAB используется текст, полученный из имен макросов. Можно либо использовать текст, содержащий имя макроса целиком, либо опустить общий префикс. Можно использовать верхний или нижний регистр. Для примера этот вызов функции C:

status = PTopen("PointFile.hdf",DFACC_CREATE)
эквивалентно этим вызовам функций MATLAB:
status = hdfpt('open','PointFile.hdf','DFACC_CREATE')
status = hdfpt('open','PointFile.hdf','dfacc_create')
status = hdfpt('open','PointFile.hdf','CREATE')
status = hdfpt('open','PointFile.hdf','create')

В случаях, когда функция C возвращает значение с определением макроса, эквивалентная функция MATLAB возвращает значение как текст, содержащий строчную короткую форму макроса.

Типы номеров HDF заданы как: 'uchar8', 'uchar', 'char8', 'char', 'double', 'uint8', 'uint16', 'uint32', 'float', 'int8', 'int16', и 'int32'.

В случаях, когда библиотека HDF-EOS принимает NULL, используйте пустую матрицу ([]).

См. также

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