Monday, 17 February 2014

coordinate - Need Simple equation for Rise, Transit, and Set time

I'm not sure it qualifies as "simple", but, using
http://idlastro.gsfc.nasa.gov/ftp/pro/astro/hadec2altaz.pro (and some
additional calculations/simplifications):



begin{array}{|c|c|c|c|}  hline      text{Event} & text{Time} & phi  & Z \  hline      text{Any} & text{t} & tan ^{-1}(cos (lambda ) sin (delta )-cos        (delta ) cos (alpha -t) sin (lambda ),cos (delta ) sin (alpha        -t)) & tan ^{-1}left(sqrt{(cos (lambda ) sin (delta )-cos (delta        ) cos (alpha -t) sin (lambda ))^2+cos ^2(delta ) sin ^2(alpha        -t)},cos (delta ) cos (lambda ) cos (alpha -t)+sin (delta ) sin        (lambda )right) \  hline      text{Rise} & alpha -cos ^{-1}(-tan (delta ) tan (lambda )) & tan        ^{-1}left(sec (lambda ) sin (delta ),cos (delta ) sqrt{1-tan        ^2(delta ) tan ^2(lambda )}right) & 0 \  hline      text{Transit} & alpha  &   begin{cases}                     delta >lambda  & 0 \                     delta =lambda  & text{Zenith} \                     delta <lambda  & pi                     end{cases}      & frac{pi }{2}-left| delta -lambda  right| \  hline      text{Set} & alpha +cos ^{-1}(-tan (delta ) tan (lambda )) & tan        ^{-1}left(sec (lambda ) sin (delta ),-cos (delta ) sqrt{1-tan        ^2(delta ) tan ^2(lambda )}right) & 0 \  hline      text{Lowest Point} & alpha +pi  &   begin{cases}                     delta >-lambda  & 0 \                     delta =-lambda  & text{Nadir} \                     delta <-lambda  & pi                     end{cases}      & left| delta +lambda  right|-frac{pi }{2} \  hline     end{array}begin{array}{|c|c|c|c|}  hline      text{Event} & text{Time} & phi  & Z \  hline      text{Any} & text{t} & tan ^{-1}(cos (lambda ) sin (delta )-cos        (delta ) cos (alpha -t) sin (lambda ),cos (delta ) sin (alpha        -t)) & tan ^{-1}left(sqrt{(cos (lambda ) sin (delta )-cos (delta        ) cos (alpha -t) sin (lambda ))^2+cos ^2(delta ) sin ^2(alpha        -t)},cos (delta ) cos (lambda ) cos (alpha -t)+sin (delta ) sin        (lambda )right) \  hline      text{Rise} & alpha -cos ^{-1}(-tan (delta ) tan (lambda )) & tan        ^{-1}left(sec (lambda ) sin (delta ),cos (delta ) sqrt{1-tan        ^2(delta ) tan ^2(lambda )}right) & 0 \  hline      text{Transit} & alpha  &   begin{cases}                     delta >lambda  & 0 \                     delta =lambda  & text{Zenith} \                     delta <lambda  & pi                     end{cases}      & frac{pi }{2}-left| delta -lambda  right| \  hline      text{Set} & alpha +cos ^{-1}(-tan (delta ) tan (lambda )) & tan        ^{-1}left(sec (lambda ) sin (delta ),-cos (delta ) sqrt{1-tan        ^2(delta ) tan ^2(lambda )}right) & 0 \  hline      text{Lowest Point} & alpha +pi  &   begin{cases}                     delta >-lambda  & 0 \                     delta =-lambda  & text{Nadir} \                     delta <-lambda  & pi                     end{cases}      & left| delta +lambda  right|-frac{pi }{2} \  hline     end{array}



where:



  • phi is the azimuth of the object


  • Z is the altitude of the object above the horizon


  • alpha is the right ascension of the object


  • delta is the declination of the object


  • lambda is the latitude of the observer


  • t is the current local sidereal time


Note the two-argument form of arctangent is required so that the
results are in the correct quadrant:
https://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Two-argument_variant_of_arctangent



Additional caveats:



  • If left|deltalambdaright|>fracpi2, the object is
    always below the horizon, and the equations for rising time and
    setting time will not work.


  • If left|delta+lambdaright|>fracpi2, the object is
    always above the horizon (circumpolar), and the equations for rising
    and setting time will also not work.


  • The measurements above are in radians. You can convert pito180circ for degrees.


  • Because we use the local sidereal time, the longitude doesn't
    appear in any of the formulas above. However, we do need it to find
    the local sidereal time, as below.


  • To find the local sideral time t in radians, we use
    http://aa.usno.navy.mil/faq/docs/GAST.php and make some substitions
    to get:


t=4.894961212735792+6.30038809898489d+psi



where psi is your longitude in radians, and d is the number of
days (including fractional days) since "2000-01-01 12:00:00 UTC". Traditionally, we use phi for longitude, but I'm already using it in the formulas above for azimuth.



If you combine the formula for local sidereal time and
azimuth/altitude and assume excessive precision, you get my answer to
http://astronomy.stackexchange.com/a/8415/21



Additional computations for these results at:
https://github.com/barrycarter/bcapps/blob/master/STACK/bc-rst.m



I was going to add some graphs to show how the altitude is NOT a sine wave and how the azimuth is NOT a straight line (although you might expect them to be), but they turned out not to be terribly instructive/helpful.



You might also be able to get simpler formulas if you set t to be the "hour angle" (which is alphat in the current setup).

No comments:

Post a Comment