Class CSolar

java.lang.Object
  |
  +--CSolar

public class CSolar
extends java.lang.Object

Rutinas de estimación de radiación solar. El código de esta clase ha sido adaptado por Agustín Delgado dentro del proyecto Fotorred.


Inner Class Summary
 class CSolar.CGeo
          Localización geográfica del emplazamiento a simular.
 class CSolar.CSolarParam
          Parámetros para la simulación de radiación solar.
 
Field Summary
 double alt
           
(package private)  double bet
           
static double CAU
           
static double CDH
           
static double CDR
           
static double CDY
           
static double CHD
           
static double CHR
           
static double CPI
           
static double CRD
           
static double CRH
           
static double CSC
           
(package private)  double gam
           
(package private)  CSolar.CGeo geopos
           
(package private)  int IHB
           
(package private)  int IHD
           
(package private)  int IHG
           
(package private)  double Kt
           
 double lat
           
 double lon
           
 double mer
           
(package private)  java.lang.String name
           
(package private)  double rho
           
(package private)  CSolar.CSolarParam solarparam
           
 double sum
           
 double win
           
 
Constructor Summary
CSolar()
           
 
Method Summary
(package private)  double AngToHour(double ang)
          Convierte valores ang (rad) en horas LAT absolutas Devuelve el valor en horas.
(package private)  double AngToNoon(double w)
          Convierte valores w (rad) en hora LAT con respecto a mediod¡a Devuelve el valor en horas.
(package private)  double CosIncidAng(double b, double g, double w, double d, double l)
          It calculates the value of the Math.cos(incidence angle) for a surface at a SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for an hour angle 'w' (omega,rad), a local latitude 'l' (phi,rad) and for the declination 'd' (delta,rad).
(package private)  double cosSolZenith(double w, double d, double l)
          It calculates the value of the Math.cos(SolarZenith)=Math.sin(SolarAlt) from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad).
(package private)  double DayAngle(int j)
          It calculates the day angle from the year day number.
 int DayNumber(int day, int mon)
          Calculates the year day number from the ordinary month day and month numbers.
(package private)  double DeclinCoop(int j)
          Cooper's formula for declination.
(package private)  double DeclinPerr(int j)
          Perrin de Brichambaut's formula for declination.
 double DeclinSpen(int j)
          Spencer's formula for declination.
(package private)  double EccenCorrDuff(int j)
          Duffie & Beckman's formula for Eccentricity Correction Factor.
(package private)  double EccenCorrSpen(int j)
          Spencer's formula for Eccentricity Correction Factor.
(package private)  double ExtDayRad(double b, double g, double l, int j, int mode)
           
