Система регистрации данных РАТАН-600

Текущая система регистрации сменила предыдущую в 2005–2006 г., но с тех пор претерпела существенные изменения. Состояние системы на 2011 г. описано в статье:

Краткое описание работы с системой регистрации

Для проведения наблюдений Солнца на РАТАН-600 необходимо рассчитать эфемериды Солнца на заданную дату по программе EFRAT-2 (предпочтительно это сделать на rs.sao.ru), на их основе подготовить файлы (c помощью скрипта ef1.pl) для установки кругового отражателя — Южного сектора РАТАН-600, и Плоского отражателя, а также файл-задание (mainobs.txt) для программы-планировщика наблюдений на облучателе №3, и скопировать их в соответствующие каталоги.

Программа-планировщик наблюдений каждые 20 секунд читает из mainobs.txt все строки, сортирует их по дате, находит задание на текущую дату, следующее по времени. Файл-задание имеет формат:

2006/06/30 11:27 11:28:10.600 z_sun_480  2006/06/30 11:32:10.600 sun +24 71.705002

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

Если текущее время на компьютере (gettime) совпало со временем старта ожидания (16 символов, т.е. с точностью до минуты), то к сценарию наблюдения прибавляется оставшееся количество секунд, и он начинает выполняться — ожидается выполнение первой команды.

Схема работы системы регистрации

Во время регистрации создается raw-файл, в который пишутся данные. По окончании регистрации raw файл конвертируется в fits-файл, и копируется в несколько каталогов, в том числе на mail.sao.ru. Оттуда файл забирает prognoz (каждые 2 минуты), обрабатывает, заносит параметры в базу данных, и выставляет на сайте, а также на главной странице http://www.sao.ru.

Файл сценария наблюдения

Файл сценария может содержать такие команды, как:

[command]
0 C_MODULATION 1
1 C_AUTOGAIN 0
2 C_WRITEFILE 1
7 C_MODULATION 0
12 C_MODULATION 1
17 C_GSH 1
22 C_GSH 0
23 C_AUTOGAIN 1
814 C_AUTOGAIN 0
815 C_GSH 1
820 C_GSH 0
825 C_MODULATION 0
830 C_MODULATION 1
835 C_WRITEFILE 0
836 C_AUTOGAIN 1
837 C_RAW2FITS 30

commdef.rh

#define SetUDPDataSend          99
#define RegistrationStart       10
#define RegistrationStop        11
#define SetSumarization         12
#define SetPowerNG              13
#define SetLeftNG               14
#define SetRightNG              15
#define ModulationAuto          16
#define ModulationManual        17
#define RoofStatus              18
#define HardwareSoftReset       19
#define UDPSendMode             20
#define BlackLoad               21

История изменений системы регистрации

28 сентября 2011 — в фокусе установлены синусные фокальные антенны (зигзаг). Правая и левая поляризация сфазированы, волны 18–3 ГГц в фокусе, 1–3 ГГц вынесены из фокуса. Расстояние между центрами двух диапазонов 112 мм. Смещение равно (180/27)*112*2=1493.

13 марта 2010 — в фокусе облучателя установлены плоские двухзаходные спирали. Расстояние между центрами спиралей диапазона 3–18 ГГц равно 27 мм. При преобразовании в FITS формат задается смещение количеством отсчетов −180. Для диапазона 0.75–3 ГГц смещение составляет 180 мм или −1110 отсчетов.

август 2009 — в 2009 г. запущена новая система регистрации с числом одновременно регистрируемых каналов 112 в диапазоне от 750 МГц до 18 ГГц. Структура ПО при этом сохраняется прежней.

июль 2009 г. — сектором Эфемеридного обеспечения ГАО РАН (Львов В.Н.) создана новая версия программы EFRAT, см. публикацию:

