Deep Sky Memories

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

速報: ZTF彗星 (2023/1/27) / N.I.N.A 始めました / PixInsight で彗星の画像処理

1月27日は空も曇ってたので夕方からビールを飲んでたのですが、SCW を見ると関東は深夜から晴れの予報。ずっと撮りそびれていたZTF彗星を撮るチャンスか、と思いつつも昼の雨で公園は地面が濡れてるだろうしちょっとな、と思っていたのですが…

Stellarium で彗星の位置を確認すると随分北の方まで来ていて、以前マンションの廊下から撮った M82/M81 よりも北極星寄り。

なら公園まで行かなくても撮れる?でもデジカメだと写りが厳しそうだし、ASI294MM Pro で撮るとフィルター切り替えが大変だし… というのも、彗星の場合、LRGBの各フィルターでの撮影時刻が離れると彗星核基準でスタックした時に星がカラフルになってしまうし、ZTF彗星に関しては割と短時間で尾の形を変わるとの報告もあって彗星の方もカラフルになってしまいそう。そうなると短時間露出でRGBを1コマずつ撮っていくしかありません。

レナード彗星の時は1コマ1分露出でそれをやったのですが、手動でフィルターを切り替えていたのでむちゃくちゃ大変でした。

今回は移動速度や形の変化等諸々考えて1コマ30秒露出で撮りたかったので自動でフィルターを切り替えながら連続撮影できないとお話になりません。ということで N.I.N.A のシーケンサーで自動撮影することにして付け焼き刃で N.I.N.A の使い方を勉強してシーケンスを作成して室内でテスト。

23時くらいまでには準備ができたのですが疲れてしまって横になったらなんか気力がどんどん萎えてしまって意識が朦朧としてきて、一応目覚ましをセットしてたので1:00頃に目が覚めたものの、撮りたい、でも寝たい、がグルグル頭の中で回転して布団から出られず…

でも最終的にはルーレットは「撮りたい」で止まり、観念して起き上がって1:30頃から機材の運搬と設置を開始。風が強いわ寒いわで半ば後悔しつつ、でも重たい SX2 を運搬してしまうと今更戻るのは馬鹿みたいって気持ちになってなんとか設置を完了させました。

鏡筒は RedCat 51 です。ASI294MM Pro のマイクロフォーサーズの画角では尾がはみ出るはずですが、尾の先の方の淡い部分は横浜の空ではどうせ写らないと割り切りました。

極軸合わせは PHD2 のポーラードリフトアライメントで10分くらいで完了。SB10にZTF彗星は載ってないのでコカブ(こぐま座のβ星)を導入しようと思いましたが、北向きの鏡筒は赤道儀にぶつかりやすいのが心配で手動で導入しようとしたところ、赤緯軸が天の北極を越えて動かせなくて失敗。これどうやるんですかね?結局自動導入で事なきを得ましたが。

どうも天球の北極星近くは慣れなくて方向感覚がわからなくなってしまいがちなのですが、コカブからZTF彗星の導入は割とスムースにいけました。数秒の露出でプレビューにはっきり彗星らしい姿が映ったので。

はっきりと言っても尾はコマの近くの一部しか見えず、アンチテイルもあるせいで尾の向きがイマイチわからなかったのですが、事前に見た他の人の撮った写真から見当を付けた向きに合わせて撮影開始。

最初の方でオートガイドを開始するのを忘れてたり、後半またDECのハンチングが始まってガイドが乱れ気味だったりもしましたが、DECのRMSエラーは±2秒角程度で済み、短焦点で露出時間も短かく、11Megapixelモードで解像度を落として撮ったのでほぼ問題なく撮れました。

深夜2:30から5:16の天文薄明の直前まで2時間半くらい撮り続けました。N.I.N.A のシーケンサーによる自動撮影のおかげで、彗星の移動に合わせてフレーミングをやり直した以外は機械任せで済んだので、途中で部屋に戻って取ってきた双眼鏡(PENTAX 7x21HD 7倍21mm)で眼視でもZTF彗星を見ようとしたのですが…

コカブの近くで探しやすい位置にあったにもかかわらず結局視認できませんでした。コカブの西の4等星がギリギリ見えるくらいだったので5〜6等のZTF彗星を見るのは厳しい条件だったと思います。なにしろ周囲から3つくらいのLED電灯に照らされていて暗順応ナニソレ?みたいな環境だったので…

撮影を終わってカメラの昇温後機材の撤収、そして引き続きベランダでフラットとダークを撮影。ダークの撮影中に夜が明けてきてどこからか光線漏れしてダークがカブるなどのトラブルもありましたが(鏡筒に黒いTシャツをかぶせて対応)なんとか撤収完了。

一眠りしてから PixInsight で画像処理。PixInsight で彗星の画像処理をするのは初めてですが丹羽さんのサイトの情報のおかげでなんとかなりました。まだ全部は処理できていないのですが、撮影終了前の総露出時間40分(4:30-5:13)を処理した結果がこちら。

ZDF彗星 (C/2022 E3) (2023/1/28 04:54)
ZDF彗星 (C/2022 E3) (2023/1/28 04:54)
William Optics RedCat 51 (D51mm f250mm F4.9 屈折), ZWO LRGB Filter / Vixen SX2, D30mm f130mm ガイド鏡 + QHY5L-IIM + PHD2 2.6.11 による自動ガイド / ZWO ASI294MM Pro (11 Megapixel, Gain 300, -10℃), N.I.N.A 2.1 / LRGB: 30秒 x 20コマ, 総露出時間 40分 / PixInsight 1.8.9-1, Photoshop 2023, Lightroom Classic で画像処理

画像の向きは概ね北(天の北極)が上です。この時間には子午線の少し手前で地上から見上げるとこの画像を逆さまにした向き(尾が左側に流れる)ように見えていたはずです。細く長く伸びるイオンテイルとふわっとしたダストテイル、そしてそれらと反対方向に、彗星の進行方向の反対側に伸びる短い「アンチテイルが」見えています。

尾が見やすいように白黒反転画像を見てみましょう。

ZDF彗星 (C/2022 E3) (2023/1/28 04:54) (白黒反転)
ZDF彗星 (C/2022 E3) (2023/1/28 04:54) (白黒反転)

長く伸びたイオンテイルが写っているのがわかります。よく見ると根本近くで2つに枝分かれしている?微かな写りですが、横浜の空では尾は写らないかと思っていたので意外でした。

N.I.N.A 始めました

ということで今回は N.I.N.A を初めて実戦で使いました。SharpCap でも有料版には撮影シーケンスを組む機能があるのですが、せっかくなので以前から気になっていた N.I.N.A を試してみました。以前試した時は ASI294MM Pro を繋いだ時にトラブったので最新版(Version 2.1)を落として再チャレンジ。

とりあえず室内で ASI294MM Pro で冷却が問題ないこと、EWFmini でフィルター切り替えが問題ないこと、シーケンスが機能すること、を確認。

EWF は ASCOM 経由で使いましたが、直接接続もいけるっぽい?ASCOM ドライバ側でフィルター名が設定してあっても N.I.N.A 側は Slot 0 とかのままなので、N.I.N.A 側の設定で改めて設定する必要がありました。設定方法がなかなかわからなかったのですが、「オプション - 機材」から設定できました。しかしこれは「機材 - フィルターホイール」の画面でも設定できるようにして欲しいなあ…

撮影シーケンスの設定は「シーケンサー - 高度なシーケンサー」でやりました。最初「シーケンサー - 新しい目標の追加」を使っていたのですが、ループの設定方法がわからなかったので、ググったら「高度なシーケンサー」を使うやり方がみつかったのでそれを参考にしたのですが、実は普通のシーケンサーでも「シーケンスモード」を「循環(ループ)」に設定して「トータル#」にループ回数を設定すればシーケンス全体のループはできるみたいです。

シーケンサーでは撮影開始前に冷却カメラの冷却を完了させる設定もあります。以前手動の撮影で冷却が目標温度に達する前にうっかり撮影を開始してしまっていたのに後で気付いたことがあったのでこれは便利と思ったのですが、これってカメラ側の設定で冷却に10分とか設定してあると、シーケンス開始から10分かけて冷却しようとするっぽい?

冷却は接続後にすぐ開始して冷却途中でピント合わせやら導入やらをやるので、シーケンス開始時には目標温度の近くまでは冷却されているので、そこからさらに10分とかになると困ります。なので今回はシーケンサー側の冷却設定はオフにしました。

