hdfpt

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

Синтаксис

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

Описание

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

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

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

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

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

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

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

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

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

  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);

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

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

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

Доступ к стандартным программам

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

Значение funcstrСинтаксис функцийОписание
'open'file_id = hdfpt('open',filename,access)Учитывая имя файла и желаемый режим доступа, открывает или создает файл HDF для того, чтобы создать, читайте или запишите точку. access может быть 'read'Чтение-запись, или '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'состояние = hdfpt ('deflevel', point_id, levelname...
cписок полей, типы поля, fieldOrders)
Задает новый уровень в наборе данных точки. levelname имя уровня, который будет задан. fieldList массив ячеек из символьных векторов или массив строк, содержащий имена полей на новом уровне. fieldTypes также массив ячеек из символьных векторов или массив строк, содержащий тип номера для каждого поля в fieldList. Типы верного номера включают 'uchar8', 'uchar', 'char8''char''double'uint8uint16uint32, 'float'int8int16, и 'int32'. fieldOrders вектор, содержащий порядок для каждого поля.
'deflinkage'status = hdfpt('deflinkage',point_id,parent,child,linkfield)Задает linkfield между двумя смежными уровнями. parent имя родительского уровня. child имя дочернего уровня. linkfield имя поля, которое задано на обоих уровнях.

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

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

Значение funcstrСинтаксис функцийОписание
'writelevel'status = hdfpt('writelevel',point_id,level,data)Добавляет новые записи на заданный уровень в наборе данных точки. level желаемый (основанный на нуле) индекс уровня. data должен быть P- 1 массив ячеек, где P количество полей, заданных для заданного уровня. Каждая ячейка data должен содержать M(k)- N матрица данных, где M(k) порядок k- поле th (количество скалярных значений в поле) и N количество записей. Класс MATLAB ячеек должен совпадать с типом данных HDF, заданным для соответствующих полей. Текстовые данные в MATLAB автоматически преобразованы, чтобы совпадать с любым из символьных типов HDF. Другие типы данных должны соответствовать точно.
'readlevel'[данные, состояние] = hdfpt ('readlevel', point_id...
уровень, cписок полей, записи)
Считывает данные из данного уровня в наборе данных точки. level индекс (основанный на нуле) из желаемого уровня. fieldList массив ячеек из символьных векторов или массив строк, задающий список полей, чтобы читать. records вектор, содержащий индексы (основанные на нуле) из записей в чтение. data P- 1 массив ячеек, где P количество требуемых полей. Каждая ячейка data содержит M(k)- N матрица данных, где M(k) порядок k- поле th и N количество записей или length(records).
'updatelevel'состояние = hdfpt ('updatelevel', point_id...
уровень, cписок полей, записи, данные)
Обновления (корректируют) данные на конкретном уровне набора данных точки. level индекс (основанный на нуле) из желаемого уровня. fieldList массив ячеек из символьных векторов или массив строк, задающий список имен полей, чтобы обновиться. records вектор, содержащий индексы (основанные на нуле) из записей на обновление. data P- 1 массив ячеек, где P количество заданных полей. Каждая ячейка data должен содержать M(k)- N матрица данных, где M(k) порядок k- поле th (количество скалярных значений в поле) и N количество записей или length(records). Класс MATLAB ячеек должен совпадать с типом данных HDF, заданным для соответствующих полей. Текстовые данные в MATLAB автоматически преобразованы, чтобы совпадать с любым из символьных типов HDF. Другие типы данных должны соответствовать точно.
'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, cписок полей, тип поля, fieldOrder] =...
hdfpt ('levelinfo', point_id, уровень)
Возвращает информацию о полях для заданного уровня. 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, количество, состояние] =...
hdfpt ('attrinfo', point_id, attrname)
Возвращает тип номера и размер в байтах заданного атрибута. attrname имя атрибута. numberType вектор символов, содержащий имя соответствующего типа данных HDF атрибута. 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, состояние] = hdfpt ('getrecnums'...
point_id, inLevel, outLevel, inRecords)
Возвращает номера записи в outLevel соответствующий группа записей задана inRecords на уровне inLevel. inLevel и outLevel аргументы являются основанными на нуле индексами уровня. inRecords вектор основанных на нуле индексов записи. status -1 и outRecords [] если операция перестала работать.

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

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

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

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

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

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