Planetary imaging as a hobby of optical engineer

Planetary imaging as a hobby of optical engineer 趣味の惑星撮影のページです。撮影方法の検討の記録として残していきたいと思います。光線追跡はOSLO EDU、回折はフーリエ光学に基づいてPythonのnumpy、scipyで計算してます。

GoogleのAI検索モードで、SOHO/LASCO C3の視野内に入るC/2026 A1をプロットするpythonコードを生成してもらいました。座標の反転やC3の視野円が倍になってたりの間違いはありましたが、ちゃんとJPL Horizon...
02/04/2026

GoogleのAI検索モードで、SOHO/LASCO C3の視野内に入るC/2026 A1をプロットするpythonコードを生成してもらいました。座標の反転やC3の視野円が倍になってたりの間違いはありましたが、ちゃんとJPL Horizonsのデータを引用して、まずますの結果が得られました。

彗星の名前と計算開始、終了時刻を入力するだけのシンプルなコードです。

表示が気に入らない点があるので手直しして、今後使えるようにしておこうかと思います。

更新1:近日点を追記し、ちょっと見やすくしました。
更新2:LASCOの光学系とイメージセンサーの仕様から計算した画角に変更、SOHOと太陽の距離から視直径を計算するように変更しました。コードが長くなるので、下記コードには反映させていません。
https://lasco-www.nrl.navy.mil/index.php?p=content/handbook/hndbk_6
更新3:細かい修正を AIにお願いすると、前の修正を忘れたり余計な修正をしてきたので、手作業でコードを変更して、好みのプロットにしました。下記コードには反映させていません。
---
import numpy as np
import matplotlib.pyplot as plt
import astropy.units as u
from astropy.coordinates import SkyCoord
from astropy.time import Time, TimeDelta
from astroquery.jplhorizons import Horizons
from sunpy.coordinates import frames

# 1. 設定
start_time = Time("2026-04-02T00:00:00")
end_time = Time("2026-04-07T00:00:00")

# 1時間ステップに変更
time_step_hours = 0.25
delta_t = TimeDelta(time_step_hours * u.h)
# 時間配列の作成
num_steps = int((end_time - start_time).jd * 24 / time_step_hours) + 1
times = start_time + np.arange(num_steps) * delta_t

comet_name = "C/2026 A1"

tx_list = []
ty_list = []
r_sun_list = []

print(f"{time_step_hours}時間おきに計算中(全{len(times)}点): {comet_name}...")

for t in times:
# SOHOの座標取得
soho_query = Horizons(id='SOHO', location='', epochs=t.jd)
soho_table = soho_query.vectors()
soho_coord = SkyCoord(x=soho_table['x'], y=soho_table['y'], z=soho_table['z'],
unit='au', representation_type='cartesian',
frame='heliocentrictrueecliptic', obstime=t)

# 彗星の座標取得
comet_query = Horizons(id=comet_name, location='', epochs=t.jd)
comet_table = comet_query.vectors()
comet_coord = SkyCoord(x=comet_table['x'], y=comet_table['y'], z=comet_table['z'],
unit='au', representation_type='cartesian',
frame='heliocentrictrueecliptic', obstime=t)
r_au = np.sqrt(comet_table['x']**2 + comet_table['y']**2 + comet_table['z']**2).item()
r_sun_list.append(r_au)

# SOHOから見た太陽投影座標(HPC)に変換
hpc_frame = frames.Helioprojective(observer=soho_coord, obstime=t)
comet_hpc = comet_coord.transform_to(hpc_frame)

# 配列から数値を取り出してリストに追加 (.item()で確実にスカラー化)
tx_list.append(comet_hpc.Tx.to('deg').value.item())
ty_list.append(comet_hpc.Ty.to('deg').value.item())

# 2. グラフの作成
fig, ax = plt.subplots(figsize=(10, 10))

# LASCO C3 視野円 (約15.8度)
c3_fov = plt.Circle((0, 0), 15.8/2, color='blue', fill=False, linestyle='--', alpha=0.5, label='LASCO C3 FOV (15.8°)')
ax.add_patch(c3_fov)

# 太陽の視直径 (約0.25度半径)
sun_circle = plt.Circle((0, 0), 0.25, color='orange', fill=True, label='Sun')
ax.add_patch(sun_circle)

