## table of contents

other versions

- stretch 5.3.1+dfsg-2
- testing 5.4.5+dfsg-2
- stretch-backports 5.4.5+dfsg-1~bpo9+1
- unstable 5.4.5+dfsg-2

GPSGRIDDER(1gmt) | GMT | GPSGRIDDER(1gmt) |

# NAME¶

gpsgridder - Interpolate GPS strain vectors using Green's functions for elastic deformation# SYNOPSIS¶

**gpsgridder**[

*table*]

**-G**

*outfile*[

**-I**

*increment*] [

**-R**

*region*] [

**-C**[

**n**|

**r**|

**v**]

*value*[

**+f**

*file*] ] [

**-E**[

*misfitfile*] ] [

**-F**[

**d**|

**f**]

*fudge*] [

**-L**] [

**-N**

*nodefile*] [

**-S**

*nu*] [

**-T**

*maskgrid*] [

**-V**[

*level*] ] [

**-W**[

**w**]] [

**-b**binary ] [

**-d**nodata ] [

**-e**regexp ] [

**-f**flags ] [

**-h**headers ] [

**-o**flags ] [

**-x**[[-]

*n*] ] [

**-:**[

**i**|

**o**] ]

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

# DESCRIPTION¶

**gpsgridder**grids 2-D vector data such as GPS velocities by using a coupled model based on 2-D elasticity. The degree of coupling can be tuned by adjusting the effective Poisson's ratio. The solution field can be tuned to extremes such as incompressible (1), typical elastic (0.5) or even an unphysical value of -1 that basically removes the elastic coupling of vector interpolation. Smoothing is offered via the optional elimination of small eigenvalues.

# REQUIRED ARGUMENTS¶

*table*- table with GPS strain rates at discrete locations. We expect the input
format to be
*x y u v*[*du dv*] (see**-W**to specify data uncertainties or weights). If*lon lat*is given you must supply**-fg**and we will use a flat Earth approximation in the calculation of distances.

**-G***outfile*- Name of resulting output file. (1) If options
**-R**,**-I**, and possibly**-r**are set we produce two equidistant output grids. In this case,*outfile*must be a name template containing the C format specifier %s, which will be replaced with u and v, respectively. (2) If option**-T**is selected then**-R**,**-I**cannot be given as the*maskgrid*determines the region and increments. Again, the*outfile*must be a name template for the two output grids. (3) If**-N**is selected then the output is a single ASCII (or binary; see**-bo**) table written to*outfile*; if**-G**is not given then this table is written to standard output. The**-G**option is ignored if**-C**or**-C**0 is given.

# OPTIONAL ARGUMENTS¶

**-C**[**n**|**r**|**v**]*value*[**+f***file*]- Find an approximate surface fit: Solve the linear system for the spline
coefficients by SVD and eliminate the contribution from all eigenvalues
whose ratio to the largest eigenvalue is less than
*value*[Default uses Gauss-Jordan elimination to solve the linear system and fit the data exactly]. Optionally, append**+f***file*to save the eigenvalue ratios to the specified file for further analysis. Finally, if a negative*value*is given then**+f***file*is required and execution will stop after saving the eigenvalues, i.e., no surface output is produced. Specify**-Cv***value*to use the largest eigenvalues needed to explain*value*% of the data variance. Specify**-Cr***value*to use the largest eigenvalues needed to leave approximately*value*as the model misfit. If*value*is not given then**-W**is required and we compute*value*as the rms of the given data uncertainties. Alternatively, use**-Cn***value*to select the*value*largest eigenvalues. If a*file*is given with**-Cv**then we save the eigenvalues instead of the ratios. Note: 1/4 of the total number of data constraints is a good starting point for further experiments.

**E**[*misfitfile*]

Evaluate the spline exactly at the input data locations
and report statistics of the misfit (mean, standard deviation, and rms) for

*u*and*v*separately and combined. Optionally, append a filename and we will write the data table, augmented by two extra columns after each of the*u*and*v*columns holding the spline estimates and misfits.-
**-F**[**d**|**f**]*fudge* - The Green's functions are proportional to terms like 1/r^2 and log(r) and
thus blow up for r == 0. To prevent that we offer two fudging schemes:
**-Fd***del_radius*lets you add a constant offset to all radii and must be specified in the user units. Alternatively, use**-Ff***factor*which will compute*del_radius*from the product of the shortest inter-point distance and*factor*[0.01].