(package private)  double ExtDayRadCor(double b, double g, double l, int j)
          Calculates the extraterrestrial daily irradiation over a surface oriented at an SolarAzimuth 'g'(gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'jday' of the year.
(package private)  double ExtDayRadStd(double b, double g, double l, int j)
          Calculates the extraterrestrial daily irradiation over a surface oriented at an SolarAzimuth 'g'(gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'jday' of the year.
(package private)  double ExtHourRad(double b, double g, double wi, double l, int j, int mode)
          Calculates the extraterrestrial hourly irradiation of a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'j' of the year.
 double ExtHourRadCor(double b, double g, double wi, double l, int j)
          Corrected version of ExtHourRad function.
(package private)  double ExtHourRadStd(double b, double g, double wi, double l, int j)
          Calculates the extraterrestrial hourly irradiation of a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'j' of the year.
(package private)  double ExtIrrad(double b, double g, double w, double l, int j)
          It calculates the instantaneous extraterrestrial irradiance of a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for an hour angle 'w' (omega,rad), a latitude 'l' (phi,rad) and for the day number 'j' of the year.
(package private)  double ExtMADayRad(int m, double b, double g, double l, int mode)
          Calculates the extraterrestrial monthly average daily (emad) radiation for a particular hour 'w' (omega,rad) over a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the month number 'm' of the year.
(package private)  double ExtMAHourRad(int m, double b, double g, double l, double wi, int mode)
          Calculates the extraterrestrial monthly average hourly (mah) radiation for a particular hour 'w' (omega,rad) over a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the month number 'm' of the year.
(package private)  double HDayLength(double d, double l)
          It calculates the day length for horizontal surface, from the declination 'd' (delta,rad) and the local latitude 'l' (phi,rad).
(package private)  void HorHDC_Boes(double w, double l, int j, double[] radhor, int mode)
          Calculates the diffuse and beam radiation on a horizontal surface using the Boes correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation values 'Ihg'.
(package private)  void HorHDC_Erbs(double w, double l, int j, double[] radhor, int mode)
          Calculates the diffuse and beam radiation on a horizontal surface using the Erbs correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation values 'Ihg'.
(package private)  void HorHDC_Madrid1(double w, double l, int j, double[] radhor, int mode)
          Calculates the diffuse and beam radiation on a horizontal surface using the first Macagnan correlation for Madrid, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'.
(package private)  void HorHDC_Madrid2(double w, double l, int j, double[] radhor, int mode)
          Calculates the diffuse and beam radiation on a horizontal surface using the second Macagnan correlation for Madrid, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'.
(package private)  void HorHDC_Orgill(double w, double l, int j, double[] radhor, int mode)
          Calculates the diffuse and beam radiation on a horizontal surface using the Orgill & Hollands correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation values 'Ihg'.
(package private)  void HorHDC_Reindl2(double w, double l, int j, double[] radhor, int mode)
          Calculates the diffuse and beam radiation on a horizontal surface using the first reduced Reindl correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'.
(package private)  void HorHDC_Reindl3(double w, double l, int j, double[] radhor, int mode)
          Calculates the diffuse and beam radiation on a horizontal surface using the second reduced Reindl correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'.
 void HorHDC(double w, double l, int j, double[] radhor, int mode, int corr)
          HORIZONTAL HOURLY DIFFUSE RADIATION CORRELATIONS
(package private)  double HorSunrise(double d, double l)
          It calculates the sunrise hour angle for horizontal surface, from the declination 'd' (delta,rad) and the local latitude 'l' (phi,rad).
(package private)  double HorSunset(double d, double l)
          It calculates the sunset hour angle for horizontal surface, from the declination 'd' (delta,rad) and the local latitude 'l' (phi,rad).
 double HourAngle(double hor)
          Calcula el angulo horario a partir de la hora y del angulo diario Devuelve el valor en radianes.
(package private)  double IncidAng(double b, double g, double w, double d, double l)
          It calculates the Incidence Angle from the 'CosIncidAng' function.
(package private)  boolean InRanBt(double x, double a, double b)
           
(package private)  boolean InRange(double x, double a, double b)
           
(package private)  boolean InRanTp(double x, double a, double b)
           
(package private)  boolean InRanWt(double x, double a, double b)
           
(package private)  double LatTime(int jday, double LST, CSolar.CGeo gd)
          It calculates the Local Aparent Time 'LAT' from the Local Standard Time 'LST'.
(package private)  double LstTime(int jday, double LAT, CSolar.CGeo gd)
          It calculates the Local Standard Time 'LST'from the Local Aparent Time 'LAT'.
(package private)  double OffTime(int jday, double LAT, CSolar.CGeo gd)
          It calculates the Official Hour from a given LAT hour
(package private)  java.lang.String PstTime(double h, java.lang.String hh)
          Returns a string with the hour in standard format
(package private)  double RbDayRad(double b, double g, double l, int j, int mode)
          Calculates the ratio of the daily irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere.
(package private)  double RbHourRad(double b, double g, double wi, double l, int j, int mode)
          Calculates the ratio of the hourly irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere.
(package private)  double RbIrrad(double b, double g, double w, double l, int j)
          Calculates the ratio of the irradiance on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere.
(package private)  double RbMADayRad(double b, double g, double l, int m, int mode)
          Calculates the ratio of the monthly average daily irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere.
(package private)  double RbMAHourRad(double b, double g, double wi, double l, int m, int mode)
          Calculates the ratio of the monthly average hourly irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere.
 double readLat()
          Devuelve la latitud del emplazamiento elegido.
 void SetParams(CSolar.CGeo geo, CSolar.CSolarParam param)
          Establece los parámetros de estimación de radiación solar y los detalles del emplazamiento elegido.
(package private)  double SinSolAlt(double w, double d, double l)
          It calculates the value of the Math.sin(SolarAlt)=Math.cos(SolarZenith) from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad).
 double SolarAltitude(double w, double d, double l)
          It calculates the value of the Solar Altitude from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad).
 double SolarAzimuth(double w, double d, double l)
          It calculates the value of the Solar Azimuth angle from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad).
 double SolarZenith(double w, double d, double l)
          It calculates the value of the solar zenith angle from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad).
