9.  Utility Programs and Auxiliary Tables

9.1  Plotting and computing statistics from GAMIT solutions

The most useful way to view the results of a GAMIT analysis is by examing the baseline repeatability from day-to-day.  The shell script sh_gamit_baseline will do this from the o-files produced by SOLVE.  The instructions for running the script can be generated by typing its name with no arguments; these are reproduced below:  

Use GMT to make a multiple panel GAMIT baseline plots with uncertainty scaling.  It also creates inputs for wrms/nrms scatter plots, which can be plotted with /stdrel/com/sh_globk_scatter
  
  Requirements  : GMT(netcdf/gmt/ghostscript)
                : gamit/bin/poly01  (linked to gamit/utils)
  USAGE :    sh_gamit_baseline   <options>. 
  
  EXAMPLES: for time-series plots 
  sh_gamit_baseline  -o o* -b PIN2_VNDP PIN2_YAM2
  sh_gamit_baseline -u 1 -o o* -b PIN2_VNDP PIN2_YAM2
  
=+=+=+=+=+=+=+=+=+=+=+=+=OPTIONS+=+=+=+=+=+=+=+=+=+=+=+=+=+

 -o[files]     list    : ofile names. MUST have this.
 -f[ile]       file    : Baseline names. 
 -b[aseline]   list    : command line argument for baselines.  If -f and     
				 -b are both omitted, all baselines are plotted.
 -free  		    : Biases free solution--Default.
 -fixed  		    : Biases fixed solution.
 -d[elete]    <sites/baselines etc> :  names of unwanted sites.
 -df              file   : file contains the names of unwanted sites. 
 -[delete_file]          : Makes life easier for -d
 -u[nc_scale]   value    : scale all uncertainties by this.. Default =1.
 -y[scale]   min max  : vertical scale. If not issued it will be calculated.
 -x[scale]   min max  : horizontal scale. If not issued it will be calculated.
 -frame      value     : gmt border day-axis frame  ticks. Default =1. 
 -anot       value     : gmt border day-axis label intervals. Default =1 
 -a         ext        : Add more descriptors to postscript file name. 				  Default is psgamit.#

There is a similar script available for plotting the atmospheric zenith delay parameters estimated from one or more SOLVE runs.  It also reads each of the o-files in an experiment directory to produce a multiday plot.  Its usage is described in the on-line documentation obtained by typing the script name:

 Use GMT to make a multiple panel GAMIT atmospheric parameters plots.
      
  USAGE :    sh_gamit_atmos   <options>. 
  
  EXAMPLE:   sh_gamit_atmos  -o o* -b PIN2 VNDP YAM2
  
=+=+=+=+=+=+=+=+=+=+=+=+=+OPTIONS+=+=+=+=+=+=+=+=+=+=+=+=

 -o[files]     list    : ofile names. MUST have this.
 -f[ile]       file    : Site names. 
 -sites   list    : command line argument for selected sites. If -f and   
   		         -b are both omitted, all sites are plotted.
 -free  		: Biases free  solution Default.
 -fixed  		: Biases fixed solution.
 -both 		: Biases free with fixed solution. Fixed is dashed. 				stats refere to free sol.
 -d[elete]    <sites etc> :  names of unwanted sites.
 -t[otal]        : total atmospheric zenith delay (Default is adjustment 			 to a priori model).
 -df file      : file contains the names of unwanted sites.
 -[delete_file]: Makes life easier for -d
 -u[nc_scale]   value    : scale all uncertainties by this.. Default =1.
 -y[scale] min max : vertical scale. If not issued it will be calculated.
 -x[scale]  min max : horizontal scale. If not issued it will be calculated.
 -frame  value : gmt border day-axis frame  ticks. Default is  1. 
 -anot   value : gmt border day-axis label intervals. Default is  1. 
 -a      ext   : Add more descriptors to postscript file name. Default 			is psgamit.#

The program WBSLFILT ("Weighted BaSeLine Filter") can be used to scan the O-files from the observation sessions of an experiment and compute the mean and weighted rms scatter of the estimated baseline vectors. You can choose the estimates you wish to use by keying on the characters in columns 19-21 of the baseline summary in the O-file; i.e.

	'R N'	bias-free	N E U
  	'X N'	bias-fixed	N E U
	'R X'	bias-free	X Y Z
	'X X'	bias-fixed	X Y Z

To get the NEU, components from the bias-fixed solution out of a group of O-files, try:

	grep -h _ o*.??? | grep  'R N' | sort | wbslfilt >! mine.r.neu.wbsl

