Archive for the 'Utilities and Tools' Category
After looking at the sorry state of the GPS Satellite Calendar App, I decided to make some updates. Ok, it wasn't that sorry, after all it did show all the GPS outages in calendar format. But, once you're used to that, it gets boring. So, I added a few features and I'll be adding more in the weeks to come.
- One thing I hated about the old calendar, is that to see the outages for February of this year, you had to click the << arrows multiple times to get to February. Heaven help you if you wanted to see the outages from a previous year. So, I added some drop down boxes that let you pick any month and year for which there is data - much easier!
- Next I added some tables below the Calendar, listing the Current or Predicted outages. This gives you a quick look at what's currently out and what's predicted to be out. Note that current outages are always in red in the calendar, and predicted outages are always in yellow.
- I also updated the text in some of the fields of the tables to link to the definitions for the outage types, or the NANU itself for a given outage. All links are referenced to the Celestrak NANU web pages.
- You can also click on the table column header to sort the outage data on that column.
- The Historical listing of NANUs was ok, but it was just a big list of all NANUs published since 1998. I updated that listing to be on a separate page, and have the same links and sorting capability. I also added a column that lists the duration of the outage, defined by the NANU start and end times. Click the Historical Outages link at the bottom of the page:
and a new page or tab will open with the Historical outages table:
Looking at the last three outages (at the bottom of the table), we can see that the SVs were only out for 5-7 hours:
Which outage was the longest?, which was the shortest? Sort on the Duration Column.
Which Satellite had the fewest number of outages? Sort on the SVN or PRN column and see how many rows there are.
As I mentioned above, I'll be making some further updates in the coming weeks:
- Some of you may have seen Richard Langley's article in the November 2009 issue of GPS World, about the GPS constellation being maxed out at 30. For that article, I produced a picture of the number of healthy GPS satellites since 1998:
I'll be updating this picture each time a new outage is posted, and placing it on the page as well. This way we'll have a running tally of the outages and the number of healthy satellites in the constellation.
- I'll also add some controls to the page that will allow you to explore outage information by PRN, time or PRN and time, as this sample application does.
If you have anything you'd like to see on this calendar, let me know, I'll see what I can do.
Happy navigating!No comments
I was a little reluctant to open a Twitter account, not because I didn't think the tech was cool, but could I possibly have that much to say each day? In such short sentences? Well, I figured out that on a daily basis I may not have much to say, but GPS does. I wanted to provide some useful information to GPS followers, something that could be said in a few words.
To that end, I created an account on Twitter with a user name GPSToday. This account I figured, could send 'tweets' to followers about GPS events, like accuracy statistics, satellite outages, etc. But this type of information would take a lot of my time to create and update on a regular basis. Ahhh, but wait, the AGI Navigation component can be coded in any way, shape or form. I could use this to create a program that automatically did what I needed and produce the results automatically.
The first application: GPS Accuracy Stats over the globe each day. Whether you're aware or not, GPS accuracy varies each day - due to satellite outages, GPS signal quality and many other factors. Getting a quick glance of GPS accuracy and status on Twitter can keep you informed with no work on your part. So what's available?
Here's a picture of a sample GPSToday Daily Accuracy tweet:
I use the AGI Navigation Accuracy Library, Dynamic Geometry Library and the Spatial Analysis Library to calculate the global position error, at 5 degree grid increments and 60 sec time steps. I then find the Maximum, Mean and Minimum statistics over the globe for the day. Once I have this information, I construct a string that states what you see in the picture above and use Twitterizer post the tweet. I can't believe how easy this was to do.
On the machine I use to calculate the global accuracy, I used Windows Scheduler to set up the run every day at midnight. When it completes, The code will send me an e-mail that it finished and update the GPSToday status with the message above. Also, if there were any satellite outages, a tweet with that info would be posted as well.
Computing global accuracy is easy using the Spatial Library component. A peek at the documentation here, then heading to the Programmer's Guide, Overview, Coverage section, show lots of examples of how to compute coverage. Down towards the bottom are some navigation examples also. The coverage algorithm first calculates access over the grid (not at specific times, but based on the assets and constraints you assigned to the grid). Once Access is calculated, you can evaluate a Figure of Merit (FOM), such as Navigation Accuracy, on that calculated Access at given time steps. Also built in are statistical functions to allow statistical calculations over the entire grid and time, or just across time at a specified grid point. Nice.
The best part of all this is that the access and FOM calculations are multi-threaded and core aware - the library will take advantage of all the cores on your machine simply by setting the following:
m_CoverageDefinition.MultithreadCoverage = true;
So, with the components, a little time and the help of a couple of tools, getting a new requirement coded and out the door happened in very little time.
Happy tweeting!5 comments
Ok, I like puns. You'll see how this one fits in a minute. Soon, a new version of our desktop navigation accuracy tool - NavTK version 2.3.4 - will be released. One major change coinciding with this release is that we now have a new process for generating our GPS accuracy data - better known as Performance Assessment Files (PAFs) and Prediction Support Files (PSFs). Previously, these files contained accurate estimates of GPS performance. Now, with our new process these files contain the actual GPS ephemeris and clock errors. Why are these errors important? Read these Nog's of the past. The newest release of NavTK, as well as the AGI Components Navigation Accuracy Library, read in these new files and in fact, NavTK will go and find the correct file for your analysis situation - no need to hunt through the myriad FTP sites or cryptic download sites any longer.
So, we now use a new 'generation' scheme for our PAF and PSF files for our users (available for free) that include a new 'generation' of data quality. To help visualize how well GPS satellites are performing, I developed a web application that allows you to visualize PAF and PSF data. This application will allow you to view any PAF or PSF we have on our FTP site. Here's the explanation from the web application - defining how the data is produced:
The PAF data is created by gathering the truth ephemeris and clock information (in .SP3 format) for a given day and differencing that data from the propagated broadcast ephemeris and clock information provided in the RINEX navigation file for the same day. Both the SP3 and the RINEX navigation files are produced by the National Geospatial-Intelligence Agency (NGA) and available here. The antenna phase center SP3 file is used to calculate the ephemeris and clock truth data.
The plotted values in the PSF graph are seven-day RMS's of the user range error (URE). The UREs are calculated using the Signal-In-Space (SIS) GOSPAR global URE formula, utilizing the data from each PAF file. The seven-day RMS UREs for a specific PRN are constant for a given day, so the RMS URE values are plotted in a bar graph showing a three-day history of these values for each PRN.
The GOSPAR formula for user range errors (UREs, the quantity that affects your positioning error in GNSS systems) was defined in the late 1990's during the GPS Operational Control Segment (OCS) Performance Analysis and Reporting (GOSPAR) project. This formula for the URE, sometimes called the global URE, is generated by integrating the UREs over the surface of the Earth. The integrated formula follows:
where S is the surface of the Earth being integrated over, delta r is the ephemeris error vector for the GPS satellite and delta s is the clock error of the satellite. The vector L is the line of sight vector between the GPS receiver and the GPS satellite.
The PAFs and PSFs have a 3-day latency, because the truth data produced by the NGA takes that long to produce. Each day, the NGA data files are automatically retrieved, the PAF and PSFs are built and placed on our FTP site. So, when we have the latest data - you have the latest data.2 comments
Recently, I posted a Nog on some utilities and tools I created to help with the day-to-day engineering tasks faced when working with GPS. Well, I've added to the mix (with help!) and put the collection in a single, easy to access place. the tools can be accessed from the Web Apps/Services tab on the AGI developer Network: http://adn.agi.com/webServices/.
Here's a list of the GPS related tools there. Some are repeats from the previous Nog, but I wanted to give you a complete list:
The GPS Date Calendar displays a standard calendar with dates specific to the GPS community. Dates included are: GPS Week (current and full), day of week, day of year and time of week.
This web application calculates GPS Navigation Accuracy for the specified time interval and location of the GPS receiver. Specifically, it calculates Total System Error and Signal In Space Error and generate the appropriate reports and graphs. This application has been built using the Navigation Accuracy Library, which is part of AGI Components.
This Calendar displays historical, current and predicted GPS satellite outages based on the latest satellite outage file (SOF) produced by the United Stated Air Force. Clicking on a specific calendar date provides more information about the outage. You can also view all historical outages in a table format.
This web service allows you to connect and retrieve outage information for specific GPS PRNs, or specific time intervals, or both. Using just the PRN, a list of strings will be returned of all times that PRN has been unhealthy, based on the latest satellite outage file (SOF). Providing a start and stop time will return a list of strings denoting all PRNs that were unhealthy during that interval, with their outage times. Another service allows you to specify both the PRN and the time interval to further thin the results. The dates returned can be either Gregorian (standard date format) or Julian date format.
This example application shows how this service could be used.
GPS satellite performance is at the heart of navigation accuracy. AGI Performance Assessment Files (PAFs) and Prediction Support Files (PSFs), contain GPS satellite errors which AGI uses to calculate receiver positioning errors. This utility helps to visualize and understand those GPS satellite errors.
The following tools aren't specifically for GPS, but are just as handy in their own right.
- Google Earth Satellite Database (Awesome tool!)
This KML network link visualizes all earth orbiting objects tracked by the United States Strategic Command (USSTRATCOM) using the satellite database processed by Analytical Graphics, Inc. using the Dynamic Geometry Library in AGI Components. All satellites are tracked in real-time and updated every 30 seconds. Please open this link using Google Earth.
This web application generates ground tracks on an embedded Google map, as well as ephemeris tables, for a user-selected satellite viewed from a user-defined location during a user-specified time period.
- Space Data Reporting (Web Service)
The Space Data Reporter is an example implementation of AGI’s new Dynamic Geometry Library (DGL). This suite of Web Services powered by the DGL enables users to:
- Publish ground tracks
- Derive current locations of satellites
- Calculate inter-visibility between satellites and locations on the ground
- Compute GPS dilution of precision (DOP)
- Analyze STK generated conjunction analysis (CAT)
As an engineer and a developer, I tend to be pretty needy. I need access to arcane bits of information that sometimes can be hard to find. Usually when I find that information, I go on my merry way and continue my analysis. Then I happen to need it again. Frustrated that I didn't save a link to the info last time (and even if I did save a link my bookmarks get so unorganized that I can't find it), I go searching again. That was then. I've wised up a little bit, and started creating utilities that provide the information I use regularly in one (or more) handy place. Let's look at a couple of examples.
First, before I can do any analysis with GPS, I need some type of ephemeris element set from which I can propagate the GPS satellites. Usually I use an almanac, but we'll look at SP3 files as well. So, first thing I need is a location for these types of files. Luckily, AGI has an FTP repository that contains SEM almanacs. So, I go to this year's directory and see about 200 files and they all have names with lots of numbers in them, like this: almanac_sem_week0465_589824.al3. Which one do I pick for the analysis I want to do? It's little things like this that frustrate us analysts and engineers. Turns out that the almanacs are named according to the almanac element epoch, in the number of weeks since the latest GPS week rollover and the time of week in seconds since Sunday midnight - were you expecting something else? Discerning which almanac file is the best for my analysis brought me to my knees over and over again. At first, I created intricate spreadsheets that calculated these numbers, but they had to be updated regularly and then I lost the spreadsheet.
Take another example, the precise ephemeris for GPS satellites that the National Geospatial-Intelligence Agency (NGA) produces. These files have equally cryptic names: nga14000.sp3. The NGA description says that the file naming scheme is
ngawwwwd.[sp3], where wwww is the gps week and d is the day (Sunday being 0 through Saturday being 6)
The catch here is that the GPS week they are referencing is the GPS week since the beginning of GPS time on January 6, 1980. So the file I found above is for Sunday (d=0) of GPS week 1400. Is week 1400 what I'm looking for? More back of the envelope calculation time.
I needed a better way. I decided that if I could keep one set of data organized - my browser bookmarks - then maybe I had half a chance of finding what I needed when I needed it again. So, I created a perpetual GPS Calendar that displays all the days and dates that were of interest to me, GPS weeks, days and dates of interest. Here's the Calendar: GPS Calendar. This calendar lists Julian days and Julian dates as well (yes, they are different!) - you never know when you have to know what Julian day it is -
PAF Files: 2008_203_v02.paf
PSF files: 2008_203_234500_v01.psf
SOF files: 2008_205_204839_v01.sof
Oh right! So take a look at this Calendar, especially if you are doing any type of navigation analysis. You'll run across these files types eventually, and need to know how to relate them to 'real' dates. I've put a link to it on the Nogroll on the right side of the page under the Utilities category.
Well, nothing monumental in this blog, but taking care of the details can be a big hassle when all you really want to do is finish the analysis - like trying to bail all of the water out of a sinking boat so you can get to the hole to fix it! Whenever I run across or develop a new tool or utility, I'll post a blog on it - so you can keep things moving along too - without being brought to your knees.2 comments