Author: L. Petrov
Memo: "Mark-III DBH format"
Language: Russian
Coding: koi8
Last updated: 12-mar-96

                I. Формат MARK-III DBH файла.
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        1.1. Физическая структура MARK-III DBH файла.

   Файл РСДБ-наблюдений формате MARK-III DBH содержит записи переменной длины.
Формат файла является стандантрыем форматом файла с записями с переменной длины
для операционной системы OS-IV для компьютеров фирмы Hewlet-Packard. Файл
состоит из физических записей, которые следуют одна за другой без промежутков.
Конец файла ничем не выделен.

  Формат физической записи:
________________________________________________________
| HDD1 |  DD1  | EDD1 |  HD2  |  logical record   | ED2 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Физическая запись содержит 6 полей:

HDD1 ( 4 байта )            -- головной декскиптор первичного дескриптора.
                               Содержит размер первичного дескрпитора в
                               байтах в формате I4. Всегда содерЖит занчение 2.
DD1  ( HDD1 байта )         -- первичный дескриптор. Содержит длину логической
                               записи в словах в формате I2. ( Одно слова
                               равняется двум байтам ).
EDD1 ( 4 байта )            -- хвостовой декскиптор первичного дескриптора.
                               Содержит размер первичного дескрпитора в байтах
                               в формате I4. Всегда имеет то же значение, что
                               и HDD1.
HD2  ( 4 байта )            -- вторичный дескриптор. Содержит длину логической
                               записи в байтах в формате I4. Всегда имеет то же
                               значение, что и HDD1, умноженное на два. Длина
                               логической записи всегда кратна 2.
logical record ( HD2 байт ) -- запись, содержащая данные, или служебную
                               информацию.
ED2  ( 4 байта )            -- вторичный дескриптор. Содержит длину логической
                               записи в байтах в формате I4. Всегда имеет то же
                               значение, что и HD2.

Итого одна физическая запись содержит одну логическую запис и 18 байт
служебной информации, которая содержит давжды продублированную длину записи.
Подобная физическая организация файла позволяет, во-первых, контролировать его
целостность, а во-вторых позволяет читать файл с конца задом напер└д.

        1.2. Логическая структура MARK-III DBH файла.

   Логические записи ( далее ниже всюду имеются в виду только логические
записи ) бывают тр└х классов: служебные, информационные и записи данных.
Служебные записи и записи данных имеют префикс, который позволяет их
идентифицировать. Информационные записи префикса не имеют. Они идентифицируются
идущими впереди них служебными записями.

   Файл состоит из тр└х секций, расположенных в следующем порядке: секция
заголовка, секция оглавления и секция данных.

______________________________________________________________________________
| Тип    | Длина    |         Префикс          |          Примечание         |
| записи | префикса |                          |                             |
|--------|----------|--------------------------|-----------------------------|
|  HS    |  2       | HS                       | Описывает записи истории    |
|        |          |                          | версии файла.               |
|--------|----------|--------------------------|-----------------------------|
|  Z1    |  4       | ZZ//CHAR(000)//CHAR(000) | Разделитель секции истории  |
|        |          |                          | файла и секции оглавления.  |
|--------|----------|--------------------------|-----------------------------|
|  Z2    |  4       | ZZ//CHAR(007)//CHAR(208) |                             |
|--------|----------|--------------------------|-----------------------------|
|  Z3    |  4       | ZZ//CHAR(000)//CHAR(025) |                             |
|--------|----------|--------------------------|-----------------------------|
|  Z4    |  4       | ZZ//CHAR(000)//CHAR(013) |                             |
|--------|----------|--------------------------|-----------------------------|
|  Z5    |  4       | ZZ//CHAR(000)//CHAR(007) |                             |
|--------|----------|--------------------------|-----------------------------|
|  TE    |  2       | TE                       |                             |
|--------|----------|--------------------------|-----------------------------|
|  TC    |  2       | TC                       |                             |
|--------|----------|--------------------------|-----------------------------|
|  DR    |  2       | DR                       |                             |
|--------|----------|--------------------------|-----------------------------|
|  I2    |  2       | +g                       |                             |
|--------|----------|--------------------------|-----------------------------|
|  A2    |  2       | 11                       |                             |
|--------|----------|--------------------------|-----------------------------|
|  R8    |  8       | CHAR(067)//CHAR(015)//   |                             |
|        |          | CHAR(148)//CHAR(101)//   |                             |
|        |          | CHAR(184)//CHAR(171)//   |                             |
|        |          | CHAR(142)//CHAR(056),    |                             |
|--------|----------|--------------------------|-----------------------------|
|  J4    |  4       | CHAR(066)//CHAR(058)//                                 |
|        |          | CHAR(053)//CHAR(199)     |                             |
|--------|----------|--------------------------|-----------------------------|
|  P1    |  0       |                          | Первые 7 записей.           |
|--------|----------|--------------------------|-----------------------------|
|  P2    |  0       |                          | Следует после двух идущих   |
|        |          |                          | подряд HS-записей.          |
|--------|----------|--------------------------|-----------------------------|
|  P3    |  0       |                          | Следует после TE-записи.    |
|--------|----------|--------------------------|-----------------------------|
|  P4    |  0       |                          | Следует после P3-записи.    |
|________|__________|__________________________|_____________________________|

