ที่มา: 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) จากนั้นหา:
- Geometric mean longitude ของดวงอาทิตย์ (L₀)
- Geometric mean anomaly (M) และ orbital eccentricity (e)
- Equation of center (C) → true longitude และ apparent longitude (ปรับ nutation คร่าวๆ)
- Obliquity of the ecliptic (ε) → ใช้หา declination: δ = asin( sin(ε)·sin(apparent longitude) )
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 นาที
ข้อจำกัดความแม่นยำ
- คลาดเคลื่อนประมาณ ±1-2 นาที เทียบกับตาราง NOAA/หอดูดาวจริง สำหรับละติจูดแบบไทย
- ไม่ได้จำลอง atmospheric refraction แบบละเอียด (ใช้ค่าคงที่มาตรฐาน 0.833°)
- ไม่ปรับตามความสูงจากระดับน้ำทะเล
- ตำแหน่งจาก GPS มือถือคลาดเคลื่อนได้เอง ~5-20 เมตร ซึ่งแทบไม่กระทบมุมเงา