Képfeldolgozás felsőfokon: az IRAF II Idősorok apertúra fotometriája A cikksorozat első részében bemutattam, hogy az IRAF segítségével hogyan lehet CCD képeinken egyszerű "kézi jellegű" apertúra fotometriával kimérni a csillagok fényességét (Meteor 2001/valamennyi). Ha valaki elkezd komolyan foglalkozni változócsillagok CCD fotometriájával, előbb-utóbb szembesül a problémával, hogy az egy éjszaka alatt összegyűlt több tucat képet egyesével betöltögetni és többszázszor végignyomogatni ugyanazt a billentyűzet-kombinációt elég macerás. Az alábbiakban bemutatom, hogy miként tudjuk dolgunkat megkönnyíteni. A Julián-dátum beállítása A mérések időpontjait Julián-dátumban, vagy - ha szükség van rá - heliocentrikus Julián-dátumban szokás megadni. Ha mérőprogramunk ezt nem írja be képeink fejlécébe, akkor az IRAF megfeleő programjaival mi magunk megtehetjük. A HJD számításához szükség van a mérés pontos idejére és a felvétel égi koordinátáira. Készítsünk az idősor képeiről egy listafájlt: ls *.fit > kepek.lis. A fejlécek tartalmát az imhead @kepek.lis l+ | page utasítással tudjuk megnézni. Ha a képek égi koordinátái nicsenek a fejlécekben, a hedit task segítségével beírhatjuk. Például a rektaszcenzió (RA) beállítása: epar hedit, images=@kepek.lis, fields=RA, value="'13:52:00'", add=yes, update=yes, :g-vel futtatjuk, majd ugyanígy beírjuk a deklináció értékét is. Vessünk egy pillantást az obszervációs dátum (általában DATE-OBS) értékre is. Az IRAF számára a YYYY-MM-DD, vagy a DD/MM/YYYY formátum a helyes. Ha nem így van a fejlécben, ezt is módosítsuk. Szükségünk van még az észlelőhelyünk hozzávetőleges földrajzi koordinátáira is. Ezeket az observatory task paraméterlistájába kell beírni (epar observatory). Például Budapest esetén: observa=Bp, name=Bp, longitu=-19, latitud=47.5, altitud=100, timezon=-1 vagy -2 attól függően, hogy KözEI, vagy NyISz időt használtunk (ha UT van a fejlécben, akkor 0), majd :q-val kilépünk a szerkesztőből. Ezek után a Julián-dátum beállítása a noao.astutil csomag setjd taskjával történik: epar setjd, images=@kepek.lis, observa=obspars, date=DATE-OBS, time=TIME-OBS, expsur=EXPTIME, ra=RA, dec=DEC, jd=JD, hjd=HJD, ljd=LJD. Az utdate és uttime paraméterek értéke yes, ha az időpontok UT-ban vannak megadva a fejlécekben. Ha no-t írunk be, akkor az observatory task időzóna-paraméterét veszi figyelembe. Ha mindent jól csináltunk, megjelennek a fejlécekben a JD, HJD, LJD kulcsszavak a megfelelő értékekkel. Az idősor fotometria egyszerűbb változata Gyakran előfordul, hogy a képeinken rögzített sok-sok csillag közül csak néhány fényváltozására vagyunk kíváncsiak (pl. egy változócsillag és egy-két összehasonlító). A legelső felmerülő probléma ilyenkor, hogy a képek "lötyögnek" a távcsőmechanika vezetési hibái miatt. Ilyen esetekben viszonylag egyszerű alternatív megoldás a következő: a képsorozatból kiválasztunk egy referncia-képet, a többit pedig úgy toljuk el az imalign taskkal, hogy a képeken a csillagok ugyanazokon a koordinátákon legyenek. Ezután a képsorozatra ráereszthetjük a noao.digiphot.apphot csomag qphot taskját, kihasználva, hogy a qphot-nak lehet adni egy koordináta-listát a mérendő csillagokról - vagyis csak a megadott koordinátákon lévő csillagok fényességét fogja kimérni. Hogyan lehet ezt megvalósítani? A recept: Az imalign-nak szüksége van egy input és egy output képlistára. Képeinkről készítsünk egy lista-fájlt: ls *.fit > kepek.lis Ez lesz az input lista. Ezután a készítsünk egy output listát is. Pl. egy egyszerű szerkesztővel megnyitjuk a kepek.lis- t és minden kép neve elé odaírunk egy s-t, vagy valami ilyesmi, majd mentsük el a listát más néven (pl. eltol.lis). Alternatív megoldás a következő: awk '{print "s"$1}' kepek.lis > eltol.lis Ehhez persze szükséges, hogy fel legyen telepítve gépünkre a minden Linux disztribúcióban benne lévő awk nyelv. Ha megnézzük az imalign paraméterlistáját (epar imalign), láthatjuk, hogy szükség van még egy prelimináris eltolásokat tartalmazó fájlra is (shifts), valamint referencia koordinátákra (egy kiszemelt csillag az adott képeken hol van). Ezek elkészítéséhez az imexam nyújt segítséget. Csináljunk egy utasítás-listát az IRAF-nek egy másik terminál ablakban: for i in *.fit; do echo disp $i; echo imexam; done > eltol.cl majd futtassuk: cl < eltol.cl > refcord.txt Egymás után betöltődnek a képek és elindul az imexam. A képeken ráállunk a kurzorral egy kiválasztott csillagra (pl. a változóra) és ,-t nyomunk (kiírja a csillag koordinátáit a refcord.txt fájlba), majd q-val kilépünk az imexam-ból és betöltődik a következő kép stb. Ezt eljátszuk az összes képre. Valami ilyesmi lesz a refcord.txt-ben: z1=371. z2=645.8613 # COL LINE RMAG FLUX SKY N RMOM ELLIP PA PEAK MFWHM 137.27 305.04 12.85 72328.0 509.00 77 4.19 0.144 57.3 2675.56 5.02 z1=375. z2=641.4958 # COL LINE RMAG FLUX SKY N RMOM ELLIP PA PEAK MFWHM 137.50 303.00 12.92 68155.0 510.00 78 3.93 0.150 66.6 2041.37 5.88 ... ... ... Ebből csak a COL és a LINE (x,y koordináták) értékei kellenek. A felesleges dolgokat egy editorral ki kell törölni, vagy végre kell hajtani a következő utasítást: cat refcord.txt | grep -v '#' | grep -v 'z' | awk '{print $1,$2}' > refcord.dat A refcord.dat-ban már csak a koordináták lesznek: 137.27 305.04 137.50 303.00 137.90 296.89 ... ... ... Ezután elkészítjük a körülbelüli eltolásokat tartalmazó fájlt (refernciaképnek célszerű a legelsőt venni): awk '{print 137.27-$1,305.04-$2}' refcord.dat > shift.dat Vagyis a legelső (referncia) kép csillagkoordinátáiból kivonjuk a többi kép koordinátáit. A shift.dat tartalma: 0 0 -0.23 2.04 -0.63 8.15 ... ... ... Állítsuk be az imalign paramétereit (epar imalign), és futtassuk (:g). A paraméterek nagyrésze értelemszerű: input=@kepek.lis, referenc=az első kép, coords=refcord.dat, output=@eltol.lis, shifts=shift.dat. Fontos, hogy interpoláció típusát köbös spline-ra állítsuk, és kapcsoljuk ki a trimmelést: interp_=spline3, trimima=no. Az itt vázolt tortúrára csak akkor van szükségünk, ha nagyon nagy elcsúszások vannak a képek között, vagy ha túl sűrű a csillagmező. Legtöbbször elég az is, ha a referenciaképen kiválasztunk néhány fényesebb csillagot és ezek koordinátáit adjuk be egy fájlban a coords paraméternél, valamint bigbox méretét nagyra állítjuk (akár 30-40 pixelre). Ezután már csak annyi a dolgunk, hogy a referncia képről kigyűjtjük a számunkra érdekes csillagok koordinátáit (disp, imexam, ,-k nyomogatása, q) és beleírjuk egy fájlba (pl. eztmerd.dat) hasonló elrendezésben, mint ahogy az a refcord.dat-ban van. Az epar qphot utasítással editáljuk a qphot paramétereit: image=@eltol.lis; annulus, dannulus, aperture az előző cikkben leírt módon; coords=eztmerd.dat; output=default; obstime=HJD, interac=no és :g-vel futtatjuk. A task sikeres lefutása után kapunk egy csomó .mag.1 kiterjesztésű fájlt. Ha belenézünk egy ilyen fájlba, borzasztó elrendezésben láthatjuk az adatokat. A hasznos információkat a txdump paranccsal nyerhetjük ki. Ha HJD és fényesség adatokra van szükségünk: txdump *mag.1 otime,mag yes > magok.dat. Természetesen a txdump-pal más paramétereket (koordináták, a csillag sorszáma, hiba, képnév stb.) is ki tudunk bányászni. A paraméterek kulcsszavait a .mag fájlok átböngészésével tudhatjuk meg. A magok.dat-ba belenézve valami ilyesmit láthatunk: 2451985.27409792 10.339 2451985.27409792 12.795 2451985.27457245 10.380 2451985.27457245 12.833 ... ... ... Ha egy változó-összehasonlító párunk volt és a képeken a változót mértük ki először, akkor az első oszlopban a HJD-k, a másodikban pedig felváltva a változó és az összehasonlító insztrumentális fényességei követik egymást. Hát ezzel nem megyünk sokra. Jobb lenne, ha egy sorban az időpont és a hozzá tartozó differenciális fényesség lenne. A probléma egy lehetséges megoldása a következő: awk '{hjd=$1; v=$2; getline; hjd=$1; oh=$2; print hjd,v-oh;}' magok.dat > diffmag.dat A diffmag.dat tartalma már elégetdett mosolyt csalhat arcunkra: 2451985.27409792 -2.456 2451985.27457245 -2.453 2451985.27504698 -2.452 2451985.27552151 -2.451 ... ... ... Ezt már lehet ábrázolni és gyönyörködni a fénygörbében! Fénygörbe gyártáshoz Linux alatt mindig kéznél van a gnuplot, de aki nem szeret vesződni a parancssoros vezérlésével, annak figyelmébe ajánlom a majdnem minden igényt kielégítő Grace nevű grafikus felületű ábrázoló programot (http://plasma-gate.weizmann.ac.il/Grace). A profi eljárás: daofind Az idősorok fotometriájának sokkal profibb, de több buktatót magában rejtő változata, ha a képeken a csillagokat egy automata csillagkereső program keresi meg - ezt csinálja a noao.digiphot.apphot és a noao.digiphot.daophot csomagokban egyaránt megtalálható daofind. A daofind ereje akkor mutatkozik meg igazán, amikor a képeink rengeteg csillagot tartalmaznak és mi az összes csillag fényességét ki akarjuk mérni. Kukkantsunk bele a daofind paraméterlistájába: epar daofind. Az első paraméter szokás szerint a kép/képlista neve, az output maradjon default értéken. Ha tényleg automatikus keresést akarunk, akkor az interac-ot állítsuk no-ra; esetleg a verbose-t bekapcsolhatjuk yes-szel, hogy tudjuk, éppen mit csinál a program. Két fontos beállítandó dolog van még: a datapar és a findpar. Ezek nem önálló paraméterek, hanem újabb, a keresés finomhangolására szolgáló paraméterlistákat rejtenek magukban, amiket :e-vel lehet előcsalni. A datapar fontos kapcsolói: fwhmpsf - a csillagok félértékszélessége; sigma - a háttér szórása (jó közelítéssel az imexam m parancsa által adott STDDEV értéke); datamin, datamax - a keresés fényességtartományát lehet beállítani velük. Pl. ha csak 2000-nél fényesebb, de 60000-nél halványabb csillagokkal akarunk foglalkozni: datamin=2000, datamax=60000. A paraméterlistából :q-val léphetünk vissza. A findpars-ban tudjuk beállítani, hogy milyen objektumot tekintsen csillagnak a program. A legjobb, ha ezeket a paramétereket nem bántjuk, mert az átállításuk általában többet árt, mint használ. Talán csak a thresho-t (mennyivel emelkedik ki egy csillag a háttér szórásából) érdemes változtatni. Ezt néha érdemes akár 10-15-re is felvenni. Ha minden jól megy, futtatás után minden képünkhöz fog tartozni egy .coo.1 kiterjesztésű borzalmas szerkezetű koordináta-lista. A koordinátákat ki is tudjuk pöttyözni a képernyőn megjelenített CCD képekre a tvmark task segítségével. Ha a qphot coords paraméterét default-ra állítjuk, akkor a program a fotometria során az előbbiekben megtalált csillagokat fogja kimérni. Az eredmény természetesen most is .mag.? kiterjesztésű állományokban áll a későbbiekben rendelekzésünkre. Előfordulhat, hogy képeinken a csillagok nagyon közel vannak egymáshoz, esetleg össze is érnek. Egymáshoz közeli csillagok apertúra fotometriájánál a legnagyobb probléma a háttér meghatározása, de az IRAF-ben erre is vannak megfelelő eszközök. Egymásba lógó csillagokat pedig gyakorlatilag csak csillagprofil illesztéses (PSF) fotometriával lehet pontosan kimérni. A következő cikkben a qphot-nál lényegesen nagyobb tudású phot programot fogom ismertetni, valamint ízelítőt adok az IRAF PSF fotometriai taskjainak használatából. Csák Balázs csakb@physx.u-szeged.hu Ábra: v32.gif Egy fedési kettőscsillag szűrő nélküli és Johnson BVR szűrőkön keresztül mért fázisgörbéi IRAF-fel kiredukálva és Grace-szel ábrázolva