# 彗星の軌跡 (1時間ごとの細かな線、マーカーは小さく)
ax.plot(tx_list, ty_list, 'r-', linewidth=1.5, alpha=0.8, label=f'Path ({time_step_hours}h step)')
# 12時間おきに小さなドットを表示して時間経過を分かりやすくする
ax.scatter(tx_list[::int(12/time_step_hours)], ty_list[::int(12/time_step_hours)], color='red', s=10, zorder=3)

# 日付ラベルの追加 (24時間 = 24ステップおきに表示)
for i, t in enumerate(times):
if i % int(24/time_step_hours) == 0:
ax.annotate(t.strftime('%m-%d %H:%M'), (tx_list[i], ty_list[i]),
textcoords="offset points", xytext=(5/2,5/2), fontsize=8)

# グラフ設定
ax.set_aspect('equal')
ax.set_xlim(-20/2, 20/2) # East Left
ax.set_ylim(-20/2, 20/2)
ax.set_xlabel('Solar X (HPC Tx) [deg]')
ax.set_ylabel('Solar Y (HPC Ty) [deg]')
ax.set_title(f'SOHO/LASCO C3 View: {comet_name}')
ax.grid(True, linestyle=':', alpha=0.4)
ax.legend(loc='upper right')

# 日心距離が最小のインデックスを取得
peri_idx = np.argmin(r_sun_list)
peri_time = times[peri_idx]
peri_dist = r_sun_list[peri_idx]
peri_tx = tx_list[peri_idx]
peri_ty = ty_list[peri_idx]

# 結果の表示
print("\n=== 近日点(Perihelion)の結果 ===")
print(f"時刻 (UTC): {peri_time.iso}")
print(f"近日点距離: {peri_dist:.6f} AU")
print(f"SOHOから見た位置 (HPC): Tx={peri_tx:.4f}, Ty={peri_ty:.4f}")

# グラフ上に近日点地点を強調表示
ax.scatter(peri_tx, peri_ty, color='magenta', s=120, edgecolors='black',
marker='P', zorder=6, label='Perihelion')
ax.annotate(f'Perihelion: {peri_dist:.3f} AU\n{peri_time.strftime("%y-%m-%d %H:%M UT")}',
(peri_tx, peri_ty), xytext=(40, 20), textcoords="offset points",
arrowprops=dict(arrowstyle="->", color='magenta'),
fontsize=9, color='darkmagenta', fontweight='bold')

# 凡例を更新
ax.legend(loc='upper right')
plt.show()

前回作ったシミュレーターを使って、粒子起因の光環について、粒子径を変化させてシミュレーションしてみました。粒子径は0mm、0.0025mm(PM2.5)、0.005mm(黄砂)、0.01mm、0.015mm、0.02mm、0.025mm、0...
13/03/2026

前回作ったシミュレーターを使って、粒子起因の光環について、粒子径を変化させてシミュレーションしてみました。

粒子径は0mm、0.0025mm(PM2.5)、0.005mm(黄砂)、0.01mm、0.015mm、0.02mm、0.025mm、0.03mm(スギ、ヒノキ花粉)、0.035mm、0.04mm、0.045mm、0.05mmの12種類計算しました。観察するときの瞳径は裸眼を想定し直径4mm、粒子による遮蔽は7%と一定にしています。(視程に換算しにくいですが、光が100m通過して7%遮蔽率であれば、視程4.1kmになります。Aerosol Optical Depth換算 -ln(0.9293)=0.0733)

粒子径によって、光環の様子が大きく変化することがわかります。

これより粒子が大きくなると長時間空気中に滞在できなくなると思います。もっと大きくて身近な同様の現象は、望遠鏡の中央遮蔽です。中央遮蔽は粒子に比べると、数十mmオーダーの遮蔽でできる光環はとても小さいです。ただ、シーイングが良い晩に超高倍率で、屈折望遠鏡と良く見比べると、反射望遠鏡の像にはわずかに光環が見えるかもしれません。(私ははっきりと見たことはないです)

↓前回の花粉光環のシミュレーション結果
https://www.facebook.com/permalink.php?story_fbid=1499219205543652&id=100063667612917

花粉光環(pollen corona)のシミュレーションをしてみました。私も花粉症なので、花粉光環を見るのは嫌なのですが、月の周りにできた見事な花粉光環の写真を見かけたので、シミュレーションでも再現してみたくやってみました。理屈は下記のを参...
11/03/2026

