REDUKCJA  ECHELLE  BOROWIEC

14-XI-2007


Dla osób które dopiero zaczynają z IRAFem  pożyteczna jest szczegółowa instrukcja
do echella z borowca 2007 - MF (ODT)


Inne źródła:

User's guide - Echelle - IRAF (PS)
Schemat - redukcja echelle (PDF)
Introduction to echelle IRAF (PS)
Instrukcja do echelle RR (HTML)
Instrukcja do coude WD (HTML)


Jeżeli pierwszy raz uruchamiamy IRAFa na tym komputerze

Musimy dodać współrzędne naszego obserwatorium do pliku:
/iraf/iraf/noao/lib/obsdb.dat

Przykładowe wiersze które musimy dodać:
# Observatory Parameters.

observatory = "ddo"
        name = "David Dunlap Observatory"
        longitude = 79:25.3
        latitude = 43:51.8
        altitude = 244
        timezone = 5

observatory = "bor"
        name = "Borowiec Observatory"
        longitude = 342:55.524
        latitude = 52:16.62
        altitude = 124
        timezone = -1



1. Jakie pliki i katalogi potrzebujemy

Potrzebujemy następujące ramki FITS: ZERO (bias), FLAT,OBJECT, COMP (ThAr),
oraz pliki login.cl (konfiguracyjny dla IRAFa) i bor_cmd1.obj (do hedit)

drzewko katalogów potrzebne do redukcji:

2007_04_20/

pix/
data/
uparm/
pliki.fits
bor_cmd1.obj
login.cl


- katalog pix zawiera ramki typu pix (część binarna w formacie IRAF)
- katalog uparm zawiera pliki konfiguracyjne tasków IRAFa

Możemy pobrać spakowane drzewko katalogów z odpowiednimi plikami z uparm, *.obj i *.cl : (
drzewko.tgz)
Po rozpakowaniu drzewka w odpowiednim miejscu mozemy skopiowac pliki FITS.

TROCHE CYFR:

rozmiar detektora:    2048 x 2048 pikseli

zakres długości fal:  4550-10075 A
długość zakresu:     5525 A
liczba rzędów:         64

niebieski zakres:    1pix = 0.04 A = 2.6 km/s      długość rzędu = 80 A         każdy rząd dodaje 40 A
środek:                
1pix = 0.05 A = 2.4 km/s      długość rzędu = 100 A       każdy rząd dodaje 80 A
czerwony zakres:   1pix = 0.08 A = 2.4 km/s      długość rzędu = 160 A       każdy rząd dodaje 175 A

photon gain:
saturation level: 65535
read out noise:




2. Co musimy mieć w headerze plików FITS

Header utworzony przez kamerę Andor.
Przy pomocy programu Andor możemy dodać (aditional keywords) aktualnie tego nie stosujemy bo zajmuje dużo czasu.

Do ramek typu object ręcznie musimy dodać pola:


OBJECT  = 'arcturus'           / Name of the object observed   <-to nie musi być 
IMAGETYP= 'object  '           / image type                                       

DEC     = '+19 10 57'          / deklinacja                                    
RA      = '14 15 40'           / rektascencja                                  
EXPSTART= '10:36:41'       <--- UWAGA WARTOŚĆ Z POLA DATE czyli początek ekspozycji UT                                                                           
Do pozostałych typów ramek (zero, comp, flat) dodajemy tylko IMAGETYP - odpowiednie keywordy to zero, comp i flat.

Przykładowa ręczna edycja przy pomocy hedit:                               
cl> hedit V2080Cyg_1
fields to be edited (REFSPEC1): IMAGETYP
value expression (thar09.ec): object
add V2080Cyg_1,IMAGETYP = object
update V2080Cyg_1 ? (yes):



Co dodajemy do hederu przy pomocy asthedit i pliku cmd:

EXPTIME =                  10.                                                 
DATE1   = '2007-05-23T10:36:41'                                                
UT      =     10.6113888888889                                                 
UTMIDDLE= '10:36:46'                                                           
EPOCH   =     2007.38930102416                                                 
MST     = '3:47:44.21'                                                         
JD      =     2454243.94219907                                                 
AIRMASS =       1.052075847834

OBSERVAT= 'bor     '
                                               
LATITUDE= '52:16.63'                                                           
LONGITUD= '342:55.4'                                                           
ALTITUDE= '123     '                                                           
OBSERVER= 'RB, WD  '                   



cl> asthe
Images to be operated upon (*.fits):
File of commands (bor_cmd1.obj):