Программа скомпилирована под Linux, в двух вариантах — с запуском из командной строки (efratp 20090815 1 30 0 -30) и с чтением входных данных из файла (efrat < p_sun.dat). В первом случае часть входных данных читается из конфигурационного файла (efrat.cfg, должен находиться в текущем каталоге), в котором задается, в частности, режим (PER= перископ), объект (sun, moon, Stellar + координаты), физ.параметры (для Солнца — R0=AngRad, P0=Ob NP, B0=ObLat, L0=ObLon), флаг — выводить заголовок или нет (TITLE), путь к каталогу с данными эпохи 2000, имя выходного файла (если не указано, то вывод производится на экран).

Запустить программу можно на rs.sao.ru под пользователем sun, командой:

efratp 20090815 1 30 0 -30

Получаем файл (без заголовка):

Object Sun
 Site: Long=  41.59208 Lat=  43.83126 Alt=  969. nh=  3 Refr: t= 10.0d  P=760.0 mmHg  C= 69.14
 Date       Mean Time   A        h per       A obj        h obj      RA          Dec         SidTime     Refr   NutRA  P obj  P diag Va       Vh       AngRad  ObLon ObLat Ob NP
     y  m  d  h  m  s       d       d  '  "      d  '  "    d  '  "    h  m  s      d  '  "    h  m  s       "     s      d      d       "/s      "/s      "      d     d     d
_________________________________________________________________________________________________________________________________________
 2009  8 15 11 14 03.76   30.000  62 22 52.6 - 51 13 19.4 50 07 19.2  9 39 49.51  13 58 43.2  4 49 22.81   58.2   1.06 305.42  -8.26    18.50     8.44  947.57  62.4   6.7  16.1
 2009  8 15 13 18 06.07    0.000  60 07 53.8    0 00 00.0 60 07 53.8  9 40 08.65  13 57 06.3  6 53 45.49   40.0   1.06 270.00   0.00    29.22     0.00  947.59  61.3   6.7  16.1
 2009  8 15 15 22 06.43  -30.000  62 19 06.0   51 09 48.3 50 04 57.2  9 40 27.77  13 55 29.0  8 58 06.22   58.3   1.06 234.63   8.23    18.49    -8.43  947.60  60.2   6.7  16.2

Для преобразования этого файла (без заголовка) в .csi и mainobs.txt файлы, следует запустить программку на перле rs.sao.ru:/users/sun/ef1.pl. С командной строки задаются три параметра — 1) имя входного файла, 2) выходного mainobs файла, 3) выходного csi файла. Если имена не заданы, по умолчанию берутся значения: вх: efrat_sun.dat, вых: 1) YMDDs.csi (согласно дате в первой строке), 2) mainobs_sun.txt. Эти значения при необходимости можно изменить в тексте программы.

Примечания:

У Лаборатории автоматизированных систем управления (Жеканис Г.В.) имеется своя программа для счета эфемерид. По словам Жеканиса Г.В., в программах счета эфемерид, таких как EFRAT, есть ошибка в расчете высоты источника и момента кульминации в азимутах, из-за того, что рефракция и параллакс вводятся после расчета пересечения с плоским отражателем, а не сразу после расчета эфемерид источника. Величина ошибки оценивается порядка 0.3 сек для времени кульминации в крайнем азимуте. Разница в кульминациях между EFRAT-ом и программой Жеканиса оценивается порядка сотых долей секунды. Также стоит задача объединения системы управления Плоским отражателем и круговой антенной.

с ноября 2007 г. в mainobs.txt введено 2 отдельных задания для открытия колпака перед наблюдениями и его закрытия после наблюдения. Это связано с тем, что колпак может открываться в течение 45 сек.

2009/08/31 13:06 13:07:45.000 roof_open 2009/08/31 13:07:45.000 roof 0 0.0
2009/08/31 13:08 13:09:56.580 z_sun_480 2009/08/31 13:13:56.580 sun +0 54.709667
2009/08/31 13:19 13:19:30.000 roof_close 2009/08/31 13:19:30.000 roof 0 0.0

Для выполнения всех необходимых операций команды сведены в один файл — efrat_run, который следует отредактировать и запустить.

