|
New! Enter your latitude and longitude.
Today's sunrise/sunset calculation for 39.040759 °N, 77.04876 °W.Note: I am not using the appropriate number of significant figures to calculate sunrise, sunset, and solar noon. While it may appear that my calculations are accurate to one second, they actually have a precision of closer to 3 minutes (mostly due to approximation). Also, this calculation does not take into account the effect of air temperature, altitude, etc. Together, these may affect the time by 5 minutes or more. Find today's Julian date (days since Jan 1, 2000 + 2451545): Julian date: 2455954Now, calculate Jtransit at longitude 77.04876, start with n:
n* = (Jdate - 2451545 - 0.0009) - (lw/360)
n = round(n*) n* = (2455954 - 2451545 - 0.0009) - (77.04876/360) = 4408.7850756667 n = round(4408.7850756667) = 4409 Now J*:
J* = 2451545 + 0.0009 + (lw/360) + n
J* = 2451545 + 0.0009 + (77.04876/360) + 4409 = 2455954.2149243 Using J*, calculate M (mean anomaly) and then use that to calculate C and λ:
M = [357.5291 + 0.98560028 * (J* - 2451545)] mod 360
M = [357.5291 + 0.98560028 * (2455954.2149243 - 2451545)] mod 360 = 4703.2525640029 mod 360 = 23.252564002933 We need to calculate the equation of center, C:
C = (1.9148 * sin(M)) + (0.0200 * sin(2 * M)) + (0.0003 * sin(3 * M))
C = 1.9148 * sin(23.252564002933) + 0.0200 * sin(2 * 23.252564002933) + 0.0003 * sin(3 * 23.252564002933) = 0.77072445556473 We need λ which is the ecliptical longitude of the sun:
λ = (M + 102.9372 + C + 180) mod 360
λ = (23.252564002933 + 102.9372 + 0.77072445556473 + 180) mod 360 = 306.9604884585 mod 360 = 306.9604884585 Finally, calculate Jtransit:
Jtransit = J* + (0.0053 * sin(M)) - (0.0069 * sin(2 * λ))
Jtransit = 2455954.2149243 + (0.0053 * sin(23.252564002933)) - (0.0069 * sin(2 * 306.9604884585)) = 2455954.2236468 Now, to get an even more accurate number, recursively recalculate M using Jtransit until it stops changing. Notice how close the approximation was.
I1: M = 23.261160838902, C = 0.77099258996865, λ = 306.96935342887, Jtransit = 2455954.2236481
I2: M = 23.261162141877, C = 0.77099263060694, λ = 306.96935477248, Jtransit = 2455954.2236481 I3: M = 23.261162141877, C = 0.77099263060694, λ = 306.96935477248, Jtransit = 2455954.2236481 Ok, translate this into something we understand. i.e. When is Solar Noon?
Jtransit =
2455954.2236481 = 01/27/2012 at 12:22:03 -0500
Alrighty, now calculate how long the sun is in the sky at latitude 39.040759: Now we need to calculate δ which is the declination of the sun:
δ = arcsin( sin(λ) * sin(23.45) )
δ = arcsin(sin(306.96935477248) * sin(23.45)) = -18.538629603456 Now we can go about calculating H (Hour angle):
H = arccos( [sin(-0.83) - sin(ln) * sin(δ)] / [cos(ln) * cos(δ)] )
H = arccos((sin(-0.83) - sin(39.040759) * sin(-18.538629603456))/(cos(39.040759) * cos(-18.538629603456))) = 75.387453786725 Just as above, calculate J*, but this time using hour-angle:
J** = 2451545 + 0.0009 + ((H + lw)/360) + n
J** = 2451545 + 0.0009 + ((75.387453786725 + 77.04876)/360) + 4409 = 2455954.4243339 We can use M from above because it really doesn't change that much over the course of a day, calculate Jset in the same way:
Jset = J** + (0.0053 * sin(M)) - (0.0069 * sin(2 * λ))
Jset = 2455954.4243339 + (0.0053 * sin(23.261162141877)) - (0.0069 * sin(2 * 306.96935477248)) = 2455954.4330577 Now I'm going to cheat and calculate Jrise:
Jrise = Jtransit - (Jset - Jtransit)
Jrise = 2455954.2236481 - (2455954.4330577 - 2455954.2236481) = 2455954.0142385 Using the same idea, figure out when sunrise and sunset are:
Jrise =
2455954.0142385 = 01/27/2012 at 07:20:30 -0500
Jset = 2455954.4330577 = 01/27/2012 at 17:23:36 -0500 A couple anomalies occur. At high latitudes, you will sometimes get H = 0. This means that either the sun does not rise (in the winter) or the sun does not set (in the summer) on that day. |