Learn R Programming

solaR (version 0.24)

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', dataRad, prom, mapa, bd,
bdI, 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 dataRad mus

dataRad
  • IfmodeRad='prom', a list as defined byreadG0dm
If modeRad='siar', a list as defined by readSIAR.

Value

  • A G0 object.

encoding

UTF-8

item

  • prom, mapa, bd, bdI
  • sample
  • keep.night
  • sunGeometry
  • corr
  • f

code

corr='user'

References

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

See Also

calcSol, fCompD, fCompI, readG0dm, readBD, readBDi, readSIAR, 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', dataRad=list(G0dm=G0dm, Ta=Ta))
print(g0)
xyplot(g0)

g0<-calcG0(lat=37.2,
        modeRad='siar',
        dataRad=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',
            dataRad=list(lat=37.2, file=BDi),
            corr='none')

print(g02)

g03<-calcG0(lat=37.2,
            modeRad='bdI',
            dataRad=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', dataRad=NRELMeteo, corr='none')
xyplot(g0)
xyplot(as.zooI(g0), superpose=TRUE)

g02 <- calcG0(lat=lat, modeRad='bdI', dataRad=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', dataRad=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