Learn R Programming

oce (version 1.8-3)

julianDay: Convert a Time to a Julian Day

Description

Convert a POSIXt time (given as either the t argument or as the year, month, and other arguments) to a Julian day, using the method provided in Chapter 3 of Meeus (1982). It should be noted that Meeus and other astronomical treatments use fractional days, whereas the present code follows the R convention of specifying days in whole numbers, with hours, minutes, and seconds also provided as necessary. Conversion is simple, as illustrated in the example for 1977 April 26.4, for which Meeus calculates julian day 2443259.9. Note that the R documentation for julian() suggests another formula, but the point of the present function is to match the other Meeus formulae, so that suggestion is ignored here.

Usage

julianDay(
  t,
  year = NA,
  month = NA,
  day = NA,
  hour = NA,
  min = NA,
  sec = NA,
  tz = "UTC"
)

Value

A Julian-Day number, in astronomical convention as explained in Meeus.

Arguments

t

a time, in POSIXt format, e.g. as created by as.POSIXct(), as.POSIXlt(), or numberAsPOSIXct(), or a character string that can be converted to a time using as.POSIXct(). If t is provided, the other arguments are ignored.

year

year, to be provided along with month, etc., if t is not provided.

month

numerical value for the month, with January being 1. (This is required if t is not provided.)

day

numerical value for day in month, starting at 1. (This is required if t is not provided.)

hour

numerical value for hour of day, in range 0 to 24. (This is required if t is not provided.)

min

numerical value of the minute of the hour. (This is required if t is not provided.)

sec

numerical value for the second of the minute. (This is required if t is not provided.)

tz

timezone

Author

Dan Kelley

References

  • Meeus, Jean. Astronomical Formulas for Calculators. Second Edition. Richmond, Virginia, USA: Willmann-Bell, 1982.

See Also

Other things related to astronomy: angle2hms(), eclipticalToEquatorial(), equatorialToLocalHorizontal(), julianCenturyAnomaly(), moonAngle(), siderealTime(), sunAngle(), sunDeclinationRightAscension()

Other things related to time: ctimeToSeconds(), julianCenturyAnomaly(), numberAsHMS(), numberAsPOSIXct(), secondsToCtime(), unabbreviateYear()

Examples

Run this code
library(oce)
# example from Meeus
t <- ISOdatetime(1977, 4, 26, hour = 0, min = 0, sec = 0, tz = "UTC") + 0.4 * 86400
stopifnot(all.equal(julianDay(t), 2443259.9))

Run the code above in your browser using DataLab