\documentclass{article} \usepackage[usenames,dvipsnames]{xcolor} \usepackage{fullpage} \usepackage[utf8]{inputenc} \usepackage[russian]{babel} \usepackage{array} \usepackage{booktabs} \usepackage[section]{placeins} \usepackage[flushleft]{threeparttable} \usepackage{tcolorbox} \usepackage{multirow} \usepackage{hyperref} \hypersetup{ colorlinks=true, linkcolor=blue, filecolor=magenta, urlcolor=cyan, pdftitle={Overleaf Example}, pdfpagemode=FullScreen, linktocpage=true, } \urlstyle{same} \usepackage{tocloft} % \renewcommand{\cftpartleader}{\cftdotfill{\cftdotsep}} % \renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % for chapters \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} \usepackage{fancyvrb} \usepackage{fvextra} \usepackage{stackengine} \usepackage{scalerel} \newcommand\dangersign[1][2ex]{% \renewcommand\stacktype{L}% \scaleto{\stackon[1.3pt]{\color{black}$\triangle$}{\tiny !}}{#1}% } \newcommand{\art}{\textit{СРГ/АРТ-XC}} \newcommand{\artf}{\textit{АРТ-XC им. М.~Н.~Павлинского}} \newcommand{\srgart}{\textit{СРГ/АРТ-XC}} \newcommand{\pipe}{\textsc{artpipeline}} \newcommand{\prods}{\textsc{artproducts}} \newcommand{\artim}{\textsc{artimage}} \newcommand{\artev}{\textsc{artevlist}} \newcommand{\artarf}{\textsc{artmkarf}} \newcommand{\artax}{\textsc{artskyaxis}} \newcommand{\artcoord}{\textsc{artskycoord}} \newcommand{\artsp}{\textsc{artxspec}} \newcommand{\artlc}{\textsc{artlcurve}} % \hypertarget{thesentence}{this sentence} % \hyperlink{thesentence}{any sentence} \renewcommand\arraystretch{1.2} \title{Краткое руководство по обработке данных телескопа \srgart\ им. М.~Н.~Павлинского} \author{ Кузнецова Екатерина (ИКИ РАН, eakuznetsova@cosmos.ru) \\ Штыковский Андрей (ИКИ РАН, sht.job@gmail.com) \\ } \date{Версия 2.1 beta от \today} \begin{document} \maketitle \tableofcontents \newpage \section{Требования к рабочему окружению} \label{sec:env} Для работы конвейера обработки требуются установленные: \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \begin{itemize} \item \textbf{HEASOFT версии 6.28} и старше (см. \href{https://heasarc.gsfc.nasa.gov/docs/software/heasoft/}{здесь}) \item \textbf{Python версии 3.8} и старше (см. \href{https://www.python.org/downloads/}{здесь}) \end{itemize} \end{tcolorbox} \section{Подготовка рабочего окружения на серверах СРГ} \label{sec:prep} \noindent Файлы конвейера обработки и калибровочные файлы лежат на серверах СРГ в директории: \\ \verb*|/srg/work/srg/artxc|. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \noindent Для того чтобы проинициализировать рабочее окружение необходимо подгрузить переменные окружения при помощи файла artinit.csh, который который лежит в этой же директории. Пример вызова команды: \begin{verbatim} source /srg/work/srg/artxc/artinit.csh \end{verbatim} \noindent Чтобы каждый раз не писать длинную команду можно создать \verb*|alias|, прописав в файле $\sim$/.tcshrc: \begin{verbatim} alias artinit "source /srg/work/srg/artxc/artinit.csh" \end{verbatim} и выполнив \verb*|source|~\verb*|~/.tcshrc|. После этого в терминале можно инициализировать окружение командой \verb*|artinit|. \end{tcolorbox} % На серверах СРГ установлено несколько разных версий программного обеспечения \textsc{heasoft}, которые нужно по-разному инициализировать для каждого сервера. В будущем планируется обновить программное обеспечение на серверах и привести к единой системе инициализации необходимого окружения. На 18-м сервере программное обеспечение \textsc{HEASOFT v.6.29} и все необходимые библиотеки можно инициализировать, прописав в файле \verb*|~\.tcshrc| следующее: % \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] % \begin{Verbatim}[breaklines=true, breakanywhere=true] % setenv LD_LIBRARY_PATH "" % setenv LD_LIBRARY_PATH /opt/soft/heasoft-6.24/x86_64-pc-linux-gnu-libc2.17/lib/:/opt/soft/psoft/libpng/lib/:$LD_LIBRARY_PATH % setenv PATH /opt/soft/bin/:$PATH % setenv CALDB /srg/work/srg/artxc/caldb % alias cdbinit "source $CALDB/software/tools/caldbinit.csh" % setenv HEADAS /opt/soft/psoft/heasoft-6.29/x86_64-pc-linux-gnu-libc2.17 % alias heainit "source $HEADAS/headas-init.csh" % alias artinit "source /srg/work/srg/artxc/artinit.csh" % \end{Verbatim} % \end{tcolorbox} На серверах СРГ установлено несколько разных версий программного обеспечения \textsc{heasoft}, которые нужно по-разному инициализировать для каждого сервера. В будущем планируется обновить программное обеспечение на серверах и привести к единой системе инициализации необходимого окружения. На 10-14 серверах программное обеспечение \textsc{HEASOFT v.6.29} и все необходимые библиотеки можно инициализировать, прописав в файле \verb*|~\.tcshrc| следующее: \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] alias artinit "source /srg/work/srg/artxc/artinit.csh" setenv LD_LIBRARY_PATH "" setenv LD_LIBRARY_PATH /opt/soft/psoft/gcc-9.3.0/lib64/:/opt/soft/psoft/lib/:$LD_LIBRARY_PATH setenv PATH /opt/soft/psoft/bin:$PATH setenv PYTHONPATH /opt/soft/psoft/bin source /opt/soft/psoft/python_venv/bin/activate.csh setenv HEADAS /opt/soft/psoft/heasoft-6.29/x86_64-pc-linux-gnu-libc2.17 alias heainit "source $HEADAS/headas-init.csh" setenv CALDB /srg/work/srg/artxc/caldb alias cdbinit "source $CALDB/software/tools/caldbinit.csh" \end{Verbatim} \end{tcolorbox} \section{Уровни данных} \label{sec:data} В процессе обработки данных космического телескопа \art\ используются и производятся следующие уровни данных: \begin{itemize} \item L0 - исходные (сырые) данные \item L1 - калиброванные данные \item L2 - калиброванные и очищенные данные \item L3 - продукты высокого уровня \end{itemize} Данные на всех уровнях представлены в формате FITS. Исходные данные уровня L0 представляют собой списки некалиброванных и неочищенных событий и кватернионы ориентации телескопа \art, измеренные Гироскопическим Измерителем Вектора Угловых Скоростей (ГИВУС) (см. таблицу~\ref{tab:l0}). На данный момент архив данных находится в разработке, поэтому необходимо заранее уточнить реальную директорию, в которой лежат данные необходимого наблюдения. Некоторые наблюдения лежат в директории \verb*|/srg/a1/work/oper/data/archive/observations//L0/| или, если нет доступка к \verb*|/srg/a1|, \verb*|/srg/work/oper/data/archive/observations//L0/|, где \verb*|| --- индивидуальный номер наблюдения. \begin{table}[!h] \centering \caption{Файлы директории L0, которая содержит исходные данные.} \begin{tabular}{| m{5cm} | m{10.7cm} |} \hline \textbf{Название / Пример} & \textbf{Описание} \\ \hline \verb*|T[1-7]_uf.fits|/ \verb*|art119100400010T1_uf.fits| & Списки некалиброванных и неочищенных событий. \verb*|=art[0-1]| --- префикс используемых файлов. Индекс \verb*|0| соответствует данным, набранным во время наблюдения, \verb*|1| --- данным, полученным во время перенаведения на объект (pre-slew, т.е. от момента окончания предыдущего наблюдения до момента начала текущего наблюдения). Индекс \verb*|T[1-7]| соответствует номеру модуля телескопа АРТ-XC от 1 до 7. \\ \hline \verb*|_gyro.fits|/ \verb*|art119100400010_gyro.fits| & Файл с кватернионами ориентации телескопа. \\ \hline \end{tabular} \label{tab:l0} \end{table} % \section{Архив данных наблюдений на серверах СРГ} % \label{sec:arch} % Архив данных наблюдений подготовлен согласно программе наблюдений СРГ. Каждое наблюдение лежит в отдельной директории и содержит файлы наведений и интервалов хорошего времени, а также данные сырые сырые списки событий уровня L0. Подготовленные к последующей обработке файлы наблюдений находятся в директории \textbf{(необходимо уточнить директорию)}: % \begin{verbatim} % /srg/a1/work/oper/data/archive/observations/$obsid/L0 % \end{verbatim} % \noindent % Подневный архив наблюдений, обновляемый на ежедневной основе, содержит непрерывные данные наблюдений, разделенные по дням наблюдений (ARTDAYS). Архив содержит файлы наведений и списки событий уровней L0, L1 и L2. Подневный архив наблюдений лежит в директории: % \begin{verbatim} % /srg/a1/work/oper/data/artdays % \end{verbatim} \section{Этапы обработки данных} \label{sec:steps} Обработка исходных данных уровня L0 проводится в несколько этапов: \begin{enumerate} \item калибровка сырых данных уровня L0, в результате чего генерируются данные уровня L1 \item очистка калиброванных данных уровня L1, что производит данные уровня L2 \item генерация научных продуктов высокого уровня L3 \end{enumerate} Первый и второй этапы проводятся с помощью процедуры \pipe\ (см. секцию~\ref{sec:pipe}), за третий этап отвечает процедура \prods\ (см. секцию~\ref{sec:prods}). Рисунок \ref{fig:proc} содержит схему уровней данных с указанием процедур, с помощью которого производится каждый следующий уровень. Стоить отметить, что данные уровня L1 в схеме не отображены, т.к. являются промежуточной стадией процедуры \pipe. \begin{figure*}[h!] \centerline{\includegraphics[width=0.8\textwidth]{data_levels.png}} \caption{Этапы обработки и уровни данных космического телескопа \artf.} \label{fig:proc} \end{figure*} \section{\pipe\ --- получение калиброванных и очищенных данных уровня L2} \label{sec:pipe} Первый этап обработки данных --- калибровка и очистка (уровень данных L2). % \textbf{На этапе очистки к калиброванному списку событий применяются фильтры .... } Для выполнения первого этапа обработки данных используется процедура \pipe, параметры вызова которой приведены в Таблице~\ref{tab:pipepar}. При возникновении ошибок выполнения данной процедуры смотрите секцию~\ref{sec:err}. Промежуточные файлы калиброванных, но не очищенных, списков событий (уровень L1) не сохраняются после успешного завершения процедуры. Процедура \pipe\ поддерживает использование пользовательских временных интервалов, которые можно задать с помощью ключа \verb*|--usergti|. После успешного выполнения этой команды в директории \verb*|./processed/119100400010| будет создана поддиректория L2, которая будет содержать калиброванные очищенные данные. Содержимое директории L2, созданной после успешного завершения процедуры \pipe, описано в таблице~\ref{tab:l2}. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример вызова \pipe} (на примере наблюдения OBSID=11910040001): \begin{verbatim} artpipeline \ stem=art119100400010 \ srcdir=/data/artxc/obsid/119100400010/L0 \ dstdir=./processed/119100400010 tmpdir=/temp \end{verbatim} \dangersign[4ex] Указанную в \verb*|srcdir| директорию \verb*|/data/artxc/obsid| необходимо заменить на реальную директорию, в которой лежат данные которые необходимо обработать. \end{tcolorbox} \begin{table}[!h] \centering \caption{ Параметры процедуры \pipe. Переменная --- обозначает путь к соответствующим файлам.} \begin{tabular}{| m{5em} | m{5cm}| m{8.2cm} |} \hline\hline \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ \hline \verb*|stem| & \verb*|art[0-1]| & Префикс для имен входных и выходных файлов. \\ \hline \verb*|srcdir| & \verb*|//L0| & Входная директория, указывающая путь к файлам данных уровня L0. \\ \hline \verb*|dstdir| & \verb*|/| & Выходная директория, в которой будут созданы поддиректории L1 и L2. Создаётся новая или используется уже существующая. \\ \hline \verb*|tmpdir| & \verb*|/temp| & Директория для временных файлов. Создаётся новая или используется уже существующая. В директории, указанной в параметре \verb*|tmpdir| создаётся новая директория для размещения временных файлов, генерируемых в процессе работы процедуры. При успешном завершении процедуры эта директория автоматически удаляется. Если Вы работаете на серверах сети СРГ, то эта директория очищается при перезагрузке сервера. \\ \hline \verb*|--usergti| & \verb*|/.fits| & Пользовательский файл с необходимыми временными интервалами (опциональный параметр).\\ \hline % \verb*|--seed| & & Параметр для генератора случайных чисел. Выбирается автоматически, но может быть задан вручную, например, для полного повторения результатов запуска \pipe. \\ % \hline \end{tabular} \label{tab:pipepar} \end{table} %В данной процедуре заложен генератор случайных чисел, при помощи которого разыгрываются значения в колонках списка событий, содержащих информацию об энергии пришедшего фотона (\verb*|[ENERGY]|, \verb*|[ENERGY_BOT]|, \verb*|[ENERGY_TOP]|) и о его небесных координатах (\verb*|[RA]|, \verb*|[DEC]|). Генератор случайных чисел определяется числом \verb*|[SEED]|, которое при каждом запуске \pipe\ обновляется и записывается в \verb*|HEADER| полученных списков событий уровня L2. Автоматически при запуске \pipe\ для энергии пришедшего фотона и его небесных координат генерируются разные числа. Однако существует возможность вручную задавать число \verb*|[SEED]| с помощью параметра \verb*|--seed| процедуры \pipe. В таком случае генератор случайных чисел использует одинаковое число \verb*|[SEED]| для розыгрыша энергий и небесных координат. При необходимости полностью повторить результаты того или иного запуска \pipe, необходимо при каждом запуске \pipe\ указывать одинаковый параметр \verb*|--seed|. \begin{table}[!h] \centering \caption{Файлы директории L2, генерируемые процедурой \pipe.} \begin{tabular}{| m{5cm} | m{10.7cm} |} \hline \textbf{Название / Пример} & \textbf{Описание} \\ \hline \verb*|_att.fits|/ \verb*|art119100400010_att.fits| & Файл наведения телескопа. \\ \hline \verb*|_ori.fits|/ \verb*|art119100400010_ori.fits| & Файл ориентации телескопа. \\ \hline \verb*|T[1-7]_cl.fits|/ \verb*|art119100400010T1_cl.evt| & Файлы с калиброванными и очищенными списками событий для каждого телескопа. Индекс T[1-7] соответствует номеру модуля телескопа \art\ от 1 до 7. \\ \hline \end{tabular} \label{tab:l2} \end{table} \FloatBarrier \section{\prods\ --- получение продуктов высокого уровня L3} \label{sec:prods} Для получения продуктов высокого уровня необходимо выполнить 4 шага: \begin{enumerate} \item задать область неба (секция~\ref{sec:wcs}); \item произвести привязку данных к заданной области неба с помощью \prods, в результате чего производятся списки событий и изображения неба (секция~\ref{sec:artprod1}); \item определить регионы для извлечения сигнала источника и оценки фонового излучения (секция~\ref{sec:reg}); \item получить кривые блеска и спектры с помощью \prods\ (секция~\ref{sec:artprod2}). \end{enumerate} \noindent Каждый этап подробно описан ниже. \subsection{Определение области неба} \label{sec:wcs} Для определения разметки области неба, на которую будут проецироваться фотоны с помощью процедуры \prods, необходимо создать текстовый WCS-файл с заданными параметрами координатной сетки. Описание параметров, которые должны быть записаны в WCS-файле, приведены в таблице~\ref{tab:wcs}. Предлагается задавать наименование WCS-файла в следующем формате: \verb*|_skytile.wcs|. Процедура \prods\ поддерживает только систему координат FK5. \begin{table}[!h] \centering \caption{Параметры WCS-файла (в разработке). На данный момент изменения фиксированных параметров невозможны.} \begin{tabular}{| m{5em} | m{4cm}| m{9.4cm} |} \hline\hline \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ \hline \verb*|nx| & 1024 пикс. & Количество пикселей по оси X. \\ \verb*|ny| & 1024 пикс. & Количество пикселей по оси Y. \\ & & Процедура \prods\ умножает эти параметры на 2 и прибавляет 1.\\ \hline \verb*|crpix1| & 512 пикс. & Координата опорной точки по оси X. \\ \verb*|crpix2| & 512 пикс. & Координата опорной точки по оси Y. \\ & & Процедура \prods\ умножает эти параметры на 2.\\ \hline \verb*|crval1| & RA, $^{\circ}$ & Прямое восхождение (RA) опорной точки. \\ \verb*|crval2| & Dec, $^{\circ}$ & Наклонение (Dec) опорной точки. \\ \hline \verb*|cdelt1| & $-0.0025318223732333^{\circ}$ & Шаг по прямому восхождению вдоль оси X. Фиксированный параметр.\\ \verb*|cdelt2| & $0.0025318223732333^{\circ}$ & Шаг по наклонению вдоль оси Y. Фиксированный параметр. \\ \hline \verb*|crota2| & $0^{\circ}$ & Угол наклона координатной сетки. Фиксированный параметр. \\ \hline \end{tabular} \label{tab:wcs} \end{table} \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример содержания WCS файла} для источника GRO~J1008--571 с координатами RA = 152.4457, Dec = -58.293 (OBSID=11910040001): \begin{verbatim} { "nx" : 1024, "ny" : 1024, "crpix1": 512, "crpix2": 512, "crval1": 152.4457, "crval2": -58.293, "cdelt1": -0.0025318223732333, "cdelt2": 0.0025318223732333, "crota2": 0 } \end{verbatim} \end{tcolorbox} \subsection{Привязка списков событий к координатам и получение изображения} \label{sec:artprod1} На данном этапе проводится привязка калиброванных и очищенных списков событий к координатной разметке, заданной WCS-файлом (см. секцию ~\ref{sec:wcs}), что позволяет получить изображение неба. Для этого необходимо запустить процедуру \prods\ с ключами \verb*|--prepare-skytile| и \\ \verb*|--wcs=/_skytile.wcs|, где \verb*|| --- путь к директории, в которой находится нужный WCS-файл. Параметры процедуры \prods\ описаны в таблице~\ref{tab:prod1}. Список возможных ошибок выполнения данной процедуры и их решений указан в секцию~\ref{sec:err}. Стоить отметить, что процедура \prods\ не поддерживает использование пользовательских временных интервалов, заданных с помощью ключа \verb*|--usergti|. При необходимости использовать пользовательские временные интервалы рекомендуется запустить сначала \pipe\ (см. секцию~\ref{sec:pipe}) с соответствующим ключом \verb*|--usergti|, а затем на полученных списках событий запускать \prods. Процедура \prods\ может производить изображения в определённом энергетическом диапазоне от $E_{min}$ до $E_{max}$ с помощью ключей \verb*|--elow| и \verb*|--ehigh|, которые соответствуют нижней и верхней границам заданного диапазона соответственно (см. таблицу~\ref{tab:prod1}). При успешном выполнении команды \prods\ будут созданы списки событий с заданной системой координат (WCS) в поддиректории \verb*|//L3/events| и построены изображения указанной области неба по каждому модулю телескопа \art\ и совместное по всем модулям в поддиректории \verb*|//L3/img| (см. таблицу~\ref{tab:ev_img}). Поддиректории будут созданы в выходной директории \verb*|dstdir=//L3|, указанной при запуске \prods. % \noindent % Для определения регионов для извлечения данных необходимо выполнить команду \textsc{artproducts} с ключами prepare-skytile и wcs (с указанием WCS для построения изображения). \begin{table}[!h] \centering \caption{Параметры и ключи процедуры \prods, необходимые для привязки списка событий к заданной области неба и построению изображения. Переменная --- обозначает путь к соответствующим файлам.} \begin{tabular}{| m{5em} | m{5cm}| m{8.2cm} |} \hline\hline \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ \hline \verb*|stem| & \verb*|art[0-1]| & Префикс для имен входных и выходных файлов. \\ \hline \verb*|srcdir| & \verb*|//L2| & Входная директория, указывающая путь к файлам данных уровня L2. \\ \hline \verb*|dstdir| & \verb*|//L3| & Выходная директория, в которой будут созданы поддиректории \verb*|events| и \verb*|img|. Создаётся новая или используется уже существующая. \\ \hline \verb*|tmpdir| & \verb*|/temp| & Директория для временных файлов. Создаётся новая или используется уже существующая. В директории, указанной в параметре \verb*|tmpdir| создаётся новая директория для размещения временных файлов, генерируемых в процессе работы процедуры. При успешном завершении процедуры эта директория автоматически удаляется. Если Вы работаете на серверах сети СРГ, то эта директория очищается при перезагрузке сервера. \\ \hline \verb*|--prepare-| \verb*|skytile| & & Ключ, запускающий процедуру \prods\ в режиме, который проводит привязку данных уровня L2 к области неба, заданной WCS-файлом. \\ \hline \verb*|--wcs| & \verb*|/_skytile.wcs| & WCS-файл, содержащий информацию о системе координат и области неба, на которую будут проецироваться списки событий уровня L2.\\ \hline \multicolumn{3}{|c|}{\textbf{Опциональные параметры}}\\ \hline \verb*|--elow| & $E_{min}$, кэВ & Нижняя граница энергетического диапазона. По умолчанию $E_{min}=4$~кэВ. \\ \hline \verb*|--ehigh| & $E_{max}$, кэВ & Верхняя граница энергетического диапазона. По умолчанию $E_{max}=12$~кэВ. \\ % \hline % \verb*|--usergti| & \verb*|/.fits| & Пользовательский файл с необходимыми временными интервалами (опциональный параметр).\\ \hline \end{tabular} \label{tab:prod1} \end{table} \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример вызова \prods} (на примере наблюдения OBSID=11910040001) для подготовки определения регионов: \begin{verbatim} artproducts \ stem=art119100400010 \ srcdir=./processed/119100400010/L2 \ dstdir=./processed/119100400010/L3 \ tmpdir=/temp \ --prepare-skytile \ --wcs=./art119100400010_skytile.wcs \end{verbatim} % --wcs=/data/artxc/obsid/119100400010/meta/art119100400010_skytile.wcs \dangersign[4ex] Повторный запуск процедуры \prods\ приводит к перезаписи файлов в директории \verb*|L3\img| и не изменяет файлы директории \verb*|L3\events|. Полная перезапись файлов на данный момент не реализована, поэтому перед повторным запуском процедуры рекомендуется удалить все ранее сгенерированные ей файлы или изменить выходную директорию. \end{tcolorbox} \begin{table}[!h] \centering \caption{Файлы, генерируемые после вызова процедуры \prods, описанной в пункте~\ref{sec:artprod1}. Для каждого случая индекс T[1-7] соответствует номеру модуля телескопа \art\ от 1 до 7.} \begin{tabular}{| m{5cm} | m{10.7cm} |} \hline \textbf{Название / Пример} & \textbf{Описание} \\ \hline \multicolumn{2}{|c|}{\textbf{Директория events}} \\ \hline \verb*|T[1-7]_cl.evt|/ \verb*|art119100400010T1_cl.evt| & файлы с калиброванными и очищенными списками событий, полученные каждым модулем телескопа \art, с привязкой к координатной сетке, заданной WCS-файлом на предыдущем шаге. \\ \hline \multicolumn{2}{|c|}{\textbf{Директория img}} \\ \hline T[1-7].img/ \verb*|art119100400010T1.img| & индивидуальные для каждого модуля телескопа \art\ изображения области неба, заданной WCS-файлом. \\ T[1-7]\_all.img/ \verb*|art119100400010T1_all.img| & изображение заданной области неба, просуммированное по всем модулям телескопа \art.\\ \hline \end{tabular} \label{tab:ev_img} \end{table} \subsection{Определение регионов для извлечения информации об источнике} \label{sec:reg} Перед тем, как получить кривые блеска и спектры источника, необходимо определить регионы, из которых будет собираться сигнал источника и излучение фона. Для этого необходимо на суммарном изображении неба (например, \verb*|art119100400010T1_all.img|, см. таблицу~\ref{tab:ev_img}), полученном при запуске \prods, определить два региона и сохранить их в формате программы \textsc{ds9}. На данный момент поддерживаются только круговые регионы, при этом для извлечения сигнала источника рекомендуется задавать единственный регион с радиусом $R=136.5''$, что соответствует трём пикселям детектора, каждый из которых имеет размер $45.5''$. Для оценки фонового излучения разрешается задавать несколько регионов без регионов исключения. % Суммарное изображение, полученное при запуске \prods, необходимо открыть с DS9 и определить регионы для извлечения фотонов источника и фона \textbf{(на данный момент поддерживаются только круговые регионы)}. % На данный момент процедура \prod\ поддерживает только круговые регионы. Для точечных источников рекомендуемый размер региона составляет $R=135''$. \subsection{Получение спектров и кривых блеска} \label{sec:artprod2} \noindent Предыдущие шаги были подготовительными этапами для получения научных продуктов высокого уровня L3, а именно: кривых блеска и спектров. Списки событий были привязаны к координатной сетке WCS, регионы источника и фона были определены по полученным изображениям. Теперь нужно произвести вызов процедуры \prods\ с указанием регионов для извлечения фотонов источника и фона, положения источника, файла ориентации телескопа и параметров кривой блеска. В качестве входной директории указывается директория \verb*|//L3/events|, содержащая списки событий с привязкой к координатам, полученные на более раннем этапе (см. секцию~\ref{sec:artprod1}). Полный список параметров процедуры \prods\ указан в таблице~\ref{tab:prod2}. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример вызова \prods} (на примере наблюдения OBSID=11910040001) с использованием подготовленного WCS-файла: \begin{verbatim} artproducts \ stem=art119100400010 \ srcdir=./processed/119100400010/L3/events \ dstdir=./processed/119100400010/L3 \ tmpdir=/temp \ --orient=./processed/L2/art119100400010_ori.fits \ --srcreg=./processed/L3/reg/art119100400010_src.reg \ --bkgreg=./processed/L3/reg/art119100400010_bkg.reg \ --srcra=152.4457 \ --srcdec=-58.293 \ --elow=4 \ --ehigh=12 \ --binsize=1 \end{verbatim} \dangersign[4ex] Обратите внимание, что в \verb*|srcdir| указывается директория событий, полученных после вызова процедуры \prods\ в пункте~\ref{sec:artprod1}. \dangersign[4ex] \dangersign[4ex] Повторный запуск процедуры \prods\ приводит к ошибке выполнения данной программы. Перезапись файлов при повторном запуске процедуры на данный момент не реализована, поэтому рекомендуется удалить ранее сгенерированные файлы или изменить выходную директорию. \end{tcolorbox} \begin{table}[!h] \centering \caption{Параметры и ключи процедуры \prods, необходимые для получения кривых блеска и спектров. Переменная --- обозначает путь к соответствующим файлам. } \begin{tabular}{| m{5em} | m{5cm}| m{8.2cm} |} \hline\hline \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ \hline \verb*|stem| & \verb*|art[0-1]| & Префикс для имен входных и выходных файлов. \\ \hline \verb*|srcdir| & \verb*|//L3/events| & Входная директория, указывающая путь к спискам событий уровня L3. \\ \hline \verb*|dstdir| & \verb*|//L3| & Выходная директория, в которой будут созданы поддиректории \verb*|pha| и \verb*|lc|. Создаётся новая или используется уже существующая. \\ \hline \verb*|tmpdir| & \verb*|/temp| & Директория для временных файлов. Создаётся новая или используется уже существующая. В директории, указанной в параметре \verb*|tmpdir| создаётся новая директория для размещения временных файлов, генерируемых в процессе работы процедуры. При успешном завершении процедуры эта директория автоматически удаляется. Если Вы работаете на серверах сети СРГ, то эта директория очищается при перезагрузке сервера. \\ \hline \verb*|--orient| & \verb*|//L2/| \verb*|_ori.fits| & Файл ориентации телескопа \art. \\ \hline \verb*|--srcreg| & \verb*|/.reg| & Регион, из которого извлекается излучение источника. \\ \hline \verb*|--bkgreg| & \verb*|/.reg| & Регион, внутри которого оценивается уровень фонового излучения. \\ \hline \verb*|--srcra| & \verb*|RA|, $^{\circ}$ & Прямое восхождение (RA) источника. \\ \hline \verb*|--srcdec| & \verb*|Dec|, $^{\circ}$ & Наклонение (Dec) источника.\\ \hline \multicolumn{3}{|c|}{\textbf{Параметры для получения кривых блеска}}\\ \hline \verb*|--elow| & $E_{min}$, кэВ & Нижняя граница энергетического диапазона. По умолчанию $E_{min}=4$~кэВ. \\ \hline \verb*|--ehigh| & $E_{max}$, кэВ & Верхняя граница энергетического диапазона. По умолчанию $E_{max}=12$~кэВ. \\ \hline \verb*|--binsize| & $T_{bin}$, с & Размер бина кривой блеска. По умолчанию $T_{bin}=1$~с. \\ \hline % \multicolumn{3}{|c|}{\textbf{Опциональные параметры}}\\ % \hline % \verb*|--usergti| & \verb*|/.fits| & Пользовательский файл с необходимыми временными интервалами.\\ % \hline \end{tabular} \label{tab:prod2} \end{table} \begin{table}[!ht] \centering \caption{Файлы, генерируемые после вызова процедуры \prods, описанной в пункте~\ref{sec:artprod2}. Для каждого случая индекс T[1-7] соответствует номеру модуля телескопа \art\ от 1 до 7.} \begin{tabular}{| m{7cm} | m{8.7cm} |} \hline \textbf{Название / Пример} & \textbf{Описание} \\ \hline \multicolumn{2}{|c|}{\textbf{Директория lc}} \\ \hline \verb*|T[1-7]_src.lc|/ \verb*|art119100400010T1_src.lc| & Кривая блеска источника в энергетическом диапазоне $E_{min}-E_{max}$ с временным шагом $T_{bin}$. \\ \hline \verb*|T[1-7]_bkg.lc|/ \verb*|art119100400010T1_bkg.lc| & Кривая блеска фонового излучения в энергетическом диапазоне $E_{min}-E_{max}$ с временным шагом $T_{bin}$. \\ \hline \multicolumn{2}{|c|}{\textbf{Директория pha}} \\ \hline \verb*|T[1-7]_src.pha|/ \verb*|art119100400010T1_src.pha| & Спектр источника. \\ \hline \verb*|T[1-7]_bkg.pha|/ \verb*|art119100400010T1_bkg.pha| & Спектр фона.\\ \hline \verb*|T[1-7].arf|/ \verb*|art119100400010T1.arf| & ARF (Ancillary Response File) --- файл, описывающий зависимость эффективной площади детектора от энергии фотона. \\ \hline \verb*|artxc_rmf_T[1-7]_20191030_v003.rmf|/ \verb*|artxc_rmf_T1_20191030_v003.rmf| & RMF (Responce Matrix File) --- файл, содержащий матрицу отклика детектора.\\ \hline \end{tabular} \label{tab:lc_pha} \end{table} При успешном завершении процедуры \prods\ в выходной директории \verb*|//L3| будут созданы поддиректории \verb*|lc| и \verb*|pha|, содержащие файлы кривых блеска и спектров соответственно. Список генерируемых файлов приведён в таблице~\ref{tab:lc_pha}. При возникновении ошибок выполнения данной процедуры смотрите секцию~\ref{sec:err}. % \begin{table}[h!] % \centering % \caption{ Параметры процедуры \textsc{artproducts}.} % \begin{tabular}{c|l|l} % \hline\hline % Параметр & Значение & Комментарий \\ % \hline % stem & префикс для имен выходных файлов & \\ % srcdir & входная директория & путь к файлам L2 \\ % dstdir & выходная директория & будут созданы поддиректории: \\ % & & events, img, lc, pha \\ % tmpdir & директория для временных файлов & \\ % --usergti & пользовательский gti (fits) & \\ % --orient & файл наведений обсерватории & \\ % --srcreg & ds9 регион источника & * \\ % --bkgreg & ds9 регион фона & ** \\ % --elow & нижняя граница энерг. диапазона & кэВ, по умолчанию -- 4 \\ % --ehigh & верхняя граница энерг. диапазона & кэВ, по умолчанию -- 12 \\ % --binsize & размер бина кривой блеска & сек, по умолчанию -- 1 \\ % --wcs & WCS для построения изображения & \\ % --prepare-skytile & ключ для подготовки данных & \\ % --srcra & прямое восхождение источника & град \\ % --srcdec & склонение источника & град \\ % \hline % \end{tabular} % \begin{tablenotes} % \small % \item *) Для области источника поддерживаются только круговые регионы. Количество регионов ограничено одним. % \item **) Для области фона поддерживаются все основные формы регионов. Количество регионов не ограничивается. Не поддерживаются регионы исключения. % \end{tablenotes} % \end{table} \section{Рекомендации по работе с научными продуктами уровня L3} \label{sec:recom} \subsection{Спектры} \label{sec:spec} Процедура \prods\ создаёт 7 спектров, измеренных по каждому модулю телескопа \art. Большое количество спектров неудобно загружать вручную, поэтому в данной главе приведено несколько примеров кода, позволяющих ускорить работу со спектрами. Также здесь описаны особенности работы со спектрами телескопа \art. \subsubsection{Группировка данных} \label{sec:spec} Для использования статистики $\chi^2$ спектры необходимо перегруппировать так, чтобы отсчёты в каждом бине были нормально распределены. Каждый спектр рекомендуется перегруппировать с использованием команд \textsc{grrpha} или \textsc{ftgrouppha}, являющихся частью программного обеспечения \textsc{HEASOFT}. Спектры \textbf{ярких источников} могут быть перегруппированы единообразно, чтобы бины каждого спектра совпадали друг с другом. Рекомендуется группировать по 2 канала в бине для энергий до 20 кэВ, а от 20 кэВ --- по 5 или 10 каналов. Номер канала соответствует энергии, выраженной в кэВ и умноженной на 10. Для этого необходимо подготовить файл с информацией о том, как необходимо перегруппировать данные. Этот файл должен содержать 3 колонки: минимальный канал бина \verb*|MINCHAN|, максимальный канал бина \verb*|MAXCHAN|, число каналов в бине \verb*|NCHAN| (см. описание утилиты \href{https://heasarc.gsfc.nasa.gov/lheasoft/ftools/fhelp/grppha.txt}{grppha}). Если количество условий разбиения по каналам меньше 6, то эту информацию можно задавать напрямую в \textsc{grppha} с помощью команды: \verb*|group|~\verb*|50|~\verb*|200|~\verb*|2|~\verb*|201|~\verb*|250|~\verb*|5|~\verb*|251|~\verb*|300|~\verb*|10|. При необходимости можно увеличивать количество каналов в одном бине, однако рекомендуется указывать число \verb*|NCHAN|, не меньшее~2. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример содержания файла energy\_bins.txt с указанием границ бинов для перегруппировки спектров.} \begin{Verbatim}[breaklines=true, breakanywhere=true] 50 200 2 201 250 5 251 300 10 \end{Verbatim} \end{tcolorbox} Также необходимо следить за тем, чтобы на высоких энергиях было достаточно отсчётов над уровнем фона для использования статистики $\chi^2$. Для этого нужно, чтобы спектр источника значимо превышался над уровнем фона. Проверить это можно, например, построив на одном графике спектры фона с помощью \textsc{xspec} следующими командами: \verb*|setpl|~\verb*|back| и \verb*|pl|~\verb*|da|. Кроме того, можно сравнить количество отсчётов непосредственно в файлах со спектрами, однако, необходимо учитывать, что излучение источника и фона могли извлекаться из регионов разных площадей. Стоит отметить, что из-за технических особенностей телескопа \art\ рекомендуется маркировать все отсчёты с энергиями до 5~кэв и выше 30~кэВ флагом "BAD" (в нотации \textsc{grppha} "\verb*|bad| \verb*|0-49| \verb*|301-650|") и добавлять систематическую ошибку на уровне 3\% ("\verb*|SYSTEMATICS| \verb*|50-300| \verb*|0.03|"). %Пример простого скрипта для запуска \textsc{grppha} для спектров всех модулей телескопа приведён ниже. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример скрипта для перегруппировки спектров всех модулей телескопа \art\ с помощью процедуры \textsc{grppha} для яркого источника} (на примере наблюдения OBSID=11910040001). \begin{Verbatim}[breaklines=true, breakanywhere=true] #!/bin/bash for MOD in {1..7} do grppha infile="art119100400010T${MOD}_src.pha" outfile="art119100400010T${MOD}_src.grp.pha" comm="reset group & reset bad & bad 0-49 301-650 & group energy_bins.txt & SYSTEMATICS 50-300 0.03 & exit" done \end{Verbatim} % Здесь \verb*|energy_bins.txt| --- файл, содержащий информацию о разбиении спектра по каналам. \dangersign[4ex] После проведения перегруппировки спектров необходимо проверить, что каждый бин содержит не менее 30 (или 25) отсчётов над фоновыми бинами, чтобы можно было использовать статистику $\chi^2$. \end{tcolorbox} В случае \textbf{слабого источника} при единообразной перегруппировке спектров \textbf{слабых источников} может быть недостаточно отсчётов, чтобы использовать статистику $\chi^2$. В таком случае можно использовать утилиту \textsc{grppha} без указания, по каким каналам перегруппировать спектр. Достаточным будет перегруппировать каждый спектр индивидуально, чтобы в спектральном бине было не менее 30 (или 25) отсчётов с помощью команды \verb*|group|~\verb*|min|~\verb*|30|. В таком случае каждый спектр будет перегруппирован с индивидуальным разбиением по спектральным каналам. Пример скрипта для индивидуальной перегруппировки спектров представлен ниже. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример скрипта для индивидуальной перегруппировки спектров всех модулей телескопа \art\ с помощью процедуры \textsc{grppha} для слабого источника} (на примере наблюдения OBSID=11910040001). \begin{Verbatim}[breaklines=true, breakanywhere=true] #!/bin/bash for MOD in {1..7} do grppha infile="art119100400010T${MOD}_src.pha" outfile="art119100400010T${MOD}_src.grp.pha" comm="reset group & reset bad & bad 0-50 300-650 & group min 30 & SYSTEMATICS 50-300 0.03 & exit" done \end{Verbatim} \dangersign[4ex] После проведения перегруппировки спектров необходимо проверить, что каждый бин содержит не менее 30 (или 25) отсчётов, чтобы можно было использовать статистику $\chi^2$. \end{tcolorbox} Если же источник настолько слабый, что индивидуальная перегруппировка спектров с минимальным количеством отсчетов в бине, равным 30 (или 25), не приносит хороший результат, то спектры можно не перегруппировывать и аппроксимировать с использованием статистики Пуассона. В \textsc{xspec} статистика Пуассона включается с помощью команды \verb*|statistics|~\verb*|cstat|. О других возможных статистиках в \textsc{xspec} смотрите \href{https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XSappendixStatistics.html}{здесь}. \subsubsection{Работа в \textsc{xspec}} \label{sec:spec} Для проведение научного анализа в \textsc{Xspec} спектры необходимо загружать параллельно с помощью команды \\ \verb*|da|~\verb*|:| \verb*|T_src.pha|, где \verb*|| --- номер модуля телескопа \art. Для загрузки большого количества спектров одновременно удобно использовать скрипты на языке Tcl, которые можно загрузить в \textsc{xspec} следующим образом: \verb*|@/.tcl|, где \verb*|| --- путь к файлу со скриптом, а \verb*|.tcl| --- название самого файла. Пример такого скрипта приведён ниже. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример скрипта для загрузки спектров каждого модуля телескопа \art\ в \textsc{xspec}} (на примере наблюдения OBSID=11910040001). \begin{Verbatim}[breaklines=true, breakanywhere=true] #!/bin/bash for {set i 1} {$i < 8} {incr i} { da $i:$i "art119100400010T${i}_src.grp.pha" #загрузка спектров } setpl en cpd /xw ign 1-7: **-6. 20.-** #ограничение энергетического диапазона mo const*pow #простая спектральная модель fit pl eeuf del setpl group 1-7 #только для единообразно перегруппированных спектров \end{Verbatim} \dangersign[4ex] Обратите внимание, что для устранения неопределённостей, связанных с нормировкой разных модулей телескопа, необходимо к любой спектральной модели применять модель \verb*|const|. \end{tcolorbox} Если спектры были сгруппированы по каналам единым образом, для графического представления результатов в \textsc{xspec} можно использовать команду \verb*|setpl|~\verb*|group|~\verb*|1-7|, которая представит все 7 спектров в виде одного, при этом спектры всё ещё будут аппроксимироваться индивидуально. \section{Отдельные задачи процедуры \prods} \label{sec:tasks} В некоторых случаях удобно по готовому списку событий уровня L3 (см. секцию~\ref{sec:artprod1}) построить отдельно кривую блеска или изображение и не запускать полную процедуру \prods. Данная глава содержит описание возможностей небольших задач, входящих в процедуру \prods, которые способны произвести отдельные научные продукты. \subsection{\artim} \label{sec:im} Задача \artim\ строит изображение в заданном энергетическом диапазоне от $E_{min}$ до $E_{max}$ для готового списка событий выбранного модуля телескопа \art, полученного процедурой \prods\ (см. секцию~\ref{sec:artprod1}). Параметры задачи \artim\ перечислены в таблице~\ref{tab:img}, а пример вызова приведён ниже. При успешном запуске задачи \artim\ в директории, указанной в параметре \verb*|dstdir|, будет создан файл \verb*|T[1-7].img|. Построение суммарных изображений на данный момент реализовано только для полного запуска \prods\ (см. секцию~\ref{sec:artprod1}). Чтобы получить изображение для пользовательских временных интервалов, нужно выполнить пункт запуска \prods, описанный в секции~\ref{sec:artprod1}. % При необходимости получить суммарное изображение в нестандартном энергетическом диапазоне, после генерации изображений для каждого модуля телескопа с помощью \artim\ нужно использовать утилиту \textsc{ftpixcal}, являющуюся частью пакета \textsc{ftools} программного обеспечения \textsc{heasoft}. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример вызова \artim} (на примере наблюдения OBSID=11910040001 и первого модуля телескопа~\art): \begin{verbatim} artimage \ stem=art119100400010 \ input=art119100400010T1_cl.evt \ srcdir=./processed/119100400010/L3/events \ dstdir=./processed/119100400010/L3/img \ tmpdir=/temp --elow=6 --ehigh=12 \end{verbatim} \dangersign[4ex] Повторный запуск процедуры \artim\ приводит к перезаписи файлов в директории \verb*|dstdir|. \end{tcolorbox} %, с указанным файлом \verb*|--usergti=/.gti|, где \verb*|| и \verb*|| --- путь к файлу и имя файла, содержащего пользовательские временные интервалы, соответственно. . \begin{table}[!h] \centering \caption{Параметры и ключи процедуры \artim, необходимые для получения изображения для заданного списка событий. Переменная --- обозначает путь к соответствующим файлам. } \begin{tabular}{| m{5em} | m{5cm}| m{8.2cm} |} \hline\hline \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ \hline \verb*|stem| & \verb*|art[0-1]| & Префикс для имён входных и выходных файлов. \\ \hline \verb*|input| & \verb*|T[1-7]_cl.evt| & Входной файл со списком событий, по которому будет построено изображение. \\ \hline \verb*|srcdir| & \verb*|//L3/events| & Входная директория, указывающая путь к спискам событий уровня L3. \\ \hline \verb*|dstdir| & \verb*|//L3| & Выходная директория. \\ \hline \verb*|tmpdir| & \verb*|/temp| & Директория для временных файлов. \\ \hline \verb*|--elow| & $E_{min}$, кэВ & Нижняя граница энергетического диапазона. По умолчанию $E_{min}=4$~кэВ. \\ \hline \verb*|--ehigh| & $E_{max}$, кэВ & Верхняя граница энергетического диапазона. По умолчанию $E_{max}=12$~кэВ. \\ \hline \end{tabular} \label{tab:img} \end{table} \subsection{\artlc} \label{sec:lc} Задача \artlc\ строит кривую блеска в заданном энергетическом диапазоне от $E_{min}$ до $E_{max}$ с временным бином $T_{bin}$ для готового списка событий выбранного модуля телескопа \art, полученного процедурой \prods\ (см. секцию~\ref{sec:artprod1}). При этом кривая блеска источника извлекается из региона источника \verb*|srcreg|, а фон оценивается в фоновом регионе \verb*|bkgreg|. Параметры задачи \artlc\ перечислены в таблице~\ref{tab:lc}, а пример вызова приведён ниже. При успешном запуске задачи \artlc\ в директории, указанной в параметре \verb*|dstdir|, будут созданы файлы \verb*|T[1-7]_src.lc| и \verb*|T[1-7]_bkg.lc|, содержащие кривые блеска источника и фона соответственно. Чтобы получить кривую блеска для пользовательских временных интервалов, нужно выполнить пункт запуска \prods, описанный в секции~\ref{sec:artprod1}, т.к. в задаче \artlc\ это не реализовано. \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] \textbf{Пример вызова \artlc} (на примере наблюдения OBSID=11910040001 и первого модуля телескопа~\art): \begin{verbatim} artlcurve \ stem=art119100400010 \ input=art119100400010T1_cl.evt \ srcdir=./processed/119100400010/L3/events \ dstdir=./processed/119100400010/L3/lc \ tmpdir=/temp \ srcregion=./processed/L3/reg/art119100400010_src.reg \ bkgregion=./processed/L3/reg/art119100400010_bkg.reg \ --elow=6 --ehigh=12 \ --binsize=1 \end{verbatim} \dangersign[4ex] Обратите внимание, что файлы, содержащие информацию о регионах для источника (фона), задаются параметрами \verb*|srcregion| (\verb*|bkgregion|) вместо ранее используемых для процедуры \prods\ параметров \verb*|--srcreg| (\verb*|--bkgreg|). \dangersign[4ex] \dangersign[4ex] Повторный запуск процедуры \artlc\ приводит к ошибке выполнения данной программы. Перезапись файлов при повторном запуске процедуры на данный момент не реализована , поэтому рекомендуется удалить ранее сгенерированные файлы или изменить выходную директорию. \end{tcolorbox} \begin{table}[!h] \centering \caption{Параметры и ключи процедуры \artlc, необходимые для получения кривой блеска по заданному списку событий. Переменная --- обозначает путь к соответствующим файлам. } \begin{tabular}{| m{5em} | m{5cm}| m{8.2cm} |} \hline\hline \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ \hline \verb*|stem| & \verb*|art[0-1]| & Префикс для имён входных и выходных файлов. \\ \hline \verb*|input| & \verb*|T[1-7]_cl.evt| & Входной файл со списком событий, по которому будет построена кривая блеска. \\ \hline \verb*|srcdir| & \verb*|//L3/events| & Входная директория, указывающая путь к спискам событий уровня L3. \\ \hline \verb*|dstdir| & \verb*|//L3| & Выходная директория. \\ \hline \verb*|tmpdir| & \verb*|/temp| & Директория для временных файлов. \\ \hline \verb*|srcregion| & \verb*|/.reg| & Регион, из которого извлекается кривая блеска источника. \\ \hline \verb*|bkgregion| & \verb*|/.reg| & Регион, из которого извлекается кривая блеска фона. \\ \hline \verb*|--elow| & $E_{min}$, кэВ & Нижняя граница энергетического диапазона. По умолчанию $E_{min}=4$~кэВ. \\ \hline \verb*|--ehigh| & $E_{max}$, кэВ & Верхняя граница энергетического диапазона. По умолчанию $E_{max}=12$~кэВ. \\ \hline \verb*|--binsize| & $T_{bin}$, c & Размер временного бина кривой блеска. По умолчанию $T_{bin}=1$~с. \\ \hline \end{tabular} \label{tab:lc} \end{table} % \subsection{\artsp} % \label{sec:sp} % Задача \artsp\ предназначена для получения спектра в заданном круговом региона для готового списка событий выбранного модуля телескопа \art, полученного процедурой \prods\ (см. секцию~\ref{sec:artprod1}). При этом сначала нужно извлечь спектр фона из заданного региона, а затем извлечь спектр источника из соответствующего региона с указанием ключа \verb*|--bkgfile='yes'|, чтобы в \verb*|HEADER| файла со спектром источника задача \artsp\ указала имя файла со спектром фона. Кроме того, чтобы спектр фона корректно вычитался из спектра источника при загрузке последнего в утилиту \textsc{xspec}, при получении спектра источника необходимо указать параметр \verb*|--backscale|, равный отношению площадей региона источника к фоновому региону $S_{src}/S_{bkg}$. Параметры задачи \artsp\ перечислены в таблице~\ref{tab:sp}, а пример вызова приведён ниже. При успешном запуске задачи \artsp\ в директории, указанной в параметре \verb*|dstdir|, будут созданы файлы \verb*|T[1-7]_bkg.pha| и \verb*|T[1-7]_src.pha|, содержащие кривые блеска фона и источника соответственно. % Чтобы получить спектр для пользовательских временных интервалов, нужно выполнить пункт запуска \prods, описанный в секции~\ref{sec:artprod2}, т.к. в задаче \artsp\ это не реализовано. % \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] % \textbf{Примеры вызова \artsp\ для получения спектра фонового излучения}: % \begin{verbatim} % artxspec \ % stem=art119100400010 \ % input=art119100400010T1_cl.evt \ % srcdir=./processed/119100400010/L3/events \ % dstdir=./processed/119100400010/L3/pha \ % tmpdir=/temp \ % --region=./processed/L3/reg/art119100400010_bkg.reg \ % --prodname='bkg' % \end{verbatim} % \textbf{и спектра источника:} % %(на примере наблюдения OBSID=11910040001 и первого модуля телескопа~\art): % \begin{verbatim} % artxspec \ % stem=art119100400010 \ % input=art119100400010T1_cl.evt \ % srcdir=./processed/119100400010/L3/events \ % dstdir=./processed/119100400010/L3/pha \ % tmpdir=/temp \ % --region=./processed/L3/reg/art119100400010_src.reg \ % --prodname='src' \ % --bkgfile='yes' --backscale=1 % \end{verbatim} % \dangersign[4ex] Повторный запуск процедуры \artsp\ приводит к ошибке выполнения данной программы. Перезапись файлов при повторном запуске процедуры на данный момент не реализована, поэтому рекомендуется удалить ранее сгенерированные файлы или изменить выходную директорию. % \end{tcolorbox} % \begin{table}[!h] % \centering % \caption{Параметры и ключи процедуры \artsp, необходимые для получения спектра по заданному списку событий в заданном регионе. Переменная --- обозначает путь к соответствующим файлам. } % \begin{tabular}{| m{6em} | m{4.8cm}| m{8.2cm} |} % \hline\hline % \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ % \hline % \verb*|stem| & \verb*|art[0-1]| & Префикс для имён выходных файлов. \\ % \hline % \verb*|input| & \verb*|T[1-7]_cl.evt| & Входной файл со списком событий, по которому будет построен спектр. \\ % \hline % \verb*|srcdir| & \verb*|//L3/events| & Входная директория, указывающая путь к спискам событий уровня L3. \\ % \hline % \verb*|dstdir| & \verb*|//L3/pha| & Выходная директория. \\ % \hline % \verb*|tmpdir| & \verb*|/temp| & Директория для временных файлов. \\ % \hline % \verb*|--region| & \verb*|/.reg| & Регион, из которого извлекается спектр. \\ % \hline % \verb*|--prodname| & \verb*|'src'| или \verb*|'bkg'| & Постфикс для имен выходных файлов вида \verb*|T[1-7]_.pha|. \\ % \hline % \verb*|--bkgfile| & \verb*|'yes'| & Ключ, добавляющий в HEADER имя файла с фоновым спектром в следующем виде: \verb*|T[1-7]_bkg.pha|. Необходимо использовать при генерации спектра источника. По умолчанию эта опция выключена. \\ % \hline % \verb*|--backscale| & $S_{src}/S_{bkg}$ & Отношение площади региона источника ($S_{src}$) к площади фонового региона ($S_{bkg}$). По умолчанию $S_{src}/S_{bkg}=1$. Этот параметр необходим для генерации спектра источника. \\ % \hline % \end{tabular} % \label{tab:sp} % \end{table} % Для дальнейшей работы со спектрами необходимы следующие файлы: с матрицей отклика детектора (RMF) и описывающий зависимость эффективной площади детектора от энергии фотона (ARF). Файл ARF производится с помощью задачи \artarf\ (см. секцию~\ref{sec:arf}), а уже готовые файлы RMF для каждого модуля телескопа необходимо скопировать в директорию, в которой находятся спектры. На серверах сети СРГ файлы RMF можно найти здесь: \verb*|work/srg/artxc/pipeline/bin/aux/rmf/| \verb*|artxc_rmf_T[1-7]_20191030_v003.rmf|, где \verb*|T[1-7]| соответствует номеру модуля телескопа \art. Чтобы \textsc{xspec} автоматически подгрузил файлы RMF и ARF, перед спектральным анализом необходимо указать в \verb*|HEADER| итогового файла со спектром источника пути к RMF и ARF-файлам в переменных \verb*|[ANCRFILE]| и \verb*|[RESPFILE]| соответственно. Это можно сделать с помощью следующих команд утилиты \textsc{fthedit}: % \begin{verbatim} % fthedit T[1-7]_src.pha ANCRFILE add T[1-7].arf % fthedit T[1-7]_src.pha RESPFILE add artxc_rmf_T[1-7]_20191030_v003.rmf % \end{verbatim} % \subsection{\artarf} % \label{sec:arf} % Задача \artarf\ необходима для генерации ARF-файла заданного модуля телескопа на удалении от оптической оси, которые определяется положением источника в детекторных координатах (параметры \verb*|X| и \verb*|Y|). На вход задачи \artarf\ подаются параметры, перечисленные в таблице~\ref{tab:arf}. В результате успешного выполнения задачи \artarf\ в выходной директории будет создан файл \verb*|T[1-7].arf|. % \begin{tcolorbox}[colback=MidnightBlue!5!white,colframe=MidnightBlue!75!black] % \textbf{Примеры вызова \artarf\ для получения спектра фонового излучения}: % \begin{verbatim} % artmkarf \ % stem=art119100400010 \ % teln=1 \ % dstdir=./processed/119100400010/L3/pha \ % tmpdir=/temp \ % X=24 Y=24 % \end{verbatim} % %\dangersign[4ex] Повторный запуск процедуры \artarf\ приводит к ошибке выполнения данной программы. Перезапись файлов при повторном запуске процедуры на данный момент не реализована, поэтому рекомендуется удалить ранее сгенерированные файлы или изменить выходную директорию. % \end{tcolorbox} % \begin{table}[!h] % \centering % \caption{Параметры и ключи процедуры \artarf, необходимые для получения ARF-файла для конкретного модуля телескопа. Переменная --- обозначает путь к соответствующим файлам. } % \begin{tabular}{| m{6em} | m{4.8cm}| m{8.2cm} |} % \hline\hline % \textbf{Параметр} & \textbf{Значение} & \textbf{Описание} \\ % \hline % \verb*|stem| & \verb*|art[0-1]| & Префикс для имён выходных файлов. \\ % \hline % \verb*|teln| & \verb*|[1-7]| & Номер модуля телескопа, для которого нужно произвести ARF-файл. \\ % \hline % \verb*|dstdir| & \verb*|//L3/pha| & Выходная директория. \\ % \hline % \verb*|tmpdir| & \verb*|/temp| & Директория для временных файлов. \\ % \hline % \verb*|X| & \verb*|X| & Детекторная X координата центра региона источника, из которого извлекался спектр. \\ % \hline % \verb*|Y| & \verb*|Y| & Детекторная Y координата центра региона источника, из которого извлекался спектр. \\ % \hline % \end{tabular} % \label{tab:arf} % \end{table} \section{Возможные ошибки и их решения} \label{sec:err} \noindent При неправильно настроенном окружении могут возникать разные ошибки, не относящиеся к работе запускаемых процедур. Ниже приведён список возможных ошибок, связанных с настройкой окружения. \textbf{1. Возникает проблема с отсутствием утилит \textsc{heasoft}.} Для процедуры \pipe\ выдаётся следующая ошибка: \begin{tcolorbox}[colback=Maroon!5!white,colframe=Maroon!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] FileNotFoundError: [Errno 2] No such file or directory: 'ftcopy' [2023-01-17 15:26:12.367635] error: artpipeline v1.0 exited with status 1 =========================================================================== [artpipeline v.1.0]: exit with status: failed (at stage: L1) =========================================================================== [2023-01-17 15:26:12.367883] info: artpipeline finished \end{Verbatim} \end{tcolorbox} При вызове процедуры \prods\ с ключом \verb*|--prepare-skytile| (см. секцию~\ref{sec:artprod1}): \begin{tcolorbox}[colback=Maroon!5!white,colframe=Maroon!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] FileNotFoundError: [Errno 2] No such file or directory: 'ftappend' [2023-01-17 15:30:02.304878] error: artproducts v1.0 exited with status 1 =========================================================================== [artproducts v.1.0]: exit with status: failed (at stage: run) =========================================================================== [2023-01-17 15:30:02.305163] info: artproducts finished \end{Verbatim} \end{tcolorbox} При вызове процедуры \prods\ для получения спектров и кривых блеска (см. секцию~\ref{sec:artprod2}): \begin{tcolorbox}[colback=Maroon!5!white,colframe=Maroon!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] FileNotFoundError: [Errno 2] No such file or directory: 'ftcopy' [2023-01-17 15:31:15.253313] error: artproducts v1.0 exited with status 1 ============================================================================ [artproducts v.1.0]: exit with status: failed (at stage: run) ============================================================================ [2023-01-17 15:31:15.253593] info: artproducts finished \end{Verbatim} \end{tcolorbox} \textit{Проблема:} не установлен или не инициализирован \textsc{heasoft}. \textit{Решение:} установить и инициализировать версию \textsc{heasoft} не позднее 6.28. Пример файла \verb*|~\.tcshrs| со всеми необходимыми настройками приведён для 18-го сервера в секции~\ref{sec:prep}. \textbf{2. Возникает проблема с отсутствием необходимых библиотек \textsc{heasoft}.} При этом последний модуль процедуры \pipe\ выдает успешное завершение, хотя несколькими строками выше выведена ошибка следующего вида: \begin{tcolorbox}[colback=Maroon!5!white,colframe=Maroon!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] ftcopy: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory \end{Verbatim} \end{tcolorbox} \textit{Проблема:} неправильно настроено окружение для работы \textsc{heasoft}. \textit{Решение:} установить недостающие библиотеки и указать путь к ним в переменной \verb*|LD_LIBRARY_PATH| в файле \verb*|~\.tcshrs|. Пример файла \verb*|~\.tcshrs| со всеми необходимыми переменными приведён для 18-го сервера в секции~\ref{sec:prep}. \textbf{3. Вызов \prods, описанный в секции~\ref{sec:artprod2} не срабатывает.} Выдается следующая ошибка: \begin{tcolorbox}[colback=Maroon!5!white,colframe=Maroon!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] raise ValueError("Number of world inputs ({}) does not match " ValueError: Number of world inputs (1) does not match expected (2) \end{Verbatim} \end{tcolorbox} \textit{Проблема:} указана неправильная входная директория \verb*|//L2| для процедуры \prods. \textit{Решение:} в качестве входной директории указать \verb*|//L3/events|. \textbf{4. Не перезаписываются файлы при повторном запуске процедуры \prods.} \textbf{4.1.} При повторном запуске процедуры \prods\ с ключом \verb*|--prepare-skytile| (см. секцию~\ref{sec:artprod1}) последний модуль завершается успешно, однако директория \verb*|\L3\events| не обновляется и где-то выше в текстовом выводе процедуры можно найти ошибку: \begin{tcolorbox}[colback=Maroon!5!white,colframe=Maroon!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] Dumping CFITSIO error stack: -------------------------------------------------- failed to create new file (already exists?): ./121100540010/L3/events/art121100540010T6_cl.evt -------------------------------------------------- CFITSIO error stack dump complete. CFITSIO ERROR FILE_NOT_CREATED: couldn't create the named file Task ftcopy 1.00 terminating with status 105 [2023-01-17 14:51:46.346641] error: artevlist v1.0 exited with status 105 exit with status: failed (at stage: run) \end{Verbatim} \end{tcolorbox} Обратите внимание, что файлы в директории \verb*|\L3\img| при этом перезаписываются. \textbf{4.2.} При генерации спектров и кривых блеска повторным запуском процедуры \prods\ (см. секцию~\ref{sec:artprod2}) возникает следующая ошибка: \begin{tcolorbox}[colback=Maroon!5!white,colframe=Maroon!75!black] \begin{Verbatim}[breaklines=true, breakanywhere=true] raise OSError(f"File {self.name!r} already exists.") OSError: File './121100540010/L3/lc/art121100540010T1_src.lc' already exists. \end{Verbatim} \end{tcolorbox} \textit{Проблема:} в выходной директории остались файлы от прошлого запуска процедур. На данный момент не реализована возможность перезаписи файлов при повторном запуске процедуры \prods. \textit{Решение:} очистить директорию от файлов прошлых запусков процедур (или изменить выходную директорию) и вызвать процедуру заново. \noindent % \section{Поочерёдный список примеров вызовов функций для обработки данных телескопа \art.} \section*{Приложение. Список изменений документа относительно версии 1.10.} \addcontentsline{toc}{section}{Приложение. Список изменений документа. } \begin{table}[h] \centering %\caption{Список изменений документа относительно версии 1.10.} \begin{tabular}{| m{1.2cm} | m{1.2cm} | m{5cm} | m{7cm} |} \hline \textbf{Версия} & \textbf{Дата} & \textbf{Переработка} & \textbf{Дополнения}\\ \hline 2.0 beta & 02.02.23 & Текста, оформление, структура документа, таблицы параметров & Описание структуры WCS-файла, схема уровней данных, рекомендации по настройке окружения на сервере, таблицы с описанием содержимого директорий, рекомендации по работе с научными продуктами, список возможных ошибок и их решений, оглавление, описание отдельных задач процедуры \prods. \\ 2.1 beta & 2.03.23 & Описание группировки спектров, инициализация на серверах & \\ \hline \end{tabular} \end{table} \FloatBarrier % \section*{Приложение 1. Структура файлов} % \subsection*{Данные уровня L0 --- исходные данные} % \subsection*{Данные уровня L2 --- очищенные и калиброванные события} % \subsection*{Данные уровня L3 --- научные продукты} \end{document}