천문 데이터 분석 입문 8 (aplpy로 RGB 합성도 제작)

이 글에서 우리는 aplpy를 사용하여 RGB 이미지를 만드는 방법을 기술할 것이다.
이번에도 예를 들어 Spitzer 3.6µm, 8.0µm, 24µm의 압축 데이터를 사용한다.
https://irsa.ipac.caltech.edu/data/SPITZER/GLIMPSE/images/I/1.2_mosaics_v3.5/
부터
GLM_03000+0000_mosaic_I1.fits
GLM_03000+0000_mosaic_I4.fits
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
그 밖에
https://irsa.ipac.caltech.edu/data/SPITZER/MIPSGAL/images/mosaics24/
부터
MG0290n005_024.fits
MG0290p005_024.fits
MG0300n005_024.fits
MG0300p005_024.fits
MG0310n005_024.fits
MG0310p005_024.fits
총 6개의 fits 다운로드, W43_ 연결24um.fits 사용
그리고 저번 보도에서regrid의 3가지 색깔의fits
GLM_03000+0000_mosaic_I1_reg.fits
GLM_03000+0000_mosaic_I4_Reg.fits
W43_24um.fits
태그 요소의 표시 속성을 수정합니다.
우선 필요한 것을 import로 가져옵니다.
import aplpy
이게 다야.
fits의 위치와 이름을 변수로 설정합니다.
data_fits_R = "~/your/fits/dir/W43_24um.fits"
data_fits_G = "~/your/fits/dir/GLM_03000+0000_mosaic_I4_reg.fits"
data_fits_B = "~/your/fits/dir/GLM_03000+0000_mosaic_I1_reg.fits"
fitss = [data_fits_R, data_fits_G, data_fits_B]
색상 배율을 개별적으로 결정합니다.그런 다음 저장할 이름을 정의합니다.
color_min_R = 30.0
color_max_R = 1500.0
color_min_G = 30.0
color_max_G = 1500.0
color_min_B = 10.0
color_max_B = 100.0
colorval = "%.1f_%.1f_%.1f_%.1f_%.1f_%.1f"%(color_min_R, color_max_R, color_min_G, color_max_G, color_min_B, color_max_B)
save_png_name = "RGB_%s"%(colorval)+'.png'
아래에서 png 파일을 생성합니다.
aplpy.make_rgb_image(fitss, save_png_name, vmin_r=color_min_R, vmax_r=color_max_R,vmin_g=color_min_G, vmax_g=color_max_G, vmin_b=color_min_B, vmax_b=color_max_B, stretch_r="log", stretch_g="log", stretch_b="log")
만약 어떤 오류가 발생하면 (대략 PIL) 오류 정보 구글로 검색하면 해결할 수 있습니다.어쨌든 안 될 경우ipython 등으로 실행하는 것이 좋을 것 같습니다.
좌표를 추가하여 스캔하려면 다음과 같이 하십시오.
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(16, 12))
f = aplpy.FITSFigure(data_fits_R, slices=[0], figure=fig, convention='wells')
f.show_rgb(save_png_name)
f.ticks.set_color('w')
f.save('RGB_aplpy.pdf', dpi=300)

결손 부분에 관하여


24µm의 데이터가 너무 강한 곳은 사치인데 안에 NaN이 있다.
NaN 섹션을 값으로 대체하는 경우 (대략 2000Jy/str 정도)
from astropy.io import fits
import numpy as np

hdu = fits.open("W43_24um.fits")[0]
data = hdu.data
data[data!=data] = 2000.0 # data!=dataは NaN の場所を示す

fits.PrimaryHDU(data, hdu.header).writeto("W43_24um_nan2000.fits", overwrite=True)
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
여기서 마치겠습니다.
링크
카탈로그

좋은 웹페이지 즐겨찾기