efrat_run
# data kolichestvo_dnej spisok_azimutov
efratp 20090901 15 0
ef.pl efrat_sun1.dat mainobs1.txt
scp mainobs1.txt root@ref3.sao.ru:/users/sun/config/
#cp 9901s.csi rs.sao.ru:/users/ant/CSetting/
#users/ant/bin/csview/csmake -mr $nfile

июль 2006 г. предыдущую версию (за июль 2000 г.) см. здесь. Оригинал документации см. на http://sunny.sao.ru (только внутренний доступ). Новая система регистрации с количеством каналов 56 в диапазоне от 1.8 см до 5 см работает с сентября 2005 г.

Предыдущая система регистрации при этом все еще используется для проведения наблюдений — см. таблицу наблюдений. В сентябре–октябре на старом комплексе проводилось одно наблюдение в день, на одном из азимутов (не в меридиане!). Позже старый облучатель (Дикого В.Н.) был вынесен из фокуса на 37,5 см, и наблюдения на старом комплексе стали проводиться параллельно с новым комплексом. В наблюдениях на старом комплексе задействованы 14 каналов.

В настоящее время в новой программе регистрации (автор Балдин С.) не используются эфемериды, посчитанные с помощью программ, которые использовались ранее (taglmx, efrat). Из эфемерид при регистрации сейчас берется только время кульминации. При конвертировании исходного формата данных (dat-файла) в FITS-формат утилитой pas2fits (автор Гараимов В.), в шапку FITS файла, в параметр AZIMUTH пишется азимут облучателя, а в параметр ALTITUDE вместо высоты источника записывается высота плоского отражателя. Другие эфемериды — радиус Солнца (SOLAR_R), параметры P и B, прямое восхождение (SOL_RA) и склонение (SOL_DEC) вычисляются программой pas2fits (функция взята Гараимовым В. из библиотеки для IDL).

Надо заметить, что в предыдущей системе регистрации для чтения эфемерид использовался заголовочный файл opas.h со следующим содержимым:

#if !defined observ
typedef struct {
short GAzim; /*Aзимут*/
short MAzim;
float SAzim;
short DHour; /*Время кульминации декретное*/
short DMinute;
float DSecund;
short SHour; /*Время кульминации звездное*/
short SMinute;
float SSecund;
short GAlt; /* Высота источника */
short MAlt;
float SAlt;
short HAssen; /*Прямое восхождение*/
short MAssen;
float SAssen;
short GDecl; /* Склонение источника */
short MDecl;
float SDecl;

float RSec; /* Время прохождения источника в секундах */
float RArg; /* Размер источника в секундах */

float VALH; /* Часовое изменение прямого восхождения в секундах */
float VDECH; /* Склонения*/
float Rae; /* Расстояние от Земли*/
} observ;
#endif

Нужно восстановить чтение эфемерид из файла, посчитанного с помощью taglmx.exe и efrat.exe. Со счетом эфемерид есть некоторая проблема, состоящая в том, что EFRAT не работает под Windows XP (работает только под DOS и Windows 98). А taglmx не считает эфемериды для источников, кроме Солнца (Луны, краба и др.). Поэтому стоит задача разработки новой универсальной программы для счета эфемерид, которую можно было бы использовать как подпрограмму в программе регистрации (под Linux) и др. После восстановления процедуры расчета эфемерид по специализированным программам (модификации pas2fits, а в дальнейшем — программы регистрации), все старые dat-файлы нужно будет заново конвертировать в FITS, для архивации с "правильными" эфемеридами.

В настоящее время счет эфемерид для Солнца производится регулярно программой taglmx (для меридиана). Однако из файла берется только время кульминации в меридиане. Исходя из списка заданных азимутов, производится счет времени кульминации Солнца в азимутах, и высоты плоского отражателя в азимутах, утилитой azim2.exe (автор Казанина Т.) или утилитой pl7.exe (используется в основном для Луны, автор Опейкина Л.).

