Rambler's Top100Astronet    
  по текстам   по ключевым словам   в глоссарии   по сайтам   перевод   по каталогу
 

На первую страницу Введение в IRAF

Введение в 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.

Оглавление

  1. Конфигурация и запуск IRAF
    1. Предварительные замечания
    2. Использование команды mkiraf.
    3. Открытие xgterm.
    4. Редактирование вашего файла login.cl.
    5. Запуск IRAF.
  2. Взаимодействие с CL.
    1. Команды UNIX и IRAF.
    2. Работа с командами.
    3. Изменение параметров команд в CL.
    4. Изменение параметров команд с использованием epar.
  3. Ximtool и отображение картинок.
    1. Как отображать картинки.
    2. Понимание изображения: динамический диапазон.
    3. Понимание изображения: передаточная функция.
  4. Различные подсказки при работе с CL.
    1. Списки ввода.
    2. История CL.
    3. Команда apropos.
    4. Работа с частью изображения.
    5. Сценарии CL.
  5. Первичная обработка данных изображений.
    1. Обзор обработки изображений.
    2. Комбинирование темноты.
    3. Вычитание темноты.
    4. Комбинирование плоских полей.
    5. Нормировка плоских полей.
    6. Деление на плоские поля.
    7. Выравнивание нескольких изображений для соединения.
    8. Комбинирование нескольких изображений.
  6. Первичная обработка спектроскопических данных.
    1. Обзор обработки спектроскопических данных.
    2. Определение оси дисперсии.
    3. Подготовка APALL.
    4. Запуск APALL: определение апертуры.
    5. Запуск APALL: определение фона.
    6. Запуск APALL: определение следа.
    7. Запуск APALL: извлечение спектра.
    8. Калибровка спектра по длинам волн.
    9. Согласование спектрального разрешения и изображения.
    10. Применение спектрального разрешения.
    11. Использование splot для просмотра откалиброванного спектра.
  7. Альтернатива команде APALL.
    1. Обзор обработки спектроскопических данных.
    2. Определение оси дисперсии.
    3. Подготовка к нахождению апертуры.
    4. Нахождение апертуры.
    5. Изучение одномерного спектра.
    6. Вычитание неба.
  8. Обработка фотометрических данных.
    1. Использование расширение .imh и его взаимодействие с форматом .fits
    2. Учет плоского поля, темнового тока и шума считывания. Сложение изображений.
    3. Определение апертур звезд.
    4. Подготовка к фотометрии.
    5. Фотометрия ярких звезд.
    6. Фотометрия слабых звезд.

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:

% xgterm &

Вам следует всегда запускать 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, вы все еще можете изменить изображение с помощью параметров яркость и контраст (передаточная функция). Это соотношение между значением пикселя и яркостью экрана. Это делается не в IRAF, а в ds9.

Нажмите и удерживайте правую кнопку мыши на окне ds9. Двигая мышь вправо и влево, вы будете менять контраст, а вверх и вниз - яркость. Это может помочь выделить слабые детали. Поэтому, когда вы смотрите на изображение, убедитесь, что передаточная функция оптимальна.

Замечание. Комбинация параметров z1, z2, яркость и контраст иногда называются вытягиванием изображения. После того, как вы поэкспериментируете с этим, вы увидите, что различные вытягивания изображений могут открыть новую информацию как в слабых, так и в ярких участках изображения.

4. Различные подсказки при работе с CL.

4.1 Списки ввода.

Много раз бывает так, что нужно применить одну и ту же команду к нескольким изображениям. Один из способов ввести список изображений через запятую. IRAF интерпретирует пробелы, как разделение различных входных параметров, так что удостоверьтесь, что в списке входных изображений нет пробелов.

cl> imstat sn2002ap_300_B,sn2002ap_300_V,sn2002ap_300_R
#               IMAGE      NPIX      MODE      MEAN    STDDEV       MIN       
MAX
       sn2002ap_300_B    173400     1344.     1393.     192.8   -31158.    
16957.
       sn2002ap_300_V    173400     1111.     1146.     169.5      750.    
26947.
       sn2002ap_300_R    173400     1615.     1653.     193.7     1131.    
28546.

Вы также можете использовать символ *:

cl> imstat sn2002ap_300_*
#   IMAGE      NPIX      MODE      MEAN    STDDEV       MIN       MAX
sn2002ap_300_B.fit 173400 1344.    1393.    192.8     -31158.  16957.
sn2002ap_300_B2.fit 173400 1336.   1393.    188.8     -31260.  17067.
sn2002ap_300_R.fit  173400 1615.   1653.    193.7      1131.   28546.
sn2002ap_300_R2.fit 173400 1652.   1681.    197.2     -30392.  17127.
sn2002ap_300_V.fit  173400 1111.   1146.    169.5      750.    26947.
sn2002ap_300_V2.fit 173400 1095.   1123.    173.6    -31350.   16715.

Последний способ - это создание файла со списком. Это текстовый документ, который содержит название тех файлов, с которыми вам надо работать, по одному на строке. Вы можете создать его с помощью любого текстового редактора. Чтобы IRAF использовал этот файл в качестве входного списка, используйте символ @:

cl> imstat @list_sn2002ap
#   IMAGE            NPIX   MODE   MEAN   STDDEV   MIN     MAX
sn2002ap_300_B.fit  173400  1344.  1393.  192.8   -31158.  16957.
sn2002ap_300_B2.fit 173400  1336.  1393.  188.8   -31260.  17067.
sn2002ap_300_R.fit  173400  1615.  1653.  193.7    1131.   28546.
sn2002ap_300_R2.fit 173400  1652.  1681.  197.2   -30392.  17127.
sn2002ap_300_V.fit  173400  1111.  1146.  169.5    750.    26947.
sn2002ap_300_V2.fit 173400  1095.  1123.  173.6   -31350.  16715.

Вы можете создать такой файл, используя команду files в IRAF. Она работает похоже на команду ls в UNIX, но выводит по одному названию файла на строку. Например:

cl> files sn2002ap_300_*
sn2002ap_300_B.fit
sn2002ap_300_B2.fit
sn2002ap_300_R.fit
sn2002ap_300_R2.fit
sn2002ap_300_V.fit
sn2002ap_300_V2.fit

Список просто отображается на экране. Нам нужно занести этот список в файл. Надо использовать направляющие команды (в IRAF они такие же как в UNIX). Чтобы записать выходные данные в файл надо прикрепить символ > и имя файла к команде. Знайте, что символ > не перепишет существующий файл, поэтому имя всякий раз должно быть новым. Команды type и page выведут на экран содержание текстового файла (cat и more в UNIX соответственно). Мы можем использовать эти команды, чтобы проверить, что в файле со списком содержится то, что нам надо.

