oscarperpinan / solar

Solar Radiation and Photovoltaic Systems with R
http://oscarperpinan.github.io/solar/
GNU General Public License v3.0
35 stars 13 forks source link

NA's in Gef at sunrise and sunset #16

Closed dgpaniagua closed 4 years ago

dgpaniagua commented 4 years ago

Oscar, buenas tardes. En primer lugar, felicitaciones y gracias por solaR, es una gran herramienta. Soy Daniel Paniagua de Argentina, por lo que aclaro que escribiré en español para poder expresarme mejor, sabiendo que puedes entenderme. Si debo hacerlo en inglés por algún standard de Github por favor no dejes de avisarme.

Estoy teniendo dificultades para utilizar la función fInclin, ya que al utilizar G0 con datos cada una hora (intradaily), obtengo NA y NaN en Gef en los horarios cercanos al amanecer y al atardecer. Revisé los distintos temas abiertos (y cerrados) aquí y no conseguí resolverlo. Verfiqué principalemnte que G0 sea mayor a Bo0 en esos casos, además de otras cuestiones particulares. Consideré reemplazarlos por cero, pero veo que en algunos casos el valor de radiación de G0 en esos horarios no es despreciable.

Dejo el código abajo y un archivo para importar G0 ("G0.txt", lo paso como txt para poder adjuntar, se debe cambiar extensión a csv).

Muchas gracias! Saludos cordiales. Daniel Paniagua

library(solaR)
library(dplyr)

#Importar archivo csv de G0
G0 <- read.csv("G0.csv")
G0 <- select(G0, date, G0, Ta)
G0$date <- as.POSIXlt(G0$date)

#Crear zoo de G0
zoo_G0 <- zoo(data.frame(G0=G0$G0, Ta=G0$Ta), order.by = G0$date)

#Crear objeto Meteo
G0_meteo <- zoo2Meteo(zoo_G0, lat=-32.7)

#Crear objeto G0
G0_G0 <- calcG0(lat=-32.7, modeRad='bdI', dataRad=G0_meteo)

#Crear objeto Sol
sol <- calcSol(lat=-32.7, BTi=index(zoo_G0))

#Cálculo de ángulos
theta <- fTheta(sol=sol, beta=30, alfa = 180, modeTrk = "fixed")

#Cálculo de radiación en el plano inclinado (Gef)
Gef <- fInclin(compI=G0_G0, angGen=theta)

#Pasa Gef a data.frame
df.Gef <- as.data.frame(Gef)

G0.txt

oscarperpinan commented 4 years ago

Hola Daniel,

Cuando se usan datos intradiarios, hay que tener en cuenta el huso horario y la longitud del lugar, empleando la función local2solaR. Te sugiero que revises el ejemplo incluido en la página de ayuda de calcG0.

dgpaniagua commented 4 years ago

Oscar, buenas tardes. Perdón por la demora en la respuesta, recién ahora pude ponerme a ver este tema. Evidentemente la causa del problema es lo que indicas. En mi aplicación original (la que puse aquí es un ejemplo), estoy importando un archivo epw usando el package eplusr y estoy teniendo algunos problemas con el huso horario. Aún no pude resolverlo, pero entiendo que el problema es ese.

Muchas gracias por tu tiempo. Saludos cordiales.