Briefing of st_filter analysis
    The st_filter package is designed as the second generation of the QOCA analysis. The original QOCA works very successfully in many geophysical and geodetic applications. As the scientists persue more robust and efficient GPS solution analysis, however, the original QOCA design shows its limitations.
   First, original QOCA is not convenient to combine the daily GPS cluster solutions into a combined daily solution. In particular, the satellite orbit parameters are not included in original QOCA analysis package. Second, when the solutions come from different software or analysis centers, original QOCA can not handle the systematic differences between differenct solutions. For example, JPL's GISPY solutions have systematic scale difference comparing with the GAMIT solutions due to different satellite antenna phase center models. The original QOCA does not allow to estimate two scale parameters, one is for GIPSY solutions and the other one is for GAMIT solutions. Third, original QOCA does not have the option to perform offset correction and other corrections only to a subset of the data. Fourth, the original QOCA accepts only QOCA qob file format, so that all data must be transfered to qob format by running mk_qob, which waste space and time. Fifth, the original QOCA can only estimate limited parameter types, not general enough to meet the demands of scientists.
   To meet the new challenge and demands from scientists, we decided to design and develop the second generation of QOCA analysis software in 2002. Our initial consideration was to perform spatio-temporal filtering directly in this package, so that the second generation package was named as st_filter (spatio-temporal filtering). Later, we decided to distribute the spatio-temporal filtering task into several utility packages, such as analyze_tseri, ssm (scaled sensitivity matrix analysis), and netwk_inv (network inversion program). But the st_filter name is kept as the historical benchmark. The first protocol of the st_filter parckage was finished in September, 2005. The developments of the st_filter continue and currently we are still improving the st_filter software.
   The st_filter still inherits the input/output style and the basic structure of QOCA. Thus the QOCA users can easily handle the st_filter operation. Here we assume that the readers already have the advanced experiences with QOCA analysis. So that we start the st_filter class from the advanced level. The major new developments of the st_filter are as followings:
  
  1. Read various date file formats directly. Thus we do not need to run mk_qob to 
transfer the various data to qob format first. Currently, we only finish a part of 
data formats. The current recognized data types are GAMIT output ascii h-file (type 
45), GIPSY output stacov file (type 41), binary glx file for GLOBK (type 48), SINEX 
file (type 49), and QOCA qob file (type 33). We are still working on other data 
format. In the input data list file, st_filter accepts mixed data format. After 
each data file name, there is a data type index. The st_filter will read the data 
based on their data type index. 
  2. Set up data sub-group index. The estimated parameters, offset corrections, 
rename list, and unuse list all have their corresponding sub-group. Such an option
give users great flexibility. Users can estimate some parameters only for the 
corresponding sub-group. For example, estimate one scale parameter for GIPSY 
solutions and another scale parameter for GAMIT solutions. For the same station,
user can correct one offset for GAMIT solutions, another offset value for GIPSY 
solutions.  
  3. Besides the sub-group, each estimated parameter also has the attribution of 
valid interval (start epoch and end epoch). For example, one station can have 
multiple velocities, each is related to different interval. Another example is 
the network parameters. When analyzing multi-year data, user can estimate weekly
network parameters (rotation, translation and scale) based on their effective 
intervals.
  4. Can perform daily cluster solution combination to get daily combined solution.
  5. Accept high-rate solution analysis.
  6. Accept orbit parameters and can combine orbit paramters.
  7. Besides QOCA style output file, can also output SINEX format file.
  8. Can also output strain(rate), gamma(rate) results simultaneously.
  9. Output residual file for quality checking of the individual loosely 
