Finding Where Planets are Rising/Setting
Date: 03/12/2002 at 01:15:56 From: Robert Subject: How to find where (long/lat) planets are rising/setting Dear Dr. Math, I'm trying to come up with a formula to calculate where (in longitude and latitude) the different celestial bodies are on the horizon, either setting or rising. I want to be able to plot a line (with increments of 5 degrees or so) on an equidistant world map, showing where the rising and setting is taking place on earth. I have two possible approaches: Approach 1: Using the equitorial coordinates for the planets (right ascension/ declination), I need a formula to plot where on earth at a frozen moment these coordinates are on the horizon. Approach 2: I can calculate where on earth the planet is on the zenith (in a 90 degree angle to Earth's surface) by taking the meridian longitude of the planet and its declination (which corresponds to the earth latitude). This means that if I plot a circle (in longitude and latitude) 90 degrees away from that zenith point, I should come up with the planet's position on the Earth's horizon. I hope you can answer either or both of these problems. If you see a third solution, it would be welcome. Best regards, Robert
Date: 03/12/2002 at 09:00:55 From: Doctor Rick Subject: Re: How to find where (long/lat) planets are rising/setting Hi, Robert. Your second approach seems best to me. Let's establish a cartesian coordinate system such that the longitude where the planet is at the zenith is in the x-z plane, on the positive-x side. Then we consider the plane perpendicular to the line from the center of the earth to the planet. At points on the earth that are in this plane, the planet is on the horizon. The projection of this plane into the x-z plane is a line inclined from the vertical by an angle equal to the declination of the planet. Thus, in this plane, z/x = -1/tan(dec) The cartesian coordinates of a point on the earth's surface are related to its latitude and longitude as follows: x = R*cos(lat)*cos(lon-plon) y = R*cos(lat)*sin(long-plon) z = R*sin(lat) where R is the earth's radius, lat and lon are the latitude and longitude of the point, and plon is the longitude of the planet. Plugging these formulas into the equation of the plane, we get sin(lat)/(cos(lat)*cos(lon-plon)) = -1/tan(dec) tan(lat) = -cos(lon-plon)/tan(dec) lat = arctan(-cos(lon-plon)/tan(dec)) Using this formula, you can take any longitude and find the latitude of the point at this longitude where the planet is on the horizon. This should be just what you want; I used the formula to plot the curve using a spreadsheet, and it looks reasonable. Practically speaking, there may be other issues depending on what you want to do with this information. Observationally, the planet may still appear above the horizon at these locations, because of refraction by the atmosphere: light from celestial objects that are below the horizon is bent over the horizon so that they appear to be above the horizon. I am not competent to calculate this effect. - Doctor Rick, The Math Forum http://mathforum.org/dr.math/
Date: 03/13/2002 at 23:50:04 From: Robert Subject: How to find where (long/lat) planets are rising/setting Dear Doctor Rick, Thank you so much for your help. After putting your formula into code I got the desired results. I am very grateful ... Best regards, Robert
Search the Dr. Math Library:
Ask Dr. MathTM
© 1994- The Math Forum at NCTM. All rights reserved.