Delivered-To: igsmail@igscb.jpl.nasa.gov To: igsmail@igscb.jpl.nasa.gov Subject: [IGSMAIL-5000]: switch-over to SP3-c format for IGS orbits Message-Id: <20040827130847.597A54F6ED@kg20.gfz-potsdam.de> Date: Fri, 27 Aug 2004 15:08:47 +0200 (CEST) From: igsacc@gfz-potsdam.de (Gerd Gendt.) Sender: owner-igsmail Precedence: bulk ****************************************************************************** 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 ---------------------------------------------------