Полученные значения t_culm и h_flat используются для дальнейшего расчета уставок антенны программой rs.sao.ru/users/ant/bin/csview/csmake -mr 6630s.csi. Эфемериды вводятся в файл .csi вручную (например, берется предыдущий файл и в него вписываются новые значения кульминаций и высот). Формат файла csi см. в приложении. Этот же файл (csi) с t_culm и h_flat используется для подготовки задания на наблюдение на третьем облучателе, но в несколько измененном виде, под именем mainobs.txt.

Для частичного конвертирования csi файла в формат mainobs.txt используется программа rs.sao.ru/users/sun/makeobs. Надо:

cols=6
dir=/users/sun/makeobs/
infile=6630s.csi
outfile=6630s.out
2006/06/30 11:27 11:28:10.600 z_sun_480  2006/06/30 11:32:10.600 sun +24 71.705002
2006/06/30 11:44 11:45:51.400 z_sun_480  2006/06/30 11:49:51.400 sun +20 70.941139

Далее переносим полученный текст в файл mainobs.txt (вручную), чтобы получился следующий формат:

;----mainobs format------
;
;date_obs    start_time  regstart      zadanie_file  culm_date   culm_time     object  azimuth  altitude
;yyyy/mm/dd  hh:mm       hh:mm:ss.sss  file_name     yyyy/mm/dd  hh:mm:ss.sss  name    int      float
;
;
;
;
[observation]
;
;
;
;==================
; 14 jun 2006, tue
;==================
;
2006/06/14 10:15 10:16:00.000 zadanie_dacs3000 2006/06/14 10:16:00.000 gsh 24 123.0
2006/06/14 10:25 10:26:00.000 zadanie_gsh_L 2006/06/14 10:26:00.000 gsh_L 1 123.0
;
2006/06/14 11:23 11:24:41.100 z_sun_480  2006/06/14 11:28:41.100 sun +24 71.801804

Здесь вторая колонка — время старта ожидания текущего наблюдения. Проверяется совпадение этого времени с системным временем компьютера каждые 20 секунд. В случае совпадения читается файл команд текущего наблюдения из zadanie_file и формируется сценарий наблюдения. Третья колонка — время точного старта записи наблюдения. Чтобы вычислить время старта, надо из кульминации culm_time вычесть половину продолжительности наблюдения.

После имени файла задание идут эфемериды, которые будут вноситься в заголовок файлов данных (dat, fits):

В файле mainobs.txt не должно быть пустых строк между заданиями, т.к. пустая строка интерпретируется как конец файла-задания. Пустые строки должны комментироваться символом ";" в начале строки. Также надо следить за соответствием имени файла-сценария имеющемуся файлу в каталоге /config/scen/, т.к. если имя не будет соответствовать, соответствующее задание не будет выполнено. В случае необходимости экзотических конфигураций надо вносить все изменения в файл-задание и файл-сценарий вручную.

В настоящее время сконфигурирован файл-сценарий на 8 минут = 4 минуты до кульминации + 4 минуты после кульминации (это время считается суммированием соответствующих значений из файла-задания для антенны — duration). В связи с изменением точности составления файлов-заданий для антенны (было минуты, стало секунды) изменён выходной формат названий файлов-сценариев в mainobs.txt.

Пример: было z_sun_08, стало z_sun_480, где 480 означает полное время наблюдения в секундах (480 секунд = 8 минут). Ручное редактирование файла mainobs.txt приводит к тому, что новые строки добавляются в конец файла, а начало удаляется изредка, поэтому файл разрастается.

Полученный файл задания mainobs.txt следует скопировать по ftp или scp на ref3.sao.ru в каталог /users/sun/config, под пользователем sun. В каталоге config, кроме mainobs.txt, находятся файлы commands.txt и файлы-сценарии в каталоге /config/scen/, а также pastofits и crab0coef.dat.

