Learn R Programming

solaR (version 0.23)

A2_calcG0: Irradiation and irradiance on the horizontal plane.

Description

This function obtains the global, diffuse and direct irradiation and irradiance on the horizontal plane from the values of daily and intradaily global irradiation on the horizontal plane. It makes use of the functions calcSol, fCompD, fCompI, fBTd and readBD (or equivalent).

Besides, if information about maximum and minimum temperatures values are available it obtains a series of temperature values with fTemp.

Usage

calcG0(lat, modeRad='prom', prom=list(), mapa=list(), bd=list(),
bdI=list(), sample='hour', keep.night=TRUE, sunGeometry='michalsky',
corr, f)

Arguments

lat
numeric, latitude (degrees) of the point of the Earth where calculations are needed. It is positive for locations above the Equator.
modeRad
A character string, describes the kind of source data of the global irradiation and ambient temperature.

It can be modeRad='prom' for monthly mean calculations. With this option, a set of 12 values inside prom must

prom
A list as defined by readG0dm. This list is only required when modeRad='prom'.
mapa
A list as defined by readMAPA. This list is only required when modeRad='mapa'.
bd
A list as defined by readBD, df2Meteo or zoo2Meteo, or a Meteo object. I
bdI
A list as defined by readBDi, dfI2Meteo or zoo2Meteo, or a Meteo objec
sample
character, containing one of ‘"sec"’, ‘"min"’, ‘"hour"’. This can optionally be preceded by a (positive or negative) integer and a space, or followed by ‘"s"’ (used by seq.POSIXt
keep.night
logical. When it is TRUE (default) the time series includes the night.
sunGeometry
character, method for the sun geometry calculations. See calcSol, fSolD and fSolI.
corr
A character, the correlation between the the fraction of diffuse irradiation and the clearness index to be used.

With this version several options are available, as described in corrFdKt. For

f
A function defininig a correlation between the fraction of diffuse irradiation and the clearness index. It is only neccessary when corr='user'

Value

  • A G0 object.

encoding

UTF-8

References

Perpiñán, O, Energía Solar Fotovoltaica, 2011. (http://procomun.wordpress.com/documentos/libroesf/)

See Also

calcSol, fCompD, fCompI, readG0dm, readBD, readBDi, readMAPA, corrFdKt.

Examples

Run this code
G0dm=c(2.766,3.491,4.494,5.912,6.989,7.742,7.919,7.027,5.369,3.562,2.814,2.179)*1000;
Ta=c(10, 14.1, 15.6, 17.2, 19.3, 21.2, 28.4, 29.9, 24.3, 18.2, 17.2,
  15.2)

g0<-calcG0(lat=37.2, modeRad='prom', prom=list(G0dm=G0dm, Ta=Ta))
print(g0)
xyplot(g0)

g0<-calcG0(lat=37.2,
        modeRad='mapa',
        mapa=list(prov=28,est=3,
        start='01/01/2009', end='31/12/2009'))
print(g0)
xyplot(g0)

##Now the G0I component of g0 is used as
##the bdI argument to calcG0 in order to
##test the intradaily correlations of fd-kt

BDi=as.zooI(g0)
BDi$Ta=25 ##Information about temperature must be contained in BDi

g02<-calcG0(lat=37.2,
            modeRad='bdI',
            bdI=list(lat=37.2, file=BDi),
            corr='none')

print(g02)

g03<-calcG0(lat=37.2,
            modeRad='bdI',
            bdI=list(lat=37.2, file=BDi),
            corr='BRL')
print(g03)

xyplot(fd~kt, data=g03, pch=19, alpha=0.3)

##NREL-MIDC
##La Ola, Lanai
##Latitude: 20.76685o North
##Longitude: 156.92291o West
##Elevation: 381 meters AMSL
##Time Zone: -10.0

file='http://www.nrel.gov/midc/apps/plot.pl?site=LANAI&start=20090722&edy=19&emo=11&eyr=2010&zenloc=19&year=2010&month=11&day=1&endyear=2010&endmonth=11&endday=19&time=1&inst=3&inst=4&inst=5&inst=10&type=data&first=3&math=0&second=-1&value=0.0&global=-1&direct=-1&diffuse=-1&user=0&axis=1'

dat <- read.table(file, 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'))
idx <- local2Solar(idxLocal, lon=-156.9339)

z <- zoo(dat[,c('G0', 'D0', 'B0', 'Ta')], idx)

lat=20.77

NRELMeteo <- zoo2Meteo(z, lat=lat)
xyplot(NRELMeteo)

g0 <- calcG0(lat=lat, modeRad='bdI', bdI=NRELMeteo, corr='none')
xyplot(g0)
xyplot(as.zooI(g0), superpose=TRUE)

g02 <- calcG0(lat=lat, modeRad='bdI', bdI=NRELMeteo, corr='BRL')
xyplot(g02)
xyplot(as.zooI(g02), superpose=TRUE)
xyplot(fd~kt, data=g02, pch=19, cex=0.5, alpha=0.5)

g03 <- calcG0(lat=lat, modeRad='bdI', bdI=NRELMeteo, corr='CLIMEDh')
xyplot(g03)
xyplot(as.zooI(g03), superpose=TRUE)
xyplot(fd~kt, data=g03, pch=19, cex=0.5, alpha=0.5)

Run the code above in your browser using DataLab