[IGSMAIL-5000]: switch-over to SP3-c format for IGS orbits

Gerd Gendt. igsacc at gfz-potsdam.de
Fri Aug 27 06:08:47 PDT 2004


******************************************************************************
IGS Electronic Mail      27 Aug 06:09:13 PDT 2004      Message Number 5000
******************************************************************************

Author: IGSACC


Dear IGS Community,

We would like to inform you that starting this week (Rapid and Ultra Rapid 
Products from 1285.1 and Final Products from 1283) we will provide orbit 
products in sp3-c format (see ftp://igscb.jpl.nasa.gov/igscb/data/format/sp3c.txt).
The new format includes error codes for orbits and clocks per epoch as well
as flags (P) of predicted parts in the ultra rapid files.
 
We will provide the new format in addition to the usual sp3 files (sp3-a format).
The new files will have the file extension ".sp3c".
For an overlapping time period both files will be available to allow for
a smooth transition.

With the attached simple perl-script (sp3c_2_sp3a.pl) one can convert the
sp3-c to the previously provided sp3-a format (for ACC generated files only).

Best regards

Gerd Gendt 
Thomas Nischan



sp3c_2_sp3a.pl
--------------------- cut here ---------------------------------------------------
#!/usr/bin/perl -w

# --------------------------------------------------------------------------------
# reformat an sp3-c file (created by IGS ACC) to sp3-a via STDIN/STDOUT 
#
# usage :
# -------
# sp3c_2_sp3a.pl < file_sp3c > file_sp3a
# 
# --------------------------------------------------------------------------------

$l1 = '%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc';
$l2 = '%f  0.0000000  0.000000000  0.00000000000  0.000000000000000';

# ... modifying header
#     ----------------

while (<>) {
  s/^\#c/\#a/   if ( m/^\#c/ );   # substite #c -> #a (version symbol)
  $_ = "$l1\n"  if ( m/^\%c / );  # substite all %c-lines with $l1
  $_ = "$l2\n"  if ( m/^\%f / );  # substite all %f-lines with $l2
  s/G0/  /g     if ( m/^\+ / );   # substite 'G01G03G04...' -> '  1  3  4...' 
  s/G/ /g       if ( m/^\+ / );   # substite 'G20G21G22...' -> ' 20 21 22...'
  print;

  last if ( /^\*/ );              # end loop on first epoch record
}

# ... modifying data part
#     -------------------

while (<>) {
  chomp;
  s/^PG0/P  /;                    # substite PG03 -> P  3
  s/^PG/P /;                      # substite PG29 -> P 29
  $_ = substr $_, 0, 60;          # cut to 60 characters
  print "$_\n"; 
}

# ... end
--------------------- cut here ---------------------------------------------------




More information about the IGSMail mailing list