Moon Logbook Logo

月の満ち欠けカレンダー, 大幅アップデート!

(更新日: 2026年09月22日)
#月の運動 #サイト開発 #皆既月食

はじめに

当サイト Moon Logbook では, 西暦2025年07月01日に月の満ち欠けカレンダーを導入しました. しかし, 科学的信頼性を向上させるため, 西暦2026年01月08日をもって旧型を廃止し, 新型に置き換えました.

当記事は西暦2026年01月12日に公開しましたが, 数々の修正を重ね, 西暦2026年09月22日現在の仕様で書き直しました.

当機能について

月の満ち欠けでは, 現在の月の形をはじめ, 西暦1583年から西暦2649年までの月の見え方を確認できます.

必要に応じて, リンクのコピーをしたり, シミュレーション結果をダウンロードしたりすることができます.

過去の問題点

古い月の満ち欠けカレンダー

西暦2025年07月01日に公開した旧型カレンダー (Nuxt.js移植後)

旧型であっても, 初公開当初から他のムーンカレンダーとの差別化を図っていました. 西暦1600年から西暦2199年までの600年間, 月の満ち欠けを1時間毎に表示すること, 及び月の見かけの大きさの変化を考慮するロジックは当時からありました.

しかし, 当初は黄色い単色のSVG図で月が光を反射する部分を表示したため, 実物の月に見られる, 海や光条などの模様は表現できませんでした. また, 月面で反射した光の明るさも, 厳密にはどこも同じではありません. 旧型では光の反射する部分が1色で表現されたため, 明暗境界線付近で徐々に暗くなる現実を再現できない問題がありました. さらに, 月が常に表を地球に向けていても, 月面の見える部分が僅かに変化します. これは秤動と呼ばれ, 月の表情を決定する重要な要素です. 簡易表現のSVGでは, それらを表現できず, 毎日の月の個性を引き出せるはずもありません.

WebGPUの導入

新しい月の満ち欠けカレンダー

西暦2026年01月08日に公開した新型カレンダー (Nuxt.js)

そこで導入したのが, WebGPU (WebGL 2.0 へのフォールバックもあります) による3D表現です. WebGPUはWebGL 2.0の後継となる3D描画APIで, 近年のGPUの性能を引き出すために設計されたものです.

必要なデータセット

3D描画の環境を活用するため, 地球から見た太陽と月の視位置をDATファイルに格納し, NASAの SVS CGI Moon Kit の模様, 標高の画像 (グレースケール化済み) を用いました.

DATファイルに格納したデータの基盤はNASA JPLのものです. 天体暦本体は de440.bsp / de441.bsp (DE440 / DE441) ですが, 地球の自転軸の方向や月の物理秤動は pck00011.tpc 内の解析式を用いました. Python の天文計算ライブラリである Skyfield に通して計算を行いました.

月の軌道は複雑ですが, 局所的に見るとシンプルです. 暦データの圧縮のため, DE440 / DE441 と同じ技術であるチェビシェフ多項式を用いて, 1秒毎の月の動きを表現しました.

暦の対応範囲は, 西暦1583年から西暦2649年までの1067年間です. 時刻体系は, 西暦1971年以前はUT1, 西暦1972年以降の暦はUTC (2017年以降はうるう秒無し) で扱い, UT と呼んでいます. 西暦2027年05月20日には早くもうるう秒を廃止する方針が固まりつつあるためです. 地球の自転補正項である ΔT の値は, Stephenson, Morrison & Hohenkerk (2016, 2021) 及び外挿式に基づきます. Python の Skyfield に通す場合は, IERS の finals2000A.all も使う場合があります.

テクスチャ画像は 1.8 MiB 程度 (初回読み込みのみ), 軌道データ, 月食・朔弦望の時刻表は1067年間全体で 14.7 MiB 未満です.

単一ファイルとしては重いですが, 最初に読み込んでブラウザにキャッシュする形にしています.