もっとも本番撮影前にシーケンスを開始してなくても冷却が途中で止まってしまうトラブルがあり、この時は一度カメラの接続を切って最初から冷却しなおしたのですが、テスト時に冷却に時間がかかっていたのもそういうトラブルだったのかも?要確認です。

シーケンスは途中で停止すれば次は停止したところから再開になり、最初からやりなおす場合はリセットする必要があります。「高度なシーケンサー」画面なら画面一番上のシーケンスの名前が書いてある行の右端あたりにあるリロードアイコンみたいなアイコンのボタンを押すと進捗が0に戻ります。

普通のシーケンサー(目標セット)だとそのボタンが見当たらない… と思ったら画面左上の方にある目標名が書いてある右端が尖った鉛筆みたいな形のラベルの上にマウスをホバーさせるとボタンが出てきました。なんでこんな初見殺しのUIなのか…

ともあれフィルターを順次切り替えながら撮影するシーケンスをなんとか作成して室内でのテストも完了し、実際の撮影もつつがなくできました。

ただ、プレビューの表示が遅くて導入はピント合わせがやりにくいのは以前試した時から変わりありませんでした。このへんは SharpCap の方が使いやすいですね。プレビュー表示のストレッチ設定を切れば少しマシですがそれでも遅い。ピントをずらしながら「ヤマ」を掴むとか無理なので、ピント合わせはバーティノフマスク一択だと思いました。

プレビューと言えば撮影中にプレビューのストレッチ表示が無効の状態でLだけストレッチがかかって表示されることがあって(ストレッチ表示のトグルボタンを2回押すとリニア表示になった)何か失敗して露出オーバーになったかと思ってビビりました。

N.I.N.A は機能が豊富で天体撮影(特にDSOの撮影)における様々なニーズに応えるように工夫されていますが、微妙に不安定な部分があったり、UIが複雑で誤操作した時に初心者は何が起こったのかわからなくなることもあったりで、かなり慣れが必要なソフトだなと思いました。

気軽な電子観望や月・惑星の撮影では SharpCap の方に分がある印象です。とはいえ、便利そうだけど今回急に使ったのでまだ試していない機能もたくさんあるので、今後も色々試していきたいです。

PixInsight で彗星の画像処理

彗星の画像処理についてはこれまでは DeepSkyStacker の彗星核基準コンポジットで処理してきましたが、せっかく PixInsight があるのでそちらで処理してみました。参考にしたのはこちらの記事。

はい、PixInsight といえばお馴染みの丹羽さんの記事です。こちらの記事ではカラーカメラで撮った画像を処理していますが、今回はモノクロカメラで撮っているのでそのあたりも含めて気付いたこと工夫が必要だったことなどをメモしていきます。

処理フローはこんな感じです。

graph TD
    subgraph raws
    Rs_raws
    Gs_raws
    Bs_raws
    Ls_raws
    end
    subgraph registered
    R_regs
    G_regs
    B_regs
    L_regs
    end
    subgraph comet_registered
    comet_R_regs
    comet_G_regs
    comet_B_regs
    comet_L_regs
    end
    subgraph star_registered
    star_R_regs
    star_G_regs
    star_B_regs
    star_L_regs
    end
    subgraph comet
    comet_R
    comet_G
    comet_B
    comet_L
    end
    subgraph star
    star_R
    star_G
    star_B
    star_L
    end
    raws -- "WeightedBatchPreprocessing\n(Linear Defects Correction, Subframe Weighting, Image Registration)" --> registered
    registered -- CometAlignment --> comet_registered
    comet_registered -- "ImageIntegration(Median, Linear Fit Clipping)" --> comet
    comet -- "(Subtract)" --> star_ca
    registered --- star_ca(( )) -- "CometAlignment (Subtract)" --> star_registered
    star_registered -- "ImageIntegration(Avarage, Linear Fit Clipping)" --> star
    
    comet_R & comet_G & comet_B --- comet_cb(( )) -- ChannelCombination --> comet_RGB
    star_R & star_G & star_B --- star_cb(( )) -- ChannelCombination --> star_RGB
    
    comet_RGB & star_RGB --- pm1(( )) -- "PixelMath(comet_RGB + star_RGB)\n AutomaticBackgroundExtractor\n ImageSolver\n SpectrophotometricColorCalibration\n HistgramTransformation" --> comet_star_RGB
    comet_L & star_L --- pm2(( )) -- "PixelMath(comet_L /1.6 + star_L /1.6)\n AutomaticBackgroundExtractor\n HistgramTransformation" --> comet_star_L
        

