nextuppreviouscontents
Next:Формат файла с протоколомUp:Форматы выходных файловPrevious:Формат заголовочного файла

Формат файла данных

Файл с данными *.<NN>d записан блоками размеров по 4096 байт (рис.[*] на стр.[*]) (во включаемом файле pas.h определена константа SPMquotBUFFER_DATA_SIZE"). В начале каждого блока находится префикс размером 16 байт (константа SPMquotCOUNT_WORD_HEADER"), который в первых четырех байтах содержит символы "PASSPMquot " ", в следующих двух байтах -- номер блока, затем в четырех байтах -- номер тика, соответствующий моменту начала регистрации блока, последующие байты префикса оставлены в качестве резерва и не используются. Основное назначение префикса данных -- создание возможности восстановления данных при аварийном завершении работы программы сбора. Если во время регистрации произойдет выключение питания или "зависание" программы, которое потребует перезагрузки системы, то файлы с данными не будут корректно закрыты, и вся записанная информация окажется расположенной в "утерянных" кластерах (lost clusters). С помощью сервисных программ, например, утилит Нортона, утерянные кластеры можно восстановить, однако возникает задача отождествления, где находятся данные, а где -- "мусор". Благодаря наличию идентификатора "PAS" кластеры с данными легко могут быть выделены, а по номеру блока -- упорядочены. Таким образом, наблюдательная информация будет полностью восстановлена. Особенно это актуально для наблюдений солнечных затмений, ради которых снаряжаются дорогостоящие экспедиции, и, следовательно, утеря данных из-за случайного сбоя была бы катастрофой.
 
 

Figure: Формат блока файла с данными. Файл состоит из последовательности таких блоков. N -- число точек в блоке, определяется по формуле [*], NCH -- количество частотных каналов. Слова "правая" и "левая" поляризации взяты в кавычки, потому что здесь эти понятия условны, истинный знак поляризации может быть определен при обработке калибровок.

После идентификатора располагаются отсчеты по каналам, сначала по одной поляризации, затем по другой. В целях экономии места на диске записываются данные только для каналов, которые включены в конфигурацию. Поскольку число записываемых каналов может изменяться от наблюдения к наблюдению, то не было смысла согласовывать размер блока данных с размером порции данных, получаемой при одном цикле опроса, и в конце блока данных, как правило, остается небольшое количество неиспользуемых байт. Число точек в одном блоке можно определить по формуле:


(5.1)


где BUFFER_DATA_SIZE, COUNT_WORD_HEADER объявлены в pas.h, Header -- это структура типа HEADER, объявленная там же. Здесь и в последующих формулах для записи элементов структур использована нотация, принятая в языке программирования Си.
 


Susanna Tokhchukova

2000-06-21