Интерфейс к Точечному объекту 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
следующие:
Откройте файл и инициализируйте интерфейс PT путем получения идентификатора файла из имени файла.
Откройте или создайте набор данных точки путем получения ID точки из имени точки.
Выполните желаемые операции на наборе данных.
Закройте набор данных точки путем избавления от ID точки.
Оконечный доступ к точке к файлу путем избавления от идентификатора файла.
Чтобы получить доступ к одному набору данных точки, который уже существует в файле 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... | Задает новый уровень в наборе данных точки. 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) | Задает 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... | Считывает данные из данного уровня в наборе данных точки. level индекс (основанный на нуле) из желаемого уровня. fieldList массив ячеек из символьных векторов или массив строк, задающий список полей, чтобы читать. records вектор, содержащий индексы (основанные на нуле) из записей в чтение. data P - 1 массив ячеек, где P количество требуемых полей. Каждая ячейка data содержит M(k) - N матрица данных, где M(k) порядок k - поле th и N количество записей или length(records) . |
'updatelevel' | состояние = hdfpt ('updatelevel', point_id... | Обновления (корректируют) данные на конкретном уровне набора данных точки. 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] =... | Возвращает информацию о полях для заданного уровня. 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, количество, состояние] =... | Возвращает тип номера и размер в байтах заданного атрибута. 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'... | Возвращает номера записи в 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 имя поля к подмножеству. range двухэлементный вектор, содержащий минимальные и максимальные вертикальные значения. period_id -1, если операция перестала работать. |
'regioninfo' | [крохотный, состояние] = hdfpt ('regioninfo', point_id... | Возвращает размер данных в байтах периода подмножества заданного уровня. fieldlist массив ячеек из символьных векторов или массив строк, задающий список полей, чтобы извлечь. status и byteSize -1, если операция перестала работать. |
'regionrecs' | [numRec, recNumbers, состояние] = hdfpt ('regionrecs'... | Возвращает числа записей в области из подмножества заданного уровня. status и numrec -1 и recNumbers [] если операция перестала работать. |
'extractregion' | [данные, состояние] = hdfpt ('extractregion', point_id... | Считывает данные из заданной области подмножества. 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... | Получает размер в байтах периода из подмножества. fieldList массив ячеек из символьных векторов или массив строк, задающий список имен полей. byteSize и status -1, если операция перестала работать. |
'periodrecs' | [numRec, recNumbers, состояние] = hdfpt ('periodrecs'... | Возвращает числа записей в периоде времени из подмножества заданного уровня. numRec и status -1, если операция перестала работать. |
'extractperiod' | [данные, состояние] = hdfpt ('extractperiod'... | Считывает данные из заданного периода времени из подмножества. 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)
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
, используйте пустую матрицу ([]
).