public static double CalcSunAppLong(double SunTrueLong, double JulianCentury) { double SunAppLong = SunTrueLong - 0.00569 - 0.00478 * Math.Sin(Calc.rad(125.04 - 1934.136 * JulianCentury)); return(SunAppLong); }
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 CalculateDistance(double x1, double y1, double x2, double y2) { double dist = Math.Acos( Math.Cos(Calc.rad(90 - x1)) * Math.Cos(Calc.rad(90 - x2)) + Math.Sin(Calc.rad(90 - x1)) * Math.Sin(Calc.rad(90 - x2)) * Math.Cos(Calc.rad(y1 - y2))) * EARTH_RADIUS; return(dist); }
public static double CalcSunEqofCtr(double GeomMeanAnomSun, double JulianCentury) { double SunEqofCtr = Math.Sin(Calc.rad(GeomMeanAnomSun)) * (1.914602 - JulianCentury * (0.004817 + 0.000014 * JulianCentury)) + Math.Sin(Calc.rad(2 * GeomMeanAnomSun)) * (0.019993 - 0.000101 * JulianCentury) + Math.Sin(Calc.rad(3 + GeomMeanAnomSun)) * 0.000289; return(SunEqofCtr); }
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); }
public static double CalcvarY(double ObliqCorr) { double varY = Math.Tan(Calc.rad(ObliqCorr / 2)) * Math.Tan(Calc.rad(ObliqCorr / 2)); return(varY); }
public static double CalcObliqCorr(double MeanObliqEcliptic, double JulianCentury) { double ObliqCorr = MeanObliqEcliptic + 0.00256 * Math.Cos(Calc.rad(125.04 - 1934.136 * JulianCentury)); return(ObliqCorr); }