1 July 1992
pocs_surface - gridding algorithm using POCS inversion method
pocs_surface [xyzfile] [-Goutputfile.grd] [-Ix_inc[/y_inc]]
[-Rxmin/xmax/ymin/ymax] [-V] [-D] [-Nmax_iterations] [-L]
pocs_surface reads randomly-spaced (x,y,z) triples from standard input
[or xyzfile] and produces a binary netCDF .grd format file of gridded
values z(x,y) by applying the method of Projection Onto Convex Sets
(POCS). Smoothness of the solution is determined by a model amplitude
spectrum, s(kx,ky), where (kx, ky) are wavenumbers. The model spectrum
is specified by an expression [-Emodel_spectrum_expression] or by the
default expression. It is recommended that the user check the radially
averaged spectrum of the xyzfile with pocs_helper in order to choose
an expression that is compatible with the data. Number of iterations
needed for convergence will vary according to amount and distribution
of data points and desired smoothness. The output is to some degree
dependent on the initial guess used to start the POCS iteration.
pocs_surface provides two possible initial guesses: (by default) A
smooth interpolation provided by the GMT 'surface' gridding program,
perturbed with 10% random noise; or (using the -D option) 100% random
noise. The output satisfies the data and has a spectrum that is less
than (1+tolerance)*s(kx,ky). With the [-L] option, the user can force
the spectrum to be greater than (1-tolerance)*s(kx,ky). However, this
constraint is not convex, so that convergence is not guaranteed.
pocs_surface is an enhancement of the LDEO-HIG-SIO GMTSYSTEM software
package, and uses that package's 'surface' gridding routine. The
Environmental variable GMT_HOME and ARCH must be set so that
$GMT_HOME/$ARCH/surface is the path of the 'surface' gridding program.
pocs_surface uses the Lamont Expression Parser 'parse' libaray and
UCAR's Network Common Data Format
ascii input data file of 'x y z' values, white-space separated,
one set per line. If no file is specified, surface will read from
-G -Ggrdfile output grd file name
-I -Idx/dy the grid increment. Default is dx=dy=0.1. If only dx is
specified, the dy=dx. Warning: dx and dy are decreased, if
necessary, to make the number of rows and columns in the image
integral powers of 2.
- 1 - Formatted: March 4, 1999
1 July 1992
-R -Rxmin/xmax/ymin/ymax specifies the min/max coordinates of the
grid in user units. Default is 0/1/0/1.
-C -Cconvergence_limit. POCS iteration stops when the error is less
than the convergence limit. The error is defined as the mean
square (data_predicted-data) divided by the mean square data.
Default is 0.0001.
-T -Ttolerance_factor. The spectrum of the image is forced below
(1+tolerance)* model_spectrum, where the tolerance decreases with
the radial wavenumber, kr, by the formula tolerance =
tolerance_factor / (1+(0.2*kr/kxt)^2). Here kxt is an estimate of
the maximum wavenumber controlled by the data, that is, 1/(2*dx),
where dx is a typical spacing between points. Default is
tolerance_factor = 1.0.
-N -Niterations is the maximum number of iterations. Default = 20.
-E -Emodel_spectrum_expression determines value of model spectrum.
It is specified in the C-like syntax of the Lamont Expression
Parser, and may contain the following symbols:
kx: horizontal wavenumber
kxt: typical horizontal wavenumber of data, as above
kxny: nyquist horizontal wavenumber
ky: vertical wavenumber
kyt: typical vertical wavenumber of data
kyny: nyquist horizontal wavenumber
kr: radial wavenumber, i.e. sqrt(kx^2+ky^2)
theta: angular wavenumber, radians, i.e. atan2(ky,kx) The default
expression is '1/(1+((0.2*kr/kxt)^2))', which is flat for krkx_t, leading to an
image rich in small scale features.
Note 1: Quote the expression, so the shell doesn't try to parse
Note 2: The overall amplitude of the spectrum is irrelevant. It
is adjusted to match the amplitude of the input data (using
-D Omit initialization using surface & use only a random noise
- 2 - Formatted: March 4, 1999
1 July 1992
-V Run in verbose mode. Prints out error for each iteration.
-L Enforce lower bound of model spectrum.
To make a 5 by 5 grid from the data in data4 with options
-Niterations=100 and -Vverbose, writing the result to a file called
pocs_surface data4 -GPdata4.grd -I0.1 -R0/5/0/5 -V
If we knew where the bugs were, don't you think we would fix them?
gmtsystem, surface, pocs_helper
Menke, W., Applications of the POCS inversion method to interpolating
topography and other geophysical fields, Geophys. Res. Lett. 18, 435-
Gubin, L.G., B.T. Polyakm and E. Raik, The method of projections for
the common point of convex sets, USSR Comput. Math. and Phys. 7, 1-24,
Wessel, P., and W. H. F. Smith, 1992, The GMT-SYSTEM v. 2.1 Technical
Reference & Cookbook, SOEST/SIO.
Wessel, P., and W. H. F. Smith, 1991, Free software helps map and
display data, EOS Trans. AGU, 72, 441.
Smith, W. H. F, and P. Wessel, 1990, Gridding with continuous
curvature splines in tension, Geophysics, 55, 293-305.
- 3 - Formatted: March 4, 1999