Learn R Programming

solaR (version 0.46)

C_local2Solar: Local time, mean solar time and UTC time zone.

Description

The function local2Solar converts the time zone of a POSIXct object to the mean solar time and set its time zone to UTC as a synonym of mean solar time. It includes two corrections: the difference of longitudes between the location and the time zone, and the daylight saving time.

The function CBIND combines several objects (zoo, data.frame or matrix) preserving the index of the first of them or asigning a new one with the index argument.

The function lonHH calculates the longitude (radians) of a time zone.

Usage

local2Solar(x, lon = NULL)
CBIND(..., index = NULL)
lonHH(tz)

Arguments

x

a POSIXct object

lon

A numeric value of the longitude (degrees) of the location. If lon = NULL (default), this value is assumed to be equal to the longitude of the time zone of x, so only the daylight saving time correction (if needed) is included.

...

A set of zoo objects.

index

A POSIXct object, the index of zoo object constructed with CBIND.

tz

A character, a time zone as documented in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.

Value

The function local2Solar produces a POSIXct object with its time zone set to UTC.

The function CBIND produces a zoo object.

The function lonHH gives a numeric value.

Details

Since the result of local2Solar is the mean solar time, the Equation of Time correction is not calculated with this function. The fSolI function includes this correction if desired.

If the index argument of CBIND is NULL (default) the first object of ... must be a zoo object.

References

  • Perpi<U+00F1><U+00E1>n, O, Energ<U+00ED>a Solar Fotovoltaica, 2015. (https://oscarperpinan.github.io/esf/)

  • Perpi<U+00F1><U+00E1>n, O. (2012), "solaR: Solar Radiation and Photovoltaic Systems with R", Journal of Statistical Software, 50(9), 1-32, 10.18637/jss.v050.i09

Examples

Run this code
# NOT RUN {
t.local <- as.POSIXct("2006-01-08 10:07:52", tz = 'Europe/Madrid')

##The local time zone and the location have the same longitude (15 degrees)
local2Solar(t.local)
##But Madrid is at lon = -3
local2Solar(t.local, lon = -3)

##Daylight saving time
t.local.dst <- as.POSIXct("2006-07-08 10:07:52", tz = 'Europe/Madrid')

local2Solar(t.local.dst)
local2Solar(t.local.dst, lon = -3)

# }
# NOT RUN {
##Extracted from an example of calcG0
##NREL-MIDC
##La Ola, Lanai
##Latitude: 20.76685o North
##Longitude: 156.92291o West
##Time Zone: -10.0

NRELurl <- 'http://goo.gl/fFEBN'

dat <- read.table(NRELurl, header = TRUE, sep = ',')
names(dat) <- c('date', 'hour', 'G0', 'B', 'D0', 'Ta')

##B is direct normal. We need direct horizontal.
dat$B0 <- dat$G0-dat$D0

##http://www.nrel.gov/midc/la_ola_lanai/instruments.html:
##The datalogger program runs using Greenwich Mean Time (GMT),
##data is converted to Hawaiin Standard Time (HST) after data collection
idxLocal <- with(dat, as.POSIXct(paste(date, hour), format = '%m/%d/%Y %H:%M', tz = 'HST'))
head(idxLocal)
idx <- local2Solar(idxLocal, lon = -156.9339)
head(idx)
# }

Run the code above in your browser using DataLab