public static double NeptuneLongitudePerihelionJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; return(CAACoordinateTransformation.MapTo0To360Range(48.120276 + 0.0291866 * T + 0.00007610 * Tsquared)); }
public static double TrueApogee(double k) { double MeanJD = MeanApogee(k); //convert from K to T double T = k / 1325.55; double Tsquared = T * T; double Tcubed = Tsquared * T; double T4 = Tcubed * T; double D = CAACoordinateTransformation.MapTo0To360Range(171.9179 + 335.9106046 * k - 0.0100383 * Tsquared - 0.00001156 * Tcubed + 0.000000055 * T4); D = CAACoordinateTransformation.DegreesToRadians(D); double M = CAACoordinateTransformation.MapTo0To360Range(347.3477 + 27.1577721 * k - 0.0008130 * Tsquared - 0.0000010 * Tcubed); M = CAACoordinateTransformation.DegreesToRadians(M); double F = CAACoordinateTransformation.MapTo0To360Range(316.6109 + 364.5287911 * k - 0.0125053 * Tsquared - 0.0000148 * Tcubed); F = CAACoordinateTransformation.DegreesToRadians(F); int nApogeeCoefficients = GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients2.Length; double Sigma = 0; for (int i = 0; i < nApogeeCoefficients; i++) { Sigma += (GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients2[i].C + T * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients2[i].T) * Math.Sin(D * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients2[i].D + M * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients2[i].M + F * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients2[i].F); } return(MeanJD + Sigma); }
//Static methods //Tangible Process Only End ////////////////////////////////// Implementation ///////////////////////////// public static CAABinaryStarDetails Calculate(double t, double P, double T, double e, double a, double i, double omega, double w) { double n = 360 / P; double M = CAACoordinateTransformation.MapTo0To360Range(n * (t - T)); double E = CAAKepler.Calculate(M, e); E = CAACoordinateTransformation.DegreesToRadians(E); i = CAACoordinateTransformation.DegreesToRadians(i); w = CAACoordinateTransformation.DegreesToRadians(w); omega = CAACoordinateTransformation.DegreesToRadians(omega); CAABinaryStarDetails details = new CAABinaryStarDetails(); details.r = a * (1 - e * Math.Cos(E)); double v = Math.Atan(Math.Sqrt((1 + e) / (1 - e)) * Math.Tan(E / 2)) * 2; details.Theta = Math.Atan2(Math.Sin(v + w) * Math.Cos(i), Math.Cos(v + w)) + omega; details.Theta = CAACoordinateTransformation.MapTo0To360Range(CAACoordinateTransformation.RadiansToDegrees(details.Theta)); double sinvw = Math.Sin(v + w); double cosvw = Math.Cos(v + w); double cosi = Math.Cos(i); details.Rho = details.r * Math.Sqrt((sinvw * sinvw * cosi * cosi) + (cosvw * cosvw)); return(details); }
//Static methods ///////////////////////// Implementation ////////////////////////////////////// public static double Calculate(double JD) { double rho = (JD - 2451545) / 365250; double rhosquared = rho * rho; double rhocubed = rhosquared * rho; double rho4 = rhocubed * rho; double rho5 = rho4 * rho; //Calculate the Suns mean longitude double L0 = CAACoordinateTransformation.MapTo0To360Range(280.4664567 + 360007.6982779 * rho + 0.03032028 * rhosquared + rhocubed / 49931 - rho4 / 15300 - rho5 / 2000000); //Calculate the Suns apparent right ascension double SunLong = CAASun.ApparentEclipticLongitude(JD); double SunLat = CAASun.ApparentEclipticLatitude(JD); double epsilon = CAANutation.TrueObliquityOfEcliptic(JD); CAA2DCoordinate Equatorial = CAACoordinateTransformation.Ecliptic2Equatorial(SunLong, SunLat, epsilon); epsilon = CAACoordinateTransformation.DegreesToRadians(epsilon); double E = L0 - 0.0057183 - Equatorial.X * 15 + CAACoordinateTransformation.DMSToDegrees(0, 0, CAANutation.NutationInLongitude(JD)) * Math.Cos(epsilon); if (E > 180) { E = -(360 - E); } E *= 4; //Convert to minutes of time return(E); }
public static double PerigeeParallax(double k) { //convert from K to T double T = k / 1325.55; double Tsquared = T * T; double Tcubed = Tsquared * T; double T4 = Tcubed * T; double D = CAACoordinateTransformation.MapTo0To360Range(171.9179 + 335.9106046 * k - 0.0100383 * Tsquared - 0.00001156 * Tcubed + 0.000000055 * T4); D = CAACoordinateTransformation.DegreesToRadians(D); double M = CAACoordinateTransformation.MapTo0To360Range(347.3477 + 27.1577721 * k - 0.0008130 * Tsquared - 0.0000010 * Tcubed); M = CAACoordinateTransformation.DegreesToRadians(M); double F = CAACoordinateTransformation.MapTo0To360Range(316.6109 + 364.5287911 * k - 0.0125053 * Tsquared - 0.0000148 * Tcubed); F = CAACoordinateTransformation.DegreesToRadians(F); int nPerigeeCoefficients = GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients3.Length; double Parallax = 3629.215; for (int i = 0; i < nPerigeeCoefficients; i++) { Parallax += (GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients3[i].C + T * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients3[i].T) * Math.Cos(D * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients3[i].D + M * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients3[i].M + F * GlobalMembersStdafx.g_MoonPerigeeApogeeCoefficients3[i].F); } return(Parallax / 3600); }
public static double TrueLongitudeAscendingNode(double JD) { double TrueAscendingNode = MeanLongitudeAscendingNode(JD); double D = MeanElongation(JD); D = CAACoordinateTransformation.DegreesToRadians(D); double M = CAAEarth.SunMeanAnomaly(JD); M = CAACoordinateTransformation.DegreesToRadians(M); double Mdash = MeanAnomaly(JD); Mdash = CAACoordinateTransformation.DegreesToRadians(Mdash); double F = ArgumentOfLatitude(JD); F = CAACoordinateTransformation.DegreesToRadians(F); //Add the principal additive terms TrueAscendingNode -= 1.4979 * Math.Sin(2 * (D - F)); TrueAscendingNode -= 0.1500 * Math.Sin(M); TrueAscendingNode -= 0.1226 * Math.Sin(2 * D); TrueAscendingNode += 0.1176 * Math.Sin(2 * F); TrueAscendingNode -= 0.0801 * Math.Sin(2 * (Mdash - F)); return(CAACoordinateTransformation.MapTo0To360Range(TrueAscendingNode)); }
public static CAASelenographicMoonDetails CalculateSelenographicPositionOfSun(double JD) { double R = CAAEarth.RadiusVector(JD) * 149597970; double Delta = CAAMoon.RadiusVector(JD); double lambda0 = CAASun.ApparentEclipticLongitude(JD); double lambda = CAAMoon.EclipticLongitude(JD); double beta = CAAMoon.EclipticLatitude(JD); double lambdah = CAACoordinateTransformation.MapTo0To360Range(lambda0 + 180 + Delta / R * 57.296 * Math.Cos(CAACoordinateTransformation.DegreesToRadians(beta)) * Math.Sin(CAACoordinateTransformation.DegreesToRadians(lambda0 - lambda))); double betah = Delta / R * beta; //What will be the return value CAASelenographicMoonDetails details = new CAASelenographicMoonDetails(); //Calculate the optical libration double omega = 0; double DeltaU = 0; double sigma = 0; double I = 0; double rho = 0; double ldash0 = 0; double bdash0 = 0; double ldash20 = 0; double bdash20 = 0; double epsilon = 0; CalculateOpticalLibration(JD, lambdah, betah, ref ldash0, ref bdash0, ref ldash20, ref bdash20, ref epsilon, ref omega, ref DeltaU, ref sigma, ref I, ref rho); details.l0 = ldash0 + ldash20; details.b0 = bdash0 + bdash20; details.c0 = CAACoordinateTransformation.MapTo0To360Range(450 - details.l0); return(details); }
//C++ TO C# CONVERTER NOTE: C# does not allow default values for parameters. Overloaded methods are inserted above. //ORIGINAL LINE: static double EarthPerihelion(int k, bool bBarycentric = false) public static double EarthPerihelion(int k, bool bBarycentric) { double kdash = k; double ksquared = kdash * kdash; double JD = 2451547.507 + 365.2596358 * kdash + 0.0000000156 * ksquared; if (!bBarycentric) { //Apply the corrections double A1 = CAACoordinateTransformation.MapTo0To360Range(328.41 + 132.788585 * k); A1 = CAACoordinateTransformation.DegreesToRadians(A1); double A2 = CAACoordinateTransformation.MapTo0To360Range(316.13 + 584.903153 * k); A2 = CAACoordinateTransformation.DegreesToRadians(A2); double A3 = CAACoordinateTransformation.MapTo0To360Range(346.20 + 450.380738 * k); A3 = CAACoordinateTransformation.DegreesToRadians(A3); double A4 = CAACoordinateTransformation.MapTo0To360Range(136.95 + 659.306737 * k); A4 = CAACoordinateTransformation.DegreesToRadians(A4); double A5 = CAACoordinateTransformation.MapTo0To360Range(249.52 + 329.653368 * k); A5 = CAACoordinateTransformation.DegreesToRadians(A5); JD += 1.278 * Math.Sin(A1); JD -= 0.055 * Math.Sin(A2); JD -= 0.091 * Math.Sin(A3); JD -= 0.056 * Math.Sin(A4); JD -= 0.045 * Math.Sin(A5); } return(JD); }
//////////////////////////////// Implementation /////////////////////////////// protected static void HelperSubroutine(double e, double lambdadash, double p, double a, double omega, double i, double c1, double s1, ref double r, ref double lambda, ref double gamma, ref double w) { double e2 = e * e; double e3 = e2 * e; double e4 = e3 * e; double e5 = e4 * e; double M = CAACoordinateTransformation.DegreesToRadians(lambdadash - p); double Crad = (2 * e - 0.25 * e3 + 0.0520833333 * e5) * Math.Sin(M) + (1.25 * e2 - 0.458333333 * e4) * Math.Sin(2 * M) + (1.083333333 * e3 - 0.671875 * e5) * Math.Sin(3 * M) + 1.072917 * e4 * Math.Sin(4 * M) + 1.142708 * e5 * Math.Sin(5 * M); double C = CAACoordinateTransformation.RadiansToDegrees(Crad); r = a * (1 - e2) / (1 + e * Math.Cos(M + Crad)); double g = omega - 168.8112; double grad = CAACoordinateTransformation.DegreesToRadians(g); double irad = CAACoordinateTransformation.DegreesToRadians(i); double a1 = Math.Sin(irad) * Math.Sin(grad); double a2 = c1 * Math.Sin(irad) * Math.Cos(grad) - s1 * Math.Cos(irad); gamma = CAACoordinateTransformation.RadiansToDegrees(Math.Asin(Math.Sqrt(a1 * a1 + a2 * a2))); double urad = Math.Atan2(a1, a2); double u = CAACoordinateTransformation.RadiansToDegrees(urad); w = CAACoordinateTransformation.MapTo0To360Range(168.8112 + u); double h = c1 * Math.Sin(irad) - s1 * Math.Cos(irad) * Math.Cos(grad); double psirad = Math.Atan2(s1 * Math.Sin(grad), h); double psi = CAACoordinateTransformation.RadiansToDegrees(psirad); lambda = lambdadash + C + u - g - psi; }
//Static methods ///////////////////////////// Implementation ////////////////////////////////// public static double EclipticLongitude(double JD) { double rho = (JD - 2451545) / 365250; double rhosquared = rho * rho; double rhocubed = rhosquared * rho; double rho4 = rhocubed * rho; //Calculate L0 int nL0Coefficients = GlobalMembersStdafx.g_L0NeptuneCoefficients.Length; double L0 = 0; int i; for (i = 0; i < nL0Coefficients; i++) { L0 += GlobalMembersStdafx.g_L0NeptuneCoefficients[i].A * Math.Cos(GlobalMembersStdafx.g_L0NeptuneCoefficients[i].B + GlobalMembersStdafx.g_L0NeptuneCoefficients[i].C * rho); } //Calculate L1 int nL1Coefficients = GlobalMembersStdafx.g_L1NeptuneCoefficients.Length; double L1 = 0; for (i = 0; i < nL1Coefficients; i++) { L1 += GlobalMembersStdafx.g_L1NeptuneCoefficients[i].A * Math.Cos(GlobalMembersStdafx.g_L1NeptuneCoefficients[i].B + GlobalMembersStdafx.g_L1NeptuneCoefficients[i].C * rho); } //Calculate L2 int nL2Coefficients = GlobalMembersStdafx.g_L2NeptuneCoefficients.Length; double L2 = 0; for (i = 0; i < nL2Coefficients; i++) { L2 += GlobalMembersStdafx.g_L2NeptuneCoefficients[i].A * Math.Cos(GlobalMembersStdafx.g_L2NeptuneCoefficients[i].B + GlobalMembersStdafx.g_L2NeptuneCoefficients[i].C * rho); } //Calculate L3 int nL3Coefficients = GlobalMembersStdafx.g_L3NeptuneCoefficients.Length; double L3 = 0; for (i = 0; i < nL3Coefficients; i++) { L3 += GlobalMembersStdafx.g_L3NeptuneCoefficients[i].A * Math.Cos(GlobalMembersStdafx.g_L3NeptuneCoefficients[i].B + GlobalMembersStdafx.g_L3NeptuneCoefficients[i].C * rho); } //Calculate L4 int nL4Coefficients = GlobalMembersStdafx.g_L4NeptuneCoefficients.Length; double L4 = 0; for (i = 0; i < nL4Coefficients; i++) { L4 += GlobalMembersStdafx.g_L4NeptuneCoefficients[i].A * Math.Cos(GlobalMembersStdafx.g_L4NeptuneCoefficients[i].B + GlobalMembersStdafx.g_L4NeptuneCoefficients[i].C * rho); } double @value = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4) / 100000000; //convert results back to degrees @value = CAACoordinateTransformation.MapTo0To360Range(CAACoordinateTransformation.RadiansToDegrees(@value)); return(@value); }
public static double PassageThroNode(double k) { //convert from K to T double T = k / 1342.23; double Tsquared = T * T; double Tcubed = Tsquared * T; double T4 = Tcubed * T; double D = CAACoordinateTransformation.MapTo0To360Range(183.6380 + 331.73735682 * k + 0.0014852 * Tsquared + 0.00000209 * Tcubed - 0.000000010 * T4); double M = CAACoordinateTransformation.MapTo0To360Range(17.4006 + 26.82037250 * k + 0.0001186 * Tsquared + 0.00000006 * Tcubed); double Mdash = CAACoordinateTransformation.MapTo0To360Range(38.3776 + 355.52747313 * k + 0.0123499 * Tsquared + 0.000014627 * Tcubed - 0.000000069 * T4); double omega = CAACoordinateTransformation.MapTo0To360Range(123.9767 - 1.44098956 * k + 0.0020608 * Tsquared + 0.00000214 * Tcubed - 0.000000016 * T4); double V = CAACoordinateTransformation.MapTo0To360Range(299.75 + 132.85 * T - 0.009173 * Tsquared); double P = CAACoordinateTransformation.MapTo0To360Range(omega + 272.75 - 2.3 * T); double E = 1 - 0.002516 * T - 0.0000074 * Tsquared; //convert to radians D = CAACoordinateTransformation.DegreesToRadians(D); double D2 = 2 * D; double D4 = D2 * D2; M = CAACoordinateTransformation.DegreesToRadians(M); Mdash = CAACoordinateTransformation.DegreesToRadians(Mdash); double Mdash2 = 2 * Mdash; omega = CAACoordinateTransformation.DegreesToRadians(omega); V = CAACoordinateTransformation.DegreesToRadians(V); P = CAACoordinateTransformation.DegreesToRadians(P); double JD = 2451565.1619 + 27.212220817 * k + 0.0002762 * Tsquared + 0.000000021 * Tcubed - 0.000000000088 * T4 - 0.4721 * Math.Sin(Mdash) - 0.1649 * Math.Sin(D2) - 0.0868 * Math.Sin(D2 - Mdash) + 0.0084 * Math.Sin(D2 + Mdash) - E * 0.0083 * Math.Sin(D2 - M) - E * 0.0039 * Math.Sin(D2 - M - Mdash) + 0.0034 * Math.Sin(Mdash2) - 0.0031 * Math.Sin(D2 - Mdash2) + E * 0.0030 * Math.Sin(D2 + M) + E * 0.0028 * Math.Sin(M - Mdash) + E * 0.0026 * Math.Sin(M) + 0.0025 * Math.Sin(D4) + 0.0024 * Math.Sin(D) + E * 0.0022 * Math.Sin(M + Mdash) + 0.0017 * Math.Sin(omega) + 0.0014 * Math.Sin(D4 - Mdash) + E * 0.0005 * Math.Sin(D2 + M - Mdash) + E * 0.0004 * Math.Sin(D2 - M + Mdash) - E * 0.0003 * Math.Sin(D2 - M * M) + E * 0.0003 * Math.Sin(D4 - M) + 0.0003 * Math.Sin(V) + 0.0003 * Math.Sin(P); return(JD); }
public static double NeptuneInclinationJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; return(CAACoordinateTransformation.MapTo0To360Range(1.769953 + 0.0002256 * T + 0.00000023 * Tsquared)); }
public static CAAEclipticalElementDetails FK4B1950ToFK5J2000(double i0, double w0, double omega0) { //convert to radians double L = CAACoordinateTransformation.DegreesToRadians(5.19856209); double J = CAACoordinateTransformation.DegreesToRadians(0.00651966); double i0rad = CAACoordinateTransformation.DegreesToRadians(i0); double omega0rad = CAACoordinateTransformation.DegreesToRadians(omega0); double sini0rad = Math.Sin(i0rad); double cosi0rad = Math.Cos(i0rad); //Calculate some values used later double cosJ = Math.Cos(J); double sinJ = Math.Sin(J); double W = L + omega0rad; double cosW = Math.Cos(W); double sinW = Math.Sin(W); double A = sinJ * sinW; double B = sini0rad * cosJ + cosi0rad * sinJ * cosW; //Calculate the values CAAEclipticalElementDetails details = new CAAEclipticalElementDetails(); details.i = CAACoordinateTransformation.RadiansToDegrees(Math.Asin(Math.Sqrt(A * A + B * B))); double cosi = cosi0rad * cosJ - sini0rad * sinJ * cosW; if (cosi < 0) { details.i = 180 - details.i; } details.w = CAACoordinateTransformation.MapTo0To360Range(w0 + CAACoordinateTransformation.RadiansToDegrees(Math.Atan2(A, B))); details.omega = CAACoordinateTransformation.MapTo0To360Range(CAACoordinateTransformation.RadiansToDegrees(Math.Atan2(sini0rad * sinW, cosi0rad * sinJ + sini0rad * cosJ * cosW)) - 4.50001688); return(details); }
public static double EclipticLongitude(double JD) { double Ldash = MeanLongitude(JD); double LdashDegrees = Ldash; Ldash = CAACoordinateTransformation.DegreesToRadians(Ldash); double D = MeanElongation(JD); D = CAACoordinateTransformation.DegreesToRadians(D); double M = CAAEarth.SunMeanAnomaly(JD); M = CAACoordinateTransformation.DegreesToRadians(M); double Mdash = MeanAnomaly(JD); Mdash = CAACoordinateTransformation.DegreesToRadians(Mdash); double F = ArgumentOfLatitude(JD); F = CAACoordinateTransformation.DegreesToRadians(F); double E = CAAEarth.Eccentricity(JD); double T = (JD - 2451545) / 36525; double A1 = CAACoordinateTransformation.MapTo0To360Range(119.75 + 131.849 * T); A1 = CAACoordinateTransformation.DegreesToRadians(A1); double A2 = CAACoordinateTransformation.MapTo0To360Range(53.09 + 479264.290 * T); A2 = CAACoordinateTransformation.DegreesToRadians(A2); double A3 = CAACoordinateTransformation.MapTo0To360Range(313.45 + 481266.484 * T); A3 = CAACoordinateTransformation.DegreesToRadians(A3); int nLCoefficients = GlobalMembersStdafx.g_MoonCoefficients1.Length; Debug.Assert(GlobalMembersStdafx.g_MoonCoefficients2.Length == nLCoefficients); double SigmaL = 0; for (int i = 0; i < nLCoefficients; i++) { double ThisSigma = GlobalMembersStdafx.g_MoonCoefficients2[i].A * Math.Sin(GlobalMembersStdafx.g_MoonCoefficients1[i].D * D + GlobalMembersStdafx.g_MoonCoefficients1[i].M * M + GlobalMembersStdafx.g_MoonCoefficients1[i].Mdash * Mdash + GlobalMembersStdafx.g_MoonCoefficients1[i].F * F); if (GlobalMembersStdafx.g_MoonCoefficients1[i].M != 0) { ThisSigma *= E; } SigmaL += ThisSigma; } //Finally the additive terms SigmaL += 3958 * Math.Sin(A1); SigmaL += 1962 * Math.Sin(Ldash - F); SigmaL += 318 * Math.Sin(A2); //And finally apply the nutation in longitude double NutationInLong = CAANutation.NutationInLongitude(JD); return(CAACoordinateTransformation.MapTo0To360Range(LdashDegrees + SigmaL / 1000000 + NutationInLong / 3600)); }
public static double SaturnLongitudeAscendingNodeJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(113.665503 - 0.2566722 * T - 0.00018399 * Tsquared + 0.000000480 * Tcubed)); }
public static double UranusLongitudeAscendingNodeJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(74.005957 + 0.0741431 * T + 0.00040539 * Tsquared + 0.000000119 * Tcubed)); }
public static double UranusInclinationJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(0.773197 - 0.0016869 * T + 0.00000349 * Tsquared + 0.000000016 * Tcubed)); }
public static double SunMeanAnomaly(double JD) { double T = (JD - 2451545) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(357.5291092 + 35999.0502909 * T - 0.0001536 * Tsquared + Tcubed / 24490000)); }
public static double MercuryLongitudeAscendingNode(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(48.330893 + 1.1861883 * T + 0.00017542 * Tsquared + 0.000000215 * Tcubed)); }
public static double UranusLongitudePerihelionJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(173.005291 + 0.0893212 * T - 0.00009470 * Tsquared + 0.000000414 * Tcubed)); }
public static double VenusMeanLongitude(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(181.979801 + 58519.2130302 * T + 0.00031014 * Tsquared + 0.000000015 * Tcubed)); }
public static double UranusMeanLongitudeJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(314.055005 + 428.4669983 * T - 0.00000486 * Tsquared + 0.000000006 * Tcubed)); }
public static double NeptuneMeanLongitudeJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(304.348665 + 218.4862002 * T + 0.00000059 * Tsquared - 0.000000002 * Tcubed)); }
public static double NeptuneLongitudeAscendingNodeJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(131.784057 - 0.0061651 * T - 0.00000219 * Tsquared - 0.000000078 * Tcubed)); }
public static double SaturnMeanLongitudeJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(50.077444 + 1222.1138488 * T + 0.00021004 * Tsquared - 0.000000046 * Tcubed)); }
public static double SaturnLongitudePerihelionJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(93.057237 + 0.5665415 * T + 0.00052850 * Tsquared + 0.000004912 * Tcubed)); }
public static double PhaseAngle(double GeocentricElongation, double EarthObjectDistance, double EarthSunDistance) { //Convert from degrees to radians GeocentricElongation = CAACoordinateTransformation.DegreesToRadians(GeocentricElongation); //Return the result return(CAACoordinateTransformation.MapTo0To360Range(CAACoordinateTransformation.RadiansToDegrees(Math.Atan2(EarthSunDistance * Math.Sin(GeocentricElongation), EarthObjectDistance - EarthSunDistance * Math.Cos(GeocentricElongation))))); }
public static double SaturnInclinationJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(2.488879 + 0.0025514 * T - 0.00004906 * Tsquared + 0.000000017 * Tcubed)); }
public static double MercuryLongitudePerihelion(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(77.456119 + 1.5564776 * T + 0.00029544 * Tsquared + 0.000000009 * Tcubed)); }
public static double JupiterLongitudePerihelionJ2000(double JD) { double T = (JD - 2451545.0) / 36525; double Tsquared = T * T; double Tcubed = Tsquared * T; return(CAACoordinateTransformation.MapTo0To360Range(14.331207 + 0.2155209 * T + 0.00072211 * Tsquared - 0.000004485 * Tcubed)); }