Астронет: А. А. Вольнова, А. П. Шульга/"Introduction to IRAF" Введение в IRAF http://www.variable-stars.ru/db/msg/1216409 |
Введение в IRAF
Этот документ является кратким введением в IRAF (the Image Reduction and Analysis Facility). IRAF
- это "универсальный пакет программ для обработки и анализа астрономических
данных", разработанный группой IRAF в Национальной Оптической Астрономической
Обсерваториии (NOAO). Это учебное
пособие может стать хорошим вступлением для
студентов, которые начинают научную работу и нуждаются в изучении IRAF. Это
пособие отражает только основные возможности IRAF, некоторые примеры,
рассмотренные в пособии, основаны на нашем личном опыте. На этих примерах вы
сможете изучить более сложные программные пакеты.
Данное пособие было составлено Вольновой А.А.(alinus@yandex.ru) и Шульгой А.П.(babouche@yandex.ru) на основе документа Джоша Валавендера Introduction to IRAF.
Скачать сам пакет программ IRAF можно на официальном сайте http://iraf.noao.edu/. Также вы можете воспользоваться уже готовым архивом iraf-2.12.2a.slackware-10.2.tar.gz (40Mb). Файл README.iraf содержит краткое пояснение к нему).
Этот архив был установлен на Linux Slackware 10.2.
Оглавление
- Конфигурация и запуск IRAF
- Взаимодействие с CL.
- Ximtool и отображение картинок.
- Различные подсказки при работе с CL.
- Первичная обработка данных изображений.
- Первичная обработка спектроскопических данных.
- Обзор обработки спектроскопических данных.
- Определение оси дисперсии.
- Подготовка APALL.
- Запуск APALL: определение апертуры.
- Запуск APALL: определение фона.
- Запуск APALL: определение следа.
- Запуск APALL: извлечение спектра.
- Калибровка спектра по длинам волн.
- Согласование спектрального разрешения и изображения.
- Применение спектрального разрешения.
- Использование splot для просмотра откалиброванного спектра.
- Альтернатива команде APALL.
- Обработка фотометрических данных.
1. Конфигурация и запуск IRAF
1.1 Предварительные замечания
При работе с IRAF вы взаимодействуете с двумя командными средами: UNIX и IRAF CL (CL поддерживает интерфейс командной строки). Чтобы провести различия между этими двумя командными строками, мы будем присоединять командную подсказку к строке со всякой командой, которую мы приводим в качестве примера. При работе в UNIX мы будем использовать %, а при работе в IRAF CL - cl>. Заметьте, что подсказки, которые вы видите при работе в вашей системе, могут отличаться от этих. В этом пособии мы предполагаем , что читатель уже неплохо разбирается в UNIX. Если вам неизвестен UNIX, вы можете использовать пособие Джоша Валавендера по UNIX.
Так же как и UNIX, IRAF чувствителен ко всем командам и названиям файлов. Файл image.fits отличается от файла Image.fits и от файла image.FITS, так что будьте осторожны с большими и маленькими буквами.
1.2 Использование команды mkiraf.
IRAF требует конфигурационный файл (login.cl) и папку для сохранения параметров пользователя (uparm). Рекомендуется создать папку IRAF в своей домашней директории (~/iraf/) для хранения этих файлов. Команда mkiraf создает необходимые login.cl и uparm файлы в директории, в которой вы работаете.
% cd % mkdir iraf % cd iraf % mkiraf -- creating a new uparm directory Terminal types: xgterm,xterm,gterm,vt640,vt100,etc. Enter terminal type: xgterm A new LOGIN.CL file has been created in the current directory. You may wish to review and edit this file to change the defaults.
Когда по сценарию mkiraf спрашивает вас тип терминала, напечатайте xgterm. У IRAF есть несколько графических интерфейсов, которые вам захочется использовать при работе с изображениями. Это будет работать должным образом тогда, когда вы запускаете IRAF из xgterm.
1.3 Открытие xgterm.
Чтобы открыть xgterm, напечатайте xgterm в командной строке UNIX:
Вам следует всегда запускать IRAF из xgterm. Некоторые из команд IRAF используют специальные свойства xgterm для создания интерактивных графических окон, которые вы можете использовать для операций с данными. Обычно вам нужен только один xgterm, в котором работает IRAF. Одновременно у вас могут быть открыты обычные терминалы (т.е. xterm), так что вы можете видеть, какие файлы лежат в папке, где вы работаете.
1.4 Редактирование вашего файла login.cl.
Прежде чем вы начнете работу, отредактируйте файл login.cl, чтобы он отражал локальные настройки вашей системы. В UNIX войдите в папку ~/iraf/ и откройте login.cl, используя ваш любимый текстовый редактор. Во-первых, найдите строчку, в которой написано:
#set stdimage = imt800
Для нас это строка 27.
Так задается дефолтный размер отображаемой области в пикселях. Значок решетки (#) означает, что эта строка закомментирована и не читается IRAF. Если бы эта программа работала (без значка комментария), размер картинки был бы 800х800 пикселей. Если вы используете IRAF для обработки изображений, полученных на профессиональной обсерватории, рекомендуем задать параметр 4096, если вы используете камеру в SBO, рекомендуем поставить 2048. Таким образом, удалите значок комментария и замените 800 на нужное значение. Например, в нашем login.cl, эта строчка выглядит так (заметьте, что знак # убран из начала строки):
set stdimage = imt4096
Другая строчка в login.cl, которую надо изменить, выглядит так:
#set imtype = "imh"
Для нас это 34 строка.
Это задает дефолтный тип изображения. В тех случаях, когда в имени файла нет расширения, IRAF автоматически подразумевает расширение по умолчанию. Тип imh разрабатывался специально для IRAF, однако большинство ПЗС данных получают в формате FITS. Измените эту строчку (не забудьте убрать символ #):
set imtype = "fits"
1.5 Запуск IRAF.
Чтобы запустить интерфейс командной строки IRAF, используйте команду cl (всегда помните, что запускать IRAF надо из xgterm, а не из обычного xterm). Также помните, что IRAF нужно запускать из той директории, где находится login.cl.
% cd ~/iraf % cl NOAO PC-IRAF Revision 2.12.1-EXPORT Fri Jul 12 15:54:09 MST 2002 This is the EXPORT version of PC-IRAF V2.12 supporting most PC systems. Welcome to IRAF. To list the available commands, type ? or ??. To get detailed information about a command, type `help command'. To run a command or load a package, type its name. Type `bye' to exit a package, or `logout' to get out of the CL. Type `news' to find out what is new in the version of the system you are using. The following commands or packages are currently defined: dataio. language. noao. proto. utilities. dbms. lists. obsolete. softools. images. mscred. plot. system. cl>
Дальше мы будем работать скорее в IRAF, чем в UNIX. Если вы запустили IRAF из папки, где нет login.cl, вы получите такое сообщение:
Warning: no login.cl found in login directory
Удобно было бы создать символьную ссылку на login.cl из домашней директории, чтобы IRAF можно было запускать из нее:
% cd ~ % ln -s ~/iraf/login.cl login.cl
Где ~/iraf/login.cl - место нахождения login.cl. Теперь вы можете запускать IRAF из вашей домашней директории.
2. Взаимодействие с CL.
2.1 Команды UNIX и IRAF.
Некоторые основные команды UNIX существуют также и в IRAF, например: ls, mkdir, mv, cd, grep и многие другие.
Заметим, что команда rm не работает в IRAF, однако, ее заменяют две другие команды: imdel и del.
Почти все управление IRAF осуществляется через различные команды. Похожие команды группируются в пакеты. Различные пакеты с основными командами уже загружены. Если вы уже зашли в IRAF, напишите команду ? в CL
cl> ? dataio. language. noao. proto. utilities. dbms. lists. obsolete. softools. images. mscred. plot. system.
Это список доступных пакетов. Некоторые пакеты содержат в себе другие, это часто обозначается точкой после названия пакета ( т.е. images.imutil). Для получения списка доступных команд, напишите ?? в CL.
cl> ?? clpackage: dataio. language. noao. proto. utilities. dbms. lists. obsolete. softools. images. mscred. plot. system. language: access clear eparam jobs print set back defpac error keep printf show beep defpar flprcache kill putlog sleep bye deftask fprint logout radix stty cache defvar fscan lparam redefine task cd dparam gflush mktemp reset time chdir edit hidetask osfn scan unlearn cl. ehistory history package scanf update clbye envget imaccess prcache service wait noao: artdata. digiphot. nobsolete. onedspec. astcat. focas. nproto. rv. astrometry. imred. observatory surfphot. astutil. mtlocal. obsutil. twodspec. utilities: curfit entab polyfit surfit ucase detab lcase split translit urand proto: binfil hfix irafil rskysub bscale imcntr joinlines suntoiraf epix imextensions mimstatistics text2mask fields imscale mskexpr fixpix interp mskregions tv: display iis. imedit imexamine tvmark wcslab dataio: bintxt mtexamine rfits txtbin wtextimage export rcardimage rtextimage wcardimage import reblock t2d wfits plot: calcomp gkidir imdkern phistogram sgidecode surface contour gkiextract implot pradprof sgikern velvect crtpict gkimosaic nsppkern prow showcap gdevices graph pcol prows stdgraph gkidecode hafton pcols pvector stdplot imutil: chpixtype imdelete imheader imslice listpixels hedit imdivide imhistogram imstack minmax hselect imexpr imjoin imstatistics sections imarith imfunction imrename imsum imcopy imgets imreplace imtile immatch: geomap gregister imcombine skymap wcscopy wregister geotran imalign linmatch skyxymatch wcsmap xregister geoxytran imcentroid psfmatch sregister wcsxymatch xyxymatch imgeom: blkavg im3dtran imshift magnify shiftlines blkrep imlintran imtranspose rotate imfit: fit1d imsurfit lineclean imfilter: boxcar fmedian frmedian gauss laplace mode rmode convolve fmode frmode gradient median rmedian imcoords: ccfind ccsetwcs ccxymatch starfind wcsreset ccget ccstd imcctran wcsctran ccmap cctran skyctran wcsedit images: imcoords. imfit. immatch. tv. imfilter. imgeom. imutil. user: adb cp fc lpq mv rlogin sps vi bc csh find lprm nbugs rsh strings w buglog date finger ls nm rtar su wc cal dbx ftp mail od ruptime sync wtar cat df gdb make pg rusers telnet xc cls diff generic man ps rwho tip clw du grep mkpkg pwd sh top comm emacs less mon rcp spell touch system: allocate devstatus lprint page sort concatenate directory match pathnames spy copy diskspace mkdir phelp tail count files mkscript protect tee deallocate gripes movefiles references type delete head netstatus rename unprotect devices help news rewind lists: average lintran rimcursor tokens words columns rgcursor table unique
Как видите, это обычно длинный список.
2.2 Работа с командами.
Давайте попробуем сейчас поработать с некоторыми из этих команд. Здесь предполагается, что у вас уже есть несколько изображений, с которыми можно работать. Если вы работаете с изображениями для ASTR 3510/3520 они скорее всего получены с помощью SBO. Если так, удостоверьтесь, что они переведены в нужный формат. С этого момента название любого изображения, с которым вы работаете, будет заменяться на imagename, иногда к нему будет добавляться "хвостик", означающий фильтр, например imagename_V.
Например, воспользуемся командой imstat:
cl> imstat imagename # IMAGE NPIX MEAN STDDEV MIN MAX 030_n2392_300_V 173400 33556. 574.5 253. 63567.
Заметим, что когда мы печатаем название изображения, мы можем отбросить расширение .fits, потому что в файле login.cl мы установили тип изображения fits, и IRAF по умолчанию дописывает названию изображения расширение .fits.
imstat показывает основные данные об изображении.
2.3 Изменение параметров команд в CL.
Каждая команда IRAF имеет набор параметров , которые определяют действия команды. Это главным образом входные и выходные данные, а также опции, которые входят в команду. Чтобы увидеть параметры, которые используются в команде, используйте команду lpar.
cl> lpar imstat images = "030_n2392_300_V" List of input images (fields = "image,npix,mean,stddev,min,max") Fields to be printed (lower = INDEF) Lower limit for pixel values (upper = INDEF) Upper limit for pixel values (nclip = 0) Number of clipping iterations (lsigma = 3.) Lower side clipping factor in sigma (usigma = 3.) Upper side clipping factor in sigma (binwidth = 0.1) Bin width of histogram in sigma (format = yes) Format output and print column labels ? (cache = no) Cache image in memory ? (mode = "ql")
Здесь два вида параметров: те, которые требуют введения, когда мы запрашиваем команду, и параметры по умолчанию, которые не нуждаются в определении (скрытые параметры). Параметры, требующие введения, не имеют пояснительной фразы в списке lpar. В случае imstat единственным требуемым параметром, является название изображения (или список названий изображений), для которых вы хотите получить информацию. Если вы пропустите какой-нибудь из этих параметров, IRAF сообщит вам об этом.
Второй тип параметров заключен в скобки в списке lpar. Их не надо определять, когда вы пользуетесь командой, если вы их не определили, тогда используются значения по умолчанию.
Чтобы узнать, что обозначат каждый из параметров, вы можете посмотреть справочную страницу для этой команды.
cl> help imstat IMSTATISTICS (Feb01) images.imutil IMSTATISTICS (Feb01) NAME imstatistics -- compute and print image pixel statistics USAGE imstatistics images PARAMETERS images The input images or image sections for which pixel statistics are to be computed. fields = "image,npix,mean,stddev,min,max" The statistical quantities to be computed and printed. lower = INDEF The minimum good data limit. All pixels are above the default value of INDEF. upper = INDEF The maximum good data limit. All pixels are above the default value of INDEF.
В справке написано больше, но мы опустили оставшееся. Верхняя строчка рассказывает о названии команды и пакета, в котором она находится. Раздел USAGE определяет cl команду и порядок ввода (в данном случае только один). Раздел PARAMETERS описывает все параметры и вводимые данные. Чтобы определить дополнительные (скрытые) параметры в cl, используйте формат parametername=value. Например:
cl> imstat imagename binwidth=0.4 # IMAGE NPIX MEAN STDDEV MIN MAX 030_n2392_300_V 173400 33556. 574.5 253. 63567.
Заметим, что сначала определяется необходимые входные параметры в том порядке, в котором они описаны в справке, затем определяются дополнительные (скрытые) параметры. Некоторые скрытые параметры двоичны (у них есть только два значения, да или нет). Чтобы определить их, можно напечатать parametername=yes или parametername=no в cl, или укороченный вариант parametername+ или parametername- для yes или no соответственно.
Надо упомянуть об еще одном укороченном варианте: в IRAF не нужно печатать полное название команды или параметра, можно указать только несколько первых букв так, чтобы окончание для них было единственным. Мы уже это использовали: полное название команды imstat - imstatistics. Например:
cl> imstat imagename binw=0.4 format- 030_n2392_300_V 173400 33556.36 574.462 253. 63567.
1.4 Изменение параметров команд с использованием epar.
Метод изменения параметров, описанный в предыдущем параграфе, хорош для однократного использования команды. Но если мы хотим использовать тот же параметр каждый раз, когда обращаемся к данной команде, его нужно сделать постоянным. Это можно сделать с помощью команды epar. Используя эту команду, мы можем изменить любой параметр, когда мы выходим из редактора, изменения сохраняются. Они так же сохраняются, когда мы выходим из IRAF.
Запустив epar imstat, мы увидим страничку, похожую на ту, которую мы видели в lpar imstat, однако теперь мы можем корректировать список параметров. Используя стрелки для перемещения вверх и вниз по списку, найдите параметр, который вам нужно изменить и начните вносить изменения. Затем нажмите enter и переместитесь к следующему параметру, который вы хотите изменить. Когда вы внесли необходимые изменения, вы можете нажать CTRL-c и выйти без сохранения или нажать CTRL-d и выйти с сохранением изменений.
Попробуйте это: используйте epar для изменения imstat. Измените строчку
(fields = "image,npix,mean,stddev,min,max") Fields to be printed
На
(fields = "image,npix,mode,mean,stddev,min,max") Fields to be printed
Это просто добавит еще одну колонку к выходным параметрам команды, которая будет означать режим изображения.
cl> imstat imagename # IMAGE NPIX MODE MEAN STDDEV MIN MAX 030_n2392_300_V 173400 33487. 33556. 574.5 253. 63567.
Теперь imstat всегда будет выводить режим изображения (полезный параметр, как будет видно позже).
3. Ximtool и отображение картинок.
3.1 Как отображать картинки.
IRAF требует программу, которая может отображать картинки. Вот несколько примеров: ximtool, saoimage, ds9 и, возможно, еще какие-то. В основном используется ds9. Ximtool поддерживает 8 - битную цветопередачу, большинство мониторов сегодня 24 - битные, так что это большое препятствие.
Скачать программу ds9 можно здесь. Она устанавливается простой распаковкой архива.
Чтобы запустить ds9 запишите в UNIX команду (не запуская IRAF):
% ds9 &
Откроется новое окошко ds9.
Чтобы отображать картинки в ds9, используйте в IRAF команду display. Если вы посмотрите справку display, вы увидите, что эта команда имеет два входных параметра - имя изображения и номер окна. ds9 может одновременно отображать до 16 картинок (или до 4 в зависимости от версии программы). Переключаться между ними можно с помощью клавиши Tab. Чтобы отобразить картинку в первое окно надо написать:
cl> display imagename 1 z1=33373. z2=33745.93
Чтобы отобразить картинку в другое окно, надо заменить 1 на другое число (до 16).
Заметим, что display выводит два параметра z1 и z2. Мы обсудим их в следующем параграфе.
3.2 Понимание изображения: динамический диапазон.
Можно подумать, что отобразив картинку, вы увидите все данные, которые в ней есть, но это не так. Очень важно понимать, какая часть данных выведена на экран.
Динамический диапазон задается параметрами z1 и z2 команды display.Изображение - это матрица чисел, каждое из которых представляет яркость соответствующего пикселя. Динамический диапазон, заданный z1 и z2 определяет минимум и максимум отображаемых величин. Передаточная функция (будет обсуждаться позже) приписывает маленьким значениям черный цвет, а большим -- белый. Тогда z1 -- значение пикселя, соответствующее черному цвету, а z2 - белому. Все, что меньше z1 - черное, все, что больше z2 - белое, а все, что между ними изображается оттенками серого. Поэтому очень важно знать значения z1 и z2. например, если на изображении есть детали ярче значения z2, они не будут видны, пока вы не установите соответствующие пределы.
Использование параметров по умолчанию автоматически установит z1 и z2, согласуясь с внутренними алгоритмами. Параметр contrast изменит автоматически выбранный контраст (хотя значения по умолчанию являются оптимальными).
Параметр zscale включает и выключает автоматическое масштабирование. Если zscale выключен, а параметр zrange включен, тогда z1 и z2 соответствуют минимальному и максимальному значениям на изображении (чаще всего ужасный выбор). Лучше всего использовать команду epar display и отключить параметр zrange.
Чтобы задать z1 и z2 вручную, мы должны выключить zscale следующим образом:
cl> displ imagename 1 zsc- z1=950 z2=1500 z1=950. z2=1500.
Заметим, что это будет работать, только если zrange будет уже отключено. Тогда z1и z2, выводимые командой на экран, будут соответствовать тем, что вы ввели вручную.
3.3 Понимание изображения: передаточная функция (яркость и контраст).
Когда вы отобразили картинку и установили z1 и z2, вы все еще можете изменить изображение с помощью параметров яркость и контраст (передаточная функция). Это соо