cl> files sn2002ap_300_* > list_sn2002ap
cl> type list_sn2002ap
sn2002ap_300_B.fit
sn2002ap_300_B2.fit
sn2002ap_300_R.fit
sn2002ap_300_R2.fit
sn2002ap_300_V.fit
sn2002ap_300_V2.fit

Мы также можем использовать команды UNIX для текстового редактора, чтобы изменить выходные данные команды files. Для этого хороши команды grep, sed, awk и perl. Например:

cl> files sn2002ap_300_* | grep B > list_sn2002ap_B
cl> type list_sn2002ap_B
sn2002ap_300_B.fit
sn2002ap_300_B2.fit

4.2 История CL.

Еще одно удобство IRAF - это история команд. В UNIX мы используем стрелку вверх, чтобы вызвать предыдущие команды. В IRAF для этого существует команда ehistory. Просто напечатайте ehist или e в cl, затем, используя стрелку вверх найдите нужную команду в списке использованных, нажмите enter для запуска команды. Вы можете также изменять команды перед запуском. Для выхода из ehist нажмите CTRL-c.

Вы можете также вызвать уже использованную команду, напечатав ehist text, тогда история выведет последнюю команду, начинающуюся на text.

4.3 Команда apropos.

На некоторых инсталляциях IRAF доступна команда apropos. Она помогает подобрать нужную команду для выполнения данной работы. apropos ищет в кратких описаниях команд ключевые слова, которые вы ввели. Однако, в IRAF много команд, и иногда apropos больше мешает, чем помогает, когда выдает десяток команд.

4.4 Работа с частью изображения.

Если вы хотите, вы можете работать только с частью изображения. Чтобы описать часть изображения, с которой вы хотите работать, используйте следующее:

cl> imstat imagename[x1:x2,y1:y2]

где х1 и х2 - пределы по оси х, y1 и y2 - по оси y в пикселях. Вы можете также использовать команду imcopy, чтобы создать новую картинку, содержащую только часть большого изображения:

cl> imcopy imagename[x1:x2,y1:y2] imagename2

4.5 Скрипты CL.

В IRAF вы можете заменить одной командой последовательность команд, выполняемых друг за другом. Для этого надо составить CL скрипт - текстовый файл с расширением .cl. Его можно запустить, направив в cl с помощью <.

Например, если вы создали текстовый файл, называющийся myscript.cl в котором написано следующее:

displ 026_n2392_600_ha 1 zsc- z1=32943 z2=37000
imstat 026_n2392_600_ha

тогда вы можете запустить его:

cl> cl < myscript.cl
z1=32943. z2=37000.
#   IMAGE          NPIX   MODE    MEAN   STDDEV     MIN     MAX
026_n2392_600_ha 173400 32945.   33056.  402.     11003.   61213.

В скрипты можно также добавлять комментарии, отделенные символом #. Все, что следует за символом # на строке, интерпретируется как комментарий. Например, в файле myscript.cl может быть написано:

# Display the image
displ 026_n2392_600_ha 1 zsc- z1=32943 z2=37000  # note the altered z range
# See the image statistics
imstat 026_n2392_600_ha

Этот скрипт запускает те же самые команды, но с комментариями, которые могут облегчить интерпретацию полученных результатов.

5. Первичная обработка данных изображений.

5.1 Обзор обработки изображений.

Первая задача обработки изображений состоит в том, чтобы исправить два типа ошибок в ПЗС данных: аддитивные и мультипликативные. Как вы помните из параграфа 3.3, мы представляем изображение как матрицу чисел, каждое из которых соответствует яркости пикселя. Чтобы исправить аддитивные ошибки, мы просто вычитаем шум считывания и темновой ток изображения, а чтобы исправить мультипликативные - делим изображение на что-то.

Аддитивные ошибки имеют два источника: шум считывания и темновой ток. В этом пособии опущено детальное описание возникновение этих ошибок, мы сосредоточимся только на методах их исправления. Существует два типа калибровочных изображений, которые могут быть использованы для устранения аддитивных ошибок: это кадры dark и bias. Dark - это кадр, полученный ПЗС - матрицей при закрытом затворе с той же экспозицией и температурой матрицы, что и кадр, который нужно исправлять. Dark исправит сразу и шум считывания и темновой ток. Кадр bias - это темновой кадр с нулевой экспозицией. Так что он исправляет только шум считывания (заметим, что кадр bias называют нулевым кадром). Почему два метода? Исследовательские ПЗС - матрицы охлаждаются жидким азотом (температура около 77 К), так что их темновой ток не значителен. Данные с таких ПЗС - матриц исправляются только за шум считывания. Те ПЗС - матрицы, которые не охлаждаются до таких низких температур нуждаются также в исправлении темнового тока.

Мультипликативные ошибки имеют несколько источников: различный квантовый выход пикселей, неравномерная засветка матрицы, пылинки и грязь на поверхности матрицы. Все эти факторы изменяют чувствительность матрицы от пикселя к пикселю. Чтобы это исправить, надо получить калибровочный кадр, называемый плоское поле (flat field). Это просто кадр с равномерной засветкой (чаще всего белый экран или закрытый купол).

Математическое представление первоначального учета аддитивных и мультипликативных ошибок выглядит так:

                   (raw_image - dark1)
final_image = --------------------------------
              (flat - dark2) / 

Есть еще один источник ошибок в изображениях - космические лучи. Космические лучи - это высокоэнергичные частицы, которые проходят через ПЗС - матрицу и выделяют большое количество энергии. ПЗС - матрица не может отличить их от обычных фотонов. Лучший способ отличить космические лучи -- получить несколько одинаковых изображений, тогда яркие пиксели, которые есть в данном месте только на одном изображении, являются космическими лучами.

5.2 Комбинирование темноты.

Каждый раз, когда мы прибавляем, вычитаем, умножаем или делим два изображения, мы привносим дополнительный шум. Это не желательно, так как если мы применим коррекцию, описанную выше, то в конце мы получим слишком большой шум. Чтобы этого избежать, необходимо сделать несколько одинаковых калибровочных изображений, чтобы составить из них одно (будь то dark, bias или flat).

Это уменьшает шумы в конечном калибровочном кадре, так что при обработке изображений добавится только незначительное количество шума. Рекомендуется делать три, а лучше пять и более калибровочных изображения каждого типа (причина удобства нечетного числа изображений будет ясна позже) и комбинировать их в одно калибровочное изображение.