花粉光環(pollen corona)のシミュレーションをしてみました。

私も花粉症なので、花粉光環を見るのは嫌なのですが、月の周りにできた見事な花粉光環の写真を見かけたので、シミュレーションでも再現してみたくやってみました。

理屈は下記のを参考にしました。
https://www.ccs-inc.co.jp/guide/column/light_color/vol20.html

月の光が花粉の当たると、一部が遮られ回折し、光線の角度が変わります。変化する角度θは、花粉の直径に依存し、花粉の直径をdとすると、

d sin θ = mλ

の式を満たす方向に回折光は進みます。λは波長、mは整数です。

スギ花粉(Japanese cedar pollen)の直径は30ミクロン、可視光の波長を550nmとすると、m=1のとき、θは約1°となりました。m=2はθ=約2°です。

おおよそ半径1°の間隔でリングが現れることになります。ただ、白色光は干渉性があまり強くなく、回折格子とは違って花粉間隔は自由距離なので、mが大きくなると回折光は急激に弱くなります。

画像はシミュレーション結果で、左上が裸眼で見た時のイメージ、右上はよく花粉光環の写真で見かける露出オーバー状態の写真です。右下はスケールを入れています。真ん中に直径0.5度の月がある想定です。左下はシミュレーションモデルです。月から到達した光の断面1mm2あたり、直径30ミクロンの花粉が100個ランダムに散らばった状態をモデル化しています。

実際撮られた写真のスケールが良くわからないので、あっているかわかりませんが、どのくらいの半径で光環が見えているか測ってみると、粒子の直径がわかるかもしれません。

シミュレーションは真空中に花粉粒子だけの存在を想定しており、空気分子やそれ以外の粒子の散乱はシミュレーションに入っておりません。

【2025-09-07】の皆既月食について、実際の時間の気象衛星の雲頂高度データを使って、 第2接触 2025-09-07 17:30:41UT 第3接触 2025-09-07 18:52:47UTの月の明るさに影響を与える可能性のある雲の...
04/03/2026

【2025-09-07】の皆既月食について、実際の時間の気象衛星の雲頂高度データを使って、

 第2接触 2025-09-07 17:30:41UT
 第3接触 2025-09-07 18:52:47UT

の月の明るさに影響を与える可能性のある雲の範囲(TPR、Tropospheric Passage Range)の作図しました。前日の【2025-09-07】の皆既月食の図と同じ条件で、比較すると、両日の違いが分かるようになっています。

解説は天文ガイド3月号を参照いただきたいですが、TPRは水色の点線で挟まれた範囲になります。

水色の点線の真ん中にあるTerminator(昼夜境界線)の色分けは、月に到達する光線の屈折角をあらわしていて、
 屈折角< 68.7' 大気通過高度 >0km
 屈折角< 40' 大気通過高度 >5km
 屈折角 15km
 屈折角

2026-03-03の皆既月食について、【実際の時間】の気象衛星の雲頂高度データを使って、 第2接触 2026-03-03 11:04:26UT 第3接触 2026-03-03 12:02:45UTの月の明るさに影響を与える可能性のある雲の...
03/03/2026

2026-03-03の皆既月食について、【実際の時間】の気象衛星の雲頂高度データを使って、

 第2接触 2026-03-03 11:04:26UT
 第3接触 2026-03-03 12:02:45UT

の月の明るさに影響を与える可能性のある雲の範囲(TPR、Tropospheric Passage Range)の作図しました。解説は天文ガイド3月号を参照いただきたいですが、TPRは水色の点線で挟まれた範囲になります。

水色の点線の真ん中にあるTerminator(昼夜境界線)の色分けは、月に到達する光線の屈折角をあらわしていて、
 屈折角< 68.7' 大気通過高度 >0km
 屈折角< 40' 大気通過高度 >5km
 屈折角 15km
 屈折角

【24時間前】の気象衛星データで作り直したものをアップします。---3/3の皆既月食について、【24時間前】の気象衛星の雲頂高度データを使って、 第2接触 2026-03-03 11:04:26UT 第3接触 2026-03-03 12:0...
02/03/2026

【24時間前】の気象衛星データで作り直したものをアップします。
---
3/3の皆既月食について、【24時間前】の気象衛星の雲頂高度データを使って、

 第2接触 2026-03-03 11:04:26UT
 第3接触 2026-03-03 12:02:45UT

