Best viewed with Firefox

GAMIT Processing for Modern Geodetic Methods (Page. 1 of 3)

by Andrew Newman

NEXT RUNNING GAMIT: Determining loosely constrained GPS positions



Please refer to the Introduction, GAMIT, and GLOBK manuals (local version) for details of processing.

A few words about the data and network:

  • These data are from 3-campaigns that I performed across the Socorro Magma Body in 2002, 2003 and 2004.
  • The network was established to identify transient deformation across the region.
  • In years 2002 and 2003, 9 campaign sites were used. Going west to east they are LDRN, LINO and CLIF along a line in the Northwest, followed by SLVR, SVRK (ROCK), VVRS, BOWL, PRTC and YES along a line to the south.
  • In year 2004, an additional 4 sites were added, to identify possible increased deformation along a portion of the network. These stations were named CORK, KELL, PRID, and PAS1. With the last station reoccupying a continuous site for the duration of the campaign near the PASSCAL instrument center at New Mexico Tech. Thus far, these stations have only been measured during one campaign, so we will only be able to constrain their location, and not deformation rate.
  • Additionally, a continuous site, SC01, in the southern part of the network, just north of PAS1 was running, and can be used to additionally constrain deformation and reduce overall error.
  • Depending on year, campaign sites were occupied between 2 to 4 days, continuously.

Specific initializations:

  • Processing will now take place on a 64-bit 16-processor SGI-Linux cluster. Please log into tsunami with your current username and password.
    % ssh -X $USER@tsunami.eas.gatech.edu 

  • Now please change your group to MGM by running. Note that upon switching groups a message will be displayed telling you which directory to work in.
    % newgrp MGM   
    % mkdir MGM    # need to create MGM if it doesn't already exist  
    % cd MGM       # same as 'cd /home/$USER/MGM' here  

Data Conversion and initial Quality Control:

  • If you haven't already done so, please copy over data from TEST directory. Go to the new directory and create a subdirectory called 'rinex'.
    % cp -a ~anewman/MGM/TEST/Socorro2002 .
    % cd Socorro2002 
  • Lets also clean up the directory structure a bit
    % mkdir RAW
    % mv *dat *eph *ion *mes RAW 
  • IMPORTANT: Should check to make sure that none of the campaign station IDs overlap with continuous stations. It turns out that my station ROCK was previously used, thus I need to a different name for this site. I chose to create a symbolic link for temporary station SVRK (for SeVilleta RocK).
    % cd RAW
    % for file in ROCK*   # run on all rock files 
       do
         tail=`echo $file | cut -c 5-`   # create a variable 'tail' with the last part of the file names
         ln -s $file SVRK$tail           # create a symbolic link for the new name
       done
    

    Create a directory for RINEX data called 'rinex':

    % mkdir ~/MGM/Socorro2002/rinex
    % cd ~/MGM/Socorro2002/rinex 

