Esempio n. 1
0
        public static double ExtraTerrestrialRadiation(ILocation position, DateTime date)
        {
            double latitude  = Astronomy.BoundedLatitude(position);
            double dayAngle  = Astronomy.DayAngle(date);
            int    dayOfYear = Astronomy.DayOfYear(date);
            double solarDistanceCorrection = Astronomy.SolarDistanceCorrection(dayAngle);
            double solarDeclination        = Astronomy.SolarDeclination(dayOfYear);
            double daylightTimeFactor      = Astronomy.DaylightTimeFactor(latitude, solarDeclination);

            return(Astronomy.ExtraTerrestrialRadiation(latitude, solarDistanceCorrection, solarDeclination, daylightTimeFactor));
        }
Esempio n. 2
0
 public static double DayLength(ILocation position, DateTime date)
 {
     return(Astronomy.DayLength(Astronomy.DaylightTimeFactor(position, date)));
 }
Esempio n. 3
0
 public static double DaylightTimeFactor(ILocation position, DateTime date)
 {
     return(Astronomy.DaylightTimeFactor(Astronomy.BoundedLatitude(position), Astronomy.SolarDeclination(date)));
 }
Esempio n. 4
0
 public static double SolarDistanceCorrection(DateTime date)
 {
     return(Astronomy.SolarDistanceCorrection(Astronomy.DayAngle(date)));
 }
Esempio n. 5
0
 public static double SolarElevation(ILocation position, DateTime date, double hour)
 {
     return(Astronomy.SolarElevation(Astronomy.BoundedLatitude(position), hour, Astronomy.SolarDeclination(Astronomy.DayOfYear(date))));
 }
Esempio n. 6
0
 private static double SolarDeclination(DateTime date)
 {
     return(Astronomy.SolarDeclination(Astronomy.DayOfYear(date)));
 }
Esempio n. 7
0
 public static double DayAngle(DateTime date)
 {
     return((double)(Astronomy.DayOfYear(date) * 2) * Math.PI / 365.0);
 }
Esempio n. 8
0
 public static double RelativeSunshineFraction(ILocation position, DateTime date)
 {
     return(Astronomy.RelativeSunshineFraction(Astronomy.DaylightTimeFactor(position, date)));
 }
Esempio n. 9
0
        public static double ShortestDayLength(ILocation location)
        {
            DateTime date = location.Latitude < 0.0 ? new DateTime(1999, 6, 21) : new DateTime(1999, 12, 21);

            return(Astronomy.DayLength(location, date));
        }