Deep Sky Memories

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

Galaxy Annotator v0.9.3 をリリースしました(不具合修正、機能追加版)

突然ですが銀河専用アノテーションツール Galaxy Annotator v0.9.3 をリリースしました。不具合修正がメインですが、機能追加もあります。

以下の二つの不具合を修正しました。

  • 写野が 0h を跨ぐ場合、leda-get-votable.py で写野内にあるはずの銀河のデータが取得されない #16
  • 写野に極が入る場合、leda-get-votable.py のSQLクエリの座標範囲指定がおかしくなるはず #17

#16 は、ポン・ブルックス彗星と M31 のツーショットのアノテーションをしようとしたら M31 がアノテーションされなくて気付きました。

HyperLeda から銀河データを取得する際に赤経赤緯の範囲を指定して取得するのですが、写野が赤経 0h を跨いでいると単純に赤経の最小・最大から範囲を作ろうとすると予期しない範囲を指定してしまいます。赤経は 0h と 24h が繋がっていますから、天球の裏側(極軸を挟んで反対側)の範囲を指定してしまうのです。

どうしたものか悩んで ChatGPT 3.5 に尋ねたりもしましたが、ChatGPT も僕と同じバグ入りのアルゴリズムを提案する始末。結局、画像の中心点の座標を WCS で天球座標に変換して、対角線を中心点経由で辿って前と後ろの赤経の差を取って二つの差の符号が異なる場合は 0h を跨いでいるので、頂点の赤経の大きい方(23h とか)から 24h を引いて負の値にして範囲指定の最小値にする、というやり方で解決しました、、、と、思います…

#17 の方は天球座標の極を WCS で画像の座標に変換して画像の大きさの範囲内に入るかどうかを見て極が写野内にあるかどうかを判断し、極が写野内にあるなら特別な範囲指定を行うようにしました。

機能追加の方は leda-get-votable.py に -m オプションを追加したというものです。leda-votable-to-galaxy.py の -m オプションと同じで等級の上限を指定することで取得するデータを絞り込むものです。画角が広いレンズで撮った写真で大量の銀河が範囲内にあってデータがなかなか落ちてこない時に使います。

実はこちらの機能追加の方が先だったのですが、実際にはデータが落ちてこない原因はバグ #16 のせいで範囲がクソデカになってたせいだったのでした…

あと、前から気になっていたのですが、メシエ番号のついた銀河についてはデフォルトでラベルをメシエ番号の名称にしたいと考えています。オプション指定方法が練れてないのでまだ実装していませんがそのうち実装する予定です。