
nngetsloped
Retrieves a slope at a specified coordinate position.
Prototype
function nngetsloped ( i [1] : integer, j [1] : integer ) return_val [1] : double
Arguments
iA subscript indexing the first dimensioned variable in the output grid of the most recent call to natgrid or natgridd.
jA subscript indexing the second dimensioned variable in the output grid of the most recent call to natgrid or natgridd.
Return value
The slope (a scalar value) at the specified coordinate position (if slopes were computed during the last call to natgrid or natgridd).
Description
This function is part of the Natgrid package, which implements a natural neighbor interpolation method. Much useful information is available at the above link, including the descriptions of many control parameters that can be modified to materially change its behavior. (The functions nngetp and nnsetp are used to access these parameters.)
nngetsloped is used to retrieve values which may have been computed during the last call to natgrid or natgridd. Note that these values will only have been computed if you set the value of the control parameter "sdi" appropriately.
See Also
Examples
begin ; ; Define constants ; RAD2DEG = 57.29578 NUMXOUT = 21 NUMYOUT = 21 ; ; Coordinate data are defined as random numbers between -0.2 ; and 1.2 and are explicitly defined here for uniformity ; across platforms. ; x = (/ \ 1.16, 0.47, 0.29, 0.72, 0.52, 1.12, 0.33, 0.20, 0.30, \ 0.78, 0.92, 0.52, 0.44, 0.22, -0.10, 0.11, 0.59, 1.13, \ 0.68, 1.11, 0.93, 0.29, 0.74, 0.43, 0.87, 0.87, -0.10, \ 0.26, 0.85, 0.00, -0.02, 1.01, -0.12, 0.65, 0.39, 0.96, \ 0.39, 0.38, 0.94, -0.03, -0.17, 0.00, 0.03, 0.67, -0.06, \ 0.82, -0.03, 1.08, 0.37, 1.02, -0.11, -0.13, 1.03, 0.61, \ 0.26, 0.18, 0.62, 0.42, 1.03, 0.72, 0.97, 0.08, 1.18, \ 0.00, 0.69, 0.10, 0.80, 0.06, 0.82, 0.20, 0.46, 0.37, \ 1.16, 0.93, 1.09, 0.96, 1.00, 0.80, 0.01, 0.12, 1.01, \ 0.48, 0.79, 0.04, 0.42, 0.48, -0.18, 1.16, 0.85, 0.97, \ 0.14, 0.40, 0.78, 1.12, 1.19, 0.68, 0.65, 0.41, 0.90, \ 0.84, -0.11, -0.01, -0.02, -0.10, 1.04, 0.58, 0.61, 0.12, \ -0.02, -0.03, 0.27, 1.17, 1.02, 0.16, -0.17, 1.03, 0.13, \ 0.04, -0.03, 0.15, 0.00, -0.01, 0.91, 1.20, 0.54, -0.14, \ 1.03, 0.93, 0.42, 0.36, -0.10, 0.57, 0.22, 0.74, 1.15, \ 0.40, 0.82, 0.96, 1.09, 0.42, 1.13, 0.24, 0.51, 0.60, \ 0.06, 0.38, 0.15, 0.59, 0.76, 1.16, 0.02, 0.86, 1.14, \ 0.37, 0.38, 0.26, 0.26, 0.07, 0.87, 0.90, 0.83, 0.09, \ 0.03, 0.56, -0.19, 0.51, 1.07, -0.13, 0.99, 0.84, 0.22 /) y = (/ \ -0.11, 1.07, 1.11, -0.17, 0.08, 0.09, 0.91, 0.17, -0.02, \ 0.83, 1.08, 0.87, 0.46, 0.66, 0.50, -0.14, 0.78, 1.08, \ 0.65, 0.00, 1.03, 0.06, 0.69, -0.16, 0.02, 0.59, 0.19, \ 0.54, 0.68, 0.95, 0.30, 0.77, 0.94, 0.76, 0.56, 0.12, \ 0.05, -0.07, 1.01, 0.61, 1.04, -0.07, 0.46, 1.07, 0.87, \ 0.11, 0.63, 0.06, 0.53, 0.95, 0.78, 0.48, 0.45, 0.77, \ 0.78, 0.29, 0.38, 0.85, -0.10, 1.17, 0.35, 1.14, -0.04, \ 0.34, -0.18, 0.78, 0.17, 0.63, 0.88, -0.12, 0.58, -0.12, \ 1.00, 0.99, 0.45, 0.86, -0.15, 0.97, 0.99, 0.90, 0.42, \ 0.61, 0.74, 0.41, 0.44, 1.08, 1.06, 1.18, 0.89, 0.74, \ 0.74, -0.06, 0.00, 0.99, 0.03, 1.00, -0.04, 0.24, 0.65, \ 0.12, 0.13, -0.09, -0.05, 1.03, 1.07, -0.02, 1.18, 0.19, \ 0.03, -0.03, 0.86, 1.12, 0.38, 0.72, -0.20, -0.08, -0.18, \ 0.32, 0.13, -0.19, 0.93, 0.81, 0.31, 1.09, -0.03, 1.01, \ -0.17, 0.84, -0.11, 0.45, 0.18, 0.23, 0.81, 0.39, 1.09, \ -0.05, 0.58, 0.53, 0.96, 0.43, 0.48, 0.96, -0.03, 1.13, \ 1.16, 0.16, 1.15, 0.57, 0.13, 0.71, 0.35, 1.04, 0.62, \ 1.03, 0.98, 0.31, 0.70, 0.97, 0.87, 1.14, 0.08, 1.19, \ 0.88, 1.00, 0.51, 0.03, 0.17, 1.01, 0.44, 0.17, -0.11 /) z = (x-0.25)*(x-0.25) + (y-0.50)*(y-0.50) u = new((/NUMXOUT,NUMYOUT/),double) v = new((/NUMXOUT,NUMYOUT/),double) xc = 1./(NUMXOUT-1.) xo = ispan(0,NUMXOUT-1,1) * xc yc = 1./(NUMYOUT-1.) yo = ispan(0,NUMXOUT-1,1) * yc ; ; Turn on gradient estimate calculations, flag calculation of ; aspects and slopes, set flag to return aspects and slopes in ; radians. ; nnsetp("SDI - compute slopes and aspects",1) nnsetp("IGR - use gradient estimates",1) nnsetp("RAD - return results in radians",1) ; ; Do the interpolation. ; out = natgrids(x, y, z, xo, yo) ; ; Get the aspects. ; do i=0,NUMXOUT-1 do j=0,NUMYOUT-1 rtmp = nngetaspectd(i,j) u(i,j) = sin(rtmp) v(i,j) = cos(rtmp) end do end do ; ; Get the slopes. ; do i = 0,NUMXOUT-1 do j = 0,NUMYOUT-1 rtmp = nngetsloped(i, j); u(i,j) = RAD2DEG*rtmp end do end do end