astro {tripEstimation} | R Documentation |
Calculations for position of the sun and moon
Description
This set of functions provides simple position calculations for the sun and moon, taken from Pascal routines published in Montenbruck and Pfleger (1994, Dunlop).
These are completely independent from the (specifically optimized) solar elevation calculations available via [elevation and solar].
Usage
astro(lon, lat, astro.calc)
EQUHOR(DEC, TAU, PHI)
FRAC(x)
LMST(MJDay, LAMBDA)
lunar(time)
mini.sun(time)
MJD(date)
POLAR(X, Y, Z)
Arguments
lon |
vector of |
lat |
vector of |
astro.calc |
list object containing |
DEC |
declination |
TAU |
|
PHI |
|
x |
number |
MJDay |
modified julian day |
LAMBDA |
|
time |
vector of date-times in POSIXct format |
date |
vector of date-times in POSIXct format |
X |
x-coordinate |
Y |
y-coordinate |
Z |
z-coordinate |
Value
astro
returns a list object with the components of the moon or sun's
position,
r |
rho component |
theta |
theta component - elevation |
phi |
phi component - azimuth |
Warning
Some of this could be faster (particularly the use of LMST in "astro" is not precalculated)
Note
Thanks to Nick.Ellis@csiro.au for pointing out a mistake pre-0.0-27
Author(s)
Michael D. Sumner
References
@BOOK{, title = {Astronomy on the Personal Computer}, publisher = {Springer-Verlag, Berlin}, year = {1994}, author = {Oliver Montenbruck and Thomas Pfleger}, edition = {2 (translated from German by Storm Dunlop)}, }
See Also
See Also elevation
Examples
## the moon
tm <- Sys.time() + seq(by = 3600, length = 100)
moon <- lunar(tm)
rtp <- astro(147, -42, moon)
op <- par(mfrow = c(2,1))
plot(tm, rtp$theta, main = "lunar elevation, Hobart")
plot(tm, rtp$phi, main = "lunar azimuth, Hobart")
par(op)
## the sun
tm <- Sys.time() + seq(by = 3600, length = 100)
sun <- mini.sun(tm)
rtp <- astro(147, -42, sun)
op <- par(mfrow = c(2,1))
plot(tm, rtp$theta, main = "solar elevation, Hobart")
plot(tm, rtp$phi, main = "solar azimuth, Hobart")
par(op)
elev.gmt <- mkElevationSeg(1, tm)
plot(tm, rtp$theta, main = "solar elevation mini.sun versus NOAA")
lines(tm, elev.gmt(1, 147, -42))