The method of find the angular diameter of the Sun is essentially the same as that of finding the distance to the Sun. mybloggingplanet.com
We need to find the true anomaly (v) and then using that we plug it into the formula
Angular Diameter = (angular Diameter at perigee) * ((1 + (eccentricy * cos(v)) / (1 – eccentricity2))
The resulting angular diameter is expressed in degrees, if the original angular diameter is also expressed in degrees.
public static double CalcSunAngDiam(DateTime dDate, DateTime dEpoch) { double fD; double fN; double fM; double fE; double fTanV2; double fV; double fAngDiam; double fSolarMEL; double fSolarPL; double fSunEarthEcc; double fAcc; double fOblique; double fAngDiam0; fAngDiam0 = 0.533128; fAcc = 0.0000001; fD = UraniaTime.GetDaysBetween(dDate, dEpoch); fSolarMEL = GetSolarMEL(dEpoch, true); fSolarPL = GetSolarPerigeeLong(dEpoch, true); fSunEarthEcc = GetSunEarthEcc(dEpoch, true); fOblique = GetEarthObliquity(dEpoch, true); fN = (360.0 / 365.242191) * fD; fN = Trig.PutIn360Deg(fN); fM = fN + fSolarMEL - fSolarPL; fM = Trig.PutIn360Deg(fM); fM = Trig.DegToRad(fM); fE = CalcEccentricAnomaly(fM, fM, fSunEarthEcc, fAcc); fTanV2 = Math.Sqrt((1.0 + fSunEarthEcc) / (1.0 - fSunEarthEcc)) * Math.Tan(fE / 2.0); fV = Math.Atan(fTanV2) * 2.0; fAngDiam = fAngDiam0 * ((1.0 + (fSunEarthEcc * Math.Cos(fV))) / (1.0 - (fSunEarthEcc * fSunEarthEcc))); return fAngDiam; }
Comments