Practical Astronomy Algorithms in .NET/C#
Loading...
Searching...
No Matches
PACoordinates.cs
Go to the documentation of this file.
1using System;
2using Xunit;
3
4namespace PALib.Tests;
5
7{
8 private readonly PACoordinates _paCoordinates;
9
11 {
13 }
14
15 [Fact]
17 {
18 Assert.Equal(182.524167, Math.Round(_paCoordinates.AngleToDecimalDegrees(182, 31, 27), 6));
19 }
20
21 [Fact]
23 {
24 Assert.Equal((182, 31, 27), _paCoordinates.DecimalDegreesToAngle(182.524167));
25 }
26
27 [Fact]
29 {
30 Assert.Equal((9, 52, 23.66), _paCoordinates.RightAscensionToHourAngle(18, 32, 21, 14, 36, 51.67, false, -4, 22, 4, 1980, -64));
31 }
32
33 [Fact]
35 {
36 Assert.Equal((18, 32, 21), _paCoordinates.HourAngleToRightAscension(9, 52, 23.66, 14, 36, 51.67, false, -4, 22, 4, 1980, -64));
37 }
38
39 [Fact]
41 {
42 Assert.Equal((283, 16, 15.7, 19, 20, 3.64), _paCoordinates.EquatorialCoordinatesToHorizonCoordinates(5, 51, 44, 23, 13, 10, 52));
43 }
44
45 [Fact]
47 {
48 Assert.Equal((5, 51, 44, 23, 13, 10), _paCoordinates.HorizonCoordinatesToEquatorialCoordinates(283, 16, 15.7, 19, 20, 3.64, 52));
49 }
50
51 [Fact]
53 {
54 Assert.Equal(23.43805531, Math.Round(_paCoordinates.MeanObliquityOfTheEcliptic(6, 7, 2009), 8));
55 }
56
57 [Fact]
59 {
60 Assert.Equal((9, 34, 53.4, 19, 32, 8.52), _paCoordinates.EclipticCoordinateToEquatorialCoordinate(139, 41, 10, 4, 52, 31, 6, 7, 2009));
61 }
62
63 [Fact]
65 {
66 Assert.Equal((139, 41, 9.97, 4, 52, 30.99), _paCoordinates.EquatorialCoordinateToEclipticCoordinate(9, 34, 53.4, 19, 32, 8.52, 6, 7, 2009));
67 }
68
69 [Fact]
71 {
72 Assert.Equal((232, 14, 52.38, 51, 7, 20.16), _paCoordinates.EquatorialCoordinateToGalacticCoordinate(10, 21, 0, 10, 3, 11));
73 }
74
75 [Fact]
77 {
78 Assert.Equal((10, 21, 0, 10, 3, 11), _paCoordinates.GalacticCoordinateToEquatorialCoordinate(232, 14, 52.38, 51, 7, 20.16));
79 }
80
81 [Fact]
83 {
84 Assert.Equal((23, 40, 25.86), _paCoordinates.AngleBetweenTwoObjects(5, 13, 31.7, -8, 13, 30, 6, 44, 13.4, -16, 41, 11, PAAngleMeasure.Hours));
85 }
86
87 [Fact]
88 public void RisingAndSetting()
89 {
90 Assert.Equal(("OK", 14, 16, 4, 10, 64.36, 295.64), _paCoordinates.RisingAndSetting(23, 39, 20, 21, 42, 0, 24, 8, 2010, 64, 30, 0.5667));
91 }
92
93 [Fact]
95 {
96 Assert.Equal((9, 12, 20.18, 14, 16, 9.12), _paCoordinates.CorrectForPrecession(9, 10, 43, 14, 23, 25, 0.923, 1, 1950, 1, 6, 1979));
97 }
98
99 [Fact]
101 {
102 (double nutInLongDeg, double nutInOblDeg) result = _paCoordinates.NutationInEclipticLongitudeAndObliquity(1, 9, 1988);
103
104 Assert.Equal((0.001525808, 0.0025671), (Math.Round(result.nutInLongDeg, 9), Math.Round(result.nutInOblDeg, 7)));
105 }
106
107 [Fact]
109 {
110 Assert.Equal((352, 37, 30.45, -1, 32, 56.33), _paCoordinates.CorrectForAberration(0, 0, 0, 8, 9, 1988, 352, 37, 10.1, -1, 32, 56.4));
111 }
112
113 [Fact]
115 {
116 Assert.Equal((23, 13, 44.74, 40, 19, 45.76), _paCoordinates.AtmosphericRefraction(23, 14, 0, 40, 10, 0, PACoordinateType.True, 0.17, 51.2036110, 0, 0, 23, 3, 1987, 1, 1, 24, 1012, 21.7));
117 }
118
119 [Fact]
121 {
122 (double correctedRAHour, double correctedRAMin, double correctedRASec, double correctedDecDeg, double correctedDecMin, double correctedDecSec) result = _paCoordinates.CorrectionsForGeocentricParallax(22, 35, 19, -7, 41, 13, PACoordinateType.True, 1.019167, -100, 50, 60, 0, -6, 26, 2, 1979, 10, 45, 0);
123
124 Assert.Equal((22, 36, 43.22, -8, 32, 17.4), result);
125 }
126
127 [Fact]
129 {
130 Assert.Equal((142.59, -19.94), _paCoordinates.HeliographicCoordinates(220, 10.5, 1, 5, 1988));
131 }
132
133 [Fact]
135 {
136 Assert.Equal(1624, _paCoordinates.CarringtonRotationNumber(27, 1, 1975));
137 }
138
139 [Fact]
141 {
142 Assert.Equal((-4.88, 4.04, 19.78), _paCoordinates.SelenographicCoordinates1(1, 5, 1988));
143 }
144
145 [Fact]
147 {
148 Assert.Equal((6.81, 83.19, 1.19), _paCoordinates.SelenographicCoordinates2(1, 5, 1988));
149 }
150}
Coordinate system calculations and conversions.
double double helioLatDeg HeliographicCoordinates(double helioPositionAngleDeg, double helioDisplacementArcmin, double gwdateDay, int gwdateMonth, int gwdateYear)
double double double angleSec AngleBetweenTwoObjects(double raLong1HourDeg, double raLong1Min, double raLong1Sec, double decLat1Deg, double decLat1Min, double decLat1Sec, double raLong2HourDeg, double raLong2Min, double raLong2Sec, double decLat2Deg, double decLat2Min, double decLat2Sec, PAAngleMeasure hourOrDegree)
double double double double double double correctedDecSec CorrectionsForGeocentricParallax(double raHour, double raMin, double raSec, double decDeg, double decMin, double decSec, PACoordinateType coordinateType, double equatorialHorParallaxDeg, double geogLongDeg, double geogLatDeg, double heightM, int daylightSaving, int timezoneHours, double lcdDay, int lcdMonth, int lcdYear, double lctHour, double lctMin, double lctSec)
double double double double double double galLatSec EquatorialCoordinateToGalacticCoordinate(double raHours, double raMinutes, double raSeconds, double decDegrees, double decMinutes, double decSeconds)
double double double double double double correctedDecSec AtmosphericRefraction(double trueRAHour, double trueRAMin, double trueRASec, double trueDecDeg, double trueDecMin, double trueDecSec, PACoordinateType coordinateType, double geogLongDeg, double geogLatDeg, int daylightSavingHours, int timezoneHours, double lcdDay, int lcdMonth, int lcdYear, double lctHour, double lctMin, double lctSec, double atmosphericPressureMbar, double atmosphericTemperatureCelsius)
double double double double double double declinationseconds HorizonCoordinatesToEquatorialCoordinates(double azimuthDegrees, double azimuthMinutes, double azimuthSeconds, double altitudeDegrees, double altitudeMinutes, double altitudeSeconds, double geographicalLatitude)
string double double double double double double azSet RisingAndSetting(double raHours, double raMinutes, double raSeconds, double decDeg, double decMin, double decSec, double gwDateDay, int gwDateMonth, int gwDateYear, double geogLongDeg, double geogLatDeg, double vertShiftDeg)
int CarringtonRotationNumber(double gwdateDay, int gwdateMonth, int gwdateYear)
Calculate carrington rotation number for a Greenwich date.
double double double double double double altitudeSeconds EquatorialCoordinatesToHorizonCoordinates(double hourAngleHours, double hourAngleMinutes, double hourAngleSeconds, double declinationDegrees, double declinationMinutes, double declinationSeconds, double geographicalLatitude)
double double double double double double decSeconds GalacticCoordinateToEquatorialCoordinate(double galLongDeg, double galLongMin, double galLongSec, double galLatDeg, double galLatMin, double galLatSec)
double MeanObliquityOfTheEcliptic(double greenwichDay, int greenwichMonth, int greenwichYear)
Calculate Mean Obliquity of the Ecliptic for a Greenwich Date.
double double double double double double apparentEclLatSec CorrectForAberration(double utHour, double utMinutes, double utSeconds, double gwDay, int gwMonth, int gwYear, double trueEclLongDeg, double trueEclLongMin, double trueEclLongSec, double trueEclLatDeg, double trueEclLatMin, double trueEclLatSec)
double double double double double double outEclLatSec EquatorialCoordinateToEclipticCoordinate(double raHours, double raMinutes, double raSeconds, double decDegrees, double decMinutes, double decSeconds, double gwDay, int gwMonth, int gwYear)
double double double hourAngleSeconds RightAscensionToHourAngle(double raHours, double raMinutes, double raSeconds, double lctHours, double lctMinutes, double lctSeconds, bool isDaylightSavings, int zoneCorrection, double localDay, int localMonth, int localYear, double geographicalLongitude)
double double double seconds DecimalDegreesToAngle(double decimalDegrees)
double double double subSolarLatitude SelenographicCoordinates2(double gwdateDay, int gwdateMonth, int gwdateYear)
double double double raSeconds HourAngleToRightAscension(double hourAngleHours, double hourAngleMinutes, double hourAngleSeconds, double lctHours, double lctMinutes, double lctSeconds, bool isDaylightSaving, int zoneCorrection, double localDay, int localMonth, int localYear, double geographicalLongitude)
double double double double double double correctedDecSeconds CorrectForPrecession(double raHour, double raMinutes, double raSeconds, double decDeg, double decMinutes, double decSeconds, double epoch1Day, int epoch1Month, int epoch1Year, double epoch2Day, int epoch2Month, int epoch2Year)
double AngleToDecimalDegrees(double degrees, double minutes, double seconds)
Convert an Angle (degrees, minutes, and seconds) to Decimal Degrees.
double double double positionAngleOfPole SelenographicCoordinates1(double gwdateDay, int gwdateMonth, int gwdateYear)
double double double double double double outDecSeconds EclipticCoordinateToEquatorialCoordinate(double eclipticLongitudeDegrees, double eclipticLongitudeMinutes, double eclipticLongitudeSeconds, double eclipticLatitudeDegrees, double eclipticLatitudeMinutes, double eclipticLatitudeSeconds, double greenwichDay, int greenwichMonth, int greenwichYear)
double double nutInOblDeg NutationInEclipticLongitudeAndObliquity(double greenwichDay, int greenwichMonth, int greenwichYear)
readonly PACoordinates _paCoordinates
PAAngleMeasure
Angle measurement units.
Definition PATypes.cs:49
PACoordinateType
Coordinate types.
Definition PATypes.cs:9