**-I***xinc*[*unit*][**+e**|**n**][/*yinc*[*unit*][**+e**|**n**]]*x_inc*[and optionally*y_inc*] is the grid spacing. Optionally, append a suffix modifier.**Geographical (degrees) coordinates**: Append**m**to indicate arc minutes or**s**to indicate arc seconds. If one of the units**e**,**f**,**k**,**M**,**n**or**u**is appended instead, the increment is assumed to be given in meter, foot, km, Mile, nautical mile or US survey foot, respectively, and will be converted to the equivalent degrees longitude at the middle latitude of the region (the conversion depends on PROJ_ELLIPSOID). If*y_inc*is given but set to 0 it will be reset equal to*x_inc*; otherwise it will be converted to degrees latitude.**All coordinates**: If**+e**is appended then the corresponding max*x*(*east*) or*y*(*north*) may be slightly adjusted to fit exactly the given increment [by default the increment may be adjusted slightly to fit the given domain]. Finally, instead of giving an increment you may specify the*number of nodes*desired by appending**+n**to the supplied integer argument; the increment is then recalculated from the number of nodes and the domain. The resulting increment value depends on whether you have selected a gridline-registered or pixel-registered grid; see App-file-formats for details. Note: if**-R***grdfile*is used then the grid spacing has already been initialized; use**-I**to override the values.

**-L**- Leave trend alone. Do
*not*remove a planer (2-D) trend from the data before fitting the spline. [Default removes least squares plane, fits normalized residuals, and restores plane].

**-N***nodefile*- ASCII file with coordinates of desired output locations
**x**in the first column(s). The resulting*w*values are appended to each record and written to the file given in**-G**[or stdout if not specified]; see**-bo**for binary output instead. This option eliminates the need to specify options**-R**,**-I**, and**-r**.

**-R***xmin*/*xmax*/*ymin*/*ymax*[**+r**][**+u***unit*] (more ...)- Specify the region of interest.

**-S***nu*- Specify Poisson's ratio to use for this 2-D elastic sheet [0.5]. Note: 1.0 is incompressible in a 2-D formulation while -1 removes all coupling between the two directions.

**-T***maskgrid*- Only evaluate the solutions at the nodes in the
*maskgrid*that are not set to NaN. This option eliminates the need to specify options**-R**,**-I**(and**-r**).

**-W**[**w**]- One-sigma data uncertainties for
*u*and*v*are provided in the last two columns. We then compute weights that are inversely proportional to the uncertainties. Append**w**if weights are given instead of uncertainties. This results in a weighted least squares fit. Note that**-W**only has an effect if**-C**is used. [Default uses no weights or uncertainties]. Note: At present the**-W**option is*unstable*. We do not yet know if it reflects a coding bug or a theoretical limitation. Users beware, and make sure you compare the results with non-weighted output for basic sanity checking.

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

**-d**[**i**|**o**]*nodata*(more ...)- Replace input columns that equal
*nodata*with NaN and do the reverse on output.

**-e**[**~**]*"pattern"***|****-e**[**~**]/*regexp*/[**i**] (more ...)- Only accept data records that match the given pattern.
**-fg**- Geographic grids (dimensions of longitude, latitude) will be converted to meters via a "Flat Earth" approximation using the current ellipsoid parameters.

**-h**[**i**|**o**][*n*][**+c**][**+d**][**+r***remark*][**+r***title*] (more ...)- Skip or produce header record(s). Not used with binary data.

**-i***cols*[**+l**][**+s***scale*][**+o***offset*][,*...*] (more ...)- Select input columns and transformations (0 is first column).

**-r**(more ...)- Set pixel node registration [gridline].

**-:**[**i**|**o**] (more ...)- Swap 1st and 2nd column on input and/or output.

**-^**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.

# UNITS¶

For map distance unit, append*unit*

**d**for arc degree,

**m**for arc minute, and

**s**for arc second, or

**e**for meter [Default],

**f**for foot,

**k**for km,

**M**for statute mile,

**n**for nautical mile, and

**u**for US survey foot. By default we compute such distances using a spherical approximation with great circles. Prepend

**-**to a distance (or the unit is no distance is given) to perform "Flat Earth" calculations (quicker but less accurate) or prepend

**+**to perform exact geodesic calculations (slower but more accurate).

# EXAMPLES¶

To compute the*u*and

*v*strain rate grids from the GPS data set

*gps.txt*, containing

*x y u v du dv*, on a 2x2 arc minute grid for California, try

gmt gpsgridder gps.txt -R-125/-114/31/41 -I2m -fg -W -r -Ggps_strain_%s.nc -V

# REFERENCES¶

Haines, A. J. et al., 2015,*Enhanced Surface Imaging of Crustal Deformation*, SpringerBriefs in Earth Sciences, doi:10.1007/978-3-319-21578-5_2.

Sandwell, D. T. and P. Wessel, 2016, Interpolation of 2-D Vector
Data Using Constraints from Elasticity, *Geophys. Res. Lett., 43*,
10,703-10,709, *http://dx.doi.org/10.1002/2016GL070340*

# SEE ALSO¶

gmt, greenspline nearneighbor, surface# COPYRIGHT¶

2019, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. WobbeJanuary 10, 2019 | 5.4.5 |