TEQC:

    Look at the TEQC GPS preprocessing manual for details on using the program and for deciphering output.

  • We will use 'teqc' to create Navigation (.nav) and RINEX (.YYo) files. RINEX is the standard GPS format for geodesy.
    % teqc -tr d -week 2002:323 +nav BOWL3230.nav ../RAW/BOWL3230.dat > BOWL3230.02o
      #      ^       ^              ^                     ^                ^              
      #      |       |              |                     |                |
      #  convert     |          create navigation         |              output file
      #              |            file                    |                
      #              |                                 input dat		  
      #        tell it when                              file
      #         data is from  

    Doing this for every file gets a little time consuming, particularly if you are re-processing a lot of old data. Thus it is better to use a shell script to automate this process. Please read over the script in /usr/local/geophysics/bin/run_teqc.

    # run without arguements to get usage.
    % run_teqc
       Usage: /usr/local/geophysics/bin/run_teqc YEAR 'GPS.dat_files'
            runs teqc on the 'GPS.dat files' listed as the 2nd and later arguements
            YEAR is the year of the occupation... all other information is pulled from
            the file name.
    # run again correctly this time. 
    % run_teqc 2002 ../RAW/*.dat 
  • We can now remove the newly created ROCK* files since the SVRK files are the same. We will also need to individually replace all occurrence of the word ROCK within the filesSVRK*.
    % cd ~/MGM/Socorro2002/rinex/   # make sure you are in the correct directory 
    % rm ROCK*                      # remove any residual ROCK* files 
    % gunzip *                      # uncompress all compressed files in directory (*.gz *.Z)       
    %  for file in SVRK*            # run on all SVRK* files 
      do
        sed 's/ROCK/SVRK/g' $file > $$.tmp     # replace text 'ROCK' with 'SVRK' within $file and put it in $$.tmp 
        mv $$.tmp $file                        # replace $file with $$.tmp 
      done 

  • Once complete, check to see if all necessary files are in the current directory.
    (9 stations X 2day X 10files = 180 files). Number depends on whether you created additional files (e.g. lfiles.*).
    % ls
    % ls -1 | wc  # gives first output number is equal to the number 
                  # of files in current directory  

GAMIT preprocessing:

    Official GAMIT website and manual is here.

  • Before we start processing with GAMIT, we need to create a link called 'gg' to GAMIT from your base directory. This will only need to be done once.
     % ln -s $GAMIT ~/gg 

Tables:

    Some tables need to be created, then modified before running GAMIT.

  • The program 'sh_setup' should create a subdirectory called tables that will hold the information necessary for processing the GPS data.
    Note that this program isn't perfect and will create some dead links and ignorable errors. Determining which errors to ignore in GAMIT is a skill that I have yet to master.
    % cd ~/MGM/Socorro2002/  # make sure you are in the correct directory
    % sh_setup -yr 02 


Table updates: tables/lfile.

Adding Campaign Sites
  • Now, we will create some entries for our stations locations in the tables directory. The first table that we need to modify is the 'lfile.' (called L-file) in tables. This is a table with each row containing a unique station location. (see manual for details). Using sh_rx2apr we will create a priori station locations to be put in the lfile..
    % cd ~/MGM/Socorro2002/rinex
    % gunzip *.gz # uncompress observation files (compressed files end with .gz or .Z)
    % for file in *02o   #for each of our data files run sh_rx2apr to give a location file
      do
        sh_rx2apr -site $file 
      done
      % cat lfile.* >> ../tables/lfile. # put that information in the lfile. 
      # note that lfile version in Cartesian coordinates is created 'STAT'.apr 
    These campaign station coordinates are only approximate (generally good within a couple of meters). The error in the initial location used in the lfile. will yield an associated error in the final estimate about 1e-3 smaller (i.e. 1 m apriori error = 1mm associated error in solution).

Determining useful continuous sites
  • We will need to incorporate other nearby stations to be able to sucessfully model atmosphere and reduce error. These stations will have tight constraints and thus the station locations need to very well resolved.

    I suggest using one of two or both methods to obtain good well constrained nearby stations for a solution.
    In general, it is good to have at least for stations.
    • Use the shell script 'lfilesearch' that I wrote (and Grant Farmer modified) to search the L-file linked to your home directory to find stations within a supplied radius or rectangular range.
      % lfilesearch -C-107/34/1000 -T2002/311 # search from center of network for 1000 km  and on day 2002:311
      #STAT  Station_Name       BYER BDY BYER BDY      LONGITUDE       LATITUDE        DISTANCE
      MDO1   McDonald Observa   2002 240 2004 342      -104.01499202   30.51195422     510.283053
      PIE1   Pietown VLBA Sit   2002 302 9999 999      -108.11892592   34.12263104     125.113315
      AMCT   Alt. Mast. Clk.    1998  83 9999 999      -104.52459641   38.61536724     582.125115
      AMC2   Alternate Master   2002 184 9999 999      -104.52459237   38.61537759     582.126339
      BLYT   Blythe             2000 299 2005 314      -114.71484939   33.43323363     859.816379
      HVLK   Haviland           1998 286 9999 999       -99.10675894   37.46551719     958.168856
      JTNT   Jayton             1997 142 9999 999      -100.97714499   32.84162446     681.709476
      GDAC   Granada            1999 134 9999 999      -102.18001233   37.58930457     667.967930
      TCUN   Tucumcari          1997 337 9999 999      -103.60911939   34.90424728     390.067372
      WSMN   White Sands        1998 273 9999 999      -106.34982950   32.23328806     209.245381
      RBUT   Wasatch, Red But   1997  55 9999 999      -111.80875901   40.59086687     906.834762
      DHLG   Durmid Hill        2000  97 9999 999      -115.78802577   33.21320179     980.696099 
      This gave 12 station choices for stations that are supposed to be running then and are within 1000 km and are already in the tables.
    • Alternatively, go to UNAVCO's website to find a reasonable area. Start with stations within about 1000 km of network. It is generally better to use stations with long histories and good repeatability.

    Stations that will be tightly constrained also must appear in the file tables/sittbl.. See GAMIT manual for details.
    Some of the stations you pick may fail, and will need to be removed and rerun (either the data may not be available, or just bad on that day). Stations I chose are: SC01, PIE1, AMC2, MDO1, NLIB, and GODE (last two are further away but known to be very good.--Iowa and DC)

  • If we used lfilesearch stations should already be in 'tables/lfile., otherwise we need to check to check. All of mine are except SC01. I can manually add it using a raw rinex datafile from UNAVCO and running 'sh_rx2apr' to get the lfile input). SC01 will not be well constrained, thus we will resolve its location along with our other campaign sites. Since I previously proccessed this data for another period, I will directly input the data from my updated L-file.
    For reference, the end of my lfile. looks like:
    BOWL BOWL_GPS    N34  3 15.55638 W106 53  7.53737 6372831.0684
    CLIF CLIF_GPS    N34 10 29.67575 W106 53 35.48128 6372895.2935
    LDRN LDRN_GPS    N34 13  5.49527 W107  1 52.46051 6373076.2472
    LINO LINO_GPS    N34 10 55.80807 W106 58 17.40679 6372914.4707
    PRTC PRTC_GPS    N34  1 57.07323 W106 49 37.28745 6372917.2319
    SLVR SLVR_GPS    N34  5 36.43839 W107  3 42.46503 6373136.4880
    SVRK SVRK_GPS    N34  4 47.73760 W107  1  8.94292 6373184.8907
    VVRS VVRS_GPS    N34  4 11.52191 W106 57 33.74798 6372921.9744
    YESO YESO_GPS    N34  1 54.81865 W106 45  7.52664 6373000.6496
    SC01 SC01_GPS    N33 53 22.74823 W106 57 59.55293 6373562.5132  Updated from lsmb15.325
    
    We should also be able to use the new format in cartesian coordinates... I don't know if we can mix and match, however.
    It is important to spend some time picking good stations and getting in the best apriori locations possible

Table updates: tables/sites.defaults

  • We need to modify 'tables/sites.defaults' (tells which sites to download vs. local, and which to use as reference stations). Read the header of the file for details on the usage.
    When inputing our stations, we need to make sure that we include an experiment name. This is useful if we are using overlapping data from several different processing schemes. In class, lets go ahead and use smb1. Be careful to use correct Caps. IMPORTANT: It is necessary to use small caps for all ftped station names.
        # pertinent lines 
          pie1_gps  smb1 ftprnx    xstinfo glrepu
          mdo1_gps  smb1 ftprnx    xstinfo glrepu
          amc2_gps  smb1 ftprnx    xstinfo glrepu
          nlib_gps  smb1 ftprnx    xstinfo glrepu
          gode_gps  smb1 ftprnx    xstinfo glrepu
          sc01_gps  smb1 ftprnx            glrepu
          BOWL_gps  smb1 localrx           glrepu
          CLIF_gps  smb1 localrx           glrepu
          LDRN_gps  smb1 localrx           glrepu
          LINO_gps  smb1 localrx           glrepu
          PRTC_gps  smb1 localrx           glrepu
          SLVR_gps  smb1 localrx           glrepu
          SVRK_gps  smb1 localrx           glrepu
          VVRS_gps  smb1 localrx           glrepu
          YESO_gps  smb1 localrx           glrepu
    

Table updates: tables/station.info

  • We now need to make sure to create a proper table/station.info file.
    • You can use the following command to get station.info information, only for the continuous sites, from SOPAC (Southern California GPS processing center). This will create a file called test.info for the individual station that you can put into your station.info file.
        % wget "http://sopac.ucsd.edu/cgi-bin/procInputMetadata.cgi?site=gode&date=20021107&format=station_info" -O test.info
       

      We can automate this for all the stations.

        % cd ~/MGM/Socorro2002
        % YYYYMMDD=20021107   # DOY 311 
        % for stat in `awk '$1!~"#"{print $1}' ./tables/sites.defaults | cut -c -4`
            do 
              echo $stat $YYYYMMDD
              wget "http://sopac.ucsd.edu/cgi-bin/procInputMetadata.cgi?site=${stat}&date=${YYYYMMDD}&format=station_info" -O test.info 
              cat test.info >> all.info
            done 
       # edit this file to remove excessive junk 
        % mv all.info ./tables/station.info
        

    • Alternatively, we can pull information for most, if not all of the continuous stations from ~/gg/tables/station.info.sopac.newfmt or ~/gg/tables/station.info.

  • Important: We will additionally need to put in the information for the campaign sites. This information should come form the hand-written site logs during the occupations. See my station.info to get the pertinent campaign site information.
    *SITE  Station Name      Session Start      Session Stop       Ant Ht   HtCod  Ant N    Ant E    Receiver Type         Vers                  SwVer  Receiver SN           Antenna Type     Dome   Antenna SN
     PIE1  pie10000          2002 302 00 30 00  9999 999 00 00 00   0.0610  DHPAB   0.0000   0.0000  ROGUE SNR-8000        3.2.32.11              3.20  --------------------  AOAD/M_T         NONE   -------------------
     MDO1  mdo10000          2002 240 00 00 00  2004 342 00 00 00   0.0610  DHPAB   0.0000   0.0000  ROGUE SNR-8000        3.2.32.11              3.20  --------------------  AOAD/M_T         JPLA   -------------------
     AMC2  amc20000          2002 184 00 21 00  9999 999 00 00 00   0.0000  DHPAB   0.0000   0.0000  ASHTECH Z-XII3        IL01-1D04-MCF-12MX     9.90  --------------------  AOAD/M_T         NONE   -------------------
     NLIB  nlib0000          1999 243 00 00 00  2005 105 00 00 00   0.0610  DHPAB   0.0000   0.0000  ROGUE SNR-8000        0.5                    0.50  --------------------  AOAD/M_T         JPLA   -------------------
     GODE  gode0000          2002 123 00 00 00  2006 101 00 00 00   0.0614  DHPAB   0.0000   0.0000  AOA SNR-8000 ACT      3.3.32.5               3.30  --------------------  AOAD/M_T         JPLA   -------------------
     SC01  sc010000          2001 227 00 00 00  2005 318 00 00 00   0.0000  DHPAB   0.0000   0.0000  TRIMBLE 4700          1.37                   1.37  --------------------  TRM29659.00      SCIT   -------------------
     BOWL  BOWL0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14628---------------  AOAD/M_T         NONE   62099--------------
     CLIF  CLIF0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14628---------------  AOAD/M_T         NONE   73539--------------       
     LDRN  LDRN0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14629---------------  AOAD/M_T         NONE   185528-------------
     LINO  LINO0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14633---------------  AOAD/M_T         NONE   62099--------------
     PRTC  PRTC0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14633---------------  AOAD/M_T         NONE   185528-------------
     SLVR  SLVR0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14628---------------  AOAD/M_T         NONE   185528-------------
     SVRK  SVRK0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14629---------------  AOAD/M_T         NONE   73539--------------
     VVRS  VVRS0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14633---------------  AOAD/M_T         NONE   62099--------------
     YESO  YESO0000          2002 001 00 00 00  9999 999 00 00 00   0.5000  DHPAB   0.0000   0.0000  TRIMBLE 4000SSI       7.19 / 3.04            7.19  14629---------------  AOAD/M_T         NONE   73539--------------
    

    The specific information for this file, particularly the receiver and antenna types are crucial. Please check over the file ~/gg/tables/rcvant.dat for details about the different antenna and receiver types. Additional information can be found in the GAMIT manual(local version).


NEXT RUNNING GAMIT: Determining loosely constrained GPS positions


Course Home | anewmangatech.edu | Updated: Thu Oct 5 13:40:57 EDT 2006