Sonnenposition am Himmel in Python mit skyfield berechnen

English Deutsch

Der folgende Code berechnet die Position der Sonne (in Azimut-/Höhenkoordinaten) am Himmel mithilfe der skyfield-Bibliothek. Beachten Sie, dass Sie de421.bsp herunterladen müssen.

sun_position.py
from skyfield import api
from skyfield import almanac
from datetime import datetime
from datetime import timedelta
import dateutil.parser
from calendar import monthrange

ts = api.load.timescale()
ephem = api.load_file('de421.bsp')

sun = ephem["Sun"]
earth = ephem["Earth"]

# Sonnenauf- und -untergang für einen beliebigen Ort in der Nähe von München berechnen
location = api.Topos('48.324777 N', '11.405610 E', elevation_m=519)
# Sonnenposition aus Sicht des Beobachters an <location> berechnen
sun_pos = (earth + location).at(ts.now()).observe(sun).apparent()
# Scheinbare Höhe und Azimut für die Sonnenposition berechnen
altitude, azimuth, distance = sun_pos.altaz()

# Ergebnisse ausgeben (Beispiel)
print(f"Altitude: {altitude.degrees:.4f} °")
print(f"Azimuth: {azimuth.degrees:.4f} °")

Beispielausgabe

sun_position_example_output.txt
Altitude: ... °
Azimuth: 48.4141 °

Faktoren, die die Genauigkeit der Berechnung beeinflussen

Diese Art der Positionsbestimmung berücksichtigt:

Nicht berücksichtigt werden jedoch:


Check out similar posts by category: Physics, Python, Skyfield