Комбинирование изображений не является нахождением среднего, как можно подумать. Вместо этого мы вычисляем медиану изображений, то есть значение пикселя результирующей картинки является медианой соответствующих значений пикселя на складываемых картинках. Преимущества этого метода в том, что если на одном изображении пиксель имеет слишком большую яркость (например, от космической частицы) это не влияет сильно на результирующее изображение (медиана более устойчива к выпадающим значениям, чем среднее). Если у вас есть хотя бы три изображения, вы можете устранить практически все космические частицы. Заметим, что если у вас есть четное количество изображений, медиана будет браться как среднее между двумя серединными значениями (вот почему лучше всего брать нечетное количество изображений).

Первый шаг в схеме обработки - это комбинирование всех темновых кадров, учитывая длину экспозиции, в один master dark. Если у вас есть кадры с данными, экспозиции которых, например, 300, 180 и 60 секунд, у вас должно быть как минимум три темновых кадра для каждой экспозиции. Так же у вас должны быть темновые кадры с такой же экспозицией, с которой получен flat (обычно различные экспозиции для каждого фильтра). Таким образом, если у вас есть три фильтра, то всего вы получите 18 темновых кадров, после комбинирования вы получите 6 кадров master dark.

Допустим, вы используете для записей темновых кадров такой формат имени: ##dark_NNNs.fits, где ## -- это номер от 01 до 99 по ходу ночи, NNN - это время экспозиции, например, 300 секундные темновые кадры могут называться 67dark_300s.fits, 68dark_300s.fits и 69dark_300s.fits. Предположим, что вы также создали файл со списком (см. параграф 4.1), содержащим эти изображения, который называется list_dark_300s. Для комбинирования изображений используется команда imcombine. Используя эту команду, надо приписать параметру combine значения median. Вы можете изменить этот параметр, используя epar, или задать его из командной строки. Посмотрев справку для команды imcombine, вы увидите, что формат ее использования таков imcombine input output. Таким образом, мы запустим ее так:

cl> imcombine @list_dark_300s dark_300s combine=median

Команда выведет на экран различные сообщения, о выполнении. Ваше результирующее изображение (кадр master dark для экспозиции в 300 секунд) будет называться dark_300s.fits. Далее необходимо повторить эти действия, чтобы создать master dark для каждой экспозиции.

5.3 Вычитание темноты.

Кадр плоского поля так же содержит шум считывания и темновой ток, поэтому их надо исправлять, вычитая темновой ток. Предположим, что мы работаем с набором кадров плоского поля в фильтре V по 10 секунд экспозиции каждый. Назовем их ##flat_F_NNNs.fits , где ## - номер экспозиции, F - фильтр, NNN - время экспозиции. Таким образом, предполагаемые кадры могут называться 70flat_V_010s.fits, 71flat_V_010s.fits и 72flat_V_010s.fits. Мы запишем эти названия в файл со списком list_flat_V_010s. Чтобы вычесть 10 секундный кадр master dark из всех кадров, будем использовать команду imarith. Посмотрев справку для этой команды, вы увидите, что формат ее использования таков imarith operand1 op operand2 result. Мы можем создать файл, который будет содержать список результирующих изображений и назвать их 70flat_V_ds.fits, 71flat_V_ds.fits и 72flat_V_ds.fits, где ds означает, что темнота вычтена. Вы можете так же просто переписать исходные файлы, поставив в качестве выходного файла исходный файл со списком (так же как в примере выше).

cl> imarith @list_flat_V_010s - dark_010s @list_flat_V_010s

Теперь из наших плоских полей вычтена темнота.

Раз уж мы за это взялись, вычтем темноту из наших астрономических изображений. Для названия будем использовать формат ##obj_F_NNNs.fits, где ## - номер экспозиции, obj - название объекта, F - фильтр, NNN - время экспозиции. Например, если у нас есть три снимка туманности Ориона (М 42), изображения могут называться 01M42_V_120s.fits, 02M42_V_120s.fits и 03M42_V_120s.fits, файл со списком будет list_M42_V_120s. Вычитаем темноту:

cl> imarith @list_M42_V_120s - dark_120s @list_M42_V_120s

5.4 Комбинирование плоских полей.

Теперь необходимо скомбинировать плоские поля в каждом фильтре. Здесь есть одна хитрость: если во время экспозиции плоского поля лампы, освещающие белый экран, слегка изменяли яркость, различные темновые кадры для каждого фильтра будут иметь различное среднее значение. Это будет влиять на медиану, так как всегда будет браться пиксель из кадра со средней экспозицией, что не уменьшает шум. Необходимо умножить каждое плоское поле на небольшую величину. Можно сделать это, если в команде imcombine задать параметр scale = mode. Это означает, что перед комбинированием изображения будут помножены на число близкое к единице, так что вид всех кадров будет одинаков.

cl> imcombine @list_flat_V_010s flat_V combine=median scale=mode

Теперь у нас есть кадр master flat для фильтра V.

5.5 Нормировка плоских полей.

В итоге, необходимо разделить астрономические изображения на плоское поле, однако в кадре плоского поля каждый пиксель содержит большое количество отсчетов (мы снимали яркий экран), тогда как астрономическое изображение содержит малое количество отсчетов в пикселе (астрономический объект очень слабый). Если мы просто поделим одно на другое, все пиксели на итоговом изображении будут иметь очень маленькие значения, которые являются отношением значений пикселей плоского поля к значениям пикселей астрономического изображения. В идеале, нам нужно лишь слегка изменить отсчеты на кадре с объектом, чтобы устранить мультипликативные ошибки, не меняя при этом сильно значения пикселей. Для этого нам надо разделить плоское поле на некую константу, чтобы все отсчеты в нем были близки к единице, а уже потом разделить астрономическое изображение на получившееся плоское поле.

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

cl> imstat flat_V
#   IMAGE      NPIX      MODE      MEAN    STDDEV       MIN       MAX
   flat_V    173400    49996.    49496.     1069.    45694.    52944. 

Теперь разделим плоское поле на это число:

cl> imarith flat_V / 49996.0 flat_V_norm

Теперь плоское поле нормировано, и значения всех пикселей близки к единице.

5.6 Деление на плоские поля.

У нас есть изображения, исправленные за темноту, а также скомбинированные и нормированные плоские поля. Чтобы исправить мультипликативные ошибки в изображении мы должны просто разделить:

cl> imarith @list_M42_V_120s / flat_V_norm @list_M42_V_120s

Теперь в астрономическом изображении исправлены все ошибки.

5.7 Выравнивание нескольких изображений для соединения.

Часто нам приходится увеличивать отношение сигнал/шум, используя длинные экспозиции. К сожалению, длинные экспозиции связаны с большим количеством препятствий, в том числе с неравномерным ведением телескопа. Обычно самая длинная экспозиция, которую можно получить без размазывания звезд, составляет 3-5 минут. Этого недостаточно для большинства слабых объектов, особенно при использовании узкополосных фильтров. Чтобы это обойти, необходимо делать несколько кадров с экспозицией по 300 секунд и комбинировать их.