Note that WBSLFILT must have *sorted* input to work properly.

Here is some example output:

---------
 ALS0_ARO0 RMS   11 N    45242.5761 +-   0.0082 E    11595.5381 +-   0.0408 U     -263.6538 +-   0.0838 L    46705.6390 +-   0.0131
 ALS0_ARO0 PPB   11 N    45242.5761 +- 174.6840 E    11595.5381 +- 874.4694 U     -263.6538 +- ******** L    46705.6390 +- 279.9606
 ALS0_ARO0 SIG   11 N    45242.5761 +-   0.0072 E    11595.5381 +-   0.0083 U     -263.6538 +-   0.0571 L    46705.6390 +-   0.0073
 ALS0_ARO0 CORR  11 N-W      0.0187             N-U      0.0883             W-U      -.0225             ST DEV OF UNIT WGT   8.6480
 ALS0_ARO0 1991.315 N        0.0008 +-   0.0092 E       -0.0112 +-   0.0124 U        0.1420 +-   0.0703 L       -0.0029 +-   0.0098
 ALS0_ARO0 1991.316 N       -0.0073 +-   0.0095 E        0.0096 +-   0.0173 U        0.0667 +-   0.0646 L       -0.0051 +-   0.0101
 ALS0_ARO0 1991.317 N       -0.0002 +-   0.0058 E        0.0237 +-   0.0058 U       -0.0246 +-   0.0553 L        0.0058 +-   0.0058
 ALS0_ARO0 1991.318 N        0.0047 +-   0.0124 E       -0.0015 +-   0.0297 U        0.1081 +-   0.1006 L        0.0035 +-   0.0141
 ALS0_ARO0 1991.319 N       -0.0122 +-   0.0069 E        0.0191 +-   0.0135 U       -0.0104 +-   0.0556 L       -0.0071 +-   0.0075
 ALS0_ARO0 1991.320 N        0.0070 +-   0.0052 E       -0.0355 +-   0.0055 U        0.0998 +-   0.0487 L       -0.0027 +-   0.0055
 ALS0_ARO0 1991.320 N        0.0165 +-   0.0147 E        0.0508 +-   0.0115 U        0.1145 +-   0.0738 L        0.0279 +-   0.0147
 ALS0_ARO0 1991.321 N       -0.0019 +-   0.0086 E       -0.0082 +-   0.0222 U        0.0143 +-   0.0816 L       -0.0040 +-   0.0075
 ALS0_ARO0 1991.321 N        0.0069 +-   0.0210 E        0.0424 +-   0.0749 U       -0.0172 +-   0.0850 L        0.0172 +-   0.0334
 ALS0_ARO0 1991.322 N       -0.0030 +-   0.0066 E       -0.0279 +-   0.0058 U        0.0839 +-   0.0577 L       -0.0103 +-   0.0069
 ALS0_ARO0 1991.322 N        0.0293 +-   0.0153 E        0.1458 +-   0.0144 U       -0.1193 +-   0.0712 L        0.0652 +-   0.0156
---------

The RMS denotes the standard deviation of one measurement (a.k.a., the square root of the sample variance).  This is what most people mean by "repeatability".  This RMS value is expressed as parts per billion on the PPB line.  The SIG value is the standard error of the mean.  The weighted mean value is available on all three of these lines. The 11 in this example denotes the 11 individual day measurements. The correlations follow.  The individual day entries are deviations from the weighted means, with their uncertainties from the input file.

Here is a script to generate a bunch of statistics and plot them using gnuplot, the local XY plotter at IGP.  You could use your own.

#!/bin/csh
# generate repeatability statistics 
#
# collect the O-files:

# $1 is name of run

set files = ../3*/o$1?.???

#grep Normalized $files

# collect the baselines in NEU

if (-e tmp.bsl) then
  /bin/rm tmp.bsl
endif

# Get the bias free solution
grep -h _ $files | grep  'R N' | sort >! $1\.r.neu.bsl

# Get the bias free solution XYZ
grep -h _ $files | grep  'R X' | sort >! $1\.r.xyz.bsl

# Get the bias fixed solution
grep -h _ $files | grep  'X N' | sort >! $1\.x.neu.bsl

cat $1\.r.neu.bsl | wbslfilt >! $1\.r.neu.wbsl
cat $1\.x.neu.bsl | wbslfilt >! $1\.x.neu.wbsl

cat $1\.r.neu.wbsl | grep RMS | colrm 132 | sort -rn +14 >! $1\.r.neu.rms
cat $1\.x.neu.wbsl | grep RMS | colrm 132 | sort -rn +14 >! $1\.x.neu.rms