Файл сценария (например, z_sun_840) имеет следующее содержимое (т.е. в нем указано, на какой секунде какие действия производить). Так как процесс конвертации в fits-формат занимает иногда несколько секунд, но необходимо это учитывать при составлении задания и ставить процедуру конвертации на последнее место или оставлять запас в несколько секунд. Были сбои в наблюдениях из-за того, что команда C_RAW2FITS 10 стояла предпоследней и не успевала отработать до того, как включалась последняя команда.

Для удаленного доступа (например, из филиала) и изменения задания на наблюдение, нужно зайти на rs c какого-нибудь сервера, с которого разрешен доступ (например, serv, brown), подготовить там задание (как описано выше), и скопировать его на ref3 по ftp.

Приложение: формат файла задания для антенны

Для того чтобы составить задание для антенны, надо отредактировать *.csi файл и скопировать в rs.ratan.sao.ru/users/ant/CSetting/. Уставки считаются программой csmake (автор — Жеканис Г.).

Содержание файла *.csi:

Problem  = SunObs
----------------------------------------------
Term    BegDate   BegTime    EndDate   EndTime
----------------------------------------------
set   2006.06.30 10:30:01  2006.07.10  15:30:00

Nmin     = 100
Include  = Join.std

Feed     = 3
AzF      = S+P
Class    = Setting
CSmode   = STD+Prep
Altitude =   0:00:00
Azimuth  = 180:00:00
Focus    = 0

--------------------------------------------------------------------
Source               ObsTime      Duration  Join   //      H(f)
--------------------------------------------------------------------
//Пятница
ObsDate = 2006.06.30

Sun+24              11:32:10.6    -4/4      P+24   //   71:42:18.0
Sun+20              11:49:51.4    -4/4      P+20   //   70:56:28.1
Sun+16              12:07:26.4    -4/4      P+16   //   70:20:44.5
Sun+12              12:24:57.2    -4/4      P+12   //   69:53:58.9
Sun+8               12:42:24.9    -4/4      P+8    //   69:35:22.8
Sun+4               12:59:50.6    -4/4      P+4    //   69:24:24.3
Sun+0               13:17:15.4    -4/4      P+0    //   69:20:45.0
Sun-4               13:34:40.2    -4/4      P-4    //   69:24:19.0
Sun-8               13:52:05.9    -4/4      P-8    //   69:35:12.1
Sun-12              14:09:33.6    -4/4      P-12   //   69:53:42.5
Sun-16              14:27:04.2    -4/4      P-16   //   70:20:22.3
Sun-20              14:44:39.1    -4/4      P-20   //   70:55:59.5
Sun-24              15:02:19.8    -4/4      P-24   //   71:41:42.4

//Суббота
ObsDate = 2006.07.01

Sun+24              11:32:25.6    -4/4      P+24   //   71:38:02.4
Sun+20              11:50:05.8    -4/4      P+20   //   70:52:20.9
Sun+16              12:07:40.3    -4/4      P+16   //   70:16:43.8
Sun+12              12:25:10.5    -4/4      P+12   //   69:50:02.8
Sun+8               12:42:37.7    -4/4      P+8    //   69:31:29.9
Sun+4               13:00:02.9    -4/4      P+4    //   69:20:33.1
Sun+0               13:17:27.2    -4/4      P+0    //   69:16:54.2
Sun-4               13:34:51.5    -4/4      P-4    //   69:20:27.2
Sun-8               13:52:16.7    -4/4      P-8    //   69:31:18.0
Sun-12              14:09:43.8    -4/4      P-12   //   69:49:44.7
Sun-16              14:27:13.9    -4/4      P-16   //   70:16:19.1
Sun-20              14:44:48.3    -4/4      P-20   //   70:51:49.2
Sun-24              15:02:28.3    -4/4      P-24   //   71:37:22.9
........
//Понедельник
ObsDate = 2006.07.10

Sun+0               13:18:58.4    -4/4      P+0    //   68:24:22.1

rs.ratan.sao.ru\users\ant\bin\csview\csmake -mr 0712s.csi

Счет установок антенны РАТАН-600.

Вызов:

csmake [-ehmr] YMDDc[.csi|.csm]

Опции:

Файлы: