Deep Sky Memories

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

土星のタイムラプス動画

7月25日深夜に撮った土星のタイムラプス動画を作りました。WinJUPOS 最新版(12.4.0)のタイムラプス動画作成支援機能 'Save image sequence' の試用を兼ねています。まずは結果を以下に。

土星と衛星のタイムラプス動画 (2025/7/26 01:58:30-02:12:12)
土星と衛星のタイムラプス動画 (2025/7/26 01:58:30-02:12:12)
高橋 ミューロン180C (D180mm f2160mm F12 反射), AstroStreet GSO 2インチ2X EDレンズマルチバロー (合成F41.4), ZWO IR/UVカットフィルター 1.25", ZWO ADC 1.25" / Vixen SX2 / ZWO ASI290MC (Gain 430), SharpCap 4.1.11817.0 / 露出 1/30s x 1000/3000 をスタック処理 x 4 を reference time を0.1分ずつ変えて de-rotation した138コマの画像を30fpsで動画化, 衛星は同じデータを wavelet パラメータ等を変えて処理したものを合成 / AutoStakkert!4 4.0.11, WinJUPOS 12.4.0, RegiStax 6.1.0.8, ffmpeg 4.4.2

14分弱の撮影データを180倍速の4.6秒の動画にしました。土星表面の模様が横縞しか見えず、環のスポーク構造なども写っていないので衛星の動きだけの動画ですが、レア、エンケラドゥス、ディオネ、ミマス、テティス、タイタンと I 〜 VI までのメジャーな衛星が全て写っています。詳しくは7月27日の記事を参照してください。

ミマスは暗くてほとんど見えないかもしれませんが、暗い部屋で見るか、モニターを掃除して見てください!また、大画面で見たほうが衛星の動きがわかりやすいです。

レア、ディオネ、ミマスは土星の手前を通過しているので右方向に、エンケラドゥステティス、タイタンは土星の向こう側を通過しているので左方向に動いています。

と言っても、やはり動きがわかりにくいと思うので、以前流星の動画用に作った LightTrailMovieMaker で衛星が光跡を残すようにした比較明合成動画も作成しました。

土星と衛星のタイムラプス動画 (2025/7/26 01:58:30-02:12:12) (比較明合成)

比較明合成動画の最終フレームに最初の動画の最終フレームを半透明で重ねて動きの方向がわかりやすいようにして、キャプションに衛星の名前と動きの方向を示したものがこれです。

土星の衛星の動き (2025/7/26 01:58:30-02:12:12)
土星の衛星の動き (2025/7/26 01:58:30-02:12:12)

エンケラドゥスがほとんど動いていませんが地球から見ると軌道の端の折り返し地点近くなので動きがゆっくりに見えています。

画像処理の手順

動画としては衛星が主役になるのですが、衛星を普通に処理すると土星が真っ白に飛んでしまうため、衛星は同じデータを別処理して合成しています。明るい衛星と暗い衛星も分けて処理しています。衛星の明るさの順序は正しくなるように処理していますが、明るさそのものは比例関係にはなっていません。