Współrzędne Borowca:

φ = 52° 16′ 37.2″ N
λ = 17° 04′ 28.56″ E
h = 123.4 m. n.p.m.



3. Zamiana FITS na IMH

Jeden ze sposobów na zamiane FITS/IMH to stworzenie list nazw fits i imh i zastosowanie komendy rfits
cl> ls *.fits > fitslist 
cl> ls *.fits > imhlist     -  musimy ręcznie wyedytowac otrzymany plik zamieniając końcówki na imh.
cl> rfits @fitslist ' ' @imhlist 

W tym katalogu powstają pliki IMH a w katalogu pix, pliki o rozszerzeniu PIX.
Po zmianie formatu mozemy przenieść pliki FITS z uzupełnionymi hederami do katalogu data - nie kasujemy ich w razie ponownego
użycia nie musimy ponownie uzupełniać hedery.
Jeżeli tej zmiany (FITS->IMH) nie dokonamy, w trakcie kolejnych kroków redukcji program sam przerobi pliki na format imh/pix.



4. Korekcja BIAS (zero)

Aby uśrednić pliki typu zero,  korzystamy z tasku  zerocombine  (plik parametryczny).
Możemy stosować average lub median.

Tworzymy tzw. masterbias:
cl> zerocombine out=BIAS

sprawdzamy czy powstał:
cl> ccdl BIAS

BIAS.imh[2048,2048][real][zero][]:

odejmujemy od reszty plików (object, comp i flat):
cl> ccdp zerocor+ zero=BIAS

List of CCD images to correct (*.imh):

Komendą ccdlist sprawdzamy czy została wykonana korekcja - w nawiasach [Z].
cl> ccdlist
CCD images to listed (*.imh):
BIAS.imh[2048,2048][real][zero][]:
V2080Cyg_1.imh[2048,2048][real][object][][Z]:
V2080Cyg_2.imh[2048,2048][real][object][][Z]:
bias1.imh[2048,2048][ushort][zero][]:
bias2.imh[2048,2048][ushort][zero][]:
bias3.imh[2048,2048][ushort][zero][]:
flat1.imh[2048,2048][real][flat][][Z]:
omiAql_1.imh[2048,2048][real][object][][Z]:
omiAql_2.imh[2048,2048][real][object][][Z]:
thar01.imh[2048,2048][real][comp][][Z]:
thar02.imh[2048,2048][real][comp][][Z]:



5. Flat field 2D
Flatowanie  widm  można  robić  na poziomie  2D.  Nasze flaty jednak mają szerokość identyczną z szerokością widma obiektu i proceura IRAFa (apnormalize) nie jest w stanie dobrze wymodelować kształt flatu w rzędach a co za tym idzie nie potrafią dobrze unormować flatu do 1.
cl> apnormalize flat1

Ratunkiem jest flatowanie 1D (patrz punkt 7) lub apflatten (alternatywa apnormalize).

cl> apflatten
flat1
cl> imstat flat1.norm
cl> ccdp omiAql_1 flatcor+ flat=flat1.norm out=omiAql_1.flated

Otrzymujemy flatfield w rzędach a pomiędzy nimi pasy o wartości 1 flat.fits.




5a. Usuwanie światła rozproszonego (Scatered light)
Na podstawie tła między rzędami możemy modelować ten efekt, używa się komendy apscater.

cl> apscatter omiAql_1.imh ref=flat1
List of output corrected images (
omiAql_1_scatter.imh):
Recenter apertures for omiAql_1?  (yes): no
Resize apertures for omiAql_1?  (yes): no
Edit apertures for omiAql_1?  (yes):

Substract scatered light ? yes



6. Uzyskanie widma 1 wymiarowego (sumowanie, ekstrakcja)

Aby na 2D ramce znaleść rzędy widma i posumować je do widma 1D korzystamy z tasku apall.
Proces znajdywania śladu widma i dopasowania wielomianu  będziemy nazywać tracing. Aby nie mieć problemów z prześledzeniem widma możemy wykonać tracing na dobrze naświetlonym widmie gwiazdy lub na flatfieldzie a potem przenieść go na ramki o kiepskim S/N i ThAr.
Program wykonuje kilka kroków:
Plik parametryczny APALL zawiera dużo informacji, modyfikujemy go przy pomocy komendy ec>epar apall.
HELP programu wywołujemy przez  ec> help apall
.

Sumowanie widma FLAT 

Pierwszym sumowanym widmem to dobrze naświetlony FLAT który da nam informacje o śladach rzędów. 