В отличии от темноты и плоских поле в комбинировании нескольких астрономических изображений есть еще один шаг - выравнивание. Изображения могут быть смещены друг относительно друга, поэтому их необходимо сдвинуть. Для этого используем команду imalign. Посмотрев справку для этой команды, мы увидим, что она имеет несколько входных параметров: imalign input reference coords output shifts=shifts.txt. Мы так же будем использовать дополнительный параметр shifts. Обсудим каждый из них отдельно.

input - список изображений для выравнивания.
reference - опорное изображение, по которому мы будем равнять остальные.
сoords - текстовый файл, содержащий координаты звезд (X, Y) на опорном изображении, звезды должны быть видны на всех изображениях. Они будут использованы для определения сдвига каждого изображения.
оutput - список итоговых изображений.
shifts - текстовый файл, содержащий приблизительные сдвиги каждого изображения, по одному изображению на строку. Используйте одну звезду, имеющуюся на всех кадрах, чтобы оценить эти сдвиги. Этот дополнительный параметр нужен практически всегда, так как без него изображения не будут хорошо выровнены.

5.8 Комбинирование нескольких изображений.

Теперь изображения выровнены. Их необходимо скомбинировать с помощью команды imcombine так же как мы это делали с плоскими полями.

cl> imcombine @list_M42_V_120s M42_V

M42_V - это итоговое изображение в фильтре V.

6. Первичная обработка спектроскопических данных.

Замечание. Для более полной и детальной информации по обработке спектра используйте пособие A User's Guide to Reducing Slit Spectra with IRAF.

6.1 Обзор обработки спектроскопических данных.

Первые несколько шагов такие же как для снимков звезд: исправление темноты и плоского поля (см. параграфы 5.1-5.6) Затем необходимо скомбинировать спектры, однако, нельзя применять ту же процедуру, что и с изображениями звезд (5.7).

Замечание. Если отношение сигнал/шум на снимке спектра мало, не надо применять коррекцию плоского поля. Часто систематические ошибки ПЗС-матрицы не добавляют значительного шума за счет плоского поля.

После получения результирующего изображения спектра необходимо определить дисперсионное уравнение. Это означает, что мы должны найти соотношения между количеством пикселей вдоль спектра и длиной волны.

6.2 Определение оси дисперсии.

Бывает, что нужно определить ось дисперсии. Для этого существует ключевое слово DISPAXIS в заголовке файла. Просмотрите заголовок, используя команду imheader с включением длинных ключевых слов:

cl> imhead science_exposure_filename long+

Найдите слово DISPAXIS в данном списке. Вы так же можете использовать команду UNIX grep, чтобы выделить слово DISPAXIS:

cl> imhead science_exposure_filename long+ | grep DISPAXIS

grep чувствительна к написанию, поэтому будьте уверены, что напечатали слово верно (или используйте опцию -i для этой команды).

Для спектров с горизонтальной осью дисперсии DISPAXIS=1, для вертикальных - DISPAXIS=2. Если вам необходимо изменить параметр DISPAXIS, используйте команду hedit:

cl> hedit science_exposure_filename DISPAXIS 1 add+

Замечание. Здесь использован параметр add, он нужен в тех случаях, когда слово DISPAXIS отсуствует в заголовке файла.

6.3 Подготовка APALL.

Замечание. Изначально эта процедура была разработана для определения следа спектра в спектроскопии континуума. Это можно использовать для спектроскопии туманностей, но здесь мы не будем на этом останавливаться. В этом пособии предполагается, что мы работаем со сплошным спектром. Если мы работаем со спектром туманности, пункты 3-7 этого раздела должны быть заменены другим методом. Мы вынесли это в отдельный раздел 7.

appall - многошаговая команда, которая извлекает данные из вашего двумерного ПЗС-изображения. Чтобы заместить команду apall, загрузите пакеты noao, onedspec, twodspec и apextract:

cl> noao
no> onedspec
on> twodspec
tw> apextract

Теперь мы должны изменить параметры команды appall:

cl> epar apall 
PACKAGE = apextract
   TASK = apall

input   =                      List of input images
(output =                    ) List of output spectra
(apertur=                    ) Apertures
(format =           multispec) Extracted spectra format
(referen=                    ) List of aperture reference images
(profile=                    ) List of aperture profile images

(interac=                 yes) Run task interactively?
(find   =                  no) Find apertures?
(recente=                  no) Recenter apertures?
(resize =                  no) Resize apertures?
(edit   =                 yes) Edit apertures?
(trace  =                 yes) Trace apertures?
(fittrac=                 yes) Fit the traced points interactively?
(extract=                 yes) Extract spectra?
(extras =                 yes) Extract sky, sigma, etc.?
(review =                 yes) Review extractions?

(line   =               INDEF) Dispersion line
(nsum   =                  10) Number of dispersion lines to sum or median

Изменяем find=no, recente=no, resize =no (как приведено выше). Замечание. У команды apall много параметров, здесь показана только первая страница.

Так же необходимо изменить параметры команды apextract:

cl> epar apextract
PACKAGE = twodspec
   TASK = apextract

(dispaxi=                   1) Dispersion axis (1=along lines, 2=along columns)
(databas=            database) Database
(verbose=                  no) Verbose output?
(logfile=                    ) Text log file
(plotfil=                    ) Plot file
(version= APEXTRACT V3.0: August1990)
(mode   =                  ql)
($nargs =                   0)

Изменяем dispaxi=1 (вдоль строк).

6.4 Запуск APALL: определение апертуры.

Чтобы запустить apall, и извлечь спектр, наберите:

cl> apall science_exposure_filename

Появится интерактивное окно, в котором можно задавать различные апертуры.



Рис.1

Это график зависимости значения пикселя от координаты Y. Звездный спектр представляет собой пик в районе 250-ой строки. Нам нужно задать апертуру, которая бы собрала весь свет из этого пика. Для начала необходимо увеличить масштаб. Для этого используются команды w и e. Чтобы увеличить, нажмите w, затем нажмите e, чтобы определить левую и правую границы области, которую необходимо увеличить. Например, если нажать w и e в том месте, где расположен курсор на рисунке 1, затем нажать e сразу по окончании пика, мы получим то, что изображено на рисунке 2. Для возвращения обратно наберите w и a.



Рис.2

