Deep Sky Memories

横浜の空で撮影した星たちの思い出

遠方銀河のアノテーション用ツールを作成しました(距離表示付き)

先日、遠方の銀河の距離の調べ方について書きましたが、

これをなんとか自動化してアノテーション付き画像まで生成するツールを作りました。github で公開しています。

v0.5 のダウンロードはこちらから。

手順としては、元画像を用意して、

  1. astrometry.net に元画像をアップロードしてプレートソルブを行って wcs.fits (結果画像表示ページの右側にリンクがあります)をダウンロードする。
  2. 1 で得た wcs.fits から写野の範囲を取得し HyperLeda の SQL 機能で写野にある銀河のデータ(VOTABLE形式のXMLファイル)をまとめてダウンロードする。
  3. 2 で得たXMLファイルからアノテーション用データ(JSONファイル)を生成する。
    • オプションで視線速度データから距離を計算して説明文に追加する。
    • オプションで指定した等級より明るい銀河だけ抽出する。
  4. 3 で得たJSONファイル、スタイル設定ファイル、wcs.fits、元画像、からアノテーション付きの画像(SVGファイル)を生成する。
  5. 4 で得たSVGファイルをSVGエディタ(Incscape)で微調整し、PNGでエクスポート。
  6. 5 で得たPNGファイルを任意の画像編集ツールでJPEGに変換。

今回作ったのは 2〜4 を自動処理するスクリプトです。各ステップで中間ファイルを作るので、何か手違いがあっても前のステップに戻らずにやりなおせます。

手順や仕様の詳細は github の README.md を参照してください。

使用例を以下に。字が小さいので画像をクリックして拡大画像を見てください。

M64 (2021/5/3 21:42) (17.5等までの銀河をアノテーション)
M64 (2021/5/3 21:42) (17.5等までの銀河をアノテーション)
笠井 BLANCA-80EDT (D80mm f480mm F6 屈折) / Vixen SX2, D30mm f130mm ガイド鏡 + ZWO ASI290MC + PHD2 2.6.9dev4 による自動ガイド/ ZWO ASI290MM (ゲイン80) / 露出 2分 x 40コマ 総露出時間 80分 / DeepSkyStacker 4.2.2, RegiStax 6.1.0.8, Lightroom Classic で画像処理, GalaxyAnnotator v0.5 でアノテーション処理.

M64(NGC4826)の写真です。データ上には18等台の銀河もありましたが、写真では確認できなかったので17.5等まで絞り込んであります。最遠で22億光年の銀河(PGC1656969)が写ってますね。いや、マルで囲むとあるように見えますが、本当に写ってるのかなこれ…

しし座4重銀河(NGC3189, NGC3193, NGC3187, NGC3185) (2021/3/14 20:45) (17等までの銀河をアノテーション)
しし座4重銀河(NGC3189, NGC3193, NGC3187, NGC3185) (2021/3/14 20:45) (17等までの銀河をアノテーション)
笠井 BLANCA-80EDT (D80mm f480mm F6 屈折) / Vixen SX2, D30mm f130mm ガイド鏡 + ASI290MC + PHD2 2.6.9 による自動ガイド/ ASI290MM (ゲイン75) / 露出 2分 x 60コマ 総露出時間 2時間 / DeepSkyStacker 4.2.2, Photoshop 2021, RegiStax 6.1.0.8, Lightroom Classic で画像処理, GalaxyAnnotator v0.5 でアノテーション処理.

3月に撮った「しし座4重銀河」です。

以前の記事ではトリミングしていた部分も見てみました。なんと29億光年の銀河(2MASXJ10173306+2139538(PGC3753586))が写っている!?でも正直ノイズっぽいような… 27億光年の銀河(PGC1660919)も写っていて、これは確かに写っている?

ちなみに距離表示は赤方偏移データのみから計算しているため、メインの被写体(NGC3189, NGC3193, NGC3187, NGC3185)のように比較的近い銀河については精度が低いです。

NGC4302, NGC4298 (2021/3/14 23:01) (17等までの銀河をアノテーション)
NGC4302, NGC4298 (2021/3/14 23:01) (17等までの銀河をアノテーション)
笠井 BLANCA-80EDT (D80mm f480mm F6 屈折) / Vixen SX2, D30mm f130mm ガイド鏡 + ASI290MC + PHD2 2.6.9 による自動ガイド / ASI290MM (ゲイン75) / 露出 2分 x 60コマ 総露出時間 2時間 / DeepSkyStacker 4.2.2, Photoshop 2021, RegiStax 6.1.0.8, Lightroom Classic で画像処理, GalaxyAnnotator v0.5 でアノテーション処理.

20億光年の 2MASXJ12215059+1425578(PGC3787372) は写ってる気がしたので残したのですが、今見ると写ってない気が… 14億光年の PGC169089 も位置が少しズレてるようですが、近くに恒星もないのでこれはたぶん写っていると思います。

というわけで、個人的にはこの結果に満足しているのですが、他人の環境でちゃんと動くのかよくわかりませんので、何かあったら github に Issue を投げてください。軽い質問などはこのエントリのコメント欄でもいいです。

今回、天文計算ライブラリが一番充実している、という理由で初めて Pythonスクリプトを書きました。手慣れた RubyJavaScript で書きたかったのですが、Python の astropy に匹敵するライブラリがなくて…

Python は他人の書いたスクリプトを少しだけ手直しして使ったことはありますが、ほぼ初心者の状態から始めたので色々変なところがあるかもしれません。開発・実行環境は Anaconda を使いました。科学技術計算系のライブラリが最初からたくさん入っているので使いやすいです。

出力が SVG で、これは作りやすいしブラウザでも一応見れるので便利ですが、それ以外の編集ツールがこなれてなくて、事実上 Inkscape 以外では扱えないかも… GIMPPhotoshop もインポート機能はあるものの正しく読み込むことができませんでした。単体で PNG に出力できるようにしたかったのですが、よさそうなライブラリが Anaconda でうまくインストールできませんでした…

Python の環境を作らないと距離もわからないというのも不便なので、ブラウザで動く Greasemonkey スクリプトも作っています。WIKISKY.ORG で見つけた銀河の距離を表示するというもの。これについてはまた後ほど紹介します。