の月の明るさに影響を与える可能性のある雲の範囲(TPR、Tropospheric Passage Range)の作図の予行練習をしてみました。解説は天文ガイド3月号を参照いただきたいですが、TPRは水色の点線で挟まれた範囲になります。

水色の点線の真ん中にあるTerminator(昼夜境界線)の色分けは、月に到達する光線の屈折角をあらわしていて、
 屈折角< 68.7' 大気通過高度 >0km
 屈折角< 40' 大気通過高度 >5km
 屈折角 15km
 屈折角

【48時間前】の気象衛星データで作り直したものをアップします。---3/3の皆既月食について、【48時間前】の気象衛星の雲頂高度データを使って、 第2接触 2026-03-03 11:04:26UT 第3接触 2026-03-03 12:0...
01/03/2026

【48時間前】の気象衛星データで作り直したものをアップします。
---
3/3の皆既月食について、【48時間前】の気象衛星の雲頂高度データを使って、

 第2接触 2026-03-03 11:04:26UT
 第3接触 2026-03-03 12:02:45UT

の月の明るさに影響を与える可能性のある雲の範囲(TPR、Tropospheric Passage Range)の作図の予行練習をしてみました。解説は天文ガイド3月号を参照いただきたいですが、TPRは水色の点線で挟まれた範囲になります。

水色の点線の真ん中にあるTerminator(昼夜境界線)の色分けは、月に到達する光線の屈折角をあらわしていて、
 屈折角< 68.7' 大気通過高度 >0km
 屈折角< 40' 大気通過高度 >5km
 屈折角 15km
 屈折角

※3/1 12:48に第3接触の図を追加、第2接触の図を更新しました。72時間前の雲頂高度データであることにご注意ください。3/3の皆既月食について、72時間前の気象衛星の雲頂高度データを使って、第2接触 2026-03-03 11:04:...
28/02/2026

※3/1 12:48に第3接触の図を追加、第2接触の図を更新しました。72時間前の雲頂高度データであることにご注意ください。

3/3の皆既月食について、72時間前の気象衛星の雲頂高度データを使って、

第2接触 2026-03-03 11:04:26UT
第3接触 2026-03-03 12:02:45UT

の月の明るさに影響を与える可能性のある雲の範囲(TPR、Tropospheric Passage Range)の作図の予行練習をしてみました。解説は天文ガイド3月号を参照いただきたいですが、TPRは水色の点線で挟まれた範囲になります。

水色の点線の真ん中にあるTerminator(昼夜境界線)の色分けは、月に到達する光線の屈折角をあらわしていて、
 屈折角< 68.7' 大気通過高度 >0km
 屈折角< 40' 大気通過高度 >5km
 屈折角 15km
 屈折角

カセグレン光学系は主鏡と副鏡の間隔が変えられるようになっていて、惑星撮影のように望遠鏡の限界近い解像度を引き出す場合は、メーカーが公表しているバックフォーカス値に合わせて、主鏡と副鏡の間隔を微調整して、無限遠でもっとも良くなるように調整しま...
27/01/2026

カセグレン光学系は主鏡と副鏡の間隔が変えられるようになっていて、惑星撮影のように望遠鏡の限界近い解像度を引き出す場合は、メーカーが公表しているバックフォーカス値に合わせて、主鏡と副鏡の間隔を微調整して、無限遠でもっとも良くなるように調整します。

https://www.celestron.com/blogs/knowledgebase/understanding-your-telescope-s-back-focus

昼間に、人工星を使って調整をするとき、無限遠より近くにピントを合わせたくなる場合がありますが、その場合、結像性能や内外像がどのように変化するかシミュレーションしてみました。

シミュレーションのモデルはセレストロンC14で、1枚目の画像は主鏡を動かしてピントを合わせた場合、2枚目の画像は接眼部に延長筒を追加してピント合わせた場合を想定しています。

どちらの場合も、近距離に焦点を合わせると、球面収差により内外像は非対称になります。その変化は、延長筒を使った場合の方がより顕著で、結像性能の低下は大きいです。主鏡を動かした方が結像性能の低下は少ないので、内外像を確認するにはこの方が見やすいと思いますが、例えば、50mの距離に焦点を合わせると主鏡の移動距離は約12mmです。無限遠で収差が最小になる鏡の位置からそれだけずれていることを考慮しておく必要があると思います。焦点距離も3900mmあったのが3100mmを切るぐらい短くなります。