(package private)  double SolTime(int jday, double hor, CSolar.CGeo gd)
          It calculates the LAT (Solar Time) from the Official Hour
(package private)  double TilBeamDay(double b, double g, double l, int j, double Ihb, int mode)
           
 double TilBeamHour(double b, double g, double wi, double l, int j, double Ihb, int mode)
           
(package private)  double TilBeamIrrad(double b, double g, double w, double l, int j, double Ihb)
          TILTED SURFACE BEAM RADIATION
(package private)  double TilBeamMADay(double b, double g, double l, int m, double Ihb, int mode)
           
(package private)  double TilBeamMAHour(double b, double g, double wi, double l, int m, double Ihb, int mode)
           
(package private)  double TilDayLength(double b, double g, double d, double l)
          Calcula la duracion del "dia" para plano inclinado Devuelve el valor en radianes.
 double TilGroundRad(double b, double Ihg, double rho)
          TILTED SURFACE GROUND RADIATION
 double TilHDC(double b, double g, double wi, double l, int j, double Ihd, double Ihg, int mode, int corr)
          TILTED SURFACE HOURLY DIFFUSE RADIATION
(package private)  double TilHDifHay(double b, double g, double wi, double l, int j, double Ihd, double Ihg, int mode)
          Hourly Diffuse Radiation for Tilted Surface.
 double TilHDifIsotrop(double b, double Ihd)
          Hourly Diffuse Radiation for Tilted Surface.
(package private)  double TilHDifKlucher(double b, double g, double wi, double l, int j, double Ihd, double Ihg)
          Hourly Diffuse Radiation for Tilted Surface.
 double TilHDifPerez1Pnt(double b, double g, double wi, double l, int j, double Ihd, double Ihg, int mode)
          Hourly Diffuse Radiation for Tilted Surface.
(package private)  double TilHDifPerez2Pnt(double b, double g, double wi, double l, int j, double Ihd, double Ihg, int mode)
          Hourly Diffuse Radiation for Tilted Surface.
(package private)  double TilHDifReindl(double b, double g, double wi, double l, int j, double Ihd, double Ihg, int mode)
          Hourly Diffuse Radiation for Tilted Surface.
(package private)  double TilHDifTemps(double b, double g, double wi, double l, int j, double Ihd)
          Hourly Diffuse Radiation for Tilted Surface.
(package private)  double TilSunrise(double b, double g, double d, double l)
          Calcula el angulo en el que el sol empieza a incidir en una superficie con angulos 'b' (beta,rad) sobre la horizontal y 'g' (gamma,rad) desde el sur, a partir de la declinacion 'd' (delta,rad) y de la latitud 'l' (phi,rad).
(package private)  double TilSunset(double b, double g, double d, double l)
          Calcula el angulo en el que el sol terMath.mina de incidir en una superficie con angulos 'b' (beta,rad) sobre la horizontal y 'g' (gamma,rad) desde el sur, a partir de la declinacion 'd' (delta,rad) y de la latitud 'l' (phi,rad).
(package private)  double TimeEquat(int j)
          Spencer's formula for Time Equation.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

CPI

public static final double CPI

CDY

public static final double CDY

CSC

public static final double CSC

CAU

public static final double CAU

CHD

public static final double CHD

CDH

public static final double CDH

CRH

public static final double CRH

CHR

public static final double CHR

CDR

public static final double CDR

CRD

public static final double CRD

IHG

final int IHG

IHB

final int IHB

IHD

final int IHD

Kt

double Kt

bet

double bet

gam

double gam

rho

double rho

name

java.lang.String name

lat

public double lat

lon

public double lon

mer

public double mer

alt

public double alt

sum

public double sum

win

public double win

geopos

CSolar.CGeo geopos

solarparam

CSolar.CSolarParam solarparam
Constructor Detail

CSolar

public CSolar()
Method Detail

SetParams

public void SetParams(CSolar.CGeo geo,
                      CSolar.CSolarParam param)
Establece los parámetros de estimación de radiación solar y los detalles del emplazamiento elegido.

readLat