cl> apall flat1
Find apertures for flat1?  (yes):
Number of apertures to be found automatically (64):
Resize apertures for flat1?  (yes):
Edit apertures for flat1?  (yes):


RZĘDY
TRACE
FLAT
FRINGE


Sumowanie widma OBJECT

cl> apall V2080Cyg_1 ref=flat1 out=V2080Cyg_1.ec
Recenter apertures for V2080Cyg_1?  (no):
Resize apertures for V2080Cyg_1?  (no):
Edit apertures for V2080Cyg_1?  (yes):



Sumowanie widma lampy ThAr

Do ekstrakcji widma lampy ThAr korzystamy z gotowego trace'u z flatu (reference). Wyłączamy back, weight i clean.

ec> apall  thar3.fits ref=flat2 back- weights- clean-
Recenter apertures for thar3?  (no):
Resize apertures for thar3?  (no):
Edit apertures for thar3?  (yes):

Na pytanie trace? odpowiadamy NO więc jest pobierany z pliku reference.

***

Oglądanie widma - SPLOT
Programem SPLOT (help) możemy oglądać widma 1D lub przekroje 2D. Można równierz robić deblending pików
określić szerokość połówkkową linii, określić środek lub flux.

cl> splot flat1.ec
Image line/aperture to plot (0:) (1):
Image band to plot (1:) (1):

Aperturę możemy zmienić przy pomocy "(" i ")" lub wybrać konkretną przez "#" i numer rzędu (apertury).

Jeżeli chcemy powiększyć fragment możemy używać standartowego SHIFT X,Y.
Do druku jednak potrzebujemy coś porządniejszego czyli "w" i potem "e" górny lewy,  "e" dolny prawy róg fragmentu którego chcemy powiększyć.

Jeżeli chcemy usunąć ślad cząstki kosmicznej (którą nie usuneł weight i clean z apalla) używamy "aa" by zaznaczyć

obszar piku, przez "j" usuwamy,  "c" zatwierdza, "i"  zapisz zmiany.


Deblending: d, d (zaznaczamy obszar), g, g (wskazujemy piki), q, na kolejne 2 pytania odpowiadamy all,
fit background? yes.




7. Flatowanie 1D

Flatowanie 1D polega na znormalizowaniu flatu do 1- flat ten niesie informacje w każdym pikselu 1D o kilku pikselach 2D poprzecznie do dyspersji (sumowanie/ekstrakcja).

Po pierwsze musimy unormować flat:
cl> continuum  flat1.ec  out=flat1.ec.c

Możemy znormalizowany flat obejżeć poprzez:
cl> splot 
flat1.ec.c
Flat z rzędu bez fringe i z fringem.

Dzielenie widma 1D objektu przez znormalizowany flat wykonujemy komendą imarith:
cl> imarith  omiAql_1.ec  /  flat1.ec.c   omiAql_1.ec.flat1D

W zakresie rzędów bez frige (~rzędy 1-40) nie powinno być wyraźnej zmiany, jednak dla rzędów z wyraźnym fringem (40-60) mamy znaczną poprawę




8. Identyfikacja widma lampy kalibracyjnej ThAr ( ECIDENTIFY )


Katalog linii wimowych lampy ThAr możemy znaleść pod:
KATALOG. Widmo zostało wykonane 25.IV.2007 na teleskopie 2, ekspozycja 30s oraz I=100ma, U=500V. Katalog został stworzony na podstawie katalogu lampy ThAr z NOAO.


Do identyfikacji linii widmowych w widmie ThAr korzystamy z programu ecidentify.
Parametry programu możemy określić w:
ec> epar ecident.

Uruchamiamy go poprzez:
ec> ecident  thar5.ec

