\documentclass[a4paper,12pt]{extarticle} \usepackage[koi8-r]{inputenc} \usepackage[english,russian]{babel} \usepackage{hyperref} \usepackage{ifpdf} % проверка pdflatex/latex \ifpdf \usepackage[pdftex]{graphicx} \usepackage{cmap} \ExecuteOptions{pdftex} \else \usepackage[dvips]{graphicx} \fi \textwidth=17.5cm \oddsidemargin=-.3cm \evensidemargin=-1.2cm \topmargin=-1cm \textheight=24cm \begin{document} \title{Описание параметров командной строки интерфейса управления ПЗС-камерами Apogee} \author{Емельянов Э.В.} \maketitle Утилита \verb'apogee_control' предназначена для работы с рядом ПЗС-камер фирмы Apogee Imaging Systems (протестирована на камерах Apogee Alta и Apogee Aspen). Позволяет управлять параметрами ПЗС-камер, получать изображение с камер, отображать его на экране и\slash или сохранять в FITS-файл. При работе на компьютере в сети САО РАН с запущенной системой \verb'bta_control_net' утилита также добавляет в FITS-заголовок файла сведения о телескопе. Помимо работы с ПЗС-камерами утилита может также управлять турелями фирмы Apogee. \section{Сборка и установка} Утилита использует библиотеку \verb'libapogee'\footnote{\url{http://www.randomfactory.com/downloads/}}, а т.к. сама библиотека написана на C++, дополнительно используется промежуточный интерфейс к С. Библиотека и сишный интерфейс находятся в одном репозитории с утилитой. Скачать их можно командой \begin{verbatim} git clone https://github.com/eddyem/apogee_control.git \end{verbatim} В результате весь репозиторий будет сохранен в директорию \verb'apogee_control'. Внутри нее в директории \verb'libapogee' находится несколько версий библиотек. Для работы с камерами Aspen необходимо установить наиболее свежую. \subsection{Установка libapogee} Распаковываем библиотеку и входим в корневую директорию архива: \begin{verbatim} tar -zxf libapogee-3.0.3179.tgz cd libapogee-3.0.3179/ \end{verbatim} Затем конфигурируем, собираем и устанавливаем: \begin{verbatim} ./configure && make && su -c "make install" \end{verbatim} В случае нехватки каких-либо библиотек на стадии \verb'./configure' появятся сообщения об ошибке, недостающее необходимо установить. \subsection{Установка С-интерфейса к библиотеке} Сишный интерфейс к \verb'libapogee' находится в директории \verb'apogee_C_wrapper' репозитория. Система сборки интерфейса и самой утилиты основана на \verb'cmake'. Для сборки интерфейса выполняем: \begin{verbatim} mkdir mk && cd mk cmake .. && make && su -c "make install" \end{verbatim} Для отображения отладочных сообщений на стадии \verb'cmake' можно указать \begin{verbatim} cmake .. -DEBUG=1 \end{verbatim} \subsection{Установка утилиты} Код самой утилиты находится в корневой директории репозитория. Для установки выполняем те же действия, что и в случае С-интерфейса: \begin{verbatim} mkdir mk && cd mk cmake .. && make && su -c "make install" \end{verbatim} Для \verb'cmake' в данном случае доступны следующие ключи: \begin{description} \item[-DNOBTA=1] отключить вывод параметров телескопа БТА в заголовок FITS-файла, даже если на компьютере с утилитой запущен демон \verb'bta_control_net'; \item[-DUSERAW=1] сохранять изображения в <<сырой>> бинарный формат помимо FITS; \item[-DUSEPNG=1] сохранять изображения в формат PNG помимо FITS; \item[-DEBUG=1] отображать отладочные сообщения; \item[-DTELLAT=] установить широту телескопа для отображения в заголовке FITS-файла; \item[-DTELLONG=] установить долготу телескопа; \item[-DTELALT=] задать высоту расположения телескопа относительно уровня моря. \end{description} При записи в заголовок FITS-файла данных АСУ БТА утилита также вычисляет атмосферные параметры по Риду Д.\,Мейеру (Reed D.\,Meyer): воздушную массу, долю водяных паров, плотность столба атмосферы, плотность столба водяного пара. Кроме того, существует возможность сохранять текущие метеорологические параметры и некоторые параметры АСУ в \verb'HISTORY' FITS-файла. \section{Работа с утилитой} Сообщения, выдаваемые утилитой, локализованы при помощи \verb'gettext' (однако, по мере разработки возможны некоторые пробелы в локализации). Общая справка по параметрам командной строки выводится при запуске утилиты без параметров. На дату написания данного руководства полный список параметров следующий: \begin{verbatim} Использование: apogee_control [опции] [префикс выходных файлов] Опции: -A, --author=author автор программы -c, --cooler-off отключить холодильник -d, --dark не открывать затвор при экспозиции ("темновые") -D, --display-image Отобразить на экране полученное изображение -E, --ether-subnet Subnet fot ethernet camera discovery -f, --no-flash не засвечивать матрицу перед экспозицией -F, --fan-speed=F Установить скорость вентиляторов в F (0..3) -g, --wheel-get получить сведения о турели -G, --wheel-go=N переместить турель в N-ю позицию -H, --time-interval=T интервал времени между последовательными записями в лог и HISTORY (в секундах) -h, --hbin=N биннинг N пикселей по горизонтали -I, --image-type=type тип изображения -i, --instrument=instr название прибора -L, --log-only не сохранять изображения, лишь вести запись статистки -l, --tlog вести запись рабочих температур в файл temp_log -M, --msg-id open camera by its MSG-ID -N, --ncam=N работать с N-й камерой -n, --nframes=N N кадров в серии -O, --object=obj название объекта -o, --observer=obs имена наблюдателей -P, --prog-id=prname название программы наблюдений -p, --pause-len=ptime выдержать ptime секунд между экспозициями -r, --speed-set=N установить скорость считывания в N -R, --reset Полный сброс -S, --sleep перейти в спящий режим -s, --only-stat не сохранять изображение, а только отобразить статистику -T, --only-temp только задать/получить температуру -t, --set-temp=degr задать рабочую температуру degr градусов -v, --vbin=N биннинг N пикселей по вертикали -w, --wheel-num=N установить номер турели в N -W, --wakeup возобновить питание -x, --exp=exptime время экспозиции exptime мс -X, --xclip=X0[,X1] выбрать диапазон для считывания [X0:X1] -Y, --xclip=Y0[,Y1] выбрать диапазон для считывания [Y0:Y1] --flipX отразить изображение вертикально (относительно оси X) --flipY отразить изображение горизонтально (относительно оси Y) --noclean не очищать матрицу после считывания --pre-exp выполнить предварительную нулевую экспозицию для очистки матрицы --shutter-open открыть затвор --shutter-close заткрыть затвор --test-headers не открывать устройство, лишь отобразить шапку FITS --twelve-bit работать в 12-битном режиме \end{verbatim} Некоторые (наиболее редко используемые) параметры имеют только <<длинный>> формат параметра. \subsection{Управление параметрами камеры и кадра} \begin{description} \item[-c, -{}-cooler-off] отключить подачу напряжения на элемент Пельтье (для выхода ПЗС на комнатную температуру); \item[-d, -{}-dark] снимать <<темновые>> кадры --- не открывать затвор при экспозиции; \item[-E, -{}-ether-subnet=subn] задать подсеть (в виде маски адресов или конкретного IP-адреса) при работе с сетевой версией Apogee Aspen, например, \verb'-E 192.168.0.255' для поиска камеры в сети \verb'192.168.0.0/24'; \item[-M, -{}-msg-id=ID] попытаться подключиться к камере с конкретным идентификатором, данный идентификатор выдается утилитой при подключении к камере, пример: \begin{verbatim} apogee_control -M interface=ethernet,deviceType=camera, address=192.168.99.121,port=80,mac=000951ffffff81ffffffed22, interfaceStatus=Available,id=0x1a3,firmwareRev=0x132,model=Aspen-16M \end{verbatim} данный параметр позволяет ускорить процесс работы с сетевыми камерами; \item[-f, -{}-no-flash] не выполнять предварительную засветку ПЗС встроенным ИК-светодиодом при экспозиции (работает не для всех камер); \item[-F, -{}-fan-speed=F] принудительно установить скорость вращения вентиляторов, величина скорости изменяется от 0~(выключены) до 3~(наибольшая скорость); \item[-h, -{}-hbin=N] горизонтальный биннинг (предельное значение N зависит от типа ПЗС); \item[-v, -{}-vbin=N] вертикальный биннинг (предельное значение N зависит от типа ПЗС); \item[-N, -{}-ncam=N] если обнаружено несколько ПЗС-камер, работать с N-й; \item[-n, -{}-nframes=N] провести серию снимков из N~кадров; \item[-p, -{}-pause-len=ptime] выдержать \verb'ptime' секунд паузы между кадрами при работе с серией кадров; \item[-r, -{}-speed-set=N] устаревший параметр для задания скорости считывания (не работает с большинством современных камер); \item[-{}-twelve-bit] двенадцатибитный режим работы (высокая скорость считывания); \item[-R, -{}-reset] полный сброс параметров камеры (работает не на всех камерах); \item[-S, -{}-sleep] перевод камеры в спящий режим (работает не на всех камерах); \item[-T, -{}-only-temp] только задать\slash отобразить температуру узлов камеры; \item[-t, -{}-set-temp=degr] установить температуру чипа ПЗС в \verb'degr' градусов Цельсия; \item[-W, -{}-wakeup] выйти из спящего режима (работает не на всех камерах); \item[-x, -{}-exp=exptime] установить время экспозиции каждого кадра в \verb'exptime' миллисекунд; \item[-X, -{}-xclip=X0$\lbrack$,X1$\rbrack$] выбрать поддиапазон для считывания по оси~X; \item[-Y, -{}-xclip=Y0$\lbrack$,Y1$\rbrack$] выбрать поддиапазон для считывания по оси~Y; \item[-{}-flipX] отразить изображение вертикально (относительно оси X); \item[-{}-flipY] отразить изображение горизонтально (относительно оси Y); \item[-{}-noclean] не очищать матрицу после считывания (т.е. не удалять остаточный сигнал, работает не на всех камерах); \item[-{}-pre-exp] выполнить предварительную нулевую экспозицию (бывает необходимо для того, чтобы параметры камеры наверняка успели правильно выставиться перед выполнением основных экспозиций; без этого параметра возможны излишние шумы или даже повреждение кадра вследствие начала считывания не с нулевой позиции); \item[-{}-shutter-open] открыть затвор; \item[-{}-shutter-close] заткрыть затвор. \end{description} \subsection{Управление параметрами заголовка FITS-Файлов} Часть параметров заголовка формируемых FITS-файлов задается аргументами командной строки: \begin{description} \item[-A, -{}-author=author] автор программы (\verb'AUTHOR'); \item[-I, -{}-image-type=type] тип изображения (\verb'IMAGETYP'); \item[-i, -{}-instrument=instr] название прибора (\verb'INSTRUME'); \item[-O, -{}-object=obj] название объекта (\verb'OBJECT'); \item[-o, -{}-observer=obs] имена наблюдателей (\verb'OBSERVER'); \item[-P, -{}-prog-id=prname] название программы наблюдений (\verb'PROG-ID'); \item[-{}-test-headers] не снимать ни единого кадра, а только отобразить заголовок, который писался бы в формируемый FITS-файл (некоторые параметры будут неверными ввиду отсутствия изображения). \end{description} Если не указывать ключ \verb'-I', при съемке обычных кадров в поле \verb'IMAGETYP' заголовка FITS-файла будет указано: <>; если же задать ключ \verb'-d' для съемки темновых, тип будет установлен в <>; при установки нулевой экспозиции (\verb'-x 0') в качестве типа изображения будет указано <>. Содержимое многих ключей заголовка FITS-файла не соответствует стандарту и будет исправлено при дальнейших модификациях утилиты. \subsection{Работа с турелями Apogee} \begin{description} \item[-g, -{}-wheel-get] получить сведения о турели; \item[-G, -{}-wheel-go=N] переместить турель в N-ю позицию; \item[-w, -{}-wheel-num=N] если к компьютеру подключено несколько турелей, выбрать N-ю для дальнейшей работы. \end{description} \subsection{Статистика, логгирование и сохранение\slash отображение} После съемки очередного кадра в командной строке выводится основная статистическая информация по изображению. Изображение в дальнейшем может быть уничтожено, сохранено и\slash или отображено на экране. Если утилита \verb'apogee_control' вызывается без указания префикса выходных файлов, изображения только отображаются на экране (если не указано противного). Помимо этого, утилита способна сохранять статистические параметры отснятых кадров в лог-файл (скажем, для получения простых температурных зависимостей). \begin{description} \item[-D, -{}-display-image] данный параметр позволяет отображать отснятые изображения даже если указан префикс файла для сохранения; чтобы закрыть окно с последним изображением серии, необходимо либо нажать в окне клавишу ESC, либо в консоли сочетание Ctrl+C. Окно с изображением можно масштабировать, также при помощи колеса мыши с зажатой клавишей Ctrl можно масштабировать само изображение внутри окна, а средней кнопкой мыши перемещать его. По нажатию правой кнопки мыши появляется меню, позволяющее восстановить исходный масштаб изображения или закрыть окно; \item[-H, -{}-time-interval=T] интервал времени между последовательными записями в лог и HISTORY (в секундах); \item[-L, -{}-log-only] не сохранять изображения, лишь вести запись статистки в лог; \item[-l, -{}-tlog] отдельно вести запись рабочих температур в файл \verb'temp_log'; \item[-s, -{}-only-stat] не сохранять изображение, а только отобразить статистику. \end{description} \section{Заголовки FITS-файлов} Набор генерируемых утилитой заголовков FITS-файлов зависит от того, скомпилирована ли утилита с поддержкой АСУ БТА и запущен ли на компьютере демон АСУ. Минимальный общий набор заголовков следующий: \begin{description} \item[FILE] название оригинального файла; \item[INSTRUME] название прибора (по умолчанию <>); \item[PXSIZE] размер пикселя в мкм вида <>; \item[XPIXELSZ, YPIXELSZ] горизонтальный и вертикальный размер пикселя в мкм (число с плавающей точкой); \item[VIEW\_FIELD] поле зрения камеры в пикселях; \item[CRVAL1, CRVAL2] (-1); \item[IMAGETYP] тип изображения; \item[DATAMAX, DATAMIN] наибольшее и наименьшее значение в рабочем диапазоне (для 16 бит этого 65535 и 0 соответственно); \item[STATMAX, STATMIN] статистические максимум и минимум по изображению; \item[STATAVR, STATSTD] среднее и среднеквадратическое значения по изображению; \item[TEMP0, TEMP1] температура чипа ПЗС на момент начала и окончания экспозиции соответственно ($^\circ C$); \item[TEMPBODY] температура горячего спая Пельтье на время окончания экспозиции ($^\circ C$); \item[CAMTEMP] температура чипа в Кельвинах на окончание экспозиции; \item[EXPTIME] время экспозиции в секундах; \item[DATE] дата и время запуска утилиты, UTC; \item[DATE-OBS] местные дата и время записи файла; \item[XBIN, YBIN] биннинг. \end{description} При поддержке АСУ БТА набор заголовков дополняется следующими: \begin{description} \item[TELESCOP] название телескопа (<>); \item[ORIGIN] название организации (<>); \item[OBSERVAT] название обсерватории (<>) \item[ALT\_OBS] высота над уровнем моря (2070); \item[LONG\_OBS] долгота в градусах (41.4414); \item[LAT\_OBS] широта в градусах (43.6535); \item[ST] звездное время в секундах (в комментарии также указано в строковом формате); \item[UT] UTC в секундах (в комментарии также указано в строковом формате); \item[JD] юлианская дата (пока что -- в неправильном формате); \item[FOCUS] фокус: <> или <>; \item[VAL\_F] значение отсчета фокуса в миллиметрах; \item[EQUINOX] эпоха значений RA/DEC (обычно -- дата получения изображения в годах); \item[RA, DEC] полярные координаты объекта на эпоху EQUINOX; \item[S\_RA, S\_DEC] введенные пользователем координаты; \item[T\_RA, T\_DEC] координаты телескопа; \item[A, Z] горизонтальные координаты видимого места объекта; \item[ROTANGLE] параллактический угол; \item[VAL\_A, VAL\_Z] горизонтальные координаты телескопа; \item[VAL\_P] значение отсчетов с поворотного стола P2 (в градусах); \item[VAL\_D] азимут купола; \item[OUTTEMP] внешняя температура; \item[DOMETEMP] температура в подкупольном; \item[MIRRTEMP] температура зеркала; \item[PRESSURE] атмосферное давление, мм.рт.ст.; \item[WIND] скорость ветра; \item[HUM] влажность; \item[AIRMASS] воздушная масса; \item[WVAM] воздушная масса водяных паров; \item[ATMDENS] давление атмосферного столба; \item[WVDENS] давление столба водяных паров. \end{description} \end{document}