public double readLat()
Devuelve la latitud del emplazamiento elegido.

DayNumber

public int DayNumber(int day,
                     int mon)
Calculates the year day number from the ordinary month day and month numbers.

DeclinSpen

public double DeclinSpen(int j)
Spencer's formula for declination. It calculates the declination from the day angle 'angd' (rad).
Returns:
The declination in radians.

DeclinCoop

double DeclinCoop(int j)
Cooper's formula for declination. It calculates the declination from the day angle 'angd' (rad). It returns the value in radians.

DeclinPerr

double DeclinPerr(int j)
Perrin de Brichambaut's formula for declination. It calculates the declination from the day angle 'angd' (rad). It returns the value in radians.

DayAngle

double DayAngle(int j)
It calculates the day angle from the year day number. It returns the value in radians.

TimeEquat

double TimeEquat(int j)
Spencer's formula for Time Equation. It calculates the Time Equation from the day angle 'ang' (rad). It returns the value in hours.

EccenCorrSpen

double EccenCorrSpen(int j)
Spencer's formula for Eccentricity Correction Factor. It returns the value in radians.

EccenCorrDuff

double EccenCorrDuff(int j)
Duffie & Beckman's formula for Eccentricity Correction Factor. It returns the value in radians.

SolarZenith

public double SolarZenith(double w,
                          double d,
                          double l)
It calculates the value of the solar zenith angle from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad). It returns the value in radians.

cosSolZenith

double cosSolZenith(double w,
                    double d,
                    double l)
It calculates the value of the Math.cos(SolarZenith)=Math.sin(SolarAlt) from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad). It returns the value in radians.

SolarAltitude

public double SolarAltitude(double w,
                            double d,
                            double l)
It calculates the value of the Solar Altitude from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad). It returns the value in radians.

SinSolAlt

double SinSolAlt(double w,
                 double d,
                 double l)
It calculates the value of the Math.sin(SolarAlt)=Math.cos(SolarZenith) from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad). It returns the value in radians.

SolarAzimuth

public double SolarAzimuth(double w,
                           double d,
                           double l)
It calculates the value of the Solar Azimuth angle from the hour angle 'w' (rad), the declination 'd' (rad) and the local latitude 'l' (rad). It returns the value in radians.

CosIncidAng

double CosIncidAng(double b,
                   double g,
                   double w,
                   double d,
                   double l)
It calculates the value of the Math.cos(incidence angle) for a surface at a SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for an hour angle 'w' (omega,rad), a local latitude 'l' (phi,rad) and for the declination 'd' (delta,rad). It returns the value in radians. It returns the 'Math.cos Z' in rads. When g=0.0 is used it returns 'Math.cos Zo'. When b=0.0 and g=0.0 this function is equal to 'Math.cosSolZenith', 'coz Zz'.

IncidAng

double IncidAng(double b,
                double g,
                double w,
                double d,
                double l)
It calculates the Incidence Angle from the 'CosIncidAng' function.

HorSunrise

double HorSunrise(double d,
                  double l)
It calculates the sunrise hour angle for horizontal surface, from the declination 'd' (delta,rad) and the local latitude 'l' (phi,rad). It returns the value in radians.

HorSunset

double HorSunset(double d,
                 double l)
It calculates the sunset hour angle for horizontal surface, from the declination 'd' (delta,rad) and the local latitude 'l' (phi,rad). It returns the value in radians.

HDayLength

double HDayLength(double d,
                  double l)
It calculates the day length for horizontal surface, from the declination 'd' (delta,rad) and the local latitude 'l' (phi,rad). It returns the value in radians.

TilSunrise

double TilSunrise(double b,
                  double g,
                  double d,
                  double l)
Calcula el angulo en el que el sol empieza a incidir en una superficie con angulos 'b' (beta,rad) sobre la horizontal y 'g' (gamma,rad) desde el sur, a partir de la declinacion 'd' (delta,rad) y de la latitud 'l' (phi,rad). Devuelve el valor en radianes.

TilSunset

double TilSunset(double b,
                 double g,
                 double d,
                 double l)
Calcula el angulo en el que el sol terMath.mina de incidir en una superficie con angulos 'b' (beta,rad) sobre la horizontal y 'g' (gamma,rad) desde el sur, a partir de la declinacion 'd' (delta,rad) y de la latitud 'l' (phi,rad). Devuelve el valor en radianes.