#Plot files for free solutions
cat $1.r.neu.rms | awk '{print $17/1000. , $7*1000.} ' >! $1.r.n
cat $1.r.neu.rms | awk '{print $17/1000. ,$11*1000.} ' >! $1.r.e
cat $1.r.neu.rms | awk '{print $17/1000. ,$15*1000.} ' >! $1.r.u
cat $1.r.neu.rms | awk '{print $17/1000. ,$19*1000.} ' >! $1.r.l

#Plot files for fixed solutions
cat $1.x.neu.rms | awk '{print $17/1000. , $7*1000.} ' >! $1.x.n
cat $1.x.neu.rms | awk '{print $17/1000. ,$11*1000.} ' >! $1.x.e
cat $1.x.neu.rms | awk '{print $17/1000. ,$15*1000.} ' >! $1.x.u
cat $1.x.neu.rms | awk '{print $17/1000. ,$19*1000.} ' >! $1.x.l

#plot on screen
cat rep.gnu | sed s/NAME/$1/ | sed s/F/r/ | sed s/TITLE/"Repeatability for $1 (free)  `date`"/  >! r.gnu; gnuplot r.gnu
cat rep.gnu | sed s/NAME/$1/ | sed s/F/x/ | sed s/TITLE/"Repeatability for $1 (fixed) `date`"/  >! x.gnu; gnuplot x.gnu

#plot on paper
grep -v continue r.gnu >! r.lgnu; lasergnu -b -f r.lgnu -p -Psparc
grep -v continue x.gnu >! x.lgnu; lasergnu -b -f x.lgnu -p -Psparc

9.2  Creating RINEX or FICA Files from NGS ARGOS Files

Prior to May, 1992, CIGNET tracking data were aggregated at NGS by GPS Week in the ARGOS format.  There are three files for each station (each week), one containing phase and pseudo-range data (usually called a "data" or "tape" file), one containing broadcast ephemeris and satellite clock information ("orb" file), and one containing the meteorological data ("met") file.  There may also be a fourth file of descriptive information.  The first step in using the CIGNET data is to FTP or transfer from tape at least the "data" and "orbit" files.  Once transfered, the file names should contain the (4-character) standard station identifier plus the GPS week; e.g., for Yellowknife in week 437, the two required files should be named yknf437.dat and yknf437.orb. 

A sample "data" file is shown below:

YELLOWKNIFE            437  143 198   5  22
 88  5 24 21 51 59.0800000 251519.080000  1  6   
       -69283.6838536321073582.10107  53744718.7507536299753069 .45818 40.5 39.5
 88  5 24 21 51 59.0800000 251519.080000  1  6     
       -69283.6838536321194922.50099  53744718.7507536299753069 .45818 40.5 39.5

The first (title) record gives the station name, GPS week number, and the calender date of the first day of the week.  For each set of simultaneous observations, there is a time-tag record, with the the epoch given in calender date, (GPS) hours, minutes, seconds, and GPS seconds-of-week, followed by the number of satellites at that epoch and their pseudo-random noise (PRN) code numbers.  For each epoch there are one or more measurement records containing (in order)  L1 phase (cycles),  L1 pseudo-range (meters), L2 phase, L2 pseudo-range, L1 carrier power-to-noise ratio (dB-Hz), and L2 carrier power-to-noise ratio (dB-Hz).

A sample "orb" file is shown below:

 437 : GPS WEEK #

 6 88  5 25  0  0  0.0 -.116699375212D-03 -.192130755750D-10 -.277555756156D-16
	.122880000000D+05	-.925000000000D+01	.101825670448D-08	.183378419704D+00
 	-.586733222008D-06	.531821721233D-02	.104252249002D-04	.515364718437D+04
 	.259200000000D+06	-.111758708954D-07	.192736365505D+01	-.726431608200D-07
 	.111949619933D+01	.254187500000D+03	.202961194281D+01	-.621168731314D-08
	-.232152527227D-10	.100000000000D+01	.437000000000D+03	.000000000000D+00
	.100000000000D+01	.000000000000D+00	.000000000000D+00	.430080000000D+05
 6 88  5 25  1  0  0.0 -.116767827421D-03 -.192130755750D-10 -.277555756156D-16
	.163840000000D+05	-.687500000000D+01	.101647091580D-08	.708491445227D+00
	-.396743416786D-06	.531794375274D-02	.104773789644D-04	.515364661980D+04
	.262800000000D+06	.186264514923D-08	.192734131190D+01	-.614672899246D-07
	.111949607937D+01	.253406250000D+03	.202958492564D+01	-.621847331009D-08
	 -.292869342041D-10	.100000000000D+01	.437000000000D+03	.000000000000D+00
	.100000000000D+01	.000000000000D+00	.000000000000D+00	.430080000000D+05