Program wyświetla rząd 1. Aby wybrać określony rząd klikamy na "o" (order) i wpisujemy numer rzędu. Do przechodzenie do następnego lub poprzedniego rzędu używamy "j" i "k". Aby wprowadzić długość fali danej linii musimy na nią najechać myszą + przycisk "m" (mark). Program prosi nas o wpisanie długości fali w angsztremach, zatwierdzamy enterem. Tak  oznaczamy kolejne  linie  w tym rzędzie, aby dobrze opisać krzywą dyspersji musimy oznaczyc 5-10 linii rozłorzone w calym rzędzie w miare możliwości. Aby wyświetlić długości fali już wprowadzonych linii wpisujemy :label user lub w skrócie :l u. Jeżeli mamy zidentyfikowane i wprowadzone długości fali lini dla conajmniej 2 rzędów możemy wykonać dopasowanie krzywej dyspersji "f" (fit). Otwiera sie okno pokazujące jakość dopasowania. Do dopasowania możemy stosować różne funkcje np. chebyshev, legendre. Dopasowywany jest wielomian wzdłuż dyspersji o rzędzie :xorder oraz wielomian który określa jak sie zmienia dyspersja między rzędami echelle o rzędzie :yorder. Parametry xorder oraz yorder domyślnie posiadają wartość 2 jednak jest to niewystarczające RMS wynosi wtedy 0.2A. Jeżeli użyjemy  dla obu parametrów  wartość  3 dostajemy RMS  rzędu 0.01A.  Wprowadzamy wartość poprzez :xorder 3. Stosowanie  wyższych rzędów wielomianu może doprowadzić do pogorszenia wyniku  poniewarz  wielomian  zacznie się  dopasowywać do lokalnych przesunięć np. asymetria danej linii. Linie które odskakują od dopasowanie możemy usuwać przez "d". W oknie dopasowania możemy zmienić wartości wyświetlane na osiach przez "x" i "y". Aby powrócić do wpisywania długości fal linii klikamy na "q". Po dopasowaniu krzywej dyspersji mamy już na osi X długość fali a nie piksele jak dotychczas. Ułatwia nam to wprowadzanie długości fal linii poniewarz po zaznaczeniu "m" program proponuje nam długość, jeżeli jest odpowiednia  zatwierdzamy enterem jeżeli nie wpisujemy poprawną. Automatyczną identyfikacje linii możemy wykonać przez "l", dopiero po dopasowaniu krzywej dyspersji. W pliku parametrycznym definiujemy maksymalną liczbe linii do zidentyfikowania 1000-2000.
 Help wewnętrzny programu uruchamiamy przez "?". Po ukończeniu identyfikacji wychodzimy z programu przez "q".

 Instrukcje programu można obejżeć komendą ec> help ecident.

Aby zidentyfikować kolejne widma ThAr,  bez konieczności  wpisywania  długości fal linii  oporowych  korzystamy z  ecreidentify
(plik parametryczny). Program znajduje te same linie co w widmie reference (radzi sobie z małymi przesunięciami) i dopasowuje wielomian tego samego rzędu co w reference (HELP).
ec> ecreid
Spectra to be reidentified: thar2.ec
Reference spectrum: thar5.ec

ECREIDENTIFY: NOAO/IRAF V2.12.2a-EXPORT iraf@wd.astro.amu.edu.pl Fri 11:43:01 11-May-2007
  Reference image = thar5.ec, Refit = yes
               Image    Found     Fit Pix Shift  User Shift  Z Shift      RMS
            thar2.ec  231/231 231/231  -0.00669      0.0309  5.52E-8  0.00934



8a. Korzystanie z gotowej identyfikacji

Możemy skorzystać z gotowej identyfikacji THAR_02 jeżeli od tego momentu nie było zmian ustawień spektrografu.
Musimy pliki skopiować do odpowiednich katalogów:

ecTHAR_2.ec        --->  database
THAR_2.ec.imh      --->  główny
THAR_2.ec.pix      --->  pix

Możemy teraz zastosować  ecreid:

ec> ecreid
Spectra to be reidentified: thar2.ec
Reference spectrum: THAR_2.ec

 


9. Przeniesienie długości fali na widmo obiektu

Do przeniesienia dopasowanego wielomianu zawierającego informacje o dyspersji z widma porównania  (ThAr) na widmo obiektu  używamy task (program)  DISPCOR.  Zawartość pliku parametrycznego tasku oglądamy przez:
  ec> epar disp
Parametr linearize określa czy zachowamy oryginalną dyspersje czy zostanie ona przeliczona na równe odstępy w długości fali (początkowo pomiędzy pikselami mamy zmienną dyspersje). Możemy wpisać nazwy plików, parametry :  input/output.
Aby task wiedział które zidentyfikowane widmo ma posłużyć jako źródło krzywej dyspersji musimy do pliku z objektem *.imh wpisać odpowiedni keyword:
REFSPEC1= 'nazwa1.ec'
REFSPEC2= 'nazwa2.ec'  - jeżeli mamy dwa widma thar

Jezeli chcemy wagować oba widma porównania (np. z powodu rużnego odstępu czasu pomiędzy ramkami thar i object) podajemy wagę po nazwie:
REFSPEC2= 'nazwa2.ec 1.'