TilDayLength

double TilDayLength(double b,
                    double g,
                    double d,
                    double l)
Calcula la duracion del "dia" para plano inclinado Devuelve el valor en radianes.

LatTime

double LatTime(int jday,
               double LST,
               CSolar.CGeo gd)
It calculates the Local Aparent Time 'LAT' from the Local Standard Time 'LST'.

LstTime

double LstTime(int jday,
               double LAT,
               CSolar.CGeo gd)
It calculates the Local Standard Time 'LST'from the Local Aparent Time 'LAT'.

OffTime

double OffTime(int jday,
               double LAT,
               CSolar.CGeo gd)
It calculates the Official Hour from a given LAT hour

SolTime

double SolTime(int jday,
               double hor,
               CSolar.CGeo gd)
It calculates the LAT (Solar Time) from the Official Hour

PstTime

java.lang.String PstTime(double h,
                         java.lang.String hh)
Returns a string with the hour in standard format

HourAngle

public double HourAngle(double hor)
Calcula el angulo horario a partir de la hora y del angulo diario Devuelve el valor en radianes.

AngToNoon

double AngToNoon(double w)
Convierte valores w (rad) en hora LAT con respecto a mediod¡a Devuelve el valor en horas.

AngToHour

double AngToHour(double ang)
Convierte valores ang (rad) en horas LAT absolutas Devuelve el valor en horas.

ExtIrrad

double ExtIrrad(double b,
                double g,
                double w,
                double l,
                int j)
It calculates the instantaneous extraterrestrial irradiance of a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for an hour angle 'w' (omega,rad), a latitude 'l' (phi,rad) and for the day number 'j' of the year. Uses the excentricity correction factor Eo and the declination 'd' equations from Spencer. It is also used to compute the extraterrestrial hourly radiation when the value of the midhour wi is used with 'ExtHourRad' function. Pay attention for use this function to calculate hourly radiation for hour angles near sunset or sunrise. Function 'ExtHourRad' takes into account this. Returns the value in W/m2.

ExtHourRad

double ExtHourRad(double b,
                  double g,
                  double wi,
                  double l,
                  int j,
                  int mode)
Calculates the extraterrestrial hourly irradiation of a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'j' of the year. Uses the excentricity correction factor Eo and the declination 'd' equations from Cooper. Notice than Hourly irradiation is calculated as the irradiance for an hour angle centered at 'wi' (omega,rad), in the middle of the hour. For wi not included in the interval [wss,wsr], it returns 0. For more exact values, use the 'ExtHourRadInt' function. Returns the value in Wh/m2.

ExtHourRadStd

double ExtHourRadStd(double b,
                     double g,
                     double wi,
                     double l,
                     int j)
Calculates the extraterrestrial hourly irradiation of a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'j' of the year. Uses the excentricity correction factor Eo and the declination 'd' equations from Cooper. Notice than Hourly irradiation is calculated as the irradiance for an hour angle centered at 'wi' (omega,rad), in the middle of the hour. For wi not included in the interval [wss,wsr], it returns 0. For more exact values, use the 'ExtHourRadInt' function. Returns the value in W/hm2.

ExtHourRadCor

public double ExtHourRadCor(double b,
                            double g,
                            double wi,
                            double l,
                            int j)
Corrected version of ExtHourRad function. Calculates the extraterrestrial hourly irradiation of a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for an hour angle centered at 'wi' (omega,rad), a latitude 'l' (phi,rad) and for the day number 'j' of the year. Uses the excentricity correction factor Eo and the declination 'd' equations from Spencer. It takes into account the possibility of hours close to the sunrise (wsr) or the sunset (wss), calculating the radiation for the period [wss,wi] or [wi,wsr] by chooMath.sing the middle hour angle for this inerval. For wi not included in the interval [wss,wsr], it returns 0. For more exact values, use the 'ExtHourRadInt' function. Returns the value in Wh/m2.

ExtDayRad

double ExtDayRad(double b,
                 double g,
                 double l,
                 int j,
                 int mode)

ExtDayRadStd

double ExtDayRadStd(double b,
                    double g,
                    double l,
                    int j)