The first (title) record contains only the GPS week number.  Satellite clock and ephemeris information are listed as they are received.  The first line gives satellite PRN number, GPS date and time, clock bias (seconds), clock drift (sec/sec), and clock drift rate (sec/sec2).  The following four or six lines contain the standard ephemeris information, similar to that given in the GAMIT E-file.   A description of each value may be found in the NGS documentation distributed with the tape.  Note that there was a change at Week 424.

The "met" file gives simply the temperature (oC), pressure (mb), and relative humidity (percent) at hourly intervals .  A sample is shown below:

YELLOWKNIFE  GPS WEEK  437
  88  5 22  0  0  0.00      3.60    978.00     37.39
  88  5 22  1  0  0.00      3.70    979.00     39.53
  88  5 22  2  0  0.00      3.50    982.00     40.41
  88  5 22  3  0  0.00      3.40    985.00     41.01
  88  5 22  4  0  0.00      2.90    984.00     42.49

The program ARGO2FIC is used to convert the CIGNET files into FICA files for input to MAKEX.    To run the program simply type its name followed by the filename prefix (station and week number) and the receiver software version used to collect the data (CORE 4.1, 4.7, or 4.8 for the TI4100,  1.49, 1.50, or 1.61 for the MINI-MAC):

	ARGO2FIC	YKNF437	4.1

ARGO2FIC will read the weekly .dat and .orb ARGO files and open and write a FICA file for each calender day, naming the file by the station and day number.  (If a .orb file is not available for a site, you can create one to satisfy ARGO2FIC by renaming the orbit file from another site since the oribital information is the same.).  For Yellowknife in week 437, seven files will be created, named yknf8.143.fic, yknf8.144.fic, ......, yknf8.149.fic.  The number of FICA blocks of each type will be displayed on the screen and written to an information file named, for the exmple shown, yknf437.inf.   Note that both (week-long) ARGO files and (daily) FICA files are large compared to (daily) X-files, so some planning of disk space should be done before beginning the conversions. 

9.3   Converting a hi.raw file to sited. or station.info

Prior to release 9.0, antenna height information was recorded by the analyst in a "raw" file read by program HI, which converted the actual measurements into L1 and L2 offsets, written in the "station description" (sited.) file.  The sited. file can still be read by MAKEX, FIXDRV, and MODEL, but it is recommended that these files be converted into a station.info file, which provides a more direct connection between the original measurement and the offsets used in modeling the site coordinates (see Chapter 4).  (There is a loss of information in the new scheme since the hi.raw file provided for input measurements in both meters and inches and both before and after the observations.  Most of the time, however, the analyst will make a judgement about the validity of the antenna measurements when he/she transcribes the values from the log sheet.)   The format of the current hi.raw file, 
(A4,A2,A1,1X,A3,1X,A16,2(1X,F5.3,1X,2I2),2(1X,F6.3),1X,A6,1X,A5), is shown below:

ALGO871.003 ALGONQUIN	1.175	0000	1.175	0000  0.000	0.000	TI4100	SLPAB
ALGO871.004 ALGONQUIN	1.175	0000	1.175	0000	0.000	0.000	TI4100	SLPAB
DEVL871.004 DEVILS PEAK,SCI	1.272	0000	1.271	0000	0.000	0.001	TI4100	SLPAB
DEVL871.004 DEVILS PEAK,SCI	1.271	0000	1.272	0000	0.000	0.001	TI4100	SLPAB

(The hi.raw file in use prior to {date} had one fewer decimal places in the height and offsets in meters.  These files can be converted into the current format using program HI2HI92.)  The first entry is the session identifier:  4-character station name, year, session number, and day.  The second entry is the complete station name.  Then follow seven entries giving measured values of antenna height and offset:  height before the observations in meters, height before the observations in inches and 32nds of inches,  height after the observations in meters, height after the observations in inches and 32nds of inches, east offset in meters, and north offset in meters.  The final two columns give the antenna type and measurement scheme.

You need enter only the measurements that are available; any entry with a value of zero will be ignored.  HI converts slant or vertical heights with respect to the antenna structure  to the heights of the phase centers (L1 and L2) and computes an average of the "before" and "after" values entered in meters.  Values entered in inches are used only as a check (unless no meters value is entered); large discrepancies between the English and metric measurements are indicated by the program.  

