From brideout at haystack.mit.edu Tue Jan 18 13:04:50 2005
From: brideout at haystack.mit.edu (William Rideout)
Date: Tue Jan 18 13:04:53 2005
Subject: [gps-developers] Importing GPS data in NovAtel binary format
Message-ID: <41ED4FC2.6020504@haystack.mit.edu>
Anthea has asked me to import data into our GPS processing from a site that only
has data in a NovAtel binary format. On their site also is a windows
command-line application that will convert that format into ascii. Since the
GPS processing has only dealt with rinex format files so far, I want to try to
solve this problem in as generic a way as possible.
Since I do not have a program to convert this format to rinex, and can only
convert it ascii on windows, I plan to use the public pc hermes to do this
conversion for me. I plan to make this solution extensible - that is, if we run
across any new sites that only expose NovAtel binary format files, I simply need
to add the name of that site and some other details to the python cron script
running on hermes.
Technical details:
The job of this cron script running on the pc hermes will be to download any new
NovAtel binary format files found in its list of urls. In particular, this
binary format is called an ISMRB log, and the program to extract it is called
ParseIsmr2.exe, written by GPS Silicon Valley. The command line is:
ParseIsmr2.exe all
This outputs a comma-separated ascii file with the following columns:
%Week, GPS TOW ,PRN, RxStatus, Az , Elv ,L1 CNo, S4 ,
S4 Cor,1SecSigma,3SecSigma,10SecSigma,30SecSigma,60SecSigma, Code-Carrier,
C-CStdev, TEC45, TECRate45, TEC30, TECRate30, TEC15, TECRate15, TEC0,
TECRate0,L1 LockTime,ChanStatus,L2 LockTime, L2 CNo
Of these, only the following columns are needed:
%Week - GPS week - week 0 starts at midnight, 6 Jan 1980 UTC
GPS TOW - seconds since midnight Sunday UTC of present week
PRN - satellite id
Az, Elv
TEC45 - tec averaged over 45 seconds
The python script will be responsible for calling ParseIsmr2.exe, and then
converting the file into the "iono" format normally output by our algo program.
For reference, this ascii file format is space separated with 11 columns:
Filename: -DDMMYY.iono
Columns:
1. time (seconds since midnight Sunday UTC of present week)
2. code
3. phase (in meters = TEC/6.128)
4. code/z (z is mapping function at particular elevation)
5. phase/z (in meters = TEC/6.128)
6. az
7. el
8. z (z is mapping function at particular elevation - always > 1)
9. pierce point lat
10. pierce point lon
11. prn (satellite id)
In order to calculate the pierce point, the python script will also need to know
the station location. This information will be included in the hard-coded
dictionary that also contains the url to the data files themselves, and the
four-letter site identifier. This dictionary is what will need to be updated
when a new site is added.
When all the iono files are created, they will be copied to
/usr/oasis/experiments/gps/novatel, where the gps_retrieve.py script will be
modified to retrieve them. These *.iono will then be handled like any other
*.iono created by the algo program, with the same algorithms to correct for
receiver bias and remove bad data.
Bill
--
Bill Rideout
MIT Haystack Observatory
Email: brideout@haystack.mit.edu
Phone: 781 981-5624
From brideout at haystack.mit.edu Thu Jan 20 14:51:15 2005
From: brideout at haystack.mit.edu (William Rideout)
Date: Thu Jan 20 14:51:18 2005
Subject: [gps-developers] Re: Importing GPS data in NovAtel binary format
In-Reply-To: <41ED4FC2.6020504@haystack.mit.edu>
References: <41ED4FC2.6020504@haystack.mit.edu>
Message-ID: <41F00BB3.7050105@haystack.mit.edu>
Thanks to the more stable version of the windows executable ParseIsmr.exe, the
downloading is now running as a Scheduled Task (the Windows term for a cron job)
on hermes. I have it set to update once a week under the user brideout. I
couldn't use asgstaff since that user didn't have permission to schedule a task.
To add a new site that only has NovAtel data in the same form:
1. Edit the part of the file on hermes under brideout called build_iono.py that
lists the sites to download. For now this list has only one item:
### Update this data structure to add new NovAtel binary format sites ###
# Items: 1. unique 4 letter site
# 2. site lat
# 3. site long
# 4. fnmatch type string to select files to download
# 5. site url
novAtelList = (('doua',
4.013771,
9.715404,
'dou*.zip',
'ftp://ftp.estec.esa.nl/pub/xe/bertram/douala/'),
)
2. Add a file in /usr/oasis/experiments/gps/novatel named .loc, that gives
the site location in x,y,z form. Example: doua.loc is:
6271339.2804067042 1073715.0505919124 446454.18061132729 APPROX POSITION XYZ
The gps toolkit has been updated to process this new data source, and is
available at ~brideout/gps_install.tar.
Bill
William Rideout wrote:
> Anthea has asked me to import data into our GPS processing from a site
> that only has data in a NovAtel binary format. On their site also is a
> windows command-line application that will convert that format into
> ascii. Since the GPS processing has only dealt with rinex format files
> so far, I want to try to solve this problem in as generic a way as
> possible.
>
> Since I do not have a program to convert this format to rinex, and can
> only convert it ascii on windows, I plan to use the public pc hermes to
> do this conversion for me. I plan to make this solution extensible -
> that is, if we run across any new sites that only expose NovAtel binary
> format files, I simply need to add the name of that site and some other
> details to the python cron script running on hermes.
>
> Technical details:
>
>
> The job of this cron script running on the pc hermes will be to download
> any new NovAtel binary format files found in its list of urls. In
> particular, this binary format is called an ISMRB log, and the program
> to extract it is called ParseIsmr2.exe, written by GPS Silicon Valley.
> The command line is:
>
> ParseIsmr2.exe all
>
> This outputs a comma-separated ascii file with the following columns:
>
> %Week, GPS TOW ,PRN, RxStatus, Az , Elv ,L1 CNo, S4 ,
> S4 Cor,1SecSigma,3SecSigma,10SecSigma,30SecSigma,60SecSigma,
> Code-Carrier, C-CStdev, TEC45, TECRate45, TEC30, TECRate30, TEC15,
> TECRate15, TEC0, TECRate0,L1 LockTime,ChanStatus,L2 LockTime, L2 CNo
>
> Of these, only the following columns are needed:
>
> %Week - GPS week - week 0 starts at midnight, 6 Jan 1980 UTC
> GPS TOW - seconds since midnight Sunday UTC of present week
> PRN - satellite id
> Az, Elv
> TEC45 - tec averaged over 45 seconds
>
> The python script will be responsible for calling ParseIsmr2.exe, and
> then converting the file into the "iono" format normally output by our
> algo program. For reference, this ascii file format is space separated
> with 11 columns:
>
> Filename: -DDMMYY.iono
>
> Columns:
> 1. time (seconds since midnight Sunday UTC of present week)
> 2. code
> 3. phase (in meters = TEC/6.128)
> 4. code/z (z is mapping function at particular elevation)
> 5. phase/z (in meters = TEC/6.128)
> 6. az
> 7. el
> 8. z (z is mapping function at particular elevation - always > 1)
> 9. pierce point lat
> 10. pierce point lon
> 11. prn (satellite id)
>
> In order to calculate the pierce point, the python script will also need
> to know the station location. This information will be included in the
> hard-coded dictionary that also contains the url to the data files
> themselves, and the four-letter site identifier. This dictionary is
> what will need to be updated when a new site is added.
>
> When all the iono files are created, they will be copied to
> /usr/oasis/experiments/gps/novatel, where the gps_retrieve.py script
> will be modified to retrieve them. These *.iono will then be handled
> like any other *.iono created by the algo program, with the same
> algorithms to correct for receiver bias and remove bad data.
>
> Bill
>
--
Bill Rideout
MIT Haystack Observatory
Email: brideout@haystack.mit.edu
Phone: 781 981-5624