38 typedef enum POSITION_ALGO {
43 SunObject(
const double& i_latitude,
const double& i_longitude,
const double& i_altitude);
44 SunObject(
const double& i_latitude,
const double& i_longitude,
const double& i_altitude,
const double& i_julian,
const double& i_TZ=0.);
47 void setDate(
const double& i_julian,
const double& i_TZ=0.);
48 void setLatLon(
const double& i_latitude,
const double& i_longitude,
const double& i_altitude);
52 void calculateRadiation(
const double& ta,
const double& rh,
double pressure,
const double& ground_albedo);
53 void calculateRadiation(
const double& ta,
const double& rh,
const double& mean_albedo);
54 void getBeamRadiation(
double& R_toa,
double& R_direct,
double& R_diffuse)
const;
56 void getSlopeRadiation(
const double& slope_azi,
const double& slope_elev,
double& R_toa,
double& R_direct,
double& R_diffuse)
const;
59 double getSplittingBoland(
const double& iswr_modeled,
const double& iswr_measured,
const double& t)
const;
60 double getSplitting(
const double& iswr_modeled,
const double& iswr_measured)
const;
62 double getCorrectionFactor(
const double& iswr_measured,
double &Md,
bool &day,
bool &night)
const;
65 double getJulian(
const double& o_TZ)
const {
return (julian_gmt+o_TZ*1./24.);}
73 void getBeamPotential(
const double& sun_elevation,
const double& Eccentricity_corr,
74 const double& ta,
const double& rh,
const double& pressure,
const double& mean_albedo,
75 double& R_toa,
double& R_direct,
double& R_diffuse)
const;
76 void getClearSky(
const double& sun_elevation,
const double& R_toa,
77 const double& ta,
const double& rh,
const double& pressure,
const double& ground_albedo,
78 double& R_direct,
double& R_diffuse)
const;
81 double julian_gmt, TZ;
82 double latitude, longitude, altitude;
83 double elevation_threshold;
84 double beam_toa, beam_direct, beam_diffuse;
static const double rad_threshold
Definition: Sun.h:70
double getSplitting(const double &iswr_modeled, const double &iswr_measured) const
Evaluate the splitting coefficient between direct and diffuse components of the incoming short wave r...
Definition: Sun.cc:302
void resetAltitude(const double &i_altitude)
Definition: Sun.cc:97
void setElevationThresh(const double &i_elevation_threshold)
Definition: Sun.cc:107
void setLatLon(const double &i_latitude, const double &i_longitude, const double &i_altitude)
Definition: Sun.cc:71
double getJulian(const double &o_TZ) const
Definition: Sun.h:65
Jean Meeus' algorithm (Meeus, j. "Astronomical Algorithms", second edition, 1998, Willmann-Bell...
Definition: Sun.h:39
void getBeamRadiation(double &R_toa, double &R_direct, double &R_diffuse) const
Definition: Sun.cc:267
double getElevationThresh() const
Definition: Sun.h:57
SunObject(const position_algo alg=MEEUS)
Definition: Sun.cc:35
position_algo
this enum provides the different position algorithms available
Definition: Sun.h:38
void getHorizontalRadiation(double &R_toa, double &R_direct, double &R_diffuse) const
Definition: Sun.cc:275
double getSplittingBoland(const double &iswr_modeled, const double &iswr_measured, const double &t) const
Evaluate the splitting coefficient between direct and diffuse components of the incoming short wave r...
Definition: Sun.cc:354
double getCorrectionFactor(const double &iswr_measured, double &Md, bool &day, bool &night) const
Evaluate an atmospheric losses factor. This correction factor is evaluated by comparing the global po...
Definition: Sun.cc:418
void setDate(const double &i_julian, const double &i_TZ=0.)
Definition: Sun.cc:53
A class to calculate Solar radiation characteristics This is largely based on M. Iqbal, "An introduction to solar radiation", 1983, Academic Press, ISBN: 0-12-373750-8. The Sun's position is provided by the SunTrajectory class (currently the only implemented algorithm is Meeus). All units are SI. See http://www.meteoexploration.com/products/solarcalc.php for a validation calculator.
Definition: Sun.h:35
void calculateRadiation(const double &ta, const double &rh, double pressure, const double &ground_albedo)
Definition: Sun.cc:113
const std::string toString() const
Definition: Sun.cc:441
static const double elevation_dftlThreshold
Definition: Sun.h:70
void getSlopeRadiation(const double &slope_azi, const double &slope_elev, double &R_toa, double &R_direct, double &R_diffuse) const
Definition: Sun.cc:283
SunMeeus position
Definition: Sun.h:69
Calculate the Sun's position based on the Meeus algorithm. See J. Meeus, "Astronomical Algorithms"...
Definition: Suntrajectory.h:103