constrained data file.
  10. User defined outlier checking of the raw data.

    To run the st_filter, just typing:
     st_filter st_filter.drv
   All the commands are stored in the st_filter.drv file. The st_filter.drv file has the same structure and convention as other QOCA driver file. The st_filter.drv file has the following structure:
  apriori value file: (site position and velocity apriori value file)
            the same format as other QOCA package used.
  site_list:  (site list file name)
            In the site_list file,
            the first line is the site number, the rest lines are site names.
  sate_list:  (satellite orbit list file name)
            The st_filter accepts SOPAC used svs file format as the sate_list file,
            in which each line is a long record for a satellite in a specified day 
            with all 23 orbital parameters. If the svs file contains multi-day orbit
            ephemeris, st_filter will pick the records in the right day.
  in_list:  (input file list name)
            In the in_list file, the first line is data file number.
            The rest lines are the file name (including path) and file type.
            For example:
            ../hfiles/higs1a.07300.Z  45  0  1.0  1
            The first field is file name, second field is the file format type, 
            the third field is the option index, the fourth field is the uncertainty 
            enlarge factor, the fifth field is the sub-group index. 
            type = 33: QOCA qob file format
            type = 45: SOPAC ascii h-file file format.
            type = 47: GIPSY stacov format
            type = 48: binary GLX for GLOBK
            type = 49: SINEX format
            The option index is in integer bit-map format. Most bits are for specific use.
            When the option index = 4 (bit 3 = 1), that means to start a new solution 
            (output previous solution and re-initiate all working arrays).
            Note: st_filter recognizes both compressed (.Z, .gz) and un-compressed data
                  format. If the data files originally are compressed, we recommend users 
                  to uncompress the data files first. After the st_filter analysis, users
                  compress the data files to restore original compressed format. The 
                  st_filter runs 3 times slower with the compressed data file than the 
                  uncompressed data file. 
  est_parameter list file: estimated parameter list file
            There is no parameter number line in the list file. Each line represents a 
            parameter setup command. The typical format of the parameter line is:
              all_site           1   1980.000  2015.000 0.00   10.0  0
            The first column of the line is the comment index. If the first column is 
            not an empty (any non-empty character), this line is considered as a comment
            line. The first field is parameter name. The second field is the parameter 
            index. The third and fourth fields are effective start and end epochs for 
            this parameter. The fifth and sixth fields are apriori value and constraint 
            (sigma) for tis parameter. The seventh field is the sub-group index for 
            this parameter. If the sub-group index is zero, that means this parameter is 
            estimated for all sub-groups.
            Note: the parameter name is a fixed name, which should be spelled correctly.
            For details of the parameter file, please look at the example (above frame).
  utpm table file: UT1, polar motion table file, the same as QOCA used.
  leap second file: leap second table file, the same as QOCA used.
  rename_file: station name change list file.
            The first line is the rename number. The rest lines are rename list.
            The typical format of the rename list is:
            VALE_GPS VAL1_GPS 2 1990.0000 2100.0000
            The first field is the old station name, the second field is the new station 
            name, the third field is the sub-group index, the fourth and fifth fields are
            start and end epochs for the rename of this station.
            If the sub-group index is zero, that means this station rename is valid for 
            all sub-groups.
            Note: 
              (1) Both the old and new station names should be listed in site_list file 
                  and apriori file. 
              (2) Both the old and new station names should be 8-characters. We strongly 
                  recommend to rename the station in the first 4 characters. For example, 
                  change VALE_GPS to VAL1_GPS. If you set to change VALE_GPS to VALE_NEW,
                  it still works. The problem is for SINEX output. Current SINEX file 
                  has 4 characters for each station name, so that st_filter just cut out 
                  the first 4 characters for station name to the SINEX output file. As a
                  result, both VALE_GPS and VALE_NEW become VALE.
  abandoned site list:  unused site list.
            The first line is the abandoned site list number, the rest lines are the list.
            The structure of the list is:
            COSO_GPS 1998.0781   1998.0781  1   (higs2a.98027 has problem)
            The first 4 fields represent station name, effective start and end epochs, 
            the sub-group index. After the fourth field, user can put his comment for the 
            unuse reason. If the sub-group index is zero, this station will be removed 
            for all sub-groups.
  offset correction file: the non-tectonic coordinate offset correction file.
            The first line is the offset correction list number, the rest lines are the 
            lists.  The structure of the list is:
            1999.6671 2100.0000  -0.003328  -0.003535  -0.002729 0  AMC2_GPS equipment change
            The fields are defined as:
            start epoch, end epoch, east, north, vertical correction, sub-group index,
            station name. After station name is the note for the correction. The unit 
            of offset correction is meter.
            If the sub-group index is zero, this correction will be for all sub-groups.
            Note: the listed offset correction values will be SUBTRACTED from the data
            file. 
  co_seismic list file: The coordinate jump list file. Note: the jumps are related to 
            tectonic or other geophysical processes. These jumps be removed from the 
            begining (modify the apriori coordinate values, but not touch the data records)
            so that the adjustments will be small (the jumps have been considers), but 
            the final solutions still include the jump values.
            The first line is the jump number. The rest lines are jump list.
            The structure of the jump list is:
            1999.7904 -0.003836  0.002511  0.002124  AZU1_GPS  co-seismic Hector Mine EQ
            The fields are defined as:
            epoch, east, north, vertical jump values, station name, notes.
            The unit of jump values is meter.
            Note:
              (1) The listed jump values will be ADDED to the apriori coordinate values.
              (2) The jump values will remain in the solutions, while the offset 
                  correction values will disappear in the solutions (offset being corrected).
  param_influence list: estimated parameter influence area list file.
            This option is not activated yet.
  param_perturbation list: estimated parameter perturbation range list file.
            This option is not activated yet.
  internal constraint file: function is similar to QOCA. But the format is different.
            Its format is defined as:
            The first line is the constraint component specification. There are 14 
            component options: xyzuvwsXYZUVWS.
               x: polar motion x 
               y: polar motion y 
               z: UT1
               u: translation x
               v: translation y
               w: translation z
               s: scale
               X: polar motion x rate 
               Y: polar motion y rate
               Z: UT1 rate
               U: translation x rate
               V: translation y rate
               W: translation z rate
               S: scale rate
            The second line has 3 fields, like  4 0.90 4.0.
            The 3 fields are defined as 
            iteration number, relative weighting factor, sigma factor for quality checking.
            The third line is the constraint station number.
            The rest lines are constrained station specifications. Each line has 15 fields,
            which are defined as:
            station name, annual east (sin and cos), north (sin and cos), vertical (sin and 
            cos), semiannual east (sin,cos), north (sin,cos), vertical (sin,cos), weighting
            factor for xyzuvws, weighting factor for XYZUVWS.
            The unit for annual and semi-annual terms is mm. The seasonal term is defined 
            as A*sin(omega*t+phase).
  output file:  output file name 
            This file structure is similar to QOCA output file. 
            New features:
               (1) Each estimated parameter has effective interval (start and end epochs).
               (2) There are site_xyz and site_neu outputs for analyze_tseri use.
               (3) Estimated orbit parameters.
               (4) Abnormal large adjustment reminder.
               (5) Report removed outliers.
  map file (output): similar to QOCA map file
  strain_file (output): similar to QOCA.
  strain_list (input):  similar to QOCA.
  gamma_file (output):  similar to QOCA.
  sinex file:  output solution in SINEX format
            This command requires two file names. The first is the output SINEX file name.
            The second is the input SINEX header information.
  screenig file:  not activated yet. If specified, the screen file is an empty file.
  residual file:  output residuals of each loosely constrained data file.
            There are two fields in the command line. First field is the residual file
            name, the second field is the method to estimate the residual. We recommend 
            users to use "constraint" as the method.
  local sta_id file: for REASoN project only
  sopac antenna file: for REASoN project only
  warning_file file: for REASoN project only
  cmb_only writing option: for REASoN project only
  otl_nodata:  first outlier criterion indicating this station actuary has no data
           the 3 specified fields are sigmas for east, north and vertical respectively.
           The unit is meter.
  otl_sigma:  second outlier criterion indicating this station has large sigma
           the 3 specified fields are sigmas for east, north and vertical respectively.
           The unit is meter.
           Note: the sigmas in otl_nodata are from original loosely constrained solutions.
                 the sigmas in otl_sigma are the formal sigmas after the rotational
                 effects being removed.
  otl_residual:  third outlier criterion indicating this station has large residual
           the 3 specified fields are sigmas for east, north and vertical respectively.
           The unit is meter.
  reference frame: terrestrial reference datum name
            Recommend: WGS84.
  reference coordinate, rtime:
            The first field should be "geodetic". The second field specifies the 
            reference epoch of the coordinate solutions.
  resolution:  not activated yet.
  filtering mode:  only "forward" is activated.