はじめに
3ヶ月前リコリモで撮影したLRGB画像をカラー合成する記事を書いた。NGC1566を対象に、LRGB各フィルターで露光した複数の画像を合成(スタッキング)処理を行った。自身の備忘も兼ね、処理内容をここにまとめる。
関連情報
- リコリモ - オーストラリア サイディング・スプリングの50cmの望遠鏡を使った。リコリモの画像は、rawデータだけでなく、ダーク補正・フラット補正済みのキャリブレーション済みのデータもダウンロードできる。キャリブレーション済みのデータを使っている。
- Siril - 今回使用した天体画像処理ソフトウェア。MacBook Air上で動作する、Siril 1.4.1を使ってスタッキングする。先程、ホームページを見ると、2/18に1.4.2がリリースされているようだ!
- ChatGPT - これを使って観測計画を立てた。
- Claude - これを使って、画像処理を進めて、まとめた。シェルプロをサクッと作ることができ、スピードアップ。
画像処理
スタッキング手順
前提
対象・撮影時間
-
対象 NGC1566
-
L画像 2026/1/21 22:10:44-22:49:26 各180秒・10枚
-
R画像 2026/1/21 22:49:57-22:59:37 各120秒・4枚
-
G画像 2026/1/21 23:00:07-23:09:50 各120秒・4枚
-
B画像 2026/1/21 23:10:20-23:20:01 各120秒・4枚 ※不良画像1枚除外してスタッキング処理
ディレクトリ構成
NGC1566/
└── lights/
├── calibrated-...-Luminance-...-001.fit
├── calibrated-...-Luminance-...-002.fit
├── calibrated-...-Red-...-001.fit
├── calibrated-...-Green-...-001.fit
└── calibrated-...-Blue-...-001.fit
処理後の目標構成
NGC1566/
├── L_stacked.fit
├── R_stacked.fit
├── G_stacked.fit
├── B_stacked.fit
├── lights/
├── L/
├── R/
├── G/
└── B/
ステップ1: ファイル名の一括変更とディレクトリ分類
1-1. シェルスクリプトの作成
ターミナルで以下を実行:
cd ~/workspace/astro-image/NGC1566
nano rename_move_lrgb.sh
1-2. スクリプト内容
以下の内容を貼り付け:
#!/bin/bash
# 作業ディレクトリの確認
if [ ! -d "lights" ]; then
echo "Error: 'lights' directory not found!"
exit 1
fi
# 必要なディレクトリを作成
echo "Checking and creating directories..."
for dir in L R G B; do
if [ ! -d "$dir" ]; then
mkdir "$dir"
echo "Created directory: $dir"
else
echo "Directory already exists: $dir"
fi
done
# lightsディレクトリに移動
cd lights
echo ""
echo "Starting LRGB file renaming and moving..."
# 関数:リネームと移動
rename_and_move() {
local filter=$1
local prefix=$2
local count=0
for file in calibrated-*-${filter}-*.fit; do
if [ -f "$file" ]; then
# ファイル名から番号を抽出(macOS対応)
number=$(echo "$file" | sed -E 's/.*-([0-9]{3})\.fit$/\1/')
newname="${prefix}_${number}.fit"
# リネームして親ディレクトリの該当フォルダに移動
mv "$file" "../${prefix}/${newname}"
echo "Moved: $file -> ${prefix}/${newname}"
((count++))
fi
done
if [ $count -eq 0 ]; then
echo "Warning: No ${filter} files found"
else
echo "Processed ${count} ${filter} files"
fi
echo ""
}
# 各フィルターを処理
rename_and_move "Luminance" "L"
rename_and_move "Red" "R"
rename_and_move "Green" "G"
rename_and_move "Blue" "B"
# 元のディレクトリに戻る
cd ..
echo "============================="
echo "All LRGB files processed successfully!"
echo ""
echo "File distribution:"
echo " L/ : $(ls -1 L/*.fit 2>/dev/null | wc -l | tr -d ' ') files"
echo " R/ : $(ls -1 R/*.fit 2>/dev/null | wc -l | tr -d ' ') files"
echo " G/ : $(ls -1 G/*.fit 2>/dev/null | wc -l | tr -d ' ') files"
echo " B/ : $(ls -1 B/*.fit 2>/dev/null | wc -l | tr -d ' ') files"
echo "============================="
保存方法: (nanoの場合)
Ctrl + Oで保存Ctrl + Xで終了
パラメータ説明
sed -E 's/.*-([0-9]{3})\.fit$/\1/'-E: 拡張正規表現を使用.*-([0-9]{3})\.fit$: ファイル名末尾の3桁数字を抽出\1: マッチした数字部分を出力
1-3. スクリプトの実行
# 実行権限を付与
chmod +x rename_move_lrgb.sh
# 実行
./rename_move_lrgb.sh
ステップ2: Sirilでの位置合わせとスタッキング
2-1. Lチャンネル(Luminance)の処理
(1) Sirilを起動し、コマンドラインで以下を実行:
# Lディレクトリに移動
cd ~/workspace/astro-image/NGC1566/L
パラメータ説明:
cd: Change Directory - 作業ディレクトリを変更
(2) 位置合わせ(Registration)
register L_ -prefix=r_
パラメータ説明:
L_: 処理対象ファイルのパターン(L_001.fit, L_002.fit…を自動検出)-prefix=r_: 出力ファイルのプレフィックス(r_L_001.fit, r_L_002.fit…が作成される)
処理内容:
- デフォルトで
Global Star Alignment (deep-sky)法を使用 - 各画像から星を検出し、位置を合わせる
- 変換方法: Shift + Rotation(平行移動と回転)
- すべてのファイルが基準画像(通常は最初の画像)に合わせて位置調整される
(3) スタッキング(Stacking)
stack r_L_ rej 3 3 -norm=additive -out=../L_stacked
パラメータ説明:
r_L_: スタック対象ファイルのパターン(位置合わせ済みファイル)rej 3 3: ピクセル除去方法rej: Winsorized Sigma Clipping を使用- 最初の
3: 下側のシグマ値(低い値を除去する閾値) - 2番目の
3: 上側のシグマ値(高い値を除去する閾値) - 3σを超える異常値(ホットピクセル、宇宙線など)を除去
-norm=additive: 正規化方法additive: 加算的正規化(各画像の明るさを揃える)- 他のオプション:
mul(乗算),none(正規化なし)
-out=../L_stacked: 出力ファイル名../: 親ディレクトリに出力- 拡張子
.fitは自動付加される
処理内容:
- 平均スタック(Average stacking)がデフォルト
- ノイズを低減し、信号対雑音比(SNR)を向上
- 異常値を除去してクリーンな画像を生成
2-2. Rチャンネル(Red)の処理
# Rディレクトリに移動
cd ../R
# 位置合わせ
register R_ -prefix=r_
# スタッキング
stack r_R_ rej 3 3 -norm=additive -out=../R_stacked
2-3. Gチャンネル(Green)の処理
# Gディレクトリに移動
cd ../G
# 位置合わせ
register G_ -prefix=r_
# スタッキング
stack r_G_ rej 3 3 -norm=additive -out=../G_stacked
2-4. Bチャンネル(Blue)の処理
# Bディレクトリに移動
cd ../B
# 位置合わせ
register B_ -prefix=r_
# スタッキング
stack r_B_ rej 3 3 -norm=additive -out=../B_stacked
ステップ3: 結果の確認
3-1. 出力ファイルの確認
親ディレクトリ(NGC1566/)に以下のファイルが作成されているか確認:
cd ~/workspace/astro-image/NGC1566
ls -lh *.fit
期待される出力:
L_stacked.fit
R_stacked.fit
G_stacked.fit
B_stacked.fit
3-2. スタッキング結果の品質確認
Sirilでログを確認:
- ピクセル除去率が 0.5% - 2% 程度であれば正常
- 除去率が高すぎる場合(>5%)は、sigma値の調整が必要な場合あり
LRGB合成
この記事の「画像処理」手順の各フィルター画像に、先程出力された、[LRGB]_stacked.fitを使う。 この部分についても、コマンドラインで実施できるようになったら、別途まとめていきたい。
まとめ
上記の手順で得られた画像:

次の対象は、暗黒帯を持つ銀河、更にSNレムナントを撮ってみたい。