天文はかせ幕下

銀河のアノテーションスクリプトの使いかた、導入方法

id:rnaさんが作成されたスクリプト”GalaxyAnnotator”(2021年5月現在ver.0.8)を、インストールして、実行するまでの作業を順をおって書いておきます。PythonやAnnaconda環境に慣れている方はこのエントリよりも、本家のREADME
github.com
を参考にした方が早いです。不慣れな方(顧問もそう)は、以下にお進みください。

実行環境を用意する

GalaxyAnnotatorの実行環境として、Python(ver.3.2以降)と、win環境では加えてAnaconda、あと必要に応じて(事情は後述)Inkscapeが必要になります

Pythonは以下のサイト
pythonlinks.python.jp
からインストーラーをダウンロードして実行するだけでインストールできます。

Windowsの場合は、Pythonを使うための環境として”Anaconda"をさらに導入しておく必要があります(Macの場合は、インストール後すぐにターミナル上からpython3を実行できるようになるので、必要ありません)。インストールは
www.anaconda.com
の一番下にある"Anacconda Installer"からインストーラーをダウンロードして実行するだけです。

さらにWindows環境の方は、必要に応じてInkscapeもインストールします。これは、GalaxyAnnotatorが出力するSVG形式のファイルは通常のソフトでは読み込めないために必要になります。Pixinsightを使っている方はsvgファイルを直接読めますので、Inkscapeは必要ありません。Inkscapeはのインストールも
inkscape.org
からインストーラを落として実行するだけです。途中で下の画面のようにPATHを通すかどうか聞かれます

ここで、"Add Inkscape to the system PATH for all users / for current user "を選んで、実行してください。

また環境によっては、”svgwrite”というパッケージがインストールされていない場合があります。その場合はあらかじめインストールしておきます。anacondaなら

conda install -c conda-forge svgwrite

macの場合はこの辺りを参考にしてインストールしてください。

最後に、GalaxyAnnotatorをインストールします。これは
github.com
から"Source Code.zip"をダウンロードして展開するだけです。解凍すると作られるフォルダ"GalaxyAnnotator-0.x"を適当なところに置いておいてください。

GalaxyAnnotatorの作業手順

次のM51の画像をつかって説明します(ファイル名をm51.pngとします)。

(1) Astrometry.netに画像をアップして、プレートソルブを行う。

画像のプレートソルブを行うために,Astrometry.net
nova.astrometry.net
にアクセスして、"upload"から目的の画像をアップロードします。数分待つと以下のような画面が表示されます。

ここで、右側のリンクから"wcs.fits"をダウンロードして、"GalaxyAnnotator-0.x"フォルダの中に保存しておきます。ちなみにAstrometry.netは定期的に落ちるようで、しばしばプレートソルブ を実行してくれません。そう言う時は「なかなか思い通りにいかないのが、人生だよね」と呟いて、一眠りしてからもう一回やってみましょう。

(2) 銀河情報ファイルの取得

Macの方は、ターミナルを起動。Winの方はスタートメニューからAnnacondaを起動してください。"GalaxyAnnotator-0.x"のフォルダに移動します(このフォルダに"m51.png"と"wcs.fits"が置かれているとします)

python leda-get-votable.py wcs.fits votable.xml

と入力します。これによってvotable.xmlが生成されます。次に銀河情報が入ったファイルを今回は"galaxies_m51.json"と名付けることにして,これを生成するために次を入力します

python leda-votable-to-galaxy.py -m 16 -s -d -j  votable.xml galaxies_m51.json

ここで "-m 16" は16等より明るい銀河だけアノテーションすると言う意味。"-s -d -j" はオマジナイと思って下さい。うまく行くと"galaxies_M51.json"が生成されます。最後に次を実行すれば元画像にアノテーションが施されたファイル"out.svg"が生成されます。

python galaxy-annotator.py galaxies_M51.json sample-style.json wcs.fits m51.png out.svg

さきほど注意したように、普通のソフトではsvgファイルは読めませんので、Inkscapeを使って

inkscape out.svg -o out.png

のようにして、慣れたファイル形式に変換します*1
アノテーションの色やフォントは"sample-style.json"の中身を変更して指定します。

結果は次のようになりました。

すばらしい。PGC銀河は検索しても距離がすぐにはわからないことが多いようなので、距離の表示は嬉しい機能です。このエントリは、足りない部分があればその都度加筆します。

rnaさん、素敵なスクリプトをありがとうございました。

*1:ただしこの変換を行うと"sample-style.json"で指定したフォントが反映されないようです。