Możemy teraz uruchomić task:
ec> disp
List of input spectra (arctur2A.ec):
List of output spectra (arctur2A.ec.lambda):
arctur2A.ec: REFSPEC1 = 'thar5.ec 1.'
arctur2A.ec.lambda: ap = 1, w1 = 4628.773, w2 = 4550.861, dw = -0.03806, nw = 2048
arctur2A.ec.lambda: ap = 2, w1 = 4667.025, w2 = 4588.452, dw = -0.03838, nw = 2048  ..........   67 wierszy dla każdego rzędu

Widmo obiektu możemy obejżeć taskiem splot, jest ono skalibrowane w długości fali. Pomoc do programu dispcor: HELP.


Jeżeli chcemy by nasze widmo miało kontinuum unormowane do 1 możemy skorzystać z tasku continuum - plik parametryczny.
Program dopasowuje wielomian do kontinuum poszczególnych rzędów i normalizuje widmo, stosujemy rząd 4 funkcji.

Aby połączyć wszystkie rzędy widma w jeden ciąg używamy task scombine.


10. Usuwanie linii atmosfery ziemskiej



11. Normowanie widma do 1 - CONTINUUM



12. Pomiar prędkości radialnej - kroskorelacja FXCOR

Opis programu FXCOR możemy znaleść na:
FXCOR
. Jeżeli widmo mamy w postaci oddzielnych rzędów możemy tym programem wykonać korelacje rząd po rzędzie i uśrednić (lub mediana).  Musimy jednak przed tym odrzucic rzędy zawierające zbyt wiele linii atmosfery ziemskiej lub fringe jeżeli widmo nie zostało zflatowane.

Aby uruchomić FXCORE musimy mieć widmo obiektu i widmo gwiazdy odniesienia (np. standart RV lub widmo syntetyczne).
cl> fx  V2080Cyg_1.ec.lambda1.c.imh  omiAql_1.ec.lambda1.c.imh


Otwiera się okno główne FXCOR (? - help).  U góry mamy przebieg funkcji CCF, a na dole okno z z powiększonym fragmentem. Jeżeli chcemy przesunąć ten powiększony fragment najeżdżamy na wybrany obszar u góry i wybieramy "z" (zoom).  Jeżeli mamy 2 lub więcej pików CCF mogą one się nie zmieścić w głównym oknie, wtedy możemy zmienić szerokość okna np. :wind  200 - oznacza to szerokość okna 200km/s.
Przerywana pozima linia to dobrany poziom tła, zmieniamy myszą i "b" (background).
Domyślnie program dopasowuje jeden profil.  Aby dowiedzieć się  jaki to profil  możemy wpisać  :fun.  Dostajemy przykładową odpowiedź
Fitting Function = 'gaussian'

Aby to zmienić  wystarczy  :fun  l,  dostaniemy wtedy  funkcje Lorentza.  Można  to  ustawić w pliku parametrycznym cl>epar fx.

Aby obejżeć oba korelowane widma możemy wybrać "s" czyli  Spectrum mode. Możemy tu wybrać zakres do korelacji (powiedzmy ze mamy atmosferyczne linie do pominięcia)  klikamy 2 razy  "b".  Takich zakresow może być  kilka.  Usuwamy  te zakresy myszą i "u". Przed korelacją widma są przygotowywane -  wygładzenie brzegów, aby zobaczyć efekt tej procedury klikamy "p" (prepared).
Każdy mod ma swój wewnętrzny help dla spectrum, wywołujemy przez "?". Aby powrucić do korelacji klikamy "x".

Możemy wyświetlić szczegóły dopasowania przez "e", wychodzimy "e" lub "q" .

Dla układów podwójnych mamy 2 piki CCF.  Jeżeli śą one b. blisko i nakładają się musimy wykonać deblending.
1. Dwa razy "d" - zaznaczamy obszar deblendingu
2. Zaznaczamy piki "m" (mark) - maksymalnie 4, potem "q"
3. Wybieramy rodzaj dopasowania, zazwyczaj "f"
4. Wychodzimy 2 razy "q"
5. Wyświetlamy wynik "e" - prędkość heliocentryczna km/s

W naszym przypadku mamy więcej rzędów, aby przechodzić między nimi używamy "n"(next) i "p"(previous). Przy pierwszym użyciu przycisku "n" progran prosi nas o podanie nazwy pliku do którego zostana zapisane wyniki.



13.
Pomiar prędkości radialnej - pomiar linii RVIDLINES



14.
Kalibracja strumienia