Exemplo n.º 1
0
            private static MPEphEntry ParseLine(string line)
            {
                // 00055
                // Date       UT      R.A. (J2000) Decl.    Delta     r     El.    Ph.   V      Sky Motion        Object    Sun   Moon                Uncertainty info
                //            h m s                                                            "/min    P.A.    Azi. Alt.  Alt.  Phase Dist. Alt.    3-sig/" P.A.
                //                                                                                                     1         1         1         1         1
                //           1         2         3         4         5         6         7         8         9         0         1         2         3         4
                // 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
                // 2009 07 27 124800 22 18 36.1 -20 15 18   1.545   2.497  153.8  10.3  11.4    0.40    249.0    264  +47   -68   0.36   130  +03         0 318.1
                // 2010 12 11 130549 07 34 48.3 -17 52 01   0.342   1.220  126.5  40.5   7.9    0.54    235.0    261  +46   -32   0.31   137  -03

                try
                {
                    MPEphEntry retVal = new MPEphEntry();

                    int year  = int.Parse(line.Substring(0, 4).Trim());
                    int month = int.Parse(line.Substring(5, 2).Trim());
                    int day   = int.Parse(line.Substring(8, 2).Trim());
                    int hr    = int.Parse(line.Substring(11, 2).Trim());
                    int min   = int.Parse(line.Substring(13, 2).Trim());
                    int sec   = int.Parse(line.Substring(15, 2).Trim());

                    retVal.UtcDate   = new DateTime(year, month, day, hr, min, sec);
                    retVal.RAHours   = AstroConvert.ToRightAcsension(line.Substring(18, 10).Trim());
                    retVal.DEDeg     = AstroConvert.ToDeclination(line.Substring(29, 9).Trim());
                    retVal.Mag       = double.Parse(line.Substring(69, 4).Trim(), CultureInfo.InvariantCulture);
                    retVal.SkyMotion = double.Parse(line.Substring(74, 7).Trim(), CultureInfo.InvariantCulture);

                    return(retVal);
                }
                catch
                {
                    return(null);
                }
            }
Exemplo n.º 2
0
            internal static List <MPEphEntry> Parse(string preTagContent)
            {
                List <MPEphEntry> result = new List <MPEphEntry>();

                string[] lines = preTagContent.Split(new string[] { "\n" }, StringSplitOptions.None);
                foreach (string line in lines)
                {
                    Trace.WriteLine(line);
                    if (line.StartsWith("20"))
                    {
                        MPEphEntry entry = ParseLine(line);
                        if (entry != null)
                        {
                            result.Add(entry);
                        }
                    }
                }

                return(result);
            }
Exemplo n.º 3
0
            private static MPEphEntry ParseLine(string line)
            {
                // 00055
                // Date       UT      R.A. (J2000) Decl.    Delta     r     El.    Ph.   V      Sky Motion        Object    Sun   Moon                Uncertainty info
                //            h m s                                                            "/min    P.A.    Azi. Alt.  Alt.  Phase Dist. Alt.    3-sig/" P.A.
                //                                                                                                     1         1         1         1         1
                //           1         2         3         4         5         6         7         8         9         0         1         2         3         4
                // 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
                // 2009 07 27 124800 22 18 36.1 -20 15 18   1.545   2.497  153.8  10.3  11.4    0.40    249.0    264  +47   -68   0.36   130  +03         0 318.1
                // 2010 12 11 130549 07 34 48.3 -17 52 01   0.342   1.220  126.5  40.5   7.9    0.54    235.0    261  +46   -32   0.31   137  -03

                try
                {
                    MPEphEntry retVal = new MPEphEntry();

                    int year = int.Parse(line.Substring(0, 4).Trim());
                    int month = int.Parse(line.Substring(5, 2).Trim());
                    int day = int.Parse(line.Substring(8, 2).Trim());
                    int hr = int.Parse(line.Substring(11, 2).Trim());
                    int min = int.Parse(line.Substring(13, 2).Trim());
                    int sec = int.Parse(line.Substring(15, 2).Trim());

                    retVal.UtcDate = new DateTime(year, month, day, hr, min, sec);
                    retVal.RAHours = AstroConvert.ToRightAcsension(line.Substring(18, 10).Trim());
                    retVal.DEDeg = AstroConvert.ToDeclination(line.Substring(29, 9).Trim());
                    retVal.Mag = double.Parse(line.Substring(69, 4).Trim(), CultureInfo.InvariantCulture);
                    retVal.SkyMotion = double.Parse(line.Substring(74, 7).Trim(), CultureInfo.InvariantCulture);

                    return retVal;
                }
                catch
                {
                    return null;
                }
            }