The OrbitTools Libraries Track Library
Source Code Example #2 |
|
// // This program illustrates how to use the OrbitTools Track Library to // create a set of LAT/LON points that represent a satellite ground // track. // // Copyright © 2012-2014 Michael F. Henry // 2014-07-07 // using System; using System.Collections.Generic; using Zeptomoby.OrbitTools; using Zeptomoby.OrbitTools.Pro; using Zeptomoby.OrbitTools.Track; namespace TrackExample2 { class Program { static void Main(string[] args) { // Create the TLE object, and the corresponding Satellite object Tle tle = new Tle( "GPS BIIF-2 (PRN 01)", "1 37753U 11036A 12043.26600496 .00000050 00000-0 00000+0 0 1793", "2 37753 55.0122 178.4391 0003903 34.9135 325.0832 2.00565114 4219"); Satellite sat = new Satellite(tle, new Wgs84()); // The times t1 and t2 are the start/stop times of the ground track. DateTime t1 = new DateTime(2012, 02, 14, 1, 30, 0); // UTC: 2012-02-14 01:30 DateTime t2 = t1 + sat.Orbit.Period; // There are several overloads of the GroundTrack() method, to allow: // - Specifying times with DateTime objects; // - Specifying times with minutes-past-epoch values; // - Obtaining LAT/LON points that are equally-spaced in distance; // - Obtaining LAT/LON points that are equally-spaced in time. // In this example a list of ground track points are created for the // time window t1..t2 with a distance spacing of 100 kilometers. IList<GeoTime> points = sat.GroundTrack(t1, t2, 100.0); Console.WriteLine("Total number of ground track points: {0}", points.Count); foreach (GeoTime pt in points) { double lat = pt.LatitudeDeg; // negative values = south double lon = pt.LongitudeDeg; // negative values = west Console.WriteLine("{0:F3}, {1:F3}", lat, lon); } // Program output: // // Total number of ground track points: 309 // -29.767, 215.922 // -30.633, 216.230 // -31.489, 216.553 // -32.341, 216.892 // -33.188, 217.250 // ( output truncated... ) // -26.768, 34.984 // -27.639, 35.239 // -28.507, 35.507 // -29.372, 35.790 // -29.776, 35.928 // } } } |
|
|