Теперь мы можем видеть больше деталей. Область, отделенная отрезком с цифрой 1 над ним - это апертура, автоматически определенная IRAF. Она выглядит правдоподобной, но давайте попробуем ее переопределить. Мы можем определить центр апертуры, используя курсор (навести его на центр, и нажать n), или использовать его как стартовую позицию для центрирования с помощью IRAF (навестись на центр и нажать m). Можно использовать кнопку d, чтобы удаль предыдущие значения апертуры (они будут нумероваться 1,2,3 и т.д.). Ширина апертуры может быть определена с помощью кнопки y. Она задает ширину апертуры, равной расстоянию от центра до местоположения курсора (поэкспериментируйте, чтобы понять, как это работает). Наоборот, вы можете задать верхнюю и нижнюю границы апертуры, используя кнопки u и l (для верхней и нижней соответственно).

6.5 Запуск APALL: определение фона.

Когда вы задали апертуру, нажмите b, чтобы перейти к заданию апертуры фона. IRAF снова выберет некоторые значения автоматически, как видно из рисунка 3.



Рис.3

Рекомендуется задать более расширенный вид, на котором видны детали фона. Для этого используем клавиши w и e или w и a, как и ранее. Получим то, что изображено на рисунке 4.



Рис.4

Теперь мы видим фон. Четыре отрезка внизу картинки показывают места, где будет взят фон. Штриховая линия показывает приближенное значение фона, что очевидно неверно. Нам надо переопределить апертуру фона. Надо использовать клавишу s, чтобы задать новые области. Нажмите s в начале и в конце той области, которую вы хотите использовать для вычисления фона, затем нажмите f, чтобы штриховая линия обозначила новое приближение (вы можете удалить предыдущие области с помощью кнопки z). Рекомендуется использовать широкие полосы фона с двух сторон от пика (рисунок 5).



Рис.5

Теперь видно, что приближенный фон (штриховая линия) хорошо согласуется с реальным. Когда вы удовлетворены приближением фона, нажмите q, чтобы вернуться в режим редактирования апертуры.

6.6 Запуск APALL: определение следа.

След - это то, что определяет форму апертуры при движении вдоль дисперсионной оси. Например, если ваш звездный спектр не горизонтален или он кривой, IRAF необходимо определить его форму, чтобы аккуратно извлечь спектр.

Нажав q в режиме редактирования апертуры, вы попадете в режим поиска следа (рисунок 6).



Рис.6

Здесь точки с данными (+) представляют след спектра, штриховая линия показывает приближение. Разница выглядит огромной, пока вы не заметите, что отклонение по оси Y от штриховой линии составляет около 3 пикселей. Чтобы увеличить порядок приближающего полинома используйте команду :or (не забудьте двоеточие). После :or введите нужный порядок полинома. В данном случае лучше использовать четвертый порядок. Затем нажмите f, чтобы получить приближение. Вы увидите, что оно неплохо согласуется (рисунок 7), но все же не идеально, хотя отклонение от реальной картины порядка 0.1 пикселя.



Рис.7

Все апертуры, которые мы только что определили, сохраняются в файл с именем database/apscience_exposure_filename в текущей папке. Так что вы можете вернуться к этой картинке позже и продолжить определение апертуры. Чтобы использовать эти апертуры для другого изображения, можете запустить apall следующим образом:

cl> apall science_exposure_filename2 ref=science_exposure_filename

6.7 Запуск APALL: извлечение спектра.

Чтобы извлечь спектр из данных, нажмите q для выхода из режима приближения следа и отвечайте на вопросы, задаваемые apall.

Есть два варианта извлечения спектра. Во-первых, можно просто просуммировать все отсчеты внутри апертуры и вычесть фон, однако, здесь есть несколько проблем. Малое количество фотонов в крыльях увеличивает шум, а если в нашу апертуру попадает космическая частица, это может увеличить общую сумму. Во-вторых, можно варьировать вес суммы по отношению сигнал/шум в каждом пикселе. Этот метод более устойчив к малому количеству шумящих пикселей и хорошо выявляет космические частицы. Недостаток этого метода в том, что он учитывает только шум считывания (без темнового тока).

Извлеченный спектр будет записан как одномерный спектр в файл science_exposure_filename.ms.fits.

6.8 Калибровка спектра по длинам волн.

IRAF может откалибровать спектр по длинам волн, используя список с длинами волн линий на снимке калибровочной лампы. Например, наш калибровочный файл называется sbo_HeAr.dat. Используйте команду identify , чтобы отождествить эти линии с особенностями на вашем калибровочном спектре.

cl> identify cal_lamp_exposure_filename section='line l1 l2' 
coordlist='path/sbo_HeAr.dat'

Параметры 11 и 12 означают строки, из которых мы берем информацию о спектре (так как это калибровка по длине волны, мы можем не брать полную апертуру, а ограничиться лишь двумя строками).

Однако, section='line l1 l2' может не работать. Если строки были плохо усреднены, можно использовать метод прибавления строк, описанный в следующем разделе.

Используя стандартные снимки калибровочной лампы, отождествите две или три линии, наведите курсор на их центры и нажмите m (для отметки). Затем введите длины волн согласно требованиям IRAF. Нажмите f, чтобы получить приблизительное разрешение. Нажмите q для возвращения к изображению спектра. Теперь IRAF имеет грубое представление о дисперсионном уравнении. Программа может отождествить дополнительные линии в вашем спектре и определить их длины волн из данных sbo_HeAr.dat. Вследствие этого, на графике зависимости длины волны от номера пикселя появится еще несколько точек. Чтобы IRAF автоматически отождествил дополнительные линии, нажмите l.

Теперь мы должны проверить, правильно ли IRAF провел идентификацию. Используйте клавиши z, d, +, p для удаления неверных отметок (см. справку для более подробной информации). Нажмите f еще раз, чтобы получить новое приближение. Используйте d, чтобы удалить все выпавшие точки. После этого еще раз нажмите f и выйдете из идентификационной программы (нажмите q два раза). Теперь у вас есть дисперсионное уравнение, которое было сохранено в папке с названием database.

6.9 Сопоставление дисперсионного уравнения и изображения.

Теперь мы должны сопоставить дисперсионное уравнение к астрономическим кадрам. Для этого необходимо добавить ключевое слово в заголовок файла с изображением. Чтобы изменить заголовок, используйте команду hedit (удостоверьтесь, что вы применяете ее к итоговому файлу):

cl> hedit science_exposure_filename.ms REFSPEC1 "cal_lamp_exposure_filename" add+

Если поле REFSPEC1 уже существует в заголовке, используйте параметр add-

6.10 Применение дисперсионного уравнения.

Чтобы применить дисперсионное уравнение к изображению, используйте команду dispcor:

cl> dispcor science-exposure-filename calibrated-science-exposure-filename

