Practical Astronomy Algorithms in .NET/C#
Loading...
Searching...
No Matches
CometData.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.Linq;
3
4namespace PALib.Data;
5
10{
14 public string Name { get; set; }
15
19 public double epoch_EpochOfPerihelion { get; set; }
20
24 public double peri_LongitudeOfPerihelion { get; set; }
25
29 public double node_LongitudeOfAscendingNode { get; set; }
30
34 public double period_PeriodOfOrbit { get; set; }
35
39 public double axis_SemiMajorAxisOfOrbit { get; set; }
40
44 public double ecc_EccentricityOfOrbit { get; set; }
45
49 public double incl_InclinationOfOrbit { get; set; }
50}
51
56{
60 public string Name { get; set; }
61
65 public double EpochPeriDay { get; set; }
66
70 public int EpochPeriMonth { get; set; }
71
75 public int EpochPeriYear { get; set; }
76
80 public double ArgPeri { get; set; }
81
85 public double Node { get; set; }
86
90 public double PeriDist { get; set; }
91
95 public double Incl { get; set; }
96}
97
101public static class CometInfoElliptical
102{
103 static List<CometDataElliptical> _cometDataElliptical;
104
106 {
107 _cometDataElliptical = new List<CometDataElliptical>() {
108 new CometDataElliptical() {
109 Name = "Encke",
110 epoch_EpochOfPerihelion = 1974.32,
111 peri_LongitudeOfPerihelion = 160.1,
112 node_LongitudeOfAscendingNode = 334.2,
113 period_PeriodOfOrbit = 3.3,
114 axis_SemiMajorAxisOfOrbit = 2.21,
115 ecc_EccentricityOfOrbit = 0.85,
116 incl_InclinationOfOrbit = 12.0
117 },
118 new CometDataElliptical() {
119 Name = "Temple 2",
120 epoch_EpochOfPerihelion = 1972.87,
121 peri_LongitudeOfPerihelion = 310.2,
122 node_LongitudeOfAscendingNode = 119.3,
123 period_PeriodOfOrbit = 5.26,
124 axis_SemiMajorAxisOfOrbit = 3.02,
125 ecc_EccentricityOfOrbit = 0.55,
126 incl_InclinationOfOrbit = 12.5
127 },
128 new CometDataElliptical() {
129 Name = "Haneda-Campos",
130 epoch_EpochOfPerihelion = 1978.77,
131 peri_LongitudeOfPerihelion = 12.02,
132 node_LongitudeOfAscendingNode = 131.7,
133 period_PeriodOfOrbit = 5.37,
134 axis_SemiMajorAxisOfOrbit = 3.07,
135 ecc_EccentricityOfOrbit = 0.64,
136 incl_InclinationOfOrbit = 5.81
137 },
138 new CometDataElliptical() {
139 Name = "Schwassmann-Wachmann 2",
140 epoch_EpochOfPerihelion = 1974.7,
141 peri_LongitudeOfPerihelion = 123.3,
142 node_LongitudeOfAscendingNode = 126.0,
143 period_PeriodOfOrbit = 6.51,
144 axis_SemiMajorAxisOfOrbit = 3.49,
145 ecc_EccentricityOfOrbit = 0.39,
146 incl_InclinationOfOrbit = 3.7
147 },
148 new CometDataElliptical() {
149 Name = "Borrelly",
150 epoch_EpochOfPerihelion = 1974.36,
151 peri_LongitudeOfPerihelion = 67.8,
152 node_LongitudeOfAscendingNode = 75.1,
153 period_PeriodOfOrbit = 6.76,
154 axis_SemiMajorAxisOfOrbit = 3.58,
155 ecc_EccentricityOfOrbit = 0.63,
156 incl_InclinationOfOrbit = 30.2
157 },
158 new CometDataElliptical() {
159 Name = "Whipple",
160 epoch_EpochOfPerihelion = 1970.77,
161 peri_LongitudeOfPerihelion = 18.2,
162 node_LongitudeOfAscendingNode = 188.4,
163 period_PeriodOfOrbit = 7.47,
164 axis_SemiMajorAxisOfOrbit = 3.82,
165 ecc_EccentricityOfOrbit = 0.35,
166 incl_InclinationOfOrbit = 10.2
167 },
168 new CometDataElliptical() {
169 Name = "Oterma",
170 epoch_EpochOfPerihelion = 1958.44,
171 peri_LongitudeOfPerihelion = 150.0,
172 node_LongitudeOfAscendingNode = 155.1,
173 period_PeriodOfOrbit = 7.88,
174 axis_SemiMajorAxisOfOrbit = 3.96,
175 ecc_EccentricityOfOrbit = 0.14,
176 incl_InclinationOfOrbit = 4.0
177 },
178 new CometDataElliptical() {
179 Name = "Schaumasse",
180 epoch_EpochOfPerihelion = 1960.29,
181 peri_LongitudeOfPerihelion = 138.1,
182 node_LongitudeOfAscendingNode = 86.2,
183 period_PeriodOfOrbit = 8.18,
184 axis_SemiMajorAxisOfOrbit = 4.05,
185 ecc_EccentricityOfOrbit = 0.71,
186 incl_InclinationOfOrbit = 12.0
187 },
188 new CometDataElliptical() {
189 Name = "Comas Sola",
190 epoch_EpochOfPerihelion = 1969.83,
191 peri_LongitudeOfPerihelion = 102.9,
192 node_LongitudeOfAscendingNode = 62.8,
193 period_PeriodOfOrbit = 8.55,
194 axis_SemiMajorAxisOfOrbit = 4.18,
195 ecc_EccentricityOfOrbit = 0.58,
196 incl_InclinationOfOrbit = 13.4
197 },
198 new CometDataElliptical() {
199 Name = "Schwassmann-Wachmann 1",
200 epoch_EpochOfPerihelion = 1974.12,
201 peri_LongitudeOfPerihelion = 334.1,
202 node_LongitudeOfAscendingNode = 319.6,
203 period_PeriodOfOrbit = 15.03,
204 axis_SemiMajorAxisOfOrbit = 6.09,
205 ecc_EccentricityOfOrbit = 0.11,
206 incl_InclinationOfOrbit = 9.7
207 },
208 new CometDataElliptical() {
209 Name = "Neujmin 1",
210 epoch_EpochOfPerihelion = 1966.94,
211 peri_LongitudeOfPerihelion = 334.0,
212 node_LongitudeOfAscendingNode = 347.2,
213 period_PeriodOfOrbit = 17.93,
214 axis_SemiMajorAxisOfOrbit = 6.86,
215 ecc_EccentricityOfOrbit = 0.78,
216 incl_InclinationOfOrbit = 15.0
217 },
218 new CometDataElliptical() {
219 Name = "Crommelin",
220 epoch_EpochOfPerihelion = 1956.82,
221 peri_LongitudeOfPerihelion = 86.4,
222 node_LongitudeOfAscendingNode = 250.4,
223 period_PeriodOfOrbit = 27.89,
224 axis_SemiMajorAxisOfOrbit = 9.17,
225 ecc_EccentricityOfOrbit = 0.92,
226 incl_InclinationOfOrbit = 28.9
227 },
228 new CometDataElliptical() {
229 Name = "Olbers",
230 epoch_EpochOfPerihelion = 1956.46,
231 peri_LongitudeOfPerihelion = 150.0,
232 node_LongitudeOfAscendingNode = 85.4,
233 period_PeriodOfOrbit = 69.47,
234 axis_SemiMajorAxisOfOrbit = 16.84,
235 ecc_EccentricityOfOrbit = 0.93,
236 incl_InclinationOfOrbit = 44.6
237 },
238 new CometDataElliptical() {
239 Name = "Pons-Brooks",
240 epoch_EpochOfPerihelion = 1954.39,
241 peri_LongitudeOfPerihelion = 94.2,
242 node_LongitudeOfAscendingNode = 255.2,
243 period_PeriodOfOrbit = 70.98,
244 axis_SemiMajorAxisOfOrbit = 17.2,
245 ecc_EccentricityOfOrbit = 0.96,
246 incl_InclinationOfOrbit = 74.2
247 },
248 new CometDataElliptical() {
249 Name = "Halley",
250 epoch_EpochOfPerihelion = 1986.112,
251 peri_LongitudeOfPerihelion = 170.011,
252 node_LongitudeOfAscendingNode = 58.154,
253 period_PeriodOfOrbit = 76.0081,
254 axis_SemiMajorAxisOfOrbit = 17.9435,
255 ecc_EccentricityOfOrbit = 0.9673,
256 incl_InclinationOfOrbit = 162.2384
257
258 }
259 };
260 }
261
266 {
268 .Where(x => x.Name == name)
269 .Select(x => x)
270 .FirstOrDefault();
271
272 return (returnValue == null) ? new CometDataElliptical() { Name = "NotFound" } : returnValue;
273 }
274}
275
279public static class CometInfoParabolic
280{
281 static List<CometDataParabolic> _cometDataParabolic;
282
284 {
285 _cometDataParabolic = new List<CometDataParabolic>() {
286 new CometDataParabolic() {
287 Name = "Kohler",
288 EpochPeriDay = 10.5659,
289 EpochPeriMonth = 11,
290 EpochPeriYear = 1977,
291 ArgPeri = 163.4799,
292 Node = 181.8175,
293 PeriDist = 0.990662,
294 Incl = 48.7196
295 }
296 };
297 }
298
302 public static CometDataParabolic GetCometParabolicInfo(string name)
303 {
305 .Where(x => x.Name == name)
306 .Select(x => x)
307 .FirstOrDefault();
308
309 return (returnValue == null) ? new CometDataParabolic() { Name = "NotFound" } : returnValue;
310 }
311}
Information about a comet with an elliptical orbit.
Definition CometData.cs:10
double incl_InclinationOfOrbit
Inclination of the orbit.
Definition CometData.cs:49
double axis_SemiMajorAxisOfOrbit
Semi-major axis of the orbit.
Definition CometData.cs:39
double epoch_EpochOfPerihelion
Epoch of the perihelion.
Definition CometData.cs:19
double ecc_EccentricityOfOrbit
Eccentricity of the orbit.
Definition CometData.cs:44
double peri_LongitudeOfPerihelion
Longitude of the perihelion.
Definition CometData.cs:24
string Name
Name of comet.
Definition CometData.cs:14
double period_PeriodOfOrbit
Period of the orbit.
Definition CometData.cs:34
double node_LongitudeOfAscendingNode
Longitude of the ascending node.
Definition CometData.cs:29
Information about a comet with a parabolic orbit.
Definition CometData.cs:56
double Node
Comet's node.
Definition CometData.cs:85
double Incl
Inclination.
Definition CometData.cs:95
double ArgPeri
Arg perihelion.
Definition CometData.cs:80
int EpochPeriYear
Epoch perihelion year.
Definition CometData.cs:75
string Name
Name of the comet.
Definition CometData.cs:60
int EpochPeriMonth
Epoch perihelion month.
Definition CometData.cs:70
double PeriDist
Distance at the perihelion.
Definition CometData.cs:90
double EpochPeriDay
Epoch perihelion day.
Definition CometData.cs:65
Data manager for comets with elliptical orbits.
Definition CometData.cs:102
static List< CometDataElliptical > _cometDataElliptical
Definition CometData.cs:103
static CometDataElliptical GetCometEllipticalInfo(string name)
Get information about a comet with an elliptical orbit.
Definition CometData.cs:265
Data manager for comets with parabolic orbits.
Definition CometData.cs:280
static CometDataParabolic GetCometParabolicInfo(string name)
Get information about a comet with a parabolic orbit.
Definition CometData.cs:302
static List< CometDataParabolic > _cometDataParabolic
Definition CometData.cs:281