標高データで月面の日照シミュレートをしてみました2019/02/05

月面X地形周辺
数年前に月面X(左画像)や月面A観察のため、現象日時のカレンダーを作りました。微調整をくり返しながら現在のアーカイブに至っていますが、まだ道半ば。どうしても越えられない壁があるのです。「好条件で観察できる機会が少なく、現象時間幅も狭いため、カレンダー精度を上げられない」ということです。

月面Xなどを含め、月面地形にだんだん日が差したり陰ったりする「日照現象」あるいは「陰影現象」は、約1ヶ月周期の特定日時に見ることができます。地球の日出没と違って月面での太陽はとてもゆっくり動くため、現象は数時間楽しめるでしょう。

とは言え、よく晴れた夜に高い高度でベストタイミングで…といった各種条件が揃う機会は、数年取り組んでも1、2回が限度。月縁に近い地形では秤動の影響で更に機会が減り、また月高度が一定以上高くなる冬場は大気の揺らぎもひどく、細部が分からなくなる矛盾も併せ持ちます。こんな状況があって、以前から「精密なシェーディング・シミュレーション」の必要性を感じていました。地形に基づいた日照予測図が予め机上で作成可能なら、観察の手助けになるでしょう。

一般的な星図ソフト・プラネタリウムソフトでも簡単な月齢(位相)表示ならできます。右下画像は我が家で活躍してる三種類のソフトによる今年2月10日0:00の月。多少表現の違いはありますが、それなりに月面の雰囲気は出ていますね。しかしながら個々のクレーターを精密にレンダリングしている訳ではありません。画像を良く見ると、例えばVirtual Moon Atlasではクレーター内の陰影が逆になってますし、ステラナビゲーターでは影すらありません。理由は簡単。計算時間がネックになるから省略せざるを得ないのです。膨大な量の地形標高に対して日が当たるか当たらないか調べるには、簡素化してもワンシーン数十秒、ズームアップに耐えられるほどのデータ量なら確実に数分以上かかるでしょう。その間パソコンがフリーズしては使いものになりません。

天文ソフトの月面表現
いっぽう、3D専用のCGソフトなら高機能なものが多数出回っています。ただし(全部調べてはいませんが)月や地球のような球体上の巨大標高データを扱えるものは今のところ無さそうです。CGで扱う世界は大半が「空き部屋」のようなベース空間を与え、山や谷といった景観は平坦な地面に構築するのが通例です。それもできるだけモデリングを簡素化して計算時間短縮を図らないと実用的ではありません。(球体を考慮しなくて良いなら、例えばカシミール3Dなどは標高データの陰影処理が可能ですね。)

うーむ、八方塞がりだ…。そこで、重い腰を上げて「天体専用・レンダリングソフト」を自作することにしました。岩石型天体では透明物体や鏡面など考えなくてよいので、いわゆるレイトレーシングの手法も比較的簡単に済みます。この手のソフトを組むのは○十年前の学生時代以来で手間取りましたが、数ヶ月格闘して、それなりのものが仕上がりました。そのサンプル画像が冒頭の月面Xというわけ。これ、本物の撮影ではなく、シミュレーションCGだったんです。ちなみに日時設定は2019年2月12日18:00。今月の月面Xデーです。実際にこの通りになるか、晴れたら検証してみてください。

20151218月面X比較
いままでの記事でも紹介した通りNASAやUSGSが月面標高データを公開してますので今回もそれを利用、初期パラメータとして特定日時の太陽方向や距離を与えればどんな陰影になるか計算できます。結果出力は画像でなく以前にも紹介したGMT(Generic Mapping Tool)で扱える汎用フォーマット(netCDF)にしたため、あらゆる地図表現が可能になります。もちろん、例えば極側から月を照らす様な「架空の太陽位置」を与えれば、あり得ないシチュエーションでも計算可能。まぁ、そんな用途はないでしょうけれど。

左は2015年12月18日に撮影した月面Xと、今回のソフトによるシミュレーションとを比較したもの。実写は月全体をAPS-Cカメラで撮って強拡大してますから、ボケているのは大目に見てください。また実写・CGに関係なく欠け際は元々暗いため、輝度を任意に上げて見やすくしています。厳密な比較にはなりませんが、陰影の濃淡や影の伸び具合など、時刻違いの僅かな日照差も概ね再現できているようです。(※投影法が違うので、クレーター等の歪みは全く異なります。)

似たようなシミュレーションを国立天文台のサイトで見たことがあります(→外部リンク)。ただしこれは日照領域のみの計算らしく、極域での日照動向を調べる過程で作られたもののようでした。私は日が当たるかどうかだけでなく明るさの変化も知りたかったので、今回の自作ソフトに組み込んであります。この機能がなければ「日が当たっているけど暗い」といった微妙な状況が分かりません。明暗境界を調べるときは特に重要ポイントです。

20160218-1910月縁日照比較
右は2016年2月18日の月面および今回作ったソフトによるシミュレーション比較。画像左側のCGはGMTによる描画(無限遠からの正射投影図法)であり、撮影画像のような有限距離投影とは異なりますが、陰影はかなり再現できていることが分かるでしょう。ただ、重箱の隅をつつくように眺めると、実写画像とは微妙なズレがあります。原因は特定できませんが、例えば次の様なことが挙げられるでしょう。

  • 自作ソフトでは太陽を点光源で代用してるが、実際は面積を持つ光源なので、影の位置が多少ズレる。
  • ソフト内の陰影判断は「太陽上辺が地形に隠されたら影」としているが、実際は「転がりダイヤ富士」の様に地形横側からこぼれ漏れる日射もある。
  • 標高モデルは完全球体がベースのようなので、当記事の画像は真球で計算している。(回転楕円体モデルでも計算可能。)実物の月は真球ではないので、陰影に影響があるかも知れない。
  • 標高データは微少なエラーを含んでいる。また、計算時間を減らすためデータ量を減らすリサンプリングの過程で更にエラー値が増える。(一見して分からない程度ですが…)
  • 太陽方向を求めるプログラムに微少な誤差がある。(月軌道計算は本当に難しい…)
  • 月表面の色彩や反射率は考慮していない(石膏像のように一様な月面モデル)ので、レンダリング結果に影響があるかも知れない。
  • 地球からの照り返しや、周囲地形の日向からの照り返しは考慮していない。
  • 撮影したカメラ特性や、画像処理上の補正によって変化する明暗の影響。あるいは撮影時刻記録がずれている可能性(カメラ内部時計のズレなど)。

ともあれ、できるだけ実物を再現できるよう調整しつつ、今後の観察予測に活かしていければと思っています。なお、他の地形でもシミュレーションしているので、近いうちに月面○○のアーカイブを全面改装予定です。

参考:
標高データで月面図を描いてみました・その2(2018/10/13)
標高データで月面図を描いてみました(2017/05/18)

標高データで火星図を描いてみました(2017/05/26)

星表データで星図を描いてみました(NASAのγ線天体新星座)(2018/10/19)
星表データで星図を描いてみました(全天星図編)(2018/04/29)