Provided by: gmt-common_5.4.5+dfsg-1_all bug


       x2sys_solve - Determine least-squares systematic correction from crossovers


       x2sys_solve   -Ccolumn  -TTAG  -Emode [ COE_list.d ] [  -V[level] ] [  -W[u] ] [ -bibinary
       ] [ -dinodata ] [ -x[[-]n] ]

       Note: No space is allowed between the option flag and the associated arguments.


       x2sys_solve  will  use  the  supplied  crossover  information  to  solve  for   systematic
       corrections that can then be applied per track to improve data quality. Several systematic
       corrections can be solved for using a least-squares approach. Note: Only one  data  column
       can be processed at the time.


              Name  of  file with the required crossover columns as produced by x2sys_list. NOTE:
              If -bi is used then the first two columns are expected to hold  the  integer  track
              IDs;  otherwise  we  expect  those columns to hold the text string names of the two
              tracks. If no file is given we will read from stdin.

       -TTAG  Specify the x2sys TAG which tracks the attributes of this data type.

              Specify which data column you want to process. Needed for proper formatting of  the
              output  correction  table  and  must  match the same option used in x2sys_list when
              preparing the input data.

       -Emode The correction type you wish to model. Choose among the following functions f(p)  ,
              where  p  are  the  m  parameters per track that we will fit simultaneously using a
              least squares approach:

              c will fit f(p) = a (a constant offset); records must contain track ID1, ID2, COE.

              d will fit f(p) = a + b * d (linear drift; d  is  distance;  records  must  contain
              track ID1, ID2, d1, d2, COE.

              g  will  fit  f(p)  =  a  + b sin(y)^2 (1980-1930 gravity correction); records must
              contain track ID1, ID2, latitude y, COE.

              h will fit f(p) = a + b cos(H) + c cos(2H) + d sin(H) + e sin(2H) (magnetic heading
              correction); records must contain track ID1, ID2, heading H, COE.

              s  will fit f(p) = a * z (a unit scale correction); records must contain track ID1,
              ID2, z1, z2.

              t will fit f(p) = a + b * (t - t0) (linear drift; t0  is  the  start  time  of  the
              track); records must contain track ID1, ID2, t1-t0, t2-t0, COE.


       -V[level] (more ...)
              Select verbosity level [c].

       -W     Means  that  each  input  records has an extra column with the composite weight for
              each crossover record. These are used to obtain a weighted least  squares  solution
              [no  weights].  Append  u  to  report unweighted mean/std [Default, report weighted

       -bi[ncols][t] (more ...)
              Select native binary input.

       -dinodata (more ...)
              Replace input columns that equal nodata with NaN.

       -x[[-]n] (more ...)
              Limit number of cores used in multi-threaded algorithms (OpenMP required).

       -^ or just -
              Print a short message about the syntax of the command, then exits (NOTE: on Windows
              just use -).

       -+ or just +
              Print  an  extensive  usage  (help)  message,  including  the  explanation  of  any
              module-specific option (but not the GMT common options), then exits.

       -? or no arguments
              Print a complete usage (help) message, including the explanation  of  all  options,
              then exits.


       Most  of  the  model corrections in  -E involve a constant offset.  Because crossovers are
       differences between values, any absolute level will cancel  out  and  hence  the  constant
       offsets  we  obtain  are relative to an undetermined absolute level.  To obtain a solvable
       solution we add the constraint that the sum of all constant offsets equal  zero.   If  the
       tracks  form  clusters  in  which  no tracks from one cluster cross any track from another
       cluster then these are two independent data sets and require they own constraint  equation
       for their offsets.  We determine the number of clusters and automatically add the required
       constraint equations.  If you need a particular  reference  track  to  have  a  particular
       offset  (e.g.,  0)  then you can subtract the offset you found from every track correction
       and add in the desired offset.


       To fit a simple bias offset to faa for all tracks under the MGD77 tag, try

              gmt x2sys_list COE_data.txt -V -TMGD77 -Cfaa -Fnc > faa_coe.txt
              gmt x2sys_solve faa_coe.txt -V -TMGD77 -Cfaa -Ec > coe_table.txt

       To fit a faa linear drift with time instead, try

              gmt x2sys_list COE_data.txt -V -TMGD77 -Cfaa -FnTc > faa_coe.txt
              gmt x2sys_solve faa_coe.txt -V -TMGD77 -Cfaa -Et > coe_table.txt

       To estimate heading corrections based on magnetic crossovers associated with the tag MGD77
       from the file COE_data.txt, try

              gmt x2sys_list COE_data.txt -V -TMGD77 -Cmag -Fnhc > mag_coe.txt
              gmt x2sys_solve mag_coe.txt -V -TMGD77 -Cmag -Eh > coe_table.txt

       To estimate unit scale corrections based on bathymetry crossovers, try

              gmt x2sys_list COE_data.txt -V -TMGD77 -Cdepth -Fnz > depth_coe.txt
              gmt x2sys_solve depth_coe.txt -V -TMGD77 -Cdepth -Es > coe_table.txt


       x2sys_binlist,  x2sys_cross, x2sys_datalist, x2sys_get, x2sys_init, x2sys_list, x2sys_put,


       2019, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe