放置していた月食の処理を再開

昨年12月に書いた皆既月食の記事の最後に、処理中の画像/動画があることを書きました。

r77-maabow.hatenablog.com

かいつまんで言うと「月を固定したタイムラプス動画の元画像を使って、次は地球の影を固定した画像や動画を作成しようとしている」という話で、そのメインとなる影の中心座標の計算で躓いていました。その後放置状態でしたが、3か月経った今頃になってやっと計算出来る様になったので、その内容について記載します。

地球の影を示す画像

今回は座標計算の目途が立ったという内容ですが、その計算結果を使って作成した画像をまずはこ覧ください。

今回作成した画像

計算が正しいかを確認するため、Stellariumで同様の画像を作って比べてみました。(分かり易い様に月画像は3枚にして、画像の階調も変えてあります)。

Stellariumとの比較

如何でしょうか? 位置だけでなく、月の模様(地形)も殆ど同じになっていると思います。

12月時点の状況

今頃になって計算が出来るようになりましたが、12月の記事を書いた時点ではこんな画像を作っていました。

12月時点で作成した画像

地球の影の中心は、Stellariumから取得した太陽の座標を反転させた位置としています。しかし、Stellariumから取得した座標は観測位置から見た座標(測心座標)です。実際の影の中心は太陽と地球の中心を結んだ直線の延長上にあるわけですから、地球中心から見た座標(地心座標)を使わないと正しい値にはなりません。地球中心から離れた測心座標だと、上の画像の様に影が丸ではなくなってしまいます。目的の画像とは程遠いため、12月の記事に載せるのは止めました。

そのため、地心座標の計算を自力で頑張ってみましたが全く歯が立たず断念。しかたなく、Google先生に問い合わせて情報を集めました。幾つか資料を斜め読みして、頑張れば何とかなりそうな気がしました。加えて、Stelleriumで地球の影を表示できることを知り、答え合わせもできることが分かりました。必要な材料が揃った状況になり満足したため、その後しばらく放置していました(実際に手を付けると大変そうで、腰が引けていたというのが本音ですが…)。

計算法の検討を再開

暫く放置状態でしたが、つい1週間ほど前に状況が変わりました。
Stellariumをアップデートした際、久しぶりに地球の影を表示させようと思ったのですが、その設定箇所を思い出せず色々と操作しているうちに[環境設定画面]の[ツール]タブの中にある「測心座標」というチェックボックスに気が付きました。そうです、このチェックボックスをOffにすると地心座標を表示するのです。

これまでStellariumでは測心座標しか取得できないと思っていたので、測心座標を地心座標に変換する計算法を検討しようとしていましたが、地心座標が直接取得できるとなれば話は変わります。放置状態から、いきなり重い腰を動かす事になりました。

因みに、地球の影の表示設定は、[空と表示の設定]→[グリッド]タブ→“Earth umbra”をチェックです。他にも半影や対日点の表示、後で使うことになるセンターマークの表示もできます。

「地心座標を使う」か「測心座標を使う」か?

地球の影は太陽の地心座標から求めるわけですが、そのあと「地球の影を固定した画像や動画を作成」する際に、影と月の座標を「地心座標を用いて作成する」のか「測心座標を用いて作成する」のかという選択肢が出てきます。

以降の記載ですが、今回は「地球の影を固定した画像を作成しながら」計算法の検討している関係上、「地心座標で作図する~」または「測心座標で作図する~」という表現をしています。

地心座標で作図する場合

地心座標で作図するのであれば、Stellraiumから直接取得でき座標変換は不要です。地球の影は、前述の様に太陽の座標を反転させることで簡単に求めることが出来ます。

早速やってみました。

地心座標で作図したもの

位置関係は問題なさそうです。では、Stellariumと比較してみます。

Stellariumとの比較

どうでしょう。よく見ると、少し違うところがあるのに気付きますでしょうか?

そうです。かなり微妙ですが月の模様(地形)が合わないのです。

地心座標での不一致の原因と問題点

以下は、地心座標と測心座標で月の模様の時間変化を見比べたものです。模様の変化が分かり易い様に、時間間隔を広めにとって本影に入る前と本影から出た後の4時間弱の比較になります。

月の模様の時間変化:左は地心座標、右は測心座標

地心座標(左図)は模様が少し回転して月の大きさ(視直径)は殆ど変化していません。それに対し、測心座標(右図)の模様の変化は回転というより見る角度が変わった様な動きで、大きさは若干変化しています。地心座標だと月との距離は殆ど変わらず、測心座標だと地球の自転で観測位置が動き月との距離と角度が変わるためこの様な違いが出るのでしょう。そして、撮影した画像はもちろん測心座標に相当するので、右図と同じ変化をします。

12月の記事に記載しましたが、月の画像は極軸合が大きくずれていて視野回転していたので、自作ソフトで位置合わせを行っていました。その中でアフィン変換を行っていて移動と回転だけでなくスケーリングも行っているので、位置合わせ後は中心位置がほぼ一致し、模様の回転は僅かで、大きさは同一サイズに変換されています。

そのため、地心座標で作図したものは月の大きさについては差異がないものの、模様の変化に関しては差異が出てしまった訳です。一方、測心座標での作図はどうかというと、月の模様に関して差異は少なそうですが、大きさについては差異が出てしまう事になります。
要は自作ソフトで位置合わせしたことで、地心座標と測心座標何れでも差異が出るという事です。ここへ来て、位置合わせの処理に問題があることが分かってしまいました。

