Back to Handbook
fl2f - перекодировка форматов записи данных
SYNOPSIS
fl2f file1 file2 file3 ... [-t] [-f listfile] [+-u]
[-o outpfile] [-c cmprs_file [-r]] [-n chan_num]
[-{CHMNT}] [-p path] [-b] [+-m] [-s] [+-nocomp]
[-spf expr] [-arf# expr] [-ff expr_file] [-w wave]
DESCRIPTION
Команда fl2f производит перекодировку форматов данных,
используемых в системе регистрации и обработки на РАТАН-600.
Она работает с тремя типами форматов: регистрационный
RFLEX-формат (см. описание rflex(5)), транспортный
RFLEX-формат и F-формат (см. описание ffile(5)).
Признаком любого RFLEX-формата является двойная
шапочка (а следовательно, и 2 слова 'END'), наличие
ключевого слова EXTEND=T в первой части шапочки и
XTENSION=BINTABLE во второй части шапочки; значение
NAXIS в первой части шапочки равно 0.
Признаком регистрационного RFLEX-формата является
значение 'R' для ключевого слова 'SIMPLE' из шапочки
RFLEX-формата. Признаком транспортного RFLEX-формата
является значение 'T' для ключевого слова 'SIMPLE' из
шапочки RFLEX-формата.
Шапочка F-файла состоит только из одной части (и следовательно,
в ней одно слово 'END'), в ней отсутствуют ключевые слова
EXTEND и XTENSION и значением ключевого слова 'SIMPLE'
является символ 'T'. F-файл содержит одночастотные
данные (или данные одного канала).
Данные в РЕГИСТРАЦИОННОМ RFLEX-формате записаны по каналам
через пикселы (для n каналов), т.е. в 1-ом пикселе данных
записано значение 1-ого пиксела выходных данных из 1-ого
канала, во 2-ом пикселе данных записано значение 1-ого пиксела
выходных данных из 2-ого канала,..., в n-ом (для последнего
канала) пикселе данных записано значение 1-ого пиксела
выходных данных из n-ого канала; в (n+1)-пикселе записано
значение 2-ого пиксела из первого канала и т.д., в (i*n+k)-ом
пикселе записано значение (i+1)-ого пиксела для k-ого
канала.
Данные в ТРАНСПОРТНОМ RFLEX-формате записаны последовательно
по каналам: сначала все пикселы из первого канала,
потом все пикселы из второго канала и т.д.
Данная программа также позволяет производить по каналам
сжатие робастным методом (см. ключ -c) несколькими способами:
в зависимости от ключей или от значений внешней переменной
среды FILTER. Переменная FILTER может быть установлена
по одному из следующих значений :
M (или m) - медианная оценка среднего,
C (или c) - кластерная оценка среднего,
N (или n) - нормальная взвешенная оценка,
T (или t) - оценка M3,
H (или h) - оценка Ходжеса-Леманна.
Например, чтобы программа производила робастное осреднение
требуется требуется присвоить переменной FILTER значение M
следующими командами :
setenv FILTER M (для оболочки cshell),
FILTER=M; export FILTER (для оболочки shell).
По умолчанию работает оценка Ходжеса-Леманна.
Программа fl2f позволяет переводить данные
1) из регистрационного RFLEX-формата в транспортный
RFLEX-формат:
пример командной строки:
fl2f -t file
Здесь входной файл file содержит данные в
регистрационном RFLEX-формате.
Имя выходного файла при этом образуется добавлением
символа 't' к имени файла, записанного как
значение ключевого слова FILE в RFLEX-формате
Если значение ключевого слова TCP-C# (коэффициент
сжатия; здесь вместо символа '#' будет стоять номер
канала) больше нуля, то данные этого канала будут
сжиматься с фактором, равным значению ключевого
слова TCP-C#. Отменить сжатие можно с помощью
ключа '-nocomp'.
Если имя создаваемого выходного файла уже существует,
программа выдаст сообщение:
fl2f: file '%s' exists
Где вместо %s будет записано имя файла
И задаст вопрос:
new name ? ('no': delete old one) =>
новое имя ? (если набрать 'no' - старый
файл уничтожится).
2) из регистрационного и транспортного RFLEX-форматов в
F-формат, т.е. в файлы с данными, несущими информацию
по каналам.
Пример командной строки:
fl2f file
Здесь входной файл file содержит данные в
регистрационном или транспортном RFLEX-формате.
Имена выходных файлов при этом образуются добавлением
к имени файла, записанного как значение ключевого слова
FILE в RFLEX-формате, последовательности _????S, где
вместо ???? подставится соответствующая длина волны
наблюдения (в сотых долях сантиметра), и вместо S -
соответствующий параметр Стокса (I,U,V или Q).
Или вместо этой последовательности может записываться
номер соответствующего канала при наличии ключа '-pr_ch'.
Если при перекодировке из регистрационного формата
значение ключевого слова TCP-C# (коэффициент
сжатия; здесь вместо символа '#' будет стоять номер
канала) больше нуля, то данные этого канала будут
сжиматься с фактором, равным значению ключевого
слова TCP-C#. Отменить сжатие можно с помощью
ключа '-nocomp'.
3) из набора файлов в F-формате в транспортный RFLEX-формат.
пример командной строки:
fl2f file
Здесь входной файл file содержит список имен файлов
в F-формате, предназначенных для объединения во
RFLEX-формат.
Имя выходного файла образуется с учетом текущей
даты на момент выполнения программы fl2f и значении
ключевого слова OBJECT в последнем файле списка.
Если такое имя уже существует, программа выдаст
сообщение:
fl2f: file '%s' exists
Где вместо %s будет записано имя файла
И задаст вопрос:
new name ? ('no': delete old one) =>
новое имя ? (если набрать 'no' - старый
файл уничтожится).
Программа fl2f может считывать данные как из файлов
file1, file2 и т.п., записанных в командной строке,
так и из стандартного файла ввода.
При создании новых файлов программа fl2f заменяет
символы '+' и '-' в именах файлов на символы 'p' и
'm' соответственно, что позволит работать с этими
файлами в различных системах обработки, понимающих
эти символы. Однако данная замена может быть отменена
с помощью ключа '-s'.
Программа fl2f понимает следующие ключи:
-arf# - следующий за этим ключом параметр -
выражение в виде A+B*X+C*X*X, задающее
формулу зависимости площади антенны (в метрах)
от высоты установки (в градусах), где вместо
коэффициентов A, B и C подставляются
соответствующие значения в плавающем виде.
Выражение присваивается как значение
ключевым словам TARF# RFLEX-файла или
или ключевому слову AR-FORMU F-файла
для соответствующего канала.
Вместо символа '#' для флага '-arf#'
необходимо подставить номер канала,
соответствующий ключевому слову TARF#.
См. также ключ -ff.
-b - при наличии этого ключа программа
не будет вычислять параметры диаграммы.
По умолчанию она это делает в случае,
когда значение ключевого слова HFWHM
(Horizontal Full Width Half Meaning)
равно 0, или вообще данное ключевое слово
отсутствует. Для запуска программы
расчета диаграммы направленности в системе
должна находится программа 'bp1',
которая в свою очередь запускает
программу 'rat', создающую базу
данных констант РАТАН-600 - файл
'ratan.const' в текущем каталоге.
-c - следующий за этим ключом параметр
cmprs_file - имя файла с коэффициентами
сжатия для каналов. Файл с коэффициентами
сжатия должен иметь следующую структуру:
#N c-factor
1 3 # 7.6 cm
4 2
Здесь все, что следует за символом '#'
является комментарием и программой не
воспринимается. В каждой строке должно быть
2 значения: номер канала и коэффициент
сжатия. По умолчанию коэффициент сжатия
для каждого канала равен 1.
При наличии этого ключа подавляется сжатие
по коэффициентам, введенным с помощью
ключевых слов TCP-C#. Отменить подавление
можно с помощью ключа '+nocomp', т.е.
если при перекодировке из регистрационного
формата используется ключ '+nocomp' и
значение ключевого слова TCP-C#
(коэффициент сжатия; здесь вместо символа
'#' будет стоять номер канала) больше 1,
то данные канала будут сжиматься с фактором,
равным произведению значения ключевого слова
TCP-C# и значения, введенного с помощью
ключа '-c'.
См. также ключ '-nocomp'.
См. также ключ -r и ключи -C, -H, -M,
-N, -T.
-C - производить кластерную оценку среднего
на данном интервале сжатия.
Имеет смысл только при ключе -c.
-dos - то же, что и ключ '-old'.
-f - при наличии этого ключа программе
явно дается понять, что следующий за
этим ключом параметр - имя файла со
списком F-файлов для объединения в
RFLEX-формат. При отсутствии этого
ключа программа сама анализирует,
что у нее на входе.
-ff - следующий за этим ключом параметр -
имя файла с ключевыми словами и
выражениями аппроксимационных кривых
спектра (логарифм плотности потока
от логарифма частоты) и эффективной
площади от высоты.
Файл имеет следующую структуру (пример):
#RFLEX-file Keyword
r5701a0237-23 SP-FORMU=8.12-1.8*X-38.12*EXP(-X)
r5701a0237-23 TARF1=1.3+2*X-X*X # 2.7 см
r5701a0237-23 TARF3=6.3+1*X-0.3*X*X # 7.6 см
r5701a0237-23 TARF6=4.8+X-0.5*X*X # 31 см
# following file
qq1 SP-FORMU=3.14-2.7*X
qq1 TARF1=1.3+2*X-X*X # 2.7 см
qq1 TARF3=6.3+1*X-0.3*X*X # 7.6 см
Здесь все, что следует за символом '#'
является комментарием и программой не
воспринимается. В каждой строке должно быть
2 значения: имя файла и ключевое слово
с соответствующим значением.
См. также ключи -arf и -spf.
-H - производить оценку среднего методом
Ходжеса-Леманна на данном интервале сжатия.
Работает по умолчанию.
Имеет смысл только при ключе -c.
+m - при наличии этого ключа программа
в обязательном порядке выводит полную
шапочку, т.е. все ключевые слова F-файла.
Ключ может быть использован с ключом
'-old'.
-m - при наличии этого ключа программа
не будет выводить в отдельные F-файлы
ключевые слова, значения которых
отсутствуют. Также программа будет
удалять избыточную с ее точки зрения
информацию при выводе данных в F-файлы.
-M - производить медианную оценку среднего
на данном интервале сжатия.
Имеет смысл только при ключе -c.
-n - следующий за этим ключом параметр
chan_number - номер канала, который
надо вывести из RFLEX-файла.
См. также ключ '-w'.
+nocom - при наличии этого ключа программа
fl2f при статистическом сжатии каналов
при перекодировке из регистрационного
RFLEX-формата обязательно использует
значения ключеых слов TCP-C# (где '#'
означает номер канала) в качестве
коэффициентов сжатия. Если коэффициенты
сжатия также вводятся с помощью ключа '-c',
то данные канала будут сжиматься с фактором,
равным произведению значения ключевого слова
TCP-C# и значения, введенного с помощью
ключа '-c' для данного канала.
-nocom - при наличии этого ключа программа
fl2f не производит сжатие каналов при
перекодировке из регистрационного
RFLEX-формата в случае, когда ключевое
слово TCP-C# (где '#' означает номер
канала), имеющее своим значение
коэффициент сжатия для данного канала,
больше единицы.
-N - производить нормально взвешенную оценку
среднего на данном интервале сжатия.
Имеет смысл только при ключе -c.
-o - при наличии этого ключа программа
заменяет образец, записанный как
значение ключевого слова FILE RFLEX-формата,
на имя указанное как следующий параметр
командной строки outpfile. Короче говоря,
при помощи этого ключа и следующего
параметра формируется имя выходного файла.
-old - при наличии этого ключа программа fl2f
будет формировать имя файла в старом
формате: 'oooodd.myc', где oooo - первые
четыре символа имени объекта, dd (2 символа)
- день месяца наблюдения , m - (1 символ)
номер месяца в шестнадцатеричной системе,
y (1 символ) - последняя цифра года,
c (1 символ) - номер канала в
шестнадцатеричной системе.
При установке этого ключа автоматически
устанавливается и ключ '-m'.
Установку ключа '-m' по умолчанию можно
отменить вводом ключа '+m'.
-p - следующий за этим ключом параметр path -
имя каталога, в который будут записываться
создаваемые файлы. Если каталог не существует,
программа fl2f будет пытаться его создать.
Если существует обычный файл с таким именем,
программа сообщает об этом и останавливает
работу.
-pr_ch - при наличии этого ключа при распаковке
многочастотных файлов на одночастотные
имена выходных файлов образуются добавлением
к имени файла, записанного как значение
ключевого слова FILE в RFLEX-формате, номера
соответствующего канала. По умолчанию к имени
добавляется последовательность _????S, где
вместо ???? подставляется соответствующая длина
волны наблюдения (в сотых долях сантиметра), и
вместо S - соответствующий параметр Стокса.
-r - при наличии этого ключа переформатирование
из формата RFLEX-транспортного не
производится, только на выходе программы
создается транспортный RFLEX-файл с сжатыми
каналами (см. ключ -c) и именем с расширением
.C.
Ключ используется только с ключом -c.
-s - при наличии этого ключа символы '+' и '-'
в имени выходного файла не будут заменены
на символы 'p' и 'm' соответственно,
что происходит по умолчанию.
Данный ключ не касается имен файлов,
вводимых с помощью ключа '-o'.
-spf - следующий за этим ключом параметр -
выражение в виде A+B*X+C*F(X), задающее
формулу зависимости логарифма плотности
потока (в Янских) от логарифма частоты
(в МегаГерцах), где вместо коэффициентов
A, B и C подставляются соответствующие
значения в плавающем виде, а вместо функции
F(X) одно из следующих выражений:
X*X, EXP(X) или EXP(-X).
Выражение присваивается как значение
ключевому слову SP-FORMU.
См. также ключ -ff.
-t - при наличии этого ключа программа будет
переводить регистрационный RFLEX-формат в
транспортный RFLEX-формат.
-T - производить оценку среднего M3
на данном интервале сжатия.
Имеет смысл только при ключе -c.
+u - при наличии этого ключа программа всегда будет
производить запрос на удаление при записи
в уже существующий файл.
-u - при наличии этого ключа программа будет
удалять существующие файлы безоговорочно.
-w - следующий за этим ключом параметр
wave - длина волны в см, данные наблюдений
на которой, надо вывести в виде F-файла из
RFLEX-файла.
См. также ключ '-n'.
EXAMPLES
1) fl2f file1 file2 file3 -o qq -p ../aa
Выделить все каналы из файлов file1, file2 и file3 и
записать их в виде F-файлов в каталог ../aa. Если такого
каталога нет, то программа предварительно его создаст,
если сможет. Создаваемые файлы с канальной информацией
будут иметь следующие имена:
qq1.1, qq1.2, qq1.3 и т.д. для файла file1,
qq2.1, qq2.2, qq2.3 и т.д. для файла file2,
qq3.1, qq3.2, qq3.3 и т.д. для файла file3.
2) fl2f file1 file2 fil3 -c cf -p ../aa -r
Перекодировать все файлы из регистрационного и
транспортного RFLEX-форматов в транспортный
RFLEX-формат со сжатием каналов. Результат
записать в каталог ../aa. Коэффициенты сжатия
считывать из файла cf. Файлы, создаваемые в каталоге
../aa, будут иметь расширение .C.
SEE ALSO
bp1(1), ffile(5), rat(1), rflex(5)
DIAGNOSTICS
При работе программа выдает в стандартный канал диагностик
следующее сообщение:
input_type:%c, output_type:%c
Где вместо последовательности %c подставится один из
символов 'r', 't', 'f', соответственно означающих
регистрационный RFLEX-формат, транспортный RFLEX-формат
и F-формат.
Иногда программа 'bp1', запускаемая из программы 'fl2f'
в старой версии системы Linux (ядро до версии 2.0) дает сбой
из-за ошибки в ядре с выдачей сообщения:
Segmentation violation
и предупреждением о невозможности расчета диаграммы.
На результате работы программы 'fl2f' этот сбой не
сказывается, лишь только значение ключевого слова
HFWHM остается равным 0. Для расчета размера
диаграммы пользователь может запустить повторно
'fl2f' для данного файла. Для отмены счета диаграммы
см. ключ '-b'.
В последних версиях системы Linux все работает хорошо.
AUTHOR
Верходанов О.В.
Back to Handbook