Golden Hour Calculator
Cari jendela fotografi golden hour dan blue hour berdasarkan lokasi dan tanggal Anda.
Tentang alat ini
Golden hour adalah jendela waktu singkat setelah matahari terbit dan menjelang terbenam ketika matahari berada rendah dan menyirami segala sesuatu dengan cahaya hangat yang lembut, sementara blue hour adalah senja yang lebih dalam sebelum matahari terbit dan setelah terbenam, yang memenuhi langit dengan nuansa biru yang merata dan sejuk. Keduanya sangat dihargai oleh para fotografer karena menghasilkan gambar yang memikat dan penuh suasana, yang tidak bisa ditandingi oleh cahaya keras tengah hari. Kalkulator ini menggunakan rumus astronomi untuk menentukan dengan tepat kapan jendela waktu tersebut terbuka dan tertutup untuk tanggal dan lokasi mana pun.
Untuk menggunakannya, masukkan tanggal dan lokasi Anda, lalu alat ini menampilkan waktu mulai dan berakhirnya golden hour serta blue hour di sekitar matahari terbit dan terbenam. Alat ini dibuat untuk fotografer, videografer, dan pelancong yang ingin merencanakan pemotretan hingga ke menit dan tiba selagi cahayanya masih sempurna.
Perlu diingat bahwa waktu-waktu ini bergeser cukup terasa seiring musim dan lintang lokasi Anda, jadi selalu periksa angka untuk tanggal pasti Anda daripada mengandalkan perkiraan kasar. Semuanya dihitung secara lokal di peramban Anda, sehingga tidak ada data lokasi yang pernah keluar dari perangkat Anda.
Pertanyaan yang Sering Diajukan
Implementasi Kode
import math
from datetime import datetime, timedelta, timezone
def sun_times(lat: float, lon: float, date: datetime) -> dict:
"""Calculate sunrise, sunset and golden hour times."""
# Day of year
N = date.timetuple().tm_yday
# Mean longitude and anomaly
L = (280.460 + 0.9856474 * N) % 360
g = math.radians((357.528 + 0.9856003 * N) % 360)
# Ecliptic longitude
lam = math.radians(L + 1.915 * math.sin(g) + 0.020 * math.sin(2 * g))
# Declination
decl = math.asin(math.sin(math.radians(23.439)) * math.sin(lam))
# Hour angle for sunrise/sunset (sun altitude = -0.833°)
cos_ha = (math.sin(math.radians(-0.833)) - math.sin(math.radians(lat)) * math.sin(decl)) / (math.cos(math.radians(lat)) * math.cos(decl))
if abs(cos_ha) > 1:
return {"error": "Midnight sun or polar night"}
ha = math.degrees(math.acos(cos_ha))
# Equation of time correction (simplified)
B = math.radians(360 / 365 * (N - 81))
eot = 9.87 * math.sin(2 * B) - 7.53 * math.cos(B) - 1.5 * math.sin(B)
# Solar noon in minutes from midnight UTC
solar_noon = 720 - 4 * lon - eot
sunrise_min = solar_noon - 4 * ha
sunset_min = solar_noon + 4 * ha
# Golden hour bounds: sun at 6° above horizon
cos_gh = (math.sin(math.radians(6)) - math.sin(math.radians(lat)) * math.sin(decl)) / (math.cos(math.radians(lat)) * math.cos(decl))
gh_ha = math.degrees(math.acos(max(-1, min(1, cos_gh))))
golden_end_morn = solar_noon - 4 * gh_ha
golden_start_eve = solar_noon + 4 * gh_ha
def mins_to_str(m):
h, mn = divmod(int(m), 60)
return f"{h:02d}:{mn:02d}"
return {
"sunrise": mins_to_str(sunrise_min),
"golden_hour_morning_end": mins_to_str(golden_end_morn),
"solar_noon": mins_to_str(solar_noon),
"golden_hour_evening_start": mins_to_str(golden_start_eve),
"sunset": mins_to_str(sunset_min),
}
# New York City
result = sun_times(40.7128, -74.0060, datetime(2024, 6, 21))
for k, v in result.items():
print(f"{k}: {v}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.