Exemplo n.º 1
0
        /// <summary>
        /// Private method to calculate either incidence or zenith angles,
        /// depending on passed tiltedSurface
        /// </summary>
        private double GetIncidenceAngle(DateTime solarTime, TiltedSurface tiltedSurface)
        {
            var declinationAngle = config.DeclinationAngle.DeclinationAngle(solarTime.DayOfYear);
            var hourAngle        = HourAngle.GetHourAngle(solarTime);

            return(IncidenceAngle.GetIncidenceAngle(tiltedSurface,
                                                    Location.Latitude.FromDegreeToRadians(),
                                                    declinationAngle,
                                                    hourAngle));
        }
Exemplo n.º 2
0
        public SunriseSunset(DateTime solarNoon, double latitudeRadian)
        {
            var config      = Configuration.Config;
            var declination = config.DeclinationAngle.DeclinationAngle(solarNoon.DayOfYear);

            var sunsetHourAngle = config.SunsetHourAngle.GetSunsetHourAngle(latitudeRadian, declination);
            var timeDelta       = HourAngle.GetTimeSpanFromHourAngle(sunsetHourAngle);

            Sunrise = solarNoon - timeDelta;
            Sunset  = solarNoon + timeDelta;
        }
Exemplo n.º 3
0
 /// <summary>
 /// Returns the hour angle.
 /// The given dateTime will be interpreted as defined in the configuration object.
 /// </summary>
 public double GetHourAngle(DateTime dateTime)
 => calculator.CalculateAngle(dt => HourAngle.GetHourAngle(dt), dateTime);