//DateTime t must be in UTC public static double GetSolarAltitudeInDegrees(double LatitudeInDegrees, double LongitudeInDegress, DateTime t) { double lonrad = LongitudeInDegress / 360 * 2 * Math.PI; double latrad = LatitudeInDegrees / 360 * 2 * Math.PI; int julian_date; SolarCalculator.make_julian_day(t.Day, t.Month, t.Year, out julian_date); double day_angle;//annual day angle SolarCalculator.Day_Angle(julian_date, out day_angle); double LAT; // sun local time SolarCalculator.UT_to_LAT(t.TimeOfDay.TotalHours, day_angle, lonrad, out LAT); double delta;//sun declination SolarCalculator.declination_sun(t.Year, julian_date, lonrad, out delta); double omega;//solar hour angle SolarCalculator.solar_hour_angle(LAT, out omega); double gamma, theta;//altitude angle and zenithal angle (complementary) SolarCalculator.elevation_zenith_sun(latrad, delta, omega, out gamma, out theta); return(gamma * 360 / 2 / Math.PI); }
public void GetMOETest2() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10470682; double moe = solCalc.GetMeanObliqEcliptic(julianCentury); Assert.AreEqual(23.43792948, Math.Round(moe, 8)); }
public void GetMOETest1() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10119895; double moe = solCalc.GetMeanObliqEcliptic(julianCentury); Assert.AreEqual(23.4379751, Math.Round(moe, 7)); }
public void GetVaryTest1() { SolarCalculator solCalc = new SolarCalculator(); double oc = 23.43882153; double vary = solCalc.GetVary(oc); Assert.AreEqual(0.04303276, Math.Round(vary, 8)); }
public void GetSunlightDurationTest2() { SolarCalculator solCalc = new SolarCalculator(); double has = 112.6098153; double sd = solCalc.GetSunlightDuration(has); Assert.AreEqual(900.87852, Math.Round(sd, 5)); }
public void GetHourAngleTest2() { SolarCalculator solCalc = new SolarCalculator(); double tst = 898.1497498; double ha = solCalc.GetHourAngle(tst); Assert.AreEqual(44.53743745, Math.Round(ha, 8)); }
public void GetEEOTest1() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10119895049052735; double eeo = solCalc.GetEccentEarthOrbit(julianCentury); Assert.AreEqual(0.016704379, Math.Round(eeo, 9)); }
public void GetVaryTest2() { SolarCalculator solCalc = new SolarCalculator(); double oc = 23.43848456; double vary = solCalc.GetVary(oc); Assert.AreEqual(0.04303148, Math.Round(vary, 8)); }
public void GetGMASTest1() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10119895049052735; double gmas = solCalc.GetGeomMeanAnomSun(julianCentury); Assert.AreEqual(4000.595216, Math.Round(gmas, 6)); }
public void GetGMASTest2() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10470682181154035; double gmas = solCalc.GetGeomMeanAnomSun(julianCentury); Assert.AreEqual(4126.875252, Math.Round(gmas, 6)); }
public void GetGMLSTest1() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10119895049052735; double gmls = solCalc.GetGeomMeanLongSun(julianCentury); Assert.AreEqual(323.7065868, Math.Round(gmls, 7)); }
public void GetApproxAtmRefractionTest2() { SolarCalculator solCalc = new SolarCalculator(); double sea = 49.16974994; double aar = solCalc.GetApproxAtmRefraction(sea); Assert.AreEqual(0.013933057, Math.Round(aar, 9)); }
public void GetJulianCentury2() { Solar.SolarCalculator solCalc = new SolarCalculator(); double julianDay = solCalc.GetJulianDay(new DateTime(2010, 06, 21, 16, 0, 0).ToOADate(), -6); double jc = solCalc.GetJulianCentury(julianDay); Assert.AreEqual(0.10470682, Math.Round(jc, 8)); }
public void GetSolarElevationAngleTest2() { SolarCalculator solCalc = new SolarCalculator(); double sza = 40.83025006; double sea = solCalc.GetSolarElevationAngle(sza); Assert.AreEqual(49.16974994, Math.Round(sea, 8)); }
public void GetApproxAtmRefractionTest1() { SolarCalculator solCalc = new SolarCalculator(); double sea = 36.69936398; double aar = solCalc.GetApproxAtmRefraction(sea); Assert.AreEqual(0.021605629, Math.Round(aar, 9)); }
public void GetHourAngleTest1() { SolarCalculator solCalc = new SolarCalculator(); double tst = 705.7778003; double ha = solCalc.GetHourAngle(tst); Assert.AreEqual(-3.5555499, Math.Round(ha, 7)); }
public void GetSolarElevationAngleTest1() { SolarCalculator solCalc = new SolarCalculator(); double sza = 53.30063602; double sea = solCalc.GetSolarElevationAngle(sza); Assert.AreEqual(36.69936398, Math.Round(sea, 8)); }
public void GetGMLSTest2() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10470682181154035; double gmls = solCalc.GetGeomMeanLongSun(julianCentury); Assert.AreEqual(89.99265499, Math.Round(gmls, 8)); }
public void GetEEOTest2() { SolarCalculator solCalc = new SolarCalculator(); double julianCentury = 0.10470682181154035; double eeo = solCalc.GetEccentEarthOrbit(julianCentury); Assert.AreEqual(0.016704231, Math.Round(eeo, 9)); }
public void GetSunlightDurationTest1() { SolarCalculator solCalc = new SolarCalculator(); double has = 79.78835039; double sd = solCalc.GetSunlightDuration(has); Assert.AreEqual(638.3068, Math.Round(sd, 5)); }
public void GetJulianCentury1() { Solar.SolarCalculator solCalc = new SolarCalculator(); double julianDay = solCalc.GetJulianDay(new DateTime(2010, 02, 13, 12, 0, 0).ToOADate(), -7); double jc = solCalc.GetJulianCentury(julianDay); Assert.AreEqual(0.10119895, Math.Round(jc, 8)); }
public void GetSolarElevationCorrectedTest2() { SolarCalculator solCalc = new SolarCalculator(); double sea = 49.16974994; double aar = 0.013933057; double sec = solCalc.GetSolarElevationCorrected(sea, aar); Assert.AreEqual(49.183683, Math.Round(sec, 8)); }
public void GetSolarElevationCorrectedTest1() { SolarCalculator solCalc = new SolarCalculator(); double sea = 36.69936398; double aar = 0.021605629; double sec = solCalc.GetSolarElevationCorrected(sea, aar); Assert.AreEqual(36.7209696, Math.Round(sec, 7)); }
public void GetSunriseTimeTest2() { SolarCalculator solCalc = new SolarCalculator(); double has = 112.6098153; double sn = 0.54295156264305555; double srt = solCalc.GetSunriseTime(has, sn); Assert.AreEqual(TimeSpan.FromDays(0.23014652014305553), TimeSpan.FromDays(srt)); }
public void GetSunsetTimeTest2() { SolarCalculator solCalc = new SolarCalculator(); double has = 112.6098153; double sn = 0.54295156264305555; double sst = solCalc.GetSunsetTime(has, sn); Assert.AreEqual(TimeSpan.FromDays(0.85575660514305552), TimeSpan.FromDays(sst)); }
public void GetSunsetTimeTest1() { SolarCalculator solCalc = new SolarCalculator(); double has = 79.78835039; double sn = 0.50987652754861112; double sst = solCalc.GetSunsetTime(has, sn); Assert.AreEqual(TimeSpan.FromDays(0.73151083418750007), TimeSpan.FromDays(sst)); }
public void GetHASunriseTest2() { SolarCalculator solCalc = new SolarCalculator(); double latitude = 40.0; double sd = 23.43782475; double has = solCalc.GetHASunrise(latitude, sd); Assert.AreEqual(112.609815, Math.Round(has, 6)); }
public void GetSunriseTimeTest1() { SolarCalculator solCalc = new SolarCalculator(); double has = 79.78835039; double sn = 0.50987652754861112; double srt = solCalc.GetSunriseTime(has, sn); Assert.AreEqual(TimeSpan.FromDays(0.28824222090972224), TimeSpan.FromDays(srt)); }
public void GetJulianDayTest3() { Solar.SolarCalculator solCalc = new SolarCalculator(); DateTime date = new DateTime(2010, 06, 21, 21, 54, 00); double jd = solCalc.GetJulianDay(date.ToOADate(), -6); Assert.AreEqual(2455369.66, Math.Round(jd, 2)); }
public void GetHASunriseTest1() { SolarCalculator solCalc = new SolarCalculator(); double latitude = 40.0; double sd = -13.19798007; double has = solCalc.GetHASunrise(latitude, sd); Assert.AreEqual(79.7883504, Math.Round(has, 7)); }