วิธีคำนวณ

ที่มา: NOAA Solar Position Algorithm

ทุกการคำนวณในแอปนี้ (ตำแหน่งดวงอาทิตย์, sunrise/sunset, solar noon, มุมเงาบนหน้าปัด) เขียนขึ้นเองทั้งหมด ไม่มีการเรียก API ภายนอก โดยอิงสูตรจาก NOAA General Solar Position Calculations (NOAA Global Monitoring Laboratory) ซึ่งอิงจาก Jean Meeus, Astronomical Algorithms อีกที

1. ตำแหน่งดวงอาทิตย์ (declination + equation of time)

จากวันเวลา (UTC) แปลงเป็น Julian Day แล้วคำนวณ Julian Century (T) จากนั้นหา:

Equation of time (นาทีที่เวลานาฬิกากับเวลาแดดต่างกัน เพราะโลกโคจรเป็นวงรีและแกนเอียง):

Eq = 4·[ y·sin(2L₀) − 2e·sin(M) + 4ey·sin(M)cos(2L₀) − 0.5y²sin(4L₀) − 1.25e²sin(2M) ]  (เป็นองศา×4 = นาที)
โดย y = tan²(ε/2)

2. Elevation / Azimuth (มุมเงา ณ ตำแหน่งคุณ)

จาก declination (δ), latitude ของคุณ (φ) และ hour angle (H = เวลาแดดเทียบกับเที่ยงแดด × 15°/ชม.):

zenith = acos( sin(φ)sin(δ) + cos(φ)cos(δ)cos(H) )
elevation = 90° − zenith
azimuth = acos( (sin(δ) − sin(φ)cos(zenith)) / (cos(φ)sin(zenith)) )  (ปรับทิศตาม H)

เงาของโนมอนจะตกไปทางตรงข้ามกับ azimuth ของดวงอาทิตย์เสมอ (บวก 180°)

3. Sunrise / Sunset / Solar Noon

solar noon (นาทีหลัง UTC เที่ยงคืนของวันนั้น) = 720 − 4×longitude − Eq
hour angle ตอนขอบฟ้า (H₀) = acos( cos(90.833°)/(cos(φ)cos(δ)) − tan(φ)tan(δ) )
sunrise = solar noon − 4×H₀ (นาที)
sunset  = solar noon + 4×H₀ (นาที)

ค่า 90.833° คือมุมขอบฟ้ามาตรฐาน (90° + 0.833° ชดเชย refraction เฉลี่ยของบรรยากาศ + รัศมีปรากฏของดวงอาทิตย์) ไม่ได้จำลอง refraction แบบละเอียดตามความกดอากาศ/อุณหภูมิจริง

4. นาฬิกาแดดแนวนอน (Horizontal Sundial)

เส้นชั่วโมงบนหน้าปัดนาฬิกาแดดไม่ได้ห่างเท่ากันเหมือนนาฬิกาปกติ — ถูกบีบ/ยืดตาม latitude:

มุมเส้นชั่วโมง (จากเส้นเที่ยง) = atan( sin(latitude) × tan(hour angle) )
มุมของโนมอน (ตัวปักเงา) = latitude ของสถานที่นั้นเป๊ะๆ

แผ่นพิมพ์ที่แอปนี้ generate ให้จึงคำนวณเฉพาะพิกัดของคุณจริงๆ — เอาไปพิมพ์ ตัด พับ ปักดินสอ ใช้งานได้จริง

5. ทำไม "เวลาแดด" ถึงไม่ตรง 12:00 พอดี

สองสาเหตุรวมกัน: (1) Equation of time — โลกโคจรเป็นวงรี (ไม่ใช่วงกลม) และแกนโลกเอียง ทำให้ดวงอาทิตย์ปรากฏเร็ว/ช้ากว่าเวลาเฉลี่ยได้ถึง ±16 นาทีตลอดปี (2) ตำแหน่งลองจิจูด — เวลามาตรฐานไทย (UTC+7) อ้างอิงเส้นเมริเดียน 105°E ถ้าคุณอยู่ทางตะวันตกของเส้นนี้ (เช่นกรุงเทพที่ 100.5°E) เวลาแดดจะช้ากว่านาฬิกาประมาณ (105−ลองจิจูดคุณ)×4 นาที

ข้อจำกัดความแม่นยำ