Az alábbi program lekérdezi a Ceres (vagy bármely más aszteroida) oszkuláló pályaelemeit egy megadott dátumra, majd kiíratja a főbb Kepler-féle elemeket és a pillanatnyi térbeli koordinátákat (vektorokat)
--------------
from astroquery.jplhorizons import Horizons
from astropy.time import Time
import numpy as np
# 1. Az aszteroida azonosítója és a lekérdezni kívánt dátum
# Használhatsz név szerint is azonosítót, pl. 'Ceres', 'Vesta', vagy sorszámot '433' (Eros)
target_asteroid = 'Ceres'
# Add meg a megfigyelés dátumát (UTC időzónában)
observe_date = '2026-06-25 12:00:00'
# A megfigyelés ideje Astropy Time objektummá alakítva
time_jd = Time(observe_date, format='iso', scale='utc')
print(f"Lekérdezés folyamatban: {target_asteroid} ...")
# 2. Kapcsolódás a NASA JPL HORIZONS rendszeréhez
# A 'location' = '@sun' azt jelenti, hogy a heliocentrikus (Nap körüli) pályát számítjuk
obj = Horizons(id=target_asteroid, location='@sun', epochs=time_jd.jd)
# 3. Pályaelemek lekérdezése
# Az 'elements' metódus lekéri a Kepler-elemeket (pályahajlás, excentricitás, stb.)
elements = obj.elements()
print("\n--- Oszkuláló Pályaelemek (Kepler-elemek) ---")
print(f"Fél nagytengely (a): {elements['a'][0]:.4f} AU")
print(f"Excentricitás (e): {elements['e'][0]:.5f}")
print(f"Pályahajlás (i): {elements['incl'][0]:.4f} fok")
print(f"Perihélium argumentuma (w): {elements['w'][0]:.4f} fok")
print(f"Felszálló csomópont hossza (Omega): {elements['Omega'][0]:.4f} fok")
print(f"Közép-anomália (M): {elements['M'][0]:.4f} fok")
# 4. Térbeli helyzet (Állapotvektorok) lekérdezése
# A 'vectors' metódus megadja a x, y, z pozíciót (AU) és sebességet (AU/nap)
vectors = obj.vectors()
pos_x = vectors['x'][0]
pos_y = vectors['y'][0]
pos_z = vectors['z'][0]
print("\n--- Térbeli koordináták (Heliocentrikus ekliptika, ICRS) ---")
print(f"Pozíció X: {pos_x:.6f} AU")
print(f"Pozíció Y: {pos_y:.6f} AU")
print(f"Pozíció Z: {pos_z:.6f} AU")
# Távolság kiszámítása Pitagorasz-tétellel a naptól ($r = \sqrt{x^2 + y^2 + z^2}$)
distance_au = np.sqrt(pos_x**2 + pos_y**2 + pos_z**2)
distance_km = distance_au * 149597870.7 # 1 AU ~ 149 597 870.7 km
print(f"\nTávolság a Naptól: {distance_au:.4f} AU ({distance_km:,.0f} km)")
-----------------
Perihélium (napközel): 2.558 AU
Afélium (naptávol): 2.977 AU
Pályaperiódus: 4.60 year
-----------
Nincsenek megjegyzések:
Megjegyzés küldése