Теперь вы можете использовать splot , чтобы просмотреть и проанализировать ваши данные, используя в качестве координат ангстремы.

6.11 Использование splot для просмотра откалиброванного спектра.

Если вы правильно использовали команды identify и dispcor, тогда горизонтальная ось на изображении будет измеряться в ангстремах. Если вы наведете курсор на любую точку спектра и нажмете пробел, splot напечатает координаты курсора вверху окна.

Команда splot содержит много интерактивных инструментов для анализа спектра. Как и во всех интерактивных командах IRAF, значок ? выдает короткую справку по командам. Изучим некоторые из наиболее часто используемых команд.

Команды изображения: увеличение и уменьшения.

Вы можете поменять шкалу оси и увеличить часть спектра, используя клавишу a, чтобы отделить углы прямоугольника, который вы хотите увеличить. Наведите курсор на то место, которое будет левым нижним углом нового изображения и нажмите а. Затем наведите курсор на правый верхний угол и нажмите а. Прямоугольник, который вы определили, увеличится. Чтобы вернуться к полному изображению, нажмите c.

Так же может быть использована команда :hist. Она является переключателем двух разных типов линий на графике. Включив данную команду, вы увидите гистограмму, отключив, вы увидите спектр, все точки которого соединены прямыми линиями. Посмотрите, как вам больше понравится (рисунок 8 ниже построен в обычном стиле, а не в стиле гистограммы).

Определение центров линий и потоков: разделяющая команда.

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

Во-первых, используем клавишу а, чтобы увеличить линию (линии), которые мы будем изучать.

Во-вторых, наведем курсор на участок непрерывного спектра далеко слева от линий и нажмем d. Затем сделаем тоже самое справа от линий. Это определит уровень непрерывного спектра. В выборе участка непрерывного спектра есть хитрость. С одной стороны, нужно захватить довольно большой участок непрерывного спектра, чтобы приближение было хорошим. Однако, это будет просто линия с неким наклоном, поэтому если непрерывный спектр не линеен, необходимо выбрать маленький участок, который будет приблизительно линеен. В конце процесса приближения мы увидим графическое представление приближенного непрерывного спектра, так что можно проверить, хорошо ли вы выбрали область.

В-третьих, необходимо выбрать, какие особенности спектра мы будем приближать. Заметьте, что вверху окна splot, есть меню, где написано что-то в роде:

