先日、私たちが住んでいる「地球」が属している「太陽系」が属している「天の川銀河」(地球 ⊂ 太陽系 ⊂ 天の川銀河)の中心にあるブラックホールの姿が初めて撮影されました。すごい時代になったものです。
「Uppsala General Catalogue of Galaxies (UGC)」という北半球から見える約1万3千個の銀河のカタログがあります。そのカタログの中に、積分記号( ∫ )のような形の渦巻銀河「UGC 3697」があります。今回はその銀河をPythonで確認してみましょう。
銀河の画像を複数枚タイル状に表示する方法 - Qiita
pythonを用いて銀経銀緯で複数のfits画像を並べてプロットする方法 - Qiita
こちらの記事を参考にさせていただきました。ありがとうございました。
1. モジュールのインポート
from astroquery.vizier import Vizier #Vizierカタログのデータ取得用 from astroquery.skyview import SkyView #fitsファイル取得用 from astropy.wcs import WCS #天球上の座標取得用 from astropy.io import fits #fitsファイル読込用 import glob #ディレクトリのファイル取得用 import matplotlib.pyplot as plt #グラフ描画用
2. カタログ存在確認
catalog = "UGC" code = "3697" v = Vizier(catalog="VII/26D/catalog",column_filters={catalog:"="+code}) data = v.query_constraints() print(data[0])
出力結果は以下です。UGCカタログ(VII/26D/catalog)に存在していますね。
UGC A RA1950 DE1950 MCG MajAxis MinAxis Hubble Pmag i "h:m:s" "d:m:s" arcmin arcmin mag ---- --- ------- ------- ------------- ------- ------- ------- ---- --- 3697 07 05.6 +71 55 MCG+12-07-028 3.30 0.20 INTEGRL 13.1 --
3. fitsファイルを保存
def save(p,name,obs): for onep,oneo in zip(p,obs): onep.writeto(name+"_"+oneo+".fits",overwrite=True) path_fits = "./" galaxy = catalog+code olist = ["DSS"] #Digitized Sky Survey paths = SkyView.get_images(position=galaxy,survey=olist) save(paths,path_fits+galaxy,olist)
4. fitsファイルを元に画像を作成
# fitsファイルを取得 dss = glob.glob("./*_DSS.fits") # グラフ描画領域を作成 F = plt.figure(figsize=(6,8)) # fitsファイルの読込 dssfilename = dss[0] dssname = dssfilename.replace(".fits",".png") dsshdu = fits.open(dssfilename)[0] dsswcs = WCS(dsshdu.header) dssdata = dsshdu.data # グラフタイトルを定義 plt.figtext(0.45, 0.93, galaxy, size="large") # オリジナル画像表示 plt.subplot(211, projection=dsswcs) #2行1列の1番目 plt.imshow(dssdata, origin='lower') plt.grid(color='white', ls='dotted') # 拡大画像表示 dssxlen, dssylen = dssdata.shape dsscx = int(0.5 * dssxlen) dsscy = int(0.5 * dssylen) dssdx = int(dssxlen * 0.15) dsswcscut = dsswcs[dsscx-dssdx:dsscx+dssdx,dsscy-dssdx:dsscy+dssdx] plt.subplot(212, projection=dsswcscut) #2行1列の2番目 plt.imshow(dssdata[dsscx-dssdx:dsscx+dssdx,dsscy-dssdx:dsscy+dssdx], origin='lower') plt.grid(color='white', ls='dotted') # 画像保存 plt.savefig(galaxy + ".png") plt.close()
5. 結果
宇宙に浮かぶ ∫ なんとも素敵ですね...