Archive for August, 2010
In a previous Nog I wrote, an interesting result showed up. The Second Space Operations Squadron (2SOPs) is currently in the midst of rephasing several GPS satellites – to optimize the coverage the entire constellation provides. I analyzed the coverage before and after the optimization and showed plots of the coverage in both instances. In one of the plots, the sheer number of GPS satellites available for your GPS receiver goes down AFTER the optimization. This is a little non-intuitive, especially for those of us who have been in the GPS business awhile. We tend to equate Dilution of Precision (DOP), that value associated with the GPS satellites’ orientation, with navigation accuracy. This is somewhat true, but not always.
I decided to see how I could use AGI’s navigation library to prove the point - so I wrote a small application that runs over a single day, at 60 second intervals. You can choose to calculate over one site or more, randomly picked around the globe. So, over one site, I’ll get 1440 points of data. The sites use a 5 degree mask angle above the horizon and the tool uses a SEM almanac and PAF file for July 1, 2010.
I want to show graphs of the following:
- The PDOP value against the number of GPS satellites
- The position navigation accuracy against the number of GPS satellites
- The position navigation accuracy against the PDOP value
- Oh, and a histogram of the number of available GPS satellites
So this tool serves two purposes – it let’s you play with the generated data, using as many sites as you like, to determine how much or how little the number of GPS satellites available affects your navigation error. It also shows you how to create a simple program using (and how easy it is to program with!) our AGI components. The components are free for development and personal use and can be downloaded here: http://adn.agi.com/detailedView.cfm?resourceId=240.
So let’s look at the tool I created. I built it using the C# .Net language (my favorite). It’s a standard Windows form application, built using MS Visual Studio 2008. If you want to build and run this tool yourself (HIGHLY recommended) you’ll need some things. See the Appendix at the end of this Nog for details. The main tool looks like this:
As the well-spelled-out instructions state, you just pick the number of sites you want the tool to use for the analysis, then press the calculate button. Once the calculations are finished, you can select any of the four buttons to plot the results.
Let’s look at some typical results. I’m going to pick 30 sites to use – that gives a better average number.
Number of GPS SVs v. PDOP
Here’s the plot of the Position DOP against the number of GPS Satellite’s available for solution.
Number of GPS SVs v. Navigation Error
Let’s see how the navigation error looks against the number of GPS SVs.
There is no clear trend here, we get roughly the same spread of errors with 13 satellites in view as we do with 8. There is a slight decreasing trend after 13 satellites though. Build the tool yourself and play with the number of sites to see if this is an artifact of the random sites used for my run, or if these results are repeatable.
PDOP v. Navigation Error
So it doesn’t look like the number of satellites affects my navigation error – but does PDOP affect my navigation error? Mathematically, we know it does:
Here Delta-X is the positioning error vector, G is the geometry matrix and delta-rho is the vector of corrected pseudorange errors. The relationship is linear, though in a matrix framework. Let’s see how this looks graphically:
Not as linear as you might see in a textbook example. In fact, some areas of relatively high PDOP (4-5) have very low navigation error, meaning the pseudorange errors are very small there. Conversely, some low PDOP data points have a comparatively high navigation error, meaning the pseudorange errors are large at those points.
Number of GPS SVs Histogram
Just for fun, here’s the histogram of the number of GPS SVs at all 30 locations over the entire day.
Based on this single run (and the 100 or so I’ve already done and seen), It is evident that the more SVs available to you, the better your DOP is. This does not mean that your accuracy will be better though, as evidenced by the other graphs. So, not to worry if you have fewer satellites after the optimization, it doesn’t really matter with the current level of performance 2SOPs provides us.
Appendix: How to get and build the gizmo
You’ll need the following:
- MS Visual Studio or Visual Studio Express (free)
- The gizmo’s source code, unzipped to your favorite folder:
- AGI Components: http://adn.agi.com/detailedView.cfm?resourceId=240.
Once you have all of these installed and unzipped, do the following:
- Open the project in Visual Studio
- Be sure the Solution Explorer is visible (View|Solution Explorer)
- Expand the References area and right-click, then select Add Reference…
- Browse to the AGI Components install \ Assemblies folder and select the following assembly files:
- Once those are added, right-click on the Project name and select Add | Existing Item…
- Browse to the AGI Components install \ Assemblies folder again.
- This time, add the licenses.licx file. You may have to use the “All Files (*.*)” filter to see it. Be sure you are adding the .licx file and not the .lic file that is also in that directory. (You should have placed the .lic file in that folder as part of the AGI Components install) Note the the .licx file tells the compiler to compile in the .lic file and thus license your application for use. Without this, the application will throw a license exception.
- Build and run the tool. I've tested on Win 7 and Win XP.
Feel free to e-mail me with questions about running the tool, analysis results you see or any other general comments: firstname.lastname@example.org.