月の表現に必要なデータを生成するプログラムについては, codes.zip 内にある eph.py と primary_moon_phases.py をご参照ください.

表現の工夫

月の満ち欠けでは, 月の満ち欠け, 海や光条などの模様, 凹凸 (クレーター), 明暗境界線付近での明るさ, 秤動, 月の表面の反射特性, 衝効果, 細い月の弧が180度を下回ること, そして月食の表現を行っています.

月の描画については, Abdurrahman ÖZLEM 氏による論文や, Alexander Kuzminykh 氏の論文も参考になります.

目玉機能! 月食の表現

月食の表現

月食の表現例 (西暦2026年03月03日 皆既月食, 上段: シミュレーション, 下段: 宮崎県で実際に撮影)

撮影情報 (4 件) ▼
撮影日時:2026-03-03 18:40:25 UTC+09:00 月齢:+13d 21h 39m 16s露出設定:ISO 100, f/6.5, 1/83s撮影機材:Canon PowerShot SX70 HS, Velbon EX-440撮影地:(+31.808999, +131.459597)
撮影日時:2026-03-03 19:14:56 UTC+09:00 月齢:+13d 22h 13m 47s露出設定:ISO 100, f/6.5, 1/166s撮影機材:Canon PowerShot SX70 HS, Velbon EX-440, Kenko SKYMEMO S撮影地:(+31.808999, +131.459597)
撮影日時:2026-03-03 20:00:03 UTC+09:00 月齢:+13d 22h 58m 54s露出設定:ISO 100, f/6.5, 0.39s撮影機材:Canon PowerShot SX70 HS, Velbon EX-440, Kenko SKYMEMO S撮影地:(+31.808999, +131.459597)
撮影日時:2026-03-03 20:34:44 UTC+09:00 月齢:+13d 23h 33m 35s露出設定:ISO 100, f/6.5, 8s撮影機材:Canon PowerShot SX70 HS, Velbon EX-440, Kenko SKYMEMO S撮影地:(+31.808999, +131.459597)

月食は満月の頃に数時間だけ起こる現象ですので, 月の満ち欠けよりも時間スケールが圧倒的に短いです. そのため, 僅かな計算誤差があるだけで月食のシミュレーションが破綻してしまいます. 当然, 光時差や光行差を考慮しなければなりません.

月食中の物理的な月の明るさと人間の視覚に大きな乖離がありますが, 露出時間を月食の進み具合に応じて変更することで実際の見え方に近づけました. 皆既月食中の月の色表現はまずまずと言えるでしょう.

月食時の地球の影の境界モデルは David Herald & Roger W. Sinnott 法を採用しました. 地球の影を 2% 拡大するのではなく, 地球が扁平であることを考慮したうえで, 有効な不透明層 87 km を地球本体に上乗せしたものになっています. また, 地軸の傾きによる影の形の変化も考慮されています.

同じ描画ロジックが, 後出の月食データベースにもそのまま使い回されています.

おわりに

実際の記録

西暦2025年11月に撮影した26枚の月の写真

上記の図は西暦2025年11月に, 自身が実際に撮影した月の写真記録です. 05日夜の満月こそは逃しましたが, それ以外は新月期を除き隙間無く写真で埋まっています. 満月当晩以外すべて撮影に成功し, 1か月まるまるクレーター観察の好機だったことになります. なお, Abdurrahman ÖZLEM 氏が公開している Topocentric Lunar Simulator では, クレーターの表現も行われています. カレンダー形式ではありませんが, 地球の大気による色や形の変化, さらに月食も再現されています.

人生はせいぜい100年あるかどうかですが, このカレンダーは西暦1583年から西暦2649年までの1067年間, 1秒ごとに対応しています. つまり, 月の観察計画の参考になるだけでなく, 地球上にいる誰かの大切な瞬間 (例えば大切な人と付き合い始めた日時) に出ていたはずの月も, もれなく表現されていることになります.

参考文献 (原語版)▼

関連記事