Hallo Frank,
Wie schon erwähnt, ist Astronomy Tools sehr gut dafür geeignet.
Du kannst dir zum aber auch zum Beispiel von ChatGPT einen Pythoncode schreiben lassen, der das kann.
Hier mal ein Beispiel:
Das ist das Programm dazu. Angeben musst du die Daten im Bild.
Viele Grüße
Ulli
import matplotlib.pyplot as plt
import numpy as np
def berechne_tfov(brennweite_teleskop, brennweite_okular, scheinbares_gesichtsfeld=50):
vergrößerung = brennweite_teleskop / brennweite_okular
tfov = scheinbares_gesichtsfeld / vergrößerung
return tfov # in Grad
def zeichne_gesichtsfeld(tfov, objekt='Mond'):
# Objektgrößen in Bogenminuten
objekte = {
'Mond': 31, # ca. 31'
'Sonne': 32,
'Jupiter': 1.5,
'Saturn': 0.9,
'Mars': 0.6,
'Venus': 1,
'Merkur': 0.3
}
radius = tfov / 2 # in Grad
fig, ax = plt.subplots(figsize=(6, 6))
# Kreis für Gesichtsfeld
gesichtsfeld_kreis = plt.Circle((0, 0), radius, color='skyblue', fill=False, linewidth=2, label="Gesichtsfeld")
ax.add_patch(gesichtsfeld_kreis)
if objekt in objekte:
objekt_radius = (objekte[objekt] / 60) / 2 # von Bogenminuten in Grad
objekt_kreis = plt.Circle((0, 0), objekt_radius, color='orange', label=objekt)
ax.add_patch(objekt_kreis)
ax.text(0, 0, objekt, color='black', fontsize=12, ha='center', va='center')
ax.set_xlim(-radius, radius)
ax.set_ylim(-radius, radius)
ax.set_aspect('equal')
ax.set_title(f"Gesichtsfeld ({tfov:.2f}°) mit {objekt}")
ax.set_xlabel("Grad")
ax.set_ylabel("Grad")
ax.grid(True)
plt.legend()
plt.show()
# ==== Eingabedaten ======
durchmesser_optik = 200 # mm
brennweite_teleskop = 1000 # mm
brennweite_okular = 25 # mm
objekt = 'Mond' # Mond, Sonne, Jupiter, usw.
# ==== Berechnung und Darstellung =====
tfov = berechne_tfov(brennweite_teleskop, brennweite_okular, scheinbares_gesichtsfeld=50)
zeichne_gesichtsfeld(tfov, objekt)