Practical Astronomy Algorithms in .NET/C#
Loading...
Searching...
No Matches
PAMoon.cs
Go to the documentation of this file.
1using System;
2using PALib.Helpers;
3
4namespace PALib;
5
9public class PAMoon
10{
22 public (double moonRAHour, double moonRAMin, double moonRASec, double moonDecDeg, double moonDecMin, double moonDecSec) ApproximatePositionOfMoon(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
23 {
24 int daylightSaving = isDaylightSaving ? 1 : 0;
25
26 double l0 = 91.9293359879052;
27 double p0 = 130.143076320618;
28 double n0 = 291.682546643194;
29 double i = 5.145396;
30
31 double gdateDay = PAMacros.LocalCivilTimeGreenwichDay(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
32 int gdateMonth = PAMacros.LocalCivilTimeGreenwichMonth(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
33 int gdateYear = PAMacros.LocalCivilTimeGreenwichYear(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
34
35 double utHours = PAMacros.LocalCivilTimeToUniversalTime(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
36 double dDays = PAMacros.CivilDateToJulianDate(gdateDay, gdateMonth, gdateYear) - PAMacros.CivilDateToJulianDate(0.0, 1, 2010) + utHours / 24;
37 double sunLongDeg = PAMacros.SunLong(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
38 double sunMeanAnomalyRad = PAMacros.SunMeanAnomaly(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
39 double lmDeg = PAMacros.UnwindDeg(13.1763966 * dDays + l0);
40 double mmDeg = PAMacros.UnwindDeg(lmDeg - 0.1114041 * dDays - p0);
41 double nDeg = PAMacros.UnwindDeg(n0 - (0.0529539 * dDays));
42 double evDeg = 1.2739 * (2.0 * (lmDeg - sunLongDeg) - mmDeg).ToRadians().Sine();
43 double aeDeg = 0.1858 * sunMeanAnomalyRad.Sine();
44 double a3Deg = 0.37 * sunMeanAnomalyRad.Sine();
45 double mmdDeg = mmDeg + evDeg - aeDeg - a3Deg;
46 double ecDeg = 6.2886 * mmdDeg.ToRadians().Sine();
47 double a4Deg = 0.214 * (2.0 * mmdDeg.ToRadians()).Sine();
48 double ldDeg = lmDeg + evDeg + ecDeg - aeDeg + a4Deg;
49 double vDeg = 0.6583 * (2.0 * (ldDeg - sunLongDeg).ToRadians()).Sine();
50 double lddDeg = ldDeg + vDeg;
51 double ndDeg = nDeg - 0.16 * sunMeanAnomalyRad.Sine();
52 double y = (lddDeg - ndDeg).ToRadians().Sine() * i.ToRadians().Cosine();
53 double x = (lddDeg - ndDeg).ToRadians().Cosine();
54
55 double moonLongDeg = PAMacros.UnwindDeg(PAMacros.Degrees(y.AngleTangent2(x)) + ndDeg);
56 double moonLatDeg = PAMacros.Degrees(((lddDeg - ndDeg).ToRadians().Sine() * i.ToRadians().Sine()).ASine());
57 double moonRAHours1 = PAMacros.DecimalDegreesToDegreeHours(PAMacros.EcRA(moonLongDeg, 0, 0, moonLatDeg, 0, 0, gdateDay, gdateMonth, gdateYear));
58 double moonDecDeg1 = PAMacros.EcDec(moonLongDeg, 0, 0, moonLatDeg, 0, 0, gdateDay, gdateMonth, gdateYear);
59
60 int moonRAHour = PAMacros.DecimalHoursHour(moonRAHours1);
61 int moonRAMin = PAMacros.DecimalHoursMinute(moonRAHours1);
62 double moonRASec = PAMacros.DecimalHoursSecond(moonRAHours1);
63 double moonDecDeg = PAMacros.DecimalDegreesDegrees(moonDecDeg1);
64 double moonDecMin = PAMacros.DecimalDegreesMinutes(moonDecDeg1);
65 double moonDecSec = PAMacros.DecimalDegreesSeconds(moonDecDeg1);
66
68 }
69
83 public (double moonRAHour, double moonRAMin, double moonRASec, double moonDecDeg, double moonDecMin, double moonDecSec, double earthMoonDistKM, double moonHorParallaxDeg) PrecisePositionOfMoon(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
84 {
85 int daylightSaving = isDaylightSaving ? 1 : 0;
86
87 double gdateDay = PAMacros.LocalCivilTimeGreenwichDay(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
88 int gdateMonth = PAMacros.LocalCivilTimeGreenwichMonth(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
89 int gdateYear = PAMacros.LocalCivilTimeGreenwichYear(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
90
91 (double moonLongDeg, double moonLatDeg, double moonHorPara) moonResult = PAMacros.MoonLongLatHP(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
92
93 double nutationInLongitudeDeg = PAMacros.NutatLong(gdateDay, gdateMonth, gdateYear);
94 double correctedLongDeg = moonResult.moonLongDeg + nutationInLongitudeDeg;
95 double earthMoonDistanceKM = 6378.14 / moonResult.moonHorPara.ToRadians().Sine();
96 double moonRAHours1 = PAMacros.DecimalDegreesToDegreeHours(PAMacros.EcRA(correctedLongDeg, 0, 0, moonResult.moonLatDeg, 0, 0, gdateDay, gdateMonth, gdateYear));
97 double moonDecDeg1 = PAMacros.EcDec(correctedLongDeg, 0, 0, moonResult.moonLatDeg, 0, 0, gdateDay, gdateMonth, gdateYear);
98
99 int moonRAHour = PAMacros.DecimalHoursHour(moonRAHours1);
100 int moonRAMin = PAMacros.DecimalHoursMinute(moonRAHours1);
101 double moonRASec = PAMacros.DecimalHoursSecond(moonRAHours1);
102 double moonDecDeg = PAMacros.DecimalDegreesDegrees(moonDecDeg1);
103 double moonDecMin = PAMacros.DecimalDegreesMinutes(moonDecDeg1);
104 double moonDecSec = PAMacros.DecimalDegreesSeconds(moonDecDeg1);
105 double earthMoonDistKM = Math.Round(earthMoonDistanceKM, 0);
106 double moonHorParallaxDeg = Math.Round(moonResult.moonHorPara, 6);
107
109 }
110
118 public (double moonPhase, double paBrightLimbDeg) MoonPhase(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear, PAAccuracyLevel accuracyLevel)
119 {
120 int daylightSaving = isDaylightSaving ? 1 : 0;
121
122 double gdateDay = PAMacros.LocalCivilTimeGreenwichDay(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
123 int gdateMonth = PAMacros.LocalCivilTimeGreenwichMonth(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
124 int gdateYear = PAMacros.LocalCivilTimeGreenwichYear(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
125
126 double sunLongDeg = PAMacros.SunLong(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
127 (double moonLongDeg, double moonLatDeg, double moonHorPara) moonResult = PAMacros.MoonLongLatHP(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
128 double dRad = (moonResult.moonLongDeg - sunLongDeg).ToRadians();
129
130 double moonPhase1 = (accuracyLevel == PAAccuracyLevel.Precise) ? PAMacros.MoonPhase(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear) : (1.0 - dRad.Cosine()) / 2.0;
131
132 double sunRARad = PAMacros.EcRA(sunLongDeg, 0, 0, 0, 0, 0, gdateDay, gdateMonth, gdateYear).ToRadians();
133 double moonRARad = PAMacros.EcRA(moonResult.moonLongDeg, 0, 0, moonResult.moonLatDeg, 0, 0, gdateDay, gdateMonth, gdateYear).ToRadians();
134 double sunDecRad = PAMacros.EcDec(sunLongDeg, 0, 0, 0, 0, 0, gdateDay, gdateMonth, gdateYear).ToRadians();
135 double moonDecRad = PAMacros.EcDec(moonResult.moonLongDeg, 0, 0, moonResult.moonLatDeg, 0, 0, gdateDay, gdateMonth, gdateYear).ToRadians();
136
137 double y = sunDecRad.Cosine() * (sunRARad - moonRARad).Sine();
138 double x = moonDecRad.Cosine() * sunDecRad.Sine() - moonDecRad.Sine() * sunDecRad.Cosine() * (sunRARad - moonRARad).Cosine();
139
140 double chiDeg = PAMacros.Degrees(y.AngleTangent2(x));
141
142 double moonPhase = Math.Round(moonPhase1, 2);
143 double paBrightLimbDeg = Math.Round(chiDeg, 2);
144
145 return (moonPhase, paBrightLimbDeg);
146 }
147
163 public (double nmLocalTimeHour, double nmLocalTimeMin, double nmLocalDateDay, int nmLocalDateMonth, int nmLocalDateYear, double fmLocalTimeHour, double fmLocalTimeMin, double fmLocalDateDay, int fmLocalDateMonth, int fmLocalDateYear) TimesOfNewMoonAndFullMoon(bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
164 {
165 int daylightSaving = isDaylightSaving ? 1 : 0;
166
167 double jdOfNewMoonDays = PAMacros.NewMoon(daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
168 double jdOfFullMoonDays = PAMacros.FullMoon(3, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
169
170 double gDateOfNewMoonDay = PAMacros.JulianDateDay(jdOfNewMoonDays);
171 double integerDay1 = gDateOfNewMoonDay.Floor();
172 int gDateOfNewMoonMonth = PAMacros.JulianDateMonth(jdOfNewMoonDays);
173 int gDateOfNewMoonYear = PAMacros.JulianDateYear(jdOfNewMoonDays);
174
175 double gDateOfFullMoonDay = PAMacros.JulianDateDay(jdOfFullMoonDays);
176 double integerDay2 = gDateOfFullMoonDay.Floor();
177 int gDateOfFullMoonMonth = PAMacros.JulianDateMonth(jdOfFullMoonDays);
178 int gDateOfFullMoonYear = PAMacros.JulianDateYear(jdOfFullMoonDays);
179
180 double utOfNewMoonHours = 24.0 * (gDateOfNewMoonDay - integerDay1);
181 double utOfFullMoonHours = 24.0 * (gDateOfFullMoonDay - integerDay2);
182 double lctOfNewMoonHours = PAMacros.UniversalTimeToLocalCivilTime(utOfNewMoonHours + 0.008333, 0, 0, daylightSaving, zoneCorrectionHours, integerDay1, gDateOfNewMoonMonth, gDateOfNewMoonYear);
183 double lctOfFullMoonHours = PAMacros.UniversalTimeToLocalCivilTime(utOfFullMoonHours + 0.008333, 0, 0, daylightSaving, zoneCorrectionHours, integerDay2, gDateOfFullMoonMonth, gDateOfFullMoonYear);
184
185 int nmLocalTimeHour = PAMacros.DecimalHoursHour(lctOfNewMoonHours);
186 int nmLocalTimeMin = PAMacros.DecimalHoursMinute(lctOfNewMoonHours);
187 double nmLocalDateDay = PAMacros.UniversalTime_LocalCivilDay(utOfNewMoonHours, 0, 0, daylightSaving, zoneCorrectionHours, integerDay1, gDateOfNewMoonMonth, gDateOfNewMoonYear);
188 int nmLocalDateMonth = PAMacros.UniversalTime_LocalCivilMonth(utOfNewMoonHours, 0, 0, daylightSaving, zoneCorrectionHours, integerDay1, gDateOfNewMoonMonth, gDateOfNewMoonYear);
189 int nmLocalDateYear = PAMacros.UniversalTime_LocalCivilYear(utOfNewMoonHours, 0, 0, daylightSaving, zoneCorrectionHours, integerDay1, gDateOfNewMoonMonth, gDateOfNewMoonYear);
190 int fmLocalTimeHour = PAMacros.DecimalHoursHour(lctOfFullMoonHours);
191 int fmLocalTimeMin = PAMacros.DecimalHoursMinute(lctOfFullMoonHours);
192 double fmLocalDateDay = PAMacros.UniversalTime_LocalCivilDay(utOfFullMoonHours, 0, 0, daylightSaving, zoneCorrectionHours, integerDay2, gDateOfFullMoonMonth, gDateOfFullMoonYear);
193 int fmLocalDateMonth = PAMacros.UniversalTime_LocalCivilMonth(utOfFullMoonHours, 0, 0, daylightSaving, zoneCorrectionHours, integerDay2, gDateOfFullMoonMonth, gDateOfFullMoonYear);
194 int fmLocalDateYear = PAMacros.UniversalTime_LocalCivilYear(utOfFullMoonHours, 0, 0, daylightSaving, zoneCorrectionHours, integerDay2, gDateOfFullMoonMonth, gDateOfFullMoonYear);
195
197 }
198
210 public (double earthMoonDist, double angDiameterDeg, double angDiameterMin, double horParallaxDeg, double horParallaxMin, double horParallaxSec) MoonDistAngDiamHorParallax(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
211 {
212 int daylightSaving = isDaylightSaving ? 1 : 0;
213
214 double moonDistance = PAMacros.MoonDist(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
215 double moonAngularDiameter = PAMacros.MoonSize(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
216 double moonHorizontalParallax = PAMacros.MoonHP(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear);
217
218 double earthMoonDist = Math.Round(moonDistance, 0);
219 double angDiameterDeg = PAMacros.DecimalDegreesDegrees(moonAngularDiameter + 0.008333);
220 double angDiameterMin = PAMacros.DecimalDegreesMinutes(moonAngularDiameter + 0.008333);
221 double horParallaxDeg = PAMacros.DecimalDegreesDegrees(moonHorizontalParallax);
222 double horParallaxMin = PAMacros.DecimalDegreesMinutes(moonHorizontalParallax);
223 double horParallaxSec = PAMacros.DecimalDegreesSeconds(moonHorizontalParallax);
224
226 }
227
245 public (double mrLTHour, double mrLTMin, double mrLocalDateDay, int mrLocalDateMonth, int mrLocalDateYear, double mrAzimuthDeg, double msLTHour, double msLTMin, double msLocalDateDay, int msLocalDateMonth, int msLocalDateYear, double msAzimuthDeg) MoonriseAndMoonset(double localDateDay, int localDateMonth, int localDateYear, bool isDaylightSaving, int zoneCorrectionHours, double geogLongDeg, double geogLatDeg)
246 {
247 int daylightSaving = isDaylightSaving ? 1 : 0;
248
249 double localTimeOfMoonriseHours = PAMacros.MoonRiseLCT(localDateDay, localDateMonth, localDateYear, daylightSaving, zoneCorrectionHours, geogLongDeg, geogLatDeg);
250 (double dy1, int mn1, int yr1) moonRiseLCResult = PAMacros.MoonRiseLcDMY(localDateDay, localDateMonth, localDateYear, daylightSaving, zoneCorrectionHours, geogLongDeg, geogLatDeg);
251 double localAzimuthDeg1 = PAMacros.MoonRiseAz(localDateDay, localDateMonth, localDateYear, daylightSaving, zoneCorrectionHours, geogLongDeg, geogLatDeg);
252
253 double localTimeOfMoonsetHours = PAMacros.MoonSetLCT(localDateDay, localDateMonth, localDateYear, daylightSaving, zoneCorrectionHours, geogLongDeg, geogLatDeg);
254 (double dy1, int mn1, int yr1) moonSetLCResult = PAMacros.MoonSetLcDMY(localDateDay, localDateMonth, localDateYear, daylightSaving, zoneCorrectionHours, geogLongDeg, geogLatDeg);
255 double localAzimuthDeg2 = PAMacros.MoonSetAz(localDateDay, localDateMonth, localDateYear, daylightSaving, zoneCorrectionHours, geogLongDeg, geogLatDeg);
256
257 int mrLTHour = PAMacros.DecimalHoursHour(localTimeOfMoonriseHours + 0.008333);
258 int mrLTMin = PAMacros.DecimalHoursMinute(localTimeOfMoonriseHours + 0.008333);
259 double mrLocalDateDay = moonRiseLCResult.dy1;
260 int mrLocalDateMonth = moonRiseLCResult.mn1;
261 int mrLocalDateYear = moonRiseLCResult.yr1;
262 double mrAzimuthDeg = Math.Round(localAzimuthDeg1, 2);
263 int msLTHour = PAMacros.DecimalHoursHour(localTimeOfMoonsetHours + 0.008333);
264 int msLTMin = PAMacros.DecimalHoursMinute(localTimeOfMoonsetHours + 0.008333);
265 double msLocalDateDay = moonSetLCResult.dy1;
266 int msLocalDateMonth = moonSetLCResult.mn1;
267 int msLocalDateYear = moonSetLCResult.yr1;
268 double msAzimuthDeg = Math.Round(localAzimuthDeg2, 2);
269
271 }
272}
Miscellaneous macro functions supporting the other classes.
Definition PAMacros.cs:13
static double int int yr1 MoonRiseLcDMY(double dy, int mn, int yr, int ds, int zc, double gLong, double gLat)
Definition PAMacros.cs:3849
static double NewMoon(int ds, int zc, double dy, int mn, int yr)
Calculate Julian date of New Moon.
Definition PAMacros.cs:3534
static double LocalCivilTimeGreenwichDay(double lctHours, double lctMinutes, double lctSeconds, int daylightSaving, int zoneCorrection, double localDay, int localMonth, int localYear)
Determine Greenwich Day for Local Time.
Definition PAMacros.cs:323
static double CivilDateToJulianDate(double day, double month, double year)
Convert a Greenwich Date/Civil Date (day,month,year) to Julian Date.
Definition PAMacros.cs:87
static double MoonRiseAz(double dy, int mn, int yr, int ds, int zc, double gLong, double gLat)
Local azimuth of moonrise.
Definition PAMacros.cs:3964
static int UniversalTime_LocalCivilYear(double uHours, double uMinutes, double uSeconds, int daylightSaving, int zoneCorrection, double greenwichDay, int greenwichMonth, int greenwichYear)
Get Local Civil Year for Universal Time.
Definition PAMacros.cs:307
static double Degrees(double w)
Convert W to Degrees.
Definition PAMacros.cs:463
static double UniversalTime_LocalCivilDay(double uHours, double uMinutes, double uSeconds, int daylightSaving, int zoneCorrection, double greenwichDay, int greenwichMonth, int greenwichYear)
Get Local Civil Day for Universal Time.
Definition PAMacros.cs:273
static double MoonRiseLCT(double dy, int mn, int yr, int ds, int zc, double gLong, double gLat)
Local time of moonrise.
Definition PAMacros.cs:3729
static double NutatLong(double gd, int gm, int gy)
Nutation amount to be added in ecliptic longitude, in degrees.
Definition PAMacros.cs:600
static double EcDec(double eld, double elm, double els, double bd, double bm, double bs, double gd, int gm, int gy)
Ecliptic - Declination (degrees)
Definition PAMacros.cs:1551
static double double double moonHorPara MoonLongLatHP(double lh, double lm, double ls, int ds, int zc, double dy, int mn, int yr)
Definition PAMacros.cs:3310
static double MoonPhase(double lh, double lm, double ls, int ds, int zc, double dy, int mn, int yr)
Calculate current phase of Moon.
Definition PAMacros.cs:3458
static double JulianDateDay(double julianDate)
Returns the day part of a Julian Date.
Definition PAMacros.cs:134
static double DecimalDegreesToDegreeHours(double decimalDegrees)
Convert Decimal Degrees to Degree-Hours.
Definition PAMacros.cs:522
static double UnwindDeg(double w)
Convert angle in degrees to equivalent angle in the range 0 to 360 degrees.
Definition PAMacros.cs:1496
static double MoonSetLCT(double dy, int mn, int yr, int ds, int zc, double gLong, double gLat)
Local time of moonset.
Definition PAMacros.cs:4073
static double int int yr1 MoonSetLcDMY(double dy, int mn, int yr, int ds, int zc, double gLong, double gLat)
Definition PAMacros.cs:4192
static int UniversalTime_LocalCivilMonth(double uHours, double uMinutes, double uSeconds, int daylightSaving, int zoneCorrection, double greenwichDay, int greenwichMonth, int greenwichYear)
Get Local Civil Month for Universal Time.
Definition PAMacros.cs:291
static double MoonSize(double lh, double lm, double ls, int ds, int zc, double dy, int mn, int yr)
Calculate the Moon's angular diameter (degrees)
Definition PAMacros.cs:1470
static double EcRA(double eld, double elm, double els, double bd, double bm, double bs, double gd, int gm, int gy)
Ecliptic - Right Ascension (degrees)
Definition PAMacros.cs:1567
static double MoonHP(double lh, double lm, double ls, int ds, int zc, double dy, int mn, int yr)
Calculate horizontal parallax for the Moon.
Definition PAMacros.cs:1376
static int DecimalHoursMinute(double decimalHours)
Return the minutes part of a Decimal Hours.
Definition PAMacros.cs:55
static double FullMoon(int ds, int zc, double dy, int mn, int yr)
Calculate Julian date of Full Moon.
Definition PAMacros.cs:3567
static double DecimalHoursSecond(double decimalHours)
Return the seconds part of a Decimal Hours.
Definition PAMacros.cs:71
static double DecimalDegreesSeconds(double decimalDegrees)
Return Seconds part of Decimal Degrees.
Definition PAMacros.cs:506
static int JulianDateMonth(double julianDate)
Returns the month part of a Julian Date.
Definition PAMacros.cs:154
static double SunMeanAnomaly(double lch, double lcm, double lcs, int ds, int zc, double ld, int lm, int ly)
Calculate the Sun's mean anomaly.
Definition PAMacros.cs:1613
static int DecimalHoursHour(double decimalHours)
Return the hour part of a Decimal Hours.
Definition PAMacros.cs:39
static int JulianDateYear(double julianDate)
Returns the year part of a Julian Date.
Definition PAMacros.cs:175
static double SunLong(double lch, double lcm, double lcs, int ds, int zc, double ld, int lm, int ly)
Calculate Sun's ecliptic longitude.
Definition PAMacros.cs:760
static double UniversalTimeToLocalCivilTime(double uHours, double uMinutes, double uSeconds, int daylightSaving, int zoneCorrection, double greenwichDay, int greenwichMonth, int greenwichYear)
Convert Universal Time to Local Civil Time.
Definition PAMacros.cs:255
static double MoonDist(double lh, double lm, double ls, int ds, int zc, double dy, int mn, int yr)
Calculate distance from the Earth to the Moon (km)
Definition PAMacros.cs:1456
static double LocalCivilTimeToUniversalTime(double lctHours, double lctMinutes, double lctSeconds, int daylightSaving, int zoneCorrection, double localDay, int localMonth, int localYear)
Convert Local Civil Time to Universal Time.
Definition PAMacros.cs:237
static double DecimalDegreesMinutes(double decimalDegrees)
Return Minutes part of Decimal Degrees.
Definition PAMacros.cs:490
static int LocalCivilTimeGreenwichMonth(double lctHours, double lctMinutes, double lctSeconds, int daylightSaving, int zoneCorrection, double localDay, int localMonth, int localYear)
Determine Greenwich Month for Local Time.
Definition PAMacros.cs:340
static double DecimalDegreesDegrees(double decimalDegrees)
Return Degrees part of Decimal Degrees.
Definition PAMacros.cs:474
static double MoonSetAz(double dy, int mn, int yr, int ds, int zc, double gLong, double gLat)
Local azimuth of moonset.
Definition PAMacros.cs:4306
static int LocalCivilTimeGreenwichYear(double lctHours, double lctMinutes, double lctSeconds, int daylightSaving, int zoneCorrection, double localDay, int localMonth, int localYear)
Determine Greenwich Year for Local Time.
Definition PAMacros.cs:356
Moon calculations.
Definition PAMoon.cs:10
double moonRAHour
Calculate approximate position of the Moon.
Definition PAMoon.cs:22
double double double int mrLocalDateMonth
Definition PAMoon.cs:245
double double moonRAMin
Definition PAMoon.cs:22
double mrLTHour
Calculate date/time of local moonrise and moonset.
Definition PAMoon.cs:245
double double paBrightLimbDeg MoonPhase(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear, PAAccuracyLevel accuracyLevel)
Definition PAMoon.cs:118
double double double double double moonDecMin
Definition PAMoon.cs:22
double moonPhase
Calculate Moon phase and position angle of bright limb.
Definition PAMoon.cs:118
double double double int int double mrAzimuthDeg
Definition PAMoon.cs:245
double double double int int double double double double int int double msAzimuthDeg MoonriseAndMoonset(double localDateDay, int localDateMonth, int localDateYear, bool isDaylightSaving, int zoneCorrectionHours, double geogLongDeg, double geogLatDeg)
Definition PAMoon.cs:245
double double double int int mrLocalDateYear
Definition PAMoon.cs:245
double double mrLTMin
Definition PAMoon.cs:245
double double double int nmLocalDateMonth
Definition PAMoon.cs:163
double double double int int double double double double int int msLocalDateYear
Definition PAMoon.cs:245
double double double int int double double double int int fmLocalDateYear TimesOfNewMoonAndFullMoon(bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
Definition PAMoon.cs:163
double double double int int double double double msLTMin
Definition PAMoon.cs:245
double double double double horParallaxDeg
Definition PAMoon.cs:210
double double angDiameterDeg
Definition PAMoon.cs:210
double double double double double double moonDecSec
Definition PAMoon.cs:83
double double double double double double moonDecSec ApproximatePositionOfMoon(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
Definition PAMoon.cs:22
double double double double double double double earthMoonDistKM
Definition PAMoon.cs:83
double double double int int double fmLocalTimeHour
Definition PAMoon.cs:163
double double double int int double double double double msLocalDateDay
Definition PAMoon.cs:245
double double double double double horParallaxMin
Definition PAMoon.cs:210
double double double int int double double double double int msLocalDateMonth
Definition PAMoon.cs:245
double nmLocalTimeHour
Calculate new moon and full moon instances.
Definition PAMoon.cs:163
double double double int int double double fmLocalTimeMin
Definition PAMoon.cs:163
double double double nmLocalDateDay
Definition PAMoon.cs:163
double double double double double double horParallaxSec MoonDistAngDiamHorParallax(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
Definition PAMoon.cs:210
double double double double double double double double moonHorParallaxDeg PrecisePositionOfMoon(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear)
Definition PAMoon.cs:83
double double double angDiameterMin
Definition PAMoon.cs:210
double double nmLocalTimeMin
Definition PAMoon.cs:163
double earthMoonDist
Calculate Moon's distance, angular diameter, and horizontal parallax.
Definition PAMoon.cs:210
double double double double moonDecDeg
Definition PAMoon.cs:22
double double double int int nmLocalDateYear
Definition PAMoon.cs:163
double double double moonRASec
Definition PAMoon.cs:22
double double double int int double double double int fmLocalDateMonth
Definition PAMoon.cs:163
double double double int int double double msLTHour
Definition PAMoon.cs:245
double double double mrLocalDateDay
Definition PAMoon.cs:245
double double double int int double double double fmLocalDateDay
Definition PAMoon.cs:163
PAAccuracyLevel
Accuracy level of calculation.
Definition PATypes.cs:65