最後の comet_star_RGB と comet_star_L を Photoshop で LRGB 合成(CameraRaw で調整した L を輝度レイヤーにして不透明度60%で CameraRaw で調整した RGB のレイヤーに重ねる)して仕上げました。*1

彗星のみ画像(comet)の作成

まず CommetAlignmnent について。WBPP の Image Registration の結果は LRGB 別々に registered のサブフォルダに格納されますが(L なら Light_BIN-2_4144x2822_EXPOSURE-30.00s_FILTER-L_mono とか)、CommetAlignment に時系列で連続したフレームを読み込む際に複数のフォルダを行ったり来たりしてファイルを選択するのは面倒ですし選択漏れが出たりもするので、一つのフォルダにまとめてしまった方がやりやすいです。

Linux 環境ならコマンドラインから registered の親ディレクトリに cd して、

mkdir all_registered_lights
cd all_registered_lights/
ln -s ../registered/Light_*/*.xisf .

とかやってシンボリックリンクを張るのが手っ取り早いです。*2 こうすれば Add Files する時にファイルダイアログ内で Name でソートすれば全フレームが撮影順に並びます。本当はファイルダイアログ内にサブフォルダ内まで含めて検索する機能があればいいのですが…

さて、読み込んだフレームの最初のフレームと最後のフレームで彗星核を認識させるのですが、ここで問題が。L,R,G,B の順に撮影したので最初のフレームは L なのですが、L は露出オーバー気味で彗星核が白飛びに近い状態になっているためクリックしても彗星核を認識しないのです。コンソールには「Error: PSF fitting error: No significant data.」というエラーメッセージが出力されました。

https://rna.sakura.ne.jp/share/PI-20230129/CA-PSF-fitting-error.jpeg

エラーメッセージでググッても全く情報がなくて困ったのですが、最後の B フレームでは問題なく彗星核を認識してくれたので、とりあえず最初の L フレームの一つ前の B フレームを追加してそれを最初のフレームにすることで回避しました。

最初と最後のフレームで彗星核を認識されると、途中のフレームの彗星核の位置は自動設定されます。これは認識した彗星核の位置から座標を線形補間したもののようで、一瞬で終わります。これは露出オーバーの L フレームについても問題なく設定されました。

ただし、後で Apply Global で registration を実行した際に L フレームの処理で「Warning: PSF fitting error: No significant data. Using interpolated centroid coordinates.」という警告が出ていました。どうも registration の際に画像から彗星核の位置を再計算しているようで、その際にまた L フレームで計算に失敗し、フォールバックで補間された位置を採用しているようです。結果をみた限りはそれで特に問題はありませんでした。

丹羽さんの記事には書いてませんが、CometAlignment の Target Frames でフレームを選択して Set Reference するとそのフレームが彗星核での位置合わせの基準になるフレーム(reference frame)になります。reference frame には Target Frames の一覧の先頭カラム(フレーム番号のカラム)に → マークが付きます。

デフォルトでは先頭フレームに → マークが付いているので ImageIntegration でスタックした結果の彗星の位置は先頭フレーム(撮影開始時刻のフレーム)での彗星の位置になります。上の写真では撮影開始と撮影終了の中間の時刻(04:54)のフレームを reference にしました。

reference frame がどうであろうと星のみ画像と合成した最終画像の品質には特に影響はないですが、reference frame を把握していないと最終画像に写っている彗星が何時の時点の位置に写っているのかわからなくなるので控えておきましょう。*3 控えておいた時刻は最終画像の撮影時刻に設定します。

CometAlignment の結果は LRGB 全部一緒のフォルダに保存されます。これを ImageIntegration で Add Files するのですが、今度はさっきとは逆に LRGB が別々のフォルダに仕分けてある方が扱いやすいので、保存先フォルダに cd してコマンドラインからこんな風にして仕分けました。

mkdir L R G B
mv 2023-01-28_*_L_* L
mv 2023-01-28_*_R_* R
mv 2023-01-28_*_G_* G
mv 2023-01-28_*_B_* B

チャートの「ImageIntegration(Median, Linear Fit Clipping)」では「彗星のみ画像」を作ります。Image Integration - Combination に Median を指定しますが、丹羽さんの記事で Average よりオススメ(星の消し残りが激減する)とのことなのでそうしました。Pixel Rejection (1) - Rejection algorithm は15枚以上なら Linear Fit Clipping が良いとのことなのでそうしました。

Pixel Rejection (2) - Linear fit high の値は試行錯誤しましたが、光害地ではストレッチで無理をして星の消し残りが目立ちがちなので星消しが強めになるよう小さめの値(0.6)を採用しました。今思えばもうちょっと大きめにしても良かったかも…

星のみ画像(star)の作成

L,R,G,B の各彗星のみ画像(チャートの comet_R, comet_G, comet_B, comet_L)ができてそれぞれ xisf ファイルに保存したら、今度は星のみ画像を作ります。

CometAlignmnet の Subtract - Operand Image に彗星のみ画像を設定して作るのですが、モノクロカメラ撮影した場合は L,R,G,B それぞれについてそれをやらなくてはならず、そのためには Target Frames で L,R,G,B いずれかのフレームだけにチェックを入れて、対応する彗星のみ画像を設定する必要があります。

フレームにチェックを入れたり外したりするには Target Frames の一覧の第2カラム(? のカラム)の ✓ マーク(または ✗ マーク)をダブルクリックするか、もしくは対象フレームを一覧で選択して(複数選択可) Toggle Selected します。

複数フレームのチェック入れには後者の操作が楽ですが、それでも L,R,G,B のループで並んでいるフレームから L だけとかを選択するには単純な範囲選択では選択できず、結局全フレームをチクチククリックして選択するしかありません… フレーム数が多いとかなりめんどくさいです。一覧に検索絞り込み機能があれば絞り込んで全選択でいけるんですが…

なお、ここでは L,R,G,B 毎の作業になるので Output - Output Directory に設定する出力先フォルダも L,R,G,B 毎に別々のフォルダを指定しておくと後で作業が楽になります。

星あり彗星画像(comet_star_RGB, comet_star_L)の作成

ここまで来たら「彗星のみ画像」と「星のみ画像」を合成して「星あり彗星画像」(あるいは彗星を止めた画像)を作成しますが、まずは彗星のみ画像と星のみ画像をそれぞれ R,G,B を ChannelCombination して RGB 画像にします。

R, G, B それぞれを星あり彗星画像にしてから ChannelCombination でも結果は同じですが、Image Identifier を書き換えながら PixelMath を繰り返すのは面倒なので先にそれぞれの RGB 画像(comet_RGB, star_RGB)を作ります。

comet_L と star_L、comet_RGB と star_RGB をそれぞれ PixelMath で合成しますが、L の方は露出オーバー気味でそのまま加算すると真っ白になってしまったので 1.6 で割ったものを加算しました。

L と RGB の星あり彗星画像はそれぞれ ABE してストレッチしますが、RGB の方はストレッチする前に SPCC でカラーバランスを整えます。ChannelCombination あたりで plate solve 結果が失われていてそのままでは SPCC できないので先に ImageSolver で plate solve を再実行してから SPCC します。

だいたいこんなところでしょうか。かなり手間がかかるので今後はバッチ処理にしたいところです…

まとめ

まだ未処理のデータがたくさん残ってますがとりあえず処理すれば彗星らしい姿が拝めることがわかったのでホッとしました。残りのデータもおいおい処理していきたいと思います。って去年の10月の木星のデータもまだ残ってるんですが…

とにかく3時間くらい物運んだり立ちっぱなしだったりだったので疲れました。まだ筋肉痛が残ってます…

*1:半透明にして L を重ねるのは RGB の輝度成分をブレンドしてノイズを減らす意図です。

*2:CometAlignment ではシンボリックリンクで大丈夫なのですが、何故か ImageIntegration では実行時にエラーになりました。ImageIntegration でも使いたい場合はハードリンクにするといいかも。

*3:register されたファイルの History 等にも reference frame の情報がないので控えてないと本当にわからなくなる?どこかに情報が残ってないのでしょうか?