具体的には以下のような手順で画像処理しました。

  1. 元データから AutoStakkert! でスタック画像作成。
    • 4本の撮影動画から4枚のスタック画像を作成します。
  2. 1 のスタック画像を RegiStax で軽く wavelet 処理。
  3. WinJUPOS で 2 で作成した画像を Image measurement して .ims ファイルを作成。
    • 4枚のスタック画像から4つの .ims ファイルを作成します。
  4. WinJUPOS の De-rotation images に 2 で作成した .ims ファイルを全て読み込んで、[Save image sequence] で de-rotation 画像のシーケンスを作成。
    • 'Time span in seconds' が 822 だったので、'Number of images between first and last image measurement' には 183 を指定して(理由は後述)、138枚の de-rotation 画像を作成しました。
    • 画像サイズは衛星が全部入るように 1920 x 1920 pixel にしました。
    • 'Weighting' と 'LD value' は試行錯誤して土星の縁に出る細い弧状のアーティファクトが目立たないようにしましたが、設定の保存を忘れていて具体的な値がわからなくなりました…
      • 確か 'LD value' を 0.80 くらいまで減らして、Weight を最初の .ims に軽く、最後の .ims に重くかけるようにした記憶があります。
  5. RegiStax の Macro/Batch 機能で de-rotation 画像シーケンスを wavelet 処理。
    • wavelet やコントラスト等のパラメータを分けて、以下の4種類の wavelet 済画像シーケンスを生成しました。
      • 木星本体用: 通常の wavelet 処理。
      • タイタン用: wavelet は上と同じでコントラストを上げたもの。
      • 明るい衛星用(レア、ディオネ、テティス用) : wavelet を強めにしてコントラストを上げたもの。
      • 暗い衛星用(エンケラドゥス、ミマス用) : wavelet をより強くしてコントラストを上げたもの
  6. GIMP で衛星マスクを作成。
    • ffmpeg の maskedmerge フィルターで使うマスクで、黒背景で見せたい衛星の軌道部分を白く塗ったPNG画像を作成します。
    • 後で 1920 x 1080 にクロップした動画に適用するので同じ座標(w=1920:h=1080:x=0:y=480)でクロップします。
    • タイタン用(mask-Titan.png)、明るい衛星用(mask-Moons1.png)、暗い衛星用(mask-Moons2.png)の3枚のPNG画像を作成します。
  7. ffmpeg で画像シーケンスを非圧縮動画に変換。
      • コーデックは ffv1 を選択します。
        • h264 lossless や mjpeg だと RGB-YUV 変換が入るせいか後の maskedmerge 処理の度に土星本体の色が白っぽくなってしまったので ffv1 にしました。
      • 出力動画の拡張子は .avi にします。
        • ffv1 コーデックの動画は mp4 では保存できなかったのて avi にしました。
      • 土星本体用、タイタン用、明るい衛星用、暗い衛星用の4つの動画を作成します。土星本体用の動画を作成するコマンドラインは以下のようなものです。
        • ffmpeg -framerate 20 -pattern_type glob -i 'sequence-Saturn/*.png' -vf 'crop=w=1920:h=1080:x=0:y=480' -an -c:v ffv1 -level 3 'Staurn.avi'
        • 同様にしてタイタン用の Titan.avi, 明るい衛星用の Monns1.avi, 暗い衛星用の Moons2.avi を作成します。
  8. ffmpeg で maskedmerge を使って、土星本体動画に各衛星動画をマスク付きで重ねていって1つの動画にする。
    • コマンドラインは以下のようなものです。
      • ffmpeg -i Saturn.avi -i Titan.avi -i mask-Titan.png -filter_complex maskedmerge=15 -c:v ffv1 -level 3 Saturn+Titan.avi
      • ffmpeg -i Saturn+Titan.avi -i Moons1.avi -i mask-Moons1.png -filter_complex maskedmerge=15 -c:v ffv1 -level 3 Saturn+Titan+Moons1.avi
      • ffmpeg -i Saturn+Titan+Moons1.avi -i Moons2.avi -i mask-Moons2.png -filter_complex maskedmerge=15 -c:v ffv1 -level 3 Saturn+Titan+Moons1+Moons2.avi
  • Saturn+Titan+Moons1+Moons2.avi を公開用の mp4 形式に変換する。
    • コマンドラインは以下のようなものです。
    • ffmpeg -i Saturn+Titan+Moons1+Moons2.avi -c:v libx264 -crf 15 -pixel_format yuv420p Saturn+Titan+Moons1+Moons2.mp4

ffmpeg の maskedmerge フィルターは3番目のマスク画像(グレースケール)の黒の部分を1番目の動画のフレームから、白の部分を2番目の動画のフレームからピクセルを取ってきて出力動画のフレームにするものです。=15 はフィルター対象のチャンネルで、15を指定すると全チャンネルが対象になります。

WinJUPOS の 'Save image sequence' 機能は今回始めて使ってみたのですが、使い勝手に難はあるものの、短時間の撮影データから手軽にタイムラプス動画を作るなら使える機能だと思います。ただし、長時間の撮影データを扱うには問題があると思います。そのあたりについては次回エントリに書こうと思います。