Calculates the extraterrestrial daily irradiation over a surface oriented at an SolarAzimuth 'g'(gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'jday' of the year. The equation is aproximate. For more accurate results, use the 'ExtDayRadInt' function Returns the value in W/d*m2.

ExtDayRadCor

double ExtDayRadCor(double b,
                    double g,
                    double l,
                    int j)
Calculates the extraterrestrial daily irradiation over a surface oriented at an SolarAzimuth 'g'(gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the day number 'jday' of the year. The equation is aproximate. For more accurate results, use the 'ExtDayRadInt' function Returns the value in W/d*m2.

ExtMAHourRad

double ExtMAHourRad(int m,
                    double b,
                    double g,
                    double l,
                    double wi,
                    int mode)
Calculates the extraterrestrial monthly average hourly (mah) radiation for a particular hour 'w' (omega,rad) over a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the month number 'm' of the year. Returns the value in Wh/m2. Note that the value for hour angle 'wi' should be the midhour angle, because the function 'ExtHourRad' is used to compute the hourly radiation.

ExtMADayRad

double ExtMADayRad(int m,
                   double b,
                   double g,
                   double l,
                   int mode)
Calculates the extraterrestrial monthly average daily (emad) radiation for a particular hour 'w' (omega,rad) over a surface oriented at an SolarAzimuth 'g' (gamma,rad) from the south, tilted an angle 'b' (beta,rad) towards the Equator from the horizontal, for a latitude 'l' (phi,rad) and for the month number 'm' of the year. Returns the value in Wd/m2.

RbIrrad

double RbIrrad(double b,
               double g,
               double w,
               double l,
               int j)
Calculates the ratio of the irradiance on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere.

RbHourRad

double RbHourRad(double b,
                 double g,
                 double wi,
                 double l,
                 int j,
                 int mode)
Calculates the ratio of the hourly irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere. It uses the 'ExtHourRad' function with mode parameter.

RbDayRad

double RbDayRad(double b,
                double g,
                double l,
                int j,
                int mode)
Calculates the ratio of the daily irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere. It uses the 'ExtDayRad' function with the mode parameter.

RbMAHourRad

double RbMAHourRad(double b,
                   double g,
                   double wi,
                   double l,
                   int m,
                   int mode)
Calculates the ratio of the monthly average hourly irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere. It uses the 'ExtMAHourRad' function.

RbMADayRad

double RbMADayRad(double b,
                  double g,
                  double l,
                  int m,
                  int mode)
Calculates the ratio of the monthly average daily irradiation on an inclined surface to that to an horizontal surface in the absence of the earth's atmosphere. It uses the 'ExtMADayRad' function.

HorHDC

public void HorHDC(double w,
                   double l,
                   int j,
                   double[] radhor,
                   int mode,
                   int corr)
HORIZONTAL HOURLY DIFFUSE RADIATION CORRELATIONS

HorHDC_Erbs

void HorHDC_Erbs(double w,
                 double l,
                 int j,
                 double[] radhor,
                 int mode)
Calculates the diffuse and beam radiation on a horizontal surface using the Erbs correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation values 'Ihg'. It returns the values of horizontal diffuse radiation 'Ihd' and horizontal beam radiation 'Ihb'.

HorHDC_Orgill

void HorHDC_Orgill(double w,
                   double l,
                   int j,
                   double[] radhor,
                   int mode)
Calculates the diffuse and beam radiation on a horizontal surface using the Orgill & Hollands correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation values 'Ihg'. It returns the values of horizontal diffuse radiation 'Ihd' and horizontal beam radiation 'Ihb'.

HorHDC_Boes

void HorHDC_Boes(double w,
                 double l,
                 int j,
                 double[] radhor,
                 int mode)
Calculates the diffuse and beam radiation on a horizontal surface using the Boes correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation values 'Ihg'. It returns the values of horizontal diffuse radiation 'Ihd' and horizontal beam radiation 'Ihb'.

HorHDC_Reindl2

void HorHDC_Reindl2(double w,
                    double l,
                    int j,
                    double[] radhor,
                    int mode)
Calculates the diffuse and beam radiation on a horizontal surface using the first reduced Reindl correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'. This first reduced correlation uses the value of sin(solar altitude). It returns the values of horizontal diffuse radiation 'Ihd' and horizontal beam radiation 'Ihb'.

HorHDC_Reindl3

void HorHDC_Reindl3(double w,
                    double l,
                    int j,
                    double[] radhor,
                    int mode)
Calculates the diffuse and beam radiation on a horizontal surface using the second reduced Reindl correlation, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'. It returns the values of horizontal diffuse radiation 'Ihd' and horizontal beam radiation 'Ihb'.

HorHDC_Madrid1

void HorHDC_Madrid1(double w,
                    double l,
                    int j,
                    double[] radhor,
                    int mode)
Calculates the diffuse and beam radiation on a horizontal surface using the first Macagnan correlation for Madrid, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'. It returns the values of horizontal diffuse radiation 'Ihd' and horizontal beam radiation 'Ihb'.

HorHDC_Madrid2

void HorHDC_Madrid2(double w,
                    double l,
                    int j,
                    double[] radhor,
                    int mode)
Calculates the diffuse and beam radiation on a horizontal surface using the second Macagnan correlation for Madrid, at an midhour 'w', for the day 'j', for a point at latitude 'l' and a given global radiation value 'Ihg'. It returns the values of horizontal diffuse radiation 'Ihd' and horizontal beam radiation 'Ihb'.

TilBeamIrrad

double TilBeamIrrad(double b,
                    double g,
                    double w,
                    double l,
                    int j,
                    double Ihb)
TILTED SURFACE BEAM RADIATION

TilBeamHour

public double TilBeamHour(double b,
                          double g,
                          double wi,
                          double l,
                          int j,
                          double Ihb,
                          int mode)

TilBeamDay

double TilBeamDay(double b,
                  double g,
                  double l,
                  int j,
                  double Ihb,
                  int mode)

TilBeamMAHour

double TilBeamMAHour(double b,
                     double g,
                     double wi,
                     double l,
                     int m,
                     double Ihb,
                     int mode)

TilBeamMADay

double TilBeamMADay(double b,
                    double g,
                    double l,
                    int m,
                    double Ihb,
                    int mode)

TilGroundRad

public double TilGroundRad(double b,
                           double Ihg,
                           double rho)
TILTED SURFACE GROUND RADIATION

TilHDC

public double TilHDC(double b,
                     double g,
                     double wi,
                     double l,
                     int j,
                     double Ihd,
                     double Ihg,
                     int mode,
                     int corr)
TILTED SURFACE HOURLY DIFFUSE RADIATION

TilHDifIsotrop

public double TilHDifIsotrop(double b,
                             double Ihd)
Hourly Diffuse Radiation for Tilted Surface. Isotropic model.

TilHDifTemps

double TilHDifTemps(double b,
                    double g,
                    double wi,
                    double l,
                    int j,
                    double Ihd)
Hourly Diffuse Radiation for Tilted Surface. Temps & Coulson model.

TilHDifKlucher

double TilHDifKlucher(double b,
                      double g,
                      double wi,
                      double l,
                      int j,
                      double Ihd,
                      double Ihg)
Hourly Diffuse Radiation for Tilted Surface. Klucher model.

TilHDifHay

double TilHDifHay(double b,
                  double g,
                  double wi,
                  double l,
                  int j,
                  double Ihd,
                  double Ihg,
                  int mode)
Hourly Diffuse Radiation for Tilted Surface. Hay & Davies model.

TilHDifReindl

double TilHDifReindl(double b,
                     double g,
                     double wi,
                     double l,
                     int j,
                     double Ihd,
                     double Ihg,
                     int mode)
Hourly Diffuse Radiation for Tilted Surface. Reindl model.

TilHDifPerez1Pnt

public double TilHDifPerez1Pnt(double b,
                               double g,
                               double wi,
                               double l,
                               int j,
                               double Ihd,
                               double Ihg,
                               int mode)
Hourly Diffuse Radiation for Tilted Surface. Perez Point Source model (1987).

TilHDifPerez2Pnt

double TilHDifPerez2Pnt(double b,
                        double g,
                        double wi,
                        double l,
                        int j,
                        double Ihd,
                        double Ihg,
                        int mode)
Hourly Diffuse Radiation for Tilted Surface. Perez Point Source model.

InRange

boolean InRange(double x,
                double a,
                double b)

InRanWt

boolean InRanWt(double x,
                double a,
                double b)

InRanTp

boolean InRanTp(double x,
                double a,
                double b)

InRanBt

boolean InRanBt(double x,
                double a,
                double b)