延長筒による方法だと、50mの近距離では相当な球面収差で内外像が見にくくなってくるレベルです。延長筒の長さも43cmと相当な長さで真直度が問題になってきそうです。

50mの距離よりも遠くで地表付近の気流を避けてとなると、マンションの別棟など、場所を選びそうです。私もクラシックカセグレンを購入時に人工星を購入していて、最悪のケースでは、隣の棟に人工星を設置して、調整しようかと考えていました。幸いそうすることなく、性能を出せるようになり、使わずに済んでいます。

調整ではなく、普通に地上観望する場合は、主鏡-副鏡の間隔を変えてピントを合わせた方が性能は良さそうです。ちょうど、カメラレンズの近距離補正方式のピント合わせ機構のようですね。

中央遮蔽のある光学系では、シーイングが良いと恒星の焦点内外像でリングの中心にひときわ明るい光点が見えることがあります。Arago spot, Poisson spot, Fresnel spotと色んな名前で呼ばれているようです。詳しい説明...
24/01/2026

中央遮蔽のある光学系では、シーイングが良いと恒星の焦点内外像でリングの中心にひときわ明るい光点が見えることがあります。Arago spot, Poisson spot, Fresnel spotと色んな名前で呼ばれているようです。詳しい説明は下記を参照いただきたいですが、光が波の性質で遮蔽の真後ろに回り込むので、基本的に光点は遮蔽から等距離の真後ろに出ます。

Wikipediaの説明
https://en.wikipedia.org/wiki/Arago_spot

屈折望遠鏡TOA-150とクラシックカセグレンCC350の内外像比較シミュレーション
https://www.facebook.com/100063667612917/videos/795712159060138/

屈折望遠鏡に遮蔽を置いたときのシミュレーション結果が1枚目の画像です。口径内の遮蔽の位置によって光点の位置が変わることがわかります。一方は、焦点像は全く変化はなく結像性能は遮蔽のオフセットは関係ないです。遮蔽がオフセットしていると、ピント合わせの時に、ボケに違和感がでたり、内外像を使った光軸合わせはやりにくくなりそうです。

2枚目の画像は中央遮蔽のあるセレストロンのC14の副鏡の位置をシミュレーション上で動かした結果です。屈折望遠鏡に遮蔽を置いた時とは違って、少し複雑で、副鏡の位置がシフトすると遮蔽の位置が変わるだけでなく、主鏡の反射光の一部が副鏡にあたらず、"食"が起こります。その結果、副鏡がシフトしても光点は概ね中心を保つようです。5mm以内の副鏡シフトであれば、"食"はなく、それによるリングの変形もなく、光点も真ん中で、内外像で光軸合わせはしやすい状況を維持できそうです。

3枚目の画像は像面の中心がずれた場合のシミュレーションです。それぞれの評価位置でコマ収差がなくなるように副鏡をチルト調整しています。像面側のシフトはリングに対する光点の位置へは影響はなく、ズレが大きくなると非点収差が発生します。

過去のシミュレーションで、非点収差は限度を超えた補正板のシフト、主鏡のチルトに加えて、像面中心のシフトのずれも非点収差発生に寄与することがわかります。4枚目の図は、補正板の回転だけでディセンターが発生する例です。これは前枠に対してディセンターするだけですが、実際は接眼部からいろいろな機械部品のずれの積み重ねの上に、前枠がありちょうど接眼部中心の真上に補正板の中心が来るように組み立てられています。

ただ、シュミットカセグレンの筒は、通常の使用ではここまでのずれが発生することはなく、副鏡のチルト補正のみで長期間安定した性能が出るように作られていると思います。

↓過去のシミュレーション結果
https://www.facebook.com/permalink.php?story_fbid=pfbid0on3jh6VHAkU1Xk4CQMFfUR5RZpyY35PTk7o4PLfhugHsFJXbGDJ7h2pzQcjB5GTLl&id=100063667612917

住所

Sakai-shi, Osaka

ウェブサイト

アラート

Planetary imaging as a hobby of optical engineerがニュースとプロモを投稿した時に最初に知って当社にメールを送信する最初の人になりましょう。あなたのメールアドレスはその他の目的には使用されず、いつでもサブスクリプションを解除することができます。

共有する

カテゴリー