grdmath - Reverse Polish Notation calculator for grd files

grdmath[-Ixinc[m|c][/yinc[m|c]]-Rwest/east/south/north-V]operand[operand]OPERATOR[operand]OPERATOR...=outgrdfile

grdmathwill perform operations like add, subtract, multiply, and divide on one or more grd files or constants using Reverse Polish Notation (RPN) syntax (e.g., Hewlett-Packard calculator-style). Arbitrarily complicated expressions may therefore be evaluated; the final result is written to an output grd file. When two grd files are on the stack, each element in file A is modified by the corresponding element in file B. However, some operators only require one operand (see below). If no grdfiles are used in the expression then options-R,-Imust be set (and optionally-F).operandIfoperandcan be opened as a file it will be read as a grd file. If not a file, it is interpreted as a numerical constant or a special symbol (see below).outgrdfileis a 2-D grd file that will hold the final result.OPERATORSChoose among the following operators: Operator n_args ReturnsABS1 abs (A).ACOS1 acos (A).ACOSH1 acosh (A).ADD(+)2 A + B.AND2 NaN if A and B == NaN, B if A == NaN, else A.ASIN1 asin (A).ASINH1 asinh (A).ATAN1 atan (A).ATAN22 atan2 (A, B).ATANH1 atanh (A).BEI1 bei (A).BER1 ber (A).CDIST2 Cartesian distance between grid nodes and stack x,y.CEIL1 ceil (A) (smallest integer >= A).COS1 cos (A) (A in radians).COSD1 cos (A) (A in degrees).COSH1 cosh (A).CURV1 Curvature of A (Laplacian).D2DX21 d^2(A)/dx^2 2nd derivative.D2DY21 d^2(A)/dy^2 2nd derivative.D2R1 Converts Degrees to Radians.DDX1 d(A)/dx 1st derivative.DDY1 d(A)/dy 1st derivative.DIV(/)2 A / B.DUP1 Places duplicate of A on the stack.ERF1 Error function of A.ERFC1 Complimentory Error function of A.EXCH2 Exchanges A and B on the stack.EXP1 exp (A).FLOOR1 floor (A) (greatest integer <= A).FMOD2 A % B (remainder).GDIST2 Great distance (in degrees) between grid nodes and stack lon,lat.HYPOT2 hypot (A, B).I01 Modified Bessel function of A (1st kind, order 0).I11 Modified Bessel function of A (1st kind, order 1).IN2 Modified Bessel function of A (1st kind, order B).INV1 1 / A.J01 Bessel function of A (1st kind, order 0).J11 Bessel function of A (1st kind, order 1).JN2 Bessel function of A (1st kind, order B).K01 Modified Kelvin function of A (2nd kind, order 0).K11 Modified Bessel function of A (2nd kind, order 1).KN2 Modified Bessel function of A (2nd kind, order B).KEI1 kei (A).KER1 ker (A).LOG1 log (A) (natural log).LOG101 log10 (A).LOG1P1 log (1+A) (accurate for small A).MAX2 Maximum of A and B.MEAN1 Mean value of A.MED1 Median value of A.MIN2 Minimum of A and B.MUL(x)2 A * B.NEG1 -A.OR2 NaN if A or B == NaN, else A.PLM3 Associated Legendre polynomial P(-1<A<+1) degree B order C.POP1 Delete top element from the stack.POW(^)2 A ^ B.R22 R2 = A^2 + B^2.R2D1 Convert Radians to Degrees.RINT1 rint (A) (nearest integer).SIGN1 sign (+1 or -1) of A.SIN1 sin (A) (A in radians).SIND1 sin (A) (A in degrees).SINH1 sinh (A).SQRT1 sqrt (A).STD1 Standard deviation of A.STEPX1 Heaviside step function in x: H(x-A).STEPY1 Heaviside step function in y: H(y-A).SUB(-)2 A - B.TAN1 tan (A) (A in radians).TAND1 tan (A) (A in degrees).TANH1 tanh (A).Y01 Bessel function of A (2nd kind, order 0).Y11 Bessel function of A (2nd kind, order 1).YLM2 Re and Im normalized surface harmonics (degree A, order B).YN2 Bessel function of A (2nd kind, order B).SYMBOLSThe following symbols have special meaning:PI3.1415926...E2.7182818...XGrid with x-coordinatesYGrid with y-coordinates

-Ix_inc[and optionallyy_inc] is the grid spacing. Appendmto indicate minutes orcto indicate seconds.-Rwest,east,south, andnorthspecify the Region of interest. To specify boundaries in degrees and minutes [and seconds], use the dd:mm[:ss] format. Appendrif lower left and upper right map coordinates are given instead of wesn.-FSelect pixel registration. [Default is grid registration].-VSelects verbose mode, which will send progress reports to stderr [Default runs "silently"].

The operatorGDISTcalculates spherical distances bewteen the (lon, lat) point on the stack and all node positions in the grid. The grid domain and the (lon, lat) point are expected to be in degrees. The operatorYLMcalculates the fully normalized spherical harmonics for degree L and order M for all positions in the grid, which is assumed to be in degrees.YLMreturns two grids, the Real (cosine) and Imaginary (sine) component of the complex spherical harmonic. Use thePOPoperator (andEXCH) to get rid of one of them. The operatorPLMcalculates the associated Legendre polynomial of degree L and order M, and its argument is the cosine of the colatitude which must satisfy -1 <= x <= +1. UnlikeYLM,PLMis not normalized. All the derivatives are based on central finite differences, with natural boundary conditions.

To take log10 of the average of 2 files, use grdmath file1.grd file2.grdADD0.5MULLOG10=file3.grd Given the file ages.grd, which holds seafloor ages in m.y., use the relation depth(in m) = 2500 + 350 * sqrt (age) to estimate normal seafloor depths: grdmath ages.grdSQRT350MUL2500ADD=depths.grd To find the angle a (in degrees) of the largest principal stress from the stress tensor given by the three files s_xx.grd s_yy.grd, and s_xy.grd from the relation tan (2*a) = 2 * s_xy / (s_xx - s_yy), try grdmath 2 s_xy.grdMULs_xx.grd s_yy.grdSUBDIVATAN22DIV=direction.grd To calculate the fully normalized spherical harmonic of degree 8 and order 4 on a 1 by 1 degree world map, using the real amplitude 0.4 and the imaginary amplitude 1.1, try grdmath-R0/360/-90/90-I1 8 4YML1.1MULEXCH0.4MULADD= harm.grd

Files that has the same name as some operators, e.g., ADD, SIGN, =, etc. cannot be read and must not be present in the current directory. Piping of files are not allowed. The stack limit is hard-wired to 50. Bessel and error functions may not be available on all systems. The Kelvin-Bessel functions (bei, ber, kei, ker) are based on the polynomial approximations by Abramowitz and Stegun forr<= 8. All functions expecting a positive radius (e.g., log, kei, etc.) are passed the absolute value of their argument.

Abramowitz, M., and I. A. Stegun, 1964,HandbookofMathematicalFunctions, Applied Mathematics Series, vol. 55, Dover, New York. Press, W. H., S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, 1992,NumericalRecipes, 2nd edition, Cambridge Univ., New York.

gmt, gmtmath, grd2xyz, grdedit, grdinfo, xyz2grd

Man(1) output converted with man2html