The output of HI is a station description file in the format shown below:

ID YR.DAT SITE DESCRIPTION   L1_HT   L1_N   L1_E   L2_HT  L2_N  L2_E
(A4,A2,A1,1X,A3,1X,A16,4X,6F8.3)
ALGO871.003 ALGONQUIN	1.399	0.000	0.000	1.374	0.000	0.000
ALGO871.004 ALGONQUIN	1.399	0.000	0.000	1.374	0.000	0.000
DEVL871.004 DEVILS PEAK,SCI	1.496	0.001	0.000	1.471	0.001	0.000
OVRO871.003 OVRO-7114	1.387	0.000	0.000	1.362	0.000	0.000
OVRO871.004 OVRO-7114	1.890	0.000	0.000	1.865	0.000	0.000

To convert a hi.raw file into a station.info file, run program HI2STNFO.  Since the station.info file contains the receiver software version, which is not in hi.raw, this information must be provided to effect a complete translation.  HI2STNFO will prompt you for the name of a makex.batch file to provide the receiver information.   If you have already created X-files (the usual case if you're running HI2STNFO), you may choose to leave the receiver information out of the station.info file since it is used only by MAKEX.  

  
9.4  Creating X-files from C-files (Utility CTOX)

In order to conserve disk space and maintain "clean" archival data files, it is useful to convert edited C-files back to X-files whenever possible.  This is done using the program CTOX.  It can be run from a single C-file or a list of C-files contained in a D-file.  When you invoke the program, it will prompt you for the name of the input C- or D-file.  If a D-file is used as input, CTOX will  give you the opportunity to change the series letter associated with the input C--files.  Finally, you will be prompted for the series letter to be associated with the output X-files.

9.5   Creating RINEX files from X- and E-files

Whenever data are exchanged with another institution, they should be transcribed in to RINEX format.  This is easily accomplished using the program XTORX.  XTORX accepts two command-line arguments:  the first is the name of the input X-file or D-file containing a list of X-files; the second, used only in the case of a D-file, gives the series letter associated with the X-files (which might have a different series letter in the D-file list). 

(Program ETORX to write RINEX navigation files from FICA Blk 9 files to be written)

9.6   Creating K-files from Clock Log Information

For a codeless receivers the offsets between receiver clocks in the network are measured by bringing the receivers together at a common point.  This procedure is usually performed both before and after a survey, and the offsets recorded in the observer's log.  Prior to processing the data, the analyst must enter these offsets into a session- or campaign-specific K-file of the format shown for the example below:

FT ORD MACROMETER II   CLOCK DAYS 147-149
END
SERIAL NUMBER     UNIT CODE	
	919	S
	922	T
END
			            CLOCK LOG TABLE
	           B E FO R E			            A F T E R

	          RECEIVER S/N		           RECEIVER S/N
HHMM  DAY  REFER.  REFER.  DIFF.     HHMM   DAY  REFER.  REFER.  DIFF.
(UTC)        A       B     (uS)      (UTC)         A       B     (uS)
2149  147   919     922   0.300      0559   148   919     922    17.10
2049  148   919     922   0.300      0542   149   919     922     3.000
1924  149   919     922   0.300      0600   150   919     922     3.000

At the top of the table are one or more header records and the serial numbers corresponding to the receiver unit numbers that might be used in identifying the observation files.  Then each clock comparison performed in the field is tabulated.  FIXDRV uses the differences recorded before and aftter observations to compute an offset and rate for each receiver with respect to a reference (designated in FIXDRV) for each day.   In the example the clock for receiver serial number 919 was used as a reference for each comparison, but it is not necessary to use the same reference each time.   On day 147 the clock for receiver 922 was synchronized with 919 to within 0.3 microseconds (ms) before observations began (at 2149 UTC) but had drifted by 17 ms by the end of the session (0559 the next day).   On days 148 and 149 the two clocks were also synchronized at the beginning, and the drift by the end was only 3 ms. 

9.7  Creating W-files from Weather Log  Information

Meteorological data is entered for each site into a W-file, an example of which  is shown below:

Static met file for FOR2 Brush 2 1988 Day 148
END
1988 148 2100 1988 149 0600 FOR2
Time (UTC)	TEMP	PRES	REHUMID
	LOCAL	LOCAL	LOCAL
YR  DAY   HR  MN	DEG C	MB	PER CENT
   (free format)
88 148 21 00          17.9     979.0    70.0
88 149 06 00          17.9     97       70.0

One or more header lines are terminated by END.  Then follows a line giving the total span of the file (to facilitate interpolation and to avoid reading beyond the end) and three lines of header information that is read by the program to determine the type and units of met values entered.  Temperature and pressure are always entered in units of degrees Celsius and millibars, respectively, but the water vapor values may be relative humidity in per cent (as shown) or partial pressure of water vapor in millibars.  All three measurements may be for the site itself (LOCAL) or at sea level (SEALEVEL). The tabulated times and met values  are in free format. 

9.8  Creating and Maintaining  Datum, Time , Spacecraft, and Ephemeris Tables  

Manyt of the modules of GAMIT require a table giving the parameters of geodetic datums.  ARC  and  MODEL require  tables for TAI-UTC, TAI-UT1, pole position, nutation, and spacecraft parameters.  ARC also requires tables for the positions of the sun and moon.  The data for these tables are available from MIT or Scripps but may also be obtained from national astronomical and geodetic agencies or the International Earth Rotation Service (IERS).  In this section, we describe how these data should be formatted for use by GAMIT.

Geodetic Datums  ( gdetic.dat )

Table 9.1 is a example of the geodetic datum file.  There is a one-line header followed by descriptions, not read by the program, of the columns of the table.  Five-character names are used to denote each datum, which is then specified by the standard ellipsoid parameters, semi-major axis (in meters) and inverse flattening, and cartesian offsets (in meters) from the geocenter. 

Table 9.1
  Geodetic Datums                     last updated by rwk  96.10.30
Datum	a	1/f	DX	DY	DZ
WGS84	6378137.	298.257223563	0.	0.	0.
NAD83	6378137.	298.257222101	0.	0.	0.
WGS72	6378135.	298.26	0.	0.	4.5
NAD27	6378206.4	294.9876982	-12.01	-162.97	189.74
CLK80	6378249.145	293.465	0	0	0    English Clarke
CLI80	6378249.2	293.4660208	0	0	0    Clarke 1880 IGN
INT24	6378388.	297.	0	0	0

Spacecraft parameters   ( svnav.dat )

The file svnav.dat gives the correspondences between spacecraft (Navstar) numbers (NSN) and pseudo-random noise (PRN) numbers for each GPS satellite, its mass, and its yaw parameters.  The tables is updated after each launch or chance in yaw status, usually by Paul Tregoning of ANU based on data supplied by Yoaz Bar-Sever of JPL.  The begining and end of the current (Dec 96) table is shown below:

  NSN/PRN #s, masses, and yaw rates satellites.   Updated by R. King 5 December 96
PRN NS BLK  MASS(G)  BIASED  YAW RATE  YR MO DY HR MN  
 4,  1  1  453800.0     U     0.1990   78 02 22 00 00
 7,  2  1  453800.0     U     0.1990   78 05 13 00 00
 6,  3  1  453800.0     U     0.1990   78 10 06 00 00
 . . .
 9, 39  2  972900.0     U     0.1190   93 07 20 00 00
 9, 39  2  972900.0     Y     0.1190   94 06 06 00 00
 9, 39  2  972900.0     P     0.1280   95 10 23 00 00
10, 40  2  972900.0     P     0.1230   96 06 17 00 00
30, 30  2  972900.0     P     0.1230   96 09 12 00 00  -- yaw values provisional

The mass, along with the block number, is used to calculate non-gravitational accelerations.  The block number is used to determine the offset of the transmitter antenna phase center from the center of mass of the spacecraft.  The yaw "bias" and rate determine how MODEL treats the spacecraft attitude during eclipse.  Prior to June, 1994, all of the GPS satellites had unbiased ( U ) yaw when in sunlight, leading to difficult-to-predict behavior during eclipse.  Under these conditions GAMIT does not attempt to model the eclipse orientation.  In June, 1994, DoD added a small (0.5 degree) bias to the nominal yaw of some satellites, increasing the number to the entire constellation by November, 1995.  The bias causes a satellite to yaw at a predictable rate and direction during eclipse.  There are four direction "conditions" that have been in effect for at least a short period on some satellites since June, 1994:  positive (clockwise) ( P ), negative ( N ), "normal" ( Y , positive or negative, depending on the angle between the orbit plane and the Sun, and "anti-normal" ( A, opposite of normal).  For a complete discussion of the yaw history and the model, see Bar-Sever [1996] (referenced in Chapter 2).  For the GAMIT implementation, see subroutines read_yaw.f and yaw_control.f in gamit/model.  

TAI-UTC  ( leap.sec ) 

Although GAMIT files and internal calculations are now mostly GPS time, UTC is used for some old X-files and is useful for informational purposes.  The conversion from one system to another is performed by reading the table leap.sec which gives leap seconds since 1 January 1982, at which time TAI-UTC was.20.0 seconds.  The format of the table is given below:

Table 9.2

LEAP SECOND TABLE    CREATED 87-12-15   UPDATED 96-12-19
(1X,F9.1)                    2449169.0 JUN 30 1993
 2445151.0                   !JUNE 30, 1982 LEAP SEC INCREMENT
 2445516.0                   !JUNE 30, 1983 LEAP SEC INCREMENT
 2446247.0                   !JUNE 30, 1985 LEAP SEC INCREMENT
 2447161.0                   !DEC  31, 1987 LEAP SEC INCREMENT
 2447892.0                   !DEC  31, 1989 LEAP SEC INCREMENT
 2448257.0                   !DEC  31, 1990 LEAP SEC INCREMENT
 2448804.0                   !JUN  30, 1992 LEAP SEC INCREMENT
 2449169.0                   !JUN  30, 1993 LEAP SEC INCREMENT
 2449534.0                   !JUN  30, 1994 LEAP SEC INCREMENT
 2450083.0                   !DEC  31, 1995 LEAP SEC INCREMENT   
 2450630.0                   !DEFAULT LATER DATE (Guess: June 30 97)

The first line of the table is a comment.  The second line gives the format of the tabular entries to follow and the last date for which the current table is valid.  If a date beyond that given on line two is requested by the program, a message will be printed and execution will stop.  The tabular entries are simple the PEP Julian dates (PJD) for each leap second (PJD = MJD + 2400001; see the discussion with the lunar table below).  The calender dates to the right of each entry are comments not read by the program.

TAI-UT1 Table :

Table 9.3 shows a UT1 table, which consists of a two-line descriptive header and a series of values as a function of time modified Julian date (MJD).  In the example shown, the  comments on the first line indicate that the values in the table came from IERS  Bulletins A and B.  The second line includes the format of the data lines, an integer ("2" in the example) indicating whether the values are TAI-UT1 (UT1 type = 4) or TAI-UT1R (UT1 type = 2), the PEP Julian days over which the table is valid, the number of values per line ("6"), the spacing of the values in days ("5"), and the factor to be used to convert the tabulated values to the units required by the program (seconds of time)  The designation "UT1R" means that TAI-UT1 has been "regularized" (smoothed) by removing the effects of zonal tides with periods shorter than 35 days, which can introduce short-period variations up to 2.5 milliseconds.  MODEL and ARC add these terms back in from conventional models when computing the angular orientation of the earth.  If UT1 values are computed and tabulated at intervals of 5 days, as in IERS Bulletin B, it is useful to use UT1R to avoid errors in interpolation.  If values are computed at intervals of 1 day or less, however, unregularized values are preferred.  GAMIT UT1 tables are constructed from IERS circulars on a regular basis at Scripps to support PGGA operations and may be copied from the public directories.  Users should note whether the values for recent dates are "predicted" (IERS Bulletin A or B), "rapid service" (Bulletin A), or "final" (Bulletin B) and consider whether errors in the values are important for your particular analysis. 

Table 9.3 

 TAI-UT1R: IERS Bull. B, BULL. A Rapid Service from 44444; Updated 2/10/88 (5X,I5,6(I8,1X),14X,I2)          2 2445499 2446824  6  5           1.E-5      
45499 2122110  2123100  2123990  2124790  2125540  2126250      
45529 2126940  2127620  2128280  2128940  2129680  2130490      
45559 2131350  2132230  2133100  2133960  2134770  2135580      
45589 2136420  2137310  2138270  2139300  2140360  2141410      

Pole Position Table:  

Table 9.4 shows a pole-position table, which, like the TAI-UT1 table, consists of a two-line header and a series of values as a function of time.  The first line is a comment describing the source of the table.  The second line has exactly the same form as the TAI-UT1 table except for the "type" parameter, giving the format, span, number of values per line, tabular interval in days, and the factor to be used to convert the tabulated values to the units required by the program (seconds of arc).  The pole position values are stored in pairs, with the x position given as the first value of each pair and the y position the second.  As for UT1, the pole-position values from the IERS can be "predicted", "rapid service", or "final", with different levels of accuracy.  For the highest accuracy in your analysis, you should use a set of pole-position values estimated from VLBI and/or GPS data simulaneously with your site coordinates.  If you do not estimate these values in your own analysis (using GLOBK), you can copy the MIT tables /sites/vg_yymmdd and /tables/pole.vlbi_yymmdd 

Table 9.4  

BIH79 WOBBLE:  UPDATED WCB 01/05/87  RAP.SER. FROM 46744, PRED. FROM 46794 (1X,I9,12I5,8X,I2)                 2445499 2446824  6  5           1.E-3      
45499  222  497  238  480  252  462  265  444  276  425  287  405      
45529  298  384  309  363  319  341  326  319  330  298  333  277      
45559  333  256  331  235  328  214  322  193  314  172  304  151      
45589  293  131  280  112  265   95  249   80  231   66  211   54     
45619  189   43  167   34  145   27  123   22  100   18   77   17    
45649   55   18   33   19   12   22   -9   26  -29   32  -47   39   

 Lunar Table: 

 Table 9.5  shows the beginning section of a Lunar table, which has the same format as the UT1 and pole tables except that there is an additional character entry at the end of the second header line indicating whether the ephemeris is in a B1950 or J2000 inertial frame.

Important note on Julian Day numbers:  In the lunar, solar, and nutation tables , we have followed the convention of the MIT Planetary Ephemeris Program (PEP) and designated a day, beginning at midnight, by conventional Julian Day which begins the following noon.  Thus, the PEP JD (PJD) is the conventional Julian Date + 0.5.  The Modified Julian Day (MJD) used by the IERS in the earth rotation tables is one day (plus 240000) less than the PEP Julian Day, i.e. , PJD = MJD + 1 + 2400000.  

 For each following line of the table, the first number is the PEP Julian day number of the table entry minus 2400000.  (Note that the time interval spacing between table entries is 0.5 day.  Therefore, two table entries will have the same Julian day number.)  The second, third and fourth numbers are the x, y and z of the Moon's position on that Julian date.  The units are meters and the values are with respect to the  mean equator and equinox of 1950.  

Table 9.5  

J2000 Lunar ephemeris for 1995   Nov 94 - Mar 96   rwk/MIT  95/6/16             
(1x,i5,6i11)                 0 2449641 2450200  3 -1          1.E-03 J2000
 49641  338866941 -190113511  -44831903
 49641  359853304 -154961265  -30778560
 49642  376410611 -117854817  -16331906
 49642  388399920  -79273638   -1673630
 49643  395737251  -39701958   13016720
 49643  398392214     376099   27563394

Solar Table:  

Table 9.6 shows the beginning section of a Solar table (which is actually a tabulation of the position of the Earth with respect to the Sun).  The header entries are at 4 day intervals, the PEP Julian day number has 2400000 subtracted, and the x,y,z postion  components are in kilometers.

Table 9.6   

J2000 Earth ephemeris for 1995  Nov 94 - Mar 96  rwk/MIT  95/6/16               
(1x,i5,6i11)                 0 2449641 2450197  3  4          1.E+00 J2000
 49641  138814695   50128193   21733554
 49645  134547714   58751821   25472708
 49649  129639597   67095038   29090431
 49653  124109860   75118738   32569486

Nutation Table:

Table 9.7 shows the beginning section of a nutation table.  The first line is  again a comment line describing the table.  That comment line indicates that the table is good from the 335th day of 1984 to the 180th day of 1985 and that the table was generated March 26,1985.  The second line gives the format of each table line and then five numbers.  The start and stop Julian day numbers of the table are the first two.  The third numbers indicates that each line will contain four pairs of table values. The fourth number (-1) indicates that the tabular interval is 0.5 (i.e. 2-1) day. The fifth number indicates the value that the table values must be multiplied by to get the proper units (arc seconds) for the program.  Only the start and stop Julian day numbers are actually used from these headers.   On each following line of the table, there is the PEP Julian day number - 2400000, followed by four pairs of values of Dy and delta De, the conventional angles describing the nutation in longitude and obliquity (in units of 10- 4 arcseconds, according to the fifth entry in the second header line).  Note that the table lines are at time intervals of two days, which means that each pair of nutation angle values is 0.5 days apart. 

 Table 9.7  

Nutation ephemeris for 1995    Nov 94 - Feb 96   rwk/MIT  94/10/4               
(1x,i5,8i8,8x,i2)                  2449641 2450200  4 -1          1.E-04
 49641  117182  -59269  116620  -59240  116001  -59247  115344  -59290
 49643  114671  -59373  114000  -59494  113350  -59652  112738  -59843
 49645  112180  -60063  111686  -60305  111267  -60564  110928  -60832
 49647  110672  -61104  110499  -61372  110406  -61630  110385  -61872
 49649  110429  -62092  110527  -62286  110667  -62450  110835  -62582
 49651  111016  -62680  111193  -62745  111351  -62777  111473  -62780