public static double CalcSunDeclin(double ObliqCorr, double SunAppLong) { double SunDeclin = Calc.degree(Math.Asin(Math.Sin(Calc.rad(ObliqCorr)) * Math.Sin(Calc.rad(SunAppLong)))); return(SunDeclin); }
public static double CalcSolarZenith(double RemoteLat, double SunDeclim, double HourAngle) { double SolarZenith = Calc.degree(Math.Acos(Math.Sin(rad(RemoteLat)) * Math.Sin(rad(SunDeclim)) + Math.Cos(rad(RemoteLat)) * Math.Cos(rad(SunDeclim)) * Math.Cos(rad(HourAngle)))); return(SolarZenith); }
public static double CalcEqofTime(double varY, double GeomMeanLongSun, double GeomMeanAnomSun, double EccentEarthOrbit) { double EqofTime = 4 * Calc.degree(varY * Math.Sin(2 * Calc.rad(GeomMeanLongSun)) - 2 * EccentEarthOrbit * Math.Sin(Calc.rad(GeomMeanAnomSun)) + 4 * EccentEarthOrbit * varY * Math.Sin(Calc.rad(GeomMeanAnomSun)) * Math.Cos(2 * Calc.rad(GeomMeanLongSun)) - 0.5 * varY * varY * Math.Sin(4 * Calc.rad(GeomMeanLongSun)) - 1.25 * EccentEarthOrbit * EccentEarthOrbit * Math.Sin(2 * Calc.rad(GeomMeanAnomSun))); return(EqofTime); }