Lines ('f'ile, 'g'aussian, 'l'orentzian, 'v'oigt, 't'ype, 'q'uit:

Вам нужно просто навести курсор на линию (при этом неважна вертикальная координата вашего курсора) и нажать клавишу, означающую тот тип приближения, который вам нужен. Предположим, что это гауссиана, так что надо нажать g. Проделайте тоже самое с каждой линией вашего сегмента. Используйте клавишу d, если вам не интересны некоторые линии. Если вы пропустите линию, ее величина будет считаться частью непрерывного спектра, что повлечет за собой большие ошибки. Каждый из отождествленных линий будет помечена коротким вертикальным штрихом. Как только вы пометили все линии, нажмите q и переходите к следующему шагу. Вы увидите вопрос вверху окна splot:

Fit positions (fixed, single, all, quit)

IRAF спрашивает, хотите ли вы, чтобы центры (положения) линий были переменными при приближении. Пока у вас нет причин это не делать, жмите а для подтверждения.

Теперь вам зададут новый вопрос:

Fit Gaussian widths (fixed, single, all, quit)

Теперь спрашивается, хотите ли вы, чтобы ширина линий была переменной. Заметьте. Что вопрос может меняться в зависимости от того, какой тип профиля вы использовали при маркировке линий. Лучше всего нажать а, чтобы у каждой линии была своя ширина.

Появится новый вопрос:

Fit background (no, yes, quit)

IRAF спрашивает, нужно ли вычислять поток в непрерывном спектре. В большинстве случаев лучше нажимать y (yes).

Теперь IRAF отобразит результат приближения, как показано на рисунке 8. Сначала проверьте, что приближение разумно. Зеленая штриховая линия показывает приближение уровня непрерывного спектра. Хотелось бы, чтобы она хорошо согласовалась со средним. На рисунке 8 это выглядит реально, так как зеленая линия проходит через шум на правдоподобном уровне. Красная штриховая линия показывает приближение профилей.



Рис.8

Текстовая строка вверху окна splot дает информацию о вычисленных линиях, которые пронумерованы от одного до n слева направо. На рисунке 8 мы видим, что низкая шумная широкая линия слева имеет центр на 6551.11 ангстремах, поток в ней составляет 637.4 отсчета*ангстрем, эквивалентная ширина не определена (INDEF), потому что это эмиссионная линия, а не абсорбционная линия, полуширина на полувысоте составляет 8.55 ангстрем. Чтобы просмотреть такую же информацию для других двух линий, используйте клавиши + и -. Нажав r, вы получите среднеквадратичное действующее значение шума непрерывного спектра для сравнения с потоком в линиях.

Нажмите q для выхода. Вас могут спросить, не хотите ли вы попробовать вычислить линии с другими параметрами. Чтобы выйти совсем, нажмите q для каждого из вопросов. Когда вы вернетесь в обычный режим splot, вы увидите вверху окна сообщение Deblending done. Чтобы покинуть splot еще раз нажмите q.

7. Альтернатива команде APALL.

Для непрерывного спектра команда apall работает прекрасно. Если же вы имеете дело со спектром туманности, команда apall уже не подходит. В этом случае нужен более сложный метод. Один из них описан здесь.

Пункты 1 и 2 этого раздела совпадают с пунктами 6.1 и 6.2. Так что начнем сразу с третьего.

7.3 Подготовка к нахождению апертуры.

Если ваш спектр вытянут вдоль горизонтальной оси, очевидной альтернативой apall будет простое усреднение нескольких строк для получения одномерной картинки. Если ваш спектр вытянут не вдоль горизонтальной оси, просто поверните его, используя команду rotate. Чтобы скомбинировать строки в одну (одномерный спектр), необходимо использовать команду imcombine с верными входными данными. В данном случае, вместо сложения изображений. Мы должны строки. Это можно сделать, используя части изображений, как описано в параграфе 4.4.

Нам необходимо создать список, в котором каждая картинка - это строка изображения, которую надо скомбинировать.

Есть простой код в UNIX, который генерирует такой список. Здесь приводится текстовый файл

## This program will print to screen a list for combining 
## lines of pixels using the IRAF task imcombine.  The output 
## should be redirected to a file for usage as a list file in IRAF.
##
## usage:
##    mkspeclist imagename linestart lineend
##    imagename -- filename of the image whose lines you wish 
##                 to combine
##    linestart -- line number of the first (lowest numbered)
##                 line to be combined
##    lineend   -- line number of the last (highest numbered)
##                 line to be combined
##
set file = $1
set a = $2
set b = $3
set ind = $a
while ( $ind <= $b )
  echo $file\[\*,$ind\]
  set ind = `expr $ind + 1`
end

Использовать файл необходимо так:

% mkspeclist imagename l1 l2

Где imagename - название изображения, с которым вы работаете, а l1 и l2 - это первый и последний номера строк, которые необходимо скомбинировать. Программа просто выводит список на экран. Например, это может выглядеть так:

% mkspeclist myspectrum 450 460
myspectrum[*,450]
myspectrum[*,451]
myspectrum[*,452]
myspectrum[*,453]
myspectrum[*,454]
myspectrum[*,455]
myspectrum[*,456]
myspectrum[*,457]
myspectrum[*,458]
myspectrum[*,459]
myspectrum[*,460]

Теперь вы можете скопировать и вставить эти строки, чтобы создать файл со списком. По-другому, вы можете направить этот список в файл:

% mkspeclist myspectrum 450 460 > lines_myspectrum

Теперь откройте файл lines_myspectrum, он будет содержать 11 строк, которые до этого были на экране.

7.4 Нахождение апертуры.

Теперь, когда у нас есть начальный список, мы можем скомбинировать строки:

cl> imcombine @lines_myspectrum myspectrum_1D combine=average

Заметим, что здесь был специально определен параметр combine=average (а не медиана), так как если мы комбинируем что-то, что не имеет постоянной яркости, мы не должны использовать медиану.

7.5 Изучение одномерного спектра.

Файл myspectrum_1D - это одномерный спектр, который выглядит очень скучно (одна строка пикселей), однако, можно использовать команду implot, чтобы посмотреть на него:

cl> implot myspectrum_1D

Результат показан на рисунке 9.



Рис.9

Команда implot содержит много интерактивных возможностей. Они описаны в справке, здесь мы выделим возможность увеличения части изображения. Например, в данном случае мы видим только самые яркие линии. Чтобы увидеть информацию о слабых деталях, необходимо изменить масштаб по оси Y. Необходимо напечатать :y 0 300 (не забудьте двоеточие), после этого отсчеты по оси Y будут от 0 до 300. Теперь можно увидеть более слабые линии (рисунок 10).



Рис.10

Существует подобная команда для изменения масштаба по оси X.

7.6 Вычитание неба.

Чтобы вычесть небо из спектра (в команде apall это делалось автоматически), надо описанным выше способом получить спектр из снимка, не содержащего объект:

% mkspeclist myspectrum 480 900 > lines_sky
cl> imcombine @lines_sky myspectrum_sky combine=average

В данном случае строки 480-900 содержат только пустое небо. В идеале нужно комбинировать все линии, которые возможны, чтобы уменьшить количество шумов, вносимое вычитанием неба.

Теперь мы просто используем imarith для вычитания спектра неба.

cl> imarith myspectrum_1D - myspectrum_sky myspectrum_1D_skysub

Теперь файл myspectrum_1D_skysub - это одномерный спектр источника с вычтенным небом. Заметим, что в шаге вычитания важно, чтобы в команде imcombine был параметр combine=average (вместо суммы). Если бы мы сложили эти линии, мы бы не могли просто вычесть спектр неба из спектра объекта, так как они содержат разное количество строк. Так как мы усреднили, нам об этом не надо беспокоиться.

После всего этого вы можете вернуться в пункту 6.8 данного пособия.

8. Обработка фотометрических данных.

Для того, чтобы вы могли непосредственно потренироваться в обработке фотометрических данных, в архиве m51fits.zip (размер 2 Mb) лежат снимки галактики М 51 в 4 фильтрах, а также flat, dark и bias.

8.1 Использование расширение .imh и его взаимодействие с форматом .fits

В предыдущих разделах все изображения имели по умолчанию расширение .fits , так как это было задано в файле login.cl (см. параграф 1.4). Однако, можно также работать с другим типом файлов, имеющим расширение .imh. Для этого в файле login.cl 34 строку

set imtype = "fits"

заменить на

set imtype = "imh"

Если у вас есть начальные файлы, имеющие расширение .fits, их можно перевести в другой тип с помощью команды rfits.

cl> rfits /path/imagename.fits 0 imagename.imh

где path - местонахождение файла imagename.fits. Если у вас есть несколько изображений с похожими названиями, то их все можно перевести одним действием:

cl> rfits /path/imagename*.fits 0 imagename

В результате новые изображения будут называться imagename0001.imh, imagename0002.imh и т.д.

Аналогичным образом можно файлы .imh перевести в файлы .fits, используя команду wfits. С помощью команды epar можно изменить параметры:

cl> epar wfits 

bscale = 1.              FITS bscale
        bzero = 0.              FITS bzero
       (fextn = "fits")          Extension to append to output disk FITS
  (extensions = no)             Write all images to a single FITS file ?
  (global_hdr = yes)            Prepend a global header to the FITS
  (make_image = yes)            Create a FITS image file?
 (long_header = no)             Print FITS header cards?
(short_header = yes)            Print short header?
      (bitpix = 16)             FITS bits per pixel
(blocking_fac = 0)              FITS tape blocking factor
       (scale = yes)            Scale data?
   (autoscale = yes)            Auto_scaling?
        (mode = "ql")

Рекомендуется использовать для результирующих файлов расширение, отличное от .fits , например, .fts или .fit , чтобы различать начальные и конечные файлы.

В этом разделе мы для примера будем работать с файлами .imh.

8.2 Учет плоского поля, темнового тока и шума считывания. Сложение изображений.

В этом пункте надо проделать операции параграфов 5.2-5.8.

8.3 Определение апертур звезд.

Получив изображение после первичной обработки, можно приступать к получению фотометрических результатов. Первое, что нам необходимо сделать -- это определить апертуры фотометрируемых звезд. Для это нужно использовать команду radprof, адрес которой

cl> noao
no> digi
di> app
ap> radprof imagename.imh

Появится перечень вопросов, ответы на которые вы определяете сами, в зависимости от вашей задачи. Часто удобными являются 10 и 1 соответственно

The maximum radial profile radius in scale units: 
The step size for radial profile in scale units:  

После ответов на эти вопросы на изображении появится мигающий кружок, в центр которого необходимо поместить исследуемую звезду и нажать d. Появится дополнительное окно, в котором изображен двумерный профиль звезды (см. рисунок 11). Исходя из профиля, вы определяете радиус апертуры звезды, внутренний и внешний радиусы апертуры кольца фона в пикселях. Необходимо, чтобы звезда проваливалась внутрь апертуры , но при этом не захватывалось много фона. Для выхода необходимо нажать q два раза.



Рис.11

8.4 Подготовка к фотометрии.

После этого необходимо установить параметры фотометрии. Для этого надо набрать команду epar photpars:

                Image Reduction and Analysis Facility
PACKAGE = apphot
   TASK = photpars

(weighti=             constant) Photometric weighting scheme for wphot
(apertur=                   6.) List of aperture radii in scale units
(zmag   =                  25.) Zero point of magnitude scale
(mkapert=                   no) Draw apertures on the display
(mode   =                   ql)

И установить apertur= выбранному значению апертуры вашей звезды. Затем мы набираем команду epar fitskypars:

                 Image Reduction and Analysis Facility
PACKAGE = apphot
   TASK = fitskypars

(salgori=             centroid) Sky fitting algorithm
(annulus=                   7.) Inner radius of sky annulus in scale units
(dannulu=                   3.) Width of sky annulus in scale units
(skyvalu=                   0.) User sky value
(smaxite=                   10) Maximum number of sky fitting iterations
(sloclip=                   0.) Lower clipping factor in percent
(shiclip=                   0.) Upper clipping factor in percent
(snrejec=                   50) Maximum number of sky fitting rejection
iteratio
(sloreje=                   3.) Lower K-sigma rejection limit in sky sigma
(shireje=                   3.) Upper K-sigma rejection limit in sky sigma
(khist  =                   3.) Half width of histogram in sky sigma
(binsize=                  0.1) Binsize of histogram in sky sigma
(smooth =                   no) Boxcar smooth the histogram
(rgrow  =                   0.) Region growing radius in scale units
(mksky  =                   no) Mark sky annuli on the display
(mode   =                   ql)

Где устанавливаем annulus= внутреннему радиусу фона, dannulu=ширина кольца.

8.5 Фотометрия ярких звезд.

Затем можно фотометрировать звезду, используя команду phot. На изображении снова появится кружок, в центр которого, как и раньше, необходимо поместить нашу звезду и нажать пробел. После чего на экране появится надпись:

imagename.imh    132.54   219.63  2687.225   15.218  ok

где первые два числа - координаты центра звезды, третье число - поток в единицах отсчета, далее следует инструментальная звездная величина. Команда phot создает файл imagename.imh.mag.*, где * означает номер звезды, в котором содержится все полученная информация. Его можно просмотреть с помощью команды less.

8.6 Фотометрия слабых звезд.

Для слабых звезд очень трудно выбрать апертуру способом, описанным ранее. Здесь используется метод PSF - фотометрии.

Для начала на изображении находим все звездообразные объекты. С помощью команды radprof надо определить апертуру каждой из них и апертуру фона приблизительно, используя клавишу пробел, найти значения параметра FWHM (см. рисунок 12). Затем выбрать максимальные из всех этих значений. Используем команду qphot:

ap> qphot imagename.imh 3 s d a

s - внутренний радиус фона, d - ширина фона, a - апертура звезды. На изображении появится кружок, мы должны навести его по очереди на каждую звезду и нажать пробел. Порядок звезд следует запомнить, самые слабые звезды нужно фотометрировать в последнюю очередь.



Рис.12

Далее, мы покидаем apphot и загружаем daophot:

ap> by
di> dao
da>

Запускаем команду psf:

da> psf imagename.imh 

Input photometry file(s) (default: image.mag.?) (default):
Input psf star list(s) (default: image.pst?):
Output PSF image(s) (default: image.psf.?) (default): 
Output PSF star list(s) (default:image.pst.?) (default): 
Output PSF star group file(s) (default: image.psg.?) (default):
Analytic psf function(s) (gauss):
        Analytic psf function(s): gauss
Order of variable psf (0):

На все перечисленные вопросы надо ответить enter. Далее:

Psf radius in scale units (11.): 

(здесь надо поставить число а из команды qphot).

        New psf radius: 11. scale units 11. pixels
Fitting radius in scale units (3.):

(здесь надо поставить удвоенное значение FWHM)

        New fitting radius: 3. scale units 3. pixels
Minimum good data value (INDEF) (CR or value):

(обычно нуль)

       New minimum good data value: INDEF counts
Maximum good data value (INDEF) (CR or value):

(обычно хватает 200000)

На изображении опять появляется кружок. Помня о порядке звезд, нам необходимо навестись на каждую и нажать а. Появится окно с трехмерным профилем звезды (см. рисунок 13). Если профиль достаточно хороший - жмем а, если он нам не нравится - жмем d. Когда все звезды по порядку пройдены - жмем последовательно f для приближения общего профиля, w для записи результатов в файл, q для выхода.



Рис.13

Затем необходимо вычислить звездные величины, для этого используется команда peak.

da> peak imagename.imh

Input photometry file (default: image.mag.?) (default):
PSF image (default: image.psf.?) (default): 
Output photometry file (default: image.pk.?) (default):
Output rejections file (default: image.rej.?) (default):
Recenter the stars (yes): 

        Recenter the stars: yes
Refit the sky (no): 
        Refit the sky: no

На эти все вопросы мы отвечаем enter. А на следующие:

Psf radius in scale units (11.):

(здесь надо поставить число а из команды qphot).

        New psf radius: 11. scale units 11. pixels
Fitting radius in scale units (3.):

(здесь надо поставить удвоенное значение FWHM)

        New fitting radius: 3. scale units 3. pixels
Minimum good data value (INDEF) (CR or value):

(обычно нуль)

       New minimum good data value: INDEF counts
Maximum good data value (INDEF) (CR or value):

(обычно хватает 200000)

На экране появится строки, похожие на эту:

Star:     1 X:   132.54 Y:   219.63 Mag:    15.22 Sky:  2687.23
        FIT:  Star:     1 X:   132.53 Y:   219.65 Mag:    15.22 Sky = 2687.23

Вся информация будет записана в файл imagename.imh.pk.*, который можно просмотреть с помощью команды less.

Если при работе с IRAF будут возникать какие-то вопросы, то следует обращаться к help.

Желаем удачной работы! =)

Публикации с ключевыми словами: обработка наблюдений
Публикации со словами: обработка наблюдений
См. также:

Оценка: 3.5 [голосов: 112]
 
О рейтинге
Версия для печати Распечатать

Астрометрия - Астрономические инструменты - Астрономическое образование - Астрофизика - История астрономии - Космонавтика, исследование космоса - Любительская астрономия - Планеты и Солнечная система - Солнце


Астронет | Научная сеть | ГАИШ МГУ | Поиск по МГУ | О проекте | Авторам

Комментарии, вопросы? Пишите: info@astronet.ru или сюда

Rambler's Top100 Яндекс цитирования