# tinggihilal.py
from skyfield.api import load, wgs84
def hitung_tinggi_hilal():
# Memuat data efemeris JPL
eph = load('de421.bsp')
bumi = eph['earth']
bulan = eph['moon']
# Set parameter observasi (Contoh: Semarang)
# Latitude: 7°00'18" S, Longitude: 110°26'17" E
lokasi = bumi + wgs84.latlon(-7.0051, 110.4381, elevation_m=4)
ts = load.timescale()
waktu_sekarang = ts.now()
# Perhitungan Geosentrik Apparent (Altitude)
astrometric = lokasi.at(waktu_sekarang).observe(bulan)
apparent = astrometric.apparent()
alt, az, distance = apparent.altaz()
print("=== TINGGI HILAL (BULAN) ===")
print(f"Waktu UTC : {waktu_sekarang.utc_datetime().strftime('%Y-%m-%d %H:%M:%S')}")
print(f"Lokasi : Semarang (-7.0051°, 110.4381°)")
print(f"Altitude : {alt.degrees:.4f}°")
if __name__ == "__main__":
hitung_tinggi_hilal()