Difference between revisions of "Kinematic Processing"

From GeodesyLab
Jump to: navigation, search
(Define the solution parameters)
Line 44: Line 44:
 
  ! except for very short baselines, this is always true.
 
  ! except for very short baselines, this is always true.
 
   WETZTROP  = .TRUE.                                                     
 
   WETZTROP  = .TRUE.                                                     
  ! don't recall what this is
+
  ! This is the white noise sigma applied to phase ambiguity parameters
 +
! whenever a new ambiguity needs to be estimated (.1 seems to work).
 
   yaddsg = 0.1
 
   yaddsg = 0.1
 
  ! this is the random walk constraint for the troposphere, in km/sqrt(sec)
 
  ! this is the random walk constraint for the troposphere, in km/sqrt(sec)

Revision as of 19:00, 5 June 2012

Workflow

  • define subnet file (including clock site, a couple of non-kinematically estimated sites, at the ones you are really interested in)
  • define namelist (nml) file (RANDOM-WALK!), at best put them into /home/akda/Kinematic . That's also were examples live
  • adapt script that calls solve (check whether you need a rapid solution -- when orbits aren't in yet)
  • run solution
  • extract data from .trop files
  • plot results.

Temporal Resolution below 5 min

The standard solutions run with a temporal solution of 5 minutes (6 minutes if older than 1995). This means the standard qm files do not contain enough information if you need a finer resolution. Here is what to do:

  • create campaign directory: newcamp /gps/data/CAMPAIGN_NAME-interval
  • create qm files for all rinex files from sites that go into that campaign for respective time:
           
            rnx2qm RINEX-file -dir $procdir -interval 30
    
            or
    
            reprocess_rinex station-name start-day end-day rinexdir outdir interval
           
    

    where $procdir=/gps/data/CAMPAIGN_NAME-interval, i.e. the campaign directory you just created.

  • copy the orbits for the repective day(s) into /gps/data/CAMPAIGN_NAME-interval/orbit
  • add the -nosvclkfile flag to your solve call, to make sure the satellite clocks are not used ...
  • or get high resolution clocks for the respective days from ftp://sideshow.jpl.nasa.gov/pub/gipsy_products/hrclocks/ and copy those into /gps/data/CAMPAIGN_NAME-interval/orbit
  • if you got the high resolution orbits, make sure to rename them: mv *.tdp *.tdpc
  • make sure to update the $CAMP variable in the make-xxxxx file that you copy into your /gps/data/CAMPAIGN_NAME-interval/flt directory

Define the solution parameters

Use an NML file to define the solution parameters. Here is an example to start with.

$PREP                       !namelist input for preprefilter           
! reference clock is REQUIRED.  you need to use one of 
! your sites, generally one with a stable clock.  Mostly
! it means anything except a trimble.  If an external
! oscillator is used, then it can be a reference clock.
  REFCLOCK = 'THU1' 
! just says whether the troposphere will be estimated stochastically.
! except for very short baselines, this is always true.
  WETZTROP  = .TRUE.                                                    
! This is the white noise sigma applied to phase ambiguity parameters 
! whenever a new ambiguity needs to be estimated (.1 seems to work).
  yaddsg = 0.1
! this is the random walk constraint for the troposphere, in km/sqrt(sec)
  TROPDRIFT = 1.70D-7                                                   
! if you want to estimate additional paraetmeters stochastically, you
! put them here.  You don't have to put clocks here, because GIPSY
! assumes that all clocks will be estimated stochastically.
  SSTCH = 'STA E   SCOB','STA N   SCOB', 'STA V   SCOB'
! in this example they are the east, north, and vertical components 
! for station SCOB.  Generally station locations are not
! estimated stochastically
! This tells you how to constrain the parameters you named above.
  SPSIG = 3*1.0D-6,  ! random walk constraint
  SMTAU = 3*'RANDOMWALK', 
! how often do you want to estimate these stochastic parameters
  SDELT = 3*'/00:05', ! compute a position every 5  minutes 

                                                                       
$END                                                                   
                                                                       
                                                                       
$INIT                       !namelist input for filter                 
  YDEL(1) = 'STABIAS THU1' ! same for the reference clock
 ! STABIAS is the GIPSY name for a station clock. SATBIAS is 
 ! for a satellite clock

 ! this is if you are estimating station positions stochastically.
 ! just do it.
  grounddelete = 'SCOB',
 STAINT    = .FALSE.                                                   
 IDIGIT    = 9                                                         
                                                                       
  ! this is a list of all the parameters you DO NOT                         
  ! want GIPSY to estimate.  look at the cartoon book
  ! for more info.  X, Y, Z, DX, DY, DZare the satellite orbits.
  ! you don't want to estimate them if youare using someone
  ! else's orbits, which I would assume you are all going to do
 YDEL(2)      = 'UT1-UTC', 'UT1-UTC RATE', 'X POLE *', 'Y POLE *',     
             'GEOCENTER*', 'V LOVE', 'H LOVE', 'DRYZTROP*',            
             'LMPZTROP*', 'STA DRFT*', 'STA ACCL*', 'SAT DRFT*',       
             'SAT ACCL*', 'BIASPSR*', 'SOLARSCLTOP*','Y_BIAS  TOP*',   
             'XPOLEMOTION','XPOLERATE','YPOLEMOTION','YPOLERATE',      
             'X*',  'Y*', 'Z*',  'DX*', 'DY*', 'DZ*','TRPAZ*', 
              'SOLSCL_X*', 'Y_BIAS*', 'SOLSCL_Z*', 'SOLARSCL*'
                                                                       
 SOLPRT    = .TRUE.                                                    
 NOMEAS    = .FALSE.                                                   
 SOLVE     = .TRUE.                                                    
 DEBUG     = 1                                                         
 OUTNAME   = 'OASIS'                                                   
$END                                                                   
                                                                       
$APRIORI                    !namelist input for filter                 
 APALL     = .TRUE.                                                    
 !  The following are NOT currently estimated                          
 !                                                                     
 ! Parameters actually estimated start here                            
 !                                                                     
    APNAMS( 1) =      'WETZTROP*',        APSIGS( 1) = 10.0D-5  !10 cm 
    APNAMS( 2) =      'STABIAS*',         APSIGS( 2) = 3.0D5   !1 sec  
    APNAMS( 3) =      'SATBIAS*',         APSIGS( 3) = 3.0D5   !1 sec  
    APNAMS( 4) =      'PHASE*',           APSIGS( 4) = 1.0D-1   !1 micr
   ! I am using ENV here, but you should set these for XYZ if you are doing
   ! it in the Cartesian frame
    APNAMS( 5) =      'STAE*',            APSIGS( 5) = 1.  !1 km
    APNAMS( 6) =      'STAN*',            APSIGS( 6) = 1.  !1 km
    APNAMS( 7) =      'STAV*',            APSIGS( 7) = 1.  !1 km
    APNAMS( 8) =      'STA E   KOKB',     APSIGS( 8) = 10.0D-3  !10 m
    APNAMS( 9) =      'STA N   KOKB',     APSIGS( 9) = 10.0D-3  !10 m
    APNAMS(10) =      'STA V   KOKB',     APSIGS(10) = 10.0D-3  !10 m
                                                                      
                                                                       
                                                                       
                                                                       
$END                                                                   
                                                                       
$DATAWGHT                 !namelist input for filter, edtpnt2, and post
 ELMINSTA  = 15.0D0 ! elevation angle minimum                          
 ! 110 is pseudorange, 120 is phase
 DATYPE    = 110,    120,   
 DATSIG    = 1.0D-3, 1.0D-5, ! these are in km
 XRECNM(1) = 'HOLE' ! this is to delete a specific receiver
 XXMTNM(1) = 'GPS04' ! this is to delete a specific satellite
$END                                                                   
                                                                       
$SMINPUT                  !namelist input for smapper                  
 SAVEUD     = 'LAST'                                                   
 SAVESIGMA  = .TRUE.                                                  
 IDIGIT     = 9                                                        
 MAPTYP = 'CARTESIAN'
 OUTNAME    = 'OASIS'                                                  
  TDPFULLPRECISION = .TRUE.
 ! write out these parameters for stochastic parameters
 ! GIPSY only creates this file if asked for (it is a TDP
 ! - time-dependent-parameter file).  If you want to know
 ! clock values, then you need to write their names here.
 WRTTDP  =  'STA E   SCOB',  'STA N   SCOB',  'STA V   SCOB',
 TDPTYP  = 'TIMEVARY',
 TDPTOL  = 1.0d00,
 STAINT     = .FALSE.                                                  
$END                                                                   
                                                                       
$APRIORINML              !namelist input for smapper                   
$END                                                                   
                                                                       

$LIMITS                 !namelist input for postfit                    
 ! outlier criterion, i.e. flag all phase data greater than 5 cm.
 STAINT = .FALSE.                                                      
 DATYPE  = 120                                                         
 WINDOW  = 5.0D-5,                                                     
$END                                                                   
                                                                       
$EDTINIT                !namelist input for edtpnt2                    
 STAINT = .FALSE.                                                      
 DEBUG  = .TRUE.                                                       
$END