Deep Sky Memories

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

M42 オリオン座大星雲とトラペジウム (2023/1/20) / PixInsight で HDR 処理 / WBPP で空き容量のやりくり

1月20日の夜、ついカッとなって SX2 を分解調整したのですが(これについては後日エントリを書きます)その後試運転がてら M42 を撮りました。何度も撮りましたが FSQ-85EDP で撮るのは初めてです。

SX2 の調整は赤緯ガイドのハンチング(ガイドグラフの蛇行)の原因と思われる赤緯バックラッシュを減らすのが目的だったのですが、最初のうちは良さそうな感じだったものの、結局またハンチングが発生して2分露出のコマは何度も撮影中断になりあまりマコ数を稼げませんでした…

試運転とはいえせっかくなので多段階露光で M42 中心部のトラペジウムを描出するのを目指しました。

M42 オリオン座大星雲 (2023/1/20 21:49)
M42 オリオン座大星雲 (2023/1/20 21:49)
高橋 FSQ-85EDP, フラットナー1.01× (合成F5.4) / ZWO LRGB filter, Ha Filter / Vixen SX2, D30mm f130mm ガイド鏡 + QHY5L-IIM + PHD2 2.6.11 による自動ガイド / ZWO ASI294MM Pro (46 Megapixel, Gain 150, -10℃), SharpCap 4.0.9268.0 / L: 0.5秒 x 32コマ + 1秒 x 16コマ + 4秒 x 16コマ + 15秒 x 16コマ + 60秒 x 24コマ, RGB: 1秒 x 32コマ + 2秒 x 16コマ + 8秒 x 16コマ + 30秒 x 8コマ + 120秒 x 12コマ(Bだけ10コマ), 総露出時間 119分12秒 / PixInsight 1.8.9-1, Lightroom Classic で画像処理

上の写真のトラペジウムの部分を切り出したのがこちら。

オリオン座大星雲中心部 (2023/1/20 21:49)
オリオン座大星雲中心部 (2023/1/20 21:49)

ちゃんとトラペジウムが4つの星に分解しています。

結構良く写ったと思います。が、ガイドが悪かったのかピントが甘かったのかはたまたシーイングが悪かったのか星像の締まりが以前撮ったものに比べるとイマイチですね…

とはいえ隅々まで星が歪まず丸く写っているのは気持ちいいですね。

輝星のまわりの青ハロっぽいのは B だけピントが甘かったせいで、レンズのせいなのかフィルターのせいなのかよくわかりません。露出の長いコマは L, R, G, B を数枚ずつ撮ってローテーションしてるので B だけシーイングが悪かったということはないと思います。

以前からそうなんですが G でピントを合わせると B のピントがちょっとズレるんですよね。R はあんまりズレないんですが。画像処理でなんとかできそうな気もしますが、今回は HDR 処理で手一杯だったのでそのままにしてあります。

PixInsight で HDR 処理

画像処理は PixInsight です。丹羽さんのこちらの記事を参考にしました。

処理フローはちょっとアレンジして、というか勘違いして少し違った風になりましたが、こんな感じです(Rs, Gs, Bs, Ls は多段階露光したフレームのセットです)。

graph TD
    subgraph raws
    Rs_raws
    Gs_raws
    Bs_raws
    Ls_raws
    end
    subgraph flattened
    Rs
    Gs
    Bs
    Ls
    end
    raws -- WBPP, ABE --> flattened
    Rs & Gs & Bs --- _a(( )) -- ChannelCombination --> RGBs
    RGBs -- HDRComposition --> RGB_HDR
    RGB_HDR -- ImageSolver\n SPCC\n HistogramTransformation\n HDRMultiscaleTransformation\n ArcsinhStretch --> RGB_stretched
    Ls -- HDRComposition --> L_HDR
    L_HDR -- SPCC\n HistogramTransformation\n HDRMultiscaleTransformation\n ArcsinhStretch --> L_stretched
    RGB_stretched -- ChannelExtraction --- _rgb(( ))
    L_stretched --- _rgb(( )) -- LRGBCombination --> LRGB

最後の LRGB を tiff 保存して、ノイズ処理とトーンカーブ、彩度等の微調整は Lightroom Classic でやっています。

SPCC の前に ImageSolver を入れているのは WBPP で付与されたメタデータ astrometric-solution が HDRComposition の結果には含まれないようで、SPCC がエラーになってしまうからです。無駄なので単に astrometric-solution をコピーする方法があればそれで解決したいのですが…

HDR 処理としては HDRComposition と HDRMultiscaleTransformation が肝ですが、HDRMultiscaleTransformation の方は丹羽さんの記事にもあるように試行錯誤が必要になります。最終的にはこんな感じに落ち着きました。

  • Number of layers: 7
  • Number of iterations: 1
  • Overdrive: 0.000
  • Median transform: OFF
  • Scaling function: Linear Interpolation (3)
  • To lightness: OFF
  • Preserve hue: OFF
  • Luminance mask: ON
  • Midtones Balance: Automatic

あと、最初はストレッチ前の画像(HDRComposition の結果)にそのまま HDRMultiscaleTransformation をかけていたんですが、これだとうまくいきません。Luminance mask が全然効かないので、これは元の画像のレベルが低すぎるなと思って HistogramTransformation で輝星が飽和しない程度にストレッチをかけました。

丹羽さんの記事をよく見たらストレッチ後の画像にかけるって書いてあったんですが… 先にストレッチしちゃうとハイライトが飽和しそうな気がして。でも HDRComposition の出力は 64bit float なので画面で白飛びして見えるようでも簡単には飽和しないっぽいです。

HDR 処理の結果は等倍でよく見ると輝星の中心付近に階調の段差ができていたりして(後で気付いた)もう少し詰めていきたいですね。

あとダークノイズっぽい暗部の線状のノイズが残っているのですが原因不明。今回 Bias フレームを使わなかったのですかそれと関係ある? dark flat 使ってるので不要と思うのですが… それとも WBPP で LOCAL NORMALIZATION に失敗してそのまま先に進んでるのがまずい?

WBPP で空き容量のやりくり

46Megapixel で多段階露光ということで元データのサイズはダークフラット等合わせて706フレーム、合計66GBにもなり、これを中間ファイル生成の多い PixInsight で処理するのは大変でした。

WBPP で一括処理しようとするとストレージに数100GBの空き容量が必要と表示されて、これが用意できなくて、どうしようかと悩んで試行錯誤した末、以下のようにしました。

  • まず Dark, Flat 全部と L の Light だけ WBPP に追加
  • WBPP 実行
    • 最後にログを保存する
  • 保存したログから Best reference frame のファイルパスをメモ
  • R の処理
    • Best reference frame 以外の中間ファイルを消す
      • calibrated, registered フォルダのファイル全部
      • ldd_lps フォルダのファイルは Best reference frame のファイル以外全部
    • Light のフレームを全クリアして R の Light を追加
    • Registration Reference Image を manual に切り替えて Best reference frame のファイルを設定する(入力欄にパスをコピペでOK)
      • Light 追加の前に設定すると時々設定が auto に戻ってしまうので注意
    • WBPP 実行
  • G, B の処理についても同様に繰り返す

Registration Reference Image を設定するのが肝で、これによってチャンネル間でフレームの位置合わせの基準を一致させます。これをしないと LRGB 合成の際にチャンネル間で位置がズレてしまいます。

Reference Image のファイル名は今のところログを見て調べるしかないようです。ログは手動で保存しなくても logs/{タイムスタンプ}.log にもログが残っているのでそれが使えるのですが、こちらは出力が大量にあるので処理完了後の画面から保存したやつのほうが扱いやすいかと思います。

これで空き容量 170GB くらいの HDD でやりくりしました。毎回 100GB 強の中間ファイルが生成されます。Dark, Flat は中間ファイルを消しても一度処理が完了して master が出力されていれば以後は自動的に master が使われるようになるので大丈夫です。

しかし Light の処理は別で、Image Integration のステップが Light の中間ファイルに依存するので、Image Integration の対象となるフレーム一式の全処理(Pipeline の一連の処理)が終わるまで中間ファイルを消せません。

なので、特定のフィルターで撮ったフレーム一式とか、多段階露光の特定の露出時間のフレーム一式とか、一つの mastar フレームを生成するまでの一連の処理の単位でしか処理を分割できません。

なお、WBPP の Pipeline を途中からやり直す場合は、中間ファイルが残してあれば、ステップ毎に生成済の中間ファイル(キャッシュ)を見つけて処理をスキップして次のステップでキャッシュを再利用、という形で処理時間(と電力消費)を節約できます。が、PixInsight が落ちてしまった(不正終了してしまった)場合は別です。たとえばこういう場合。

メモリは32GBあったんですけどメモリ不足でOS側から強制終了されてしまいました… WBPP は可能な限りアプリを全部終了してから実行しましょう。

この後 PixInsight を再度起動して WBPP をやり直したのですが、完了済みのステップで生成された中間ファイルが再利用されずやり直しになってしまいました。

メモリ不足以外にも何らかのバグで WBPP が途中で落ちることがあるので、用心深く行きたい場合は、Pipeline のステップを最初のステップだけ選択して一度 WBPP の実行を完了させてから、中間ファイルは残したままで、次のステップを追加で選択して再実行、というのを繰り返していくと良いでしょう。

まとめ

リザルトはピクセル等倍で見るとやや不満の残るものの、鑑賞距離で見る限りはでは自己ベストかな、と。撮影も画像処理も課題はありますが、FSQ-85EDP を使いこなせるようにがんばります。SX2 は… うーん…