Записи типа  HS, Z1, Z2, Z3, Z4, Z5, TC, TE, DR, DE  --  служебные, всегда
             имеют длину 12 слов ( 24 байта ).
       типа  I2, A2, R8, J4  -- записи данных,
       типа  P1, P2, P3, P4  -- информационные.



        1.2.1.  Секция заголовка.
        ~~~~~~~~~~~~~~~~~~~~~~~~~

Первые 7 записей секции заголовка ( и файла ) содержат преамбулу файла.

Запись 1 (формат kA2)  содержит имя файла в формате A2.
Запись 2 (формат 5I2)  содержит 5 слов, определяющих дату создания файла.
Запись 3 (формат kA2)  содержит название программы наблюдений
Запись 4 (формат kA2)  содержит имя эксперимента.
Запись 5 (формат kA2)  содержит номер версии файла.
Запись 6 (формат I2)   содержит имя файла предыдущей версии.
Запись 7 (формат kA2)  содержит имя файла предыдущей версии.

Начиная с 8-ой записи и далее до тех пор, пока на встретится запись-разделитель
Z1 следууют запиаи истории файла. Каждая запись истории состоит из тр└х
логических записей: 1-ой HS-записи, 2-ой HS-записи, информационной записи
содержимого истории файла. Записей истории файла может быть сколько угодно.
Сперва идут записи для первой версии, затем для второй и так далее до последней
версии.

    1-ая HS-запись. Формат: A2,11I2

________________________________________________________________________
| A1 | P1  | P2  | P3  | P4  | P5  | P6  | P7  | P8  | P9  | P10 | P11 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A1     -- ( Формат A2 ) -- Префикс ( Значение HS )
P2     -- ( Формат I2 ) -- Длина информационной записи в словах.
P2-P6  -- ( Формат I2 ) -- Дата создания версии.
P7     -- ( Формат I2 ) -- Номер версии.
P8-P11 -- ( Формат I2 ) -- Не используются ( всегда нулевые ).


    2-ая HS-запись. Формат: A2,4I2,3A2,4I2

________________________________________________________________________
| A1 | P1  | P2  | P3  | P4  | A2  | A3  | A4  | P5  | P6  | P7  | P8  |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A1     -- ( Формат A2 ) -- Префикс ( Значение HS )
P1     -- ( Формат I2 ) -- ? ( Значение CHAR(1) )
P2     -- ( Формат I2 ) -- ? ( Значение CHAR(1) )
P3     -- ( Формат I2 ) -- ? ( Значение CHAR(1) )
P4     -- ( Формат I2 ) -- ? ( Значение CHAR(10 )
A2-A4  -- ( Формат A2 ) -- Первые 6 байт имени эксперимента
P5-P8  -- ( Формат I2 ) -- Не используются ( всегда нулевые ).



        1.2.2.  Секция оглавления.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~


  Запись типа Z1 означает конец секции истории файла и насало секции оглавления.
Секция оглавления содержит аббревитуры параметров длиной 8 байт, краткие
описания параметров длиной 32 байта, типб размерности параметра, номер версии
файла, во время создания которых они были обновлены и их относительные адреса
относительно начала подсекции данных и относительно начала секции данных.

Секция оглавления состоит из k ( обычно k=3 ) TC-блоков. Каждый TC-блок состоит
из TC-записи, за которой следуют l TE-блоков. TE-блок состоит из TE-записи,
за которой следует P3-запись, а за ней P4-запись.


        Формат TC-записи:
________________________________________________________________________
| A1 | P1  | P2  | P3  | P4  | P5  | P6  | P7  | P8  | P9  | P10 | P11 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A1     -- ( Формат A2 ) -- Префикс ( Значение TC )
P1     -- ( Формат I2 ) -- Номер TC-блока. Эквивалентен TOC-типу
P2     -- ( Формат I2 ) -- Количество TE-блоков, содержащихся в данном TC-блоке.
P3-P11 -- ( Формат I2 ) -- Не используются ( всегда нулевые ).


        Формат TE-записи:
________________________________________________________________________
| A1 | P1  | P2  | P3  | P4  | P5  | P6  | P7  | P8  | P9  | P10 | P11 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A1     -- ( Формат A2 ) -- Префикс ( Значение TC )
P1     -- ( Формат I2 ) -- Номер TE-блока.
P2     -- ( Формат I2 ) -- Смещение I-FILLER ( в группах ).
P3     -- ( Формат I2 ) -- Смещение A-FILLER ( в группах ).
P4     -- ( Формат I2 ) -- Смещение D-FILLER ( в группах ).
P5     -- ( Формат I2 ) -- Количество элементов типа R8, описанных в данном
                           TE-блоке.
P6     -- ( Формат I2 ) -- Количество элементов типа I2, описанных в данном
                           TE-блоке.
P7     -- ( Формат I2 ) -- Количество элементов типа A2, описанных в данном
                           TE-блоке.
P8     -- ( Формат I2 ) -- Смещение J-FILLER ( в группах ).
P9     -- ( Формат I2 ) -- Общее количество групп.
P10    -- ( Формат I2 ) -- Количество элементов типа D8, описанных в данном
                           TE-блоке.
P11    -- ( Формат I2 ) -- Количество элементов типа J4, описанных в данном
                           TE-блоке.

        Формат P3-записи:
________________________________________________________________________
| A1_1 | P1_1 | P2_1 | P3_1 | P4_1 | A1_1 | P1_1 | P2_1 | P3_1 | P4_1 | ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\                                  /\                                  /
 ~~~~~~~~~~~~~~~\/~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~\/~~~~~~~~~~~~~~~~~
            1-ая группа                          2-ая группа

Общее количество групп содердится в поле P9  TE-записи.

Формат одной группы.

A8  --  ( Формат A8 ) -- Аббревитура параметра или FILLER.
P1  --  ( Формат I2 ) -- 1-ая размерность массива параметра.
P2  --  ( Формат I2 ) -- 2-ая размерность массива параметра.
P3  --  ( Формат I2 ) -- 3-ая размерность массива параметра.
P4  --  ( Формат I2 ) -- Номер версии файла, на которой данный параметр был
                         добавлен.

        Формат P4-записи:
_________________________________________
|  A1_1   |  A2_1   |  A3_1   |  A4_1   | ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\        /\        /\        /\        /
 ~~~  ~~~  ~~~  ~~~  ~~~  ~~~  ~~~  ~~~
    \/        \/        \/        \/
1-я группа 2-я группа 3-я группа 4-я группа  ...

Общее количество групп содержится в поле P9  TE-записи. Формат группы: A32

Каждая группа, соответствующая параметру, содержит описание параметра. Группа,
соответствующая FILLER'у, состоит из 32-х зв└здочек.


    Каждый параметр, содержащийся в файле формата MARK-III DBH имеет следующие
аттрибуты:

 1) Аббревитуруа. Содержится в поле A1 группы в P3-записи.
 2) Описание. Содержится в поле A1 группы в P4-записи.
 3) Первая размерность. Содержится в поле P1 P3-записи.
 4) Вторая размерность. Содержится в поле P2 P3-записи.
 5) Третья размерность. Содержится в поле P3 P3-записи.
 6) Номер версии, на которой параметр был внес└н в файл последний раз.
    Содержится в поле P4 P3-записи.
 7) Тип параметр. Определяется FILLER-ом в P3-записи. Допустимыми являются типы
    R8, I2, A2, D8, J4. Тип D8 и J4 не используется.
 8) TOC-тип. Опеределяется номером TC-блока, в ктором содержалось описание
    параметра.
 9) Номер TE-записи. Опеределяется номером TE-блока, в ктором содержалось
    описание параметра.
10) Смещение относительно начала записи данных.
11) Номер наблюдения.


Back to home page of the Bonn VLBI group
Back to Leonid Petrov's Home Page

This page was prepared by Leonid Petrov.
Last update: 06-AUG-99 10:44:02