参考までに、測心座標では地球の影の大きさも若干変化します。測心座標における変化を見るためアニメーションGIFを作ってみました。

影の大きさの差異は僅かなので、分かりづらいかもしれません。ただ、本物の影は境界が不明瞭なので、実際の観察や撮影では全く分からないでしょうね。

測心座標で作図することに

月画像を自作ソフトで位置合わせをしているため、地心座標で作図すると月の大きさは良いのですが模様に差異が出ます。今のところ、これに対して対策は思いつきません。僅かな差なので無視するという手もありますが、せっかくなので出来るだけ再現したいです。

一方、測心座標で作図すると月の大きさに差異がでますが、位置合わせ後に元のサイズに戻すという回避策があります。もちろん、月の模様について差異は残りますが、地心座標での作図に比べると影響は少ないと思われます。そのため、最終的には測心座標で作図することにしました。

測心座標で作図する際の手順

作図する際の手順は以下の通りです。

  • Stellariumから月と太陽の座標を取得する
    月は測心座標と地心座標の両方、太陽は地心座標のみ
  • 月の測心座標と地心座標から観測位置の座標を求める
  • 地球の影の中心座標(地心座標)を求め測心座標に変換する
    影の中心座標は太陽の地心座標を反転,地心→測心変換は上記の観測位置の座標を使う
  • 影中心と月の測心座標を撮像面上の座標に変換する
  • 影の中心を原点として月の画像を配置する
    各月画像は北が真上になる様に回転させておく

上記手順でポイントとなるのは、測心座標で影の中心座標を求める部分です。以下、その部分について少し補足します。

前述の通り、Stellariumで太陽の地心座標は取得出来るので、そこから影の地心座標は簡単に求められます。その値を測心座標に変換するには、影中心の地心座標から観測位置の座標を引き算することになります。
最初は、集めた資料を参考にして計算してみました。いきなり影の測心座標を計算しても答え合わせが出来ないので、ひとまず月の地心→測心変換を計算して、その結果をStellariumの測心座標と比較してみました。しかし、今一つ一致しません。

計算途中の数値を順次確認しながら間違い探しをしている中で、怪しい場所もありましたが間違ってないと思われる部分の値も微妙に違います。多分、使っている係数(定数?)などの値がStellariumuのものと集めた資料で微妙に違うのだろうと思いました。計算間違を修正できたとしてもそれらの誤差は残ると考え(間違い探しが面倒だったため)、いっそのこと全てStellarium内の数値を使って計算してしまおうと方向転換しました。
具体的には、Stellarium で取得した月の地心座標と測心座標から、観測者の座標を逆算することにしました。そのため、上に書いた様な計算手順となった訳です。

その様にして求めた座標が、影の円の中心にあるかどうかを確認したのが下図になります。

少し分かり難いですが、計算した影の中心座標値をStellariumの画面中心に設定して画面をキャプチャし、GIMPに取り込んだものです。
左図はGIMPの円選択ツールを使い影の中心位置を求めていて、右図ではセンターマーク(計算した座標)の位置を矩形選択ツールで求めています。これらを比較すると見事に一致しました(Stellariumで表示されている数値を使って計算し、Stellariumの表示で確認しているので当然と言えば当然ですね)。

なお、Stellariumで画面中心を指定した座標(直行座標)に移動させるのは、以下のようなHTML文書で行うことが出来ます。(※[環境設定画面]の[プラグイン]タブで、“リモートコントロール”を起動しておく必要があります)

これで地球の影の測心座標が計算できる様になったので、上記手順に従って計算を行うExcelシートを作成しました。以下がそのシートで、グラフは撮影画面上の月の位置になります。

参考として、地心座標で求めた位置も載せてみました(ピンク色の点)。相対的な位置関係はほぼ同じで、地球中心から観測位置の差だけ近づくので測心座標の方が若干広がっているという感じですね。

この結果を使って個々の月画像を配置したものが、冒頭に掲載した画像になります。画像の配置はGIMPでこのグラフを画像としてコピペして、各々の月画像を対応する位置に移動させました。1画素単位でしかシフトさせられないので簡易的なものですが、最初にお見せした様にStellariumで再現したものと非常に良く一致します。なお、月の大きさは、位置合わせソフトのログに出力される倍率を使って撮影時の大きさに戻しています。

今後の取り組み

今後は「地球の影を固定したタイムラプス動画」を作るつもりです。特に動画となると枚数が多いので記載した手順を手作業でやっていては大変です。これらの計算や処理を自動化するソフトを作成しようと思います。今回の画像も5枚ものなので、もう少し枚数を増やして作り直したいと思っています。

計算の目途が立ったとはいえ、例えば「各月画像のトーン調整」や「自作ソフトの位置合わせ誤差」など幾つか気になる点もあります。詳細は省略しますが、まぁ、この辺を心配する前に、さっさと自動化ソフトを作ってみるというものですね。そもそもやる気が起きるかという事の方が問題かもしれません。

まとめ

以前であれば、Webサイトなどから引用した月食の図(地球の影を横切る月の絵)を参考に月画像を配置して作図していたものを、今回Stellraiumの座標を元に作図できるようになりました。

今回の計算手順に辿り着くのに(記事に書き切れなかった)紆余曲折がそれなりにありましたが、殆どの計算はStellarium任せという結果となりかなり拍子抜けです。しかし、3か月ほど停滞していたものが一気に進んだので素直に喜びたいと思います。
計算の目途が立ち安心したため暫く放置するかもしれませんが、ソフトが出来た所でまた記事にしたいと思います。