티스토리 뷰
Tools for Aperture Photometry of a transiting Exoplanet (TAPE)
덕흥천문대의 1m 광학망원경을 이용하여 얻어진 이미지를 읽어서, 일괄 전처리하고, 별을 찾아 이미지 정렬과 구경 측광(aperture photometry)을 통해 시간에 따른 대상의 밝기 변화를 도출하는 도구입니다.
별의 이미지로부터 별의 밝기를 정량적으로 측정하는 과정은 CCD 카메라의 원리에 대한 이해가 선행되어야 합니다. 따라서 덕흥천문대에서는 CCD 카메라로 얻어진 이미지가 가지고 있는 특성을 이해하고, 이미지 속 별의 밝기를 정량적으로 측정하기 위한 이미지 처리 방법을 교육하고 있습니다. 별의 밝기를 정량적으로 측정하여 다양한 연구를 수행하고자 하는 청소년은 국립청소년우주센터에서 진행하는 청소년 원격관측 모집에 참여하면 해당 교육을 받을 수 있습니다.
*** TAPE 다운로드 링크 및 방법 : https://github.com/psychiee/TAPE
0. tape.par
측광에 관련된 인수들을 설정하는 파일입니다. 내용은 다음과 같습니다.
WORKDIR ./180326-HAT-P-12b
BINNING 1 # (APPHOT) BINNING option of CCD images for processing
STARBOX 40 # (APPHOT) box half-size for photometry [pixel]
THRES 5 # (APPHOT) n-sigma threshold for finding stars
FWHMCUT 3,20 # (APPHOT) FWHM lower/upper limit for filtering non-stars [pixel]
SATU 60000 # (APPHOT) saturation level limit for filtering [ADU]
PHOTAPER 10,20,30 # (APPHOT) (CSV) apertures for photometry [pixel] (csv)
SKYANNUL 30,34 # (APPHOT) (CSV) sky-annulus for background [pixel]
SUBPIXEL 1 # (APPHOT) the division number for subpixel method
EGAIN 1.0 # (APPHOT) the gain of CCD for error estimation
PSCALE 0.464 # (APPHOT) pixel scale in stellar profile plot 0.3867,0.464
STARPLOT 0 # (APPHOT) (BOOL) plotting the diagram for each star
LOGFILE wobs.log # (APPHOT) log file name for LC processing
APERUSED 2 # (TIMESERIES) index of aperture(in PHOTAPER) for LC
SHIFTPLOT 1 # (TIMESERIES) flag for plotting all shift-images
OBSDATE 180326 # (TIMESERIES) observation date
TARGETNAM HAT-P-12b # (TIMESERIES) target name
TARGETNUM 13 # (TIMESERIES) target star numbers in finding-chart
COMPNUMS 10,17,22 # (TIMESERIES) (CSV) comparison star numbers
CHKSIG 0.02 # (TIMESERIES) STD checking criteria for LC test
CHKDELM 3 # (TIMESERIES) DEL_MAG checking criteria for LC test
OBSLAT 34.5261362 # The latitude[deg] of the observatory (for HJD)
OBSLON 127.4470482 # The longitude[deg] of the observatory (for HJD)
OBSELEV 81.35789 # The elevation[m] of the observatory (for HJD)
WORKDIR; NYSC 1m 망원경으로 관측된 관측 파일이 저장된 폴더 위치 입니다. (bias, dark, flat, object-*.fits)
BINNING; 촬영시에 사용한 BINNING 설정을 적습니다. 대부분 BINNING을 하지 않기에 1로 설정해두시면 됩니다.
STARBOX; 측광을 위해 별 중심에서 특정 영역의 이미지를 잘라냅니다. 그 잘라내는 이미지 영역의 크기를 결정합니다.
** 이 값은 SKYANNUL 값보다 커야 합니다.
THRES; 이미지에서 찾아낼 별의 밝기 기준을 배경 하늘의 표준편차 값에 대한 비율로 넣습니다.
** 만약 배경의 표준편차가 30이고, THRES가 5라면 픽셀 값이 150보다 큰 영역을 별로 인식합니다.
** 측광을 원하는 대상이 어두운 대상일 경우, 이 숫자를 너무 크게 하면 해당 별이 찾아지지 않아 측광이 안될 수도 있습니다.
FWHMCUT; 별인지 아닌지 구분하기 위한 인수입니다. 크기가 앞의 값보다 작거나, 뒤의 값보다 크면 별이 아니기에 측광에서 제외합니다.
SATU; 해당 수치 이상의 픽셀 값을 가지는 별은 측광에서 제외합니다.
PHOTAPER; 별의 밝기를 측정하기 위한 동그라미(aperture)의 반경을 결정합니다.
SKYANNUL; 배경하늘을 밝기를 결정하기 위한 영역을 설정합니다.(안쪽 반경, 바깥 반경)
SUBPIXEL; 해당 수 만큼 픽셀을 잘개 쪼개 더 정밀한 구경측광을 수행할 수 있습니다. 보통 사용하지 않기에 1로 놓습니다.
LOGFILE; 측광을 수행하면서, 각 이미지 별 정보를 여기서 정한 로그파일에 저장합니다.
STARPLOT; 측광 시에, 각 별의 맞춤 통계를 출력할 수 있습니다. 2차원 맞춤 결과 등을 확인할 수 있습니다.
** 1로 셋팅할 경우, 그림을 매우 많이 만들어내기에 처리 속도가 매우 느려집니다.
PSCALE; 각 별의 정보 출력시, 별의 크기를 결정하기 위한 변수입니다. 이미지 픽셀당 각크기를 나타냅니다.
APERUSED; 위에서 정한 여러 개의 구경(PHOTAPER) 값 중에서 어떤 구경을 사용한 결과를 사용할지 결정합니다.
SHIFTPLOT; 1로 셋팅하면 별을 매칭한 결과를 확인할 수 있는 이미지를 출력합니다.
OBSDATE, TARGETNAM; 두 인수는 결과 출력 파일명을 결정하기 위한 인수입니다.(관측일과 대상명)
TARGETNUM; finding-chart 이미지에서 밝기 변화를 검출하고자 하는 대상 별의 번호를 입력합니다.
COMPNUMS; 대상 별의 밝기변화를 검출하기 위한 비교성 번호를 넣어줍니다.
** 비교성을 자동으로 골라주는 04-chek_comps 코드를 실행하여, 적절한 비교성을 찾고 그 번호를 여기 넣어주면 됩니다.
CHKSNR; 비교성을 자동으로 골라주는 코드가 각 별에 대한 대상의 밝기 변화 곡선을 그릴 때, 너무 잡음이 심한 것들을 골라내기 위한 인수입니다.
** 04-check_comps 코드가 실행되었음에도, 결과물 갯수가 너무 적다면 이 수치를 높이고, 너무 많다면 줄여서 조절 가능합니다.
CHKDELM; 비교성을 자동으로 골라주는 코드가 각 별에 대한 밝기 변화 곡선을 그릴 때, 너무 밝기 차이가 나는 것을 골라내기 위한 인수입니다.
** 여기서 정한 등급보다 더 크게 차이가 나는 어두운 별들은 비교성 골라주는 과정에서 제외합니다.
OBSLAT, OBSLON, OBSELEV; 정확한 HJD를 구하기 위한 관측장소의 위도, 경도, 높이 값을 입력합니다.
** 정확한 트랜짓 시각을 구한 것이므로, 잘 모르면 대략적인 값을 넣어도 됩니다.
1. 01-run_ccdproc.py
첫번째로, 폴더 내에 있는 파일을 자동으로 읽어서,
bias, dark, flat, object 등의 파일 목록을 생성합니다. (NYSC 1m 망원경 FITS header 규칙을 따릅니다.)
>> wbias.list, wdarkXXXs.list, wflatYYY.list, wobj.list
bias combine, dark combine, flat combine을 수행합니다.
flat의 경우, 중간값으로 표준화한 이미지를 쌓고, 그 이미지들의 중간값 이미지를 대표 이미지로 저장합니다.
그러면 결과물로 다음 파일들이 생성됩니다.
>> wbias.fits, wdarkXXXs.fits, wflatYYY.fits, wobject-ZZZZZZ.fits
2. 02-run_photometry.py
wobj.list 안에 있는 파일들을 대상으로, 구경측광을 수행합니다.
혹시 구경 측광을 수행하지 않아도 되는 이미지가 있다면, wobj.list 파일을 수정하시면 됩니다.
결과물로 다음과 같은 파일이 생성됩니다.
>> wobject-ZZZZZZ-phots.png (측광결과 이미지 파일), wobject-ZZZZZZ.apw (측광정보 파일)
>> wobs.log (측광 이미지 정보 로그 파일)
** LOGFILE 인수와 동일한 파일을 생성합니다. 이 안에는 파일명, 관측시간, HJD, 노출시간 등의 정보가 저장됩니다.
여기서 얻어진 측광 결과(*.apw) 파일을 이용해서 밝기 변화 측정 외의 다양한 작업을 수행하실 수 있습니다.
[X좌표, Y좌표, flux1, flux2, flux3, flux_err1, flux_err2, flux_err3, mag1, mag2, mag3, mag_err1, mag_err2, mag_err3, sky_bgd, fwhm1, fwhm2, PA]
1333.275 68.185 18430.109 21985.015 22296.070 11.598 21.715 40.541 9.336 9.145 9.129 0.001 0.001 0.002 3069.573 57.768
1227.885 108.130 290.996 357.252 379.507 6.579 19.066 39.235 13.840 13.618 13.552 0.025 0.058 0.112 3050.086 57.676
987.832 285.793 310.045 399.086 430.146 7.032 20.337 41.860 13.771 13.497 13.416 0.025 0.055 0.106 3047.862 61.468
1157.639 323.942 265.085 323.035 328.316 6.875 19.883 40.981 13.942 13.727 13.709 0.028 0.067 0.136 3053.415 60.576
1037.649 384.012 5323.814 6237.579 6289.239 8.098 19.126 38.192 10.684 10.512 10.504 0.002 0.003 0.007 3061.289 55.722
1358.132 402.659 564.652 660.209 683.734 6.657 18.966 38.945 13.121 12.951 12.913 0.013 0.031 0.062 3054.926 57.402
...
측광 완료된 별들을 표시한 이미지는 다음과 같습니다.
빨간 점은 THRES 인수에 맞게 찾아낸 별들의 위치이며, 파란 동그라미는 최종적으로 구경 측광이 이루어진 영역을 표시한 것입니다.
이후에 이어질 시계열 이미지 측광 처리를 위한, LOGFILE 내용 입니다.
[ 프레임번호, 파일명, 시간(HJD), 노출시간, 투과대기량(AIRMASS) ]
0000 wobject-000115 2458204.09107217 200 1.2289833 R
0001 wobject-000116 2458204.09351428 200 1.2192174 R
0002 wobject-000117 2458204.09591009 200 1.2099276 R
0003 wobject-000118 2458204.09829434 200 1.2009528 R
0004 wobject-000121 2458204.10547021 200 1.1755779 R
...
3. 03-make_timeseries.py
폴더 내에 생성된 측광 결과 파일(.apw)을 이용하여 첫번째 이미지에서 측광된 별들에게 고유번호를 부여하고, 기준이 되는 첫번째 이미지에서 찾아낸 별들을 다른 모든 이미지에서 찾아내 측광 정보를 규격을 맞춘 새로운 파일(.apx)에 저장합니다. 여기서 만들어지는 apx 파일은 모두 동일한 별에 대한 정보를 담고 있기에, 파일의 행이 모두 동일하고 같은 행에는 같은 별의 측광 정보가 저장됩니다.
** 만약 실행 전에 LOGFILE에 있는 특정 이미지 행을 삭제하면, 해당 이미지의 위치 맞춤을 위한 과정을 생략할 수 있습니다.
tape.par에 관측정보(OBSDATE, TARGETNAME)를 넣습니다. 여기서는 OBSDATE에 "180326"을 넣고, TARGETNAME에 "HAT-P-12b"를 넣은 후, 이를 실행하면 최종적으로 다음과 같은 결과물을 얻습니다. (시간이 좀 걸립니다.)
>> w180326-HAT-P-12b-shift.png(별의 이동량 그래프), w180326-HAT-P-12b-shift.txt(별의 이동량 저장 파일)
>> wobject-ZZZZZZ-matching.png(별의 이동을 보정한 결과 이미지)
>> wobject-ZZZZZZ.apx(동일한 순서로 모든 별의 측광 결과를 정렬한 이미지, 모든 파일의 행 수가 동일합니다.)
>> w180326-HAT-P-12b-chart.png(별들의 고유 번호가 적힌 finding chart 이미지 파일)
** 여기서 대상별의 번호와 비교성의 번호를 찾아 이용할 수 있습니다.
프레임 이동을 기록한 image-shift 그래프 입니다.
시계열 정보 처리를 위한, 별 번호 finding-chart (-chart.png)
여기서 대상별과 비교성들의 번호를 선택하거나 확인할 수 있습니다.
4. 04-chek_comps.py
관측한 영역에서 적절한 비교성을 찾는 과정은 조금 까다롭습니다. 그래서 비교성을 쉽게 찾을 수 있게 도와주는 코드입니다. 인수 파일(tape.par)에 대상번호(TARGETNUM)을 finding chart에서 찾아서 입력합니다. 그리고 CHKSIG, CHKDELM 인수를 적절하게 조정하면, 대상 별과의 밝기 차이가 크게 발생하지 않는 별들을 골라서 출력해줍니다.
앞서 본 이미지에서 확인한 결과 13번 별이 대상이므로 TARGETNUM에 13을 입력하여 tape.par에 저장하고 실행합니다. 결과 그래프가 너무 많이 나오거나 너무 적게 나오면 CHKSIG, CHKDELM 값을 조정합니다.
출력된 파일을 보면서 이 중에서 믿을 만하다고 생각되는 비교성의 번호를 기록하여,
tape.par 파일의 COMPNUMS 변수에 저장합니다. (여러 별인 경우 콤마로 구분합니다. )
여기서는 10번, 17번, 22번이 적당하고 생각되어 COMPNUMS에 10,17,22 라고 입력합니다.
5. 05-plot_lightcurve.py
이미 tape.par에 OBSDATE, TARGETNAM, TARGETNUM, COMPNUMS가 모두 제대로 입력하였다면, 그냥 바로 이 코드를 실행해주면 됩니다. 그럼 다음과 같은 결과 그래프와 자료 파일이 생성됩니다.
최종 결과로 도출되는 대상 별의 밝기 변화 자료
[ 시간(HJD) 밝기비(대상/비교성) 밝기비 오차 ]
2458204.091072 0.54107697 0.00067857
2458204.093514 0.54099215 0.00065158
2458204.095910 0.54088052 0.00067173
2458204.098294 0.54032589 0.00064220
2458204.105470 0.53996205 0.00062184
2458204.112646 0.54034158 0.00063126
2458204.119822 0.54092234 0.00060275
2458204.126986 0.54090257 0.00059296
2458204.129382 0.53964747 0.00058181
2458204.131766 0.53920267 0.00056885
2458204.134162 0.53628978 0.00056212
2458204.136547 0.53531476 0.00057773
2458204.138931 0.53344210 0.00056726
2458204.141327 0.53133060 0.00055582
2458204.143711 0.53202767 0.00055668
2458204.146107 0.53033241 0.00055330
2458204.148502 0.52936920 0.00055190
2458204.153283 0.52901528 0.00053768
2458204.158063 0.52818968 0.00055157
2458204.162843 0.52741781 0.00054388
2458204.167623 0.52854301 0.00053698
2458204.172403 0.52709557 0.00054078
2458204.177183 0.52713544 0.00053740
2458204.181963 0.52737870 0.00053721
2458204.186731 0.52771768 0.00053993
2458204.191511 0.52806151 0.00052976
2458204.196292 0.52866826 0.00053623
2458204.201072 0.52848307 0.00053206
2458204.203467 0.52941355 0.00052666
2458204.205852 0.52972165 0.00052822
2458204.208248 0.53049645 0.00053964
2458204.210632 0.53030015 0.00054314
2458204.213016 0.53151754 0.00053833
2458204.215412 0.53333210 0.00052568
2458204.217808 0.53580479 0.00053560
2458204.220192 0.53713440 0.00052348
2458204.224972 0.54113391 0.00052852
2458204.232148 0.54064094 0.00051680
2458204.239312 0.53934006 0.00049261
2458204.246476 0.53933744 0.00048346
2458204.253641 0.54015599 0.00046403
2458204.260817 0.53932445 0.00044482
2458204.267992 0.53941069 0.00042193
2458204.275157 0.53898526 0.00041582
(문의) collie80@snu.ac.kr
'Programming' 카테고리의 다른 글
[Python] 에쉘 분광 자료 처리 도구 (NYSC 1m 망원경 전용) (0) | 2021.07.28 |
---|---|
[Python] 외계행성 트랜짓 밝기변화 분석하기 TransitSim3 (0) | 2021.06.22 |
[Python] 외계행성 트랜짓 예측하기 TransitSearch3 (0) | 2021.06.22 |
[Python] 천체사진 RGB 합성 도구 (NYSC 1m 망원경 전용) (0) | 2020.05.20 |
[Python] 천체이미지 별 상(radial profile) 측정 도구 (0) | 2020.05.06 |