Введение в 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 не нужно печатать полное название команды или параметра, можно указать только несколько первых букв так, чтобы окончание для